diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 809e023f1d..f34bb9702d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,8 +18,7 @@ jobs: python-version: 3.9 - name: Sincronizar con CPython run: | - git submodule sync - git submodule update --init --force cpython + git submodule update --init --depth=1 cpython - name: Instalar dependencias run: | sudo apt-get update diff --git a/.overrides/coc.rst b/.overrides/coc.rst index b38c1fe8b5..0ecc88ff9e 100644 --- a/.overrides/coc.rst +++ b/.overrides/coc.rst @@ -236,7 +236,7 @@ Este Código de Conducta se bifucó (fork) a partir de las pólizas de ejemplo d `Geek Feminism wiki, creado por Ada Initiative y otros voluntarios`_, que está bajo una licencia `Creative Commons Zero`_. -*Sage Sharp* de `Otter Tech`_ creó un nuevo lenguage y modificaciones adicionales. +*Sage Sharp* de `Otter Tech`_ creó un nuevo lenguaje y modificaciones adicionales. El lenguaje se incorporó a partir de los siguientes códigos de conducta: diff --git a/.overrides/translation-memory.rst b/.overrides/translation-memory.rst index 8ee10c5799..8da170d4bb 100644 --- a/.overrides/translation-memory.rst +++ b/.overrides/translation-memory.rst @@ -97,6 +97,9 @@ Dividimos esta sección en dos partes, los términos que se traducen y los que m bytecodes queda igual ``glossary.po`` + + callback + retrollamada ``glossary.po`` callable invocable ``glossary.po``, ``library/functions.po`` diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 72807d02b4..f970c8bc1b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/JulienPalard/powrap - rev: master + rev: v0.4.0 hooks: - id: powrap - repo: local @@ -10,8 +10,8 @@ repos: entry: python ./scripts/create_dict.py language: python # This one requires package ``hunspell-es_es`` in Archlinux -- repo: https://github.com/JulienPalard/pospell - rev: v1.0.5 +- repo: https://github.com/AFPy/pospell + rev: v1.0.12 hooks: - id: pospell - args: ['--personal-dict', 'dict.txt', '--modified', '--language', 'es_ES'] + args: ['--personal-dict', 'dict.txt', '--language', 'es_ES', '--language', 'es_AR'] diff --git a/TRANSLATORS b/TRANSLATORS index 7ca022f296..a7d283d8d7 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -137,6 +137,7 @@ Enrique Zárate (@enrique-zarate) Jaume Montané (@jaumemy) Endika Gil (@endikagil) Federico Zuccolo (@fzuccolo) +Francisco Mora (@framorac) Gibran Herrera (@gibranhl) Ulises Alexander Argüelles Monjaraz (@UlisesAlexanderAM) Juan Elias Rodriguez (@Juerodriguez) @@ -145,6 +146,12 @@ Ignacio Sanz (@elnaquete) Jaime Rodrigo González Rodríguez (@jairock282) Martín Ramírez (@tinchoram) Kevin Cajachuán (@Kajachuan) +Adolfo Villalobos (@AdolfoVillalobos) Yohanna Padrino (@Yo-hanaPR) Adolfo Villalobos (@AdolfoVillalobos) +José Luis Salgado Banda (@josephLSalgado) Marcos Medrano (@mmmarcos) +Gonzalo Tixilima (@javoweb) +Frank Montalvo Ochoa (@fmontalvoo) +Diego Cristóbal (@dcristobalh) +Rodrigo Tobar (@rtobar) diff --git a/c-api/arg.po b/c-api/arg.po index 87cd6d47b2..3d58f4609f 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-21 13:52+0200\n" +"PO-Revision-Date: 2021-08-02 01:47+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/arg.rst:6 msgid "Parsing arguments and building values" @@ -334,7 +335,6 @@ msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" msgstr "``S`` (:class:`bytes`) [PyBytesObject \\*]" #: ../Doc/c-api/arg.rst:132 -#, fuzzy msgid "" "Requires that the Python object is a :class:`bytes` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a " @@ -342,14 +342,13 @@ msgid "" msgstr "" "Requiere que el objeto Python es un objeto :class:`bytes`, sin intentar " "ninguna conversión. Lanza :exc:`TypeError` si el objeto no es un objeto " -"bytes. La variable C también puede ser declarado como :c:type:`PyObject \\*`." +"bytes. La variable C también puede ser declarado como :c:type:`PyObject*`." #: ../Doc/c-api/arg.rst:139 msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" msgstr "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" #: ../Doc/c-api/arg.rst:137 -#, fuzzy msgid "" "Requires that the Python object is a :class:`bytearray` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a :" @@ -358,8 +357,8 @@ msgid "" msgstr "" "Requiere que el objeto Python es un objeto :class:`bytearray`, sin intentar " "ninguna conversión. Lanza :exc:`TypeError` si el objeto no es un objecto :" -"class:`bytearray`. La variable C también puede ser declarado como :c:type:" -"`PyObject \\*`." +"class:`bytearray`. La variable C también puede ser declarada como :c:type:" +"`PyObject*`." #: ../Doc/c-api/arg.rst:156 msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" @@ -441,7 +440,6 @@ msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "``U`` (:class:`str`) [PyObject \\*]" #: ../Doc/c-api/arg.rst:184 -#, fuzzy msgid "" "Requires that the Python object is a Unicode object, without attempting any " "conversion. Raises :exc:`TypeError` if the object is not a Unicode object. " @@ -449,7 +447,7 @@ msgid "" msgstr "" "Requiere que el objeto Python es un objeto Unicode, sin intentar ninguna " "conversión. Lanza :exc:`TypeError` si el objeto no es un objeto Unicode. La " -"variable C también puede ser declarado como :c:type:`PyObject\\*`." +"variable C también puede ser declarada como :c:type:`PyObject*`." #: ../Doc/c-api/arg.rst:192 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" @@ -480,7 +478,6 @@ msgstr "" "caracteres. Solo funciona para datos codificados sin bytes NUL integrados." #: ../Doc/c-api/arg.rst:198 -#, fuzzy msgid "" "This format requires two arguments. The first is only used as input, and " "must be a :c:type:`const char*` which points to the name of an encoding as a " @@ -491,13 +488,13 @@ msgid "" "The text will be encoded in the encoding specified by the first argument." msgstr "" "Este formato requiere dos argumentos. El primero solo se usa como entrada, y " -"debe ser :c:type:`const char\\*` que apunta al nombre de una codificación " -"como una cadena de caracteres terminada en NUL, o ``NULL``, en cuyo caso se " +"debe ser :c:type:`const char*` que apunta al nombre de una codificación como " +"una cadena de caracteres terminada en NUL, o ``NULL``, en cuyo caso se " "utiliza la codificación ``'utf-8'``. Se lanza una excepción si Python no " "conoce la codificación con nombre. El segundo argumento debe ser :c:type:" -"`char\\*\\*`; el valor del puntero al que hace referencia se establecerá en " -"un búfer con el contenido del texto del argumento. El texto se codificará en " -"la codificación especificada por el primer argumento." +"`char**`; el valor del puntero al que hace referencia se establecerá en un " +"búfer con el contenido del texto del argumento. El texto se codificará en la " +"codificación especificada por el primer argumento." #: ../Doc/c-api/arg.rst:206 msgid "" @@ -549,7 +546,6 @@ msgstr "" "entrada que contienen caracteres NUL." #: ../Doc/c-api/arg.rst:221 -#, fuzzy msgid "" "It requires three arguments. The first is only used as input, and must be " "a :c:type:`const char*` which points to the name of an encoding as a NUL-" @@ -562,15 +558,15 @@ msgid "" "will be set to the number of bytes in the output buffer." msgstr "" "Requiere tres argumentos. El primero solo se usa como entrada, y debe ser :c:" -"type:`const char \\*` que apunta al nombre de una codificación como una " -"cadena terminada en NUL, o ``NULL``, en cuyo caso ``Se utiliza la " +"type:`const char*` que apunta al nombre de una codificación como una cadena " +"de caracteres terminada en NUL, o ``NULL``, en cuyo caso ``Se utiliza la " "codificación 'utf-8'``. Se lanza una excepción si Python no conoce la " -"codificación con nombre. El segundo argumento debe ser :c:type:`char\\*\\*`; " -"El valor del puntero al que hace referencia se establecerá en un búfer con " -"el contenido del texto del argumento. El texto se codificará en la " -"codificación especificada por el primer argumento. El tercer argumento debe " -"ser un puntero a un entero; el número entero referenciado se establecerá en " -"el número de bytes en el búfer de salida." +"codificación con nombre. El segundo argumento debe ser :c:type:`char**`; El " +"valor del puntero al que hace referencia se establecerá en un búfer con el " +"contenido del texto del argumento. El texto se codificará en la codificación " +"especificada por el primer argumento. El tercer argumento debe ser un " +"puntero a un entero; el número entero referenciado se establecerá en el " +"número de bytes en el búfer de salida." #: ../Doc/c-api/arg.rst:231 msgid "There are two modes of operation:" @@ -826,7 +822,6 @@ msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "``O!`` (object) [*typeobject*, PyObject \\*]" #: ../Doc/c-api/arg.rst:323 -#, fuzzy msgid "" "Store a Python object in a C object pointer. This is similar to ``O``, but " "takes two C arguments: the first is the address of a Python type object, the " @@ -837,7 +832,7 @@ msgstr "" "Almacena un objeto Python en un puntero de objeto C. Esto es similar a " "``O``, pero toma dos argumentos C: el primero es la dirección de un objeto " "de tipo Python, el segundo es la dirección de la variable C (de tipo :c:type:" -"`PyObject\\*`) en el que se almacena el puntero del objeto. Si el objeto " +"`PyObject*`) en el que se almacena el puntero del objeto. Si el objeto " "Python no tiene el tipo requerido, se lanza :exc:`TypeError`." #: ../Doc/c-api/arg.rst:352 ../Doc/c-api/arg.rst:657 @@ -845,7 +840,6 @@ msgid "``O&`` (object) [*converter*, *anything*]" msgstr "``O&`` (object) [*converter*, *anything*]" #: ../Doc/c-api/arg.rst:332 -#, fuzzy msgid "" "Convert a Python object to a C variable through a *converter* function. " "This takes two arguments: the first is a function, the second is the address " @@ -855,11 +849,10 @@ msgstr "" "Convierte un objeto Python en una variable C a través de una función " "*converter*. Esto requiere dos argumentos: el primero es una función, el " "segundo es la dirección de una variable C (de tipo arbitrario), convertida " -"a :c:type:`void \\*`. La función *converter* a su vez se llama de la " -"siguiente manera::" +"a :c:type:`void *`. La función *converter* a su vez se llama de la siguiente " +"manera::" #: ../Doc/c-api/arg.rst:339 -#, fuzzy msgid "" "where *object* is the Python object to be converted and *address* is the :c:" "type:`void*` argument that was passed to the :c:func:`PyArg_Parse\\*` " @@ -869,11 +862,11 @@ msgid "" "*address* unmodified." msgstr "" "donde *object* es el objeto de Python a convertir y *address* es el " -"argumento :c:type:`void\\*` que se pasó a la función :c:func:`PyArg_Parse" -"\\*`. El *status* retornado debe ser ``1`` para una conversión exitosa y " -"``0`` si la conversión ha fallado. Cuando la conversión falla, la función " -"*converter* debería generar una excepción y dejar el contenido de *addres* " -"sin modificar." +"argumento :c:type:`void*` que se pasó a la función :c:func:`PyArg_Parse\\*`. " +"El *status* retornado debe ser ``1`` para una conversión exitosa y ``0`` si " +"la conversión ha fallado. Cuando la conversión falla, la función *converter* " +"debería generar una excepción y dejar el contenido de *address* sin " +"modificar." #: ../Doc/c-api/arg.rst:345 msgid "" @@ -1138,7 +1131,6 @@ msgstr "" "descomponer otras tuplas, y puede continuar usándose para ese propósito." #: ../Doc/c-api/arg.rst:479 -#, fuzzy msgid "" "A simpler form of parameter retrieval which does not use a format string to " "specify the types of the arguments. Functions which use this method to " @@ -1162,7 +1154,7 @@ msgstr "" "ser una tupla. La longitud de la tupla debe ser al menos *min* y no más de " "*max*; *min* y *max* pueden ser iguales. Se deben pasar argumentos " "adicionales a la función, cada uno de los cuales debe ser un puntero a una " -"variable :c:type:`PyObject\\*`; estos se completarán con los valores de " +"variable :c:type:`PyObject*`; estos se completarán con los valores de " "*args*; contendrán referencias prestadas. Las variables que corresponden a " "parámetros opcionales no dados por *args* no se completarán; estos deben ser " "inicializados por quien llama. Esta función retorna verdadero en caso de " @@ -1497,7 +1489,6 @@ msgstr "" "de objetos en la lista de argumentos." #: ../Doc/c-api/arg.rst:654 -#, fuzzy msgid "" "Convert *anything* to a Python object through a *converter* function. The " "function is called with *anything* (which should be compatible with :c:type:" @@ -1506,8 +1497,8 @@ msgid "" msgstr "" "Convierte *anything* a un objeto Python a través de una función *converter*. " "La función se llama con *anything* (que debería ser compatible con :c:type:" -"`void \\*`) como argumento y debería retornar un \"nuevo\" objeto de Python, " -"o ``NULL`` si se produjo un error." +"`void*`) como argumento y debería retornar un \"nuevo\" objeto de Python, o " +"``NULL`` si se produjo un error." #: ../Doc/c-api/arg.rst:660 msgid "" diff --git a/c-api/bool.po b/c-api/bool.po index ee74136864..0a4a21270c 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 03:05+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-16 13:03+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/bool.rst:6 msgid "Boolean Objects" @@ -38,11 +39,12 @@ msgstr "" "Sin embargo, los siguientes macros están disponibles." #: ../Doc/c-api/bool.rst:16 -#, fuzzy msgid "" "Return true if *o* is of type :c:data:`PyBool_Type`. This function always " "succeeds." -msgstr "Retorna verdad si *o* es de tipo :c:data:`PyBool_Type`." +msgstr "" +"Retorna verdadero si *o* es de tipo :c:data:`PyBool_Type`. Esta función " +"siempre finaliza con éxito." #: ../Doc/c-api/bool.rst:22 msgid "" diff --git a/c-api/buffer.po b/c-api/buffer.po index e1082fc6b9..88f7904d19 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-21 16:22+0200\n" +"PO-Revision-Date: 2021-08-02 01:18+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/buffer.rst:11 msgid "Buffer Protocol" @@ -624,7 +625,7 @@ msgstr "C o F" #: ../Doc/c-api/buffer.rst:304 msgid ":c:macro:`PyBUF_ND`" -msgstr "" +msgstr ":c:macro:`PyBUF_ND`" #: ../Doc/c-api/buffer.rst:309 msgid "compound requests" @@ -769,33 +770,31 @@ msgid "" msgstr "" "Retorna ``1`` si *obj* admite la interfaz de búfer; de lo contrario, ``0`` " "cuando se retorna ``1``, no garantiza que :c:func:`PyObject_GetBuffer` tenga " -"éxito. Esta función siempre tiene éxito." +"éxito. Esta función siempre finaliza con éxito." #: ../Doc/c-api/buffer.rst:439 -#, fuzzy msgid "" "Send a request to *exporter* to fill in *view* as specified by *flags*. If " "the exporter cannot provide a buffer of the exact type, it MUST raise :c:" "data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." msgstr "" -"Envía una solicitud a *exporter* para completar *view* según lo especificado " -"por *flags*. Si el exportador no puede proporcionar un búfer del tipo " -"exacto, DEBE generar :c:data:`PyExc_BufferError`, establece :c:member:`view-" -">obj` a ``NULL`` y retorna ``-1``." +"Envía una solicitud al *exporter* para completar la *view* según lo " +"especificado por *flags*. Si el exportador no puede proporcionar un búfer " +"del tipo exacto, DEBE lanzar :c:data:`PyExc_BufferError`, establecer ``view-" +">obj`` en ``NULL`` y retornar ``-1``." #: ../Doc/c-api/buffer.rst:444 -#, fuzzy msgid "" "On success, fill in *view*, set ``view->obj`` to a new reference to " "*exporter* and return 0. In the case of chained buffer providers that " "redirect requests to a single object, ``view->obj`` MAY refer to this object " "instead of *exporter* (See :ref:`Buffer Object Structures `)." msgstr "" -"En caso de éxito, llena *view*, establece :c:member:`view->obj` en una nueva " +"Si tiene éxito, completa *view*, establece ``view->obj`` en una nueva " "referencia a *exporter* y retorna 0. En el caso de proveedores de búfer " -"encadenados que redirigen las solicitudes a un solo objeto, :c:member:`view-" -">obj` PUEDE referirse a este objeto en lugar de *exporter* (Ver :ref:" -"`Estructuras de Objetos Búfer `)." +"encadenados que redirigen las solicitudes a un solo objeto, ``view->obj`` " +"PUEDE referirse a este objeto en lugar de *exporter* (Ver :ref:`Estructuras " +"de objetos de búfer `)." #: ../Doc/c-api/buffer.rst:449 msgid "" @@ -810,15 +809,14 @@ msgstr "" "el búfer, :c:func:`PyBuffer_Release` debe llamarse exactamente una vez." #: ../Doc/c-api/buffer.rst:457 -#, fuzzy msgid "" "Release the buffer *view* and decrement the reference count for ``view-" ">obj``. This function MUST be called when the buffer is no longer being " "used, otherwise reference leaks may occur." msgstr "" -"Libera el búfer *view* y disminuye el conteo de referencias para :c:member:" -"`view-> obj`. Esta función DEBE llamarse cuando el búfer ya no se utiliza, " -"de lo contrario, pueden producirse fugas de referencia." +"Libera el búfer *view* y disminuye el conteo de referencias para ``view-" +">obj``. Esta función DEBE llamarse cuando el búfer ya no se utiliza, de lo " +"contrario, pueden producirse fugas de referencia." #: ../Doc/c-api/buffer.rst:461 msgid "" @@ -829,13 +827,12 @@ msgstr "" "c:func:`PyObject_GetBuffer`." #: ../Doc/c-api/buffer.rst:467 -#, fuzzy msgid "" "Return the implied :c:data:`~Py_buffer.itemsize` from :c:data:`~Py_buffer." "format`. On error, raise an exception and return -1." msgstr "" "Retorna el :c:data:`~Py_buffer.itemsize` implícito de :c:data:`~Py_buffer." -"format`. Esta función aún no está implementada." +"format`. En caso de error, lanza una excepción y retorna -1." #: ../Doc/c-api/buffer.rst:475 msgid "" @@ -847,7 +844,7 @@ msgstr "" "Retorna ``1`` si la memoria definida por *view* es de estilo C (*order* es " "``'C'``) o de estilo Fortran (*order* es ``'F'``) :term:`contiguous` o uno " "cualquiera (*order* es ``'A'``). Retorna ``0`` de lo contrario. Esta función " -"siempre tiene éxito." +"siempre finaliza con éxito." #: ../Doc/c-api/buffer.rst:482 msgid "" @@ -914,15 +911,14 @@ msgstr "" "*flags*." #: ../Doc/c-api/buffer.rst:519 -#, fuzzy msgid "" "On success, set ``view->obj`` to a new reference to *exporter* and return 0. " "Otherwise, raise :c:data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` " "and return ``-1``;" msgstr "" -"En caso de éxito, establece :c:member:`view->obj` en una nueva referencia a " -"*exporter* y retorna 0. De lo contrario, genera :c:data:`PyExc_BufferError`, " -"establece :c:member:`view->obj` a ``NULL`` y retorna ``-1``;" +"Si tiene éxito, establece ``view->obj`` en una nueva referencia a *exporter* " +"y retorna 0. De lo contrario, aumenta :c:data:`PyExc_BufferError`, establece " +"``view->obj`` en ``NULL`` y retorna ``-1``;" #: ../Doc/c-api/buffer.rst:523 msgid "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index 2be3cc390b..ba18285871 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 16:04+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 20:18+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/bytearray.rst:6 msgid "Byte Array Objects" @@ -45,22 +46,22 @@ msgid "Type check macros" msgstr "Macros de verificación de tipos" #: ../Doc/c-api/bytearray.rst:27 -#, fuzzy msgid "" "Return true if the object *o* is a bytearray object or an instance of a " "subtype of the bytearray type. This function always succeeds." msgstr "" "Retorna verdadero si el objeto *o* es un objeto de arreglo de bytes o una " -"instancia de un subtipo del tipo arreglo de bytes." +"instancia de un subtipo del tipo arreglo de bytes. Esta función siempre " +"finaliza con éxito." #: ../Doc/c-api/bytearray.rst:33 -#, fuzzy msgid "" "Return true if the object *o* is a bytearray object, but not an instance of " "a subtype of the bytearray type. This function always succeeds." msgstr "" "Retorna verdadero si el objeto *o* es un objeto de arreglo de bytes, pero no " -"una instancia de un subtipo del tipo arreglo de bytes." +"una instancia de un subtipo del tipo arreglo de bytes. Esta función siempre " +"finaliza con éxito." #: ../Doc/c-api/bytearray.rst:38 msgid "Direct API functions" diff --git a/c-api/bytes.po b/c-api/bytes.po index ff5e1ddd6c..af7a296a8f 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-21 20:48+0200\n" +"PO-Revision-Date: 2021-08-01 20:18+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/bytes.rst:6 msgid "Bytes Objects" @@ -47,22 +48,20 @@ msgstr "" "es el mismo objeto que :class:`bytes` en la capa de Python." #: ../Doc/c-api/bytes.rst:27 -#, fuzzy msgid "" "Return true if the object *o* is a bytes object or an instance of a subtype " "of the bytes type. This function always succeeds." msgstr "" "Retorna verdadero si el objeto *o* es un objeto bytes o una instancia de un " -"subtipo del tipo bytes." +"subtipo del tipo bytes. Esta función siempre finaliza con éxito." #: ../Doc/c-api/bytes.rst:33 -#, fuzzy msgid "" "Return true if the object *o* is a bytes object, but not an instance of a " "subtype of the bytes type. This function always succeeds." msgstr "" "Retorna verdadero si el objeto *o* es un objeto bytes, pero no una instancia " -"de un subtipo del tipo bytes." +"de un subtipo del tipo bytes. Esta función siempre finaliza con éxito." #: ../Doc/c-api/bytes.rst:39 msgid "" @@ -124,7 +123,7 @@ msgstr "*n/a*" #: ../Doc/c-api/bytes.rst:70 #, python-format msgid "The literal % character." -msgstr "El carácter literal %." +msgstr "El carácter literal *%*." #: ../Doc/c-api/bytes.rst:72 #, python-format diff --git a/c-api/call.po b/c-api/call.po index 007082a7f6..1addaee355 100644 --- a/c-api/call.po +++ b/c-api/call.po @@ -4,38 +4,43 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-08-02 09:56+0200\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: Cristián Maureira-Fredes \n" +"Language-Team: \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/call.rst:6 msgid "Call Protocol" -msgstr "" +msgstr "Protocolo de llamada" #: ../Doc/c-api/call.rst:8 msgid "" "CPython supports two different calling protocols: *tp_call* and vectorcall." msgstr "" +"CPython admite dos protocolos de llamada diferentes: *tp_call* y vectorcall." #: ../Doc/c-api/call.rst:12 msgid "The *tp_call* Protocol" -msgstr "" +msgstr "El protocolo *tp_call*" #: ../Doc/c-api/call.rst:14 msgid "" "Instances of classes that set :c:member:`~PyTypeObject.tp_call` are " "callable. The signature of the slot is::" msgstr "" +"Las instancias de clases que establecen :c:member:`~PyTypeObject.tp_call` " +"son invocables. La firma del slot es:" #: ../Doc/c-api/call.rst:19 msgid "" @@ -44,28 +49,40 @@ msgid "" "code. *args* must be non-NULL (use an empty tuple if there are no arguments) " "but *kwargs* may be *NULL* if there are no keyword arguments." msgstr "" +"Se realiza una llamada usando una tupla para los argumentos posicionales y " +"un dict para los argumentos de palabras clave, de manera similar a " +"``callable(*args, **kwargs)`` en el código Python. *args* debe ser no NULL " +"(use una tupla vacía si no hay argumentos) pero *kwargs* puede ser *NULL* si " +"no hay argumentos de palabra clave." #: ../Doc/c-api/call.rst:25 msgid "" "This convention is not only used by *tp_call*: :c:member:`~PyTypeObject." "tp_new` and :c:member:`~PyTypeObject.tp_init` also pass arguments this way." msgstr "" +"Esta convención no solo es utilizada por *tp_call*: :c:member:`~PyTypeObject." +"tp_new` y :c:member:`~PyTypeObject.tp_init` también pasan argumentos de esta " +"manera." #: ../Doc/c-api/call.rst:29 msgid "" "To call an object, use :c:func:`PyObject_Call` or other :ref:`call API `." msgstr "" +"Para llamar a un objeto, use :c:func:`PyObject_Call` u otro :ref:`call API " +"`." #: ../Doc/c-api/call.rst:36 msgid "The Vectorcall Protocol" -msgstr "" +msgstr "El protocolo vectorcall" #: ../Doc/c-api/call.rst:40 msgid "" "The vectorcall protocol was introduced in :pep:`590` as an additional " "protocol for making calls more efficient." msgstr "" +"El protocolo vectorcall se introdujo en :pep:`590` como un protocolo " +"adicional para hacer que las llamadas sean más eficientes." #: ../Doc/c-api/call.rst:43 msgid "" @@ -78,12 +95,23 @@ msgid "" "achieve this is by setting :c:member:`~PyTypeObject.tp_call` to :c:func:" "`PyVectorcall_Call`. This bears repeating:" msgstr "" +"Como regla general, CPython preferirá el vectorcall para llamadas internas " +"si el invocable lo admite. Sin embargo, esta no es una regla estricta. " +"Además, algunas extensiones de terceros usan *tp_call* directamente (en " +"lugar de usar :c:func:`PyObject_Call`). Por lo tanto, una clase que admita " +"vectorcall también debe implementar :c:member:`~PyTypeObject.tp_call`. " +"Además, el invocable debe comportarse de la misma manera independientemente " +"del protocolo que se utilice. La forma recomendada de lograr esto es " +"configurando :c:member:`~ PyTypeObject.tp_call` en :c:func:" +"`PyVectorcall_Call`. Vale la pena repetirlo:" #: ../Doc/c-api/call.rst:57 msgid "" "A class supporting vectorcall **must** also implement :c:member:" "`~PyTypeObject.tp_call` with the same semantics." msgstr "" +"Una clase que admita vectorcall **debe** también implementar :c:member:" +"`~PyTypeObject.tp_call` con la misma semántica." #: ../Doc/c-api/call.rst:60 msgid "" @@ -92,6 +120,10 @@ msgid "" "args tuple and kwargs dict anyway, then there is no point in implementing " "vectorcall." msgstr "" +"Una clase no debería implementar vectorcall si eso fuera más lento que " +"*tp_call*. Por ejemplo, si el destinatario de la llamada necesita convertir " +"los argumentos a una tupla args y un dict kwargs de todos modos, entonces no " +"tiene sentido implementar vectorcall." #: ../Doc/c-api/call.rst:65 msgid "" @@ -101,35 +133,48 @@ msgid "" "*vectorcallfunc* appears. This is a pointer to a function with the following " "signature:" msgstr "" +"Las clases pueden implementar el protocolo vectorcall habilitando el " +"indicador :const:`Py_TPFLAGS_HAVE_VECTORCALL` y la configuración :c:member:" +"`~PyTypeObject.tp_vectorcall_offset` al desplazamiento dentro de la " +"estructura del objeto donde aparece un *vectorcallfunc*. Este es un puntero " +"a una función con la siguiente firma:" #: ../Doc/c-api/call.rst:73 msgid "*callable* is the object being called." -msgstr "" +msgstr "*callable* es el objeto siendo invocado." #: ../Doc/c-api/call.rst:75 msgid "" "*args* is a C array consisting of the positional arguments followed by the" msgstr "" +"*args* es un arreglo en C que consta de los argumentos posicionales seguidos " +"por el" #: ../Doc/c-api/call.rst:75 msgid "" "values of the keyword arguments. This can be *NULL* if there are no " "arguments." msgstr "" +"valores de los argumentos de la palabra clave. Puede ser *NULL* si no hay " +"argumentos." #: ../Doc/c-api/call.rst:79 msgid "*nargsf* is the number of positional arguments plus possibly the" -msgstr "" +msgstr "*nargsf* es el número de argumentos posicionales más posiblemente el" #: ../Doc/c-api/call.rst:78 msgid "" ":const:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of " "positional arguments from *nargsf*, use :c:func:`PyVectorcall_NARGS`." msgstr "" +"flag :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Para obtener el número real de " +"argumentos posicionales de *nargsf*, use :c:func:`PyVectorcall_NARGS`." #: ../Doc/c-api/call.rst:85 msgid "*kwnames* is a tuple containing the names of the keyword arguments;" msgstr "" +"*kwnames* es una tupla que contiene los nombres de los argumentos de la " +"palabra clave;" #: ../Doc/c-api/call.rst:82 msgid "" @@ -137,6 +182,9 @@ msgid "" "(instances of ``str`` or a subclass) and they must be unique. If there are " "no keyword arguments, then *kwnames* can instead be *NULL*." msgstr "" +"en otras palabras, las claves del diccionario kwargs. Estos nombres deben " +"ser cadenas (instancias de ``str`` o una subclase) y deben ser únicos. Si no " +"hay argumentos de palabras clave, entonces *kwnames* puede ser *NULL*." #: ../Doc/c-api/call.rst:89 msgid "" @@ -145,12 +193,19 @@ msgid "" "argument 1 (not 0) in the allocated vector. The callee must restore the " "value of ``args[-1]`` before returning." msgstr "" +"Si este flag se establece en un argumento vectorcall *nargsf*, el " +"destinatario de la llamada puede cambiar temporalmente ``args[-1]``. En " +"otras palabras, *args* apunta al argumento 1 (no 0) en el vector asignado. " +"El destinatario de la llamada debe restaurar el valor de ``args[-1]`` antes " +"de regresar." #: ../Doc/c-api/call.rst:94 msgid "" "For :c:func:`PyObject_VectorcallMethod`, this flag means instead that " "``args[0]`` may be changed." msgstr "" +"Para :c:func:`PyObject_VectorcallMethod`, este flag significa en cambio que " +"``args[0]`` puede cambiarse." #: ../Doc/c-api/call.rst:97 msgid "" @@ -159,6 +214,11 @@ msgid "" "allow callables such as bound methods to make their onward calls (which " "include a prepended *self* argument) very efficiently." msgstr "" +"Siempre que puedan hacerlo de forma económica (sin asignación adicional), se " +"anima a las personas que llaman a utilizar :const:" +"`PY_VECTORCALL_ARGUMENTS_OFFSET`. Si lo hace, permitirá que las personas que " +"llaman, como los métodos enlazados, realicen sus llamadas posteriores (que " +"incluyen un argumento *self* antepuesto) de manera muy eficiente." #: ../Doc/c-api/call.rst:102 msgid "" @@ -166,6 +226,9 @@ msgid "" "call>` function as with any other callable. :c:func:`PyObject_Vectorcall` " "will usually be most efficient." msgstr "" +"Para llamar a un objeto que implementa vectorcall, use una función :ref:" +"`call API ` como con cualquier otro invocable. :c:func:" +"`PyObject_Vectorcall` normalmente será más eficiente." #: ../Doc/c-api/call.rst:109 msgid "" @@ -178,10 +241,18 @@ msgid "" "was available as ``_PyObject_FastCallDict``. The old names are still defined " "as aliases of the new, non-underscored names." msgstr "" +"En CPython 3.8, la API de vectorcall y las funciones relacionadas estaban " +"disponibles provisionalmente bajo nombres con un guión bajo inicial: " +"``_PyObject_Vectorcall``, ``_Py_TPFLAGS_HAVE_VECTORCALL``, " +"``_PyObject_VectorcallMethod``, ``_PyVectorcall_Function``, " +"``_PyObject_CallMethodNoArgs``, ``_PyObject_CallMethodOneArg``. Además, " +"``PyObject_VectorcallDict`` estaba disponible como " +"``_PyObject_FastCallDict``. Los nombres antiguos todavía se definen como " +"alias de los nuevos nombres no subrayados." #: ../Doc/c-api/call.rst:121 msgid "Recursion Control" -msgstr "" +msgstr "Control de recursión" #: ../Doc/c-api/call.rst:123 msgid "" @@ -189,6 +260,9 @@ msgid "" "`: CPython uses :c:func:`Py_EnterRecursiveCall` and :c:func:" "`Py_LeaveRecursiveCall` for calls made using *tp_call*." msgstr "" +"Cuando se usa *tp_call*, los destinatarios no necesitan preocuparse por :ref:" +"`recursividad `: CPython usa :c:func:`Py_EnterRecursiveCall` y :c:" +"func:`Py_LeaveRecursiveCall` para llamadas realizadas usando *tp_call*." #: ../Doc/c-api/call.rst:128 msgid "" @@ -196,22 +270,29 @@ msgid "" "callee should use *Py_EnterRecursiveCall* and *Py_LeaveRecursiveCall* if " "needed." msgstr "" +"Por eficiencia, este no es el caso de las llamadas realizadas mediante " +"vectorcall: el destinatario de la llamada debe utilizar " +"*Py_EnterRecursiveCall* y *Py_LeaveRecursiveCall* si es necesario." #: ../Doc/c-api/call.rst:134 msgid "Vectorcall Support API" -msgstr "" +msgstr "API de soporte para vectorcall" #: ../Doc/c-api/call.rst:138 msgid "" "Given a vectorcall *nargsf* argument, return the actual number of arguments. " "Currently equivalent to::" msgstr "" +"Dado un argumento vectorcall *nargsf*, retorna el número real de argumentos. " +"Actualmente equivalente a:" #: ../Doc/c-api/call.rst:144 msgid "" "However, the function ``PyVectorcall_NARGS`` should be used to allow for " "future extensions." msgstr "" +"Sin embargo, la función ``PyVectorcall_NARGS`` debe usarse para permitir " +"futuras extensiones." #: ../Doc/c-api/call.rst:147 ../Doc/c-api/call.rst:161 #: ../Doc/c-api/call.rst:175 ../Doc/c-api/call.rst:259 @@ -219,7 +300,7 @@ msgstr "" #: ../Doc/c-api/call.rst:375 ../Doc/c-api/call.rst:391 #: ../Doc/c-api/call.rst:413 msgid "This function is not part of the :ref:`limited API `." -msgstr "" +msgstr "Esta función no es parte de la :ref:`API limitada `." #: ../Doc/c-api/call.rst:153 msgid "" @@ -228,18 +309,26 @@ msgid "" "Otherwise, return the vectorcall function pointer stored in *op*. This " "function never raises an exception." msgstr "" +"Si *op* no admite el protocolo vectorcall (ya sea porque el tipo no lo hace " +"o porque la instancia específica no lo hace), retorna *NULL*. De lo " +"contrario, retorna el puntero de la función vectorcall almacenado en *op*. " +"Esta función nunca lanza una excepción." #: ../Doc/c-api/call.rst:158 msgid "" "This is mostly useful to check whether or not *op* supports vectorcall, " "which can be done by checking ``PyVectorcall_Function(op) != NULL``." msgstr "" +"Esto es principalmente útil para verificar si *op* admite vectorcall, lo " +"cual se puede hacer marcando ``PyVectorcall_Function(op) != NULL``." #: ../Doc/c-api/call.rst:167 msgid "" "Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword " "arguments given in a tuple and dict, respectively." msgstr "" +"Llama a la :c:type:`vectorcallfunc` de *callable* con argumentos " +"posicionales y de palabras clave dados en una tupla y dict, respectivamente." #: ../Doc/c-api/call.rst:170 msgid "" @@ -248,10 +337,14 @@ msgid "" "It does not check the :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does " "not fall back to ``tp_call``." msgstr "" +"Esta es una función especializada, destinada a colocarse en el slot :c:" +"member:`~PyTypeObject.tp_call` o usarse en una implementación de " +"``tp_call``. No comprueba el flag :const:`Py_TPFLAGS_HAVE_VECTORCALL` y no " +"vuelve a ``tp_call``." #: ../Doc/c-api/call.rst:183 msgid "Object Calling API" -msgstr "" +msgstr "API para invocar objetos" #: ../Doc/c-api/call.rst:185 msgid "" @@ -260,51 +353,57 @@ msgid "" "*tp_call* or vectorcall. In order to do as litle conversion as possible, " "pick one that best fits the format of data you have available." msgstr "" +"Hay varias funciones disponibles para llamar a un objeto Python. Cada uno " +"convierte sus argumentos a una convención respaldada por el objeto llamado, " +"ya sea *tp_call* o vectorcall. Para realizar la menor conversión posible, " +"elija el que mejor se adapte al formato de datos que tiene disponible." #: ../Doc/c-api/call.rst:191 msgid "" "The following table summarizes the available functions; please see " "individual documentation for details." msgstr "" +"La siguiente tabla resume las funciones disponibles; consulte la " +"documentación individual para obtener más detalles." #: ../Doc/c-api/call.rst:195 msgid "Function" -msgstr "" +msgstr "Función" #: ../Doc/c-api/call.rst:195 msgid "callable" -msgstr "" +msgstr "invocable" #: ../Doc/c-api/call.rst:195 msgid "args" -msgstr "" +msgstr "args" #: ../Doc/c-api/call.rst:195 msgid "kwargs" -msgstr "" +msgstr "kwargs" #: ../Doc/c-api/call.rst:197 msgid ":c:func:`PyObject_Call`" -msgstr "" +msgstr ":c:func:`PyObject_Call`" #: ../Doc/c-api/call.rst:197 ../Doc/c-api/call.rst:199 #: ../Doc/c-api/call.rst:201 ../Doc/c-api/call.rst:203 #: ../Doc/c-api/call.rst:205 ../Doc/c-api/call.rst:209 #: ../Doc/c-api/call.rst:217 ../Doc/c-api/call.rst:219 msgid "``PyObject *``" -msgstr "" +msgstr "``PyObject *``" #: ../Doc/c-api/call.rst:197 msgid "tuple" -msgstr "" +msgstr "tupla" #: ../Doc/c-api/call.rst:197 ../Doc/c-api/call.rst:219 msgid "dict/``NULL``" -msgstr "" +msgstr "dict/``NULL``" #: ../Doc/c-api/call.rst:199 msgid ":c:func:`PyObject_CallNoArgs`" -msgstr "" +msgstr ":c:func:`PyObject_CallNoArgs`" #: ../Doc/c-api/call.rst:199 ../Doc/c-api/call.rst:201 #: ../Doc/c-api/call.rst:203 ../Doc/c-api/call.rst:205 @@ -312,97 +411,102 @@ msgstr "" #: ../Doc/c-api/call.rst:211 ../Doc/c-api/call.rst:213 #: ../Doc/c-api/call.rst:215 msgid "---" -msgstr "" +msgstr "---" #: ../Doc/c-api/call.rst:201 msgid ":c:func:`PyObject_CallOneArg`" -msgstr "" +msgstr ":c:func:`PyObject_CallOneArg`" #: ../Doc/c-api/call.rst:201 ../Doc/c-api/call.rst:215 msgid "1 object" -msgstr "" +msgstr "1 objeto" #: ../Doc/c-api/call.rst:203 msgid ":c:func:`PyObject_CallObject`" -msgstr "" +msgstr ":c:func:`PyObject_CallObject`" #: ../Doc/c-api/call.rst:203 msgid "tuple/``NULL``" -msgstr "" +msgstr "tuple/``NULL``" #: ../Doc/c-api/call.rst:205 msgid ":c:func:`PyObject_CallFunction`" -msgstr "" +msgstr ":c:func:`PyObject_CallFunction`" #: ../Doc/c-api/call.rst:205 ../Doc/c-api/call.rst:207 msgid "format" -msgstr "" +msgstr "formato" #: ../Doc/c-api/call.rst:207 msgid ":c:func:`PyObject_CallMethod`" -msgstr "" +msgstr ":c:func:`PyObject_CallMethod`" #: ../Doc/c-api/call.rst:207 msgid "obj + ``char*``" -msgstr "" +msgstr "obj + ``char*``" #: ../Doc/c-api/call.rst:209 msgid ":c:func:`PyObject_CallFunctionObjArgs`" -msgstr "" +msgstr ":c:func:`PyObject_CallFunctionObjArgs`" #: ../Doc/c-api/call.rst:209 ../Doc/c-api/call.rst:211 msgid "variadic" -msgstr "" +msgstr "variadica" #: ../Doc/c-api/call.rst:211 msgid ":c:func:`PyObject_CallMethodObjArgs`" -msgstr "" +msgstr ":c:func:`PyObject_CallMethodObjArgs`" #: ../Doc/c-api/call.rst:211 ../Doc/c-api/call.rst:213 #: ../Doc/c-api/call.rst:215 msgid "obj + name" -msgstr "" +msgstr "obj + nombre" #: ../Doc/c-api/call.rst:213 msgid ":c:func:`PyObject_CallMethodNoArgs`" -msgstr "" +msgstr ":c:func:`PyObject_CallMethodNoArgs`" #: ../Doc/c-api/call.rst:215 msgid ":c:func:`PyObject_CallMethodOneArg`" -msgstr "" +msgstr ":c:func:`PyObject_CallMethodOneArg`" #: ../Doc/c-api/call.rst:217 msgid ":c:func:`PyObject_Vectorcall`" -msgstr "" +msgstr ":c:func:`PyObject_Vectorcall`" #: ../Doc/c-api/call.rst:217 ../Doc/c-api/call.rst:219 #: ../Doc/c-api/call.rst:221 msgid "vectorcall" -msgstr "" +msgstr "vectorcall" #: ../Doc/c-api/call.rst:219 msgid ":c:func:`PyObject_VectorcallDict`" -msgstr "" +msgstr ":c:func:`PyObject_VectorcallDict`" #: ../Doc/c-api/call.rst:221 msgid ":c:func:`PyObject_VectorcallMethod`" -msgstr "" +msgstr ":c:func:`PyObject_VectorcallMethod`" #: ../Doc/c-api/call.rst:221 msgid "arg + name" -msgstr "" +msgstr "arg + nombre" #: ../Doc/c-api/call.rst:227 msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " "*args*, and named arguments given by the dictionary *kwargs*." msgstr "" +"Llama a un objeto de Python invocable *callable*, con argumentos dados por " +"la tupla *args*, y argumentos con nombre dados por el diccionario *kwargs*." #: ../Doc/c-api/call.rst:230 msgid "" "*args* must not be *NULL*; use an empty tuple if no arguments are needed. If " "no named arguments are needed, *kwargs* can be *NULL*." msgstr "" +"*args* no debe ser *NULL*; use una tupla vacía si no se necesitan " +"argumentos. Si no se necesitan argumentos con nombre, *kwargs* puede ser " +"*NULL*." #: ../Doc/c-api/call.rst:233 ../Doc/c-api/call.rst:245 #: ../Doc/c-api/call.rst:256 ../Doc/c-api/call.rst:269 @@ -414,34 +518,46 @@ msgid "" "Return the result of the call on success, or raise an exception and return " "*NULL* on failure." msgstr "" +"Retorna el resultado de la llamada en caso de éxito o genera una excepción y " +"retorna *NULL* en caso de error." #: ../Doc/c-api/call.rst:236 msgid "" "This is the equivalent of the Python expression: ``callable(*args, " "**kwargs)``." msgstr "" +"Este es el equivalente de la expresión de Python: ``callable(*args, " +"**kwargs)``." #: ../Doc/c-api/call.rst:242 msgid "" "Call a callable Python object *callable* without any arguments. It is the " "most efficient way to call a callable Python object without any argument." msgstr "" +"Llama a un objeto de Python invocable *callable* sin ningún argumento. Es la " +"forma más eficiente de llamar a un objeto Python invocable sin ningún " +"argumento." #: ../Doc/c-api/call.rst:253 msgid "" "Call a callable Python object *callable* with exactly 1 positional argument " "*arg* and no keyword arguments." msgstr "" +"Llama a un objeto de Python invocable *callable* con exactamente 1 argumento " +"posicional *arg* y sin argumentos de palabra clave." #: ../Doc/c-api/call.rst:266 msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " "*args*. If no arguments are needed, then *args* can be *NULL*." msgstr "" +"Llama a un objeto de Python invocable *callable*, con argumentos dados por " +"la tupla *args*. Si no se necesitan argumentos, entonces *args* puede ser " +"*NULL*." #: ../Doc/c-api/call.rst:272 ../Doc/c-api/call.rst:284 msgid "This is the equivalent of the Python expression: ``callable(*args)``." -msgstr "" +msgstr "Este es el equivalente de la expresión de Python: ``callable(*args)``." #: ../Doc/c-api/call.rst:277 msgid "" @@ -450,16 +566,22 @@ msgid "" "style format string. The format can be *NULL*, indicating that no arguments " "are provided." msgstr "" +"Llama a un objeto de Python invocable *callable*, con un número variable de " +"argumentos C. Los argumentos de C se describen usando una cadena de " +"caracteres de formato de estilo :c:func:`Py_BuildValue`. El formato puede " +"ser *NULL*, lo que indica que no se proporcionan argumentos." #: ../Doc/c-api/call.rst:286 msgid "" "Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallFunctionObjArgs` is a faster alternative." msgstr "" +"Tenga en cuenta que si solo pasa :c:type:`PyObject *` args, :c:func:" +"`PyObject_CallFunctionObjArgs` es una alternativa más rápida." #: ../Doc/c-api/call.rst:289 msgid "The type of *format* was changed from ``char *``." -msgstr "" +msgstr "El tipo de *format* se cambió desde ``char *``." #: ../Doc/c-api/call.rst:295 msgid "" @@ -467,26 +589,34 @@ msgid "" "arguments. The C arguments are described by a :c:func:`Py_BuildValue` " "format string that should produce a tuple." msgstr "" +"Llama al método llamado *name* del objeto *obj* con un número variable de " +"argumentos en C. Los argumentos de C se describen mediante una cadena de " +"formato :c:func:`Py_BuildValue` que debería producir una tupla." #: ../Doc/c-api/call.rst:299 msgid "The format can be *NULL*, indicating that no arguments are provided." msgstr "" +"El formato puede ser *NULL*, lo que indica que no se proporcionan argumentos." #: ../Doc/c-api/call.rst:304 msgid "" "This is the equivalent of the Python expression: ``obj.name(arg1, " "arg2, ...)``." msgstr "" +"Este es el equivalente de la expresión de Python: ``obj.name(arg1, " +"arg2, ...)``." #: ../Doc/c-api/call.rst:307 msgid "" "Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallMethodObjArgs` is a faster alternative." msgstr "" +"Tenga en cuenta que si solo pasa :c:type:`PyObject *` args, :c:func:" +"`PyObject_CallMethodObjArgs` es una alternativa más rápida." #: ../Doc/c-api/call.rst:310 msgid "The types of *name* and *format* were changed from ``char *``." -msgstr "" +msgstr "Los tipos de *name* y *format* se cambiaron desde ``char *``." #: ../Doc/c-api/call.rst:316 msgid "" @@ -494,12 +624,17 @@ msgid "" "`PyObject *` arguments. The arguments are provided as a variable number of " "parameters followed by *NULL*." msgstr "" +"Llame a un objeto de Python invocable *callable*, con un número variable de " +"argumentos :c:type:`PyObject *`. Los argumentos se proporcionan como un " +"número variable de parámetros seguidos de *NULL*." #: ../Doc/c-api/call.rst:323 msgid "" "This is the equivalent of the Python expression: ``callable(arg1, " "arg2, ...)``." msgstr "" +"Este es el equivalente de la expresión de Python: ``callable(arg1, " +"arg2, ...)``." #: ../Doc/c-api/call.rst:329 msgid "" @@ -508,12 +643,19 @@ msgid "" "number of :c:type:`PyObject *` arguments. The arguments are provided as a " "variable number of parameters followed by *NULL*." msgstr "" +"Llama a un método del objeto de Python *obj*, donde el nombre del método se " +"proporciona como un objeto de cadena de caracteres de Python en *name*. Se " +"llama con un número variable de argumentos :c:type:`PyObject *`. Los " +"argumentos se proporcionan como un número variable de parámetros seguidos de " +"*NULL*." #: ../Doc/c-api/call.rst:340 msgid "" "Call a method of the Python object *obj* without arguments, where the name " "of the method is given as a Python string object in *name*." msgstr "" +"Llama a un método del objeto de Python *obj* sin argumentos, donde el nombre " +"del método se da como un objeto de cadena de caracteres de Python en *name*." #: ../Doc/c-api/call.rst:353 msgid "" @@ -521,6 +663,9 @@ msgid "" "*arg*, where the name of the method is given as a Python string object in " "*name*." msgstr "" +"Llame a un método del objeto de Python *obj* con un único argumento " +"posicional *arg*, donde el nombre del método se proporciona como un objeto " +"de cadena de caracteres de Python en *name*." #: ../Doc/c-api/call.rst:367 msgid "" @@ -528,6 +673,9 @@ msgid "" "c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly " "calls the vectorcall function stored in *callable*." msgstr "" +"Llama a un objeto de Python invocable *callable*. Los argumentos son los " +"mismos que para :c:type:`vectorcallfunc`. Si *callable* admite vectorcall_, " +"esto llama directamente a la función vectorcall almacenada en *callable*." #: ../Doc/c-api/call.rst:381 msgid "" @@ -535,6 +683,10 @@ msgid "" "vectorcall_ protocol, but with keyword arguments passed as a dictionary " "*kwdict*. The *args* array contains only the positional arguments." msgstr "" +"Llamada *invocable* con argumentos posicionales pasados exactamente como en " +"el protocolo vectorcall_, pero con argumentos de palabras clave pasados como " +"un diccionario *kwdict*. El arreglo *args* contiene solo los argumentos " +"posicionales." #: ../Doc/c-api/call.rst:385 msgid "" @@ -543,6 +695,11 @@ msgid "" "already has a dictionary ready to use for the keyword arguments, but not a " "tuple for the positional arguments." msgstr "" +"Independientemente del protocolo que se utilice internamente, es necesario " +"realizar una conversión de argumentos. Por lo tanto, esta función solo debe " +"usarse si la persona que llama ya tiene un diccionario listo para usar para " +"los argumentos de palabras clave, pero no una tupla para los argumentos " +"posicionales." #: ../Doc/c-api/call.rst:397 msgid "" @@ -555,19 +712,32 @@ msgid "" "temporarily be changed. Keyword arguments can be passed just like in :c:func:" "`PyObject_Vectorcall`." msgstr "" +"Llama a un método usando la convención de llamada vectorcall. El nombre del " +"método se proporciona como una cadena de Python *name*. El objeto cuyo " +"método se llama es *args[0]*, y el arreglo *args* que comienza en *args [1]* " +"representa los argumentos de la llamada. Debe haber al menos un argumento " +"posicional. *nargsf* es el número de argumentos posicionales que incluyen " +"*args [0]*, más :const:`PY_VECTORCALL_ARGUMENTS_OFFSET` si el valor de " +"``args[0]`` puede cambiarse temporalmente. Los argumentos de palabras clave " +"se pueden pasar como en :c:func:`PyObject_Vectorcall`." #: ../Doc/c-api/call.rst:406 msgid "" "If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this " "will call the unbound method object with the full *args* vector as arguments." msgstr "" +"Si el objeto tiene la característica :const:`Py_TPFLAGS_METHOD_DESCRIPTOR`, " +"esto llamará al objeto de método independiente con el vector *args* completo " +"como argumentos." #: ../Doc/c-api/call.rst:419 msgid "Call Support API" -msgstr "" +msgstr "API de soporte de llamadas" #: ../Doc/c-api/call.rst:423 msgid "" "Determine if the object *o* is callable. Return ``1`` if the object is " "callable and ``0`` otherwise. This function always succeeds." msgstr "" +"Determina si el objeto *o* es invocable. Retorna ``1`` si el objeto es " +"invocable y ``0`` en caso contrario. Esta función siempre finaliza con éxito." diff --git a/c-api/capsule.po b/c-api/capsule.po index 67b8bc96f5..cac821e290 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-16 23:16+0200\n" +"PO-Revision-Date: 2021-08-01 20:17+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/capsule.rst:6 msgid "Capsules" @@ -33,7 +34,6 @@ msgstr "" "estos objetos." #: ../Doc/c-api/capsule.rst:17 -#, fuzzy msgid "" "This subtype of :c:type:`PyObject` represents an opaque value, useful for C " "extension modules who need to pass an opaque value (as a :c:type:`void*` " @@ -44,11 +44,10 @@ msgid "" msgstr "" "Este subtipo de :c:type:`PyObject` representa un valor opaco, útil para los " "módulos de extensión C que necesitan pasar un valor opaco (como un puntero :" -"c:type:`void\\*`) a través del código Python a otro código C . A menudo se " -"usa para hacer que un puntero de función C definido en un módulo esté " -"disponible para otros módulos, por lo que el mecanismo de importación " -"regular se puede usar para acceder a las API C definidas en módulos cargados " -"dinámicamente." +"c:type:`void*`) a través del código Python a otro código C . A menudo se usa " +"para hacer que un puntero de función C definido en un módulo esté disponible " +"para otros módulos, por lo que el mecanismo de importación regular se puede " +"usar para acceder a las API C definidas en módulos cargados dinámicamente." #: ../Doc/c-api/capsule.rst:27 msgid "The type of a destructor callback for a capsule. Defined as::" @@ -65,11 +64,12 @@ msgstr "" "devoluciones de llamada de `PyCapsule_Destructor`." #: ../Doc/c-api/capsule.rst:37 -#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyCapsule`. This function always " "succeeds." -msgstr "Retorna verdadero si su argumento es a :c:type:`PyCapsule`." +msgstr "" +"Retorna verdadero si su argumento es a :c:type:`PyCapsule`. Esta función " +"siempre finaliza con éxito." #: ../Doc/c-api/capsule.rst:43 msgid "" diff --git a/c-api/cell.po b/c-api/cell.po index 4ab9f94951..b06c45799a 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 16:47+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-16 13:03+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/cell.rst:6 msgid "Cell Objects" @@ -55,12 +56,12 @@ msgid "The type object corresponding to cell objects." msgstr "El objeto tipo correspondiente a los objetos celda." #: ../Doc/c-api/cell.rst:30 -#, fuzzy msgid "" "Return true if *ob* is a cell object; *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" -"Retorna verdadero si *ob* es un objeto de celda; *ob* no debe ser ``NULL``." +"Retorna verdadero si *ob* es un objeto de celda; *ob* no debe ser ``NULL``. " +"Esta función siempre finaliza con éxito." #: ../Doc/c-api/cell.rst:36 msgid "" diff --git a/c-api/code.po b/c-api/code.po index 42ca1bb7d1..9dfff10ded 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 15:55+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-16 13:04+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/code.rst:8 msgid "Code Objects" @@ -52,11 +53,12 @@ msgstr "" "Python :class:`code`." #: ../Doc/c-api/code.rst:30 -#, fuzzy msgid "" "Return true if *co* is a :class:`code` object. This function always " "succeeds." -msgstr "Retorna verdadero si *co* es un objeto :class:`code`." +msgstr "" +"Retorna verdadero si *co* es un objeto :class:`code`. Esta función siempre " +"finaliza con éxito." #: ../Doc/c-api/code.rst:34 msgid "Return the number of free variables in *co*." diff --git a/c-api/codec.po b/c-api/codec.po index c04d25f992..95a8066e2f 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -45,7 +45,7 @@ msgid "" "the given *encoding*. This function always succeeds." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si hay un códec registrado para el " -"*encoding* dado. Esta función siempre tiene éxito." +"*encoding* dado. Esta función siempre finaliza con éxito." #: ../Doc/c-api/codec.rst:20 msgid "Generic codec based encoding API." diff --git a/c-api/complex.po b/c-api/complex.po index 663f4154f5..9174150e60 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-16 16:48+0200\n" +"PO-Revision-Date: 2021-08-01 20:16+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/complex.rst:6 msgid "Complex Number Objects" @@ -149,22 +150,22 @@ msgstr "" "Python." #: ../Doc/c-api/complex.rst:96 -#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyComplexObject` or a subtype of :" "c:type:`PyComplexObject`. This function always succeeds." msgstr "" -"Retorna verdadero si su argumento es a :c:type:`PyComplexObject` o un " -"subtipo de :c:type:`PyComplexObject`." +"Retorna verdadero si su argumento es un :c:type:`PyComplexObject` o un " +"subtipo de :c:type:`PyComplexObject`. Esta función siempre finaliza con " +"éxito." #: ../Doc/c-api/complex.rst:102 -#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyComplexObject`, but not a " "subtype of :c:type:`PyComplexObject`. This function always succeeds." msgstr "" "Retorna verdadero si su argumento es un :c:type:`PyComplexObject`, pero no " -"un subtipo de :c:type:`PyComplexObject`." +"un subtipo de :c:type:`PyComplexObject`. Esta función siempre finaliza con " +"éxito." #: ../Doc/c-api/complex.rst:108 msgid "" diff --git a/c-api/contextvars.po b/c-api/contextvars.po index ea2531bdcd..dbf6e4bd1d 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -87,7 +87,7 @@ msgid "" "``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *o* es de tipo :c:data:`PyContext_Type`. *o* no debe " -"ser ``NULL``. Esta función siempre tiene éxito." +"ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/contextvars.rst:67 msgid "" @@ -95,7 +95,7 @@ msgid "" "``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *o* es de tipo :c:data:`PyContextVar_Type`. *o* no debe " -"ser ``NULL``. Esta función siempre tiene éxito." +"ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/contextvars.rst:72 msgid "" @@ -103,7 +103,7 @@ msgid "" "``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *o* es de tipo :c:data:`PyContextToken_Type`. *o* no " -"debe ser ``NULL``. Esta función siempre tiene éxito." +"debe ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/contextvars.rst:76 msgid "Context object management functions:" @@ -219,10 +219,3 @@ msgstr "" "Restablece el estado de la variable de contexto *var* a la que estaba antes :" "c:func:`PyContextVar_Set` que retornó el *token* fue llamado. Esta función " "retorna ``0`` en caso de éxito y ``-1`` en caso de error." - -#~ msgid "" -#~ "Clear the context variable free list. Return the total number of freed " -#~ "items. This function always succeeds." -#~ msgstr "" -#~ "Borra la lista libre de variables de contexto. Retorna el número total de " -#~ "artículos liberados. Esta función siempre tiene éxito." diff --git a/c-api/conversion.po b/c-api/conversion.po index d9fe0e4837..51a9259d41 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-17 19:15+0200\n" +"PO-Revision-Date: 2021-08-02 01:41+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/conversion.rst:6 msgid "String conversion and formatting" @@ -32,7 +33,6 @@ msgstr "" "formateadas." #: ../Doc/c-api/conversion.rst:13 -#, fuzzy msgid "" "Output not more than *size* bytes to *str* according to the format string " "*format* and the extra arguments. See the Unix man page :manpage:" @@ -40,10 +40,9 @@ msgid "" msgstr "" "Salida de no más de *size* bytes a *str* según la cadena de caracteres de " "formato *format* y los argumentos adicionales. Consulte la página de manual " -"de Unix :manpage:`snprintf(2)`." +"de Unix :manpage:`snprintf(3)`." #: ../Doc/c-api/conversion.rst:19 -#, fuzzy msgid "" "Output not more than *size* bytes to *str* according to the format string " "*format* and the variable argument list *va*. Unix man page :manpage:" @@ -51,11 +50,9 @@ msgid "" msgstr "" "Salida de no más de *size* bytes a *str* según la cadena de caracteres de " "formato *format* y la lista de argumentos variables *va*. Página de manual " -"de Unix :manpage:`vsnprintf(2)`." +"de Unix :manpage:`vsnprintf(3)`." -# corner cases -> casos de esquina #: ../Doc/c-api/conversion.rst:23 -#, fuzzy msgid "" ":c:func:`PyOS_snprintf` and :c:func:`PyOS_vsnprintf` wrap the Standard C " "library functions :c:func:`snprintf` and :c:func:`vsnprintf`. Their purpose " @@ -68,14 +65,13 @@ msgstr "" "(*corner cases*), que las funciones del Estándar C no hacen." #: ../Doc/c-api/conversion.rst:28 -#, fuzzy msgid "" "The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. " "They never write more than *size* bytes (including the trailing ``'\\0'``) " "into str. Both functions require that ``str != NULL``, ``size > 0`` and " "``format != NULL``." msgstr "" -"Las envolturas aseguran que *str*[*size*-1] sea siempre ``'\\0'`` al " +"Las envolturas aseguran que ``str[size-1]`` sea siempre ``'\\0'`` al " "retornar. Nunca se escriben más de *size* bytes (incluido el ``'\\0'`` del " "final) en *str*. Ambas funciones requieren que ``str != NULL``, ``size > 0`` " "y ``format != NULL``." @@ -98,7 +94,6 @@ msgstr "" "siguiente manera:" #: ../Doc/c-api/conversion.rst:39 -#, fuzzy msgid "" "When ``0 <= rv < size``, the output conversion was successful and *rv* " "characters were written to *str* (excluding the trailing ``'\\0'`` byte at " @@ -106,27 +101,25 @@ msgid "" msgstr "" "Cuando ``0 <= rv < size``, la conversión de salida fue exitosa y los " "caracteres *rv* se escribieron en *str* (excluyendo el byte ``'\\0'`` final " -"en *str*[*rv*])." +"en ``str[rv]``)." #: ../Doc/c-api/conversion.rst:43 -#, fuzzy msgid "" "When ``rv >= size``, the output conversion was truncated and a buffer with " "``rv + 1`` bytes would have been needed to succeed. ``str[size-1]`` is " "``'\\0'`` in this case." msgstr "" "Cuando ``rv >= size``, la conversión de salida se truncó y se habría " -"necesitado un búfer con ``rv + 1`` bytes para tener éxito. *str*[*size*-1] " +"necesitado un búfer con ``rv + 1`` bytes para tener éxito. ``str[size-1]`` " "es ``'\\0'`` en este caso." #: ../Doc/c-api/conversion.rst:47 -#, fuzzy msgid "" "When ``rv < 0``, \"something bad happened.\" ``str[size-1]`` is ``'\\0'`` in " "this case too, but the rest of *str* is undefined. The exact cause of the " "error depends on the underlying platform." msgstr "" -"Cuando ``rv < 0``, \"sucedió algo malo\". *str*[*size*-1] es ``'\\0'`` en " +"Cuando ``rv < 0``, \"sucedió algo malo\". ``str[size-1]`` es ``'\\0'`` en " "este caso también, pero el resto de *str* no está definido. La causa exacta " "del error depende de la plataforma subyacente." @@ -165,7 +158,6 @@ msgstr "" # set -> configura. ¿"define" quizás?. Revisar en varios lugares del archivo #: ../Doc/c-api/conversion.rst:66 -#, fuzzy msgid "" "If endptr is not ``NULL``, convert as much of the string as possible and set " "``*endptr`` to point to the first unconverted character. If no initial " @@ -177,8 +169,8 @@ msgstr "" "de caracteres y configura ``*endptr`` para que apunte al primer carácter no " "convertido. Si ningún segmento inicial de la cadena de caracteres es la " "representación válida de un número de punto flotante, configura ``*endptr`` " -"para que apunte al comienzo de la cadena de caracteres, lanza ``ValueError`` " -"y retorna ``-1.0``." +"para que apunte al comienzo de la cadena de caracteres, lanza ValueError y " +"retorna ``-1.0``." #: ../Doc/c-api/conversion.rst:73 msgid "" @@ -227,9 +219,7 @@ msgstr "" "se ignora. El código de formato ``'r'`` especifica el formato estándar :" "func:`repr`." -# or-ed together #: ../Doc/c-api/conversion.rst:98 -#, fuzzy msgid "" "*flags* can be zero or more of the values ``Py_DTSF_SIGN``, " "``Py_DTSF_ADD_DOT_0``, or ``Py_DTSF_ALT``, or-ed together:" @@ -285,9 +275,7 @@ msgstr "" "responsable de liberar la cadena de caracteres retornada llamando a :c:func:" "`PyMem_Free`." -# case insensitive #: ../Doc/c-api/conversion.rst:124 -#, fuzzy msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`strcmp` except that it ignores the case." @@ -296,9 +284,7 @@ msgstr "" "La función se comporta casi de manera idéntica a :c:func:`strcmp`, excepto " "que ignora el caso." -# case insensitive #: ../Doc/c-api/conversion.rst:130 -#, fuzzy msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`strncmp` except that it ignores the case." diff --git a/c-api/coro.po b/c-api/coro.po index 13bcd4468d..4d2a1c9d97 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 03:22+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-16 13:04+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/coro.rst:6 msgid "Coroutine Objects" @@ -42,13 +43,12 @@ msgid "The type object corresponding to coroutine objects." msgstr "El tipo de objeto correspondiente a los objetos corrutina." #: ../Doc/c-api/coro.rst:26 -#, fuzzy msgid "" "Return true if *ob*'s type is :c:type:`PyCoro_Type`; *ob* must not be " "``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si el tipo de *ob* es :c:type:`PyCoro_Type`; *ob* no debe " -"ser ``NULL``." +"ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/coro.rst:32 msgid "" diff --git a/c-api/datetime.po b/c-api/datetime.po index 902b836446..c5d5e6afd0 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-17 20:20+0200\n" +"PO-Revision-Date: 2021-08-01 20:34+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/datetime.rst:6 msgid "DateTime Objects" @@ -61,99 +62,94 @@ msgid "Type-check macros:" msgstr "Macros de verificación de tipo:" #: ../Doc/c-api/datetime.rst:30 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " "of :c:data:`PyDateTime_DateType`. *ob* must not be ``NULL``. This function " "always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateType` o un " -"subtipo de :c:data:`PyDateTime_DateType`. *ob* no debe ser ``NULL``." +"subtipo de :c:data:`PyDateTime_DateType`. *ob* no debe ser ``NULL``. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:37 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateType`. *ob* no " -"debe ser ``NULL``." +"debe ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:43 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " "subtype of :c:data:`PyDateTime_DateTimeType`. *ob* must not be ``NULL``. " "This function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateTimeType` o un " -"subtipo de :c:data:`PyDateTime_DateTimeType`. *ob* no debe ser ``NULL``." +"subtipo de :c:data:`PyDateTime_DateTimeType`. *ob* no debe ser ``NULL``. " +"Esta función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:50 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateTimeType`. *ob* " -"no debe ser ``NULL``." +"no debe ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:56 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " "of :c:data:`PyDateTime_TimeType`. *ob* must not be ``NULL``. This function " "always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TimeType` o un " -"subtipo de :c:data:`PyDateTime_TimeType`. *ob* no debe ser ``NULL``." +"subtipo de :c:data:`PyDateTime_TimeType`. *ob* no debe ser ``NULL``. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:63 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TimeType`. *ob* no " -"debe ser ``NULL``." +"debe ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:69 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " "of :c:data:`PyDateTime_DeltaType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DeltaType` o un " -"subtipo de :c:data:`PyDateTime_DeltaType`. *ob* no debe ser ``NULL``." +"subtipo de :c:data:`PyDateTime_DeltaType`. *ob* no debe ser ``NULL``. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:76 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DeltaType`. *ob* no " -"debe ser ``NULL``." +"debe ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:82 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " "of :c:data:`PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TZInfoType` o un " -"subtipo de :c:data:`PyDateTime_TZInfoType`. *ob* no debe ser ``NULL``." +"subtipo de :c:data:`PyDateTime_TZInfoType`. *ob* no debe ser ``NULL``. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:89 -#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TZInfoType`. *ob* " -"no debe ser ``NULL``." +"no debe ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/datetime.rst:93 msgid "Macros to create objects:" diff --git a/c-api/dict.po b/c-api/dict.po index 4244f51bd8..091c5a6d24 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-17 19:53+0200\n" +"PO-Revision-Date: 2021-08-01 20:34+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/dict.rst:6 msgid "Dictionary Objects" @@ -41,22 +42,20 @@ msgstr "" "Python. Este es el mismo objeto que :class:`dict` en la capa de Python." #: ../Doc/c-api/dict.rst:24 -#, fuzzy msgid "" "Return true if *p* is a dict object or an instance of a subtype of the dict " "type. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto ``dict`` o una instancia de un subtipo " -"del tipo ``dict``." +"del tipo ``dict``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/dict.rst:30 -#, fuzzy msgid "" "Return true if *p* is a dict object, but not an instance of a subtype of the " "dict type. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto ``dict``, pero no una instancia de un " -"subtipo del tipo ``dict``." +"subtipo del tipo ``dict``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/dict.rst:36 msgid "Return a new empty dictionary, or ``NULL`` on failure." @@ -108,7 +107,6 @@ msgstr "" "referencia a *val*." #: ../Doc/c-api/dict.rst:75 -#, fuzzy msgid "" "Insert *val* into the dictionary *p* using *key* as a key. *key* should be " "a :c:type:`const char*`. The key object is created using " @@ -116,31 +114,31 @@ msgid "" "failure. This function *does not* steal a reference to *val*." msgstr "" "Inserta *val* en el diccionario *p* usando *key* como clave. *key* debe ser " -"un :c:type:`const char\\*`. El objeto clave se crea usando " +"un :c:type:`const char*`. El objeto clave se crea usando " "``PyUnicode_FromString(key)``. Retorna ``0`` en caso de éxito o ``-1`` en " "caso de error. Esta función *no* roba una referencia a *val*." #: ../Doc/c-api/dict.rst:83 -#, fuzzy msgid "" "Remove the entry in dictionary *p* with key *key*. *key* must be hashable; " "if it isn't, :exc:`TypeError` is raised. If *key* is not in the dictionary, :" "exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on failure." msgstr "" "Elimina la entrada en el diccionario *p* con la clave *key*. *key* debe ser " -"*hashable*; si no lo está, :exc:`TypeError` se lanza. Retorna ``0`` en caso " -"de éxito o ``-1`` en caso de error." +"*hashable*; si no lo es, se lanza :exc:`TypeError`. Si *key* no está en el " +"diccionario, se lanza :exc:`KeyError`. Retorna ``0`` en caso de éxito o " +"``-1`` en caso de error." #: ../Doc/c-api/dict.rst:91 -#, fuzzy msgid "" "Remove the entry in dictionary *p* which has a key specified by the string " "*key*. If *key* is not in the dictionary, :exc:`KeyError` is raised. Return " "``0`` on success or ``-1`` on failure." msgstr "" "Elimina la entrada en el diccionario *p* que tiene una clave especificada " -"por la cadena de caracteres *key*. Retorna ``0`` en caso de éxito o ``-1`` " -"en caso de error." +"por la cadena de caracteres *key*. Si *key* no está en el diccionario, se " +"lanza :exc:`KeyError`. Retorna ``0`` en caso de éxito o ``-1`` en caso de " +"error." #: ../Doc/c-api/dict.rst:98 msgid "" @@ -172,13 +170,12 @@ msgstr "" "presente." #: ../Doc/c-api/dict.rst:116 -#, fuzzy msgid "" "This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" "type:`const char*`, rather than a :c:type:`PyObject*`." msgstr "" "Esto es lo mismo que :c:func:`PyDict_GetItem`, pero *key* se especifica como " -"un :c:type:`const char\\*`, en lugar de un :c:type:`PyObject\\*`." +"un :c:type:`const char*`, en lugar de un :c:type:`PyObject*`." #: ../Doc/c-api/dict.rst:119 msgid "" @@ -238,7 +235,6 @@ msgstr "" "``len(p)`` en un diccionario." #: ../Doc/c-api/dict.rst:161 -#, fuzzy msgid "" "Iterate over all key-value pairs in the dictionary *p*. The :c:type:" "`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the " @@ -255,13 +251,13 @@ msgstr "" "`Py_ssize_t` al que se refiere *ppos* debe inicializarse a ``0`` antes de la " "primera llamada a esta función para iniciar la iteración; la función retorna " "verdadero para cada par en el diccionario y falso una vez que todos los " -"pares han sido reportados. Los parámetros *pkey* y *pvalue* deben apuntar a :" -"c:type:`PyObject\\*` variables que se completarán con cada clave y valor, " -"respectivamente, o pueden ser ``NULL``. Cualquier referencia retornada a " -"través de ellos es prestada. *ppos* no debe modificarse durante la " -"iteración. Su valor representa desplazamientos dentro de la estructura " -"interna del diccionario, y dado que la estructura es escasa, los " -"desplazamientos no son consecutivos." +"pares han sido reportados. Los parámetros *pkey* y *pvalue* deben apuntar a " +"variables :c:type:`PyObject*` que se completarán con cada clave y valor, " +"respectivamente, o pueden ser ``NULL``. Todas las referencias retornadas a " +"través de ellos se toman prestadas. *ppos* no debe modificarse durante la " +"iteración. Su valor representa compensaciones dentro de la estructura del " +"diccionario interno y, dado que la estructura es escasa, las compensaciones " +"no son consecutivas." #: ../Doc/c-api/dict.rst:172 msgid "For example::" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index a0cfc181a6..ed151e9e73 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-21 18:38+0200\n" +"PO-Revision-Date: 2021-08-01 20:16+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/exceptions.rst:8 msgid "Exception Handling" @@ -583,7 +584,7 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:377 msgid "The caller must hold the GIL." -msgstr "" +msgstr "La persona que llama debe retener el GIL." #: ../Doc/c-api/exceptions.rst:381 msgid "" @@ -974,13 +975,15 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:640 ../Doc/c-api/exceptions.rst:650 msgid "3.11" -msgstr "" +msgstr "3.11" #: ../Doc/c-api/exceptions.rst:642 msgid "" "``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to " "``PyObject_CallFunction(PyExc_UnicodeEncodeError, \"sOnns\", ...)``." msgstr "" +"``Py_UNICODE`` está obsoleto desde Python 3.3. Migre por favor a " +"``PyObject_CallFunction(PyExc_UnicodeEncodeError, \"sOnns\", ...)``." #: ../Doc/c-api/exceptions.rst:647 msgid "" @@ -996,10 +999,12 @@ msgid "" "``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to " "``PyObject_CallFunction(PyExc_UnicodeTranslateError, \"Onns\", ...)``." msgstr "" +"``Py_UNICODE`` está obsoleto desde Python 3.3. Migre por favor a " +"``PyObject_CallFunction(PyExc_UnicodeTranslateError, \"sOnns\", ...)``." #: ../Doc/c-api/exceptions.rst:658 msgid "Return the *encoding* attribute of the given exception object." -msgstr "retorna el atributo *encoding* del objeto de excepción dado." +msgstr "Retorna el atributo *encoding* del objeto de excepción dado." #: ../Doc/c-api/exceptions.rst:664 msgid "Return the *object* attribute of the given exception object." @@ -1058,7 +1063,6 @@ msgid "Recursion Control" msgstr "Control de Recursión" #: ../Doc/c-api/exceptions.rst:715 -#, fuzzy msgid "" "These two functions provide a way to perform safe recursive calls at the C " "level, both in the core and in extension modules. They are needed if the " @@ -1070,7 +1074,9 @@ msgstr "" "Estas dos funciones proporcionan una forma de realizar llamadas recursivas " "seguras en el nivel C, tanto en el núcleo como en los módulos de extensión. " "Son necesarios si el código recursivo no invoca necesariamente el código " -"Python (que rastrea su profundidad de recursión automáticamente)." +"Python (que rastrea su profundidad de recursión automáticamente). Tampoco " +"son necesarios para las implementaciones de *tp_call* porque :ref:`call " +"protocol ` se encarga del manejo de la recursividad." #: ../Doc/c-api/exceptions.rst:724 msgid "Marks a point where a recursive C-level call is about to be performed." @@ -1099,19 +1105,18 @@ msgstr "" "cero. De lo contrario, se retorna cero." #: ../Doc/c-api/exceptions.rst:734 -#, fuzzy msgid "" "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` " "to be concatenated to the :exc:`RecursionError` message caused by the " "recursion depth limit." msgstr "" -"*where* debería ser una cadena como ``\"en la comprobación de instancia\"`` " -"para concatenarse con el mensaje :exc:`RecursionError` causado por el límite " -"de profundidad de recursión." +"*where* debería ser una cadena de caracteres codificada en UTF-8 como ``\"en " +"la comprobación de instancia\"`` para concatenarse con el mensaje :exc:" +"`RecursionError` causado por el límite de profundidad de recursión." #: ../Doc/c-api/exceptions.rst:738 ../Doc/c-api/exceptions.rst:746 msgid "This function is now also available in the limited API." -msgstr "" +msgstr "Esta función ahora también está disponible en la API limitada." #: ../Doc/c-api/exceptions.rst:743 msgid "" @@ -1188,7 +1193,6 @@ msgid "Standard Exceptions" msgstr "Excepciones Estándar" #: ../Doc/c-api/exceptions.rst:784 -#, fuzzy msgid "" "All standard Python exceptions are available as global variables whose names " "are ``PyExc_`` followed by the Python exception name. These have the type :" @@ -1197,7 +1201,7 @@ msgid "" msgstr "" "Todas las excepciones estándar de Python están disponibles como variables " "globales cuyos nombres son ``PyExc_`` seguidos del nombre de excepción de " -"Python. Estos tienen el tipo :c:type:`PyObject\\*`; Todos son objetos de " +"Python. Estos tienen el tipo :c:type:`PyObject*`; todos son objetos de " "clase. Para completar, aquí están todas las variables:" #: ../Doc/c-api/exceptions.rst:845 ../Doc/c-api/exceptions.rst:978 @@ -1721,7 +1725,6 @@ msgid "Standard Warning Categories" msgstr "Categorías de advertencia estándar" #: ../Doc/c-api/exceptions.rst:1004 -#, fuzzy msgid "" "All standard Python warning categories are available as global variables " "whose names are ``PyExc_`` followed by the Python exception name. These have " @@ -1730,7 +1733,7 @@ msgid "" msgstr "" "Todas las categorías de advertencia estándar de Python están disponibles " "como variables globales cuyos nombres son ``PyExc_`` seguidos del nombre de " -"excepción de Python. Estos tienen el tipo :c:type:`PyObject\\*`; Todos son " +"excepción de Python. Estos tienen el tipo :c:type:`PyObject*`; todos son " "objetos de clase. Para completar, aquí están todas las variables:" #: ../Doc/c-api/exceptions.rst:1025 diff --git a/c-api/file.po b/c-api/file.po index 515d364e4a..3d5c769e26 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -11,22 +11,22 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 20:52+0200\n" +"PO-Revision-Date: 2021-08-01 20:12+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/file.rst:6 msgid "File Objects" msgstr "Objetos archivo" #: ../Doc/c-api/file.rst:10 -#, fuzzy msgid "" "These APIs are a minimal emulation of the Python 2 C API for built-in file " "objects, which used to rely on the buffered I/O (:c:type:`FILE*`) support " @@ -173,6 +173,8 @@ msgid "" "Raises an :ref:`auditing event ` ``setopencodehook`` with no " "arguments." msgstr "" +"Genera un :ref:`evento de auditoría ` ``setopencodehook`` sin " +"argumentos." #: ../Doc/c-api/file.rst:95 msgid "" diff --git a/c-api/float.po b/c-api/float.po index 83ad567622..e3e0e3106f 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 16:21+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 20:11+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/float.rst:6 msgid "Floating Point Objects" @@ -42,22 +43,20 @@ msgstr "" "Python." #: ../Doc/c-api/float.rst:24 -#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyFloatObject` or a subtype of :c:" "type:`PyFloatObject`. This function always succeeds." msgstr "" "Retorna verdadero si su argumento es un :c:type:`PyFloatObject` o un subtipo " -"de :c:type:`PyFloatObject`." +"de :c:type:`PyFloatObject`. Esta función siempre finaliza con éxito." #: ../Doc/c-api/float.rst:30 -#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype " "of :c:type:`PyFloatObject`. This function always succeeds." msgstr "" "Retorna verdadero si su argumento es un :c:type:`PyFloatObject`, pero no un " -"subtipo de :c:type:`PyFloatObject`." +"subtipo de :c:type:`PyFloatObject`. Esta función siempre finaliza con éxito." #: ../Doc/c-api/float.rst:36 msgid "" diff --git a/c-api/function.po b/c-api/function.po index ade513e099..87be2fd9f9 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 16:22+0200\n" +"PO-Revision-Date: 2021-08-16 13:04+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/function.rst:6 msgid "Function Objects" @@ -44,14 +45,14 @@ msgstr "" "FunctionType``." #: ../Doc/c-api/function.rst:28 -#, fuzzy msgid "" "Return true if *o* is a function object (has type :c:data:" "`PyFunction_Type`). The parameter must not be ``NULL``. This function " "always succeeds." msgstr "" "Retorna verdadero si *o* es un objeto función (tiene tipo :c:data:" -"`PyFunction_Type`). El parámetro no debe ser ``NULL``." +"`PyFunction_Type`). El parámetro no debe ser ``NULL``. Esta función siempre " +"finaliza con éxito." #: ../Doc/c-api/function.rst:34 msgid "" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index 88db434861..11b4607a60 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-16 21:14+0200\n" +"PO-Revision-Date: 2021-08-02 01:45+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/gcsupport.rst:6 msgid "Supporting Cyclic Garbage Collection" @@ -132,32 +133,40 @@ msgid "" "Returns non-zero if the object implements the garbage collector protocol, " "otherwise returns 0." msgstr "" +"Retorna un valor distinto de cero si el objeto implementa el protocolo del " +"recolector de basura; de lo contrario, retorna 0." #: ../Doc/c-api/gcsupport.rst:69 msgid "" "The object cannot be tracked by the garbage collector if this function " "returns 0." msgstr "" +"El recolector de basura no puede rastrear el objeto si esta función retorna " +"0." #: ../Doc/c-api/gcsupport.rst:74 msgid "" "Returns 1 if the object type of *op* implements the GC protocol and *op* is " "being currently tracked by the garbage collector and 0 otherwise." msgstr "" +"Retorna 1 si el tipo de objeto de *op* implementa el protocolo GC y el " +"recolector de basura está rastreando *op* y 0 en caso contrario." #: ../Doc/c-api/gcsupport.rst:77 msgid "This is analogous to the Python function :func:`gc.is_tracked`." -msgstr "" +msgstr "Esto es análogo a la función de Python :func:`gc.is_tracked`." #: ../Doc/c-api/gcsupport.rst:84 msgid "" "Returns 1 if the object type of *op* implements the GC protocol and *op* has " "been already finalized by the garbage collector and 0 otherwise." msgstr "" +"Retorna 1 si el tipo de objeto de *op* implementa el protocolo GC y *op* ya " +"ha sido finalizado por el recolector de basura y 0 en caso contrario." #: ../Doc/c-api/gcsupport.rst:87 msgid "This is analogous to the Python function :func:`gc.is_finalized`." -msgstr "" +msgstr "Esto es análogo a la función de Python :func:`gc.is_finalized`." #: ../Doc/c-api/gcsupport.rst:91 msgid "" diff --git a/c-api/gen.po b/c-api/gen.po index de92de3c42..2d01391fc4 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 15:39+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 20:11+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/gen.rst:6 msgid "Generator Objects" @@ -46,21 +47,20 @@ msgid "The type object corresponding to generator objects." msgstr "El objeto tipo correspondiente a los objetos generadores." #: ../Doc/c-api/gen.rst:25 -#, fuzzy msgid "" "Return true if *ob* is a generator object; *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" -"Retorna verdadero si *ob* es un objeto generador; *ob* no debe ser ``NULL``." +"Retorna verdadero si *ob* es un objeto generador; *ob* no debe ser ``NULL``. " +"Esta función siempre finaliza con éxito." #: ../Doc/c-api/gen.rst:31 -#, fuzzy msgid "" "Return true if *ob*'s type is :c:type:`PyGen_Type`; *ob* must not be " "``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si el tipo de *ob* es :c:type:`PyGen_Type`; *ob* no debe " -"ser ``NULL``." +"ser ``NULL``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/gen.rst:37 msgid "" diff --git a/c-api/init.po b/c-api/init.po index 13e6ca23f9..e6ad476e70 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-25 00:27+0200\n" +"PO-Revision-Date: 2021-08-02 02:04+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/init.rst:8 msgid "Initialization, Finalization, and Threads" @@ -1404,28 +1405,29 @@ msgstr "" "pertenezcan." #: ../Doc/c-api/init.rst:832 -#, fuzzy msgid "" "This data structure represents the state of a single thread. The only " "public data member is :attr:`interp` (:c:type:`PyInterpreterState *`), which " "points to this thread's interpreter state." msgstr "" "Esta estructura de datos representa el estado de un solo hilo. El único " -"miembro de datos públicos es :c:type:`PyInterpreterState \\*`:attr:`interp`, " -"que apunta al estado del intérprete de este hilo." +"miembro de datos públicos es :attr:`interp` (:c:type:`PyInterpreterState " +"*`), que apunta al estado del intérprete de este hilo." #: ../Doc/c-api/init.rst:845 msgid "Deprecated function which does nothing." -msgstr "" +msgstr "Función deprecada que no hace nada." #: ../Doc/c-api/init.rst:847 msgid "" "In Python 3.6 and older, this function created the GIL if it didn't exist." msgstr "" +"En Python 3.6 y versiones anteriores, esta función creaba el GIL si no " +"existía." #: ../Doc/c-api/init.rst:849 msgid "The function now does nothing." -msgstr "" +msgstr "La función ahora no hace nada." #: ../Doc/c-api/init.rst:852 msgid "" @@ -1755,6 +1757,8 @@ msgid "" "This function now calls the :c:member:`PyThreadState.on_delete` callback. " "Previously, that happened in :c:func:`PyThreadState_Delete`." msgstr "" +"Esta función ahora llama a la retrollamada :c:member:`PyThreadState." +"on_delete`. Anteriormente, eso sucedía en :c:func:`PyThreadState_Delete`." #: ../Doc/c-api/init.rst:1062 msgid "" @@ -1767,59 +1771,64 @@ msgstr "" "llamada previa a :c:func:`PyThreadState_Clear`." #: ../Doc/c-api/init.rst:1069 -#, fuzzy msgid "" "Destroy the current thread state and release the global interpreter lock. " "Like :c:func:`PyThreadState_Delete`, the global interpreter lock need not be " "held. The thread state must have been reset with a previous call to :c:func:" "`PyThreadState_Clear`." msgstr "" -"Destruye un objeto de estado de hilo. No es necesario mantener el bloqueo " -"global del intérprete. El estado del hilo debe haberse restablecido con una " -"llamada previa a :c:func:`PyThreadState_Clear`." +"Destruye un objeto de estado de hilo y suelta el bloqueo del intérprete " +"global. Como :c:func:`PyThreadState_Delete`, no es necesario mantener el " +"bloqueo del intérprete global. El estado del hilo debe haberse restablecido " +"con una llamada anterior a :c:func:`PyThreadState_Clear`." #: ../Doc/c-api/init.rst:1077 msgid "Get the current frame of the Python thread state *tstate*." -msgstr "" +msgstr "Obtiene el marco actual del estado del hilo de Python *tstate*." #: ../Doc/c-api/init.rst:1079 msgid "" "Return a strong reference. Return ``NULL`` if no frame is currently " "executing." msgstr "" +"Retorna una referencia sólida. Retorna ``NULL`` si no se está ejecutando " +"ningún marco." #: ../Doc/c-api/init.rst:1082 msgid "See also :c:func:`PyEval_GetFrame`." -msgstr "" +msgstr "Vea también :c:func:`PyEval_GetFrame`." #: ../Doc/c-api/init.rst:1084 ../Doc/c-api/init.rst:1093 #: ../Doc/c-api/init.rst:1102 msgid "*tstate* must not be ``NULL``." -msgstr "" +msgstr "*tstate* no debe ser ``NULL``." #: ../Doc/c-api/init.rst:1091 msgid "" "Get the unique thread state identifier of the Python thread state *tstate*." msgstr "" +"Obtiene el identificador de estado de subproceso único del estado del hilo " +"de Python *tstate*." #: ../Doc/c-api/init.rst:1100 msgid "Get the interpreter of the Python thread state *tstate*." -msgstr "" +msgstr "Obtiene el intérprete del estado del hilo de Python *tstate*." #: ../Doc/c-api/init.rst:1109 -#, fuzzy msgid "Get the current interpreter." -msgstr "Retorna el objeto de estado del intérprete principal." +msgstr "Obtiene el intérprete actual." #: ../Doc/c-api/init.rst:1111 msgid "" "Issue a fatal error if there no current Python thread state or no current " "interpreter. It cannot return NULL." msgstr "" +"Emite un error fatal si no hay un estado actual del hilo de Python o no hay " +"un intérprete actual. No puede retornar NULL." #: ../Doc/c-api/init.rst:1114 ../Doc/c-api/init.rst:1124 msgid "The caller must hold the GIL." -msgstr "" +msgstr "La persona que llama debe retener el GIL." #: ../Doc/c-api/init.rst:1121 msgid "" @@ -1850,29 +1859,32 @@ msgstr "" #: ../Doc/c-api/init.rst:1142 msgid "Type of a frame evaluation function." -msgstr "" +msgstr "Tipo de función de evaluación de marcos." #: ../Doc/c-api/init.rst:1144 msgid "" "The *throwflag* parameter is used by the ``throw()`` method of generators: " "if non-zero, handle the current exception." msgstr "" +"El parámetro *throwflag* es usado por el método de generadores ``throw()``: " +"si no es cero, maneja la excepción actual." #: ../Doc/c-api/init.rst:1147 msgid "The function now takes a *tstate* parameter." -msgstr "" +msgstr "La función ahora recibe un parámetro *tstate*." #: ../Doc/c-api/init.rst:1152 msgid "Get the frame evaluation function." -msgstr "" +msgstr "Obtiene la función de evaluación de marcos." #: ../Doc/c-api/init.rst:1154 ../Doc/c-api/init.rst:1162 msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." msgstr "" +"Consulte :pep:`523` \"Adición de una API de evaluación de marcos a CPython\"." #: ../Doc/c-api/init.rst:1160 msgid "Set the frame evaluation function." -msgstr "" +msgstr "Configura la función de evaluación del marco." #: ../Doc/c-api/init.rst:1169 msgid "" @@ -1918,7 +1930,6 @@ msgstr "" "long`." #: ../Doc/c-api/init.rst:1192 -#, fuzzy msgid "" "Acquire the global interpreter lock and set the current thread state to " "*tstate*, which must not be ``NULL``. The lock must have been created " @@ -1927,7 +1938,7 @@ msgstr "" "Adquiere el bloqueo global del intérprete y establece el estado actual del " "hilo en *tstate*, que no debe ser ``NULL``. El bloqueo debe haber sido " "creado anteriormente. Si este hilo ya tiene el bloqueo, se produce un " -"*deadlock*." +"deadlock." #: ../Doc/c-api/init.rst:1203 ../Doc/c-api/init.rst:1241 msgid "" @@ -2306,6 +2317,9 @@ msgid "" "Otherwise, the function *func* can be scheduled to be called from the wrong " "interpreter." msgstr "" +"Para llamar a esta función en un subinterprete, quien llama debe mantener el " +"GIL. De lo contrario, la función *func* se puede programar para que se llame " +"desde el intérprete incorrecto." #: ../Doc/c-api/init.rst:1422 msgid "" @@ -2330,6 +2344,10 @@ msgid "" "from the main interpreter. Each subinterpreter now has its own list of " "scheduled calls." msgstr "" +"Si esta función se llama en un subinterprete, la función *func* ahora está " +"programada para ser llamada desde el subinterprete, en lugar de ser llamada " +"desde el intérprete principal. Cada subinterprete ahora tiene su propia " +"lista de llamadas programadas." #: ../Doc/c-api/init.rst:1440 msgid "Profiling and Tracing" @@ -2552,7 +2570,7 @@ msgstr "" #: ../Doc/c-api/init.rst:1557 ../Doc/c-api/init.rst:1569 msgid "The caller must hold the :term:`GIL`." -msgstr "" +msgstr "La persona que llama debe mantener el :term:`GIL`." #: ../Doc/c-api/init.rst:1562 msgid "" @@ -2625,7 +2643,6 @@ msgid "Thread Local Storage Support" msgstr "Soporte de almacenamiento local de hilo" #: ../Doc/c-api/init.rst:1618 -#, fuzzy msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " @@ -2638,8 +2655,8 @@ msgstr "" "almacenamiento local de hilos (TLS) que envuelve la implementación de TLS " "nativa subyacente para admitir la API de almacenamiento local de hilos de " "nivel Python (:class:`threading.local`). Las API de nivel CPython C son " -"similares a las ofrecidas por *pthreads* y Windows: use una clave de hilo y " -"funciones para asociar un valor de :c:type:`void\\*` por hilo." +"similares a las ofrecidas por pthreads y Windows: use una clave de hilo y " +"funciones para asociar un valor de :c:type:`void*` por hilo." #: ../Doc/c-api/init.rst:1625 msgid "" @@ -2659,7 +2676,6 @@ msgstr "" "hilos." #: ../Doc/c-api/init.rst:1632 -#, fuzzy msgid "" "None of these API functions handle memory management on behalf of the :c:" "type:`void*` values. You need to allocate and deallocate them yourself. If " @@ -2667,10 +2683,9 @@ msgid "" "don't do refcount operations on them either." msgstr "" "Ninguna de estas funciones API maneja la administración de memoria en nombre " -"de los valores :c:type:`void\\*`. Debe asignarlos y desasignarlos usted " -"mismo. Si los valores :c:type:`void\\*` son :c:type:`PyObject\\*`, estas " -"funciones tampoco realizan operaciones de conteo de referencias (*refcount*) " -"en ellos." +"de los valores :c:type:`void*`. Debe asignarlos y desasignarlos usted mismo. " +"Si los valores :c:type:`void*` son :c:type:`PyObject*`, estas funciones " +"tampoco realizan operaciones de conteo de referencias en ellos." #: ../Doc/c-api/init.rst:1640 msgid "Thread Specific Storage (TSS) API" @@ -2816,24 +2831,22 @@ msgstr "" "la misma llave; llamarla en una llave ya destruida es un *no-op*." #: ../Doc/c-api/init.rst:1730 -#, fuzzy msgid "" "Return a zero value to indicate successfully associating a :c:type:`void*` " "value with a TSS key in the current thread. Each thread has a distinct " "mapping of the key to a :c:type:`void*` value." msgstr "" "Retorna un valor cero para indicar la asociación exitosa de un valor a :c:" -"type:`void\\*` con una clave TSS en el hilo actual. Cada hilo tiene un mapeo " -"distinto de la clave a un valor :c:type:`void\\*`." +"type:`void*` con una clave TSS en el hilo actual. Cada hilo tiene un mapeo " +"distinto de la clave a un valor :c:type:`void*`." #: ../Doc/c-api/init.rst:1737 -#, fuzzy msgid "" "Return the :c:type:`void*` value associated with a TSS key in the current " "thread. This returns ``NULL`` if no value is associated with the key in the " "current thread." msgstr "" -"Retorna el valor :c:type:`void\\*` asociado con una clave TSS en el hilo " +"Retorna el valor :c:type:`void*` asociado con una clave TSS en el hilo " "actual. Esto retorna ``NULL`` si no hay ningún valor asociado con la clave " "en el hilo actual." diff --git a/c-api/init_config.po b/c-api/init_config.po index e3b46ea62f..52cf8ae539 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-23 12:35+0200\n" +"PO-Revision-Date: 2021-08-02 01:43+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/init_config.rst:7 msgid "Python Initialization Configuration" @@ -152,9 +153,8 @@ msgid ":c:func:`Py_RunMain`" msgstr ":c:func:`Py_RunMain`" #: ../Doc/c-api/init_config.rst:46 -#, fuzzy msgid ":c:func:`Py_GetArgcArgv`" -msgstr ":c:func:`PyConfig_SetArgv`" +msgstr ":c:func:`Py_GetArgcArgv`" #: ../Doc/c-api/init_config.rst:48 msgid "" @@ -743,6 +743,9 @@ msgid "" "time by ``--with-platlibdir``, overrideable by the ``PYTHONPLATLIBDIR`` " "environment variable." msgstr "" +":data:`sys.platlibdir`: nombre del directorio de la biblioteca de la " +"plataforma, establecido en el momento de la configuración por ``--with-" +"platlibdir``, anulable por la variable de entorno ``PYTHONPLATLIBDIR``." #: ../Doc/c-api/init_config.rst:450 msgid "" @@ -794,6 +797,8 @@ msgstr "" #: ../Doc/c-api/init_config.rst:478 msgid "If non-zero, enable the :ref:`Python Development Mode `." msgstr "" +"Si es distinto de cero, habilita :ref:`Modo de desarrollo de Python " +"`." #: ../Doc/c-api/init_config.rst:482 msgid "If non-zero, dump all objects which are still alive at exit." @@ -802,7 +807,7 @@ msgstr "" #: ../Doc/c-api/init_config.rst:484 msgid "``Py_TRACE_REFS`` macro must be defined in build." -msgstr "" +msgstr "El macro ``Py_TRACE_REFS`` debe ser definido en la construcción." #: ../Doc/c-api/init_config.rst:488 msgid ":data:`sys.exec_prefix`." @@ -1115,15 +1120,16 @@ msgstr ":data:`sys._xoptions`." #: ../Doc/c-api/init_config.rst:700 msgid "Enable PEG parser? Default: 1." -msgstr "" +msgstr "Habilitar parser PEG? Por defecto: 1." #: ../Doc/c-api/init_config.rst:702 msgid "Set to 0 by :option:`-X oldparser <-X>` and :envvar:`PYTHONOLDPARSER`." msgstr "" +"Establecido en 0 por :option:`-X oldparser <-X>` y :envvar:`PYTHONOLDPARSER`." #: ../Doc/c-api/init_config.rst:704 msgid "See also :pep:`617`." -msgstr "" +msgstr "Vea también :pep:`617`." #: ../Doc/c-api/init_config.rst:708 msgid "" @@ -1146,7 +1152,7 @@ msgstr "" #: ../Doc/c-api/init_config.rst:718 msgid "The ``show_alloc_count`` field has been removed." -msgstr "" +msgstr "El campo ``show_alloc_count`` fue removido." #: ../Doc/c-api/init_config.rst:722 msgid "Initialization with PyConfig" @@ -1278,9 +1284,8 @@ msgid ":c:member:`PyConfig.home`" msgstr ":c:member:`PyConfig.home`" #: ../Doc/c-api/init_config.rst:896 -#, fuzzy msgid ":c:member:`PyConfig.platlibdir`" -msgstr ":c:member:`~PyConfig.isolated`" +msgstr ":c:member:`PyConfig.platlibdir`" #: ../Doc/c-api/init_config.rst:897 msgid ":c:member:`PyConfig.pathconfig_warnings`" @@ -1523,11 +1528,13 @@ msgstr "" #: ../Doc/c-api/init_config.rst:989 msgid "Py_GetArgcArgv()" -msgstr "" +msgstr "Py_GetArgcArgv()" #: ../Doc/c-api/init_config.rst:993 msgid "Get the original command line arguments, before Python modified them." msgstr "" +"Obtiene los argumentos originales de la línea de comandos, antes de que " +"Python los modificara." #: ../Doc/c-api/init_config.rst:997 msgid "Multi-Phase Initialization Private Provisional API" @@ -1622,6 +1629,8 @@ msgid "" ":c:member:`PyConfig._isolated_interpreter`: if non-zero, disallow threads, " "subprocesses and fork." msgstr "" +":c:member:`PyConfig._isolated_interpreter`: si no es cero, no permite hilos, " +"subprocesos y bifurcaciones." #: ../Doc/c-api/init_config.rst:1030 msgid "" diff --git a/c-api/intro.po b/c-api/intro.po index 8cae2e5a89..5e83374ff5 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-18 14:17+0200\n" +"PO-Revision-Date: 2021-08-02 01:28+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/intro.rst:8 msgid "Introduction" @@ -235,6 +236,11 @@ msgid "" "possible values are covered in ``case`` statements. Use this in places " "where you might be tempted to put an ``assert(0)`` or ``abort()`` call." msgstr "" +"Use esto cuando tenga una ruta de código a la que no se pueda acceder por " +"diseño. Por ejemplo, en la cláusula ``default:`` en una declaración " +"``switch`` para la cual todos los valores posibles están cubiertos en " +"declaraciones ``case``. Use esto en lugares donde podría tener la tentación " +"de poner una llamada ``assert(0)`` o ``abort()``." #: ../Doc/c-api/intro.rst:115 msgid "" @@ -242,12 +248,18 @@ msgid "" "avoids a warning about unreachable code. For example, the macro is " "implemented with ``__builtin_unreachable()`` on GCC in release mode." msgstr "" +"En el modo de lanzamiento, la macro ayuda al compilador a optimizar el " +"código y evita una advertencia sobre el código inalcanzable. Por ejemplo, la " +"macro se implementa con ``__builtin_unreachable()`` en GCC en modo de " +"lanzamiento." #: ../Doc/c-api/intro.rst:119 msgid "" "A use for ``Py_UNREACHABLE()`` is following a call a function that never " "returns but that is not declared :c:macro:`_Py_NO_RETURN`." msgstr "" +"Un uso de ``Py_UNREACHABLE()`` es seguir una llamada a una función que nunca " +"retorna pero que no está declarada :c:macro:`_Py_NO_RETURN`." #: ../Doc/c-api/intro.rst:122 msgid "" @@ -257,6 +269,12 @@ msgid "" "case, it's better to report the error to the caller. If the error cannot be " "reported to caller, :c:func:`Py_FatalError` can be used." msgstr "" +"Si una ruta de código es un código muy poco probable pero se puede acceder " +"en casos excepcionales, esta macro no debe utilizarse. Por ejemplo, en " +"condiciones de poca memoria o si una llamada al sistema retorna un valor " +"fuera del rango esperado. En este caso, es mejor informar el error a la " +"persona que llama. Si no se puede informar del error a la persona que llama, " +"se puede utilizar :c:func:`Py_FatalError`." #: ../Doc/c-api/intro.rst:132 msgid "Return the absolute value of ``x``." @@ -358,10 +376,9 @@ msgstr "" #: ../Doc/c-api/intro.rst:227 msgid "Objects, Types and Reference Counts" -msgstr "Objetos, Tipos y Conteos de Referencias" +msgstr "Objetos, tipos y conteos de referencias" #: ../Doc/c-api/intro.rst:231 -#, fuzzy msgid "" "Most Python/C API functions have one or more arguments as well as a return " "value of type :c:type:`PyObject*`. This type is a pointer to an opaque data " @@ -376,7 +393,7 @@ msgid "" "objects." msgstr "" "La mayoría de las funciones de Python/C API tienen uno o más argumentos, así " -"como un valor de retorno de tipo :c:type:`PyObject\\*`. Este tipo es un " +"como un valor de retorno de tipo :c:type:`PyObject*`. Este tipo es un " "puntero a un tipo de datos opaco que representa un objeto arbitrario de " "Python. Dado que todos los tipos de objetos Python son tratados de la misma " "manera por el lenguaje Python en la mayoría de las situaciones (por ejemplo, " @@ -384,7 +401,7 @@ msgstr "" "estén representados por un solo tipo C. Casi todos los objetos de Python " "viven en el montículo (*heap*): nunca declaras una variable automática o " "estática de tipo :c:type:`PyObject`, solo se pueden declarar variables de " -"puntero de tipo :c:type:`PyObject\\*`. La única excepción son los objetos " +"puntero de tipo :c:type:`PyObject*`. La única excepción son los objetos " "tipo; como nunca deben desasignarse, son típicamente objetos estáticos :c:" "type:`PyTypeObject`." @@ -728,7 +745,6 @@ msgid "Types" msgstr "Tipos" #: ../Doc/c-api/intro.rst:497 -#, fuzzy msgid "" "There are few other data types that play a significant role in the Python/C " "API; most are simple C types such as :c:type:`int`, :c:type:`long`, :c:type:" @@ -740,7 +756,7 @@ msgid "" msgstr "" "Hay algunos otros tipos de datos que juegan un papel importante en la API de " "Python/C; la mayoría son tipos C simples como :c:type:`int`, :c:type:" -"`long`, :c:type:`double` y :c:type:`char\\*`. Algunos tipos de estructura se " +"`long`, :c:type:`double` y :c:type:`char*`. Algunos tipos de estructura se " "usan para describir tablas estáticas que se usan para enumerar las funciones " "exportadas por un módulo o los atributos de datos de un nuevo tipo de " "objeto, y otro se usa para describir el valor de un número complejo. Estos " diff --git a/c-api/iter.po b/c-api/iter.po index 46463103a5..bf2db8cb9a 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 03:18+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-16 13:04+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/iter.rst:6 msgid "Iterator Protocol" @@ -30,11 +31,12 @@ msgid "There are two functions specifically for working with iterators." msgstr "Hay dos funciones específicas para trabajar con iteradores." #: ../Doc/c-api/iter.rst:12 -#, fuzzy msgid "" "Return true if the object *o* supports the iterator protocol. This function " "always succeeds." -msgstr "Retorna verdadero si el objeto *o* admite el protocolo iterador." +msgstr "" +"Retorna verdadero si el objeto *o* admite el protocolo iterador. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/iter.rst:18 msgid "" diff --git a/c-api/iterator.po b/c-api/iterator.po index 2ce3837017..99b644b2ea 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 15:46+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 20:11+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/iterator.rst:6 msgid "Iterator Objects" @@ -50,11 +51,12 @@ msgstr "" "tipos de secuencia incorporados." #: ../Doc/c-api/iterator.rst:24 -#, fuzzy msgid "" "Return true if the type of *op* is :c:data:`PySeqIter_Type`. This function " "always succeeds." -msgstr "Retorna verdadero si el tipo de *op* es :c:data:`PySeqIter_Type`." +msgstr "" +"Retorna verdadero si el tipo de *op* es :c:data:`PySeqIter_Type`. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/iterator.rst:30 msgid "" @@ -76,11 +78,12 @@ msgstr "" "func:`iter`." #: ../Doc/c-api/iterator.rst:43 -#, fuzzy msgid "" "Return true if the type of *op* is :c:data:`PyCallIter_Type`. This function " "always succeeds." -msgstr "Retorna verdadero si el tipo de *op* es :c:data:`PyCallIter_Type`." +msgstr "" +"Retorna verdadero si el tipo de *op* es :c:data:`PyCallIter_Type`. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/iterator.rst:49 msgid "" diff --git a/c-api/list.po b/c-api/list.po index 8b0e8aa0da..0790f22707 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 23:47+0200\n" +"PO-Revision-Date: 2021-08-01 20:11+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/list.rst:6 msgid "List Objects" @@ -39,22 +40,20 @@ msgstr "" "Python. Este es el mismo objeto que :class:`list` en la capa de Python." #: ../Doc/c-api/list.rst:24 -#, fuzzy msgid "" "Return true if *p* is a list object or an instance of a subtype of the list " "type. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto de lista o una instancia de un subtipo " -"del tipo lista." +"del tipo lista. Esta función siempre finaliza con éxito." #: ../Doc/c-api/list.rst:30 -#, fuzzy msgid "" "Return true if *p* is a list object, but not an instance of a subtype of the " "list type. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto lista, pero no una instancia de un " -"subtipo del tipo lista." +"subtipo del tipo lista. Esta función siempre finaliza con éxito." #: ../Doc/c-api/list.rst:36 msgid "Return a new list of length *len* on success, or ``NULL`` on failure." diff --git a/c-api/long.po b/c-api/long.po index 8d9a232176..01f38422be 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-21 22:18+0200\n" +"PO-Revision-Date: 2021-08-02 01:24+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/long.rst:6 msgid "Integer Objects" @@ -56,22 +57,20 @@ msgstr "" "Python. Este es el mismo objeto que :class:`int` en la capa de Python." #: ../Doc/c-api/long.rst:29 -#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyLongObject` or a subtype of :c:" "type:`PyLongObject`. This function always succeeds." msgstr "" "Retorna verdadero si su argumento es un :c:type:`PyLongObject` o un subtipo " -"de :c:type:`PyLongObject`." +"de :c:type:`PyLongObject`. Esta función siempre finaliza con éxito." #: ../Doc/c-api/long.rst:35 -#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyLongObject`, but not a subtype " "of :c:type:`PyLongObject`. This function always succeeds." msgstr "" "Retorna verdadero si su argumento es un :c:type:`PyLongObject`, pero no un " -"subtipo de :c:type:`PyLongObject`." +"subtipo de :c:type:`PyLongObject`. Esta función siempre finaliza con éxito." #: ../Doc/c-api/long.rst:41 msgid "" @@ -81,7 +80,6 @@ msgstr "" "de error." #: ../Doc/c-api/long.rst:43 -#, fuzzy msgid "" "The current implementation keeps an array of integer objects for all " "integers between ``-5`` and ``256``, when you create an int in that range " @@ -89,9 +87,7 @@ msgid "" msgstr "" "La implementación actual mantiene un arreglo de objetos enteros para todos " "los enteros entre ``-5`` y ``256``, cuando crea un *int* en ese rango, en " -"realidad solo obtiene una referencia al objeto existente. Por lo tanto, " -"debería ser posible cambiar el valor de ``1``. Sospecho que el " -"comportamiento de Python en este caso no está definido. :-)" +"realidad solo obtiene una referencia al objeto existente." #: ../Doc/c-api/long.rst:50 msgid "" @@ -167,6 +163,7 @@ msgstr "" #: ../Doc/c-api/long.rst:99 msgid "Convert a sequence of Unicode digits to a Python integer value." msgstr "" +"Convierte una secuencia de dígitos Unicode en un valor entero de Python." #: ../Doc/c-api/long.rst:103 msgid "" @@ -181,6 +178,8 @@ msgid "" "Convert a sequence of Unicode digits in the string *u* to a Python integer " "value." msgstr "" +"Convierte una secuencia de dígitos Unicode en la cadena de caracteres *u* en " +"un valor entero de Python." #: ../Doc/c-api/long.rst:116 msgid "" @@ -262,15 +261,14 @@ msgstr "" "c:type:`long long`." #: ../Doc/c-api/long.rst:194 -#, fuzzy msgid "" "If the value of *obj* is greater than :const:`LLONG_MAX` or less than :const:" "`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return " "``-1``; otherwise, set *\\*overflow* to ``0``. If any other exception " "occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -"Si el valor de *obj* es mayor que :const:`LONG_MAX` o menor que :const:" -"`LONG_MIN`, establece *\\*overflow * en ``1`` o ``-1``, respectivamente, y " +"Si el valor de *obj* es mayor que :const:`LLONG_MAX` o menor que :const:" +"`LLONG_MIN`, establece *\\*overflow* en ``1`` o ``-1``, respectivamente, y " "retorna ``-1``; de lo contrario, establece *\\*overflow* en ``0``. Si se " "produce alguna otra excepción, configura *\\*overflow* en ``0`` y retorna " "``-1`` como de costumbre." @@ -410,13 +408,12 @@ msgstr "" "convertirlo en un :c:type:`PyLongObject`." #: ../Doc/c-api/long.rst:302 -#, fuzzy msgid "" "If the value of *obj* is out of range for an :c:type:`unsigned long long`, " "return the reduction of that value modulo ``ULLONG_MAX + 1``." msgstr "" "Si el valor de *obj* está fuera del rango para :c:type:`unsigned long long`, " -"retorna la reducción de ese valor módulo ``PY_ULLONG_MAX + 1``." +"retorna la reducción de ese valor módulo ``ULLONG_MAX + 1``." #: ../Doc/c-api/long.rst:305 msgid "" diff --git a/c-api/mapping.po b/c-api/mapping.po index 264b5676e3..874d0f1840 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -45,7 +45,7 @@ msgstr "" "rebanado (*slicing*), y ``0`` de lo contrario. Tenga en cuenta que retorna " "``1`` para las clases de Python con un método :meth:`__getitem__` ya que, en " "general, es imposible determinar qué tipo de claves admite. Esta función " -"siempre tiene éxito." +"siempre finaliza con éxito." #: ../Doc/c-api/mapping.rst:25 msgid "" @@ -104,7 +104,7 @@ msgid "" msgstr "" "Retorna ``1`` si el objeto de mapeo tiene la clave *key* y ``0`` de lo " "contrario. Esto es equivalente a la expresión de Python ``key in o``. Esta " -"función siempre tiene éxito." +"función siempre finaliza con éxito." #: ../Doc/c-api/mapping.rst:63 msgid "" diff --git a/c-api/marshal.po b/c-api/marshal.po index 437de6aac4..d506153e52 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 15:52+0200\n" +"PO-Revision-Date: 2021-08-01 20:28+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/marshal.rst:6 msgid "Data marshalling support" @@ -91,15 +92,14 @@ msgstr "" "(*marshalled*)." #: ../Doc/c-api/marshal.rst:46 -#, fuzzy msgid "" "Return a C :c:type:`long` from the data stream in a :c:type:`FILE*` opened " "for reading. Only a 32-bit value can be read in using this function, " "regardless of the native size of :c:type:`long`." msgstr "" -"Retorna un C :c:type:`long` del flujo de datos en un :c:type:`FILE\\*` " -"abierto para lectura. Solo se puede leer un valor de 32 bits con esta " -"función, independientemente del tamaño nativo de :c:type:`long`." +"Retorna un C :c:type:`long` del flujo de datos en un :c:type:`FILE*` abierto " +"para lectura. Solo se puede leer un valor de 32 bits con esta función, " +"independientemente del tamaño nativo de :c:type:`long`." #: ../Doc/c-api/marshal.rst:50 ../Doc/c-api/marshal.rst:60 msgid "" @@ -110,23 +110,21 @@ msgstr "" "retorna ``-1``." #: ../Doc/c-api/marshal.rst:56 -#, fuzzy msgid "" "Return a C :c:type:`short` from the data stream in a :c:type:`FILE*` opened " "for reading. Only a 16-bit value can be read in using this function, " "regardless of the native size of :c:type:`short`." msgstr "" -"Retorna un C :c:type:`short` desde el flujo de datos en un :c:type:`FILE\\*` " +"Retorna un C :c:type:`short` desde el flujo de datos en un :c:type:`FILE*` " "abierto para lectura. Solo se puede leer un valor de 16 bits con esta " "función, independientemente del tamaño nativo de :c:type:`short`." #: ../Doc/c-api/marshal.rst:66 -#, fuzzy msgid "" "Return a Python object from the data stream in a :c:type:`FILE*` opened for " "reading." msgstr "" -"Retorna un objeto Python del flujo de datos en un :c:type:`FILE\\*` abierto " +"Retorna un objeto Python del flujo de datos en un :c:type:`FILE*` abierto " "para lectura." #: ../Doc/c-api/marshal.rst:69 ../Doc/c-api/marshal.rst:83 @@ -139,7 +137,6 @@ msgstr "" "`ValueError` o :exc:`TypeError`) y retorna ``NULL``." #: ../Doc/c-api/marshal.rst:75 -#, fuzzy msgid "" "Return a Python object from the data stream in a :c:type:`FILE*` opened for " "reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " @@ -149,7 +146,7 @@ msgid "" "file. Only use these variant if you are certain that you won't be reading " "anything else from the file." msgstr "" -"Retorna un objeto Python del flujo de datos en un :c:type:`FILE\\*` abierto " +"Retorna un objeto Python del flujo de datos en un :c:type:`FILE*` abierto " "para lectura. A diferencia de :c:func:`PyMarshal_ReadObjectFromFile`, esta " "función asume que no se leerán más objetos del archivo, lo que le permite " "cargar agresivamente los datos del archivo en la memoria para que la " diff --git a/c-api/memory.po b/c-api/memory.po index a2a6e670d3..e3b6a10bdb 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-21 21:14+0200\n" +"PO-Revision-Date: 2021-08-02 01:22+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/memory.rst:8 msgid "Memory Management" @@ -199,12 +200,11 @@ msgstr "" #: ../Doc/c-api/memory.rst:112 ../Doc/c-api/memory.rst:183 #: ../Doc/c-api/memory.rst:285 -#, fuzzy msgid "" "Allocates *n* bytes and returns a pointer of type :c:type:`void*` to the " "allocated memory, or ``NULL`` if the request fails." msgstr "" -"Asigna *n* bytes y retorna un puntero de tipo :c:type:`void\\*` a la memoria " +"Asigna *n* bytes y retorna un puntero de tipo :c:type:`void*` a la memoria " "asignada, o ``NULL`` si la solicitud falla." #: ../Doc/c-api/memory.rst:115 @@ -219,14 +219,13 @@ msgstr "" #: ../Doc/c-api/memory.rst:122 ../Doc/c-api/memory.rst:193 #: ../Doc/c-api/memory.rst:295 -#, fuzzy msgid "" "Allocates *nelem* elements each whose size in bytes is *elsize* and returns " "a pointer of type :c:type:`void*` to the allocated memory, or ``NULL`` if " "the request fails. The memory is initialized to zeros." msgstr "" "Asigna *nelem* elementos cada uno cuyo tamaño en bytes es *elsize* y retorna " -"un puntero de tipo :c:type:`void\\*` a la memoria asignada, o ``NULL`` si la " +"un puntero de tipo :c:type:`void*` a la memoria asignada, o ``NULL`` si la " "solicitud falla. La memoria se inicializa a ceros." #: ../Doc/c-api/memory.rst:126 @@ -399,18 +398,16 @@ msgstr "" "Tenga en cuenta que *TYPE* se refiere a cualquier tipo de C." #: ../Doc/c-api/memory.rst:235 -#, fuzzy msgid "" "Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes " "of memory. Returns a pointer cast to :c:type:`TYPE*`. The memory will not " "have been initialized in any way." msgstr "" "Igual que :c:func:`PyMem_Malloc`, pero asigna ``(n * sizeof(TYPE))`` bytes " -"de memoria. retorna una conversión de puntero a :c:type:`TYPE\\*`. La " -"memoria no se habrá inicializado de ninguna manera." +"de memoria. Retorna una conversión de puntero a :c:type:`TYPE*`. La memoria " +"no se habrá inicializado de ninguna manera." #: ../Doc/c-api/memory.rst:242 -#, fuzzy msgid "" "Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * " "sizeof(TYPE))`` bytes. Returns a pointer cast to :c:type:`TYPE*`. On " @@ -418,9 +415,9 @@ msgid "" "event of failure." msgstr "" "Igual que :c:func:`PyMem_Realloc`, pero el bloque de memoria cambia de " -"tamaño a ``(n * sizeof(TYPE))`` bytes. retorna una conversión de puntero a :" -"c:type:`TYPE\\*`. Al regresar, *p* será un puntero a la nueva área de " -"memoria, o ``NULL`` en caso de falla." +"tamaño a ``(n * sizeof(TYPE))`` bytes. Retorna una conversión de puntero a :" +"c:type:`TYPE*`. Al retornar, *p* será un puntero a la nueva área de memoria, " +"o ``NULL`` en caso de falla." #: ../Doc/c-api/memory.rst:247 msgid "" @@ -973,9 +970,8 @@ msgid "allocate an arena of size bytes" msgstr "asignar una arena de bytes de tamaño" #: ../Doc/c-api/memory.rst:519 -#, fuzzy msgid "``void free(void *ctx, void *ptr, size_t size)``" -msgstr "``void* realloc(void *ctx, void *ptr, size_t new_size)``" +msgstr "``void free(void *ctx, void *ptr, size_t size)``" #: ../Doc/c-api/memory.rst:519 msgid "free an arena" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 997173f787..5064cd7ada 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 00:37+0200\n" +"PO-Revision-Date: 2021-08-01 20:28+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/memoryview.rst:9 msgid "MemoryView objects" @@ -81,18 +82,17 @@ msgstr "" "realiza una copia y la vista de memoria apunta a un nuevo objeto de bytes." #: ../Doc/c-api/memoryview.rst:47 -#, fuzzy msgid "" "Return true if the object *obj* is a memoryview object. It is not currently " "allowed to create subclasses of :class:`memoryview`. This function always " "succeeds." msgstr "" "Retorna verdadero si el objeto *obj* es un objeto de vista de memoria. " -"Actualmente no está permitido crear subclases de :class:`memoryview`." +"Actualmente no está permitido crear subclases de :class:`memoryview`. Esta " +"función siempre finaliza con éxito." # crashes -> bloquearse #: ../Doc/c-api/memoryview.rst:54 -#, fuzzy msgid "" "Return a pointer to the memoryview's private copy of the exporter's buffer. " "*mview* **must** be a memoryview instance; this macro doesn't check its " @@ -100,8 +100,7 @@ msgid "" msgstr "" "Retorna un puntero a la copia privada de la vista de memoria del búfer del " "exportador. *mview* **debe** ser una instancia de *memoryview*; este macro " -"no verifica su tipo, debe hacerlo usted mismo o correrá el riesgo de " -"bloquearse." +"no verifica su tipo, debe hacerlo usted mismo o correrá el riesgo de fallas." #: ../Doc/c-api/memoryview.rst:60 msgid "" diff --git a/c-api/method.po b/c-api/method.po index 96ab68955f..700f8bd972 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 02:17+0200\n" +"PO-Revision-Date: 2021-08-01 20:26+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/method.rst:6 msgid "Instance Method Objects" @@ -44,14 +45,14 @@ msgstr "" "instancia de Python. No está expuesto a los programas de Python." #: ../Doc/c-api/method.rst:23 -#, fuzzy msgid "" "Return true if *o* is an instance method object (has type :c:data:" "`PyInstanceMethod_Type`). The parameter must not be ``NULL``. This function " "always succeeds." msgstr "" "Retorna verdadero si *o* es un objeto de método de instancia (tiene tipo :c:" -"data:`PyInstanceMethod_Type`). El parámetro no debe ser ``NULL``." +"data:`PyInstanceMethod_Type`). El parámetro no debe ser ``NULL``. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/method.rst:30 msgid "" @@ -100,13 +101,13 @@ msgstr "" "MethodType``." #: ../Doc/c-api/method.rst:67 -#, fuzzy msgid "" "Return true if *o* is a method object (has type :c:data:`PyMethod_Type`). " "The parameter must not be ``NULL``. This function always succeeds." msgstr "" "Retorna verdadero si *o* es un objeto de método (tiene tipo :c:data:" -"`PyMethod_Type`). El parámetro no debe ser ``NULL``." +"`PyMethod_Type`). El parámetro no debe ser ``NULL``. Esta función siempre " +"finaliza con éxito." #: ../Doc/c-api/method.rst:73 msgid "" diff --git a/c-api/module.po b/c-api/module.po index 4892818054..8f38cdf4cf 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-08 00:01+0200\n" +"PO-Revision-Date: 2021-08-02 01:21+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/module.rst:6 msgid "Module Objects" @@ -35,22 +36,20 @@ msgstr "" "ModuleType``." #: ../Doc/c-api/module.rst:21 -#, fuzzy msgid "" "Return true if *p* is a module object, or a subtype of a module object. This " "function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto de módulo o un subtipo de un objeto de " -"módulo." +"módulo. Esta función siempre finaliza con éxito." #: ../Doc/c-api/module.rst:27 -#, fuzzy msgid "" "Return true if *p* is a module object, but not a subtype of :c:data:" "`PyModule_Type`. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto módulo, pero no un subtipo de :c:data:" -"`PyModule_Type`." +"`PyModule_Type`. Esta función siempre finaliza con éxito." #: ../Doc/c-api/module.rst:40 msgid "" @@ -298,6 +297,8 @@ msgid "" "A traversal function to call during GC traversal of the module object, or " "``NULL`` if not needed." msgstr "" +"Una función transversal para llamar durante el recorrido GC del objeto del " +"módulo, o ``NULL`` si no es necesario." #: ../Doc/c-api/module.rst:202 ../Doc/c-api/module.rst:217 #: ../Doc/c-api/module.rst:232 @@ -309,23 +310,33 @@ msgid "" "0 and the module state (as returned by :c:func:`PyModule_GetState`) is " "``NULL``." msgstr "" +"Esta función no se llama si se solicitó el estado del módulo pero aún no se " +"asignó. Este es el caso inmediatamente después de que se crea el módulo y " +"antes de que se ejecute (la función :c:data:`Py_mod_exec`). Más " +"precisamente, esta función no se llama si :c:member:`m_size` es mayor que 0 " +"y el estado del módulo (como lo retorna :c:func:`PyModule_GetState`) es " +"``NULL``." #: ../Doc/c-api/module.rst:209 ../Doc/c-api/module.rst:224 #: ../Doc/c-api/module.rst:239 msgid "No longer called before the module state is allocated." -msgstr "" +msgstr "Ya no se llama antes de que se asigne el estado del módulo." #: ../Doc/c-api/module.rst:214 msgid "" "A clear function to call during GC clearing of the module object, or " "``NULL`` if not needed." msgstr "" +"Una función clara para llamar durante la limpieza GC del objeto del módulo, " +"o ``NULL`` si no es necesario." #: ../Doc/c-api/module.rst:229 msgid "" "A function to call during deallocation of the module object, or ``NULL`` if " "not needed." msgstr "" +"Una función para llamar durante la desasignación del objeto del módulo, o " +"``NULL`` si no es necesario." #: ../Doc/c-api/module.rst:243 msgid "Single-phase initialization" @@ -681,7 +692,6 @@ msgstr "" "funciones para ayudar a inicializar el estado del módulo:" #: ../Doc/c-api/module.rst:443 -#, fuzzy msgid "" "Add an object to *module* as *name*. This is a convenience function which " "can be used from the module's initialization function. This steals a " @@ -754,6 +764,10 @@ msgid "" "the last component of :c:member:`~PyTypeObject.tp_name` after dot. Return " "``-1`` on error, ``0`` on success." msgstr "" +"Agrega un objeto tipo a *module*. El objeto tipo se finaliza llamando " +"internamente :c:func:`PyType_Ready`. El nombre del objeto tipo se toma del " +"último componente de :c:member:`~PyTypeObject.tp_name` después del punto. " +"Retorna ``-1`` en caso de error, ``0`` en caso de éxito." #: ../Doc/c-api/module.rst:500 msgid "Module lookup" @@ -828,7 +842,7 @@ msgstr "" #: ../Doc/c-api/module.rst:531 ../Doc/c-api/module.rst:542 msgid "The caller must hold the GIL." -msgstr "" +msgstr "La persona que llama debe retener el GIL." #: ../Doc/c-api/module.rst:533 msgid "Return 0 on success or -1 on failure." diff --git a/c-api/number.po b/c-api/number.po index 9644477f2e..6b29cd5fe1 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -32,7 +32,7 @@ msgid "" "otherwise. This function always succeeds." msgstr "" "Retorna ``1`` si el objeto *o* proporciona protocolos numéricos, y falso en " -"caso contrario. Esta función siempre tiene éxito." +"caso contrario. Esta función siempre finaliza con éxito." #: ../Doc/c-api/number.rst:14 msgid "Returns ``1`` if *o* is an index integer." diff --git a/c-api/objbuffer.po b/c-api/objbuffer.po index 4d7cca2b1f..0b3ba86747 100644 --- a/c-api/objbuffer.po +++ b/c-api/objbuffer.po @@ -86,7 +86,7 @@ msgid "" "Otherwise returns ``0``. This function always succeeds." msgstr "" "Retorna ``1`` si *o* admite la interfaz de búfer legible de segmento único. " -"De lo contrario, retorna ``0``. Esta función siempre tiene éxito." +"De lo contrario, retorna ``0``. Esta función siempre finaliza con éxito." #: ../Doc/c-api/objbuffer.rst:44 msgid "" diff --git a/c-api/object.po b/c-api/object.po index a32f642da5..2472631219 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-07 22:35+0200\n" +"PO-Revision-Date: 2021-08-16 13:01+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/object.rst:6 msgid "Object Protocol" @@ -429,7 +430,6 @@ msgstr "" "de error, retorna ``-1``." #: ../Doc/c-api/object.rst:289 -#, fuzzy msgid "" "When *o* is non-``NULL``, returns a type object corresponding to the object " "type of object *o*. On failure, raises :exc:`SystemError` and returns " @@ -439,14 +439,13 @@ msgid "" ">ob_type``, which returns a pointer of type :c:type:`PyTypeObject*`, except " "when the incremented reference count is needed." msgstr "" -"Cuando *o* no es ``NULL``, retorna un objeto de tipo correspondiente al tipo " -"de objeto del objeto *o*. En caso de error, genera :exc:`SystemError` y " +"Cuando *o* no es ``NULL``, retorna un tipo de objeto correspondiente al tipo " +"de objeto del objeto *o*. En caso de falla, lanza :exc:`SystemError` y " "retorna ``NULL``. Esto es equivalente a la expresión de Python ``type(o)``. " -"Esta función incrementa el conteo de referencia del valor de retorno. " -"Realmente no hay ninguna razón para usar esta función en lugar de la " -"expresión común ``o- ob_type``, que retorna un puntero de tipo :c:type:" -"`PyTypeObject\\*`, excepto cuando se necesita el recuento de referencia " -"incrementado." +"Esta función incrementa el recuento de referencia del valor de retorno. " +"Realmente no hay razón para usar esta función en lugar de la expresión común " +"``o->ob_type``, que retorna un puntero de tipo :c:type:`PyTypeObject*`, " +"excepto cuando se necesita el recuento de referencias incrementado." #: ../Doc/c-api/object.rst:300 msgid "" diff --git a/c-api/reflection.po b/c-api/reflection.po index 681963d62f..06fd762888 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 02:56+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 20:24+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/reflection.rst:6 msgid "Reflection" @@ -60,32 +61,36 @@ msgstr "" #: ../Doc/c-api/reflection.rst:31 msgid "See also :c:func:`PyThreadState_GetFrame`." -msgstr "" +msgstr "Vea también :c:func:`PyThreadState_GetFrame`." #: ../Doc/c-api/reflection.rst:36 msgid "Get the *frame* next outer frame." -msgstr "" +msgstr "Obtiene el *frame* siguiente marco (*frame*) exterior." #: ../Doc/c-api/reflection.rst:38 msgid "Return a strong reference, or ``NULL`` if *frame* has no outer frame." msgstr "" +"Devuelve una referencia fuerte o ``NULL`` si *frame* no tiene un marco " +"exterior." #: ../Doc/c-api/reflection.rst:40 ../Doc/c-api/reflection.rst:60 msgid "*frame* must not be ``NULL``." -msgstr "" +msgstr "*frame* no debe ser ``NULL``." #: ../Doc/c-api/reflection.rst:47 msgid "Get the *frame* code." -msgstr "" +msgstr "Obtiene el código *frame*." #: ../Doc/c-api/reflection.rst:49 msgid "Return a strong reference." -msgstr "" +msgstr "Retorna una referencia fuerte." #: ../Doc/c-api/reflection.rst:51 msgid "" "*frame* must not be ``NULL``. The result (frame code) cannot be ``NULL``." msgstr "" +"*frame* no debe ser ``NULL``. El resultado (código del marco) no puede ser " +"``NULL``." #: ../Doc/c-api/reflection.rst:58 msgid "Return the line number that *frame* is currently executing." diff --git a/c-api/sequence.po b/c-api/sequence.po index 4f5816ffe1..76b8ba74bb 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -38,7 +38,7 @@ msgstr "" "caso contrario. Tenga en cuenta que retorna ``1`` para las clases de Python " "con un método :meth:`__getitem__` a menos que sean: subclases :class:`dict` " "ya que en general es imposible determinar qué tipo de claves admite. Esta " -"función siempre tiene éxito." +"función siempre finaliza con éxito." #: ../Doc/c-api/sequence.rst:23 msgid "" diff --git a/c-api/set.po b/c-api/set.po index 328ae0db7f..c02751842e 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-16 18:25+0200\n" +"PO-Revision-Date: 2021-08-01 20:10+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/set.rst:6 msgid "Set Objects" @@ -96,49 +97,46 @@ msgstr "" "funcionan con cualquier objeto Python iterable." #: ../Doc/c-api/set.rst:55 -#, fuzzy msgid "" "Return true if *p* is a :class:`set` object or an instance of a subtype. " "This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto :class:`set` o una instancia de un " -"subtipo." +"subtipo. Esta función siempre finaliza con éxito." #: ../Doc/c-api/set.rst:60 -#, fuzzy msgid "" "Return true if *p* is a :class:`frozenset` object or an instance of a " "subtype. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto :class:`frozenset` o una instancia de " -"un subtipo." +"un subtipo. Esta función siempre finaliza con éxito." #: ../Doc/c-api/set.rst:65 -#, fuzzy msgid "" "Return true if *p* is a :class:`set` object, a :class:`frozenset` object, or " "an instance of a subtype. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto :class:`set`, un objeto :class:" -"`frozenset`, o una instancia de un subtipo." +"`frozenset`, o una instancia de un subtipo. Esta función siempre finaliza " +"con éxito." #: ../Doc/c-api/set.rst:71 -#, fuzzy msgid "" "Return true if *p* is a :class:`set` object or a :class:`frozenset` object " "but not an instance of a subtype. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto :class:`set` o un objeto :class:" -"`frozenset` pero no una instancia de un subtipo." +"`frozenset` pero no una instancia de un subtipo. Esta función siempre " +"finaliza con éxito." #: ../Doc/c-api/set.rst:77 -#, fuzzy msgid "" "Return true if *p* is a :class:`frozenset` object but not an instance of a " "subtype. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto :class:`frozenset` pero no una " -"instancia de un subtipo." +"instancia de un subtipo. Esta función siempre finaliza con éxito." #: ../Doc/c-api/set.rst:83 msgid "" diff --git a/c-api/slice.po b/c-api/slice.po index 69110b5e39..86670a17de 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 22:38+0200\n" +"PO-Revision-Date: 2021-08-16 13:05+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/slice.rst:6 msgid "Slice Objects" @@ -34,12 +35,12 @@ msgstr "" "en la capa de Python." #: ../Doc/c-api/slice.rst:17 -#, fuzzy msgid "" "Return true if *ob* is a slice object; *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" -"Retorna verdadero si *ob* es un objeto rebanada; *ob* no debe ser ``NULL``." +"Retorna verdadero si *ob* es un objeto rebanada; *ob* no debe ser ``NULL``. " +"Esta función siempre finaliza con éxito." #: ../Doc/c-api/slice.rst:23 msgid "" diff --git a/c-api/structures.po b/c-api/structures.po index 1f1222b4bb..1f27cffabd 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -6,19 +6,21 @@ # 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: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-02 01:55+0200\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: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/structures.rst:6 msgid "Common Object Structures" @@ -36,7 +38,7 @@ msgstr "" #: ../Doc/c-api/structures.rst:14 msgid "Base object types and macros" -msgstr "" +msgstr "Tipos objeto base y macros" #: ../Doc/c-api/structures.rst:16 msgid "" @@ -126,10 +128,12 @@ msgid "" "Return non-zero if the object *o* type is *type*. Return zero otherwise. " "Equivalent to: ``Py_TYPE(o) == type``." msgstr "" +"Retorna un valor distinto de cero si el objeto *o* tipo es *type*. Retorna " +"cero en caso contrario. Equivalente a: ``Py_TYPE(o) == type``." #: ../Doc/c-api/structures.rst:83 msgid "Set the object *o* type to *type*." -msgstr "" +msgstr "Establece el tipo del objeto *o* a *type*." #: ../Doc/c-api/structures.rst:90 msgid "" @@ -141,7 +145,7 @@ msgstr "" #: ../Doc/c-api/structures.rst:99 msgid "Set the object *o* reference counter to *refcnt*." -msgstr "" +msgstr "Establece el conteo de referencia del objeto *o* a *refcnt*." #: ../Doc/c-api/structures.rst:106 msgid "" @@ -153,7 +157,7 @@ msgstr "" #: ../Doc/c-api/structures.rst:114 msgid "Set the object *o* size to *size*." -msgstr "" +msgstr "Establece el tamaño del objeto *o* a *size*." #: ../Doc/c-api/structures.rst:121 msgid "" @@ -175,10 +179,9 @@ msgstr "" #: ../Doc/c-api/structures.rst:139 msgid "Implementing functions and methods" -msgstr "" +msgstr "Implementando funciones y métodos" #: ../Doc/c-api/structures.rst:143 -#, fuzzy msgid "" "Type of the functions used to implement most Python callables in C. " "Functions of this type take two :c:type:`PyObject*` parameters and return " @@ -188,52 +191,51 @@ msgid "" "reference." msgstr "" "Tipo de las funciones usadas para implementar la mayoría de invocables " -"Python en C. Funciones de este tipo toman dos parámetros :c:type:`PyObject" -"\\*` y retorna un valor de ese tipo. Si el valor de retorno es ``NULL``, una " +"Python en C. Funciones de este tipo toman dos parámetros :c:type:`PyObject*` " +"y retorna un valor de ese tipo. Si el valor de retorno es ``NULL``, una " "excepción fue establecida. Si no es ``NULL``, el valor retornado se " "interpreta como el valor de retorno de la función que se expone en Python. " "La función debe retornar una nueva referencia." #: ../Doc/c-api/structures.rst:150 msgid "The function signature is::" -msgstr "" +msgstr "La firma de la función es::" #: ../Doc/c-api/structures.rst:157 -#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_VARARGS | METH_KEYWORDS`. The function signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " -"C con la firma :const:`METH_FASTCALL`." +"C con la firma :const:`METH_VARARGS | METH_KEYWORDS`. La firma de la función " +"es::" #: ../Doc/c-api/structures.rst:168 -#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL`. The function signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " -"C con la firma :const:`METH_FASTCALL`." +"C con la firma :const:`METH_FASTCALL`. La firma de la función es::" #: ../Doc/c-api/structures.rst:178 -#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL | METH_KEYWORDS`. The function signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " -"C con la firma :const:`METH_FASTCALL`." +"C con la firma :const:`METH_FASTCALL | METH_KEYWORDS`. La firma de la " +"función es::" #: ../Doc/c-api/structures.rst:189 -#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`. The function " "signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " -"C con la firma :const:`METH_FASTCALL`." +"C con la firma :const:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`. La " +"firma de la función es::" #: ../Doc/c-api/structures.rst:204 msgid "" @@ -307,7 +309,6 @@ msgid "points to the contents of the docstring" msgstr "puntos a los contenidos del docstring" #: ../Doc/c-api/structures.rst:222 -#, fuzzy msgid "" "The :attr:`ml_meth` is a C function pointer. The functions may be of " "different types, but they always return :c:type:`PyObject*`. If the " @@ -317,10 +318,10 @@ msgid "" "implementation uses the specific C type of the *self* object." msgstr "" "El :attr:`ml_meth` es un puntero de función C. Las funciones pueden ser de " -"diferentes tipos, pero siempre retornan :c:type:`PyObject\\*`. Si la función " +"diferentes tipos, pero siempre retornan :c:type:`PyObject*`. Si la función " "no es la de :c:type:`PyCFunction`, el compilador requiere una conversión de " "tipo en la tabla de métodos. A pesar de que :c:type:`PyCFunction` define el " -"primer parámetro como :c:type:`PyObject\\*`, es común que la implementación " +"primer parámetro como :c:type:`PyObject*`, es común que la implementación " "del método utiliza el tipo específico C del objecto *self*." #: ../Doc/c-api/structures.rst:229 @@ -335,10 +336,9 @@ msgstr "" #: ../Doc/c-api/structures.rst:233 msgid "There are these calling conventions:" -msgstr "" +msgstr "Existen estas convenciones de llamada:" #: ../Doc/c-api/structures.rst:237 -#, fuzzy msgid "" "This is the typical calling convention, where the methods have the type :c:" "type:`PyCFunction`. The function expects two :c:type:`PyObject*` values. The " @@ -348,7 +348,7 @@ msgid "" "func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." msgstr "" "Esta es la convención de llamada típica, donde los métodos tienen el tipo :c:" -"type:`PyCFunction`. La función espera dos valores :c:type:`PyObject\\*`. El " +"type:`PyCFunction`. La función espera dos valores :c:type:`PyObject*`. El " "primero es objeto *self* para los métodos; para las funciones del módulo, " "que es el objeto módulo. El segundo parámetro (a menudo llamado *args*) es " "un objeto tupla que representa todos los argumentos. Este parámetro se " @@ -371,7 +371,6 @@ msgstr "" "`PyArg_ParseTupleAndKeywords`." #: ../Doc/c-api/structures.rst:256 -#, fuzzy msgid "" "Fast calling convention supporting only positional arguments. The methods " "have the type :c:type:`_PyCFunctionFast`. The first parameter is *self*, the " @@ -381,16 +380,15 @@ msgid "" msgstr "" "Convención de llamando rápido que soporta sólo argumentos posicionales. Los " "métodos tienen el tipo :c:type:`_PyCFunctionFast`. El primer parámetro es " -"*self*, el segundo parámetro es un arreglo C de valores :c:type:`PyObject" -"\\*` que indican los argumentos y el tercer parámetro es el número de " -"argumentos (la longitud del arreglo)." +"*self*, el segundo parámetro es un arreglo C de valores :c:type:`PyObject*` " +"que indican los argumentos y el tercer parámetro es el número de argumentos " +"(la longitud del arreglo)." #: ../Doc/c-api/structures.rst:262 ../Doc/c-api/structures.rst:279 msgid "This is not part of the :ref:`limited API `." msgstr "Esto no es parte de la :ref:`API limitada `." #: ../Doc/c-api/structures.rst:269 -#, fuzzy msgid "" "Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with " "methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments " @@ -401,14 +399,14 @@ msgid "" "keyword arguments are stored in the *args* array, after the positional " "arguments." msgstr "" -"Extensión de :const:`METH_FASTCALL` que apoya también argumentos de palabra " +"Extensión de :const:`METH_FASTCALL` que admite también argumentos de palabra " "clave, con los métodos de tipo :c:type:`_PyCFunctionFastWithKeywords`. " -"argumentos de palabra clave se transmiten de la misma manera como en el " -"protocolo vectorcall: hay un adicional cuarta :c:type:`PyObject\\*` " -"parámetro que es una tupla que representa los nombres de los argumentos de " -"palabra clave o posiblemente ``NULL`` si no hay palabras clave. Los valores " -"de los argumentos de palabras clave se almacenan en el arreglo *args*, " -"después de los argumentos posicionales." +"argumentos de palabra clave se transmiten de la misma manera como en el :" +"ref:`vectorcall protocol `: hay un cuarto parámetro :c:type:" +"`PyObject*` adicional que es una tupla que representa los nombres de los " +"argumentos de palabra clave o posiblemente ``NULL`` si no hay palabras " +"clave. Los valores de los argumentos de palabras clave se almacenan en el " +"arreglo *args*, después de los argumentos posicionales." #: ../Doc/c-api/structures.rst:286 msgid "" @@ -416,6 +414,9 @@ msgid "" "class*, that is, the class that contains the method in question. The " "defining class might be a superclass of ``Py_TYPE(self)``." msgstr "" +"Extensión de :const:`METH_FASTCALL | METH_KEYWORDS` que admite la *clase " +"definitoria*, es decir, la clase que contiene el método en cuestión. La " +"clase definitoria podría ser una superclase de ``Py_TYPE(self)``." #: ../Doc/c-api/structures.rst:290 msgid "" @@ -423,6 +424,9 @@ msgid "" "``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added " "after ``self``." msgstr "" +"El método debe ser de tipo :c:type:`PyCMethod`, lo mismo que para " +"``METH_FASTCALL | METH_KEYWORDS`` con el argumento ``defining_clase`` " +"añadido después de ``self``." #: ../Doc/c-api/structures.rst:299 msgid "" @@ -439,7 +443,6 @@ msgstr "" "todos los casos el segundo parámetro será ``NULL``." #: ../Doc/c-api/structures.rst:308 -#, fuzzy msgid "" "Methods with a single object argument can be listed with the :const:`METH_O` " "flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` " @@ -447,11 +450,10 @@ msgid "" "parameter, and a :c:type:`PyObject*` parameter representing the single " "argument." msgstr "" -"Los métodos con un solo argumento objeto pueden ser listados con el *flag* :" +"Los métodos con un solo argumento objeto pueden ser listados con el flag :" "const:`METH_O`, en lugar de invocar :c:func:`PyArg_ParseTuple` con un " "argumento ``\"O\"``. Tienen el tipo :c:type:`PyCFunction`, con el parámetro " -"*self*, y un parámetro :c:type:`PyObject\\*` que representa el único " -"argumento." +"*self*, y un parámetro :c:type:`PyObject*` que representa el único argumento." #: ../Doc/c-api/structures.rst:314 msgid "" @@ -519,7 +521,7 @@ msgstr "" #: ../Doc/c-api/structures.rst:356 msgid "Accessing attributes of extension types" -msgstr "" +msgstr "Acceder a atributos de tipos de extensión" #: ../Doc/c-api/structures.rst:360 msgid "" @@ -585,11 +587,11 @@ msgstr "" #: ../Doc/c-api/structures.rst:388 msgid "Macro name" -msgstr "nombre de la macro" +msgstr "Nombre de la macro" #: ../Doc/c-api/structures.rst:388 msgid "C type" -msgstr "tipo C" +msgstr "Tipo C" #: ../Doc/c-api/structures.rst:390 msgid "T_SHORT" @@ -752,6 +754,13 @@ msgid "" "tp_vectorcall_offset` in type objects. These must be defined with " "``T_PYSSIZET`` and ``READONLY``, for example::" msgstr "" +"Los tipos asignados al heap (creados usando :c:func:`PyType_FromSpec` o " +"similar), ``PyMemberDef`` pueden contener definiciones para los miembros " +"especiales ``__dictoffset__``, ``__weaklistoffset__`` y " +"``__vectorcalloffset__``, correspondientes a :c:member:`~PyTypeObject." +"tp_dictoffset`, :c:member:`~PyTypeObject.tp_weaklistoffset` y :c:member:" +"`~PyTypeObject.tp_vectorcall_offset` en objetos de tipo. Estos deben " +"definirse con ``T_PYSSIZET`` y ``READONLY``, por ejemplo::" #: ../Doc/c-api/structures.rst:441 msgid "" @@ -767,7 +776,7 @@ msgstr "nombre" #: ../Doc/c-api/structures.rst:447 msgid "attribute name" -msgstr "Nombre del Atributo" +msgstr "Nombre del atributo" #: ../Doc/c-api/structures.rst:449 msgid "get" @@ -821,13 +830,12 @@ msgstr "" "*setter*" #: ../Doc/c-api/structures.rst:462 -#, fuzzy msgid "" "The ``get`` function takes one :c:type:`PyObject*` parameter (the instance) " "and a function pointer (the associated ``closure``)::" msgstr "" -"La función ``get`` toma un parámetro :c:type:`PyObject\\*` (la instancia) y " -"un puntero de función (el ``closure`` asociado)::" +"La función ``get`` toma un parámetro :c:type:`PyObject*` (la instancia) y un " +"puntero de función (el ``closure`` asociado)::" #: ../Doc/c-api/structures.rst:467 msgid "" @@ -838,14 +846,13 @@ msgstr "" "excepción establecida en caso de error." #: ../Doc/c-api/structures.rst:470 -#, fuzzy msgid "" "``set`` functions take two :c:type:`PyObject*` parameters (the instance and " "the value to be set) and a function pointer (the associated ``closure``)::" msgstr "" -"Las funciones ``set`` toman dos parámetros :c:type:`PyObject\\*` (la " -"instancia y el valor a ser establecido) y un puntero de función (el " -"``closure`` asociado)::" +"Las funciones ``set`` toman dos parámetros :c:type:`PyObject*` (la instancia " +"y el valor a ser establecido) y un puntero de función (el ``closure`` " +"asociado)::" #: ../Doc/c-api/structures.rst:475 msgid "" diff --git a/c-api/sys.po b/c-api/sys.po index 0168fa8e10..e83f56e9e5 100644 --- a/c-api/sys.po +++ b/c-api/sys.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-21 23:31+0200\n" +"PO-Revision-Date: 2021-08-01 20:08+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/sys.rst:6 msgid "Operating System Utilities" @@ -664,10 +665,13 @@ msgid "" "automatically the name of the current function, unless the " "``Py_LIMITED_API`` macro is defined." msgstr "" +"La función ``Py_FatalError()`` se reemplaza con una macro que registra " +"automáticamente el nombre de la función actual, a menos que se defina la " +"macro ``Py_LIMITED_API``." #: ../Doc/c-api/sys.rst:395 msgid "Log the function name automatically." -msgstr "" +msgstr "Registra el nombre de la función automáticamente." #: ../Doc/c-api/sys.rst:405 msgid "" diff --git a/c-api/tuple.po b/c-api/tuple.po index e48cee8543..4587214bea 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-17 21:12+0200\n" +"PO-Revision-Date: 2021-08-01 20:19+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/tuple.rst:6 msgid "Tuple Objects" @@ -39,22 +40,20 @@ msgstr "" "es el mismo objeto que :class:`tuple` en la capa de Python." #: ../Doc/c-api/tuple.rst:24 -#, fuzzy msgid "" "Return true if *p* is a tuple object or an instance of a subtype of the " "tuple type. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto tupla o una instancia de un subtipo " -"del tipo tupla." +"del tipo tupla. Esta función siempre finaliza con éxito." #: ../Doc/c-api/tuple.rst:30 -#, fuzzy msgid "" "Return true if *p* is a tuple object, but not an instance of a subtype of " "the tuple type. This function always succeeds." msgstr "" "Retorna verdadero si *p* es un objeto tupla pero no una instancia de un " -"subtipo del tipo tupla." +"subtipo del tipo tupla. Esta función siempre finaliza con éxito." #: ../Doc/c-api/tuple.rst:36 msgid "Return a new tuple object of size *len*, or ``NULL`` on failure." @@ -278,7 +277,6 @@ msgstr "" "cantidad de campos visibles para el lado de Python (si se usa como tupla)" #: ../Doc/c-api/tuple.rst:163 -#, fuzzy msgid "" "Describes a field of a struct sequence. As a struct sequence is modeled as a " "tuple, all fields are typed as :c:type:`PyObject*`. The index in the :attr:" @@ -287,7 +285,7 @@ msgid "" msgstr "" "Describe un campo de una secuencia de estructura. Como una secuencia de " "estructura se modela como una tupla, todos los campos se escriben como :c:" -"type:`PyObject\\*`. El índice en el arreglo :attr:`fields` de :c:type:" +"type:`PyObject*`. El índice en el arreglo :attr:`fields` de :c:type:" "`PyStructSequence_Desc` determina qué campo de la secuencia de estructura se " "describe." @@ -310,7 +308,7 @@ msgstr "Valor especial para un nombre de campo para dejarlo sin nombre." #: ../Doc/c-api/tuple.rst:184 msgid "The type was changed from ``char *``." -msgstr "" +msgstr "El tipo se cambió de ``char *``." #: ../Doc/c-api/tuple.rst:190 msgid "" diff --git a/c-api/type.po b/c-api/type.po index 44f74a978e..90930a2520 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-17 22:05+0200\n" +"PO-Revision-Date: 2021-08-02 01:37+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/type.rst:6 msgid "Type Objects" @@ -40,25 +41,24 @@ msgstr "" "`type` en la capa Python." #: ../Doc/c-api/type.rst:24 -#, fuzzy msgid "" "Return non-zero if the object *o* is a type object, including instances of " "types derived from the standard type object. Return 0 in all other cases. " "This function always succeeds." msgstr "" -"Retorna verdadero si el objeto *o* es un objeto tipo, incluidas las " -"instancias de tipos derivados del objeto tipo estándar. Retorna falso en " -"todos los demás casos." +"Retorna un valor distinto de cero si el objeto *o* es un objeto tipo, " +"incluidas las instancias de tipos derivados del objeto de tipo estándar. " +"Retorna 0 en todos los demás casos. Esta función siempre finaliza con éxito." #: ../Doc/c-api/type.rst:31 -#, fuzzy msgid "" "Return non-zero if the object *o* is a type object, but not a subtype of the " "standard type object. Return 0 in all other cases. This function always " "succeeds." msgstr "" -"Retorna verdadero si el objeto *o* es un objeto tipo, pero no un subtipo del " -"objeto tipo estándar. Retorna falso en todos los demás casos." +"Retorna un valor distinto de cero si el objeto *o* es un objeto tipo, pero " +"no un subtipo del objeto tipo estándar. Retorna 0 en todos los demás casos. " +"Esta función siempre finaliza con éxito." #: ../Doc/c-api/type.rst:38 msgid "Clear the internal lookup cache. Return the current version tag." @@ -94,14 +94,13 @@ msgstr "" "manual de los atributos o clases base del tipo." #: ../Doc/c-api/type.rst:62 -#, fuzzy msgid "" "Return non-zero if the type object *o* sets the feature *feature*. Type " "features are denoted by single bit flags." msgstr "" -"Retorna verdadero si el tipo objeto *o* establece la característica " -"*feature*. Las características de tipo se denotan con banderas de un solo " -"bit." +"Retorna un valor distinto de cero si el tipo objeto *o* establece la " +"característica *feature*. Las características de tipo se indican mediante " +"flags de un solo bit." #: ../Doc/c-api/type.rst:68 msgid "" @@ -186,12 +185,16 @@ msgid "" "Return the module object associated with the given type when the type was " "created using :c:func:`PyType_FromModuleAndSpec`." msgstr "" +"Retorna el objeto módulo asociado con el tipo dado cuando se creó el tipo " +"usando :c:func:`PyType_FromModuleAndSpec`." #: ../Doc/c-api/type.rst:119 ../Doc/c-api/type.rst:137 msgid "" "If no module is associated with the given type, sets :py:class:`TypeError` " "and returns ``NULL``." msgstr "" +"Si no hay ningún módulo asociado con el tipo dado, establece :py:class:" +"`TypeError` y retorna ``NULL``." #: ../Doc/c-api/type.rst:122 msgid "" @@ -202,6 +205,13 @@ msgid "" "module as their superclass. See :c:type:`PyCMethod` to get the class that " "defines the method." msgstr "" +"Esta función se suele utilizar para obtener el módulo en el que se define un " +"método. Tenga en cuenta que en un método de este tipo, es posible que " +"``PyType_GetModule(Py_TYPE(self))`` no retorne el resultado deseado. " +"``Py_TYPE(self)`` puede ser una *subclass* de la clase deseada, y las " +"subclases no están necesariamente definidas en el mismo módulo que su " +"superclase. Consulte :c:type:`PyCMethod` para obtener la clase que define el " +"método." #: ../Doc/c-api/type.rst:133 msgid "" @@ -209,12 +219,17 @@ msgid "" "is a shortcut for calling :c:func:`PyModule_GetState()` on the result of :c:" "func:`PyType_GetModule`." msgstr "" +"Retorna el estado del objeto de módulo asociado con el tipo dado. Este es un " +"atajo para llamar :c:func:`PyModule_GetState()` en el resultado de :c:func:" +"`PyType_GetModule`." #: ../Doc/c-api/type.rst:140 msgid "" "If the *type* has an associated module but its state is ``NULL``, returns " "``NULL`` without setting an exception." msgstr "" +"Si el tipo *type* tiene un módulo asociado pero su estado es ``NULL``, " +"retorna ``NULL`` sin establecer una excepción." #: ../Doc/c-api/type.rst:147 msgid "Creating Heap-Allocated Types" @@ -245,14 +260,14 @@ msgstr "" "los tipos contenidos en él como tipos básicos." #: ../Doc/c-api/type.rst:160 -#, fuzzy msgid "" "If *bases* is ``NULL``, the *Py_tp_bases* slot is used instead. If that also " "is ``NULL``, the *Py_tp_base* slot is used instead. If that also is " "``NULL``, the new type derives from :class:`object`." msgstr "" "Si *bases* es ``NULL``, en su lugar se usa la ranura *Py_tp_base*. Si eso " -"también es ``NULL``, el nuevo tipo deriva de :class:`object`." +"también es ``NULL``, en su lugar, se utiliza la ranura *Py_tp_base*. Si eso " +"también es ``NULL``, el nuevo tipo se deriva de :class:`object`." #: ../Doc/c-api/type.rst:164 msgid "" @@ -262,15 +277,19 @@ msgid "" "c:func:`PyType_GetModule`. The associated module is not inherited by " "subclasses; it must be specified for each class individually." msgstr "" +"El argumento *module* se puede utilizar para registrar el módulo en el que " +"se define la nueva clase. Debe ser un objeto de módulo o ``NULL``. Si no es " +"``NULL``, el módulo se asocia con el nuevo tipo y luego se puede recuperar " +"con :c:func:`PyType_GetModule`. El módulo asociado no es heredado por " +"subclases; debe especificarse para cada clase individualmente." #: ../Doc/c-api/type.rst:171 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "Esta función llama :c:func:`PyType_Ready` en el tipo nuevo." #: ../Doc/c-api/type.rst:177 -#, fuzzy msgid "Equivalent to ``PyType_FromModuleAndSpec(NULL, spec, bases)``." -msgstr "Equivalente a ``PyType_FromSpecWithBases(spec, NULL)``." +msgstr "Equivalente a ``PyType_FromModuleAndSpec(NULL, spec, bases)``." #: ../Doc/c-api/type.rst:183 msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``." @@ -353,13 +372,12 @@ msgstr "" "``Py_sq_length`` para establecer :c:member:`PySequenceMethods.sq_length`" #: ../Doc/c-api/type.rst:231 -#, fuzzy msgid "" "The following fields cannot be set at all using :c:type:`PyType_Spec` and :c:" "type:`PyType_Slot`:" msgstr "" -"Los siguientes campos no se pueden establecer usando :c:type:`PyType_Spec` " -"y :c:type:`PyType_Slot`:" +"Los siguientes campos no se pueden configurar en absoluto usando :c:type:" +"`PyType_Spec` y :c:type:`PyType_Slot`:" #: ../Doc/c-api/type.rst:234 msgid ":c:member:`~PyTypeObject.tp_dict`" @@ -382,37 +400,40 @@ msgid ":c:member:`~PyTypeObject.tp_weaklist`" msgstr ":c:member:`~PyTypeObject.tp_weaklist`" #: ../Doc/c-api/type.rst:239 -#, fuzzy msgid ":c:member:`~PyTypeObject.tp_vectorcall`" -msgstr ":c:member:`~PyTypeObject.tp_dict`" +msgstr ":c:member:`~PyTypeObject.tp_vectorcall`" #: ../Doc/c-api/type.rst:240 -#, fuzzy msgid "" ":c:member:`~PyTypeObject.tp_weaklistoffset` (see :ref:`PyMemberDef " "`)" -msgstr ":c:member:`~PyTypeObject.tp_weaklistoffset`" +msgstr "" +":c:member:`~PyTypeObject.tp_weaklistoffset` (vea :ref:`PyMemberDef " +"`)" #: ../Doc/c-api/type.rst:242 msgid "" ":c:member:`~PyTypeObject.tp_dictoffset` (see :ref:`PyMemberDef `)" msgstr "" +":c:member:`~PyTypeObject.tp_dictoffset` (vea :ref:`PyMemberDef `)" #: ../Doc/c-api/type.rst:244 msgid "" ":c:member:`~PyTypeObject.tp_vectorcall_offset` (see :ref:`PyMemberDef " "`)" msgstr "" +":c:member:`~PyTypeObject.tp_vectorcall_offset` (vea :ref:`PyMemberDef " +"`)" #: ../Doc/c-api/type.rst:247 -#, fuzzy msgid "" "The following fields cannot be set using :c:type:`PyType_Spec` and :c:type:" "`PyType_Slot` under the limited API:" msgstr "" "Los siguientes campos no se pueden establecer usando :c:type:`PyType_Spec` " -"y :c:type:`PyType_Slot`:" +"y :c:type:`PyType_Slot` cuando se utiliza la API limitada:" #: ../Doc/c-api/type.rst:250 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" @@ -423,19 +444,20 @@ msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" msgstr ":c:member:`~PyBufferProcs.bf_releasebuffer`" #: ../Doc/c-api/type.rst:253 -#, fuzzy msgid "" "Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on " "some platforms. To avoid issues, use the *bases* argument of :py:func:" "`PyType_FromSpecWithBases` instead." msgstr "" -"Estableciendo :c:data:`Py_tp_bases` puede ser problemático en algunas " -"plataformas. Para evitar problemas, use el argumento *bases* de :py:func:" -"`PyType_FromSpecWithBases` en su lugar." +"Estableciendo :c:data:`Py_tp_bases` o :c:data:`Py_tp_base` puede ser " +"problemático en algunas plataformas. Para evitar problemas, use el argumento " +"*bases* de :py:func:`PyType_FromSpecWithBases` en su lugar." #: ../Doc/c-api/type.rst:260 msgid "Slots in :c:type:`PyBufferProcs` in may be set in the unlimited API." msgstr "" +"Las ranuras en :c:type:`PyBufferProcs` se pueden configurar en la API " +"ilimitada." #: ../Doc/c-api/type.rst:264 msgid "" diff --git a/c-api/typeobj.po b/c-api/typeobj.po index 835c57effa..123dcc230c 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-19 00:16+0200\n" +"PO-Revision-Date: 2021-08-01 20:07+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/typeobj.rst:6 msgid "Type Objects" @@ -581,14 +582,12 @@ msgid "__del__" msgstr "__del__" #: ../Doc/c-api/typeobj.rst:148 -#, fuzzy msgid ":c:member:`~PyTypeObject.tp_vectorcall`" -msgstr ":c:member:`~PyTypeObject.tp_vectorcall_offset`" +msgstr ":c:member:`~PyTypeObject.tp_vectorcall`" #: ../Doc/c-api/typeobj.rst:148 -#, fuzzy msgid ":c:type:`vectorcallfunc`" -msgstr ":c:type:`allocfunc`" +msgstr ":c:type:`vectorcallfunc`" #: ../Doc/c-api/typeobj.rst:152 msgid "" @@ -1555,43 +1554,38 @@ msgstr "" "Para evitar punteros colgantes, la forma recomendada de lograr esto es:" #: ../Doc/c-api/typeobj.rst:682 -#, fuzzy msgid "" "An optional offset to a per-instance function that implements calling the " "object using the :ref:`vectorcall protocol `, a more efficient " "alternative of the simpler :c:member:`~PyTypeObject.tp_call`." msgstr "" "Un desplazamiento opcional a una función por instancia que implementa la " -"llamada al objeto usando el protocolo *vectorcall*, una alternativa más " -"eficiente del más simple :c:member:`~PyTypeObject.tp_call`." +"llamada al objeto usando :ref:`vectorcall protocol `, una " +"alternativa más eficiente del simple :c:member:`~PyTypeObject.tp_call`." #: ../Doc/c-api/typeobj.rst:687 -#, fuzzy msgid "" "This field is only used if the flag :const:`Py_TPFLAGS_HAVE_VECTORCALL` is " "set. If so, this must be a positive integer containing the offset in the " "instance of a :c:type:`vectorcallfunc` pointer." msgstr "" -"Este campo solo se usa si se establece el indicador :const:" -"`_Py_TPFLAGS_HAVE_VECTORCALL`. Si es así, debe ser un número entero positivo " -"que contenga el desplazamiento en la instancia de un puntero a :c:type:" -"`vectorcallfunc`. La firma es la misma que para :c:func:" -"`_PyObject_Vectorcall`::" +"Este campo solo se usa si se establece el flag :const:" +"`Py_TPFLAGS_HAVE_VECTORCALL`. Si es así, debe ser un entero positivo que " +"contenga el desplazamiento en la instancia de un puntero :c:type:" +"`vectorcallfunc`." #: ../Doc/c-api/typeobj.rst:691 -#, fuzzy msgid "" "The *vectorcallfunc* pointer may be ``NULL``, in which case the instance " "behaves as if :const:`Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the " "instance falls back to :c:member:`~PyTypeObject.tp_call`." msgstr "" -"El puntero *vectorcallfunc* puede ser cero, en cuyo caso la instancia se " -"comporta como si :const:`_Py_TPFLAGS_HAVE_VECTORCALL` no se hubiera " -"establecido: la llamada de la instancia recae en :c:member:`~PyTypeObject." +"El puntero *vectorcallfunc* puede ser ``NULL``, en cuyo caso la instancia se " +"comporta como si :const:`Py_TPFLAGS_HAVE_VECTORCALL` no estuviera " +"configurado: llamar a la instancia vuelve a :c:member:`~PyTypeObject." "tp_call`." #: ../Doc/c-api/typeobj.rst:695 -#, fuzzy msgid "" "Any class that sets ``Py_TPFLAGS_HAVE_VECTORCALL`` must also set :c:member:" "`~PyTypeObject.tp_call` and make sure its behaviour is consistent with the " @@ -1601,20 +1595,19 @@ msgstr "" "Cualquier clase que establezca ``_Py_TPFLAGS_HAVE_VECTORCALL`` también debe " "establecer :c:member:`~PyTypeObject.tp_call` y asegurarse de que su " "comportamiento sea coherente con la función *vectorcallfunc*. Esto se puede " -"hacer configurando *tp_call* en ``PyVectorcall_Call``:" +"hacer configurando *tp_call* en :c:func:`PyVectorcall_Call`." #: ../Doc/c-api/typeobj.rst:702 -#, fuzzy msgid "" "It is not recommended for :ref:`heap types ` to implement the " "vectorcall protocol. When a user sets :attr:`__call__` in Python code, only " "*tp_call* is updated, likely making it inconsistent with the vectorcall " "function." msgstr "" -"No se recomienda para :ref:`tipos montículo ` para implementar " -"el protocolo *vectorcall*. Cuando un usuario establece ``__call__`` en el " -"código Python, solo se actualiza ``tp_call``, posiblemente haciendo que sea " -"inconsistente con la función *vectorcall*." +"No se recomienda para :ref:`tipos de pila ` para implementar el " +"protocolo vectorcall. Cuando un usuario establece :attr:`__call__` en código " +"Python, solo se actualiza *tp_call*, lo que probablemente lo haga " +"inconsistente con la función vectorcall." #: ../Doc/c-api/typeobj.rst:709 msgid "" @@ -1631,6 +1624,8 @@ msgid "" "Before version 3.8, this slot was named ``tp_print``. In Python 2.x, it was " "used for printing to a file. In Python 3.0 to 3.7, it was unused." msgstr "" +"Antes de la versión 3.8, este slot se llamaba ``tp_print``. En Python 2.x, " +"se usó para imprimir en un archivo. En Python 3.0 a 3.7, no se usó." #: ../Doc/c-api/typeobj.rst:721 msgid "" @@ -1640,6 +1635,11 @@ msgid "" "`PyVectorcall_Call` is explicitly called. This is in particular the case for " "`heap types`_ (including subclasses defined in Python)." msgstr "" +"Este campo siempre se hereda. Sin embargo, el flag :const:" +"`Py_TPFLAGS_HAVE_VECTORCALL` no siempre se hereda. Si no es así, entonces la " +"subclase no usará :ref:`vectorcall `, excepto cuando :c:func:" +"`PyVectorcall_Call` se llame explícitamente. Este es en particular el caso " +"de los `heap types`_ (incluidas las subclases definidas en Python)." #: ../Doc/c-api/typeobj.rst:732 msgid "An optional pointer to the get-attribute-string function." @@ -2297,14 +2297,14 @@ msgstr "" "estructura de tipos." #: ../Doc/c-api/typeobj.rst:1158 -#, fuzzy msgid "" "This bit is set when the class implements the :ref:`vectorcall protocol " "`. See :c:member:`~PyTypeObject.tp_vectorcall_offset` for " "details." msgstr "" -"Este bit se establece cuando la clase implementa el protocolo *vectorcall*. " -"Ver :c:member:`~PyTypeObject.tp_vectorcall_offset` para más detalles." +"Este bit se establece cuando la clase implementa :ref:`protocolo vectorcall " +"`. Consulte :c:member:`~PyTypeObject.tp_vectorcall_offset` para " +"obtener más detalles." #: ../Doc/c-api/typeobj.rst:1164 msgid "" @@ -2312,6 +2312,9 @@ msgid "" "tp_call` is also inherited. `Heap types`_ do not inherit " "``Py_TPFLAGS_HAVE_VECTORCALL``." msgstr "" +"Este bit se hereda para subtipos *static* si :c:member:`~PyTypeObject." +"tp_call` también se hereda. `Heap types`_ no heredan " +"``Py_TPFLAGS_HAVE_VECTORCALL``." #: ../Doc/c-api/typeobj.rst:1173 msgid "" @@ -2426,6 +2429,13 @@ msgid "" "``tp_traverse`` of another heap-allocated type (such as a heap-allocated " "superclass). If they do not, the type object may not be garbage-collected." msgstr "" +"Los tipos asignados al heap (:const:`Py_TPFLAGS_HEAPTYPE`, como los creados " +"con :c:func:`PyType_FromSpec` y API similares) contienen una referencia a su " +"tipo. Por lo tanto, su función transversal debe visitar :c:func:" +"`Py_TYPE(self) `, o delegar esta responsabilidad llamando a " +"``tp_traverse`` de otro tipo asignado al heap (como una superclase asignada " +"al heap). Si no es así, es posible que el objeto de tipo no se recolecte " +"como basura." #: ../Doc/c-api/typeobj.rst:1240 msgid "" @@ -2433,6 +2443,10 @@ msgid "" "``tp_traverse``. In earlier versions of Python, due to `bug 40217 `_, doing this may lead to crashes in subclasses." msgstr "" +"Se espera que los tipos asignados al montón visiten ``Py_TYPE(self)`` en " +"``tp_traverse``. En versiones anteriores de Python, debido al `bug 40217 " +"`_, hacer esto puede provocar fallas en " +"las subclases." #: ../Doc/c-api/typeobj.rst:1249 msgid "" @@ -2696,7 +2710,6 @@ msgstr "" "del tipo no podrán participar en ninguna comparación." #: ../Doc/c-api/typeobj.rst:1385 -#, fuzzy msgid "" "If the instances of this type are weakly referenceable, this field is " "greater than zero and contains the offset in the instance structure of the " @@ -2706,12 +2719,12 @@ msgid "" "`PyObject*` which is initialized to ``NULL``." msgstr "" "Si las instancias de este tipo son débilmente referenciables, este campo es " -"mayor que cero y contiene el desplazamiento en la estructura de instancias " -"del encabezado de la lista de referencia débil (ignorando el encabezado del " -"GC, si está presente); este desplazamiento es utilizado por :c:func:" +"mayor que cero y contiene el desplazamiento en la estructura de instancia " +"del encabezado de la lista de referencia débil (ignorando el encabezado GC, " +"si está presente); este desplazamiento es utilizado por :c:func:" "`PyObject_ClearWeakRefs` y las funciones :c:func:`PyWeakref_\\*`. La " -"estructura de la instancia debe incluir un campo de tipo :c:type:`PyObject" -"\\*` que se inicializa a ``NULL``." +"estructura de la instancia debe incluir un campo de tipo :c:type:`PyObject*` " +"que se inicializa en ``NULL``." #: ../Doc/c-api/typeobj.rst:1392 msgid "" @@ -3246,7 +3259,6 @@ msgid "An optional pointer to an instance creation function." msgstr "Un puntero opcional a una función de creación de instancias." #: ../Doc/c-api/typeobj.rst:1718 -#, fuzzy msgid "" "The *subtype* argument is the type of the object being created; the *args* " "and *kwds* arguments represent positional and keyword arguments of the call " @@ -3254,11 +3266,11 @@ msgid "" "member:`~PyTypeObject.tp_new` function is called; it may be a subtype of " "that type (but not an unrelated type)." msgstr "" -"El argumento del subtipo es el tipo del objeto que se está creando; los " +"El argumento *subtype* es el tipo de objeto que se está creando; los " "argumentos *args* y *kwds* representan argumentos posicionales y de palabras " -"clave de la llamada al tipo. Tenga en cuenta que el subtipo no tiene que ser " -"igual al tipo cuya función :c:member:`~PyTypeObject.tp_new` se llama; puede " -"ser un subtipo de ese tipo (pero no un tipo no relacionado)." +"clave de la llamada al tipo. Tenga en cuenta que *subtype* no tiene que ser " +"igual al tipo cuya función :c:member:`~PyTypeObject.tp_new` es llamada; " +"puede ser un subtipo de ese tipo (pero no un tipo no relacionado)." #: ../Doc/c-api/typeobj.rst:1724 msgid "" @@ -3493,15 +3505,18 @@ msgid "" "If ``tp_vectorcall`` is ``NULL``, the default call implementation using :" "attr:`__new__` and :attr:`__init__` is used." msgstr "" +"Función Vectorcall a utilizar para llamadas de este tipo de objeto. En otras " +"palabras, se usa para implementar :ref:`vectorcall ` para ``type." +"__call__``. Si ``tp_vectorcall`` es ``NULL``, se usa la implementación de " +"llamada predeterminada usando :attr:`__new__` y :attr:`__init__`." #: ../Doc/c-api/typeobj.rst:1913 -#, fuzzy msgid "This field is never inherited." -msgstr "Este campo no se hereda." +msgstr "Este campo nunca se hereda." #: ../Doc/c-api/typeobj.rst:1915 msgid "(the field exists since 3.8 but it's only used since 3.9)" -msgstr "" +msgstr "(el campo existe desde 3.8 pero solo se usa desde 3.9)" #: ../Doc/c-api/typeobj.rst:1918 msgid "" diff --git a/c-api/unicode.po b/c-api/unicode.po index ffaf4614db..9527b397ca 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -11,16 +11,17 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 02:25+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 17:43+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es (https://mail.python.org/mailman3/lists/docs-es." "python.org)\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/unicode.rst:6 msgid "Unicode Objects and Codecs" @@ -48,7 +49,6 @@ msgstr "" "rango completo de Unicode)." #: ../Doc/c-api/unicode.rst:20 -#, fuzzy msgid "" ":c:type:`Py_UNICODE*` and UTF-8 representations are created on demand and " "cached in the Unicode object. The :c:type:`Py_UNICODE*` representation is " @@ -96,6 +96,9 @@ msgid "" "APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` " "for more information." msgstr "" +"El objeto Unicode \"heredado\" se eliminará en Python 3.12 con APIs " +"obsoletas. Todos los objetos Unicode serán \"canónicos\" desde entonces. " +"Consulte :pep:`623` para obtener más información." #: ../Doc/c-api/unicode.rst:43 msgid "Unicode Type" @@ -167,7 +170,6 @@ msgstr "" "de objetos Unicode:" #: ../Doc/c-api/unicode.rst:92 -#, fuzzy msgid "" "Return true if the object *o* is a Unicode object or an instance of a " "Unicode subtype. This function always succeeds." @@ -176,7 +178,6 @@ msgstr "" "un subtipo Unicode." #: ../Doc/c-api/unicode.rst:98 -#, fuzzy msgid "" "Return true if the object *o* is a Unicode object, but not an instance of a " "subtype. This function always succeeds." @@ -203,7 +204,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:115 msgid "This API will be removed with :c:func:`PyUnicode_FromUnicode`." -msgstr "" +msgstr "Esta API será removida con :c:func:`PyUnicode_FromUnicode`." #: ../Doc/c-api/unicode.rst:120 msgid "" @@ -235,7 +236,7 @@ msgstr "Retorna los valores de la macro :c:func:`PyUnicode_KIND`." #: ../Doc/c-api/unicode.rst:149 msgid "``PyUnicode_WCHAR_KIND`` is deprecated." -msgstr "" +msgstr "``PyUnicode_WCHAR_KIND`` está deprecada." #: ../Doc/c-api/unicode.rst:154 msgid "" @@ -373,12 +374,17 @@ msgid "" "Return ``1`` if the string is a valid identifier according to the language " "definition, section :ref:`identifiers`. Return ``0`` otherwise." msgstr "" +"Retorna ``1`` si la cadena de caracteres es un identificador válido de " +"acuerdo con la definición del lenguaje, sección :ref:`identifiers`. Retorna " +"``0`` de lo contrario." #: ../Doc/c-api/unicode.rst:258 msgid "" "The function does not call :c:func:`Py_FatalError` anymore if the string is " "not ready." msgstr "" +"La función ya no llama a :c:func:`Py_FatalError` si la cadena de caracteres " +"no está lista." #: ../Doc/c-api/unicode.rst:264 msgid "Unicode Character Properties" @@ -599,7 +605,6 @@ msgstr "" "compartido, es decir, no se permite la modificación de los datos." #: ../Doc/c-api/unicode.rst:434 -#, fuzzy msgid "" "If *u* is ``NULL``, this function behaves like :c:func:" "`PyUnicode_FromUnicode` with the buffer set to ``NULL``. This usage is " @@ -1150,7 +1155,6 @@ msgstr "" "cualquiera de las macros de acceso, como :c:func:`PyUnicode_KIND`." #: ../Doc/c-api/unicode.rst:703 -#, fuzzy msgid "" "Part of the old-style Unicode API, please migrate to using :c:func:" "`PyUnicode_FromKindAndData`, :c:func:`PyUnicode_FromWideChar`, or :c:func:" @@ -1178,14 +1182,14 @@ msgstr "" "cuando se usara en la mayoría de las funciones de C." #: ../Doc/c-api/unicode.rst:720 ../Doc/c-api/unicode.rst:748 -#, fuzzy msgid "" "Part of the old-style Unicode API, please migrate to using :c:func:" "`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" "`PyUnicode_ReadChar` or similar new APIs." msgstr "" -"Por favor migrar para usar :c:func:`PyUnicode_AsUCS4`, :c:func:" -"`PyUnicode_AsWideChar`, :c:func:`PyUnicode_ReadChar` o API nuevas similares." +"Parte del estilo antiguo de la API Unicode, por favor migrar para usar :c:" +"func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" +"`PyUnicode_ReadChar` o APIs nuevas similares." #: ../Doc/c-api/unicode.rst:726 msgid "" @@ -1198,13 +1202,12 @@ msgstr "" "valor decimal. Retorna ``NULL`` si ocurre una excepción." #: ../Doc/c-api/unicode.rst:732 -#, fuzzy msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`Py_UNICODE_TODECIMAL`." msgstr "" -"Parte del viejo estilo de la API :c:type:`Py_UNICODE`; por favor migrar para " -"usar :c:func:`PyUnicode_AsEncodedString`." +"Parte del estilo antiguo de la API :c:type:`Py_UNICODE`; por favor migrar " +"para usar :c:func:`Py_UNICODE_TODECIMAL`." #: ../Doc/c-api/unicode.rst:737 msgid "" @@ -1515,7 +1518,7 @@ msgstr "" #: ../Doc/c-api/unicode.rst:957 msgid "wchar_t Support" -msgstr "Soporte wchar_t" +msgstr "soporte wchar_t" #: ../Doc/c-api/unicode.rst:959 msgid ":c:type:`wchar_t` support for platforms which support it:" @@ -1617,7 +1620,6 @@ msgstr "" "incorporado :func:`str`." #: ../Doc/c-api/unicode.rst:1016 -#, fuzzy msgid "" "Setting encoding to ``NULL`` causes the default encoding to be used which is " "UTF-8. The file system calls should use :c:func:`PyUnicode_FSConverter` for " @@ -2307,7 +2309,7 @@ msgstr "" "como ordinales Unicode) o ``None``. Los bytes de datos sin asignar - los que " "causan un :exc:`LookupError`, así como los que se asignan a ``None``, " "``0xFFFE`` o ``'\\ ufffe'``, se tratan como asignaciones indefinidas y " -"causan un error" +"causan un error." #: ../Doc/c-api/unicode.rst:1484 msgid "" @@ -2356,15 +2358,14 @@ msgid "The following codec API is special in that maps Unicode to Unicode." msgstr "La siguiente API de códec es especial en que asigna Unicode a Unicode." #: ../Doc/c-api/unicode.rst:1511 -#, fuzzy msgid "" "Translate a string by applying a character mapping table to it and return " "the resulting Unicode object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -"Traduce un búfer :c:type:`Py_UNICODE` del tamaño *size* dado al aplicarle " -"una tabla de *mapping* de caracteres y retornar el objeto Unicode " -"resultante. Retorna ``NULL`` cuando el códec provocó una excepción." +"Traduce una cadena de caracteres aplicando una tabla de mapeo y retornando " +"el objeto Unicode resultante. Retorna ``NULL`` cuando el códec provocó una " +"excepción." #: ../Doc/c-api/unicode.rst:1515 msgid "" @@ -2666,7 +2667,7 @@ msgstr ":const:`Py_True` o :const:`Py_False` para comparaciones exitosas" #: ../Doc/c-api/unicode.rst:1705 msgid ":const:`Py_NotImplemented` in case the type combination is unknown" msgstr "" -":const:`Py_NotImplemented` en caso que se desconozca la combinación de tipos." +":const:`Py_NotImplemented` en caso que se desconozca la combinación de tipos" #: ../Doc/c-api/unicode.rst:1707 msgid "" @@ -2735,7 +2736,7 @@ msgstr "" "`PyUnicode_InternInPlace`, que retorna un nuevo objeto de cadena de " "caracteres Unicode que ha sido creado internamente o una nueva " "referencia(\"propia\") a un objeto de cadena de caracteres interno anterior " -"con el mismo valor" +"con el mismo valor." #~ msgid "Clear the free list. Return the total number of freed items." #~ msgstr "" diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index adc09a1e85..f30708f5c5 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-08 00:54+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 17:38+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/veryhigh.rst:8 msgid "The Very High Level Layer" @@ -48,7 +49,6 @@ msgstr "" "siguiendo las funciones que los aceptan como parámetros." #: ../Doc/c-api/veryhigh.rst:19 -#, fuzzy msgid "" "Note also that several of these functions take :c:type:`FILE*` parameters. " "One particular issue which needs to be handled carefully is that the :c:type:" @@ -214,7 +214,6 @@ msgstr "" "PyRun_SimpleFileExFlags retorne." #: ../Doc/c-api/veryhigh.rst:120 -#, fuzzy msgid "" "On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, \"rb" "\")``). Otherwise, Python may not handle script file with LF line ending " diff --git a/c-api/weakref.po b/c-api/weakref.po index 4ea3a1260a..c701b10cfb 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -11,16 +11,17 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-07 09:39+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-01 17:38+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es (https://mail.python.org/mailman3/lists/docs-es." "python.org)\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/c-api/weakref.rst:6 msgid "Weak Reference Objects" @@ -39,25 +40,27 @@ msgstr "" "como un proxy del objeto original tanto como pueda." #: ../Doc/c-api/weakref.rst:16 -#, fuzzy msgid "" "Return true if *ob* is either a reference or proxy object. This function " "always succeeds." -msgstr "Retorna verdad (true) si *ob* es una referencia o un objeto proxy." +msgstr "" +"Retorna verdadero (true) si *ob* es una referencia o un objeto proxy. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/weakref.rst:22 -#, fuzzy msgid "" "Return true if *ob* is a reference object. This function always succeeds." -msgstr "Retorna verdad (true) si *ob* es un objeto de referencia." +msgstr "" +"Retorna verdadero (true) si *ob* es un objeto de referencia. Esta función " +"siempre finaliza con éxito." #: ../Doc/c-api/weakref.rst:27 -#, fuzzy msgid "Return true if *ob* is a proxy object. This function always succeeds." -msgstr "Retorna verdad (true) si *ob* es un objeto proxy." +msgstr "" +"Retorna verdadero (true) si *ob* es un objeto proxy. Esta función siempre " +"finaliza con éxito." #: ../Doc/c-api/weakref.rst:32 -#, fuzzy msgid "" "Return a weak reference object for the object *ob*. This will always return " "a new reference, but is not guaranteed to create a new object; an existing " @@ -79,7 +82,6 @@ msgstr "" "``NULL``, esto retornará ``NULL`` y causará un :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:44 -#, fuzzy msgid "" "Return a weak reference proxy object for the object *ob*. This will always " "return a new reference, but is not guaranteed to create a new object; an " diff --git a/copyright.po b/copyright.po index f9a8b5221f..344f0ca450 100644 --- a/copyright.po +++ b/copyright.po @@ -6,49 +6,59 @@ # 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: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-04 10:56+0200\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: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/copyright.rst:3 msgid "Copyright" -msgstr "" +msgstr "Derechos de autor" #: ../Doc/copyright.rst:5 msgid "Python and this documentation is:" -msgstr "" +msgstr "Python y esta documentación es:" #: ../Doc/copyright.rst:7 msgid "Copyright © 2001-2021 Python Software Foundation. All rights reserved." msgstr "" +"Derechos de autor © 2001-2021 Python Software Foundation. Todos los derechos " +"reservados." #: ../Doc/copyright.rst:9 msgid "Copyright © 2000 BeOpen.com. All rights reserved." -msgstr "" +msgstr "Derechos de autor © 2000 BeOpen.com. Todos los derechos reservados." #: ../Doc/copyright.rst:11 msgid "" "Copyright © 1995-2000 Corporation for National Research Initiatives. All " "rights reserved." msgstr "" +"Derechos de autor © 1995-2000 Corporation for National Research Initiatives. Todos " +"los derechos reservados." #: ../Doc/copyright.rst:14 msgid "" "Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved." msgstr "" +"Derechos de autor © 1991-1995 Stichting Mathematisch Centrum. Todos los derechos " +"reservados." #: ../Doc/copyright.rst:18 msgid "" "See :ref:`history-and-license` for complete license and permissions " "information." msgstr "" +"Consulte :ref:`history-and-license` para obtener información completa sobre " +"licencias y permisos." diff --git a/dictionaries/about.txt b/dictionaries/about.txt index 63e069f670..25af0b3da4 100644 --- a/dictionaries/about.txt +++ b/dictionaries/about.txt @@ -1,2 +1,4 @@ Fred -Sphinx \ No newline at end of file +Sphinx +Drake +Jr \ No newline at end of file diff --git a/dictionaries/c-api_buffer.txt b/dictionaries/c-api_buffer.txt new file mode 100644 index 0000000000..ccc4d956e5 --- /dev/null +++ b/dictionaries/c-api_buffer.txt @@ -0,0 +1 @@ +bidimensionales \ No newline at end of file diff --git a/dictionaries/c-api_call.txt b/dictionaries/c-api_call.txt new file mode 100644 index 0000000000..ec8fdb7d92 --- /dev/null +++ b/dictionaries/c-api_call.txt @@ -0,0 +1,5 @@ +args +kwargs +arg +obj +variadica diff --git a/dictionaries/c-api_conversion.txt b/dictionaries/c-api_conversion.txt new file mode 100644 index 0000000000..94274de1bb --- /dev/null +++ b/dictionaries/c-api_conversion.txt @@ -0,0 +1 @@ +ValueError diff --git a/dictionaries/c-api_init.txt b/dictionaries/c-api_init.txt new file mode 100644 index 0000000000..c7d0c00978 --- /dev/null +++ b/dictionaries/c-api_init.txt @@ -0,0 +1,2 @@ +pthreads +deadlock diff --git a/dictionaries/c-api_structures.txt b/dictionaries/c-api_structures.txt new file mode 100644 index 0000000000..82c8aa6605 --- /dev/null +++ b/dictionaries/c-api_structures.txt @@ -0,0 +1 @@ +heap diff --git a/dictionaries/copyright.txt b/dictionaries/copyright.txt new file mode 100644 index 0000000000..7d05d6c8bf --- /dev/null +++ b/dictionaries/copyright.txt @@ -0,0 +1,8 @@ +com +Corporation +National +Research +Initiatives +Stichting +Mathematisch +Centrum diff --git a/dictionaries/datetime.txt b/dictionaries/datetime.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dictionaries/distributing_index.txt b/dictionaries/distributing_index.txt index 702b7b8d37..7cd50aebf3 100644 --- a/dictionaries/distributing_index.txt +++ b/dictionaries/distributing_index.txt @@ -1 +1,5 @@ Packaging +Guide +Bitbucket +wheel +wheels \ No newline at end of file diff --git a/dictionaries/distutils_apiref.txt b/dictionaries/distutils_apiref.txt index 4c160e8075..fb62652fb1 100644 --- a/dictionaries/distutils_apiref.txt +++ b/dictionaries/distutils_apiref.txt @@ -7,3 +7,14 @@ definirla Preprocesa configúralo Redhat +library +dirs +indefiniciones +Mingw +mingw +subruta +ppc +ish +msi +explicitamente +aix diff --git a/dictionaries/distutils_builtdist.txt b/dictionaries/distutils_builtdist.txt index 8764ad03d1..dfad9b8bdc 100644 --- a/dictionaries/distutils_builtdist.txt +++ b/dictionaries/distutils_builtdist.txt @@ -1,4 +1,8 @@ autoextraíble desinstalación desinstale -UAC \ No newline at end of file +UAC +pythoncore +Powered +amd +dumb \ No newline at end of file diff --git a/dictionaries/faq_design.txt b/dictionaries/faq_design.txt new file mode 100644 index 0000000000..3391dcd571 --- /dev/null +++ b/dictionaries/faq_design.txt @@ -0,0 +1 @@ +irrestricto diff --git a/dictionaries/faq_extending.txt b/dictionaries/faq_extending.txt new file mode 100644 index 0000000000..d8e8612acc --- /dev/null +++ b/dictionaries/faq_extending.txt @@ -0,0 +1,12 @@ +pure +new +builtin +unexpected +parsing +incomplete +invalid +PyErr +BuildValue +seek +input +Farber \ No newline at end of file diff --git a/dictionaries/faq_general.txt b/dictionaries/faq_general.txt index ad8b06b9b1..3df534d880 100644 --- a/dictionaries/faq_general.txt +++ b/dictionaries/faq_general.txt @@ -11,3 +11,12 @@ PythonWin Release disrupciones Jelke +PyGame +Schedule +Boer +announce +cN +perfilamiento +bugfix +traumáticos +distribuibles \ No newline at end of file diff --git a/dictionaries/faq_windows.txt b/dictionaries/faq_windows.txt new file mode 100644 index 0000000000..a58de753ac --- /dev/null +++ b/dictionaries/faq_windows.txt @@ -0,0 +1,7 @@ +Enter +inicializarlo +lib +Coff +Omf +Indent +size \ No newline at end of file diff --git a/dictionaries/glossary.txt b/dictionaries/glossary.txt new file mode 100644 index 0000000000..2433fdb1d2 --- /dev/null +++ b/dictionaries/glossary.txt @@ -0,0 +1 @@ +suscripto diff --git a/dictionaries/howto_clinic.txt b/dictionaries/howto_clinic.txt index 43896f6673..405d31fedb 100644 --- a/dictionaries/howto_clinic.txt +++ b/dictionaries/howto_clinic.txt @@ -11,3 +11,14 @@ preprocesamiento inicializará manejarlas nómbrelas +corríjalo +impl +PyArg +Parse +polimórficos +autoconversor +sobrescribirlo +UnpackTuple +ifdef +tp +methoddef \ No newline at end of file diff --git a/dictionaries/howto_curses.txt b/dictionaries/howto_curses.txt new file mode 100644 index 0000000000..e2a45a6fe6 --- /dev/null +++ b/dictionaries/howto_curses.txt @@ -0,0 +1,6 @@ +Intro +borrándolo +cbreak +multibyte +xterm +Urwid \ No newline at end of file diff --git a/dictionaries/howto_descriptor.txt b/dictionaries/howto_descriptor.txt index 76567bc815..6b16d6485d 100644 --- a/dictionaries/howto_descriptor.txt +++ b/dictionaries/howto_descriptor.txt @@ -1,2 +1,8 @@ redefiniendo monitorizar +Person +validador +validadores +validadora +classmethod +property diff --git a/dictionaries/howto_functional.txt b/dictionaries/howto_functional.txt index 41854c76d2..37a6e663cf 100644 --- a/dictionaries/howto_functional.txt +++ b/dictionaries/howto_functional.txt @@ -26,4 +26,18 @@ Julie Scheme Sussman Mertz -DeveloperWorks \ No newline at end of file +DeveloperWorks +listcomps +genexps +descartarlo +equiespaciados +Bicking +Efford +Jewett +Krell +Lameiro +Salmela +Winter +Winton +currificación +Leandro diff --git a/dictionaries/howto_instrumentation.txt b/dictionaries/howto_instrumentation.txt index 64da6404b9..4590ea205e 100644 --- a/dictionaries/howto_instrumentation.txt +++ b/dictionaries/howto_instrumentation.txt @@ -1,3 +1,8 @@ SystemTap tapset -estratégicamente \ No newline at end of file +estratégicamente +enable +stapsdt +shared +start +libpython \ No newline at end of file diff --git a/dictionaries/howto_ipaddress.txt b/dictionaries/howto_ipaddress.txt index a6de7e6f77..fb81f36635 100644 --- a/dictionaries/howto_ipaddress.txt +++ b/dictionaries/howto_ipaddress.txt @@ -1,2 +1,3 @@ enrutadores indexarlas +Address \ No newline at end of file diff --git a/dictionaries/howto_logging.txt b/dictionaries/howto_logging.txt index 2c6361b695..cec90c0d4a 100644 --- a/dictionaries/howto_logging.txt +++ b/dictionaries/howto_logging.txt @@ -4,3 +4,12 @@ syslog deshabilitación desconfiguran superconjunto +conf +handler +pdf +orgname +handlers +scan +text +ops +tráiler \ No newline at end of file diff --git a/dictionaries/howto_sockets.txt b/dictionaries/howto_sockets.txt index 0020bdc05d..85e659f845 100644 --- a/dictionaries/howto_sockets.txt +++ b/dictionaries/howto_sockets.txt @@ -5,4 +5,7 @@ leíble multiplexar pruébalo usable -caracter \ No newline at end of file +caracter +ouch +network +longs \ No newline at end of file diff --git a/dictionaries/howto_unicode.txt b/dictionaries/howto_unicode.txt index 59e26b1e97..0b8920d25c 100644 --- a/dictionaries/howto_unicode.txt +++ b/dictionaries/howto_unicode.txt @@ -2,3 +2,7 @@ renderizador PyCon EuroPython biyectivo +glifos +subcategorías +ê +ß diff --git a/dictionaries/howto_urllib2.txt b/dictionaries/howto_urllib2.txt index a6290004e4..a46166c04f 100644 --- a/dictionaries/howto_urllib2.txt +++ b/dictionaries/howto_urllib2.txt @@ -11,3 +11,13 @@ geturl info urlopen internet +Handlers +Openers +redireccionamientos +password +Headers +Common +userinfo +localhost +add +reason \ No newline at end of file diff --git a/dictionaries/install_index.txt b/dictionaries/install_index.txt index 5ef7b4bd26..910590161d 100644 --- a/dictionaries/install_index.txt +++ b/dictionaries/install_index.txt @@ -1,3 +1,7 @@ binutils parseado superusuario +WinZip +cygwin +setup +rpath \ No newline at end of file diff --git a/dictionaries/library_aifc.txt b/dictionaries/library_aifc.txt new file mode 100644 index 0000000000..5f1cdb1939 --- /dev/null +++ b/dictionaries/library_aifc.txt @@ -0,0 +1 @@ +cuadrafónico diff --git a/dictionaries/library_argparse.txt b/dictionaries/library_argparse.txt index 5ae913043a..864212ddcc 100644 --- a/dictionaries/library_argparse.txt +++ b/dictionaries/library_argparse.txt @@ -1,10 +1,5 @@ action -add_argument() -add_help -allow_abbrev -argument_default choices -conflict_handler const default description @@ -14,8 +9,6 @@ especificador especificadores FileType flags -formatter_class -fromfile_prefix_chars globalmente help inherentemente @@ -26,11 +19,8 @@ name Namespace nargs parents -parse_args() -parser_class posicional posicionales -prefix_chars prog Python required @@ -38,3 +28,4 @@ title tupla type usage +ArgumentParser \ No newline at end of file diff --git a/dictionaries/library_array.txt b/dictionaries/library_array.txt index 87db64cc2c..7c6a2b84c6 100644 --- a/dictionaries/library_array.txt +++ b/dictionaries/library_array.txt @@ -5,3 +5,4 @@ retro string typecode inherentemente +Byteswap \ No newline at end of file diff --git a/dictionaries/library_asynchat.txt b/dictionaries/library_asynchat.txt index 7964f127c8..6083014743 100644 --- a/dictionaries/library_asynchat.txt +++ b/dictionaries/library_asynchat.txt @@ -1 +1,5 @@ encriptación +polling +asíncronamente +mseg +asynchat diff --git a/dictionaries/library_asyncio_eventloop.txt b/dictionaries/library_asyncio-eventloop.txt similarity index 50% rename from dictionaries/library_asyncio_eventloop.txt rename to dictionaries/library_asyncio-eventloop.txt index 1fc23255a2..9669a3f000 100644 --- a/dictionaries/library_asyncio_eventloop.txt +++ b/dictionaries/library_asyncio-eventloop.txt @@ -5,3 +5,12 @@ monotónico Futures reordenamientos monitorear +transport +protocol +later +soon +handle +exception +message +Stack +reordenamiento \ No newline at end of file diff --git a/dictionaries/library_asyncio-exceptions.txt b/dictionaries/library_asyncio-exceptions.txt new file mode 100644 index 0000000000..6ff4aa41e6 --- /dev/null +++ b/dictionaries/library_asyncio-exceptions.txt @@ -0,0 +1 @@ +sendfile \ No newline at end of file diff --git a/dictionaries/library_asyncio_future.txt b/dictionaries/library_asyncio-future.txt similarity index 100% rename from dictionaries/library_asyncio_future.txt rename to dictionaries/library_asyncio-future.txt diff --git a/dictionaries/library_asyncio-policy.txt b/dictionaries/library_asyncio-policy.txt new file mode 100644 index 0000000000..5369a2371a --- /dev/null +++ b/dictionaries/library_asyncio-policy.txt @@ -0,0 +1,4 @@ +monitorea +Ricitos +pidfds +kernels diff --git a/dictionaries/library_asyncio-protocol.txt b/dictionaries/library_asyncio-protocol.txt new file mode 100644 index 0000000000..8223284c24 --- /dev/null +++ b/dictionaries/library_asyncio-protocol.txt @@ -0,0 +1,3 @@ +ready +subóptimo +semicerradas \ No newline at end of file diff --git a/dictionaries/library_asyncio_sync.txt b/dictionaries/library_asyncio-sync.txt similarity index 78% rename from dictionaries/library_asyncio_sync.txt rename to dictionaries/library_asyncio-sync.txt index 8aae64ba7e..0c0c4e63ef 100644 --- a/dictionaries/library_asyncio_sync.txt +++ b/dictionaries/library_asyncio-sync.txt @@ -1,4 +1,4 @@ BoundedSemaphore Condition Lock - +Semaphore \ No newline at end of file diff --git a/dictionaries/library_asyncio-task.txt b/dictionaries/library_asyncio-task.txt new file mode 100644 index 0000000000..69df8e2489 --- /dev/null +++ b/dictionaries/library_asyncio-task.txt @@ -0,0 +1,3 @@ +threadpool +gather +kwargs diff --git a/dictionaries/library_asyncio_policy.txt b/dictionaries/library_asyncio_policy.txt deleted file mode 100644 index a1a0156e5b..0000000000 --- a/dictionaries/library_asyncio_policy.txt +++ /dev/null @@ -1 +0,0 @@ -monitorea \ No newline at end of file diff --git a/dictionaries/library_asyncore.txt b/dictionaries/library_asyncore.txt new file mode 100644 index 0000000000..c37e5044a4 --- /dev/null +++ b/dictionaries/library_asyncore.txt @@ -0,0 +1,2 @@ +wrapper +dispatcher \ No newline at end of file diff --git a/dictionaries/library_binascii.txt b/dictionaries/library_binascii.txt index dd8f14f386..aae7167101 100644 --- a/dictionaries/library_binascii.txt +++ b/dictionaries/library_binascii.txt @@ -1,2 +1,4 @@ bytestring uuencoded +hexbin +rfc \ No newline at end of file diff --git a/dictionaries/library_binhex.txt b/dictionaries/library_binhex.txt index 83dae3283b..566a462088 100644 --- a/dictionaries/library_binhex.txt +++ b/dictionaries/library_binhex.txt @@ -1 +1,2 @@ -binhex \ No newline at end of file +binhex +Macintosch \ No newline at end of file diff --git a/dictionaries/library_bz2.txt b/dictionaries/library_bz2.txt new file mode 100644 index 0000000000..f1c80b6024 --- /dev/null +++ b/dictionaries/library_bz2.txt @@ -0,0 +1,2 @@ +stream +streams \ No newline at end of file diff --git a/dictionaries/library_cgi.txt b/dictionaries/library_cgi.txt index 7d02d02319..e2d11835c1 100644 --- a/dictionaries/library_cgi.txt +++ b/dictionaries/library_cgi.txt @@ -33,4 +33,5 @@ userid explícitamente uid query -string \ No newline at end of file +string +checkboxes diff --git a/dictionaries/library_cmath.txt b/dictionaries/library_cmath.txt index 8e3e270e6d..c5d4edfa11 100644 --- a/dictionaries/library_cmath.txt +++ b/dictionaries/library_cmath.txt @@ -2,3 +2,6 @@ phi arcocoseno arcoseno arcotangente +not +number +radianes \ No newline at end of file diff --git a/dictionaries/library_codeop.txt b/dictionaries/library_codeop.txt index 9abf3d55de..8e77070fc5 100644 --- a/dictionaries/library_codeop.txt +++ b/dictionaries/library_codeop.txt @@ -1 +1,2 @@ filename +eval diff --git a/dictionaries/library_collections.txt b/dictionaries/library_collections.txt index 047041855e..d3716f013c 100644 --- a/dictionaries/library_collections.txt +++ b/dictionaries/library_collections.txt @@ -14,6 +14,7 @@ Django Enthought Factory factory +factoriza iteración mapeados mapping diff --git a/dictionaries/library_compileall.txt b/dictionaries/library_compileall.txt index 4e491858b4..a52be1aacf 100644 --- a/dictionaries/library_compileall.txt +++ b/dictionaries/library_compileall.txt @@ -1,2 +1,3 @@ workers -pycs \ No newline at end of file +pycs +multinivel diff --git a/dictionaries/library_concurrency.txt b/dictionaries/library_concurrency.txt new file mode 100644 index 0000000000..279f53d16e --- /dev/null +++ b/dictionaries/library_concurrency.txt @@ -0,0 +1 @@ +apropiativa diff --git a/dictionaries/library_crypt.txt b/dictionaries/library_crypt.txt new file mode 100644 index 0000000000..b5801a900f --- /dev/null +++ b/dictionaries/library_crypt.txt @@ -0,0 +1 @@ +Blowfish \ No newline at end of file diff --git a/dictionaries/library_ctypes.txt b/dictionaries/library_ctypes.txt index aebe2011bc..86004425ab 100644 --- a/dictionaries/library_ctypes.txt +++ b/dictionaries/library_ctypes.txt @@ -20,4 +20,7 @@ DllGetClassObject redimensiona subclasificando inicializadas -inicializarán \ No newline at end of file +inicializarán +private +win +Hm \ No newline at end of file diff --git a/dictionaries/library_curses.txt b/dictionaries/library_curses.txt index 50f453f334..fa63513cfa 100644 --- a/dictionaries/library_curses.txt +++ b/dictionaries/library_curses.txt @@ -2,3 +2,10 @@ Cian editable Desinicializa redibujado +desinicializada +program +cian +position +background +stdscr +cooked \ No newline at end of file diff --git a/dictionaries/library_dataclasses.txt b/dictionaries/library_dataclasses.txt index ef2c077293..e1411e8660 100644 --- a/dictionaries/library_dataclasses.txt +++ b/dictionaries/library_dataclasses.txt @@ -1,2 +1,2 @@ pseudocampo -pseudocampos +pseudocampos \ No newline at end of file diff --git a/dictionaries/library_datetime.txt b/dictionaries/library_datetime.txt new file mode 100644 index 0000000000..87be1fdb45 --- /dev/null +++ b/dictionaries/library_datetime.txt @@ -0,0 +1 @@ +Eastern \ No newline at end of file diff --git a/dictionaries/library_debug.txt b/dictionaries/library_debug.txt new file mode 100644 index 0000000000..7de185bfa3 --- /dev/null +++ b/dictionaries/library_debug.txt @@ -0,0 +1 @@ +intrusivos diff --git a/dictionaries/library_devmode.txt b/dictionaries/library_devmode.txt new file mode 100644 index 0000000000..6258a58f24 --- /dev/null +++ b/dictionaries/library_devmode.txt @@ -0,0 +1 @@ +Bad diff --git a/dictionaries/library_dialog.txt b/dictionaries/library_dialog.txt new file mode 100644 index 0000000000..530b76eddb --- /dev/null +++ b/dictionaries/library_dialog.txt @@ -0,0 +1,4 @@ +label +pattern +subclasificada +Renderiza \ No newline at end of file diff --git a/dictionaries/library_difflib.txt b/dictionaries/library_difflib.txt index a6f08c236a..7359f664c3 100644 --- a/dictionaries/library_difflib.txt +++ b/dictionaries/library_difflib.txt @@ -15,3 +15,8 @@ instanciamos Differ intralineales difflib +intralíneas +Metzener +Obershelp +dummy +next \ No newline at end of file diff --git a/dictionaries/library_distutils.txt b/dictionaries/library_distutils.txt index f4f388c888..4d058cccca 100644 --- a/dictionaries/library_distutils.txt +++ b/dictionaries/library_distutils.txt @@ -1 +1,2 @@ -plugins \ No newline at end of file +plugins +Authority diff --git a/dictionaries/library_doctest.txt b/dictionaries/library_doctest.txt index bcf8bf713c..22b9ec95f6 100644 --- a/dictionaries/library_doctest.txt +++ b/dictionaries/library_doctest.txt @@ -5,4 +5,4 @@ DocTests defiere reusado parametrización - +ups diff --git a/dictionaries/library_email.charset.txt b/dictionaries/library_email.charset.txt new file mode 100644 index 0000000000..7634b25d22 --- /dev/null +++ b/dictionaries/library_email.charset.txt @@ -0,0 +1,2 @@ +printable +quoted \ No newline at end of file diff --git a/dictionaries/library_email.errors.txt b/dictionaries/library_email.errors.txt new file mode 100644 index 0000000000..814b7d97b5 --- /dev/null +++ b/dictionaries/library_email.errors.txt @@ -0,0 +1 @@ +multiparte \ No newline at end of file diff --git a/dictionaries/library_email.generator.txt b/dictionaries/library_email.generator.txt index a0eb3796fb..64504632f1 100644 --- a/dictionaries/library_email.generator.txt +++ b/dictionaries/library_email.generator.txt @@ -1,3 +1,5 @@ recodificado serializando reenvuelve +policy +Policy diff --git a/dictionaries/library_email.header.txt b/dictionaries/library_email.header.txt index d4c901d1e9..bcb69465e0 100644 --- a/dictionaries/library_email.header.txt +++ b/dictionaries/library_email.header.txt @@ -1 +1,2 @@ códec +UnicodeError \ No newline at end of file diff --git a/dictionaries/library_email.message.txt b/dictionaries/library_email.message.txt new file mode 100644 index 0000000000..21a78cbce1 --- /dev/null +++ b/dictionaries/library_email.message.txt @@ -0,0 +1,6 @@ +email +multipart +msg +maintype +clean +body diff --git a/dictionaries/library_emailparser.txt b/dictionaries/library_email.parser.txt similarity index 84% rename from dictionaries/library_emailparser.txt rename to dictionaries/library_email.parser.txt index 462ea960e0..7ac6d17bec 100644 --- a/dictionaries/library_emailparser.txt +++ b/dictionaries/library_email.parser.txt @@ -1,2 +1,3 @@ subpartes serializada +idad \ No newline at end of file diff --git a/dictionaries/library_email.policy.txt b/dictionaries/library_email.policy.txt new file mode 100644 index 0000000000..fe84e5aa51 --- /dev/null +++ b/dictionaries/library_email.policy.txt @@ -0,0 +1,3 @@ +charset +content +only \ No newline at end of file diff --git a/dictionaries/library_email_message.txt b/dictionaries/library_email_message.txt deleted file mode 100644 index 7df2c2848b..0000000000 --- a/dictionaries/library_email_message.txt +++ /dev/null @@ -1 +0,0 @@ -email diff --git a/dictionaries/library_enum.txt b/dictionaries/library_enum.txt index 47b855316b..9b2bc94fd6 100644 --- a/dictionaries/library_enum.txt +++ b/dictionaries/library_enum.txt @@ -2,4 +2,8 @@ IronPython transitividad Enums serializadas -SomeData \ No newline at end of file +SomeData +hasheables +IntEnum +style +sobreescriba diff --git a/dictionaries/library_errno.txt b/dictionaries/library_errno.txt index d66acd2b1d..9822ec9649 100644 --- a/dictionaries/library_errno.txt +++ b/dictionaries/library_errno.txt @@ -1,3 +1,4 @@ typewriter interbloqueo Srmount +out diff --git a/dictionaries/library_fcntl.txt b/dictionaries/library_fcntl.txt new file mode 100644 index 0000000000..883d5425d5 --- /dev/null +++ b/dictionaries/library_fcntl.txt @@ -0,0 +1 @@ +fcntl diff --git a/dictionaries/library_filecmp.txt b/dictionaries/library_filecmp.txt index 0a4bc5f431..f0f372fcb8 100644 --- a/dictionaries/library_filecmp.txt +++ b/dictionaries/library_filecmp.txt @@ -1,3 +1,4 @@ hooks mtime -recursivamente \ No newline at end of file +recursivamente +filecmp \ No newline at end of file diff --git a/dictionaries/library_formatter.txt b/dictionaries/library_formatter.txt new file mode 100644 index 0000000000..be7b4456b2 --- /dev/null +++ b/dictionaries/library_formatter.txt @@ -0,0 +1 @@ +formateadora \ No newline at end of file diff --git a/dictionaries/library_ftplib.txt b/dictionaries/library_ftplib.txt new file mode 100644 index 0000000000..e19b7720ec --- /dev/null +++ b/dictionaries/library_ftplib.txt @@ -0,0 +1 @@ +perm diff --git a/dictionaries/library_functions.txt b/dictionaries/library_functions.txt index 10f83f3f8f..5ac2f2e6aa 100644 --- a/dictionaries/library_functions.txt +++ b/dictionaries/library_functions.txt @@ -1 +1,2 @@ testear +predictores diff --git a/dictionaries/library_gc.txt b/dictionaries/library_gc.txt index 9af9329859..6a1572a3f0 100644 --- a/dictionaries/library_gc.txt +++ b/dictionaries/library_gc.txt @@ -1,2 +1,6 @@ recolectables - +uncollectable +collected +generation +desreferenciado +desasignaciones diff --git a/dictionaries/library_glob.txt b/dictionaries/library_glob.txt index 6bbe9e3174..ffe3494c35 100644 --- a/dictionaries/library_glob.txt +++ b/dictionaries/library_glob.txt @@ -1 +1,2 @@ globs +wildcards diff --git a/dictionaries/library_grp.txt b/dictionaries/library_grp.txt new file mode 100644 index 0000000000..851661dd52 --- /dev/null +++ b/dictionaries/library_grp.txt @@ -0,0 +1,2 @@ +gr +encriptado \ No newline at end of file diff --git a/dictionaries/library_hashlib.txt b/dictionaries/library_hashlib.txt index 8cddd11b89..a1d025cd27 100644 --- a/dictionaries/library_hashlib.txt +++ b/dictionaries/library_hashlib.txt @@ -9,3 +9,12 @@ Commons Public Domain Dedication +adler +crc +Keccak +md +afinable +pseudoaleatoriedad +sha +Skein +hashlib diff --git a/dictionaries/library_heapq.txt b/dictionaries/library_heapq.txt index 47693f6435..25aa16a97e 100644 --- a/dictionaries/library_heapq.txt +++ b/dictionaries/library_heapq.txt @@ -1,2 +1,10 @@ secuenciador desapilando +heap +min +max +pop +push +preclasificadas +reestablezca +th \ No newline at end of file diff --git a/dictionaries/library_hmac.txt b/dictionaries/library_hmac.txt index 3da1616170..2512b61e22 100644 --- a/dictionaries/library_hmac.txt +++ b/dictionaries/library_hmac.txt @@ -1 +1,2 @@ -hmac \ No newline at end of file +hmac +digestmod diff --git a/dictionaries/library_http.client.txt b/dictionaries/library_http.client.txt new file mode 100644 index 0000000000..9b4076f840 --- /dev/null +++ b/dictionaries/library_http.client.txt @@ -0,0 +1,3 @@ +http +client +Transfer \ No newline at end of file diff --git a/dictionaries/library_http.cookiejar.txt b/dictionaries/library_http.cookiejar.txt index 1a0ad5edd0..790fb67785 100644 --- a/dictionaries/library_http.cookiejar.txt +++ b/dictionaries/library_http.cookiejar.txt @@ -7,3 +7,24 @@ Lynx CookiePolicy DefaultCookiePolicy apagarla +policy +websocket +tunning +policy +server +side +ie +policy +trip +libwww +perl +policy +bolcked +domains +country +level +domain +matching +prefix +downgraded +downgrade diff --git a/dictionaries/library_http_cookies.txt b/dictionaries/library_http.cookies.txt similarity index 92% rename from dictionaries/library_http_cookies.txt rename to dictionaries/library_http.cookies.txt index bb86d09f6c..f07b4560b1 100644 --- a/dictionaries/library_http_cookies.txt +++ b/dictionaries/library_http.cookies.txt @@ -3,3 +3,4 @@ SimpleCookie analícela Morsel Morsels +Lax diff --git a/dictionaries/library_http_server.txt b/dictionaries/library_http_server.txt index 8f08c6d9b7..79f3d56d9d 100644 --- a/dictionaries/library_http_server.txt +++ b/dictionaries/library_http_server.txt @@ -4,3 +4,4 @@ localhost only interoperación handler +sobreescrituras diff --git a/dictionaries/library_idle.txt b/dictionaries/library_idle.txt new file mode 100644 index 0000000000..5c6cf1d691 --- /dev/null +++ b/dictionaries/library_idle.txt @@ -0,0 +1,2 @@ +zzdummy +indenta \ No newline at end of file diff --git a/dictionaries/library_imaplib.txt b/dictionaries/library_imaplib.txt new file mode 100644 index 0000000000..71be0926ae --- /dev/null +++ b/dictionaries/library_imaplib.txt @@ -0,0 +1,2 @@ +Gmail +Washington diff --git a/dictionaries/library_imghdr.txt b/dictionaries/library_imghdr.txt index 0d43fc318a..801d6fa8b4 100644 --- a/dictionaries/library_imghdr.txt +++ b/dictionaries/library_imghdr.txt @@ -5,3 +5,4 @@ Graymap Pixmap Raster Bitmap +imghdr \ No newline at end of file diff --git a/dictionaries/library_importlib.metadata.txt b/dictionaries/library_importlib.metadata.txt new file mode 100644 index 0000000000..ea00c38f0b --- /dev/null +++ b/dictionaries/library_importlib.metadata.txt @@ -0,0 +1 @@ +metadata \ No newline at end of file diff --git a/dictionaries/library_importlib.txt b/dictionaries/library_importlib.txt new file mode 100644 index 0000000000..6229c1eaa8 --- /dev/null +++ b/dictionaries/library_importlib.txt @@ -0,0 +1,15 @@ +desactualizada +determinísticos +recompilado +reejecutado +reimportación +reusando +ubicadores +think +correlacionen +fullname +reusando +reejecutado +recompilado +back +Traversable diff --git a/dictionaries/library_inspect.txt b/dictionaries/library_inspect.txt index 75231c2bc6..9aa1e91af5 100644 --- a/dictionaries/library_inspect.txt +++ b/dictionaries/library_inspect.txt @@ -7,3 +7,9 @@ Signature signature introspeccionables determinísticamente +return +args +arg +tracebacks +yield +annotation \ No newline at end of file diff --git a/dictionaries/library_io.txt b/dictionaries/library_io.txt index b9ae1efc40..29f74fbe2a 100644 --- a/dictionaries/library_io.txt +++ b/dictionaries/library_io.txt @@ -4,3 +4,6 @@ subclasifica Reconfigura preprocesamiento similarmente +subclasificaciones +buscable +interbloqueos \ No newline at end of file diff --git a/dictionaries/library_itertools.txt b/dictionaries/library_itertools.txt index 6c98b8e062..694288061c 100644 --- a/dictionaries/library_itertools.txt +++ b/dictionaries/library_itertools.txt @@ -4,3 +4,9 @@ pred seq itn step +it +elem +vectorizadas +key +sumable +stop \ No newline at end of file diff --git a/dictionaries/library_json.txt b/dictionaries/library_json.txt index 8b438c1959..92b7fb9dd2 100644 --- a/dictionaries/library_json.txt +++ b/dictionaries/library_json.txt @@ -8,3 +8,6 @@ deserializan serializaciones deserialicen deserializadores +null +true +false diff --git a/dictionaries/library_locale.txt b/dictionaries/library_locale.txt index 653501d57c..bd20161781 100644 --- a/dictionaries/library_locale.txt +++ b/dictionaries/library_locale.txt @@ -2,3 +2,7 @@ gettext locale portablemente programáticamente +am +pm +sign +posn \ No newline at end of file diff --git a/dictionaries/library_logging_handlers.txt b/dictionaries/library_logging.handlers.txt similarity index 53% rename from dictionaries/library_logging_handlers.txt rename to dictionaries/library_logging.handlers.txt index 099b704686..7ec5d4d93d 100644 --- a/dictionaries/library_logging_handlers.txt +++ b/dictionaries/library_logging.handlers.txt @@ -3,4 +3,12 @@ serializado serializada deserializar datagrama +warning +port +rotator +namer +rsyslog +tag +method descripto +terminator diff --git a/dictionaries/library_logging.txt b/dictionaries/library_logging.txt new file mode 100644 index 0000000000..5e27f38927 --- /dev/null +++ b/dictionaries/library_logging.txt @@ -0,0 +1,6 @@ +sobreescritos +formatting +recalcule +uuu +clientip +xy diff --git a/dictionaries/library_lzma.txt b/dictionaries/library_lzma.txt index bc7dfdbd31..7027183a87 100644 --- a/dictionaries/library_lzma.txt +++ b/dictionaries/library_lzma.txt @@ -3,3 +3,5 @@ chequeos Hash GiB kiB +incrementalmente +sobreescritura \ No newline at end of file diff --git a/dictionaries/library_mailbox.txt b/dictionaries/library_mailbox.txt index 022e443547..0608cd367e 100644 --- a/dictionaries/library_mailbox.txt +++ b/dictionaries/library_mailbox.txt @@ -6,3 +6,11 @@ Rmail qmail reformateados moverlos +Courier +Mailbox +Underscore +multicanal +tin +cur +deleted +Archived \ No newline at end of file diff --git a/dictionaries/library_mailcap.txt b/dictionaries/library_mailcap.txt index 8caae6ff5f..2059e99139 100644 --- a/dictionaries/library_mailcap.txt +++ b/dictionaries/library_mailcap.txt @@ -5,4 +5,8 @@ Mailcap Agent For Mail -Configuration +mail +capability +Information +compose +view diff --git a/dictionaries/library_marshal.txt b/dictionaries/library_marshal.txt index fbb043764f..35550a03ef 100644 --- a/dictionaries/library_marshal.txt +++ b/dictionaries/library_marshal.txt @@ -1,2 +1,8 @@ pickle marshalled +pseudocompilado +frozenset +unmarshalled +unmarshallable +marshalling +unmarshalling diff --git a/dictionaries/library_mmap.txt b/dictionaries/library_mmap.txt index 293bf980f9..69a7936b43 100644 --- a/dictionaries/library_mmap.txt +++ b/dictionaries/library_mmap.txt @@ -1,3 +1,4 @@ subsecuencia Redimensiona deferir +mmap diff --git a/dictionaries/library_modulefinder.txt b/dictionaries/library_modulefinder.txt new file mode 100644 index 0000000000..6e953b2023 --- /dev/null +++ b/dictionaries/library_modulefinder.txt @@ -0,0 +1 @@ +bacon diff --git a/dictionaries/library_msvcrt.txt b/dictionaries/library_msvcrt.txt new file mode 100644 index 0000000000..04e5d3b5d7 --- /dev/null +++ b/dictionaries/library_msvcrt.txt @@ -0,0 +1 @@ +kbd \ No newline at end of file diff --git a/dictionaries/library_os.txt b/dictionaries/library_os.txt index 97eedaa655..08f036ea71 100644 --- a/dictionaries/library_os.txt +++ b/dictionaries/library_os.txt @@ -15,3 +15,29 @@ ejecutabilidad misceláneas entropía interactividad +v +ruid +sgid +suid +euid +egid +rgid +round +robin +subshell +signal +subshell +stdio +ctime +configurarlos +reescritura +stat +setgid +setuid +setgroups +initgroups +putenv +spawn +execv +group +merge \ No newline at end of file diff --git a/dictionaries/library_osaudiodev.txt b/dictionaries/library_osaudiodev.txt new file mode 100644 index 0000000000..ecad58b315 --- /dev/null +++ b/dictionaries/library_osaudiodev.txt @@ -0,0 +1,2 @@ +Gravis +semidúplex \ No newline at end of file diff --git a/dictionaries/library_othergui.txt b/dictionaries/library_othergui.txt index 4121dd3558..95426d74e0 100644 --- a/dictionaries/library_othergui.txt +++ b/dictionaries/library_othergui.txt @@ -1,2 +1,5 @@ kits -GUI \ No newline at end of file +GUI +Nokia +wxWindows +Company diff --git a/dictionaries/library_pdb.txt b/dictionaries/library_pdb.txt index 40a853e20c..d3af64f76c 100644 --- a/dictionaries/library_pdb.txt +++ b/dictionaries/library_pdb.txt @@ -2,3 +2,5 @@ pdb Pdb readrc decrementa +silent +pdbrc \ No newline at end of file diff --git a/dictionaries/library_pkgutil.txt b/dictionaries/library_pkgutil.txt new file mode 100644 index 0000000000..f68b346ae2 --- /dev/null +++ b/dictionaries/library_pkgutil.txt @@ -0,0 +1 @@ +Pyramid diff --git a/dictionaries/library_platform.txt b/dictionaries/library_platform.txt index 2454ab2adf..98dd27419d 100644 --- a/dictionaries/library_platform.txt +++ b/dictionaries/library_platform.txt @@ -1,4 +1,8 @@ libc patchlevel uname -reordenación \ No newline at end of file +reordenación +multiprocesador +service +pack +IoT \ No newline at end of file diff --git a/dictionaries/library_poplib.txt b/dictionaries/library_poplib.txt index 0b7291edf9..bb302d81d3 100644 --- a/dictionaries/library_poplib.txt +++ b/dictionaries/library_poplib.txt @@ -13,5 +13,10 @@ TOP RFC CA SSL -POP3-over-SSL -IMAP \ No newline at end of file +over +IMAP +off +brand +keep +alive +desconexión \ No newline at end of file diff --git a/dictionaries/library_profile.txt b/dictionaries/library_profile.txt new file mode 100644 index 0000000000..18bc53bd96 --- /dev/null +++ b/dictionaries/library_profile.txt @@ -0,0 +1,8 @@ +sublista +lineno +filename +Czotter +formatearse +profile +stats +vs diff --git a/dictionaries/library_pyclbr.txt b/dictionaries/library_pyclbr.txt new file mode 100644 index 0000000000..8dde6c152b --- /dev/null +++ b/dictionaries/library_pyclbr.txt @@ -0,0 +1 @@ +children \ No newline at end of file diff --git a/dictionaries/library_pydoc.txt b/dictionaries/library_pydoc.txt new file mode 100644 index 0000000000..cd011014e8 --- /dev/null +++ b/dictionaries/library_pydoc.txt @@ -0,0 +1 @@ +paginación \ No newline at end of file diff --git a/dictionaries/library_queue.txt b/dictionaries/library_queue.txt new file mode 100644 index 0000000000..71172e3871 --- /dev/null +++ b/dictionaries/library_queue.txt @@ -0,0 +1,4 @@ +empty +qsize +put +full \ No newline at end of file diff --git a/dictionaries/library_quopri.txt b/dictionaries/library_quopri.txt new file mode 100644 index 0000000000..50628c5fe4 --- /dev/null +++ b/dictionaries/library_quopri.txt @@ -0,0 +1 @@ +Multipurpose diff --git a/dictionaries/library_random.txt b/dictionaries/library_random.txt new file mode 100644 index 0000000000..45c00254c2 --- /dev/null +++ b/dictionaries/library_random.txt @@ -0,0 +1,2 @@ +multithreading +Downey \ No newline at end of file diff --git a/dictionaries/library_re.txt b/dictionaries/library_re.txt new file mode 100644 index 0000000000..1dd825dc33 --- /dev/null +++ b/dictionaries/library_re.txt @@ -0,0 +1 @@ +İ \ No newline at end of file diff --git a/dictionaries/library_readline.txt b/dictionaries/library_readline.txt new file mode 100644 index 0000000000..daae40a698 --- /dev/null +++ b/dictionaries/library_readline.txt @@ -0,0 +1 @@ +libedit \ No newline at end of file diff --git a/dictionaries/library_resource.txt b/dictionaries/library_resource.txt new file mode 100644 index 0000000000..d0ed3a6a6e --- /dev/null +++ b/dictionaries/library_resource.txt @@ -0,0 +1,5 @@ +rlim +mbufs +vm +overcommit +sysctl diff --git a/dictionaries/library_select.txt b/dictionaries/library_select.txt new file mode 100644 index 0000000000..6c0f953459 --- /dev/null +++ b/dictionaries/library_select.txt @@ -0,0 +1,6 @@ +WinSock +kqueue +events +epolling +Permitscontrol +max \ No newline at end of file diff --git a/dictionaries/library_shlex.txt b/dictionaries/library_shlex.txt new file mode 100644 index 0000000000..32e500437a --- /dev/null +++ b/dictionaries/library_shlex.txt @@ -0,0 +1,3 @@ +close +punctuation +chars \ No newline at end of file diff --git a/dictionaries/library_signal.txt b/dictionaries/library_signal.txt index d6714a6dae..46ad825716 100644 --- a/dictionaries/library_signal.txt +++ b/dictionaries/library_signal.txt @@ -5,3 +5,4 @@ poll wakeup wakeups interrumpible +sigmask diff --git a/dictionaries/library_site.txt b/dictionaries/library_site.txt new file mode 100644 index 0000000000..d09c35ace7 --- /dev/null +++ b/dictionaries/library_site.txt @@ -0,0 +1,6 @@ +site +packages +deshabilitarlo +packages +subsubdirectorios +pyvenv \ No newline at end of file diff --git a/dictionaries/library_smtplib.txt b/dictionaries/library_smtplib.txt index 293986d100..d266fa8eef 100644 --- a/dictionaries/library_smtplib.txt +++ b/dictionaries/library_smtplib.txt @@ -3,3 +3,9 @@ host hostname millaje Conéctese +address +initialization +connect +address +username +spammers diff --git a/dictionaries/library_socket.txt b/dictionaries/library_socket.txt index bae452eef7..db8333c293 100644 --- a/dictionaries/library_socket.txt +++ b/dictionaries/library_socket.txt @@ -16,3 +16,12 @@ meth dfn Linux co +Bluetooth +router +inet +Stuart +Sechrest +Leffler +WinSock +Winsock +Samuel diff --git a/dictionaries/library_spwd.txt b/dictionaries/library_spwd.txt new file mode 100644 index 0000000000..e4900e5bec --- /dev/null +++ b/dictionaries/library_spwd.txt @@ -0,0 +1,3 @@ +sp +namp +pwdp \ No newline at end of file diff --git a/dictionaries/library_sqlite3.txt b/dictionaries/library_sqlite3.txt index 154c06a26d..63406be54e 100644 --- a/dictionaries/library_sqlite3.txt +++ b/dictionaries/library_sqlite3.txt @@ -9,3 +9,14 @@ sobrecoste arraysize rowid datetime +André +Lemburg +mytype +Expiration +depurarlas +bytestrings +temp +qmark +timestamps +rollback +loadable diff --git a/dictionaries/library_ssl.txt b/dictionaries/library_ssl.txt index bcd3fe71dd..2cc07b5d05 100644 --- a/dictionaries/library_ssl.txt +++ b/dictionaries/library_ssl.txt @@ -1,24 +1,61 @@ +Basic +CertificateRequest +Change +Client +Diffie +Elliptic +Hellman +Hello +HelloRequest +Poly +Spec +Trust +Wireshark blob cafile capath -CertificateRequest -Change +cert +certs cipher -Client +cryptographic daemon daemons +desencripta disjunto -Elliptic handshake -Hello -HelloRequest +hostname +hostnames keylog +matching matchings openssl -Spec +server +socket ssl subjectAltName ticket tickets -Trust +tls +trust +unique +v wrapper +Secure +Layer +matching +Poly +cryptographic +hard +coded +cert +trust +matching +hostnames +Diffie +Hellman +tls +unique +server +Wireshark +certs +Basic diff --git a/dictionaries/library_stdtypes.txt b/dictionaries/library_stdtypes.txt index fb3712313d..e0170a2be1 100644 --- a/dictionaries/library_stdtypes.txt +++ b/dictionaries/library_stdtypes.txt @@ -1,5 +1,8 @@ computacionalmente Cardinalidad +subindicando superconjunto superíndices unaria +Ll +Lu \ No newline at end of file diff --git a/dictionaries/library_stringprep.txt b/dictionaries/library_stringprep.txt new file mode 100644 index 0000000000..0f959e88bf --- /dev/null +++ b/dictionaries/library_stringprep.txt @@ -0,0 +1,5 @@ +tablaA +tablaB +tablaC +tablaD +surrogados diff --git a/dictionaries/library_subprocess.txt b/dictionaries/library_subprocess.txt new file mode 100644 index 0000000000..297fd163d5 --- /dev/null +++ b/dictionaries/library_subprocess.txt @@ -0,0 +1,2 @@ +setregid +setreuid diff --git a/dictionaries/library_sys.txt b/dictionaries/library_sys.txt index a49ea39457..84d75f8191 100644 --- a/dictionaries/library_sys.txt +++ b/dictionaries/library_sys.txt @@ -3,3 +3,8 @@ nan cachés pycache codifíquelo +replace +pth +pydebug +surrogateescape +enumerador \ No newline at end of file diff --git a/dictionaries/library_tarfile.txt b/dictionaries/library_tarfile.txt index e2b64b23e2..f916dd95d3 100644 --- a/dictionaries/library_tarfile.txt +++ b/dictionaries/library_tarfile.txt @@ -5,3 +5,8 @@ Output GiB bsdtar libarchive +ustar +star +fifo +w +fifos \ No newline at end of file diff --git a/dictionaries/library_telnetlib.txt b/dictionaries/library_telnetlib.txt index 1ab48545d9..29d8ae5f19 100644 --- a/dictionaries/library_telnetlib.txt +++ b/dictionaries/library_telnetlib.txt @@ -1,3 +1,20 @@ Telnet telnet You +telnetlib +suboption +begin +Begin +end +End +Abort +Ahead +Break +Character +Interrupt +Line +Operation +Subnegotiation +There +output +process diff --git a/dictionaries/library_test.txt b/dictionaries/library_test.txt index 5fadc6a227..b3509813fd 100644 --- a/dictionaries/library_test.txt +++ b/dictionaries/library_test.txt @@ -13,3 +13,9 @@ reutilización subinterpretador subinterpretadores PyUnit +refleaks +regrtest +loopback +buildbots +instr +Oberkirch \ No newline at end of file diff --git a/dictionaries/library_time.txt b/dictionaries/library_time.txt index 39cb2da62c..ed05b39d25 100644 --- a/dictionaries/library_time.txt +++ b/dictionaries/library_time.txt @@ -1,2 +1,6 @@ range monotónico +monotónicamente +Greenwich +dst +zoneinfo \ No newline at end of file diff --git a/dictionaries/library_tkinter.tix.txt b/dictionaries/library_tkinter.tix.txt index 61bac1940d..c773d5b902 100644 --- a/dictionaries/library_tkinter.tix.txt +++ b/dictionaries/library_tkinter.tix.txt @@ -3,3 +3,8 @@ redimensionamiento bitmap sublista xbm +configurables +bitmaps +Motif +check +box \ No newline at end of file diff --git a/dictionaries/library_tkinter.ttk.txt b/dictionaries/library_tkinter.ttk.txt new file mode 100644 index 0000000000..d61e8ef485 --- /dev/null +++ b/dictionaries/library_tkinter.ttk.txt @@ -0,0 +1,55 @@ +Ttk +fg +bg +monografía +tkinter +Treeview +notebook +notebooks +Combobox +spinbox +Button +Checkbuttons +radiobuttons +desasocian +mnemotécnico +mnemotécnica +clickeando +reinsertados +mouse +element +somewidget +ThemeChanged +image +layout +themename +value +statespec +imagespec +vsapi +winfo +anchor +displaycolumns +width +all +tree +bottom +left +right +none +current +scrollcommand +Misc +readonly +disabled +Pf +Down +Up +determinate +indeterminate +browse +headings +selection +center +register +hidden \ No newline at end of file diff --git a/dictionaries/library_tkinter.txt b/dictionaries/library_tkinter.txt new file mode 100644 index 0000000000..0d4d8f300e --- /dev/null +++ b/dictionaries/library_tkinter.txt @@ -0,0 +1,4 @@ +wrap +Motion +renderizado +mainloop diff --git a/dictionaries/library_tkinter_ttk.txt b/dictionaries/library_tkinter_ttk.txt deleted file mode 100644 index 240d1ed9ee..0000000000 --- a/dictionaries/library_tkinter_ttk.txt +++ /dev/null @@ -1,19 +0,0 @@ -Ttk -fg -bg -monografía -tkinter -Treeview -notebook -notebooks -Combobox -spinbox -Button -Checkbuttons -radiobuttons -desasocian -mnemotécnico -mnemotécnica -clickeando -reinsertados -mouse diff --git a/dictionaries/library_trace.txt b/dictionaries/library_trace.txt new file mode 100644 index 0000000000..6eab79a6ce --- /dev/null +++ b/dictionaries/library_trace.txt @@ -0,0 +1 @@ +missing \ No newline at end of file diff --git a/dictionaries/library_tracemalloc.txt b/dictionaries/library_tracemalloc.txt index f4e57d76ab..cda7821ce3 100644 --- a/dictionaries/library_tracemalloc.txt +++ b/dictionaries/library_tracemalloc.txt @@ -1,3 +1,4 @@ desinstala - - +frozen +offline +bootstrap diff --git a/dictionaries/library_turtle.txt b/dictionaries/library_turtle.txt index 605d28be49..624efe5cd3 100644 --- a/dictionaries/library_turtle.txt +++ b/dictionaries/library_turtle.txt @@ -74,3 +74,12 @@ nim docstringdict aperiódico gravitacional +inscripto +arrow +Verhulst +kolams +shape +nimsticks +shapepoly +tiltangle +keyrelease diff --git a/dictionaries/library_typing.txt b/dictionaries/library_typing.txt new file mode 100644 index 0000000000..99a9846a66 --- /dev/null +++ b/dictionaries/library_typing.txt @@ -0,0 +1,2 @@ +variádico +variádicos diff --git a/dictionaries/library_unicodedata.txt b/dictionaries/library_unicodedata.txt new file mode 100644 index 0000000000..c54919d6d0 --- /dev/null +++ b/dictionaries/library_unicodedata.txt @@ -0,0 +1 @@ +gb \ No newline at end of file diff --git a/dictionaries/library_unittest.mock-examples.txt b/dictionaries/library_unittest.mock-examples.txt index f1dc1e3424..aded6f8757 100644 --- a/dictionaries/library_unittest.mock-examples.txt +++ b/dictionaries/library_unittest.mock-examples.txt @@ -1 +1,19 @@ +MagickMock Mock +Mocking +args +back +dotted +fooble +iter +its +matcher +mocking +mocks +monkey +parcharlo +refactoriza +setUp +tearDown +through +undone diff --git a/dictionaries/library_unittest.mock.txt b/dictionaries/library_unittest.mock.txt index 04768a2701..2553681c09 100644 --- a/dictionaries/library_unittest.mock.txt +++ b/dictionaries/library_unittest.mock.txt @@ -25,3 +25,8 @@ sizeof start stop stubs +awaits +awaitable +autoespecificados +spec +deshacerlo diff --git a/dictionaries/library_unittest.txt b/dictionaries/library_unittest.txt new file mode 100644 index 0000000000..86917fa045 --- /dev/null +++ b/dictionaries/library_unittest.txt @@ -0,0 +1,38 @@ +Beck +Dicts +Kent +TestCase +TestSuite +Testea +Unittest +aleatoriza +break +catch +debugger +discover +discovery +errors +fail +fixture +frozenset +frozensets +instanciará +locals +logs +longMessage +msg +refactorizaciones +reimplementar +runner +setUpClass +setUpModule +standard +subtest +subtests +tb +tearDownClass +tearDownModule +tests +testea +unittest +verbosity diff --git a/dictionaries/library_urllib.request.txt b/dictionaries/library_urllib.request.txt index ca988ebf1a..8b2c611760 100644 --- a/dictionaries/library_urllib.request.txt +++ b/dictionaries/library_urllib.request.txt @@ -27,4 +27,15 @@ BasicAuth ProxyHandler userinfo msg -AbstractBasicAuthHandler \ No newline at end of file +AbstractBasicAuthHandler +digest +setter +deleter +redireccionada +req +unverifiable +manejadoras +permanently +redirect +addinfourl +is diff --git a/dictionaries/library_uu.txt b/dictionaries/library_uu.txt index 9bad441095..e8e2365c1d 100644 --- a/dictionaries/library_uu.txt +++ b/dictionaries/library_uu.txt @@ -1,2 +1,3 @@ Ellinghouse Jack +Jansen diff --git a/dictionaries/library_venv.txt b/dictionaries/library_venv.txt new file mode 100644 index 0000000000..5ceb3864c2 --- /dev/null +++ b/dictionaries/library_venv.txt @@ -0,0 +1 @@ +venv diff --git a/dictionaries/library_weakref.txt b/dictionaries/library_weakref.txt index 64a2f3a656..8af4d5df9b 100644 --- a/dictionaries/library_weakref.txt +++ b/dictionaries/library_weakref.txt @@ -2,3 +2,8 @@ reusar retrollamada retrollamadas dereferencia +mapeable +threading +lock +weakref +daemonic diff --git a/dictionaries/library_webbrowser.txt b/dictionaries/library_webbrowser.txt index 744c5ea557..1c2077fd10 100644 --- a/dictionaries/library_webbrowser.txt +++ b/dictionaries/library_webbrowser.txt @@ -1 +1,5 @@ -instanciaciones \ No newline at end of file +instanciaciones +Chrome +Chromium +kfm +Konqueror \ No newline at end of file diff --git a/dictionaries/library_winsound.txt b/dictionaries/library_winsound.txt new file mode 100644 index 0000000000..c2d65fd930 --- /dev/null +++ b/dictionaries/library_winsound.txt @@ -0,0 +1,2 @@ +winsound +hz \ No newline at end of file diff --git a/dictionaries/library_wsgiref.txt b/dictionaries/library_wsgiref.txt index bb8ed39389..7697686f33 100644 --- a/dictionaries/library_wsgiref.txt +++ b/dictionaries/library_wsgiref.txt @@ -1,2 +1,14 @@ transcodifica frameworks +Hop +by +Hello +World +world +Platform +Reconstruction +https +Handling +header +Specific +vhost diff --git a/dictionaries/library_xdrlib.txt b/dictionaries/library_xdrlib.txt new file mode 100644 index 0000000000..20a6d80a39 --- /dev/null +++ b/dictionaries/library_xdrlib.txt @@ -0,0 +1,2 @@ +Microsystems +Inc diff --git a/dictionaries/library_xml.dom.minidom.txt b/dictionaries/library_xml.dom.minidom.txt index 0ac37b8c22..bcc881a2da 100644 --- a/dictionaries/library_xml.dom.minidom.txt +++ b/dictionaries/library_xml.dom.minidom.txt @@ -3,4 +3,4 @@ minidom Model solucionador subnodos - +pythónicas diff --git a/dictionaries/library_xml.dom.txt b/dictionaries/library_xml.dom.txt new file mode 100644 index 0000000000..ebd101c936 --- /dev/null +++ b/dictionaries/library_xml.dom.txt @@ -0,0 +1,3 @@ +definirlas +controversial +live \ No newline at end of file diff --git a/dictionaries/library_xml.etree.elementtree.txt b/dictionaries/library_xml.etree.elementtree.txt new file mode 100644 index 0000000000..2368132399 --- /dev/null +++ b/dictionaries/library_xml.etree.elementtree.txt @@ -0,0 +1,21 @@ +callable +cárguelo +comment +debugging +Element +ElementTree +ElementInclude +expat +fictional +find +href +ns +push +qname +serializadores +serializarán +tail +text +TreeBuilder +uri +xmlns diff --git a/dictionaries/library_xml.sax.handler.txt b/dictionaries/library_xml.sax.handler.txt new file mode 100644 index 0000000000..52c5e004d7 --- /dev/null +++ b/dictionaries/library_xml.sax.handler.txt @@ -0,0 +1,2 @@ +xml +sax diff --git a/dictionaries/library_xml.sax.reader.txt b/dictionaries/library_xml.sax.reader.txt new file mode 100644 index 0000000000..25118dff9d --- /dev/null +++ b/dictionaries/library_xml.sax.reader.txt @@ -0,0 +1,3 @@ +resolveEntity +like +setEncoding diff --git a/dictionaries/library_xml.sax.utils.txt b/dictionaries/library_xml.sax.utils.txt index 3ab39b874a..a3500710c6 100644 --- a/dictionaries/library_xml.sax.utils.txt +++ b/dictionaries/library_xml.sax.utils.txt @@ -1 +1,2 @@ -polimórfico \ No newline at end of file +polimórfico +autocerrada \ No newline at end of file diff --git a/dictionaries/library_xmlrpc.server.txt b/dictionaries/library_xmlrpc.server.txt new file mode 100644 index 0000000000..a842323278 --- /dev/null +++ b/dictionaries/library_xmlrpc.server.txt @@ -0,0 +1,4 @@ +ExampleService +pydoc +autodocumentados +multicall \ No newline at end of file diff --git a/dictionaries/library_xmlrpc_server.txt b/dictionaries/library_xmlrpc_server.txt deleted file mode 100644 index 8f675a46ff..0000000000 --- a/dictionaries/library_xmlrpc_server.txt +++ /dev/null @@ -1 +0,0 @@ -ExampleService \ No newline at end of file diff --git a/dictionaries/library_zipapp.txt b/dictionaries/library_zipapp.txt index c2be192983..0194ade95d 100644 --- a/dictionaries/library_zipapp.txt +++ b/dictionaries/library_zipapp.txt @@ -11,3 +11,12 @@ Windows zip Zip zipapp +shebang +modificándolo +callable +pkg +deflate +create +fn +Limited +antepuestos \ No newline at end of file diff --git a/dictionaries/library_zipfile.txt b/dictionaries/library_zipfile.txt index ad9a016290..f06dfc8a60 100644 --- a/dictionaries/library_zipfile.txt +++ b/dictionaries/library_zipfile.txt @@ -1,3 +1,6 @@ ZipFile PyZipFile ZipInfo +zipp +rb +wb diff --git a/dictionaries/library_zoneinfo.txt b/dictionaries/library_zoneinfo.txt new file mode 100644 index 0000000000..2e6716455d --- /dev/null +++ b/dictionaries/library_zoneinfo.txt @@ -0,0 +1,10 @@ +tzdata +diferent +despickeados +datetimes +Tokyo +Repository +serializándolo +magic +deserializados +recalcula \ No newline at end of file diff --git a/dictionaries/license.txt b/dictionaries/license.txt new file mode 100644 index 0000000000..89dc190a25 --- /dev/null +++ b/dictionaries/license.txt @@ -0,0 +1,18 @@ +Beihang +Bernstein +Centrum +Corporation +Creations +Initiatives +Keio +Marek +Mathematisch +National +Research +Reston +Stichting +cfuhash +com +dtoa +libffi +strtod diff --git a/dictionaries/logging.txt b/dictionaries/logging.txt index 89e373d759..95930897ec 100644 --- a/dictionaries/logging.txt +++ b/dictionaries/logging.txt @@ -1,4 +1,7 @@ strptime loggers LogRecord -LoggerAdapter \ No newline at end of file +LoggerAdapter +concurrent +futures +gz diff --git a/dictionaries/reference_compound_stmts.txt b/dictionaries/reference_compound_stmts.txt new file mode 100644 index 0000000000..2d866fb770 --- /dev/null +++ b/dictionaries/reference_compound_stmts.txt @@ -0,0 +1 @@ +precalculado \ No newline at end of file diff --git a/dictionaries/reference_datamodel.txt b/dictionaries/reference_datamodel.txt new file mode 100644 index 0000000000..7c3677fd9b --- /dev/null +++ b/dictionaries/reference_datamodel.txt @@ -0,0 +1,3 @@ +objects +zero +awaitable diff --git a/dictionaries/reference_expressions.txt b/dictionaries/reference_expressions.txt index e30dc370b0..78ec25c601 100644 --- a/dictionaries/reference_expressions.txt +++ b/dictionaries/reference_expressions.txt @@ -6,4 +6,8 @@ reflexibilidad superconjuntos superconjuntos lexicográficamente -unarios \ No newline at end of file +unarios +walrus +floor +algorítmicamente +inhashables \ No newline at end of file diff --git a/dictionaries/reference_import.txt b/dictionaries/reference_import.txt index 7573e478a7..5f7e46d392 100644 --- a/dictionaries/reference_import.txt +++ b/dictionaries/reference_import.txt @@ -13,3 +13,18 @@ pseudocódigo caché zipfile importlib +submodule +machinery +rst +pkgutil +runpy +origin +moduleY +location +locations +loader +zipfiles +inicializándolo +attrs +init +exec diff --git a/dictionaries/reference_lexical_analysis.txt b/dictionaries/reference_lexical_analysis.txt new file mode 100644 index 0000000000..855f314304 --- /dev/null +++ b/dictionaries/reference_lexical_analysis.txt @@ -0,0 +1 @@ +Moolenaar diff --git a/dictionaries/sphinx.txt b/dictionaries/sphinx.txt index ca94431022..5ad894de27 100644 --- a/dictionaries/sphinx.txt +++ b/dictionaries/sphinx.txt @@ -1,2 +1,5 @@ Foundation -Cómos \ No newline at end of file +Cómos +updated +last +em \ No newline at end of file diff --git a/dictionaries/using_cmdline.txt b/dictionaries/using_cmdline.txt index bab596ca18..441b725d03 100644 --- a/dictionaries/using_cmdline.txt +++ b/dictionaries/using_cmdline.txt @@ -4,4 +4,5 @@ traceback auditing autocomprobación autocomprobaciónes -hashes \ No newline at end of file +hashes +precompilados \ No newline at end of file diff --git a/dictionaries/using_mac.txt b/dictionaries/using_mac.txt new file mode 100644 index 0000000000..910c35e505 --- /dev/null +++ b/dictionaries/using_mac.txt @@ -0,0 +1,4 @@ +app +Applet +PythonLauncher +Applet \ No newline at end of file diff --git a/dictionaries/using_windows.txt b/dictionaries/using_windows.txt index 92c00c8c7e..d0af0fbcbd 100644 --- a/dictionaries/using_windows.txt +++ b/dictionaries/using_windows.txt @@ -21,3 +21,18 @@ shebang them under without +Now +Customize +installation +posinstalación +paths +vendoring +numpy +Excurso +Modify +hello +ini +pyw +Creating +Installing +Sauvage 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/dictionaries/whatsnew_2.1.txt b/dictionaries/whatsnew_2.1.txt new file mode 100644 index 0000000000..7a3609d924 --- /dev/null +++ b/dictionaries/whatsnew_2.1.txt @@ -0,0 +1,38 @@ +Allie +Ascher +Aycock +Billy +Dietmar +Edwards +Epler +Gellekum +Goodger +Graeme +Hudson +Hylton +Jeff +Jeremy +Majewski +Makefiles +Marangozov +Middleton +Moshe +Ping +Prescod +Purcell +Pythoneers +Reformulación +Reifschneider +Tishler +Unixware +Wolfson +Wouters +Yee +Zadka +autodetectando +dev +frame +llamable +makefiles +Pythonistas +memoización diff --git a/dictionaries/whatsnew_2.2.txt b/dictionaries/whatsnew_2.2.txt new file mode 100644 index 0000000000..948f4e3e15 --- /dev/null +++ b/dictionaries/whatsnew_2.2.txt @@ -0,0 +1,61 @@ +An +Baxter +Bolen +Bremmer +Briggs +Carel +Common +Corp +Donnell +Edward +Eiffel +Fellinger +Gerhard +Hagino +Hansen +Hetland +Häring +Icon +Itamar +Jens +Joonas +Jun +Keith +Labs +Language +Lauder +Magnus +Mathewson +Michel +Moore +Overview +Paalasma +Pelletier +Piers +Programming +Quade +Reinhardt +Romberg +Shtull +Solutions +Stephen +Stolk +Tom +Trauring +Ward +What +Wise +descomentarlos +desocuparlos +dev +generización +hackeando +ichiro +itojun +memberst +must +ndiff +of +reanudables +subclasificarse +uu diff --git a/dictionaries/whatsnew_2.3.txt b/dictionaries/whatsnew_2.3.txt new file mode 100644 index 0000000000..c10acf94e0 --- /dev/null +++ b/dictionaries/whatsnew_2.3.txt @@ -0,0 +1,110 @@ +Oberkirch +Age +Altis +Bauer +Brunning +Chermside +Chris +Christopher +Cliff +Connor +Craig +Dalke +Daniels +Denis +Detlef +Drake +Dörwald +Francesco +Fraser +Geert +Gerber +Getopt +Gilfix +Hans +Hetland +Hindle +Hisao +Hodgson +Hudson +Hurd +Hylton +Icon +Jansen +Jeff +Jeremy +Jones +Jr +Karatsuba +Kelly +Labs +Lalo +Lambert +Lange +Language +Lannert +Lauder +Löwis +Magnus +Malley +Marangozov +Martelli +Martin +Martins +Mick +Montanaro +Moore +Neal +Netzer +Nicholas +Niemeyer +Norwitz +Nowak +Ondrej +Optik +Orendorff +Otkidach +Overview +Palkovsky +Pedroni +Piers +Programming +Reifschneider +Ricciardi +Richie +Robert +Roman +Samuele +Simionato +Simon +Skip +Suzi +Suzuki +Tishler +Travis +Trent +Walter +Ward +Wells +What +Wilson +benchmark +deserializadas +desescalado +dev +empaquetarlo +enumerate +frame +idna +llamables +ports +pystone +reanudables +recompilara +reelaborado +reescríbalas +reformateada +sobreescrituras +topológica +xmlrpclib +Åstrand diff --git a/dictionaries/whatsnew_2.5.txt b/dictionaries/whatsnew_2.5.txt new file mode 100644 index 0000000000..5034b1dcc2 --- /dev/null +++ b/dictionaries/whatsnew_2.5.txt @@ -0,0 +1,75 @@ +Alan +Antti +Bell +Biondi +Bjorn +Blais +Bland +Broytmann +Chang +Coroutines +Coverity +Dooms +Dörwald +Ehresman +Evan +Games +Grosse +Grégoire +Harris +Holger +Hotshot +Hye +Iain +Immisch +Installer +Johnson +Jones +Kaiser +Kiendl +Krekel +Kurt +Louko +Lowe +Lynn +Netlink +Oleg +Optik +Pedroni +Pettenò +Philippe +Prevent +Pryor +Ralf +Reikiavik +Rigo +Robert +Rovner +Samuele +Schroeder +Shik +Spoerri +Sugalski +Summer +Tillenius +Walter +Wd +Weikart +asignadoras +autodetectada +contextlib +coroutines +direccionar +elinks +hook +maildir +netlink +obmalloc +pybench +reelaborado +reutilizándolo +sprint +sprints +ssize +tripleta +wsgiref diff --git a/dictionaries/whatsnew_2.6.txt b/dictionaries/whatsnew_2.6.txt new file mode 100644 index 0000000000..2b8b23cf25 --- /dev/null +++ b/dictionaries/whatsnew_2.6.txt @@ -0,0 +1,114 @@ +reubicadas +Bland +contextlib +Neal +Norwitz +rediseño +Stellenbosch +xxx +Talin +Verdone +Doerwald +Tony +Lownds +Banks +duck +typing +renderiza +Talin +Aranguren +prefijándolos +Patrick +Maupin +Guile +subclasa +Austin +Bengt +Richter +Javascript +Rigo +Jacobs +sprint +Need +Barnes +Fiori +Nubis +ulps +Arvin +Schnell +Fabian +Kreutz +sobrescritura +Brouwers +Lenton +Petrosyan +Levinson +Horcicka +var +Rocky +opcodes +Achim +Gaedke +Shawn +Ligocki +Wladmir +Laan +Ralf +Schmitt +Engine +Lorenz +Quack +Ralf +Schmitt +Taylor +Leif +Hedstrom +Fenner +Bertogli +Pomraning +Werneck +Remahl +Schuppenies +Damien +Miller +Dustin +Mitchell +Dwayne +Bailey +callables +Erik +Demaine +Gregor +Lingl +reimplementaba +Parente +Alan +Summer +Ralf +Schmitt +Riku +Lindblad +Alan +Graham +Horler +Borzenkov +Notation +simplejson +serializándolos +Remahl +Janssen +Duncan +Grisby +make +patchcheck +make +opt +var +Floris +Ralph +Corderoy +Johnson +Lambacher +Michlmayr +Warner +Brown diff --git a/dictionaries/whatsnew_2.7.txt b/dictionaries/whatsnew_2.7.txt index a8be8f3872..9a015e6b20 100644 --- a/dictionaries/whatsnew_2.7.txt +++ b/dictionaries/whatsnew_2.7.txt @@ -3,3 +3,22 @@ Kuchling subsistemas syslogging Travis +Hatch +Belchenko +George +Meador +Inge +Löwis +Martin +amk +warnings +simplefilter +Bethard +values +items +Oliphant +reinsertándola +suncc +Sakkis +Lingard +Kaliszewski diff --git a/dictionaries/whatsnew_3.0.txt b/dictionaries/whatsnew_3.0.txt index 14b1768773..7dd91d31ee 100644 --- a/dictionaries/whatsnew_3.0.txt +++ b/dictionaries/whatsnew_3.0.txt @@ -1,3 +1,6 @@ atractivamente introspeccionar - +softspace +generate +Tru +Prerrequisito diff --git a/dictionaries/whatsnew_3.2.txt b/dictionaries/whatsnew_3.2.txt index 2564d83a98..60bdb9de80 100644 --- a/dictionaries/whatsnew_3.2.txt +++ b/dictionaries/whatsnew_3.2.txt @@ -1,24 +1,30 @@ +Abraham Adam Alexandre +Allen Amaury Anand Andress Andrew Antoine +AquaTk +Arahesis Arc +Arfrever Armin -asignador +Baker Beazley Belopolsky Benjamin Bennetts +Bethard Bolton Brandl Builds Bupjoe Carbon -casing Catucci +Chenet Christos Cocoa Connect @@ -27,49 +33,54 @@ Daode Dave Deily Dickinson -disfuncional Distutils Eckhardt Ezio Florent Foord Forgeot +Frehtes Gawain Georg Georgiou Giampaolo -gotos -hash Hettinger Ilya +Indication +Interpreter +Jenvey +Jónsson Kannada +Kevin Kleckner +Kristján Kumaran Landsch Latin -long Lue Mac Mahn Malcolm +Marcin Mark Mattias Melotti Michael +Miki Murray Ned Neil New Nick -nntplib Nurpmeso Oussoren Peterson +Philip +Pillai Pitrou -port Pthreads -pymalloc -pysqlite +Quinlan +Ray Raymond Regex Regexp @@ -77,75 +88,68 @@ Reid Rodolpho Ronacher Ronald +Sablé Sandler Sat Schaaf Schemenauer Senthil -shells +Server +Shashwat +Steffen Stinner -stringlib Stutzbach +Subversion Swallow Tai +Taifersar +Talbot Tarek Tcl -tempfile -temporary +Tebeka +Terrence Tk -tokens Torsten -tupla Unicode -unittest Unladen +Urban Valgrind +Valur Vant Vassalotti Walzer +Wojdyr X Xicluna +Yasskin Ziadé -transcodificar +asignador +autorreferencia +camel +casing +cpython +desaconsejable +disfuncional +gotos +hash introspectar -sublistas +long +mymodule +nntplib +port +preconstruida +pymalloc +pyshared +pysqlite +shells +stringlib subelementos -autorreferencia -Marcin -Wojdyr -Arahesis -Arfrever -Frehtes -Taifersar -Jenvey -Philip -Stutzbach -Florent -Xicluna -Miki -Terrence -Jónsson -Kristján -Valur -Yasskin -Abraham -Talbot -Foord -Tarek -Ziadé -Sablé -Anand -Pillai -Chenet -Shashwat -Allen -Ray -Łukasz -Steffen +sublistas +tempfile +temporary +tokens +transcodificar +tupla +unittest +unladen Łukasz -AquaTk -Kevin -Subversion -Indication -Server -Interpreter diff --git a/dictionaries/whatsnew_3.3.txt b/dictionaries/whatsnew_3.3.txt index 7fb482041d..efd66c8414 100644 --- a/dictionaries/whatsnew_3.3.txt +++ b/dictionaries/whatsnew_3.3.txt @@ -1,96 +1,136 @@ +Aides +Arnaud Becker -Martin -Torsten -lanzándolas -Krah +Blanch +Boswell +Calderone +Calmettes +Carlson +Catalin +Chris +Chrome +Clark +Colin Curtin -subgenerador -factorizar -subiteradores -subgeneradores -Kelly -Renaud -Ryan -Zbigniew -Furman -Jiwon +Darren +Ewert +Ewing Ezio -Melotti -Lehtinen -Petri +François +Furman +Goderbauer +Gonçalves Gruszczyński -Moody -Colin -Peter -Natali -libmpdec -Libmpdec -linesep -Peter -Karlsen -Nadeem -Vawda -Øyvind -Darren +Gustäbel +Heiko +Herath Hirokazu -Tirosh -Negotiation -Yamamoto -Catalin +Hynek Iacob -Petrou -Aides -Nir -multibyte +Inge Iñigo -Schaaf -Kuhn +Jacek +Jauhiainen +Jean +Jiwon Joseph -Sijin -Inge +Josiah +Juhana +Justin +Karlsen +Kasun +Kelly +Klose +Konieczny +Krah +Kuhn +Lagerwall +Landschoff +Lars +Lehtinen +Libmpdec +Lowis +Löwis +Martin Meador -Townsend +Melotti +Moody +Nadeem +Natali +Negotiation +Niehof +Nir Oudkerk +Peter +Petri +Petrou +Renaud Richard -Hynek -Schlawack -Lagerwall -Zbigniew -Carlson -Josiah -Chris -Clark +Ryan Sandro -Tosi -desreferencian -Niehof -Löwis -Calderone -Juhana Scardine -Herath -Kasun -Heiko -Watson -Gonçalves +Schaaf +Schlawack +Sijin +Simpkins +Szmek Tiago -Goderbauer -Justin +Tirosh +Torsten +Tosi +Townsend +Treviño +Vawda +Virtualenv Warkentin -Landschoff -sql -Simpkins -Jacek -Konieczny -introspectarse -Gustäbel -Lars -subclasificadas -Ewert +Watson Winston -Arnaud -Calmettes -Chrome -Klose +Wundram +Yamamoto +Zbigniew +cast +decode +desreferencian +directory +division +editables +encode +factorizar +filemode +fopen +getbufferproc +hashing +implementation +introspectarse +lanzándolas +libmpdec +linesep +linux +localtime +multibyte +ncursesw +numèricos +package +page pep +platform +reconstruídas +reestricciones +sql +sqlite +startswith +subclasificadas +subgenerador +subgeneradores +subindices +subiteradores +symlink +tarfile +target +timezone ubicarla +utils +wide +xff +Øyvind +Jędrzejewski diff --git a/dictionaries/whatsnew_3.5.txt b/dictionaries/whatsnew_3.5.txt new file mode 100644 index 0000000000..03379d1ac2 --- /dev/null +++ b/dictionaries/whatsnew_3.5.txt @@ -0,0 +1,139 @@ +Joiner +Welbourne +Landau +scandir +Paugh +Sionneau +Korenberg +Girdhar +select +Sinclair +sometype +autoconsistente +Creation +pregeneradas +Abhilash +Akira +Akshit +Alexey +Aneche +Angelico +Arnon +Baiter +Barker +Benno +Brecht +Cauet +Cepl +Chappell +Chaput +Chris +Christopher +Claude +Claudiu +Collins +Davis +Demian +Devin +Dmitry +Draoui +Eriksson +Ezio +Gavin +Gaynor +Geert +Gindi +Glenn +Håkan +Heaney +Hoyt +infijos +Itanium +Jansen +JoinableQueue +Fabrice +Furman +Jeanpierre +Jessica +Jiryu +Johannes +Jones +Joshua +Jukka +Julian +Kachayev +Kazakh +Kazakov +Khurana +Kluyver +Kok +Kumaran +Kushal +launcher +Lehtosalo +Leon +Leslie +Li +Lövdahl +Łukasz +Maciej +Markus +Martin +Matej +Mayank +Melotti +Michel +Milan +Moody +Moore +morsel +Murray +Natali +Nathaniel +Navarrete +Nikolaus +Oberkirch +Panter +Paroz +paul +Petr +proactor +Rafik +Raj +Rath +reconectará +redirigirlo +refactorizaron +reintentan +reintento +Robert +Roberts +Rosenberg +Samwyse +Senthil +Shahaf +SilentGhost +sondeos +sustituibilidad +StopIteration +Szulik +Tajik +Tarek +Tripathi +Vajrasky +Vignali +Viktorin +Vincent +Vogt +Ward +Ware +Wei +Welborn +Wilson +Wouters +Wu +Yaari +Yann +Zachary +Ziadé +Lucas diff --git a/dictionaries/whatsnew_3.7.txt b/dictionaries/whatsnew_3.7.txt new file mode 100644 index 0000000000..efe53b5598 --- /dev/null +++ b/dictionaries/whatsnew_3.7.txt @@ -0,0 +1,19 @@ +Goldschmidt +Jin +Trusty +autocompletar +based +bmp +factorizado +idempotentes +issues +jessie +nix +shot +sincronicas +stretch +subminutos +switch +warn +xenial +Є diff --git a/dictionaries/whatsnew_3.8.txt b/dictionaries/whatsnew_3.8.txt index 40f32a34c1..e47b2375b0 100644 --- a/dictionaries/whatsnew_3.8.txt +++ b/dictionaries/whatsnew_3.8.txt @@ -1,40 +1,3 @@ -ambassador -autodocumentadas -collections -coprimos -cuartiles -Customized -deciles -doctype -dunder -emoji -equiprobables -Eyeballs -Happy -inline -Jupyter -lanzables -libpython -mitigación -missing -multimodales -percentiles -pgen -pickle -pkg -points -program -pycore -pystate -reparse -Settings -subclasifican -twisteroid -unittest -Update -V -wheel -yield Aggarwal Ammar Andrew @@ -57,13 +20,14 @@ Bronson Bussonnier Cannon Carl -Cédric Chapman Cheryl Christian Ci Coombs +Customized Cuthbert +Cédric Davin Demeyer Dickinson @@ -74,11 +38,11 @@ Einat Elizondo Elvis Emily -Éric Eric Ethan Eunice Euresti +Eyeballs Felt Filip Franz @@ -89,13 +53,14 @@ Gerlach Giampaolo Glaser Glasner +Goldschmidt Gregory Grisel Grönholm Guo +Happy Hastings Heblikar -hee Heimes Heissler Hettinger @@ -106,13 +71,16 @@ Janzen Jason Jeroen Jevnik +Jin Joannah Joe +Johnny Jon Jordan -Jörn Josh Juliette +Jupyter +Jörn Keller Krier Kyle @@ -129,6 +97,7 @@ Michele Monsel Morehouse Na +Najera Nanjekye Naoki Neil @@ -137,6 +106,7 @@ Orrù Palivoda Peksag Peterson +Petr Petter Pitrou Potts @@ -144,10 +114,10 @@ Pranskevichus Price Raymond Reedy -Rémi Roach Rodola Rodolà +Rémi Sabella Saimadhav Sajip @@ -157,6 +127,7 @@ Scott Selik Selivanov Serhiy +Settings Shannon Smith Snow @@ -174,7 +145,10 @@ Taskaya Teo Terry Tesler +Update +V Victor +Viktorin Vinay Vladimir Warsaw @@ -185,3 +159,35 @@ Yash Yury Zackery Zhang +ambassador +autodocumentadas +collections +coprimos +cuartiles +deciles +doctype +dunder +emoji +equiprobables +hee +inline +lanzables +libpython +missing +mitigación +multimodales +percentiles +pgen +pickle +pkg +points +program +pycore +pystate +reparse +subclasifican +twisteroid +unittest +wheel +yield +Éric diff --git a/dictionaries/whatsnew_index.txt b/dictionaries/whatsnew_index.txt new file mode 100644 index 0000000000..b4a545d947 --- /dev/null +++ b/dictionaries/whatsnew_index.txt @@ -0,0 +1 @@ +Changelog diff --git a/distributing/index.po b/distributing/index.po index 71adae1eb2..ad71d3f995 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-16 20:23-0300\n" -"Last-Translator: Federico Jurío \n" +"PO-Revision-Date: 2021-08-02 10:49+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/distributing/index.rst:5 msgid "Distributing Python Modules" @@ -284,7 +285,7 @@ msgstr "`Subiendo el proyecto al Python Packaging Index`_" #: ../Doc/distributing/index.rst:131 msgid "`The .pypirc file`_" -msgstr "" +msgstr "`El archivo .pypirc`_" #: ../Doc/distributing/index.rst:144 msgid "How do I...?" diff --git a/distutils/apiref.po b/distutils/apiref.po index 3713120aad..f7321b4454 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:39+0100\n" -"PO-Revision-Date: 2020-09-13 20:10-0400\n" -"Last-Translator: Samantha Valdez\n" +"PO-Revision-Date: 2021-08-02 10:58+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/distutils/apiref.rst:5 msgid "API Reference" @@ -2143,31 +2144,45 @@ msgid "" "earlier returned only a single additional field with the AIX Version and " "Release." msgstr "" +"Para AIX, Python 3.9 y versiones posteriores retornan una cadena que " +"comienza con \"aix\", seguida de campos adicionales (separados por ``'-'``) " +"que representan los valores combinados de Versión de AIX, Release y Nivel de " +"tecnología (primer campo), Fecha de Construcción (segundo campo) y tamaño de " +"bits (tercer campo). Python 3.8 y anteriores retornaban solo un campo " +"adicional con la versión y lanzamiento de AIX." #: ../Doc/distutils/apiref.rst:1151 -#, fuzzy msgid "Examples of returned values on AIX:" -msgstr "Ejemplos de valores retornados:" +msgstr "Ejemplos de valores retornados en AIX:" #: ../Doc/distutils/apiref.rst:1153 msgid "" "``aix-5307-0747-32`` # 32-bit build on AIX ``oslevel -s``: 5300-07-00-0000" msgstr "" +"``aix-5307-0747-32`` # construcción 32-bit en AIX ``oslevel -s``: " +"5300-07-00-0000" #: ../Doc/distutils/apiref.rst:1155 msgid "" "``aix-7105-1731-64`` # 64-bit build on AIX ``oslevel -s``: 7100-05-01-1731" msgstr "" +"``aix-7105-1731-64`` # construcción 64-bit en AIX ``oslevel -s``: " +"7100-05-01-1731" #: ../Doc/distutils/apiref.rst:1157 msgid "``aix-7.2`` # Legacy form reported in Python 3.8 and earlier" msgstr "" +"``aix-7.2`` # Forma heredada informada en Python 3.8 y versiones " +"anteriores" #: ../Doc/distutils/apiref.rst:1159 msgid "" "The AIX platform string format now also includes the technology level, build " "date, and ABI bit-size." msgstr "" +"El formato de cadena de caracteres de la plataforma AIX ahora también " +"incluye el nivel de tecnología, la fecha de construcción y el tamaño de bits " +"de ABI." #: ../Doc/distutils/apiref.rst:1166 msgid "" @@ -2524,8 +2539,8 @@ msgid "" "The option_table is a list of 3-tuples: ``(long_option, short_option, " "help_string)``" msgstr "" -"option_table es una lista de 3 tuplas: ``(long_option, short_option, " -"help_string)``" +"La opción option_table es una lista de 3 tuplas: ``(long_option, " +"short_option, help_string)``" #: ../Doc/distutils/apiref.rst:1381 msgid "" diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 4fbb8e6f8d..e3abb40763 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:39+0100\n" -"PO-Revision-Date: 2020-10-15 16:05+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 10:55+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/distutils/builtdist.rst:5 msgid "Creating Built Distributions" @@ -341,9 +342,9 @@ msgid "" msgstr "" "No tiene que usar el comando :command:`bdist` con la opción :option:`!--" "formats`; también puede usar el comando que directamente implementa el " -"formato en el que esté interesado. Algunos de estos :command:`bdist` \"sub-" -"commands\" de hecho generan varios formatos similares; por ejemplo, el " -"comando :command:`bdist_dumb` genera todos los formatos de archivo \"dumb" +"formato en el que esté interesado. Algunos de estos subcomandos :command:" +"`bdist` de hecho generan varios formatos similares; por ejemplo, el comando :" +"command:`bdist_dumb` genera todos los formatos de archivo \"dumb" "\" (``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, y ``zip``), y :" "command:`bdist_rpm` genera tanto binario como fuentes *RPMs*. Los " "subcomandos :command:`bdist`, y los formatos generados por cada uno, son:" @@ -370,7 +371,7 @@ msgstr ":command:`bdist_rpm`" #: ../Doc/distutils/builtdist.rst:142 msgid "rpm, srpm" -msgstr "*rpm*,* srpm*" +msgstr "*rpm*, *srpm*" #: ../Doc/distutils/builtdist.rst:144 msgid ":command:`bdist_wininst`" @@ -395,9 +396,8 @@ msgstr "*bdist_wininst* se encuentra obsoleto desde Python 3.8." #: ../Doc/distutils/builtdist.rst:153 ../Doc/distutils/builtdist.rst:311 #: ../Doc/distutils/builtdist.rst:479 -#, fuzzy msgid "bdist_msi is deprecated since Python 3.9." -msgstr "*bdist_wininst* se encuentra obsoleto desde Python 3.8." +msgstr "bdist_msi está deprecado desde Python 3.9." #: ../Doc/distutils/builtdist.rst:155 msgid "" diff --git a/distutils/configfile.po b/distutils/configfile.po index 27715621eb..6388f7043c 100644 --- a/distutils/configfile.po +++ b/distutils/configfile.po @@ -11,20 +11,20 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:39+0100\n" -"PO-Revision-Date: 2020-05-13 09:49-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 10:55+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/distutils/configfile.rst:5 -#, fuzzy msgid "Writing the Setup Configuration File" -msgstr "Escribir la configuración del archivo de configuración" +msgstr "Escribiendo el archivo de configuración de instalación (*setup*)" #: ../Doc/distutils/configfile.rst:9 msgid "" @@ -49,9 +49,7 @@ msgstr "" "de comando, que el instalador puede invalidar en la línea de comando o " "editando el archivo de configuración." -# se repite mucho "configuración" #: ../Doc/distutils/configfile.rst:18 -#, fuzzy msgid "" "The setup configuration file is a useful middle-ground between the setup " "script---which, ideally, would be opaque to installers [#]_---and the " @@ -61,8 +59,8 @@ msgid "" "after the contents of the setup script, but before the command-line. This " "has several useful consequences:" msgstr "" -"La configuración del archivo de configuración es un punto medio útil entre " -"el script de configuración--- que, idealmente, sería opaco para los " +"La configuración del archivo de instalación (*setup*) es un punto medio útil " +"entre el script de configuración--- que, idealmente, sería opaco para los " "instaladores [#]_---y la línea de comandos para el script de configuración, " "que está fuera de su control y depende totalmente del instalador. De hecho, :" "file:`setup.cfg` (y cualquiera otros archivos de configuración de " diff --git a/distutils/extending.po b/distutils/extending.po index 0bb9a4d691..321fa530da 100644 --- a/distutils/extending.po +++ b/distutils/extending.po @@ -130,7 +130,7 @@ msgstr "" "utilizados. Una nueva opción de configuración, ``command_packages`` (opción " "de la línea de comandos :option:`!--command-packages`), puede ser aplicada " "para especificar paquetes adicionales a ser buscados para módulos que " -"implementen comandos. Como todas las opciones de distutuils, esto puede " +"implementen comandos. Como todas las opciones de distutils, esto puede " "especificarse en la línea de comandos o en un archivo de configuración. Esta " "opción sólo se puede configurar en la sección ``[global]`` de un archivo de " "configuración, o antes de cualquier comando en la línea de comandos. Si se " diff --git a/distutils/introduction.po b/distutils/introduction.po index 9a50890b08..5f57c665e4 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:39+0100\n" -"PO-Revision-Date: 2020-05-13 22:20-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 10:53+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-esMIME-Version: 1.0\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/distutils/introduction.rst:5 msgid "An Introduction to Distutils" @@ -66,9 +67,7 @@ msgstr "(opcional) escribir un archivo de configuración" msgid "create a source distribution" msgstr "crear una distribución fuente" -# no estoy seguro de "built distribution" #: ../Doc/distutils/introduction.rst:31 -#, fuzzy msgid "(optional) create one or more built (binary) distributions" msgstr "(opcional) crear una o más distribuciones construidas (binarias)" @@ -280,7 +279,7 @@ msgid "" msgstr "" "(El comando :command:`bdist_rpm` utiliza el ejecutable :command:`rpm`, por " "lo tanto, esto debe ejecutarse en un sistema basado en RPM como Red Hat " -"Linux, SuSE Linux o Mandrake Linux)." +"Linux, SuSE Linux o Mandrake Linux.)" #: ../Doc/distutils/introduction.rst:138 msgid "" @@ -348,13 +347,13 @@ msgid "" "(Note that currently, the Distutils only handles C/C++ extensions for " "Python.)" msgstr "" -"Un módulo escrito en el lenguaje de bajo nivel de la implementación de " +"un módulo escrito en el lenguaje de bajo nivel de la implementación de " "Python: C/C++ para Python, Java para Jython. Típicamente contenido en un " "único archivo precompilado cargable dinámicamente, ejemplo, un archivo de " "objeto compartido (:file: .so`) para extensiones de Python en Unix, una DLL " "(dada la extensión :file:`.pyd`) para extensiones de Python en Windows, o un " "archivo de clase Java para extensiones de Jython. (Tenga en cuenta que " -"actualmente, Distutils solo maneja extensiones C/C++ para Python)." +"actualmente, Distutils solo maneja extensiones C/C++ para Python.)" #: ../Doc/distutils/introduction.rst:175 msgid "package" diff --git a/extending/newtypes.po b/extending/newtypes.po index e738b2584a..af21782b48 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -871,10 +871,10 @@ msgid "" "function you want to implement." msgstr "" "Para aprender a implementar cualquier método específico para su nuevo tipo " -"de datos, obtenga el código fuente :term:`CPython`. Vaya al directorio: " -"file: `Objects`, luego busque en los archivos fuente C ``tp_`` más la " -"función que desee (por ejemplo, ``tp_richcompare``). Encontrará ejemplos de " -"la función que desea implementar." +"de datos, obtenga el código fuente :term:`CPython`. Vaya al directorio: file:" +"`Objects`, luego busque en los archivos fuente C ``tp_`` más la función que " +"desee (por ejemplo, ``tp_richcompare``). Encontrará ejemplos de la función " +"que desea implementar." #: ../Doc/extending/newtypes.rst:607 msgid "" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index 79b0eccaa2..0c704b176d 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -620,7 +620,6 @@ msgstr "" "``primer`` miembro de esta manera:" #: ../Doc/extending/newtypes_tutorial.rst:415 -#, fuzzy msgid "" "But this would be risky. Our type doesn't restrict the type of the " "``first`` member, so it could be any kind of object. It could have a " @@ -631,9 +630,9 @@ msgid "" msgstr "" "Pero esto sería arriesgado. Nuestro tipo no restringe el tipo del ``primer`` " "miembro, por lo que podría ser cualquier tipo de objeto. Podría tener un " -"destructor que haga que se ejecute código que intente acceder al miembro " -"``primer``; o ese destructor podría liberar el :term:`Global Interpreter " -"Lock` y permite que se ejecute código arbitrario en otros hilos que acceden " +"destructor que haga que se ejecute código que intente acceder al ``primer`` " +"miembro; o ese destructor podría liberar el :term:`Global Interpreter Lock " +"` y permite que se ejecute código arbitrario en otros hilos que acceden " "y modifican nuestro objeto." #: ../Doc/extending/newtypes_tutorial.rst:422 diff --git a/faq/design.po b/faq/design.po index cd65995d68..0057a39adc 100644 --- a/faq/design.po +++ b/faq/design.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-28 19:40+0200\n" +"PO-Revision-Date: 2021-08-02 11:17+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/faq/design.rst:3 msgid "Design and History FAQ" @@ -55,7 +56,6 @@ msgstr "" "los programadores de C encontrarán un fragmento de código como este::" #: ../Doc/faq/design.rst:26 -#, fuzzy msgid "" "Only the ``x++`` statement is executed if the condition is true, but the " "indentation leads many to believe otherwise. Even experienced C programmers " @@ -75,6 +75,11 @@ msgid "" "is normal to feel somewhat uneasy when reading (or being required to write) " "in a different one." msgstr "" +"Debido a que no hay corchetes de inicio/fin, Python es mucho menos propenso " +"a conflictos de estilo de codificación. En C hay muchas formas diferentes de " +"colocar llaves. Después de acostumbrarse a leer y escribir código usando un " +"estilo en particular, es normal sentirse algo incómodo al leer (o tener que " +"escribir) en uno diferente." #: ../Doc/faq/design.rst:38 msgid "" @@ -1101,15 +1106,13 @@ msgstr "" "class:`~collections.abc.MutableMapping`." #: ../Doc/faq/design.rst:575 -#, fuzzy msgid "" "For Python, many of the advantages of interface specifications can be " "obtained by an appropriate test discipline for components." msgstr "" "Para Python, muchas de las ventajas de las especificaciones de interfaz se " "pueden obtener mediante una disciplina de prueba adecuada para los " -"componentes. También hay una herramienta, PyChecker, que se puede usar para " -"encontrar problemas debido a la subclasificación." +"componentes." #: ../Doc/faq/design.rst:578 msgid "" @@ -1152,7 +1155,6 @@ msgstr "" "trivial verificar esta propiedad en un conjunto de pruebas." #: ../Doc/faq/design.rst:594 -#, fuzzy msgid "" "Writing test suites is very helpful, and you might want to design your code " "to make it easily tested. One increasingly popular technique, test-driven " @@ -1179,9 +1181,14 @@ msgid "" "expressions) and loop (with ``while`` and ``for`` statements, possibly " "containing ``continue`` and ``break``)." msgstr "" +"En la década de 1970, la gente se dio cuenta de que el goto irrestricto " +"podía generar un código \"espagueti\" desordenado que era difícil de " +"entender y revisar. En un lenguaje de alto nivel, también es innecesario " +"siempre que haya formas de bifurcar (en Python, con declaraciones ``if`` y " +"expresiones ``or``, ``and`` e ``if-else``) y repetir (con declaraciones " +"``while`` y ``for``, que posiblemente contengan ``continue`` y ``break``)." #: ../Doc/faq/design.rst:611 -#, fuzzy msgid "" "One can also use exceptions to provide a \"structured goto\" that works even " "across function calls. Many feel that exceptions can conveniently emulate " @@ -1258,7 +1265,6 @@ msgstr "" "atributos?" #: ../Doc/faq/design.rst:660 -#, fuzzy msgid "" "Python has a 'with' statement that wraps the execution of a block, calling " "code on the entrance and exit from the block. Some languages have a " diff --git a/faq/extending.po b/faq/extending.po index b3d55c3ccb..3f55b84916 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -11,16 +11,16 @@ 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: 2020-08-10 07:54-0300\n" +"PO-Revision-Date: 2021-08-02 11:16+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" -"X-Generator: Poedit 2.4\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/faq/extending.rst:3 msgid "Extending/Embedding FAQ" @@ -136,15 +136,14 @@ msgid "How can I evaluate an arbitrary Python expression from C?" msgstr "¿Cómo puedo evaluar una expresión arbitraria de Python desde C?" #: ../Doc/faq/extending.rst:74 -#, fuzzy msgid "" "Call the function :c:func:`PyRun_String` from the previous question with the " "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " "and returns its value." msgstr "" "Llama a la función :c:func:`PyRun_String` de la pregunta anterior con el " -"símbolo de comienzo (*start*) :c:data:`Py_eval_input`; analiza una " -"expresión, evalúa y retorna su valor." +"símbolo de comienzo :c:data:`Py_eval_input`; analiza una expresión, evalúa y " +"retorna su valor." #: ../Doc/faq/extending.rst:80 msgid "How do I extract C values from a Python object?" @@ -233,7 +232,7 @@ msgid "" msgstr "" "Esto funciona para cualquier objeto que tenga métodos -- sean estos " "incorporados o definidos por el usuario. Eres responsable si eventualmente " -"usas :c:func:`Py_DECREF` en el valor de retorno.\"" +"usas :c:func:`Py_DECREF` en el valor de retorno." #: ../Doc/faq/extending.rst:124 msgid "" @@ -278,7 +277,7 @@ msgstr "" #: ../Doc/faq/extending.rst:149 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" msgstr "" -"La manera mas fácil de hacer esto es usar la clase :class:`io.StringIO`." +"La manera mas fácil de hacer esto es usar la clase :class:`io.StringIO`:" #: ../Doc/faq/extending.rst:161 msgid "A custom object to do the same would look like this:" @@ -365,10 +364,9 @@ msgstr "" #: ../Doc/faq/extending.rst:224 msgid "How do I debug an extension?" -msgstr "¿Cómo puedo depurar una extención?" +msgstr "¿Cómo puedo depurar una extensión?" #: ../Doc/faq/extending.rst:226 -#, fuzzy msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." @@ -414,9 +412,8 @@ msgid "For Debian, run ``apt-get install python-dev``." msgstr "Para Debian, corre ``apt-get install python-dev``." #: ../Doc/faq/extending.rst:259 -#, fuzzy msgid "How do I tell \"incomplete input\" from \"invalid input\"?" -msgstr "¿Cómo digo \"incomplete input\" desde \"invalid input\"?" +msgstr "¿Cómo digo \"entrada incompleta\" desde \"entrada inválida\"?" #: ../Doc/faq/extending.rst:261 msgid "" @@ -433,7 +430,6 @@ msgstr "" "inmediatamente cuando la entrada es invalida." #: ../Doc/faq/extending.rst:267 -#, fuzzy msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." @@ -471,7 +467,7 @@ msgstr "" "La primera solución es llamar a :c:func:`PyParser_ParseString` y probar con " "``e.error`` igual a ``E_EOF``, que significa que la entrada esta incompleta. " "Aquí hay un fragmento de código ejemplo, que no esta probado, inspirado en " -"el código de Alex Farber:" +"el código de Alex Farber::" #: ../Doc/faq/extending.rst:310 msgid "" @@ -495,9 +491,8 @@ msgstr "" "llamas a readline())::" #: ../Doc/faq/extending.rst:432 -#, fuzzy msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" -msgstr "¿Cómo encuentro símbolos g++ __builtin_new or __pure_virtual?" +msgstr "¿Cómo encuentro símbolos g++ __builtin_new o __pure_virtual?" #: ../Doc/faq/extending.rst:434 msgid "" diff --git a/faq/general.po b/faq/general.po index 9cd2d58fd2..c92b78c4bc 100644 --- a/faq/general.po +++ b/faq/general.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-17 22:04-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 11:14+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/faq/general.rst:5 msgid "General Python FAQ" @@ -38,7 +39,6 @@ msgid "What is Python?" msgstr "¿Qué es Python?" #: ../Doc/faq/general.rst:18 -#, fuzzy msgid "" "Python is an interpreted, interactive, object-oriented programming " "language. It incorporates modules, exceptions, dynamic typing, very high " @@ -58,7 +58,7 @@ msgstr "" "a varios sistemas de ventana, y es extensible en C o C++. También es usable " "como un lenguaje de extensión para aplicaciones que necesitan una interfaz " "programable. Por último, Python es portable: corre en muchas variantes de " -"Unix, en Mac y en Windows 2000 y posteriores. " +"Unix, en Mac y en Windows 2000 y posteriores." #: ../Doc/faq/general.rst:28 msgid "" @@ -66,9 +66,9 @@ msgid "" "to Python `_ links to other " "introductory tutorials and resources for learning Python." msgstr "" -"Para saber más, comienza con :ref:`tutorial-index`. La `Beginner's Guide " -"to Python `_ vincula a otros " -"recursos y tutoriales introductorios para aprender Python. " +"Para saber más, comienza con :ref:`tutorial-index`. La `Beginner's Guide to " +"Python `_ vincula a otros " +"recursos y tutoriales introductorios para aprender Python." #: ../Doc/faq/general.rst:34 msgid "What is the Python Software Foundation?" @@ -113,12 +113,12 @@ msgid "" "of course." msgstr "" "Puedes hacer cualquier cosa que quieras con el código fuente mientras " -"mantengas y muestres los mensajes de *copyrights* en cualquier documentación " -"sobre Python que produzcas. Si respetas las reglas de *copyright*, está " -"permitido usar Python para fines comerciales, vender copias de Python en " -"forma de código fuente o binarios (modificados o no), o vender productos que " -"incorporen Python de alguna manera. De cualquier manera nos gustaría saber " -"de todos los usos comerciales de Python, por supuesto. " +"mantengas y muestres los mensajes de derechos de autor en cualquier " +"documentación sobre Python que produzcas. Si respetas las reglas de derechos " +"de autor, está permitido usar Python para fines comerciales, vender copias " +"de Python en forma de código fuente o binarios (modificados o no), o vender " +"productos que incorporen Python de alguna manera. De cualquier manera nos " +"gustaría saber de todos los usos comerciales de Python, por supuesto." #: ../Doc/faq/general.rst:57 msgid "" @@ -127,7 +127,7 @@ msgid "" msgstr "" "Mira la página `PSF license `_ para " "encontrar explicaciones más detalladas y un vínculo al texto completo de la " -"licencia. " +"licencia." #: ../Doc/faq/general.rst:60 msgid "" @@ -164,7 +164,7 @@ msgstr "" "lenguajes. Este es el origen de muchas características de Python, incluyendo " "el uso de sangría para el agrupamiento de sentencias y la inclusión de tipos " "de datos de muy alto nivel (aunque los detalles son todos diferentes en " -"Python). " +"Python)." #: ../Doc/faq/general.rst:78 msgid "" @@ -261,16 +261,16 @@ msgid "" "`_ to find packages of interest to you." msgstr "" "El lenguaje viene con una vasta biblioteca estándar que cubre áreas como el " -"procesamiento de texto (expresiones regulares, unicode, cálculo de " +"procesamiento de texto (expresiones regulares, Unicode, cálculo de " "diferencias entre archivos), protocolos de Internet (HTTP, FTP, SMTP, XML-" "RPC, POP, IMAP, programación CGI), ingeniería de software (pruebas " -"unitarias, *logging*, perfilamiento, análisis sintáctico y gramatical de " +"unitarias, logging, perfilamiento, análisis sintáctico y gramatical de " "código Python) e interfaces con el sistema operativo (llamadas a sistema, " -"sistemas de archivo, *sockets* TCP/IP). Mira la tabla de contenidos en :ref:" +"sistemas de archivo, sockets TCP/IP). Mira la tabla de contenidos en :ref:" "`library-index` para tener una idea de qué está disponible. Una amplia " "variedad de extensiones de terceros también están disponibles. Consulta el " -"`Python Package Index `_ para encontrar paquetes de tu " -"interés. " +"`Python Package Index `_ para encontrar paquetes de tu " +"interés." #: ../Doc/faq/general.rst:126 msgid "How does the Python version numbering scheme work?" @@ -289,7 +289,7 @@ msgstr "" "en el lenguaje. B es el número de versión secundario (o menor), incrementado " "ante cambios menos traumáticos. C es el nivel micro -- se incrementa en cada " "lanzamiento de corrección de errores. Mira el :pep:`6` para más información " -"sobre los lanzamientos de corrección de errores. " +"sobre los lanzamientos de corrección de errores." #: ../Doc/faq/general.rst:134 msgid "" @@ -309,10 +309,9 @@ msgstr "" "dos lanzamientos *alpha*. Las *betas* son más estables, preservando las " "interfaces existentes pero posiblemente agregando nuevos módulos. Los " "*release candidates* están congelados, sin hacer cambios excepto los " -"necesarios para corregir bugs críticos. " +"necesarios para corregir bugs críticos." #: ../Doc/faq/general.rst:142 -#, fuzzy msgid "" "Alpha, beta and release candidate versions have an additional suffix. The " "suffix for an alpha version is \"aN\" for some small number N, the suffix " @@ -321,13 +320,13 @@ msgid "" "words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which " "precede versions labeled 2.0rcN, and *those* precede 2.0." msgstr "" -"Las versiones *alpha*, *beta* y *release candidates* tienen un sufijo " -"adicional. El sufijo para la versión alpha es \"aN\" para algunos números N " -"pequeños; el sufijo para beta es \"bN\" para algunos números N pequeños, y " -"el sufijo para *release candidates* es \"cN\" para algunos números N " -"pequeños. En otras palabras, todas las versiones etiquetadas 2.0aN preceden " -"a las 2.0bN, que preceden a las etiquetadas 2.0cN, y *todas esas* preceden a " -"la 2.0. " +"Las versiones alpha, beta y candidata de lanzamiento (*release candidate*) " +"tienen un sufijo adicional. El sufijo para la versión alpha es \"aN\" para " +"algunos números N pequeños; el sufijo para beta es \"bN\" para algunos " +"números N pequeños, y el sufijo para *release candidates* es \"cN\" para " +"algunos números N pequeños. En otras palabras, todas las versiones " +"etiquetadas 2.0aN preceden a las 2.0bN, que preceden a las etiquetadas " +"2.0cN, y *todas esas* preceden a la 2.0." #: ../Doc/faq/general.rst:149 msgid "" @@ -341,7 +340,7 @@ msgstr "" "\"2.2+\". Estas son versiones sin lanzar, construidas directamente desde el " "repositorio de desarrollo de CPython. En la práctica, luego de que un " "lanzamiento menor se realiza, la versión es incrementada a la siguiente " -"versión menor, que se vuelve \"a0\", por ejemplo \"2.4a0\". " +"versión menor, que se vuelve \"a0\", por ejemplo \"2.4a0\"." #: ../Doc/faq/general.rst:154 msgid "" @@ -376,8 +375,8 @@ msgstr "" "La distribución de fuentes es un archivo tar comprimido con gzip que " "contiene el código C completo, documentación en formato Sphinx, los módulos " "de la biblioteca de Python, programas de ejemplo y varias piezas útiles de " -"software libremente distribuibles. El código fuente compilará y se " -"ejecutará sin problemas en la mayoría de las plataformas Unix. " +"software libremente distribuibles. El código fuente compilará y se ejecutará " +"sin problemas en la mayoría de las plataformas Unix." #: ../Doc/faq/general.rst:170 msgid "" @@ -385,9 +384,9 @@ msgid "" "`__ for more information on getting the " "source code and compiling it." msgstr "" -"Consulta `Getting Started section of the Python Developer's Guide `__ para más información sobre cómo obtener el " -"código fuente y compilarlo. " +"código fuente y compilarlo." #: ../Doc/faq/general.rst:176 msgid "How do I get documentation on Python?" @@ -410,10 +409,10 @@ msgid "" "Sphinx documentation tool `__. The reStructuredText " "source for the documentation is part of the Python source distribution." msgstr "" -"La documentación está escrita en reStructuredText y procesada con `la " +"La documentación está escrita en reStructuredText y procesada con `la " "herramienta de documentación Sphinx `__. Las fuentes " "reStructuredText de la documentación son parte de la distribución fuente de " -"Python. " +"Python." #: ../Doc/faq/general.rst:190 msgid "I've never programmed before. Is there a Python tutorial?" @@ -434,8 +433,8 @@ msgid "" "including lists of tutorials." msgstr "" "Consulta `the Beginner's Guide `_ para encontrar información para principiantes en Python, " -"incluyendo una lista de tutoriales. " +"BeginnersGuide>`_ para encontrar información para principiantes en Python, " +"incluyendo una lista de tutoriales." #: ../Doc/faq/general.rst:200 msgid "Is there a newsgroup or mailing list devoted to Python?" @@ -451,12 +450,12 @@ msgid "" "Usenet readers are often more able to cope with this volume." msgstr "" "Hay un grupo de noticias, :newsgroup:`comp.lang.python`, y una lista de " -"correo, `python-list `_. Tanto el grupo de noticias como la lista de correo están " +"correo, `python-list `_. Tanto el grupo de noticias como la lista de correo están " "interconectadas entre sí -- si puedes leer las noticias no es necesario que " "te suscribas a la lista de correo. :newsgroup:`comp.lang.python` tiene mucho " "tráfico, recibiendo cientos de publicaciones cada día. y los lectores de " -"Usenet suelen ser más capaces de hacer frente a este volumen. " +"Usenet suelen ser más capaces de hacer frente a este volumen." #: ../Doc/faq/general.rst:209 msgid "" @@ -502,8 +501,8 @@ msgid "" "Python Developer's Guide `_ for details." msgstr "" "También puedes acceder a la versión en desarrollo de Python desde Git. Mira " -"`The Python Developer's Guide `_ para los " -"detalles. " +"`The Python Developer's Guide `_ para los " +"detalles." #: ../Doc/faq/general.rst:231 msgid "How do I submit bug reports and patches for Python?" @@ -543,7 +542,7 @@ msgstr "" #: ../Doc/faq/general.rst:247 msgid "Are there any published articles about Python that I can reference?" -msgstr "¿Hay algún artículo publicado sobre Python que pueda referir? " +msgstr "¿Hay algún artículo publicado sobre Python que pueda referir?" #: ../Doc/faq/general.rst:249 msgid "It's probably best to cite your favorite book about Python." @@ -556,7 +555,7 @@ msgid "" "outdated." msgstr "" "El primer artículo publicado sobre Python fue escrito en 1991 y quedó " -"bastante desactualizado. " +"bastante desactualizado." #: ../Doc/faq/general.rst:254 msgid "" @@ -578,15 +577,15 @@ msgid "" "at https://wiki.python.org/moin/PythonBooks for a list." msgstr "" "Sí, hay muchos, y hay más siendo publicados. Mira la wiki de python.org en " -"https://wiki.python.org/moin/PythonBooks para ver una lista. " +"https://wiki.python.org/moin/PythonBooks para ver una lista." #: ../Doc/faq/general.rst:265 msgid "" "You can also search online bookstores for \"Python\" and filter out the " "Monty Python references; or perhaps search for \"Python\" and \"language\"." msgstr "" -"También puedes buscar \"Python\" en las librerías online y excluir las que " -"refieran a los Monty Python; o quizás buscar \"Python\" y \"lenguaje\". " +"También puedes buscar \"Python\" en las librerías en línea y excluir las que " +"refieran a los Monty Python; o quizás buscar \"Python\" y \"lenguaje\"." #: ../Doc/faq/general.rst:270 msgid "Where in the world is www.python.org located?" @@ -618,7 +617,7 @@ msgstr "" "los guiones publicados de `\"Monty Python's Flying Circus\" `__, una serie de comedia producida por la " "BBC de los 70'. Van Rossum pensó que necesitaba un nombre que fuera corto, " -"único y ligeramente misterioso, entonces decidió llamar al lenguaje Python. " +"único y ligeramente misterioso, entonces decidió llamar al lenguaje Python." #: ../Doc/faq/general.rst:287 msgid "Do I have to like \"Monty Python's Flying Circus\"?" @@ -637,7 +636,6 @@ msgid "How stable is Python?" msgstr "¿Cuán estable es Python?" #: ../Doc/faq/general.rst:298 -#, fuzzy msgid "" "Very stable. New, stable releases have been coming out roughly every 6 to " "18 months since 1991, and this seems likely to continue. As of version 3.9, " @@ -645,7 +643,7 @@ msgid "" msgstr "" "Muy estable. Versiones nuevas y estables han sido publicadas cada entre 6 y " "18 meses desde 1991, y es muy probable que así continúe. Actualmente pasan " -"alrededor de 18 meses entre los lanzamientos importantes. " +"alrededor de 18 meses entre los lanzamientos importantes." #: ../Doc/faq/general.rst:302 msgid "" @@ -662,10 +660,9 @@ msgstr "" "indicados por el tercer componente del número de versión (e.g 3.5.3, 3.6.2) " "son gestionados para estabilidad; sólo correcciones de problemas conocidos " "se incluyen en uno de estos lanzamientos, y está garantizado que las " -"interfaces se mantendrán a lo largo de la misma serie. " +"interfaces se mantendrán a lo largo de la misma serie." #: ../Doc/faq/general.rst:309 -#, fuzzy msgid "" "The latest stable releases can always be found on the `Python download page " "`_. There are two production-ready " @@ -685,13 +682,12 @@ msgid "How many people are using Python?" msgstr "¿Cuánta gente usa Python?" #: ../Doc/faq/general.rst:318 -#, fuzzy msgid "" "There are probably millions of users, though it's difficult to obtain an " "exact count." msgstr "" "Probablemente hay decenas de miles de usuarios y usuarias, aunque es difícil " -"obtener una cuenta exacta. " +"obtener una cuenta exacta." #: ../Doc/faq/general.rst:321 msgid "" @@ -702,7 +698,7 @@ msgstr "" "Python está disponible gratuitamente para ser descargado por lo que no " "existen cifras de ventas, a su vez se incluye en muchos sitios diferentes y " "está empaquetado en muchas distribuciones de Linux, por lo que las " -"estadísticas de descarga tampoco cuentan toda la historia. " +"estadísticas de descarga tampoco cuentan toda la historia." #: ../Doc/faq/general.rst:325 msgid "" @@ -710,7 +706,7 @@ msgid "" "to the group or even read it." msgstr "" "El grupo de noticias comp.lang.python es muy activo, pero no todos los " -"usuarios de Python publican allí o incluso lo leen. " +"usuarios de Python publican allí o incluso lo leen." #: ../Doc/faq/general.rst:330 msgid "Have any significant projects been done in Python?" @@ -725,8 +721,8 @@ msgid "" msgstr "" "Mira https://www.python.org/about/success para una lista de proyecto que " "usan Python. Consultar las actas de `conferencias de Python pasadas `_ revelará contribuciones de " -"diferentes empresas y organizaciones. " +"www.python.org/community/workshops/>`_ revelará contribuciones de diferentes " +"empresas y organizaciones." #: ../Doc/faq/general.rst:337 msgid "" @@ -746,7 +742,7 @@ msgstr "" #: ../Doc/faq/general.rst:346 msgid "What new developments are expected for Python in the future?" -msgstr "¿Qué nuevos desarrollos se esperan para Python en el futuro? " +msgstr "¿Qué nuevos desarrollos se esperan para Python en el futuro?" #: ../Doc/faq/general.rst:348 msgid "" @@ -761,7 +757,7 @@ msgstr "" "documentos de diseño que describen una nueva funcionalidad sugerida para " "Python, proveyendo una especificación técnica concisa y una razón " "fundamental. Busca una PEP titulada \"Python X.Y Release Schedule\", donde X." -"Y es una versión que aún no ha sido publicada. " +"Y es una versión que aún no ha sido publicada." #: ../Doc/faq/general.rst:354 msgid "" @@ -789,7 +785,7 @@ msgstr "" "fracción muy pequeña de los programas existentes tiene que ser mal visto. " "Incluso si puedes proporcionar un programa de conversión, todavía existe el " "problema de actualizar toda la documentación; se han escrito muchos libros " -"sobre Python y no queremos invalidarlos a todos de un plumazo. " +"sobre Python y no queremos invalidarlos a todos de un plumazo." #: ../Doc/faq/general.rst:368 msgid "" @@ -800,7 +796,7 @@ msgstr "" "Si una funcionalidad se debe cambiar, es necesario proporcionar una ruta de " "actualización gradual. :pep:`5` describe el procedimiento seguido para " "introducir cambios incompatibles con versiones anteriores para minimizar " -"disrupciones a los usuarios y usuarias. " +"disrupciones a los usuarios y usuarias." #: ../Doc/faq/general.rst:374 msgid "Is Python a good language for beginning programmers?" @@ -808,7 +804,7 @@ msgstr "¿Python es un buen lenguaje para principiantes?" #: ../Doc/faq/general.rst:376 msgid "Yes." -msgstr "Sí. " +msgstr "Sí." #: ../Doc/faq/general.rst:378 msgid "" @@ -831,7 +827,7 @@ msgstr "" "las habilidades de programación como la descomposición de problemas y el " "diseño de tipos de datos. Con Python los estudiantes pueden ser rápidamente " "introducidos a conceptos como bucles y procedimientos. Incluso puede " -"trabajar con objetos definidos por el usuario en su primer curso. " +"trabajar con objetos definidos por el usuario en su primer curso." #: ../Doc/faq/general.rst:388 msgid "" @@ -850,7 +846,7 @@ msgstr "" "intentan pensar como la computadora, descomponer problemas, diseñar " "interfaces consistentes y encapsular datos. Si bien aprender a usar un " "lenguaje de tipado estático es importante en el largo plazo, no es " -"necesariamente el mejor tema a tratar en un primer curso de programación. " +"necesariamente el mejor tema a tratar en un primer curso de programación." #: ../Doc/faq/general.rst:396 msgid "" @@ -873,7 +869,7 @@ msgstr "" "satisfacción de trabajar en aplicaciones realistas mientras aprenden los " "fundamentos de la programación. Usar la biblioteca estándar también enseña a " "reusar código. Módulos de terceros, como PyGame, también ayudan a extender " -"los alcances de los y las estudiantes. " +"los alcances de los y las estudiantes." #: ../Doc/faq/general.rst:405 msgid "" @@ -893,7 +889,7 @@ msgid "" "are programming." msgstr "" "Con el intérprete, la documentación nunca está lejos de los o las " -"estudiantes mientras están programando. " +"estudiantes mientras están programando." #: ../Doc/faq/general.rst:437 msgid "" diff --git a/faq/gui.po b/faq/gui.po index 8f458b4d07..875186053d 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-05-09 18:01-0500\n" +"PO-Revision-Date: 2021-08-02 11:10+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Javier Daza Language: es\n" -"X-Generator: Poedit 2.3\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"X-Generator: Poedit 3.0\n" +"Language: es\n" #: ../Doc/faq/gui.rst:5 msgid "Graphic User Interface FAQ" diff --git a/faq/library.po b/faq/library.po index 481c2710f4..3c880f3b94 100644 --- a/faq/library.po +++ b/faq/library.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-10 21:32+0100\n" -"Last-Translator: Sergio Delgado Quintero \n" +"PO-Revision-Date: 2021-08-02 11:09+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" @@ -244,7 +245,6 @@ msgstr "" "lista incorrecta de argumentos. Se llama como ::" #: ../Doc/faq/library.rst:128 -#, fuzzy msgid "so it should be declared with two parameters::" msgstr "así que debería declararse con dos argumentos::" @@ -304,7 +304,6 @@ msgid "at the bottom of the main module of your program." msgstr "al final del módulo principal de su programa." #: ../Doc/faq/library.rst:162 -#, fuzzy msgid "" "Once your program is organized as a tractable collection of function and " "class behaviours, you should write test functions that exercise the " @@ -454,13 +453,12 @@ msgid "How do I parcel out work among a bunch of worker threads?" msgstr "¿Cómo puedo dividir trabajo entre un grupo de hilos?" #: ../Doc/faq/library.rst:298 -#, fuzzy msgid "" "The easiest way is to use the :mod:`concurrent.futures` module, especially " "the :mod:`~concurrent.futures.ThreadPoolExecutor` class." msgstr "" "La manera más fácil es usar el nuevo módulo :mod:`concurrent.futures`, " -"especialmente la clase :mod:`~concurrent.futures.ThreadPoolExecutor`." +"especialmente el módulo :mod:`~concurrent.futures.ThreadPoolExecutor`." #: ../Doc/faq/library.rst:301 msgid "" @@ -731,13 +729,12 @@ msgid "How do I copy a file?" msgstr "¿Cómo copio un fichero?" #: ../Doc/faq/library.rst:492 -#, fuzzy msgid "" "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note " "that on MacOS 9 it doesn't copy the resource fork and Finder info." msgstr "" "El módulo :mod:`shutil` contiene una función :func:`~shutil.copyfile`. " -"Nótese que en MacOS 9 no copia el *fork* del recurso ni la información de " +"Nótese que en MacOS 9 no copia el fork del recurso ni la información de " "Finder." #: ../Doc/faq/library.rst:497 @@ -934,9 +931,8 @@ msgstr "" "formulario. ¿Existe algún código que me permita hacer esto fácilmente?" #: ../Doc/faq/library.rst:682 -#, fuzzy msgid "Yes. Here's a simple example that uses :mod:`urllib.request`::" -msgstr "Sí. Aquí hay un ejemplo sencillo que usa urllib.request::" +msgstr "Sí. Aquí hay un ejemplo sencillo que usa :mod:`urllib.request`::" #: ../Doc/faq/library.rst:697 msgid "" @@ -1013,9 +1009,15 @@ msgid "" "in progress, but hasn't finished yet. Different OSes will return different " "values, so you're going to have to check what's returned on your system." msgstr "" +"Para evitar que la conexión TCP se bloquee, puede configurar el socket en " +"modo sin bloqueo. Luego, cuando hagas el :meth:`socket.connect`, te " +"conectarás inmediatamente (poco probable) u obtendrás una excepción que " +"contiene el número de error como ``.errno``. ``errno.EINPROGRESS`` indica " +"que la conexión está en curso, pero aún no ha terminado. Los diferentes " +"sistemas operativos devolverán valores diferentes, por lo que tendrá que " +"verificar lo que se devuelve en su sistema." #: ../Doc/faq/library.rst:774 -#, fuzzy msgid "" "You can use the :meth:`socket.connect_ex` method to avoid creating an " "exception. It will just return the errno value. To poll, you can call :" @@ -1023,11 +1025,11 @@ msgid "" "that you're connected -- or you can pass this socket to :meth:`select." "select` to check if it's writable." msgstr "" -"Puede usar el método ``connect_ex()`` para evitar crear una excepción. " -"Retornará simplemente el número de error. Para sondear, puede llamar más " -"tarde a ``connect_ex()`` de nuevo -- ``0`` o ``errno.EISCONN`` indican que " -"está conectado -- o puede pasar este socket a *select* para comprobar si se " -"puede escribir en él." +"Puede utilizar el método :meth:`socket.connect_ex` para evitar crear una " +"excepción. Simplemente retornará el valor de errno. Para sondear, puede " +"llamar a :meth:`socket.connect_ex` nuevamente más tarde -- ``0`` o ``errno." +"EISCONN`` indican que está conectado -- o puede pasar este socket a :meth:" +"`select.select` para comprobar si se puede escribir." #: ../Doc/faq/library.rst:780 msgid "" @@ -1036,6 +1038,11 @@ msgid "" "network code. The third-party `Twisted `_ " "library is a popular and feature-rich alternative." msgstr "" +"El módulo :mod:`asyncio` proporciona una biblioteca asíncrona concurrente y " +"de un solo subproceso de propósito general, que se puede utilizar para " +"escribir código de red sin bloqueo. La biblioteca de terceros `Twisted " +"`_ es una alternativa popular y rica en " +"funciones." #: ../Doc/faq/library.rst:788 msgid "Databases" @@ -1136,16 +1143,14 @@ msgstr "" "como:" #: ../Doc/faq/library.rst:836 -#, fuzzy msgid "``choice(S)`` chooses a random element from a given sequence." -msgstr "``choice(S)`` selecciona un elemento aleatorio de una secuencia dada" +msgstr "``choice(S)`` selecciona un elemento aleatorio de una secuencia dada." #: ../Doc/faq/library.rst:837 -#, fuzzy msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly." msgstr "" "``shuffle(L)`` reorganiza una lista in-situ, es decir, la permuta " -"aleatoriamente" +"aleatoriamente." #: ../Doc/faq/library.rst:839 msgid "" diff --git a/faq/programming.po b/faq/programming.po index a1f8002932..224e93a41c 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-26 11:04+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 10:45+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/faq/programming.rst:5 msgid "Programming FAQ" @@ -76,7 +77,6 @@ msgstr "" "idle), incluye un depurador gráfico." #: ../Doc/faq/programming.rst:31 -#, fuzzy msgid "" "PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " "Pythonwin debugger colors breakpoints and has quite a few cool features such " @@ -85,12 +85,12 @@ msgid "" ">`__ project and as a part of the ActivePython distribution (see https://www." "activestate.com/activepython\\ )." msgstr "" -"PythonWin es un IDE Python que incluye un depurador con GUI basado en pdb. " +"PythonWin es un IDE Python que incluye un depurador con GUI basado en pdb. " "El depurador PythonWin colorea los puntos de interrupción y dispone de " -"características geniales como la depuración de programas no modificados " -"mediante PythonWin. PythonWin está disponible como parte del proyecto `Las " -"extensiones de Python para Windows `__ y como parte de la distribución ActivePython (ver https://www." +"características geniales como la depuración de programas no modificados " +"mediante PythonWin. PythonWin está disponible como parte del proyecto `Las " +"extensiones de Python para Windows `__ y como parte de la distribución ActivePython (ver https://www." "activestate.com/activepython\\ )." #: ../Doc/faq/programming.rst:38 @@ -134,7 +134,6 @@ msgid "PyCharm (https://www.jetbrains.com/pycharm/)" msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" #: ../Doc/faq/programming.rst:55 -#, fuzzy msgid "Are there tools to help find bugs or perform static analysis?" msgstr "" "¿Existe alguna herramienta que ayude a encontrar errores o realizar análisis " @@ -145,6 +144,9 @@ msgid "" "`Pylint `_ and `Pyflakes `_ do basic checking that will help you catch bugs sooner." msgstr "" +"`Pylint `_ y `Pyflakes `_ realizan comprobaciones básicas que le ayudarán a detectar " +"errores antes." #: ../Doc/faq/programming.rst:63 msgid "" @@ -1286,7 +1288,6 @@ msgstr "" "144.0``." #: ../Doc/faq/programming.rst:842 -#, fuzzy msgid "" "By default, these interpret the number as decimal, so that ``int('0144') == " "144`` holds true, and ``int('0x144')`` raises :exc:`ValueError`. " @@ -1298,8 +1299,8 @@ msgstr "" "Por defecto, estas interpretan el número como decimal de tal forma que " "``int('0144') == 144`` y ``int('0x144')`` lanzará :exc:`ValueError`. " "``int(string, base)`` toma la base para convertirlo desde un segundo " -"parámetro opcional, por tanto ``int('0x144', 16) == 324``. Si la base se " -"especifica como 0, el número se interpreta usando las reglas de Python's " +"parámetro opcional, por tanto ``int('0x144', 16) == 324``. Si la base se " +"especifica como 0, el número se interpreta usando las reglas de Python's " "rules: un prefijo '0o' indica octal y un prefijo '0x' indica un número " "hexadecimal." @@ -1405,10 +1406,8 @@ msgid "This is used in several places in the standard library, like this::" msgstr "Esto se usa en varios lugares de la biblioteca estándar, como esto::" #: ../Doc/faq/programming.rst:945 -#, fuzzy msgid "Use :func:`locals` to resolve the function name::" -msgstr "" -"Usa :func:`locals` o :func:`eval` para resolver el nombre de la función::" +msgstr "Use :func:`locals` para resolver el nombre de la función::" #: ../Doc/faq/programming.rst:957 msgid "" @@ -1747,11 +1746,8 @@ msgid "How do I iterate over a sequence in reverse order?" msgstr "¿Cómo puedo iterar sobre una secuencia en orden inverso?" #: ../Doc/faq/programming.rst:1119 -#, fuzzy msgid "Use the :func:`reversed` built-in function::" -msgstr "" -"Usa la función incorporada :func:`reversed`, la cual se introdujo en la " -"versión de 2.4 de Python::" +msgstr "Usa la función incorporada :func:`reversed`::" #: ../Doc/faq/programming.rst:1124 msgid "" @@ -1800,9 +1796,8 @@ msgstr "" "y, posteriormente, puedes volver a una lista." #: ../Doc/faq/programming.rst:1157 -#, fuzzy msgid "How do you remove multiple items from a list" -msgstr "¿Cómo eliminar duplicados de una lista?" +msgstr "Cómo eliminar duplicados de una lista" #: ../Doc/faq/programming.rst:1159 msgid "" @@ -1811,11 +1806,14 @@ msgid "" "replacement with an implicit or explicit forward iteration. Here are three " "variations.::" msgstr "" +"Al igual que con la eliminación de duplicados, una posibilidad es iterar " +"explícitamente a la inversa con una condición de eliminación. Sin embargo, " +"es más fácil y rápido utilizar el reemplazo de sectores con una iteración " +"directa implícita o explícita. Aquí hay tres variaciones.::" #: ../Doc/faq/programming.rst:1168 -#, fuzzy msgid "The list comprehension may be fastest." -msgstr "Usa una comprensión de listas::" +msgstr "Esta comprensión de lista puede ser la más rápida." #: ../Doc/faq/programming.rst:1172 msgid "How do you make an array in Python?" @@ -2311,6 +2309,10 @@ msgid "" "this trick is also handy if you want to decide dynamically (e.g. depending " "on availability of resources) which base class to use. Example::" msgstr "" +"Puede asignar la clase base a un alias y derivar del alias. Entonces todo lo " +"que tiene que cambiar es el valor asignado al alias. Por cierto, este truco " +"también es útil si desea decidir dinámicamente (por ejemplo, dependiendo de " +"la disponibilidad de recursos) qué clase base usar. Ejemplo::" #: ../Doc/faq/programming.rst:1531 msgid "How do I create static class data and static class methods?" diff --git a/faq/windows.po b/faq/windows.po index 0142b62893..048c7cd376 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-22 10:31-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 11:03+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/faq/windows.rst:9 msgid "Python on Windows FAQ" @@ -230,7 +231,6 @@ msgid "How do I make an executable from a Python script?" msgstr "¿Cómo hacer un ejecutable a partir de un script de Python?" #: ../Doc/faq/windows.rst:143 -#, fuzzy msgid "" "See `cx_Freeze `_ for a " "distutils extension that allows you to create console and GUI executables " @@ -239,10 +239,10 @@ msgid "" "Python 3 but a version that does is in development." msgstr "" "Consulte `cx_Freeze `_ para " -"obtener una extensión *distutils* que le permite crear ejecutables de " -"consola y *GUI* a partir del código Python. `py2exe `_ es la extensión más popular para construir ejecutables basados ​​en Python " -"2.x, pero la implementación en Python 3 está en desarrollo." +"obtener una extensión distutils que le permite crear ejecutables de consola " +"y GUI a partir del código Python. `py2exe `_ es la " +"extensión más popular para construir ejecutables basados ​​en Python 2.x, pero " +"la implementación en Python 3 está en desarrollo." #: ../Doc/faq/windows.rst:151 msgid "Is a ``*.pyd`` file the same as a DLL?" @@ -515,12 +515,11 @@ msgid "How do I check for a keypress without blocking?" msgstr "¿Cómo verifico una pulsación de tecla sin bloquearla?" #: ../Doc/faq/windows.rst:282 -#, fuzzy msgid "" "Use the :mod:`msvcrt` module. This is a standard Windows-specific extension " "module. It defines a function ``kbhit()`` which checks whether a keyboard " "hit is present, and ``getch()`` which gets one character without echoing it." msgstr "" -"Use el módulo *msvcrt*. Es una extensión estándar específica de Windows, que " -"define una función ``kbhit()`` que verifica si se ha presionado una tecla, y " -"``getch()`` que recupera el carácter sin mostrarlo." +"Use el módulo :mod:`msvcrt`. Es una extensión estándar específica de " +"Windows, que define una función ``kbhit()`` que verifica si se ha presionado " +"una tecla, y ``getch()`` que recupera el carácter sin mostrarlo." diff --git a/glossary.po b/glossary.po index 310672f29a..43cf7303e3 100644 --- a/glossary.po +++ b/glossary.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 18:30-0300\n" -"Last-Translator: María Andrea Vignau\n" +"PO-Revision-Date: 2021-08-04 11:03+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/glossary.rst:5 msgid "Glossary" @@ -462,13 +463,15 @@ msgstr "" #: ../Doc/glossary.rst:191 msgid "callback" -msgstr "" +msgstr "retrollamada" #: ../Doc/glossary.rst:193 msgid "" "A subroutine function which is passed as an argument to be executed at some " "point in the future." msgstr "" +"Una función de subrutina que se pasa como un argumento para ejecutarse en " +"algún momento en el futuro." #: ../Doc/glossary.rst:195 msgid "class" @@ -710,13 +713,13 @@ msgstr "" "clases." #: ../Doc/glossary.rst:304 -#, fuzzy msgid "" "For more information about descriptors' methods, see :ref:`descriptors` or " "the :ref:`Descriptor How To Guide `." msgstr "" -"Para mayor información sobre los métodos de los descriptores vea :ref:" -"`descriptors`." +"Para obtener más información sobre los métodos de los descriptores, " +"consulte :ref:`descriptors` o :ref:`Guía práctica de uso de los descriptores" +"`." #: ../Doc/glossary.rst:306 msgid "dictionary" @@ -733,9 +736,8 @@ msgstr "" "meth:`__eq__` . Son llamadas hash en Perl." #: ../Doc/glossary.rst:311 -#, fuzzy msgid "dictionary comprehension" -msgstr "comprensión de listas" +msgstr "comprensión de diccionarios" #: ../Doc/glossary.rst:313 msgid "" @@ -744,6 +746,10 @@ msgid "" "range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n " "** 2``. See :ref:`comprehensions`." msgstr "" +"Una forma compacta de procesar todos o parte de los elementos en un iterable " +"y retornar un diccionario con los resultados. ``results = {n: n ** 2 for n " +"in range(10)}`` genera un diccionario que contiene la clave ``n`` asignada " +"al valor ``n ** 2``. Ver :ref:`comprehensions`." #: ../Doc/glossary.rst:317 msgid "dictionary view" @@ -1141,9 +1147,8 @@ msgstr "" "func:`functools.singledispatch`, y :pep:`443`." #: ../Doc/glossary.rst:485 -#, fuzzy msgid "generic type" -msgstr "función genérica" +msgstr "tipos genéricos" #: ../Doc/glossary.rst:487 msgid "" @@ -1151,12 +1156,17 @@ msgid "" "`list`. Used for :term:`type hints ` and :term:`annotations " "`." msgstr "" +"Un :term:`type` que se puede parametrizar; normalmente un contenedor como :" +"class:`list`. Usado para :term:`type hints ` y :term:`annotations " +"`." #: ../Doc/glossary.rst:491 msgid "" "See :pep:`483` for more details, and :mod:`typing` or :ref:`generic alias " "type ` for its uses." msgstr "" +"Ver :pep:`483` para más detalles, y :mod:`typing` o :ref:`tipo alias " +"genérico ` para sus usos." #: ../Doc/glossary.rst:493 msgid "GIL" @@ -1421,7 +1431,6 @@ msgid "iterable" msgstr "iterable" #: ../Doc/glossary.rst:599 -#, fuzzy msgid "" "An object capable of returning its members one at a time. Examples of " "iterables include all sequence types (such as :class:`list`, :class:`str`, " @@ -1431,11 +1440,11 @@ msgid "" "term:`Sequence ` semantics." msgstr "" "Un objeto capaz de retornar sus miembros uno por vez. Ejemplos de iterables " -"son todos los tipos de secuencias (como :class:`list`, :class:`str`, y :" +"son todos los tipos de secuencias (como :class:`list`, :class:`str`, y :" "class:`tuple`) y algunos de tipos no secuenciales, como :class:`dict`, :term:" "`objeto archivo `, y objetos de cualquier clase que defina con " "los métodos :meth:`__iter__` o con un método :meth:`__getitem__` que " -"implementen la semántica de :term:`Sequence`." +"implementen la semántica de :term:`Sequence `." #: ../Doc/glossary.rst:606 msgid "" @@ -2212,7 +2221,7 @@ msgstr "argumento posicional" #: ../Doc/glossary.rst:935 msgid "provisional API" -msgstr "API provisoria" +msgstr "API provisional" #: ../Doc/glossary.rst:937 msgid "" @@ -2405,7 +2414,6 @@ msgstr "" "`immutable` y no por enteros." #: ../Doc/glossary.rst:1035 -#, fuzzy msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " "richer interface that goes beyond just :meth:`__getitem__` and :meth:" @@ -2413,16 +2421,15 @@ msgid "" "meth:`__reversed__`. Types that implement this expanded interface can be " "registered explicitly using :func:`~abc.ABCMeta.register`." msgstr "" -"La clase base abstracta :class:`collections.abc.Sequence` define una " +"La clase abstracta base :class:`collections.abc.Sequence` define una " "interfaz mucho más rica que va más allá de sólo :meth:`__getitem__` y :meth:" "`__len__`, agregando :meth:`count`, :meth:`index`, :meth:`__contains__`, y :" "meth:`__reversed__`. Los tipos que implementan esta interfaz expandida " "pueden ser registrados explícitamente usando :func:`~abc.register`." #: ../Doc/glossary.rst:1042 -#, fuzzy msgid "set comprehension" -msgstr "comprensión de listas" +msgstr "comprensión de conjuntos" #: ../Doc/glossary.rst:1044 msgid "" @@ -2431,6 +2438,10 @@ msgid "" "not in 'abc'}`` generates the set of strings ``{'r', 'd'}``. See :ref:" "`comprehensions`." msgstr "" +"Una forma compacta de procesar todos o parte de los elementos en un iterable " +"y retornar un conjunto con los resultados. ``results = {c for c in " +"'abracadabra' if c not in 'abc'}`` genera el conjunto de cadenas ``{'r', 'd'}" +"``. Ver :ref:`comprehensions`." #: ../Doc/glossary.rst:1048 msgid "single dispatch" diff --git a/howto/argparse.po b/howto/argparse.po index 60796da1a6..1c822c2138 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-05-09 18:32-0300\n" +"PO-Revision-Date: 2021-08-04 20:34+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/argparse.rst:3 msgid "Argparse Tutorial" @@ -203,17 +203,16 @@ msgstr "" "especificadas, en este caso, ``echo``." #: ../Doc/howto/argparse.rst:149 -#, fuzzy msgid "" "The variable is some form of 'magic' that :mod:`argparse` performs for free " "(i.e. no need to specify which variable that value is stored in). You will " "also notice that its name matches the string argument given to the method, " "``echo``." msgstr "" -"La variable es alguna forma de 'magia' que :mod:`argparse` realiza gratis " -"(es decir, no hay necesidad de especificar en que variable el valor es " -"almacenado). También notará que su nombre coincida con el argumento de " -"cadena dado al método, ``echo``." +"La variable es una forma de 'magia' que :mod:`argparse` se realiza de forma " +"gratuita (es decir, no es necesario especificar en qué variable se almacena " +"ese valor). También notará que su nombre coincide con el argumento de cadena " +"dado al método, ``echo``." #: ../Doc/howto/argparse.rst:154 msgid "" @@ -233,11 +232,9 @@ msgstr "" msgid "And we get:" msgstr "Y la salida:" -# No entiendo muy bien la frase en inglés, para mí es una pregunta eso, pero no estoy seguro. La frase en Español no me suena bien a mí. #: ../Doc/howto/argparse.rst:178 -#, fuzzy msgid "Now, how about doing something even more useful::" -msgstr "Ahora, cómo hacemos algo aún más útil::" +msgstr "Ahora, que tal si hacemos algo más útil::" #: ../Doc/howto/argparse.rst:196 msgid "" @@ -334,15 +331,13 @@ msgstr "" "especificada, se asigna el valor ``True`` a :data:`args.verbose`. No " "especificarlo implica ``False``." -# Revisar en otros textos que he visto que se ha usado *flag* diréctamente, en vez de bandera. Si decide cambiar, tener en cuenta que hay varios usos de bandera en este archivo. #: ../Doc/howto/argparse.rst:305 -#, fuzzy msgid "" "It complains when you specify a value, in true spirit of what flags actually " "are." msgstr "" "Se queja cuando se especifica un valor, en verdadero espíritu de lo que " -"realmente son las banderas." +"realmente son los flags." #: ../Doc/howto/argparse.rst:308 msgid "Notice the different help text." diff --git a/howto/clinic.po b/howto/clinic.po index 09d6fbaeb3..fac3a3bf12 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -2532,8 +2532,8 @@ msgid "" "You can still use a self converter, a return converter, and specify a " "``type`` argument to the object converter for ``METH_O``." msgstr "" -"Aún puede usar un autoconvertidor, un convertidor de retorno y especificar " -"un argumento de ``tipo`` para el convertidor de objetos para ``METH_O``." +"Aún puede usar un autoconversor, un convertidor de retorno y especificar un " +"argumento de ``tipo`` para el convertidor de objetos para ``METH_O``." #: ../Doc/howto/clinic.rst:1337 msgid "tp_new and tp_init functions" diff --git a/howto/descriptor.po b/howto/descriptor.po index a1842be7db..0dcfc79caf 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-20 15:05+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-09-06 00:30+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/howto/descriptor.rst:5 msgid "Descriptor HowTo Guide" @@ -50,22 +51,29 @@ msgid "" ":term:`Descriptors ` let objects customize attribute lookup, " "storage, and deletion." msgstr "" +"Los :term:`descriptores ` permiten a objetos personalizar la " +"búsqueda, almacenamiento y eliminación de atributos." #: ../Doc/howto/descriptor.rst:16 msgid "This guide has four major sections:" -msgstr "" +msgstr "Esta guía tiene cuatro secciones principales:" #: ../Doc/howto/descriptor.rst:18 msgid "" "The \"primer\" gives a basic overview, moving gently from simple examples, " "adding one feature at a time. Start here if you're new to descriptors." msgstr "" +"La guía introductoria da una visión general básica, moviéndose gentilmente " +"por ejemplos simples, añadiendo una funcionalidad a la vez. Comienza acá si " +"eres nuevo con los descriptores." #: ../Doc/howto/descriptor.rst:21 msgid "" "The second section shows a complete, practical descriptor example. If you " "already know the basics, start there." msgstr "" +"La segunda sección muestra un ejemplo completo y práctico de un descriptor. " +"Si ya sabes lo básico comienza acá." #: ../Doc/howto/descriptor.rst:24 msgid "" @@ -73,6 +81,9 @@ msgid "" "detailed mechanics of how descriptors work. Most people don't need this " "level of detail." msgstr "" +"La tercera sección provee un tutorial más técnico que adentra en la mecánica " +"detallada de cómo funcionan los descriptores. La mayoría de la gente no " +"necesita este nivel de detalle." #: ../Doc/howto/descriptor.rst:28 msgid "" @@ -81,38 +92,51 @@ msgid "" "bound methods or about the implementation of common tools like :func:" "`classmethod`, :func:`staticmethod`, :func:`property`, and :term:`__slots__`." msgstr "" +"La última sección tiene equivalentes en Python puro para descriptores " +"incorporados que están escritos en C. Lee esta sección si tienes curiosidad " +"de cómo las funciones se convierten en métodos vinculados, o sobre la " +"implementación de herramientas comunes como :func:`classmethod`, :func:" +"`staticmethod`, :func:`property`, y :term:`__slots__`." #: ../Doc/howto/descriptor.rst:36 msgid "Primer" -msgstr "" +msgstr "Guía introductoria" #: ../Doc/howto/descriptor.rst:38 msgid "" "In this primer, we start with the most basic possible example and then we'll " "add new capabilities one by one." msgstr "" +"En esta guía introductoria comenzamos con el ejemplo más básico posible y " +"luego vamos añadiendo nuevas funcionalidades una a una." #: ../Doc/howto/descriptor.rst:43 msgid "Simple example: A descriptor that returns a constant" -msgstr "" +msgstr "Ejemplo simple: un descriptor que retorna una constante" #: ../Doc/howto/descriptor.rst:45 msgid "" "The :class:`Ten` class is a descriptor that always returns the constant " "``10`` from its :meth:`__get__` method:" msgstr "" +"La clase :class:`Ten` es un descriptor que siempre retorna el valor " +"constante ``10`` desde su método :meth:`__get__`:" #: ../Doc/howto/descriptor.rst:54 msgid "" "To use the descriptor, it must be stored as a class variable in another " "class:" msgstr "" +"Para usar el descriptor, éste se debe almacenar como una variable de clase " +"en otra clase:" #: ../Doc/howto/descriptor.rst:62 msgid "" "An interactive session shows the difference between normal attribute lookup " "and descriptor lookup:" msgstr "" +"Una sesión interactiva muestra la diferencia entre un la búsqueda de " +"atributo normal y la búsqueda a través del descriptor:" #: ../Doc/howto/descriptor.rst:73 msgid "" @@ -121,39 +145,52 @@ msgid "" "operator finds a descriptor instance, recognized by its ``__get__`` method, " "and calls that method which returns ``10``." msgstr "" +"En la búsqueda de atributo ``a.x``, el operador punto busca la llave ``x`` y " +"el valor ``5`` en el diccionario de la clase. En la búsqueda ``a.y``, el " +"operador punto encuentra una instancia de un descriptor, reconocible por su " +"método ``__get__``, e invoca este método, el cual retorna ``10``." #: ../Doc/howto/descriptor.rst:78 msgid "" "Note that the value ``10`` is not stored in either the class dictionary or " "the instance dictionary. Instead, the value ``10`` is computed on demand." msgstr "" +"Nota que el valor ``10`` no es almacenado ni en el diccionario de la clase " +"ni en el diccionario de la instancia. En cambio, el valor ``10`` es " +"calculado bajo demanda." #: ../Doc/howto/descriptor.rst:81 msgid "" "This example shows how a simple descriptor works, but it isn't very useful. " "For retrieving constants, normal attribute lookup would be better." msgstr "" +"Este ejemplo muestra cómo funciona un descriptor simple, pero no es muy " +"útil. Para recuperar constantes una búsqueda de atributos normal sería mejor." #: ../Doc/howto/descriptor.rst:84 msgid "" "In the next section, we'll create something more useful, a dynamic lookup." -msgstr "" +msgstr "En la próxima sección crearemos algo más útil, una búsqueda dinámica." #: ../Doc/howto/descriptor.rst:88 msgid "Dynamic lookups" -msgstr "" +msgstr "Búsquedas dinámicas" #: ../Doc/howto/descriptor.rst:90 msgid "" "Interesting descriptors typically run computations instead of returning " "constants:" msgstr "" +"Descriptores interesantes típicamente ejecutan cálculos en vez de retornar " +"constantes:" #: ../Doc/howto/descriptor.rst:109 msgid "" "An interactive session shows that the lookup is dynamic — it computes " "different, updated answers each time::" msgstr "" +"Una sesión interactiva muestra que la búsqueda es dinámica — calcula " +"respuestas diferentes y actualizadas en cada ocasión::" #: ../Doc/howto/descriptor.rst:122 msgid "" @@ -164,10 +201,16 @@ msgid "" "that lets the :meth:`__get__` method learn the target directory. The " "*objtype* parameter is the class *Directory*." msgstr "" +"Además de mostrar cómo los descriptores puede ejecutar cálculos, este " +"ejemplo también revela el propósitos de los parámetros de :meth:`__get__`. " +"El parámetro *self* es *size*, una instancia de *DirectorySize*. El " +"parámetro *obj* es *g* o *s*, una instancia de *Directory*. Es el parámetro " +"*obj* el que permite que al método :meth:`__get__` saber el directorio " +"objetivo. El parámetro *objtype* es una clase *Directory*." #: ../Doc/howto/descriptor.rst:131 msgid "Managed attributes" -msgstr "" +msgstr "Atributos gestionados" #: ../Doc/howto/descriptor.rst:133 msgid "" @@ -177,6 +220,11 @@ msgid "" "dictionary. The descriptor's :meth:`__get__` and :meth:`__set__` methods " "are triggered when the public attribute is accessed." msgstr "" +"Un uso popular de descriptores es la gestión de acceso a datos de una " +"instancia. El descriptor se asigna a un atributo público en el diccionario " +"de clase, mientras que los datos reales se guardan en atributos privados en " +"el diccionario de instancia. Los métodos :meth:`__get__` and :meth:`__set__` " +"del descriptor se activan cuando se accede al atributo público." #: ../Doc/howto/descriptor.rst:139 msgid "" @@ -184,12 +232,17 @@ msgid "" "private attribute. When the public attribute is accessed, the descriptor " "logs the lookup or update:" msgstr "" +"En el siguiente ejemplo, *age* es el atributo público y *_age* es el " +"atributo privado. Cuando el atributo público es accedido, el descriptor " +"registra la búsqueda o actualización:" #: ../Doc/howto/descriptor.rst:172 msgid "" "An interactive session shows that all access to the managed attribute *age* " "is logged, but that the regular attribute *name* is not logged:" msgstr "" +"Una sesión interactiva muestra que todos los accesos al atributo gestionado " +"*age* son registrados, pero que el atributo normal *name* no es registrado:" #: ../Doc/howto/descriptor.rst:206 msgid "" @@ -198,16 +251,22 @@ msgid "" "only have one logged attribute and that its name is unchangeable. In the " "next example, we'll fix that problem." msgstr "" +"Un gran problema con este ejemplo es que el nombre privado *_age* está " +"fijado en la clase *LoggedAgeAccess*. Esto significa que cada instancia " +"puede sólo puede registrar un atributo, y que su nombre no se puede cambiar. " +"En el siguiente ejemplo solucionaremos ese problema." #: ../Doc/howto/descriptor.rst:213 msgid "Customized names" -msgstr "" +msgstr "Nombres personalizados" #: ../Doc/howto/descriptor.rst:215 msgid "" "When a class uses descriptors, it can inform each descriptor about which " "variable name was used." msgstr "" +"Cuando una clase usa descriptores, puede informar a cada descriptor el " +"nombre se usó para la variable." #: ../Doc/howto/descriptor.rst:218 msgid "" @@ -217,6 +276,11 @@ msgid "" "can be recorded, giving each descriptor its own *public_name* and " "*private_name*:" msgstr "" +"En este ejemplo, la clase :class:`Person` tiene dos instancias de " +"descriptores, *name* y *age*. Cuando la clase :class:`Person` se define, " +"hace una retrollamada a :meth:`__set_name__` en *LoggedAccess* para que se " +"pueda registrar los nombres de los campos, dándole a cada descriptor su " +"propio *public_name* y *private_name*:" #: ../Doc/howto/descriptor.rst:256 msgid "" @@ -224,24 +288,29 @@ msgid "" "`__set_name__` so that the field names would be recorded. Here we call :" "func:`vars` to look up the descriptor without triggering it:" msgstr "" +"Una sesión interactiva muestra que la clase :class:`Person` ha llamado a :" +"meth:`__set_name__` para que los nombres de los campos sean registrados. " +"Aquí llamamos a :func:`vars` para ver el descriptor sin activarlos:" #: ../Doc/howto/descriptor.rst:267 msgid "The new class now logs access to both *name* and *age*:" -msgstr "" +msgstr "La nueva clase ahora registrar accesos tanto a *name* como a *age*:" #: ../Doc/howto/descriptor.rst:284 msgid "The two *Person* instances contain only the private names::" -msgstr "" +msgstr "Las dos instancias de *Person* contienen sólo dos nombres privados::" #: ../Doc/howto/descriptor.rst:293 msgid "Closing thoughts" -msgstr "" +msgstr "Pensamientos finales" #: ../Doc/howto/descriptor.rst:295 msgid "" "A :term:`descriptor` is what we call any object that defines :meth:" "`__get__`, :meth:`__set__`, or :meth:`__delete__`." msgstr "" +"Llamamos un :term:`descriptor` a cualquier objeto que define :meth:" +"`__get__`, :meth:`__set__` o :meth:`__delete__`." #: ../Doc/howto/descriptor.rst:298 msgid "" @@ -250,6 +319,11 @@ msgid "" "it was created or the name of class variable it was assigned to. (This " "method, if present, is called even if the class is not a descriptor.)" msgstr "" +"Opcionalmente, los descriptores pueden tener un método :meth:`__set_name__`. " +"Éste sólo se usa en los casos en los que el descriptor necesita saber ya sea " +"la clase donde fue creado, o el nombre de la variable de clase a la que fue " +"asignado. (Este método, si está presente, es llamada incluso si la clase no " +"es un descriptor.)" #: ../Doc/howto/descriptor.rst:303 msgid "" @@ -257,18 +331,27 @@ msgid "" "a descriptor is accessed indirectly with ``vars(some_class)" "[descriptor_name]``, the descriptor instance is returned without invoking it." msgstr "" +"Los descriptores son invocados por el \"operator\" punto durante la búsqueda " +"de atributos. Si un descriptor es accedido indirectamente con " +"``vars(una_clase)[nombre_del_descriptor]``, la instancia del descriptor es " +"retornada sin ser invocada." #: ../Doc/howto/descriptor.rst:307 msgid "" "Descriptors only work when used as class variables. When put in instances, " "they have no effect." msgstr "" +"Los descriptores sólo funcionan cuando se usan como variables de clase. " +"Cuando son puestos en una instancia no tienen efecto." #: ../Doc/howto/descriptor.rst:310 msgid "" "The main motivation for descriptors is to provide a hook allowing objects " "stored in class variables to control what happens during attribute lookup." msgstr "" +"La mayor motivación detrás de los descriptores es el proveer un gancho que " +"permita a los objetos guardados en variables de clase controlar lo que " +"ocurre al buscar un atributo." #: ../Doc/howto/descriptor.rst:313 msgid "" @@ -276,6 +359,9 @@ msgid "" "Descriptors invert that relationship and allow the data being looked-up to " "have a say in the matter." msgstr "" +"Tradicionalmente, la clase que llama controla qué ocurre durante la " +"búsqueda. Los descriptores invierten esta relación y permiten que los datos " +"que están siendo buscados tengan algo qué decir al respecto." #: ../Doc/howto/descriptor.rst:317 msgid "" @@ -284,20 +370,26 @@ msgid "" "`staticmethod`, :func:`property`, and :func:`functools.cached_property` are " "all implemented as descriptors." msgstr "" +"Los descriptores se usan a través de todo el lenguaje. Es cómo funciones se " +"convierten en métodos vinculados. Herramientas comunes como :func:" +"`classmethod`, :func:`staticmethod`, :func:`property`, y :func:`functools." +"cached_property` se implementan todas como descriptores." #: ../Doc/howto/descriptor.rst:324 msgid "Complete Practical Example" -msgstr "" +msgstr "Ejemplo completo práctico" #: ../Doc/howto/descriptor.rst:326 msgid "" "In this example, we create a practical and powerful tool for locating " "notoriously hard to find data corruption bugs." msgstr "" +"En este ejemplo creamos una herramienta práctica y poderosa para encontrar " +"errores de corrupción de datos que son notoriamente difíciles de encontrar." #: ../Doc/howto/descriptor.rst:331 msgid "Validator class" -msgstr "" +msgstr "Clase validadora" #: ../Doc/howto/descriptor.rst:333 msgid "" @@ -306,31 +398,42 @@ msgid "" "restrictions. If those restrictions aren't met, it raises an exception to " "prevent data corruption at its source." msgstr "" +"Un validador es un descriptor que da acceso a un atributo gestionado. Antes " +"de almacenar cualquier dato, verifica que el nuevo valor cumple con varias " +"restricciones de tipo y rango. Si esas restricciones no se cumplen, lanza " +"una excepción para así prevenir corrupción de datos en su origen." #: ../Doc/howto/descriptor.rst:338 msgid "" "This :class:`Validator` class is both an :term:`abstract base class` and a " "managed attribute descriptor:" msgstr "" +"Esta clase :class:`Validator` es una tanto una :term:`clase base abstracta " +"` como un descriptor de un atributo gestionado:" #: ../Doc/howto/descriptor.rst:361 msgid "" "Custom validators need to inherit from :class:`Validator` and must supply a :" "meth:`validate` method to test various restrictions as needed." msgstr "" +"Validadores personalizados necesitan heredar de :class:`Validator` y deben " +"proveer un método :meth:`validate` method para probar las restricciones que " +"sean necesarias." #: ../Doc/howto/descriptor.rst:366 msgid "Custom validators" -msgstr "" +msgstr "Validadores personalizados" #: ../Doc/howto/descriptor.rst:368 msgid "Here are three practical data validation utilities:" -msgstr "" +msgstr "Acá hay tres utilidades de validación de datos prácticas:" #: ../Doc/howto/descriptor.rst:370 msgid "" ":class:`OneOf` verifies that a value is one of a restricted set of options." msgstr "" +":class:`OneOf` verifica que un valor está dentro de un grupo restringido de " +"opciones." #: ../Doc/howto/descriptor.rst:372 msgid "" @@ -338,6 +441,8 @@ msgid "" "`float`. Optionally, it verifies that a value is between a given minimum or " "maximum." msgstr "" +":class:`Number` verifica que un valor es :class:`int` o :class:`float`. " +"Opcionalmente verifica que un valor está entre un mínimo y un máximo." #: ../Doc/howto/descriptor.rst:376 msgid "" @@ -346,28 +451,35 @@ msgid "" "`predicate `_ " "as well." msgstr "" +":class:`String` verifica que un valor es un :class:`str`. Opcionalmente " +"valida que tenga un largo mínimo o máximo. Puede también validar un " +"`predicado `_ definido por el usuario." #: ../Doc/howto/descriptor.rst:435 msgid "Practical application" -msgstr "" +msgstr "Aplicación práctica" #: ../Doc/howto/descriptor.rst:437 msgid "Here's how the data validators can be used in a real class:" msgstr "" +"Acá se muestra cómo se puede usar los validadores de datos en una clase real:" #: ../Doc/howto/descriptor.rst:452 msgid "The descriptors prevent invalid instances from being created:" -msgstr "" +msgstr "Los descriptores previenen que se creen instancias inválidas:" #: ../Doc/howto/descriptor.rst:479 msgid "Technical Tutorial" -msgstr "" +msgstr "Tutorial técnico" #: ../Doc/howto/descriptor.rst:481 msgid "" "What follows is a more technical tutorial for the mechanics and details of " "how descriptors work." msgstr "" +"Lo que sigue es un tutorial más práctico sobre las mecánicas y detalles de " +"cómo funcionan los descriptores." #: ../Doc/howto/descriptor.rst:486 msgid "Abstract" @@ -378,19 +490,20 @@ msgid "" "Defines descriptors, summarizes the protocol, and shows how descriptors are " "called. Provides an example showing how object relational mappings work." msgstr "" +"Define los descriptores, resume el protocolo, y muestra cómo los " +"descriptores son llamados. Provee ejemplos mostrando cómo funcionan los " +"mapeos objeto-relacional (*ORM*)." #: ../Doc/howto/descriptor.rst:491 -#, fuzzy msgid "" "Learning about descriptors not only provides access to a larger toolset, it " "creates a deeper understanding of how Python works." msgstr "" -"Aprender acerca de los descriptores no solo brinda acceso a un conjunto de " -"herramientas mayor, sino que genera una comprensión más profunda de como " -"funciona Python y una apreciación sobre la elegancia de su diseño." +"Aprender acerca de los descriptores no sólo brinda acceso a un conjunto de " +"herramientas mayor, sino que genera una comprensión más profunda de cómo " +"funciona Python." #: ../Doc/howto/descriptor.rst:496 -#, fuzzy msgid "Definition and introduction" msgstr "Definición e introducción" @@ -401,9 +514,12 @@ msgid "" "`__set__`, and :meth:`__delete__`. If any of those methods are defined for " "an attribute, it is said to be a :term:`descriptor`." msgstr "" +"En general, un descriptor es un valor atributo que tiene uno de los métodos " +"del protocolo de descriptores. Estos métodos son :meth:`__get__`, :meth:" +"`__set__`, y :meth:`__delete__`. Si cualquiera de esos métodos se definen en " +"un atributo, se dice que éste es un :term:`descriptor`." #: ../Doc/howto/descriptor.rst:503 -#, fuzzy msgid "" "The default behavior for attribute access is to get, set, or delete the " "attribute from an object's dictionary. For instance, ``a.x`` has a lookup " @@ -417,12 +533,12 @@ msgstr "" "El comportamiento predeterminado para el acceso a los atributos es obtener, " "establecer o eliminar el atributo del diccionario de un objeto. Por ejemplo, " "``a.x`` tiene una cadena de búsqueda que comienza con ``a.__dict__['x']``, " -"luego ``type(a).__dict__['x']`` y continúa a través de las clases base de " -"``type(a)`` excluyendo metaclases. Si el valor buscado es un objeto que " -"define uno de los métodos del descriptor, entonces Python puede anular el " +"luego ``type(a).__dict__['x']`` y continúa a través del orden de resolución " +"de métodos de ``type(a)``. Si el valor buscado es un objeto que define uno " +"de los métodos de descriptores, entonces Python puede anular el " "comportamiento predeterminado e invocar el método del descriptor en su " -"lugar. El lugar donde ésto ocurre en la cadena de precedencia depende de qué " -"métodos del descriptor fueron definidos." +"lugar. El lugar donde esto ocurre en la cadena de precedencia depende de qué " +"métodos de descriptores fueron definidos." #: ../Doc/howto/descriptor.rst:512 msgid "" @@ -432,11 +548,15 @@ msgid "" "simplify the underlying C code and offer a flexible set of new tools for " "everyday Python programs." msgstr "" +"Los descriptores son un protocolo poderoso y de propósito general. Son el " +"mecanismo detrás de propiedades, métodos, métodos estáticos y :func:" +"`super()`. Se usan a través de Python mismo. Los descriptores simplifican el " +"código C subyacente y ofrecen un grupo flexible de nuevas herramientas para " +"programas habituales de Python." #: ../Doc/howto/descriptor.rst:520 -#, fuzzy msgid "Descriptor protocol" -msgstr "Protocolo descriptor" +msgstr "Protocolo de descriptores" #: ../Doc/howto/descriptor.rst:522 msgid "``descr.__get__(self, obj, type=None) -> value``" @@ -461,7 +581,6 @@ msgstr "" "predeterminado al ser buscado como un atributo." #: ../Doc/howto/descriptor.rst:532 -#, fuzzy msgid "" "If an object defines :meth:`__set__` or :meth:`__delete__`, it is considered " "a data descriptor. Descriptors that only define :meth:`__get__` are called " @@ -481,7 +600,7 @@ msgid "" "takes precedence. If an instance's dictionary has an entry with the same " "name as a non-data descriptor, the dictionary entry takes precedence." msgstr "" -"Los descriptores de datos y de no-datos difieren en como se calculan las " +"Los descriptores de datos y de no-datos difieren en cómo se calculan las " "anulaciones con respecto a las entradas en el diccionario de una instancia. " "Si el diccionario de una instancia tiene una entrada con el mismo nombre que " "un descriptor de datos, el descriptor de datos tiene prioridad. Si el " @@ -495,30 +614,31 @@ msgid "" "called. Defining the :meth:`__set__` method with an exception raising " "placeholder is enough to make it a data descriptor." msgstr "" -"Para crear un descriptor de datos de solo lectura, se define tanto :meth:" -"`__get__` como :meth:`__set__` donde :meth:`__set__` lanza un error :exc:" +"Para crear un descriptor de datos de sólo lectura, define tanto :meth:" +"`__get__` como :meth:`__set__` donde :meth:`__set__` lanza un :exc:" "`AttributeError` cuando es llamado. Definir el método :meth:`__set__` de " "forma que lance una excepción genérica es suficiente para convertirlo en un " "descriptor de datos." #: ../Doc/howto/descriptor.rst:550 msgid "Overview of descriptor invocation" -msgstr "" +msgstr "Visión general de invocación de descriptores" #: ../Doc/howto/descriptor.rst:552 -#, fuzzy msgid "" "A descriptor can be called directly with ``desc.__get__(obj)`` or ``desc." "__get__(None, cls)``." msgstr "" -"Un descriptor puede ser llamado directamente mediante el nombre de su " -"método. Por ejemplo ``d.__get__(obj)``." +"Un descriptor puede ser llamado directamente con ``desc.__get__(obj)`` o " +"``desc.__get__(None, cls)``." #: ../Doc/howto/descriptor.rst:555 msgid "" "But it is more common for a descriptor to be invoked automatically from " "attribute access." msgstr "" +"Pero es más común que un descriptor sea invocado automáticamente por la " +"búsqueda de atributos." #: ../Doc/howto/descriptor.rst:558 msgid "" @@ -527,19 +647,22 @@ msgid "" "instance ``__dict__``, its :meth:`__get__` method is invoked according to " "the precedence rules listed below." msgstr "" +"La expresión ``obj.x`` busca el atributo ``x`` en la cadena de nombres de " +"espacio de ``obj``. Si la búsqueda encuentra un descriptor fuera del " +"``__dict__`` de la instancia, su método :meth:`__get__` es invocado de " +"acuerdo a la lista de reglas de precedencia mostradas debajo." #: ../Doc/howto/descriptor.rst:563 -#, fuzzy msgid "" "The details of invocation depend on whether ``obj`` is an object, class, or " "instance of super." msgstr "" -"Los detalles de la invocación dependen de si ``obj`` es un objeto o una " -"clase." +"Los detalles de la invocación dependen de si ``obj`` es un objeto una clase, " +"o una instancia de super." #: ../Doc/howto/descriptor.rst:568 msgid "Invocation from an instance" -msgstr "" +msgstr "Invocación desde una instancia" #: ../Doc/howto/descriptor.rst:570 msgid "" @@ -548,18 +671,26 @@ msgid "" "descriptors, then class variables, and lastly :meth:`__getattr__` if it is " "provided." msgstr "" +"La búsqueda en instancias escanea a través de una cadena de nombres de " +"espacio dando la más alta prioridad a descriptores de datos, seguidos por " +"variables de instancia, luego descriptores de no-datos, luego variables de " +"clase, y finalmente a :meth:`__getattr__` si se provee." #: ../Doc/howto/descriptor.rst:575 msgid "" "If a descriptor is found for ``a.x``, then it is invoked with: ``desc." "__get__(a, type(a))``." msgstr "" +"Si se encuentra un descriptor para ``a.x`` entonces se invoca con ``desc." +"__get__(a, type(a))``." #: ../Doc/howto/descriptor.rst:578 msgid "" "The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here " "is a pure Python equivalent:" msgstr "" +"La lógica para una búsqueda con puntos se encuentra en :meth:`object." +"__getattribute__`. Acá hay un equivalente en Python puro:" #: ../Doc/howto/descriptor.rst:698 msgid "" @@ -567,6 +698,10 @@ msgid "" "directly. Instead, both the dot operator and the :func:`getattr` function " "perform attribute lookup by way of a helper function:" msgstr "" +"Es Interesante que la búsqueda de atributos no llama directamente a :meth:" +"`object.__getattribute__`. En cambio, tanto el operador punto como la " +"función :func:`getattr` realizan la búsqueda de atributos a través de una " +"función auxiliar:" #: ../Doc/howto/descriptor.rst:713 msgid "" @@ -574,17 +709,21 @@ msgid "" "`__getattribute__` raises :exc:`AttributeError` (either directly or in one " "of the descriptor calls)." msgstr "" +"De tal modo, si :meth:`__getattr__` existe, es llamada cada vez que :meth:" +"`__getattribute__` lanza :exc:`AttributeError` (ya sea directamente o en una " +"de las llamadas a un descriptor)." #: ../Doc/howto/descriptor.rst:716 msgid "" "Also, if a user calls :meth:`object.__getattribute__` directly, the :meth:" "`__getattr__` hook is bypassed entirely." msgstr "" +"Además, si un usuario llama directamente a :meth:`object.__getattribute__`, " +"el gancho en :meth:`__getattr__` es totalmente evitado." #: ../Doc/howto/descriptor.rst:721 -#, fuzzy msgid "Invocation from a class" -msgstr "Llamado desde una clase" +msgstr "Invocación desde una clase" #: ../Doc/howto/descriptor.rst:723 msgid "" @@ -593,26 +732,37 @@ msgid "" "__getattribute__` but the instance dictionary lookup is replaced by a search " "through the class's :term:`method resolution order`." msgstr "" +"La lógica para una búsqueda con puntos tal como ``A.x`` se encuentra en :" +"meth:`type.__getattribute__`. Los pasos son similares a los de :meth:`object." +"__getattribute__`, pero la búsqueda en el diccionario de instancia se " +"reemplaza por una búsqueda a través del :term:`orden de resolución de " +"métodos ` de la clase." #: ../Doc/howto/descriptor.rst:728 msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``." msgstr "" +"Si se encuentra un descriptor, se invoca con ``desc.__get__(None, A)``." #: ../Doc/howto/descriptor.rst:730 msgid "" "The full C implementation can be found in :c:func:`type_getattro()` and :c:" "func:`_PyType_Lookup()` in :source:`Objects/typeobject.c`." msgstr "" +"La implementación completa en C puede ser encontrada en :c:func:" +"`type_getattro()` y :c:func:`_PyType_Lookup()` en :source:`Objects/" +"typeobject.c`." #: ../Doc/howto/descriptor.rst:735 msgid "Invocation from super" -msgstr "" +msgstr "Invocación desde super" #: ../Doc/howto/descriptor.rst:737 msgid "" "The logic for super's dotted lookup is in the :meth:`__getattribute__` " "method for object returned by :class:`super()`." msgstr "" +"La lógica de la búsqueda con puntos para super está en el método :meth:" +"`__getattribute__` para el objeto retornado por :class:`super()`." #: ../Doc/howto/descriptor.rst:740 msgid "" @@ -621,55 +771,60 @@ msgid "" "returns ``B.__dict__['m'].__get__(obj, A)``. If not a descriptor, ``m`` is " "returned unchanged." msgstr "" +"Una búsqueda con puntos tal como ``super(A, obj).m`` busca ``obj.__class__." +"__mro__`` para la clase base ``B`` que sigue inmediatamente a ``A`` y luego " +"retorna ``B.__dict__['m'].__get__(obj, A)``. Si no es un descriptor, ``m`` " +"se retorna sin cambiar." #: ../Doc/howto/descriptor.rst:745 -#, fuzzy msgid "" "The full C implementation can be found in :c:func:`super_getattro()` in :" "source:`Objects/typeobject.c`. A pure Python equivalent can be found in " "`Guido's Tutorial `_." msgstr "" -"Los detalles de la implementación están en :c:func:`super_getattro()` en :" -"source:`Objects/typeobject.c` y un equivalente puro de Python se puede " -"encontrar en el `Guido's Tutorial`_." +"La implementación completa en C puede ser encontrada en :c:func:" +"`super_getattro()` en :source:`Objects/typeobject.c`. Un equivalente en " +"Python puro se puede encontrar en el `Guido's Tutorial `_." #: ../Doc/howto/descriptor.rst:752 msgid "Summary of invocation logic" -msgstr "" +msgstr "Resumen de la lógica de invocación" #: ../Doc/howto/descriptor.rst:754 msgid "" "The mechanism for descriptors is embedded in the :meth:`__getattribute__()` " "methods for :class:`object`, :class:`type`, and :func:`super`." msgstr "" +"El mecanismo de descriptores está embebido en los métodos :meth:" +"`__getattribute__()` de :class:`object`, :class:`type`, y :func:`super`." #: ../Doc/howto/descriptor.rst:757 msgid "The important points to remember are:" msgstr "Los puntos importantes a recordar son:" #: ../Doc/howto/descriptor.rst:759 -#, fuzzy msgid "Descriptors are invoked by the :meth:`__getattribute__` method." -msgstr "los descriptores son invocados por el método :meth:`__getattribute__`" +msgstr "Los descriptores son invocados por el método :meth:`__getattribute__`." #: ../Doc/howto/descriptor.rst:761 msgid "" "Classes inherit this machinery from :class:`object`, :class:`type`, or :func:" "`super`." msgstr "" +"Las clases heredan esta maquinaria desde :class:`object`, :class:`type`, o :" +"func:`super`." #: ../Doc/howto/descriptor.rst:764 -#, fuzzy msgid "" "Overriding :meth:`__getattribute__` prevents automatic descriptor calls " "because all the descriptor logic is in that method." msgstr "" -"redefinir :meth:`__getattribute__` evita las llamadas automáticas al " -"descriptor" +"Redefinir :meth:`__getattribute__` previene las llamadas automáticas a " +"descriptores porque toda la lógica de descriptores está en ese método." #: ../Doc/howto/descriptor.rst:767 -#, fuzzy msgid "" ":meth:`object.__getattribute__` and :meth:`type.__getattribute__` make " "different calls to :meth:`__get__`. The first includes the instance and may " @@ -677,24 +832,24 @@ msgid "" "includes the class." msgstr "" ":meth:`object.__getattribute__` y :meth:`type.__getattribute__` realizan " -"diferentes llamadas a :meth:`__get__`." +"diferentes llamadas a :meth:`__get__`. El primero incluye la instancia y " +"puede incluir la clase. El segundo establece ``None`` como instancia, y " +"siempre incluye la clase." #: ../Doc/howto/descriptor.rst:772 -#, fuzzy msgid "Data descriptors always override instance dictionaries." msgstr "" -"los descriptores de datos siempre anulan los diccionarios de instancia." +"Los descriptores de datos siempre anulan los diccionarios de instancia." #: ../Doc/howto/descriptor.rst:774 -#, fuzzy msgid "Non-data descriptors may be overridden by instance dictionaries." msgstr "" -"los descriptores de no-datos pueden ser reemplazados por los diccionarios de " +"Los descriptores de no-datos pueden ser reemplazados por los diccionarios de " "instancia." #: ../Doc/howto/descriptor.rst:778 msgid "Automatic name notification" -msgstr "" +msgstr "Notificación automática de nombre" #: ../Doc/howto/descriptor.rst:780 msgid "" @@ -705,16 +860,20 @@ msgid "" "with two arguments. The *owner* is the class where the descriptor is used, " "and the *name* is the class variable the descriptor was assigned to." msgstr "" +"A veces es deseable que un descriptor sepa qué nombre fue asignado a una " +"variable de clase. Cuando una nueva clase es creada, la metaclase :class:" +"`type` escanea el diccionario de la nueva clase. Si alguna de las entradas " +"es un descriptor, y si define :meth:`__set_name__`, ese método se llama con " +"dos argumentos. El argumento *owner* es la clase donde se usa el descriptor, " +"y *name* es la variable de clase a la cual el descriptor se asigna." #: ../Doc/howto/descriptor.rst:787 -#, fuzzy msgid "" "The implementation details are in :c:func:`type_new()` and :c:func:" "`set_names()` in :source:`Objects/typeobject.c`." msgstr "" -"Los detalles de la implementación están en :c:func:`super_getattro()` en :" -"source:`Objects/typeobject.c` y un equivalente puro de Python se puede " -"encontrar en el `Guido's Tutorial`_." +"Los detalles de la implementación están en :c:func:`type_new()` y :c:func:" +"`set_names()` en :source:`Objects/typeobject.c`." #: ../Doc/howto/descriptor.rst:790 msgid "" @@ -722,19 +881,25 @@ msgid "" "place at the time of class creation. If descriptors are added to the class " "afterwards, :meth:`__set_name__` will need to be called manually." msgstr "" +"Dado que la lógica de actualización está en :meth:`type.__new__`, las " +"notificaciones ocurren sólo al momento de crear la clase. Si se añade " +"descriptores a la clase más tarde, :meth:`__set_name__` tendrá que ser " +"llamado manualmente." #: ../Doc/howto/descriptor.rst:796 -#, fuzzy msgid "ORM example" -msgstr "Ejemplo de descriptor" +msgstr "Ejemplo de mapeos objeto-relacional (*ORM*)" #: ../Doc/howto/descriptor.rst:798 -#, python-format msgid "" "The following code is simplified skeleton showing how data descriptors could " "be used to implement an `object relational mapping `_." msgstr "" +"El siguiente código es un esqueleto simplificado que muestra cómo " +"descriptores de datos pueden ser usados para implementar un mapeo objeto-" +"relacional `_." #: ../Doc/howto/descriptor.rst:802 msgid "" @@ -742,6 +907,9 @@ msgid "" "Python instances only hold keys to the database's tables. Descriptors take " "care of lookups or updates:" msgstr "" +"La idea esencial es que los datos se almacenan en una base de datos externa. " +"Las instancias de Python sólo mantienen llaves a las tablas de la base de " +"datos. Los descriptores se hacen cargo de las búsquedas o actualizaciones:" #: ../Doc/howto/descriptor.rst:821 msgid "" @@ -749,20 +917,25 @@ msgid "" "org/wiki/Database_model>`_ that describe the schema for each table in a " "database:" msgstr "" +"Podemos usar la clase :class:`Field` para definir `modelos `_ que describen el esquema para " +"cada tabla en la base de datos:" #: ../Doc/howto/descriptor.rst:846 msgid "To use the models, first connect to the database::" -msgstr "" +msgstr "Para usar los modelos, primera conéctate a la base de datos::" #: ../Doc/howto/descriptor.rst:851 msgid "" "An interactive session shows how data is retrieved from the database and how " "it can be updated:" msgstr "" +"Una sesión interactiva muestra cómo los datos son obtenidos desde la base de " +"datos y cómo se pueden actualizar:" #: ../Doc/howto/descriptor.rst:896 msgid "Pure Python Equivalents" -msgstr "" +msgstr "Equivalentes en Python puro" #: ../Doc/howto/descriptor.rst:898 msgid "" @@ -771,13 +944,17 @@ msgid "" "in tools. Properties, bound methods, static methods, class methods, and \\_" "\\_slots\\_\\_ are all based on the descriptor protocol." msgstr "" +"El protocolo de descriptores es simple y ofrece posibilidades estimulantes. " +"Varios casos de uso son tan comunes que han sido pre-empaquetados en " +"herramientas incorporadas. Propiedades, métodos vinculados, métodos " +"estáticos, métodos de clase y \\_\\_slots\\_\\_ están todos basados en el " +"protocolo de descriptores." #: ../Doc/howto/descriptor.rst:905 msgid "Properties" msgstr "Propiedades" #: ../Doc/howto/descriptor.rst:907 -#, fuzzy msgid "" "Calling :func:`property` is a succinct way of building a data descriptor " "that triggers a function call upon access to an attribute. Its signature " @@ -788,21 +965,19 @@ msgstr "" "firma es::" #: ../Doc/howto/descriptor.rst:912 -#, fuzzy msgid "" "The documentation shows a typical use to define a managed attribute ``x``:" msgstr "" -"La documentación muestra un uso típico para definir un atributo administrado " +"La documentación muestra un uso típico para definir un atributo gestionado " "``x``::" #: ../Doc/howto/descriptor.rst:922 -#, fuzzy msgid "" "To see how :func:`property` is implemented in terms of the descriptor " "protocol, here is a pure Python equivalent:" msgstr "" -"Para ver cómo se implementa :func:`property` en términos del protocolo " -"descriptor, aquí hay un equivalente puro de Python::" +"Para ver cómo se implementa :func:`property` en términos del protocolo de " +"descriptores, aquí hay un equivalente puro de Python::" #: ../Doc/howto/descriptor.rst:1015 msgid "" @@ -815,7 +990,6 @@ msgstr "" "requieren la intervención de un método." #: ../Doc/howto/descriptor.rst:1019 -#, fuzzy msgid "" "For instance, a spreadsheet class may grant access to a cell value through " "``Cell('b10').value``. Subsequent improvements to the program require the " @@ -827,18 +1001,19 @@ msgstr "" "Por ejemplo, una clase de hoja de cálculo puede otorgar acceso al valor de " "una celda a través de ``Cell('b10').value``. Las mejoras posteriores del " "programa requieren que la celda se vuelva a calcular en cada acceso; sin " -"embargo, el programador no quiere afectar al código de cliente existente que " -"accede al atributo directamente. La solución es envolver el acceso al valor " -"del atributo en un descriptor de datos mediante una propiedad::" +"embargo, la programadora no quiere afectar al código de cliente existente " +"que accede al atributo directamente. La solución es envolver el acceso al " +"valor del atributo en un descriptor de datos propiedad::" #: ../Doc/howto/descriptor.rst:1036 msgid "" "Either the built-in :func:`property` or our :func:`Property` equivalent " "would work in this example." msgstr "" +"Tanto la función incorporada :func:`property` como nuestra equivalente :func:" +"`Property` funcionarían en este ejemplo." #: ../Doc/howto/descriptor.rst:1041 -#, fuzzy msgid "Functions and methods" msgstr "Funciones y métodos" @@ -858,12 +1033,19 @@ msgid "" "prepended to the other arguments. By convention, the instance is called " "*self* but could be called *this* or any other variable name." msgstr "" +"Las funciones almacenadas en diccionarios de clase son convertidas en " +"métodos cuando son invocadas. Los métodos sólo difieren de funciones " +"regulares en que la instancia del objeto es antepuesta a los otros " +"argumentos. Por convención, la instancia se llama *self*, pero podría ser " +"llamada *this* o cualquier otro nombre de variable." #: ../Doc/howto/descriptor.rst:1051 msgid "" "Methods can be created manually with :class:`types.MethodType` which is " "roughly equivalent to:" msgstr "" +"Los métodos se pueden crear manualmente con :class:`types.MethodType`, lo " +"que es aproximadamente equivalente a:" #: ../Doc/howto/descriptor.rst:1068 msgid "" @@ -872,54 +1054,71 @@ msgid "" "that functions are non-data descriptors that return bound methods during " "dotted lookup from an instance. Here's how it works:" msgstr "" +"Para soportar la creación automática de métodos, las funciones incluyen un " +"método :meth:`__get__` para vincular métodos durante el acceso a atributos. " +"Esto significa que las funciones son descriptores de no-datos que retornan " +"métodos vinculados durante la búsqueda con puntos desde una instancia. Así " +"es como funciona:" #: ../Doc/howto/descriptor.rst:1084 -#, fuzzy msgid "" "Running the following class in the interpreter shows how the function " "descriptor works in practice:" msgstr "" -"Ejecutar el intérprete muestra como funciona el descriptor de función en la " -"práctica::" +"Ejecutar la siguiente clase en el intérprete muestra cómo funciona el " +"descriptor de función en la práctica:" #: ../Doc/howto/descriptor.rst:1093 msgid "" "The function has a :term:`qualified name` attribute to support introspection:" msgstr "" +"La función tiene un atributo de :term:`nombre calificado ` " +"para soportar introspección:" #: ../Doc/howto/descriptor.rst:1100 msgid "" "Accessing the function through the class dictionary does not invoke :meth:" "`__get__`. Instead, it just returns the underlying function object::" msgstr "" +"Accediendo a la función a través del diccionario de clase no invoca :meth:" +"`__get__`. En cambio, retorna el objeto función subyacente:" #: ../Doc/howto/descriptor.rst:1106 msgid "" "Dotted access from a class calls :meth:`__get__` which just returns the " "underlying function unchanged::" msgstr "" +"Acceso con puntos desde una clase llama a :meth:`__get__`, lo cual sólo " +"retorna la función subyacente sin cambiar::" #: ../Doc/howto/descriptor.rst:1112 msgid "" "The interesting behavior occurs during dotted access from an instance. The " "dotted lookup calls :meth:`__get__` which returns a bound method object::" msgstr "" +"El comportamiento interesante ocurre durante el accesos con puntos desde una " +"instancia. Las búsquedas con punto llaman a :meth:`__get__`, el cual retorna " +"un objeto de método vinculado:" #: ../Doc/howto/descriptor.rst:1119 msgid "" "Internally, the bound method stores the underlying function and the bound " "instance::" msgstr "" +"Internamente, el método vinculado guarda la función subyacente y la " +"instancia vinculada:" #: ../Doc/howto/descriptor.rst:1128 msgid "" "If you have ever wondered where *self* comes from in regular methods or " "where *cls* comes from in class methods, this is it!" msgstr "" +"Si alguna vez te preguntaste de dónde viene *self* en métodos regulares, o " +"de dónde viene *cls* en métodos de clase, ¡es acá!" #: ../Doc/howto/descriptor.rst:1133 msgid "Other kinds of methods" -msgstr "" +msgstr "Otros tipos de métodos" #: ../Doc/howto/descriptor.rst:1135 msgid "" @@ -930,17 +1129,16 @@ msgstr "" "variaciones de los patrones habituales para vincular funciones en métodos." #: ../Doc/howto/descriptor.rst:1138 -#, fuzzy msgid "" "To recap, functions have a :meth:`__get__` method so that they can be " "converted to a method when accessed as attributes. The non-data descriptor " "transforms an ``obj.f(*args)`` call into ``f(obj, *args)``. Calling ``cls." "f(*args)`` becomes ``f(*args)``." msgstr "" -"En resumen, las funciones tienen un método :meth:`__get__` para que se " +"Para recapitular, las funciones tienen un método :meth:`__get__` para que se " "puedan convertir en un método cuando se accede a ellas como atributos. El " "descriptor de no-datos transforma una llamada a ``obj.f(*args)`` en ``f(obj, " -"*args)``. Llamar a ``klass.f(*args)`` se convierte en ``f(*args)``." +"*args)``. Llamar a ``cls.f(*args)`` se convierte en ``f(*args)``." #: ../Doc/howto/descriptor.rst:1143 msgid "This chart summarizes the binding and its two most useful variants:" @@ -952,12 +1150,10 @@ msgid "Transformation" msgstr "Transformación" #: ../Doc/howto/descriptor.rst:1146 -#, fuzzy msgid "Called from an object" msgstr "Llamado desde un objeto" #: ../Doc/howto/descriptor.rst:1146 -#, fuzzy msgid "Called from a class" msgstr "Llamado desde una clase" @@ -986,14 +1182,12 @@ msgid "f(type(obj), \\*args)" msgstr "f(type(obj), \\*args)" #: ../Doc/howto/descriptor.rst:1153 -#, fuzzy msgid "f(cls, \\*args)" -msgstr "f(klass, \\*args)" +msgstr "f(cls, \\*args)" #: ../Doc/howto/descriptor.rst:1158 -#, fuzzy msgid "Static methods" -msgstr "método estático" +msgstr "Métodos estáticos" #: ../Doc/howto/descriptor.rst:1160 msgid "" @@ -1039,7 +1233,6 @@ msgstr "" "> .9332`` o ``Sample.erf(1.5) --> .9332``." #: ../Doc/howto/descriptor.rst:1178 -#, fuzzy msgid "" "Since static methods return the underlying function with no changes, the " "example calls are unexciting:" @@ -1048,21 +1241,18 @@ msgstr "" "las llamadas de ejemplo carecen de interés::" #: ../Doc/howto/descriptor.rst:1195 -#, fuzzy msgid "" "Using the non-data descriptor protocol, a pure Python version of :func:" "`staticmethod` would look like this:" msgstr "" -"Usando el protocolo descriptor de no-datos, una versión pura de Python de :" -"func:`staticmethod` se vería así::" +"Usando el protocolo de descriptores de no-datos, una versión pura de Python " +"de :func:`staticmethod` se vería así::" #: ../Doc/howto/descriptor.rst:1211 -#, fuzzy msgid "Class methods" -msgstr "método de clase" +msgstr "Métodos de clase" #: ../Doc/howto/descriptor.rst:1213 -#, fuzzy msgid "" "Unlike static methods, class methods prepend the class reference to the " "argument list before calling the function. This format is the same for " @@ -1073,7 +1263,6 @@ msgstr "" "Este formato es el mismo si quien llama es un objeto o una clase::" #: ../Doc/howto/descriptor.rst:1231 -#, fuzzy msgid "" "This behavior is useful whenever the method only needs to have a class " "reference and does not rely on data stored in a specific instance. One use " @@ -1082,24 +1271,23 @@ msgid "" "of keys. The pure Python equivalent is:" msgstr "" "Este comportamiento es útil siempre que la función solo necesite tener una " -"referencia de clase y no preocuparse por los datos subyacentes. Un uso de " -"los métodos de clase es crear constructores de clase alternativos. En Python " -"2.3, el método de clase :func:`dict.fromkeys` crea un nuevo diccionario a " -"partir de una lista de claves. El equivalente puro de Python es:" +"referencia de clase y no necesita contar con los datos almacenados en una " +"instancia específica. Un uso de los métodos de clase es crear constructores " +"de clase alternativos. Por ejemplo, el método de clase :func:`dict.fromkeys` " +"crea un nuevo diccionario a partir de una lista de claves. El equivalente " +"puro de Python es:" #: ../Doc/howto/descriptor.rst:1248 -#, fuzzy msgid "Now a new dictionary of unique keys can be constructed like this:" -msgstr "Ahora se puede construir un nuevo diccionario de claves únicas así::" +msgstr "Ahora se puede construir un nuevo diccionario de claves únicas así:" #: ../Doc/howto/descriptor.rst:1258 -#, fuzzy msgid "" "Using the non-data descriptor protocol, a pure Python version of :func:" "`classmethod` would look like this:" msgstr "" -"Usando el protocolo descriptor de no-datos, una implementación pura en " -"Python de :func:`classmethod` se vería así::" +"Usando el protocolo de descriptores de no-datos, una implementación pura en " +"Python de :func:`classmethod` se vería así:" #: ../Doc/howto/descriptor.rst:1296 msgid "" @@ -1107,10 +1295,13 @@ msgid "" "makes it possible for :func:`classmethod` to support chained decorators. For " "example, a classmethod and property could be chained together:" msgstr "" +"La ruta de código para ``hasattr(obj, '__get__')`` fue añadida en Python " +"3.9, y hace posible que :func:`classmethod` soporte decoradores encadenados." +"Por ejemplo, classmethod y property se pueden encadenar:" #: ../Doc/howto/descriptor.rst:1315 msgid "Member objects and __slots__" -msgstr "" +msgstr "Objetos miembros y __slots__" #: ../Doc/howto/descriptor.rst:1317 msgid "" @@ -1118,18 +1309,26 @@ msgid "" "fixed-length array of slot values. From a user point of view that has " "several effects:" msgstr "" +"Cuando una clase define ``__slots__``, reemplaza los diccionarios de " +"instancia por un arreglo de valores de ranura de largo fijo. Desde el punto " +"de vista del usuario esto tiene varios efectos:" #: ../Doc/howto/descriptor.rst:1321 msgid "" "1. Provides immediate detection of bugs due to misspelled attribute " "assignments. Only attribute names specified in ``__slots__`` are allowed:" msgstr "" +"1. Provee detección inmediata de errores causados por asignación de " +"atributos mal deletreados. Sólo se permiten nombres de atributos " +"especificados en ``__slots__``:" #: ../Doc/howto/descriptor.rst:1337 msgid "" "2. Helps create immutable objects where descriptors manage access to private " "attributes stored in ``__slots__``:" msgstr "" +"2. Ayuda a crear objetos inmutables donde descriptores manejar el acceso a " +"atributos privados almacenados en ``__slots__``:" #: ../Doc/howto/descriptor.rst:1372 msgid "" @@ -1138,12 +1337,19 @@ msgid "" "design pattern `_ likely " "only matters when a large number of instances are going to be created." msgstr "" +"3. Ahorra memoria. En una compilación de 64 bits en Linux, una instancia con " +"dos atributos usa 48 bytes con ``__slots__`` y 152 bytes sin. Este `patrón " +"de diseño flyweight `_ probablemente sólo importa cuando una gran " +"cantidad de instancias será creada." #: ../Doc/howto/descriptor.rst:1377 msgid "" "4. Blocks tools like :func:`functools.cached_property` which require an " "instance dictionary to function correctly:" msgstr "" +"4. Bloquea a herramientas tales como :func:`functools.cached_property`, las " +"que requieren un diccionario de instancia para funcionar correctamente:" #: ../Doc/howto/descriptor.rst:1399 msgid "" @@ -1154,12 +1360,20 @@ msgid "" "``_slotvalues`` list. Reads and writes to that private structure are " "managed by member descriptors:" msgstr "" +"No es posible crear una versión exacta de ``__slots__`` en Python puro " +"porque requiere acceso directo a estructuras en C y control sobre asignación " +"de memoria de objetos. Sin embargo podemos construir una simulación casi " +"totalmente fiel donde la estructura real en C para las ranuras es emulada " +"con una lista privada ``_slotvalues``. Las lecturas y escrituras de esta " +"estructura privada se manejan con descriptores miembros:" #: ../Doc/howto/descriptor.rst:1442 msgid "" "The :meth:`type.__new__` method takes care of adding member objects to class " "variables:" msgstr "" +"El método :meth:`type.__new__` se hace cargo de añadir objetos miembros a " +"variables de clase:" #: ../Doc/howto/descriptor.rst:1458 msgid "" @@ -1167,27 +1381,35 @@ msgid "" "slots instead of an instance dictionary. Here is a rough simulation in pure " "Python:" msgstr "" +"El método :meth:`object.__new__` se hace cargo de crear instancias que " +"tienen ranuras en vez un diccionario de instancia. Acá hay una simulación " +"aproximada en Python puro:" #: ../Doc/howto/descriptor.rst:1493 msgid "" "To use the simulation in a real class, just inherit from :class:`Object` and " "set the :term:`metaclass` to :class:`Type`:" msgstr "" +"Para usar la simulación en una clase real, sólo hereda de :class:`Object` y " +"establece :term:`metaclass` a :class:`Type`:" #: ../Doc/howto/descriptor.rst:1507 msgid "" "At this point, the metaclass has loaded member objects for *x* and *y*::" msgstr "" +"En este punto, la metaclase ha cargado los objetos miembros para *x* e *y*::" #: ../Doc/howto/descriptor.rst:1528 msgid "" "When instances are created, they have a ``slot_values`` list where the " "attributes are stored:" msgstr "" +"Cuando se crean instancias, éstas tienen una lista ``slot_values`` donde se " +"almacenan los atributos:" #: ../Doc/howto/descriptor.rst:1540 msgid "Misspelled or unassigned attributes will raise an exception:" -msgstr "" +msgstr "Atributos mal deletreados o no asignados lazarán una excepción:" #~ msgid "" #~ "Defines descriptors, summarizes the protocol, and shows how descriptors " diff --git a/howto/functional.po b/howto/functional.po index 033eac2a3a..86e6cbb08c 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -867,7 +867,7 @@ msgid "" msgstr "" "Podría lograr el efecto de los generadores manualmente escribiendo su propia " "clase y guardando todas las variables locales del generador como variables " -"de instance. Por ejemplo, retornar una lista de enteros se podría hacer " +"de instancia. Por ejemplo, retornar una lista de enteros se podría hacer " "estableciendo ``self.count`` a 0, y teniendo el método :meth:`~iterator." "__next__` que incrementa ``self.count`` y lo retorna. Sin embargo, para un " "generador moderadamente complicado, escribir una clase correspondiente puede " @@ -1512,7 +1512,7 @@ msgstr "" ":func:`~itertools.groupby` asume que los contenidos del iterable subyacente " "ya se ordenó basado en la clave. Note que los iteradores retornados también " "usan el iterable subyacente, así que tiene que consumir los resultados de " -"iterator-1 antes de solicitar iterator-2 y su clave correspondiente." +"iterador-1 antes de solicitar iterador-2 y su clave correspondiente." #: ../Doc/howto/functional.rst:989 msgid "The functools module" diff --git a/howto/instrumentation.po b/howto/instrumentation.po index be4997d4ff..f99de7524a 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-09 13:37-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 17:42+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" @@ -342,7 +343,7 @@ msgid "" "the module name, ``arg1`` indicates if module was successfully loaded." msgstr "" "Se activa después de que la función *find_and_load* de :mod:`importlib` es " -"llamada. ``arg0`` es el nombre del módulo,``arg1`` indica si el módulo se " +"llamada. ``arg0`` es el nombre del módulo, ``arg1`` indica si el módulo se " "cargó correctamente." #: ../Doc/howto/instrumentation.rst:335 @@ -393,17 +394,16 @@ msgstr "" "Python. Solo se activa para funciones de Python puro (código de bytes)." #: ../Doc/howto/instrumentation.rst:383 -#, fuzzy msgid "" "This probe point is the converse of ``python.function.return``, and " "indicates that execution of a Python function has ended (either via " "``return``, or via an exception). It is only triggered for pure-Python " "(bytecode) functions." msgstr "" -"Este punto de sonda es el inverso de :c:func:`python.function.return` e " -"indica que la ejecución de una función de Python ha finalizado (ya sea " -"mediante ``return`` o mediante una excepción). Solo se activa para funciones " -"de Python puro (código de bytes)." +"Este punto de prueba es el inverso de ``python.function.return``, e indica " +"que la ejecución de una función de Python ha finalizado (ya sea mediante " +"``return`` o mediante una excepción). Solo se activa para funciones de " +"Python puro (código de bytes)." #: ../Doc/howto/instrumentation.rst:390 msgid "Examples" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 9ac36a807d..dfdab0087c 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,16 +11,16 @@ 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: 2020-11-27 01:14-0300\n" +"PO-Revision-Date: 2021-08-04 20:41+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Carlos A. Crespo \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/logging-cookbook.rst:5 msgid "Logging Cookbook" @@ -317,9 +317,7 @@ msgstr "" msgid "which, when run, will produce:" msgstr "que, cuando se ejecuta, producirá:" -# Está OK traducir "listener" por "oyente"?? #: ../Doc/howto/logging-cookbook.rst:394 -#, fuzzy msgid "" "Prior to Python 3.5, the :class:`QueueListener` always passed every message " "received from the queue to every handler it was initialized with. (This was " @@ -331,30 +329,28 @@ msgid "" "handler if it's appropriate to do so." msgstr "" "Antes de Python 3.5, :class:`QueueListener` siempre pasaba cada mensaje " -"recibido de la cola a cada gestor con el que se inicializaba. (Esto se debió " -"a que se asumió que el filtrado de nivel se realizó en el otro lado, donde " -"se llena la cola). A partir de 3.5, este comportamiento se puede cambiar " -"pasando un argumento de palabra clave ``respect_handler_level=True`` al " -"constructor del oyente . Cuando se hace esto, el oyente compara el nivel de " -"cada mensaje con el nivel del controlador, y solo pasa un mensaje a un " +"recibido de la cola a cada controlador con el que se inicializaba. (Esto se " +"debió a que se asumió que el filtrado de nivel se realizó en el otro lado, " +"donde se llena la cola). A partir de 3.5, este comportamiento se puede " +"cambiar pasando un argumento de palabra clave ``respect_handler_level=True`` " +"al constructor del oyente . Cuando se hace esto, el oyente compara el nivel " +"de cada mensaje con el nivel del controlador y solo pasa un mensaje a un " "controlador si es apropiado hacerlo." #: ../Doc/howto/logging-cookbook.rst:407 msgid "Sending and receiving logging events across a network" msgstr "Enviar y recibir eventos logging a través de una red" -# tengo dudas con "extremo final del envío" #: ../Doc/howto/logging-cookbook.rst:409 -#, fuzzy msgid "" "Let's say you want to send logging events across a network, and handle them " "at the receiving end. A simple way of doing this is attaching a :class:" "`SocketHandler` instance to the root logger at the sending end::" msgstr "" -"Supongamos que desea enviar eventos logging a través de una red y " -"gestionarlos en el extremo receptor. Una forma sencilla de hacer esto es " -"adjuntar una instancia de :class:`SocketHandler` al logger raíz en el " -"extremo final del envío::" +"Supongamos que desea enviar eventos de registro a través de una red y " +"manejarlos en el extremo receptor. Una forma sencilla de hacer esto es " +"adjuntar una instancia de :class:`SocketHandler` al registrador raíz en el " +"extremo de envío::" #: ../Doc/howto/logging-cookbook.rst:437 msgid "" @@ -445,7 +441,6 @@ msgstr "" "que puede usar los dos tipos de instancias indistintamente." #: ../Doc/howto/logging-cookbook.rst:574 -#, fuzzy msgid "" "When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" "`Logger` instance and a dict-like object which contains your contextual " @@ -455,13 +450,13 @@ msgid "" "contextual information in the delegated call. Here's a snippet from the code " "of :class:`LoggerAdapter`::" msgstr "" -"Cuando creas una instancia de :class:`LoggerAdapter`, le pasas una " -"instancia :class:`Logger` y un objeto tipo dict que contiene tu información " -"contextual. Cuando llamas a uno de los métodos logging en una instancia de :" -"class:`LoggerAdapter`, este último delega la llamada a la instancia " -"subyacente de :class:`Logger` pasada a su constructor, y se arregla para " -"pasar la información contextual en la llamada delegada . Aquí hay un " -"fragmento del código de :class:`LoggerAdapter`::" +"Cuando creas una instancia de :class:`LoggerAdapter`, le pasas una instancia " +"de :class:`Logger` y un objeto similar a un dict que contiene tu información " +"contextual. Cuando llamas a uno de los métodos de registro en una instancia " +"de :class:`LoggerAdapter`, delega la llamada a la instancia subyacente de :" +"class:`Logger` pasada a su constructor, y se arregla para pasar la " +"información contextual en la llamada delegada . Aquí hay un fragmento del " +"código de :class:`LoggerAdapter`::" #: ../Doc/howto/logging-cookbook.rst:590 msgid "" @@ -699,11 +694,9 @@ msgstr "" msgid "you should use" msgstr "debería usar" -# No sé cómo traducir "worker creation". #: ../Doc/howto/logging-cookbook.rst:968 -#, fuzzy msgid "and you can then replace the worker creation from this::" -msgstr "y entonces puedes reemplazar::" +msgstr "y luego puede reemplazar la creación del trabajador de esto::" #: ../Doc/howto/logging-cookbook.rst:979 msgid "to this (remembering to first import :mod:`concurrent.futures`)::" @@ -1048,7 +1041,6 @@ msgstr "" "gestor no reflejaría las intenciones del desarrollador de la biblioteca." #: ../Doc/howto/logging-cookbook.rst:1263 -#, fuzzy msgid "" "In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " "through a factory, which you can specify. The factory is just a callable you " @@ -1057,12 +1049,13 @@ msgid "" "signature as the :class:`~logging.LogRecord` constructor, as :class:" "`LogRecord` is the default setting for the factory." msgstr "" -"En Python 3.2 y posterior, la creación :class:`~logging.LogRecord` se " -"realiza a través de una fábrica, que puede especificar. La fábrica es solo " -"un invocable que puede configurar con :func:`~logging.setLogRecordFactory`, " -"e interrogar con :func:`~logging.getLogRecordFactory`. La fábrica se invoca " -"con la misma firma que el constructor :class:`~logging.LogRecord`, ya que :" -"class:`LogRecord` es la configuración predeterminada de la fábrica." +"En Python 3.2 y posteriores, la creación de :class:`~logging.LogRecord` se " +"realiza a través de una fábrica, que puede especificar. La fábrica es " +"simplemente un invocable que puede configurar con :func:`~logging." +"setLogRecordFactory`, e interrogar con :func:`~logging.getLogRecordFactory`. " +"La fábrica se invoca con la misma firma que el constructor :class:`~logging." +"LogRecord`, ya que :class:`LogRecord` es la configuración predeterminada de " +"la fábrica." #: ../Doc/howto/logging-cookbook.rst:1270 msgid "" @@ -1229,9 +1222,7 @@ msgstr "" "bastante simples, pero sirven para ilustrar cómo se podrían implementar las " "más complejas en un escenario real de multiprocesamiento." -# En algunas lineas anteriores me pasa lo mismo. No sé muy bien qué significa y cómo traducir "listener process" y "worker processes". Separé en varias oraciones para que sea más fluida la lectura. #: ../Doc/howto/logging-cookbook.rst:1465 -#, fuzzy msgid "" "In the example, the main process spawns a listener process and some worker " "processes. Each of the main process, the listener and the workers have three " @@ -1245,14 +1236,14 @@ msgid "" msgstr "" "En el ejemplo, el proceso principal genera un proceso de escucha y algunos " "procesos de trabajo. Cada uno de los procesos principales, el oyente y los " -"de trabajo tienen tres configuraciones separadas (todos los de trabajo " -"comparten la misma configuración). Podemos ver el logging en el proceso " -"principal, cómo los de trabajo inician sesión en un QueueHandler y cómo el " -"oyente implementa un QueueListener. Este último con una configuración de " -"logging más compleja, organiza el envío de eventos recibidos a través de la " -"cola a los gestores especificados en la configuración. Tenga en cuenta que " -"estas configuraciones son puramente ilustrativas, pero usted debe ser capaz " -"de adaptar este ejemplo a su propio escenario." +"trabajadores tienen tres configuraciones separadas (todos los trabajadores " +"comparten la misma configuración). Podemos ver el registro en el proceso " +"principal, cómo los trabajadores se registran en un QueueHandler y cómo el " +"oyente implementa un QueueListener y una configuración de registro más " +"compleja, y organiza el envío de eventos recibidos a través de la cola a los " +"controladores especificados en la configuración. Tenga en cuenta que estas " +"configuraciones son puramente ilustrativas, pero debería poder adaptar este " +"ejemplo a su propio escenario." #: ../Doc/howto/logging-cookbook.rst:1475 msgid "" @@ -1266,6 +1257,7 @@ msgstr "" msgid "Inserting a BOM into messages sent to a SysLogHandler" msgstr "Insertar BOM en mensajes enviados a SysLogHandler" +# se hizo un cambio para que no ocurriera el error de :rfc:`...` que no comienza por número. #: ../Doc/howto/logging-cookbook.rst:1689 msgid "" ":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " @@ -1276,9 +1268,9 @@ msgid "" msgstr "" ":rfc:`5424` requiere que se envíe un mensaje Unicode a un demonio syslog " "como un conjunto de bytes que tienen la siguiente estructura: un componente " -"opcional puro-ASCII, seguido de una Marca de Orden de Bytes UTF-8 (*BOM* por " -"sus siglas en inglés), seguida de codificado en Unicode usando UTF-8. (See " -"the :rfc:`relevant section of the specification <5424#section-6>`.)" +"opcional ASCII puro, seguido de una marca de orden de bytes UTF-8 (BOM), " +"seguida de Codificado en Unicode usando UTF-8. (Ver sección relevante de la " +"especificación :rfc:`5424#section-6`.)" #: ../Doc/howto/logging-cookbook.rst:1695 msgid "" @@ -1363,9 +1355,7 @@ msgstr "" msgid "Implementing structured logging" msgstr "Implementar logging estructurado" -# Me quedan dudas con la frase final: "analizable por computadora" #: ../Doc/howto/logging-cookbook.rst:1733 -#, fuzzy msgid "" "Although most logging messages are intended for reading by humans, and thus " "not readily machine-parseable, there might be circumstances where you want " @@ -1376,14 +1366,14 @@ msgid "" "following is a simple approach which uses JSON to serialise the event in a " "machine-parseable manner::" msgstr "" -"Aunque la mayoría de los mensajes de logging están destinados a ser leídos " +"Aunque la mayoría de los mensajes de registro están destinados a ser leídos " "por humanos y, por lo tanto, no se pueden analizar fácilmente mediante una " "máquina, puede haber circunstancias en las que desee generar mensajes en un " "formato estructurado que *sea* capaz de ser analizado por un programa (sin " "necesidad de expresiones regulares complejas para analizar el mensaje de " -"log). Esto es sencillo de lograr utilizando el paquete logging. Hay varias " -"formas de lograr esto, pero el siguiente es un enfoque simple que usa JSON " -"para serializar el evento de una manera analizable por computadora:" +"registro). Esto es sencillo de lograr utilizando el paquete de registro. Hay " +"varias formas de lograr esto, pero el siguiente es un enfoque simple que usa " +"JSON para serializar el evento de una manera analizable por máquina:" #: ../Doc/howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" @@ -1500,7 +1490,7 @@ msgid "" "types of file change - e.g. setting specific POSIX permission bits - in the " "same way, using :func:`os.chmod`." msgstr "" -"Por furtuna, este ejemplo también indica el camino hacia cómo podría " +"Por fortuna, este ejemplo también indica el camino hacia cómo podría " "implementar otros tipos de cambio de archivo, por ejemplo, configurando de " "la misma manera bits de permisos POSIX específicos, usando :func:`os.chmod`." diff --git a/howto/logging.po b/howto/logging.po index dea17495f3..cde3afce6c 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-29 17:19-0700\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-12 20:29+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_US\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/logging.rst:3 msgid "Logging HOWTO" @@ -304,6 +305,12 @@ msgid "" "passed, which determines how encoding errors are handled. For available " "values and the default, see the documentation for :func:`open`." msgstr "" +"Se agregó el argumento *encoding*. En versiones anteriores de Python, o si " +"no se especifica, la codificación utilizada es el valor predeterminado " +"utilizado por :func:`open`. Aunque no se muestra en el ejemplo anterior, " +"ahora también se puede pasar un argumento *errors*, que determina cómo se " +"manejan los errores de codificación. Para conocer los valores disponibles y " +"los predeterminados, consulte la documentación de :func:`open`." #: ../Doc/howto/logging.rst:144 msgid "" @@ -442,13 +449,13 @@ msgid "" "options *are* supported, but exploring them is outside the scope of this " "tutorial: see :ref:`formatting-styles` for more information." msgstr "" -"Como puedes ver, la fusión de datos de variables en el mensaje de " -"descripción de eventos utiliza el viejo estilo % de formato de cadena de " -"caracteres. Esto es para compatibilidad retrospectiva : el paquete de " -"registro precede las nuevas opciones de formato como :meth:`str.format` y :" -"class:`string.Template`. Estas nuevas opciones de formato *son* compatibles, " -"pero explorarlas está fuera del alcance de este tutorial: ver :ref:" -"`formatting-styles` para más información." +"Como puede ver, la fusión de datos variables en el mensaje de descripción " +"del evento utiliza el antiguo estilo % de formato de cadena. Esto es por " +"compatibilidad con versiones anteriores: el paquete de registro es anterior " +"a opciones de formato más nuevas, como :meth:`str.format` y :class:`string." +"Template`. Estas nuevas opciones de formato *son* compatibles, pero " +"explorarlas está fuera del alcance de este tutorial: consulte :ref:" +"`formatting-styles` para obtener más información." #: ../Doc/howto/logging.rst:265 msgid "Changing the format of displayed messages" @@ -626,8 +633,8 @@ msgstr "" "`Logger` (de aquí en adelante llamada :dfn:`loggers`). Cada instancia tiene " "un nombre, y se organizan conceptualmente en una jerarquía de espacios de " "nombres utilizando puntos (puntos) como separadores. Por ejemplo, un " -"registrador llamado \"scan\" es el padre de los registradores \"scan.text\", " -"\"scan.html\" y \"scan.pdf\". Los nombres de los registradores pueden ser " +"registrador llamado 'scan' es el padre de los registradores 'scan.text', " +"'scan.html' y 'scan.pdf'. Los nombres de los registradores pueden ser " "cualquier cosa que se desee, e indican el área de una aplicación en la que " "se origina un mensaje registrado." @@ -1777,7 +1784,7 @@ msgid "" "class:`Formatter` class. They are initialized with a format string suitable " "for use with the % operator and a dictionary." msgstr "" -"Los mensajes registrados son formateados para su presentación a través de " +"Los mensajes registrados se formatean para su presentación a través de " "instancias de la clase :class:`Formatter`. Se inicializan con una cadena de " "formato adecuada para su uso con el operador % y un diccionario." @@ -1791,7 +1798,7 @@ msgstr "" "Para dar formato a varios mensajes en un lote, se pueden utilizar instancias " "de :class:`~handlers.BufferingFormatter`. Además de la cadena de formato " "(que se aplica a cada mensaje del lote), hay una provisión para cadenas de " -"formato de cabecera y de trailer." +"formato de cabecera y de tráiler." #: ../Doc/howto/logging.rst:995 msgid "" @@ -1976,16 +1983,14 @@ msgid "Information about where calls were made from." msgstr "Información sobre dónde se hicieron las llamadas." #: ../Doc/howto/logging.rst:1084 -#, fuzzy msgid "" "Set ``logging._srcfile`` to ``None``. This avoids calling :func:`sys." "_getframe`, which may help to speed up your code in environments like PyPy " "(which can't speed up code that uses :func:`sys._getframe`)." msgstr "" -"Ponga ``logging._srcfile`` a ``None``. Esto evita llamar a :func:`sys." -"_getframe`, lo que puede ayudar a acelerar tu código en entornos como PyPy " -"(cual no puede acelerar el código que usa :func:`sys._getframe`), siempre y " -"cuando PyPy soporte Python 3.x." +"Establezca ``logging._srcfile`` en ``None``. Esto evita llamar a :func:`sys." +"_getframe`, que puede ayudar a acelerar su código en entornos como PyPy (que " +"no puede acelerar el código que usa :func:`sys._getframe`)." #: ../Doc/howto/logging.rst:1091 msgid "Threading information." diff --git a/howto/pyporting.po b/howto/pyporting.po index aef95498af..157724d6d8 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-12-27 11:58+0100\n" -"Last-Translator: Juan Biondi \n" +"PO-Revision-Date: 2021-08-12 20:30+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" @@ -62,9 +63,9 @@ msgid "" "came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett " "Cannon's `Why Python 3 exists`_." msgstr "" -"Si desea leer la versión de un desarrollador de Python fundamental sobre por " -"qué Python 3 surgió, puede leer `Python 3 Q & A`_ de Nick Coghlan o `Why " -"Python 3 exists`_ de Brett Cannon" +"Si desea leer la opinión de un desarrollador central de Python sobre por qué " +"Python 3 nació, puede leer las `Python 3 Q & A`_ de Nick Coghlan o el " +"artículo de Brett Cannon `Why Python 3 exists`_." #: ../Doc/howto/pyporting.rst:23 msgid "" @@ -91,68 +92,62 @@ msgid "Only worry about supporting Python 2.7" msgstr "Sólo preocúpate por admitir Python 2.7" #: ../Doc/howto/pyporting.rst:33 -#, fuzzy msgid "" "Make sure you have good test coverage (coverage.py_ can help; ``python -m " "pip install coverage``)" msgstr "" -"Asegúrese de tener una buena cobertura de prueba (coverage.py_ puede ayudar; " -"``pip install coverage``)" +"Asegúrese de tener una buena cobertura de prueba (coberturas.py_ puede " +"ayudar; ``python -m pip install coverage``)" #: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:122 msgid "Learn the differences between Python 2 & 3" msgstr "Aprende las diferencias entre Python 2 & 3" #: ../Doc/howto/pyporting.rst:36 -#, fuzzy msgid "" "Use Futurize_ (or Modernize_) to update your code (e.g. ``python -m pip " "install future``)" msgstr "" -"Utilice Futurize_ (o Modernize_) para actualizar el código (por ejemplo, " -"``pip install future``)" +"Utilice Futurize_ (o Modernize_) para actualizar su código (por ejemplo, " +"``python -m pip install future``)" #: ../Doc/howto/pyporting.rst:37 -#, fuzzy msgid "" "Use Pylint_ to help make sure you don't regress on your Python 3 support " "(``python -m pip install pylint``)" msgstr "" -"Utilice Pylint_ para asegurarse de que no retrocede en la compatibilidad con " -"Python 3 (``pip install pylint``)" +"Use Pylint_ para asegurarse de que no retrocede en su compatibilidad con " +"Python 3 (``python -m pip install pylint``)" #: ../Doc/howto/pyporting.rst:39 -#, fuzzy msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``python -m pip install caniusepython3``)" msgstr "" -"Utilice caniusepython3_ para averiguar cuáles de sus dependencias están " -"bloqueando el uso de Python 3 (``pip install caniusepython3``)" +"Use caniusepython3_ para averiguar cuáles de sus dependencias están " +"bloqueando el uso de Python 3 (``python -m pip install caniusepython3``)" #: ../Doc/howto/pyporting.rst:41 -#, fuzzy msgid "" "Once your dependencies are no longer blocking you, use continuous " "integration to make sure you stay compatible with Python 2 & 3 (tox_ can " "help test against multiple versions of Python; ``python -m pip install tox``)" msgstr "" -"Una vez que sus dependencias ya no le estén bloqueando, utilice la " -"integración continua para asegurarse de que sigue siendo compatible con " -"Python 2 & 3 (tox_ puede ayudar a probar con varias versiones de Python; " -"``pip install tox``)" +"Una vez que sus dependencias ya no lo bloqueen, use la integración continua " +"para asegurarse de que sigue siendo compatible con Python 2 y 3 (tox_ puede " +"ayudar a probar contra múltiples versiones de Python; ``python -m pip " +"install tox``)" #: ../Doc/howto/pyporting.rst:44 -#, fuzzy msgid "" "Consider using optional static type checking to make sure your type usage " "works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " "Python 2 & Python 3; ``python -m pip install mypy``)." msgstr "" -"Considere la posibilidad de usar la comprobación de tipos estáticos opcional " -"para asegurarse de que el uso de tipos funciona tanto en Python 2 como 3 " -"(por ejemplo, utilice mypy_ para comprobar la escritura en Python 2 y Python " -"3)." +"Considere usar la verificación de tipo estática opcional para asegurarse de " +"que su uso de tipo funcione tanto en Python 2 como en 3 (por ejemplo, use " +"mypy_ para verificar su escritura en Python 2 y Python 3; ``python -m pip " +"install mypy``)." #: ../Doc/howto/pyporting.rst:50 msgid "" @@ -160,6 +155,10 @@ msgid "" "is the one installed for the Python currently in use, whether it be a system-" "wide ``pip`` or one installed within a :ref:`virtual environment `." msgstr "" +"Nota: El uso de ``python -m pip install`` garantiza que el ``pip`` que " +"invoca es el que está instalado para el Python actualmente en uso, ya sea un " +"``pip`` de todo el sistema o uno instalado dentro de un :ref:`entorno " +"virtual `." #: ../Doc/howto/pyporting.rst:56 msgid "Details" @@ -208,7 +207,6 @@ msgid "Drop support for Python 2.6 and older" msgstr "Compatibilidad con Python 2.6 y versiones anteriores" #: ../Doc/howto/pyporting.rst:77 -#, fuzzy msgid "" "While you can make Python 2.5 work with Python 3, it is **much** easier if " "you only have to work with Python 2.7. If dropping Python 2.5 is not an " @@ -216,12 +214,12 @@ msgid "" "simultaneously (``python -m pip install six``). Do realize, though, that " "nearly all the projects listed in this HOWTO will not be available to you." msgstr "" -"Aunque puede hacer que Python 2.5 funcione con Python 3, es **mucho** más " -"fácil si solo tiene que trabajar con Python 2.7. Si soltar Python 2.5 no es " -"una opción, el proyecto de six_ puede ayudarlo a admitir Python 2.5 & 3 " -"simultáneamente (``pip install six``). Sin embargo, tenga en cuenta que casi " -"todos los proyectos enumerados en este HOWTO no estarán disponibles para " -"usted." +"Si bien puede hacer que Python 2.5 funcione con Python 3, es **mucho** más " +"fácil si solo tiene que trabajar con Python 2.7. Si eliminar Python 2.5 no " +"es una opción, entonces el proyecto six_ puede ayudarlo a admitir Python 2.5 " +"y 3 simultáneamente (``python -m pip install six``). Sin embargo, tenga en " +"cuenta que casi todos los proyectos enumerados en este COMO no estarán " +"disponibles para usted." #: ../Doc/howto/pyporting.rst:83 msgid "" @@ -295,15 +293,15 @@ msgid "" "get better than 90% coverage). If you don't already have a tool to measure " "test coverage then coverage.py_ is recommended." msgstr "" -"Una vez que tenga el código que admita la versión más antigua de Python 2 " -"que desee, querrá asegurarse de que su conjunto de pruebas tenga una buena " -"cobertura. Una buena regla general es que si desea tener la confianza " -"suficiente en el conjunto de pruebas que los errores que aparecen después de " -"tener herramientas reescriben el código son errores reales en las " -"herramientas y no en el código. Si desea que un número para apuntar, trate " -"de obtener más del 80% de cobertura (y no se sienta mal si le resulta " +"Una vez que tenga su código compatible con la versión más antigua de Python " +"2 que desee, querrá asegurarse de que su conjunto de pruebas tenga una buena " +"cobertura. Una buena regla general es que si desea tener la suficiente " +"confianza en su conjunto de pruebas, cualquier falla que aparezca después de " +"que las herramientas reescriban su código son errores reales en las " +"herramientas y no en su código. Si desea un número al que apuntar, intente " +"obtener una cobertura superior al 80% (y no se sienta mal si le resulta " "difícil obtener una cobertura superior al 90%). Si aún no tiene una " -"herramienta para medir la cobertura de la prueba, se recomienda coverage.py_." +"herramienta para medir la cobertura de la prueba, se recomienda cover.py_." #: ../Doc/howto/pyporting.rst:124 msgid "" diff --git a/howto/regex.po b/howto/regex.po index 942851ac1a..fbd7bb30de 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -11,16 +11,16 @@ 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: 2020-10-28 22:57+0100\n" +"PO-Revision-Date: 2021-08-04 17:34+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 3.0\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/howto/regex.rst:5 @@ -652,7 +652,6 @@ msgid "Compiling Regular Expressions" msgstr "Compilando Expresiones regulares" #: ../Doc/howto/regex.rst:267 -#, fuzzy msgid "" "Regular expressions are compiled into pattern objects, which have methods " "for various operations such as searching for pattern matches or performing " @@ -2640,9 +2639,8 @@ msgid "This is far more readable than::" msgstr "Esto es mas legible que::" #: ../Doc/howto/regex.rst:1380 -#, fuzzy msgid "Feedback" -msgstr "Sus comentarios" +msgstr "Feedback" #: ../Doc/howto/regex.rst:1382 msgid "" diff --git a/howto/sockets.po b/howto/sockets.po index 252f0bb634..dc87bb90a8 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-06 09:28-0400\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 20:37+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/sockets.rst:5 msgid "Socket Programming HOWTO" @@ -519,7 +520,7 @@ msgstr "" "antes de cerrarlo con ``close``. ``shutdown`` es un aviso para el socket en " "el otro lado. Dependiendo del argumento que se le pase, puede significar " "\"No voy a mandar más datos, pero voy a escuchar\" o \"No estoy escuchando, " -"adios!\". La mayoría de bibliotecas para sockets, sin embargo, están tan " +"adiós!\". La mayoría de bibliotecas para sockets, sin embargo, están tan " "acostumbradas a que los programadores ignoren esta parte de la etiqueta que " "normalmente ``close`` es lo mismo que ``shutdown(); close()``. Por tanto en " "la mayoría de las situaciones usar ``shutdown`` de manera explícita no es " @@ -607,7 +608,6 @@ msgstr "" "tu aplicación estará casi correcta." #: ../Doc/howto/sockets.rst:320 -#, fuzzy msgid "" "In Python, you use ``socket.setblocking(False)`` to make it non-blocking. In " "C, it's more complex, (for one thing, you'll need to choose between the BSD " @@ -616,13 +616,12 @@ msgid "" "the exact same idea. You do this after creating the socket, but before using " "it. (Actually, if you're nuts, you can switch back and forth.)" msgstr "" -"En python se usa ``socket.setblocking(0)`` para hacer un socket no " -"bloqueante. En C es un poco más complejo (por una parte, tendrás que decidir " -"entre la manera BSD de usar ``O_NONBLOCK`` y la manera casi indistinguible " -"de Posix de ``O_NDELAY``, que es completamente diferente de " -"``TCP_NODELAY``), pero es exactamente la misma idea. Esto se hace después de " -"crear el socket pero antes de usarlo (Realmente, si estás loco, puedes " -"cambiar de una manera a la otra)." +"En Python, usa ``socket.setblocking(False)`` para que no sea bloqueante. En " +"C, es más complejo (por un lado, deberá elegir entre el sabor BSD " +"``O_NONBLOCK`` y el sabor POSIX casi indistinguible ``O_NDELAY``, que es " +"completamente diferente de ``TCP_NODELAY``) , pero es exactamente la misma " +"idea. Haz esto después de crear el socket, pero antes de usarlo. (En " +"realidad, si estás loco, puedes cambiar de un lado a otro)." #: ../Doc/howto/sockets.rst:327 msgid "" @@ -680,7 +679,7 @@ msgid "" "(possibly empty) of the corresponding list you passed in." msgstr "" "En el retorno tendrás tres listas. Estas contienen los sockets que son " -"realmente leíbles, escribibles y con error. Cada una de estas lista es un " +"realmente legibles, escribibles y con error. Cada una de estas lista es un " "subconjunto (posiblemente vacío) de la lista correspondiente que pasaste." #: ../Doc/howto/sockets.rst:359 @@ -692,9 +691,9 @@ msgid "" "nothing. (Actually, any reasonably healthy socket will return as writable - " "it just means outbound network buffer space is available.)" msgstr "" -"Si un socket está en la lista retornada de los leíbles, puedes estar tan-" -"seguro-como-podrías-estarlo-en-este-negocio que una llamada a ``recv`` en " -"este socket va a retornar *algo*. La misma idea se aplica a la lista de " +"Si un socket está en la lista retornada legible, puedes estar tan-seguro-" +"como-podrías-estarlo-en-este-negocio que una llamada a ``recv`` en este " +"socket va a retornar *algo*. La misma idea se aplica a la lista de " "escribibles. Serás capaz de mandar *algo*. Tal vez no todo lo que quieras, " "pero *algo* es mejor que nada. (Realmente, cualquier socket socket " "razonablemente saludable va a retornar como escribible - eso solo significa " @@ -708,8 +707,8 @@ msgid "" "it in the potential_writers list. If it shows up in the writable list, you " "have a decent chance that it has connected." msgstr "" -"Si tienes un socket *servidor*, ponlo en la lista de *potenciales leíbles*. " -"Se retorna en la lista de leíbles, una llamada a ``accept`` va a funcionar " +"Si tienes un socket *servidor*, ponlo en la lista de *potenciales legibles*. " +"Se retorna en la lista de legibles, una llamada a ``accept`` va a funcionar " "(casi seguro). Se has creado un nuevo socket para llamar a ``connect`` para " "conectarte con otro, ponlo en la lista de *potenciales escribibles*. Si " "retorna en la lista de escribibles, tienes una buena oportunidad de que esté " diff --git a/howto/sorting.po b/howto/sorting.po index 99df1af074..e53e497ede 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 20:29-0300\n" -"Last-Translator: Carlos A. Crespo \n" +"PO-Revision-Date: 2021-08-04 17:32+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/sorting.rst:4 msgid "Sorting HOW TO" @@ -96,15 +97,14 @@ msgid "Key Functions" msgstr "Funciones clave" #: ../Doc/howto/sorting.rst:45 -#, fuzzy msgid "" "Both :meth:`list.sort` and :func:`sorted` have a *key* parameter to specify " "a function (or other callable) to be called on each list element prior to " "making comparisons." msgstr "" -"Ambos :meth:`list.sort` y :func:`sorted` tienen un parámetro *clave* para " -"especificar una función que se llamará en cada elemento de la lista antes de " -"hacer comparaciones." +"Ambos :meth:`list.sort` y :func:`sorted` tienen un parámetro *key* para " +"especificar una función (u otra invocable) que se llamará en cada elemento " +"de la lista antes de hacer comparaciones." #: ../Doc/howto/sorting.rst:49 msgid "For example, here's a case-insensitive string comparison:" @@ -113,17 +113,16 @@ msgstr "" "mayúsculas y minúsculas:" #: ../Doc/howto/sorting.rst:54 -#, fuzzy msgid "" "The value of the *key* parameter should be a function (or other callable) " "that takes a single argument and returns a key to use for sorting purposes. " "This technique is fast because the key function is called exactly once for " "each input record." msgstr "" -"El valor del parámetro *key* debe ser una función que tome un solo argumento " -"y retorne una clave para usar con fines de clasificación. Esta técnica es " -"rápida porque la función *key* se llama exactamente una vez para cada " -"registro de entrada." +"El valor del parámetro *key* debe ser una función (u otra invocable) que " +"tome un solo argumento y devuelva una clave para usar con fines de " +"clasificación. Esta técnica es rápida porque la función de la tecla se llama " +"exactamente una vez para cada registro de entrada." #: ../Doc/howto/sorting.rst:59 msgid "" @@ -346,10 +345,7 @@ msgstr "" "esto, todas las versiones de Py2.x admiten el parámetro *cmp* para manejar " "la función de comparación especificada por el usuario." -# "rich comparisons" -> comparaciones enriquecidas? o es un concepto -# específico? #: ../Doc/howto/sorting.rst:214 -#, fuzzy msgid "" "In Py3.0, the *cmp* parameter was removed entirely (as part of a larger " "effort to simplify and unify the language, eliminating the conflict between " @@ -426,15 +422,15 @@ msgstr "" "incorporada :func:`reversed` dos veces:" #: ../Doc/howto/sorting.rst:290 -#, fuzzy msgid "" "The sort routines are guaranteed to use :meth:`__lt__` when making " "comparisons between two objects. So, it is easy to add a standard sort order " "to a class by defining an :meth:`__lt__` method::" msgstr "" -"Se garantiza el uso de las rutinas de clasificación :meth:`__lt__` al hacer " -"comparaciones entre dos objetos. Por lo tanto, es fácil agregar un orden de " -"clasificación estándar a una clase definiendo un método :meth:`__lt__` ::" +"Las rutinas de ordenación están garantizadas para usar :meth:`__lt__` al " +"hacer comparaciones entre dos objetos. Por lo tanto, es fácil agregar un " +"orden de clasificación estándar a una clase definiendo un método :meth:" +"`__lt__` ::" #: ../Doc/howto/sorting.rst:298 msgid "" diff --git a/howto/unicode.po b/howto/unicode.po index 3423a6e263..cc0e96ee58 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -11,16 +11,17 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-19 19:57-0300\n" -"Last-Translator: Laureano Silva \n" +"PO-Revision-Date: 2021-08-04 20:36+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es (https://mail.python.org/mailman3/lists/docs-es." "python.org)\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/unicode.rst:5 msgid "Unicode HOWTO" @@ -102,7 +103,6 @@ msgstr "" "igual, pero son dos caracteres diferentes que tienen distintos significados." #: ../Doc/howto/unicode.rst:42 -#, fuzzy msgid "" "The Unicode standard describes how characters are represented by **code " "points**. A code point value is an integer in the range 0 to 0x10FFFF " @@ -111,24 +111,23 @@ msgid "" "this document, a code point is written using the notation ``U+265E`` to mean " "the character with value ``0x265e`` (9,822 in decimal)." msgstr "" -"El estándar Unicode describe como son representados los caracteres por " -"**códigos de posición**. Un código de posición es un entero en el rango 0 a " -"0x10FFFF (cerca de 1.1 millón de valores, con unos 110 mil asignados hasta " -"ahora). En el estándar y en este documento, un código de posición es escrito " -"usando la notación ``U+265E`` para referirse al carácter con el valor " -"``0x265e`` (9822 en decimal)." +"El estándar Unicode describe cómo se representan los caracteres mediante " +"**puntos de código**. Un valor de punto de código es un número entero en el " +"rango de 0 a 0x10FFFF (aproximadamente 1.1 millones de valores, el `número " +"real asignado `_ es menor " +"que eso). En el estándar y en este documento, un punto de código se escribe " +"usando la notación ``U+265E`` para significar el carácter con valor " +"``0x265e`` (9,822 en decimal)." #: ../Doc/howto/unicode.rst:50 -#, fuzzy msgid "" "The Unicode standard contains a lot of tables listing characters and their " "corresponding code points:" msgstr "" -"El estándar Unicode contiene muchas tablas con caracteres y sus " -"correspondientes códigos de posición:" +"El estándar Unicode contiene muchas tablas que enumeran caracteres y sus " +"puntos de código correspondientes:" #: ../Doc/howto/unicode.rst:71 -#, fuzzy msgid "" "Strictly, these definitions imply that it's meaningless to say 'this is " "character ``U+265E``'. ``U+265E`` is a code point, which represents some " @@ -137,10 +136,10 @@ msgid "" "and characters will sometimes be forgotten." msgstr "" "Estrictamente, estas definiciones implican que no tiene sentido decir 'este " -"carácter es ``U+265E``'. ``U+265E`` es un código de posición, que representa " -"algún carácter particular; en este caso, representa el carácter 'CABALLO " -"NEGRO DE AJEDREZ', '♞'. En contextos informales esta distinción entre puntos " -"de código y caracteres a veces se olvidará." +"es el carácter ``U+265E``. ``U+265E`` es un punto de código, que representa " +"algún carácter en particular; en este caso, representa el carácter " +"'CABALLERO AJEDREZ NEGRO', '♞'. En contextos informales, esta distinción " +"entre puntos de código y caracteres a veces se olvidará." #: ../Doc/howto/unicode.rst:78 msgid "" @@ -155,12 +154,11 @@ msgstr "" "elementos gráficos llamado **glifo**. El glifo para una A mayúscula, por " "ejemplo, es dos trazos diagonales y uno horizontal, aunque los detalles " "exactos van a depender de la fuente utilizada. La mayoría del código de " -"Python no necesita preocuparse por los glifos*; averiguar el glifo correcto " +"Python no necesita preocuparse por los glifos; averiguar el glifo correcto " "para mostrar es generalmente el trabajo de un kit de herramientas GUI o el " "renderizador de fuentes de una terminal." #: ../Doc/howto/unicode.rst:87 -#, fuzzy msgid "Encodings" msgstr "Codificaciones" @@ -274,12 +272,10 @@ msgid "UTF-8 has several convenient properties:" msgstr "UTF-8 tiene varias propiedades convenientes:" #: ../Doc/howto/unicode.rst:138 -#, fuzzy msgid "It can handle any Unicode code point." -msgstr "Puede manejar cualquier código de posición Unicode." +msgstr "Puede manejar cualquier punto de código Unicode." #: ../Doc/howto/unicode.rst:139 -#, fuzzy msgid "" "A Unicode string is turned into a sequence of bytes that contains embedded " "zero bytes only where they represent the null character (U+0000). This means " @@ -287,11 +283,11 @@ msgid "" "sent through protocols that can't handle zero bytes for anything other than " "end-of-string markers." msgstr "" -"Una cadena Unicode es transformada en una secuencia de bytes que no contiene " -"bytes cero incrustados. Esto previene problemas de ordenamiento de bytes, y " +"Una cadena Unicode se convierte en una secuencia de bytes que contiene cero " +"bytes incrustados solo donde representan el carácter nulo (U+0000). Esto " "significa que las cadenas UTF-8 pueden ser procesadas por funciones C como " -"``strcpy()`` y enviado a través de protocolos que no pueden manejar bytes " -"cero." +"``strcpy()`` y enviadas a través de protocolos que no pueden manejar cero " +"bytes para nada más que marcadores de fin de cadena de caracteres." #: ../Doc/howto/unicode.rst:144 msgid "A string of ASCII text is also valid UTF-8 text." @@ -336,7 +332,6 @@ msgid "References" msgstr "Referencias" #: ../Doc/howto/unicode.rst:160 -#, fuzzy msgid "" "The `Unicode Consortium site `_ has character " "charts, a glossary, and PDF versions of the Unicode specification. Be " @@ -344,10 +339,10 @@ msgid "" "history/>`_ of the origin and development of Unicode is also available on " "the site." msgstr "" -"El `Unicode Consortium site `_ tiene mapas de " -"caracteres, un glosario, y versiones PDF de la especificación Unicode. Esté " -"preparado para alguna dificultad en la lectura. `Una cronología `_ del origen y desarrollo de Unicode se encuentra " +"El `sitio del Consorcio Unicode `_ tiene gráficos " +"de caracteres, un glosario y versiones en PDF de la especificación Unicode. " +"Esté preparado para una lectura difícil. `Una cronología `_ del origen y desarrollo de Unicode también está " "disponible en el sitio." #: ../Doc/howto/unicode.rst:165 @@ -412,25 +407,25 @@ msgid "The String Type" msgstr "El tipo cadena" #: ../Doc/howto/unicode.rst:192 -#, fuzzy msgid "" "Since Python 3.0, the language's :class:`str` type contains Unicode " "characters, meaning any string created using ``\"unicode rocks!\"``, " "``'unicode rocks!'``, or the triple-quoted string syntax is stored as " "Unicode." msgstr "" -"Desde Python 3.0, el tipo :class:`str` contiene caracteres Unicode, es decir " -"que cualquier cadena creada con ``\"unicode rocks!\"``, ``'unicode " -"rocks!'``, o la sintaxis de triple comillas es almacenada como Unicode." +"Desde Python 3.0, el tipo :class:`str` del lenguaje contiene caracteres " +"Unicode, lo que significa que cualquier cadena creada usando ``\"unicode " +"rocks!\"``, ``'unicode rocks!'``, o la sintaxis de cadena entre comillas " +"triples es almacenado como Unicode." #: ../Doc/howto/unicode.rst:196 -#, fuzzy msgid "" "The default encoding for Python source code is UTF-8, so you can simply " "include a Unicode character in a string literal::" msgstr "" -"La codificación por defecto para código fuente Python es UTF-8, entonces " -"puedes incluir un carácter unicode simplemente en una cadena literal::" +"La codificación predeterminada para el código fuente de Python es UTF-8, por " +"lo que simplemente puede incluir un carácter Unicode en un literal de cadena " +"de caracteres::" #: ../Doc/howto/unicode.rst:206 msgid "" @@ -440,17 +435,16 @@ msgstr "" "identificadores::" #: ../Doc/howto/unicode.rst:212 -#, fuzzy msgid "" "If you can't enter a particular character in your editor or want to keep the " "source code ASCII-only for some reason, you can also use escape sequences in " "string literals. (Depending on your system, you may see the actual capital-" "delta glyph instead of a \\u escape.) ::" msgstr "" -"Si no puedes ingresar un carácter particular en tu editor o quieres mantener " -"el código fuente ASCII solo por alguna razón, puedes también usar secuencias " -"escapadas en cadenas literales. (Dependiendo de tu sistema, puedes ver el " -"glifo delta mayúscula en lugar de \\u.) ::" +"Si no puede ingresar un carácter en particular en su editor o desea mantener " +"el código fuente solo ASCII por alguna razón, también puede usar secuencias " +"de escape en cadenas de caracteres literales. (Dependiendo de su sistema, es " +"posible que vea el glifo delta de mayúsculas en lugar de un escape \\u)::" #: ../Doc/howto/unicode.rst:224 msgid "" @@ -670,7 +664,6 @@ msgid "When run, this prints:" msgstr "Cuando se ejecuta, este imprime:" #: ../Doc/howto/unicode.rst:391 -#, fuzzy msgid "" "The category codes are abbreviations describing the nature of the character. " "These are grouped into categories such as \"Letter\", \"Number\", " @@ -683,14 +676,14 @@ msgid "" "codes." msgstr "" "Los códigos de categoría son abreviaturas que describen la naturaleza del " -"carácter. Estos se agrupan en categorías como \"Letra\", \"Número\", " +"personaje. Estos se agrupan en categorías como \"Letra\", \"Número\", " "\"Puntuación\" o \"Símbolo\", que a su vez se dividen en subcategorías. Para " "tomar los códigos de la salida anterior, ``'Ll'`` significa 'Letra, " -"minúscula', ``'No'`` significa \"Número, otro\", ``'Mn'`` es \"Marca, sin " -"espaciado\" , y ``'So'`` es \"Símbolo, otro\". Consulte la sección `the " -"General Category Values section of the Unicode Character Database " -"documentation `_ para obtener una lista de códigos de categoría." +"minúscula ', ``'No'`` significa \"Número, otro\", ``'Mn'`` es \"Marca, sin " +"espacios\" , y ``'So'`` es \"Símbolo, otro\". Consulte `la sección Valores " +"de categoría generales de la documentación de la base de datos de caracteres " +"Unicode `_ " +"para obtener una lista de códigos de categoría." #: ../Doc/howto/unicode.rst:402 msgid "Comparing Strings" @@ -745,9 +738,8 @@ msgstr "" "desigualdad si dos cadenas usan caracteres combinados de manera diferente:" #: ../Doc/howto/unicode.rst:448 -#, fuzzy msgid "When run, this outputs:" -msgstr "Cuando se ejecuta, imprime esto:" +msgstr "Cuando se ejecuta, esto genera:" #: ../Doc/howto/unicode.rst:457 msgid "" diff --git a/howto/urllib2.po b/howto/urllib2.po index 2aeca2d166..46b696cf5f 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-30 20:13-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 17:27+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/howto/urllib2.rst:5 msgid "HOWTO Fetch Internet Resources Using The urllib Package" @@ -177,7 +178,6 @@ msgstr "" "FTP de la siguiente manera::" #: ../Doc/howto/urllib2.rst:98 -#, fuzzy msgid "" "In the case of HTTP, there are two extra things that Request objects allow " "you to do: First, you can pass data to be sent to the server. Second, you " @@ -185,11 +185,11 @@ msgid "" "request itself, to the server - this information is sent as HTTP \"headers" "\". Let's look at each of these in turn." msgstr "" -"En el caso del HTTP, hay dos cosas extra que los objetos Request permiten " -"hacer: Primero, puedes pasar datos que serán enviados al servidor. Segundo, " -"puedes pasar información extra (\"metadatos\") *sobre* los datos o sobre la " -"propia petición, al servidor - esta información se envía como \"encabezado\" " -"HTTP. Veamos cada uno de estos a su vez." +"En el caso de HTTP, hay dos cosas adicionales que los objetos Request le " +"permiten hacer: Primero, puede pasar datos para enviarlos al servidor. En " +"segundo lugar, puede pasar información adicional (\"metadatos\") *about* los " +"datos o sobre la solicitud en sí, al servidor; esta información se envía " +"como \"encabezados\" HTTP. Veamos cada uno de estos por turno." #: ../Doc/howto/urllib2.rst:105 msgid "Data" @@ -377,7 +377,7 @@ msgstr "" "la petición. Los gestores predeterminados se encargarán de algunas de estas " "respuestas automáticamente (por ejemplo, si la respuesta es una \"redirección" "\" que solicita que el cliente obtenga el documento desde una URL diferente, " -"urllib se encargará de eso por tí). Para aquellas respuestas que no puede " +"urllib se encargará de eso por ti). Para aquellas respuestas que no puede " "manejar, urlopen generará un :exc:`HTTPError`. Los errores típicos incluyen " "'404' (página no encontrada), '403' (petición prohibida), y " "'401' (autenticación requerida)." @@ -638,7 +638,7 @@ msgid "" msgstr "" "El cliente debe entonces volver a intentar la solicitud con el nombre y la " "contraseña apropiados para el realm incluido como encabezamiento en la " -"solicitud. Esto es 'basic authentication'. Para simplificar este proceso " +"solicitud. Esto es 'autenticación básica'. Para simplificar este proceso " "podemos crear una instancia de ``HTTPBasicAuthHandler`` y un objeto de " "apertura para usar este manejador." diff --git a/install/index.po b/install/index.po index 19abc6c733..24d80065ee 100644 --- a/install/index.po +++ b/install/index.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:39+0100\n" -"PO-Revision-Date: 2020-08-11 09:27-0300\n" -"Last-Translator: Emmanuel Arias \n" +"PO-Revision-Date: 2021-08-02 19:19+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/install/index.rst:7 msgid "Installing Python Modules (Legacy version)" @@ -279,7 +280,7 @@ msgstr "" "colocar los archivos para instalar en un *directorio de compilación*. Por " "defecto, esto es :file:`build` bajo la raíz de distribución; si está " "demasiado preocupado por la velocidad, o si desea mantener el árbol de " -"origen pristine, puede cambiar el directorio de compilación con la opción :" +"origen prístino, puede cambiar el directorio de compilación con la opción :" "option:`!--build-base`. Por ejemplo::" #: ../Doc/install/index.rst:162 @@ -1503,7 +1504,7 @@ msgid "" "\\distutils\\\\distutils.cfg` in a standard Python 1.5.2 installation under " "Windows." msgstr "" -"(Ver nota (1).) En Python 1.6 y posterior, el \"installation prefix\" por " +"(Ver nota (1).) En Python 1.6 y posterior, el \"prefijo de instalación\" por " "defecto de Python es :file:`C:\\\\Python`, entonces el archivo de " "configuración de sistema es normalmente :file:`C:\\\\Python\\\\Lib\\" "\\distutils\\\\distutils.cfg`. En Python 1.5.2, el prefijo por defecto era :" @@ -1712,8 +1713,8 @@ msgid "" msgstr "" "*archivo fuente* es cualquier cosa que probablemente sea un archivo de " "código fuente, al menos a juzgar por el nombre del archivo. Se supone que " -"los nombres de archivo que terminan en :file: `.c` están escritos en C, los " -"nombres de archivo que terminan en :file:`.C` , :file:`.cc`, y :file:`.c ++` " +"los nombres de archivo que terminan en :file:`.c` están escritos en C, los " +"nombres de archivo que terminan en :file:`.C` , :file:`.cc`, y :file:`.c++` " "son de C ++, y se supone que los nombres de archivo que terminan en :file:`." "m` o :file:`.mm` están en el Objetivo C." @@ -2040,11 +2041,8 @@ msgstr "" "existentes con bibliotecas OMF del mismo nombre." #: ../Doc/install/index.rst:1067 -#, fuzzy msgid "Check https://www.sourceware.org/cygwin/ for more information" -msgstr "" -"Diríjase a https://www.sourceware.org/cygwin/ and http://www.mingw.org/ para " -"mayor información" +msgstr "Diríjase a https://www.sourceware.org/cygwin/ para mayor información" #: ../Doc/install/index.rst:1069 msgid "" diff --git a/library/2to3.po b/library/2to3.po index 168b32d619..797ea95bee 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -11,22 +11,22 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-29 22:50+0200\n" -"Last-Translator: Alvar Maciel \n" +"PO-Revision-Date: 2021-08-04 13:33+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/2to3.rst:4 msgid "2to3 - Automated Python 2 to 3 code translation" msgstr "2to3 - Traducción de código Python 2 a 3" #: ../Doc/library/2to3.rst:8 -#, fuzzy msgid "" "2to3 is a Python program that reads Python 2.x source code and applies a " "series of *fixers* to transform it into valid Python 3.x code. The standard " @@ -34,14 +34,12 @@ msgid "" "2to3 supporting library :mod:`lib2to3` is, however, a flexible and generic " "library, so it is possible to write your own fixers for 2to3." msgstr "" -"2to3 es un programa hecho en Python que lee código fuente en Python 2.x y " -"aplica una serie de *fixers* para transformarlo en código Python 3.x válido. " -"La librería estándar contiene un buen conjunto de *fixers* que se encargarán " -"de casi todo el código. La librería soporte de 2to3 :mod:`lib2to3` es, de " -"todas maneras, una librería flexible y genérica. Por lo cual es posible " -"escribir sus propios *fixers* para 2to3. :mod:`lib2to3` también puede " -"adaptarse a aplicaciones propias en las cuales el código en Python necesite " -"editarse automáticamente." +"2to3 es un programa de Python que lee el código fuente de Python 2.x y " +"aplica una serie de *fixers* para transformarlo en un código válido de " +"Python 3.x. La biblioteca estándar contiene un amplio conjunto de arreglos " +"que manejarán casi todo el código. Biblioteca de soporte 2to3 :mod:`lib2to3` " +"es, sin embargo, una biblioteca flexible y genérica, por lo que es posible " +"escribir sus propios arreglos para 2to3." #: ../Doc/library/2to3.rst:18 msgid "Using 2to3" @@ -67,7 +65,7 @@ msgstr "" #: ../Doc/library/2to3.rst:26 msgid "Here is a sample Python 2.x source file, :file:`example.py`::" -msgstr "Este es un ejemplo de un archivo en Python 2.x, :file: `example.py`::" +msgstr "Este es un ejemplo de un archivo en Python 2.x, :file:`example.py`::" #: ../Doc/library/2to3.rst:34 msgid "It can be converted to Python 3.x code via 2to3 on the command line:" @@ -167,7 +165,6 @@ msgstr "" # No se si queda clara esta oración #: ../Doc/library/2to3.rst:97 -#, fuzzy msgid "" "Since some print statements can be parsed as function calls or statements, " "2to3 cannot always read files containing the print function. When 2to3 " @@ -178,14 +175,15 @@ msgid "" "had its print statements converted. Also :option:`!-e` can be used to make :" "func:`exec` a function." msgstr "" -"Como algunas declaraciones *print* pueden ser pasadas como llamadas a " -"funciones o declaraciones, 2to3 no siempre lee archivos que contienen la " -"función print. Cuando 2to3 detecta la presencia de la directiva de " -"compilación ``from __future__ import print_function``, modifica su gramática " -"interna para interpretar :func:`print` como una función. Este cambio " -"también puede habilitarse manualmente con la opción :option:`!-p`. Use la " -"opción :option:`!-p` para ejecutar los *fixers* en el código al que ya se le " -"han convertido sus declaraciones *print*." +"Dado que algunas declaraciones de impresión se pueden analizar como llamadas " +"a funciones o declaraciones, 2to3 no siempre puede leer archivos que " +"contienen la función de impresión. Cuando 2to3 detecta la presencia de la " +"directiva del compilador ``from __future__ import print_function``, modifica " +"su gramática interna para interpretar :func:`print` como una función. Este " +"cambio también se puede habilitar manualmente con la opción :option:`!-p`. " +"Utilice :option:`!-p` para ejecutar correctores en el código que ya tiene " +"sus declaraciones de impresión convertidas. También :option:`!-e` puede " +"usarse para hacer :func:`exec` una función." #: ../Doc/library/2to3.rst:105 msgid "" @@ -787,6 +785,11 @@ msgid "" "Python version. Consider third-party alternatives such as `LibCST`_ or " "`parso`_." msgstr "" +"Python 3.9 cambiará a un analizador PEG (ver :pep:`617`), y Python 3.10 " +"puede incluir una nueva sintaxis de lenguaje que no es analizable por el " +"analizador LL(1) de lib2to3. El módulo ``lib2to3`` puede eliminarse de la " +"biblioteca estándar en una versión futura de Python. Considere alternativas " +"de terceros como `LibCST`_ o `parso`_." #: ../Doc/library/2to3.rst:476 msgid "" diff --git a/library/__future__.po b/library/__future__.po index 781593e1e2..dc7f614e39 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-24 20:44-0500\n" -"Last-Translator: Gustavo Huarcaya \n" +"PO-Revision-Date: 2021-08-07 10:36+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/__future__.rst:2 msgid ":mod:`__future__` --- Future statement definitions" @@ -279,9 +280,8 @@ msgid "3.7.0b1" msgstr "3.7.0b1" #: ../Doc/library/__future__.rst:93 -#, fuzzy msgid "3.10" -msgstr "3.0" +msgstr "3.10" #: ../Doc/library/__future__.rst:93 msgid ":pep:`563`: *Postponed evaluation of annotations*" diff --git a/library/abc.po b/library/abc.po index 8e70bb4fe8..d2948c3063 100644 --- a/library/abc.po +++ b/library/abc.po @@ -9,13 +9,13 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-07-11 13:59-0500\n" +"PO-Revision-Date: 2021-08-07 10:37+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" -"X-Generator: Poedit 2.3.1\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"X-Generator: Poedit 3.0\n" "Language: es\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -41,7 +41,6 @@ msgstr "" "de tipos para números basados en CBAs.)" #: ../Doc/library/abc.rst:20 -#, fuzzy msgid "" "The :mod:`collections` module has some concrete classes that derive from " "ABCs; these can, of course, be further derived. In addition, the :mod:" @@ -49,11 +48,11 @@ msgid "" "class or instance provides a particular interface, for example, if it is " "hashable or if it is a mapping." msgstr "" -"El módulo :mod:`collections` tiene algunas clases concretas que derivan de " -"CBAs; estos pueden, por supuesto, ser derivados aún más. Además, el " -"submódulo :mod:`collections.abc` tiene algunos CBAs que se pueden utilizar " -"para probar si una clase o instancia proporciona una interfaz determinada, " -"por ejemplo, si es *hashable* o si es un *mapping*." +"El módulo :mod:`collections` tiene algunas clases concretas que se derivan " +"de ABC; estos, por supuesto, pueden derivarse más. Además, el submódulo :mod:" +"`collections.abc` tiene algunos ABC que se pueden usar para probar si una " +"clase o instancia proporciona una interfaz en particular, por ejemplo, si es " +"hash o si es un mapeo." #: ../Doc/library/abc.rst:27 msgid "" @@ -76,7 +75,6 @@ msgstr "" "confusos, por ejemplo::" #: ../Doc/library/abc.rst:41 -#, fuzzy msgid "" "Note that the type of :class:`ABC` is still :class:`ABCMeta`, therefore " "inheriting from :class:`ABC` requires the usual precautions regarding " @@ -86,9 +84,9 @@ msgid "" msgstr "" "Tenga en cuenta que el tipo de :class:`ABC` sigue siendo :class:`ABCMeta`, " "por lo tanto, heredar de :class:`ABC` requiere las precauciones habituales " -"respecto al uso de metaclases, ya que la herencia múltiple puede dar lugar a " -"conflictos de metaclases. También se puede definir una clase de base " -"abstracta pasando la palabra clave *metaclass* y utilizando :class:`ABCMeta` " +"con respecto al uso de metaclases, ya que la herencia múltiple puede dar " +"lugar a conflictos de metaclases. También se puede definir una clase base " +"abstracta pasando la palabra clave metaclase y usando :class:`ABCMeta` " "directamente, por ejemplo::" #: ../Doc/library/abc.rst:57 diff --git a/library/argparse.po b/library/argparse.po index 03cdce9788..298b87c381 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-26 23:50+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 10:59+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/argparse.rst:2 msgid "" @@ -282,6 +283,8 @@ msgid "" "exit_on_error_ - Determines whether or not ArgumentParser exits with error " "info when an error occurs. (default: ``True``)" msgstr "" +"exit_on_error_ - Determina si ArgumentParser sale o no con información de " +"error cuando se produce un error. (predeterminado: ``True``)" #: ../Doc/library/argparse.rst:185 msgid "*allow_abbrev* parameter was added." @@ -296,9 +299,8 @@ msgstr "" "de banderas (*flags*) cortas como ``-vv`` para que sea ``-v -v``." #: ../Doc/library/argparse.rst:192 -#, fuzzy msgid "*exit_on_error* parameter was added." -msgstr "se añadió el parámetro *allow_abbrev*." +msgstr "Se agregó el parámetro *exit_on_error*." #: ../Doc/library/argparse.rst:195 ../Doc/library/argparse.rst:715 msgid "The following sections describe how each of these are used." @@ -555,8 +557,8 @@ msgstr "" "La mayoría de las opciones de la línea de comandos usarán ``-`` como " "prefijo, por ejemplo ``-f/--foo``. Los analizadores que necesiten soportar " "caracteres prefijo diferentes o adicionales, por ejemplo, para opciones como " -"``+f`` o ``/foo``, pueden especificarlos usando el " -"argumento``prefix_chars=`` para el constructor *ArgumentParser*::" +"``+f`` o ``/foo``, pueden especificarlos usando el argumento " +"``prefix_chars=`` para el constructor *ArgumentParser*::" #: ../Doc/library/argparse.rst:496 msgid "" @@ -610,7 +612,7 @@ msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." msgstr "" -"El argumento``fromfile_prefix_chars=`` por defecto es ``None``, lo que " +"El argumento ``fromfile_prefix_chars=`` por defecto es ``None``, lo que " "significa que los argumentos nunca serán tratados como referencias de " "archivos." @@ -747,27 +749,25 @@ msgstr "" #: ../Doc/library/argparse.rst:657 msgid "exit_on_error" -msgstr "" +msgstr "exit_on_error" #: ../Doc/library/argparse.rst:659 -#, fuzzy msgid "" "Normally, when you pass an invalid argument list to the :meth:" "`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, it will " "exit with error info." msgstr "" -"Normalmente, cuando pasas una lista de argumentos al método :meth:" -"`~ArgumentParser.parse_args` de un :class:`ArgumentParser`, :ref:`reconoce " -"las abreviaturas ` de las opciones largas." +"Normalmente, cuando pasa una lista de argumentos no válidos al método :meth:" +"`~ArgumentParser.parse_args` de un :class:`ArgumentParser`, saldrá con " +"información de error." #: ../Doc/library/argparse.rst:662 -#, fuzzy msgid "" "If the user would like catch errors manually, the feature can be enable by " "setting ``exit_on_error`` to ``False``::" msgstr "" -"Esta característica puede ser desactivada poniendo ``allow_abbrev`` a " -"``False``::" +"Si el usuario desea detectar errores manualmente, la función se puede " +"habilitar configurando ``exit_on_error`` en ``False``::" #: ../Doc/library/argparse.rst:679 msgid "The add_argument() method" @@ -811,13 +811,12 @@ msgstr "" "const_ - Un valor fijo requerido por algunas selecciones de action_ y nargs_." #: ../Doc/library/argparse.rst:698 -#, fuzzy msgid "" "default_ - The value produced if the argument is absent from the command " "line and if it is absent from the namespace object." msgstr "" -"default_ - El valor dado si el argumento está ausente de la línea de " -"comandos." +"default_ - El valor producido si el argumento está ausente en la línea de " +"comando y si está ausente en el objeto de espacio de nombres." #: ../Doc/library/argparse.rst:701 msgid "" @@ -1015,18 +1014,20 @@ msgid "" "``BooleanOptionalAction`` is available in ``argparse`` and adds support for " "boolean actions such as ``--foo`` and ``--no-foo``::" msgstr "" +"También puede especificar una acción arbitraria pasando una subclase de " +"Acción u otro objeto que implemente la misma interfaz. " +"``BooleanOptionalAction`` está disponible en ``argparse`` y agrega soporte " +"para acciones booleanas como ``--foo`` y ``--no-foo``:" #: ../Doc/library/argparse.rst:856 -#, fuzzy msgid "" "The recommended way to create a custom action is to extend :class:`Action`, " "overriding the ``__call__`` method and optionally the ``__init__`` and " "``format_usage`` methods." msgstr "" -"También puedes especificar una acción arbitraria pasando una subclase " -"*Action* u otro objeto que implemente la misma interfaz. La forma " -"recomendada de hacer esto es extender :class:`Action`, sobrescribiendo el " -"método``__call__`` y opcionalmente el método``__init__``." +"La forma recomendada de crear una acción personalizada es extender :class:" +"`Action`, anulando el método ``__call__`` y, opcionalmente, los métodos " +"``__init__`` y ``format_usage``." #: ../Doc/library/argparse.rst:860 msgid "An example of a custom action::" @@ -1207,6 +1208,8 @@ msgid "" "If the target namespace already has an attribute set, the action *default* " "will not over write it::" msgstr "" +"Si el espacio de nombres de destino ya tiene un atributo establecido, la " +"acción *default* no lo sobrescribirá:" #: ../Doc/library/argparse.rst:1017 msgid "" @@ -1251,12 +1254,21 @@ msgid "" "keyword for :meth:`~ArgumentParser.add_argument` allows any necessary type-" "checking and type conversions to be performed." msgstr "" +"De forma predeterminada, el analizador lee los argumentos de la línea de " +"comandos como cadenas simples. Sin embargo, a menudo, la cadena de la línea " +"de comandos debe interpretarse como otro tipo, como :class:`float` o :class:" +"`int`. La palabra clave ``type`` para :meth:`~ArgumentParser.add_argument` " +"permite realizar cualquier verificación de tipo y conversión de tipo " +"necesaria." #: ../Doc/library/argparse.rst:1059 msgid "" "If the type_ keyword is used with the default_ keyword, the type converter " "is only applied if the default is a string." msgstr "" +"Si la palabra clave type_ se usa con la palabra clave default_, el " +"convertidor de tipos solo se aplica si el valor predeterminado es una cadena " +"de caracteres." #: ../Doc/library/argparse.rst:1062 msgid "" @@ -1265,14 +1277,21 @@ msgid "" "`ValueError`, the exception is caught and a nicely formatted error message " "is displayed. No other exception types are handled." msgstr "" +"El argumento para ``type`` puede ser cualquier invocable que acepte una sola " +"cadena de caracteres. Si la función lanza :exc:`ArgumentTypeError`, :exc:" +"`TypeError`, o :exc:`ValueError`, se detecta la excepción y se muestra un " +"mensaje de error con un formato agradable. No se manejan otros tipos de " +"excepciones." #: ../Doc/library/argparse.rst:1067 msgid "Common built-in types and functions can be used as type converters:" msgstr "" +"Los tipos y funciones incorporados comunes se pueden utilizar como " +"convertidores de tipos:" #: ../Doc/library/argparse.rst:1083 msgid "User defined functions can be used as well:" -msgstr "" +msgstr "Las funciones definidas por el usuario también se pueden utilizar:" #: ../Doc/library/argparse.rst:1095 msgid "" @@ -1280,6 +1299,9 @@ msgid "" "does is convert empty strings to ``False`` and non-empty strings to " "``True``. This is usually not what is desired." msgstr "" +"La función :func:`bool` no se recomienda como convertidor de tipos. Todo lo " +"que hace es convertir cadenas de caracteres vacías en ``False`` y cadenas de " +"caracteres no vacías en ``True``. Por lo general, esto no es lo que se desea." #: ../Doc/library/argparse.rst:1099 msgid "" @@ -1288,6 +1310,11 @@ msgid "" "exceptions. Anything with more interesting error-handling or resource " "management should be done downstream after the arguments are parsed." msgstr "" +"En general, la palabra clave ``type`` es una conveniencia que solo debe " +"usarse para conversiones simples que solo pueden generar una de las tres " +"excepciones admitidas. Cualquier cosa con un manejo de errores o de recursos " +"más interesante debe hacerse en sentido descendente después de analizar los " +"argumentos." #: ../Doc/library/argparse.rst:1104 msgid "" @@ -1296,6 +1323,10 @@ msgid "" "JSONDecodeError` would not be well formatted and a :exc:`FileNotFound` " "exception would not be handled at all." msgstr "" +"Por ejemplo, las conversiones JSON o YAML tienen casos de error complejos " +"que requieren mejores informes que los que puede proporcionar la palabra " +"clave ``type``. Un :exc:`~json.JSONDecodeError` no estaría bien formateado y " +"una excepción :exc:`FileNotFound` no se manejaría en absoluto." #: ../Doc/library/argparse.rst:1109 msgid "" @@ -1305,12 +1336,20 @@ msgid "" "closed. In this case, it would be better to wait until after the parser has " "run and then use the :keyword:`with`-statement to manage the files." msgstr "" +"Even :class:`~argparse.FileType` tiene sus limitaciones para su uso con la " +"palabra clave ``type``. Si un argumento usa *FileType* y luego falla un " +"argumento posterior, se informa un error pero el archivo no se cierra " +"automáticamente. En este caso, sería mejor esperar hasta que se haya " +"ejecutado el analizador y luego usar la declaración :keyword:`with` para " +"administrar los archivos." #: ../Doc/library/argparse.rst:1115 msgid "" "For type checkers that simply check against a fixed set of values, consider " "using the choices_ keyword instead." msgstr "" +"Para los verificadores de tipo que simplemente verifican un conjunto fijo de " +"valores, considere usar la palabra clave choice_ en su lugar." #: ../Doc/library/argparse.rst:1120 msgid "choices" @@ -1356,6 +1395,8 @@ msgid "" "Use of :class:`enum.Enum` is not recommended because it is difficult to " "control its appearance in usage, help, and error messages." msgstr "" +"No se recomienda el uso de :class:`enum.Enum` porque es difícil controlar su " +"apariencia en el uso, la ayuda y los mensajes de error." #: ../Doc/library/argparse.rst:1155 msgid "" @@ -1364,6 +1405,10 @@ msgid "" "*dest* parameter. If this display isn't desirable (perhaps because there " "are many choices), just specify an explicit metavar_." msgstr "" +"Las opciones formateadas anulan el *metavar* predeterminado que normalmente " +"se deriva de *dest*. Esto suele ser lo que desea porque el usuario nunca ve " +"el parámetro *dest*. Si esta visualización no es deseable (quizás porque hay " +"muchas opciones), simplemente especifique un metavar_ explícito." #: ../Doc/library/argparse.rst:1162 msgid "required" @@ -1644,6 +1689,10 @@ msgid "" "argument and return a string which will be used when printing the usage of " "the program. If such method is not provided, a sensible default will be used." msgstr "" +"Las subclases de acción pueden definir un método ``format_usage`` que no " +"toma ningún argumento y devuelve una cadena que se utilizará al imprimir el " +"uso del programa. Si no se proporciona dicho método, se utilizará un valor " +"predeterminado razonable." #: ../Doc/library/argparse.rst:1393 msgid "The parse_args() method" @@ -2021,7 +2070,7 @@ msgid "" msgstr "" "Además, ``add_parser`` soporta un argumento adicional ``aliases``, que " "permite que múltiples cadenas se refieran al mismo analizador secundario. " -"Este ejemplo, algo del estilo``svn``, alias ``co`` como abreviatura para " +"Este ejemplo, algo del estilo ``svn``, alias ``co`` como abreviatura para " "``checkout``::" #: ../Doc/library/argparse.rst:1756 diff --git a/library/array.po b/library/array.po index 3f8c8911a0..806b835d2a 100644 --- a/library/array.po +++ b/library/array.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 18:32+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 12:39+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/array.rst:2 msgid ":mod:`array` --- Efficient arrays of numeric values" @@ -95,7 +96,7 @@ msgstr "``'u'``" #: ../Doc/library/array.rst:25 msgid "wchar_t" -msgstr "" +msgstr "wchar_t" #: ../Doc/library/array.rst:25 msgid "Unicode character" @@ -207,7 +208,7 @@ msgstr "Notas:" #: ../Doc/library/array.rst:51 msgid "It can be 16 bits or 32 bits depending on the platform." -msgstr "" +msgstr "Puede ser de 16 bits o 32 bits según la plataforma." #: ../Doc/library/array.rst:53 msgid "" @@ -215,6 +216,9 @@ msgid "" "``Py_UNICODE``. This change doesn't affect to its behavior because " "``Py_UNICODE`` is alias of ``wchar_t`` since Python 3.3." msgstr "" +"``array('u')`` ahora usa ``wchar_t`` como tipo C en lugar de ``Py_UNICODE`` " +"obsoleto. Este cambio no afecta su comportamiento porque ``Py_UNICODE`` es " +"el alias de ``wchar_t`` desde Python 3.3." #: ../Doc/library/array.rst:61 msgid "" diff --git a/library/asynchat.po b/library/asynchat.po index 3cc31c2899..bda1b9d78a 100644 --- a/library/asynchat.po +++ b/library/asynchat.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2021-02-07 16:54+0100\n" +"PO-Revision-Date: 2021-08-04 13:58+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asynchat.rst:2 msgid ":mod:`asynchat` --- Asynchronous socket command/response handler" @@ -40,10 +40,7 @@ msgstr "" "Este módulo existe únicamente por motivos de retrocompatibilidad. Para nuevo " "código, es recomendable usar :mod:`asyncio`." -# -He "traducido" el verbo de "subclass" por "heredar", ¿alguna solución mejor? -# -¿Mejor traduccion para "channel map"? (depende del contexto pero lo desconozco) #: ../Doc/library/asynchat.rst:22 -#, fuzzy msgid "" "This module builds on the :mod:`asyncore` infrastructure, simplifying " "asynchronous clients and servers and making it easier to handle protocols " @@ -57,7 +54,7 @@ msgid "" "class:`asynchat.async_chat` channel objects as it receives incoming " "connection requests." msgstr "" -"Este módulo se construye en la infraestructura de :mod:`asyncore', " +"Este módulo se construye en la infraestructura de :mod:`asyncore`, " "simplificando los clientes y servidores asíncronos y facilitando la gestión " "de protocolos cuyos elementos son terminados por cadenas de texto " "arbitrarias, o que son de longitud variable. :mod:`asynchat` define la clase " @@ -114,10 +111,7 @@ msgstr "El tamaño del _buffer_ de entrada asíncrona (por defecto ``4096``)." msgid "The asynchronous output buffer size (default ``4096``)." msgstr "El tamaño del _buffer_ de salida asíncrona (por defecto ``4096``)." -# -Traducido "exhaustion" como "agotamiento", ¿alguna palabra más técnica mejor? -# -¿Traducción de "endpoint"? #: ../Doc/library/asynchat.rst:63 -#, fuzzy msgid "" "Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to " "define a :abbr:`FIFO (first-in, first-out)` queue of *producers*. A producer " @@ -211,10 +205,7 @@ msgstr "" "aunque es posible usar productores personalizados en esquemas más complejos " "para implementar características como encriptación o fragmentación." -# -Seguramente "Takes" se refiere a un método que obtiene el objeto como parámetro de entrada, por lo que "Obtiene" no me parece la mejor traducción en este caso. ¿Quizás "recibe"? -# -¿Mejor traducción de "endpoint"? #: ../Doc/library/asynchat.rst:124 -#, fuzzy msgid "" "Takes a producer object and adds it to the producer queue associated with " "the channel. When all currently-pushed producers have been exhausted the " @@ -288,7 +279,7 @@ msgstr "" #: ../Doc/library/asynchat.rst:157 msgid "asynchat Example" -msgstr "Ejemplo de *asynchat*" +msgstr "Ejemplo de asynchat" #: ../Doc/library/asynchat.rst:159 msgid "" @@ -318,15 +309,13 @@ msgstr "" "cabecera ``Content-Length:`` se utiliza para establecer un terminador " "numérico para leer la cantidad de datos correcta en el canal." -# ¿Traducción de "marshalled"? #: ../Doc/library/asynchat.rst:171 -#, fuzzy msgid "" "The :meth:`handle_request` method is called once all relevant input has been " "marshalled, after setting the channel terminator to ``None`` to ensure that " "any extraneous data sent by the web client are ignored. ::" msgstr "" -"El método :meth:`handle_request` se llama en cuanto todas las entradas " -"relevantes han sido reunidas, tras establecer el terminador del canal a " -"``None`` para asegurarse de que cualquier dato extraño enviado por el " -"cliente web es ignorado. ::" +"El método :meth:`handle_request` se llama una vez todas las entradas " +"relevantes han sido serializadas (*marshalled*), tras establecer el " +"terminador del canal a ``None`` para asegurarse de que cualquier dato " +"extraño enviado por el cliente web es ignorado. ::" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po index 43e16a7dbb..9805892959 100644 --- a/library/asyncio-api-index.po +++ b/library/asyncio-api-index.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-10 00:17+0200\n" -"Last-Translator: Álvaro Mondéjar Rubio \n" +"PO-Revision-Date: 2021-08-04 13:57+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-api-index.rst:6 msgid "High-level API Index" @@ -39,8 +40,8 @@ msgid "" "Utilities to run asyncio programs, create Tasks, and await on multiple " "things with timeouts." msgstr "" -"Utilidades para ejecutar programas asyncio, crear Tareas y esperar a varias " -"cosas con tiempos de expiración. " +"Utilidades para ejecutar programas asyncio, crear Tareas, y esperar en " +"múltiples cosas con tiempos de espera." #: ../Doc/library/asyncio-api-index.rst:21 msgid ":func:`run`" @@ -123,13 +124,14 @@ msgid "Task object." msgstr "Objeto Tarea." #: ../Doc/library/asyncio-api-index.rst:51 -#, fuzzy msgid ":func:`to_thread`" -msgstr ":func:`run_coroutine_threadsafe`" +msgstr ":func:`to_thread`" #: ../Doc/library/asyncio-api-index.rst:52 msgid "Asychronously run a function in a separate OS thread." msgstr "" +"Ejecute de forma asincrónica una función en un subproceso del sistema " +"operativo independiente." #: ../Doc/library/asyncio-api-index.rst:54 msgid ":func:`run_coroutine_threadsafe`" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index cee14ae9da..7167d86a69 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-07 09:13+0200\n" -"Last-Translator: Álvaro Mondéjar \n" +"PO-Revision-Date: 2021-08-04 13:56+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-dev.rst:7 msgid "Developing with asyncio" @@ -62,7 +63,7 @@ msgstr "" #: ../Doc/library/asyncio-dev.rst:28 msgid "Using the :ref:`Python Development Mode `." -msgstr "" +msgstr "Usando :ref:`Modo de Desarrollo de Python `." #: ../Doc/library/asyncio-dev.rst:30 msgid "Passing ``debug=True`` to :func:`asyncio.run`." @@ -157,13 +158,12 @@ msgstr "" "ejecución se suspende y el bucle de eventos ejecuta la siguiente Tarea." #: ../Doc/library/asyncio-dev.rst:76 -#, fuzzy msgid "" "To schedule a :term:`callback` from another OS thread, the :meth:`loop." "call_soon_threadsafe` method should be used. Example::" msgstr "" -"Para ejecutar un callback desde un hilo diferente del sistema operativo se " -"debe usar el método :meth:`loop.call_soon_threadsafe`. Ejemplo::" +"Para programar un :term:`callback` desde otro hilo del SO, se debe usar el " +"método :meth:`loop.call_soon_threadsafe`. Ejemplo::" #: ../Doc/library/asyncio-dev.rst:81 msgid "" @@ -220,6 +220,16 @@ msgid "" "a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a " "different process." msgstr "" +"Actualmente no hay forma de programar corrutinas o devoluciones de llamada " +"directamente desde un proceso diferente (como uno que comenzó con :mod:" +"`multiprocessing`). La sección :ref:`Event Loop Methods ` enumera las APIs que pueden leer desde las tuberías y ver " +"descriptores de archivos sin bloquear el bucle de eventos. Además, las APIs " +"de asyncio :ref:`Subprocess ` proporcionan una forma de " +"iniciar un proceso y comunicarse con él desde el bucle de eventos. Por " +"último, el método :meth:`loop.run_in_executor` mencionado anteriormente " +"también se puede usar con un :class:`concurrent.futures.ProcessPoolExecutor` " +"para ejecutar código en un proceso diferente." #: ../Doc/library/asyncio-dev.rst:124 msgid "Running Blocking Code" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 05f9d46de3..1ce7cf45ef 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-22 17:54+0000\n" +"PO-Revision-Date: 2021-08-04 13:51+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-eventloop.rst:6 msgid "Event Loop" @@ -328,19 +329,22 @@ msgid "" "a :exc:`RuntimeError` will be raised if :meth:`loop.run_in_executor` is " "called while using the default executor." msgstr "" +"Programa el cierre del ejecutor predeterminado y espere a que se una a todos " +"los hilos de la clase :class:`ThreadPoolExecutor`. Después de llamar a este " +"método, se generará un :exc:`RuntimeError` si se llama a :meth:`loop." +"run_in_executor` mientras se usa el ejecutor predeterminado." #: ../Doc/library/asyncio-eventloop.rst:190 msgid "Scheduling callbacks" msgstr "Programación de llamadas de retorno" #: ../Doc/library/asyncio-eventloop.rst:194 -#, fuzzy msgid "" "Schedule the *callback* :term:`callback` to be called with *args* arguments " "at the next iteration of the event loop." msgstr "" -"Planifica un *callback* para ser ejecutada con los argumentos *args* en la " -"próxima iteración del bucle de eventos." +"Programa el *callback* (retrollamada) :term:`callback` para que se llame con " +"argumentos *args* en la próxima iteración del ciclo de eventos." #: ../Doc/library/asyncio-eventloop.rst:197 msgid "" @@ -644,7 +648,7 @@ msgid "" "The connection is established and a :ref:`transport ` is " "created for it." msgstr "" -"La conexión es establecida y un :ref:`transport ` es " +"La conexión es establecida y un :ref:`transporte ` es " "creado para ello." #: ../Doc/library/asyncio-eventloop.rst:385 @@ -731,7 +735,6 @@ msgstr "" "constantes del módulo :mod:`socket` correspondiente." #: ../Doc/library/asyncio-eventloop.rst:419 -#, fuzzy msgid "" "*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " "connection. It should be a floating-point number representing the amount of " @@ -740,13 +743,12 @@ msgid "" "\" as defined in :rfc:`8305`. A sensible default value recommended by the " "RFC is ``0.25`` (250 milliseconds)." msgstr "" -"*happy_eyeballs_delay*, si es provisto, habilita Globos Oculares Felices " -"(*Happy Eyeballs*) para esta conexión. Debería ser un número con coma " -"flotante representando la cantidad de tiempo en segundos a esperar para que " -"un intento de conexión se complete, antes de empezar el próximo intento en " -"paralelo. Este es el retraso de intento de conexión (*Connection Attempt " -"Delay*) como es definido en :rfc:`8305`. Un valor predefinido sensible que " -"es recomendado por el RFC es ``0.25`` (250 milisegundos)." +"*happy_eyeballs_delay*, si se proporciona, habilita Happy Eyeballs para esta " +"conexión. Debe ser un número de punto flotante que represente la cantidad de " +"tiempo en segundos para esperar a que se complete un intento de conexión, " +"antes de comenzar el siguiente intento en paralelo. Este es el \"Retraso de " +"intento de conexión\" como se define en :rfc:`8305`. Un valor predeterminado " +"sensato recomendado por el RFC es ``0.25`` (250 milisegundos)." #: ../Doc/library/asyncio-eventloop.rst:427 msgid "" @@ -1796,9 +1798,8 @@ msgid "Executing code in thread or process pools" msgstr "Ejecutando código en un hilos o grupos de procesos" #: ../Doc/library/asyncio-eventloop.rst:1069 -#, fuzzy msgid "Arrange for *func* to be called in the specified executor." -msgstr "Arregla que *func* sea llamada en el ejecutor especificado." +msgstr "Hace arreglos para que *func* sea llamado en el ejecutor especificado." #: ../Doc/library/asyncio-eventloop.rst:1071 msgid "" @@ -1821,7 +1822,6 @@ msgstr "" "` a *func*." #: ../Doc/library/asyncio-eventloop.rst:1120 -#, fuzzy msgid "" ":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " "thread pool executor it creates, instead leaving it up to the thread pool " @@ -1829,9 +1829,9 @@ msgid "" "default." msgstr "" ":meth:`loop.run_in_executor` ya no configura el ``max_workers`` del ejecutor " -"del grupo de subprocesos que crea, sino que lo deja al ejecutor del grupo de " -"subprocesos (:class:`~concurrent.futures.ThreadPoolExecutor`) para " -"configurar al predeterminado." +"del grupo de subprocesos que crea, sino que lo deja en manos del ejecutor " +"del grupo de subprocesos (:class:`~concurrent.futures.ThreadPoolExecutor`) " +"para establecer el valor por defecto." #: ../Doc/library/asyncio-eventloop.rst:1129 msgid "" @@ -1992,13 +1992,12 @@ msgid "Set the debug mode of the event loop." msgstr "Establece el modo de depuración del bucle de eventos." #: ../Doc/library/asyncio-eventloop.rst:1215 -#, fuzzy msgid "" "The new :ref:`Python Development Mode ` can now also be used to " "enable the debug mode." msgstr "" -"La nueva opción de linea de comandos ``-X dev`` ahora también puede ser " -"utilizada para habilitar el modo depuración." +"El nuevo :ref:`Python Modo de Desarrollo ` ahora también se puede " +"usar para habilitar el modo de depuración." #: ../Doc/library/asyncio-eventloop.rst:1220 msgid "The :ref:`debug mode of asyncio `." diff --git a/library/asyncio-future.po b/library/asyncio-future.po index ad15a14039..f1c63c8029 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-07 09:20+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 13:46+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-future.rst:8 msgid "Futures" @@ -316,7 +317,7 @@ msgstr "" #: ../Doc/library/asyncio-future.rst:181 msgid "Added the ``msg`` parameter." -msgstr "" +msgstr "Se agregó el parámetro ``msg``." #: ../Doc/library/asyncio-future.rst:186 msgid "Return the exception that was set on this Future." @@ -407,3 +408,5 @@ msgid "" ":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, but :" "func:`concurrent.futures.cancel` does not." msgstr "" +":meth:`asyncio.Future.cancel` acepta un argumento opcional ``msg``, pero :" +"func:`concurrent.futures.cancel` no." diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index 73cd9e90d8..7fc4aa98d3 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-06 19:01+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 13:45+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-policy.rst:8 msgid "Policies" @@ -355,7 +356,6 @@ msgstr "" "ejecuta en un hilo de SO no principal." #: ../Doc/library/asyncio-policy.rst:211 -#, fuzzy msgid "" "There is no noticeable overhead when handling a big number of children " "(*O(1)* each time a child terminates), but starting a thread per process " @@ -363,14 +363,13 @@ msgid "" msgstr "" "No hay sobrecarga notable cuando se gestiona un número grande de procesos " "secundarios (*O(1)* cada vez que un proceso secundario termina), pero " -"indicar un hilo por proceso requiere memoria extra." +"iniciar un hilo por proceso requiere memoria extra." #: ../Doc/library/asyncio-policy.rst:214 msgid "This watcher is used by default." msgstr "Este observador es usado por defecto." #: ../Doc/library/asyncio-policy.rst:220 -#, fuzzy msgid "" "This implementation registers a :py:data:`SIGCHLD` signal handler on " "instantiation. That can break third-party code that installs a custom " @@ -378,7 +377,7 @@ msgid "" msgstr "" "Esta implementación registra un gestor de señal en instanciación :py:data:" "`SIGCHLD`. Eso puede romper código de terceras partes que instalen un gestor " -"personalizado para la señal `SIGCHLD`." +"personalizado para la señal :py:data:`SIGCHLD`." #: ../Doc/library/asyncio-policy.rst:224 ../Doc/library/asyncio-policy.rst:242 msgid "" @@ -462,6 +461,13 @@ msgid "" "event loop. The main disadvantage is that pidfds are specific to Linux, and " "only work on recent (5.3+) kernels." msgstr "" +"Esta implementación sondea los descriptores de archivos de proceso (pidfds) " +"para esperar la terminación del proceso hijo. En ciertos sentidos :class:" +"`PidfdChildWatcher` es una implementación de niño vigilante \"Ricitos de oro" +"\". No requiere señales o hilos, no interfiere con ningún proceso lanzado " +"fuera del bucle de eventos y escala linealmente con el número de subprocesos " +"lanzados por el bucle de eventos. La principal desventaja es que los pidfds " +"son específicos de Linux y solo funcionan en kernels recientes (5.3+)." #: ../Doc/library/asyncio-policy.rst:274 msgid "Custom Policies" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po index 0edbab43ce..760ec9438d 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-07 15:02+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-04 13:44+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-protocol.rst:9 msgid "Transports and Protocols" @@ -630,7 +631,7 @@ msgid "" "doesn't support half-closed connections." msgstr "" "Este método puede lanzar una excepción :exc:`NotImplementedError` si el " -"transporte (p. ej. SSL) no soporta conexiones half-closed ('semi-cerradas')." +"transporte (p. ej. SSL) no soporta conexiones semicerradas (*half-closed*)." #: ../Doc/library/asyncio-protocol.rst:352 msgid "Datagram Transports" @@ -1019,9 +1020,9 @@ msgid "" "which case returning true from this method will result in the connection " "being closed." msgstr "" -"Algunos transportes, incluido SSL, no admiten conexiones half-closed ('semi-" -"cerradas'), en cuyo caso retornar verdadero desde este método resultará en " -"el cierre de la conexión." +"Algunos transportes, incluido SSL, no admiten conexiones semicerradas (*half-" +"closed*), en cuyo caso retornar verdadero desde este método resultará en el " +"cierre de la conexión." #: ../Doc/library/asyncio-protocol.rst:577 #: ../Doc/library/asyncio-protocol.rst:635 @@ -1340,9 +1341,8 @@ msgstr "" "salida de un subproceso y esperar su terminación." #: ../Doc/library/asyncio-protocol.rst:996 -#, fuzzy msgid "The subprocess is created by the :meth:`loop.subprocess_exec` method::" -msgstr "El subproceso es creado por el método :meth:`loop.subprocess_exec`::" +msgstr "El subproceso es creado por el método :meth:`loop.subprocess_exec` ::" #: ../Doc/library/asyncio-protocol.rst:1042 msgid "" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index 48f2b863f9..abcf6e1f4e 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -38,7 +38,7 @@ msgid "" msgstr "" "Las colas asyncio son diseñadas para ser similares a clases del módulo :mod:" "`queue`. Sin embargo las colas asyncio no son seguras para hilos, son " -"diseñadas para usar específicamente en código async/wait." +"diseñadas para usar específicamente en código async/await." #: ../Doc/library/asyncio-queue.rst:17 msgid "" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 8bb3107543..1d01e95abd 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-30 20:40-0500\n" -"Last-Translator: Adolfo Hristo David Roque Gámez \n" +"PO-Revision-Date: 2021-08-04 13:43+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-subprocess.rst:7 msgid "Subprocesses" @@ -135,16 +136,14 @@ msgstr "" "usadas para construir comandos de *shell*." #: ../Doc/library/asyncio-subprocess.rst:113 -#, fuzzy msgid "" "Subprocesses are available for Windows if a :class:`ProactorEventLoop` is " "used. See :ref:`Subprocess Support on Windows ` " "for details." msgstr "" -"La implementación del bucle de eventos de asyncio por defecto en **Windows** " -"no admite sub-procesos. Los sub-procesos están disponibles para Windows si " -"un :class:`ProactorEventLoop` es usado. Véase :ref:`Soporte de Sub-procesos " -"en Windows ` para los detalles." +"Los subprocesos están disponibles para Windows si se utiliza un :class:" +"`ProactorEventLoop`. Consulte :ref:`Soporte de subprocesos en Windows " +"` para obtener más detalles." #: ../Doc/library/asyncio-subprocess.rst:119 msgid "" diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po index 3b333c0865..21b6ee2687 100644 --- a/library/asyncio-sync.po +++ b/library/asyncio-sync.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-05 19:15+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-07 10:35+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-sync.rst:7 msgid "Synchronization Primitives" @@ -179,18 +180,16 @@ msgstr "" "ha ocurrido algún evento." #: ../Doc/library/asyncio-sync.rst:106 -#, fuzzy msgid "" "An Event object manages an internal flag that can be set to *true* with the :" "meth:`~Event.set` method and reset to *false* with the :meth:`clear` " "method. The :meth:`~Event.wait` method blocks until the flag is set to " "*true*. The flag is set to *false* initially." msgstr "" -"Un objeto Event gestiona un indicador interno que puede ser establecido en " -"*verdadero* mediante el método :meth:`set` y restaurado a *falso* con el " -"método :meth:`clear`. El método :meth:`wait` bloquea hasta que el indicador " -"es establecido en *verdadero*. De inicio, el indicador se establece en " -"*falso*." +"Un objeto Event administra una bandera interna que se puede establecer en " +"*true* con el método :meth:`~Event.set` y se restablece en *false* con el " +"método :meth:`clear`. El método :meth:`~Event.wait` se bloquea hasta que la " +"bandera se establece en *true*. El flag se establece en *false* inicialmente." #: ../Doc/library/asyncio-sync.rst:117 msgid "Example::" @@ -201,13 +200,12 @@ msgid "Wait until the event is set." msgstr "Espera hasta que se establezca el evento." #: ../Doc/library/asyncio-sync.rst:144 -#, fuzzy msgid "" "If the event is set, return ``True`` immediately. Otherwise block until " "another task calls :meth:`~Event.set`." msgstr "" -"Si el evento está establecido, retorna ``True`` inmediatamente. En caso " -"contrario, bloquea hasta que alguna otra tarea invoca al método :meth:`set`." +"Si el evento está configurado, retorna ``True`` inmediatamente. De lo " +"contrario, bloquea hasta que otra tarea llame a :meth:`~Event.set`." #: ../Doc/library/asyncio-sync.rst:149 msgid "Set the event." @@ -224,13 +222,12 @@ msgid "Clear (unset) the event." msgstr "Borra (restablece) el evento." #: ../Doc/library/asyncio-sync.rst:158 -#, fuzzy msgid "" "Tasks awaiting on :meth:`~Event.wait` will now block until the :meth:`~Event." "set` method is called again." msgstr "" -"Las tareas pendientes en :meth:`wait` ahora se bloquearán hasta que se " -"vuelva a llamar al método :meth:`set` de nuevo." +"Las tareas que esperan en :meth:`~Event.wait` ahora se bloquearán hasta que " +"se vuelva a llamar al método :meth:`~Event.set`." #: ../Doc/library/asyncio-sync.rst:163 msgid "Return ``True`` if the event is set." @@ -461,12 +458,11 @@ msgstr "" "contador interno por encima del *valor* inicial." #: ../Doc/library/asyncio-sync.rst:352 -#, fuzzy msgid "" "Acquiring a lock using ``await lock`` or ``yield from lock`` and/or :keyword:" "`with` statement (``with await lock``, ``with (yield from lock)``) was " "removed. Use ``async with lock`` instead." msgstr "" -"Adquirir un bloqueo usando ``await lock`` o ``yield from lock`` y/o la " +"Adquirir un bloqueo usando ``await lock`` o ``yield from lock`` o una " "declaración :keyword:`with` (``with await lock``, ``with (yield from " -"lock)``) está obsoleto. En su lugar, se debe usar ``async with lock``." +"lock)``) se eliminó . En su lugar, use ``async with lock``." diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 50abca384a..5d09acc801 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-12-12 14:25-0300\n" -"Last-Translator: Emmanuel Arias \n" +"PO-Revision-Date: 2021-08-04 13:41+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncio-task.rst:6 msgid "Coroutines and Tasks" @@ -243,13 +244,13 @@ msgid "Execute the :term:`coroutine` *coro* and return the result." msgstr "Ejecuta la :term:`coroutine` *coro* y retornando el resultado." #: ../Doc/library/asyncio-task.rst:217 -#, fuzzy msgid "" "This function runs the passed coroutine, taking care of managing the asyncio " "event loop, *finalizing asynchronous generators*, and closing the threadpool." msgstr "" "Esta función ejecuta la corrutina pasada, encargándose de administrar el " -"bucle de eventos asyncio y *finalizar los generadores asíncronos*." +"bucle de eventos asyncio, *finalizing asynchronous generators* y cerrando el " +"threadpool." #: ../Doc/library/asyncio-task.rst:221 msgid "" @@ -281,7 +282,7 @@ msgstr "Ejemplo::" #: ../Doc/library/asyncio-task.rst:240 msgid "Updated to use :meth:`loop.shutdown_default_executor`." -msgstr "" +msgstr "Actualizado para usar :meth:`loop.shutdown_default_executor`." #: ../Doc/library/asyncio-task.rst:244 msgid "" @@ -448,6 +449,12 @@ msgid "" "calling ``gather.cancel()`` after catching an exception (raised by one of " "the awaitables) from gather won't cancel any other awaitables." msgstr "" +"Si *return_exceptions* es False, cancelar gather() después de que se haya " +"marcado como hecho no cancelará ninguna espera enviada. Por ejemplo, la " +"recopilación se puede marcar como hecha después de propagar una excepción a " +"la persona que llama, por lo tanto, llamar a ``gather.cancel()`` después de " +"detectar una excepción (generada por uno de los elementos pendientes) de " +"recopilación no cancelará ningún otro elemento pendiente." #: ../Doc/library/asyncio-task.rst:398 msgid "" @@ -550,14 +557,14 @@ msgstr "" "en :func:`shield`." #: ../Doc/library/asyncio-task.rst:463 -#, fuzzy msgid "" "The function will wait until the future is actually cancelled, so the total " "wait time may exceed the *timeout*. If an exception happens during " "cancellation, it is propagated." msgstr "" -"La función esperará hasta que el futuro este cancelado, por lo que el tiempo " -"de espera total puede superar el *timeout*." +"La función esperará hasta que se cancele el futuro, por lo que el tiempo de " +"espera total puede exceder el *timeout*. Si ocurre una excepción durante la " +"cancelación, se propaga." #: ../Doc/library/asyncio-task.rst:467 msgid "If the wait is cancelled, the future *aw* is also cancelled." @@ -577,18 +584,16 @@ msgid "Waiting Primitives" msgstr "Esperando Primitivas" #: ../Doc/library/asyncio-task.rst:506 -#, fuzzy msgid "" "Run :ref:`awaitable objects ` in the *aws* iterable " "concurrently and block until the condition specified by *return_when*." msgstr "" -"Ejecute :ref:`objetos esperables ` en el conjunto *aws* " -"simultáneamente y bloquee hasta que la condición especificada por " -"*return_when*." +"Ejecuta :ref:`objetos en espera ` en el *aws* iterable " +"simultáneamente y bloquee hasta la condición especificada por *return_when*." #: ../Doc/library/asyncio-task.rst:510 msgid "The *aws* iterable must not be empty." -msgstr "" +msgstr "El iterable *aws* no debe estar vacío." #: ../Doc/library/asyncio-task.rst:512 msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." @@ -708,6 +713,10 @@ msgid "" "be awaited to get the earliest next result from the iterable of the " "remaining awaitables." msgstr "" +"Ejecuta :ref:`objetos en espera ` en el *aws* iterable " +"al mismo tiempo. Devuelve un iterador de corrutinas. Se puede esperar a cada " +"corrutina devuelta para obtener el siguiente resultado más temprano del " +"iterable de los esperables restantes." #: ../Doc/library/asyncio-task.rst:600 msgid "" @@ -719,11 +728,11 @@ msgstr "" #: ../Doc/library/asyncio-task.rst:614 msgid "Running in Threads" -msgstr "" +msgstr "Ejecutando en Hilos" #: ../Doc/library/asyncio-task.rst:618 msgid "Asynchronously run function *func* in a separate thread." -msgstr "" +msgstr "Ejecutar asincrónicamente la función *func* en un hilo separado." #: ../Doc/library/asyncio-task.rst:620 msgid "" @@ -732,11 +741,17 @@ msgid "" "allowing context variables from the event loop thread to be accessed in the " "separate thread." msgstr "" +"Cualquier \\*args y \\*\\*kwargs suministrados para esta función se pasan " +"directamente a *func*. Además, el current :class:`contextvars.Context` se " +"propaga, lo que permite acceder a las variables de contexto del subproceso " +"del bucle de eventos en el subproceso separado." #: ../Doc/library/asyncio-task.rst:625 msgid "" "Return a coroutine that can be awaited to get the eventual result of *func*." msgstr "" +"Retorna una corrutina que se puede esperar para obtener el resultado final " +"de *func*." #: ../Doc/library/asyncio-task.rst:627 msgid "" @@ -744,6 +759,9 @@ msgid "" "bound functions/methods that would otherwise block the event loop if they " "were ran in the main thread. For example::" msgstr "" +"Esta función de corrutina está destinada principalmente a ser utilizada para " +"ejecutar funciones/métodos vinculados a IO que de otro modo bloquearían el " +"bucle de eventos si se ejecutaran en el hilo principal. Por ejemplo::" #: ../Doc/library/asyncio-task.rst:657 msgid "" @@ -752,6 +770,10 @@ msgid "" "by using `asyncio.to_thread()`, we can run it in a separate thread without " "blocking the event loop." msgstr "" +"Llamando directamente a `blocking_io()` en cualquier corrutina bloquearía el " +"bucle de eventos por su duración, lo que daría como resultado 1 segundo " +"adicional de tiempo de ejecución. En cambio, usando `asyncio.to_thread()`, " +"podemos ejecutarlo en un hilo separado sin bloquear el bucle de eventos." #: ../Doc/library/asyncio-task.rst:664 msgid "" @@ -760,6 +782,11 @@ msgid "" "release the GIL or alternative Python implementations that don't have one, " "`asyncio.to_thread()` can also be used for CPU-bound functions." msgstr "" +"Debido al :term:`GIL`, `asyncio.to_thread()` normalmente solo se puede usar " +"para hacer que las funciones vinculadas a IO no bloqueen. Sin embargo, para " +"los módulos de extensión que lanzan GIL o implementaciones alternativas de " +"Python que no tienen una, `asyncio.to_thread()` también se puede usar para " +"funciones vinculadas a la CPU." #: ../Doc/library/asyncio-task.rst:673 msgid "Scheduling From Other Threads" @@ -962,9 +989,8 @@ msgstr "" "desalienta activamente." #: ../Doc/library/asyncio-task.rst:809 -#, fuzzy msgid "Added the ``msg`` parameter." -msgstr "Se ha añadido el parámetro ``name``." +msgstr "Se agregó el parámetro ``msg``." #: ../Doc/library/asyncio-task.rst:814 msgid "" diff --git a/library/asyncore.po b/library/asyncore.po index 7fb4598f13..69d5b8e249 100644 --- a/library/asyncore.po +++ b/library/asyncore.po @@ -9,15 +9,14 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-07-18 19:18-0500\n" +"PO-Revision-Date: 2021-08-04 13:36+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: Juan Diego Alfonso Ocampo \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/asyncore.rst:2 msgid ":mod:`asyncore` --- Asynchronous socket handler" @@ -468,7 +467,7 @@ msgid "" "`fileno` method, that method will be called and passed to the :class:" "`file_wrapper` constructor." msgstr "" -"file_dispatcher toma un descriptor de archivo o :term:`file object` junto " +"Un file_dispatcher toma un descriptor de archivo o :term:`file object` junto " "con un argumento de mapa opcional y lo ajusta para su uso con las funciones :" "c:func:`poll` o :c:func:`loop`. Si se proporciona un objeto de archivo o " "cualquier cosa con un método :c:func:`fileno`, ese método se llamará y se " @@ -485,9 +484,9 @@ msgid "" "of the file_wrapper. This class implements sufficient methods to emulate a " "socket for use by the :class:`file_dispatcher` class." msgstr "" -"file_wrapper toma un descriptor de archivo entero y llama a :func:`os.dup` " -"para duplicar el identificador de modo que el identificador original se " -"pueda cerrar independientemente del file_wrapper. Esta clase implementa " +"Un file_wrapper toma un descriptor de archivo entero y llama a :func:`os." +"dup` para duplicar el identificador de modo que el identificador original se " +"pueda cerrar independientemente del file_wrapper. Esta clase implementa " "métodos suficientes emulando un socket para su uso por la clase :class:" "`file_dispatcher`." diff --git a/library/audioop.po b/library/audioop.po index 8b43b44371..710e38f5cb 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-09-28 18:25-0500\n" +"PO-Revision-Date: 2021-08-07 10:34+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Adolfo Hristo David Roque Gámez \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.4\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/audioop.rst:2 msgid ":mod:`audioop` --- Manipulate raw audio data" @@ -152,9 +152,9 @@ msgid "" "both contain 2-byte samples." msgstr "" "Retorna un factor *F* tal que ``rms(add(fragment, mul(reference, -F)))`` sea " -"minimal, i.e., retorna el factor con el cual debes multiplicar la " -"*reference* para hacerlo coincidir tanto como sea posible a *fragment*. Los " -"fragmentos deben contener muestras de 2-byte." +"mínimo, i.e., retorna el factor con el cual debes multiplicar la *reference* " +"para hacerlo coincidir tanto como sea posible a *fragment*. Los fragmentos " +"deben contener muestras de 2-byte." #: ../Doc/library/audioop.rst:99 msgid "The time taken by this routine is proportional to ``len(fragment)``." @@ -187,7 +187,7 @@ msgid "" msgstr "" "Inspecciona *fragment* por un segmento de longitud *length* muestras (¡no " "bytes!) con la energía máxima, i.e., retorna *i* por el cual " -"``rms(fragment[i*2:(i+length)*2])`` es maximal. Los fragmentos deben " +"``rms(fragment[i*2:(i+length)*2])`` es máximo. Los fragmentos deben " "contener muestras de 2 bytes." #: ../Doc/library/audioop.rst:119 @@ -206,7 +206,7 @@ msgid "" "algorithm has been selected for use by the IMA, so it may well become a " "standard." msgstr "" -"Convierte las muestras en codificaciones Indel/DVI ADPCM de 4 bits. La " +"Convierte las muestras en codificaciones Intel/DVI ADPCM de 4 bits. La " "codificación ADPCM es un esquema de codificación adaptativo a través del " "cual cada número de 4 bits es la diferencia entre una muestra y la " "siguiente, dividido por un paso (inconsistente). El algoritmo de Intel/DVI " @@ -214,7 +214,6 @@ msgstr "" "convertirse en un estándar." #: ../Doc/library/audioop.rst:134 -#, fuzzy msgid "" "*state* is a tuple containing the state of the coder. The coder returns a " "tuple ``(adpcmfrag, newstate)``, and the *newstate* should be passed to the " @@ -222,11 +221,11 @@ msgid "" "as the state. *adpcmfrag* is the ADPCM coded fragment packed 2 4-bit values " "per byte." msgstr "" -"*state* es una tupla que contiene el estado del codificador. El codificador " -"retorna una tupla ``(adpcmfrag, newstate)``, y el *newstate* debe ser pasado " -"en la siguiente llamada de :func:`lin2adpcm`. En la llamada inicial, Se " -"puede pasar ``None`` como el estado. *adpcmfrag* es el fragmento codificado " -"con 2 a 4 bits de valores comprimidos por byte." +"*state* es una tupla que contiene el estado del codificador. El codificador " +"retorna una tupla ``(adpcmfrag, newstate)``, y el *newstate* debe pasarse a " +"la siguiente llamada de :func:`lin2adpcm`. En la llamada inicial, se puede " +"pasar ``None`` como estado. *adpcmfrag* es el fragmento codificado ADPCM " +"empaquetado 2 valores de 4 bits por byte." #: ../Doc/library/audioop.rst:142 msgid "" diff --git a/library/audit_events.po b/library/audit_events.po index ed7c5087fa..0f3cf663a1 100644 --- a/library/audit_events.po +++ b/library/audit_events.po @@ -4,21 +4,21 @@ # package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Xavi Rambla\n" +"PO-Revision-Date: 2021-08-07 10:33+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: es \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/audit_events.rst:6 msgid "Audit events table" @@ -59,74 +59,77 @@ msgid "" "The following events are raised internally and do not correspond to any " "public API of CPython:" msgstr "" +"Los siguientes eventos se generan internamente y no corresponden a ninguna " +"API pública de CPython:" #: ../Doc/library/audit_events.rst:27 -#, fuzzy msgid "Audit event" -msgstr "Tabla de auditoría de eventos" +msgstr "Evento de auditoría" #: ../Doc/library/audit_events.rst:27 msgid "Arguments" -msgstr "" +msgstr "Argumentos" #: ../Doc/library/audit_events.rst:29 msgid "_winapi.CreateFile" -msgstr "" +msgstr "_winapi.CreateFile" #: ../Doc/library/audit_events.rst:29 msgid "" "``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " "``flags_and_attributes``" msgstr "" +"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " +"``flags_and_attributes``" #: ../Doc/library/audit_events.rst:33 msgid "_winapi.CreateJunction" -msgstr "" +msgstr "_winapi.CreateJunction" #: ../Doc/library/audit_events.rst:33 msgid "``src_path``, ``dst_path``" -msgstr "" +msgstr "``src_path``, ``dst_path``" #: ../Doc/library/audit_events.rst:35 msgid "_winapi.CreateNamedPipe" -msgstr "" +msgstr "_winapi.CreateNamedPipe" #: ../Doc/library/audit_events.rst:35 msgid "``name``, ``open_mode``, ``pipe_mode``" -msgstr "" +msgstr "``name``, ``open_mode``, ``pipe_mode``" #: ../Doc/library/audit_events.rst:37 msgid "_winapi.CreatePipe" -msgstr "" +msgstr "_winapi.CreatePipe" #: ../Doc/library/audit_events.rst:39 msgid "_winapi.CreateProcess" -msgstr "" +msgstr "_winapi.CreateProcess" #: ../Doc/library/audit_events.rst:39 msgid "``application_name``, ``command_line``, ``current_directory``" -msgstr "" +msgstr "``application_name``, ``command_line``, ``current_directory``" #: ../Doc/library/audit_events.rst:42 msgid "_winapi.OpenProcess" -msgstr "" +msgstr "_winapi.OpenProcess" #: ../Doc/library/audit_events.rst:42 msgid "``process_id``, ``desired_access``" -msgstr "" +msgstr "``process_id``, ``desired_access``" #: ../Doc/library/audit_events.rst:44 msgid "_winapi.TerminateProcess" -msgstr "" +msgstr "_winapi.TerminateProcess" #: ../Doc/library/audit_events.rst:44 msgid "``handle``, ``exit_code``" -msgstr "" +msgstr "``handle``, ``exit_code``" #: ../Doc/library/audit_events.rst:46 msgid "ctypes.PyObj_FromPtr" -msgstr "" +msgstr "ctypes.PyObj_FromPtr" #: ../Doc/library/audit_events.rst:46 msgid "``obj``" -msgstr "" +msgstr "``obj``" diff --git a/library/binascii.po b/library/binascii.po index c25afd56b5..344d6844bb 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -11,16 +11,16 @@ 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: 2020-07-15 21:14-0500\n" +"PO-Revision-Date: 2021-08-07 10:32+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_CO\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/binascii.rst:2 msgid ":mod:`binascii` --- Convert between binary and ASCII" @@ -58,8 +58,8 @@ msgstr "" #: ../Doc/library/binascii.rst:29 msgid "ASCII-only unicode strings are now accepted by the ``a2b_*`` functions." msgstr "" -"Las cadenas ASCII-only unicode son ahora aceptadas por las funciones " -"``a2b_*``." +"Las cadenas unicode con sólo caracteres ASCII son ahora aceptadas por las " +"funciones ``a2b_*``." #: ../Doc/library/binascii.rst:33 msgid "The :mod:`binascii` module defines the following functions:" @@ -308,12 +308,11 @@ msgid "Module :mod:`base64`" msgstr "Módulo :mod:`base64`" #: ../Doc/library/binascii.rst:202 -#, fuzzy msgid "" "Support for RFC compliant base64-style encoding in base 16, 32, 64, and 85." msgstr "" -"Soporte para compatibilidad con RFC de codificación de estilo base64 en " -"base 16, 32, 64 y 85." +"Soporte para compatibilidad con RFC de codificación de estilo base64 en base " +"16, 32, 64 y 85." #: ../Doc/library/binascii.rst:206 msgid "Module :mod:`binhex`" diff --git a/library/bz2.po b/library/bz2.po index 935f880c8c..c08325fa19 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -12,15 +12,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-26 19:37+0200\n" -"Last-Translator: Santiago E Fraire Willemoes \n" +"PO-Revision-Date: 2021-08-24 21:45+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: en_GB\n" "Language-Team: English - United Kingdom \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/bz2.rst:2 msgid ":mod:`bz2` --- Support for :program:`bzip2` compression" @@ -274,10 +275,15 @@ msgid "" "The *buffering* parameter has been removed. It was ignored and deprecated " "since Python 3.0. Pass an open file object to control how the file is opened." msgstr "" +"El parámetro *buffering* ha sido retirado. Desde Python 3.0 era ignorado y " +"estaba obsoleto. Pasa un objeto archivo abierto para controlar cómo el " +"archivo es abierto." #: ../Doc/library/bz2.rst:141 msgid "The *compresslevel* parameter became keyword-only." msgstr "" +"El parámetro *compresslevel* se convirtió en un argumento sólo por palabra " +"clave." #: ../Doc/library/bz2.rst:145 msgid "Incremental (de)compression" @@ -404,7 +410,7 @@ msgstr "" #: ../Doc/library/bz2.rst:209 msgid "Added the *max_length* parameter." -msgstr "Añadido el parámetro *max_length*" +msgstr "Añadido el parámetro *max_length*." #: ../Doc/library/bz2.rst:214 msgid "``True`` if the end-of-stream marker has been reached." diff --git a/library/calendar.po b/library/calendar.po index e07773c820..5a14d6184d 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-30 10:11-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 10:31+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/calendar.rst:2 msgid ":mod:`calendar` --- General calendar-related functions" @@ -503,15 +504,14 @@ msgstr "" "mes, para el *year* y *month* especificados." #: ../Doc/library/calendar.rst:351 -#, fuzzy msgid "" "Returns a matrix representing a month's calendar. Each row represents a " "week; days outside of the month are represented by zeros. Each week begins " "with Monday unless set by :func:`setfirstweekday`." msgstr "" "Retorna una matriz que representa el calendario de un mes. Cada fila " -"representa una semana; los días fuera del mes están representados por ceros. " -"Cada semana comienza con el lunes, a menos que se establezca por :func:" +"representa una semana; los días fuera del mes se representan con ceros. Cada " +"semana comienza con el lunes a menos que lo establezca :func:" "`setfirstweekday`." #: ../Doc/library/calendar.rst:358 diff --git a/library/cgi.po b/library/cgi.po index dd8abd2bb6..f01eaac83f 100644 --- a/library/cgi.po +++ b/library/cgi.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-22 15:27-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 10:31+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/cgi.rst:2 msgid ":mod:`cgi` --- Common Gateway Interface support" @@ -485,15 +486,15 @@ msgstr "" "algoritmos implementados en este módulo en otras circunstancias." #: ../Doc/library/cgi.rst:282 -#, fuzzy msgid "" "Parse a query in the environment or from a file (the file defaults to ``sys." "stdin``). The *keep_blank_values*, *strict_parsing* and *separator* " "parameters are passed to :func:`urllib.parse.parse_qs` unchanged." msgstr "" -"Analiza una consulta en el entorno o desde un archivo (el archivo tiene como " -"valor predeterminado ``sys.stdin``). Los parámetros *keep_blank_values* y " -"*strict_parsing* se pasan a :func:`urllib.parse.parse_qs` sin cambios." +"Analiza una consulta en el entorno o desde un archivo (el archivo " +"predeterminado es ``sys.stdin``). Los parámetros *keep_blank_values*, " +"*strict_parsing* y *separator* se pasan a :func:`urllib.parse.parse_qs` sin " +"cambios." #: ../Doc/library/cgi.rst:289 msgid "" @@ -539,7 +540,7 @@ msgstr "" #: ../Doc/library/cgi.rst:306 msgid "Added the *separator* parameter." -msgstr "" +msgstr "Agregado el parámetro *separator*." #: ../Doc/library/cgi.rst:312 msgid "" diff --git a/library/cmd.po b/library/cmd.po index 9eac3d1e0c..b55fdb52f8 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -432,7 +432,7 @@ msgstr "" "implementado con el método :meth:`~Cmd.precmd` el cuál es el responsable de " "convertir la entrada a minúscula y escribir los comandos en un archivo. El " "método :meth:`do_playback` lee el archivo y añade los comandos grabados al :" -"attr:`cmdqueue` para un playback: inmediato:" +"attr:`cmdqueue` para una reproducción inmediata::" #: ../Doc/library/cmd.rst:320 msgid "" diff --git a/library/code.po b/library/code.po index 1386bdfc0f..3a24c0dc8c 100644 --- a/library/code.po +++ b/library/code.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-04 14:57-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 10:30+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/code.rst:2 msgid ":mod:`code` --- Interpreter base classes" @@ -110,7 +111,6 @@ msgstr "" "la misma decisión que el bucle principal del intérprete real." #: ../Doc/library/code.rst:57 -#, fuzzy msgid "" "*source* is the source string; *filename* is the optional filename from " "which source was read, defaulting to ``''``; and *symbol* is the " @@ -120,7 +120,7 @@ msgstr "" "*source* es la cadena de caracteres fuente; *filename* es el nombre de " "archivo opcional desde el que se leyó la fuente, por defecto es " "``''``; y *symbol* es el símbolo de inicio gramatical opcional, que " -"debería ser ``'single'`` (el predeterminado) o ``'eval'``." +"debería ser ``'single'`` (el predeterminado), ``'eval'`` o ``'exec'``." #: ../Doc/library/code.rst:62 msgid "" diff --git a/library/codecs.po b/library/codecs.po index dbcd016e5d..d15fdd965b 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-24 19:55+0200\n" +"PO-Revision-Date: 2021-08-07 10:29+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/codecs.rst:2 msgid ":mod:`codecs` --- Codec registry and base classes" @@ -1222,9 +1223,9 @@ msgstr "" "no admiten este método." #: ../Doc/library/codecs.rst:697 ../Doc/library/codecs.rst:792 -#, fuzzy msgid "Resets the codec buffers used for keeping internal state." -msgstr "Restablece los búferes de códec utilizados para mantener el estado." +msgstr "" +"Restablece los búfers de códec utilizados para mantener el estado interno." #: ../Doc/library/codecs.rst:699 msgid "" @@ -2923,7 +2924,7 @@ msgstr "" "Codificación adecuada como contenido de un literal Unicode en código fuente " "Python codificado en ASCII, excepto que no se escapan las comillas. " "Decodificar desde el código fuente Latin-1. Tenga en cuenta que el código " -"fuente de Python realmente usa UTF-8 por defecto" +"fuente de Python realmente usa UTF-8 por defecto." #: ../Doc/library/codecs.rst:1319 msgid "\"unicode_internal\" codec is removed." diff --git a/library/collections.abc.po b/library/collections.abc.po index 7b6f72738d..0144f26450 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-11 10:01-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 10:29+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/collections.abc.rst:2 msgid ":mod:`collections.abc` --- Abstract Base Classes for Containers" @@ -335,24 +336,20 @@ msgid "``aclose``, ``__aiter__``, ``__anext__``" msgstr "``aclose``, ``__aiter__``, ``__anext__``" #: ../Doc/library/collections.abc.rst:102 -#, fuzzy msgid "ABC for classes that provide the :meth:`__contains__` method." -msgstr "ABC para clases que proporcionan el método :meth:`__iter__`." +msgstr "ABC para clases que proporcionan el método :meth:`__contains__`." #: ../Doc/library/collections.abc.rst:106 -#, fuzzy msgid "ABC for classes that provide the :meth:`__hash__` method." -msgstr "ABC para clases que proporcionan el método :meth:`__iter__`." +msgstr "ABC para clases que proporcionan el método :meth:`__hash__`." #: ../Doc/library/collections.abc.rst:110 -#, fuzzy msgid "ABC for classes that provide the :meth:`__len__` method." -msgstr "ABC para clases que proporcionan el método :meth:`__iter__`." +msgstr "ABC para clases que proporcionan el método :meth:`__len__`." #: ../Doc/library/collections.abc.rst:114 -#, fuzzy msgid "ABC for classes that provide the :meth:`__call__` method." -msgstr "ABC para clases que proporcionan el método :meth:`__iter__`." +msgstr "ABC para clases que proporcionan el método :meth:`__call__`." #: ../Doc/library/collections.abc.rst:118 msgid "ABC for classes that provide the :meth:`__iter__` method." @@ -454,7 +451,6 @@ msgstr "" "método :meth:`__await__`." #: ../Doc/library/collections.abc.rst:196 -#, fuzzy msgid "" ":term:`Coroutine ` objects and instances of the :class:" "`~collections.abc.Coroutine` ABC are all instances of this ABC." @@ -560,7 +556,6 @@ msgstr "" "Notas sobre el uso de :class:`Set` y :class:`MutableSet` como un mixin:" #: ../Doc/library/collections.abc.rst:287 -#, fuzzy msgid "" "Since some set operations create new sets, the default mixin methods need a " "way to create new instances from an iterable. The class constructor is " @@ -574,13 +569,14 @@ msgid "" msgstr "" "Dado que algunas operaciones de conjuntos crean nuevos conjuntos, los " "métodos mixin predeterminados necesitan una forma de crear nuevas instancias " -"desde un iterable. Se supone que el constructor de la clase tiene una firma " -"en el formato ``ClassName (iterable)``. Esa suposición se tiene en cuenta " -"para una clase interna llamada :meth:`_from_iterable` que llama a " +"a partir de un iterable. Se supone que el constructor de la clase tiene una " +"firma con el formato ``ClassName(iterable)``. Esa suposición se factoriza en " +"un método de clase interno llamado :meth:`_from_iterable` que llama a " "``cls(iterable)`` para producir un nuevo conjunto. Si el mixin :class:`Set` " -"se está utilizando en una clase con una firma de constructor diferente, " -"deberá reemplazar :meth:`_from_iterable` con un método de clase que pueda " -"construir nuevas instancias a partir de un argumento iterable." +"se está usando en una clase con una firma de constructor diferente, " +"necesitarás anular :meth:`_from_iterable` con un método de clase o método " +"regular que pueda construir nuevas instancias a partir de un argumento " +"iterable." #: ../Doc/library/collections.abc.rst:298 msgid "" diff --git a/library/collections.po b/library/collections.po index 5ecd5ae5f5..b556cca366 100644 --- a/library/collections.po +++ b/library/collections.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-11-20 10:41-0500\n" -"Last-Translator: Javier Daza C\n" +"PO-Revision-Date: 2021-08-07 10:27+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/collections.rst:2 msgid ":mod:`collections` --- Container datatypes" @@ -277,6 +278,8 @@ msgstr "" #: ../Doc/library/collections.rst:119 msgid "Added support for ``|`` and ``|=`` operators, specified in :pep:`584`." msgstr "" +"Se agregó soporte para los operadores ``|`` y ``|=``, especificados en :pep:" +"`584`." #: ../Doc/library/collections.rst:124 msgid "" @@ -291,7 +294,6 @@ msgstr "" "admitir la escritura en cualquier mapeo de la cadena." #: ../Doc/library/collections.rst:130 -#, fuzzy msgid "" "Django's `Context class `_ for templating is a read-only chain of mappings. It " @@ -301,7 +303,7 @@ msgid "" msgstr "" "La clase de Django `Context `_ para crear plantillas es una cadena de mapeo " -"de solo lectura. También presenta características de pushing y popping de " +"de solo lectura. También presenta características de pushing y popping de " "contextos similar al método :meth:`~collections.ChainMap.new_child` y a la " "propiedad :attr:`~collections.ChainMap.parents` ." @@ -1022,6 +1024,8 @@ msgstr "" msgid "" "Added merge (``|``) and update (``|=``) operators, specified in :pep:`584`." msgstr "" +"Se agregaron los operadores unir (``|``) y actualizar (``|=``), " +"especificados en :pep:`584`." #: ../Doc/library/collections.rst:741 msgid ":class:`defaultdict` Examples" @@ -1203,6 +1207,8 @@ msgid "" "To support pickling, the named tuple class should be assigned to a variable " "that matches *typename*." msgstr "" +"Para admitir el serializado (*pickling*), la clase tupla con nombre debe " +"asignarse a una variable que coincida con *typename*." #: ../Doc/library/collections.rst:855 msgid "Added support for *rename*." @@ -1669,7 +1675,6 @@ msgstr "" "class:`UserList` ." #: ../Doc/library/collections.rst:1230 -#, fuzzy msgid "" "**Subclassing requirements:** Subclasses of :class:`UserList` are expected " "to offer a constructor which can be called with either no arguments or one " diff --git a/library/colorsys.po b/library/colorsys.po index 48a0149166..12413731cd 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-05 15:02+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 10:24+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/colorsys.rst:2 msgid ":mod:`colorsys` --- Conversions between color systems" @@ -51,7 +52,6 @@ msgstr "" "espacios, las coordenadas están todas entre 0 y 1." #: ../Doc/library/colorsys.rst:23 -#, fuzzy msgid "" "More information about color spaces can be found at https://poynton.ca/" "ColorFAQ.html and https://www.cambridgeincolour.com/tutorials/color-spaces." diff --git a/library/compileall.po b/library/compileall.po index a88b0d92f1..2bfdb0fafe 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-31 22:48-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 16:20+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/compileall.rst:2 msgid ":mod:`compileall` --- Byte-compile Python libraries" @@ -109,6 +110,8 @@ msgid "" "Remove (``-s``) or append (``-p``) the given prefix of paths recorded in the " "``.pyc`` files. Cannot be combined with ``-d``." msgstr "" +"Elimina (``-s``) o agrega (``-p``) el prefijo dado de rutas registradas en " +"los archivos ``.pyc``. No se puede combinar con ``-d``." #: ../Doc/library/compileall.rst:64 msgid "" @@ -190,16 +193,20 @@ msgid "" "compile for multiple levels at a time (for example, ``compileall -o 1 -o " "2``)." msgstr "" +"Compila con el nivel de optimización dado. Puede usarse varias veces para " +"compilar varios niveles a la vez (por ejemplo, ``compileall -o 1 -o 2``)." #: ../Doc/library/compileall.rst:114 msgid "Ignore symlinks pointing outside the given directory." -msgstr "" +msgstr "Ignora los enlaces simbólicos que apuntan fuera del directorio dado." #: ../Doc/library/compileall.rst:118 msgid "" "If two ``.pyc`` files with different optimization level have the same " "content, use hard links to consolidate duplicate files." msgstr "" +"Si dos archivos ``.pyc`` con diferente nivel de optimización tienen el mismo " +"contenido, use enlaces físicos para consolidar los archivos duplicados." #: ../Doc/library/compileall.rst:121 msgid "Added the ``-i``, ``-b`` and ``-h`` options." @@ -225,6 +232,10 @@ msgid "" "the default recursion limit from 10 to :py:func:`sys.getrecursionlimit()`. " "Added the possibility to specify the ``-o`` option multiple times." msgstr "" +"Se agregaron las opciones ``-s``, ``-p``, ``-e`` y ``--hardlink-dupes``. Se " +"elevó el límite de recursividad predeterminado de 10 a :py:func:`sys." +"getrecursionlimit()`. Se agregó la posibilidad de especificar la opción ``-" +"o`` varias veces." #: ../Doc/library/compileall.rst:139 msgid "" @@ -264,13 +275,12 @@ msgstr "" "y un valor falso en el caso contrario." #: ../Doc/library/compileall.rst:157 -#, fuzzy msgid "" "The *maxlevels* parameter is used to limit the depth of the recursion; it " "defaults to ``sys.getrecursionlimit()``." msgstr "" "El parámetro *maxlevels* se usar para limitar la profundidad de la " -"recursión; toma como valor predeterminado ``10``." +"recursión; toma como valor predeterminado ``sys.getrecursionlimit()``." #: ../Doc/library/compileall.rst:160 msgid "" @@ -331,7 +341,6 @@ msgstr "" "coexistan." #: ../Doc/library/compileall.rst:183 ../Doc/library/compileall.rst:259 -#, fuzzy msgid "" "*optimize* specifies the optimization level for the compiler. It is passed " "to the built-in :func:`compile` function. Accepts also a sequence of " @@ -339,7 +348,9 @@ msgid "" "file in one call." msgstr "" "*optimize* especifica el nivel de optimización para el compilador. Se pasa a " -"una función incorporada :func:`compile`." +"una función incorporada :func:`compile`. Acepta también una secuencia de " +"niveles de optimización que conducen a múltiples compilaciones de un " +"archivo :file:`.py` en una llamada." #: ../Doc/library/compileall.rst:187 msgid "" @@ -373,6 +384,9 @@ msgid "" "``-s``, ``-p`` and ``-e`` options described above. They may be specified as " "``str``, ``bytes`` or :py:class:`os.PathLike`." msgstr "" +"Los argumentos *stripdir*, *prependdir* y *limit_sl_dest* corresponden a las " +"opciones ``-s``, ``-p`` y ``-e`` descritas anteriormente. Pueden " +"especificarse como ``str``, ``bytes`` o :py:class:`os.PathLike`." #: ../Doc/library/compileall.rst:202 ../Doc/library/compileall.rst:271 msgid "" @@ -380,6 +394,9 @@ msgid "" "optimization level have the same content, use hard links to consolidate " "duplicate files." msgstr "" +"Si *hardlink_dupes* es verdadero y dos archivos ``.pyc`` con diferente nivel " +"de optimización tienen el mismo contenido, use enlaces físicos para " +"consolidar los archivos duplicados." #: ../Doc/library/compileall.rst:205 ../Doc/library/compileall.rst:302 msgid "Added the *legacy* and *optimize* parameter." @@ -429,6 +446,9 @@ msgid "" "arguments. Default value of *maxlevels* was changed from ``10`` to ``sys." "getrecursionlimit()``" msgstr "" +"Se agregaron los argumentos *stripdir*, *prependdir*, *limit_sl_dest* y " +"*hardlink_dupes*. El valor predeterminado de *maxlevels* se cambió de ``10`` " +"a ``sys.getrecursionlimit()``" #: ../Doc/library/compileall.rst:236 msgid "" @@ -467,6 +487,8 @@ msgid "" "Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* " "arguments." msgstr "" +"Se agregaron los argumentos *stripdir*, *prependdir*, *limit_sl_dest* y " +"*hardlink_dupes*." #: ../Doc/library/compileall.rst:294 msgid "" @@ -501,8 +523,8 @@ msgstr "" #: ../Doc/library/compileall.rst:335 msgid "Module :mod:`py_compile`" -msgstr "" +msgstr "Módulo :mod:`py_compile`" #: ../Doc/library/compileall.rst:336 msgid "Byte-compile a single source file." -msgstr "" +msgstr "Compilación byte de un solo archivo fuente." diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index 000e57b56a..7843fe48eb 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-28 16:00-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 17:05+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/concurrent.futures.rst:2 msgid ":mod:`concurrent.futures` --- Launching parallel tasks" @@ -116,7 +117,6 @@ msgstr "" "lanzada cuando su valor sea retornado por el iterador." #: ../Doc/library/concurrent.futures.rst:59 -#, fuzzy msgid "" "When using :class:`ProcessPoolExecutor`, this method chops *iterables* into " "a number of chunks which it submits to the pool as separate tasks. The " @@ -130,7 +130,7 @@ msgstr "" "(aproximado) de estos fragmentos puede especificarse estableciendo " "*chunksize* a un entero positivo. El uso de un valor grande para *chunksize* " "puede mejorar significativamente el rendimiento en comparación con el tamaño " -"predeterminado de 1. Con :class:`ThreadPoolExecutor`, el *chunksize* no " +"predeterminado de 1. Con :class:`ThreadPoolExecutor`, el *chunksize* no " "tiene ningún efecto." #: ../Doc/library/concurrent.futures.rst:67 @@ -173,6 +173,10 @@ msgid "" "that the executor has not started running. Any futures that are completed or " "running won't be cancelled, regardless of the value of *cancel_futures*." msgstr "" +"Si *cancel_futures* es ``True``, este método cancelará todos los futuros " +"pendientes que el ejecutor no ha comenzado a ejecutar. Los futuros que se " +"completen o estén en ejecución no se cancelarán, independientemente del " +"valor de *cancel_futures*." #: ../Doc/library/concurrent.futures.rst:90 msgid "" @@ -180,22 +184,24 @@ msgid "" "executor has started running will be completed prior to this method " "returning. The remaining futures are cancelled." msgstr "" +"Si tanto *cancel_futures* como *wait* son ``True``, todos los futuros que el " +"ejecutor ha comenzado a ejecutar se completarán antes de que regrese este " +"método. Los futuros restantes se cancelan." #: ../Doc/library/concurrent.futures.rst:94 -#, fuzzy msgid "" "You can avoid having to call this method explicitly if you use the :keyword:" "`with` statement, which will shutdown the :class:`Executor` (waiting as if :" "meth:`Executor.shutdown` were called with *wait* set to ``True``)::" msgstr "" "Se puede evitar tener que llamar este método explícitamente si se usa la " -"sentencia :keyword:`with`, la cual apagará el :class:`Executor` (esperando " +"sentencia :keyword:`with`, la cual apagará el :class:`Executor` (esperando " "como si :meth:`Executor.shutdown` hubiera sido llamado con *wait* en " "``True``)::" #: ../Doc/library/concurrent.futures.rst:106 msgid "Added *cancel_futures*." -msgstr "" +msgstr "Agregado *cancel_futures*." #: ../Doc/library/concurrent.futures.rst:111 msgid "ThreadPoolExecutor" @@ -303,7 +309,6 @@ msgid "ProcessPoolExecutor" msgstr "ProcessPoolExecutor" #: ../Doc/library/concurrent.futures.rst:221 -#, fuzzy msgid "" "The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that " "uses a pool of processes to execute calls asynchronously. :class:" @@ -312,12 +317,12 @@ msgid "" "lock>` but also means that only picklable objects can be executed and " "returned." msgstr "" -"La clase :class:`ProcessPoolExecutor` es una subclase de :class:`Executor` " -"que utiliza un grupo de procesos para ejecutar llamadas de forma " -"asincrónica. :class:`ProcessPoolExecutor` usa el módulo :mod:" -"`multiprocessing`, lo cual le permite evitar el :term:`Global Interpreter " -"Lock` pero también significa que solo se pueden ejecutar y retornar objetos " -"serializables con *pickle*." +"La clase :class:`ProcessPoolExecutor` es una subclase :class:`Executor` que " +"usa un grupo de procesos para ejecutar llamadas de forma asíncrona. :class:" +"`ProcessPoolExecutor` usa el módulo :mod:`multiprocessing`, que le permite " +"eludir el :term:`Global Interpreter Lock ` pero " +"también significa que solo los objetos seleccionables pueden ser ejecutados " +"y retornados." #: ../Doc/library/concurrent.futures.rst:228 msgid "" @@ -338,7 +343,6 @@ msgstr "" "enviado a :class:`ProcessPoolExecutor` resultará en bloqueos mutuos." #: ../Doc/library/concurrent.futures.rst:236 -#, fuzzy msgid "" "An :class:`Executor` subclass that executes calls asynchronously using a " "pool of at most *max_workers* processes. If *max_workers* is ``None`` or " @@ -364,7 +368,6 @@ msgstr "" "se utilizará el contexto predeterminado de multiprocesamiento." #: ../Doc/library/concurrent.futures.rst:249 -#, fuzzy msgid "" "*initializer* is an optional callable that is called at the start of each " "worker process; *initargs* is a tuple of arguments passed to the " @@ -374,7 +377,7 @@ msgid "" msgstr "" "*initializer* es un invocable opcional que es llamado al comienzo de cada " "proceso trabajador; *initargs* es una tupla de argumentos pasados al " -"inicializador. Si el *initializer* lanza una excepción, todos los trabajos " +"inicializador. Si el *initializer* lanza una excepción, todos los trabajos " "actualmente pendientes lanzarán :exc:`~concurrent.futures.thread." "BrokenProcessPool`, así como cualquier intento de enviar más trabajos al " "grupo." @@ -514,7 +517,6 @@ msgstr "" "ejecución." #: ../Doc/library/concurrent.futures.rst:375 -#, fuzzy msgid "" "Added callables are called in the order that they were added and are always " "called in a thread belonging to the process that added them. If the " @@ -522,11 +524,11 @@ msgid "" "ignored. If the callable raises a :exc:`BaseException` subclass, the " "behavior is undefined." msgstr "" -"Los invocables agregados son llamados en el orden que fueron añadidos y son " -"llamados en el hilo que pertenece al proceso que los añadió. Si el invocable " -"lanza una subclase de :exc:`Exception`, esta será registrada e ignorada. Si " -"el invocable lanza una subclase de :exc:`BaseException` el comportamiento no " -"está definido." +"Los invocables agregados se llaman en el orden en que se agregaron y siempre " +"se llaman en un hilo que pertenece al proceso que los agregó. Si el " +"invocable genera una subclase :exc:`Exception`, se registrará y se ignorará. " +"Si el invocable genera una subclase :exc:`BaseException`, el comportamiento " +"no está definido." #: ../Doc/library/concurrent.futures.rst:381 msgid "" @@ -698,7 +700,6 @@ msgstr "" "La función retornará cuando todos los futuros finalicen o sean cancelados." #: ../Doc/library/concurrent.futures.rst:471 -#, fuzzy msgid "" "Returns an iterator over the :class:`Future` instances (possibly created by " "different :class:`Executor` instances) given by *fs* that yields futures as " @@ -712,14 +713,14 @@ msgid "" "wait time." msgstr "" "Retorna un iterador sobre las instancias de :class:`Future` (posiblemente " -"creadas por distintas instancias de ejecutores) dadas por *fs* que produce " -"futuros a medida que van finalizando (normalmente o cancelados). Cualquier " -"futuro dado por *fs* que esté duplicado será retornado una sola vez. Los " -"futuros que hayan finalizado antes de la llamada a :func:`as_completed` " -"serán entregados primero. El iterador retornado lanzará :exc:`concurrent." -"futures.TimeoutError` si :meth:`~iterator.__next__` es llamado y el " -"resultado no está disponible luego de *timeout* segundos a partir de la " -"llamada original a :func:`as_completed`. *timeout* puede ser un int o un " +"creadas por distintas instancias de :class:`Executor`) dadas por *fs* que " +"produce futuros a medida que van finalizando (normalmente o cancelados). " +"Cualquier futuro dado por *fs* que esté duplicado será retornado una sola " +"vez. Los futuros que hayan finalizado antes de la llamada a :func:" +"`as_completed` serán entregados primero. El iterador retornado lanzará :exc:" +"`concurrent.futures.TimeoutError` si :meth:`~iterator.__next__` es llamado y " +"el resultado no está disponible luego de *timeout* segundos a partir de la " +"llamada original a :func:`as_completed`. *timeout* puede ser un int o un " "float. Si *timeout* no es especificado o es ``None``, no hay limite en el " "tiempo de espera." diff --git a/library/configparser.po b/library/configparser.po index 1871e1d6f3..48bfd207ea 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -73,7 +73,7 @@ msgid "" "The json module implements a subset of JavaScript syntax which can also be " "used for this purpose." msgstr "" -"El módulo json implementa un subconjunto de la sintaxis de Javascript, que " +"El módulo json implementa un subconjunto de la sintaxis de JavaScript, que " "también puede utilizarse para este propósito." #: ../Doc/library/configparser.rst:51 diff --git a/library/constants.po b/library/constants.po index a199f406d5..2427aafd60 100644 --- a/library/constants.po +++ b/library/constants.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-15 18:43-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 15:50+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/constants.rst:4 msgid "Built-in Constants" @@ -60,7 +61,6 @@ msgstr "" "ilegales y generan un :exc:`SyntaxError`." #: ../Doc/library/constants.rst:29 -#, fuzzy msgid "" "Special value which should be returned by the binary special methods (e.g. :" "meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:`__rsub__`, etc.) to " @@ -69,16 +69,14 @@ msgid "" "`__imul__`, :meth:`__iand__`, etc.) for the same purpose. It should not be " "evaluated in a boolean context." msgstr "" -"Valor especial que deben retornar los métodos especiales binarios (por " -"ejemplo, :meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:`__rsub__`, " -"etc.) para indicar que la operación no se implementa con respecto al otro " -"tipo; pueden ser retornados por los métodos especiales binarios in situ (por " -"ejemplo: :meth:`__imul__`, :meth:`__iand__`, etc.) para el mismo propósito. " -"Su valor de verdad es verdadero." +"Valor especial que debe ser retornado por los métodos especiales binarios " +"(por ejemplo :meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:" +"`__rsub__`, etc.) para indicar que la operación es no implementado con " +"respecto al otro tipo; puede ser retornado por los métodos especiales " +"binarios in situ (por ejemplo :meth:`__imul__`, :meth:`__iand__`, etc.) con " +"el mismo propósito. No debe evaluarse en un contexto booleano." -# fallback -> reserva #: ../Doc/library/constants.rst:38 -#, fuzzy msgid "" "When a binary (or in-place) method returns ``NotImplemented`` the " "interpreter will try the reflected operation on the other type (or some " @@ -87,12 +85,12 @@ msgid "" "Incorrectly returning ``NotImplemented`` will result in a misleading error " "message or the ``NotImplemented`` value being returned to Python code." msgstr "" -"Cuando un método binario (o in situ) retorna ``NotImplemented`` el " -"intérprete intentará la operación reflejada en el otro tipo (o alguna otra " -"reserva, dependiendo del operador). Si todos los intentos retornan " -"``NotImplemented``, el intérprete generará una excepción adecuada. Si se " -"retorna incorrectamente ``NotImplemented`` se producirá un mensaje de error " -"engañoso o que se retorne el valor ``NotImplemented`` al código de Python." +"Cuando un método binario (o in situ) retorna ``NotImplemented``, el " +"intérprete intentará la operación reflejada en el otro tipo (o algún otro " +"recurso alternativo, según el operador). Si todos los intentos retornan " +"``NotImplemented``, el intérprete lanzará una excepción apropiada. Retornar " +"incorrectamente ``NotImplemented`` dará como resultado un mensaje de error " +"engañoso o el valor de ``NotImplemented`` se retornará al código Python." #: ../Doc/library/constants.rst:45 msgid "See :ref:`implementing-the-arithmetic-operations` for examples." @@ -115,18 +113,20 @@ msgid "" "currently evaluates as true, it will emit a :exc:`DeprecationWarning`. It " "will raise a :exc:`TypeError` in a future version of Python." msgstr "" +"La evaluación de ``NotImplemented`` en un contexto booleano está en desuso. " +"Si bien actualmente se evalúa como verdadero, emitirá un :exc:" +"`DeprecationWarning`. Lanzará un :exc:`TypeError` en una versión futura de " +"Python." -# la redacción está un poco difícil de seguir #: ../Doc/library/constants.rst:62 -#, fuzzy msgid "" "The same as the ellipsis literal \"``...``\". Special value used mostly in " "conjunction with extended slicing syntax for user-defined container data " "types." msgstr "" -"Lo mismo que el literal de puntos suspensivos \"``...``\". Valor especial " -"utilizado principalmente en conjunto con la sintaxis de segmentación " -"extendida para tipos de datos de contenedor definidos por el usuario." +"Lo mismo que la elipsis literal \"``...``\". Valor especial que se utiliza " +"principalmente junto con la sintaxis de segmentación extendida para tipos de " +"datos de contenedor definidos por el usuario." #: ../Doc/library/constants.rst:68 msgid "" @@ -152,7 +152,6 @@ msgid "Constants added by the :mod:`site` module" msgstr "Constantes agregadas por el módulo :mod:`site`" #: ../Doc/library/constants.rst:82 -#, fuzzy msgid "" "The :mod:`site` module (which is imported automatically during startup, " "except if the :option:`-S` command-line option is given) adds several " @@ -160,9 +159,9 @@ msgid "" "interpreter shell and should not be used in programs." msgstr "" "El módulo :mod:`site` (que se importa automáticamente durante el inicio, " -"excepto si se da la opción :option:`-S` en línea de comandos) agrega varias " -"constantes al espacio de nombres incorporado. Son útiles para el intérprete " -"interactivo y no se deben usar en programas." +"excepto si se proporciona la opción :option:`-S` en la línea de comandos) " +"agrega varias constantes al espacio de nombres integrado. Son útiles para el " +"intérprete interactivo y no deben usarse en programas." #: ../Doc/library/constants.rst:90 msgid "" @@ -175,13 +174,12 @@ msgstr "" "código de salida especificado." #: ../Doc/library/constants.rst:97 -#, fuzzy msgid "" "Objects that when printed or called, print the text of copyright or credits, " "respectively." msgstr "" -"Objetos que cuando se imprimen o se llaman, muestra el texto de los derechos " -"de autor o créditos, respectivamente." +"Objetos que al ser impresos o llamados imprimen el texto de derechos de " +"autor o créditos, respectivamente." #: ../Doc/library/constants.rst:102 msgid "" diff --git a/library/contextvars.po b/library/contextvars.po index d67e148770..97c59144cd 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-10-09 10:52+0200\n" +"PO-Revision-Date: 2021-08-07 15:44+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/contextvars.rst:2 msgid ":mod:`contextvars` --- Context Variables" @@ -257,10 +257,7 @@ msgstr "" "objeto de contexto desde más de un hilo del sistema operativo, o si se llama " "recursivamente." -# ¿"shallow copy"? -# (añadir a Memoria de traducción?) #: ../Doc/library/contextvars.rst:190 -#, fuzzy msgid "Return a shallow copy of the context object." msgstr "Retorna una copia superficial (*shallow copy*) del objeto de contexto." @@ -318,7 +315,7 @@ msgstr "" #: ../Doc/library/contextvars.rst:234 msgid "asyncio support" -msgstr "Soporte *asyncio*" +msgstr "Soporte asyncio" #: ../Doc/library/contextvars.rst:236 msgid "" diff --git a/library/csv.po b/library/csv.po index 474227649b..d40f49ad3d 100644 --- a/library/csv.po +++ b/library/csv.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-28 01:42-0300\n" -"Last-Translator: Marco Richetta \n" +"PO-Revision-Date: 2021-08-07 15:44+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/csv.rst:2 msgid ":mod:`csv` --- CSV File Reading and Writing" @@ -280,9 +281,8 @@ msgstr "" "instancia subyacente de :class:`reader`." #: ../Doc/library/csv.rst:170 -#, fuzzy msgid "Returned rows are now of type :class:`OrderedDict`." -msgstr "Las filas retornadas son ahora de tipo :class:`dict`." +msgstr "Las filas retornadas son ahora de tipo :class:`OrderedDict`." #: ../Doc/library/csv.rst:173 msgid "Returned rows are now of type :class:`dict`." diff --git a/library/ctypes.po b/library/ctypes.po index b560d15eeb..95fd9948e7 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-22 12:54+0200\n" +"PO-Revision-Date: 2021-08-07 16:58+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" @@ -703,7 +704,7 @@ msgid "" "Here is a more advanced example, it uses the ``strchr`` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" -"Aquí hay un ejemplo más avanzado, utiliza la función``strchr``, que espera " +"Aquí hay un ejemplo más avanzado, utiliza la función ``strchr``, que espera " "un puntero de cadena y un carácter, y retorna un puntero a una cadena::" #: ../Doc/library/ctypes.rst:464 @@ -1680,12 +1681,24 @@ msgid "" "which DLL is not found, you need to find the list of dependent DLLs and " "determine which one is not found using Windows debugging and tracing tools." msgstr "" +"En Windows, la creación de una instancia :class:`CDLL` puede fallar incluso " +"si existe el nombre de la DLL. Cuando no se encuentra una DLL dependiente de " +"la DLL cargada, se lanza un error :exc:`OSError` con el mensaje *\"[WinError " +"126] No se pudo encontrar el módulo especificado\".* Este mensaje de error " +"no contiene el nombre de DLL que falta porque la API de Windows no devuelve " +"esta información, lo que dificulta el diagnóstico de este error. Para " +"resolver este error y determinar qué DLL no se encuentra, debe buscar la " +"lista de DLL dependientes y determinar cuál no se encuentra utilizando las " +"herramientas de depuración y seguimiento de Windows." #: ../Doc/library/ctypes.rst:1341 msgid "" "`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." msgstr "" +"`Herramienta Microsoft DUMPBIN `_ -- Una herramienta para encontrar dependientes de " +"DLL." #: ../Doc/library/ctypes.rst:1347 msgid "" @@ -1753,7 +1766,7 @@ msgstr "" msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" "Por lo tanto, esto sólo es útil para llamar directamente a las funciones api " -"C de Pythoni." +"C de Python." #: ../Doc/library/ctypes.rst:1381 msgid "" @@ -1779,8 +1792,8 @@ msgid "" "configurable." msgstr "" "El parámetro *mode* puede utilizarse para especificar cómo se carga la " -"biblioteca. Para más detalles, consulte la página :manpage:`dlopen(3)` " -"manpage. En Windows, *mode* es ignorado. En los sistemas posix, RTLD_NOW " +"biblioteca. Para más detalles, consulte la página :manpage:`dlopen(3)` del " +"manual. En Windows, *mode* es ignorado. En los sistemas posix, RTLD_NOW " "siempre se agrega, y no es configurable." #: ../Doc/library/ctypes.rst:1393 @@ -1983,13 +1996,12 @@ msgstr "" "funciones." #: ../Doc/library/ctypes.rst:1525 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlopen`` with argument " "``name``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.dlopen`` con " -"argumento ``name``." +"Lanza un :ref:`auditing event ` ``ctypes.dlopen`` con argumento " +"``name``." #: ../Doc/library/ctypes.rst:1527 msgid "" @@ -1998,17 +2010,8 @@ msgid "" "used to load the library." msgstr "" "Cargar una biblioteca a través de cualquiera de estos objetos lanza un :ref:" -"`evento de auditoría ` ``ctypes.dlopen`` con el argumento de " -"cadena ``name``, el nombre usado para cargar la biblioteca." - -#: ../Doc/library/ctypes.rst:1531 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.dlsym`` with arguments " -"``library``, ``name``." -msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.dlsym`` con " -"argumentos ``library``, ``name``." +"`auditing event ` ``ctypes.dlopen`` con el argumento de cadena " +"``name``, el nombre usado para cargar la biblioteca." #: ../Doc/library/ctypes.rst:1533 msgid "" @@ -2020,15 +2023,6 @@ msgstr "" "auditoría ``ctypes.dlsym`` con argumentos ``library`` (el objeto de la " "biblioteca) y ``name`` (el nombre del símbolo como cadena o entero)." -#: ../Doc/library/ctypes.rst:1537 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.dlsym/handle`` with " -"arguments ``handle``, ``name``." -msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.dlsym/handle`` con " -"argumentos ``handle``, ``name``." - #: ../Doc/library/ctypes.rst:1539 msgid "" "In cases when only the library handle is available rather than the object, " @@ -2199,15 +2193,6 @@ msgstr "" "Esta excepción se lanza cuando una llamada a una función foránea no puede " "convertir uno de los argumentos pasados." -#: ../Doc/library/ctypes.rst:1628 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.seh_exception`` with " -"argument ``code``." -msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.seh_exception`` con " -"el argumento ``code``." - #: ../Doc/library/ctypes.rst:1630 msgid "" "On Windows, when a foreign function call raises a system exception (for " @@ -2223,15 +2208,6 @@ msgstr "" "permitiendo que un gancho de auditoría reemplace la excepción con la suya " "propia." -#: ../Doc/library/ctypes.rst:1636 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.call_function`` with " -"arguments ``func_pointer``, ``arguments``." -msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.call_function`` con " -"argumentos ``func_pointer``, ``arguments``." - #: ../Doc/library/ctypes.rst:1638 msgid "" "Some ways to invoke foreign function calls may raise an auditing event " @@ -2516,7 +2492,7 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.addressof`` with " "argument ``obj``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.addressof`` con el " +"Lanza un :ref:`auditing event ` ``ctypes.addressof`` con el " "argumento ``obj``." #: ../Doc/library/ctypes.rst:1837 @@ -2598,8 +2574,8 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " "with arguments ``init``, ``size``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes." -"create_string_buffer`` con argumentos ``init``, ``size``." +"Lanza un :ref:`auditing event ` ``ctypes.create_string_buffer`` " +"con argumentos ``init``, ``size``." #: ../Doc/library/ctypes.rst:1881 msgid "" @@ -2636,8 +2612,8 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " "with arguments ``init``, ``size``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes." -"create_unicode_buffer`` con argumentos ``init``, ``size``." +"Lanza un :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " +"con argumentos ``init``, ``size``." #: ../Doc/library/ctypes.rst:1898 msgid "" @@ -2660,18 +2636,17 @@ msgstr "" "la extensión ``_ctypes`` exporta." #: ../Doc/library/ctypes.rst:1913 -#, fuzzy msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version " "number (this is the form used for the posix linker option :option:`!-l`). " "If no library can be found, returns ``None``." msgstr "" -"Intenta encontrar una biblioteca y retornar un nombre. *name* es el nombre " -"de la biblioteca sin ningún prefijo como ``lib``, sufijo como ``.so``, ``." -"dylib`` o número de versión (esta es la forma usada para la opción del " -"enlazador posix :option:`!-l`). Si no se puede encontrar ninguna biblioteca, " -"retorna ``None``." +"Intenta encontrar una biblioteca y retornar un nombre de ruta. *name* es el " +"nombre de la biblioteca sin ningún prefijo como ``lib``, sufijo como ``." +"so``, ``.dylib`` o número de versión (esta es la forma usada para la opción " +"del enlazador posix :option:`!-l`). Si no se puede encontrar ninguna " +"biblioteca, retorna ``None``." #: ../Doc/library/ctypes.rst:1924 msgid "" @@ -2727,7 +2702,7 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " "arguments." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.get_errno`` sin " +"Lanza un :ref:`auditing event ` ``ctypes.get_errno`` sin " "argumentos." #: ../Doc/library/ctypes.rst:1955 @@ -2743,7 +2718,7 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " "arguments." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.get_last_error`` sin " +"Lanza un :ref:`auditing event ` ``ctypes.get_last_error`` sin " "argumentos." #: ../Doc/library/ctypes.rst:1962 @@ -2819,8 +2794,8 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " "argument ``errno``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.set_errno`` con " -"argumento ``errno``." +"Lanza un :ref:`auditing event ` ``ctypes.set_errno`` con argumento " +"``errno``." #: ../Doc/library/ctypes.rst:2008 msgid "" @@ -2837,7 +2812,7 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " "argument ``error``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.set_last_error`` con " +"Lanza un :ref:`auditing event ` ``ctypes.set_last_error`` con " "argumento ``error``." #: ../Doc/library/ctypes.rst:2017 @@ -2863,7 +2838,7 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.string_at`` with " "arguments ``address``, ``size``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.string_at`` con " +"Lanza un :ref:`auditing event ` ``ctypes.string_at`` con " "argumentos ``address``, ``size``." #: ../Doc/library/ctypes.rst:2032 @@ -2901,7 +2876,7 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " "arguments ``address``, ``size``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.wstring_at`` con " +"Lanza un :ref:`auditing event ` ``ctypes.wstring_at`` con " "argumentos ``address``, ``size``." #: ../Doc/library/ctypes.rst:2055 @@ -2952,7 +2927,7 @@ msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " "arguments ``pointer``, ``size``, ``offset``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.cdata/buffer`` con " +"Lanza un :ref:`auditing event ` ``ctypes.cdata/buffer`` con " "argumentos ``pointer``, ``size``, ``offset``." #: ../Doc/library/ctypes.rst:2082 @@ -2977,13 +2952,12 @@ msgstr "" "especificada por *address* que debe ser un entero." #: ../Doc/library/ctypes.rst:2095 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata`` with argument " "``address``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``ctypes.cdata`` con " -"argumento ``address``." +"Lanza un :ref:`auditing event ` ``ctypes.cdata`` con argumento " +"``address``." #: ../Doc/library/ctypes.rst:2097 msgid "" @@ -2991,7 +2965,7 @@ msgid "" "`auditing event ` ``ctypes.cdata`` with argument ``address``." msgstr "" "Este método, y otros que indirectamente llaman a este método, lanzan un :ref:" -"`evento de auditoría ` ``ctypes.cdata`` con argumento ``address``." +"`auditing event ` ``ctypes.cdata`` con argumento ``address``." #: ../Doc/library/ctypes.rst:2103 msgid "" @@ -3681,10 +3655,9 @@ msgid "Specifies the type pointed to." msgstr "Especifica el tipo apuntado." #: ../Doc/library/ctypes.rst:2561 -#, fuzzy msgid "" "Returns the object to which to pointer points. Assigning to this attribute " "changes the pointer to point to the assigned object." msgstr "" -"Retorna el objeto al que apunta. Asignar a este atributo cambia el puntero " -"para que apunte al objeto asignado." +"Retorna el objeto al que el puntero apunta. Asignando a este atributo cambia " +"el puntero para que apunte al objeto asignado." diff --git a/library/curses.ascii.po b/library/curses.ascii.po index 92b4c240ae..bad16a1bc5 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -473,7 +473,7 @@ msgid "" "character bit value is bitwise-anded with 0x1f)." msgstr "" "Retorna el carácter de control correspondiente al carácter dado (el valor " -"del bit del carácter es bit a bit (* bitwise-anded*) con 0x1f)." +"del bit del carácter es bit a bit (*bitwise-anded*) con 0x1f)." #: ../Doc/library/curses.ascii.rst:203 msgid "" diff --git a/library/curses.po b/library/curses.po index 5e45d51619..e23497ff4c 100644 --- a/library/curses.po +++ b/library/curses.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-27 21:20-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 16:00+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/curses.rst:2 msgid ":mod:`curses` --- Terminal handling for character-cell displays" @@ -190,7 +191,7 @@ msgid "" "Return ``True`` or ``False``, depending on whether the programmer can change " "the colors displayed by the terminal." msgstr "" -"Retorna \"True\" o \"False\", dependiendo ya sea que el programador puede " +"Retorna ``True`` o ``False``, dependiendo ya sea que el programador puede " "cambiar los colores presentados por la terminal." #: ../Doc/library/curses.rst:105 @@ -211,7 +212,6 @@ msgstr "" "modo *cbreak*." #: ../Doc/library/curses.rst:114 -#, fuzzy msgid "" "Return the intensity of the red, green, and blue (RGB) components in the " "color *color_number*, which must be between ``0`` and ``COLORS - 1``. " @@ -219,24 +219,23 @@ msgid "" "will be between ``0`` (no component) and ``1000`` (maximum amount of " "component)." msgstr "" -"Retorna la intensidad de los componentes en el color *color number* del " -"rojo, verde y azul (RGB), los cuales deben estar entre \"0\" y :const:" -"`COLORS`. Retorna un 3-tuple, conteniendo los valores R,G,B para el color " -"dado, los cuales estarán entre \"0\" (sin componente) y \"1000\" (Máxima " -"cantidad de componente)." +"Retorna la intensidad de los componentes rojo, verde y azul (RGB) en el " +"color *color_number*, que debe estar entre ``0`` y ``COLORS-1``. Retorna una " +"tupla de 3, que contiene los valores R,G,B para el color dado, que estará " +"entre ``0`` (sin componente) y ``1000`` (cantidad máxima de componente)." #: ../Doc/library/curses.rst:122 -#, fuzzy msgid "" "Return the attribute value for displaying text in the specified color pair. " "Only the first 256 color pairs are supported. This attribute value can be " "combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, and the other :const:" "`A_\\*` attributes. :func:`pair_number` is the counterpart to this function." msgstr "" -"Retorna el valor del atributo para desplegar texto en el color específico. " -"Este calor del atributo puede ser combinado con :const:`A_STANDOUT`, :const:" -"`A_REVERSE`, y otros atributos :const:`A_\\*`. :func:`pair_number` es la " -"contraparte para esta función." +"Retorna el valor del atributo para mostrar texto en el par de colores " +"especificado. Solo se admiten los primeros 256 pares de colores. Este valor " +"de atributo se puede combinar con :const:`A_STANDOUT`, :const:`A_REVERSE`, y " +"los otros atributos :const:`A_\\*`. :func:`pair_number` es la contraparte de " +"esta función." #: ../Doc/library/curses.rst:131 msgid "" @@ -345,12 +344,12 @@ msgid "" msgstr "" "La rutina :func:`.filter`, si es usada, debe ser llamada antes que :func:" "`initscr` sea llamada. El efecto es que durante estas llamadas, :envvar:" -"`LINES` es configurada para \"1\"; las capacidades \"clear\", \"cup\", \"cud" -"\", \"cud1\", \"cuu1\", \"cuu\", \"vpa\" son desactivadas; y la cadena \"home" -"\" es configurada para el valor de \"cr\". El efecto es que el cursor es " -"confinado para la línea actual, y también las pantallas son actualizadas. " -"Este puede ser usado para habilitar la línea editando el carácter en un " -"tiempo sin tocar el resto de las pantallas." +"`LINES` es configurada para ``1``; las capacidades ``clear``, ``cup``, " +"``cud``, ``cud1``, ``cuu1``, ``cuu``, ``vpa`` son desactivadas; y la cadena " +"``home`` es configurada para el valor de ``cr``. El efecto es que el cursor " +"es confinado para la línea actual, y también las pantallas son " +"actualizadas. Este puede ser usado para habilitar la línea editando el " +"carácter en un tiempo sin tocar el resto de las pantallas." #: ../Doc/library/curses.rst:204 msgid "" @@ -372,7 +371,6 @@ msgstr "" "programa." #: ../Doc/library/curses.rst:217 -#, fuzzy msgid "" "After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " "event, this method should be called to retrieve the queued mouse event, " @@ -386,18 +384,17 @@ msgid "" "`BUTTONn_TRIPLE_CLICKED`, :const:`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :" "const:`BUTTON_ALT`." msgstr "" -"Después de que :meth:`~window.getch` retorna :const:`KEY_MOUSE` como señal " -"de un evento del mouse, este método debe ser llamado para recuperar la cola " -"de los eventos del mouse, representado como una tupla de 5 valores ``(id, x, " -"y, z, bstate)``. *id* es un valor ID usado para distinguir múltiples " -"dispositivos, y *x*, *y*, *z* son las coordenadas de los eventos. (*z* está " -"actualmente en desuso.) *bstate* es un valor entero cuyos bits serán " -"configurados para indicar el tipo de evento, y será el *OR* bit a bit de una " -"o más de las siguientes constantes, donde *n* es el número del botón desde 1 " -"a 4: :const:`BUTTONn_PRESSED`, :const:`BUTTONn_RELEASED`, :const:" -"`BUTTONn_CLICKED`, :const:`BUTTONn_DOUBLE_CLICKED`, :const:" -"`BUTTONn_TRIPLE_CLICKED`, :const:`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :" -"const:`BUTTON_ALT`." +"Después de :meth:`~window.getch` retorna :const:`KEY_MOUSE` para señalar un " +"evento de mouse, se debe llamar a este método para recuperar el evento de " +"mouse en cola, representado como una tupla de 5 ``(id, x, y, z, bstate)``. " +"*id* es un valor de ID que se utiliza para distinguir varios dispositivos, y " +"*x*, *y*, *z* son las coordenadas del evento. (*z* no se usa actualmente.) " +"*bstate* es un valor entero cuyos bits se establecerán para indicar el tipo " +"de evento, y será el OR bit a bit de una o más de las siguientes constantes, " +"donde *n* es el botón número de 1 a 4: :const:`BUTTONn_PRESSED`, :const:" +"`BUTTONn_RELEASED`, :const:`BUTTONn_CLICKED`, :const:" +"`BUTTONn_DOUBLE_CLICKED`, :const:`BUTTONn_TRIPLE_CLICKED`, :const:" +"`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :const:`BUTTON_ALT`." #: ../Doc/library/curses.rst:231 msgid "" @@ -424,8 +421,8 @@ msgid "" "Return ``True`` if the terminal can display colors; otherwise, return " "``False``." msgstr "" -"Retorna \"True\" si el terminal puede desplegar colores, en caso contrario, " -"retorna \"False\"." +"Retorna ``True`` si el terminal puede desplegar colores, en caso contrario, " +"retorna ``False``." #: ../Doc/library/curses.rst:249 msgid "" @@ -455,7 +452,7 @@ msgid "" "Take a key value *ch*, and return ``True`` if the current terminal type " "recognizes a key with that value." msgstr "" -"Toma una clave valor *ch*, y retorna \"True\" si el tipo de terminal actual " +"Toma una clave valor *ch*, y retorna ``True`` si el tipo de terminal actual " "reconoce una clave con ese valor." #: ../Doc/library/curses.rst:270 @@ -474,7 +471,6 @@ msgstr "" "para salir del modo de medio retardo." #: ../Doc/library/curses.rst:279 -#, fuzzy msgid "" "Change the definition of a color, taking the number of the color to be " "changed followed by three RGB values (for the amounts of red, green, and " @@ -485,17 +481,16 @@ msgid "" "op on most terminals; it is active only if :func:`can_change_color` returns " "``True``." msgstr "" -"Cambiar la definición de un color, tomando el número de el color para ser " -"cambiado seguido por los tres valores RGB (para las cantidades de " -"componentes de rojo, verde, y azul). El valor de *color_number* debe estar " -"entre ``0`` y :const:`COLORS`. Cada uno de *r*, *g*, *b*, debe ser un valor " -"entre ``0`` y ``1000``. Cuando :func:`init_color` es usado, todas las " -"ocurrencias de ese color en la pantalla inmediatamente cambia para la nueva " -"definición. Esta función no es operativa en varios terminales, esto " -"solamente se activa si :func:`can_change_color` retorna ``True``." +"Cambia la definición de un color, tomando el número del color a cambiar " +"seguido de tres valores RGB (para las cantidades de componentes rojo, verde " +"y azul). El valor de *color_number* debe estar entre ``0`` y `COLORS - 1`. " +"Cada uno de *r*, *g*, *b*, debe tener un valor entre ``0`` y ``1000``. " +"Cuando se usa :func:`init_color`, todas las apariciones de ese color en la " +"pantalla cambian inmediatamente a la nueva definición. Esta función no es " +"operativa en la mayoría de terminales; solo está activo si :func:" +"`can_change_color` retorna ``True``." #: ../Doc/library/curses.rst:290 -#, fuzzy msgid "" "Change the definition of a color-pair. It takes three arguments: the number " "of the color-pair to be changed, the foreground color number, and the " @@ -507,14 +502,15 @@ msgid "" "refreshed and all occurrences of that color-pair are changed to the new " "definition." msgstr "" -"Cambiar la definición de un par de color. Esto toma tres argumentos: El " -"número de el par de color ha ser cambiado, el número de color del primer " -"plano, y el número de color del fondo. El valor de *pair_number* debe estar " -"entre ``1`` y ``COLOR_PAIRS - 1`` (el par de color ``0`` está conectado a " -"blanco sobre negro y no puede ser cambiado). El valor de los argumentos *fg* " -"y *bg* debe estar entre ``0`` y :const:`COLORS`. Si el par de color fue " -"previamente inicializado, la pantalla es refrescada y todas las ocurrencias " -"de ese par de color son cambiados para la nueva definición." +"Cambia la definición de un par de colores. Se necesitan tres argumentos: el " +"número del par de colores que se va a cambiar, el número de color de primer " +"plano y el número de color de fondo. El valor de *par_number* debe estar " +"entre ``1`` y ``COLOR_PAIRS-1`` (el par de colores ``0`` está conectado a " +"blanco sobre negro y no se puede cambiar). El valor de los argumentos *fg* y " +"*bg* debe estar entre ``0'' y ``COLORS-1`` o, después de llamar a :func:" +"`use_default_colors`, ``-1``. Si el par de colores se inicializó " +"previamente, la pantalla se actualiza y todas las apariciones de ese par de " +"colores se cambian a la nueva definición." #: ../Doc/library/curses.rst:303 msgid "" @@ -537,15 +533,15 @@ msgid "" "Return ``True`` if :func:`resize_term` would modify the window structure, " "``False`` otherwise." msgstr "" -"Retorna \"True\" si :func:`resize_term` modificaría la estructura de la " -"ventana, \"False\" en caso contrario." +"Retorna ``True`` si :func:`resize_term` modificaría la estructura de la " +"ventana, ``False`` en caso contrario." #: ../Doc/library/curses.rst:320 msgid "" "Return ``True`` if :func:`endwin` has been called (that is, the curses " "library has been deinitialized)." msgstr "" -"Retorna \"True\" si :func:`endwin` ha sido llamado (eso es que la librería " +"Retorna ``True`` si :func:`endwin` ha sido llamado (eso es que la librería " "curses ha sido desinicializada)." #: ../Doc/library/curses.rst:326 @@ -594,8 +590,8 @@ msgid "" "If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " "``False``, allow only 7-bit chars." msgstr "" -"Si *flag* es \"True\", permite caracteres de 8 bits para ser introducidos. " -"Si *flag* es \"False\", permite solamente caracteres de 7 bits." +"Si *flag* es ``True``, permite caracteres de 8 bits para ser introducidos. " +"Si *flag* es ``False``, permite solamente caracteres de 7 bits." #: ../Doc/library/curses.rst:356 msgid "" @@ -744,15 +740,14 @@ msgstr "" "Salir del modo raw. Retorna al modo normal \"cooked\" con la línea del búfer." #: ../Doc/library/curses.rst:445 -#, fuzzy msgid "" "Return a tuple ``(fg, bg)`` containing the colors for the requested color " "pair. The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - " "1``." msgstr "" "Retorna una tupla ``(fg, bg)`` conteniendo los colores del par de color " -"solicitado. El valor de *pair_number* debe ser entre ``1`` y ``COLOR_PAIRS - " -"1``." +"solicitado. El valor de *pair_number* debe ser entre ``0`` y " +"``COLOR_PAIRS-1``." #: ../Doc/library/curses.rst:451 msgid "" @@ -855,7 +850,7 @@ msgstr "" #: ../Doc/library/curses.rst:518 msgid "Retrieves the value set by :func:`set_escdelay`." -msgstr "" +msgstr "Recupera el valor establecido por :func:`set_escdelay`." #: ../Doc/library/curses.rst:524 msgid "" @@ -863,16 +858,23 @@ msgid "" "to distinguish between an individual escape character entered on the " "keyboard from escape sequences sent by cursor and function keys." msgstr "" +"Establece el número de milisegundos de espera después de leer un carácter de " +"escape, para distinguir entre un carácter de escape individual ingresado en " +"el teclado de las secuencias de escape enviadas por el cursor y las teclas " +"de función." #: ../Doc/library/curses.rst:532 msgid "Retrieves the value set by :func:`set_tabsize`." -msgstr "" +msgstr "Recupera el valor establecido por :func:`set_tabsize`." #: ../Doc/library/curses.rst:538 msgid "" "Sets the number of columns used by the curses library when converting a tab " "character to spaces as it adds the tab to a window." msgstr "" +"Establece el número de columnas utilizadas por la biblioteca de curses al " +"convertir un carácter de tabulación en espacios, ya que agrega la tabulación " +"a una ventana." #: ../Doc/library/curses.rst:545 msgid "" @@ -880,7 +882,7 @@ msgid "" "then :meth:`leaveok ` is set ``True``." msgstr "" "Fija el cursor de la pantalla virtual para *y*, *x*. Si *y* y *x* son ambos " -"\"-1\", entonces :meth:`leaveok ` es configurado \"True\"." +"\"-1\", entonces :meth:`leaveok ` es configurado ``True``." #: ../Doc/library/curses.rst:551 msgid "" @@ -1133,16 +1135,15 @@ msgstr "" "anteriores, tienen los siguientes métodos y atributos:" #: ../Doc/library/curses.rst:712 -#, fuzzy msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any " "character previously painted at that location. By default, the character " "position and attributes are the current settings for the window object." msgstr "" -"Pinte el carácter *ch* en ``(y, x)`` con los atributos *attr*, sobre-" -"escribiendo algún carácter pintado anteriormente en esa locación. Por " -"defecto, la posición del carácter y atributos son los configurados " -"actualmente por el objeto ventana." +"Pinta el carácter *ch* en ``(y, x)`` con atributos *attr*, sobrescribiendo " +"cualquier carácter pintado previamente en esa ubicación. De forma " +"predeterminada, la posición y los atributos del carácter son la " +"configuración actual del objeto ventana." #: ../Doc/library/curses.rst:718 msgid "" @@ -1211,7 +1212,7 @@ msgid "" "Add attribute *attr* from the \"background\" set applied to all writes to " "the current window." msgstr "" -"Añade el atributo *attr* del conjunto del *background* aplicado para todas " +"Añade el atributo *attr* del conjunto del \"background\" aplicado para todas " "las escrituras de la ventana actual." #: ../Doc/library/curses.rst:765 @@ -1426,7 +1427,7 @@ msgid "" "If *flag* is ``True``, the next call to :meth:`refresh` will clear the " "window completely." msgstr "" -"Si *flag* es \"True\", la siguiente llamada para :meth:`refresh` limpiará la " +"Si *flag* es ``True``, la siguiente llamada para :meth:`refresh` limpiará la " "ventana completamente." #: ../Doc/library/curses.rst:858 @@ -1754,12 +1755,12 @@ msgid "" "If *flag* is ``False``, cursor will always be at \"cursor position\" after " "an update." msgstr "" -"Si *flag* es \"False\", el cursor siempre estará en \"cursor position\" " +"Si *flag* es ``False``, el cursor siempre estará en \"cursor position\" " "después de una actualización." #: ../Doc/library/curses.rst:1098 msgid "Move cursor to ``(new_y, new_x)``." -msgstr "Mueve el cursor a \"(new_y, new_x)\"." +msgstr "Mueve el cursor a ``(new_y, new_x)``." #: ../Doc/library/curses.rst:1103 msgid "" @@ -1775,16 +1776,16 @@ msgstr "" #: ../Doc/library/curses.rst:1110 msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." msgstr "" -"Mueve la ventana a su esquina superior izquierda que está en \"(new_y," -"new_x)\"." +"Mueve la ventana a su esquina superior izquierda que está en ``(new_y," +"new_x)``." #: ../Doc/library/curses.rst:1115 msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." -msgstr "Si *flag* es \"True\", :meth:`getch` no será bloqueada." +msgstr "Si *flag* es ``True``, :meth:`getch` no será bloqueada." #: ../Doc/library/curses.rst:1120 msgid "If *flag* is ``True``, escape sequences will not be timed out." -msgstr "Si *flag* es \"True\", las secuencias de escape no serán agotadas." +msgstr "Si *flag* es ``True``, las secuencias de escape no serán agotadas." #: ../Doc/library/curses.rst:1122 msgid "" @@ -2024,7 +2025,7 @@ msgid "" msgstr "" "Configura el bloqueo o no bloqueo del comportamiento para la ventana. Si el " "*delay* es negativo, bloqueando la lectura usada (el cual esperará " -"indefinidamente para la entrada). Si *delay* es zero, entonces no se " +"indefinidamente para la entrada). Si *delay* es cero, entonces no se " "bloqueará la lectura usada, y :meth:`getch` retornará ``-1`` si la entrada " "no está esperando. Si *delay* es positivo, entonces :meth:`getch` se " "bloqueará por *delay* milisegundos, y retorna ``-1`` si aún no entra en el " diff --git a/library/dataclasses.po b/library/dataclasses.po index 14dc996454..5bedde115f 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-12 00:36+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-07 15:43+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/dataclasses.rst:2 msgid ":mod:`dataclasses` --- Data Classes" @@ -107,7 +108,7 @@ msgid "" "decorator returns the same class that is called on; no new class is created." msgstr "" "El decorador :func:`dataclass` añade varios métodos \"*dunder*" -"\" (abreviación de 'double underline') a la clase, descritos a continuación. " +"\" (abreviación de *double underline*) a la clase, descritos a continuación. " "Si alguno de los métodos añadidos ya existe en la definición de la clase, el " "comportamiento dependerá del parámetro, como se documenta abajo. El " "decorador retorna la misma clase con la que es llamado, no crea una nueva." @@ -239,7 +240,6 @@ msgstr "" "descrito en la documentación dedicada a :meth:`__hash__`." #: ../Doc/library/dataclasses.rst:139 -#, fuzzy msgid "" "If :meth:`__hash__` is not explicitly defined, or if it is set to ``None``, " "then :func:`dataclass` *may* add an implicit :meth:`__hash__` method. " @@ -248,13 +248,13 @@ msgid "" "class is logically immutable but can nonetheless be mutated. This is a " "specialized use case and should be considered carefully." msgstr "" -"Si :meth:`__hash__` no está definido explícitamente o si es designado como " -"``None``, :func:`dataclass` *puede* añadir implícitamente el método :meth:" -"`__hash__`. Aunque no sea recomendable, es posible forzar que :func:" -"`dataclass` cree un método :meth:`__hash__` mediante ``unsafe_hash=True``; " -"esto es factible si su clase es lógicamente inmutable pero, sin embargo, " -"puede ser modificada. Este es un caso especial de uso que debe ser " -"considerado cuidadosamente." +"Si :meth:`__hash__` no está definido explícitamente, o si está configurado " +"como ``None``, entonces :func:`dataclass` *puede* agregar un método " +"implícito :meth:`__hash__`. Aunque no se recomienda, puede forzar un :func:" +"`dataclass` a crear un método :meth:`__hash__` con ``unsafe_hash=True``. " +"Este podría ser el caso si su clase es lógicamente inmutable pero, no " +"obstante, puede mutar. Este es un caso de uso especializado y debe " +"considerarse detenidamente." #: ../Doc/library/dataclasses.rst:146 msgid "" diff --git a/library/datetime.po b/library/datetime.po index fb70592e87..11712317e8 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -11,24 +11,24 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-06 11:06-0400\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 16:13+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/datetime.rst:2 msgid ":mod:`datetime` --- Basic date and time types" msgstr ":mod:`datetime` --- Tipos básicos de fecha y hora" #: ../Doc/library/datetime.rst:11 -#, fuzzy msgid "**Source code:** :source:`Lib/datetime.py`" -msgstr "*Código fuente:* :source:`Lib/datetime.py`" +msgstr "**Código fuente:** :source:`Lib/datetime.py`" #: ../Doc/library/datetime.rst:17 msgid "" @@ -75,16 +75,14 @@ msgid "Aware and Naive Objects" msgstr "Objetos conscientes (*aware*) y naífs (*naive*)" #: ../Doc/library/datetime.rst:38 -#, fuzzy msgid "" "Date and time objects may be categorized as \"aware\" or \"naive\" depending " "on whether or not they include timezone information." msgstr "" "Los objetos de fecha y hora pueden clasificarse como conscientes (*aware*) o " -"naífs (*naive*)." +"naífs (*naive*) dependiendo de si incluyen o no información de zona horaria." #: ../Doc/library/datetime.rst:41 -#, fuzzy msgid "" "With sufficient knowledge of applicable algorithmic and political time " "adjustments, such as time zone and daylight saving time information, an " @@ -94,12 +92,11 @@ msgid "" msgstr "" "Con suficiente conocimiento de los ajustes de tiempo políticos y " "algorítmicos aplicables, como la zona horaria y la información del horario " -"de verano, un objeto consciente (*aware*) puede ubicarse en relación con " -"otros objetos conscientes. Un objeto consciente representa un momento " -"específico en el tiempo que no está abierto a interpretación. [#]_" +"de verano, un objeto **consciente** puede ubicarse en relación con otros " +"objetos conscientes. Un objeto consciente representa un momento específico " +"en el tiempo que no está abierto a interpretación. [#]_" #: ../Doc/library/datetime.rst:47 -#, fuzzy msgid "" "A **naive** object does not contain enough information to unambiguously " "locate itself relative to other date/time objects. Whether a naive object " @@ -109,16 +106,15 @@ msgid "" "objects are easy to understand and to work with, at the cost of ignoring " "some aspects of reality." msgstr "" -"Un objeto *naíf* (*naive*) no contiene suficiente información para ubicarse " -"de manera inequívoca en relación con otros objetos de fecha/hora. Si un " -"objeto naíf representa la hora universal coordinada (UTC), la hora local o " -"la hora en otra zona horaria depende exclusivamente del programa, al igual " -"que depende del programa si un número particular representa metros, millas o " -"masa. Los objetos naíf son fáciles de entender y trabajar, a costa de " -"ignorar algunos aspectos de la realidad." +"Un objeto **ingenuo** no contiene suficiente información para ubicarse sin " +"ambigüedades en relación con otros objetos de fecha/hora. Si un objeto " +"ingenuo representa la hora universal coordinada (UTC), la hora local o la " +"hora en alguna otra zona horaria depende exclusivamente del programa, al " +"igual que depende del programa si un número en particular representa metros, " +"millas o masa. Los objetos ingenuos son fáciles de entender y trabajar con " +"ellos, a costa de ignorar algunos aspectos de la realidad." #: ../Doc/library/datetime.rst:54 -#, fuzzy msgid "" "For applications requiring aware objects, :class:`.datetime` and :class:`." "time` objects have an optional time zone information attribute, :attr:`!" @@ -127,13 +123,12 @@ msgid "" "offset from UTC time, the time zone name, and whether daylight saving time " "is in effect." msgstr "" -"Para aplicaciones que requieren objetos conscientes (*aware*), los objetos :" -"class:`.datetime` y :class:`.time` tienen un atributo opcional de " -"información de zona horaria, :attr:`!tzinfo`, que se puede establecer en una " -"instancia de una subclase de la clase abstracta :class:`tzinfo`. Estos " -"objetos :class:`tzinfo` capturan información sobre el desplazamiento desde " -"la hora UTC, el nombre de la zona horaria y si el horario de verano está " -"vigente." +"Para las aplicaciones que requieren objetos conscientes, los objetos :class:" +"`.datetime` y :class:`.time` tienen un atributo de información de zona " +"horaria opcional, :attr:`!tzinfo`, que se puede establecer en una instancia " +"de una subclase de la clase abstracta :class:`tzinfo`. Estos objetos :class:" +"`tzinfo` capturan información sobre el desplazamiento de la hora UTC, el " +"nombre de la zona horaria y si el horario de verano está en vigor." #: ../Doc/library/datetime.rst:60 msgid "" @@ -216,16 +211,14 @@ msgstr "" "`minute`, :attr:`second`, :attr:`microsecond` , y :attr:`.tzinfo`." #: ../Doc/library/datetime.rst:115 -#, fuzzy msgid "" "A duration expressing the difference between two :class:`date`, :class:`." "time`, or :class:`.datetime` instances to microsecond resolution." msgstr "" -"Una duración que expresa la diferencia entre dos instancias a una resolución " -"de microsegundos :class:`date`, :class:`.time` o :class:`.datetime`." +"Una duración que expresa la diferencia entre dos instancias :class:`date`, :" +"class:`.time` o :class:`.datetime` a una resolución de microsegundos." #: ../Doc/library/datetime.rst:122 -#, fuzzy msgid "" "An abstract base class for time zone information objects. These are used by " "the :class:`.datetime` and :class:`.time` classes to provide a customizable " @@ -234,8 +227,8 @@ msgid "" msgstr "" "Una clase base abstracta para objetos de información de zona horaria. Estos " "son utilizados por las clases :class:`.datetime` y :class:`.time` para " -"proporcionar una noción de ajuste de hora que se puede personalizar (por " -"ejemplo, para tener en cuenta la zona horaria y / o el horario de verano)." +"proporcionar una noción personalizable de ajuste de hora (por ejemplo, para " +"tener en cuenta la zona horaria y / o el horario de verano)." #: ../Doc/library/datetime.rst:130 msgid "" @@ -297,10 +290,9 @@ msgstr "" "(*aware*) o naíf (*naive*)." #: ../Doc/library/datetime.rst:165 -#, fuzzy msgid "A :class:`.datetime` object *d* is aware if both of the following hold:" msgstr "" -"Un objeto *d* de la clase :class:`.datetime` sabe si se cumplen los dos " +"Un objeto :class:`.datetime` *d* es consciente si se cumplen los dos " "siguientes:" #: ../Doc/library/datetime.rst:167 @@ -316,11 +308,10 @@ msgid "Otherwise, *d* is naive." msgstr "De lo contrario, *d* es naíf (*naive*)." #: ../Doc/library/datetime.rst:172 -#, fuzzy msgid "A :class:`.time` object *t* is aware if both of the following hold:" msgstr "" -"Un objeto de :class:`.time` *t* es consciente si se cumplen los dos " -"siguientes:" +"A :class:`.time` object *t* es consciente si ambos de los siguientes se " +"mantienen:" #: ../Doc/library/datetime.rst:174 msgid "``t.tzinfo`` is not ``None``" @@ -432,13 +423,12 @@ msgstr "" "conversión y normalización son exactos (no se pierde información)." #: ../Doc/library/datetime.rst:235 -#, fuzzy msgid "" "If the normalized value of days lies outside the indicated range, :exc:" "`OverflowError` is raised." msgstr "" -"Si el valor normalizado de días se encuentra fuera del rango indicado, se " -"genera :exc:`OverflowError`." +"Si el valor normalizado de los días se encuentra fuera del rango indicado, " +"se lanza :exc:`OverflowError`." #: ../Doc/library/datetime.rst:238 msgid "" @@ -455,10 +445,9 @@ msgid "Class attributes:" msgstr "Atributos de clase:" #: ../Doc/library/datetime.rst:251 -#, fuzzy msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." msgstr "" -"El objeto mas negativo en :class:`timedelta`, ``timedelta(-999999999)``." +"El objeto más negativo en :class:`timedelta`, ``timedelta(-999999999)``." #: ../Doc/library/datetime.rst:256 msgid "" @@ -566,13 +555,12 @@ msgid "``t1 = t2 * i or t1 = i * t2``" msgstr "``t1 = t2 * i o t1 = i * t2``" #: ../Doc/library/datetime.rst:294 -#, fuzzy msgid "" "Delta multiplied by an integer. Afterwards *t1* // i == *t2* is true, " "provided ``i != 0``." msgstr "" -"Delta multiplicado por un entero. Después *t1* // *i* == *t2* es verdadero, " -"siempre que ``i! = 0``." +"Delta multiplicado por un entero. Después *t1* // i == *t2* es verdadero, " +"siempre que ``i != 0``." #: ../Doc/library/datetime.rst:298 msgid "In general, *t1* \\* i == *t1* \\* (i-1) + *t1* is true. (1)" @@ -1044,7 +1032,6 @@ msgstr "" "el tiempo. (4)" #: ../Doc/library/datetime.rst:596 -#, fuzzy msgid "" "*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " "``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " @@ -1052,10 +1039,10 @@ msgid "" "`OverflowError` is raised if ``date2.year`` would be smaller than :const:" "`MINYEAR` or larger than :const:`MAXYEAR`." msgstr "" -"*date2* se mueve hacia adelante en el tiempo si ``timedelta.days> 0, o hacia " -"atrás si ``timedelta.days < 0``. Después ``date2 - date1 == timedelta. " +"*date2* se mueve hacia adelante en el tiempo si ``timedelta.days > 0``, o " +"hacia atrás si ``timedelta.days < 0``. Después ``date2 - date1 == timedelta. " "days``. ``timedelta.seconds`` y ``timedelta.microseconds`` se ignoran. :exc:" -"`OverflowError` se genera si ``date2.year`` sería menor que :const:`MINYEAR` " +"`OverflowError` se lanza si ``date2.year`` sería menor que :const:`MINYEAR` " "o mayor que :const:`MAXYEAR`." #: ../Doc/library/datetime.rst:603 @@ -1172,6 +1159,8 @@ msgid "" "Return a :term:`named tuple` object with three components: ``year``, " "``week`` and ``weekday``." msgstr "" +"Retorna un objeto :term:`named tuple` con tres componentes: ``year``, " +"``week`` y ``weekday``." #: ../Doc/library/datetime.rst:677 msgid "" @@ -1205,7 +1194,7 @@ msgstr "" #: ../Doc/library/datetime.rst:693 msgid "Result changed from a tuple to a :term:`named tuple`." -msgstr "" +msgstr "El resultado cambió de una tupla a un :term:`named tuple`." #: ../Doc/library/datetime.rst:698 msgid "" @@ -2145,7 +2134,6 @@ msgstr "" "al retornado por :func:`time.time`." #: ../Doc/library/datetime.rst:1358 -#, fuzzy msgid "" "Naive :class:`.datetime` instances are assumed to represent local time and " "this method relies on the platform C :c:func:`mktime` function to perform " @@ -2153,11 +2141,11 @@ msgid "" "than :c:func:`mktime` on many platforms, this method may raise :exc:" "`OverflowError` for times far in the past or far in the future." msgstr "" -"Se asume que las instancias naíf (*naive*) de :class:`.datetime` representan " -"la hora local y este método se basa en la plataforma *C* :c:func:`mktime` " -"función para realizar la conversión. Dado que :class:`.datetime` admite un " -"rango de valores más amplio que :c:func:`mktime` en muchas plataformas, este " -"método puede generar :exc:`OverflowError` para tiempos en el pasado o en el " +"Se supone que las instancias Naíf :class:`.datetime` representan la hora " +"local y este método se basa en la función de plataforma C :c:func:`mktime` " +"para realizar la conversión. Dado que :class:`.datetime` admite un rango de " +"valores más amplio que :c:func:`mktime` en muchas plataformas, este método " +"puede lanzar :exc:`OverflowError` para tiempos lejanos en el pasado o en el " "futuro." #: ../Doc/library/datetime.rst:1365 @@ -2211,13 +2199,12 @@ msgstr "" "`weekday`, :meth:`isocalendar`." #: ../Doc/library/datetime.rst:1405 -#, fuzzy msgid "" "Return a :term:`named tuple` with three components: ``year``, ``week`` and " "``weekday``. The same as ``self.date().isocalendar()``." msgstr "" -"Retorna una 3-tupla, *(ISO year, ISO week number, ISO weekday)*. Lo mismo " -"que ``self.date().isocalendar()``." +"Retorna una :term:`named tuple` con tres componentes: ``year``, ``week``, y " +"``weekday``. Lo mismo que ``self.date().isocalendar()``." #: ../Doc/library/datetime.rst:1411 msgid "Return a string representing the date and time in ISO 8601 format:" @@ -2493,7 +2480,7 @@ msgstr "" "ignora y se comparan los tiempos base. Si ambos elementos comparados son " "conscientes y tienen atributos diferentes :attr:`~time.tzinfo`, los " "elementos comparados se ajustan primero restando sus compensaciones UTC " -"(obtenidas de``self.utcoffset()``). Para evitar que las comparaciones de " +"(obtenidas de ``self.utcoffset()``). Para evitar que las comparaciones de " "tipos mixtos vuelvan a la comparación predeterminada por dirección de " "objeto, cuando un objeto :class:`.time` se compara con un objeto de un tipo " "diferente, se genera :exc:`TypeError` a menos que la comparación es ``==`` o " @@ -2915,7 +2902,7 @@ msgstr "" "Cuando se pasa ``None``, corresponde al diseñador de la clase decidir la " "mejor respuesta. Por ejemplo, retornar ``None`` es apropiado si la clase " "desea decir que los objetos de tiempo no participan en los protocolos :class:" -"`tzinfo`. Puede ser más útil que ``utcoffset (None)`` retorne el " +"`tzinfo`. Puede ser más útil que ``utcoffset(None)`` retorne el " "desplazamiento UTC estándar, ya que no existe otra convención para descubrir " "el desplazamiento estándar." @@ -3591,7 +3578,7 @@ msgstr "" #: ../Doc/library/datetime.rst:2368 msgid "(empty), UTC, GMT" -msgstr "" +msgstr "(vacío), UTC, GMT" #: ../Doc/library/datetime.rst:2371 msgid "``%j``" @@ -3724,12 +3711,11 @@ msgid "``%G``" msgstr "``%G``" #: ../Doc/library/datetime.rst:2411 -#, fuzzy msgid "" "ISO 8601 year with century representing the year that contains the greater " "part of the ISO week (``%V``)." msgstr "" -"Año ISO 8601 con siglo que representa el año que contiene la mayor parte de " +"ISO 8601 año con siglo que representa el año que contiene la mayor parte de " "la semana ISO (``%V``)." #: ../Doc/library/datetime.rst:2411 @@ -3742,7 +3728,6 @@ msgid "``%u``" msgstr "``%u``" #: ../Doc/library/datetime.rst:2416 -#, fuzzy msgid "ISO 8601 weekday as a decimal number where 1 is Monday." msgstr "ISO 8601 día de la semana como un número decimal donde 1 es lunes." @@ -4004,27 +3989,28 @@ msgstr "" "``’+00:00’``." #: ../Doc/library/datetime.rst:2539 -#, fuzzy msgid "" "In :meth:`strftime`, ``%Z`` is replaced by an empty string if :meth:`tzname` " "returns ``None``; otherwise ``%Z`` is replaced by the returned value, which " "must be a string." msgstr "" -"Si :meth:`tzname` retorna ``None``, ``%Z`` se reemplaza por una cadena de " -"caracteres vacía. De lo contrario, ``%Z`` se reemplaza por el valor " -"retornado, que debe ser una cadena." +"En :meth:`strftime`, ``%Z`` se reemplaza por una cadena de caracteres vacía " +"si :meth:`tzname` retorna ``None``; de lo contrario, ``%Z`` se reemplaza por " +"el valor retornado, que debe ser una cadena de caracteres." #: ../Doc/library/datetime.rst:2543 msgid ":meth:`strptime` only accepts certain values for ``%Z``:" -msgstr "" +msgstr ":meth:`strptime` solo acepta ciertos valores para ``%Z``:" #: ../Doc/library/datetime.rst:2545 msgid "any value in ``time.tzname`` for your machine's locale" msgstr "" +"cualquier valor en ``time.tzname`` para la configuración regional de su " +"máquina" #: ../Doc/library/datetime.rst:2546 msgid "the hard-coded values ``UTC`` and ``GMT``" -msgstr "" +msgstr "los valores codificados de forma rígida ``UTC`` y ``GMT``" #: ../Doc/library/datetime.rst:2548 msgid "" @@ -4032,6 +4018,9 @@ msgid "" "values, but probably not ``EST``. It will raise ``ValueError`` for invalid " "values." msgstr "" +"Entonces, alguien que viva en Japón puede tener ``JST``, ``UTC`` y ``GMT`` " +"como valores válidos, pero probablemente no ``EST``. Lanzará ``ValueError`` " +"para valores no válidos." #: ../Doc/library/datetime.rst:2552 msgid "" diff --git a/library/decimal.po b/library/decimal.po index a765c4864a..8a891f0432 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -11,16 +11,16 @@ 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: 2020-11-01 15:25+0100\n" +"PO-Revision-Date: 2021-08-07 15:51+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/decimal.rst:2 msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic" @@ -1020,8 +1020,8 @@ msgid "" "Return a string describing the *class* of the operand. The returned value " "is one of the following ten strings." msgstr "" -"Retorna una cadena de caracteres que describe la *clase* del operando. El " -"valor retornado es una de las siguientes diez cadenas de caracteres:" +"Retorna una cadena de caracteres que describe la *class* del operando. El " +"valor retornado es una de las siguientes diez cadenas de caracteres." #: ../Doc/library/decimal.rst:757 msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." @@ -2684,9 +2684,9 @@ msgid "" "Q. Within a complex calculation, how can I make sure that I haven't gotten a " "spurious result because of insufficient precision or rounding anomalies." msgstr "" -"P. Dentro de un cálculo complejo, ¿cómo puedo asegurarme de que no he " +"P. Dentro de un cálculo complejo, cómo puedo asegurarme de que no he " "obtenido un resultado adulterado debido a una precisión insuficiente o " -"anomalías de redondeo?" +"anomalías de redondeo." #: ../Doc/library/decimal.rst:2094 msgid "" diff --git a/library/devmode.po b/library/devmode.po index a7ac85c99a..6e74082efa 100644 --- a/library/devmode.po +++ b/library/devmode.po @@ -4,23 +4,25 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-08-07 22:10-0500\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: \n" +"Language-Team: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/devmode.rst:4 msgid "Python Development Mode" -msgstr "" +msgstr "Modo de desarrollo de Python" #: ../Doc/library/devmode.rst:8 msgid "" @@ -29,59 +31,73 @@ msgid "" "the default if the code is correct; new warnings are only emitted when an " "issue is detected." msgstr "" +"El modo de desarrollo de Python introduce comprobaciones adicionales en " +"tiempo de ejecución que son muy costosas para ser activadas por defecto. No " +"debería ser más verboso que el predeterminado si el código es correcto; sólo " +"se emiten nuevas advertencias cuando se detecta un problema." #: ../Doc/library/devmode.rst:13 msgid "" "It can be enabled using the :option:`-X dev <-X>` command line option or by " "setting the :envvar:`PYTHONDEVMODE` environment variable to ``1``." msgstr "" +"Puede activarse mediante la opción de línea de comandos :option:`-X dev <-" +"X>` o estableciendo la variable de entorno :envvar:`PYTHONDEVMODE` en ``1``." #: ../Doc/library/devmode.rst:17 msgid "Effects of the Python Development Mode" -msgstr "" +msgstr "Efectos del modo de desarrollo de Python" #: ../Doc/library/devmode.rst:19 msgid "" "Enabling the Python Development Mode is similar to the following command, " "but with additional effects described below::" msgstr "" +"Activar el modo de desarrollo de Python es similar al siguiente comando, " +"pero con efectos adicionales que se describen a continuación::" #: ../Doc/library/devmode.rst:24 msgid "Effects of the Python Development Mode:" -msgstr "" +msgstr "Efectos del modo de desarrollo de Python:" #: ../Doc/library/devmode.rst:26 msgid "" "Add ``default`` :ref:`warning filter `. The " "following warnings are shown:" msgstr "" +"Añadir ``default`` :ref:`filtro de avisos `.Se " +"muestran las siguientes advertencias:" #: ../Doc/library/devmode.rst:29 msgid ":exc:`DeprecationWarning`" -msgstr "" +msgstr ":exc:`DeprecationWarning`" #: ../Doc/library/devmode.rst:30 msgid ":exc:`ImportWarning`" -msgstr "" +msgstr ":exc:`ImportWarning`" #: ../Doc/library/devmode.rst:31 msgid ":exc:`PendingDeprecationWarning`" -msgstr "" +msgstr ":exc:`PendingDeprecationWarning`" #: ../Doc/library/devmode.rst:32 msgid ":exc:`ResourceWarning`" -msgstr "" +msgstr ":exc:`ResourceWarning`" #: ../Doc/library/devmode.rst:34 msgid "" "Normally, the above warnings are filtered by the default :ref:`warning " "filters `." msgstr "" +"Normalmente, los advertencias son filtradas por defecto :ref:`warning " +"filters `." #: ../Doc/library/devmode.rst:37 msgid "" "It behaves as if the :option:`-W default <-W>` command line option is used." msgstr "" +"Se comporta como si se utilizara la opción de línea de comandos :option:`-W " +"default <-W>`." #: ../Doc/library/devmode.rst:39 msgid "" @@ -89,36 +105,43 @@ msgid "" "`PYTHONWARNINGS` environment variable to ``error`` to treat warnings as " "errors." msgstr "" +"Utilice la opción de línea de comandos :option:`-W error <-W>` o establezca " +"la variable de entorno :envvar:`PYTHONWARNINGS` en ``error`` para tratar las " +"advertencias como errores." #: ../Doc/library/devmode.rst:43 msgid "Install debug hooks on memory allocators to check for:" msgstr "" +"Instalar hooks(enganches) de depuración en los asignadores de memoria para " +"comprobar:" #: ../Doc/library/devmode.rst:45 msgid "Buffer underflow" -msgstr "" +msgstr "Desbordamiento del búfer" #: ../Doc/library/devmode.rst:46 msgid "Buffer overflow" -msgstr "" +msgstr "Sobrecarga del búfer" #: ../Doc/library/devmode.rst:47 msgid "Memory allocator API violation" -msgstr "" +msgstr "Violación de la API del asignador de memoria" #: ../Doc/library/devmode.rst:48 msgid "Unsafe usage of the GIL" -msgstr "" +msgstr "Uso inseguro del GIL" #: ../Doc/library/devmode.rst:50 msgid "See the :c:func:`PyMem_SetupDebugHooks` C function." -msgstr "" +msgstr "Ver la función en C :c:func:`PyMem_SetupDebugHooks`." #: ../Doc/library/devmode.rst:52 msgid "" "It behaves as if the :envvar:`PYTHONMALLOC` environment variable is set to " "``debug``." msgstr "" +"Se comporta como si la variable de entorno :envvar:`PYTHONMALLOC` estuviera " +"establecida en ``debug``." #: ../Doc/library/devmode.rst:55 msgid "" @@ -126,6 +149,9 @@ msgid "" "memory allocators, set the :envvar:`PYTHONMALLOC` environment variable to " "``default``." msgstr "" +"Para activar el modo de desarrollo de Python sin instalar ganchos de " +"depuración en los asignadores de memoria, establezca la variable de entorno :" +"envvar:`PYTHONMALLOC` a ``default``." #: ../Doc/library/devmode.rst:59 msgid "" @@ -133,6 +159,10 @@ msgid "" "the :const:`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` " "and :const:`SIGILL` signals to dump the Python traceback on a crash." msgstr "" +"Llama a :func:`faulthandler.enable` al inicio de Python para instalar los " +"handlers(manejadores) de las señales :const:`SIGSEGV`, :const:`SIGFPE`, :" +"const:`SIGABRT`, :const:`SIGBUS` y :const:`SIGILL` para volcar la traza de " +"Python en caso de fallo." #: ../Doc/library/devmode.rst:63 msgid "" @@ -140,18 +170,25 @@ msgid "" "used or if the :envvar:`PYTHONFAULTHANDLER` environment variable is set to " "``1``." msgstr "" +"Se comporta como si se utilizara la opción de línea de comandos :option:`-X " +"faulthandler <-X>` o si la variable de entorno :envvar:`PYTHONFAULTHANDLER` " +"se establece en ``1``." #: ../Doc/library/devmode.rst:67 msgid "" "Enable :ref:`asyncio debug mode `. For example, :mod:" "`asyncio` checks for coroutines that were not awaited and logs them." msgstr "" +"Habilitar :ref:`asyncio debug mode `. Por ejemplo, :mod:" +"`asyncio` comprueba las corutinas que no fueron esperadas y las registra." #: ../Doc/library/devmode.rst:70 msgid "" "It behaves as if the :envvar:`PYTHONASYNCIODEBUG` environment variable is " "set to ``1``." msgstr "" +"Se comporta como si la variable de entorno :envvar:`PYTHONASYNCIODEBUG` " +"estuviera establecida en ``1``." #: ../Doc/library/devmode.rst:73 msgid "" @@ -159,6 +196,9 @@ msgid "" "operations. Examples: :func:`open`, :meth:`str.encode` and :meth:`bytes." "decode`." msgstr "" +"Comprueba los argumentos *encoding* y *errors* para las operaciones de " +"codificación y decodificación de cadenas. Ejemplos: :func:`open`, :meth:`str." +"encode` y :meth:`bytes.decode`." #: ../Doc/library/devmode.rst:77 msgid "" @@ -166,16 +206,22 @@ msgid "" "the first encoding/decoding error and the *encoding* argument is sometimes " "ignored for empty strings." msgstr "" +"Por defecto, para un mejor rendimiento, el argumento *errors* sólo se " +"comprueba en el primer error de codificación/decodificación y el argumento " +"*encoding* a veces se ignora para las cadenas vacías." #: ../Doc/library/devmode.rst:81 msgid "The :class:`io.IOBase` destructor logs ``close()`` exceptions." msgstr "" +"El destructor de :class:`io.IOBase` registra las excepciones ``close()``." #: ../Doc/library/devmode.rst:82 msgid "" "Set the :attr:`~sys.flags.dev_mode` attribute of :attr:`sys.flags` to " "``True``." msgstr "" +"Establece el atributo :attr:`~sys.flags.dev_mode` de :attr:`sys.flags` a " +"``True``." #: ../Doc/library/devmode.rst:85 msgid "" @@ -187,6 +233,13 @@ msgid "" "buffer overflow error logs the traceback where the memory block was " "allocated." msgstr "" +"El Modo de Desarrollo de Python no habilita el módulo :mod:`tracemalloc` por " +"defecto, porque el costo de la sobrecarga (para el rendimiento y la memoria) " +"sería demasiado grande. Activar el módulo :mod:`tracemalloc` proporciona " +"información adicional sobre el origen de algunos errores. Por ejemplo, :exc:" +"`ResourceWarning` registra la traza donde se asignó el recurso, y un error " +"de desbordamiento de búfer registra la traza donde se asignó el bloque de " +"memoria." #: ../Doc/library/devmode.rst:92 msgid "" @@ -194,49 +247,66 @@ msgid "" "option from removing :keyword:`assert` statements nor from setting :const:" "`__debug__` to ``False``." msgstr "" +"El modo de desarrollo de Python no impide que la opción de línea de " +"comandos :option:`-O` elimine las declaraciones :keyword:`assert` ni que " +"establezca :const:`__debug__` a ``False``." #: ../Doc/library/devmode.rst:96 msgid "The :class:`io.IOBase` destructor now logs ``close()`` exceptions." msgstr "" +"El destructor de :class:`io.IOBase` ahora registra las excepciones " +"``close()``." #: ../Doc/library/devmode.rst:99 msgid "" "The *encoding* and *errors* arguments are now checked for string encoding " "and decoding operations." msgstr "" +"Los argumentos *enconding* y *errors* se comprueban ahora para las " +"operaciones de codificación y descodificación de cadenas." #: ../Doc/library/devmode.rst:105 msgid "ResourceWarning Example" -msgstr "" +msgstr "Ejemplo de ResourceWarning" #: ../Doc/library/devmode.rst:107 msgid "" "Example of a script counting the number of lines of the text file specified " "in the command line::" msgstr "" +"Ejemplo de un script que cuenta el número de líneas del archivo de texto " +"especificado en la línea de comandos::" #: ../Doc/library/devmode.rst:121 msgid "" "The script does not close the file explicitly. By default, Python does not " "emit any warning. Example using README.txt, which has 269 lines:" msgstr "" +"El script no cierra el archivo explícitamente. Por defecto, Python no emite " +"ninguna advertencia. Ejemplo usando README.txt, que tiene 269 líneas:" #: ../Doc/library/devmode.rst:129 msgid "" "Enabling the Python Development Mode displays a :exc:`ResourceWarning` " "warning:" msgstr "" +"Al activar el modo de desarrollo de Python aparece una advertencia :exc:" +"`ResourceWarning`:" #: ../Doc/library/devmode.rst:139 msgid "" "In addition, enabling :mod:`tracemalloc` shows the line where the file was " "opened:" msgstr "" +"Además, al activar :mod:`tracemalloc` se muestra la línea en la que se abrió " +"el archivo:" #: ../Doc/library/devmode.rst:154 msgid "" "The fix is to close explicitly the file. Example using a context manager::" msgstr "" +"La solución es cerrar explícitamente el archivo. Ejemplo utilizando un " +"gestor de contexto::" #: ../Doc/library/devmode.rst:162 msgid "" @@ -245,24 +315,30 @@ msgid "" "CPython, but it is even worse in PyPy. Closing resources explicitly makes an " "application more deterministic and more reliable." msgstr "" +"No cerrar un recurso explícitamente puede dejar un recurso abierto durante " +"mucho más tiempo del estimado; puede causar graves problemas al salir de " +"Python. Es malo en CPython, pero es aún peor en PyPy. Cerrar los recursos " +"explícitamente hace que una aplicación sea más detallista y más fiable." #: ../Doc/library/devmode.rst:169 msgid "Bad file descriptor error example" -msgstr "" +msgstr "Ejemplo de error de descriptor de archivo incorrecto" #: ../Doc/library/devmode.rst:171 msgid "Script displaying the first line of itself::" -msgstr "" +msgstr "Script que muestra la primera línea de sí mismo::" #: ../Doc/library/devmode.rst:184 msgid "By default, Python does not emit any warning:" -msgstr "" +msgstr "Por defecto, Python no emite ninguna advertencia:" #: ../Doc/library/devmode.rst:191 msgid "" "The Python Development Mode shows a :exc:`ResourceWarning` and logs a \"Bad " "file descriptor\" error when finalizing the file object:" msgstr "" +"El modo de desarrollo de Python muestra un :exc:`ResourceWarning` y registra " +"un error \"Bad file descriptor\" cuando termina el objeto archivo:" #: ../Doc/library/devmode.rst:207 msgid "" @@ -272,9 +348,16 @@ msgid "" "worst case scenario, closing it twice can lead to a crash (see :issue:" "`18748` for an example)." msgstr "" +"``os.close(fp.fileno())`` cierra el descriptor de archivo. Cuando el " +"finalizador de objetos de archivo intenta cerrar el descriptor de archivo de " +"nuevo, falla con el error ``Bad file descriptor``. Un descriptor de archivo " +"debe cerrarse sólo una vez. En el peor de los casos, cerrarlo dos veces " +"puede provocar un fallo (ver :issue:`18748` para un ejemplo)." #: ../Doc/library/devmode.rst:213 msgid "" "The fix is to remove the ``os.close(fp.fileno())`` line, or open the file " "with ``closefd=False``." msgstr "" +"La solución es eliminar la línea ``os.close(fp.fileno())``, o abrir el " +"archivo con ``closefd=False``." diff --git a/library/dialog.po b/library/dialog.po index c3d4622f52..e6a443753b 100644 --- a/library/dialog.po +++ b/library/dialog.po @@ -4,77 +4,89 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-08-12 10:24-0500\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Last-Translator: \n" +"Language-Team: \n" +"X-Generator: Poedit 3.0\n" +"Language: es\n" #: ../Doc/library/dialog.rst:2 msgid "Tkinter Dialogs" -msgstr "" +msgstr "Diálogos Tkinter" #: ../Doc/library/dialog.rst:5 msgid ":mod:`tkinter.simpledialog` --- Standard Tkinter input dialogs" -msgstr "" +msgstr ":mod:`tkinter.simpledialog` ---Diálogos de entrada estándar de Tkinter" #: ../Doc/library/dialog.rst:11 msgid "**Source code:** :source:`Lib/tkinter/simpledialog.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/simpledialog.py`" #: ../Doc/library/dialog.rst:15 msgid "" "The :mod:`tkinter.simpledialog` module contains convenience classes and " "functions for creating simple modal dialogs to get a value from the user." msgstr "" +"El módulo :mod:`tkinter.simpledialog` contiene clases y funciones " +"convenientes para crear diálogos modales simples para obtener un valor de " +"entrada del usuario." #: ../Doc/library/dialog.rst:23 msgid "" "The above three functions provide dialogs that prompt the user to enter a " "value of the desired type." msgstr "" +"Las tres funciones anteriores proporcionan diálogos que piden al usuario que " +"introduzca un valor del tipo deseado." #: ../Doc/library/dialog.rst:28 msgid "The base class for custom dialogs." -msgstr "" +msgstr "La clase base para los diálogos personalizados." #: ../Doc/library/dialog.rst:32 msgid "" "Override to construct the dialog's interface and return the widget that " "should have initial focus." msgstr "" +"Sobrescribir para construir la interfaz del dialogo y retornar el widget que " +"debe tener el foco inicial." #: ../Doc/library/dialog.rst:37 msgid "" "Default behaviour adds OK and Cancel buttons. Override for custom button " "layouts." msgstr "" +"El comportamiento por defecto añade los botones OK y Cancelar. Sobrescribir " +"para diseños de botones personalizados." #: ../Doc/library/dialog.rst:43 msgid ":mod:`tkinter.filedialog` --- File selection dialogs" -msgstr "" +msgstr "Diálogos de selección de archivos" #: ../Doc/library/dialog.rst:49 msgid "**Source code:** :source:`Lib/tkinter/filedialog.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/filedialog.py`" #: ../Doc/library/dialog.rst:53 msgid "" "The :mod:`tkinter.filedialog` module provides classes and factory functions " "for creating file/directory selection windows." msgstr "" +"El módulo :mod:`tkinter.filedialog` proporciona clases y funciones de " +"factoría para crear ventanas de selección de archivos/directorios." #: ../Doc/library/dialog.rst:57 msgid "Native Load/Save Dialogs" -msgstr "" +msgstr "Diálogos nativos de carga/guardado" #: ../Doc/library/dialog.rst:59 msgid "" @@ -83,39 +95,49 @@ msgid "" "The following keyword arguments are applicable to the classes and functions " "listed below:" msgstr "" +"Las siguientes clases y funciones proporcionan ventanas de diálogo de " +"archivos que combinan un aspecto nativo con opciones de configuración para " +"personalizar el comportamiento. Los siguientes argumentos son aplicables a " +"las clases y funciones enumeradas a continuación:" #: ../Doc/library/dialog.rst msgid "*parent* - the window to place the dialog on top of" -msgstr "" +msgstr "*parent* - la ventana sobre la que se situará el diálogo" #: ../Doc/library/dialog.rst msgid "*title* - the title of the window" -msgstr "" +msgstr "*title* - el título de la ventana" #: ../Doc/library/dialog.rst msgid "*initialdir* - the directory that the dialog starts in" -msgstr "" +msgstr "*initialdir* - el directorio en el que inicia el diálogo" #: ../Doc/library/dialog.rst msgid "*initialfile* - the file selected upon opening of the dialog" -msgstr "" +msgstr "*initialfile* - el archivo seleccionado al abrir el diálogo" #: ../Doc/library/dialog.rst msgid "" "*filetypes* - a sequence of (label, pattern) tuples, '*' wildcard is allowed" msgstr "" +"*filetypes* - una secuencia de tuplas (label, pattern), se permite el " +"comodín '*'" #: ../Doc/library/dialog.rst msgid "*defaultextension* - default extension to append to file (save dialogs)" msgstr "" +"*defaultextension* - extensión por defecto para añadir al archivo (diálogos " +"de guardado)" #: ../Doc/library/dialog.rst msgid "*multiple* - when true, selection of multiple items is allowed" msgstr "" +"*multiple* - cuando es verdadero, se permite la selección de múltiples " +"elementos" #: ../Doc/library/dialog.rst:79 msgid "**Static factory functions**" -msgstr "" +msgstr "**Funciones estáticas de factoría**" #: ../Doc/library/dialog.rst:81 msgid "" @@ -123,165 +145,194 @@ msgid "" "wait for the user's selection, then return the selected value(s) or ``None`` " "to the caller." msgstr "" +"Las siguientes funciones, al ser invocadas, crean un diálogo modal de " +"aspecto nativo, esperan la selección del usuario y retornan el(los) " +"valor(es) seleccionado(s) o ``Ninguno`` a la llamada." #: ../Doc/library/dialog.rst:88 msgid "" "The above two functions create an :class:`Open` dialog and return the opened " "file object(s) in read-only mode." msgstr "" +"Las dos funciones anteriores crean un diálogo :class:`Open` y retornan " +"el( los) objeto(s) de archivo(s) abierto(s) en modo de sólo lectura." #: ../Doc/library/dialog.rst:93 msgid "" "Create a :class:`SaveAs` dialog and return a file object opened in write-" "only mode." msgstr "" +"Crea un diálogo :class:`SaveAs` y retorna un objeto de un archivo abierto en " +"modo de sólo escritura." #: ../Doc/library/dialog.rst:98 msgid "" "The above two functions create an :class:`Open` dialog and return the " "selected filename(s) that correspond to existing file(s)." msgstr "" +"Las dos funciones anteriores crean un diálogo :class:`Open` y retornan " +"el( los) nombre(s) de archivo(s) seleccionado(s) que corresponde(n) a un(os) " +"archivo(s) existente(s)." #: ../Doc/library/dialog.rst:103 msgid "Create a :class:`SaveAs` dialog and return the selected filename." msgstr "" +"Crea un diálogo :class:`SaveAs` y retorna el nombre del archivo seleccionado." #: ../Doc/library/dialog.rst:107 msgid "Prompt user to select a directory." -msgstr "" +msgstr "Pide al usuario que seleccione un directorio." #: ../Doc/library/dialog.rst:108 msgid "Additional keyword option:" -msgstr "" +msgstr "Argumento opcional adicional:" #: ../Doc/library/dialog.rst:109 msgid "*mustexist* - determines if selection must be an existing directory." msgstr "" +"*mustexist* - determina si la selección debe ser un directorio existente." #: ../Doc/library/dialog.rst:114 msgid "" "The above two classes provide native dialog windows for saving and loading " "files." msgstr "" +"Las dos clases anteriores proporcionan ventanas de diálogo nativas para " +"guardar y cargar archivos." #: ../Doc/library/dialog.rst:117 msgid "**Convenience classes**" -msgstr "" +msgstr "**Clases de conveniencia**" #: ../Doc/library/dialog.rst:119 msgid "" "The below classes are used for creating file/directory windows from scratch. " "These do not emulate the native look-and-feel of the platform." msgstr "" +"Las siguientes clases se utilizan para crear ventanas de archivos/" +"directorios desde cero. Estas no emulan el aspecto nativo de la plataforma." #: ../Doc/library/dialog.rst:124 msgid "Create a dialog prompting the user to select a directory." -msgstr "" +msgstr "Crear un diálogo que solicite al usuario que seleccione un directorio." #: ../Doc/library/dialog.rst:126 msgid "" "The *FileDialog* class should be subclassed for custom event handling and " "behaviour." msgstr "" +"La clase *FileDialog* debe ser subclasificada para el manejo de eventos y " +"comportamiento personalizados." #: ../Doc/library/dialog.rst:131 msgid "Create a basic file selection dialog." -msgstr "" +msgstr "Crear un diálogo básico de selección de archivos." #: ../Doc/library/dialog.rst:135 msgid "Trigger the termination of the dialog window." -msgstr "" +msgstr "Activa la terminación de la ventana de diálogo." #: ../Doc/library/dialog.rst:139 msgid "Event handler for double-click event on directory." -msgstr "" +msgstr "Manejador de eventos para el evento de doble clic sobre un directorio." #: ../Doc/library/dialog.rst:143 msgid "Event handler for click event on directory." -msgstr "" +msgstr "Manejador de eventos para el evento de clic sobre un directorio." #: ../Doc/library/dialog.rst:147 msgid "Event handler for double-click event on file." -msgstr "" +msgstr "Manejador de eventos para el evento de doble clic sobre un archivo." #: ../Doc/library/dialog.rst:151 msgid "Event handler for single-click event on file." -msgstr "" +msgstr "Manejador de eventos para el evento de un solo clic sobre un archivo." #: ../Doc/library/dialog.rst:155 msgid "Filter the files by directory." -msgstr "" +msgstr "Filtra los archivos por directorio." #: ../Doc/library/dialog.rst:159 msgid "Retrieve the file filter currently in use." -msgstr "" +msgstr "Recupera el filtro de archivos que se está utilizando actualmente." #: ../Doc/library/dialog.rst:163 msgid "Retrieve the currently selected item." -msgstr "" +msgstr "Recupera el elemento seleccionado actualmente." #: ../Doc/library/dialog.rst:167 msgid "Render dialog and start event loop." -msgstr "" +msgstr "Renderiza el diálogo e inicia el bucle de eventos." #: ../Doc/library/dialog.rst:171 msgid "Exit dialog returning current selection." -msgstr "" +msgstr "Salir del diálogo retornando la selección actual." #: ../Doc/library/dialog.rst:175 msgid "Exit dialog returning filename, if any." -msgstr "" +msgstr "Salir del diálogo retornando el nombre del archivo, si lo hay." #: ../Doc/library/dialog.rst:179 msgid "Set the file filter." -msgstr "" +msgstr "Establece el filtro de archivos." #: ../Doc/library/dialog.rst:183 msgid "Update the current file selection to *file*." -msgstr "" +msgstr "Actualiza la selección de archivos actual a *archivo*." #: ../Doc/library/dialog.rst:188 msgid "" "A subclass of FileDialog that creates a dialog window for selecting an " "existing file." msgstr "" +"Una subclase de FileDialog que crea una ventana de diálogo para seleccionar " +"un archivo existente." #: ../Doc/library/dialog.rst:193 msgid "" "Test that a file is provided and that the selection indicates an already " "existing file." msgstr "" +"Comprueba que se proporciona un archivo y que la selección indica un archivo " +"ya existente." #: ../Doc/library/dialog.rst:198 msgid "" "A subclass of FileDialog that creates a dialog window for selecting a " "destination file." msgstr "" +"Una subclase de FileDialog que crea una ventana de diálogo para seleccionar " +"un archivo de destino." #: ../Doc/library/dialog.rst:203 msgid "" "Test whether or not the selection points to a valid file that is not a " "directory. Confirmation is required if an already existing file is selected." msgstr "" +"Comprueba si la selección apunta a un archivo válido que no es un " +"directorio. Se requiere confirmación si se selecciona un archivo ya " +"existente." #: ../Doc/library/dialog.rst:208 msgid ":mod:`tkinter.commondialog` --- Dialog window templates" -msgstr "" +msgstr ":mod:`tkinter.commondialog` --- Plantillas de ventanas de diálogo" #: ../Doc/library/dialog.rst:214 msgid "**Source code:** :source:`Lib/tkinter/commondialog.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/commondialog.py`" #: ../Doc/library/dialog.rst:218 msgid "" "The :mod:`tkinter.commondialog` module provides the :class:`Dialog` class " "that is the base class for dialogs defined in other supporting modules." msgstr "" +"El módulo :mod:`tkinter.commondialog` proporciona la clase :class:`Dialog` " +"que es la clase base para los diálogos definidos en otros módulos de soporte." #: ../Doc/library/dialog.rst:225 msgid "Render the Dialog window." -msgstr "" +msgstr "Renderiza la ventana de diálogo." #: ../Doc/library/dialog.rst:230 msgid "Modules :mod:`tkinter.messagebox`, :ref:`tut-files`" -msgstr "" +msgstr "Módulos :mod:`tkinter.messagebox`, :ref:`tut-files`" diff --git a/library/difflib.po b/library/difflib.po index f8fd2508e9..0b91804e28 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-10 20:48+0000\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 15:42+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/difflib.rst:2 msgid ":mod:`difflib` --- Helpers for computing deltas" @@ -30,7 +31,6 @@ msgid "**Source code:** :source:`Lib/difflib.py`" msgstr "**Código fuente:** :source:`Lib/difflib.py`" #: ../Doc/library/difflib.rst:20 -#, fuzzy msgid "" "This module provides classes and functions for comparing sequences. It can " "be used for example, for comparing files, and can produce information about " @@ -38,11 +38,11 @@ msgid "" "diffs. For comparing directories and files, see also, the :mod:`filecmp` " "module." msgstr "" -"Este módulo provee clases y funciones para comparar secuencias. Puede ser " -"utilizado por ejemplo, para comparar archivos, y puede producir información " -"de diferencias en varios formatos, incluido HTML y diferencias contextuales " -"y unificadas. Para comparar directorios y archivos, consulte también el " -"módulo :mod:`filecmp`." +"Este módulo proporciona clases y funciones para comparar secuencias. Se " +"puede utilizar, por ejemplo, para comparar archivos y puede producir " +"información sobre diferencias de archivo en varios formatos, incluidos HTML " +"y contexto y diferencias unificadas. Para comparar directorios y archivos, " +"consulte también el módulo :mod:`filecmp`." #: ../Doc/library/difflib.rst:29 msgid "" @@ -397,7 +397,7 @@ msgstr "" "Retorna una lista de las mejores coincidencias \"lo suficientemente buenas" "\". *word* es una secuencia para la cual coincidencias cercanas son deseadas " "(usualmente una cadena de texto), y *possibilities* es una lista de " -"secuencias contra la cual se compara *word* (comunmente una lista de cadenas " +"secuencias contra la cual se compara *word* (comúnmente una lista de cadenas " "de caracteres)." #: ../Doc/library/difflib.rst:202 @@ -777,7 +777,7 @@ msgstr "Este método retorna un :term:`named tuple` ``Match(a, b, size)``." #: ../Doc/library/difflib.rst:462 msgid "Added default arguments." -msgstr "" +msgstr "Se agregaron argumentos predeterminados." #: ../Doc/library/difflib.rst:468 msgid "" diff --git a/library/dis.po b/library/dis.po index d998028c38..0b2fd03253 100644 --- a/library/dis.po +++ b/library/dis.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-29 02:57+0200\n" +"PO-Revision-Date: 2021-08-07 15:41+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" @@ -500,13 +501,12 @@ msgstr "" "mueve el elemento superior hacia abajo a la posición tres." #: ../Doc/library/dis.rst:349 -#, fuzzy msgid "" "Lifts second, third and fourth stack items one position up, moves top down " "to position four." msgstr "" -"Levanta el segundo, tercer y cuarto elementos de la pila una posición hacia " -"arriba, mueve el elemento superior hacia abajo a la posición cuatro." +"Eleva los elementos de la segunda, tercera y cuarta pila una posición hacia " +"arriba, se mueve de arriba hacia abajo a la posición cuatro." #: ../Doc/library/dis.rst:357 msgid "Duplicates the reference on top of the stack." @@ -786,12 +786,11 @@ msgstr "" "comprensiones de conjuntos." #: ../Doc/library/dis.rst:643 -#, fuzzy msgid "" "Calls ``list.append(TOS1[-i], TOS)``. Used to implement list comprehensions." msgstr "" -"Llama a ``list.append(TOS[-i], TOS)``. Se usa para implementar comprensiones " -"de listas." +"Llama a ``list.append(TOS1[-i], TOS)``. Se utiliza para implementar listas " +"por comprensión." #: ../Doc/library/dis.rst:648 msgid "" @@ -876,9 +875,9 @@ msgstr "" "el estado de excepción." #: ../Doc/library/dis.rst:711 -#, fuzzy msgid "Re-raises the exception currently on top of the stack." -msgstr "Duplica la referencia en la parte superior de la pila." +msgstr "" +"Vuelve a lanzar la excepción actualmente en la parte superior de la pila." #: ../Doc/library/dis.rst:718 msgid "" @@ -887,12 +886,18 @@ msgid "" "__exit__(*exc_info())`` when an exception has occurred in a :keyword:`with` " "statement." msgstr "" +"Llama a la función en la posición 7 de la pila con los tres elementos " +"superiores de la pila como argumentos. Se usa para implementar la llamada " +"``context_manager.__ exit __(*exc_info())`` cuando se ha producido una " +"excepción en una sentencia :keyword:`with`." #: ../Doc/library/dis.rst:728 msgid "" "Pushes :exc:`AssertionError` onto the stack. Used by the :keyword:`assert` " "statement." msgstr "" +"Inserta :exc:`AssertionError` en la pila. Utilizado por la declaración :" +"keyword:`assert`." #: ../Doc/library/dis.rst:736 msgid "" @@ -1062,28 +1067,26 @@ msgstr "" msgid "" "Pops a list from the stack and pushes a tuple containing the same values." msgstr "" +"Saca una lista de la pila y empuja una tupla que contiene los mismos valores." #: ../Doc/library/dis.rst:871 -#, fuzzy msgid "Calls ``list.extend(TOS1[-i], TOS)``. Used to build lists." -msgstr "" -"Llama a ``list.append(TOS[-i], TOS)``. Se usa para implementar comprensiones " -"de listas." +msgstr "Llama a ``list.extend(TOS1[-i], TOS)``. Se utiliza para crear listas." #: ../Doc/library/dis.rst:878 -#, fuzzy msgid "Calls ``set.update(TOS1[-i], TOS)``. Used to build sets." msgstr "" -"Llama a ``set.add(TOS1[-i], TOS)``. Se utiliza para implementar " -"comprensiones de conjuntos." +"Llama a ``set.update(TOS1[-i], TOS)``. Se usa para construir decorados." #: ../Doc/library/dis.rst:885 msgid "Calls ``dict.update(TOS1[-i], TOS)``. Used to build dicts." msgstr "" +"Llama a ``dict.update(TOS1[-i], TOS)``. Se usa para construir dictados." #: ../Doc/library/dis.rst:892 msgid "Like :opcode:`DICT_UPDATE` but raises an exception for duplicate keys." msgstr "" +"Como :opcode:`DICT_UPDATE` pero lanza una excepción para claves duplicadas." #: ../Doc/library/dis.rst:899 msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." @@ -1099,11 +1102,11 @@ msgstr "" #: ../Doc/library/dis.rst:910 msgid "Performs ``is`` comparison, or ``is not`` if ``invert`` is 1." -msgstr "" +msgstr "Realiza una comparación ``is`` o ``is not`` si ``invert`` es 1." #: ../Doc/library/dis.rst:917 msgid "Performs ``in`` comparison, or ``not in`` if ``invert`` is 1." -msgstr "" +msgstr "Realiza una comparación ``in`` o ``not in`` si ``invert`` es 1." #: ../Doc/library/dis.rst:924 msgid "" @@ -1150,6 +1153,8 @@ msgid "" "Tests whether the second value on the stack is an exception matching TOS, " "and jumps if it is not. Pops two values from the stack." msgstr "" +"Comprueba si el segundo valor de la pila es una excepción que coincide con " +"el TOS y salta si no lo es. Saca dos valores de la pila." #: ../Doc/library/dis.rst:966 msgid "" @@ -1172,7 +1177,6 @@ msgid "Set bytecode counter to *target*." msgstr "Establezca el contador de bytecode en *target*." #: ../Doc/library/dis.rst:987 -#, fuzzy msgid "" "TOS is an :term:`iterator`. Call its :meth:`~iterator.__next__` method. If " "this yields a new value, push it on the stack (leaving the iterator below " @@ -1304,7 +1308,6 @@ msgstr "" "posicionales." #: ../Doc/library/dis.rst:1083 -#, fuzzy msgid "" "Calls a callable object with positional (if any) and keyword arguments. " "*argc* indicates the total number of positional and keyword arguments. The " @@ -1319,14 +1322,15 @@ msgid "" msgstr "" "Llama a un objeto invocable con argumentos posicionales (si los hay) y " "palabras clave. *argc* indica el número total de argumentos posicionales y " -"de palabras clave. El elemento superior en la pila contiene una tupla de " -"nombres de argumentos de palabras clave. Debajo de eso hay argumentos de " -"palabras clave en el orden correspondiente a la tupla. Debajo de eso hay " -"argumentos posicionales, con el parámetro más a la derecha en la parte " -"superior. Debajo de los argumentos hay un objeto invocable para llamar. " -"``CALL_FUNCTION_KW`` saca todos los argumentos y el objeto invocable de la " -"pila, llama al objeto invocable con esos argumentos y empuja el valor de " -"retorno retornado por el objeto invocable." +"de palabras clave. El elemento superior de la pila contiene una tupla con " +"los nombres de los argumentos de la palabra clave, que deben ser cadenas de " +"caracteres. Debajo están los valores para los argumentos de la palabra " +"clave, en el orden correspondiente a la tupla. Debajo están los argumentos " +"posicionales, con el parámetro más a la derecha en la parte superior. Debajo " +"de los argumentos hay un objeto invocable para llamar. ``CALL_FUNCTION_KW`` " +"saca todos los argumentos y el objeto invocable de la pila, llama al objeto " +"invocable con esos argumentos y empuja el valor de retorno retornado por el " +"objeto invocable." #: ../Doc/library/dis.rst:1095 msgid "" @@ -1337,7 +1341,6 @@ msgstr "" "diccionario, *argc* indica el número total de argumentos." #: ../Doc/library/dis.rst:1102 -#, fuzzy msgid "" "Calls a callable object with variable set of positional and keyword " "arguments. If the lowest bit of *flags* is set, the top of the stack " @@ -1351,16 +1354,12 @@ msgstr "" "Llama a un objeto invocable con un conjunto variable de argumentos " "posicionales y de palabras clave. Si se establece el bit más bajo de " "*flags*, la parte superior de la pila contiene un objeto de mapeo que " -"contiene argumentos de palabras clave adicionales. Debajo de eso hay un " -"objeto iterable que contiene argumentos posicionales y un objeto invocable " -"para llamar. :opcode:`BUILD_MAP_UNPACK_WITH_CALL` y :opcode:" -"`BUILD_TUPLE_UNPACK_WITH_CALL` puede usarse para fusionar múltiples objetos " -"de mapeo e iterables que contienen argumentos. Antes de llamar al invocable, " -"el objeto de mapeo y el objeto iterable se \"desempaquetan\" y sus " -"contenidos se pasan como palabras clave y argumentos posicionales, " +"contiene argumentos de palabras clave adicionales. Antes de que se llame al " +"invocable, el objeto de mapeo y el objeto iterable se \"desempaquetan\" y su " +"contenido se pasa como palabra clave y argumentos posicionales, " "respectivamente. ``CALL_FUNCTION_EX`` saca todos los argumentos y el objeto " "invocable de la pila, llama al objeto invocable con esos argumentos y empuja " -"el valor de retorno retornado por el objeto invocable." +"el valor de retorno devuelto por el objeto invocable." #: ../Doc/library/dis.rst:1117 msgid "" diff --git a/library/distutils.po b/library/distutils.po index 482eb27863..ab407c5d94 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -45,8 +45,8 @@ msgid "" "an enhanced alternative to :mod:`distutils` that provides:" msgstr "" "La mayoría de los usuarios de Python *no* querrán utilizar este módulo " -"directamente, sino que usarán las herramientas cross-version mantenidas por " -"la Python Packaging Authority. En particular, `setuptools `__ es una alternativa mejorada a :mod:" "`distutils` que proporciona:" diff --git a/library/doctest.po b/library/doctest.po index 2e694009d2..5d14e3ec5f 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -104,7 +104,7 @@ msgid "" "file :file:`Lib/test/test_doctest.py`." msgstr "" "¡Eso es todo lo que necesitas saber para empezar a hacer uso productivo de :" -"mod:`doctest`! Zambúllete. Las siguientes secciones proporcionan detalles " +"mod:`doctest`! Lánzate. Las siguientes secciones proporcionan detalles " "completos. Note que hay muchos ejemplos de doctests en el conjunto de " "pruebas estándar de Python y bibliotecas. Especialmente ejemplos útiles se " "pueden encontrar en el archivo de pruebas estándar :file:`Lib/test/" @@ -1121,7 +1121,7 @@ msgstr "" "Los números de coma flotante también son sujetos a pequeñas variaciones de " "la salida a través de las plataformas, porque Python defiere a la librería C " "de la plataforma para el formato de flotantes, y las librerías de C varían " -"extensamente en calidad aqui. ::" +"extensamente en calidad aquí. ::" #: ../Doc/library/doctest.rst:820 msgid "" @@ -1195,7 +1195,7 @@ msgstr "" "si el argumento *package* es especificado, entonces es relativo a ese " "paquete. Para asegurar la independencia del SO, *filename* debe usar " "caracteres ``/`` para separar segmentos, y no puede ser una ruta absoluta " -"(p. eg., no puede empezar con ``/``)." +"(por ejemplo., no puede empezar con ``/``)." #: ../Doc/library/doctest.rst:859 msgid "" @@ -2016,7 +2016,7 @@ msgid "" "The constructor adds a newline when necessary." msgstr "" "La salida esperada de ejecutar el código fuente del ejemplo (o desde la " -"salida estandar, o un seguimiento en caso de una excepción). :attr:`wants` " +"salida estándar, o un seguimiento en caso de una excepción). :attr:`wants` " "termina con una nueva línea a menos que no se espera ninguna salida, en cuyo " "caso es una cadena vacía. El constructor añade una nueva línea cuando sea " "necesario." diff --git a/library/email.charset.po b/library/email.charset.po index eb2675ab21..3106358ff3 100644 --- a/library/email.charset.po +++ b/library/email.charset.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-10-01 13:08-0400\n" +"PO-Revision-Date: 2021-08-07 18:14+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Alvaro Cárdenas \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/email.charset.rst:2 msgid ":mod:`email.charset`: Representing character sets" @@ -158,7 +158,6 @@ msgstr "" "encabezado. `Charset.SHORTEST`` no está permitido para *body_encoding*." #: ../Doc/library/email.charset.rst:76 -#, fuzzy msgid "" "Some character sets must be converted before they can be used in email " "headers or bodies. If the *input_charset* is one of them, this attribute " @@ -201,7 +200,6 @@ msgstr "" "codificación del cuerpo." #: ../Doc/library/email.charset.rst:102 -#, fuzzy msgid "" "This is either the string ``quoted-printable`` or ``base64`` depending on " "the encoding used, or it is a function, in which case you should call the " @@ -209,11 +207,11 @@ msgid "" "function should then set the :mailheader:`Content-Transfer-Encoding` header " "itself to whatever is appropriate." msgstr "" -"Esta es la cadena ``quoted-printable`` o ``base64`` dependiendo de la " -"codificación usada, o es una función, en cuyo caso se deberá llamar a la " -"función con un solo argumento, el objeto Mensaje a ser codificado. La " -"función deberá luego establecer el encabezado :mailheader:`Content-Transfer-" -"Encoding` en lo que sea apropiado." +"Esta es la cadena de caracteres ``quoted-printable`` o ``base64`` " +"dependiendo de la codificación usada, o es una función, en cuyo caso se " +"deberá llamar a la función con un solo argumento, el objeto Mensaje a ser " +"codificado. La función deberá luego establecer el encabezado :mailheader:" +"`Content-Transfer-Encoding` en lo que sea apropiado." #: ../Doc/library/email.charset.rst:108 msgid "" @@ -238,9 +236,8 @@ msgstr "" "*input_charset*." #: ../Doc/library/email.charset.rst:156 -#, fuzzy msgid "Header-encode the string *string*." -msgstr "Codifica como encabezado la cadena *string*." +msgstr "Codifica como encabezado la cadena de caracteres *string*." #: ../Doc/library/email.charset.rst:158 msgid "" @@ -287,13 +284,12 @@ msgstr "" "soportar operaciones estándar y funciones integradas." #: ../Doc/library/email.charset.rst:185 -#, fuzzy msgid "" "Returns *input_charset* as a string coerced to lower case. :meth:`__repr__` " "is an alias for :meth:`__str__`." msgstr "" -"Retorna *input_charset* como una cadena convertida a minúsculas. :meth:" -"`__repr__` es un alias para :meth:`__str__`." +"Retorna *input_charset* como una cadena de caracteres convertida a " +"minúsculas. :meth:`__repr__` es un alias para :meth:`__str__`." #: ../Doc/library/email.charset.rst:191 msgid "" @@ -332,7 +328,6 @@ msgstr "" "canónico del conjunto de caracteres." #: ../Doc/library/email.charset.rst:211 -#, fuzzy msgid "" "Optional *header_enc* and *body_enc* is either ``Charset.QP`` for quoted-" "printable, ``Charset.BASE64`` for base64 encoding, ``Charset.SHORTEST`` for " @@ -340,9 +335,9 @@ msgid "" "encoding. ``SHORTEST`` is only valid for *header_enc*. The default is " "``None`` for no encoding." msgstr "" -"Opcional *header_enc* y *body_enc* es ``Charset.QP`` para quoted-printable, " -"``Charset.BASE64`` para codificación base64, ``Charset.SHORTEST`` para " -"codificación más corta quoted-printable o base64, o ``None`` para no " +"Opcional *header_enc* y *body_enc* es ``Charset.QP`` para imprimibles entre " +"comillas, ``Charset.BASE64`` para codificación base64, ``Charset.SHORTEST`` " +"para codificación más corta quoted-printable o base64, o ``None`` para no " "codificar. ``SHORTEST`` solo es válido para *header_enc*. El valor " "predeterminado es ``None`` para no codificar." @@ -372,7 +367,6 @@ msgstr "" "Consulte la documentación del módulo :mod:`codecs` para más información." #: ../Doc/library/email.charset.rst:227 -#, fuzzy msgid "" "The global character set registry is kept in the module global dictionary " "``CHARSETS``." @@ -390,16 +384,14 @@ msgstr "" "caracteres, p. ej. ``iso-8859-1``." #: ../Doc/library/email.charset.rst:236 -#, fuzzy msgid "" "The global charset alias registry is kept in the module global dictionary " "``ALIASES``." msgstr "" "El registro de alias global de conjuntos de caracteres se mantiene en el " -"módulo global diccionario `ALIASES``." +"módulo global diccionario ``ALIASES``." #: ../Doc/library/email.charset.rst:242 -#, fuzzy msgid "" "Add a codec that map characters in the given character set to and from " "Unicode." diff --git a/library/email.encoders.po b/library/email.encoders.po index dcd6ab1336..cd6227df1d 100644 --- a/library/email.encoders.po +++ b/library/email.encoders.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-11-17 20:38+0100\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 18:10+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/email.encoders.rst:2 msgid ":mod:`email.encoders`: Encoders" @@ -40,18 +41,17 @@ msgstr "" "parámetro *cte* del método :meth:`~email.message.EmailMessage.set_content`." #: ../Doc/library/email.encoders.rst:15 -#, fuzzy msgid "" "This module is deprecated in Python 3. The functions provided here should " "not be called explicitly since the :class:`~email.mime.text.MIMEText` class " "sets the content type and CTE header using the *_subtype* and *_charset* " "values passed during the instantiation of that class." msgstr "" -"Este módulo está obsoleto (deprecated) en Python 3. Las funciones que " -"aparecen aquí no deberían ser llamadas explícitamente ya que la clase :class:" -"`~email.mime.text.MIMEText` establece el tipo de contenido y el encabezado " -"CTE utilizando los valores del *_subtype* y del *_charset* que se pasan " -"cuando se instancia esa clase." +"Este módulo está obsoleto en Python 3. Las funciones que aparecen aquí no " +"deberían ser llamadas explícitamente ya que la clase :class:`~email.mime." +"text.MIMEText` establece el tipo de contenido y el encabezado CTE utilizando " +"los valores del *_subtype* y del *_charset* que se pasan cuando se instancia " +"esa clase." #: ../Doc/library/email.encoders.rst:20 msgid "" diff --git a/library/email.message.po b/library/email.message.po index d9387afba9..edb6585bf8 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -11,16 +11,16 @@ 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: 2020-12-20 13:12-0600\n" +"PO-Revision-Date: 2021-08-07 18:10+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Hugo Valencia Vargas \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/email.message.rst:2 msgid ":mod:`email.message`: Representing an email message" @@ -61,15 +61,15 @@ msgid "" "having a MIME type such as :mimetype:`multipart/\\*` or :mimetype:`message/" "rfc822`." msgstr "" -"Un mensaje de e-mail consiste en *cabeceras* y una *carga útil* (a la que " -"también nos referimos como *contenido* o *payload*). Cabeceras como :rfc:" -"`5322` o :rfc:`6532` son nombres de campos de estilo y valores, donde el " -"nombre y valor están separados por un ':'. Los dos puntos no son parte ni " -"del nombre ni del valor. La carga útil puede ser un simple mensaje, un " -"objeto binario, o una secuencia estructurada de sub-mensajes, cada uno con " -"su propio conjunto de cabeceras y su propia carga útil. El último tipo de " -"carga útil es indicado por el mensaje con un MIME como :mimetype:`multipart/" -"\\*` o :mimetype:`message/rfc822` ." +"Un mensaje de correo electrónico consiste en *headers* y un *payload* (al " +"que también nos referimos como *content*). *Headers* como :rfc:`5322` o :rfc:" +"`6532` son nombres de campos de estilo y valores, donde el nombre y valor " +"están separados por un ':'. Los dos puntos no son parte ni del nombre ni del " +"valor. El *payload* puede ser un simple mensaje, un objeto binario, o una " +"secuencia estructurada de sub-mensajes, cada uno con su propio conjunto de " +"*headers* y su propio *payload*. El último tipo de *payload* es indicado por " +"el mensaje con un MIME como :mimetype:`multipart/\\*` o :mimetype:`message/" +"rfc822` ." #: ../Doc/library/email.message.rst:31 msgid "" @@ -434,13 +434,12 @@ msgid "Return a list of all the message's field values." msgstr "Retorna una lista de todos los valores de los campos del mensaje." #: ../Doc/library/email.message.rst:243 -#, fuzzy msgid "" "Return a list of 2-tuples containing all the message's field headers and " "values." msgstr "" -"Retorna una lista de 2 tuplas que contienen todos los campos *header* y " -"*value* del mensaje." +"Retorna una lista de tuplas de dos elementos que contienen todos los campos " +"cabeceras y valores del mensaje." #: ../Doc/library/email.message.rst:249 msgid "" @@ -614,9 +613,7 @@ msgstr "" "``get_content_type`` cuando ninguna cabecera :mailheader:`Content-Type` está " "presente en el mensaje." -# No estoy seguro si esta bien la traducción de la última oración. #: ../Doc/library/email.message.rst:359 -#, fuzzy msgid "" "Set a parameter in the :mailheader:`Content-Type` header. If the parameter " "already exists in the header, replace its value with *value*. When *header* " @@ -625,12 +622,12 @@ msgid "" "parameter value. Optional *header* specifies an alternative header to :" "mailheader:`Content-Type`." msgstr "" -"Establece un parámetro en la cabecera :mailheader:`Content-Type`. Si el " -"parámetro ya existe en la cabecera, su valor se reemplaza por *value*. " -"Cuando la cabecera es ``Content-Type`` (predeterminado) y aún no existe en " -"el mensaje, se agrega, se establece su valor a :mimetype:`text/plain`, y se " -"agrega el nuevo parámetro con su valor. Opcionalmente *header* especifica " -"una cabecera alternativa a :mailheader:`Content-Type`." +"Establece un parámetro en el encabezado :mailheader:`Content-Type`. Si el " +"parámetro ya existe en el encabezado, reemplace su valor con *value*. Cuando " +"*header* es ``Content-Type`` (el predeterminado) y el encabezado aún no " +"existe en el mensaje, agréguelo, establece su valor en :mimetype:`text/" +"plain` y agregue el nuevo valor del parámetro. *header* opcional especifica " +"un encabezado alternativo a :mailheader:`Content-Type`." #: ../Doc/library/email.message.rst:366 msgid "" @@ -821,9 +818,7 @@ msgstr "" "Los siguientes métodos se refieren a interrogar y manipular el contenido " "(*payload*) del mensaje." -# no encontré en la memoria otra traducción de all-purpose, me pareció bien multipropósito, podría ser también "universal", o "para todo propósito"? #: ../Doc/library/email.message.rst:477 -#, fuzzy msgid "" "The :meth:`walk` method is an all-purpose generator which can be used to " "iterate over all the parts and subparts of a message object tree, in depth-" @@ -892,17 +887,15 @@ msgstr "" "Empieza a buscar coincidencias candidatas con el objeto en el que se llama " "al método ``get_body``'." -# Tengo duda sobre esta oración :s. #: ../Doc/library/email.message.rst:548 -#, fuzzy msgid "" "If ``related`` is not included in *preferencelist*, consider the root part " "(or subpart of the root part) of any related encountered as a candidate if " "the (sub-)part matches a preference." msgstr "" -"Si ``related`` no está incluida en *preferencelist*, considere la parte raíz " -"(o subparte de la parte raíz) de cualquier *related* encontrada como " -"candidata si la (sub-)parte coincide con una preferencia." +"Si ``related`` no está incluido en la *preferencelist*, considere la parte " +"raíz (o subparte de la parte raíz) de cualquier relacionado encontrado como " +"candidato si la (sub-)parte coincide con una preferencia." #: ../Doc/library/email.message.rst:552 msgid "" @@ -1112,9 +1105,7 @@ msgstr "" "lanza :exc:`TypeError`. Si *content_manager* no es especificado, usa el " "``content_manager`` especificado por la :mod:`~email.policy` actual." -# traducir *attachments* ? #: ../Doc/library/email.message.rst:673 -#, fuzzy msgid "" "If the message is a ``multipart/mixed``, create a new message object, pass " "all of the arguments to its :meth:`set_content` method, and :meth:`~email." @@ -1128,18 +1119,18 @@ msgid "" "``inline`` attachments (:mailheader:`Content-Disposition: inline`), by " "passing appropriate options to the ``content_manager``." msgstr "" -"Si el mensaje es un ``multipart/mixed``, crea un nuevo objeto mensaje, pasa " -"todos los argumentos a su método :meth:`set_content` y lo une al " -"``multipart`` con :meth:`~email.message.Message.attach`. Si el mensaje es un " -"no-``multipart``, ``multipart/related``, o ``multipart/alternative``llama a :" -"meth:`make_mixed` y procede como arriba. Si *content_manager* no es " -"especificado, usa el ``content_manager`` especificado por la :mod:`~email." -"policy` actual. Si la parte agregada no tiene un encabezado :mailheader:" -"`Content-Disposition`, se agrega uno con el valor ``attachment``. Este " -"método se puede usar tanto para *attachments* explícitos (:mailheader:" -"`Content-Disposition: attachment`) como para *attachments* ``inline`` (:" -"mailheader:`Content-Disposition: inline`), pasando las opciones apropiadas " -"al ``content_manager``." +"Si el mensaje es un ``multipart/mixed``, cree un nuevo objeto de mensaje, " +"pase todos los argumentos a su método :meth:`set_content` y :meth:`~email." +"message.Message.attach` al ``multipart``. Si el mensaje no es ``multipart``, " +"``multipart/related`` o ``multipart/alternative``, llame :meth:`make_mixed` " +"y luego proceda como se indicó anteriormente. Si no se especifica " +"*content_manager*, use el ``content_manager`` especificado por el actual :" +"mod:`~email.policy`. Si la parte agregada no tiene encabezado :mailheader:" +"`Content-Disposition`, agregue uno con el valor ``attachment``. Este método " +"se puede utilizar tanto para adjuntos explícitos (:mailheader:`Content-" +"Disposition: attachment`) como para adjuntos ``inline`` (:mailheader:" +"`Content-Disposition: inline`), pasando las opciones apropiadas al " +"``content_manager``." #: ../Doc/library/email.message.rst:689 msgid "Remove the payload and all of the headers." @@ -1216,7 +1207,6 @@ msgstr "" "del mensaje. Como con el :attr:`~EmailMessage.preamble`, si no hay texto de " "epílogo este atributo será ``None``." -# En la memoria hay diferentes traducciones para parsing, análisis sintáctico me pareció la más adecuada #: ../Doc/library/email.message.rst:734 msgid "" "The *defects* attribute contains a list of all the problems found when " diff --git a/library/email.parser.po b/library/email.parser.po index 1a1f0eddcd..eb5e1c5ea1 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -545,7 +545,7 @@ msgid "" "See :mod:`email.errors` for details." msgstr "" "Algunos mensajes de conformidad no estándar pueden no ser internamente " -"consistentes acerca de su :mimetype:`multipart`\\-idad. Tales mensajes " +"consistentes acerca de su :mimetype:`multipart`\\ -idad. Tales mensajes " "pueden tener una cabecera :mailheader:`Content-Type` de tipo :mimetype:" "`multipart`, pero su método :meth:`~email.message.EmailMessage.is_multipart` " "puede retornar ``False``. Si tales mensajes son analizados con :class:" diff --git a/library/enum.po b/library/enum.po index 582244fb6a..7ef684ca80 100644 --- a/library/enum.po +++ b/library/enum.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-26 17:58-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 18:56+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/enum.rst:2 msgid ":mod:`enum` --- Support for enumerations" @@ -41,13 +42,16 @@ msgstr "" #: ../Doc/library/enum.rst:22 msgid "Case of Enum Members" -msgstr "" +msgstr "Caso de miembros de Enum" #: ../Doc/library/enum.rst:24 msgid "" "Because Enums are used to represent constants we recommend using UPPER_CASE " "names for enum members, and will be using that style in our examples." msgstr "" +"Debido a que las enumeraciones se usan para representar constantes, " +"recomendamos usar nombres UPPER_CASE para los miembros de enumeración, y " +"usaremos ese estilo en nuestros ejemplos." #: ../Doc/library/enum.rst:30 msgid "Module Contents" @@ -107,7 +111,6 @@ msgstr "" "cualquier valor." #: ../Doc/library/enum.rst:65 -#, fuzzy msgid "" "Instances are replaced with an appropriate value for Enum members. By " "default, the initial value starts at 1." @@ -314,7 +317,6 @@ msgstr "" "invalidar::" #: ../Doc/library/enum.rst:279 -#, fuzzy msgid "" "The goal of the default :meth:`_generate_next_value_` method is to provide " "the next :class:`int` in sequence with the last :class:`int` provided, but " @@ -329,6 +331,8 @@ msgstr "" msgid "" "The :meth:`_generate_next_value_` method must be defined before any members." msgstr "" +"El método :meth:`_generate_next_value_` debe definirse antes que cualquier " +"miembro." #: ../Doc/library/enum.rst:288 msgid "Iteration" @@ -438,15 +442,14 @@ msgstr "" "attr:`_ignore_`." #: ../Doc/library/enum.rst:396 -#, fuzzy msgid "" "Note: if your enumeration defines :meth:`__new__` and/or :meth:`__init__` " "then any value(s) given to the enum member will be passed into those " "methods. See `Planet`_ for an example." msgstr "" -"Nota: si tu enumeración define :meth:`__new__` y/o :meth:`__init__`, los " +"Nota: si tu enumeración define :meth:`__new__` o :meth:`__init__`, los " "valores que se hayan dado al miembro enum se pasarán a esos métodos. Ver " -"`Planeta`_ para un ejemplo." +"`Planet`_ para un ejemplo." #: ../Doc/library/enum.rst:402 msgid "Restricted Enum subclassing" @@ -866,7 +869,6 @@ msgstr "" "`IntEnum`." #: ../Doc/library/enum.rst:741 -#, fuzzy msgid "" "While :class:`Enum` can have members of any type, once you mix in an " "additional type, all the members must have values of that type, e.g. :class:" @@ -875,9 +877,9 @@ msgid "" msgstr "" "Mientras que :class:`Enum` puede tener miembros de cualquier tipo, una vez " "que se mezcle tipos adicionales, todos los miembros deben de tener los " -"valores de ese tipo, ej. :class:`int` de arriba. Esta restricción no se " -"aplica a las mezclas que solo agregan métodos y no especifican otro tipo de " -"datos como :class:`int` o :class:`str`." +"valores de ese tipo, por ejemplo, :class:`int` de arriba. Esta restricción " +"no se aplica a las mezclas que solo agregan métodos y no especifican otro " +"tipo." #: ../Doc/library/enum.rst:745 msgid "" @@ -908,6 +910,12 @@ msgid "" "and !r format codes to force usage of the :class:`Enum` class's :meth:" "`__str__` and :meth:`__repr__` methods." msgstr "" +":ref:`Cadenas de caracteres literales formateadas `, :meth:`str." +"format`, y :func:`format` usará el tipo mixto :meth:`__format__` a menos " +"que :meth:`__str__` o :meth:`__format__` se sobreescriba en la subclase, en " +"cuyo caso se utilizarán los métodos anulados o :class:`Enum`. Use los " +"códigos de formato !s y !r para forzar el uso de los métodos :class:`Enum` " +"de las clases :meth:`__str__` y :meth:`__repr__`." #: ../Doc/library/enum.rst:759 msgid "When to use :meth:`__new__` vs. :meth:`__init__`" @@ -1034,12 +1042,16 @@ msgid "" "To make a more general purpose ``AutoNumber``, add ``*args`` to the " "signature::" msgstr "" +"Para hacer un ``AutoNumber`` de propósito más general, agregue ``*args`` a " +"la firma::" #: ../Doc/library/enum.rst:900 msgid "" "Then when you inherit from ``AutoNumber`` you can write your own " "``__init__`` to handle any extra arguments::" msgstr "" +"Luego, cuando hereda de ``AutoNumber``, puede escribir su propio " +"``__init__`` para manejar cualquier argumento adicional::" #: ../Doc/library/enum.rst:919 msgid "" @@ -1197,7 +1209,7 @@ msgstr "``_name_``— nombre del miembro" msgid "" "``_value_`` -- value of the member; can be set / modified in ``__new__``" msgstr "" -"``_value_`` — valor del miembr0; se puede definir / modificar en ``__new__``" +"``_value_`` — valor del miembro; se puede definir / modificar en ``__new__``" #: ../Doc/library/enum.rst:1091 msgid "" @@ -1208,13 +1220,12 @@ msgstr "" "valor; puede ser anulado" #: ../Doc/library/enum.rst:1093 -#, fuzzy msgid "" "``_ignore_`` -- a list of names, either as a :class:`list` or a :class:" "`str`, that will not be transformed into members, and will be removed from " "the final class" msgstr "" -"``_ignore_`` — una lista de nombres, ya sea como una :func:`list` o una :" +"``_ignore_`` -- una lista de nombres, ya sea como una :func:`list` o una :" "func:`str` que no será transformada en miembros, y que se eliminará de la " "clase final" @@ -1264,7 +1275,7 @@ msgstr "" #: ../Doc/library/enum.rst:1126 msgid "_Private__names" -msgstr "" +msgstr "_Private__names" #: ../Doc/library/enum.rst:1128 msgid "" @@ -1272,6 +1283,9 @@ msgid "" "error or a member (depending on if the name ends with an underscore). Using " "these names in 3.9 will issue a :exc:`DeprecationWarning`." msgstr "" +"Los nombres privados serán atributos normales en Python 3.10 en lugar de un " +"error o un miembro (dependiendo de si el nombre termina con un guión bajo). " +"El uso de estos nombres en 3.9 emitirá un :exc:`DeprecationWarning`." #: ../Doc/library/enum.rst:1134 msgid "``Enum`` member type" diff --git a/library/exceptions.po b/library/exceptions.po index 9586927973..b780785cff 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-20 10:03-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 18:27+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/exceptions.rst:4 msgid "Built-in Exceptions" @@ -447,7 +448,7 @@ msgid "" msgstr "" "La segunda forma del constructor establece los atributos correspondientes, " "que se describen a continuación. Los atributos predeterminados son :const:" -"`None` si no se especificam. Para compatibilidad con versiones anteriores, " +"`None` si no se especifican. Para compatibilidad con versiones anteriores, " "si se pasan tres argumentos, el atributo :attr:`~BaseException.args` " "contiene solo una tupla de 2 de los dos primeros argumentos del constructor." @@ -1133,6 +1134,9 @@ msgid "" "pep:`565`). Enabling the :ref:`Python Development Mode ` shows this " "warning." msgstr "" +"Ignorado por los filtros de advertencia predeterminados, excepto en el " +"módulo ``__main__`` (:pep:`565`). Habilitando :ref:`Modo Desarrollo de " +"Python ` muestra esta advertencia." #: ../Doc/library/exceptions.rst:698 msgid "" @@ -1159,6 +1163,8 @@ msgid "" "Ignored by the default warning filters. Enabling the :ref:`Python " "Development Mode ` shows this warning." msgstr "" +"Ignorado por los filtros de advertencia predeterminados. Habilitando :ref:" +"`Modo Desarrollo de Python ` muestra esta advertencia." #: ../Doc/library/exceptions.rst:712 msgid "Base class for warnings about dubious syntax." @@ -1197,9 +1203,8 @@ msgstr "" "`bytearray`." #: ../Doc/library/exceptions.rst:746 -#, fuzzy msgid "Base class for warnings related to resource usage." -msgstr "Clase base para advertencias relacionadas con Unicode." +msgstr "Clase base para advertencias relacionadas con el uso de recursos." #: ../Doc/library/exceptions.rst:756 msgid "Exception hierarchy" diff --git a/library/faulthandler.po b/library/faulthandler.po index 7798cee3f3..006f4386aa 100644 --- a/library/faulthandler.po +++ b/library/faulthandler.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2021-01-21 17:10-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 18:24+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/faulthandler.rst:2 msgid ":mod:`faulthandler` --- Dump the Python traceback" @@ -120,6 +121,8 @@ msgid "" "The :ref:`Python Development Mode ` calls :func:`faulthandler." "enable` at Python startup." msgstr "" +"El :ref:`Modo de Desarrollo Python ` llama a :func:`failurehandler." +"enable` al inicio de Python." #: ../Doc/library/faulthandler.rst:48 msgid "Dumping the traceback" @@ -195,7 +198,7 @@ msgid "" msgstr "" "Vuelca los rastreos de todos los hilos, después de un tiempo de espera de " "*timeout* segundos, o cada *timeout* segundos si *repeat* es ``True``. Si " -"*exit* es ``True``, llama a :c:func:`_exit` con status=1 después de volcar " +"*exit* es ``True``, llama a :c:func:`_exit` con *status=1* después de volcar " "los rastreos. (Nota: :c:func:`_exit` termina el proceso inmediatamente, lo " "que significa que no hace ninguna limpieza como vaciar los buffers de " "archivos.) Si la función se llama dos veces, la nueva llamada reemplaza los " diff --git a/library/fcntl.po b/library/fcntl.po index 4364c180e5..c3edd59d39 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-07 11:40+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 18:24+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/fcntl.rst:2 msgid ":mod:`fcntl` --- The ``fcntl`` and ``ioctl`` system calls" @@ -76,6 +77,11 @@ msgid "" "module exposes the ``F_OFD_GETLK``, ``F_OFD_SETLK`` and ``F_OFD_SETLKW`` " "constants, which working with open file description locks." msgstr "" +"En macOS, el módulo fcntl expone la constante ``F_GETPATH``, que obtiene la " +"ruta de un archivo a partir de un descriptor de archivo. En Linux (>=3.15), " +"el módulo fcntl expone las constantes ``F_OFD_GETLK``, ``F_OFD_SETLK`` y " +"``F_OFD_SETLKW``, que funcionan con bloqueos de descripción de archivos " +"abiertos." #: ../Doc/library/fcntl.rst:42 msgid "The module defines the following functions:" diff --git a/library/fnmatch.po b/library/fnmatch.po index 91c0b630f3..1bca4a8e94 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-09 22:24-0400\n" -"Last-Translator: Alice Colman \n" +"PO-Revision-Date: 2021-08-07 18:18+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/fnmatch.rst:2 msgid ":mod:`fnmatch` --- Unix filename pattern matching" @@ -138,15 +139,14 @@ msgstr "" "aplica :func:`os.path.normcase`." #: ../Doc/library/fnmatch.rst:78 -#, fuzzy msgid "" "Construct a list from those elements of the iterable *names* that match " "*pattern*. It is the same as ``[n for n in names if fnmatch(n, pattern)]``, " "but implemented more efficiently." msgstr "" -"Retorna el subconjunto de la lista *names* que coinciden con *pattern*. Es " -"lo mismo que ``[n for n in names if fnmatch(n, pattern)]``, pero " -"implementado de manera más eficiente." +"Construye una lista a partir de los elementos de los *names* iterables que " +"coinciden con el *pattern*. Es lo mismo que ``[n for n in names if " +"fnmatch(n, pattern)]``, pero implementado de manera más eficiente." #: ../Doc/library/fnmatch.rst:84 msgid "" diff --git a/library/fractions.po b/library/fractions.po index 152163e855..cd660758bf 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-29 08:55-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 18:17+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/fractions.rst:2 msgid ":mod:`fractions` --- Rational numbers" @@ -122,6 +123,9 @@ msgid "" "*denominator*. :func:`math.gcd` always return a :class:`int` type. " "Previously, the GCD type depended on *numerator* and *denominator*." msgstr "" +"La función :func:`math.gcd` ahora se usa para normalizar el *numerator* y " +"*denominator*. :func:`math.gcd` siempre retorna un tipo :class:`int`. " +"Anteriormente, el tipo de GCD dependía de *numerator* y *denominator*." #: ../Doc/library/fractions.rst:94 msgid "Numerator of the Fraction in lowest term." diff --git a/library/ftplib.po b/library/ftplib.po index 1c52a19094..4529ca7831 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-07 12:12-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 19:06+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/ftplib.rst:2 msgid ":mod:`ftplib` --- FTP protocol client" @@ -48,7 +49,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:22 msgid "The default encoding is UTF-8, following :rfc:`2640`." -msgstr "" +msgstr "La codificación predeterminada es UTF-8, siguiendo :rfc:`2640`." #: ../Doc/library/ftplib.rst:24 msgid "Here's a sample session using the :mod:`ftplib` module::" @@ -59,7 +60,6 @@ msgid "The module defines the following items:" msgstr "El módulo define los siguientes elementos:" #: ../Doc/library/ftplib.rst:48 -#, fuzzy msgid "" "Return a new instance of the :class:`FTP` class. When *host* is given, the " "method call ``connect(host)`` is made. When *user* is given, additionally " @@ -71,15 +71,17 @@ msgid "" "to bind to as its source address before connecting. The *encoding* parameter " "specifies the encoding for directories and filenames." msgstr "" -"Retorna una instancia nueva de la clase :class:`FTP`. Cuando se proporciona " -"*host*, se llama al método ``connect(host)``. Cuando se proporciona *user*, " -"se llama adicionalmente al método ``login(user, passwd, acct)`` (donde " -"*passwd* y *acct* tienen como valor predeterminado la cadena vacía cuando no " -"se indica). El parámetro opcional *timeout* especifica un tiempo de espera " -"en segundo para bloquear operaciones como el intento de conexión (si no está " -"especificado, se usa el tiempo de espera global por defecto). " -"*source_address* es una tupla de 2 ``(host, port)`` para que el *socket* se " -"enlace como su dirección de origen antes de conectarse." +"Retorna una nueva instancia de la clase :class:`FTP`. Cuando se da *host*, " +"se realiza la llamada al método ``connect(host)``. Cuando se da *user*, " +"además se realiza la llamada al método ``login(user, passwd, acct)`` (donde " +"*passwd* y *acct* predeterminan la cadena de caracteres vacía cuando no se " +"dan). El parámetro opcional *timeout* especifica un tiempo de espera en " +"segundos para bloquear operaciones como el intento de conexión (si no se " +"especifica, se utilizará la configuración de tiempo de espera global " +"predeterminada). *source_address* es una tupla de dos elementos ``(host, " +"port)`` para que el socket se vincule como su dirección de origen antes de " +"conectarse. El parámetro *encoding* especifica la codificación de " +"directorios y nombres de archivo." #: ../Doc/library/ftplib.rst:58 msgid "The :class:`FTP` class supports the :keyword:`with` statement, e.g.:" @@ -102,6 +104,10 @@ msgid "" "*encoding* parameter was added, and the default was changed from Latin-1 to " "UTF-8 to follow :rfc:`2640`." msgstr "" +"Si el parámetro *timeout* se establece en cero, lanzará un :class:" +"`ValueError` para evitar la creación de un socket sin bloqueo. Se agregó el " +"parámetro *encoding*, y el valor predeterminado se cambió de Latin-1 a UTF-8 " +"para seguir :rfc:`2640`." #: ../Doc/library/ftplib.rst:86 msgid "" @@ -221,17 +227,16 @@ msgid "FTP Objects" msgstr "Objetos FTP" #: ../Doc/library/ftplib.rst:178 -#, fuzzy msgid "" "Several methods are available in two flavors: one for handling text files " "and another for binary files. These are named for the command which is used " "followed by ``lines`` for the text version or ``binary`` for the binary " "version." msgstr "" -"Varios métodos están disponibles en dos sabores: uno para manejar archivos " -"de texto y otro para archivos binarios. Estos se nombran para el comando que " -"utiliza seguido de ``líneas`` para la versión texto y ``binary`` para la " -"versión binaria." +"Hay varios métodos disponibles en dos versiones: uno para manejar archivos " +"de texto y otro para archivos binarios. Estos reciben el nombre del comando " +"que se utiliza seguido de ``lines`` para la versión de texto o ``binary`` " +"para la versión binaria." #: ../Doc/library/ftplib.rst:182 msgid ":class:`FTP` instances have the following methods:" @@ -246,7 +251,7 @@ msgid "" "debugging output, logging each line sent and received on the control " "connection." msgstr "" -"Establece el nivel de depuración de la isntancia. Esto controla la cantidad " +"Establece el nivel de depuración de la instancia. Esto controla la cantidad " "de salida de depuración impresa. El valor predeterminado, ``0``, no produce " "una salida de depuración. Un valor de ``1`` produce una cantidad moderada de " "salida de depuración, generalmente una sola línea por solicitud. Un valor de " @@ -372,7 +377,6 @@ msgstr "" "razonable. *rest* significa lo mismo que en el método :meth:`transfercmd`." #: ../Doc/library/ftplib.rst:269 -#, fuzzy msgid "" "Retrieve a file or directory listing in the encoding specified by the " "*encoding* parameter at initialization. *cmd* should be an appropriate " @@ -383,14 +387,15 @@ msgid "" "argument containing the line with the trailing CRLF stripped. The default " "*callback* prints the line to ``sys.stdout``." msgstr "" -"Recupera una lista de archivos o directorios en modo de transferencia ASCII. " -"*cmd* debería ser un comando ``RETR`` apropiado (véase :meth:`retrbinary`) o " -"un comando como ``LIST`` o ``NLST`` (usualmente solo la cadena de caracteres " -"``'LIST'``). ``LIST`` recupera una lista de archivos y la información sobre " -"esos archivos. ``NLST`` recupera una lista de nombres de archivos. La " -"función *callback* se invoca por cada línea con un argumento de cadena de " -"caracteres que contiene la línea con el CRLF final eliminado. El *callback* " -"predeterminado imprime la línea a ``sys.stdout``." +"Recupera una lista de archivos o directorios en la codificación especificada " +"por el parámetro *encoding* en la inicialización. *cmd* debe ser un comando " +"``RETR`` apropiado (ver :meth:`retrbinary`) o un comando como ``LIST`` o " +"``NLST`` (generalmente solo la cadena de caracteres ``'LIST'``). ``LIST`` " +"recupera una lista de archivos e información sobre esos archivos. ``NLST`` " +"recupera una lista de nombres de archivos. La función *callback* se llama " +"para cada línea con un argumento de cadena de caracteres que contiene la " +"línea con el CRLF final eliminado. El *callback* predeterminado imprime la " +"línea a ``sys.stdout``." #: ../Doc/library/ftplib.rst:282 msgid "" @@ -424,7 +429,6 @@ msgid "*rest* parameter added." msgstr "Se agregó el parámetro *rest*." #: ../Doc/library/ftplib.rst:302 -#, fuzzy msgid "" "Store a file in line mode. *cmd* should be an appropriate ``STOR`` command " "(see :meth:`storbinary`). Lines are read until EOF from the :term:`file " @@ -432,13 +436,12 @@ msgid "" "method to provide the data to be stored. *callback* is an optional single " "parameter callable that is called on each line after it is sent." msgstr "" -"Almacena un archivo en el modo de transferencia ASCII. *cmd* debería ser un " -"comando ``STOR`` apropiado (véase :meth:`storbinary`). Las líneas son " -"leídas hasta EOF (final del archivo) desde el :term:`file object` *fp* " -"(abierto en modo binario) usando su método :meth:`~io.IOBase.readline` para " -"proporcionar los datos que serán almacenados. *callback* es un único " -"parámetro opcional invocable que se llama en cada línea luego de que es " -"enviada." +"Almacena un archivo en modo de línea. *cmd* debe ser un comando ``STOR`` " +"apropiado (ver :meth:`storbinary`). Las líneas se leen hasta EOF del :term:" +"`file object` *fp* (abierto en modo binario) usando su método :meth:`~io." +"IOBase.readline` para proporcionar los datos que se almacenarán. *callback* " +"es un parámetro único opcional que se puede llamar en cada línea después de " +"su envío." #: ../Doc/library/ftplib.rst:311 msgid "" @@ -466,6 +469,16 @@ msgid "" "command, an :exc:`error_reply` exception will be raised. If this happens, " "simply call :meth:`transfercmd` without a *rest* argument." msgstr "" +"Si se proporciona *rest* opcional, se envía un comando ``REST`` al servidor, " +"pasando *rest* como argumento. *rest* suele ser un desplazamiento de bytes " +"en el archivo solicitado, que le indica al servidor que reinicie el envío de " +"los bytes del archivo en el desplazamiento solicitado, omitiendo los bytes " +"iniciales. Sin embargo, tenga en cuenta que el método :meth:`transfercmd` " +"convierte *rest* en una cadena de caracteres con el parámetro *encoding* " +"especificado en la inicialización, pero no se realiza ninguna comprobación " +"del contenido de la cadena de caracteres. Si el servidor no reconoce el " +"comando ``REST``, se lanzará una excepción :exc:`error_reply`. Si esto " +"sucede, simplemente llame a :meth:`transfercmd` sin un argumento *rest*." #: ../Doc/library/ftplib.rst:330 msgid "" @@ -480,7 +493,6 @@ msgstr "" "`transfercmd`." #: ../Doc/library/ftplib.rst:338 -#, fuzzy msgid "" "List a directory in a standardized format by using ``MLSD`` command (:rfc:" "`3659`). If *path* is omitted the current directory is assumed. *facts* is " @@ -491,30 +503,27 @@ msgid "" "name. Content of this dictionary might be limited by the *facts* argument " "but server is not guaranteed to return all requested facts." msgstr "" -"Genera una lista de directorios en formato estandarizado usando el comando " -"``MLSD`` (:rfc:`3659`). Si *path* está omitido, se asume que es el " -"directorio actual. *facts* es una lista de cadenas de caracteres que " -"representa el tipo de información deseada (por ejemplo ``[\"type\", \"size" -"\", \"perm\"]``). Retorna un objeto generador que cede lugar a una tupla de " -"dos elementos por cada archivo encontrado en la ruta. El primero elemento es " -"el nombre de archivo, el segundo es el diccionario que contiene información " -"sobre el nombre de archivo. El contenido de este diccionario puede estar " -"limitado por el argumento *facts* pero no está garantizado que el servidor " -"retorne toda la información requerida." +"Enumera un directorio en un formato estandarizado usando el comando ``MLSD`` " +"(:rfc:`3659`). Si se omite *path*, se asume el directorio actual. *facts* es " +"una lista de cadenas de caracteres que representan el tipo de información " +"deseada (por ejemplo, ``[\"type\", \"size\", \"perm\"]``). Retorna un objeto " +"generador que produce una tupla de dos elementos por cada archivo encontrado " +"en la ruta. El primer elemento es el nombre del archivo, el segundo es un " +"diccionario que contiene datos sobre el nombre del archivo. El contenido de " +"este diccionario puede estar limitado por el argumento *facts*, pero no se " +"garantiza que el servidor retorne todos los datos solicitados." #: ../Doc/library/ftplib.rst:352 -#, fuzzy msgid "" "Return a list of file names as returned by the ``NLST`` command. The " "optional *argument* is a directory to list (default is the current server " "directory). Multiple arguments can be used to pass non-standard options to " "the ``NLST`` command." msgstr "" -"Retorna una lista de nombres de archivos como ocurre con el comando " -"``NLST``. El *argumento* opcional es un directorio a ser listado (el valor " -"predeterminado es el directorio del servidor actual). Se pueden utilizar " -"argumentos múltiples para pasar las opciones que no son estándar al comando " -"``NLST``." +"Retorna una lista de nombres de archivos tal como los retorna el comando " +"``NLST``. El *argument* opcional es un directorio para listar (el " +"predeterminado es el directorio del servidor actual). Se pueden usar varios " +"argumentos para pasar opciones no estándar al comando ``NLST``." #: ../Doc/library/ftplib.rst:357 ../Doc/library/ftplib.rst:369 msgid "If your server supports the command, :meth:`mlsd` offers a better API." diff --git a/library/functions.po b/library/functions.po index 4e9b07fd93..08ebcd63da 100644 --- a/library/functions.po +++ b/library/functions.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-22 09:17+0200\n" -"Last-Translator: Claudia Millán (clacri)\n" +"PO-Revision-Date: 2021-08-07 20:28+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-esMIME-Version: 1.0\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11 msgid "Built-in Functions" @@ -310,16 +311,14 @@ msgid ":func:`round`" msgstr ":func:`round`" #: ../Doc/library/functions.rst:45 -#, fuzzy msgid "" "Return the absolute value of a number. The argument may be an integer, a " "floating point number, or an object implementing :meth:`__abs__`. If the " "argument is a complex number, its magnitude is returned." msgstr "" "Retorna el valor absoluto de un número. El argumento puede ser un número " -"entero o de punto flotante. Si el argumento es un número complejo, retorna " -"su magnitud. Si *x* define un método :meth:`__abs__`, ``abs(x)`` retorna ``x." -"__abs__()``." +"entero, un número de coma flotante o un objeto que implemente :meth:" +"`__abs__`. Si el argumento es un número complejo, se retorna su magnitud." #: ../Doc/library/functions.rst:52 msgid "" @@ -463,14 +462,14 @@ msgstr "" "nulos." #: ../Doc/library/functions.rst:153 -#, fuzzy msgid "" "If it is an object conforming to the :ref:`buffer interface " "`, a read-only buffer of the object will be used to " "initialize the bytes array." msgstr "" -"Si es un objeto que se ajusta a la interfaz de *buffer*, un buffer de sólo " -"lectura del objeto será utilizado para inicializar el array de bytes." +"Si es un objeto conforme a :ref:`interfaz de búfer `, se " +"utilizará un búfer de solo lectura del objeto para inicializar el arreglo de " +"bytes." #: ../Doc/library/functions.rst:156 msgid "" @@ -595,20 +594,22 @@ msgstr "" "objeto de la clase derivada se pasa como primer argumento implícito." #: ../Doc/library/functions.rst:223 -#, fuzzy msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod` in this section. For more information on " "class methods, see :ref:`types`." msgstr "" "Los métodos de clase son diferentes a los métodos estáticos de C++ o Java. " -"Si quieres ese tipo de métodos, revisa :func:`staticmethod`." +"Si los desea, consulte :func:`staticmethod` en esta sección. Para obtener " +"más información sobre los métodos de clase, consulte :ref:`types`." #: ../Doc/library/functions.rst:227 msgid "" "Class methods can now wrap other :term:`descriptors ` such as :" "func:`property`." msgstr "" +"Los métodos de clase ahora pueden envolver otros :term:`descriptores " +"` como :func:`property`." #: ../Doc/library/functions.rst:233 msgid "" @@ -660,9 +661,19 @@ msgid "" "*flags* argument is it -- the flags (future features and compiler options) " "in the surrounding code are ignored." msgstr "" +"Los argumentos opcionales *flags* y *dont_inherit* controlan qué :ref:" +"`opciones del compilador ` deben activarse y cuáles :ref:" +"`características futuras ` deben permitirse. Si ninguno está " +"presente (o ambos son cero), el código se compila con los mismos flags que " +"afectan al código que llama :func:`compile`. Si se proporciona el argumento " +"*flags* y *dont_inherit* no es (o es cero), las opciones del compilador y " +"las declaraciones futuras especificadas por el argumento *flags* se utilizan " +"además de las que se utilizarían de todos modos. Si *dont_inherit* es un " +"número entero distinto de cero, entonces el argumento *flags* lo es: los " +"indicadores (características futuras y opciones del compilador) en el código " +"circundante se ignoran." #: ../Doc/library/functions.rst:259 -#, fuzzy msgid "" "Compiler options and future statements are specified by bits which can be " "bitwise ORed together to specify multiple options. The bitfield required to " @@ -671,12 +682,14 @@ msgid "" "instance in the :mod:`__future__` module. :ref:`Compiler flags ` can be found in :mod:`ast` module, with ``PyCF_`` prefix." msgstr "" -"Las declaraciones futuras son especificadas por bits que pueden, bit a bit, " -"ser unidos por OR para especificar múltiples declaraciones. El campo de bit " -"requerido para especificar una característica específica puede ser " -"encontrado como el atributo :attr:`~__future__._Feature.compiler_flag` de la " -"instancia de la clase :class:`~__future__._Feature` en el módulo :mod:" -"`__future__`." +"Las opciones del compilador y las declaraciones futuras se especifican " +"mediante bits que pueden combinarse mediante OR bit a bit para especificar " +"varias opciones. El campo de bits requerido para especificar una " +"característica futura dada se puede encontrar como el atributo :attr:" +"`~__future__._Feature.compiler_flag` en la instancia :class:`~__future__." +"_Feature` en el módulo :mod:`__future__`. :ref:`Las flags del compilador " +"` se pueden encontrar en el módulo :mod:`ast`, con el " +"prefijo ``PyCF_``." #: ../Doc/library/functions.rst:267 msgid "" @@ -710,7 +723,6 @@ msgstr "" "`ast.parse`." #: ../Doc/library/functions.rst:279 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source``, ``filename``." @@ -1098,7 +1110,6 @@ msgstr "" "código." #: ../Doc/library/functions.rst:505 -#, fuzzy msgid "" "This function supports dynamic execution of Python code. *object* must be " "either a string or a code object. If it is a string, the string is parsed " @@ -1110,16 +1121,17 @@ msgid "" "not be used outside of function definitions even within the context of code " "passed to the :func:`exec` function. The return value is ``None``." msgstr "" -"Esta función soporta ejecución dinámica de código de Python. *object* debe " -"ser una cadena o un objeto código. Si es una cadena, esta es paseada como un " -"conjunto de declaraciones de Python que es ejecutado (a menos que ocurra un " -"error de sintaxis). [#]_ Si es un objeto código, es simplemente ejecutado. " -"En todos los casos, se espera que el código ejecutado sea un válido como " -"entrada de fichero (ver la sección \"Entrada de Fichero\" en el Manual de " -"Referencia). Ten en cuenta que las declaraciones :keyword:`return` y :" -"keyword:`yield` no pueden ser usadas fuera de definiciones de funciones " -"incluso en el contexto de código pasado a la función :func:`exec`. El valor " -"de retorno es ``None``." +"Esta función admite la ejecución dinámica de código Python. *object* debe " +"ser una cadena de caracteres o un objeto código. Si es una cadena de " +"caracteres, la cadena de caracteres se analiza como un conjunto de " +"declaraciones de Python que luego se ejecuta (a menos que ocurra un error de " +"sintaxis). [#]_ Si es un objeto código, simplemente se ejecuta. En todos los " +"casos, se espera que el código que se ejecuta sea válido como entrada de " +"archivo (consulte la sección \"Archivo de Entrada\" en el Manual de " +"referencia). Tenga en cuenta que las declaraciones :keyword:`nonlocal`, :" +"keyword:`yield` y :keyword:`return` no se pueden utilizar fuera de las " +"definiciones de función, incluso dentro del contexto del código pasado a la " +"función :func:`exec` . El valor de retorno es ``None``." #: ../Doc/library/functions.rst:516 msgid "" @@ -1512,13 +1524,12 @@ msgstr "" "tener el mismo valor de :func:`id`." #: ../Doc/library/functions.rst:770 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." msgstr "" -"Lanza un :ref:`evento de auditoría ` ``builtins.input`` con el " -"argumento ``prompt``." +"Lanza un :ref:`evento de auditoría ` ``builtins.id`` con el " +"argumento ``id``." #: ../Doc/library/functions.rst:775 msgid "" @@ -1542,7 +1553,6 @@ msgstr "" "historiales." #: ../Doc/library/functions.rst:788 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt``." @@ -1558,15 +1568,6 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``builtins.input`` con el " "argumento ``prompt`` antes de leer entrada" -#: ../Doc/library/functions.rst:793 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``builtins.input/result`` with " -"argument ``result``." -msgstr "" -"Lanza un :ref:`evento de auditoría ` ``builtins.input/result`` con " -"argumento ``result``." - #: ../Doc/library/functions.rst:795 msgid "" "Raises an auditing event ``builtins.input/result`` with the result after " @@ -1736,6 +1737,8 @@ msgid "" "``len`` raises :exc:`OverflowError` on lengths larger than :data:`sys." "maxsize`, such as :class:`range(2 ** 100) `." msgstr "" +"``len`` aumenta :exc:`OverflowError` en longitudes mayores que :data:`sys." +"maxsize`, como :class:`range(2 ** 100) `." #: ../Doc/library/functions.rst:905 msgid "" @@ -1924,14 +1927,14 @@ msgstr "" "\"0o\" como sin el, puedes usar cualquiera de las siguientes formas." #: ../Doc/library/functions.rst:1044 -#, fuzzy msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " "examples of how to use this function." msgstr "" -"Abre *file* y Retorna el :term:`file object` correspondiente. Si el fichero " -"no puede ser abierto, se lanza una excepción :exc:`OSError`." +"Abre *file* y retorna un :term:`file object` correspondiente. Si el archivo " +"no se puede abrir, se lanza un :exc:`OSError`. Consulte :ref:`tut-files` " +"para obtener más ejemplos de cómo utilizar esta función." #: ../Doc/library/functions.rst:1048 msgid "" @@ -3120,6 +3123,16 @@ msgid "" "the :attr:`~object.__dict__` attribute. The following two statements create " "identical :class:`type` objects:" msgstr "" +"Con tres argumentos, retorna un nuevo tipo objeto. Esta es esencialmente una " +"forma dinámica de la declaración :keyword:`class`. La cadena de caracteres " +"*name* es el nombre de la clase y se convierte en el atributo :attr:" +"`~definition.__name__`. La tupla *bases* contiene las clases base y se " +"convierte en el atributo :attr:`~class.__bases__`; si está vacío, se agrega :" +"class:`object`, la base última de todas las clases. El diccionario *dict* " +"contiene definiciones de métodos y atributos para el cuerpo de la clase; se " +"puede copiar o ajustar antes de convertirse en el atributo :attr:`~object." +"__dict__`. Las siguientes dos declaraciones crean objetos idénticos :class:" +"`type`:" #: ../Doc/library/functions.rst:1705 msgid "See also :ref:`bltin-type-objects`." @@ -3170,6 +3183,9 @@ msgid "" "doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " "defines the :attr:`~object.__slots__` attribute)." msgstr "" +"Una excepción :exc:`TypeError` se genera si se especifica un objeto pero no " +"tiene un atributo :attr:`~object.__dict__` (por ejemplo, si su clase define " +"el atributo :attr:`~object.__slots__`)." #: ../Doc/library/functions.rst:1731 msgid "Make an iterator that aggregates elements from each of the iterables." @@ -3355,6 +3371,8 @@ msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." msgstr "" +"Cuando se utilizan las opciones de línea de comando :option:`-E` o :option:`-" +"I`, la variable de entorno :envvar:`PYTHONCASEOK` ahora se ignora." #: ../Doc/library/functions.rst:1848 msgid "Footnotes" diff --git a/library/functools.po b/library/functools.po index 315f4cfb64..3f5edb25fe 100644 --- a/library/functools.po +++ b/library/functools.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-09 11:12-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 18:47+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/functools.rst:2 msgid "" @@ -53,6 +54,8 @@ msgid "" "Simple lightweight unbounded function cache. Sometimes called `\"memoize\" " "`_." msgstr "" +"Caché de funciones ilimitado, ligero y simple. Aveces llamado `\"memoización" +"\" `_." #: ../Doc/library/functools.rst:34 msgid "" @@ -61,6 +64,10 @@ msgid "" "needs to evict old values, this is smaller and faster than :func:" "`lru_cache()` with a size limit." msgstr "" +"Retorna lo mismo que ``lru_cache(maxsize=None)``, creando una envoltura " +"delgada alrededor de una búsqueda de diccionario para los argumentos de la " +"función. Debido a que nunca necesita desalojar los valores antiguos, esto es " +"más pequeño y más rápido que :func:`lru_cache()` con un límite de tamaño." #: ../Doc/library/functools.rst:39 ../Doc/library/functools.rst:255 msgid "For example::" @@ -90,6 +97,10 @@ msgid "" "`property`. A regular property blocks attribute writes unless a setter is " "defined. In contrast, a *cached_property* allows writes." msgstr "" +"La mecánica de :func:`cached_property` es algo diferente de :func:" +"`property`. Un atributo de bloques de propiedad normal escribe a menos que " +"se defina un establecedor. Por el contrario, *cached_property* permite " +"escrituras." #: ../Doc/library/functools.rst:77 msgid "" @@ -99,12 +110,19 @@ msgid "" "attribute reads and writes take precedence over the *cached_property* method " "and it works like a normal attribute." msgstr "" +"El decorador *cached_property* solo se ejecuta en búsquedas y solo cuando no " +"existe un atributo con el mismo nombre. Cuando se ejecuta, *cached_property* " +"escribe en el atributo con el mismo nombre. Las lecturas y escrituras de " +"atributos posteriores tienen prioridad sobre el método *cached_property* y " +"funciona como un atributo normal." #: ../Doc/library/functools.rst:83 msgid "" "The cached value can be cleared by deleting the attribute. This allows the " "*cached_property* method to run again." msgstr "" +"El valor en caché se puede borrar eliminando el atributo. Esto permite que " +"el método *cached_property* se ejecute nuevamente." #: ../Doc/library/functools.rst:86 msgid "" @@ -112,9 +130,11 @@ msgid "" "dictionaries. This means that instance dictionaries can take more space " "than usual." msgstr "" +"Tenga en cuenta que este decorador interfiere con el funcionamiento de " +"diccionarios de intercambio de claves :pep:`412`. Esto significa que los " +"diccionarios de instancias pueden ocupar más espacio de lo habitual." #: ../Doc/library/functools.rst:90 -#, fuzzy msgid "" "Also, this decorator requires that the ``__dict__`` attribute on each " "instance be a mutable mapping. This means it will not work with some types, " @@ -123,13 +143,13 @@ msgid "" "``__slots__`` without including ``__dict__`` as one of the defined slots (as " "such classes don't provide a ``__dict__`` attribute at all)." msgstr "" -"Este decorador requiere que el atributo ``__dict__`` en cada instancia sea " -"un mapeo mutable. Esto significa que no funcionará con algunos tipos, como " -"las metaclases (ya que los atributos ``__dict__`` en las instancias de tipo " -"son proxies sólo de lectura para el espacio de nombres de la clase), y los " -"que especifican ``__slots__`` sin incluir ``__dict__`` como uno de los slots " -"definidos (ya que tales clases no proporcionan un atributo ``__dict__`` en " -"absoluto)." +"Además, este decorador requiere que el atributo ``__dict__`` en cada " +"instancia sea un mapeo mutable. Esto significa que no funcionará con algunos " +"tipos, como las metaclases (ya que los atributos ``__dict__`` en las " +"instancias de tipos son proxies de solo lectura para el espacio de nombres " +"de la clase) y aquellos que especifican ``__slots__`` sin incluir " +"``__dict__`` como una de las ranuras definidas (ya que tales clases no " +"proporcionan un atributo ``__dict__`` en absoluto)." #: ../Doc/library/functools.rst:97 msgid "" @@ -137,6 +157,9 @@ msgid "" "desired, an effect similar to :func:`cached_property` can be achieved by a " "stacking :func:`property` on top of :func:`cache`::" msgstr "" +"Si un mapeo mutable no está disponible o si se desea compartir claves con " +"espacio eficiente, se puede lograr un efecto similar a :func:" +"`cached_property` apilando :func:`property` encima de :func:`cache`::" #: ../Doc/library/functools.rst:115 msgid "" @@ -241,6 +264,10 @@ msgid "" "and *typed*. This is for information purposes only. Mutating the values " "has no effect." msgstr "" +"La función envuelta está instrumentada con una función :func:" +"`cache_parameters` que retorna un nuevo :class:`dict` que muestra los " +"valores para *maxsize* y *typed*. Esto es solo para fines informativos. La " +"mutación de los valores no tiene ningún efecto." #: ../Doc/library/functools.rst:172 msgid "" @@ -275,7 +302,6 @@ msgstr "" "para volver a envolver la función con un caché diferente." #: ../Doc/library/functools.rst:185 -#, fuzzy msgid "" "An `LRU (least recently used) cache `_ works best when the " @@ -284,13 +310,13 @@ msgid "" "cache's size limit assures that the cache does not grow without bound on " "long-running processes such as web servers." msgstr "" -"Una caché `LRU (la menos usada recientemente) `_ funciona mejor cuando las llamadas más " -"recientes son los mejores pronosticadores de las próximas llamadas (por " -"ejemplo, los artículos más populares en un servidor de noticias tienden a " -"cambiar cada día). El límite de tamaño de la caché asegura que ésta no " -"crezca sin estar vinculada a procesos de larga duración como los servidores " -"web." +"Un `caché LRU (menos usado recientemente) `_ funciona mejor " +"cuando las llamadas más recientes son los mejores predictores de las " +"próximas llamadas (por ejemplo, el los artículos más populares en un " +"servidor de noticias tienden a cambiar cada día). El límite de tamaño de la " +"caché asegura que la caché no crezca sin límites en procesos de larga " +"ejecución como servidores web." #: ../Doc/library/functools.rst:192 msgid "" @@ -330,7 +356,7 @@ msgstr "Añadida la opción *user_function*." #: ../Doc/library/functools.rst:242 msgid "Added the function :func:`cache_parameters`" -msgstr "" +msgstr "Añadida la función :func:`cache_parameters`" #: ../Doc/library/functools.rst:247 msgid "" @@ -571,6 +597,8 @@ msgid "" "If an implementation registered to :term:`abstract base class`, virtual " "subclasses will be dispatched to that implementation::" msgstr "" +"Si una implementación se registra en :term:`abstract base class`, las " +"subclases virtuales se enviarán a esa implementación::" #: ../Doc/library/functools.rst:496 msgid "" @@ -644,17 +672,17 @@ msgid "" "string) and ``WRAPPER_UPDATES`` (which updates the wrapper function's " "``__dict__``, i.e. the instance dictionary)." msgstr "" -"Actualizar una función envoltorio (*wrapper*) para que se parezca a la " -"función de envoltura(*wrapped*). Los argumentos opcionales son tuplas para " -"especificar qué atributos de la función original se asignan directamente a " -"los atributos correspondientes de la función de envoltura y qué atributos de " -"la función de envoltura se actualizan con los atributos correspondientes de " -"la función original. Los valores por defecto de estos argumentos son las " -"constantes de nivel de módulo ``WRAPPER_ASSIGNMENTS`` (que asigna al " -"``__module__`` de la función de envoltura, ``__module__``, ``__name__``, " -"``__qualname__``, ``__annotations__`` y ``__doc__``, la cadena de " -"documentación) y ``WRAPPER_UPDATES`` (que actualiza el ``__dict__`` de la " -"función de envoltura(*wrapped*), i. e. el diccionario de instancias)." +"Actualiza una función *wrapper* para que se parezca a la función *wrapped*. " +"Los argumentos opcionales son tuplas para especificar qué atributos de la " +"función original se asignan directamente a los atributos coincidentes en la " +"función contenedora y qué atributos de la función contenedora se actualizan " +"con los atributos correspondientes de la función original. Los valores " +"predeterminados para estos argumentos son las constantes de nivel de módulo " +"``WRAPPER_ASSIGNMENTS`` (que se asigna a la función contenedora " +"``__module__``, ``__name__``, ``__qualname__``, ``__annotations__`` y " +"``__doc__``, la cadena de caracteres de documentación) y ``WRAPPER_UPDATES`` " +"(que actualiza el ``__dict__`` de la función contenedora, es decir, el " +"diccionario de instancia)." #: ../Doc/library/functools.rst:583 msgid "" diff --git a/library/gc.po b/library/gc.po index 9d313a87a0..1ddad34ef7 100644 --- a/library/gc.po +++ b/library/gc.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-25 10:10+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-07 21:59+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/gc.rst:2 msgid ":mod:`gc` --- Garbage Collector interface" @@ -128,6 +129,8 @@ msgid "" "Raises an :ref:`auditing event ` ``gc.get_objects`` with argument " "``generation``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``gc.get_objects`` con el " +"argumento ``generation``." #: ../Doc/library/gc.rst:79 msgid "" @@ -172,7 +175,6 @@ msgstr "" "establece *threshold0* en cero se deshabilita la recolección." #: ../Doc/library/gc.rst:101 -#, fuzzy msgid "" "The GC classifies objects into three generations depending on how many " "collection sweeps they have survived. New objects are placed in the " @@ -190,21 +192,22 @@ msgid "" "org/garbage_collector/#collecting-the-oldest-generation>`_ for more " "information." msgstr "" -"El recolector de basura clasifica los objetos en tres generaciones " -"dependiendo de a cuántas pasadas de recolección hayan sobrevivido. Los " -"objetos nuevos se colocan en la generación más joven (generación ``0``). Si " -"un objeto sobrevive a una recolección, se traslada a la siguiente generación " -"con mayor antigüedad. Dado que la generación ``2`` es la generación más " -"antigua posible, los objetos de esta generación que no se recolecten " -"permanecen siempre allí después de una recolección. Para decidir cuándo debe " -"ejecutarse, el recolector realiza un seguimiento del número de alojamientos " -"y desalojamientos de objetos desde la última recolección. Cuando el número " -"de alojamientos menos el número de desalojamientos supera el *threshold0*, " -"comienza una recolección. Inicialmente, solo se examina la generación ``0``. " -"Si la generación ``0`` se ha examinado más de *threshold1* veces desde que " -"se examinó la generación ``1``, también se examina la generación ``1``. De " -"manera similar, *threshold2* controla el número de recolecciones de la " -"generación ``1`` antes de recolectar la generación ``2``." +"El recolector de basura (GC por sus siglas en inglés) clasifica los objetos " +"en tres generaciones dependiendo de cuántos barridos de colección hayan " +"sobrevivido. Los nuevos objetos se colocan en la generación más joven " +"(generación ``0``). Si un objeto sobrevive a una colección, se traslada a la " +"siguiente generación anterior. Dado que la generación ``2`` es la generación " +"más antigua, los objetos de esa generación permanecen allí después de una " +"colección. Para decidir cuándo ejecutar, el recopilador realiza un " +"seguimiento del número de asignaciones y desasignaciones de objetos desde la " +"última recopilación. Cuando el número de asignaciones menos el número de " +"desasignaciones supera el *treshold0*, comienza la recopilación. " +"Inicialmente solo se examina la generación ``0``. Si la generación ``0`` se " +"ha examinado más de *treshold1* veces desde que se examinó la generación " +"``1``, también se examina la generación ``1``. Con la tercera generación, " +"las cosas son un poco más complicadas, consulte `Recopilación de la " +"generación más antigua `_ para obtener más información." #: ../Doc/library/gc.rst:118 msgid "" @@ -265,6 +268,8 @@ msgid "" "Raises an :ref:`auditing event ` ``gc.get_referrers`` with " "argument ``objs``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``gc.get_referrers`` con el " +"argumento ``objs``." #: ../Doc/library/gc.rst:151 msgid "" @@ -294,6 +299,8 @@ msgid "" "Raises an :ref:`auditing event ` ``gc.get_referents`` with " "argument ``objs``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``gc.get_referents`` con el " +"argumento ``objs``." #: ../Doc/library/gc.rst:163 msgid "" @@ -317,6 +324,8 @@ msgid "" "Returns ``True`` if the given object has been finalized by the garbage " "collector, ``False`` otherwise. ::" msgstr "" +"Retorna ``True`` si el objeto dado ha sido finalizado por el recolector de " +"basura, ``False`` en caso contrario. ::" #: ../Doc/library/gc.rst:209 msgid "" diff --git a/library/gettext.po b/library/gettext.po index c96ca50a45..57483ecf48 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-07 23:17+0200\n" +"PO-Revision-Date: 2021-08-07 21:56+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/gettext.rst:2 msgid ":mod:`gettext` --- Multilingual internationalization services" @@ -428,7 +429,6 @@ msgstr "" "a ``self._parse(fp)`` if *fp* no es ``None``." #: ../Doc/library/gettext.rst:255 -#, fuzzy msgid "" "No-op in the base class, this method takes file object *fp*, and reads the " "data from the file, initializing its message catalog. If you have an " @@ -437,8 +437,8 @@ msgid "" msgstr "" "No operativo en la clase base, este método toma el objeto de archivo *fp* y " "lee los datos del archivo, inicializando su catálogo de mensajes. Si tiene " -"un formato de archivo de catálogo de mensajes no admitido, debe anular este " -"método para analizar su formato." +"un formato de archivo de catálogo de mensajes no admitido, debe sobrescribir " +"este método para analizar su formato." #: ../Doc/library/gettext.rst:263 msgid "" @@ -626,12 +626,11 @@ msgstr "" "mensaje como cadenas Unicode, no cadenas de bytes." #: ../Doc/library/gettext.rst:387 -#, fuzzy msgid "" "The entire set of key/value pairs are placed into a dictionary and set as " "the \"protected\" :attr:`_info` instance variable." msgstr "" -"El conjunto completo de pares clave/valor se coloca en un diccionario y se " +"El conjunto completo de pares clave/valor se colocan en un diccionario y se " "establece como la variable de instancia \"protegida\" :attr:`_info`." #: ../Doc/library/gettext.rst:390 @@ -938,21 +937,18 @@ msgstr "" "secciones discutirán cada caso." #: ../Doc/library/gettext.rst:570 -#, fuzzy msgid "Localizing your module" msgstr "Agregar configuración regional a su módulo" #: ../Doc/library/gettext.rst:572 -#, fuzzy msgid "" "If you are localizing your module, you must take care not to make global " "changes, e.g. to the built-in namespace. You should not use the GNU :program:" "`gettext` API but instead the class-based API." msgstr "" "Si está aplicando configuración regional a su módulo, debe tener cuidado de " -"no realizar cambios globales, por ejemplo, al espacio de nombres " -"incorporado. No debe usar la API GNU :program:`gettext` sino la API basada " -"en clases." +"no realizar cambios globales, por ejemplo, al espacio de nombres integrado. " +"No debe utilizar la API GNU :program:`gettext`, sino la API basada en clases." #: ../Doc/library/gettext.rst:576 msgid "" @@ -967,12 +963,10 @@ msgstr "" "parte superior de su módulo::" #: ../Doc/library/gettext.rst:587 -#, fuzzy msgid "Localizing your application" msgstr "Agregar configuración regional a su aplicación" #: ../Doc/library/gettext.rst:589 -#, fuzzy msgid "" "If you are localizing your application, you can install the :func:`_` " "function globally into the built-in namespace, usually in the main driver " @@ -982,7 +976,7 @@ msgstr "" "Si está aplicando configuración regional a su aplicación, puede instalar la " "función :func:`_` globalmente en el espacio de nombres incorporado, " "generalmente en el archivo del controlador principal de su aplicación. Esto " -"permitirá que todos sus archivos específicos de la aplicación solo usen " +"permitirá que todos los archivos específicos de su aplicación usen " "``_('...')`` sin tener que instalarlo explícitamente en cada archivo." #: ../Doc/library/gettext.rst:594 diff --git a/library/glob.po b/library/glob.po index aa1d8703de..c87e3f21fb 100644 --- a/library/glob.po +++ b/library/glob.po @@ -11,13 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-26 00:09+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 21:20+0200\n" +"Last-Translator: Cristián Maureira-Fredes \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" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/glob.rst:2 msgid ":mod:`glob` --- Unix style pathname pattern expansion" @@ -64,7 +67,6 @@ msgid "The :mod:`pathlib` module offers high-level path objects." msgstr "El módulo :mod:`pathlib` ofrece objetos ruta de alto nivel." #: ../Doc/library/glob.rst:41 -#, fuzzy msgid "" "Return a possibly-empty list of path names that match *pathname*, which must " "be a string containing a path specification. *pathname* can be either " @@ -75,14 +77,15 @@ msgid "" "conditions is removed or added during the call of this function, whether a " "path name for that file be included is unspecified." msgstr "" -"Retorna una, posiblemente vacía, lista de nombres de ruta que coinciden con " -"*pathname*, la cual debe ser una cadena de caracteres conteniendo una " -"especificación de ruta. El *pathname* puede ser absoluto (como :file:`/usr/" -"src/Python-1.5/Makefile`) o relativo (como :file:`../../Tools/\\*/\\*.gif`) " -"y puede contener comodines al estilo de los usados en una terminal. Los " -"enlaces simbólicos rotos se incluyen en los resultados (como en la " -"terminal). Que los resultados estén ordenados dependerá del sistema de " -"ficheros." +"Retorna una lista posiblemente vacía de nombres de ruta que coincidan con " +"*pathname*, que debe ser una cadena de caracteres que contenga una " +"especificación de ruta. *pathname* puede ser absoluto (como :file:`/usr/src/" +"Python-1.5/Makefile`) o relativo (como :file:`../../Tools/\\*/\\*.gif`) y " +"puede contener wildcards de estilo shell. Los enlaces simbólicos rotos se " +"incluyen en los resultados (como en el shell). La clasificación de los " +"resultados depende del sistema de archivos. Si un archivo que cumple las " +"condiciones se elimina o se agrega durante la llamada de esta función, no se " +"especifica si se incluirá un nombre de ruta para ese archivo." #: ../Doc/library/glob.rst:53 msgid "" diff --git a/library/gzip.po b/library/gzip.po index 09f1bae639..64b97a0f7e 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-14 09:33-0300\n" -"Last-Translator: Alcides Rivarola\n" +"PO-Revision-Date: 2021-08-04 21:29+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/gzip.rst:2 msgid ":mod:`gzip` --- Support for :program:`gzip` files" @@ -195,7 +196,6 @@ msgstr "" "nombre del archivo original no se incluye en el encabezado." #: ../Doc/library/gzip.rst:88 -#, fuzzy msgid "" "The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " "``'w'``, ``'wb'``, ``'x'``, or ``'xb'``, depending on whether the file will " @@ -205,10 +205,11 @@ msgid "" "writing." msgstr "" "El argumento *mode* puede ser cualquiera de ``'r'``, ``'rb'``, ``'a'``, " -"``'ab'``, ``'w'``, ``'wb'``, ``'x'``, o ``'xb'``, dependiendo de si el " -"archivo se leerá o escribirá. El valor predeterminado es el modo de " -"*fileobj* si se puede discernir; de lo contrario, el valor predeterminado es " -"``'rb'``." +"``'ab'``, ``'w'``, ``'wb'``, ``'x'``, or ``'xb'``, dependiendo de si el " +"archivo se leerá o escribirá. El valor predeterminado es el modo de " +"*fileobj* si es discernible; de lo contrario, el valor predeterminado es " +"``'rb'``. En futuras versiones de Python, no se utilizará el modo *fileobj*. " +"Es mejor especificar siempre *mode* para escribir." #: ../Doc/library/gzip.rst:94 msgid "" @@ -260,17 +261,15 @@ msgstr "" "memoria resultante usando el :class:`io.BytesIO` método del objeto :meth:" "`~io.BytesIO.getvalue`." -# No estoy seguro si statement se traduciría como declaración. #: ../Doc/library/gzip.rst:114 -#, fuzzy msgid "" ":class:`GzipFile` supports the :class:`io.BufferedIOBase` interface, " "including iteration and the :keyword:`with` statement. Only the :meth:" "`truncate` method isn't implemented." msgstr "" -":class:`GzipFile` admite la interfaz :class:`io.BufferedIOBase`, incluyendo " -"la iteración y la declaración :keyword:`with`. Solo el método :meth:" -"`truncate` no se implementa." +":class:`GzipFile` admite la interfaz :class:`io.BufferedIOBase`, incluida la " +"iteración y la declaración :keyword:`with`. Solo el método :meth:`truncate` " +"no está implementado." #: ../Doc/library/gzip.rst:118 msgid ":class:`GzipFile` also provides the following method and attribute:" @@ -358,6 +357,8 @@ msgid "" "Opening :class:`GzipFile` for writing without specifying the *mode* argument " "is deprecated." msgstr "" +"Abriendo :class:`GzipFile` para escribir sin especificar el argumento *mode* " +"está obsoleto." #: ../Doc/library/gzip.rst:175 msgid "" diff --git a/library/hashlib.po b/library/hashlib.po index 965cf238c6..af9cb2ea83 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-29 14:39+0100\n" -"Last-Translator: Álvaro Mondéjar \n" +"PO-Revision-Date: 2021-08-07 21:17+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/hashlib.rst:2 msgid ":mod:`hashlib` --- Secure hashes and message digests" @@ -101,7 +102,6 @@ msgstr "" "ya que los hashes funcionan en bytes, no en caracteres." #: ../Doc/library/hashlib.rst:66 -#, fuzzy msgid "" "Constructors for hash algorithms that are always present in this module are :" "func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:" @@ -113,15 +113,15 @@ msgid "" "`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256` are also " "available." msgstr "" -"Los constructores para algoritmos de hash siempre presentes en este módulo " -"son :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:" -"`sha512`, :func:`blake2b` y :func:`blake2s`. :func:`md5` también está " -"disponible normalmente, aunque puede faltar si estás usando una construcción " -"de Python que cumple de forma rara con los requisitos FIPS. Algoritmos " -"adicionales también pueden estar disponibles dependiendo de la biblioteca " -"OpenSSL que Python usa en tu plataforma. En la mayoría de plataformas las " -"funciones :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:" -"`sha3_512`, :func:`shake_128` y :func:`shake_256` también están disponibles." +"Los constructores para algoritmos hash que siempre están presentes en este " +"módulo son :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :" +"func:`sha512`, :func:`blake2b` y :func:`blake2s`. :func:`md5` normalmente " +"también está disponible, aunque puede faltar o estar bloqueado si está " +"utilizando una rara compilación de Python \"compatible con FIPS \". También " +"pueden estar disponibles algoritmos adicionales dependiendo de la biblioteca " +"OpenSSL que Python use en su plataforma. En la mayoría de las plataformas " +"también están disponibles :func:`sha3_224`, :func:`sha3_256`, :func:" +"`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." #: ../Doc/library/hashlib.rst:76 msgid "" @@ -143,10 +143,16 @@ msgid "" "hashing algorithm is not used in a security context, e.g. as a non-" "cryptographic one-way compression function." msgstr "" +"Todos los constructores hashlib toman un argumento de solo palabra clave " +"*usedforsecurity* con el valor predeterminado ``True``. Un valor falso " +"permite el uso de algoritmos hash inseguros y bloqueados en entornos " +"restringidos. ``False`` indica que el algoritmo hash no se utiliza en un " +"contexto de seguridad, por ejemplo, como una función de compresión " +"unidireccional no criptográfica." #: ../Doc/library/hashlib.rst:90 msgid "Hashlib now uses SHA3 and SHAKE from OpenSSL 1.1.1 and newer." -msgstr "" +msgstr "Hashlib ahora usa SHA3 y SHAKE de OpenSSL 1.1.1 y posteriores." #: ../Doc/library/hashlib.rst:92 msgid "" diff --git a/library/hmac.po b/library/hmac.po index 30ca587c7c..a2adcf2cab 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2021-01-29 17:45-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 21:15+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/hmac.rst:2 msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication" @@ -193,6 +194,9 @@ msgid "" "outer`` are internal implementation details and will be removed in Python " "3.10." msgstr "" +"Los atributos no documentados ``HMAC.digest_cons``, ``HMAC.inner`` y ``HMAC." +"outer`` son detalles de implementación interna y se eliminarán en Python " +"3.10." #: ../Doc/library/hmac.rst:123 msgid "This module also provides the following helper function:" @@ -227,6 +231,8 @@ msgstr "" msgid "" "The function uses OpenSSL's ``CRYPTO_memcmp()`` internally when available." msgstr "" +"La función utiliza ``CRYPTO_memcmp()`` de OpenSSL internamente cuando está " +"disponible." #: ../Doc/library/hmac.rst:149 msgid "Module :mod:`hashlib`" diff --git a/library/http.client.po b/library/http.client.po index 83eb9b6bdb..7b958cb52f 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-07 10:14-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 20:31+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/http.client.rst:2 msgid ":mod:`http.client` --- HTTP protocol client" @@ -581,8 +582,8 @@ msgid "" "argument. If more arguments are given, continuation lines are sent, each " "consisting of a tab and an argument." msgstr "" -"Envía un encabezado :rfc:`822`\\ -style al servidor. Este envía una línea al " -"servidor que consta del encabezado, dos puntos y un espacio, y el primer " +"Envía un encabezado de estilo :rfc:`822`\\ al servidor. Este envía una línea " +"al servidor que consta del encabezado, dos puntos y un espacio, y el primer " "argumento. Si se dan más argumentos, se envían líneas de continuación, cada " "una de las cuales consta de tabulación y un argumento." @@ -725,12 +726,16 @@ msgid "" "URL of the resource retrieved, commonly used to determine if a redirect was " "followed." msgstr "" +"URL del recurso recuperado, comúnmente utilizado para determinar si se " +"siguió una redirección." #: ../Doc/library/http.client.rst:493 msgid "" "Headers of the response in the form of an :class:`email.message." "EmailMessage` instance." msgstr "" +"Cabeceras de la respuesta en forma de una instancia :class:`email.message." +"EmailMessage`." #: ../Doc/library/http.client.rst:497 msgid "Status code returned by server." @@ -754,15 +759,15 @@ msgstr "Es ``True`` si la transmisión está cerrada." #: ../Doc/library/http.client.rst:514 msgid "Deprecated in favor of :attr:`~HTTPResponse.url`." -msgstr "" +msgstr "Deprecada a favor de :attr:`~HTTPResponse.url`." #: ../Doc/library/http.client.rst:519 msgid "Deprecated in favor of :attr:`~HTTPResponse.headers`." -msgstr "" +msgstr "Deprecada a favor de :attr:`~HTTPResponse.headers`." #: ../Doc/library/http.client.rst:524 msgid "Deprecated in favor of :attr:`~HTTPResponse.status`." -msgstr "" +msgstr "Deprecada a favor de :attr:`~HTTPResponse.status`." #: ../Doc/library/http.client.rst:528 msgid "Examples" diff --git a/library/http.cookies.po b/library/http.cookies.po index c620d2c976..0889bbb5fb 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.po @@ -89,8 +89,8 @@ msgid "" "Exception failing because of :rfc:`2109` invalidity: incorrect attributes, " "incorrect :mailheader:`Set-Cookie` header, etc." msgstr "" -"Error de excepción debido a :rfc:`2109` invalidity: atributos incorrectos, " -"encabezado :mailheader:`Set-Cookie` incorrecto, etc." +"Error de excepción debido a la invalidez de :rfc:`2109`: atributos " +"incorrectos, encabezado :mailheader:`Set-Cookie` incorrecto, etc." #: ../Doc/library/http.cookies.rst:48 msgid "" diff --git a/library/http.po b/library/http.po index 7768d17fcb..d68955d300 100644 --- a/library/http.po +++ b/library/http.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-08 10:00+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 21:14+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/http.rst:2 msgid ":mod:`http` --- HTTP modules" @@ -149,17 +150,16 @@ msgid "WebDAV :rfc:`2518`, Section 10.1" msgstr "WebDAV :rfc:`2518`, Sección 10.1" #: ../Doc/library/http.rst:65 -#, fuzzy msgid "``103``" -msgstr "``510``" +msgstr "``103``" #: ../Doc/library/http.rst:65 msgid "``EARLY_HINTS``" -msgstr "" +msgstr "``EARLY_HINTS``" #: ../Doc/library/http.rst:65 msgid "An HTTP Status Code for Indicating Hints :rfc:`8297`" -msgstr "" +msgstr "Un código de estado HTTP para indicar pistas :rfc:`8297`" #: ../Doc/library/http.rst:66 msgid "``200``" @@ -594,18 +594,16 @@ msgid "HTTP/1.1 :rfc:`7231`, Section 6.5.14" msgstr "HTTP/1.1 :rfc:`7231`, Sección 6.5.14" #: ../Doc/library/http.rst:102 -#, fuzzy msgid "``418``" -msgstr "``451``" +msgstr "``418``" #: ../Doc/library/http.rst:102 msgid "``IM_A_TEAPOT``" -msgstr "" +msgstr "``IM_A_TEAPOT``" #: ../Doc/library/http.rst:102 -#, fuzzy msgid "HTCPCP/1.0 :rfc:`2324`, Section 2.3.2" -msgstr "HTTP/1.1 :rfc:`7231`, Sección 6.3.2" +msgstr "HTCPCP/1.0 :rfc:`2324`, Section 2.3.2" #: ../Doc/library/http.rst:103 msgid "``421``" @@ -656,17 +654,16 @@ msgid "WebDAV :rfc:`4918`, Section 11.4" msgstr "WebDAV :rfc:`4918`, Sección 11.4" #: ../Doc/library/http.rst:107 -#, fuzzy msgid "``425``" -msgstr "``451``" +msgstr "``425``" #: ../Doc/library/http.rst:107 msgid "``TOO_EARLY``" -msgstr "" +msgstr "``TOO_EARLY``" #: ../Doc/library/http.rst:107 msgid "Using Early Data in HTTP :rfc:`8470`" -msgstr "" +msgstr "Uso de datos iniciales en HTTP :rfc:`8470`" #: ../Doc/library/http.rst:108 msgid "``426``" @@ -883,3 +880,5 @@ msgid "" "Added ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 TOO_EARLY`` status " "codes." msgstr "" +"Agregados códigos de estado ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` y ``425 " +"TOO_EARLY``." diff --git a/library/http.server.po b/library/http.server.po index 6bfbbd13f1..f785acd27f 100644 --- a/library/http.server.po +++ b/library/http.server.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-18 02:10-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-07 22:01+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/http.server.rst:2 msgid ":mod:`http.server` --- HTTP servers" @@ -554,22 +555,23 @@ msgstr "" "define a nivel de módulo." #: ../Doc/library/http.server.rst:338 -#, fuzzy msgid "" "A dictionary mapping suffixes into MIME types, contains custom overrides for " "the default system mappings. The mapping is used case-insensitively, and so " "should contain only lower-cased keys." msgstr "" -"Un diccionario que mapea los sufijos en los tipos de MIME. El valor por " -"defecto es una cadena vacía, y se considera que es ``application/octet-" -"stream``. El mapeo se usa sin tener en cuenta las mayúsculas y minúsculas, " -"por lo que sólo debe contener claves en minúsculas." +"Un diccionario que asigna sufijos a tipos MIME contiene sobreescrituras " +"personalizadas para las asignaciones predeterminadas del sistema. El mapeo " +"se usa sin distinción entre mayúsculas y minúsculas, por lo que solo debe " +"contener claves en minúsculas." #: ../Doc/library/http.server.rst:342 msgid "" "This dictionary is no longer filled with the default system mappings, but " "only contains overrides." msgstr "" +"Este diccionario ya no contiene las asignaciones predeterminadas del " +"sistema, sino que solo contiene anulaciones." #: ../Doc/library/http.server.rst:348 msgid "" @@ -580,7 +582,7 @@ msgstr "" #: ../Doc/library/http.server.rst:350 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Acepta un :term:`path-like object`." #: ../Doc/library/http.server.rst:353 msgid "" diff --git a/library/idle.po b/library/idle.po index 44aee18bb3..4e423e3e80 100644 --- a/library/idle.po +++ b/library/idle.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-29 09:15-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-10-09 07:58+0200\n" +"Last-Translator: Diego Cristóbal Herreros\n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/idle.rst:4 msgid "IDLE" @@ -1124,6 +1125,16 @@ msgid "" "`Escape`, :kbd:`Enter`, and double :kbd:`Tab` keys or clicks outside the " "box. A double click within the box selects and closes." msgstr "" +"Cuando se solicitan y están disponibles, se suministran complementos para " +"los nombres de los módulos, los atributos de las clases o las funciones, o " +"los nombres de los archivos. Cada método de solicitud muestra un cuadro " +"para completar con los nombres existentes. (Para cualquier cuadro, cambie " +"el nombre que se está completando y el elemento resaltado en el cuadro " +"escribiendo y borrando caracteres; pulsando las teclas :kbd:`Up`, :kbd:" +"`Down`, :kbd:`PageUp`, :kbd:`PageDown`, :kbd:`Home`, y :kbd:`End`; y con un " +"solo clic dentro del cuadro. Cierra la caja con las teclas :kbd:`Escape`, :" +"kbd:`Enter` y doble :kbd:`Tab` o con clics fuera de la caja. Un doble clic " +"dentro de la caja selecciona y cierra." #: ../Doc/library/idle.rst:488 msgid "" @@ -1136,6 +1147,16 @@ msgid "" "one can specify a drive first.) Move into subdirectories by typing a " "directory name and a separator." msgstr "" +"Una forma de abrir una caja es escribir un carácter clave y esperar un " +"intervalo predefinido. Este intervalo es por defecto de 2 segundos; se " +"puede modificar en el diálogo de configuración. (Para evitar las ventanas " +"emergentes automáticas, establezca el retardo a un número grande de " +"milisegundos, como 100000000). Para nombres de módulos importados o " +"atributos de clases o funciones, escriba '.'. Para nombres de archivos en el " +"directorio raíz, escriba :data:`os.sep` o :data:`os.altsep` inmediatamente " +"después de una comilla de apertura. (En Windows, se puede especificar una " +"unidad de disco primero.) Muévase a los subdirectorios escribiendo un nombre " +"de directorio y un separador." #: ../Doc/library/idle.rst:498 msgid "" @@ -1147,6 +1168,14 @@ msgid "" "after a quote completes filenames in the current directory instead of a root " "directory." msgstr "" +"En lugar de esperar, o después de cerrar una caja, abra una caja de " +"finalización inmediatamente con Mostrar finalizaciones en el menú Edición. " +"La tecla rápida por defecto es :kbd:`C-espacio`. Si se teclea un prefijo " +"para el nombre deseado antes de abrir el cuadro, la primera coincidencia o " +"casi coincidencia se hace visible. El resultado es el mismo que si se " +"introduce un prefijo después de mostrar la caja. Mostrar las terminaciones " +"después de una cita completa de los nombres de archivo en el directorio " +"actual en lugar de un directorio raíz." #: ../Doc/library/idle.rst:506 msgid "" @@ -1155,6 +1184,10 @@ msgid "" "match to the prefix, that match is immediately added to the editor text " "without opening a box." msgstr "" +"Pulsar :kbd:`Tab` después de un prefijo suele tener el mismo efecto que el " +"de mostrar las terminaciones. (Sin prefijo, se indenta.) Sin embargo, si " +"sólo hay una coincidencia con el prefijo, esa coincidencia se añade " +"inmediatamente al texto del editor sin abrir una caja." #: ../Doc/library/idle.rst:511 msgid "" @@ -1162,6 +1195,10 @@ msgid "" "of a string and without a preceding '.' opens a box with keywords, builtin " "names, and available module-level names." msgstr "" +"Al invocar 'Mostrar las terminaciones', o al pulsar :kbd:`Tab` después de un " +"prefijo, fuera de una cadena y sin un '.' precedente, se abre un cuadro con " +"las palabras clave, los nombres incorporados y los nombres disponibles a " +"nivel de módulo." #: ../Doc/library/idle.rst:515 msgid "" @@ -1170,6 +1207,11 @@ msgid "" "thereafter. This is especially useful after adding imports at the top of a " "file. This also increases possible attribute completions." msgstr "" +"Cuando se edita el código en un editor (a diferencia de Shell), aumentar los " +"nombres disponibles a nivel de módulo mediante la ejecución de su código y " +"no reiniciar el Shell después. Esto es especialmente útil después de añadir " +"importaciones en la parte superior de un archivo. Esto también aumenta las " +"posibles terminaciones de atributos." #: ../Doc/library/idle.rst:521 msgid "" @@ -1177,6 +1219,10 @@ msgid "" "not included in '__all__'. The hidden names can be accessed by typing '_' " "after '.', either before or after the box is opened." msgstr "" +"Los cuadros de finalización excluyen inicialmente los nombres que empiezan " +"por '_' o, en el caso de los módulos, no incluidos en '__all__'. Se puede " +"acceder a los nombres ocultos escribiendo '_' después de '.', ya sea antes o " +"después de abrir la caja." #: ../Doc/library/idle.rst:528 msgid "Calltips" @@ -1207,6 +1253,12 @@ msgid "" "indicates that the preceding or following arguments are passed by position " "or name (keyword) only. Details are subject to change." msgstr "" +"La sugerencia de llamada consiste en la firma de la función y el docstring " +"hasta la primera línea en blanco de este último o la quinta línea no en " +"blanco. (Algunas funciones incorporadas carecen de una firma accesible.) Un " +"'/' o '*' en la firma indica que los argumentos anteriores o posteriores se " +"pasan sólo por posición o por nombre (palabra clave). Los detalles están " +"sujetos a cambios." #: ../Doc/library/idle.rst:543 msgid "" @@ -1214,6 +1266,10 @@ msgid "" "imported into the user process, including those imported by Idle itself, and " "which definitions have been run, all since the last restart." msgstr "" +"En Shell, las funciones accesibles dependen de los módulos que se hayan " +"importado en el proceso del usuario, incluidos los importados por el propio " +"Idle, y de las definiciones que se hayan ejecutado, todo ello desde el " +"último reinicio." #: ../Doc/library/idle.rst:547 #, fuzzy @@ -1614,6 +1670,14 @@ msgid "" "single string. Both format strings and :meth:`str.join` can help combine " "fields and lines." msgstr "" +"El envío de la salida de impresión de un proceso a un widget de texto en " +"otro es más lento que la impresión a un terminal del sistema en el mismo " +"proceso. Esto tiene el mayor efecto cuando se imprimen múltiples argumentos, " +"ya que la cadena de cada argumento, cada separador y la nueva línea se " +"envían por separado. Para el desarrollo, esto no suele ser un problema, pero " +"si uno quiere imprimir más rápido en IDLE, formatea y une todo lo que quiere " +"mostrar junto y luego imprime una sola cadena. Tanto las cadenas de formato " +"como :meth:`str.join` pueden ayudar a combinar campos y líneas." #: ../Doc/library/idle.rst:738 msgid "" diff --git a/library/imaplib.po b/library/imaplib.po index 69df8f6683..b36073dd75 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-15 18:16-0300\n" +"PO-Revision-Date: 2021-08-17 11:21+0800\n" "Last-Translator: \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/imaplib.rst:2 msgid ":mod:`imaplib` --- IMAP4 protocol client" @@ -52,7 +53,6 @@ msgstr "" "base:" #: ../Doc/library/imaplib.rst:35 -#, fuzzy msgid "" "This class implements the actual IMAP4 protocol. The connection is created " "and protocol version (IMAP4 or IMAP4rev1) is determined when the instance is " @@ -62,10 +62,13 @@ msgid "" "attempt. If timeout is not given or is None, the global default socket " "timeout is used." msgstr "" -"Esta clase implementa el protocolo actual IMAP4. La conexión se crea y la " -"versión del protocolo (IMAP4 o IMAP4rev1) se determina cuando se inicializa " -"la instancia. Si no se especifica *host*, se usa ``''`` (el host local). Si " -"se omite *port*, se usa el puerto IMAP4 estándar (143)." +"Esta clase implementa el protocolo IMAP4. La conexión se crea y la versión " +"del protocolo (IMAP4 o IMAP4rev1) se determina cuando se inicializa la " +"instancia. Si no se especifica *host*, se usa ``''`` (el host local). Si se " +"omite *port*, se usa el puerto IMAP4 estándar (143). El parámetro opcional " +"*timeout* especifica un timeout en segundos para intentar realizar la " +"conexión. Si timeout no se especifica, o es None, se usa el timeout global " +"por defecto de sockets." #: ../Doc/library/imaplib.rst:42 msgid "" @@ -82,9 +85,8 @@ msgid "Support for the :keyword:`with` statement was added." msgstr "Se agregó soporte para la sentencia :keyword:`with`." #: ../Doc/library/imaplib.rst:55 ../Doc/library/imaplib.rst:122 -#, fuzzy msgid "The optional *timeout* parameter was added." -msgstr "*ssl_context* parámetro agregado." +msgstr "El parámetro opcional *timeout* fue agregado." #: ../Doc/library/imaplib.rst:58 msgid "Three exceptions are defined as attributes of the :class:`IMAP4` class:" @@ -166,11 +168,13 @@ msgid "" "connection attempt. If timeout is not given or is None, the global default " "socket timeout is used." msgstr "" +"El parámetro opcional *timeout* especifica un timeout en segundos para " +"intentar realizar la conexión. Si timeout no se especifica, o es None, se " +"usa el timeout global por defecto de sockets." #: ../Doc/library/imaplib.rst:107 -#, fuzzy msgid "*ssl_context* parameter was added." -msgstr "*ssl_context* parámetro agregado." +msgstr "El parámetro *ssl_context* fue agregado." #: ../Doc/library/imaplib.rst:110 msgid "" @@ -222,13 +226,12 @@ msgstr "" "incorrecto." #: ../Doc/library/imaplib.rst:146 -#, fuzzy msgid "" "Converts an integer into a bytes representation using characters from the " "set [``A`` .. ``P``]." msgstr "" -"Convierte un número entero en una representación de cadena de caracteres " -"utilizando caracteres del conjunto [``A`` .. ``P``]." +"Convierte un número entero en una representación de bytes utilizando " +"caracteres del conjunto [``A`` .. ``P``]." #: ../Doc/library/imaplib.rst:152 msgid "Converts an IMAP4 ``FLAGS`` response to a tuple of individual flags." @@ -283,6 +286,10 @@ msgid "" "the University of Washington's IMAP Information Center can all be found at " "(**Source Code**) https://github.com/uw-imap/imap (**Not Maintained**)." msgstr "" +"Documentos describiendo el protocolo, y fuentes de servidores que lo " +"implementan, del Centro de Información IMAP de la Universidad de Washington, " +"pueden ser encontrados en (**Código Fuente**) https://github.com/uw-imap/" +"imap (**Fuera de mantención**)." #: ../Doc/library/imaplib.rst:185 msgid "IMAP4 Objects" @@ -317,7 +324,6 @@ msgstr "" "encierre la cadena entre paréntesis (por ejemplo: ``r'(\\Deleted)'``)." #: ../Doc/library/imaplib.rst:198 -#, fuzzy msgid "" "Each command returns a tuple: ``(type, [data, ...])`` where *type* is " "usually ``'OK'`` or ``'NO'``, and *data* is either the text from the command " @@ -327,8 +333,8 @@ msgid "" msgstr "" "Cada comando retorna una tupla: ``(type, [data, ...])`` donde *type* suele " "ser ``'OK'`` o ``'NO'``, y *data* es el texto de la respuesta del comando o " -"resultados obligatorios del comando. Cada *data* es una cadena de caracteres " -"o una tupla. Si es una tupla, la primera parte es el encabezado de la " +"resultados obligatorios del comando. Cada *data* es un objeto ``bytes`` o " +"una tupla. Si es una tupla, la primera parte es el encabezado de la " "respuesta, y la segunda parte contiene los datos (es decir, el valor " "'literal')." @@ -569,6 +575,15 @@ msgid "" "meth:`IMAP4.send`, and :meth:`IMAP4.shutdown` methods. You may override this " "method." msgstr "" +"Abre un socket a *port* y *host*. El parámetro opcional *timeout* especifica " +"un timeout en segundos para intentar realizar la conexión. Si timeout no se " +"especifica, o es None, se usa el timeout global por defecto de sockets. Nota " +"también que si el parámetro *timeout* es cero se lanzará un :class:" +"`ValueError` para evitar crear un socket sin bloqueo. Este método es " +"implícitamente llamado por el constructor :class:`IMAP4`. Los objetos de " +"conexiones establecidas por este método serán usados en los métodos :meth:" +"`IMAP4.read`, :meth:`IMAP4.readline`, :meth:`IMAP4.send`, y :meth:`IMAP4." +"shutdown`. Este método se puede sobreescribir." #: ../Doc/library/imaplib.rst:379 msgid "" @@ -579,9 +594,8 @@ msgstr "" "argumentos ``self``, ``host``, ``port``." #: ../Doc/library/imaplib.rst:381 -#, fuzzy msgid "The *timeout* parameter was added." -msgstr "*ssl_context* parámetro agregado." +msgstr "El parámetro *timeout* fue agregado." #: ../Doc/library/imaplib.rst:386 msgid "" @@ -874,6 +888,11 @@ msgid "" "command performs the same actions as :meth:`imaplib.IMAP4.close`, except " "that no messages are permanently removed from the currently selected mailbox." msgstr "" +":meth:`imaplib.IMAP4.unselect` libera recursos del servidor asociados al " +"buzón de correo seleccionado y devuelve el servidor al estado autenticado. " +"Este comando realiza las mismas acciones que :meth:`imaplib.IMAP4.close`, " +"con la excepción de que ningún mensaje es permanentemente borrado del buzón " +"de correo actualmente seleccionado." #: ../Doc/library/imaplib.rst:597 msgid "" diff --git a/library/imp.po b/library/imp.po index 7a78e78524..0dba550cc0 100644 --- a/library/imp.po +++ b/library/imp.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-13 15:10-0400\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 21:33+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/imp.rst:2 msgid ":mod:`imp` --- Access the :ref:`import ` internals" @@ -30,10 +31,8 @@ msgid "**Source code:** :source:`Lib/imp.py`" msgstr "**Código fuente:** :source:`Lib/imp.py`" #: ../Doc/library/imp.rst:10 -#, fuzzy msgid "The :mod:`imp` module is deprecated in favor of :mod:`importlib`." -msgstr "" -"El paquete :mod:`imp` está pendiente de desuso en favor de :mod:`importlib`." +msgstr "El módulo :mod:`imp` está obsoleto en favor de :mod:`importlib`." #: ../Doc/library/imp.rst:17 msgid "" @@ -50,9 +49,9 @@ msgid "" "Return the magic string value used to recognize byte-compiled code files (:" "file:`.pyc` files). (This value may be different for each Python version.)" msgstr "" -"retorna el valor de cadena mágica utilizado para reconocer archivos de " -"código compilados por bytes (:file:'.pyc' archivos). (Este valor puede ser " -"diferente para cada versión de Python.)" +"Retorna el valor de la cadena de caracteres mágica que se utiliza para " +"reconocer archivos de código compilados por bytes (archivos :file:`.pyc`). " +"(Este valor puede ser diferente para cada versión de Python)." #: ../Doc/library/imp.rst:28 msgid "Use :attr:`importlib.util.MAGIC_NUMBER` instead." @@ -68,14 +67,15 @@ msgid "" "files), and *type* is the file type, which has one of the values :const:" "`PY_SOURCE`, :const:`PY_COMPILED`, or :const:`C_EXTENSION`, described below." msgstr "" -"retorna una lista de tuplas de 3 elementos, cada una de las que describe un " -"tipo determinado de módulo. Cada triple tiene la forma ``(suffix, mode, " -"type)``, donde *suffix* es una cadena que se anexará al nombre del módulo " -"para formar el nombre de archivo para buscar, *mode* es la cadena de modo " -"para pasar a la función incorporada :func:`open` para abrir el archivo (esto " -"puede ser ``'r'`` para archivos de texto o ``'rb'`` para archivos binarios), " -"y *type* , que tiene uno de los valores :const:`PY_SOURCE`, :const:" -"`PY_COMPILED`, o :const:`C_EXTENSION`, que se describe a continuación." +"Retorna una lista de tuplas de 3 elementos, cada una de las cuales describe " +"un tipo particular de módulo. Cada triple tiene la forma ``(suffix, mode, " +"type)``, donde *suffix* es una cadena de caracteres que se agregará al " +"nombre del módulo para formar el nombre de archivo a buscar, *mode* es la " +"cadena de caracteres de modo para pasar a la función incorporada :func:" +"`open` para abrir el archivo (esto puede ser ``'r'`` para archivos de texto " +"o ``'rb'`` para archivos binarios), y *type* es el tipo de archivo, que " +"tiene uno de los valores :const:`PY_SOURCE`, :const:`PY_COMPILED`, o :const:" +"`C_EXTENSION`, que se describen a continuación." #: ../Doc/library/imp.rst:43 msgid "Use the constants defined on :mod:`importlib.machinery` instead." @@ -250,7 +250,7 @@ msgid "" "Return a new empty module object called *name*. This object is *not* " "inserted in ``sys.modules``." msgstr "" -"retorna un nuevo objeto de módulo vacío denominado *name*. Este objeto es " +"Retorna un nuevo objeto de módulo vacío denominado *name*. Este objeto es " "*not* insertado en ``sys.modules``." #: ../Doc/library/imp.rst:129 @@ -408,8 +408,8 @@ msgid "" "for *debug_override* you can override the system's value for ``__debug__``, " "leading to optimized bytecode." msgstr "" -"retorna la ruta de acceso :pep:`3147` al archivo compilado por bytes " -"asociado con la ruta *path* de origen. Por ejemplo, si *path* es ``/foo/bar/" +"Retorna la ruta de acceso :pep:`3147` al archivo compilado por bytes " +"asociado con la ruta *path* de origen. Por ejemplo, si *path* es ``/foo/bar/" "baz.py`` el valor retornado sería ``/foo/bar/__pycache__/baz.cpython-32." "pyc`` para Python 3.2. La cadena ``cpython-32`` proviene de la etiqueta " "mágica actual (consulte :func:`get_tag`; si :attr:`sys.implementation." @@ -472,8 +472,8 @@ msgid "" "Return the :pep:`3147` magic tag string matching this version of Python's " "magic number, as returned by :func:`get_magic`." msgstr "" -"retorna la cadena de etiqueta mágica :pep:`3147` que coincida con esta " -"versión del número mágico de Python, retornada por :func:`get_magic`." +"Retorna la cadena de etiqueta mágica :pep:`3147` que coincida con esta " +"versión del número mágico de Python, como lo retorna :func:`get_magic`." #: ../Doc/library/imp.rst:248 msgid "" @@ -500,9 +500,9 @@ msgid "" "Return ``True`` if the global import lock is currently held, else ``False``. " "On platforms without threads, always return ``False``." msgstr "" -"retorna ``True`` si el bloqueo de importación global se mantiene " -"actualmente, de lo contrario ``False``. En plataformas sin subprocesos, " -"siempre retorna ``False``." +"Retorna ``True`` si el bloqueo de importación global está actualmente " +"retenido, de lo contrario, ``False``. En plataformas sin hilos, siempre " +"retorna ``False``." #: ../Doc/library/imp.rst:264 msgid "" diff --git a/library/importlib.metadata.po b/library/importlib.metadata.po index 906665c638..9b8816c371 100644 --- a/library/importlib.metadata.po +++ b/library/importlib.metadata.po @@ -9,18 +9,18 @@ msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-04 22:03-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-10 17:50+0200\n" +"Last-Translator: diecristher@gmail.com\n" "Language: es_AR\n" "Language-Team: JuliKM@gmail.com\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/importlib.metadata.rst:5 -#, fuzzy msgid "Using :mod:`!importlib.metadata`" msgstr "Usando importlib.metadata" @@ -48,7 +48,7 @@ msgstr "" "importación de Python, esta biblioteca tiene la intención de reemplazar una " "funcionalidad similar ofrecida por la `API del punto de entrada`_ y la `API " "de metadatos`_ de ``pkg_resources``. Junto con ``importlib.resources`` en " -"`Python 3.7 y versiones posteriores`_ (retroimportada como " +"`Python 3.7 y versiones posteriores`_ (respaldada como " "`importlib_resources`_ para versiones anteriores de Python), esto puede " "eliminar la necesidad de usar el paquete ``pkg_resources``, antiguo y menos " "eficiente." @@ -304,6 +304,13 @@ msgid "" "package's metadata, ``importlib.metadata`` queries the list of :term:`meta " "path finders ` on :data:`sys.meta_path`." msgstr "" +"Debido a que los metadatos de los paquetes no están disponibles a través de " +"las búsquedas en :data:`sys.path`, o en los cargadores de paquetes " +"directamente, los metadatos de un paquete se encuentran a través del sistema " +"de importación :ref:`finders `. Para encontrar los " +"metadatos de un paquete de distribución, ``importlib.metadata`` consulta la " +"lista de :term:`meta path finders ` en :data:`sys." +"meta_path`." #: ../Doc/library/importlib.metadata.rst:227 msgid "" @@ -369,6 +376,11 @@ msgid "" "not part of the stable API. You should only use dictionary-like methods and " "syntax to access the metadata contents." msgstr "" +"Técnicamente, el objeto de metadatos de distribución devuelto es una " +"instancia :class:`email.message.EmailMessage`, pero esto es un detalle de " +"implementación, y no forma parte de la API estable. Para acceder al " +"contenido de los metadatos sólo debe utilizar métodos y sintaxis de tipo " +"diccionario." #~ msgid "" #~ "Because package metadata is not available through ``sys.path`` searches, " diff --git a/library/importlib.po b/library/importlib.po index 3f28590624..ac758e6d78 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -6,31 +6,33 @@ # 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: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-07 00:10+0200\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: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/importlib.rst:2 msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`" -msgstr "" +msgstr ":mod:`!importlib` --- La implementación de :keyword:`!import`" #: ../Doc/library/importlib.rst:12 msgid "**Source code:** :source:`Lib/importlib/__init__.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/__init__.py`" #: ../Doc/library/importlib.rst:17 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/library/importlib.rst:19 msgid "" @@ -41,6 +43,13 @@ msgid "" "Python interpreter. This also provides an implementation which is easier to " "comprehend than one implemented in a programming language other than Python." msgstr "" +"El propósito del paquete :mod:`importlib` es doble. Uno es proveer la " +"implementación de la declaración de :keyword:`import`, (y así, por " +"extensión, el método :func:`__import__` ) en el código fuente de Python. " +"Esto provee una implementación de la :keyword:`!import` la cual es " +"compatible con cualquier interprete de Python. También provee una " +"implementación que es más fácil de comprender que otras implementaciones, en " +"lenguajes diferentes a Python." #: ../Doc/library/importlib.rst:26 msgid "" @@ -49,19 +58,25 @@ msgid "" "(known generically as an :term:`importer`) to participate in the import " "process." msgstr "" +"Dos, los componentes incluidos para implementar :keyword:`import` están " +"expuestos en este paquete para que sea más fácil para los usuarios crear sus " +"propios objetos (conocidos de forma genérica como :term:`importer`) para " +"participar en el proceso de importación." #: ../Doc/library/importlib.rst:33 msgid ":ref:`import`" -msgstr "" +msgstr ":ref:`import`" #: ../Doc/library/importlib.rst:33 msgid "The language reference for the :keyword:`import` statement." -msgstr "" +msgstr "La referencia en el lenguaje para la declaración de :keyword:`import`." #: ../Doc/library/importlib.rst:38 msgid "" "`Packages specification `__" msgstr "" +"`Especificaciones de paquetes `__" #: ../Doc/library/importlib.rst:36 msgid "" @@ -69,124 +84,131 @@ msgid "" "writing of this document (e.g. redirecting based on ``None`` in :data:`sys." "modules`)." msgstr "" +"Especificaciones originales de los paquetes. Algunas semánticas han cambiado " +"desde que este documento fue escrito (ejemplo, redirección de acuerdo a " +"``None`` en :data:`sys.modules`)." #: ../Doc/library/importlib.rst:41 msgid "The :func:`.__import__` function" -msgstr "" +msgstr "La función :func:`.__import__`" #: ../Doc/library/importlib.rst:41 msgid "The :keyword:`import` statement is syntactic sugar for this function." msgstr "" +"La declaración de :keyword:`import` es una decoración sintáctica para esta " +"función." #: ../Doc/library/importlib.rst:44 msgid ":pep:`235`" -msgstr "" +msgstr ":pep:`235`" #: ../Doc/library/importlib.rst:44 msgid "Import on Case-Insensitive Platforms" -msgstr "" +msgstr "Importar en sistemas que no distinguen entre mayúsculas y minúsculas" #: ../Doc/library/importlib.rst:47 msgid ":pep:`263`" -msgstr "" +msgstr ":pep:`263`" #: ../Doc/library/importlib.rst:47 msgid "Defining Python Source Code Encodings" -msgstr "" +msgstr "Definiendo las codificaciones del código fuente de Python" #: ../Doc/library/importlib.rst:50 msgid ":pep:`302`" -msgstr "" +msgstr ":pep:`302`" #: ../Doc/library/importlib.rst:50 msgid "New Import Hooks" -msgstr "" +msgstr "Nuevos ganchos de importación" #: ../Doc/library/importlib.rst:53 msgid ":pep:`328`" -msgstr "" +msgstr "pep:`328`" #: ../Doc/library/importlib.rst:53 msgid "Imports: Multi-Line and Absolute/Relative" -msgstr "" +msgstr "Importaciones: Multilíneas, y absolutos/relativos" #: ../Doc/library/importlib.rst:56 msgid ":pep:`366`" -msgstr "" +msgstr ":pep:`366`" #: ../Doc/library/importlib.rst:56 msgid "Main module explicit relative imports" -msgstr "" +msgstr "Importaciones relativas, explicitas, del módulo principal" #: ../Doc/library/importlib.rst:59 msgid ":pep:`420`" -msgstr "" +msgstr ":pep:`420`" #: ../Doc/library/importlib.rst:59 msgid "Implicit namespace packages" -msgstr "" +msgstr "Paquetes implícitos en el espacio de nombres" #: ../Doc/library/importlib.rst:62 msgid ":pep:`451`" -msgstr "" +msgstr ":pep:`451`" #: ../Doc/library/importlib.rst:62 msgid "A ModuleSpec Type for the Import System" -msgstr "" +msgstr "Un tipo de ModuleSpec para el sistema de importación" #: ../Doc/library/importlib.rst:65 msgid ":pep:`488`" -msgstr "" +msgstr ":pep:`488`" #: ../Doc/library/importlib.rst:65 msgid "Elimination of PYO files" -msgstr "" +msgstr "Eliminación de archivos PYO" #: ../Doc/library/importlib.rst:68 msgid ":pep:`489`" -msgstr "" +msgstr ":pep:`489`" #: ../Doc/library/importlib.rst:68 msgid "Multi-phase extension module initialization" -msgstr "" +msgstr "Inicialización de extensión de módulo en múltiples fases" #: ../Doc/library/importlib.rst:71 msgid ":pep:`552`" -msgstr "" +msgstr ":pep:`552`" #: ../Doc/library/importlib.rst:71 msgid "Deterministic pycs" -msgstr "" +msgstr "Pycs determinísticos" #: ../Doc/library/importlib.rst:74 msgid ":pep:`3120`" -msgstr "" +msgstr ":pep:`3120`" #: ../Doc/library/importlib.rst:74 msgid "Using UTF-8 as the Default Source Encoding" -msgstr "" +msgstr "Usando UTF-8 como la codificación fuente por defecto" #: ../Doc/library/importlib.rst:76 msgid ":pep:`3147`" -msgstr "" +msgstr ":pep:`3147`" #: ../Doc/library/importlib.rst:77 msgid "PYC Repository Directories" -msgstr "" +msgstr "Repositorio de directorios PYC" #: ../Doc/library/importlib.rst:81 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/importlib.rst:85 msgid "An implementation of the built-in :func:`__import__` function." -msgstr "" +msgstr "Una implementación de la función :func:`__import__` incorporada." #: ../Doc/library/importlib.rst:88 msgid "" "Programmatic importing of modules should use :func:`import_module` instead " "of this function." msgstr "" +"La importación programática los módulos debe usar :func:`import_module` en " +"lugar de esta función." #: ../Doc/library/importlib.rst:93 msgid "" @@ -197,6 +219,12 @@ msgid "" "package name (e.g. ``import_module('..mod', 'pkg.subpkg')`` will import " "``pkg.mod``)." msgstr "" +"Importar un módulo. El argumento llamado *name* especifica qué módulo " +"importar en términos absolutos o relativos (ejemplo, puede ser ``pkg.mod`` o " +"``..mod``). Si el nombre fuera especificado en términos relativos, entonces " +"el argumento llamado *package* debe ser igual al nombre del paquete que será " +"el ancla para resolver el nombre del paquete (ejemplo ``import_module('.." +"mod', 'pkg.subpkg')`` importará ``pkg.mod``)." #: ../Doc/library/importlib.rst:101 msgid "" @@ -207,6 +235,13 @@ msgid "" "specified package or module (e.g. ``pkg.mod``), while :func:`__import__` " "returns the top-level package or module (e.g. ``pkg``)." msgstr "" +"La función :func:`import_module` actúa como un envoltorio simplificador " +"alrededor de :func:`importlib.__import__`. Esto quiere decir que las " +"semánticas de la función son derivadas de :func:`importlib.__import__`. La " +"diferencia más importante entre las dos funciones es que :func:" +"`import_module` retorna el paquete especificado o el módulo (ejemplo ``pkg." +"mod``), mientras que :func:`__import__` retorna el paquete o módulo del " +"nivel superior (ejemplo ``pkg``)." #: ../Doc/library/importlib.rst:108 msgid "" @@ -215,10 +250,14 @@ msgid "" "need to call :func:`invalidate_caches` in order for the new module to be " "noticed by the import system." msgstr "" +"Si está importando dinámicamente un módulo que se creó desde que el " +"intérprete comenzó la ejecución (por ejemplo, creó un archivo fuente de " +"Python), es posible que deba llamar a :func:`invalidate_caches` para que el " +"nuevo módulo sea detectado por el sistema de importación." #: ../Doc/library/importlib.rst:113 msgid "Parent packages are automatically imported." -msgstr "" +msgstr "Paquetes padres son importados automáticamente." #: ../Doc/library/importlib.rst:118 msgid "" @@ -228,6 +267,12 @@ msgid "" "exc:`ValueError` is raised). Otherwise a search using :attr:`sys.meta_path` " "is done. ``None`` is returned if no loader is found." msgstr "" +"Encuentra el cargador de un módulo, opcionalmente con el especificado en " +"*path*.Si el módulo esta en :attr:`sys.modules`, entonces retorna el `sys." +"modules[name].__loader__`` (a menos que el cargador sea ``None`` o no haya " +"uno especificado, en tal caso se eleva un :exc:`ValueError`).Si no se " +"encuentra ahí, se hace una búsqueda usando :attr:`sys.meta_path`. Se retorna " +"``None`` si no se encuentra un cargador." #: ../Doc/library/importlib.rst:124 msgid "" @@ -236,16 +281,22 @@ msgid "" "will need to import all parent packages of the submodule and use the correct " "argument to *path*." msgstr "" +"Un nombre con puntos no tiene sus ascendientes importados implícitamente, ya " +"que eso requeriría cargarlo y eso podría no ser deseado. Para importar un " +"sub-módulo correctamente debes importar todos los paquetes ascendientes del " +"sub-módulo y pase el argumento correcto a *path*." #: ../Doc/library/importlib.rst:131 msgid "" "If ``__loader__`` is not set, raise :exc:`ValueError`, just like when the " "attribute is set to ``None``." msgstr "" +"Si el ``__loader__`` no está configurado, eleva un :exc:`ValueError`, igual " +"a si el atributo fuera ``None``." #: ../Doc/library/importlib.rst:135 msgid "Use :func:`importlib.util.find_spec` instead." -msgstr "" +msgstr "Utilice :func:`importlib.util.find_spec` en su lugar." #: ../Doc/library/importlib.rst:140 msgid "" @@ -255,6 +306,12 @@ msgid "" "created/installed while your program is running to guarantee all finders " "will notice the new module's existence." msgstr "" +"Invalide los cache internos de ubicadores encontrados en :data:`sys." +"meta_path`.Si un buscador implementa ``invalidate_caches()`` entonces será " +"llamado para realizar la invalidación.Esta función debe ser llamada si " +"cualquier módulo ha sido creado/instalado mientras tu programa esta siendo " +"ejecutado para garantizar que todos los buscadores noten la existencia del " +"nuevo módulo." #: ../Doc/library/importlib.rst:150 msgid "" @@ -265,10 +322,16 @@ msgid "" "return value is the module object (which can be different if re-importing " "causes a different object to be placed in :data:`sys.modules`)." msgstr "" +"Recarga un *modulo* previamente importado. El argumento debe ser un objeto " +"módulo, por lo que debe haber sido importado exitosamente. Esto es útil " +"cuando has editado el código fuente de un archivo usando un editor externo y " +"deseas probar la nueva versión sin abandonar el interprete de Python. El " +"valor retornado es el objeto módulo (que puede ser diferente si la " +"reimportación crea un nuevo objeto en :data:`sys.modules`)." #: ../Doc/library/importlib.rst:157 msgid "When :func:`reload` is executed:" -msgstr "" +msgstr "Cuando :func:`reload` es ejecutada:" #: ../Doc/library/importlib.rst:159 msgid "" @@ -278,18 +341,27 @@ msgid "" "module. The ``init`` function of extension modules is not called a second " "time." msgstr "" +"El código de un módulo de Python es recompilado y el código del módulo " +"reejecutado, definiendo un nuevo conjunto de objetos que son asignados a los " +"nombres de los módulos en el diccionario, reusando el :term:`loader` que " +"originalmente carga los módulos. El método ``init`` de los módulos de " +"extension no es llamado de nuevo." #: ../Doc/library/importlib.rst:165 msgid "" "As with all other objects in Python the old objects are only reclaimed after " "their reference counts drop to zero." msgstr "" +"Al igual que con todos los demás objetos en Python, los objetos antiguos " +"solo se recuperan después de que sus recuentos de referencias caen a cero." #: ../Doc/library/importlib.rst:168 msgid "" "The names in the module namespace are updated to point to any new or changed " "objects." msgstr "" +"Los nombres en el espacio de nombres del módulo se actualizan para señalar " +"cualquier objeto nuevo o modificado." #: ../Doc/library/importlib.rst:171 msgid "" @@ -297,10 +369,14 @@ msgid "" "are not rebound to refer to the new objects and must be updated in each " "namespace where they occur if that is desired." msgstr "" +"Otras referencias a los objetos antiguos (como los nombres externos al " +"módulo) no se vuelven a vincular para hacer referencia a los nuevos objetos " +"y deben actualizarse en cada espacio de nombres donde se produzcan si se " +"desea." #: ../Doc/library/importlib.rst:175 msgid "There are a number of other caveats:" -msgstr "" +msgstr "Hay una serie de otras advertencias:" #: ../Doc/library/importlib.rst:177 msgid "" @@ -313,6 +389,14 @@ msgid "" "statement it can test for the table's presence and skip its initialization " "if desired::" msgstr "" +"Cuando se vuelve a cargar un módulo, se conserva su diccionario (que " +"contiene las variables globales del módulo). Las redefiniciones de nombres " +"anularán las antiguas definiciones, por lo que generalmente esto no es un " +"problema. Si la nueva versión de un módulo no define un nombre que fue " +"definido por la versión anterior, la definición anterior permanece. Esta " +"característica se puede utilizar en beneficio del módulo si mantiene una " +"tabla global o caché de objetos --- con una declaración :keyword:`try` puede " +"probar la presencia de la tabla y omitir su inicialización si lo desea:" #: ../Doc/library/importlib.rst:191 msgid "" @@ -322,6 +406,11 @@ msgid "" "designed to be initialized more than once, and may fail in arbitrary ways " "when reloaded." msgstr "" +"Por lo general, no es muy útil recargar módulos integrados o cargados " +"dinámicamente. No se recomienda recargar :mod:`sys`, :mod:`__main__`, :mod:" +"`builtins` y otros módulos clave. En muchos casos, los módulos de extensión " +"no están diseñados para inicializarse más de una vez y pueden fallar de " +"manera arbitraria cuando se vuelven a cargar." #: ../Doc/library/importlib.rst:197 msgid "" @@ -331,6 +420,11 @@ msgid "" "execute the :keyword:`!from` statement, another is to use :keyword:`!import` " "and qualified names (*module.name*) instead." msgstr "" +"Si un módulo importa objetos de otro módulo usando :keyword:`from` ... :" +"keyword:`import` ..., al llamar a :func:`reload` para el otro módulo no " +"redefine los objetos importados de él --- una forma de evitar esto es volver " +"a ejecutar la instrucción :keyword:`!from`, otra es usar :keyword:`!import` " +"y nombres calificados (*module.name*) en su lugar." #: ../Doc/library/importlib.rst:203 msgid "" @@ -339,20 +433,28 @@ msgid "" "--- they continue to use the old class definition. The same is true for " "derived classes." msgstr "" +"Si un módulo crea instancias de una clase, volver a cargar el módulo que " +"define la clase no afecta las definiciones de método de las instancias --- " +"continúan usando la definición de clase anterior. Lo mismo ocurre con las " +"clases derivadas." #: ../Doc/library/importlib.rst:209 msgid "" ":exc:`ModuleNotFoundError` is raised when the module being reloaded lacks a :" "class:`ModuleSpec`." msgstr "" +":exc:`ModuleNotFoundError` se lanza cuando el módulo que se está recargando " +"carece de :class:`ModuleSpec`." #: ../Doc/library/importlib.rst:215 msgid ":mod:`importlib.abc` -- Abstract base classes related to import" msgstr "" +":mod:`importlib.abc` -- Clases base abstractas relacionadas con la " +"importación" #: ../Doc/library/importlib.rst:220 msgid "**Source code:** :source:`Lib/importlib/abc.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/abc.py`" #: ../Doc/library/importlib.rst:225 msgid "" @@ -360,18 +462,23 @@ msgid "" "classes used by :keyword:`import`. Some subclasses of the core abstract base " "classes are also provided to help in implementing the core ABCs." msgstr "" +"El módulo :mod:`importlib.abc` contiene todas las clases base abstractas " +"principales utilizadas por :keyword:`import`. También se proporcionan " +"algunas subclases de las clases base abstractas centrales para ayudar a " +"implementar los ABC centrales." #: ../Doc/library/importlib.rst:229 msgid "ABC hierarchy::" -msgstr "" +msgstr "Jerarquía ABC::" #: ../Doc/library/importlib.rst:245 msgid "An abstract base class representing a :term:`finder`." -msgstr "" +msgstr "Una clase base abstracta que representa :term:`finder`." #: ../Doc/library/importlib.rst:247 msgid "Use :class:`MetaPathFinder` or :class:`PathEntryFinder` instead." msgstr "" +"Utilice :class:`MetaPathFinder` o :class:`PathEntryFinder` en su lugar." #: ../Doc/library/importlib.rst:252 msgid "" @@ -379,17 +486,25 @@ msgid "" "Originally specified in :pep:`302`, this method was meant for use in :data:" "`sys.meta_path` and in the path-based import subsystem." msgstr "" +"Un método abstracto para encontrar un :term:`loader` para el módulo " +"especificado. Originalmente especificado en :pep:`302`, este método estaba " +"destinado a ser utilizado en :data:`sys.meta_path` y en el subsistema de " +"importación basado en rutas." #: ../Doc/library/importlib.rst:256 msgid "" "Returns ``None`` when called instead of raising :exc:`NotImplementedError`." msgstr "" +"Retorna ``None`` cuando se llama en lugar de generar :exc:" +"`NotImplementedError`." #: ../Doc/library/importlib.rst:263 msgid "" "An abstract base class representing a :term:`meta path finder`. For " "compatibility, this is a subclass of :class:`Finder`." msgstr "" +"Una clase base abstracta que representa un :term:`meta path finder`. Por " +"compatibilidad, esta es una subclase de :class:`Finder`." #: ../Doc/library/importlib.rst:270 msgid "" @@ -402,6 +517,15 @@ msgid "" "return. :func:`importlib.util.spec_from_loader` may be useful for " "implementing concrete ``MetaPathFinders``." msgstr "" +"Un método abstracto para encontrar un :term:`spec ` para el " +"módulo especificado. Si se trata de una importación de nivel superior, el " +"*path* será ``None``. De lo contrario, esta es una búsqueda de un subpaquete " +"o módulo y *path* será el valor de :attr:`__path__` del paquete principal. " +"Si no se puede encontrar una especificación, se retorna ``None``. Cuando se " +"pasa, ``target`` es un objeto de módulo que el buscador puede usar para " +"hacer una suposición más informada sobre qué especificación retornar. :func:" +"`importlib.util.spec_from_loader` puede ser útil para implementar " +"``MetaPathFinders`` concretos." #: ../Doc/library/importlib.rst:284 msgid "" @@ -411,23 +535,33 @@ msgid "" "`__path__` from the parent package. If a loader cannot be found, ``None`` is " "returned." msgstr "" +"Un método heredado para encontrar un :term:`loader` para el módulo " +"especificado. Si se trata de una importación de nivel superior, el *path* " +"será ``None``. De lo contrario, esta es una búsqueda de un subpaquete o " +"módulo y *path* será el valor de :attr:`__path__` del paquete principal. Si " +"no se puede encontrar un cargador, se retorna ``None``." #: ../Doc/library/importlib.rst:290 msgid "" "If :meth:`find_spec` is defined, backwards-compatible functionality is " "provided." msgstr "" +"Si se define :meth:`find_spec`, se proporciona una funcionalidad compatible " +"con versiones anteriores." #: ../Doc/library/importlib.rst:293 msgid "" "Returns ``None`` when called instead of raising :exc:`NotImplementedError`. " "Can use :meth:`find_spec` to provide functionality." msgstr "" +"Retorna ``None`` cuando se llama en lugar de generar :exc:" +"`NotImplementedError`. Puede usar :meth:`find_spec` para proporcionar " +"funcionalidad." #: ../Doc/library/importlib.rst:298 ../Doc/library/importlib.rst:352 #: ../Doc/library/importlib.rst:360 ../Doc/library/importlib.rst:1120 msgid "Use :meth:`find_spec` instead." -msgstr "" +msgstr "Use :meth:`find_spec` en su lugar." #: ../Doc/library/importlib.rst:303 msgid "" @@ -435,10 +569,14 @@ msgid "" "used by the finder. Used by :func:`importlib.invalidate_caches` when " "invalidating the caches of all finders on :data:`sys.meta_path`." msgstr "" +"Un método opcional que, cuando se llama, debería invalidar cualquier caché " +"interno utilizado por el buscador. Utilizado por :func:`importlib." +"invalidate_caches` al invalidar los cachés de todos los buscadores en :data:" +"`sys.meta_path`." #: ../Doc/library/importlib.rst:307 msgid "Returns ``None`` when called instead of ``NotImplemented``." -msgstr "" +msgstr "Retorna ``None`` cuando se llama en lugar de ``NotImplemented``." #: ../Doc/library/importlib.rst:313 msgid "" @@ -448,6 +586,11 @@ msgid "" "`PathFinder`. This ABC is a subclass of :class:`Finder` for compatibility " "reasons only." msgstr "" +"Una clase base abstracta que representa un :term:`path entry finder`. Aunque " +"tiene algunas similitudes con :class:`MetaPathFinder`, ``PathEntryFinder`` " +"está diseñado para usarse solo dentro del subsistema de importación basado " +"en rutas proporcionado por :class:`PathFinder`. Este ABC es una subclase de :" +"class:`Finder` solo por razones de compatibilidad." #: ../Doc/library/importlib.rst:323 msgid "" @@ -459,6 +602,13 @@ msgid "" "func:`importlib.util.spec_from_loader` may be useful for implementing " "concrete ``PathEntryFinders``." msgstr "" +"Un método abstracto para encontrar un :term:`spec ` para el " +"módulo especificado. El buscador buscará el módulo solo dentro del :term:" +"`path entry` a la que está asignado. Si no se puede encontrar una " +"especificación, se retorna ``None``. Cuando se pasa, ``target`` es un objeto " +"de módulo que el buscador puede usar para hacer una suposición más informada " +"sobre qué especificación retornar. :func:`importlib.util.spec_from_loader` " +"puede ser útil para implementar ``PathEntryFinders`` concretos." #: ../Doc/library/importlib.rst:335 msgid "" @@ -472,24 +622,41 @@ msgid "" "list then no loader or location for a namespace package were found (i.e. " "failure to find anything for the module)." msgstr "" +"Un método heredado para encontrar un :term:`loader` para el módulo " +"especificado. Retorna una tupla de 2 de ``(loader, portion)`` donde " +"``portion`` es una secuencia de ubicaciones del sistema de archivos que " +"contribuyen a parte de un paquete de espacio de nombres. El cargador puede " +"ser ``None`` mientras se especifica ``portion`` para indicar la contribución " +"de las ubicaciones del sistema de archivos a un paquete de espacio de " +"nombres. Se puede usar una lista vacía para ``portion`` para indicar que el " +"cargador no es parte de un paquete de espacio de nombres. Si ``loader`` es " +"``None`` y ``portion`` es la lista vacía, entonces no se encontró ningún " +"cargador o ubicación para un paquete de espacio de nombres (es decir, no se " +"pudo encontrar nada para el módulo)." #: ../Doc/library/importlib.rst:345 msgid "" "If :meth:`find_spec` is defined then backwards-compatible functionality is " "provided." msgstr "" +"Si se define :meth:`find_spec`, se proporciona una funcionalidad compatible " +"con versiones anteriores." #: ../Doc/library/importlib.rst:348 msgid "" "Returns ``(None, [])`` instead of raising :exc:`NotImplementedError`. Uses :" "meth:`find_spec` when available to provide functionality." msgstr "" +"Retorna ``(None, [])`` en lugar de lanzar :exc:`NotImplementedError`. Usa :" +"meth:`find_spec` cuando está disponible para proporcionar funcionalidad." #: ../Doc/library/importlib.rst:357 msgid "" "A concrete implementation of :meth:`Finder.find_module` which is equivalent " "to ``self.find_loader(fullname)[0]``." msgstr "" +"Una implementación concreta de :meth:`Finder.find_module` que es equivalente " +"a ``self.find_loader(fullname)[0]``." #: ../Doc/library/importlib.rst:365 msgid "" @@ -497,12 +664,17 @@ msgid "" "used by the finder. Used by :meth:`PathFinder.invalidate_caches` when " "invalidating the caches of all cached finders." msgstr "" +"Un método opcional que, cuando se llama, debería invalidar cualquier caché " +"interno utilizado por el buscador. Usado por :meth:`PathFinder." +"invalidate_caches` al invalidar las cachés de todos los buscadores en caché." #: ../Doc/library/importlib.rst:372 msgid "" "An abstract base class for a :term:`loader`. See :pep:`302` for the exact " "definition for a loader." msgstr "" +"Una clase base abstracta para un :term:`loader`. Consulte :pep:`302` para " +"obtener la definición exacta de cargador." #: ../Doc/library/importlib.rst:375 ../Doc/library/importlib.rst:857 msgid "" @@ -510,10 +682,13 @@ msgid "" "``get_resource_reader(fullname)`` method as specified by :class:`importlib." "abc.ResourceReader`." msgstr "" +"Los cargadores que deseen admitir la lectura de recursos deben implementar " +"un método ``get_resource_reader(fullname)`` según lo especificado por :class:" +"`importlib.abc.ResourceReader`." #: ../Doc/library/importlib.rst:379 msgid "Introduced the optional ``get_resource_reader()`` method." -msgstr "" +msgstr "Introdujo el método opcional ``get_resource_reader()``." #: ../Doc/library/importlib.rst:384 msgid "" @@ -521,12 +696,17 @@ msgid "" "This method may return ``None``, indicating that default module creation " "semantics should take place." msgstr "" +"Un método que retorna el objeto de módulo que se utilizará al importar un " +"módulo. Este método puede retornar ``None``, lo que indica que se debe " +"llevar a cabo la semántica de creación de módulos predeterminada." #: ../Doc/library/importlib.rst:390 msgid "" "Starting in Python 3.6, this method will not be optional when :meth:" "`exec_module` is defined." msgstr "" +"A partir de Python 3.6, este método no será opcional cuando se defina :meth:" +"`exec_module`." #: ../Doc/library/importlib.rst:396 msgid "" @@ -535,16 +715,22 @@ msgid "" "when ``exec_module()`` is called. When this method exists, :meth:`~importlib." "abc.Loader.create_module` must be defined." msgstr "" +"Un método abstracto que ejecuta el módulo en su propio espacio de nombres " +"cuando se importa o se vuelve a cargar un módulo. El módulo ya debería estar " +"inicializado cuando se llama a ``exec_module()``. Cuando existe este método, " +"se debe definir :meth:`~importlib.abc.Loader.create_module`." #: ../Doc/library/importlib.rst:403 msgid ":meth:`~importlib.abc.Loader.create_module` must also be defined." -msgstr "" +msgstr ":meth:`~importlib.abc.Loader.create_module` también debe definirse." #: ../Doc/library/importlib.rst:408 msgid "" "A legacy method for loading a module. If the module cannot be loaded, :exc:" "`ImportError` is raised, otherwise the loaded module is returned." msgstr "" +"Un método heredado para cargar un módulo. Si el módulo no se puede cargar, " +"se lanza :exc:`ImportError`; de lo contrario, se retorna el módulo cargado." #: ../Doc/library/importlib.rst:412 msgid "" @@ -556,53 +742,69 @@ msgid "" "already in :data:`sys.modules` before the loader began execution should be " "left alone (see :func:`importlib.util.module_for_loader`)." msgstr "" +"Si el módulo solicitado ya existe en :data:`sys.modules`, ese módulo debe " +"usarse y recargarse. De lo contrario, el cargador debe crear un nuevo módulo " +"e insertarlo en :data:`sys.modules` antes de que comience la carga, para " +"evitar la recursividad de la importación. Si el cargador insertó un módulo y " +"la carga falla, el cargador debe eliminarlo de :data:`sys.modules`; los " +"módulos que ya están en :data:`sys.modules` antes de que el cargador " +"comenzara a ejecutarse deben dejarse en paz (ver :func:`importlib.util." +"module_for_loader`)." #: ../Doc/library/importlib.rst:421 msgid "" "The loader should set several attributes on the module. (Note that some of " "these attributes can change when a module is reloaded):" msgstr "" +"El cargador debe establecer varios atributos en el módulo. (Tenga en cuenta " +"que algunos de estos atributos pueden cambiar cuando se recarga un módulo):" #: ../Doc/library/importlib.rst:426 msgid ":attr:`__name__`" -msgstr "" +msgstr ":attr:`__name__`" #: ../Doc/library/importlib.rst:426 msgid "The name of the module." -msgstr "" +msgstr "El nombre del módulo." #: ../Doc/library/importlib.rst:430 msgid ":attr:`__file__`" -msgstr "" +msgstr ":attr:`__file__`" #: ../Doc/library/importlib.rst:429 msgid "" "The path to where the module data is stored (not set for built-in modules)." msgstr "" +"La ruta hacia donde se almacenan los datos del módulo (no configurada para " +"módulos integrados)." #: ../Doc/library/importlib.rst:434 msgid ":attr:`__cached__`" -msgstr "" +msgstr ":attr:`__cached__`" #: ../Doc/library/importlib.rst:433 msgid "" "The path to where a compiled version of the module is/should be stored (not " "set when the attribute would be inappropriate)." msgstr "" +"La ruta a la que se debe almacenar una versión compilada del módulo (no se " +"establece cuando el atributo sería inapropiado)." #: ../Doc/library/importlib.rst:438 msgid ":attr:`__path__`" -msgstr "" +msgstr ":attr:`__path__`" #: ../Doc/library/importlib.rst:437 msgid "" "A list of strings specifying the search path within a package. This " "attribute is not set on modules." msgstr "" +"Una lista de cadenas de caracteres que especifican la ruta de búsqueda " +"dentro de un paquete. Este atributo no se establece en módulos." #: ../Doc/library/importlib.rst:445 msgid ":attr:`__package__`" -msgstr "" +msgstr ":attr:`__package__`" #: ../Doc/library/importlib.rst:441 msgid "" @@ -611,28 +813,40 @@ msgid "" "the same as :attr:`__name__`. The :func:`importlib.util.module_for_loader` " "decorator can handle the details for :attr:`__package__`." msgstr "" +"El nombre completo del paquete bajo el cual se cargó el módulo como " +"submódulo (o la cadena de caracteres vacía para los módulos de nivel " +"superior). Para los paquetes, es lo mismo que :attr:`__name__`. El " +"decorador :func:`importlib.util.module_for_loader` puede manejar los " +"detalles de :attr:`__package__`." #: ../Doc/library/importlib.rst:450 msgid ":attr:`__loader__`" -msgstr "" +msgstr ":attr:`__loader__`" #: ../Doc/library/importlib.rst:448 msgid "" "The loader used to load the module. The :func:`importlib.util." "module_for_loader` decorator can handle the details for :attr:`__package__`." msgstr "" +"El cargador utilizado para cargar el módulo. El decorador :func:`importlib." +"util.module_for_loader` puede manejar los detalles de :attr:`__package__`." #: ../Doc/library/importlib.rst:452 msgid "" "When :meth:`exec_module` is available then backwards-compatible " "functionality is provided." msgstr "" +"Cuando :meth:`exec_module` está disponible, se proporciona una funcionalidad " +"compatible con versiones anteriores." #: ../Doc/library/importlib.rst:455 msgid "" "Raise :exc:`ImportError` when called instead of :exc:`NotImplementedError`. " "Functionality provided when :meth:`exec_module` is available." msgstr "" +"Lanza :exc:`ImportError` cuando se llama en lugar de :exc:" +"`NotImplementedError`. Funcionalidad proporcionada cuando :meth:" +"`exec_module` está disponible." #: ../Doc/library/importlib.rst:460 msgid "" @@ -641,6 +855,10 @@ msgid "" "The import machinery takes care of all the other responsibilities of " "load_module() when exec_module() is implemented." msgstr "" +"La API recomendada para cargar un módulo es :meth:`exec_module` (y :meth:" +"`create_module`). Los cargadores deberían implementarlo en lugar de " +"load_module(). La maquinaria de importación se encarga de todas las demás " +"responsabilidades de load_module() cuando se implementa exec_module()." #: ../Doc/library/importlib.rst:469 msgid "" @@ -648,23 +866,28 @@ msgid "" "module's repr, as a string. The module type's default repr() will use the " "result of this method as appropriate." msgstr "" +"Un método heredado que, cuando se implementa, calcula y retorna la repr del " +"módulo dado, como una cadena. El repr() predeterminado del tipo de módulo " +"utilizará el resultado de este método según corresponda." #: ../Doc/library/importlib.rst:475 msgid "Made optional instead of an abstractmethod." -msgstr "" +msgstr "Hecho opcional en vez de un método abstracto (*abstractmethod*)" #: ../Doc/library/importlib.rst:478 msgid "The import machinery now takes care of this automatically." -msgstr "" +msgstr "La maquinaria de importación ahora se encarga de esto automáticamente." #: ../Doc/library/importlib.rst:484 msgid "*Superseded by TraversableReader*" -msgstr "" +msgstr "*Reemplazada por TraversableReader*" #: ../Doc/library/importlib.rst:486 msgid "" "An :term:`abstract base class` to provide the ability to read *resources*." msgstr "" +"Un :term:`abstract base class` para proporcionar la capacidad de leer " +"*resources*." #: ../Doc/library/importlib.rst:489 msgid "" @@ -675,6 +898,13 @@ msgid "" "does not matter if the package and its data file(s) are stored in a e.g. zip " "file versus on the file system." msgstr "" +"Desde la perspectiva de este ABC, un *resource* es un artefacto binario que " +"se envía dentro de un paquete. Por lo general, esto es algo así como un " +"archivo de datos que se encuentra junto al archivo ``__init__.py`` del " +"paquete. El propósito de esta clase es ayudar a abstraer el acceso a dichos " +"archivos de datos de modo que no importe si el paquete y sus archivos de " +"datos se almacenan en un, por ejemplo, zip en comparación con el sistema de " +"archivos." #: ../Doc/library/importlib.rst:497 msgid "" @@ -687,6 +917,16 @@ msgid "" "class are expected to directly correlate to a specific package (instead of " "potentially representing multiple packages or a module)." msgstr "" +"Para cualquiera de los métodos de esta clase, se espera que un argumento " +"*resource* sea un :term:`path-like object` que representa conceptualmente " +"solo un nombre de archivo. Esto significa que no se deben incluir rutas de " +"subdirectorio en el argumento *resource*. Esto se debe a que la ubicación " +"del paquete para el que está ubicado el lector actúa como el \"directorio\". " +"Por lo tanto, la metáfora de los directorios y los nombres de los archivos " +"son los paquetes y los recursos, respectivamente. Esta es también la razón " +"por la que se espera que las instancias de esta clase se correlacionen " +"directamente con un paquete específico (en lugar de representar " +"potencialmente varios paquetes o un módulo)." #: ../Doc/library/importlib.rst:508 msgid "" @@ -696,32 +936,45 @@ msgid "" "not a package, this method should return :const:`None`. An object compatible " "with this ABC should only be returned when the specified module is a package." msgstr "" +"Se espera que los cargadores que deseen admitir la lectura de recursos " +"proporcionen un método llamado ``get_resource_reader(fullname)`` que retorna " +"un objeto que implementa la interfaz de este ABC. Si el módulo especificado " +"por fullname no es un paquete, este método debería devolver :const:`None`. " +"Un objeto compatible con este ABC solo debe retornarse cuando el módulo " +"especificado es un paquete." #: ../Doc/library/importlib.rst:519 msgid "" "Returns an opened, :term:`file-like object` for binary reading of the " "*resource*." msgstr "" +"Retorna un, :term:`file-like object` abierto para la lectura binaria del " +"*resource*." #: ../Doc/library/importlib.rst:522 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgstr "" +"Si no se puede encontrar el recurso, se lanza :exc:`FileNotFoundError`." #: ../Doc/library/importlib.rst:527 msgid "Returns the file system path to the *resource*." -msgstr "" +msgstr "Retorna la ruta del sistema de archivos al *resource*." #: ../Doc/library/importlib.rst:529 msgid "" "If the resource does not concretely exist on the file system, raise :exc:" "`FileNotFoundError`." msgstr "" +"Si el recurso no existe concretamente en el sistema de archivos, lanza :exc:" +"`FileNotFoundError`." #: ../Doc/library/importlib.rst:534 msgid "" "Returns ``True`` if the named *name* is considered a resource. :exc:" "`FileNotFoundError` is raised if *name* does not exist." msgstr "" +"Retorna ``True`` si el *name* nombrado se considera un recurso. :exc:" +"`FileNotFoundError` se lanza si *name* no existe." #: ../Doc/library/importlib.rst:539 msgid "" @@ -730,6 +983,10 @@ msgid "" "actual resources, e.g. it is acceptable to return names for which :meth:" "`is_resource` would be false." msgstr "" +"Retorna un :term:`iterable` de cadenas de caracteres sobre el contenido del " +"paquete. Tenga en cuenta que no es necesario que todos los nombres " +"retornados por el iterador sean recursos reales, por ejemplo, es aceptable " +"retornar nombres para los que :meth:`is_resource` sería falso." #: ../Doc/library/importlib.rst:545 msgid "" @@ -739,22 +996,33 @@ msgid "" "is allowed so that when it is known that the package and resources are " "stored on the file system then those subdirectory names can be used directly." msgstr "" +"Al permitir que se retornen nombres que no son de recursos es para permitir " +"situaciones en las que se conoce a priori cómo se almacenan un paquete y sus " +"recursos y los nombres que no son de recursos serían útiles. Por ejemplo, se " +"permite el retorno de nombres de subdirectorios para que cuando se sepa que " +"el paquete y los recursos están almacenados en el sistema de archivos, esos " +"nombres de subdirectorios se puedan usar directamente." #: ../Doc/library/importlib.rst:553 msgid "The abstract method returns an iterable of no items." -msgstr "" +msgstr "El método abstracto retorna un iterable de ningún elemento." #: ../Doc/library/importlib.rst:558 msgid "" "An abstract base class for a :term:`loader` which implements the optional :" "pep:`302` protocol for loading arbitrary resources from the storage back-end." msgstr "" +"Una clase base abstracta para un :term:`loader` que implementa el protocolo " +"opcional :pep:`302` para cargar recursos arbitrarios desde el back-end de " +"almacenamiento." #: ../Doc/library/importlib.rst:562 msgid "" "This ABC is deprecated in favour of supporting resource loading through :" "class:`importlib.abc.ResourceReader`." msgstr "" +"Este ABC está en desuso a favor de admitir la carga de recursos a través de :" +"class:`importlib.abc.ResourceReader`." #: ../Doc/library/importlib.rst:568 msgid "" @@ -765,16 +1033,25 @@ msgid "" "*path* is expected to be constructed using a module's :attr:`__file__` " "attribute or an item from a package's :attr:`__path__`." msgstr "" +"Un método abstracto para devolver los bytes de los datos ubicados en *path*. " +"Los cargadores que tienen un back-end de almacenamiento similar a un archivo " +"que permite almacenar datos arbitrarios pueden implementar este método " +"abstracto para dar acceso directo a los datos almacenados. :exc:`OSError` se " +"lanza si no se puede encontrar el *path*. Se espera que la *path* se " +"construya utilizando el atributo :attr:`__file__` de un módulo o un elemento " +"de un paquete :attr:`__path__`." #: ../Doc/library/importlib.rst:576 msgid "Raises :exc:`OSError` instead of :exc:`NotImplementedError`." -msgstr "" +msgstr "Lanza :exc:`OSError` en vez de :exc:`NotImplementedError`." #: ../Doc/library/importlib.rst:582 msgid "" "An abstract base class for a :term:`loader` which implements the optional :" "pep:`302` protocol for loaders that inspect modules." msgstr "" +"Una clase base abstracta para un :term:`loader` que implementa el protocolo " +"opcional :pep:`302` para cargadores que inspeccionan módulos." #: ../Doc/library/importlib.rst:587 msgid "" @@ -782,16 +1059,23 @@ msgid "" "a code object (as would be the case, for example, for a built-in module). " "Raise an :exc:`ImportError` if loader cannot find the requested module." msgstr "" +"Retorna el objeto código para un módulo, o ``None`` si el módulo no tiene un " +"objeto código (como sería el caso, por ejemplo, para un módulo integrado). " +"Lanza un :exc:`ImportError` si el cargador no puede encontrar el módulo " +"solicitado." #: ../Doc/library/importlib.rst:593 msgid "" "While the method has a default implementation, it is suggested that it be " "overridden if possible for performance." msgstr "" +"Si bien el método tiene una implementación predeterminada, se sugiere que se " +"anule si es posible para mejorar el rendimiento." #: ../Doc/library/importlib.rst:599 msgid "No longer abstract and a concrete implementation is provided." msgstr "" +"Ya no es un método abstracto y se proporciona una implementación concreta." #: ../Doc/library/importlib.rst:604 msgid "" @@ -801,11 +1085,17 @@ msgid "" "available (e.g. a built-in module). Raises :exc:`ImportError` if the loader " "cannot find the module specified." msgstr "" +"Un método abstracto para retornar la fuente de un módulo. Se retorna como " +"una cadena de caracteres de texto usando :term:`universal newlines`, " +"traduciendo todos los separadores de línea reconocidos en caracteres ``'\n" +"'``. Retorna ``None`` si no hay una fuente disponible (por ejemplo, un " +"módulo integrado). Lanza :exc:`ImportError` si el cargador no puede " +"encontrar el módulo especificado." #: ../Doc/library/importlib.rst:610 ../Doc/library/importlib.rst:619 #: ../Doc/library/importlib.rst:669 msgid "Raises :exc:`ImportError` instead of :exc:`NotImplementedError`." -msgstr "" +msgstr "Lanza :exc:`ImportError` en vez de :exc:`NotImplementedError`." #: ../Doc/library/importlib.rst:615 msgid "" @@ -813,10 +1103,13 @@ msgid "" "false value otherwise. :exc:`ImportError` is raised if the :term:`loader` " "cannot find the module." msgstr "" +"Un método abstracto para retornar un valor verdadero si el módulo es un " +"paquete, un valor falso en caso contrario. :exc:`ImportError` se lanza si :" +"term:`loader` no puede encontrar el módulo." #: ../Doc/library/importlib.rst:624 msgid "Create a code object from Python source." -msgstr "" +msgstr "Cree un objeto de código a partir de la fuente de Python." #: ../Doc/library/importlib.rst:626 msgid "" @@ -825,28 +1118,34 @@ msgid "" "source code originated from, which can be an abstract concept (e.g. location " "in a zip file)." msgstr "" +"El argumento *data* puede ser cualquier cosa que admita la función :func:" +"`compile` (es decir, cadena de caracteres o bytes). El argumento *path* debe " +"ser la \"ruta\" de donde se originó el código fuente, que puede ser un " +"concepto abstracto (por ejemplo, ubicación en un archivo zip)." #: ../Doc/library/importlib.rst:631 msgid "" "With the subsequent code object one can execute it in a module by running " "``exec(code, module.__dict__)``." msgstr "" +"Con el objeto de código subsiguiente, uno puede ejecutarlo en un módulo " +"ejecutando ``exec(code, module.__dict__)``." #: ../Doc/library/importlib.rst:636 msgid "Made the method static." -msgstr "" +msgstr "Hace el método estático." #: ../Doc/library/importlib.rst:641 msgid "Implementation of :meth:`Loader.exec_module`." -msgstr "" +msgstr "Implementación de :meth:`Loader.exec_module`." #: ../Doc/library/importlib.rst:647 msgid "Implementation of :meth:`Loader.load_module`." -msgstr "" +msgstr "Implementación de :meth:`Loader.load_module`." #: ../Doc/library/importlib.rst:649 msgid "use :meth:`exec_module` instead." -msgstr "" +msgstr "use :meth:`exec_module` en su lugar." #: ../Doc/library/importlib.rst:655 msgid "" @@ -854,18 +1153,26 @@ msgid "" "implemented, helps a module to be executed as a script. The ABC represents " "an optional :pep:`302` protocol." msgstr "" +"Una clase base abstracta que hereda de :class:`InspectLoader` que, cuando se " +"implementa, ayuda a que un módulo se ejecute como un script. El ABC " +"representa un protocolo opcional :pep:`302`." #: ../Doc/library/importlib.rst:661 msgid "" "An abstract method that is to return the value of :attr:`__file__` for the " "specified module. If no path is available, :exc:`ImportError` is raised." msgstr "" +"Un método abstracto que retorna el valor de :attr:`__file__` para el módulo " +"especificado. Si no hay una ruta disponible, se lanza :exc:`ImportError`." #: ../Doc/library/importlib.rst:665 msgid "" "If source code is available, then the method should return the path to the " "source file, regardless of whether a bytecode was used to load the module." msgstr "" +"Si el código fuente está disponible, entonces el método debe devolver la " +"ruta al archivo fuente, independientemente de si se utilizó un código de " +"bytes para cargar el módulo." #: ../Doc/library/importlib.rst:675 msgid "" @@ -873,36 +1180,42 @@ msgid "" "class:`ExecutionLoader`, providing concrete implementations of :meth:" "`ResourceLoader.get_data` and :meth:`ExecutionLoader.get_filename`." msgstr "" +"Una clase base abstracta que hereda de :class:`ResourceLoader` y :class:" +"`ExecutionLoader`, proporcionando implementaciones concretas de :meth:" +"`ResourceLoader.get_data` y :meth:`ExecutionLoader.get_filename`." #: ../Doc/library/importlib.rst:679 msgid "" "The *fullname* argument is a fully resolved name of the module the loader is " "to handle. The *path* argument is the path to the file for the module." msgstr "" +"El argumento *fullname* es un nombre completamente resuelto del módulo que " +"el cargador debe manejar. El argumento *path* es la ruta al archivo del " +"módulo." #: ../Doc/library/importlib.rst:686 msgid "The name of the module the loader can handle." -msgstr "" +msgstr "El nombre del módulo que puede manejar el cargador." #: ../Doc/library/importlib.rst:690 msgid "Path to the file of the module." -msgstr "" +msgstr "Ruta al archivo del módulo." #: ../Doc/library/importlib.rst:694 msgid "Calls super's ``load_module()``." -msgstr "" +msgstr "Llama a super's ``load_module()``." #: ../Doc/library/importlib.rst:696 msgid "Use :meth:`Loader.exec_module` instead." -msgstr "" +msgstr "Utilice :meth:`Loader.exec_module` en su lugar." #: ../Doc/library/importlib.rst:701 ../Doc/library/importlib.rst:1319 msgid "Returns :attr:`path`." -msgstr "" +msgstr "Retorna :attr:`path`." #: ../Doc/library/importlib.rst:705 msgid "Reads *path* as a binary file and returns the bytes from it." -msgstr "" +msgstr "Lee *path* como un archivo binario y devuelve los bytes de él." #: ../Doc/library/importlib.rst:710 msgid "" @@ -910,20 +1223,25 @@ msgid "" "file loading. The class inherits from both :class:`ResourceLoader` and :" "class:`ExecutionLoader`, requiring the implementation of:" msgstr "" +"Una clase base abstracta para implementar la carga de archivos fuente (y " +"opcionalmente bytecode). La clase hereda tanto de :class:`ResourceLoader` " +"como de :class:`ExecutionLoader`, lo que requiere la implementación de:" #: ../Doc/library/importlib.rst:714 msgid ":meth:`ResourceLoader.get_data`" -msgstr "" +msgstr ":meth:`ResourceLoader.get_data`" #: ../Doc/library/importlib.rst:717 msgid ":meth:`ExecutionLoader.get_filename`" -msgstr "" +msgstr ":meth:`ExecutionLoader.get_filename`" #: ../Doc/library/importlib.rst:716 msgid "" "Should only return the path to the source file; sourceless loading is not " "supported." msgstr "" +"Solo debe devolver la ruta al archivo de origen; la carga sin fuente no es " +"compatible." #: ../Doc/library/importlib.rst:719 msgid "" @@ -936,38 +1254,56 @@ msgid "" "loading by removing the parsing step of Python's compiler, and so no " "bytecode-specific API is exposed." msgstr "" +"Los métodos abstractos definidos por esta clase son para agregar soporte de " +"archivo de código de bytes opcional. No implementar estos métodos opcionales " +"(o hacer que se lance :exc:`NotImplementedError`) hace que el cargador solo " +"funcione con el código fuente. La implementación de los métodos permite que " +"el cargador trabaje con archivos fuente *y* código de bytes; no permite la " +"carga *sin fuente* donde solo se proporciona un código de bytes. Los " +"archivos de código de bytes son una optimización para acelerar la carga al " +"eliminar el paso de análisis del compilador de Python, por lo que no se " +"expone ninguna API específica de código de bytes." #: ../Doc/library/importlib.rst:730 msgid "" "Optional abstract method which returns a :class:`dict` containing metadata " "about the specified path. Supported dictionary keys are:" msgstr "" +"Método abstracto opcional que devuelve un :class:`dict` que contiene " +"metadatos sobre la ruta especificada. Las claves de diccionario admitidas " +"son:" #: ../Doc/library/importlib.rst:733 msgid "" "``'mtime'`` (mandatory): an integer or floating-point number representing " "the modification time of the source code;" msgstr "" +"``'mtime'`` (obligatorio): un número entero o de punto flotante que " +"representa la hora de modificación del código fuente;" #: ../Doc/library/importlib.rst:735 msgid "``'size'`` (optional): the size in bytes of the source code." -msgstr "" +msgstr "``'size'`` (opcional): el tamaño en bytes del código fuente." #: ../Doc/library/importlib.rst:737 msgid "" "Any other keys in the dictionary are ignored, to allow for future " "extensions. If the path cannot be handled, :exc:`OSError` is raised." msgstr "" +"Cualquier otra clave del diccionario se ignora para permitir futuras " +"extensiones. Si no se puede manejar la ruta, se genera :exc:`OSError`." #: ../Doc/library/importlib.rst:742 ../Doc/library/importlib.rst:755 msgid "Raise :exc:`OSError` instead of :exc:`NotImplementedError`." -msgstr "" +msgstr "Lanza :exc:`OSError` en vez de :exc:`NotImplementedError`." #: ../Doc/library/importlib.rst:747 msgid "" "Optional abstract method which returns the modification time for the " "specified path." msgstr "" +"Método abstracto opcional que retorna la hora de modificación de la ruta " +"especificada." #: ../Doc/library/importlib.rst:750 msgid "" @@ -975,6 +1311,9 @@ msgid "" "to implement it, but it is still available for compatibility purposes. " "Raise :exc:`OSError` if the path cannot be handled." msgstr "" +"Este método está obsoleto en favor de :meth:`path_stats`. No tiene que " +"implementarlo, pero aún está disponible para fines de compatibilidad. Lanza :" +"exc:`OSError` si la ruta no se puede manejar." #: ../Doc/library/importlib.rst:760 msgid "" @@ -982,36 +1321,41 @@ msgid "" "Any intermediate directories which do not exist are to be created " "automatically." msgstr "" +"Método abstracto opcional que escribe los bytes especificados en una ruta de " +"archivo. Los directorios intermedios que no existan se crearán " +"automáticamente." #: ../Doc/library/importlib.rst:764 msgid "" "When writing to the path fails because the path is read-only (:attr:`errno." "EACCES`/:exc:`PermissionError`), do not propagate the exception." msgstr "" +"Cuando la escritura en la ruta falla porque la ruta es de solo lectura (:" +"attr:`errno.EACCES`/:exc:`PermissionError`), no propague la excepción." #: ../Doc/library/importlib.rst:768 msgid "No longer raises :exc:`NotImplementedError` when called." -msgstr "" +msgstr "Ya no lanza :exc:`NotImplementedError` cuando se llama." #: ../Doc/library/importlib.rst:773 msgid "Concrete implementation of :meth:`InspectLoader.get_code`." -msgstr "" +msgstr "Implementación concreta de :meth:`InspectLoader.get_code`." #: ../Doc/library/importlib.rst:777 msgid "Concrete implementation of :meth:`Loader.exec_module`." -msgstr "" +msgstr "Implementación concreta de :meth:`Loader.exec_module`." #: ../Doc/library/importlib.rst:783 msgid "Concrete implementation of :meth:`Loader.load_module`." -msgstr "" +msgstr "Implementación concreta de :meth:`Loader.load_module`." #: ../Doc/library/importlib.rst:785 msgid "Use :meth:`exec_module` instead." -msgstr "" +msgstr "Utilice :meth:`exec_module` en su lugar." #: ../Doc/library/importlib.rst:790 msgid "Concrete implementation of :meth:`InspectLoader.get_source`." -msgstr "" +msgstr "Implementación concreta de :meth:`InspectLoader.get_source`." #: ../Doc/library/importlib.rst:794 msgid "" @@ -1021,12 +1365,19 @@ msgid "" "extension is removed **and** the module name itself does not end in " "``__init__``." msgstr "" +"Implementación concreta de :meth:`InspectLoader.is_package`. Se determina " +"que un módulo es un paquete si su ruta de archivo (proporcionada por :meth:" +"`ExecutionLoader.get_filename`) es un archivo llamado ``__init__`` cuando se " +"elimina la extensión del archivo **y** el nombre del módulo sí lo hace no " +"termina en ``__init__``." #: ../Doc/library/importlib.rst:803 msgid "" "An object with a subset of pathlib.Path methods suitable for traversing " "directories and opening files." msgstr "" +"Un objeto con un subconjunto de métodos pathlib.Path adecuados para recorrer " +"directorios y abrir archivos." #: ../Doc/library/importlib.rst:811 msgid "" @@ -1035,14 +1386,19 @@ msgid "" "of the ResourceReader's abstract methods. Therefore, any loader supplying " "TraversableReader also supplies ResourceReader." msgstr "" +"Una clase base abstracta para lectores de recursos capaz de servir la " +"interfaz de ``files``. Subclases ResourceReader y proporciona " +"implementaciones concretas de los métodos abstractos de ResourceReader. Por " +"lo tanto, cualquier cargador que suministre TraversableReader también " +"suministra ResourceReader." #: ../Doc/library/importlib.rst:821 msgid ":mod:`importlib.resources` -- Resources" -msgstr "" +msgstr ":mod:`importlib.resources` -- Recursos" #: ../Doc/library/importlib.rst:826 msgid "**Source code:** :source:`Lib/importlib/resources.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/resources.py`" #: ../Doc/library/importlib.rst:832 msgid "" @@ -1051,6 +1407,10 @@ msgid "" "resources within that package. Resources can be opened or read, in either " "binary or text mode." msgstr "" +"Este módulo aprovecha el sistema de importación de Python para proporcionar " +"acceso a *resources* dentro de *packages*. Si puede importar un paquete, " +"puede acceder a los recursos dentro de ese paquete. Los recursos se pueden " +"abrir o leer, ya sea en modo binario o texto." #: ../Doc/library/importlib.rst:837 msgid "" @@ -1059,6 +1419,10 @@ msgid "" "packages **do not** have to exist as physical files and directories on the " "file system." msgstr "" +"Los recursos son similares a los archivos dentro de los directorios, aunque " +"es importante tener en cuenta que esto es solo una metáfora. Los recursos y " +"paquetes **no** tienen que existir como archivos y directorios físicos en el " +"sistema de archivos." #: ../Doc/library/importlib.rst:843 msgid "" @@ -1069,6 +1433,12 @@ msgid "" "makes reading resources included in packages easier, with more stable and " "consistent semantics." msgstr "" +"Este módulo proporciona una funcionalidad similar a `pkg_resources `_ `Acceso Básico a " +"Recursos `_ sin la sobrecarga de rendimiento de ese " +"paquete. Esto facilita la lectura de los recursos incluidos en los paquetes, " +"con una semántica más estable y coherente." #: ../Doc/library/importlib.rst:851 msgid "" @@ -1077,10 +1447,14 @@ msgid "" "using.html>`_ and `migrating from pkg_resources to importlib.resources " "`_." msgstr "" +"El backport independiente de este módulo proporciona más información sobre " +"`usar importlib.resources `_ y `migrar desde pkg_resources a importlib.resources " +"`_." #: ../Doc/library/importlib.rst:861 msgid "The following types are defined." -msgstr "" +msgstr "Se definen los siguientes tipos." #: ../Doc/library/importlib.rst:865 msgid "" @@ -1089,16 +1463,23 @@ msgid "" "either a string or a module. Module objects must have a resolvable " "``__spec__.submodule_search_locations`` that is not ``None``." msgstr "" +"El tipo ``Package`` se define como ``Union[str, ModuleType]``. Esto " +"significa que cuando la función describe la aceptación de un ``Package``, " +"puede pasar una cadena de caracteres o un módulo. Los objetos de módulo " +"deben tener un ``__spec__.submodule_search_locations`` que se pueda resolver " +"que no sea ``None``." #: ../Doc/library/importlib.rst:872 msgid "" "This type describes the resource names passed into the various functions in " "this package. This is defined as ``Union[str, os.PathLike]``." msgstr "" +"Este tipo describe los nombres de los recursos que se pasan a las distintas " +"funciones de este paquete. Esto se define como ``Union[str, os.PathLike]``." #: ../Doc/library/importlib.rst:876 msgid "The following functions are available." -msgstr "" +msgstr "Están disponibles las siguientes funciones." #: ../Doc/library/importlib.rst:881 msgid "" @@ -1107,16 +1488,22 @@ msgid "" "(think files). A Traversable may contain other containers (think " "subdirectories)." msgstr "" +"Retorna un objeto :class:`importlib.resources.abc.Traversable` que " +"representa el contenedor de recursos para el paquete (directorio think) y " +"sus recursos (archivos think). Un Traversable puede contener otros " +"contenedores (subdirectorios think)." #: ../Doc/library/importlib.rst:886 ../Doc/library/importlib.rst:971 msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``." #: ../Doc/library/importlib.rst:893 msgid "Open for binary reading the *resource* within *package*." -msgstr "" +msgstr "Abra para lectura binaria el *resource* dentro del *package*." #: ../Doc/library/importlib.rst:895 msgid "" @@ -1126,12 +1513,20 @@ msgid "" "resources (i.e. it cannot be a directory). This function returns a ``typing." "BinaryIO`` instance, a binary I/O stream open for reading." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). Esta función retorna " +"una instancia de ``typing.BinaryIO``, un flujo de E/S binario abierto para " +"lectura." #: ../Doc/library/importlib.rst:904 msgid "" "Open for text reading the *resource* within *package*. By default, the " "resource is opened for reading as UTF-8." msgstr "" +"Se abre para leer el texto del *resource* dentro del *package*. De forma " +"predeterminada, el recurso está abierto para lectura como UTF-8." #: ../Doc/library/importlib.rst:907 msgid "" @@ -1141,17 +1536,26 @@ msgid "" "resources (i.e. it cannot be a directory). *encoding* and *errors* have the " "same meaning as with built-in :func:`open`." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). *encoding* y *errors* " +"tienen el mismo significado que con la función integrada :func:`open`." #: ../Doc/library/importlib.rst:913 msgid "" "This function returns a ``typing.TextIO`` instance, a text I/O stream open " "for reading." msgstr "" +"Esta función retorna una instancia de ``typing.TextIO``, un flujo de E/S de " +"texto abierto para lectura." #: ../Doc/library/importlib.rst:919 msgid "" "Read and return the contents of the *resource* within *package* as ``bytes``." msgstr "" +"Lee y retorna el contenido del *resource* dentro del *package* como " +"``bytes``." #: ../Doc/library/importlib.rst:922 msgid "" @@ -1161,12 +1565,19 @@ msgid "" "resources (i.e. it cannot be a directory). This function returns the " "contents of the resource as :class:`bytes`." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). Esta función retorna el " +"contenido del recurso como :class:`bytes`." #: ../Doc/library/importlib.rst:931 msgid "" "Read and return the contents of *resource* within *package* as a ``str``. By " "default, the contents are read as strict UTF-8." msgstr "" +"Lee y retorna el contenido de *resource* dentro de *package* como un " +"``str``. De forma predeterminada, los contenidos se leen como UTF-8 estricto." #: ../Doc/library/importlib.rst:934 msgid "" @@ -1177,6 +1588,12 @@ msgid "" "same meaning as with built-in :func:`open`. This function returns the " "contents of the resource as :class:`str`." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio). *encoding* y *errors* " +"tienen el mismo significado que con la función integrada :func:`open`. Esta " +"función retorna el contenido del recurso como :class:`str`." #: ../Doc/library/importlib.rst:944 msgid "" @@ -1184,12 +1601,18 @@ msgid "" "function returns a context manager for use in a :keyword:`with` statement. " "The context manager provides a :class:`pathlib.Path` object." msgstr "" +"Retorna la ruta al *resource* como una ruta real del sistema de archivos. " +"Esta función retorna un administrador de contexto para usar en una " +"declaración :keyword:`with`. El administrador de contexto proporciona un " +"objeto :class:`pathlib.Path`." #: ../Doc/library/importlib.rst:948 msgid "" "Exiting the context manager cleans up any temporary file created when the " "resource needs to be extracted from e.g. a zip file." msgstr "" +"Salir del administrador de contexto limpia cualquier archivo temporal creado " +"cuando el recurso necesita ser extraído, por ejemplo, un archivo zip." #: ../Doc/library/importlib.rst:951 msgid "" @@ -1198,6 +1621,10 @@ msgid "" "within *package*; it may not contain path separators and it may not have sub-" "resources (i.e. it cannot be a directory)." msgstr "" +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``. *resource* es el nombre del recurso a abrir dentro de " +"*package*; puede que no contenga separadores de ruta y puede que no tenga " +"sub-recursos (es decir, no puede ser un directorio)." #: ../Doc/library/importlib.rst:959 msgid "" @@ -1206,6 +1633,10 @@ msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements." msgstr "" +"Retorna ``True`` si hay un recurso llamado *name* en el paquete; de lo " +"contrario, ``False``. ¡Recuerde que los directorios *no* son recursos! " +"*package* es un nombre o un objeto de módulo que cumple con los requisitos " +"de ``Package``." #: ../Doc/library/importlib.rst:967 msgid "" @@ -1213,58 +1644,73 @@ msgid "" "returns :class:`str` resources (e.g. files) and non-resources (e.g. " "directories). The iterable does not recurse into subdirectories." msgstr "" +"Retorna un iterable sobre los elementos nombrados dentro del paquete. El " +"iterable retorna recursos :class:`str` (por ejemplo, archivos) y no-recursos " +"(por ejemplo, directorios). El iterable no recurre a subdirectorios." #: ../Doc/library/importlib.rst:976 msgid ":mod:`importlib.machinery` -- Importers and path hooks" -msgstr "" +msgstr ":mod:`importlib.machinery` -- Importadores y enlaces de ruta" #: ../Doc/library/importlib.rst:981 msgid "**Source code:** :source:`Lib/importlib/machinery.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/machinery.py`" #: ../Doc/library/importlib.rst:985 msgid "" "This module contains the various objects that help :keyword:`import` find " "and load modules." msgstr "" +"Este módulo contiene varios objetos que ayudan :keyword:`import` buscar y " +"cargar módulos." #: ../Doc/library/importlib.rst:990 msgid "" "A list of strings representing the recognized file suffixes for source " "modules." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"reconocidos para los módulos de origen." #: ../Doc/library/importlib.rst:997 msgid "" "A list of strings representing the file suffixes for non-optimized bytecode " "modules." msgstr "" +"Una lista de cadenas que representan los sufijos de archivo para módulos de " +"código de bytes no optimizados." #: ../Doc/library/importlib.rst:1002 ../Doc/library/importlib.rst:1012 msgid "Use :attr:`BYTECODE_SUFFIXES` instead." -msgstr "" +msgstr "Utilice :attr:`BYTECODE_SUFFIXES` en su lugar." #: ../Doc/library/importlib.rst:1007 msgid "" "A list of strings representing the file suffixes for optimized bytecode " "modules." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"para módulos de código de bytes optimizados." #: ../Doc/library/importlib.rst:1017 msgid "" "A list of strings representing the recognized file suffixes for bytecode " "modules (including the leading dot)." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"reconocidos para los módulos de código de bytes (incluido el punto inicial)." #: ../Doc/library/importlib.rst:1022 msgid "The value is no longer dependent on ``__debug__``." -msgstr "" +msgstr "El valor ya no depende de ``__debug__``." #: ../Doc/library/importlib.rst:1027 msgid "" "A list of strings representing the recognized file suffixes for extension " "modules." msgstr "" +"Una lista de cadenas de caracteres que representan los sufijos de archivo " +"reconocidos para los módulos de extensión." #: ../Doc/library/importlib.rst:1034 msgid "" @@ -1274,6 +1720,12 @@ msgid "" "module without needing any details on the kind of module (for example, :func:" "`inspect.getmodulename`)." msgstr "" +"Retorna una lista combinada de cadenas de caracteres que representan todos " +"los sufijos de archivo para módulos reconocidos por la maquinaria de " +"importación estándar. Este es un ayudante para el código que simplemente " +"necesita saber si una ruta del sistema de archivos potencialmente se refiere " +"a un módulo sin necesidad de detalles sobre el tipo de módulo (por ejemplo, :" +"func:`inspect.getmodulename`)." #: ../Doc/library/importlib.rst:1045 msgid "" @@ -1281,6 +1733,10 @@ msgid "" "listed in :data:`sys.builtin_module_names`. This class implements the :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." msgstr "" +"Un :term:`importer` para módulos integrados. Todos los módulos integrados " +"conocidos se enumeran en :data:`sys.builtin_module_names`. Esta clase " +"implementa los ABC :class:`importlib.abc.MetaPathFinder` y :class:`importlib." +"abc.InspectLoader`." #: ../Doc/library/importlib.rst:1050 ../Doc/library/importlib.rst:1064 #: ../Doc/library/importlib.rst:1077 ../Doc/library/importlib.rst:1092 @@ -1288,35 +1744,48 @@ msgid "" "Only class methods are defined by this class to alleviate the need for " "instantiation." msgstr "" +"Esta clase solo define los métodos de clase para aliviar la necesidad de " +"instanciación." #: ../Doc/library/importlib.rst:1053 msgid "" "As part of :pep:`489`, the builtin importer now implements :meth:`Loader." "create_module` and :meth:`Loader.exec_module`" msgstr "" +"Como parte de :pep:`489`, el importador integrado ahora implementa :meth:" +"`Loader.create_module` y :meth:`Loader.exec_module`" #: ../Doc/library/importlib.rst:1060 msgid "" "An :term:`importer` for frozen modules. This class implements the :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." msgstr "" +"Un :term:`importer` para módulos congelados. Esta clase implementa los ABC :" +"class:`importlib.abc.MetaPathFinder` y :class:`importlib.abc.InspectLoader`." #: ../Doc/library/importlib.rst:1067 msgid "" "Gained :meth:`~Loader.create_module` and :meth:`~Loader.exec_module` methods." msgstr "" +"Métodos obtenidos :meth:`~Loader.create_module` y :meth:`~Loader." +"exec_module`." #: ../Doc/library/importlib.rst:1074 msgid "" ":term:`Finder ` for modules declared in the Windows registry. This " "class implements the :class:`importlib.abc.MetaPathFinder` ABC." msgstr "" +":term:`Finder ` para los módulos declarados en el registro de " +"Windows. Esta clase implementa el :class:`importlib.abc.MetaPathFinder` ABC." #: ../Doc/library/importlib.rst:1082 msgid "" "Use :mod:`site` configuration instead. Future versions of Python may not " "enable this finder by default." msgstr "" +"Utilice la configuración de :mod:`site` en su lugar. Es posible que las " +"versiones futuras de Python no habiliten este buscador de forma " +"predeterminada." #: ../Doc/library/importlib.rst:1089 msgid "" @@ -1324,6 +1793,9 @@ msgid "" "attributes. This class implements the :class:`importlib.abc.MetaPathFinder` " "ABC." msgstr "" +"Un :term:`Finder ` para :data:`sys.path` y atributos del paquete " +"``__path__``. Esta clase implementa el :class:`importlib.abc.MetaPathFinder` " +"ABC." #: ../Doc/library/importlib.rst:1097 msgid "" @@ -1338,6 +1810,16 @@ msgid "" "the module. If no finder is ever found then ``None`` is both stored in the " "cache and returned." msgstr "" +"Método de clase que intenta encontrar un :term:`spec ` para el " +"módulo especificado por *fullname* en :data:`sys.path` o, si está definido, " +"en *path*. Para cada entrada de ruta que se busca, se comprueba :data:`sys." +"path_importer_cache`. Si se encuentra un objeto que no es falso, se utiliza " +"como :term:`path entry finder` para buscar el módulo que se está buscando. " +"Si no se encuentra ninguna entrada en :data:`sys.path_importer_cache`, " +"entonces :data:`sys.path_hooks` se busca un buscador para la entrada de ruta " +"y, si se encuentra, se almacena en :data:`sys.path_importer_cache` junto con " +"ser consultado sobre el módulo. Si nunca se encuentra ningún buscador, " +"entonces ``None`` se almacena en el caché y se retorna." #: ../Doc/library/importlib.rst:1111 msgid "" @@ -1345,10 +1827,13 @@ msgid "" "longer valid then ``None`` is returned but no value is cached in :data:`sys." "path_importer_cache`." msgstr "" +"Si el directorio de trabajo actual, representado por una cadena de " +"caracteres vacía, ya no es válido, se retorna``None`` pero no se almacena " +"ningún valor en :data:`sys.path_importer_cache`." #: ../Doc/library/importlib.rst:1118 msgid "A legacy wrapper around :meth:`find_spec`." -msgstr "" +msgstr "Una envoltura heredada alrededor de :meth:`find_spec`." #: ../Doc/library/importlib.rst:1125 msgid "" @@ -1356,28 +1841,38 @@ msgid "" "stored in :data:`sys.path_importer_cache` that define the method. Otherwise " "entries in :data:`sys.path_importer_cache` set to ``None`` are deleted." msgstr "" +"Llama :meth:`importlib.abc.PathEntryFinder.invalidate_caches` en todos los " +"buscadores almacenados en :data:`sys.path_importer_cache` que definen el " +"método. De lo contrario, las entradas en :data:`sys.path_importer_cache` " +"establecidas en ``None`` se eliminan." #: ../Doc/library/importlib.rst:1130 msgid "Entries of ``None`` in :data:`sys.path_importer_cache` are deleted." msgstr "" +"Se eliminan las entradas de ``None`` en :data:`sys.path_importer_cache`." #: ../Doc/library/importlib.rst:1133 msgid "" "Calls objects in :data:`sys.path_hooks` with the current working directory " "for ``''`` (i.e. the empty string)." msgstr "" +"Llama a objetos en :data:`sys.path_hooks` con el directorio de trabajo " +"actual para ``''`` (es decir, la cadena de caracteres vacía)." #: ../Doc/library/importlib.rst:1140 msgid "" "A concrete implementation of :class:`importlib.abc.PathEntryFinder` which " "caches results from the file system." msgstr "" +"Una implementación concreta de :class:`importlib.abc.PathEntryFinder` que " +"almacena en caché los resultados del sistema de archivos." #: ../Doc/library/importlib.rst:1143 msgid "" "The *path* argument is the directory for which the finder is in charge of " "searching." msgstr "" +"El argumento *path* es el directorio que el buscador se encarga de buscar." #: ../Doc/library/importlib.rst:1146 msgid "" @@ -1386,6 +1881,11 @@ msgid "" "The loaders are expected to be callables which accept two arguments of the " "module's name and the path to the file found." msgstr "" +"El argumento *loader_details* es un número variable de tuplas de 2 " +"elementos, cada una de las cuales contiene un cargador y una secuencia de " +"sufijos de archivo que el cargador reconoce. Se espera que los cargadores " +"sean invocables que acepten dos argumentos del nombre del módulo y la ruta " +"al archivo encontrado." #: ../Doc/library/importlib.rst:1151 msgid "" @@ -1399,22 +1899,36 @@ msgid "" "prevent this from happening, when you create a module dynamically, make sure " "to call :func:`importlib.invalidate_caches`." msgstr "" +"El buscador almacenará en caché el contenido del directorio según sea " +"necesario, haciendo llamadas estadísticas para cada búsqueda de módulo para " +"verificar que la caché no esté desactualizada. Debido a que la obsolescencia " +"de la caché se basa en la granularidad de la información de estado del " +"sistema operativo del sistema de archivos, existe una condición de carrera " +"potencial de buscar un módulo, crear un nuevo archivo y luego buscar el " +"módulo que representa el nuevo archivo. Si las operaciones ocurren lo " +"suficientemente rápido como para ajustarse a la granularidad de las llamadas " +"estadísticas, la búsqueda del módulo fallará. Para evitar que esto suceda, " +"cuando cree un módulo dinámicamente, asegúrese de llamar a :func:`importlib." +"invalidate_caches`." #: ../Doc/library/importlib.rst:1165 msgid "The path the finder will search in." -msgstr "" +msgstr "La ruta en la que buscará el buscador." #: ../Doc/library/importlib.rst:1169 msgid "Attempt to find the spec to handle *fullname* within :attr:`path`." msgstr "" +"Intente encontrar la especificación para manejar *fullname* dentro de :attr:" +"`path`." #: ../Doc/library/importlib.rst:1175 msgid "Attempt to find the loader to handle *fullname* within :attr:`path`." msgstr "" +"Intente encontrar el cargador para manejar *fullname* dentro de :attr:`path`." #: ../Doc/library/importlib.rst:1179 msgid "Clear out the internal cache." -msgstr "" +msgstr "Borrar el caché interno." #: ../Doc/library/importlib.rst:1183 msgid "" @@ -1422,12 +1936,18 @@ msgid "" "instance of :class:`FileFinder` is returned by the closure using the path " "argument given to the closure directly and *loader_details* indirectly." msgstr "" +"Un método de clase que devuelve un cierre para su uso en :attr:`sys." +"path_hooks`. Una instancia de :class:`FileFinder` es retornada por el cierre " +"usando el argumento de ruta dado al cierre directamente y *loader_details* " +"indirectamente." #: ../Doc/library/importlib.rst:1188 msgid "" "If the argument to the closure is not an existing directory, :exc:" "`ImportError` is raised." msgstr "" +"Si el argumento del cierre no es un directorio existente, se lanza :exc:" +"`ImportError`." #: ../Doc/library/importlib.rst:1194 msgid "" @@ -1435,43 +1955,53 @@ msgid "" "subclassing :class:`importlib.abc.FileLoader` and providing some concrete " "implementations of other methods." msgstr "" +"Una implementación concreta de :class:`importlib.abc.SourceLoader` " +"subclasificando :class:`importlib.abc.FileLoader` y proporcionando algunas " +"implementaciones concretas de otros métodos." #: ../Doc/library/importlib.rst:1202 msgid "The name of the module that this loader will handle." -msgstr "" +msgstr "El nombre del módulo que manejará este cargador." #: ../Doc/library/importlib.rst:1206 msgid "The path to the source file." -msgstr "" +msgstr "La ruta al archivo de origen." #: ../Doc/library/importlib.rst:1210 msgid "Return ``True`` if :attr:`path` appears to be for a package." -msgstr "" +msgstr "Devuelve ``True`` si :attr:`path` parece ser para un paquete." #: ../Doc/library/importlib.rst:1214 msgid "" "Concrete implementation of :meth:`importlib.abc.SourceLoader.path_stats`." msgstr "" +"Implementación concreta de :meth:`importlib.abc.SourceLoader.path_stats`." #: ../Doc/library/importlib.rst:1218 msgid "Concrete implementation of :meth:`importlib.abc.SourceLoader.set_data`." msgstr "" +"Implementación concreta de :meth:`importlib.abc.SourceLoader.set_data`." #: ../Doc/library/importlib.rst:1222 ../Doc/library/importlib.rst:1265 msgid "" "Concrete implementation of :meth:`importlib.abc.Loader.load_module` where " "specifying the name of the module to load is optional." msgstr "" +"Implementación concreta de :meth:`importlib.abc.Loader.load_module` donde " +"especificar el nombre del módulo a cargar es opcional." #: ../Doc/library/importlib.rst:1227 ../Doc/library/importlib.rst:1270 msgid "Use :meth:`importlib.abc.Loader.exec_module` instead." -msgstr "" +msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar." #: ../Doc/library/importlib.rst:1232 msgid "" "A concrete implementation of :class:`importlib.abc.FileLoader` which can " "import bytecode files (i.e. no source code files exist)." msgstr "" +"Una implementación concreta de :class:`importlib.abc.FileLoader` que puede " +"importar archivos de código de bytes (es decir, no existen archivos de " +"código fuente)." #: ../Doc/library/importlib.rst:1235 msgid "" @@ -1479,71 +2009,90 @@ msgid "" "files) inhibits your modules from being usable by all Python implementations " "or new versions of Python which change the bytecode format." msgstr "" +"Tenga en cuenta que el uso directo de archivos de código de bytes (y, por lo " +"tanto, no de archivos de código fuente) impide que sus módulos sean " +"utilizables por todas las implementaciones de Python o las nuevas versiones " +"de Python que cambian el formato de código de bytes." #: ../Doc/library/importlib.rst:1244 msgid "The name of the module the loader will handle." -msgstr "" +msgstr "El nombre del módulo que manejará el cargador." #: ../Doc/library/importlib.rst:1248 msgid "The path to the bytecode file." -msgstr "" +msgstr "La ruta al archivo de código de bytes." #: ../Doc/library/importlib.rst:1252 msgid "Determines if the module is a package based on :attr:`path`." -msgstr "" +msgstr "Determina si el módulo es un paquete basado en :attr:`path`." #: ../Doc/library/importlib.rst:1256 msgid "Returns the code object for :attr:`name` created from :attr:`path`." msgstr "" +"Retorna el objeto de código para :attr:`name` creado a partir de :attr:" +"`path`." #: ../Doc/library/importlib.rst:1260 msgid "" "Returns ``None`` as bytecode files have no source when this loader is used." msgstr "" +"Devuelve ``None`` ya que los archivos de código de bytes no tienen fuente " +"cuando se usa este cargador." #: ../Doc/library/importlib.rst:1275 msgid "" "A concrete implementation of :class:`importlib.abc.ExecutionLoader` for " "extension modules." msgstr "" +"Una implementación concreta de :class:`importlib.abc.ExecutionLoader` para " +"módulos de extensión." #: ../Doc/library/importlib.rst:1278 msgid "" "The *fullname* argument specifies the name of the module the loader is to " "support. The *path* argument is the path to the extension module's file." msgstr "" +"El argumento *fullname* especifica el nombre del módulo que el cargador debe " +"admitir. El argumento *path* es la ruta al archivo del módulo de extensión." #: ../Doc/library/importlib.rst:1285 msgid "Name of the module the loader supports." -msgstr "" +msgstr "Nombre del módulo que admite el cargador." #: ../Doc/library/importlib.rst:1289 msgid "Path to the extension module." -msgstr "" +msgstr "Ruta al módulo de extensión." #: ../Doc/library/importlib.rst:1293 msgid "" "Creates the module object from the given specification in accordance with :" "pep:`489`." msgstr "" +"Crea el objeto de módulo a partir de la especificación dada de acuerdo con :" +"pep:`489`." #: ../Doc/library/importlib.rst:1300 msgid "Initializes the given module object in accordance with :pep:`489`." -msgstr "" +msgstr "Inicializa el objeto de módulo dado de acuerdo con :pep:`489`." #: ../Doc/library/importlib.rst:1306 msgid "" "Returns ``True`` if the file path points to a package's ``__init__`` module " "based on :attr:`EXTENSION_SUFFIXES`." msgstr "" +"Retorna ``True`` si la ruta del archivo apunta al módulo ``__init__`` de un " +"paquete basado en :attr:`EXTENSION_SUFFIXES`." #: ../Doc/library/importlib.rst:1311 msgid "Returns ``None`` as extension modules lack a code object." msgstr "" +"Retorna ``None`` ya que los módulos de extensión carecen de un objeto de " +"código." #: ../Doc/library/importlib.rst:1315 msgid "Returns ``None`` as extension modules do not have source code." msgstr "" +"Retorna ``None`` ya que los módulos de extensión no tienen código fuente." #: ../Doc/library/importlib.rst:1326 msgid "" @@ -1557,28 +2106,39 @@ msgid "" "``__path__`` at runtime, and this will not be automatically reflected in " "``__spec__.submodule_search_locations``." msgstr "" +"Una especificación para el estado relacionado con el sistema de importación " +"de un módulo. Esto generalmente se expone como el atributo ``__spec__`` del " +"módulo. En las descripciones siguientes, los nombres entre paréntesis dan el " +"atributo correspondiente disponible directamente en el objeto del módulo, " +"por ejemplo, ``module.__spec__.origin == module.__file__``. Sin embargo, " +"tenga en cuenta que, si bien los *values* suelen ser equivalentes, pueden " +"diferir ya que no hay sincronización entre los dos objetos. Por lo tanto, es " +"posible actualizar el ``__path__`` del módulo en tiempo de ejecución, y esto " +"no se reflejará automáticamente en ``__spec__.submodule_search_locations``." #: ../Doc/library/importlib.rst:1340 msgid "(``__name__``)" -msgstr "" +msgstr "(``__name__``)" #: ../Doc/library/importlib.rst:1342 msgid "A string for the fully-qualified name of the module." -msgstr "" +msgstr "Una cadena de caracteres para el nombre completo del módulo." #: ../Doc/library/importlib.rst:1346 msgid "(``__loader__``)" -msgstr "" +msgstr "(``__loader__``)" #: ../Doc/library/importlib.rst:1348 msgid "" "The :term:`Loader ` that should be used when loading the module. :" "term:`Finders ` should always set this." msgstr "" +"El :term:`Loader ` que debe usarse al cargar el módulo. :term:" +"`Finders ` siempre debe establecer esto." #: ../Doc/library/importlib.rst:1353 msgid "(``__file__``)" -msgstr "" +msgstr "(``__file__``)" #: ../Doc/library/importlib.rst:1355 msgid "" @@ -1587,33 +2147,44 @@ msgid "" "\"origin\" should be set, but it may be ``None`` (the default) which " "indicates it is unspecified (e.g. for namespace packages)." msgstr "" +"Nombre del lugar desde el que se carga el módulo, por ejemplo \"incorporado" +"\" (*builtin*) para los módulos incorporados y el nombre de archivo para los " +"módulos cargados desde la fuente. Normalmente se debe establecer \"origen\", " +"pero puede ser ``None`` (el valor predeterminado), lo que indica que no está " +"especificado (por ejemplo, para paquetes de espacio de nombres)." #: ../Doc/library/importlib.rst:1362 msgid "(``__path__``)" -msgstr "" +msgstr "(``__path__``)" #: ../Doc/library/importlib.rst:1364 msgid "" "List of strings for where to find submodules, if a package (``None`` " "otherwise)." msgstr "" +"Lista de cadenas de caracteres de dónde encontrar submódulos, si es un " +"paquete (``None`` de lo contrario)." #: ../Doc/library/importlib.rst:1369 msgid "" "Container of extra module-specific data for use during loading (or ``None``)." msgstr "" +"Contenedor de datos adicionales específicos del módulo para usar durante la " +"carga (o ``None``)." #: ../Doc/library/importlib.rst:1374 msgid "(``__cached__``)" -msgstr "" +msgstr "(``__cached__``)" #: ../Doc/library/importlib.rst:1376 msgid "String for where the compiled module should be stored (or ``None``)." msgstr "" +"Cadena de caracteres para el lugar donde se debe almacenar el módulo " +"compilado (o ``None``)." #: ../Doc/library/importlib.rst:1380 msgid "(``__package__``)" -msgstr "" +msgstr "(``__package__``)" #: ../Doc/library/importlib.rst:1382 msgid "" @@ -1621,32 +2192,42 @@ msgid "" "should be loaded as a submodule (or the empty string for top-level modules). " "For packages, it is the same as :attr:`__name__`." msgstr "" +"(Solo lectura) El nombre completo del paquete bajo el cual se debe cargar el " +"módulo como submódulo (o la cadena de caracteres vacía para los módulos de " +"nivel superior). Para los paquetes, es lo mismo que :attr:`__name__`." #: ../Doc/library/importlib.rst:1388 msgid "" "Boolean indicating whether or not the module's \"origin\" attribute refers " "to a loadable location." msgstr "" +"Booleano que indica si el atributo \"origen\" del módulo se refiere a una " +"ubicación cargable." #: ../Doc/library/importlib.rst:1392 msgid ":mod:`importlib.util` -- Utility code for importers" -msgstr "" +msgstr ":mod:`importlib.util` -- Código de utilidad para importadores" #: ../Doc/library/importlib.rst:1398 msgid "**Source code:** :source:`Lib/importlib/util.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/importlib/util.py`" #: ../Doc/library/importlib.rst:1402 msgid "" "This module contains the various objects that help in the construction of " "an :term:`importer`." msgstr "" +"Este módulo contiene los diversos objetos que ayudan en la construcción de " +"un :term:`importer`." #: ../Doc/library/importlib.rst:1407 msgid "" "The bytes which represent the bytecode version number. If you need help with " "loading/writing bytecode then consider :class:`importlib.abc.SourceLoader`." msgstr "" +"Los bytes que representan el número de versión del código de bytes. Si " +"necesita ayuda para cargar/escribir código de bytes, considere :class:" +"`importlib.abc.SourceLoader`." #: ../Doc/library/importlib.rst:1414 msgid "" @@ -1657,6 +2238,12 @@ msgid "" "`get_tag`; if :attr:`sys.implementation.cache_tag` is not defined then :exc:" "`NotImplementedError` will be raised)." msgstr "" +"Retorna la ruta :pep:`3147`/:pep:`488` al archivo compilado por bytes " +"asociado con la *path* de origen. Por ejemplo, si *path* es ``/foo/bar/baz." +"py``, el valor de retorno sería ``/foo/bar/__pycache__/baz.cpython-32.pyc`` " +"para Python 3.2. La cadena de caracteres ``cpython-32`` proviene de la " +"etiqueta mágica actual (ver :func:`get_tag`; si :attr:`sys.implementation." +"cache_tag` no está definido, se lanzará :exc:`NotImplementedError`)." #: ../Doc/library/importlib.rst:1421 msgid "" @@ -1670,6 +2257,17 @@ msgid "" "cpython-32.opt-2.pyc``. The string representation of *optimization* can only " "be alphanumeric, else :exc:`ValueError` is raised." msgstr "" +"El parámetro *optimization* se utiliza para especificar el nivel de " +"optimización del archivo de código de bytes. Una cadena de caracteres vacía " +"no representa optimización, por lo que ``/foo/bar/baz.py`` con una " +"*optimization* de ``''`` dará como resultado una ruta de código de bytes de " +"``/foo/bar/__pycache__/baz.cpython-32.pyc``. ``None`` hace que se utilice el " +"nivel de optimización del intérprete. Se usa la representación de cadena de " +"caracteres de cualquier otro valor, por lo que ``/foo/bar/baz.py`` con una " +"*optimization* de ``2`` conducirá a la ruta del código de bytes de ``/foo/" +"bar/__pycache__/baz.cpython-32.opt-2.pyc``. La representación de cadena de " +"caracteres *optimization* solo puede ser alfanumérica, de lo contrario se " +"lanza :exc:`ValueError`." #: ../Doc/library/importlib.rst:1431 msgid "" @@ -1679,17 +2277,25 @@ msgid "" "setting *optimization* to ``1``. If both *debug_override* an *optimization* " "are not ``None`` then :exc:`TypeError` is raised." msgstr "" +"El parámetro *debug_override* está obsoleto y se puede usar para anular el " +"valor del sistema para ``__debug__``. Un valor ``True`` es el equivalente a " +"establecer *optimization* en la cadena de caracteres vacía. Un valor " +"``False`` es lo mismo que establecer *optimization* en ``1``. Si tanto " +"*debug_override* como *optimization* no es ``None``, entonces se lanza :exc:" +"`TypeError`." #: ../Doc/library/importlib.rst:1439 msgid "" "The *optimization* parameter was added and the *debug_override* parameter " "was deprecated." msgstr "" +"Se agregó el parámetro *optimization* y el parámetro *debug_override* quedó " +"obsoleto." #: ../Doc/library/importlib.rst:1443 ../Doc/library/importlib.rst:1459 #: ../Doc/library/importlib.rst:1608 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Acepta un :term:`path-like object`." #: ../Doc/library/importlib.rst:1449 msgid "" @@ -1700,6 +2306,13 @@ msgid "" "format, a :exc:`ValueError` is raised. If :attr:`sys.implementation." "cache_tag` is not defined, :exc:`NotImplementedError` is raised." msgstr "" +"Dado el *path* a un nombre de archivo :pep:`3147`, retorna la ruta del " +"archivo del código fuente asociado. Por ejemplo, si *path* es ``/foo/bar/" +"__pycache__/baz.cpython-32.pyc``, la ruta retornada sería ``/foo/bar/baz." +"py``. *path* no necesita existir, sin embargo, si no se ajusta al formato :" +"pep:`3147` o :pep:`488`, se lanza un :exc:`ValueError`. Si :attr:`sys." +"implementation.cache_tag` no está definido, se lanza :exc:" +"`NotImplementedError`." #: ../Doc/library/importlib.rst:1464 msgid "" @@ -1707,10 +2320,13 @@ msgid "" "with universal newlines (as required by :meth:`importlib.abc.InspectLoader." "get_source`)." msgstr "" +"Decodifica los bytes dados que representan el código fuente y los retorna " +"como una cadena de caracteres con nuevas líneas universales (como lo " +"requiere :meth:`importlib.abc.InspectLoader.get_source`)." #: ../Doc/library/importlib.rst:1472 msgid "Resolve a relative module name to an absolute one." -msgstr "" +msgstr "Resuelve un nombre de módulo relativo a uno absoluto." #: ../Doc/library/importlib.rst:1474 msgid "" @@ -1718,6 +2334,10 @@ msgid "" "allows for usage such as ``importlib.util.resolve_name('sys', __spec__." "parent)`` without doing a check to see if the **package** argument is needed." msgstr "" +"Si **name** no tiene puntos iniciales, entonces **name** simplemente se " +"retorna. Esto permite el uso como ``importlib.util.resolve_name('sys', " +"__spec__.parent)`` sin hacer una verificación para ver si se necesita el " +"argumento **package**." #: ../Doc/library/importlib.rst:1479 msgid "" @@ -1726,12 +2346,20 @@ msgid "" "`ImportError` is also raised a relative name would escape its containing " "package (e.g. requesting ``..bacon`` from within the ``spam`` package)." msgstr "" +":exc:`ImportError` se lanza si **name** es un nombre de módulo relativo pero " +"**package** es un valor falso (por ejemplo, ``None`` o la cadena de " +"caracteres vacía). También se lanza :exc:`ImportError` un nombre relativo " +"que escaparía del paquete que lo contiene (por ejemplo, solicitando ``.." +"bacon`` desde el paquete ``spam``)." #: ../Doc/library/importlib.rst:1486 msgid "" "To improve consistency with import statements, raise :exc:`ImportError` " "instead of :exc:`ValueError` for invalid relative import attempts." msgstr "" +"Para mejorar la coherencia con las declaraciones de importación, aumente :" +"exc:`ImportError` en lugar de :exc:`ValueError` para intentos de importación " +"relativa no válidos." #: ../Doc/library/importlib.rst:1493 msgid "" @@ -1742,16 +2370,25 @@ msgid "" "Otherwise a search using :attr:`sys.meta_path` is done. ``None`` is returned " "if no spec is found." msgstr "" +"Busca el :term:`spec ` para un módulo, opcionalmente relativo " +"al nombre del **package** especificado. Si el módulo está en :attr:`sys." +"modules`, se retorna ``sys.modules[name].__spec__`` (a menos que la " +"especificación sea ``None`` o no esté establecida, en cuyo caso se lanza :" +"exc:`ValueError`). De lo contrario, se realiza una búsqueda utilizando :attr:" +"`sys.meta_path`. Se retorna ``None`` si no se encuentra ninguna " +"especificación." #: ../Doc/library/importlib.rst:1500 msgid "" "If **name** is for a submodule (contains a dot), the parent module is " "automatically imported." msgstr "" +"Si **name** es para un submódulo (contiene un punto), el módulo principal se " +"importa automáticamente." #: ../Doc/library/importlib.rst:1503 msgid "**name** and **package** work the same as for :func:`import_module`." -msgstr "" +msgstr "**name** y **package** funcionan igual que para :func:`import_module`." #: ../Doc/library/importlib.rst:1507 msgid "" @@ -1759,12 +2396,17 @@ msgid "" "**package** is in fact not a package (i.e. lacks a :attr:`__path__` " "attribute)." msgstr "" +"Lanza :exc:`ModuleNotFoundError` en lugar de :exc:`AttributeError` si " +"**package** no es de hecho un paquete (es decir, carece de un atributo :attr:" +"`__path__`)." #: ../Doc/library/importlib.rst:1514 msgid "" "Create a new module based on **spec** and :meth:`spec.loader.create_module " "`." msgstr "" +"Cree un nuevo módulo basado en **spec** y :meth:`spec.loader.create_module " +"`." #: ../Doc/library/importlib.rst:1517 msgid "" @@ -1773,6 +2415,10 @@ msgid "" "reset. Also, no :exc:`AttributeError` will be raised if triggered while " "accessing **spec** or setting an attribute on the module." msgstr "" +"Si :meth:`spec.loader.create_module ` no " +"retorna ``None``, no se restablecerán los atributos preexistentes. Además, " +"no se lanzará :exc:`AttributeError` si se activa mientras se accede a " +"**spec** o se establece un atributo en el módulo." #: ../Doc/library/importlib.rst:1522 msgid "" @@ -1780,6 +2426,9 @@ msgid "" "new module as **spec** is used to set as many import-controlled attributes " "on the module as possible." msgstr "" +"Esta función es preferible a usar :class:`types.ModuleType` para crear un " +"nuevo módulo ya que **spec** se usa para establecer tantos atributos de " +"importación controlados en el módulo como sea posible." #: ../Doc/library/importlib.rst:1530 msgid "" @@ -1790,6 +2439,13 @@ msgid "" "module **object** to be used by the loader. Note that the decorator will not " "work on static methods because of the assumption of two arguments." msgstr "" +"Un :term:`decorator` para :meth:`importlib.abc.Loader.load_module` para " +"manejar la selección del objeto de módulo adecuado para cargar. Se espera " +"que el método decorado tenga una firma de llamada que tome dos argumentos " +"posicionales (por ejemplo, ``load_module(self, module)``) para los cuales el " +"segundo argumento será el módulo **object** que usará el cargador. Tenga en " +"cuenta que el decorador no funcionará con métodos estáticos debido a la " +"suposición de dos argumentos." #: ../Doc/library/importlib.rst:1539 msgid "" @@ -1800,6 +2456,13 @@ msgid "" "based on what :meth:`importlib.abc.InspectLoader.is_package` returns (if " "available). These attributes are set unconditionally to support reloading." msgstr "" +"El método decorado tomará el **name** del módulo que se cargará como se " +"esperaba para un :term:`loader`. Si el módulo no se encuentra en :data:`sys." +"modules`, se construye uno nuevo. Independientemente de la procedencia del " +"módulo, :attr:`__loader__` se establece en **self** y :attr:`__package__` se " +"establece en función de lo que retorna :meth:`importlib.abc.InspectLoader." +"is_package` (si está disponible) . Estos atributos se establecen " +"incondicionalmente para admitir la recarga." #: ../Doc/library/importlib.rst:1547 msgid "" @@ -1808,24 +2471,34 @@ msgid "" "initialized module from being in left in :data:`sys.modules`. If the module " "was already in :data:`sys.modules` then it is left alone." msgstr "" +"Si el método decorado lanza una excepción y se agrega un módulo a :data:`sys." +"modules`, entonces el módulo se eliminará para evitar que un módulo " +"parcialmente inicializado quede en :data:`sys.modules`. Si el módulo ya " +"estaba en :data:`sys.modules` entonces se deja solo." #: ../Doc/library/importlib.rst:1552 msgid "" ":attr:`__loader__` and :attr:`__package__` are automatically set (when " "possible)." msgstr "" +":attr:`__loader__` y :attr:`__package__` se configuran automáticamente " +"(cuando es posible)." #: ../Doc/library/importlib.rst:1556 msgid "" "Set :attr:`__name__`, :attr:`__loader__` :attr:`__package__` unconditionally " "to support reloading." msgstr "" +"Establece :attr:`__name__`, :attr:`__loader__` :attr:`__package__` " +"incondicionalmente para apoyar la recarga." #: ../Doc/library/importlib.rst:1560 msgid "" "The import machinery now directly performs all the functionality provided by " "this function." msgstr "" +"La maquinaria de importación ahora realiza directamente toda la " +"funcionalidad proporcionada por esta función." #: ../Doc/library/importlib.rst:1566 msgid "" @@ -1835,15 +2508,22 @@ msgid "" "positional argument to the wrapped method (i.e. ``self``) is what :attr:" "`__loader__` should be set to." msgstr "" +"Un :term:`decorator` para :meth:`importlib.abc.Loader.load_module` para " +"establecer el atributo :attr:`__loader__` en el módulo retornado. Si el " +"atributo ya está configurado, el decorador no hace nada. Se asume que el " +"primer argumento posicional del método envuelto (es decir, ``self``) es lo " +"que se debe establecer en :attr:`__loader__`." #: ../Doc/library/importlib.rst:1573 msgid "" "Set ``__loader__`` if set to ``None``, as if the attribute does not exist." msgstr "" +"Establece ``__loader__`` si está configurado como ``None``, como si el " +"atributo no existiera." #: ../Doc/library/importlib.rst:1577 ../Doc/library/importlib.rst:1586 msgid "The import machinery takes care of this automatically." -msgstr "" +msgstr "La maquinaria de importación se encarga de esto automáticamente." #: ../Doc/library/importlib.rst:1582 msgid "" @@ -1851,6 +2531,10 @@ msgid "" "attr:`__package__` attribute on the returned module. If :attr:`__package__` " "is set and has a value other than ``None`` it will not be changed." msgstr "" +"Un :term:`decorator` para :meth:`importlib.abc.Loader.load_module` para " +"establecer el atributo :attr:`__package__` en el módulo retornado. Si :attr:" +"`__package__` está configurado y tiene un valor diferente a ``None``, no se " +"cambiará." #: ../Doc/library/importlib.rst:1591 msgid "" @@ -1859,6 +2543,11 @@ msgid "" "The function uses available :term:`loader` APIs, such as :meth:" "`InspectLoader.is_package`, to fill in any missing information on the spec." msgstr "" +"Una función de fábrica para crear una instancia :class:`ModuleSpec` basada " +"en un cargador. Los parámetros tienen el mismo significado que para " +"ModuleSpec. La función utiliza APIs disponibles :term:`loader`, como :meth:" +"`InspectLoader.is_package`, para completar cualquier información que falte " +"en la especificación." #: ../Doc/library/importlib.rst:1601 msgid "" @@ -1866,6 +2555,10 @@ msgid "" "path to a file. Missing information will be filled in on the spec by making " "use of loader APIs and by the implication that the module will be file-based." msgstr "" +"Una función de fábrica para crear una instancia :class:`ModuleSpec` basada " +"en la ruta a un archivo. La información que falte se completará en la " +"especificación mediante el uso de las API de carga y la implicación de que " +"el módulo estará basado en archivos." #: ../Doc/library/importlib.rst:1613 msgid "" @@ -1873,12 +2566,17 @@ msgid "" "embeds the :func:`source_hash` of the corresponding source file's contents " "in its header." msgstr "" +"Retorna el hash de *source_bytes* como bytes. Un archivo ``.pyc`` basado en " +"hash incrusta :func:`source_hash` del contenido del archivo fuente " +"correspondiente en su encabezado." #: ../Doc/library/importlib.rst:1621 msgid "" "A class which postpones the execution of the loader of a module until the " "module has an attribute accessed." msgstr "" +"Una clase que pospone la ejecución del cargador de un módulo hasta que el " +"módulo tiene acceso a un atributo." #: ../Doc/library/importlib.rst:1624 msgid "" @@ -1892,6 +2590,15 @@ msgid "" "module references throughout the interpreter safely; :exc:`ValueError` is " "raised if such a substitution is detected." msgstr "" +"Esta clase **solo** funciona con cargadores que definen :meth:`~importlib." +"abc.Loader.exec_module` ya que se requiere control sobre qué tipo de módulo " +"se usa para el módulo. Por esas mismas razones, el método del cargador :meth:" +"`~importlib.abc.Loader.create_module` debe retornar ``None`` o un tipo para " +"el cual su atributo ``__class__`` se puede mutar junto con no usar :term:" +"`slots <__slots__>`. Finalmente, los módulos que sustituyen el objeto " +"colocado en :attr:`sys.modules` no funcionarán ya que no hay forma de " +"reemplazar correctamente las referencias del módulo en todo el intérprete de " +"forma segura; :exc:`ValueError` se genera si se detecta tal sustitución." #: ../Doc/library/importlib.rst:1635 msgid "" @@ -1901,6 +2608,12 @@ msgid "" "**heavily** discouraged due to error messages created during loading being " "postponed and thus occurring out of context." msgstr "" +"Para proyectos donde el tiempo de inicio es crítico, esta clase permite " +"minimizar potencialmente el costo de cargar un módulo si nunca se usa. Para " +"proyectos en los que el tiempo de inicio no es esencial, el uso de esta " +"clase se desaconseja **en gran medida** debido a que los mensajes de error " +"creados durante la carga se posponen y, por lo tanto, ocurren fuera de " +"contexto." #: ../Doc/library/importlib.rst:1643 msgid "" @@ -1908,6 +2621,9 @@ msgid "" "compatibility warning for :class:`importlib.machinery.BuiltinImporter` and :" "class:`importlib.machinery.ExtensionFileLoader`." msgstr "" +"Comenzó a llamar :meth:`~importlib.abc.Loader.create_module`, eliminando la " +"advertencia de compatibilidad para :class:`importlib.machinery." +"BuiltinImporter` y :class:`importlib.machinery.ExtensionFileLoader`." #: ../Doc/library/importlib.rst:1650 msgid "" @@ -1915,43 +2631,52 @@ msgid "" "meant to be used in situations where the loader is passed by class instead " "of by instance. ::" msgstr "" +"Un método estático que devuelve un invocable que crea un cargador diferido. " +"Esto está destinado a utilizarse en situaciones en las que el cargador se " +"pasa por clase en lugar de por instancia. ::" #: ../Doc/library/importlib.rst:1663 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/importlib.rst:1666 msgid "Importing programmatically" -msgstr "" +msgstr "Importar programáticamente" #: ../Doc/library/importlib.rst:1668 msgid "" "To programmatically import a module, use :func:`importlib.import_module`. ::" msgstr "" +"Para importar un módulo mediante programación, use :func:`importlib." +"import_module`. ::" #: ../Doc/library/importlib.rst:1677 msgid "Checking if a module can be imported" -msgstr "" +msgstr "Comprobando si se puede importar un módulo" #: ../Doc/library/importlib.rst:1679 msgid "" "If you need to find out if a module can be imported without actually doing " "the import, then you should use :func:`importlib.util.find_spec`. ::" msgstr "" +"Si necesita averiguar si un módulo se puede importar sin realmente realizar " +"la importación, entonces debe usar :func:`importlib.util.find_spec`. ::" #: ../Doc/library/importlib.rst:1702 msgid "Importing a source file directly" -msgstr "" +msgstr "Importar un archivo fuente directamente" #: ../Doc/library/importlib.rst:1704 msgid "" "To import a Python source file directly, use the following recipe (Python " "3.5 and newer only)::" msgstr "" +"Para importar un archivo fuente de Python directamente, use la siguiente " +"receta (solo Python 3.5 y más reciente)::" #: ../Doc/library/importlib.rst:1723 msgid "Setting up an importer" -msgstr "" +msgstr "Configurar un importador" #: ../Doc/library/importlib.rst:1725 msgid "" @@ -1966,10 +2691,21 @@ msgid "" "will use them (for creating an importer for yourself, read the documentation " "for the appropriate classes defined within this package)::" msgstr "" +"Para personalizaciones profundas de la importación, normalmente desea " +"implementar un :term:`importador`. Esto significa administrar tanto el lado :" +"term:`finder` como :term:`loader` de las cosas. Para los buscadores, hay dos " +"sabores para elegir según sus necesidades: un :term:`meta path finder` o un :" +"term:`path entry finder`. El primero es lo que pondrías en :attr:`sys." +"meta_path` mientras que el segundo es lo que creas usando un :term:`path " +"entry hook` en :attr:`sys.path_hooks` que funciona con :attr:`sys .path` " +"entradas para crear potencialmente un buscador. Este ejemplo le mostrará " +"cómo registrar sus propios importadores para que import los utilice (para " +"crear un importador para usted, lea la documentación de las clases " +"apropiadas definidas dentro de este paquete):" #: ../Doc/library/importlib.rst:1757 msgid "Approximating :func:`importlib.import_module`" -msgstr "" +msgstr "Aproximando :func:`importlib.import_module`" #: ../Doc/library/importlib.rst:1759 msgid "" @@ -1980,3 +2716,9 @@ msgid "" "and newer for the importlib usage, Python 3.6 and newer for other parts of " "the code). ::" msgstr "" +"La importación en sí está implementada en código Python, lo que permite " +"exponer la mayor parte de la maquinaria de importación a través de " +"importlib. Lo siguiente ayuda a ilustrar las diversas API que importlib " +"expone al proporcionar una implementación aproximada de :func:`importlib." +"import_module` (Python 3.4 y más reciente para el uso de importlib, Python " +"3.6 y más reciente para otras partes del código). ::" diff --git a/library/inspect.po b/library/inspect.po index 06b5c6076f..8924eecac9 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-16 20:27+0200\n" +"PO-Revision-Date: 2021-08-04 21:34+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/inspect.rst:2 msgid ":mod:`inspect` --- Inspect live objects" @@ -1348,16 +1349,14 @@ msgstr "" "función." #: ../Doc/library/inspect.rst:824 -#, fuzzy msgid "" "A mutable mapping of parameters' names to arguments' values. Contains only " "explicitly bound arguments. Changes in :attr:`arguments` will reflect in :" "attr:`args` and :attr:`kwargs`." msgstr "" -"Un mapeo ordenado y mutable (:class:`collections.OrderedDict`) de los " -"nombres de los parámetros a los valores de los argumentos. Contiene sólo " -"argumentos explícitamente vinculados. Los cambios en :attr:`arguments` se " -"reflejarán en :attr:`args` y :attr:`kwargs`." +"Un mapeo mutable de los nombres de los parámetros a los valores de los " +"argumentos. Contiene solo argumentos vinculados explícitamente. Los cambios " +"en :attr:`arguments` se reflejarán en :attr:`args` y :attr:`kwargs`." #: ../Doc/library/inspect.rst:828 msgid "" @@ -1382,6 +1381,8 @@ msgid "" ":attr:`arguments` is now of type :class:`dict`. Formerly, it was of type :" "class:`collections.OrderedDict`." msgstr "" +":attr:`arguments` ahora es de tipo :class:`dict`. Anteriormente, era de " +"tipo :class:`collections.OrderedDict`." #: ../Doc/library/inspect.rst:844 msgid "" diff --git a/library/io.po b/library/io.po index 502abf93d4..5444123005 100644 --- a/library/io.po +++ b/library/io.po @@ -232,7 +232,7 @@ msgid "" "arguments may have been modified or inferred from the original call." msgstr "" "Esta función lanza un :ref:`evento de auditoría ` ``open`` con los " -"argumentos ``path``, ``mode`` y ``flags``. Los argumentos``mode`` y " +"argumentos ``path``, ``mode`` y ``flags``. Los argumentos ``mode`` y " "``flags`` pueden haber sido modificados o inferido desde el pedido original." #: ../Doc/library/io.rst:132 @@ -241,7 +241,7 @@ msgid "" "when the intent is to treat the contents as executable code." msgstr "" "Abre el archivo dado con el modo ``'rb'``. Esta función debe ser usado " -"cuando la intención es tratar el contenido como código ejecutible." +"cuando la intención es tratar el contenido como código ejecutable." #: ../Doc/library/io.rst:135 msgid "``path`` should be a :class:`str` and an absolute path." @@ -448,7 +448,7 @@ msgstr "``readinto`` and ``write``" #: ../Doc/library/io.rst:228 msgid "Inherited :class:`IOBase` methods, ``read``, and ``readall``" -msgstr "Heredada :class:`IOBase` methods, ``read``, and ``readall``" +msgstr "Métodos :class:`IOBase` heredados, ``read``, and ``readall``" #: ../Doc/library/io.rst:230 msgid ":class:`BufferedIOBase`" @@ -460,7 +460,7 @@ msgstr "``detach``, ``read``, ``read1``, and ``write``" #: ../Doc/library/io.rst:230 msgid "Inherited :class:`IOBase` methods, ``readinto``, and ``readinto1``" -msgstr "Heredada :class:`IOBase` methods, ``readinto``, and ``readinto1``" +msgstr "Métodos :class:`IOBase` heredados, ``readinto``, and ``readinto1``" #: ../Doc/library/io.rst:232 msgid ":class:`TextIOBase`" @@ -474,7 +474,7 @@ msgstr "``detach``, ``read``, ``readline``, and ``write``" msgid "" "Inherited :class:`IOBase` methods, ``encoding``, ``errors``, and ``newlines``" msgstr "" -"Heredada :class:`IOBase` methods, ``encoding``, ``errors``, and ``newlines``" +"Métodos :class:`IOBase` heredados, ``encoding``, ``errors``, and ``newlines``" #: ../Doc/library/io.rst:239 msgid "I/O Base Classes" @@ -541,7 +541,7 @@ msgid "" "stream is a binary stream (yielding bytes), or a text stream (yielding " "character strings). See :meth:`~IOBase.readline` below." msgstr "" -":class:`IOBase` (y sus subcalsificaciones) apoyan el protocolo iterador, " +":class:`IOBase` (y sus subclasificaciones) apoyan el protocolo iterador, " "significando que un objeto de clase :class:`IOBase` puede ser iterado sobre " "el rendimiento de las líneas en un *stream* de datos. Líneas son definidas " "un poco diferente dependiendo si el *stream* es de tipo binario (produciendo " @@ -578,7 +578,7 @@ msgid "" "As a convenience, it is allowed to call this method more than once; only the " "first call, however, will have an effect." msgstr "" -"Como convenienca, se permite llamar este método más que una vez. Sin " +"Como conveniencia, se permite llamar este método más que una vez. Sin " "embargo, solamente el primer llamado tenderá efecto." #: ../Doc/library/io.rst:290 @@ -1367,8 +1367,8 @@ msgstr "cuando se llama :meth:`flush()`;" msgid "" "when a :meth:`seek()` is requested (for :class:`BufferedRandom` objects);" msgstr "" -"cuando se pide un método :meth:`seek()` (para :class:`BufferedRandom` " -"objects);" +"cuando se pide un método :meth:`seek()` (para objetos :class:" +"`BufferedRandom`);" #: ../Doc/library/io.rst:722 msgid "when the :class:`BufferedWriter` object is closed or destroyed." @@ -1516,7 +1516,7 @@ msgid "" "translated so far. Depending on the implementation and the initial " "constructor flags, this may not be available." msgstr "" -"Una cadena de cracteres, una tupla de cadena de caracteres, o ``None``, " +"Una cadena de caracteres, una tupla de cadena de caracteres, o ``None``, " "indicando las nuevas líneas traducidas hasta ese momento. Dependiendo de la " "implementación y los indicadores iniciales del constructor, esto puede no " "estar disponible." @@ -1758,7 +1758,7 @@ msgstr "" "getpreferredencoding(False)`` en vez de ``locale.getpreferredencoding()``. " "No cambie temporalmente la codificación local usando :func:`locale." "setlocale`, use la codificación local actual en vez del preferido del " -"usaurio." +"usuario." #: ../Doc/library/io.rst:933 #, fuzzy diff --git a/library/ipaddress.po b/library/ipaddress.po index 36eb52fd67..6b55817f7c 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-18 03:11-0300\n" +"PO-Revision-Date: 2021-09-01 06:45-0300\n" "Last-Translator: \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/ipaddress.rst:2 msgid ":mod:`ipaddress` --- IPv4/IPv6 manipulation library" @@ -324,6 +325,15 @@ msgid "" "``'#'`` and the grouping option ``'_'`` are available. ``__format__`` is " "used by ``format``, ``str.format`` and f-strings." msgstr "" +"Retorna una representación en cadena de caracteres de la dirección IP, " +"controlada por una cadena de formato explícito. *fmt* puede ser uno de los " +"siguientes: ``'s'``, la opción predeterminada, equivalente a :func:`str`, " +"``'b'`` para una cadena binaria con relleno de ceros, ``'X'`` o ``'x'`` para " +"una representación hexadecimal en mayúsculas o minúsculas, o ``'n'``, que es " +"equivalente a ``'b'`` para direcciones IPv4 y ``'x'`` para IPv6. Para " +"representaciones binarias y hexadecimales, el especificador de formulario " +"``'#'`` y la opción de agrupación ``'_'`` están disponibles. ``__format__`` " +"es utilizado por ``format``, ``str.format`` y f-strings." #: ../Doc/library/ipaddress.rst:234 msgid "" @@ -362,6 +372,11 @@ msgid "" "``fe80::1234%1`` might identify address ``fe80::1234`` on the first link of " "the node." msgstr "" +"Opcionalmente, la cadena de caracteres también puede tener un ID alcance, " +"expresado con un sufijo ``%scope_id``. Si está presente, el ID de alcance no " +"debe estar vacío y no puede contener ``%``. Consulte :RFC:`4007` para " +"obtener más detalles. Por ejemplo, ``fe80::1234% 1`` podría identificar la " +"dirección ``fe80::1234`` en el primer enlace del nodo." #: ../Doc/library/ipaddress.rst:252 msgid "An integer that fits into 128 bits." @@ -398,7 +413,6 @@ msgstr "" "ceros iniciales y los grupos que consisten completamente de ceros." #: ../Doc/library/ipaddress.rst:275 -#, fuzzy msgid "" "For the following attributes and methods, see the corresponding " "documentation of the :class:`IPv4Address` class:" @@ -406,9 +420,7 @@ msgstr "" "Para los siguientes atributos, véase la documentación correspondiente de la " "clase :class:`IPv4Address`:" -# Esto no debería tener que traducirse #: ../Doc/library/ipaddress.rst:290 -#, fuzzy msgid "is_global" msgstr "is_global" @@ -441,6 +453,10 @@ msgid "" "particular zone of the address's scope that the address belongs to, as a " "string. When no scope zone is specified, this property will be ``None``." msgstr "" +"Para las direcciones con alcance como es definido por :RFC:`4007`, esta " +"propiedad identifica la zona particular del alcance de la dirección a la que " +"pertenece dicha dirección, como una cadena de caracteres. Cuando no se " +"especifica ninguna zona de alcance, esta propiedad será ``None``." #: ../Doc/library/ipaddress.rst:314 msgid "" @@ -449,9 +465,9 @@ msgid "" "embedded IPv4 address. For any other address, this property will be " "``None``." msgstr "" -"Para las direcciones que parecen ser direcciones 6to4 (comenzando con " +"Para las direcciones que parecen ser direcciones 6to4 (comenzando con " "``2002::/16``) según lo definido por :RFC:`3056`, esta propiedad reportará " -"la dirección IPv4 incrustada. Para cualquier otra dirección, esta propiedad " +"la dirección IPv4 incrustada. Para cualquier otra dirección, esta propiedad " "será ``None``." #: ../Doc/library/ipaddress.rst:321 @@ -467,7 +483,6 @@ msgstr "" "otra dirección, esta propiedad será ``None``." #: ../Doc/library/ipaddress.rst:328 -#, fuzzy msgid "" "Refer to the corresponding method documentation in :class:`IPv4Address`." msgstr "" @@ -493,6 +508,8 @@ msgid "" "Note that IPv6 scoped addresses are converted to integers without scope zone " "ID." msgstr "" +"Tenga en cuenta que las direcciones IPv6 con alcance se convierten en " +"números enteros sin ID de zona de alcance." #: ../Doc/library/ipaddress.rst:353 ../Doc/library/ipaddress.rst:737 #: ../Doc/library/ipaddress.rst:873 @@ -514,14 +531,14 @@ msgid "Comparison operators" msgstr "Operadores de comparación" #: ../Doc/library/ipaddress.rst:363 -#, fuzzy msgid "" "Address objects can be compared with the usual set of comparison operators. " "Same IPv6 addresses with different scope zone IDs are not equal. Some " "examples::" msgstr "" "Los objetos de dirección pueden compararse con el conjunto usual de " -"operadores de comparación. Algunos ejemplos:" +"operadores de comparación. Las mismas direcciones IPv6 con diferentes ID de " +"zona de alcance no son iguales. Algunos ejemplos:" #: ../Doc/library/ipaddress.rst:380 msgid "Arithmetic operators" @@ -783,7 +800,6 @@ msgid "Length of the network prefix, in bits." msgstr "Longitud del prefijo de red, en bits." #: ../Doc/library/ipaddress.rst:540 -#, fuzzy msgid "" "Returns an iterator over the usable hosts in the network. The usable hosts " "are all the IP addresses that belong to the network, except the network " @@ -792,11 +808,13 @@ msgid "" "included in the result. Networks with a mask of 32 will return a list " "containing the single host address." msgstr "" -"Retorna un iterador a través de los *hosts* utilizables de la red. Los " +"Retorna un iterador a través de los *hosts* utilizables de la red. Los " "*hosts* utilizables son todas las direcciones IP que pertenecen a la red, " -"excepto la propia dirección de red y la dirección de difusión de red. Para " +"excepto la propia dirección de red y la dirección de difusión de red. Para " "las redes con una longitud de máscara de 31, la dirección de red y la " -"dirección de difusión de red también se incluyen en el resultado." +"dirección de difusión de red también se incluyen en el resultado. Las redes " +"con una máscara de 32 retornarán una lista que contiene la única dirección " +"de host." #: ../Doc/library/ipaddress.rst:558 msgid "" @@ -942,7 +960,6 @@ msgstr "" "para una dirección IPv6." #: ../Doc/library/ipaddress.rst:712 -#, fuzzy msgid "" "Returns an iterator over the usable hosts in the network. The usable hosts " "are all the IP addresses that belong to the network, except the Subnet-" @@ -950,11 +967,12 @@ msgid "" "Router anycast address is also included in the result. Networks with a mask " "of 128 will return a list containing the single host address." msgstr "" -"Retorna un iterador sobre los *hosts* utilizables de la red. Los *hosts* " +"Retorna un iterador sobre los *hosts* utilizables de la red. Los *hosts* " "utilizables son todas las direcciones IP que pertenecen a la red, excepto la " -"dirección *anycast Subnet-Router*. Para las redes con una longitud de " +"dirección *anycast Subnet-Router*. Para las redes con una longitud de " "máscara de 127, la dirección *anycast Subnet-Router* también se incluye en " -"el resultado." +"el resultado. Las redes con una máscara de 128 retornarán una lista que " +"contiene la única dirección de host." #: ../Doc/library/ipaddress.rst:727 msgid "" diff --git a/library/itertools.po b/library/itertools.po index b89d4f39e3..4b07ad78a8 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-10 10:42-0500\n" -"Last-Translator: Julián Pérez (@jcpmmx)\n" +"PO-Revision-Date: 2021-08-04 21:35+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/itertools.rst:2 msgid ":mod:`itertools` --- Functions creating iterators for efficient looping" @@ -121,7 +122,7 @@ msgstr "p" #: ../Doc/library/itertools.rst:41 msgid "p0, p1, ... plast, p0, p1, ..." -msgstr "p0, p1, ... pfinal, p0, p1, ..." +msgstr "p0, p1, ... plast, p0, p1, ..." #: ../Doc/library/itertools.rst:41 msgid "``cycle('ABCD') --> A B C D A B C D ...``" @@ -173,7 +174,7 @@ msgstr "p, q, ..." #: ../Doc/library/itertools.rst:51 ../Doc/library/itertools.rst:52 msgid "p0, p1, ... plast, q0, q1, ..." -msgstr "p0, p1, ... pfinal, q0, q1, ..." +msgstr "p0, p1, ... plast, q0, q1, ..." #: ../Doc/library/itertools.rst:51 msgid "``chain('ABC', 'DEF') --> A B C D E F``" @@ -434,9 +435,8 @@ msgstr "" "Si *func* es definido, debería ser una función de 2 argumentos. Los " "elementos de entrada de *iterable* pueden ser de cualquier tipo que puedan " "ser aceptados como argumentos de *func*. (Por ejemplo, con la operación por " -"defecto –adición, los elementos pueden ser cualquier tipo que sea " -"adicionable, incluyendo :class:`~decimal.Decimal` o :class:`~fractions." -"Fraction`.)" +"defecto –adición, los elementos pueden ser cualquier tipo que sea sumable, " +"incluyendo :class:`~decimal.Decimal` o :class:`~fractions.Fraction`.)" #: ../Doc/library/itertools.rst:107 msgid "" @@ -519,15 +519,14 @@ msgstr "" "entrada." #: ../Doc/library/itertools.rst:202 ../Doc/library/itertools.rst:251 -#, fuzzy msgid "" "The combination tuples are emitted in lexicographic ordering according to " "the order of the input *iterable*. So, if the input *iterable* is sorted, " "the combination tuples will be produced in sorted order." msgstr "" -"Las combinaciones se emiten en orden lexicográfico. De esta manera, si el " -"*iterable* de entrada está ordenado, las tuplas de permutación producidas " -"estarán ordenadas." +"Las tuplas de combinación se emiten en orden lexicográfico según el orden de " +"la entrada *iterable*. Entonces, si la entrada *iterable* está ordenada, las " +"tuplas de combinación se producirán en una secuencia ordenada." #: ../Doc/library/itertools.rst:206 msgid "" @@ -738,13 +737,13 @@ msgstr "" "*start* es diferente a cero, los elementos del iterable son ignorados hasta " "que se llegue a *start*. Después de eso, los elementos son retornados " "consecutivamente a menos que *step* posea un valor tan alto que permita que " -"algunos elementos sean ignordos. Si *stop* es ``None``, la iteración " +"algunos elementos sean ignorados. Si *stop* es ``None``, la iteración " "continúa hasta que el iterador sea consumido (si es que llega a ocurrir); de " "lo contrario, se detiene en la posición especificada. A diferencia de la " "segmentación normal, :func:`islice` no soporta valores negativos para " "*start*, *stop*, o *step*. Puede usarse para extraer campos relacionados de " "estructuras de datos que internamente has sido simplificadas (por ejemplo, " -"un reporte milti-línea puede contener un nombre de campo cada tres líneas). " +"un reporte multilínea puede contener un nombre de campo cada tres líneas). " "Aproximadamente equivalente a::" #: ../Doc/library/itertools.rst:475 @@ -772,15 +771,14 @@ msgstr "" "longitud serán generadas." #: ../Doc/library/itertools.rst:487 -#, fuzzy msgid "" "The permutation tuples are emitted in lexicographic ordering according to " "the order of the input *iterable*. So, if the input *iterable* is sorted, " "the combination tuples will be produced in sorted order." msgstr "" -"Las permutaciones son emitidas en orden lexicográfico. De esta manera, si " -"el *iterable* de entrada esta ordenado, las tuplas de permutación producidas " -"estarán ordenadas." +"Las tuplas de permutación se emiten en orden lexicográfico según el orden de " +"la entrada *iterable*. Entonces, si la entrada *iterable* está ordenada, las " +"tuplas de combinación se producirán en una secuencia ordenada." #: ../Doc/library/itertools.rst:491 msgid "" @@ -861,6 +859,9 @@ msgid "" "keeping pools of values in memory to generate the products. Accordingly, it " "is only useful with finite inputs." msgstr "" +"Antes de que :func:`product` se ejecute, consume completamente los iterables " +"de entrada, manteniendo grupos de valores en la memoria para generar los " +"productos. En consecuencia, solo es útil con entradas finitas." #: ../Doc/library/itertools.rst:572 msgid "" diff --git a/library/json.po b/library/json.po index fd0f22b240..25d22fbe2f 100644 --- a/library/json.po +++ b/library/json.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-16 11:29-0500\n" -"Last-Translator: Adriaan Beiertz \n" +"PO-Revision-Date: 2021-08-30 21:44+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/json.rst:2 msgid ":mod:`json` --- JSON encoder and decoder" @@ -134,9 +135,9 @@ msgid "" "supporting :term:`file-like object`) using this :ref:`conversion table `." msgstr "" -"Serializa *obj* como una secuencia con formato JSON a *fp* (a ``.write()`` -" -"supporting :term:`file-like object`) usando esto :ref:`conversion table `." +"Serializa *obj* como una secuencia con formato JSON a *fp* (una invocación " +"``.write()``- que soporta :term:`file-like object`) usando esto :ref:" +"`conversion table `." #: ../Doc/library/json.rst:148 msgid "" @@ -383,7 +384,7 @@ msgid "" msgstr "" "*parse_constant*, si se especifica, se llamará con una de las siguientes " "cadenas: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``. Esto se puede utilizar " -"para generar una excepción si se encuentran números JSON invalidos." +"para generar una excepción si se encuentran números JSON inválidos." #: ../Doc/library/json.rst:263 msgid "*parse_constant* doesn't get called on 'null', 'true', 'false' anymore." @@ -428,11 +429,8 @@ msgstr "" "esta :ref:`conversion table `." #: ../Doc/library/json.rst:286 -#, fuzzy msgid "The other arguments have the same meaning as in :func:`load`." -msgstr "" -"Los otros argumentos tienen el mismo significado que en :func:`load`, " -"excepto *encoding* que se omite y está en desuso desde Python 3.1." +msgstr "Los otros argumentos tienen el mismo significado que en :func:`load`." #: ../Doc/library/json.rst:291 msgid "" @@ -444,7 +442,7 @@ msgstr "" #: ../Doc/library/json.rst:295 msgid "The keyword argument *encoding* has been removed." -msgstr "" +msgstr "El argumento de palabra llave *encoding* ha sido removido." #: ../Doc/library/json.rst:300 msgid "Encoders and Decoders" @@ -541,7 +539,6 @@ msgstr "" "correspondientes valores ``float``, que está fuera de la especificación JSON." #: ../Doc/library/json.rst:333 -#, fuzzy msgid "" "*object_hook*, if specified, will be called with the result of every JSON " "object decoded and its return value will be used in place of the given :" @@ -551,7 +548,8 @@ msgstr "" "*object_hook*, si se especifica, se llamará con el resultado de cada objeto " "JSON decodificado y su valor de retorno se utilizará en lugar de la :class:" "`dict` dada. Esto se puede usar para proporcionar deserializaciones " -"personalizadas (por ejemplo, para admitir sugerencias de clases JSON-RPC)." +"personalizadas (por ejemplo, para admitir sugerencias de clases `JSON-RPC " +"`_)." #: ../Doc/library/json.rst:338 msgid "" @@ -662,6 +660,10 @@ msgid "" "trying to encode keys that are not :class:`str`, :class:`int`, :class:" "`float` or ``None``. If *skipkeys* is true, such items are simply skipped." msgstr "" +"Si *skipkeys* es falso (lo es por defecto), un :exc:`TypeError` será lanzado " +"cuando se trate de codificar llaves que no sean :class:`str`, :class:`int`, :" +"class:`float` o ``None``. Si *skipkeys* es verdadero, tales elementos son " +"simplemente pasados por alto." #: ../Doc/library/json.rst:433 msgid "" @@ -711,13 +713,12 @@ msgstr "" "exc:`TypeError`)." #: ../Doc/library/json.rst:481 -#, fuzzy msgid "" "For example, to support arbitrary iterators, you could implement :meth:" "`default` like this::" msgstr "" -"Por ejemplo, para admitir iteradores arbitrarios, podría implementar un " -"valor predeterminado como este::" +"Por ejemplo, para admitir iteradores arbitrarios, podría implementar :meth:" +"`default` de esta manera::" #: ../Doc/library/json.rst:497 msgid "" @@ -1072,6 +1073,8 @@ msgid "" "Disable escaping of non-ascii characters, see :func:`json.dumps` for more " "information." msgstr "" +"Deshabilita el escape de caracteres que no sean ascii, véase :func:`json." +"dumps` para más información." #: ../Doc/library/json.rst:741 msgid "Parse every input line as separate JSON object." @@ -1079,7 +1082,7 @@ msgstr "Analiza cada línea de entrada como objeto JSON independiente." #: ../Doc/library/json.rst:747 msgid "Mutually exclusive options for whitespace control." -msgstr "" +msgstr "Opciones mutuamente exclusivas para control de espacios en blanco." #: ../Doc/library/json.rst:753 msgid "Show the help message." diff --git a/library/keyword.po b/library/keyword.po index ffd4ee4f6a..02647342b1 100644 --- a/library/keyword.po +++ b/library/keyword.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-24 15:46-0300\n" -"Last-Translator: Enrique Giménez \n" +"PO-Revision-Date: 2021-08-04 21:36+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/keyword.rst:2 msgid ":mod:`keyword` --- Testing for Python keywords" @@ -53,19 +54,19 @@ msgstr "" "estas se incluirán también." #: ../Doc/library/keyword.rst:29 -#, fuzzy msgid "Return ``True`` if *s* is a Python soft :ref:`keyword `." -msgstr "Retorna ``True`` si *s* es una :ref:`palabra clave ` Python." +msgstr "" +"Retorna ``True`` si *s* es una :ref:`palabra clave ` de Python " +"suave." #: ../Doc/library/keyword.rst:36 -#, fuzzy msgid "" "Sequence containing all the soft :ref:`keywords ` defined for the " "interpreter. If any soft keywords are defined to only be active when " "particular :mod:`__future__` statements are in effect, these will be " "included as well." msgstr "" -"Secuencia que contiene todos las :ref:`palabras clave ` definidos " -"para el intérprete. Si cualquier palabra clave es definida para estar activa " -"sólo cuando las declaraciones particulares :mod:`__future__` están vigentes, " -"estas se incluirán también." +"Secuencia que contiene todos las :ref:`palabras clave ` suaves " +"definidas para el intérprete. Si se define alguna palabra clave blanda para " +"que solo esté activa cuando las declaraciones particulares :mod:`__future__` " +"están en vigor, estas también se incluirán." diff --git a/library/locale.po b/library/locale.po index f0a890dd04..08be471c75 100644 --- a/library/locale.po +++ b/library/locale.po @@ -902,7 +902,7 @@ msgid "" "affected by that category. All other numeric formatting operations are not " "affected." msgstr "" -"Categoría de configuración regional para formateo de numeros. Las " +"Categoría de configuración regional para formateo de números. Las " "funciones :func:`. format`, :func:`atoi`, :func:`atof` y :func:`.str` del " "módulo :mod:`locale` están afectados por esa categoría. Todas las demás " "operaciones de formato numérico no están afectadas." diff --git a/library/logging.handlers.po b/library/logging.handlers.po index 9c4ee9763b..7dc89d20fe 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-28 09:15-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-13 06:24+0200\n" +"Last-Translator: Diego Cristobal Herreros \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/logging.handlers.rst:2 msgid ":mod:`logging.handlers` --- Logging handlers" @@ -140,16 +141,21 @@ msgid "" "String used as the terminator when writing a formatted record to a stream. " "Default value is ``'\\n'``." msgstr "" +"Cadena utilizada como terminador al escribir un registro formateado en un " +"flujo. El valor por defecto es ``'\\n'``." #: ../Doc/library/logging.handlers.rst:78 msgid "" "If you don't want a newline termination, you can set the handler instance's " "``terminator`` attribute to the empty string." msgstr "" +"Si no quieres una terminación de nueva línea, puedes establecer el atributo " +"``terminator`` de la instancia del manejador a la cadena vacía." #: ../Doc/library/logging.handlers.rst:81 msgid "In earlier versions, the terminator was hardcoded as ``'\\n'``." msgstr "" +"En versiones anteriores, el terminador estaba codificado como ``'\\n'``." #: ../Doc/library/logging.handlers.rst:89 msgid "FileHandler" @@ -740,6 +746,8 @@ msgid "" "If *errors* is specified, it's used to determine how encoding errors are " "handled." msgstr "" +"Si se especifica *errors*, se utiliza para determinar cómo se manejan los " +"errores de codificación." #: ../Doc/library/logging.handlers.rst:412 msgid "" @@ -1039,7 +1047,7 @@ msgstr "" "*facility* no se especifica se usara :const:`LOG_USER` . El tipo de socket " "abierto usado depende del argumento *socktype* , que por defecto es :const:" "`socket.SOCK_DGRAM` y por lo tanto abre un socket UDP . Para abrir un socket " -"TCP (para usar con los nuevos *daemons syslog* como Rsyslog) se debe " +"TCP (para usar con los nuevos *daemons syslog* como rsyslog) se debe " "especificar un valor de :const:`socket.SOCK_STREAM`." #: ../Doc/library/logging.handlers.rst:603 @@ -1107,7 +1115,7 @@ msgstr "" "Para habilitar una gestión mas sencilla de los mensajes *syslog* respecto de " "todos esos *daemons* de diferentes comportamientos el agregado del byte NUL " "es configurable a través del uso del atributo de nivel de clase " -"'append_nul'. Este es por defecto '``True`` (preservando el comportamiento " +"``append_nul``. Este es por defecto '``True`` (preservando el comportamiento " "ya existente) pero se puede establecer a 'False' en una instancia " "``SysLogHandler`` como para que esa instancia no añada el terminador NUL." @@ -1219,7 +1227,7 @@ msgstr "LOG_NOTICE" #: ../Doc/library/logging.handlers.rst:679 msgid "``warn`` or ``warning``" -msgstr "``warn`` or ``warning``" +msgstr "``warn`` o ``warning``" #: ../Doc/library/logging.handlers.rst:679 msgid "LOG_WARNING" @@ -1441,7 +1449,7 @@ msgstr "" "el log de eventos. Se crea una entrada de registro apropiada usando este " "nombre. El *dllname* debe dar la ruta completa calificada de un .dll o .exe " "que contiene definiciones de mensaje para conservar en el log. (si no esta " -"especificada, se usara``'win32service.pyd'`` esto es instalado con las " +"especificada, se usara ``'win32service.pyd'`` esto es instalado con las " "extensiones de Win32 y contiene algunas definiciones básicas de mensajes de " "conservación de lugar. Nótese que el uso de estos conservadores de lugar " "harán tu log de eventos extenso, dado que el origen completo del mensaje es " diff --git a/library/logging.po b/library/logging.po index 5c8df5ec08..304f058353 100644 --- a/library/logging.po +++ b/library/logging.po @@ -835,7 +835,7 @@ msgstr "" "Poner en orden los recursos utilizados por el gestor. Esta versión no genera " "salida, pero elimina el controlador de una lista interna de gestores que se " "cierra cuando se llama a :func:`shutdown`. Las subclases deben garantizar " -"que esto se llame desde métodos :meth:`close` sobresescritos." +"que esto se llame desde métodos :meth:`close` sobreescritos." #: ../Doc/library/logging.rst:474 msgid "" diff --git a/library/mailbox.po b/library/mailbox.po index bb46a0fc63..ca8f9447bd 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-18 22:31-0400\n" -"Last-Translator: Rodrigo Poblete \n" +"PO-Revision-Date: 2021-08-04 21:38+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/mailbox.rst:2 msgid ":mod:`mailbox` --- Manipulate mailboxes in various formats" @@ -698,12 +699,11 @@ msgstr "" "`pagina web maildir de Courier `_" #: ../Doc/library/mailbox.rst:430 -#, fuzzy msgid "" "A specification of the format. Describes a common extension for supporting " "folders." msgstr "" -"Otra especificación del formato. Describe una extensión común para soportar " +"Una especificación del formato. Describe una extensión común para admitir " "carpetas." #: ../Doc/library/mailbox.rst:434 @@ -805,9 +805,8 @@ msgstr "" "section=5&topic=mbox>`_" #: ../Doc/library/mailbox.rst:486 -#, fuzzy msgid "A specification of the format, with details on locking." -msgstr "Otra especificación del formato, con detalles sobre el bloqueo." +msgstr "Una especificación del formato, con detalles sobre el bloqueo." #: ../Doc/library/mailbox.rst:489 msgid "" @@ -1227,7 +1226,7 @@ msgid "" "`mmdf man page from tin `_" msgstr "" -"`Página web de mmdf por Tin `_" #: ../Doc/library/mailbox.rst:746 @@ -1607,7 +1606,7 @@ msgstr "subdirectorio \"cur\"" #: ../Doc/library/mailbox.rst:1444 ../Doc/library/mailbox.rst:1459 #: ../Doc/library/mailbox.rst:1475 msgid "O flag" -msgstr "indicador O" +msgstr "flag O" #: ../Doc/library/mailbox.rst:917 ../Doc/library/mailbox.rst:936 #: ../Doc/library/mailbox.rst:1060 ../Doc/library/mailbox.rst:1075 @@ -1615,7 +1614,7 @@ msgstr "indicador O" #: ../Doc/library/mailbox.rst:1188 ../Doc/library/mailbox.rst:1431 #: ../Doc/library/mailbox.rst:1446 ../Doc/library/mailbox.rst:1479 msgid "F flag" -msgstr "indicador F" +msgstr "flag F" #: ../Doc/library/mailbox.rst:919 ../Doc/library/mailbox.rst:921 #: ../Doc/library/mailbox.rst:938 ../Doc/library/mailbox.rst:953 @@ -1624,7 +1623,7 @@ msgstr "indicador F" #: ../Doc/library/mailbox.rst:1298 ../Doc/library/mailbox.rst:1425 #: ../Doc/library/mailbox.rst:1433 ../Doc/library/mailbox.rst:1473 msgid "R flag" -msgstr "indicador R" +msgstr "flag R" #: ../Doc/library/mailbox.rst:919 ../Doc/library/mailbox.rst:1062 #: ../Doc/library/mailbox.rst:1077 ../Doc/library/mailbox.rst:1092 @@ -1633,25 +1632,25 @@ msgstr "indicador R" #: ../Doc/library/mailbox.rst:1448 ../Doc/library/mailbox.rst:1463 #: ../Doc/library/mailbox.rst:1481 msgid "A flag" -msgstr "indicador A" +msgstr "flag A" #: ../Doc/library/mailbox.rst:921 ../Doc/library/mailbox.rst:1054 #: ../Doc/library/mailbox.rst:1425 msgid "S flag" -msgstr "indicador S" +msgstr "flag S" #: ../Doc/library/mailbox.rst:923 ../Doc/library/mailbox.rst:955 #: ../Doc/library/mailbox.rst:1058 ../Doc/library/mailbox.rst:1296 #: ../Doc/library/mailbox.rst:1429 msgid "T flag" -msgstr "indicador T" +msgstr "flag T" #: ../Doc/library/mailbox.rst:923 ../Doc/library/mailbox.rst:1058 #: ../Doc/library/mailbox.rst:1090 ../Doc/library/mailbox.rst:1105 #: ../Doc/library/mailbox.rst:1314 ../Doc/library/mailbox.rst:1429 #: ../Doc/library/mailbox.rst:1461 ../Doc/library/mailbox.rst:1477 msgid "D flag" -msgstr "indicador D" +msgstr "flag D" #: ../Doc/library/mailbox.rst:926 msgid "" @@ -1722,7 +1721,7 @@ msgstr "no hay una etiqueta \"*unseen*\" (invisible)" #: ../Doc/library/mailbox.rst:951 ../Doc/library/mailbox.rst:1300 msgid "P flag" -msgstr "indicador P" +msgstr "flag P" #: ../Doc/library/mailbox.rst:951 msgid "\"forwarded\" or \"resent\" label" @@ -1912,7 +1911,7 @@ msgstr "" #: ../Doc/library/mailbox.rst:1071 ../Doc/library/mailbox.rst:1086 #: ../Doc/library/mailbox.rst:1442 ../Doc/library/mailbox.rst:1457 msgid "R flag and O flag" -msgstr "indicador R e indicador O" +msgstr "flag R y flag O" #: ../Doc/library/mailbox.rst:1080 msgid "" @@ -2174,7 +2173,7 @@ msgstr "" "la siguiente manera: cada encabezado visible con un encabezado original " "correspondiente se establece como el valor del encabezado original, cada " "encabezado visible sin un encabezado original correspondiente se elimina, y " -"cualquiera de : mailheader:`Date`, :mailheader:`From`, :mailheader:`Reply-" +"cualquiera de :mailheader:`Date`, :mailheader:`From`, :mailheader:`Reply-" "To`, :mailheader:`To`, :mailheader:`CC`, y :mailheader:`Subject` que están " "presentes en las cabeceras originales pero no las cabeceras visibles se " "añaden a las cabeceras visibles." diff --git a/library/math.po b/library/math.po index 1916581752..642c5e9c57 100644 --- a/library/math.po +++ b/library/math.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-17 19:44+0200\n" +"PO-Revision-Date: 2021-08-18 09:42+0800\n" "Last-Translator: Francisco Jesús Sevilla García \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/math.rst:2 msgid ":mod:`math` --- Mathematical functions" @@ -136,7 +137,7 @@ msgstr "" #: ../Doc/library/math.rst:74 msgid "Accepting floats with integral values (like ``5.0``) is deprecated." -msgstr "" +msgstr "Aceptar flotantes con valores integrales (como ``5.0``) está obsoleto." #: ../Doc/library/math.rst:80 msgid "" @@ -234,15 +235,19 @@ msgid "" "zero, then the returned value is ``0``. ``gcd()`` without arguments returns " "``0``." msgstr "" +"Retorna el máximo común divisor de los argumentos enteros. Si cualquiera de " +"los argumentos no es cero, entonces el valor retornado es el entero positivo " +"más grande que divide a todos los argumentos. Si todos los argumentos son " +"cero, entonces el valor retornado es ``0``. ``gcd()`` sin argumentos retorna " +"``0``." #: ../Doc/library/math.rst:139 -#, fuzzy msgid "" "Added support for an arbitrary number of arguments. Formerly, only two " "arguments were supported." msgstr "" -"Agregado soporte para puntos n-dimensionales. Anteriormente, solo se admitía " -"el caso bidimensional." +"Agregado soporte para un número arbitrario de argumentos. Anteriormente sólo " +"se soportaba dos argumentos." #: ../Doc/library/math.rst:146 msgid "" @@ -360,6 +365,11 @@ msgid "" "zero, then the returned value is ``0``. ``lcm()`` without arguments returns " "``1``." msgstr "" +"Retorna el mínimo común múltiplo de los argumentos enteros. Si todos los " +"argumentos no son cero, entonces el valor retornado es el entero positivo " +"más pequeño que es un múltiplo de todos los argumentos. Si cualquiera de los " +"argumentos es cero, entonces el valor retornado es ``0``. ``lcm()`` sin " +"argumentos retorna ``1``." #: ../Doc/library/math.rst:222 msgid "" @@ -380,34 +390,35 @@ msgstr "" #: ../Doc/library/math.rst:234 msgid "Return the next floating-point value after *x* towards *y*." msgstr "" +"Retorna el siguiente valor flotante después de *x* en la dirección de *y*." #: ../Doc/library/math.rst:236 msgid "If *x* is equal to *y*, return *y*." -msgstr "" +msgstr "Si *x* es igual a *y*, retorna *y*." #: ../Doc/library/math.rst:238 msgid "Examples:" -msgstr "" +msgstr "Ejemplos:" #: ../Doc/library/math.rst:240 msgid "``math.nextafter(x, math.inf)`` goes up: towards positive infinity." -msgstr "" +msgstr "``math.nextafter(x, math.inf)`` va hacia el infinito positivo." #: ../Doc/library/math.rst:241 msgid "``math.nextafter(x, -math.inf)`` goes down: towards minus infinity." -msgstr "" +msgstr "``math.nextafter(x, -math.inf)`` va hacia el infinito negativo." #: ../Doc/library/math.rst:242 msgid "``math.nextafter(x, 0.0)`` goes towards zero." -msgstr "" +msgstr "``math.nextafter(x, 0.0)`` va hacia cero." #: ../Doc/library/math.rst:243 msgid "``math.nextafter(x, math.copysign(math.inf, x))`` goes away from zero." -msgstr "" +msgstr "``math.nextafter(x, math.copysign(math.inf, x))`` se aleja de cero." #: ../Doc/library/math.rst:245 msgid "See also :func:`math.ulp`." -msgstr "" +msgstr "Ver también :func:`math.ulp`." #: ../Doc/library/math.rst:251 msgid "" @@ -502,19 +513,19 @@ msgstr "" #: ../Doc/library/math.rst:307 msgid "Return the value of the least significant bit of the float *x*:" -msgstr "" +msgstr "Retorna el valor del bit menos significativo del flotante *x*:" #: ../Doc/library/math.rst:309 msgid "If *x* is a NaN (not a number), return *x*." -msgstr "" +msgstr "Si *x* es un NaN (*not a number*), retorna *x*." #: ../Doc/library/math.rst:310 msgid "If *x* is negative, return ``ulp(-x)``." -msgstr "" +msgstr "Si *x* es negativo, retorna ``ulp(-x)``." #: ../Doc/library/math.rst:311 msgid "If *x* is a positive infinity, return *x*." -msgstr "" +msgstr "Si *x* es un infinito positivo, retorna *x*." #: ../Doc/library/math.rst:312 msgid "" @@ -522,6 +533,9 @@ msgid "" "representable float (smaller than the minimum positive *normalized* float, :" "data:`sys.float_info.min `)." msgstr "" +"Si *x* es igual a cero, retorna el flotante representable *desnormalizado* " +"positivo más pequeño (menor que el flotante *normalizado* positivo mínimo, :" +"data:`sys.float_info.min `)." #: ../Doc/library/math.rst:315 msgid "" @@ -529,6 +543,9 @@ msgid "" "value of the least significant bit of *x*, such that the first float smaller " "than *x* is ``x - ulp(x)``." msgstr "" +"Si *x* es igual al flotante representable positivo más pequeño, retorna el " +"bit menos significativo de *x*, de tal manera que el primer flotante menor " +"que *x* es ``x - ulp(x)``." #: ../Doc/library/math.rst:318 msgid "" @@ -536,16 +553,21 @@ msgid "" "significant bit of *x*, such that the first float bigger than *x* is ``x + " "ulp(x)``." msgstr "" +"De lo contrario (*x* es un número finito positivo), retorna el valor del bit " +"menos significativo de *x* , de tal forma que el primer flotante mayor a *x* " +"es ``x + ulp(x)``." #: ../Doc/library/math.rst:322 msgid "ULP stands for \"Unit in the Last Place\"." -msgstr "" +msgstr "ULP significa *Unit in the Last Place* (unidad en el último lugar)." #: ../Doc/library/math.rst:324 msgid "" "See also :func:`math.nextafter` and :data:`sys.float_info.epsilon `." msgstr "" +"Ver también :func:`math.nextafter` y :data:`sys.float_info.epsilon `." #: ../Doc/library/math.rst:330 msgid "" @@ -680,25 +702,28 @@ msgid "Trigonometric functions" msgstr "Funciones trigonométricas" #: ../Doc/library/math.rst:426 -#, fuzzy msgid "" "Return the arc cosine of *x*, in radians. The result is between ``0`` and " "``pi``." -msgstr "Retorna el arcocoseno de *x*, en radianes." +msgstr "" +"Retorna el arcocoseno de *x*, en radianes. El resultado está entre ``0`` y " +"``pi``." #: ../Doc/library/math.rst:432 -#, fuzzy msgid "" "Return the arc sine of *x*, in radians. The result is between ``-pi/2`` and " "``pi/2``." -msgstr "Retorna el arcoseno de *x*, en radianes." +msgstr "" +"Retorna el arcoseno de *x*, en radianes. El resultado está entre ``-pi/2`` y " +"``pi/2``." #: ../Doc/library/math.rst:438 -#, fuzzy msgid "" "Return the arc tangent of *x*, in radians. The result is between ``-pi/2`` " "and ``pi/2``." -msgstr "Retorna la arcotangente de *x*, en radianes." +msgstr "" +"Retorna la arcotangente de *x*, en radianes. El resultado está entre ``-" +"pi/2`` y ``pi/2``." #: ../Doc/library/math.rst:444 msgid "" diff --git a/library/mmap.po b/library/mmap.po index de19a680bf..29dfd695b9 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -11,22 +11,22 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-18 15:06-0500\n" -"Last-Translator: Adolfo Hristo David Roque Gámez \n" +"PO-Revision-Date: 2021-08-04 21:39+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/mmap.rst:2 msgid ":mod:`mmap` --- Memory-mapped file support" msgstr ":mod:`mmap` --- Soporte de archivos mapeados en memoria" #: ../Doc/library/mmap.rst:9 -#, fuzzy msgid "" "Memory-mapped file objects behave like both :class:`bytearray` and like :" "term:`file objects `. You can use mmap objects in most places " @@ -37,15 +37,15 @@ msgid "" "data starting at the current file position, and :meth:`seek` through the " "file to different positions." msgstr "" -"Los objetos de archivos mapeados en memoria se comportan como :class:" -"`bytearray` y :term:`Objetos archivo `. Puedes usar objetos " -"*mmap* en la mayoría de lugares donde se espera :class:`bytearray`; por " -"ejemplo, puedes usar el módulo :mod:`re` para buscar entre un archivo " -"mapeado en memoria. También puedes cambiar un solo byte al hacer " -"``obj[index]==97``, o cambiar una subsecuencia al asignarle una rebanada: " -"``obj[i1:i2] = b'...'``. También puedes leer y escribir datos que empiezan " -"en la posición del archivo actual, y usar :meth:`seek` a través del archivo " -"a diferentes posiciones." +"Los objetos de archivo mapeados en memoria se comportan como :class:" +"`bytearray` y como :term:`objetos de archivo `. Puede usar " +"objetos mmap en la mayoría de los lugares donde se espera :class:" +"`bytearray`; por ejemplo, puede usar el módulo :mod:`re` para buscar en un " +"archivo mapeado en memoria. También puede cambiar un solo byte haciendo " +"``obj[índice] = 97``, o cambiar una subsecuencia asignando a un segmento: " +"``obj[i1: i2] = b'...'``. También puede leer y escribir datos comenzando en " +"la posición actual del archivo, y :meth:`seek` a través del archivo a " +"diferentes posiciones." #: ../Doc/library/mmap.rst:17 msgid "" @@ -399,14 +399,14 @@ msgstr "" "la posición del archivo por 1." #: ../Doc/library/mmap.rst:246 -#, fuzzy msgid "" "Returns a single line, starting at the current file position and up to the " "next newline. The file position is updated to point after the bytes that " "were returned." msgstr "" -"Retorna una sola línea, empezando desde la posición actual del archivo y " -"hasta la siguiente nueva línea." +"Retorna una sola línea, comenzando en la posición actual del archivo y hasta " +"la siguiente nueva línea. La posición del archivo se actualiza para apuntar " +"después de los bytes que se retornaron." #: ../Doc/library/mmap.rst:253 msgid "" diff --git a/library/msvcrt.po b/library/msvcrt.po index 8ae01fe62e..280bcb5993 100644 --- a/library/msvcrt.po +++ b/library/msvcrt.po @@ -193,7 +193,7 @@ msgstr "" "esperará a que se presione :kbd:`Enter`. Si la tecla pulsada era una tecla " "de función especial, esto retornará ``'\\000'`` o ``'xe0'``; la siguiente " "llamada retornará el código de la tecla pulsada. La pulsación de la tecla :" -"kbd:'Control-C' no se puede leer con esta función." +"kbd:`Control-C` no se puede leer con esta función." #: ../Doc/library/msvcrt.rst:116 msgid "Wide char variant of :func:`getch`, returning a Unicode value." diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 50d37bb7cf..9a29606f8f 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-28 22:50+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-24 01:37+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es_ES\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/multiprocessing.rst:2 msgid ":mod:`multiprocessing` --- Process-based parallelism" @@ -34,7 +35,6 @@ msgid "Introduction" msgstr "Introducción" #: ../Doc/library/multiprocessing.rst:14 -#, fuzzy msgid "" ":mod:`multiprocessing` is a package that supports spawning processes using " "an API similar to the :mod:`threading` module. The :mod:`multiprocessing` " @@ -44,14 +44,13 @@ msgid "" "module allows the programmer to fully leverage multiple processors on a " "given machine. It runs on both Unix and Windows." msgstr "" -":mod:`multiprocessing` es un paquete que admite procesos de generación " -"(*spawning*) utilizando una API similar al módulo :mod:`threading`. El " -"paquete :mod:`multiprocessing` ofrece concurrencia tanto local como remota, " -"esquivando el término :term:`Global Interpreter Lock` mediante el uso de " -"subprocesos en lugar de hilos (*threads*). Debido a esto, el módulo :mod:" -"`multiprocessing` le permite al programador aprovechar al máximo múltiples " -"procesadores en una máquina determinada. Se ejecuta tanto en Unix como en " -"Windows." +":mod:`multiprocessing` es un paquete que permite crear procesos (*spawning*) " +"utilizando una API similar al módulo :mod:`threading`. El paquete :mod:" +"`multiprocessing` ofrece concurrencia tanto local como remota, esquivando " +"el :term:`Global Interpreter Lock` mediante el uso de subprocesos en lugar " +"de hilos (*threads*). Debido a esto, el módulo :mod:`multiprocessing` le " +"permite al programador aprovechar al máximo múltiples procesadores en una " +"máquina determinada. Se ejecuta tanto en Unix como en Windows." #: ../Doc/library/multiprocessing.rst:23 msgid "" @@ -127,7 +126,6 @@ msgid "*spawn*" msgstr "Generación (*spawn*)" #: ../Doc/library/multiprocessing.rst:99 -#, fuzzy msgid "" "The parent process starts a fresh python interpreter process. The child " "process will only inherit those resources necessary to run the process " @@ -139,7 +137,7 @@ msgstr "" "El proceso parental inicia un nuevo proceso de intérprete de Python. El " "proceso hijo solo heredará los recursos necesarios para ejecutar los objetos " "del método :meth:`~Process.run`. En particular, no se heredarán los " -"descriptores de archivo innecesarios y los identificadores del proceso " +"descriptores de archivo innecesarios ni identificadores del proceso " "principal. Iniciar un proceso usando este método es bastante lento en " "comparación con el uso de *fork* o *forkserver*." @@ -1306,13 +1304,15 @@ msgstr "" #: ../Doc/library/multiprocessing.rst:884 msgid "Close the queue: release internal resources." -msgstr "" +msgstr "Cierra la cola: libera recursos internos." #: ../Doc/library/multiprocessing.rst:886 msgid "" "A queue must not be used anymore after it is closed. For example, :meth:" "`get`, :meth:`put` and :meth:`empty` methods must no longer be called." msgstr "" +"Una cola no se debe usar más después de ser cerrada. Por ejemplo los " +"métodos :meth:`get`, :meth:`put` y :meth:`empty` no deben ser llamados." #: ../Doc/library/multiprocessing.rst:894 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." @@ -3285,12 +3285,12 @@ msgstr "" "*func* solo se ejecuta en uno de los trabajadores de piscina." #: ../Doc/library/multiprocessing.rst:2177 -#, fuzzy msgid "" "A variant of the :meth:`apply` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." msgstr "" -"Una variante del método :meth:`apply` que retorna un objeto de resultado." +"Una variante del método :meth:`apply` que retorna un objeto :class:" +"`~multiprocessing.pool.AsyncResult`." #: ../Doc/library/multiprocessing.rst:2180 #: ../Doc/library/multiprocessing.rst:2211 @@ -3355,12 +3355,12 @@ msgstr "" "explícita *chunksize* para una mejor eficiencia." #: ../Doc/library/multiprocessing.rst:2208 -#, fuzzy msgid "" "A variant of the :meth:`.map` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." msgstr "" -"Una variante del método :meth:`.map` que como resultado retorna un objeto." +"Una variante del método :meth:`.map` que retorna un objeto :class:" +"`~multiprocessing.pool.AsyncResult`." #: ../Doc/library/multiprocessing.rst:2225 msgid "A lazier version of :meth:`.map`." @@ -3832,36 +3832,34 @@ msgstr "" "donde *hostname* es una cadena de caracteres y *port* es un número entero." #: ../Doc/library/multiprocessing.rst:2568 -#, fuzzy msgid "" "An ``'AF_UNIX'`` address is a string representing a filename on the " "filesystem." msgstr "" -"Una dirección ``'AF_Unix'`` es una cadena que representa un nombre de " +"Una dirección ``'AF_UNIX'`` es una cadena que representa un nombre de " "archivo en el sistema de archivos." #: ../Doc/library/multiprocessing.rst:2571 -#, fuzzy msgid "" "An ``'AF_PIPE'`` address is a string of the form :samp:`r'\\\\\\\\.\\\\pipe\\" "\\{PipeName}'`. To use :func:`Client` to connect to a named pipe on a " "remote computer called *ServerName* one should use an address of the form :" "samp:`r'\\\\\\\\{ServerName}\\\\pipe\\\\{PipeName}'` instead." msgstr "" -":samp:`r'\\\\\\\\.\\\\pipe\\\\{PipeName}'`. Para usar :func:`Client` para " -"conectarse a una tubería (*pipe*) con nombre en un ordenador remoto llamada " -"*ServerName* uno debe usar una dirección del formulario :samp:`r'\\\\\\" -"\\{ServerName}\\\\pipe\\\\{PipeName}'`." +"Una dirección ``'AF_PIPE'`` es una cadena de la forma :samp:`r'\\\\\\\\.\\" +"\\pipe\\\\{PipeName}'`. Para usar :func:`Client` para conectarse a una " +"tubería (*pipe*) con nombre en un ordenador remoto llamada *ServerName* uno " +"debe usar una dirección del formulario :samp:`r'\\\\\\\\{ServerName}\\\\pipe" +"\\\\{PipeName}'`." #: ../Doc/library/multiprocessing.rst:2576 -#, fuzzy msgid "" "Note that any string beginning with two backslashes is assumed by default to " "be an ``'AF_PIPE'`` address rather than an ``'AF_UNIX'`` address." msgstr "" "Tenga en cuenta que cualquier cadena que comience con dos barras inclinadas " "invertidas se asume por defecto como una dirección ``'AF_PIPE'`` en lugar de " -"una dirección ``'AF_Unix'``." +"una dirección ``'AF_UNIX'``." #: ../Doc/library/multiprocessing.rst:2583 msgid "Authentication keys" @@ -4006,6 +4004,10 @@ msgid "" "class:`Pool` that supports all the same method calls but uses a pool of " "worker threads rather than worker processes." msgstr "" +"En particular, la función ``Pool`` ofrecida por :mod:`multiprocessing.dummy` " +"retorna un instancia de :class:`ThreadPool`, la cual es un subclase de :" +"class:`Pool` que soporta todas las mismas llamadas, pero usa un *pool* de " +"hebras trabajadoras en vez de procesos trabajadores." #: ../Doc/library/multiprocessing.rst:2674 msgid "" @@ -4016,20 +4018,28 @@ msgid "" "calling :meth:`~multiprocessing.pool.Pool.close` and :meth:`~multiprocessing." "pool.Pool.terminate` manually." msgstr "" +"Un objeto de *pool* de hebras que controla un *pool* de hebras trabajadoras " +"a las cuales se pueden enviar trabajos. La interfaz de las instancias de :" +"class:`ThreadPool` son totalmente compatibles con las instancias de :class:" +"`Pool`, y sus recursos también deben ser debidamente administrador, ya sea " +"usando el *pool* como un gestor de contexto, o llamando a :meth:" +"`~multiprocessing.pool.Pool.close` y :meth:`~multiprocessing.pool.Pool." +"terminate` manualmente." #: ../Doc/library/multiprocessing.rst:2681 -#, fuzzy msgid "" "*processes* is the number of worker threads to use. If *processes* is " "``None`` then the number returned by :func:`os.cpu_count` is used." msgstr "" -"*processes* es el número de procesos de trabajo a utilizar. Si *processes* " -"es ``None`` , se utiliza el número retornado por :func:`os.cpu_count`." +"*processes* es el número de hebras de trabajo a utilizar. Si *processes* es " +"``None`` , se utiliza el número retornado por :func:`os.cpu_count`." #: ../Doc/library/multiprocessing.rst:2687 msgid "" "Unlike :class:`Pool`, *maxtasksperchild* and *context* cannot be provided." msgstr "" +"A diferencia de :class:`Pool`, *maxtasksperchild* and *context* no se pueden " +"entregar." #: ../Doc/library/multiprocessing.rst:2691 msgid "" @@ -4040,6 +4050,12 @@ msgid "" "for representing the status of asynchronous jobs, :class:`AsyncResult`, that " "is not understood by any other libraries." msgstr "" +"Un :class:`ThreadPool` comparte la misma interfaz que :class:`Pool`, la cual " +"está diseñada alrededor de un *pool* de procesos, y precede la introducción " +"del módulo :class:`concurrent.futures`. Como tal, hereda algunas operaciones " +"que no tienen sentido para un *pool* basado en hebras, y tiene su propio " +"tipo para representar el estado de trabajos asíncronos, :class:" +"`AsyncResult`, el cual no es entendido por otras librerías." #: ../Doc/library/multiprocessing.rst:2698 msgid "" @@ -4049,6 +4065,11 @@ msgid "" "instances that are compatible with many other libraries, including :mod:" "`asyncio`." msgstr "" +"Los usuarios deberían por lo general preferir usar :class:`concurrent." +"futures.ThreadPoolExecutor`, el cual tiene una interfaz más simple que fue " +"diseñada alrededor de hebras desde un principio, y que retorna instancias " +"de :class:`concurrent.futures.Future`, las que son compatibles con muchas " +"más librerías, incluyendo :mod:`asyncio`." #: ../Doc/library/multiprocessing.rst:2708 msgid "Programming guidelines" diff --git a/library/nntplib.po b/library/nntplib.po index 2f384a761a..42f27a5493 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-11-26 08:46-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 21:40+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/nntplib.rst:2 msgid ":mod:`nntplib` --- NNTP protocol client" @@ -30,7 +31,6 @@ msgid "**Source code:** :source:`Lib/nntplib.py`" msgstr "**Código fuente:** :source:`Lib/nntplib.py`" #: ../Doc/library/nntplib.rst:15 -#, fuzzy msgid "" "This module defines the class :class:`NNTP` which implements the client side " "of the Network News Transfer Protocol. It can be used to implement a news " @@ -38,10 +38,10 @@ msgid "" "`3977` as well as the older :rfc:`977` and :rfc:`2980`." msgstr "" "Este módulo define la clase :class:`NNTP` que implementa el lado del cliente " -"del protocolo para la transferencia de noticias en red. Se puede utilizar " -"para implementar un lector o publicador de noticias, o procesadores de " -"noticias automatizados. Es compatible con :rfc:`3977`, así como con el " -"anterior :rfc:`977` y :rfc:`2980`." +"del Protocolo de transferencia de noticias por red. Se puede utilizar para " +"implementar un lector o póster de noticias, o procesadores de noticias " +"automatizados. Es compatible con :rfc:`3977` así como con los antiguos :rfc:" +"`977` y :rfc:`2980`." #: ../Doc/library/nntplib.rst:20 msgid "" @@ -137,6 +137,8 @@ msgid "" "If the *timeout* parameter is set to be zero, it will raise a :class:" "`ValueError` to prevent the creation of a non-blocking socket." msgstr "" +"Si el parámetro *timeout* se establece en cero, lanzará un :class:" +"`ValueError` para evitar la creación de un socket sin bloqueo." #: ../Doc/library/nntplib.rst:102 msgid "" diff --git a/library/numbers.po b/library/numbers.po index 71ff1ddc6d..8c41d7a37e 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-12-20 19:28-0300\n" +"PO-Revision-Date: 2021-08-04 21:42+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Jhonatan Barrera \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/numbers.rst:2 msgid ":mod:`numbers` --- Numeric abstract base classes" @@ -27,9 +27,7 @@ msgstr ":mod:`numbers` --- Clase base abstracta numérica" msgid "**Source code:** :source:`Lib/numbers.py`" msgstr "**Código fuente:** :source:`Lib/numbers.py`" -# revisar como usamos "abstract base classes" en el glosario #: ../Doc/library/numbers.rst:11 -#, fuzzy msgid "" "The :mod:`numbers` module (:pep:`3141`) defines a hierarchy of numeric :term:" "`abstract base classes ` which progressively define " @@ -49,9 +47,7 @@ msgstr "" "La raíz de la jerarquía numérica. Si desea validar si un argumento *x* es un " "número, sin importar su tipo, use ``isinstance(x, Number)``." -# La verdad no se si sea buena esta traducción #: ../Doc/library/numbers.rst:23 -#, fuzzy msgid "The numeric tower" msgstr "La torre numérica" @@ -111,17 +107,15 @@ msgstr "" "*Real* también proporciona valores predeterminados para :func:`complex`, :" "attr:`~Complex.real`, :attr:`~Complex.imag`, y :meth:`~Complex.conjugate`." -# Se me hace super rara toda la cadena. Agrego "Subtypes" como "Hereda" #: ../Doc/library/numbers.rst:61 -#, fuzzy msgid "" "Subtypes :class:`Real` and adds :attr:`~Rational.numerator` and :attr:" "`~Rational.denominator` properties, which should be in lowest terms. With " "these, it provides a default for :func:`float`." msgstr "" -"Hereda de :class:`Real` y agrega las propiedades :attr:`~Rational.numerator` " -"y :attr:`~Rational.denominator`, que deberían estar en los términos más " -"bajos. Con esto, se proporciona un valor predeterminado a :func:`float`." +"Subtipos :class:`Real` y agrega :attr:`~Rational.numerator` y :attr:" +"`~Rational.denominator` propiedades, que deben estar en los términos más " +"bajos. Con estos, proporciona un valor predeterminado para :func:`float`." #: ../Doc/library/numbers.rst:68 ../Doc/library/numbers.rst:72 msgid "Abstract." @@ -144,19 +138,17 @@ msgstr "" msgid "Notes for type implementors" msgstr "Notas para implementadores de tipos" -# Por aca tengo problemas con esta fracción de la cadena: Implementors should be careful to make equal numbers equal and hash them to the same values #: ../Doc/library/numbers.rst:86 -#, fuzzy msgid "" "Implementors should be careful to make equal numbers equal and hash them to " "the same values. This may be subtle if there are two different extensions of " "the real numbers. For example, :class:`fractions.Fraction` implements :func:" "`hash` as follows::" msgstr "" -"Los implementadores deben tener cuidado de hacer que números iguales sean " -"iguales y hacer *hash* con los mismos valores. Esto puede ser sutil si hay " -"dos extensiones diferentes de los números reales. Por ejemplo: :class:" -"`fractions.Fraction` implementa :func:`hash` de la siguiente manera::" +"Los implementadores deben tener cuidado de igualar números iguales y aplicar " +"un hash a los mismos valores. Esto puede ser sutil si hay dos extensiones " +"diferentes de los números reales. Por ejemplo, :class:`fractions.Fraction` " +"implementa :func:`hash` de la siguiente manera::" #: ../Doc/library/numbers.rst:105 msgid "Adding More Numeric ABCs" diff --git a/library/optparse.po b/library/optparse.po index 253a503fad..fb3308e3b6 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-23 13:41+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-04 21:42+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/optparse.rst:2 msgid ":mod:`optparse` --- Parser for command line options" @@ -93,9 +94,8 @@ msgstr "" "siguientes líneas de comandos son todas equivalentes al ejemplo previo::" #: ../Doc/library/optparse.rst:58 -#, fuzzy msgid "Additionally, users can run one of the following ::" -msgstr "Además, los usuarios pueden ejecutar una de estas líneas:" +msgstr "Además, los usuarios pueden ejecutar uno de los siguientes::" #: ../Doc/library/optparse.rst:63 msgid "" @@ -2185,7 +2185,7 @@ msgstr "" #: ../Doc/library/optparse.rst:1328 msgid "where the input parameters are" -msgstr "donde los parámetros de entrada son:" +msgstr "donde los parámetros de entrada son" #: ../Doc/library/optparse.rst:1331 ../Doc/library/optparse.rst:1345 #: ../Doc/library/optparse.rst:1664 @@ -2213,7 +2213,7 @@ msgstr "" #: ../Doc/library/optparse.rst:1338 msgid "and the return values are" -msgstr "y los valores de retorno son:" +msgstr "y los valores de retorno son" #: ../Doc/library/optparse.rst:1342 msgid "``options``" diff --git a/library/os.po b/library/os.po index 7126c40c9d..f0a1a2f9f1 100644 --- a/library/os.po +++ b/library/os.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-20 20:48+0200\n" +"PO-Revision-Date: 2021-08-19 21:45-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/os.rst:2 msgid ":mod:`os` --- Miscellaneous operating system interfaces" @@ -274,15 +275,14 @@ msgstr "" "modificando directamente a ``os.environ``." #: ../Doc/library/os.rst:114 -#, fuzzy msgid "" "This mapping may be used to modify the environment as well as query the " "environment. :func:`putenv` will be called automatically when the mapping " "is modified." msgstr "" -"Si la plataforma soporta la función :func:`putenv`, este mapeo se puede usar " -"para modificar el entorno como también para consultarlo. La función :func:" -"`putenv` será llamada automáticamente cuando este mapeo sea modificado." +"Este mapeo puede ser usado para modificar el entorno y también para " +"consultarlo. :func:`putenv` será llamado automáticamente cuando el mapeo sea " +"modificado." #: ../Doc/library/os.rst:118 msgid "" @@ -318,11 +318,17 @@ msgid "" "environ``, and when one of the :meth:`pop` or :meth:`clear` methods is " "called." msgstr "" +"Puedes eliminar elementos en este mapeo para remover variables de entorno. :" +"func:`unsetenv` va a ser llamado automáticamente cuando el elemento es " +"eliminado de ``os.environ``, y cuando uno de los métodos :meth:`pop` o :meth:" +"`clear` son llamados." #: ../Doc/library/os.rst:138 ../Doc/library/os.rst:154 msgid "" "Updated to support :pep:`584`'s merge (``|``) and update (``|=``) operators." msgstr "" +"Actualizado para soportar los operadores merge (``|``) y update (``|=``) de :" +"pep:`584`'s." #: ../Doc/library/os.rst:144 msgid "" @@ -486,7 +492,7 @@ msgid "" "the \"set id\" bit on the file being executed in the current process." msgstr "" "Retorna el *id* del grupo (*gid*) efectivo correspondiente al proceso que se " -"está ejecuntando. Esto corresponde al bit de *\"set id\"* en el archivo que " +"está ejecutando. Esto corresponde al bit de *\"set id\"* en el archivo que " "se está ejecutando en el proceso actual." #: ../Doc/library/os.rst:271 @@ -508,7 +514,7 @@ msgid "" "from the password record for *user*." msgstr "" "Retorna la lista de *ids* de grupos al que el usuario pertenece. Si el grupo " -"*group* no está en la lista, se inlcuirá; típicamente *group* se especifica " +"*group* no está en la lista, se incluirá; típicamente *group* se especifica " "como en el campo *ID* de grupo del registro de claves del usuario." #: ../Doc/library/os.rst:298 @@ -678,16 +684,19 @@ msgid "" "don't update ``os.environ``, so it is actually preferable to assign to items " "of ``os.environ``." msgstr "" +"La asignación a elementos en ``os.environ`` es automáticamente traducida en " +"llamadas correspondientes a :func:`putenv`; sin embardo, llamadas a :func:" +"`putenv` no actualizan ``os.environ``, así que es preferible asignar a " +"elementos de ``os.environ``." #: ../Doc/library/os.rst:451 -#, fuzzy msgid "" "On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may " "cause memory leaks. Refer to the system documentation for :c:func:`putenv`." msgstr "" -"En algunas plataformas, como FreeBSD y Mac OS X, establece ``environ`` " -"pueden generar pérdidas de memoria. Hay que referirse a la documentación del " -"sistema para la función :c:func:`putenv`." +"En algunas plataformas, como FreeBSD y Mac OS X, establecer ``environ`` " +"pueden generar fugas de memoria. Referirse a la documentación para :c:func:" +"`putenv`." #: ../Doc/library/os.rst:454 msgid "" @@ -698,9 +707,8 @@ msgstr "" "``key``, ``value``." #: ../Doc/library/os.rst:456 -#, fuzzy msgid "The function is now always available." -msgstr "Esta función no está disponible en MacOS." +msgstr "Esta función actualmente siempre esta disponible." #: ../Doc/library/os.rst:462 msgid "Set the current process's effective group id." @@ -922,6 +930,10 @@ msgid "" "don't update ``os.environ``, so it is actually preferable to delete items of " "``os.environ``." msgstr "" +"La eliminación de elementos en ``os.environ`` es automáticamente traducida a " +"llamadas correspondiente a :func:`unsetenv`; sin embardo, llamadas a :func:" +"`unsetenv` no actualizan ``os.environ``, así que es realmente preferible " +"eliminar elementos de ``os.environ``." #: ../Doc/library/os.rst:651 msgid "" @@ -932,9 +944,10 @@ msgstr "" "``key``." #: ../Doc/library/os.rst:653 -#, fuzzy msgid "The function is now always available and is also available on Windows." -msgstr "Estas funciones están disponibles solo en Linux." +msgstr "" +"Estas funciones se encuentra ahora siempre disponible y también esta " +"disponible en Windows" #: ../Doc/library/os.rst:660 msgid "File Object Creation" @@ -1292,7 +1305,7 @@ msgid "" "Return ``True`` if the file descriptor *fd* is open and connected to a tty(-" "like) device, else ``False``." msgstr "" -"retorna ``True`` si el descriptor de archivo *fd* está abierto y conectado a " +"Retorna ``True`` si el descriptor de archivo *fd* está abierto y conectado a " "un dispositivo tipo tty, de lo contrario, ``False``." #: ../Doc/library/os.rst:894 @@ -1635,15 +1648,14 @@ msgid "Combine the functionality of :func:`os.readv` and :func:`os.pread`." msgstr "Combina la funcionalidad de :func:`os.readv` y :func:`os.pread`." #: ../Doc/library/os.rst:1156 -#, fuzzy msgid "" ":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " "newer, OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires Linux " "4.6 or newer." msgstr "" ":ref:`Disponibilidad `: Linux 2.6.30 y posterior, FreeBSD 6.0 " -"y posterior, OpenBSD 2.7 y posterior. El uso de flags requiere Linux 4.6 o " -"posterior." +"y posterior, OpenBSD 2.7 y posterior, AIX 7.1 y posterior. El uso de flags " +"requiere Linux 4.6 o posterior." #: ../Doc/library/os.rst:1162 msgid "" @@ -1734,15 +1746,14 @@ msgid "Combine the functionality of :func:`os.writev` and :func:`os.pwrite`." msgstr "Combina la funcionalidad de :func:`os.writev` y :func:`os.pwrite`." #: ../Doc/library/os.rst:1225 -#, fuzzy msgid "" ":ref:`Availability `: Linux 2.6.30 and newer, FreeBSD 6.0 and " "newer, OpenBSD 2.7 and newer, AIX 7.1 and newer. Using flags requires Linux " "4.7 or newer." msgstr "" ":ref:`Disponibilidad `: Linux 2.6.30 y posterior, FreeBSD 6.0 " -"y posterior, OpenBSD 2.7 y posterior. El uso de flags requiere Linux 4.7 o " -"posterior." +"y posterior, OpenBSD 2.7 y posterior, AIX 7.1 y posterior. El uso de flags " +"requiere Linux 4.7 o posterior." #: ../Doc/library/os.rst:1231 msgid "" @@ -1785,15 +1796,14 @@ msgstr "" "métodos :meth:`~file.read` o :meth:`~file.readline`." #: ../Doc/library/os.rst:1273 -#, fuzzy msgid "" "Copy *count* bytes from file descriptor *in_fd* to file descriptor *out_fd* " "starting at *offset*. Return the number of bytes sent. When EOF is reached " "return ``0``." msgstr "" -"Copia *count* bytes del descriptor de archivo *in* al descriptor de archivo " -"*out* comenzando en *offset*. Retorna el número de bytes enviados. Cuando se " -"alcanza EOF, retorna 0." +"Copia *count* bytes del descriptor de archivo *in_fd* al descriptor de " +"archivo *out_fd* comenzando en *offset*. Retorna el número de bytes " +"enviados. Cuando se alcanza EOF, retorna ``0``." #: ../Doc/library/os.rst:1277 msgid "" @@ -1804,16 +1814,14 @@ msgstr "" "que definen :func:`sendfile`." #: ../Doc/library/os.rst:1280 -#, fuzzy msgid "" "On Linux, if *offset* is given as ``None``, the bytes are read from the " "current position of *in_fd* and the position of *in_fd* is updated." msgstr "" -"En Linux, si *offset* se da como ``None``, los bytes se leen desde la " -"posición actual de *in* y se actualiza la posición de *in*." +"En Linux, si *offset* se entrega como ``None``, los bytes se leen desde la " +"posición actual de *in_fd* y la posición de *in_fd* se actualiza." #: ../Doc/library/os.rst:1283 -#, fuzzy msgid "" "The second case may be used on Mac OS X and FreeBSD where *headers* and " "*trailers* are arbitrary sequences of buffers that are written before and " @@ -1822,27 +1830,25 @@ msgid "" msgstr "" "El segundo caso puede usarse en Mac OS X y FreeBSD donde *headers* y " "*trailers* son secuencias arbitrarias de búferes que se escriben antes y " -"después de que se escriben los datos de *in*. Retorna lo mismo que el primer " -"caso." +"después de que los datos de *in_fd* sean escritos. Retorna lo mismo que el " +"primer caso." #: ../Doc/library/os.rst:1287 -#, fuzzy msgid "" "On Mac OS X and FreeBSD, a value of ``0`` for *count* specifies to send " "until the end of *in_fd* is reached." msgstr "" "En Mac OS X y FreeBSD, un valor de 0 para *count* especifica enviar hasta el " -"final de *in*." +"que final de *in_fd* sea alcanzado." #: ../Doc/library/os.rst:1290 -#, fuzzy msgid "" "All platforms support sockets as *out_fd* file descriptor, and some " "platforms allow other types (e.g. regular file, pipe) as well." msgstr "" -"Todas las plataformas admiten sockets como descriptor de archivo *out*, y " +"Todas las plataformas admiten sockets como descriptor de archivo *out_fd*, y " "algunas plataformas también permiten otros tipos (por ejemplo, archivo " -"normal, tuberías)." +"regular, tuberías)." #: ../Doc/library/os.rst:1293 msgid "" @@ -1862,7 +1868,7 @@ msgstr "" #: ../Doc/library/os.rst:1305 msgid "Parameters *out* and *in* was renamed to *out_fd* and *in_fd*." -msgstr "" +msgstr "Parámetros *out* e *in* han sido renombrados a *out_fd* e *in_fd*." #: ../Doc/library/os.rst:1311 msgid "" @@ -2630,7 +2636,6 @@ msgid "Accepts a :term:`path-like object` for *src* and *dst*." msgstr "Acepta un :term:`path-like object` para *src* y *dst*." #: ../Doc/library/os.rst:1837 -#, fuzzy msgid "" "Return a list containing the names of the entries in the directory given by " "*path*. The list is in arbitrary order, and does not include the special " @@ -2641,7 +2646,9 @@ msgstr "" "Retorna una lista que contiene los nombres de las entradas en el directorio " "dado por *path*. La lista está en un orden arbitrario y no incluye las " "entradas especiales ``'.'`` Y ``'..'`` incluso si están presentes en el " -"directorio." +"directorio. Si un archivo es removido de o añadido al directorio mientras se " +"llama a esta función, no se especifica si el nombre para el archivo será " +"incluido." #: ../Doc/library/os.rst:1843 msgid "" @@ -3211,7 +3218,6 @@ msgid "The *dir_fd* parameter." msgstr "El parámetro *dir_fd*." #: ../Doc/library/os.rst:2244 -#, fuzzy msgid "" "Return an iterator of :class:`os.DirEntry` objects corresponding to the " "entries in the directory given by *path*. The entries are yielded in " @@ -3222,7 +3228,9 @@ msgid "" msgstr "" "Retorna un iterador de objetos :class:`os.DirEntry` correspondientes a las " "entradas en el directorio dado por *path*. Las entradas se entregan en orden " -"arbitrario, y las entradas especiales ``'.'`` Y ``'..'`` no están incluidas." +"arbitrario, y las entradas especiales ``'.'`` Y ``'..'`` no están incluidas. " +"Si un archivo es removido de o añadido al directorio después de crear el " +"iterador, no se especifica si una entrada para el archivo será incluido." #: ../Doc/library/os.rst:2251 msgid "" @@ -3822,7 +3830,7 @@ msgstr "el momento del cambio de metadatos más reciente en Unix," #: ../Doc/library/os.rst:2582 msgid "the time of creation on Windows, expressed in seconds." -msgstr "El tiempo de creación en Windows, expresado en segundos." +msgstr "el tiempo de creación en Windows, expresado en segundos." #: ../Doc/library/os.rst:2586 msgid "Time of most recent access expressed in nanoseconds as an integer." @@ -3841,7 +3849,7 @@ msgstr "" msgid "" "the time of creation on Windows, expressed in nanoseconds as an integer." msgstr "" -"El tiempo de creación en Windows, expresado en nanosegundos como un entero." +"el tiempo de creación en Windows, expresado en nanosegundos como un entero." #: ../Doc/library/os.rst:2603 msgid "" @@ -3904,7 +3912,7 @@ msgstr "" #: ../Doc/library/os.rst:2634 msgid "Type of device if an inode device." -msgstr "Tipo de dispositivo si es un dispositivo inode." +msgstr "Tipo de dispositivo si es un dispositivo inodo." #: ../Doc/library/os.rst:2638 msgid "User defined flags for file." @@ -4412,7 +4420,7 @@ msgstr "" "resolución con la que su sistema operativo registre los tiempos de acceso y " "modificación; ver :func:`~os.stat`. La mejor manera de preservar los tiempos " "exactos es usar los campos *st_atime_ns* y *st_mtime_ns* del objeto de " -"resultado :func:`os.stat` con el parámetro *ns* para` utime`." +"resultado :func:`os.stat` con el parámetro *ns* para `utime`." #: ../Doc/library/os.rst:2973 msgid "" @@ -4443,7 +4451,6 @@ msgstr "" "tupla de 3 tuplas ``(dirpath, dirnames, filenames)``." #: ../Doc/library/os.rst:2994 -#, fuzzy msgid "" "*dirpath* is a string, the path to the directory. *dirnames* is a list of " "the names of the subdirectories in *dirpath* (excluding ``'.'`` and " @@ -4458,10 +4465,13 @@ msgstr "" "*dirpath* es una cadena, la ruta al directorio. *dirnames* es una lista de " "los nombres de los subdirectorios en *dirpath* (excluyendo ``'.'`` y " "``'..'``). *filenames* es una lista de los nombres de los archivos que no " -"son de directorio en *dirpath*. Tenga en cuenta que los nombres en las " +"son un directorio en *dirpath*. Tenga en cuenta que los nombres en las " "listas no contienen componentes de ruta. Para obtener una ruta completa (que " "comienza con *top*) a un archivo o directorio en *dirpath*, haga ``os.path." -"join(dirpath, name)``." +"join(dirpath, name)``. El hecho de que las lista esta ordenada o no depende " +"del sistema de archivos. Si un archivo es removido de o agregado al " +"directorio *dirpath* mientras se generan las listas, no se especifica si el " +"nombre para el archivo será incluido." #: ../Doc/library/os.rst:3004 msgid "" @@ -4574,13 +4584,12 @@ msgstr "" "permite eliminar un directorio antes de que el directorio esté vacío::" #: ../Doc/library/os.rst:3071 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``os.walk`` with arguments " "``top``, ``topdown``, ``onerror``, ``followlinks``." msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.spawn`` con argumentos " -"``mode``, ``path``, ``args``, ``env``." +"``top``, ``topdown``, ``onerror``, ``followlinks``." #: ../Doc/library/os.rst:3073 msgid "" @@ -4639,13 +4648,12 @@ msgstr "" "directorio esté vacío::" #: ../Doc/library/os.rst:3132 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``os.fwalk`` with arguments " "``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.chown`` con argumentos " -"``path``, ``uid``, ``gid``, ``dir_fd``." +"``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." #: ../Doc/library/os.rst:3141 msgid "Added support for :class:`bytes` paths." @@ -5329,15 +5337,19 @@ msgid "" "*flags* argument is provided for future extensions; no flag values are " "currently defined." msgstr "" +"Retorna un descriptor de archivo referente al *pid* del proceso. Este " +"descriptor puede ser usado para realizar gestión de procesos sin necesidad " +"de señales y carreras. El argumento *flags* es proporcionado para " +"extensiones futuras; ningún valor se encuentra definido en las banderas " +"actualmente." #: ../Doc/library/os.rst:3644 msgid "See the :manpage:`pidfd_open(2)` man page for more details." -msgstr "" +msgstr "Ver la página manual de :manpage:`pidfd_open(2)` para mas detalles." #: ../Doc/library/os.rst:3646 -#, fuzzy msgid ":ref:`Availability `: Linux 5.3+" -msgstr ":ref:`Disponibilidad `: Unix." +msgstr ":ref:`Disponibilidad `: Linux 5.3+" #: ../Doc/library/os.rst:3652 msgid "" @@ -5380,7 +5392,7 @@ msgstr "" "de retorno del proceso desplazado a la izquierda en un byte. Si el código de " "retorno es negativo, el proceso fue terminado por la señal dada por el valor " "negado del código de retorno. (Por ejemplo, el valor de retorno podría ser " -"`` - signal.SIGKILL`` si se eliminó el subproceso). En los sistemas Windows, " +"``- signal.SIGKILL`` si se eliminó el subproceso). En los sistemas Windows, " "el valor de retorno contiene el código de retorno entero firmado del proceso " "secundario." @@ -5390,6 +5402,10 @@ msgid "" "method result (exit status) into an exit code if it is not ``None``. On " "Windows, the ``close`` method result is directly the exit code (or ``None``)." msgstr "" +"En Unix, :func:`waitstatus_to_exitcode` puede ser usado para convertir el " +"resultado del método ``close`` (estado de salida) en un código de salida si " +"es que no es ``None``. En Windows, el resultado del método ``close`` es " +"directamente el código de salida (o ``None``)." #: ../Doc/library/os.rst:3682 msgid "" @@ -5423,7 +5439,6 @@ msgstr "" "`execve`." #: ../Doc/library/os.rst:3698 -#, fuzzy msgid "" "The *path* parameter is the path to the executable file. The *path* should " "contain a directory. Use :func:`posix_spawnp` to pass an executable file " @@ -5964,6 +5979,9 @@ msgid "" "(exit status) into an exit code. On Windows, the result is directly the exit " "code." msgstr "" +"En Unix, :func:`waitstatus_to_exitcode` puede ser usado para convertir el " +"resultado (estado de salida) en un código de salida. En Windows, el " +"resultado es directamente el código de salida." #: ../Doc/library/os.rst:3989 msgid "" @@ -6012,7 +6030,7 @@ msgid "" msgstr "" "Por compatibilidad con versiones anteriores, este objeto también se comporta " "como una tupla que contiene :attr:`user`, :attr:`system`, :attr:" -"`children_user`, :attr:`children_system`, y :attr:`elapsed` en ese orden" +"`children_user`, :attr:`children_system`, y :attr:`elapsed` en ese orden." #: ../Doc/library/os.rst:4009 msgid "" @@ -6047,15 +6065,18 @@ msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exit code." msgstr "" +":func:`waitstatus_to_exitcode` puede ser usado para convertir el estado de " +"salida en el código de salida." #: ../Doc/library/os.rst:4036 msgid "" ":func:`waitpid` can be used to wait for the completion of a specific child " "process and has more options." msgstr "" +":func:`waitpid` puede ser usado para esperar a la terminación de algún " +"proceso hijo en específico y tiene más opciones." #: ../Doc/library/os.rst:4041 -#, fuzzy msgid "" "Wait for the completion of one or more child processes. *idtype* can be :" "data:`P_PID`, :data:`P_PGID`, :data:`P_ALL`, or :data:`P_PIDFD` on Linux. " @@ -6068,14 +6089,14 @@ msgid "" "`WNOHANG` is specified and there are no children in a waitable state." msgstr "" "Espere la finalización de uno o más procesos secundarios. *idtype* puede " -"ser :data:`P_PID`, :data:`P_PGID` o :data:`P_ALL`. *id* especifica el pid " -"para esperar. *options* se construye a partir de OR de uno o más de :data:" -"`WEXITED`, :data:`WSTOPPED` o :data:`WCONTINUED` y adicionalmente se puede " -"ORing con :data:`WNOHANG` o :data:`WNOWAIT`. El valor de retorno es un " -"objeto que representa los datos contenidos en la estructura :c:type:" -"`siginfo_t`, a saber: :attr:`si_pid`, :attr:`si_uid`, :attr:`si_signo`, :" -"attr:`si_status`, :attr:`si_code` o ``None`` if :data:`WNOHANG` está " -"especificado y no hay hijos en un estado de espera." +"ser :data:`P_PID`, :data:`P_PGID`, :data:`P_ALL` o :data:`P_PIDFD` en Linux. " +"*id* especifica el pid para esperar. *options* se construye a partir de " +"ORing de uno o más de :data:`WEXITED`, :data:`WSTOPPED` o :data:`WCONTINUED` " +"y adicionalmente se puede ORed con :data:`WNOHANG` o :data:`WNOWAIT`. El " +"valor de retorno es un objeto que representa los datos contenidos en la " +"estructura :c:type:`siginfo_t`, a saber: :attr:`si_pid`, :attr:`si_uid`, :" +"attr:`si_signo`, :attr:`si_status`, :attr:`si_code` o ``None`` si :data:" +"`WNOHANG` está especificado y no hay hijos en un estado de espera." #: ../Doc/library/os.rst:4061 msgid "" @@ -6090,11 +6111,12 @@ msgid "" "This is a Linux-specific *idtype* that indicates that *id* is a file " "descriptor that refers to a process." msgstr "" +"Esto es un *idtype* especifico de Linux que indica que ese *id* es un " +"descriptor de archivo que hace referencia a un proceso." #: ../Doc/library/os.rst:4074 -#, fuzzy msgid ":ref:`Availability `: Linux 5.4+" -msgstr ":ref:`Disponibilidad `: Unix." +msgstr ":ref:`Disponibilidad `: Linux 5.4+" #: ../Doc/library/os.rst:4081 msgid "" @@ -6114,7 +6136,7 @@ msgstr "" #: ../Doc/library/os.rst:4103 msgid "Added :data:`CLD_KILLED` and :data:`CLD_STOPPED` values." -msgstr "" +msgstr "Agregado los valores :data:`CLD_KILLED` y :data:`CLD_STOPPED`." #: ../Doc/library/os.rst:4109 msgid "The details of this function differ on Unix and Windows." @@ -6201,6 +6223,8 @@ msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exitcode." msgstr "" +":func:`waitstatus_to_exitcode` puede ser usado para convertir el estado de " +"salida al código de salida." #: ../Doc/library/os.rst:4160 msgid "" @@ -6219,11 +6243,11 @@ msgstr "" #: ../Doc/library/os.rst:4174 msgid "Convert a wait status to an exit code." -msgstr "" +msgstr "Convertir un estado de espera a un código de salida." #: ../Doc/library/os.rst:4176 msgid "On Unix:" -msgstr "" +msgstr "En Unix:" #: ../Doc/library/os.rst:4178 msgid "" @@ -6231,6 +6255,9 @@ msgid "" "the process exit status (return ``WEXITSTATUS(status)``): result greater " "than or equal to 0." msgstr "" +"Si el proceso termino con normalidad (if ``WIFEXITED(status)`` is true, se " +"retornan el estado de salida del proceso (return ``WEXITSTATUS(status)``): " +"resultado mayor o igual a 0." #: ../Doc/library/os.rst:4181 msgid "" @@ -6239,14 +6266,17 @@ msgid "" "caused the process to terminate (return ``-WTERMSIG(status)``): result less " "than 0." msgstr "" +"Si el proceso fue terminado por una señal (if ``WIFSIGNALED(status)`` is " +"true), retorna ``-signum`` donde *signum* es el numero de la señal que cause " +"que el proceso termine (return ``-WTERMSIG(status)``): resultado menor que 0." #: ../Doc/library/os.rst:4185 msgid "Otherwise, raise a :exc:`ValueError`." -msgstr "" +msgstr "En el caso contrario, se lanza un :exc:`ValueError`." #: ../Doc/library/os.rst:4187 msgid "On Windows, return *status* shifted right by 8 bits." -msgstr "" +msgstr "En Windows, retorna *status* desplazado a la derecha en 8 bits." #: ../Doc/library/os.rst:4189 msgid "" @@ -6255,12 +6285,18 @@ msgid "" "``WIFSTOPPED(status)`` is true. This function must not be called if " "``WIFSTOPPED(status)`` is true." msgstr "" +"En Unix, si el proceso esta siendo rastreado o si :func:`waitpid` fue " +"llamado con la opción :data:`WUNTRACED`, el que llama debe revisar primero " +"si ``WIFSTOPPED(status)`` es verdadero. La función no debe de ser llamada si " +"``WIFSTOPPED(status)`` es verdadero." #: ../Doc/library/os.rst:4196 msgid "" ":func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" "`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions." msgstr "" +"Funciones :func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" +"`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG`." #: ../Doc/library/os.rst:4204 msgid "" @@ -6321,7 +6357,7 @@ msgid "" "`~signal.SIGCONT` (if the process has been continued from a job control " "stop), otherwise return ``False``." msgstr "" -"retorna ``True`` si un niño detenido se ha reanudado mediante la entrega de :" +"Retorna ``True`` si un niño detenido se ha reanudado mediante la entrega de :" "data:`~signal.SIGCONT` (si el proceso se ha continuado desde una parada de " "control de trabajo), de lo contrario, retorna ``False``." @@ -6334,7 +6370,7 @@ msgid "" "Return ``True`` if the process was stopped by delivery of a signal, " "otherwise return ``False``." msgstr "" -"retorna ``True`` si el proceso se detuvo mediante la entrega de una señal; " +"Retorna ``True`` si el proceso se detuvo mediante la entrega de una señal; " "de lo contrario, retorna ``False``." #: ../Doc/library/os.rst:4256 @@ -6352,7 +6388,7 @@ msgid "" "Return ``True`` if the process was terminated by a signal, otherwise return " "``False``." msgstr "" -"retorna ``True`` si el proceso finalizó con una señal; de lo contrario, " +"Retorna ``True`` si el proceso finalizó con una señal; de lo contrario, " "retorna ``False``." #: ../Doc/library/os.rst:4272 @@ -6361,7 +6397,7 @@ msgid "" "calling ``exit()`` or ``_exit()``, or by returning from ``main()``; " "otherwise return ``False``." msgstr "" -"retorna ``True`` si el proceso finalizó normalmente, es decir, llamando a " +"Retorna ``True`` si el proceso finalizó normalmente, es decir, llamando a " "``exit()`` o ``_exit()``, o volviendo de ``main()``; de lo contrario, " "retorna ``False``." diff --git a/library/othergui.po b/library/othergui.po index 0b7d8cfd82..fa5f4aee38 100644 --- a/library/othergui.po +++ b/library/othergui.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-06 12:10+0200\n" -"Last-Translator: Juan Biondi \n" +"PO-Revision-Date: 2021-08-04 21:45+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/othergui.rst:4 msgid "Other Graphical User Interface Packages" @@ -88,9 +89,8 @@ msgstr "" "diseñado específicamente para Python." #: ../Doc/library/othergui.rst:37 -#, fuzzy msgid "`PySide2 `_" -msgstr "`PySide `_" +msgstr "`PySide2 `_" #: ../Doc/library/othergui.rst:34 msgid "" @@ -99,6 +99,11 @@ msgid "" "port of PySide to Qt 5. Compared to PyQt, its licensing scheme is friendlier " "to non-open source applications." msgstr "" +"También conocido como el proyecto Qt para Python, PySide2 es un enlace más " +"nuevo para el kit de herramientas Qt. Es proporcionado por The Qt Company y " +"tiene como objetivo proporcionar un puerto completo de PySide a Qt 5. En " +"comparación con PyQt, su esquema de licencias es más amigable para las " +"aplicaciones que no son de código abierto." #: ../Doc/library/othergui.rst:48 msgid "`wxPython `_" @@ -137,6 +142,13 @@ msgid "" "a much more complete list, and also for links to documents where the " "different GUI toolkits are compared." msgstr "" +"PyGTK, PyQt, PySide2 y wxPython, todos tienen una apariencia moderna y más " +"widgets que Tkinter. Además, hay muchos otros kits de herramientas de GUI " +"para Python, tanto multiplataforma como específicos de la plataforma. " +"Consulte la página `Programación GUI `_ en Python Wiki para una lista mucho más completa, y " +"también para enlaces a documentos donde se comparan los diferentes kits de " +"herramientas GUI." #~ msgid "" #~ "PySide is a newer binding to the Qt toolkit, provided by Nokia. Compared " diff --git a/library/pkgutil.po b/library/pkgutil.po index b58ddd912b..4ffaeb870e 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -6,19 +6,20 @@ # 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: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-08 22:10+0200\n" -"Last-Translator: Andreu Vallbona Plazas \n" +"PO-Revision-Date: 2021-08-24 09:57+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/pkgutil.rst:2 msgid ":mod:`pkgutil` --- Package extension utility" @@ -144,7 +145,6 @@ msgstr "" "mod:`importlib`." #: ../Doc/library/pkgutil.rst:71 -#, fuzzy msgid "" ":term:`Loader ` that wraps Python's \"classic\" import algorithm." msgstr "" @@ -198,7 +198,7 @@ msgid "" "path_hooks` is necessary." msgstr "" "La caché (o parte de ella) puede ser borrada manualmente si el escaneo de :" -"data:`sys.path_hooks` es necesario. " +"data:`sys.path_hooks` es necesario." #: ../Doc/library/pkgutil.rst:111 msgid "Get a :term:`loader` object for *module_or_name*." @@ -370,7 +370,7 @@ msgstr "" #: ../Doc/library/pkgutil.rst:234 msgid "Resolve a name to an object." -msgstr "" +msgstr "Resuelve un nombre a un objeto." #: ../Doc/library/pkgutil.rst:236 msgid "" @@ -378,6 +378,10 @@ msgid "" "issue:`12915`) - and equivalent functionality is also in widely used third-" "party packages such as setuptools, Django and Pyramid." msgstr "" +"Esta funcionalidad es usada en numerosos lugares en la librería estándar " +"(ver :issue:`12915`) - y existe funcionalidad equivalente también en " +"librerías de terceros ampliamente usadas, tales como setuptools, Django y " +"Pyramid." #: ../Doc/library/pkgutil.rst:240 msgid "" @@ -385,14 +389,18 @@ msgid "" "where W is shorthand for a valid Python identifier and dot stands for a " "literal period in these pseudo-regexes:" msgstr "" +"Se espera que *name* sea una cadena de caracteres en uno de los siguientes " +"formatos, donde W representa un identificador de Python válido, y un punto " +"representa literalmente un punto en las siguientes pseudo-expresiones " +"regulares:" #: ../Doc/library/pkgutil.rst:244 msgid "``W(.W)*``" -msgstr "" +msgstr "``W(.W)*``" #: ../Doc/library/pkgutil.rst:245 msgid "``W(.W)*:(W(.W)*)?``" -msgstr "" +msgstr "``W(.W)*:(W(.W)*)?``" #: ../Doc/library/pkgutil.rst:247 msgid "" @@ -403,6 +411,12 @@ msgid "" "inferred by inspection, repeated attempts to import must be done with this " "form." msgstr "" +"La primera forma existe sólo para mantener compatibilidad con versiones " +"anteriores. Asume que parte del nombre con puntos es un paquete, y el resto " +"es un objeto en algún lugar dentro de ese paquete, posiblemente anidado " +"dentro de otros objetos. Dado que el lugar donde el paquete termina y la " +"jerarquía de objetos comienza no puede ser inferida por inspección, con esta " +"forma se debe realizar repetidos intentos de importación." #: ../Doc/library/pkgutil.rst:254 msgid "" @@ -412,23 +426,36 @@ msgid "" "hierarchy within that package. Only one import is needed in this form. If it " "ends with the colon, then a module object is returned." msgstr "" +"En la segunda forma, el usuario hace claro el punto de división al proveer " +"un signo de dos puntos: el nombre con puntos a la izquierda de los dos " +"puntos es el paquete a ser importado, y el nombre con puntos a la derecha es " +"la jerarquía de nombres dentro de ese paquete. Sólo una importación se " +"necesaria con esta forma. Si termina con dos puntos, entonces se retorna un " +"objeto módulo." #: ../Doc/library/pkgutil.rst:260 msgid "" "The function will return an object (which might be a module), or raise one " "of the following exceptions:" msgstr "" +"La función retornará un objeto (el cual puede ser un módulo), o lanzará una " +"de las siguientes excepciones:" #: ../Doc/library/pkgutil.rst:263 msgid ":exc:`ValueError` -- if *name* isn't in a recognised format." -msgstr "" +msgstr ":exc:`ValueError` -- si *name* no tiene un formato reconocido." #: ../Doc/library/pkgutil.rst:265 msgid ":exc:`ImportError` -- if an import failed when it shouldn't have." msgstr "" +":exc:`ImportError` -- si una importación falló cuando no lo debería haber " +"hecho." #: ../Doc/library/pkgutil.rst:267 msgid "" ":exc:`AttributeError` -- If a failure occurred when traversing the object " "hierarchy within the imported package to get to the desired object." msgstr "" +":exc:`AttributeError` -- Si un fallo ocurrió mientras se atravesaba la " +"jerarquía de objetos dentro del paquete importado para obtener el objeto " +"deseado." diff --git a/library/platform.po b/library/platform.po index ba073fc9bc..cd26e76441 100644 --- a/library/platform.po +++ b/library/platform.po @@ -357,7 +357,7 @@ msgid "" "code that checks arguments, ranges, etc." msgstr "" "Como sugerencia: *ptype* es ``'Uniprocessor Free'`` en máquinas NT de " -"procesador único y '''Multiprocessor Free''' en máquinas multiprocesador. El " +"procesador único y ``'Multiprocessor Free'`` en máquinas multiprocesador. El " "*'Free'* se refiere a que la versión del sistema operativo está libre de " "código de depuración. También podría indicar *'Checked'* lo que significa " "que la versión del sistema operativo utiliza código de depuración, es decir, " diff --git a/library/plistlib.po b/library/plistlib.po index 735cb506dd..316941af39 100644 --- a/library/plistlib.po +++ b/library/plistlib.po @@ -11,35 +11,34 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-05 19:51+0200\n" -"Last-Translator: Álvaro Mondéjar \n" +"PO-Revision-Date: 2021-08-04 21:46+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/plistlib.rst:2 -#, fuzzy msgid ":mod:`plistlib` --- Generate and parse Apple ``.plist`` files" -msgstr ":mod:`plistlib` --- Genera y analiza archivos ``.plist`` de Mac OS X" +msgstr ":mod:`plistlib` --- Genera y analiza archivos ``.plist`` de Apple" #: ../Doc/library/plistlib.rst:11 msgid "**Source code:** :source:`Lib/plistlib.py`" msgstr "**Código fuente:** :source:`Lib/plistlib.py`" #: ../Doc/library/plistlib.rst:19 -#, fuzzy msgid "" "This module provides an interface for reading and writing the \"property list" "\" files used by Apple, primarily on macOS and iOS. This module supports " "both binary and XML plist files." msgstr "" -"Este módulo provee una interfaz para lectura y escritura de archivos de " -"\"listas de propiedades\" usados principalmente por Mac OS X y soporta tanto " -"archivos plist binarios como XML." +"Este módulo proporciona una interfaz para leer y escribir los archivos de " +"\"lista de propiedades\" utilizados por Apple, principalmente en macOS e " +"iOS. Este módulo admite archivos plist binarios y XML." #: ../Doc/library/plistlib.rst:23 msgid "" @@ -68,16 +67,14 @@ msgstr "" "`loads`." #: ../Doc/library/plistlib.rst:33 -#, fuzzy msgid "" "Values can be strings, integers, floats, booleans, tuples, lists, " "dictionaries (but only with string keys), :class:`bytes`, :class:`bytearray` " "or :class:`datetime.datetime` objects." msgstr "" -"Los valores pueden ser cadenas de caracteres, enteros, coma flotantes, " -"booleanos, tuplas, listas, diccionarios (pero sólo con cadenas como " -"claves), :class:`Data`, :class:`bytes`, :class:`bytesarray` u objetos :class:" -"`datetime.datetime`." +"Los valores pueden ser cadenas, enteros, flotantes, booleanos, tuplas, " +"listas, diccionarios (pero solo con claves de cadena), :class:`bytes`, :" +"class:`bytearray` u objetos :class:`datetime.datetime`." #: ../Doc/library/plistlib.rst:37 msgid "New API, old API deprecated. Support for binary format plists added." @@ -95,7 +92,7 @@ msgstr "" #: ../Doc/library/plistlib.rst:44 msgid "Old API removed." -msgstr "" +msgstr "API antigua eliminada." #: ../Doc/library/plistlib.rst:49 msgid "" diff --git a/library/profile.po b/library/profile.po index a38f03234b..433ada4d2b 100644 --- a/library/profile.po +++ b/library/profile.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-10 22:47-0500\n" -"Last-Translator: Juan Alegría \n" +"PO-Revision-Date: 2021-08-29 09:51+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es_CO\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/profile.rst:5 msgid "The Python Profilers" @@ -192,7 +193,7 @@ msgstr "es el cociente de ``cumtime`` dividido por llamadas primitivas" #: ../Doc/library/profile.rst:105 msgid "filename:lineno(function)" -msgstr "filename:lineno(función)" +msgstr "filename:lineno(function)" #: ../Doc/library/profile.rst:105 msgid "provides the respective data of each function" @@ -1012,12 +1013,19 @@ msgid "" "instance holds information related to the function's profile such as how " "long the function took to run, how many times it was called, etc..." msgstr "" +"Este método retorna una instancia de StatsProfile, la cual contiene un mapeo " +"de nombres de función a instancias de FunctionProfile. Cada instancia de " +"FunctionProfile mantiene información relacionada al perfil de la función, " +"como cuánto demoró la función en ejecutarse, cuantas veces fue llamada, " +"etc..." #: ../Doc/library/profile.rst:535 msgid "" "Added the following dataclasses: StatsProfile, FunctionProfile. Added the " "following function: get_stats_profile." msgstr "" +"Añadidas las siguientes clases de datos: StatsProfile, FunctionProfile. " +"Añadida la siguiente función: get_stats_profile." #: ../Doc/library/profile.rst:542 msgid "What Is Deterministic Profiling?" @@ -1190,7 +1198,7 @@ msgstr "" "directamente y nuevamente bajo el generador de perfiles, midiendo el tiempo " "para ambas. Luego calcula la sobrecarga oculta por evento del generador de " "perfiles y la retorna como flotante. Por ejemplo, en un Intel Core i5 de " -"1.8Ghz con Mac OS X y usando time.process_time() de Python como " +"1.8GHz con Mac OS X y usando time.process_time() de Python como " "temporizador, el número mágico es aproximadamente 4.04e-6." #: ../Doc/library/profile.rst:628 diff --git a/library/pty.po b/library/pty.po index fef8277bce..448d3ef9b7 100644 --- a/library/pty.po +++ b/library/pty.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-18 14:36-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 21:47+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/pty.rst:2 msgid ":mod:`pty` --- Pseudo-terminal utilities" @@ -148,18 +149,19 @@ msgstr "" "`_." #: ../Doc/library/pty.rst:72 -#, fuzzy msgid "" "Return the exit status value from :func:`os.waitpid` on the child process." msgstr "" -":func:`spawn` ahora retorna el valor de estado de :func:`os.waitpid` para " -"los procesos hijos." +"Retorna el valor del estado de salida de :func:`os.waitpid` en el proceso " +"hijo." #: ../Doc/library/pty.rst:74 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exit code." msgstr "" +":func:`waitstatus_to_exitcode` se puede utilizar para convertir el estado de " +"salida en un código de salida." #: ../Doc/library/pty.rst:77 msgid "" diff --git a/library/pwd.po b/library/pwd.po index 64ce0f254b..c84cfa21c3 100644 --- a/library/pwd.po +++ b/library/pwd.po @@ -9,14 +9,14 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-05-15 15:34-0500\n" +"PO-Revision-Date: 2021-08-04 21:49+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 3.0\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/library/pwd.rst:2 @@ -145,9 +145,7 @@ msgstr "" "Los elementos uid y gid son enteros, todos los demás son cadenas. :exc:" "`KeyError` se lanza si la entrada pedida no se encuentra." -# unices, shadow password system, world readable #: ../Doc/library/pwd.rst:42 -#, fuzzy msgid "" "In traditional Unix the field ``pw_passwd`` usually contains a password " "encrypted with a DES derived algorithm (see module :mod:`crypt`). However " @@ -158,15 +156,15 @@ msgid "" "anything useful is system-dependent. If available, the :mod:`spwd` module " "should be used where access to the encrypted password is required." msgstr "" -"En el Unix tradicional el campo ``pw_passwd`` suele contener una contraseña " -"cifrada con un algoritmo derivado de DES (ver módulo :mod:`crypt``). Sin " -"embargo, la mayoría de los Unix modernos utilizan el llamado sistema de " -"*shadow password*. En esos unices el campo *pw_passwd* sólo contiene un " -"asterisco (``'*'``) o la letra ``'x'`` donde la contraseña cifrada se " -"almacena en un archivo :file:`/etc/shadow` que no es legible en el mundo. " -"Si el campo *pw_passwd* contiene algo útil depende del sistema. Si está " -"disponible, el módulo :mod:`spwd` debe ser usado donde se requiere el acceso " -"a la contraseña encriptada." +"En Unix tradicional, el campo ``pw_passwd`` generalmente contiene una " +"contraseña cifrada con un algoritmo derivado de DES (ver módulo :mod:" +"`crypt`). Sin embargo, la mayoría de los sistemas operativos modernos " +"utilizan un sistema llamado *shadow password*. En esos unices, el campo " +"*pw_passwd* solo contiene un asterisco (``'*'``) o la letra ``'x'`` donde la " +"contraseña cifrada se almacena en un archivo :file:`/etc/shadow` que no es " +"legible por todo el mundo. Si el campo *pw_passwd* contiene algo útil " +"depende del sistema. Si está disponible, el módulo :mod:`spwd` debe usarse " +"donde se requiera acceso a la contraseña encriptada." #: ../Doc/library/pwd.rst:51 msgid "It defines the following items:" @@ -203,9 +201,7 @@ msgstr "Una interfaz para la base de datos de grupos, similar a esta." msgid "Module :mod:`spwd`" msgstr "Módulo :mod:`spwd`" -# shadow password database #: ../Doc/library/pwd.rst:75 -#, fuzzy msgid "An interface to the shadow password database, similar to this." msgstr "" -"Una interfaz para esconder contraseñas en la base de datos, parecidas a esta" +"Una interfaz para la base de datos de contraseñas ocultas, similar a esta." diff --git a/library/py_compile.po b/library/py_compile.po index f846ed365e..ac9c9be1b8 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-06 22:11+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 21:51+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/py_compile.rst:2 msgid ":mod:`py_compile` --- Compile Python source files" @@ -58,7 +59,6 @@ msgstr "" "excepción." #: ../Doc/library/py_compile.rst:32 -#, fuzzy msgid "" "Compile a source file to byte-code and write out the byte-code cache file. " "The source code is loaded from the file named *file*. The byte-code is " @@ -72,18 +72,19 @@ msgid "" "exception is raised. This function returns the path to byte-compiled file, " "i.e. whatever *cfile* value was used." msgstr "" -"Compila un archivo fuente a código de bytes y escribe el archivo de código " -"de bytes almacenado. El código fuente es cargado del archivo llamado *file* " -"El código de bytes es escrito a *cfile*, el cual va por defecto a la ruta :" -"pep:`3147`/:pep:`488`, terminando en ``.pyc``. Por ejemplo, si *file* es ``/" -"foo/bar/baz.py`` *cfile* irá por default a ``/foo/bar/__pycache__/baz." -"cpython-32.yc`` para Python 3.2. Si *dfile* es especificado, éste es usado " -"como el nombre del archivo fuente en los mensajes de error cuando sea en vez " -"de *file*. Si *doraise* es verdadero, un :exc:`PyCompilerError` es lanzado " -"cuando un error es encontrado mientras se compilaba *file*. Si *doraise* es " -"falso (el predeterminado), una cadena de error es escrita a ``sys.stderr``, " -"pero no se lanza ninguna excepción. Esta función retorna la ruta al archivo " -"de bytes compilado, por ejemplo, cualquier valor *cfile* que fue usado." +"Compila un archivo fuente en código de bytes y escriba el archivo de caché " +"de código de bytes. El código fuente se carga desde el archivo llamado " +"*file*. El código de bytes se escribe en *cfile*, que por defecto es la " +"ruta :pep:`3147`/:pep:`488`, que termina en ``.pyc``. Por ejemplo, si *file* " +"es ``/foo/bar/baz.py`` *cfile* se establecerá de forma predeterminada en ``/" +"foo/bar/__pycache__/baz.cpython-32.pyc`` para Python 3.2. Si se especifica " +"*dfile*, se usa como el nombre del archivo de origen en los mensajes de " +"error en lugar de *file*. Si *doraise* es verdadero, se lanza un :exc:" +"`PyCompileError` cuando se encuentra un error al compilar *file*. Si " +"*doraise* es falso (el valor predeterminado), se escribe una cadena de error " +"en ``sys.stderr``, pero no se genera ninguna excepción. Esta función retorna " +"la ruta al archivo compilado por bytes, es decir, cualquier valor *cfile* " +"que se haya utilizado." #: ../Doc/library/py_compile.rst:45 msgid "" diff --git a/library/random.po b/library/random.po index 8da4b0c038..3e617acf99 100644 --- a/library/random.po +++ b/library/random.po @@ -8,15 +8,16 @@ msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-24 20:02+0200\n" +"PO-Revision-Date: 2021-08-29 22:55-0500\n" "Last-Translator: \n" "Language: es_ES\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/random.rst:2 msgid ":mod:`random` --- Generate pseudo-random numbers" @@ -148,7 +149,6 @@ msgstr "" "largo compatible y con operaciones de actualización comparablemente simples." #: ../Doc/library/random.rst:66 -#, fuzzy msgid "Bookkeeping functions" msgstr "Funciones de contabilidad" @@ -205,6 +205,9 @@ msgid "" "class:`int`, :class:`float`, :class:`str`, :class:`bytes`, or :class:" "`bytearray`." msgstr "" +"En el futuro, la *semilla* debe ser de uno de los siguientes tipos: " +"*NoneType*, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, o :" +"class:`bytearray`." #: ../Doc/library/random.rst:96 msgid "" @@ -225,19 +228,20 @@ msgstr "" "al que tenia cuando se llamó a la función :func:`getstate`." #: ../Doc/library/random.rst:108 -#, fuzzy msgid "Functions for bytes" -msgstr "Funciones para enteros" +msgstr "Funciones para los bytes" #: ../Doc/library/random.rst:112 msgid "Generate *n* random bytes." -msgstr "" +msgstr "Genera *n* bytes aleatorios." #: ../Doc/library/random.rst:114 msgid "" "This method should not be used for generating security tokens. Use :func:" "`secrets.token_bytes` instead." msgstr "" +"Este método no debe utilizarse para generar tokens de seguridad. Utilice :" +"func:`secrets.token_bytes` en su lugar." #: ../Doc/library/random.rst:121 msgid "Functions for integers" @@ -282,22 +286,21 @@ msgstr "" "``randrange(a, b+1)``." #: ../Doc/library/random.rst:145 -#, fuzzy msgid "" "Returns a non-negative Python integer with *k* random bits. This method is " "supplied with the MersenneTwister generator and some other generators may " "also provide it as an optional part of the API. When available, :meth:" "`getrandbits` enables :meth:`randrange` to handle arbitrarily large ranges." msgstr "" -"Retorna un entero de Python con *k* bits aleatorios. Este método se " -"suministra con el generador de Mersenne Twister, y otros generadores también " -"pueden proporcionarlo como una parte de la API. Cuando está disponible, :" -"meth:`getrandbits` habilita :meth:`randrange` para manejar rangos " +"Retorna un entero de Python no negativo con *k* bits aleatorios. Este método " +"se provee con el generador MersenneTwister y algunos otros generadores " +"pueden también proveerlo como una parte opcional de la API. Cuando está " +"disponible, :meth:`getrandbits` permite a :meth:`randrange` manejar rangos " "arbitrariamente grandes." #: ../Doc/library/random.rst:151 msgid "This method now accepts zero for *k*." -msgstr "" +msgstr "Este método ahora acepta cero para *k*." #: ../Doc/library/random.rst:156 msgid "Functions for sequences" @@ -351,7 +354,6 @@ msgstr "" "Es un :exc:`TypeError` especificar ambas *weights* y *cum_weights*." #: ../Doc/library/random.rst:182 -#, fuzzy msgid "" "The *weights* or *cum_weights* can use any numeric type that interoperates " "with the :class:`float` values returned by :func:`random` (that includes " @@ -359,9 +361,11 @@ msgid "" "undefined if any weight is negative. A :exc:`ValueError` is raised if all " "weights are zero." msgstr "" -"*weights* o *cum_weights* pueden usar cualquier tipo numérico que interopere " -"con los valores :class:`float` retornados por :func:`random` (que incluyen " -"enteros, flotantes y fracciones, pero excluyen decimales)." +"Los *weights* o los *cum_weights* pueden utilizar cualquier tipo numérico " +"que interactúe con los valores :class:`float` retornados por :func:`random` " +"(que incluye enteros, flotantes y fracciones pero excluye decimales). El " +"comportamiento es indefinido si algún peso es negativo. Se produce un :exc:" +"`ValueError` si todos los pesos son cero." #: ../Doc/library/random.rst:188 msgid "" @@ -381,12 +385,11 @@ msgstr "" #: ../Doc/library/random.rst:197 msgid "Raises a :exc:`ValueError` if all weights are zero." -msgstr "" +msgstr "Genera un :exc:`ValueError` si todos los pesos son cero." #: ../Doc/library/random.rst:203 -#, fuzzy msgid "Shuffle the sequence *x* in place." -msgstr "Baraja la secuencia *x* en su lugar." +msgstr "Mezcla la secuencia *x* in-situ. " #: ../Doc/library/random.rst:205 msgid "" @@ -402,8 +405,8 @@ msgid "" "To shuffle an immutable sequence and return a new shuffled list, use " "``sample(x, k=len(x))`` instead." msgstr "" -"Para bajar una secuencia inmutable y retornar una nueva lista barajada, " -"utilice ``sample(x, k=len(x))`` en su lugar." +"Para mezclar una secuencia inmutable y retornar una nueva lista mezclada, " +"utilice ``muestra(x, k=len(x))`` en su lugar." #: ../Doc/library/random.rst:211 msgid "" @@ -422,7 +425,7 @@ msgstr "" #: ../Doc/library/random.rst:218 msgid "The optional parameter *random*." -msgstr "" +msgstr "El parámetro opcional *random*." #: ../Doc/library/random.rst:223 msgid "" @@ -464,6 +467,10 @@ msgid "" "counts=[4, 2], k=5)`` is equivalent to ``sample(['red', 'red', 'red', 'red', " "'blue', 'blue'], k=5)``." msgstr "" +"Los elementos repetidos pueden especificarse de uno en uno o con el " +"parámetro opcional *counts*, que es una palabra clave. Por ejemplo, " +"``sample(['red', 'blue'], counts=[4, 2], k=5)`` es equivalente a " +"``sample(['red', 'red', 'red', 'red', 'blue', 'blue'], k=5)``." #: ../Doc/library/random.rst:240 msgid "" @@ -485,7 +492,7 @@ msgstr "" #: ../Doc/library/random.rst:247 msgid "Added the *counts* parameter." -msgstr "" +msgstr "Se añadió el parámetro *counts*." #: ../Doc/library/random.rst:250 msgid "" @@ -494,6 +501,10 @@ msgid "" "`list` or :class:`tuple`, preferably in a deterministic order so that the " "sample is reproducible." msgstr "" +"En el futuro, la *población* debe ser una secuencia. Las instancias de :" +"class:`set` ya no se admiten. El conjunto debe convertirse primero en una :" +"class:`list` o :class:`tuple`, preferiblemente en un orden determinista para " +"que la muestra sea reproducible." #: ../Doc/library/random.rst:260 msgid "Real-valued distributions" @@ -599,6 +610,12 @@ msgid "" "random number generator. 2) Put locks around all calls. 3) Use the slower, " "but thread-safe :func:`normalvariate` function instead." msgstr "" +"Nota sobre el multithreading: Cuando dos hilos llaman a esta función " +"simultáneamente, es posible que reciban el mismo valor de retorno. Esto se " +"puede evitar de tres maneras. 1) Hacer que cada hilo utilice una instancia " +"diferente del generador de números aleatorios. 2) Poner bloqueos alrededor " +"de todas las llamadas. 3) Utilizar la función :func:`normalvariate`, más " +"lenta pero segura para los hilos, en su lugar." #: ../Doc/library/random.rst:333 msgid "" @@ -661,6 +678,9 @@ msgid "" "`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, or :" "class:`bytearray`." msgstr "" +"En el futuro, la *semilla* debe ser de uno de los siguientes tipos: :class:" +"`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, o :" +"class:`bytearray`." #: ../Doc/library/random.rst:378 msgid "" @@ -683,17 +703,16 @@ msgid "Notes on Reproducibility" msgstr "Notas sobre la Reproducibilidad" #: ../Doc/library/random.rst:389 -#, fuzzy msgid "" "Sometimes it is useful to be able to reproduce the sequences given by a " "pseudo-random number generator. By re-using a seed value, the same sequence " "should be reproducible from run to run as long as multiple threads are not " "running." msgstr "" -"A veces es necesario poder reproducir las secuencias dadas por un generador " -"de números pseudoaleatorios. Al volver a usar el valor de una semilla, la " -"misma secuencia debería ser reproducible en cada ejecución siempre que no se " -"ejecuten múltiples subprocesos." +"A veces es útil poder reproducir las secuencias dadas por un generador de " +"números pseudoaleatorios. Al reutilizar un valor de semilla, la misma " +"secuencia debería ser reproducible de una ejecución a otra siempre que no se " +"estén ejecutando múltiples hilos." #: ../Doc/library/random.rst:393 msgid "" @@ -722,9 +741,8 @@ msgstr "" "compatible." #: ../Doc/library/random.rst:405 -#, fuzzy msgid "Examples" -msgstr "Ejemplos básicos::" +msgstr "Ejemplos" #: ../Doc/library/random.rst:407 msgid "Basic examples::" @@ -735,16 +753,14 @@ msgid "Simulations::" msgstr "Simulaciones::" #: ../Doc/library/random.rst:463 -#, fuzzy msgid "" "Example of `statistical bootstrapping `_ using resampling with replacement to estimate " "a confidence interval for the mean of a sample::" msgstr "" -"Ejemplo de `*bootstrapping* estadístico `_ usando remuestreo con reemplazo para " -"estimar el intervalo de confianza para la media de una muestra de tamaño " -"cinco::" +"Ejemplo de `statistical bootstrapping `_ utilizando el remuestreo con reemplazo para " +"estimar un intervalo de confianza para la media de una muestra::" #: ../Doc/library/random.rst:476 msgid "" @@ -760,12 +776,11 @@ msgstr "" "placebo::" #: ../Doc/library/random.rst:503 -#, fuzzy msgid "" "Simulation of arrival times and service deliveries for a multiserver queue::" msgstr "" -"Simulación del tiempo de llegada y servicios de reparto en un servidor de " -"cola única::" +"Simulación de tiempos de llegada y entrega de servicios para una cola de " +"múltiples servidores::" #: ../Doc/library/random.rst:531 msgid "" @@ -809,7 +824,7 @@ msgstr "" #: ../Doc/library/random.rst:552 msgid "Recipes" -msgstr "" +msgstr "Recetas" #: ../Doc/library/random.rst:554 msgid "" @@ -819,6 +834,12 @@ msgid "" "are not possible selections. For example, ``0.05954861408025609`` isn't an " "integer multiple of 2⁻⁵³." msgstr "" +"La función :func:`.random` por defecto devuelve múltiplos de 2⁻⁵³ en el " +"rango *0.0 ≤ x < 1.0*. Todos estos números están espaciados uniformemente y " +"son representables exactamente como flotantes de Python. Sin embargo, " +"muchos otros flotadores representables en ese intervalo no son selecciones " +"posibles. Por ejemplo, ``0.05954861408025609`` no es un múltiplo entero de " +"2⁻⁵³." #: ../Doc/library/random.rst:560 msgid "" @@ -828,12 +849,19 @@ msgid "" "geometric distribution where exponents smaller than *-53* occur half as " "often as the next larger exponent." msgstr "" +"La siguiente receta adopta un enfoque diferente. Todos los flotantes en el " +"intervalo son selecciones posibles. La mantisa proviene de una distribución " +"uniforme de enteros en el rango *2⁵² ≤ mantisa < 2⁵³*. El exponente " +"proviene de una distribución geométrica en la que los exponentes menores de " +"*-53* ocurren con la mitad de frecuencia que el siguiente exponente mayor." #: ../Doc/library/random.rst:582 msgid "" "All :ref:`real valued distributions ` in the " "class will use the new method::" msgstr "" +"Todas las :ref:`distribuciones de valor real ` de " +"la clase utilizarán el nuevo método::" #: ../Doc/library/random.rst:591 msgid "" @@ -843,6 +871,11 @@ msgid "" "Python float. (The value 2⁻¹⁰⁷⁴ is the smallest positive unnormalized float " "and is equal to ``math.ulp(0.0)``.)" msgstr "" +"La receta es conceptualmente equivalente a un algoritmo que elige entre " +"todos los múltiplos de 2⁻¹⁰⁷⁴ en el rango *0,0 ≤ x < 1,0*. Todos esos " +"números son uniformes, pero la mayoría tienen que ser redondeados al " +"flotante de Python representable más cercano. (El valor 2⁻¹⁰⁷⁴ es el menor " +"flotante positivo no normalizado y es igual a ``math.ulp(0.0)``.)" #: ../Doc/library/random.rst:600 msgid "" @@ -851,6 +884,10 @@ msgid "" "ways to generate more fine-grained floats than normally generated by :func:`." "random`." msgstr "" +"`Generating Pseudo-random Floating-Point Values `_ un artículo de Allen B. Downey en el " +"que se describen formas de generar flotantes más refinados que los generados " +"normalmente por :func:`.random`." #~ msgid "Examples and Recipes" #~ msgstr "Ejemplos y Recetas" diff --git a/library/re.po b/library/re.po index dc1b8d6365..82379df9d3 100644 --- a/library/re.po +++ b/library/re.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-23 11:00+0200\n" -"Last-Translator: Miguel Hernandez \n" +"PO-Revision-Date: 2021-08-04 21:51+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/re.rst:2 msgid ":mod:`re` --- Regular expression operations" @@ -1319,7 +1320,6 @@ msgstr "" "indicador :const:`re.LOCALE`. Corresponde al indicador en línea ``(?i)``." #: ../Doc/library/re.rst:672 -#, fuzzy msgid "" "Note that when the Unicode patterns ``[a-z]`` or ``[A-Z]`` are used in " "combination with the :const:`IGNORECASE` flag, they will match the 52 ASCII " @@ -1330,12 +1330,12 @@ msgid "" "matched." msgstr "" "Notar que cuando los patrones Unicode ``[a-z]`` o ``[A-Z]`` se usan en " -"combinación con el indicador :const:`IGNORECASE``, coincidirán con las 52 " -"letras ASCII y 4 letras adicionales no ASCII: 'İ' (U+0130, letra mayúscula " -"latina I con punto arriba), 'ı' (U+0131, letra minúscula latina sin punto " -"i), 'ſ' (U+017F, letra minúscula latina s larga) y 'K' (U+212A, signo " -"Kelvin). Si se usa el indicador :const:`ASCII`, sólo las letras de la 'a' a " -"la 'z' y de la 'A' a la 'Z' coinciden." +"combinación con el flag :const:`IGNORECASE``, coincidirán con las 52 letras " +"ASCII y 4 letras adicionales no ASCII: 'İ' (U+0130, letra mayúscula latina I " +"con punto arriba), 'ı' (U+0131, letra minúscula latina sin punto i), 'ſ' (U" +"+017F, letra minúscula latina s larga) y 'K' (U+212A, signo Kelvin). Si se " +"usa el indicador :const:`ASCII`, sólo las letras de la 'a' a la 'z' y de la " +"'A' a la 'Z' coinciden." #: ../Doc/library/re.rst:683 msgid "" diff --git a/library/runpy.po b/library/runpy.po index 6ae65649b9..6d25780380 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -77,7 +77,7 @@ msgid "" msgstr "" "Ejecute el código del módulo especificado y devuelva el diccionario de " "globales de módulo resultante. El código del módulo se encuentra primero " -"mediante el mecanismo de importación estándar (consulte :p ep:'302' para " +"mediante el mecanismo de importación estándar (consulte :pep:`302` para " "obtener más información) y, a continuación, se ejecuta en un espacio de " "nombres de módulo nuevo." @@ -204,10 +204,10 @@ msgid "" "name``." msgstr "" "Se ha actualizado para aprovechar la función de especificación de módulo " -"agregada por :pep:'451'. Esto permite que ''__cached__'' se establezca " +"agregada por :pep:`451`. Esto permite que ``__cached__`` se establezca " "correctamente para que los módulos se ejecuten de esta manera, así como " "asegurarse de que el nombre real del módulo siempre sea accesible como " -"''__spec__.name''." +"``__spec__.name``." #: ../Doc/library/runpy.rst:101 msgid "" @@ -222,8 +222,8 @@ msgstr "" "un nombre de script proporcionado a la línea de comandos de CPython, la ruta " "de acceso proporcionada puede hacer referencia a un archivo de origen de " "Python, un archivo de código de bytes compilado o una entrada sys.path " -"válida que contiene un módulo ''__main__'' (por ejemplo, un archivo zip que " -"contiene un archivo ''__main__.py'' de nivel superior)." +"válida que contiene un módulo ``__main__`` (por ejemplo, un archivo zip que " +"contiene un archivo ``__main__.py`` de nivel superior)." #: ../Doc/library/runpy.rst:107 msgid "" diff --git a/library/secrets.po b/library/secrets.po index 390a53e74f..30973cc15f 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-26 21:25-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 21:52+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/secrets.rst:2 msgid ":mod:`secrets` --- Generate secure random numbers for managing secrets" @@ -43,7 +44,6 @@ msgstr "" "relacionados." #: ../Doc/library/secrets.rst:24 -#, fuzzy msgid "" "In particular, :mod:`secrets` should be used in preference to the default " "pseudo-random number generator in the :mod:`random` module, which is " diff --git a/library/select.po b/library/select.po index c3429efb7d..680161eb6f 100644 --- a/library/select.po +++ b/library/select.po @@ -11,14 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-31 08:52-0500\n" -"Last-Translator: Juan Diego Alfonso Ocampo Language: es\n" +"PO-Revision-Date: 2021-08-04 21:55+0200\n" +"Last-Translator: Cristián Maureira-Fredes \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" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/select.rst:2 msgid ":mod:`select` --- Waiting for I/O completion" @@ -205,7 +207,6 @@ msgstr "" "admitidos por los objetos kevent." #: ../Doc/library/select.rst:119 -#, fuzzy msgid "" "This is a straightforward interface to the Unix :c:func:`select` system " "call. The first three arguments are iterables of 'waitable objects': either " @@ -213,10 +214,10 @@ msgid "" "method named :meth:`~io.IOBase.fileno` returning such an integer:" msgstr "" "Esta es una interfaz sencilla para la llamada al sistema Unix :c:func:" -"`select`. Los primeros tres argumentos son secuencias de 'objetos " -"esperables': enteros que representan descriptores de archivos u objetos con " -"un método sin parámetros llamado :meth:`~io.IOBase.fileno` que retorna dicho " -"entero:" +"`select`. Los primeros tres argumentos son iterables de 'objetos en espera': " +"enteros que representan descriptores de archivos u objetos con un método sin " +"parámetros llamado :meth:`~io.IOBase.fileno` que retorna un entero de este " +"tipo:" #: ../Doc/library/select.rst:124 msgid "*rlist*: wait until ready for reading" @@ -235,7 +236,6 @@ msgstr "" "para ver lo que su sistema considera tal condición)" #: ../Doc/library/select.rst:129 -#, fuzzy msgid "" "Empty iterables are allowed, but acceptance of three empty iterables is " "platform-dependent. (It is known to work on Unix but not on Windows.) The " @@ -244,13 +244,13 @@ msgid "" "until at least one file descriptor is ready. A time-out value of zero " "specifies a poll and never blocks." msgstr "" -"Se permiten secuencias vacías, pero la aceptación de tres secuencias vacías " +"Se permiten iterables vacíos, pero la aceptación de tres iterables vacíos " "depende de la plataforma. (Se sabe que funciona en Unix pero no en Windows). " "El argumento opcional *timeout* especifica un tiempo de espera como un " -"número de coma flotante en segundos. Cuando se omite el argumento *timeout*, " -"la función se bloquea hasta que al menos un descriptor de archivo esté " -"listo. Un valor de tiempo de espera de cero especifica un *poll* y nunca " -"bloquea." +"número de punto flotante en segundos. Cuando se omite el argumento " +"*timeout*, la función se bloquea hasta que al menos un descriptor de archivo " +"esté listo. Un valor de tiempo de espera de cero especifica un sondeo y " +"nunca se bloquea." #: ../Doc/library/select.rst:136 msgid "" @@ -264,7 +264,6 @@ msgstr "" "vacías." #: ../Doc/library/select.rst:144 -#, fuzzy msgid "" "Among the acceptable object types in the iterables are Python :term:`file " "objects ` (e.g. ``sys.stdin``, or objects returned by :func:" @@ -273,12 +272,12 @@ msgid "" "has an appropriate :meth:`~io.IOBase.fileno` method (that really returns a " "file descriptor, not just a random integer)." msgstr "" -"Entre los tipos de objetos aceptables en las secuencias se encuentran :term:" -"`objetos de archivo ` Python (por ejemplo, ``sys.stdin``, u " -"objetos retornados por :func:`open` o :func:`os.popen`), objetos de socket " +"Entre los tipos de objetos aceptables en los iterables se encuentran Python :" +"term:`objetos de archivo ` (por ejemplo, ``sys.stdin``, u " +"objetos retornados por :func:`open` o :func:`os.popen` ), objetos de socket " "retornados por :func:`socket.socket`. También puede definir una clase :dfn:" -"`wrapper`, siempre que tenga un método apropiado :meth:`~io.IOBase.fileno` " -"(que realmente retorna un descriptor de archivo, no solo un entero " +"`wrapper` usted mismo, siempre que tenga un método :meth:`~io.IOBase.fileno` " +"apropiado (que realmente retorne un descriptor de archivo, no solo un entero " "aleatorio)." #: ../Doc/library/select.rst:155 @@ -639,7 +638,7 @@ msgstr "Elimina un descriptor de archivo registrado del objeto epoll." #: ../Doc/library/select.rst:358 msgid "The method no longer ignores the :data:`~errno.EBADF` error." -msgstr "" +msgstr "El método ya no ignora el error :data:`~errno.EBADF`." #: ../Doc/library/select.rst:364 msgid "Wait for events. timeout in seconds (float)" diff --git a/library/shelve.po b/library/shelve.po index 6d746edd44..253e3348ca 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -9,14 +9,14 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-10-01 13:08-0400\n" -"Last-Translator: Alvaro Cárdenas \n" +"PO-Revision-Date: 2021-08-04 21:55+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es_ES\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../Doc/library/shelve.rst:2 @@ -263,7 +263,6 @@ msgid "Added context manager support." msgstr "Agregado soporte para administrador de contexto." #: ../Doc/library/shelve.rst:136 -#, fuzzy msgid "" "A subclass of :class:`Shelf` which exposes :meth:`first`, :meth:`!next`, :" "meth:`previous`, :meth:`last` and :meth:`set_location` which are available " @@ -307,7 +306,6 @@ msgid "Example" msgstr "Ejemplo" #: ../Doc/library/shelve.rst:162 -#, fuzzy msgid "" "To summarize the interface (``key`` is a string, ``data`` is an arbitrary " "object)::" diff --git a/library/shutil.po b/library/shutil.po index 1be3cec0f2..08b5d9f158 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2021-08-17 10:12+0800\n" "Last-Translator: \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/shutil.rst:2 msgid ":mod:`shutil` --- High-level file operations" @@ -163,7 +164,7 @@ msgid "" "the file more efficiently. See :ref:`shutil-platform-dependent-efficient-" "copy-operations` section." msgstr "" -"Los llamadas al sistema de copia rápida específicos de la plataforma se " +"Las llamadas a sistema de copia rápida específicas de la plataforma se " "pueden usar internamente para copiar el archivo de manera más eficiente. " "Véase la sección :ref:`shutil-platform-dependent-efficient-copy-operations`." @@ -301,7 +302,6 @@ msgstr "" "extendidos de Linux." #: ../Doc/library/shutil.rst:160 -#, fuzzy msgid "" "Copies the file *src* to the file or directory *dst*. *src* and *dst* " "should be :term:`path-like objects ` or strings. If *dst* " @@ -309,9 +309,10 @@ msgid "" "filename from *src*. Returns the path to the newly created file." msgstr "" "Copia el archivo *src* al archivo o directorio *dst*. *src* y *dst* deberían " -"ser cadenas de caracteres (*strings*). Si *dst* especifica un directorio, el " -"archivo será copiado en *dst* usando el nombre de archivo base de *src*. " -"Retorna la ruta del archivo recién creado." +"ser :term:`objetos tipo ruta ` o cadenas de caracteres " +"(*strings*). Si *dst* especifica un directorio, el archivo será copiado en " +"*dst* usando el nombre de archivo base de *src*. Retorna la ruta del archivo " +"recién creado." #: ../Doc/library/shutil.rst:165 msgid "" @@ -639,7 +640,6 @@ msgstr "" "eliminado." #: ../Doc/library/shutil.rst:351 -#, fuzzy msgid "" "If *copy_function* is given, it must be a callable that takes two arguments " "*src* and *dst*, and will be used to copy *src* to *dst* if :func:`os." @@ -680,9 +680,9 @@ msgid "Added the *copy_function* keyword argument." msgstr "Se agregó el argumento de keyword *copy_function*." #: ../Doc/library/shutil.rst:374 -#, fuzzy msgid "Accepts a :term:`path-like object` for both *src* and *dst*." -msgstr "Acepta un :term:`path-like object` como *filename* y *extract_dir*." +msgstr "" +"Acepta un :term:`objeto tipo ruta ` como *src* y *dst*." #: ../Doc/library/shutil.rst:379 msgid "" @@ -797,7 +797,6 @@ msgid "Platform-dependent efficient copy operations" msgstr "Operaciones de copia eficientes dependientes de la plataforma" #: ../Doc/library/shutil.rst:446 -#, fuzzy msgid "" "Starting from Python 3.8, all functions involving a file copy (:func:" "`copyfile`, :func:`~shutil.copy`, :func:`copy2`, :func:`copytree`, and :func:" @@ -808,16 +807,16 @@ msgid "" msgstr "" "A partir de Python 3.8, todas las funciones que incluyen una copia de " "archivo (:func:`copyfile`, :func:`copy`, :func:`copy2`, :func:`copytree`, y :" -"func:`move`) puede usar llamadas al sistema \"copia rápida\" para poder " -"copiar el archivo de forma más eficiente (véase :issue:`33671`). \"copia " -"rápida\" significa que la operación de copia ocurre dentro del núcleo, " -"evitando el uso de búferes de espacio de usuario en Python como en \"``outfd." -"write(infd.read())``\"." +"func:`move`) puede usar llamadas a sistema de \"copia rápida\" específicas a " +"cada plataforma para poder copiar el archivo de forma más eficiente (véase :" +"issue:`33671`). \"copia rápida\" significa que la operación de copia ocurre " +"dentro del núcleo, evitando el uso de búferes en espacio de usuario en " +"Python como en \"``outfd.write(infd.read())``\"." #: ../Doc/library/shutil.rst:454 msgid "On macOS `fcopyfile`_ is used to copy the file content (not metadata)." msgstr "" -"En macOS, se usar `fcopyfile`_ para copiar el contenido del archivo (pero no " +"En macOS, se usa `fcopyfile`_ para copiar el contenido del archivo (pero no " "los metadatos)." #: ../Doc/library/shutil.rst:456 @@ -928,27 +927,27 @@ msgstr "" "módulo :mod:`bz2` está disponible), o \"xztar\" (si el módulo :mod:`lzma`)." #: ../Doc/library/shutil.rst:573 -#, fuzzy msgid "" "*root_dir* is a directory that will be the root directory of the archive, " "all paths in the archive will be relative to it; for example, we typically " "chdir into *root_dir* before creating the archive." msgstr "" -"*root_dir* es un directorio que será el directorio raíz del archivo; por " -"ejemplo, iremos al directorio (*chdir*) a *root_dir* antes de crear el " -"archivo." +"*root_dir* es un directorio que será el directorio raíz del archivo, todas " +"las rutas en el archivo serán relativas a él; por ejemplo, típicamente nos " +"cambiaremos de directorio (*chdir*) a *root_dir* antes de crear el archivo." #: ../Doc/library/shutil.rst:577 -#, fuzzy msgid "" "*base_dir* is the directory where we start archiving from; i.e. *base_dir* " "will be the common prefix of all files and directories in the archive. " "*base_dir* must be given relative to *root_dir*. See :ref:`shutil-archiving-" "example-with-basedir` for how to use *base_dir* and *root_dir* together." msgstr "" -"*base_dir* es el directorio desde donde iniciamos el archivado ; por " -"ejemplo, *base_dir* será el prefijo común para todos los archivos y " -"directorios en el archivo." +"*base_dir* es el directorio desde donde iniciamos el archivado; i.e, " +"*base_dir* será el prefijo común para todos los archivos y directorios en el " +"archivo. *base_dir* debe ser dado de forma relativa a *root_dir*. En :ref:" +"`shutil-archiving-example-with-basedir` se ve un ejemplo de cómo usar " +"*base_dir* y *root_dir* juntos." #: ../Doc/library/shutil.rst:583 msgid "*root_dir* and *base_dir* both default to the current directory." @@ -1018,7 +1017,7 @@ msgstr "*zip*: archivo ZIP (si el módulo :mod:`zlib` está disponible)." msgid "" "*tar*: Uncompressed tar file. Uses POSIX.1-2001 pax format for new archives." msgstr "" -"*tar*: archivo tar sin comprimir. Utiliza POSIX.1-2001 formato pax para " +"*tar*: archivo tar sin comprimir. Utiliza el formato pax POSIX.1-2001 para " "archivos nuevos." #: ../Doc/library/shutil.rst:612 ../Doc/library/shutil.rst:695 @@ -1213,9 +1212,8 @@ msgid "The resulting archive contains:" msgstr "El archivo resultante contiene:" #: ../Doc/library/shutil.rst:736 -#, fuzzy msgid "Archiving example with *base_dir*" -msgstr "Ejemplo de archivado" +msgstr "Ejemplo de archivado con *base_dir*" #: ../Doc/library/shutil.rst:738 msgid "" @@ -1223,16 +1221,21 @@ msgid "" "show how to use :func:`make_archive`, but this time with the usage of " "*base_dir*. We now have the following directory structure:" msgstr "" +"En este ejemplo, similar al `de arriba `_, " +"mostramos cómo usar :func:`make_archive`, pero esta vez utilizando " +"*base_dir*. Ahora tenemos la siguiente estructura de directorios:" #: ../Doc/library/shutil.rst:752 msgid "" "In the final archive, :file:`please_add.txt` should be included, but :file:" "`do_not_add.txt` should not. Therefore we use the following::" msgstr "" +"En el archivo final, :file:`please_add.txt` debería estar incluido, pero :" +"file:`do_not_add.txt` no. Por lo tanto usamos lo siguiente::" #: ../Doc/library/shutil.rst:766 msgid "Listing the files in the resulting archive gives us:" -msgstr "" +msgstr "Listando los archivos en el archivo resultante nos da:" #: ../Doc/library/shutil.rst:776 msgid "Querying the size of the output terminal" @@ -1258,7 +1261,7 @@ msgid "" "terminal connected to :data:`sys.__stdout__` is queried by invoking :func:" "`os.get_terminal_size`." msgstr "" -"Cuando `COLUMNS`` o ``LINES`` no está definido, como suele ocurrir, la " +"Cuando ``COLUMNS`` o ``LINES`` no está definido, como suele ocurrir, la " "terminal conectada a :data:`sys.__stdout__` se consulta invocando :func:`os." "get_terminal_size`." @@ -1283,10 +1286,9 @@ msgstr "" "terminal_size`." #: ../Doc/library/shutil.rst:798 -#, fuzzy msgid "" "See also: The Single UNIX Specification, Version 2, `Other Environment " "Variables`_." msgstr "" -"Véase también: *The Single UNIX Specification*, Versión 2, `Other " -"Environment Variables`_." +"Ver también: *The Single UNIX Specification*, Versión 2, `Other Environment " +"Variables`_." diff --git a/library/signal.po b/library/signal.po index 080a5dcccb..43663e827a 100644 --- a/library/signal.po +++ b/library/signal.po @@ -11,17 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-18 10:12+0800\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "X-Generator: Poedit 2.4.2\n" +"Last-Translator: Rodrigo Tobar \n" #: ../Doc/library/signal.rst:2 msgid ":mod:`signal` --- Set handlers for asynchronous events" @@ -97,7 +96,7 @@ msgstr "" "const:`SIGSEGV` que son causados por una operación no válida en código C. " "Python retornará desde el gestor de señales a código C, que es probable que " "extienda la misma señal otra vez, ocasionando que Python se cuelgue " -"aparentente. Desde Python 3.3 en adelante, puedes usar el módulo :mod:" +"aparentemente. Desde Python 3.3 en adelante, puedes usar el módulo :mod:" "`faulthandler` para reportar errores síncronos." #: ../Doc/library/signal.rst:44 @@ -197,7 +196,7 @@ msgstr "Señal de temporizador de :manpage:`alarm(2)`." #: ../Doc/library/signal.rst:190 ../Doc/library/signal.rst:196 #: ../Doc/library/signal.rst:447 ../Doc/library/signal.rst:454 msgid ":ref:`Availability `: Unix." -msgstr ":ref:`Availability `: Unix." +msgstr ":ref:`Disponibilidad `: Unix." #: ../Doc/library/signal.rst:106 msgid "Interrupt from keyboard (CTRL + BREAK)." @@ -206,7 +205,7 @@ msgstr "Interrumpir desde el teclado (CTRL + BREAK)." #: ../Doc/library/signal.rst:108 ../Doc/library/signal.rst:215 #: ../Doc/library/signal.rst:225 msgid ":ref:`Availability `: Windows." -msgstr ":ref:`Availability `: Windows." +msgstr ":ref:`Disponibilidad `: Windows." #: ../Doc/library/signal.rst:112 msgid "Bus error (bad memory access)." @@ -511,14 +510,19 @@ msgid "" "``None``. The *flags* argument is provided for future extensions; no flag " "values are currently defined." msgstr "" +"Envía la señal *sig* al proceso referido por el descriptor de archivo " +"*pidfd*. Python actualmente no soporta el parámetro *siginfo*; éste debe ser " +"``None``. El argumento *flags* está proveído para extensiones futuras; no " +"hay valores actualmente definidos para *flags*." #: ../Doc/library/signal.rst:361 msgid "See the :manpage:`pidfd_send_signal(2)` man page for more information." msgstr "" +"Para más información vea la página de manual :manpage:`pidfd_send_signal(2)`." #: ../Doc/library/signal.rst:363 msgid ":ref:`Availability `: Linux 5.1+" -msgstr "" +msgstr ":ref:`Disponibilidad `: Linux 5.1+" #: ../Doc/library/signal.rst:369 msgid "" diff --git a/library/smtpd.po b/library/smtpd.po index 2c631452ea..7039b775dd 100644 --- a/library/smtpd.po +++ b/library/smtpd.po @@ -212,7 +212,8 @@ msgid "" msgstr "" "Las implementaciones de ``process_message`` deben usar la firma ``**kwargs`` " "para aceptar argumentos por palabra clave arbitrarios, ya que las mejoras de " -"características futuras pueden agregar claves al diccionario kwargs." +"características futuras pueden agregar claves al diccionario de argumentos " +"de palabras clave." #: ../Doc/library/smtpd.rst:101 msgid "" diff --git a/library/smtplib.po b/library/smtplib.po index 41678b78e5..d1b7e78e05 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-12-21 19:42+0100\n" -"Last-Translator: Cristián Maureira-Fredes \n" +"PO-Revision-Date: 2021-08-12 16:18+0200\n" +"Last-Translator: Diego Cristobal Herreros \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/smtplib.rst:2 msgid ":mod:`smtplib` --- SMTP protocol client" @@ -133,6 +134,8 @@ msgid "" "If the *timeout* parameter is set to be zero, it will raise a :class:" "`ValueError` to prevent the creation of a non-blocking socket" msgstr "" +"Si el parámetro *timeout* se mantiene en cero, lanzará un :class:" +"`ValueError` para evitar la creación de un socket no bloqueante" #: ../Doc/library/smtplib.rst:81 msgid "" @@ -221,7 +224,7 @@ msgstr "" #: ../Doc/library/smtplib.rst:132 msgid "The optional *timeout* parameter was added." -msgstr "" +msgstr "Se ha añadido el parámetro opcional *timeout*." #: ../Doc/library/smtplib.rst:136 msgid "A nice selection of exceptions is defined as well:" diff --git a/library/socket.po b/library/socket.po index 948cf572a5..fa132f4cbf 100644 --- a/library/socket.po +++ b/library/socket.po @@ -11,13 +11,13 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2021-09-17 13:34-0500\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0\n" "Last-Translator: \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Language: es_ES\n" @@ -118,6 +118,17 @@ msgid "" "deal with both types of address. A string or bytes-like object can be used " "for either type of address when passing it as an argument." msgstr "" +"La dirección de un socket :const:`AF_UNIX` enlazado a un nodo del sistema de " +"archivos es representado como una cadena de caracteres, utilizando la " +"codificación del sistema de archivos y el controlador de errores " +"``'surrogateescape'`` (Observar :pep:`383`). Una dirección en el espacio de " +"nombre abstracto de Linux es devuelvo como un :term:`bytes-like object` con " +"un byte inicial nulo; tenga en cuenta que los sockets en este nombre de " +"espacio puede comunicarse con sockets normales del sistema de archivos, así " +"que los programas destinados a correr en Linux podrían necesitar tratar con " +"ambos tipos de direcciones. Se puede pasar un objeto similar a una cadena de " +"caracteres o bytes para cualquier tipo de dirección al pasarlo como " +"argumento." #: ../Doc/library/socket.rst:59 msgid "" @@ -152,6 +163,12 @@ msgid "" "you may want to avoid these if you intend to support IPv6 with your Python " "programs." msgstr "" +"Para direcciones IPv4, se aceptan dos formas especiales en lugar de una " +"dirección de host: ``’’`` representa :const:`INADDR_ANY`, que se utiliza " +"para enlazar a todas las interfaces, y la cadena de caracteres " +"``''`` representa :const:`INADDR_BROADCAST`. Este comportamiento " +"no es compatible con IPv6, por lo tanto, es posible que desee evitarlos sí " +"tiene la intención de admitir IPv6 con sus programas Python." #: ../Doc/library/socket.rst:80 msgid "" @@ -163,6 +180,13 @@ msgid "" "omission of *scope_id* can cause problems in manipulating scoped IPv6 " "addresses." msgstr "" +"Para la familia de direcciones :const:`AF_INET6`, se utiliza una ``(host, " +"port, flowinfo, scope_id)`` de cuatro tuplas, donde *flowinfo* y *scope_id* " +"representan los miembros ``sin6_flowinfo`` y ``sin6_scope_id`` en :const:" +"`struct sockaddr_in6` en C. Para los métodos de los módulos :mod:`socket`, " +"*flowinfo* y *scope_id* pueden ser omitidos solo por compatibilidad con " +"versiones anteriores. Sin embargo la omisión de *scope_id* puede causar " +"problemas en la manipulación de direcciones IPv6 con ámbito." #: ../Doc/library/socket.rst:87 #, python-format @@ -208,18 +232,25 @@ msgid "" "*scope* is one of :const:`TIPC_ZONE_SCOPE`, :const:`TIPC_CLUSTER_SCOPE`, " "and :const:`TIPC_NODE_SCOPE`." msgstr "" +"*scope* es una de :const:`TIPC_ZONE_SCOPE`, :const:`TIPC_CLUSTER_SCOPE`, y :" +"const:`TIPC_NODE_SCOPE`." #: ../Doc/library/socket.rst:104 msgid "" "If *addr_type* is :const:`TIPC_ADDR_NAME`, then *v1* is the server type, " "*v2* is the port identifier, and *v3* should be 0." msgstr "" +"Si *addr_type* es :const:`TIPC_ADDR_NAME`, entonces *v1* es el tipo de " +"servidor, *v2* es el identificador de puerto, y *v3* debe ser 0." #: ../Doc/library/socket.rst:107 msgid "" "If *addr_type* is :const:`TIPC_ADDR_NAMESEQ`, then *v1* is the server type, " "*v2* is the lower port number, and *v3* is the upper port number." msgstr "" +"Si *addr_type* es :const:`TIPC_ADDR_NAMESEQ`, entonces *v1* es el tipo de " +"servidor, *v2* es el numero de puerto inferior, y *v3* es el numero de " +"puerto superior." #: ../Doc/library/socket.rst:110 msgid "" @@ -236,6 +267,11 @@ msgid "" "``'can0'``. The network interface name ``''`` can be used to receive packets " "from all network interfaces of this family." msgstr "" +"Una tupla ``(interface, )`` es usada para la dirección de familia :const:" +"`AF_CAN`, donde *interface* es una cadena de caracteres representando a un " +"nombre de interfaz de red como ``’can0’``. La interfaz de red llamada ``''`` " +"puede ser usada para recibir paquetes de todas las interfaces de red de esta " +"familia." #: ../Doc/library/socket.rst:118 msgid "" @@ -243,6 +279,9 @@ msgid "" "tx_addr)`` where both additional parameters are unsigned long integer that " "represent a CAN identifier (standard or extended)." msgstr "" +"Protocolo :const:`CAN_ISOTP` requiere una tupla ``(interface, rx_addr, " +"tx_addr)`` donde ambos tiene parámetros adicionales son enteres largos sin " +"símbolos que representan una identificador CAN (estándar o extendido)." #: ../Doc/library/socket.rst:121 msgid "" @@ -251,6 +290,11 @@ msgid "" "name, a 32-bit unsigned integer representing the Parameter Group Number " "(PGN), and an 8-bit integer representing the address." msgstr "" +"Protocolo :const:`CAN_J1939` requiere una tupla ``(interface, name, pgn, " +"addr)`` donde los parámetros adicionales son números enteros sin signo de 64 " +"bits representando el nombre ECU, los enteros sin signo de 32-bits " +"representan el numero de grupo de parámetros(PGN), y los enteros de 8-bit " +"representan la dirección." #: ../Doc/library/socket.rst:126 msgid "" @@ -278,12 +322,16 @@ msgid "" ":const:`BTPROTO_L2CAP` accepts ``(bdaddr, psm)`` where ``bdaddr`` is the " "Bluetooth address as a string and ``psm`` is an integer." msgstr "" +":const:`BTPROTO_L2CAP` acepta ``(bdaddr, psm)`` donde ``bdaddr`` es la " +"dirección Bluetooth como una cadena de caracteres y ``psm`` es un entero." #: ../Doc/library/socket.rst:140 msgid "" ":const:`BTPROTO_RFCOMM` accepts ``(bdaddr, channel)`` where ``bdaddr`` is " "the Bluetooth address as a string and ``channel`` is an integer." msgstr "" +":const:`BTPROTO_RFCOMM` acepta ``(bdaddr, channel)`` donde ``bdaddr`` es la " +"dirección Bluetooth como una cadena de caracteres y ``channel`` es un entero." #: ../Doc/library/socket.rst:143 msgid "" @@ -292,6 +340,10 @@ msgid "" "depends on your OS; NetBSD and DragonFlyBSD expect a Bluetooth address while " "everything else expects an integer.)" msgstr "" +":const:`BTPROTO_HCI` acepta ``(device_id,)`` donde ``device_id`` es un " +"numero entero o una cadena de caracteres con la dirección Bluetooth de la " +"interfaz. (Esto depende de tu OS; NetBSD y DragonFlyBSD supone una dirección " +"Bluetooth mientras todo lo demás espera un entero.)" #: ../Doc/library/socket.rst:148 msgid "NetBSD and DragonFlyBSD support added." @@ -303,6 +355,9 @@ msgid "" "object containing the Bluetooth address in a string format. (ex. " "``b'12:23:34:45:56:67'``) This protocol is not supported under FreeBSD." msgstr "" +":const:`BTPROTO_SCO` acepta ``bdaddr`` donde ``bdaddr`` es un objeto :class:" +"`bytes` que contiene la dirección Bluetooth en un formato cadena. (ex. " +"``b’12:23:34:45:56:67’``) este protocolo no es admitido bajo FreeBSD." #: ../Doc/library/socket.rst:156 msgid "" @@ -319,12 +374,17 @@ msgid "" "*type* is the algorithm type as string, e.g. ``aead``, ``hash``, " "``skcipher`` or ``rng``." msgstr "" +"*type* es el tipo de algoritmos como cadenas de caracteres, e.g. ``aead``, " +"``hash``, ``skcipher`` o ``rng``." #: ../Doc/library/socket.rst:163 msgid "" "*name* is the algorithm name and operation mode as string, e.g. ``sha256``, " "``hmac(sha256)``, ``cbc(aes)`` or ``drbg_nopr_ctr_aes256``." msgstr "" +"*name* es el nombre del algoritmo y el modo de operación como cadena de " +"caracteres, e.g. ``sha256``, ``hmac(sha256)``, ``cbc(aes)`` o " +"``drbg_nopr_ctr_aes256``." #: ../Doc/library/socket.rst:166 msgid "*feat* and *mask* are unsigned 32bit integers." @@ -336,6 +396,9 @@ msgid "" "hosts. The sockets are represented as a ``(CID, port)`` tuple where the " "context ID or CID and port are integers." msgstr "" +":const:`AF_VSOCK` permite comunicación entre maquinas virtuales y sus hosts. " +"Los sockets están representando como una tupla ``(CID, port)`` donde el " +"contexto del ID o CID y el puerto son enteros." #: ../Doc/library/socket.rst:180 msgid "" @@ -343,6 +406,9 @@ msgid "" "packets are represented by the tuple ``(ifname, proto[, pkttype[, hatype[, " "addr]]])`` where:" msgstr "" +":const:`AF_PACKET` es una interfaz de bajo nivel directa con los " +"dispositivos de red. Los paquetes están representados por la tupla " +"``(ifname, proto[, pkttype[, hatype[, addr]]])`` donde:" #: ../Doc/library/socket.rst:184 msgid "*ifname* - String specifying the device name." @@ -358,42 +424,52 @@ msgstr "" #: ../Doc/library/socket.rst:187 msgid "*pkttype* - Optional integer specifying the packet type:" -msgstr "" +msgstr "*pkttype* - Entero opcional especificando el tipo de paquete:" #: ../Doc/library/socket.rst:189 msgid "``PACKET_HOST`` (the default) - Packet addressed to the local host." -msgstr "" +msgstr "``PACKET_HOST`` (por defecto) - Paquetes diseccionado al local host." #: ../Doc/library/socket.rst:190 msgid "``PACKET_BROADCAST`` - Physical-layer broadcast packet." -msgstr "" +msgstr "``PACKET_BROADCAST`` - Paquete de transmisión de la capa física." #: ../Doc/library/socket.rst:191 msgid "" "``PACKET_MULTIHOST`` - Packet sent to a physical-layer multicast address." msgstr "" +"``PACKET_MULTIHOST`` - Paquete enviado a una dirección de multidifusión de " +"capa física." #: ../Doc/library/socket.rst:192 msgid "" "``PACKET_OTHERHOST`` - Packet to some other host that has been caught by a " "device driver in promiscuous mode." msgstr "" +"``PACKET_OTHERHOST`` - Paquete a otro host que haya sido capturado por un " +"controlador de dispositivo en modo promiscuo." #: ../Doc/library/socket.rst:194 msgid "" "``PACKET_OUTGOING`` - Packet originating from the local host that is looped " "back to a packet socket." msgstr "" +"``PACKET_OUTGOING`` - Paquete originalmente desde el local host que se " +"enlaza de nuevo a un conector de paquetes." #: ../Doc/library/socket.rst:196 msgid "*hatype* - Optional integer specifying the ARP hardware address type." msgstr "" +"*hatype* - Entero opcional que especifica el tipo de dirección de hardware " +"ARP." #: ../Doc/library/socket.rst:197 msgid "" "*addr* - Optional bytes-like object specifying the hardware physical " "address, whose interpretation depends on the device." msgstr "" +"*addr* - Objeto opcional en forma de bytes que especifica la dirección " +"física del hardware, cuya interpretación depende del dispositivo." #: ../Doc/library/socket.rst:200 msgid "" @@ -417,6 +493,14 @@ msgid "" "UDPLITE_RECV_CSCOV, length)`` will filter out packets which cover too little " "of their data. In both cases ``length`` should be in ``range(8, 2**16, 8)``." msgstr "" +":const:`IPPROTO_UDPLITE` es una variante de UDO que te permite especificar " +"que porción del paquete es cubierta con la suma de comprobación. Esto agrega " +"dos opciones al socket que pueden cambiar. ``self." +"setsockopt(IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, length)`` cambiara que parte " +"de los paquetes salientes están cubierta por la suma de comprobación y " +"``self.setsockopt(IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, length)`` filtrara " +"los paquetes que permitirá cubrir una pequeña parte de tu datos. En ambos " +"casos ``length`` deben estar en ``range(8, 2**16, 8)``." #: ../Doc/library/socket.rst:216 msgid "" @@ -424,6 +508,9 @@ msgid "" "IPPROTO_UDPLITE)`` for IPv4 or ``socket(AF_INET6, SOCK_DGRAM, " "IPPROTO_UDPLITE)`` for IPv6." msgstr "" +"Tal socket debe construirse como ``socket(AF_INET, SOCK_DGRAM, " +"IPPROTO_UDPLITE)`` para IPV4 o `socket(AF_INET6, SOCK_DGRAM, " +"IPPROTO_UDPLITE)`` para IPV6." #: ../Doc/library/socket.rst:224 msgid "" @@ -484,6 +571,7 @@ msgstr "Un alias en desuso de :exc:`OSError`." #: ../Doc/library/socket.rst:254 msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." msgstr "" +"Siguiendo :pep:`3151`, es clase fue creada como un alias de :exc:`OSError`." #: ../Doc/library/socket.rst:260 msgid "" @@ -505,7 +593,7 @@ msgstr "" #: ../Doc/library/socket.rst:268 ../Doc/library/socket.rst:281 #: ../Doc/library/socket.rst:292 msgid "This class was made a subclass of :exc:`OSError`." -msgstr "" +msgstr "Esta clase fue creada como una subclase de :exc:`OSError`." #: ../Doc/library/socket.rst:273 msgid "" @@ -516,6 +604,13 @@ msgid "" "by the :c:func:`gai_strerror` C function. The numeric *error* value will " "match one of the :const:`EAI_\\*` constants defined in this module." msgstr "" +"Una subclase de :exc:`OSError`, esta excepción se genera por errores " +"relacionados a la dirección por :func:`getaddrinfo` y :func:`getnameinfo`. " +"El valor de acompañamiento es un par ``(error, string)`` representado un " +"error retornado por una llamada de librería. *string* representa la " +"descripción del *error*, tal como es retornado por la función C :c:func:" +"`gai_strerror`. El valor numérico *error* coincide con una de las " +"constantes :const:`EAI_\\*` definidas en este modulo." #: ../Doc/library/socket.rst:286 msgid "" @@ -525,6 +620,12 @@ msgid "" "setdefaulttimeout`). The accompanying value is a string whose value is " "currently always \"timed out\"." msgstr "" +"Una subclase de :exc:`OSError`, esta excepción se genera cuando ocurre un " +"*timeout* en un socket que ha tenido tiempos de espera habilitados a través " +"de una llamada previa a :meth:`~socket.settimeout` ( o implícitamente " +"mediante :func:`~socket.setdefaulttimeout`). El valor del acompañamiento es " +"una cadena de caracteres cuyo valor es actualmente siempre “tiempo de " +"espera”." #: ../Doc/library/socket.rst:297 msgid "Constants" @@ -535,6 +636,8 @@ msgid "" "The AF_* and SOCK_* constants are now :class:`AddressFamily` and :class:" "`SocketKind` :class:`.IntEnum` collections." msgstr "" +"Las constantes AF_* y SOCK_* ahora son colecciones: :class:`AddressFamily` " +"y :class:`SocketKind` :class:`.IntEnum`." #: ../Doc/library/socket.rst:308 msgid "" @@ -543,6 +646,10 @@ msgid "" "defined then this protocol is unsupported. More constants may be available " "depending on the system." msgstr "" +"Estas constantes representan la familias de direcciones (y protocolos), " +"usados para el primer argumento para :func:`.socket`. Si la constante :const:" +"`AF_UNIX` no esta definida entonces este protocolo no es compatible. Mas " +"constantes podrían estar disponibles dependiendo del sistema." #: ../Doc/library/socket.rst:320 msgid "" @@ -551,6 +658,10 @@ msgid "" "(Only :const:`SOCK_STREAM` and :const:`SOCK_DGRAM` appear to be generally " "useful.)" msgstr "" +"Estas constantes representan los tipos de socket, usadas por el segundo " +"argumento para :func:`.socket`. Mas constante podrían estar disponibles " +"dependiendo del sistema. ( Solamente :const:`SOCK_STREAM` y :const:" +"`SOCK_DGRAM` parecen ser útiles en general.)" #: ../Doc/library/socket.rst:328 msgid "" @@ -567,10 +678,12 @@ msgid "" "`Secure File Descriptor Handling `_ for a more thorough explanation." msgstr "" +"`Secure File Descriptor Handling `_ para una explicación más completa." #: ../Doc/library/socket.rst:338 msgid ":ref:`Availability `: Linux >= 2.6.27." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 2.6.27." #: ../Doc/library/socket.rst:356 msgid "" @@ -593,22 +706,28 @@ msgid "" "``SO_DOMAIN``, ``SO_PROTOCOL``, ``SO_PEERSEC``, ``SO_PASSSEC``, " "``TCP_USER_TIMEOUT``, ``TCP_CONGESTION`` were added." msgstr "" +"``SO_DOMAIN``, ``SO_PROTOCOL``, ``SO_PEERSEC``, ``SO_PASSSEC``, " +"``TCP_USER_TIMEOUT``, ``TCP_CONGESTION`` han sido agregados." #: ../Doc/library/socket.rst:367 msgid "" "On Windows, ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` appear if run-time Windows " "supports." msgstr "" +"En Windows, ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` aparecen si el tiempo de " +"ejecución de Windows lo admite." #: ../Doc/library/socket.rst:371 msgid "``TCP_NOTSENT_LOWAT`` was added." -msgstr "" +msgstr "``TCP_NOTSENT_LOWAT`` ha sido agregada." #: ../Doc/library/socket.rst:374 msgid "" "On Windows, ``TCP_KEEPIDLE``, ``TCP_KEEPINTVL`` appear if run-time Windows " "supports." msgstr "" +"En Windows, ``TCP_KEEPIDLE``, ``TCP_KEEPINTVL`` aparecen si el tiempo de " +"ejecución de Windows lo admite." #: ../Doc/library/socket.rst:382 ../Doc/library/socket.rst:449 #: ../Doc/library/socket.rst:460 @@ -622,7 +741,7 @@ msgstr "" #: ../Doc/library/socket.rst:386 ../Doc/library/socket.rst:397 #: ../Doc/library/socket.rst:432 msgid ":ref:`Availability `: Linux >= 2.6.25." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 2.6.25." #: ../Doc/library/socket.rst:392 msgid "" @@ -630,11 +749,16 @@ msgid "" "protocol. Broadcast manager constants, documented in the Linux " "documentation, are also defined in the socket module." msgstr "" +"CAN_BCM, en la familia de protocolo CAN, es el protocolo del administrador " +"de difusión (BCM. Las constantes del administrador de difusión, documentada " +"en la documentación de Linux, también esta definidos en el modulo socket." #: ../Doc/library/socket.rst:399 msgid "" "The :data:`CAN_BCM_CAN_FD_FRAME` flag is only available on Linux >= 4.8." msgstr "" +"El indicador :data:`CAN_BCM_CAN_FD_FRAME` esta solamente disponible en Linux " +">= 4.8." #: ../Doc/library/socket.rst:405 msgid "" @@ -653,51 +777,59 @@ msgstr "Esta constante se documenta en la documentación de Linux." #: ../Doc/library/socket.rst:412 msgid ":ref:`Availability `: Linux >= 3.6." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 3.6." #: ../Doc/library/socket.rst:417 msgid "" "Joins the applied CAN filters such that only CAN frames that match all given " "CAN filters are passed to user space." msgstr "" +"Se une a los filtros CAN aplicados de modo que solo las tramas CAN que " +"coinciden con todos los filtros CAN dados se pasan al espacio del usuario." #: ../Doc/library/socket.rst:423 msgid ":ref:`Availability `: Linux >= 4.1." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 4.1." #: ../Doc/library/socket.rst:428 msgid "" "CAN_ISOTP, in the CAN protocol family, is the ISO-TP (ISO 15765-2) protocol. " "ISO-TP constants, documented in the Linux documentation." msgstr "" +"CAN_ISOTP, en el protocolo de familia CAN, es el protocolo ISO-TP (ISO " +"15765-2). Constantes ISO-TP, documentadas en la documentación Linux." #: ../Doc/library/socket.rst:437 msgid "" "CAN_J1939, in the CAN protocol family, is the SAE J1939 protocol. J1939 " "constants, documented in the Linux documentation." msgstr "" +"CAN_J1939, en el protocolo de familias CAN, es el protocolo SAE J1939. " +"Constantes J1939, documentadas en el documentación Linux." #: ../Doc/library/socket.rst:441 msgid ":ref:`Availability `: Linux >= 5.4." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 5.4." #: ../Doc/library/socket.rst:452 msgid ":ref:`Availability `: Linux >= 2.2." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 2.2." #: ../Doc/library/socket.rst:464 msgid ":ref:`Availability `: Linux >= 2.6.30." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 2.6.30." #: ../Doc/library/socket.rst:473 msgid "" "Constants for Windows' WSAIoctl(). The constants are used as arguments to " "the :meth:`~socket.socket.ioctl` method of socket objects." msgstr "" +"Constantes para Windows’ WSAIoctl(). Las constantes se utiliza como " +"argumentos al método :meth:`~socket.socket.ioctl` de objetos de sockets." #: ../Doc/library/socket.rst:476 ../Doc/library/socket.rst:1333 msgid "``SIO_LOOPBACK_FAST_PATH`` was added." -msgstr "" +msgstr "``SIO_LOOPBACK_FAST_PATH`` ha sido agregado." #: ../Doc/library/socket.rst:482 msgid "" @@ -710,11 +842,11 @@ msgstr "" #: ../Doc/library/socket.rst:489 msgid "Constants for Linux Kernel cryptography." -msgstr "" +msgstr "Constantes para la criptográfica del Kernel de Linux." #: ../Doc/library/socket.rst:492 ../Doc/library/socket.rst:1633 msgid ":ref:`Availability `: Linux >= 2.6.38." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 2.6.38." #: ../Doc/library/socket.rst:501 msgid "Constants for Linux host/guest communication." @@ -722,11 +854,11 @@ msgstr "Constantes para la comunicación host/invitado de Linux." #: ../Doc/library/socket.rst:504 msgid ":ref:`Availability `: Linux >= 4.8." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 4.8." #: ../Doc/library/socket.rst:510 msgid ":ref:`Availability `: BSD, OSX." -msgstr "" +msgstr ":ref:`Availability `: BSD, OSX." #: ../Doc/library/socket.rst:515 msgid "" @@ -742,6 +874,10 @@ msgid "" "meanings. For example, :const:`BDADDR_ANY` can be used to indicate any " "address when specifying the binding socket with :const:`BTPROTO_RFCOMM`." msgstr "" +"Estas son constantes de cadenas que contienen direcciones Bluetooth con " +"significados especiales. Por ejemplo :const:`BDADDR_ANY` son usados para " +"indicar cualquier dirección al especificar el socket vinculante con :const:" +"`BTPROTO_RFCOMM`." #: ../Doc/library/socket.rst:530 msgid "" @@ -749,16 +885,21 @@ msgid "" "NetBSD or DragonFlyBSD. :const:`HCI_TIME_STAMP` and :const:`HCI_DATA_DIR` " "are not available for FreeBSD, NetBSD, or DragonFlyBSD." msgstr "" +"Para usar con :const:`BTPROTO_HCI`. :const:`HCI_FILTER` no esta disponible " +"para NetBSD o DragonFlyBSD. :const:`HCI_TIME_STAMP` y :const:`HCI_DATA_DIR` " +"no esta disponible para FreeBSD, NetBSD, o DragonFlyBSD." #: ../Doc/library/socket.rst:537 msgid "" "Constant for Qualcomm's IPC router protocol, used to communicate with " "service providing remote processors." msgstr "" +"Constante para el protocolo de router IPC de Qualcomm, que se utiliza para " +"comunicarse con procesadores remotos que brindan servicios." #: ../Doc/library/socket.rst:540 msgid ":ref:`Availability `: Linux >= 4.7." -msgstr "" +msgstr ":ref:`Availability `: Linux >= 4.7." #: ../Doc/library/socket.rst:543 msgid "Functions" @@ -772,6 +913,7 @@ msgstr "Creación de sockets" msgid "" "The following functions all create :ref:`socket objects `." msgstr "" +"Todas las siguientes funciones crean :ref:`socket objects `." #: ../Doc/library/socket.rst:553 msgid "" @@ -785,6 +927,15 @@ msgid "" "of :const:`CAN_RAW`, :const:`CAN_BCM`, :const:`CAN_ISOTP` or :const:" "`CAN_J1939`." msgstr "" +"Crear un nuevo socket usando la dirección de familia dada, tipo de socket y " +"el numero de protocolo. La dirección de familia debería ser :const:`AF_INET` " +"(por defecto), :const:`AF_INET6`, :const:`AF_UNIX`, :const:`AF_CAN`, :const:" +"`AF_PACKET`, o :const:`AF_RDS`. El tipo de socket debería ser :const:" +"`SOCK_STREAM` (por defecto), :const:`SOCK_DGRAM`, :const:`SOCK_RAW` o quizás " +"una de las otras constantes ``SOCK_``. El numero de protocolo es usualmente " +"cero u omitirse o en el caso donde la familia de dirección es :const:" +"`AF_CAN` el protocolo debería ser uno de :const:`CAN_RAW`, :const:" +"`CAN_BCM`, :const:`CAN_ISOTP` o :const:`CAN_J1939`." #: ../Doc/library/socket.rst:563 msgid "" @@ -796,17 +947,27 @@ msgid "" "`socket.fromfd`, *fileno* will return the same socket and not a duplicate. " "This may help close a detached socket using :meth:`socket.close()`." msgstr "" +"Si *fileno* esta especificado, el valor de *family*, *type*, y *proto* son " +"detectados automáticamente por el descriptor especificado de archivo. La " +"detección automática se puede anular llamado la función con los argumentos " +"explícitos *family*, *type*, o *proto*. Esto solamente afecta como Python " +"representa e.g. el valor de retorno de :meth:`socket.getpeername` pero no " +"del recurso actual del OS. Diferente a :func:`socket.fromfd`, *fileno* " +"retornara el mismo socket y no un duplicado. Esto puede ayudar a cerrar un " +"socket desconectado usando :meth:`socket.close()`." #: ../Doc/library/socket.rst:572 ../Doc/library/socket.rst:706 #: ../Doc/library/socket.rst:1163 ../Doc/library/socket.rst:1250 msgid "The newly created socket is :ref:`non-inheritable `." -msgstr "" +msgstr "El socket recién creado es :ref:`non-inheritable `." #: ../Doc/library/socket.rst:574 msgid "" "Raises an :ref:`auditing event ` ``socket.__new__`` with arguments " "``self``, ``family``, ``type``, ``protocol``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.__new__`` con los " +"argumentos ``self``, ``family``, ``type``, ``protocol``." #: ../Doc/library/socket.rst:576 msgid "The AF_CAN family was added. The AF_RDS family was added." @@ -814,7 +975,7 @@ msgstr "Se añadió la familia AF_CAN. Se añadió la familia AF_RDS." #: ../Doc/library/socket.rst:580 msgid "The CAN_BCM protocol was added." -msgstr "" +msgstr "El protocolo CAN_BCM ha sido agregado." #: ../Doc/library/socket.rst:583 ../Doc/library/socket.rst:708 msgid "The returned socket is now non-inheritable." @@ -822,7 +983,7 @@ msgstr "Los sockets devueltos ahora no son heredables." #: ../Doc/library/socket.rst:586 msgid "The CAN_ISOTP protocol was added." -msgstr "" +msgstr "El protocolo CAN_ISOTP ha sido agregado." #: ../Doc/library/socket.rst:589 msgid "" @@ -830,16 +991,22 @@ msgid "" "to *type* they are cleared, and :attr:`socket.type` will not reflect them. " "They are still passed to the underlying system `socket()` call. Therefore," msgstr "" +"Cuando las banderas bit :const:`SOCK_NONBLOCK` or :const:`SOCK_CLOEXEC` esta " +"aplicados a *type* se borran, y :attr:`socket.type` no reflejan eso. Todavía " +"se pasan a la llamada `socket ()` del sistema subyacente. Por lo tanto," #: ../Doc/library/socket.rst:601 msgid "" "will still create a non-blocking socket on OSes that support " "``SOCK_NONBLOCK``, but ``sock.type`` will be set to ``socket.SOCK_STREAM``." msgstr "" +"seguirá creando un socket sin bloqueo en los sistemas operativos que admiten " +"``SOCK_NONBLOCK``, pero ``sock.type`` se establecerá en ``socket." +"SOCK_STREAM``." #: ../Doc/library/socket.rst:605 msgid "The CAN_J1939 protocol was added." -msgstr "" +msgstr "El protocolo CAN_J1939 ha sido agregado." #: ../Doc/library/socket.rst:610 msgid "" @@ -859,6 +1026,8 @@ msgstr "" #: ../Doc/library/socket.rst:615 msgid "The newly created sockets are :ref:`non-inheritable `." msgstr "" +"Los sockets creados recientemente son :ref:`non-inheritable " +"`." #: ../Doc/library/socket.rst:617 msgid "" @@ -886,6 +1055,13 @@ msgid "" "succeeds. This makes it easy to write clients that are compatible to both " "IPv4 and IPv6." msgstr "" +"Conecta con un servicio TCP escuchando una *address* Internet (una tupla de " +"2 ``(host, port)``), y retorna el objeto socket. Este es una función de " +"nivel superior que :meth:`socket.connect`: si *host* es un nombre de host no " +"numérico, intentara resolverlo para ambos :data:`AF_INET` y :data:" +"`AF_INET6`, y luego intenta conectarte a todas las direcciones posibles a la " +"vez para lograr una conexión exitosa. Esto facilita la escritura de clientes " +"que sean compatibles con IPv4 e IPv6." #: ../Doc/library/socket.rst:638 msgid "" @@ -893,6 +1069,10 @@ msgid "" "instance before attempting to connect. If no *timeout* is supplied, the " "global default timeout setting returned by :func:`getdefaulttimeout` is used." msgstr "" +"Pasando el parámetro opcional *timeout* establece el tiempo de espera dentro " +"de la instancia del socket. Si no es proporcionado *timeout*, la " +"configuración global de tiempo de espera predeterminada retornada por :func:" +"`getdefaulttimeout` es usada." #: ../Doc/library/socket.rst:643 msgid "" @@ -900,10 +1080,14 @@ msgid "" "socket to bind to as its source address before connecting. If host or port " "are '' or 0 respectively the OS default behavior will be used." msgstr "" +"Si se suministra, *source_address* debe ser una ''(host, puerto)'' de 2 " +"tuplas para que el socket se enlace como su dirección de origen antes de " +"conectarse. Si el host o el puerto son '' o 0 respectivamente, se utilizará " +"el comportamiento predeterminado del sistema operativo." #: ../Doc/library/socket.rst:647 msgid "*source_address* was added." -msgstr "" +msgstr "*source_address* ha sido agregado." #: ../Doc/library/socket.rst:652 msgid "" @@ -920,6 +1104,10 @@ msgid "" "reasonable value is chosen. *reuse_port* dictates whether to set the :data:" "`SO_REUSEPORT` socket option." msgstr "" +"*family* debe ser :data:`AF_INET` o :data:`AF_INET6`. *backlog* es el tamaño " +"de la cola pasado a :meth:`socket.listen`; cuando ``0`` se elige un valor " +"predeterminado razonable. *reuse_port* dicta si se debe establecer la opción " +"de socket :data:`SO_REUSEPORT`." #: ../Doc/library/socket.rst:660 msgid "" @@ -950,6 +1138,9 @@ msgid "" "immediately reuse previous sockets which were bound on the same *address* " "and remained in TIME_WAIT state." msgstr "" +"En plataformas POSIX la opción del socket :data:`SO_REUSEADDR` está " +"configurado para inmediatamente rehusar los sockets previos que estaban " +"vinculados la misma *address* y permanecer en estado TIME_WAIT." #: ../Doc/library/socket.rst:690 msgid "" @@ -971,6 +1162,16 @@ msgid "" "input or output (such as a server started by the Unix inet daemon). The " "socket is assumed to be in blocking mode." msgstr "" +"Duplica el descriptor de archivo *fd* (un entero retornado por el método :" +"meth:`fileno` de un objeto archivo) y crea un objeto socket a partir del " +"resultado. La familia de direcciones, el tipo de socket y el número de " +"protocolo son como para la función :func:`.socket` anterior. El descriptor " +"de archivo debe hacer referencia a un socket, pero esto no se comprueba --- " +"las operaciones posteriores en el objeto pueden fallar si el descriptor de " +"archivo no es válido. Esta función rara vez se necesita, pero se puede usar " +"para obtener o establecer opciones de socket en un socket pasado a un " +"programa como entrada o salida estándar (como un servidor iniciado por el " +"demonio inet de Unix). Se supone que el socket está en modo de bloqueo." #: ../Doc/library/socket.rst:714 msgid "" @@ -982,13 +1183,15 @@ msgstr "" #: ../Doc/library/socket.rst:718 ../Doc/library/socket.rst:1759 msgid ":ref:`Availability `: Windows." -msgstr "" +msgstr ":ref:`Availability `: Windows." #: ../Doc/library/socket.rst:724 msgid "" "This is a Python type object that represents the socket object type. It is " "the same as ``type(socket(...))``." msgstr "" +"Este es un tipo de objeto Python que representa el tipo de objeto del " +"socket. Es lo mismo que decir ``type(socket(…))``." #: ../Doc/library/socket.rst:729 msgid "Other functions" @@ -997,6 +1200,7 @@ msgstr "Otras funciones" #: ../Doc/library/socket.rst:731 msgid "The :mod:`socket` module also offers various network-related services:" msgstr "" +"El modulo :mod:`socket` también ofrece varios servicios de red relacionados:" #: ../Doc/library/socket.rst:736 msgid "" @@ -1017,6 +1221,13 @@ msgid "" "numeric port number or ``None``. By passing ``None`` as the value of *host* " "and *port*, you can pass ``NULL`` to the underlying C API." msgstr "" +"Traduce el argumento *host*/*port* dentro de una secuencia de 5 tuplas que " +"contiene todo los argumentos necesarios para crear un socket conectado a ese " +"servicio. *host* es un nombre de dominio, una cadena en representación de " +"una dirección IPV4/IPV6 o ``None``. *port* es una nombre de una cadena de " +"servicio como ``'http'``, un numero de puerto numérico o ``None``. Pasando " +"``None`` como el valor del *host* y *port*, pasando ``NULL`` a la API C " +"subyacente." #: ../Doc/library/socket.rst:751 msgid "" @@ -1028,6 +1239,13 @@ msgid "" "will disable domain name resolution and will raise an error if *host* is a " "domain name." msgstr "" +"Los argumentos *family*, *type* y *proto* se puede especificar opcionalmente " +"para reducir la lista de direcciones retornadas. Pasando cero como un valor " +"para cada uno de estos argumentos se selecciona la gama completa de " +"resultados. El argumento *flags* puede ser uno o varios de los argumentos " +"``AI_*``, y pueden influenciar como los resultados son computados y " +"devueltos. Por ejemplo, :const:`AI_NUMERICHOST` desactivará la resolución de " +"nombres de dominio y generará un error sí * host * es un nombre de dominio." #: ../Doc/library/socket.rst:759 msgid "The function returns a list of 5-tuples with the following structure:" @@ -1035,7 +1253,7 @@ msgstr "La función devuelve una lista de 5 tuplas con la siguiente estructura:" #: ../Doc/library/socket.rst:761 msgid "``(family, type, proto, canonname, sockaddr)``" -msgstr "" +msgstr "``(family, type, proto, canonname, sockaddr)``" #: ../Doc/library/socket.rst:763 msgid "" @@ -1048,12 +1266,23 @@ msgid "" "port, flowinfo, scope_id)`` 4-tuple for :const:`AF_INET6`), and is meant to " "be passed to the :meth:`socket.connect` method." msgstr "" +"En estas tuplas, *family*, *type*, *proto* son todos enteros y están " +"destinados a ser pasados por la función :func:`.socket`. *canonname* debe " +"ser una cadena que representa el nombre canónico del *host* si :const:" +"`AI_CANONNAME` es parte de el argumento *flags*; de lo contrario *canonname* " +"estará vacía. *sockaddr* es un tupla describiendo una dirección de socket, " +"cuyo formato depende del devuelto *family* (una ``(address, port)`` tupla de " +"2 para :const:`AF_INET`, una ``(address, port, flowinfo, scope_id)`` una " +"tupla de 4 para una :const:`AF_INET6`), y está destinado a ser pasado a el " +"método :meth:`socket.connect`." #: ../Doc/library/socket.rst:773 msgid "" "Raises an :ref:`auditing event ` ``socket.getaddrinfo`` with " "arguments ``host``, ``port``, ``family``, ``type``, ``protocol``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.getaddrinfo`` con los " +"argumentos ``host``, ``port``, ``family``, ``type``, ``protocol``." #: ../Doc/library/socket.rst:775 msgid "" @@ -1076,6 +1305,8 @@ msgid "" "for IPv6 multicast addresses, string representing an address will not " "contain ``%scope_id`` part." msgstr "" +"para direcciones de multidifusión IPv6, la cadena que representa una " +"dirección no contendrá partes ``%scope_id``." #: ../Doc/library/socket.rst:794 msgid "" @@ -1086,6 +1317,13 @@ msgid "" "is selected. In case no fully qualified domain name is available, the " "hostname as returned by :func:`gethostname` is returned." msgstr "" +"Devuelve un nombre de dominio completo para *name*. Si *name* es omitido o " +"vacío, este se interpretará como el local host. Para buscar el nombre de " +"dominio completo el nombre de host devuelto por :func:`gethostbyaddr` esta " +"marcado, siguiendo por el alias para el host, si esta disponible. Se " +"selecciona el primer nombre que incluye un punto. En caso de que el nombre " +"de dominio completo no este disponible, se devuelve el nombre de host como " +"lo devuelve :func:`gethostname`." #: ../Doc/library/socket.rst:804 msgid "" @@ -1096,6 +1334,12 @@ msgid "" "resolution, and :func:`getaddrinfo` should be used instead for IPv4/v6 dual " "stack support." msgstr "" +"Traduce un nombre de host a un formato de dirección IPV4. La dirección IPV4 " +"es retornada como una cadena, como ``’100.50.200.5’``. Si el nombre de host " +"es una dirección IPV4 en sí, se devuelve sin cambios. Observa :func:" +"`gethostbyname_ex` para una interfaz mas completa. :func:`gethostbyname` no " +"soporta la resolución de nombres IPV6, y :func:`getaddrinfo` debe utilizarse " +"en su lugar para compatibilidad con doble pila IPv4/v6." #: ../Doc/library/socket.rst:810 ../Doc/library/socket.rst:824 msgid "" @@ -1116,6 +1360,15 @@ msgid "" "IPv6 name resolution, and :func:`getaddrinfo` should be used instead for " "IPv4/v6 dual stack support." msgstr "" +"Traduce un nombre de host al formato de dirección IPv4, interfaz extendida. " +"Retorna un triple ``(hostname, aliaslist, ipaddrlist)`` donde *hostname* es " +"el nombre de host principal que responde al *ip_address* dado, *aliaslist* " +"es una lista (posiblemente vacía) de nombres de host alternativos para la " +"misma dirección, y *ipaddrlist* es una lista de direcciones IPv4 para la " +"misma interfaz en el mismo host (a menudo, pero no siempre, una sola " +"dirección). :func:`gethostbyname_ex` no admite la resolución de nombres " +"IPv6, y :func:`getaddrinfo` debe usarse en su lugar para la compatibilidad " +"con la pila dual IPv4/v6." #: ../Doc/library/socket.rst:829 msgid "" @@ -1130,12 +1383,16 @@ msgid "" "Raises an :ref:`auditing event ` ``socket.gethostname`` with no " "arguments." msgstr "" +"Genera un :ref:`auditing event ` ``socket.gethostname`` sin " +"argumentos." #: ../Doc/library/socket.rst:834 msgid "" "Note: :func:`gethostname` doesn't always return the fully qualified domain " "name; use :func:`getfqdn` for that." msgstr "" +"Nota: :func:`gethostname` no siempre retorna el nombre de dominio completo, " +"usa :func:`getfqdn` para eso." #: ../Doc/library/socket.rst:840 msgid "" @@ -1147,12 +1404,21 @@ msgid "" "qualified domain name, use the function :func:`getfqdn`. :func:" "`gethostbyaddr` supports both IPv4 and IPv6." msgstr "" +"Retorna un triple ``(hostname, aliaslist, ipaddrlist)`` donde *hostname* es " +"el nombre del host primario respondiendo de la misma *ip_address*, " +"*aliaslist* es una (posiblemente vacía) lista de nombres de hosts " +"alternativa, y *ipaddrlist* es una lista de direcciones IPV4/IPV6 para la " +"misma interfaz y en el mismo host ( lo más probable es que contenga solo una " +"dirección ). Para encontrar el nombre de dominio completo, use la función :" +"func:`getfqdn`. :func:`gethostbyaddr` admite tanto IPv4 como IPv6." #: ../Doc/library/socket.rst:848 msgid "" "Raises an :ref:`auditing event ` ``socket.gethostbyaddr`` with " "argument ``ip_address``." msgstr "" +"Generar un :ref:`auditing event ` ``socket.gethostbyaddr`` con los " +"argumentos ``ip_address``." #: ../Doc/library/socket.rst:853 msgid "" @@ -1161,6 +1427,11 @@ msgid "" "qualified domain name or numeric address representation in *host*. " "Similarly, *port* can contain a string port name or a numeric port number." msgstr "" +"Traduce una dirección de socket *sockaddr* dentro de una tupla de 2 " +"``(host, port)``. Dependiendo de la configuraciones de *flags*, el resultado " +"puede contener un nombre de dominio completo o una representación numérica " +"de la dirección en *host*. Similar, *port* puede contener un nombre de " +"puerto de cadena o un numero de puerto numérico." #: ../Doc/library/socket.rst:858 #, python-format @@ -1176,12 +1447,16 @@ msgstr "" msgid "" "For more information about *flags* you can consult :manpage:`getnameinfo(3)`." msgstr "" +"Para mas información sobre *flags* pueden consultar :manpage:" +"`getnameinfo(3)`." #: ../Doc/library/socket.rst:863 msgid "" "Raises an :ref:`auditing event ` ``socket.getnameinfo`` with " "argument ``sockaddr``." msgstr "" +"Plantea un :ref:`auditing event ` ``socket.getnameinfo`` con el " +"argumento ``sockaddr``." #: ../Doc/library/socket.rst:867 msgid "" @@ -1204,12 +1479,18 @@ msgid "" "that service. The optional protocol name, if given, should be ``'tcp'`` or " "``'udp'``, otherwise any protocol will match." msgstr "" +"Traduce un nombre de servicio de Internet y el nombre del protocolo para un " +"numero de puerto para ese servicio. El nombre del protocolo opcional, si se " +"da, podría ser `’tcp’`` o ``’udp’``, de lo contrario, cualquier protocolo " +"coincidirá." #: ../Doc/library/socket.rst:880 msgid "" "Raises an :ref:`auditing event ` ``socket.getservbyname`` with " "arguments ``servicename``, ``protocolname``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.getservbyname`` con los " +"argumentos ``servicename``, ``protocolname``." #: ../Doc/library/socket.rst:885 msgid "" @@ -1227,6 +1508,8 @@ msgid "" "Raises an :ref:`auditing event ` ``socket.getservbyport`` with " "arguments ``port``, ``protocolname``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.getservbyport`` con los " +"argumentos ``port``, ``protocolname``." #: ../Doc/library/socket.rst:894 msgid "" @@ -1257,6 +1540,10 @@ msgid "" "silent truncation feature is deprecated, and will raise an exception in " "future versions of Python." msgstr "" +"En el caso que *x* no encaje en un entero sin signo de 16 bits, pero encaja " +"en un entero positivo C, esto es silenciosamente truncado en un entero sin " +"signo de 16 bits. Esta característica de truncamiento silenciosa esta " +"obsoleta, y generará una excepción en versiones futuras de Python." #: ../Doc/library/socket.rst:914 msgid "" @@ -1289,12 +1576,21 @@ msgid "" "in_addr`, which is the C type for the 32-bit packed binary this function " "returns." msgstr "" +"Convierte una dirección IPV4 desde el formato de cadena de cuatro puntos " +"(por ejemplo, ‘123.45.67.89’) a formato binario empaquetado de 32 bits, como " +"un objeto de bytes de cuatro caracteres de longitud. Esto es usado cuando al " +"convertir un programa que usa la librería estándar C y necesita objetos de " +"tipo :c:type:`struct in_addr`, que es el tipo C para el binario empaquetado " +"de 32 bits que devuelve esta función." #: ../Doc/library/socket.rst:940 msgid "" ":func:`inet_aton` also accepts strings with less than three dots; see the " "Unix manual page :manpage:`inet(3)` for details." msgstr "" +"Ademas :func:`inet_aton`acepta cadena de caracteres con menos de tres " +"puntos, observar la pagina del manual Unix :manpage:`inet(3)` para mas " +"detalles." #: ../Doc/library/socket.rst:943 msgid "" @@ -1302,12 +1598,17 @@ msgid "" "`OSError` will be raised. Note that exactly what is valid depends on the " "underlying C implementation of :c:func:`inet_aton`." msgstr "" +"Si la cadena de dirección IPv4 es pasada a esta función es invalido, :exc:" +"`OSError` se generará. Tenga en cuenta que exactamente lo que es valido " +"depende de la implementación C de :c:func:`inet_aton`." #: ../Doc/library/socket.rst:947 msgid "" ":func:`inet_aton` does not support IPv6, and :func:`inet_pton` should be " "used instead for IPv4/v6 dual stack support." msgstr "" +":func:`inet_aton` no admite IPV6, y :func:`inet_pton` deberían utilizarse en " +"su lugar para compatibilidad con doble pilas IPV4/v6." #: ../Doc/library/socket.rst:953 msgid "" @@ -1318,6 +1619,12 @@ msgid "" "which is the C type for the 32-bit packed binary data this function takes as " "an argument." msgstr "" +"Convierte una dirección IPV4 empaquetada de 32 bits (un :term:`bytes-like " +"object` cuatro bytes de longitud) a su representación estándar de cadena de " +"cuatro puntos ( por ejemplo ‘123.45.67.89’). Esto es útil cuando convertimos " +"con un programa que usa la librería estándar C y necesita objetos de tipo :c:" +"type:`struct in_addr`, que es el tipo C para los datos binarios empaquetados " +"de 32 bits que esta función toma como argumento." #: ../Doc/library/socket.rst:960 msgid "" @@ -1326,6 +1633,10 @@ msgid "" "IPv6, and :func:`inet_ntop` should be used instead for IPv4/v6 dual stack " "support." msgstr "" +"Si la secuencia de byte pasada a esta función no es exactamente 4 bytes de " +"longitud :exc:`OSError` podría generarse :func:`inet_ntoa` no soporta IPV6, " +"y :func:`inet_ntop` debe utilizarse en su lugar para compatibilidad con " +"doble pila IPv4 / v6." #: ../Doc/library/socket.rst:971 msgid "" @@ -1334,6 +1645,10 @@ msgid "" "protocol calls for an object of type :c:type:`struct in_addr` (similar to :" "func:`inet_aton`) or :c:type:`struct in6_addr`." msgstr "" +"Convierte una dirección IP desde su formato de cadena especifico de la " +"familia a un empaquetado, formato binario :func:`inet_pton` es útil cuando " +"una librería o protocolo de red llama desde un objeto de tipo :c:type:" +"`struct in_addr` (similar a :func:`inet_aton`) o :c:type:`struct in6_addr`." #: ../Doc/library/socket.rst:976 msgid "" @@ -1343,11 +1658,18 @@ msgid "" "the value of *address_family* and the underlying implementation of :c:func:" "`inet_pton`." msgstr "" +"Los Valores soportados para *address_family* son actualmente :const:" +"`AF_INET` y :const:`AF_INET6`. Si la cadena de dirección IP *ip_string* no " +"es válida, :exc:`OSError` se genera. Tenga en cuenta que exactamente lo que " +"es válido depende tanto del valor de *address_family* como de la " +"implementación subyacente de :c:func:`inet_pton`." #: ../Doc/library/socket.rst:983 ../Doc/library/socket.rst:1003 msgid "" ":ref:`Availability `: Unix (maybe not all platforms), Windows." msgstr "" +":ref:`Disponibilidad `: Unix(Tal vez no todas las " +"plataformas), Windows." #: ../Doc/library/socket.rst:984 ../Doc/library/socket.rst:1004 msgid "Windows support added" @@ -1361,6 +1683,12 @@ msgid "" "library or network protocol returns an object of type :c:type:`struct " "in_addr` (similar to :func:`inet_ntoa`) or :c:type:`struct in6_addr`." msgstr "" +"Convierte una dirección IP empaquetada ( un :term:`bytes-like object` de " +"algún numero de bytes) a su representación de cadena estándar, específica de " +"la familia (por ejemplo ``’7.10.0.5’`` o ``’5aef:2b::8’``). :func:" +"`inet_ntop` es usado cuando una librería o protocolo de red retorna un " +"objeto de tipo :c:type:`struct in_addr` (similar para :func:`inet_ntoa`) o :" +"c:type:`struct in6_addr`." #: ../Doc/library/socket.rst:997 msgid "" @@ -1369,6 +1697,11 @@ msgid "" "for the specified address family, :exc:`ValueError` will be raised. :exc:" "`OSError` is raised for errors from the call to :func:`inet_ntop`." msgstr "" +"Los valores soportados para *address_family* actualmente son :const:" +"`AF_INET` y :const:`AF_INET6`. Si los objetos de bytes *packed_ip* no tienen " +"la longitud correcta para la familia de direcciones especificas, :exc:" +"`ValueError` podría generarse. :exc:`OSError` se genera para errores desde " +"la llamada a :func:`inet_ntop`." #: ../Doc/library/socket.rst:1019 msgid "" @@ -1380,6 +1713,13 @@ msgid "" "the last in the buffer. Raises :exc:`OverflowError` if *length* is outside " "the permissible range of values." msgstr "" +"Retorna la longitud total, sin relleno de arrastre, de un elemento de datos " +"auxiliares con datos asociados del *length*. Este valor se puede utilizar a " +"menudo como tamaño de búfer para :meth:`~socket.recvmsg` para recibir un " +"solo valor de datos auxiliares, pero :rfc:`3542` requiere aplicaciones " +"portables para usar :func:`CMSG_SPACE` y así incluir espacio para el " +"relleno, incluso cuando el elemento será el último en el búfer. Genera :exc:" +"`OverflowError` si *length* está fuera del rango de valores permitido." #: ../Doc/library/socket.rst:1029 ../Doc/library/socket.rst:1050 #: ../Doc/library/socket.rst:1469 ../Doc/library/socket.rst:1511 @@ -1387,6 +1727,8 @@ msgstr "" msgid "" ":ref:`Availability `: most Unix platforms, possibly others." msgstr "" +":ref:`Availability `: la mayoría de plataformas Unix, " +"posiblemente otras." #: ../Doc/library/socket.rst:1035 msgid "" @@ -1397,6 +1739,12 @@ msgid "" "Raises :exc:`OverflowError` if *length* is outside the permissible range of " "values." msgstr "" +"Retorna el tamaño del buffer necesario por :meth:`~socket.recvmsg` para " +"recibir un elemento de datos auxiliares con datos asociados del *length* " +"dado, junto con cualquier relleno final. El espacio de buffer necesario para " +"recibir múltiples elementos es la suma de los valores de :func:`CMSG_SPACE` " +"para los datos asociados con la longitudes. Genera :exc:`OverflowError` si " +"*length* está fuera del rango de valores permitido." #: ../Doc/library/socket.rst:1043 msgid "" @@ -1417,6 +1765,10 @@ msgid "" "value of ``None`` indicates that new socket objects have no timeout. When " "the socket module is first imported, the default is ``None``." msgstr "" +"Retorna el tiempo de espera por defecto en segundos (flotante) para los " +"objetos de un nuevo socket. Un valor de ``None`` indicada que los objetos " +"del nuevo socket no tiene un tiempo de espera. Cuando el modulo socket es " +"importado primero, por defecto es ``None``." #: ../Doc/library/socket.rst:1063 msgid "" @@ -1424,22 +1776,30 @@ msgid "" "socket module is first imported, the default is ``None``. See :meth:" "`~socket.settimeout` for possible values and their respective meanings." msgstr "" +"Selecciona el tiempo de espera por defecto en segundos (flotante ) para los " +"objetos nuevos del socket. Cuando el modulo socket es importado primero, el " +"valor por defecto es ``None``. Observar :meth:`~socket.settimeout` para " +"posible valores y sus respectivos significados." #: ../Doc/library/socket.rst:1071 msgid "" "Set the machine's hostname to *name*. This will raise an :exc:`OSError` if " "you don't have enough rights." msgstr "" +"Establece el nombre de host de la maquina en *name*. Esto genera un :exc:" +"`OSError` si no tiene suficientes derechos." #: ../Doc/library/socket.rst:1074 msgid "" "Raises an :ref:`auditing event ` ``socket.sethostname`` with " "argument ``name``." msgstr "" +"Plantea un :ref:`auditing event ` ``socket.sethostname`` con el " +"argumento ``name``." #: ../Doc/library/socket.rst:1077 msgid ":ref:`Availability `: Unix." -msgstr "" +msgstr ":ref:`Availability `: Unix." #: ../Doc/library/socket.rst:1083 msgid "" @@ -1453,7 +1813,7 @@ msgstr "" #: ../Doc/library/socket.rst:1088 ../Doc/library/socket.rst:1115 #: ../Doc/library/socket.rst:1132 msgid ":ref:`Availability `: Unix, Windows." -msgstr "" +msgstr ":ref:`Availability `: Unix, Windows." #: ../Doc/library/socket.rst:1091 ../Doc/library/socket.rst:1118 #: ../Doc/library/socket.rst:1135 @@ -1465,28 +1825,32 @@ msgid "" "On Windows network interfaces have different names in different contexts " "(all names are examples):" msgstr "" +"En Windows las interfaces de redes tienen diferentes nombres en diferentes " +"contextos (todos los nombres son ejemplos):" #: ../Doc/library/socket.rst:1099 msgid "UUID: ``{FB605B73-AAC2-49A6-9A2F-25416AEA0573}``" -msgstr "" +msgstr "UUID: ``{FB605B73-AAC2-49A6-9A2F-25416AEA0573}``" #: ../Doc/library/socket.rst:1100 msgid "name: ``ethernet_32770``" -msgstr "" +msgstr "nombre: ``ethernet_32770``" #: ../Doc/library/socket.rst:1101 msgid "friendly name: ``vEthernet (nat)``" -msgstr "" +msgstr "nombre amigable: ``vEthernet (nat)``" #: ../Doc/library/socket.rst:1102 msgid "description: ``Hyper-V Virtual Ethernet Adapter``" -msgstr "" +msgstr "descripción: ``Hyper-V Virtual Ethernet Adapter``" #: ../Doc/library/socket.rst:1104 msgid "" "This function returns names of the second form from the list, " "``ethernet_32770`` in this example case." msgstr "" +"Esta función retorna los nombres del segundo formulario de la lista, en este " +"caso de ejemplo ``ethernet_32770``." #: ../Doc/library/socket.rst:1110 msgid "" @@ -1500,6 +1864,7 @@ msgstr "" #: ../Doc/library/socket.rst:1122 ../Doc/library/socket.rst:1139 msgid "\"Interface name\" is a name as documented in :func:`if_nameindex`." msgstr "" +"“\\”Interface name\\” es un nombre como se documenta en :func:`if_nameindex`." #: ../Doc/library/socket.rst:1127 msgid "" @@ -1518,12 +1883,17 @@ msgid "" "Socket objects have the following methods. Except for :meth:`~socket." "makefile`, these correspond to Unix system calls applicable to sockets." msgstr "" +"Los objetos socket tienen los siguientes métodos. Excepto para :meth:" +"`~socket.makefile`, esto corresponde al sistema de llamadas Unix para " +"sockets." #: ../Doc/library/socket.rst:1151 msgid "" "Support for the :term:`context manager` protocol was added. Exiting the " "context manager is equivalent to calling :meth:`~socket.close`." msgstr "" +"El soporte para el protocolo :term:`context manager` ha sido agregado. Salir " +"del gestor de contexto es equivalente para el llamado :meth:`~socket.close`." #: ../Doc/library/socket.rst:1158 msgid "" @@ -1533,6 +1903,11 @@ msgid "" "and *address* is the address bound to the socket on the other end of the " "connection." msgstr "" +"Acepta una conexión. El socket debe estar vinculado a una dirección y estar " +"escuchando las conexiones. El valor de retorno es el par ``(conn, address)`` " +"cuando *conn* es un *new* objeto socket usado para enviar y recibir " +"información en la conexión, y *address* es la dirección vinculada al socket " +"en el extremo de la conexión." #: ../Doc/library/socket.rst:1165 ../Doc/library/socket.rst:1252 msgid "The socket is now non-inheritable." @@ -1549,7 +1924,7 @@ msgid "" msgstr "" "Si se interrumpe la llamada del sistema y el controlador de señal no genera " "una excepción, el método ahora vuelve a intentar la llamada del sistema en " -"lugar de generar una excepción :exc:`InterruptedError` (consulte :p ep:`475` " +"lugar de generar una excepción :exc:`InterruptedError` (consulte :pep:`475` " "para la lógica)." #: ../Doc/library/socket.rst:1176 @@ -1557,12 +1932,16 @@ msgid "" "Bind the socket to *address*. The socket must not already be bound. (The " "format of *address* depends on the address family --- see above.)" msgstr "" +"Enlaza el socket a *address*. El socket no debe estar ya unido. (El formato " +"de *address* depende de la familia de direcciones, consulte más arriba)." #: ../Doc/library/socket.rst:1179 msgid "" "Raises an :ref:`auditing event ` ``socket.bind`` with arguments " "``self``, ``address``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.getaddrinfo`` con los " +"argumentos ``host``, ``port``, ``family``, ``type``, ``protocol``." #: ../Doc/library/socket.rst:1183 msgid "" @@ -1572,6 +1951,11 @@ msgid "" "fail. The remote end will receive no more data (after queued data is " "flushed)." msgstr "" +"Marca el socket cerrado. El recurso del sistema subyacente (ej. un " +"descriptor de archivo) también se cierra cuando todos los objetos de archivo " +"de :meth:`makefile()` están cerrados. Una vez que eso suceda, todas las " +"operaciones futuras en el objeto socket fallarán. El extremo remoto no " +"recibirá más datos (después de que se vacíen los datos en cola)." #: ../Doc/library/socket.rst:1189 msgid "" @@ -1631,6 +2015,8 @@ msgid "" "Raises an :ref:`auditing event ` ``socket.connect`` with arguments " "``self``, ``address``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.connect`` con los " +"argumentos ``self``, ``address``." #: ../Doc/library/socket.rst:1219 msgid "" @@ -1642,8 +2028,8 @@ msgstr "" "El método ahora espera hasta que se completa la conexión en lugar de generar " "una excepción :exc:`InterruptedError` si la conexión se interrumpe por una " "señal, el controlador de señal no genera una excepción y el socket está " -"bloqueando o tiene un tiempo de espera (consulte el :p ep:`475` para la " -"razón de ser)." +"bloqueando o tiene un tiempo de espera (consulte el :pep:`475` para la razón " +"de ser)." #: ../Doc/library/socket.rst:1228 msgid "" @@ -1654,6 +2040,12 @@ msgid "" "of the :c:data:`errno` variable. This is useful to support, for example, " "asynchronous connects." msgstr "" +"Similar a `connect(address)``, pero retorna un indicador de error en lugar " +"de generar una excepción para los errores retornados por la llamada de nivel " +"C :c:func:`connect` (otros problemas, como “host no encontrado”, aún pueden " +"generar excepciones). El indicador de error es ``0`` si la operación tuvo " +"éxito, caso contrario es el valor de la variable :c:data:`errno`. Esto es " +"útil para admitir, por ejemplo, conexiones asincrónicas." #: ../Doc/library/socket.rst:1239 msgid "" @@ -1674,6 +2066,8 @@ msgid "" "Return the socket's file descriptor (a small integer), or -1 on failure. " "This is useful with :func:`select.select`." msgstr "" +"Retorna un archivo descriptor del socket (un entero pequeño), o -1 si falla. " +"Esto es útil con :func:`select.select`." #: ../Doc/library/socket.rst:1261 msgid "" @@ -1681,6 +2075,9 @@ msgid "" "a file descriptor can be used (such as :func:`os.fdopen`). Unix does not " "have this limitation." msgstr "" +"En Windows el pequeño entero retornado por este método no puede ser usado " +"donde un descriptor de un archivo pueda ser usado (como una :func:`os." +"fdopen`). Unix no tiene esta limitación." #: ../Doc/library/socket.rst:1267 msgid "" @@ -1688,6 +2085,9 @@ msgid "" "descriptor or socket's handle: ``True`` if the socket can be inherited in " "child processes, ``False`` if it cannot." msgstr "" +"Obtiene el :ref:`inheritable flag ` del descriptor del " +"archivo del socket o el controlador del socket: ``True`` si el socket puede " +"ser heredada en procesos secundarios, ``False`` si falla." #: ../Doc/library/socket.rst:1276 msgid "" @@ -1696,6 +2096,10 @@ msgid "" "format of the address returned depends on the address family --- see " "above.) On some systems this function is not supported." msgstr "" +"Retorna la dirección remota a la que esta conectado el socket. Esto es útil " +"para averiguar el número de puerto de un socket IPv4/v6 remoto, por ejemplo. " +"(El formato de la dirección devuelta depende de la familia de direcciones, " +"consulte más arriba). En algunos sistemas, esta función no es compatible." #: ../Doc/library/socket.rst:1284 msgid "" @@ -1703,6 +2107,10 @@ msgid "" "of an IPv4/v6 socket, for instance. (The format of the address returned " "depends on the address family --- see above.)" msgstr "" +"Retorna la dirección del propio socket. Esto es útil para descubrir el " +"numero de puerto de un socket IPv4/IPv6, por ejemplo. (El formato de la " +"dirección devuelta depende de la familia de direcciones, consulte más " +"arriba)." #: ../Doc/library/socket.rst:1291 msgid "" @@ -1734,7 +2142,7 @@ msgstr "" #: ../Doc/library/socket.rst:1306 msgid "This is equivalent to checking ``socket.gettimeout() == 0``." -msgstr "" +msgstr "Esto es equivalente a comprobar ``socket.gettimeout() == 0``." #: ../Doc/library/socket.rst:1313 msgid "" @@ -1742,6 +2150,10 @@ msgid "" "``None`` if no timeout is set. This reflects the last call to :meth:" "`setblocking` or :meth:`settimeout`." msgstr "" +"Retorna el tiempo de espera en segundos (flotante) asociado con las " +"operaciones del socket, o ``None`` si el tiempo de espera no es " +"seleccionado. Esto refleja la ultima llamada al :meth:`setblocking` o :meth:" +"`settimeout`." #: ../Doc/library/socket.rst msgid "platform" @@ -1757,18 +2169,27 @@ msgid "" "interface. Please refer to the `Win32 documentation `_ for more information." msgstr "" +"El método :meth:`ioctl` es una interfaz limitada para el sistema de " +"interfaces WSAIoctl. Por favor refiérase a `Win32 documentation `_ para mas " +"información." #: ../Doc/library/socket.rst:1327 msgid "" "On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl` " "functions may be used; they accept a socket object as their first argument." msgstr "" +"En otras plataformas, las funciones genéricas :func:`fcntl.fcntl` y :func:" +"`fcntl.ioctl` podrían ser usadas; ellas aceptan un objeto socket como su " +"primer argumento." #: ../Doc/library/socket.rst:1330 msgid "" "Currently only the following control codes are supported: ``SIO_RCVALL``, " "``SIO_KEEPALIVE_VALS``, and ``SIO_LOOPBACK_FAST_PATH``." msgstr "" +"Actualmente solo el siguiente control de códigos está soportados: " +"``SIO_RCVALL``, ``SIO_KEEPALIVE_VALS``, y ``SIO_LOOPBACK_FAST_PATH``." #: ../Doc/library/socket.rst:1338 msgid "" @@ -1777,6 +2198,10 @@ msgid "" "unaccepted connections that the system will allow before refusing new " "connections. If not specified, a default reasonable value is chosen." msgstr "" +"Habilita un servidor para aceptar conexiones. Si *backlog* es especifico, " +"debe ser al menos 0 (si es menor, se establece en 0); especifica el número " +"de conexiones no aceptadas que permitirá el sistema antes de rechazar nuevas " +"conexiones. Si no se especifica, se elige un valor razonable predeterminado." #: ../Doc/library/socket.rst:1343 msgid "The *backlog* parameter is now optional." @@ -1790,6 +2215,11 @@ msgid "" "except the only supported *mode* values are ``'r'`` (default), ``'w'`` and " "``'b'``." msgstr "" +"Retorna un :term:`file object` asociado con el socket. El tipo exacto " +"retornado depende de los argumentos dados a :meth:`makefile`. Estos " +"argumentos se interpretan de la misma forma que la función :func:`open`, " +"excepto que los únicos valores de *mode* admitidos son ``’r’`` (default), " +"``’w’`` and ``’b’``." #: ../Doc/library/socket.rst:1356 msgid "" @@ -1853,6 +2283,12 @@ msgid "" "*flags*; it defaults to zero. (The format of *address* depends on the " "address family --- see above.)" msgstr "" +"Recibe datos desde el socket. El valor de retorno es un par ``(bytes, " +"address)`` donde *bytes* es un objeto de bytes que representa los datos " +"recibidos y *address* es la dirección de el socket enviando los datos. " +"Observar la pagina del manual Unix :manpage:`recv(2)` para el significado " +"del argumento opcional *flags*; por defecto es cero. (El formato de " +"*address* depende de la familia de direcciones, consulte más arriba)." #: ../Doc/library/socket.rst:1402 #, python-format @@ -1861,6 +2297,9 @@ msgid "" "%scope_id`` part anymore. In order to get full IPv6 address use :func:" "`getnameinfo`." msgstr "" +"Para direcciones IPv6 de multidifusión, el primer elemento de *address* ya " +"no contiene la parte ``%scope_id``. Para obtener la dirección IPV6 completa, " +"use :func:`getnameinfo`." #: ../Doc/library/socket.rst:1409 msgid "" @@ -1895,6 +2334,18 @@ msgid "" "receiving socket is unconnected, *address* is the address of the sending " "socket, if available; otherwise, its value is unspecified." msgstr "" +"El valor de retorno es una tupla de 4: ``(data, ancdata, msg_flags, " +"address)``. El valor *data* es un objeto :class:`bytes` que contiene los " +"datos no auxiliares recibidos. El valor *ancdata* es una lista de cero o mas " +"tuplas ``(cmsg_level, cmsg_type, cmsg_data)`` representado los datos " +"auxiliares (control de mensajes) recibidos: *cmsg_level* y *cmsg_type* son " +"enteros especificando el nivel de protocolo y tipo específico de protocolo " +"respectivamente, y *cmsg_data* es un objeto :class:`bytes` sosteniendo los " +"datos asociados. El valor *msg_flags* es el OR bit a bit de varios " +"indicadores que indican condiciones en el mensaje recibido; consulte la " +"documentación de su sistema para obtener más detalles. Si la toma de " +"recepción no está conectada, *address* es la dirección de el socket enviado, " +"si está disponible; de lo contrario, su valor no se especifica." #: ../Doc/library/socket.rst:1433 msgid "" @@ -1908,6 +2359,16 @@ msgid "" "after the system call returns, it will first attempt to close any file " "descriptors received via this mechanism." msgstr "" +"En algunos sistemas, :meth:`sendmsg` y :meth:`recvmsg` se puede utilizar " +"para pasar descriptores de archivos entre procesos a través de un socket :" +"const:`AF_UNIX` Cuando se utiliza esta función (a menudo se limita a " +"sockets :const:`SOCK_STREAM`), :meth:`recvmsg`devolverá, en sus datos " +"auxiliares, elementos del formulario ``(socket.SOL_SOCKET, socket." +"SCM_RIGHTS, fds)``, donde *fds* es un objeto :class:`bytes` representado el " +"nuevo descriptor de archivos como una matriz binaria del tipo C nativa ::c:" +"type:`int`. Si :meth:`recvmsg` genera un excepción después del retorno de la " +"llamada del sistema, primero intentará cerrar cualquier descriptor de " +"archivo recibido a través de este mecanismo." #: ../Doc/library/socket.rst:1444 msgid "" @@ -1931,6 +2392,11 @@ msgid "" "conditions such as unrelated control messages being received). See also :" "meth:`sendmsg`. ::" msgstr "" +"En sistemas donde soporta el mecanismo :const:`SCM_RIGHTS`, la siguiente " +"función recibirá un descriptor de archivos *maxfds*, devolviendo el mensaje " +"de datos y un lista que contiene los descriptores (mientras se ignoran las " +"condiciones inesperadas, como la recepción de mensajes de control no " +"relacionados). Ver también :meth:`sendmsg`. ::" #: ../Doc/library/socket.rst:1480 msgid "" @@ -1948,7 +2414,7 @@ msgstr "" "como :meth:`recvmsg` lo haría, pero dispersar los datos no auxiliares en una " "serie de buffers en lugar de devolver un nuevo objeto bytes. El argumento " "*buffers* debe ser un iterable de objetos que exportan buffers de escritura " -"(por ejemplo, :class:`bytearray` objects); estos se llenarán con fragmentos " +"(por ejemplo, objetos :class:`bytearray`); estos se llenarán con fragmentos " "sucesivos de los datos no auxiliares hasta que se hayan escrito todos o no " "haya más buffers. El sistema operativo puede establecer un límite (:func:" "`~os.sysconf` valor ``SC_IOV_MAX``) en el número de buffers que se pueden " @@ -1962,6 +2428,10 @@ msgid "" "into the buffers, and *ancdata*, *msg_flags* and *address* are the same as " "for :meth:`recvmsg`." msgstr "" +"El valor de retorno es tupla de 4: ``(nbytes, ancdata, msg_flags, " +"address)``, donde *nbytes* es el numero total de bytes de datos no " +"auxiliares escrito dentro de los bufetes, y *ancdata*, *msg_flags* y " +"*address* son lo mismo que para :meth:`recvmsg`." #: ../Doc/library/socket.rst:1496 msgid "Example::" @@ -1992,6 +2462,12 @@ msgid "" "bytes received. See the Unix manual page :manpage:`recv(2)` for the meaning " "of the optional argument *flags*; it defaults to zero." msgstr "" +"Recibe hasta *nbytes* bytes desde el socket, almacenado los datos en un " +"búfer en lugar de crear una nueva cadena de bytes. Si *nbytes* no esta " +"especificado (o 0), recibir hasta el tamaño disponible en el búfer dado. " +"Devuelve el número de bytes recibidos. Ver la página del manual de Unix :" +"manpage:`recv(2)` para el significado del argumento opcional *flags*; por " +"defecto es cero." #: ../Doc/library/socket.rst:1536 msgid "" @@ -2055,6 +2531,8 @@ msgid "" "Raises an :ref:`auditing event ` ``socket.sendto`` with arguments " "``self``, ``address``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.sendto`` con los " +"argumentos ``self``, ``address``." #: ../Doc/library/socket.rst:1587 msgid "" @@ -2099,12 +2577,17 @@ msgid "" "const:`AF_UNIX` socket, on systems which support the :const:`SCM_RIGHTS` " "mechanism. See also :meth:`recvmsg`. ::" msgstr "" +"La siguiente función envía la lista de descriptores de archivos *fds* sobre " +"un socket :const:`AF_UNIX`, estos sistemas pueden soportar la mecánica :" +"const:`SCM_RIGHTS`. Observar también :meth:`recvmsg`. ::" #: ../Doc/library/socket.rst:1618 msgid "" "Raises an :ref:`auditing event ` ``socket.sendmsg`` with arguments " "``self``, ``address``." msgstr "" +"Genera un :ref:`auditing event ` ``socket.sendmsg`` con los " +"argumentos ``self``, ``address``." #: ../Doc/library/socket.rst:1629 msgid "" @@ -2112,6 +2595,9 @@ msgid "" "Set mode, IV, AEAD associated data length and flags for :const:`AF_ALG` " "socket." msgstr "" +"Versión especializada de :meth:`~socket.sendmsg` para el socket :const:" +"`AF_ALG`. Modo de ajuste, IV, longitud de datos asociados a AEAD y banderas " +"para el socket :const:`AF_ALG`." #: ../Doc/library/socket.rst:1638 msgid "" @@ -2119,28 +2605,41 @@ msgid "" "*fds* parameter is a sequence of file descriptors. Consult :meth:`sendmsg` " "for the documentation of these parameters." msgstr "" +"Envía la lista de descriptores de archivos *fds* sobre un socket :const:" +"`AF_UNIX`. Los parámetros *fds* es una secuencia de descriptores de " +"archivos. Consultar :meth:`sendmsg` para la documentación de dichos " +"parámetros." #: ../Doc/library/socket.rst:1643 msgid "" ":ref:`Availability `: Unix supporting :meth:`~socket.sendmsg` " "and :const:`SCM_RIGHTS` mechanism." msgstr "" +":ref:`Availability `: Soporte para Unix :meth:`~socket." +"sendmsg` con el mecanismo :const:`SCM_RIGHTS`." #: ../Doc/library/socket.rst:1648 msgid "" "Receive up to *maxfds* file descriptors. Return ``(msg, list(fds), flags, " "addr)``. Consult :meth:`recvmsg` for the documentation of these parameters." msgstr "" +"Recibe hasta *maxfds* descriptores de archivos. Retorna ``(msg, list(fds), " +"flags, addr)``. Consulta :meth:`recvmsg` para la documentación de estos " +"parámetros." #: ../Doc/library/socket.rst:1652 msgid "" ":ref:`Availability `: Unix supporting :meth:`~socket.recvmsg` " "and :const:`SCM_RIGHTS` mechanism." msgstr "" +":ref:`Availability `: Soporte para Unix :meth:`~socket." +"recvmsg` y el mecanismo :const:`SCM_RIGHTS`." #: ../Doc/library/socket.rst:1657 msgid "Any truncated integers at the end of the list of file descriptors." msgstr "" +"Cualquier número entero truncado al final de la lista de descriptores de " +"archivo." #: ../Doc/library/socket.rst:1661 msgid "" @@ -2173,6 +2672,8 @@ msgid "" "Set the :ref:`inheritable flag ` of the socket's file " "descriptor or socket's handle." msgstr "" +"Selecciona el :ref:`inheritable flag ` descriptor del " +"archivo del socket o el controlador del socket." #: ../Doc/library/socket.rst:1685 msgid "" @@ -2187,20 +2688,24 @@ msgstr "" msgid "" "This method is a shorthand for certain :meth:`~socket.settimeout` calls:" msgstr "" +"El método es una abreviatura para ciertas llamadas :meth:`~socket." +"settimeout`:" #: ../Doc/library/socket.rst:1690 msgid "``sock.setblocking(True)`` is equivalent to ``sock.settimeout(None)``" -msgstr "" +msgstr "``sock.setblocking(True)`` es equivalente a ``sock.settimeout(None)``" #: ../Doc/library/socket.rst:1692 msgid "``sock.setblocking(False)`` is equivalent to ``sock.settimeout(0.0)``" -msgstr "" +msgstr "``sock.setblocking(False)`` es equivalente a ``sock.settimeout(0.0)``" #: ../Doc/library/socket.rst:1694 msgid "" "The method no longer applies :const:`SOCK_NONBLOCK` flag on :attr:`socket." "type`." msgstr "" +"El método ya no aplica la bandera :const:`SOCK_NONBLOCK` en :attr:`socket." +"type`." #: ../Doc/library/socket.rst:1701 msgid "" @@ -2211,6 +2716,13 @@ msgid "" "operation has completed. If zero is given, the socket is put in non-" "blocking mode. If ``None`` is given, the socket is put in blocking mode." msgstr "" +"Establece un tiempo de espera para bloquear las operaciones de socket. El " +"argumento *value* puede ser un número de punto flotante no negativo que " +"exprese segundos, o ``None``. Si se da un valor distinto de cero, las " +"operaciones subsiguientes de socket generarán una excepción :exc:`timeout` " +"si el período de tiempo de espera *value* ha transcurrido antes de que se " +"complete la operación. Si se da cero, el socket se pone en modo sin bloqueo. " +"Si se da ``None``, el enchufe se pone en modo de bloqueo." #: ../Doc/library/socket.rst:1708 msgid "" @@ -2225,6 +2737,8 @@ msgid "" "The method no longer toggles :const:`SOCK_NONBLOCK` flag on :attr:`socket." "type`." msgstr "" +"El método ya no cambia la bandera :const:`SOCK_NONBLOCK` en :attr:`socket." +"type`." #: ../Doc/library/socket.rst:1723 msgid "" @@ -2238,6 +2752,16 @@ msgid "" "*optlen* argument is required. It's equivalent to call :c:func:`setsockopt` " "C function with ``optval=NULL`` and ``optlen=optlen``." msgstr "" +"Establece el valor de la opción de socket dada (consulte la página de manual " +"de Unix :manpage:`setsockopt(2)`). Las constantes simbólicas necesarias se " +"definen en el modulo :mod:`socket` (:const:`SO_\\*` etc.). El valor puede " +"ser un entero, ``None`` o un :term:`bytes-like object` representan un " +"buffer. En el último caso, depende de la persona que llama asegurarse de que " +"la cadena de bytes contenga los bits adecuados (consulte el módulo integrado " +"opcional :mod:`struct` para una forma de codificar estructuras C como " +"cadenas de bytes). Cuando *value* se establece en ``None``, el argumento " +"*optlen* es requerido. Esto es equivalente a llamar a una función C :c:func:" +"`setsockopt` con ``optval=NULL`` y ``optlen=optlen``." #: ../Doc/library/socket.rst:1737 msgid "setsockopt(level, optname, None, optlen: int) form added." @@ -2250,6 +2774,9 @@ msgid "" "further sends are disallowed. If *how* is :const:`SHUT_RDWR`, further sends " "and receives are disallowed." msgstr "" +"Apague una o ambas mitades de la conexión. Si *how* es :const:`SHUT_RD`, más " +"recibe no se permiten. Si *how* es :const:`SHUT_WR`, mas recibe no se " +"permiten. Si *how* es :const:`SHUT_RDWR`, más recibe no se permiten." #: ../Doc/library/socket.rst:1751 msgid "" @@ -2261,6 +2788,13 @@ msgid "" "socket since the operating system has already duplicated it for the target " "process." msgstr "" +"Duplica un socket y lo prepara para compartirlo con el proceso de destino. " +"El proceso de destino debe estar provisto de *process_id*. el objeto de " +"bytes resultante luego se puede pasar al proceso de destino usando alguna " +"forma de comunicación entre procesos y el socket se puede recrear allí " +"usando :func:`fromshare`. Una vez que se ha llamado a este método, es " +"seguro cerrar el socket ya que el sistema operativo ya lo ha duplicado para " +"el proceso de destino." #: ../Doc/library/socket.rst:1763 msgid "" @@ -2275,6 +2809,8 @@ msgid "" "Socket objects also have these (read-only) attributes that correspond to the " "values given to the :class:`~socket.socket` constructor." msgstr "" +"Los objetos de socket también tienen estos atributos (de solo lectura) que " +"corresponden a los valores dados al constructor :class:`~socket.socket`." #: ../Doc/library/socket.rst:1772 msgid "The socket family." @@ -2329,6 +2865,9 @@ msgid "" "timeout specified for the socket (they raise a :exc:`timeout` exception) or " "if the system returns an error." msgstr "" +"En *timeout mode*, las operaciones fallan si no se puede completan el tiempo " +"de espera especifico para el socket ( ellos levanta una excepción :exc:" +"`timeout`) o si el sistema devuelve un error." #: ../Doc/library/socket.rst:1808 msgid "" @@ -2368,7 +2907,7 @@ msgstr "" #: ../Doc/library/socket.rst:1825 msgid "Timeouts and the ``accept`` method" -msgstr "" +msgstr "Tiempos de espera y el método ``accept``" #: ../Doc/library/socket.rst:1827 msgid "" @@ -2376,12 +2915,18 @@ msgid "" "meth:`~socket.accept` method inherit that timeout. Otherwise, the behaviour " "depends on settings of the listening socket:" msgstr "" +"Si :func:`getdefaulttimeout` no es una :const:`None`, los sockets devuelto " +"por el método :meth:`~socket.accept` heredan ese tiempo de espera. De lo " +"contrario, el comportamiento depende de la configuración de la toma de " +"escucha:" #: ../Doc/library/socket.rst:1831 msgid "" "if the listening socket is in *blocking mode* or in *timeout mode*, the " "socket returned by :meth:`~socket.accept` is in *blocking mode*;" msgstr "" +"si los sockets están escuchando en *blocking mode* o en el *timeout mode*, " +"el socket devuelve el :meth:`~socket.accept` en un *blocking mode*;" #: ../Doc/library/socket.rst:1834 msgid "" @@ -2390,6 +2935,10 @@ msgid "" "operating system-dependent. If you want to ensure cross-platform behaviour, " "it is recommended you manually override this setting." msgstr "" +"si los sockets están escuchando en *non-blocking mode*, ya sea el socket " +"devuelto por :meth:`~socket.accept` es un modo de bloqueo o no bloque " +"depende del sistema operativo. Si desea garantizar un comportamiento " +"multiplataforma, se recomienda que se anule manualmente esta configuración." #: ../Doc/library/socket.rst:1843 msgid "Example" @@ -2407,6 +2956,16 @@ msgid "" "sendall`/:meth:`~socket.recv` on the socket it is listening on but on the " "new socket returned by :meth:`~socket.accept`." msgstr "" +"Aquí están cuatro programas mínimos usando el protocolo TCP/IP: un servidor " +"que hace eco de todos los datos que reciban de vuelta ( Servicio a un solo " +"cliente), y un cliente usando esto. Recuerde que un servidor debe llevar a " +"cabo la secuencia :func:`.socket`, :meth:`~socket.bind`, :meth:`~socket." +"listen`, :meth:`~socket.accept` (posiblemente repitiendo la :meth:`~socket." +"accept` para un servicio mas que un cliente), mientras un cliente solamente " +"necesita la secuencia :func:`.socket`, :meth:`~socket.connect`. También " +"recuerde que el servidor no :meth:`~socket.sendall`/:meth:`~socket.recv` en " +"el socket esta escuchando pero en el nuevo socket devuelto por :meth:" +"`~socket.accept`." #: ../Doc/library/socket.rst:1855 msgid "The first two examples support IPv4 only. ::" @@ -2485,6 +3044,8 @@ msgid "" "There is a :mod:`socket` flag to set, in order to prevent this, :data:" "`socket.SO_REUSEADDR`::" msgstr "" +"Este es una bandera :mod:`socket` para establecer, en orden para prevenir " +"esto, :data:`socket.SO_REUSEADDR`::" #: ../Doc/library/socket.rst:2048 msgid "" @@ -2507,12 +3068,16 @@ msgid "" "*An Introductory 4.3BSD Interprocess Communication Tutorial*, by Stuart " "Sechrest" msgstr "" +"*An Introductory 4.3BSD Interprocess Communication Tutorial*, por Stuart " +"Sechrest" #: ../Doc/library/socket.rst:2058 msgid "" "*An Advanced 4.3BSD Interprocess Communication Tutorial*, by Samuel J. " "Leffler et al," msgstr "" +"*An Advanced 4.3BSD Interprocess Communication Tutorial*, por Samuel J. " +"Leffler et al," #: ../Doc/library/socket.rst:2061 msgid "" @@ -2524,3 +3089,11 @@ msgid "" "readers may want to refer to :rfc:`3493` titled Basic Socket Interface " "Extensions for IPv6." msgstr "" +"ambos en el manual del programador de Unix, documentos suplementarios 1 " +"( secciones PS1:7 y PS1:8). La plataforma especifica material de referencia " +"para las diversas llamadas al sistema también son una valiosa fuente de " +"información en los detalles de la semántica del socket. Para Unix, " +"referencia a las paginas del manual, para Windows, observa la especificación " +"WinSock (o WinSock 2). Para APIS listas IPV6, los lectores pueden querer " +"referirse al titulado Extensiones básicas de interfaz de socket para IPv6 :" +"rfc:`3493` ." diff --git a/library/sqlite3.po b/library/sqlite3.po index 9a7ac8520f..31fc2bcd89 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-29 22:31-0500\n" -"Last-Translator: German David Ramírez Figueroa \n" +"PO-Revision-Date: 2021-08-04 21:57+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/sqlite3.rst:2 msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases" @@ -306,6 +307,13 @@ msgid "" "for generated fields (for example ``max(data)``), even when *detect_types* " "parameter is set. In such case, the returned type is :class:`str`." msgstr "" +"*detect_types* por defecto es 0 (es decir, desactivado, sin detección de " +"tipo), puede configurarlo en cualquier combinación de :const:" +"`PARSE_DECLTYPES` y :const:`PARSE_COLNAMES` para activar la detección de " +"tipo. Debido al comportamiento de SQLite, los tipos no se pueden detectar " +"para los campos generados (por ejemplo, ``max(data)``), incluso cuando se " +"establece el parámetro *detect_types*. En tal caso, el tipo devuelto es :" +"class:`str`." #: ../Doc/library/sqlite3.rst:200 msgid "" @@ -1410,7 +1418,7 @@ msgstr "" "Como se describió anteriormente, SQLite soporta solamente un conjunto " "limitado de tipos de forma nativa. Para usar otros tipos de Python con " "SQLite, se deben **adaptar** a uno de los tipos de datos soportados por el " -"módulo sqlite3 para SQLite: uno de NoneType, int, float, str, bytes. " +"módulo sqlite3 para SQLite: uno de NoneType, int, float, str, bytes." #: ../Doc/library/sqlite3.rst:914 msgid "" @@ -1433,7 +1441,6 @@ msgstr "" "se tiene una clase como esta::" #: ../Doc/library/sqlite3.rst:928 -#, fuzzy msgid "" "Now you want to store the point in a single SQLite column. First you'll " "have to choose one of the supported types to be used for representing the " @@ -1442,12 +1449,12 @@ msgid "" "which must return the converted value. The parameter *protocol* will be :" "class:`PrepareProtocol`." msgstr "" -"Ahora se quiere almacenar el punto en una columna SQLite. Primero se debe " -"elegir un tipo de los soportados para representar el punto. Se va a usar " -"cadena de texto separando las coordenadas usando un punto y coma. Luego se " -"necesita proveer a la clase el método ``__conform__(self, protocol)`` el " -"cuál deberá retornar el valor convertido. El parámetro *protocol* será :" -"class:`PrepareProtocol`." +"Ahora desea almacenar el punto en una sola columna de SQLite. Primero tendrá " +"que elegir uno de los tipos admitidos que se utilizará para representar el " +"punto. Usemos str y separemos las coordenadas usando un punto y coma. Luego, " +"debe darle a su clase un método ``__conform __(self, protocol)`` que debe " +"retornar el valor convertido. El parámetro *protocol* será :class:" +"`PrepareProtocol`." #: ../Doc/library/sqlite3.rst:938 msgid "Registering an adapter callable" @@ -1738,18 +1745,17 @@ msgid "Footnotes" msgstr "Notas al pie" #: ../Doc/library/sqlite3.rst:1094 -#, fuzzy msgid "" "The sqlite3 module is not built with loadable extension support by default, " "because some platforms (notably Mac OS X) have SQLite libraries which are " "compiled without this feature. To get loadable extension support, you must " "pass ``--enable-loadable-sqlite-extensions`` to configure." msgstr "" -"El módulo sqlite3 no está compilado con una extensión cargable por defecto, " -"porqué algunas plataformas (notablemente Mac OS X) tienen bibliotecas SQLite " -"compiladas sin esta característica. Para obtener soporte de extensión " -"configurable, se debe pasar --enable-loadable-sqlite-extension para " -"configurar." +"El módulo sqlite3 no está construido con soporte de extensión cargable de " +"forma predeterminada, porque algunas plataformas (especialmente Mac OS X) " +"tienen bibliotecas SQLite que se compilan sin esta característica. Para " +"obtener soporte de extensión cargable, debe pasar ``--enable-loadable-sqlite-" +"extensions`` para configurar." #~ msgid "https://github.com/ghaering/pysqlite" #~ msgstr "https://github.com/ghaering/pysqlite" diff --git a/library/ssl.po b/library/ssl.po index 54454434f9..7b0cbb151e 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -11,26 +11,26 @@ msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2021-05-07 11:25+0200\n" +"PO-Revision-Date: 2021-08-04 16:45+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Marcos Medrano \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.0\n" "X-Poedit-Basepath: .\n" -# En el resto del documento, utilizo los términos en inglés "socket" (utilizado comunmente en español) y "wrapper" (que podría traducirse "envoltura" pero me parece mucho mas claro en inglés). #: ../Doc/library/ssl.rst:2 msgid ":mod:`ssl` --- TLS/SSL wrapper for socket objects" -msgstr ":mod:`ssl` --- TLS/SSL wrapper para objetos socket" +msgstr "" +":mod:`ssl` ---Empaquetador o wrapper TLS/SSL para objetos de tipo socket" #: ../Doc/library/ssl.rst:10 msgid "**Source code:** :source:`Lib/ssl.py`" -msgstr "**Código fuente:** :source:'Lib/ssl.py'" +msgstr "**Código fuente:**:source:`Lib/ssl.py`" #: ../Doc/library/ssl.rst:18 msgid "" @@ -41,26 +41,13 @@ msgid "" "X, and probably additional platforms, as long as OpenSSL is installed on " "that platform." msgstr "" -"Este módulo provee acceso al cifrado de la Seguridad de la capa de " -"transporte (conocida también como \"Secure Sockets Layer\") y a facilidades " -"de autenticación para sockets de red, tanto para el lado del cliente como " -"para el lado del servidor. Este módulo utiliza la biblioteca OpenSSL. Está " -"disponible en todos los sistemas Unix modernos, Windows, Max OS X, y " -"probablemente en plataformas adicionales, siempre y cuando OpenSSL esté " -"instalada en esa plataforma." - -# El último "openssl" lo traduzco "OpenSSL" por cohérencia con el resto de la documentación. -#: ../Doc/library/ssl.rst:26 -msgid "" -"Some behavior may be platform dependent, since calls are made to the " -"operating system socket APIs. The installed version of OpenSSL may also " -"cause variations in behavior. For example, TLSv1.1 and TLSv1.2 come with " -"openssl version 1.0.1." -msgstr "" -"Algunos comportamientos pueden depender de la plataforma, dado que las " -"llamadas se realizan a las API de socket del sistema operativo. La versión " -"de OpenSSL instalada puede también causar variaciones en el comportamiento. " -"Por ejemplo, TLSv1.1 y TLSv1.2 vienen con la versión 1.0.1 de OpenSSL." +"Este módulo proporciona acceso a las funciones de cifrado de Seguridad de la " +"capa de transporte (a menudo conocida como \"Capa de sockets seguros\") y de " +"autenticación de pares para sockets de red, tanto del lado del cliente como " +"del lado del servidor. Este módulo utiliza la biblioteca OpenSSL. Está " +"disponible en todos los sistemas Unix modernos, Windows, Mac OS X y " +"probablemente en plataformas adicionales, siempre que OpenSSL esté instalado " +"en esa plataforma." #: ../Doc/library/ssl.rst:32 msgid "" @@ -68,9 +55,9 @@ msgid "" "lead to a false sense of security, as the default settings of the ssl module " "are not necessarily appropriate for your application." msgstr "" -"No utilice este módulo sin leer :ref:`ssl-security`. Hacerlo puede dar lugar " -"a una falsa sensación de seguridad ya que los ajustes por defecto del módulo " -"ssl no son necesariamente adecuados para su aplicación." +"No use este módulo sin leer :ref:`ssl-security`. Hacerlo puede generar una " +"falsa sensación de seguridad, ya que la configuración predeterminada del " +"módulo ssl no es necesariamente la adecuada para su aplicación." #: ../Doc/library/ssl.rst:37 msgid "" @@ -78,9 +65,9 @@ msgid "" "more general information about TLS, SSL, and certificates, the reader is " "referred to the documents in the \"See Also\" section at the bottom." msgstr "" -"Esta sección documenta los objetos y funciones del módulo ``ssl``; para " -"obtener información mas general sobre TLS, SSL, y certificados, el lector es " -"referido a los documentos de la sección \"Ver también\" en la parte inferior." +"Esta sección documenta los objetos y funciones en el módulo ``ssl``; para " +"más información general sobre TLS,SSL, y certificados, se recomienda que el " +"lector acuda a la sección \"Ver también\" al final de la página." #: ../Doc/library/ssl.rst:41 msgid "" @@ -91,12 +78,12 @@ msgid "" "certificate of the other side of the connection, and :meth:`cipher`, which " "retrieves the cipher being used for the secure connection." msgstr "" -"Este módulo proporciona una clase, :class:`ssl.SSLSocket`, que deriva del " -"tipo :class:`socket.socket`, y proporciona un wrapper tipo socket que " -"también cifra y descifra los datos que pasan por el socket con SSL. Soporta " -"métodos adicionales como :meth:`getpeercert`, el cual recupera el " +"Este módulo proporciona una clase, :class:`ssl.SSLSocket`, que se deriva del " +"tipo :class:`socket.socket`, y proporciona una envoltura similar a un socket " +"que también encripta y desencripta los datos que pasan por el socket con " +"SSL . Admite métodos adicionales como :meth:`getpeercert`, que recupera el " "certificado del otro lado de la conexión, y :meth:`cipher`, que recupera el " -"cifrado que se está utilizando para la conexión segura." +"cifrado que se utiliza para la conexión segura." #: ../Doc/library/ssl.rst:48 msgid "" @@ -104,14 +91,14 @@ msgid "" "manage settings and certificates, which can then be inherited by SSL sockets " "created through the :meth:`SSLContext.wrap_socket` method." msgstr "" -"Para aplicaciones mas sofisticadas, la clase :class:`ssl.SSLContext` ayuda a " -"gestionar los ajustes y los certificados, los cuales pueden luego ser " +"Para aplicaciones más sofisticadas, la clase :class:`ssl.SSLContext` ayuda a " +"administrar la configuración y los certificados, que luego pueden ser " "heredados por sockets SSL creados a través del método :meth:`SSLContext." "wrap_socket`." #: ../Doc/library/ssl.rst:52 msgid "Updated to support linking with OpenSSL 1.1.0" -msgstr "Actualizado para soportar enlace con OpenSSL 1.1.0" +msgstr "Actualizado para admitir la vinculación con OpenSSL 1.1.0" #: ../Doc/library/ssl.rst:57 msgid "" @@ -712,13 +699,10 @@ msgstr "" ":attr:`openssl_cafile_env` - clave de entorno de OpenSSL que apunta a un " "cafile," -# Como traducir "hard coded path" ? -# "ruta hardcodeada" ? -# "ruta preseteada" ? -# "ruta predefinida" ? #: ../Doc/library/ssl.rst:467 msgid ":attr:`openssl_cafile` - hard coded path to a cafile," -msgstr ":attr:`openssl_cafile` - hard-coded ruta a un cafile," +msgstr "" +":attr:`openssl_cafile` - camino codificado de forma rígida a un cafile," #: ../Doc/library/ssl.rst:468 msgid "" @@ -730,7 +714,9 @@ msgstr "" #: ../Doc/library/ssl.rst:469 msgid ":attr:`openssl_capath` - hard coded path to a capath directory" -msgstr ":attr:`openssl_capath` - hard-coded ruta a un directorio capath" +msgstr "" +":attr:`openssl_capath` - camino codificado de forma rígida a un directorio " +"capath" #: ../Doc/library/ssl.rst:473 msgid "" @@ -964,7 +950,7 @@ msgid "" "neither require nor verify CRLs." msgstr "" "Valor posible para :attr:`SSLContext.verify_flags`. En este modo, las listas " -"de revocación de certificado (CRLs) no son vérificadas. Por defecto OpenSSL " +"de revocación de certificado (CRLs) no son verificadas. Por defecto OpenSSL " "no requiere ni verifica CRLs." #: ../Doc/library/ssl.rst:615 @@ -1639,7 +1625,7 @@ msgid "" msgstr "" "Lee hasta *len* bytes de datos del socket SSL y retorna el resultado como " "una instancia ``bytes``. Si *buffer* es especificado, entonces se lee hacia " -"el buffer en su lugar, y retorna el número de bytes leídos." +"el búfer en su lugar, y retorna el número de bytes leídos." #: ../Doc/library/ssl.rst:1129 msgid "" @@ -1677,7 +1663,7 @@ msgid "" "*buf* argument must be an object supporting the buffer interface." msgstr "" "Escribe *buf* en el socket SSL y retorna el número de bytes escritos. El " -"argumento *buf* debe ser un objeto que soporte la interfaz buffer." +"argumento *buf* debe ser un objeto que soporte la interfaz búfer." #: ../Doc/library/ssl.rst:1148 msgid "" @@ -1865,7 +1851,7 @@ msgid "" "``crlDistributionPoints``, ``caIssuers`` and ``OCSP`` URIs." msgstr "" ":exc:`ValueError` se lanza cuando no se realiza el handshake. El diccionario " -"devuelto incluye elementos de extensión X509v3 adicionales como " +"retornado incluye elementos de extensión X509v3 adicionales como " "``crlDistributionPoints``, ``caIssuers`` y ``OCSP`` URIs." #: ../Doc/library/ssl.rst:1259 @@ -2878,7 +2864,7 @@ msgid "" "of hard-coded :class:`SSLSocket`." msgstr "" "El método retorna una instancia de :attr:`SSLContext.sslsocket_class` en " -"lugar de un :class:`SSLSocket` hard-coded." +"lugar de un :class:`SSLSocket` rígidamente programado." #: ../Doc/library/ssl.rst:1836 msgid "" @@ -2916,7 +2902,7 @@ msgid "" "of hard-coded :class:`SSLObject`." msgstr "" "El método retorna una instancia de :attr:`SSLContext.sslobject_class` en " -"lugar de un :class:`SSLObject` hard-coded." +"lugar de un :class:`SSLObject` rígidamente programado." #: ../Doc/library/ssl.rst:1862 msgid "" @@ -3690,7 +3676,7 @@ msgstr "" "Una variante de alcance reducido de :class:`SSLSocket` que representa una " "instancia del protocolo SSL que no contiene ningún método de E/S de red. " "Esta clase suele ser utilizada por los autores de frameworks que quieren " -"implementar E/S asíncrona para SSL a través de buffers de memoria." +"implementar E/S asíncrona para SSL a través de búfers de memoria." #: ../Doc/library/ssl.rst:2467 msgid "" @@ -3814,7 +3800,7 @@ msgid "" "underlying :class:`MemoryBIO` buffers." msgstr "" "Cualquier forma de E/S de red; ``recv()`` y ``send()`` leen y escriben sólo " -"en los buffers subyacentes de :class:`MemoryBIO`." +"en los búfers subyacentes de :class:`MemoryBIO`." #: ../Doc/library/ssl.rst:2507 msgid "" @@ -3894,24 +3880,23 @@ msgid "" "class :class:`MemoryBIO` provides a memory buffer that can be used for this " "purpose. It wraps an OpenSSL memory BIO (Basic IO) object:" msgstr "" -"Un SSLObject se comunica con el mundo exterior utilizando buffers de " -"memoria. La clase :class:`MemoryBIO` proporciona un buffer de memoria que " -"puede ser utilizado para este propósito. Envuelve un objeto BIO (Basic IO) " -"de memoria de OpenSSL:" +"Un SSLObject se comunica con el mundo exterior utilizando búfers de memoria. " +"La clase :class:`MemoryBIO` proporciona un búfer de memoria que puede ser " +"utilizado para este propósito. Envuelve un objeto BIO (Basic IO) de memoria " +"de OpenSSL:" #: ../Doc/library/ssl.rst:2544 msgid "" "A memory buffer that can be used to pass data between Python and an SSL " "protocol instance." msgstr "" -"Un buffer de memoria que se puede utilizar para pasar datos entre Python y " +"Un búfer de memoria que se puede utilizar para pasar datos entre Python y " "una instancia del protocolo SSL." #: ../Doc/library/ssl.rst:2549 msgid "Return the number of bytes currently in the memory buffer." msgstr "" -"Retorna el número de bytes que se encuentran actualmente en la memoria " -"buffer." +"Retorna el número de bytes que se encuentran actualmente en la memoria búfer." #: ../Doc/library/ssl.rst:2553 msgid "" @@ -3926,7 +3911,7 @@ msgid "" "Read up to *n* bytes from the memory buffer. If *n* is not specified or " "negative, all bytes are returned." msgstr "" -"Lee hasta *n* bytes del buffer de memoria. Si *n* no se especifica o es " +"Lee hasta *n* bytes del búfer de memoria. Si *n* no se especifica o es " "negativo, se devuelven todos los bytes." #: ../Doc/library/ssl.rst:2563 @@ -3935,7 +3920,7 @@ msgid "" "object supporting the buffer protocol." msgstr "" "Escribe los bytes de *buf* en la memoria BIO. El argumento *buf* debe ser un " -"objeto que soporte el protocolo de buffer." +"objeto que soporte el protocolo de búfer." #: ../Doc/library/ssl.rst:2566 msgid "" @@ -3954,7 +3939,7 @@ msgstr "" "Escribe un marcador EOF en la memoria BIO. Después de llamar a este método, " "es ilegal llamar a :meth:`~MemoryBIO.write`. El atributo :attr:`eof` se " "convertirá en verdadero después de que se hayan leído todos los datos que " -"hay actualmente en el buffer." +"hay actualmente en el búfer." #: ../Doc/library/ssl.rst:2577 msgid "SSL session" diff --git a/library/stdtypes.po b/library/stdtypes.po index 03251e6ec0..e6dcb13b08 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-20 19:58+0200\n" +"PO-Revision-Date: 2021-08-09 14:49-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/stdtypes.rst:8 msgid "Built-in Types" @@ -343,7 +344,7 @@ msgstr "" "pero en algunos tipos de objetos (Como por ejemplo, las clases) es " "equivalente al operador :keyword:`is`. Los operadores ``<``, ``<=``, ``>`` y " "``>=`` solo están definidos cuando tienen sentido; por ejemplo, si uno de " -"los operadores es un número complejo, la comparación elevará una excepción " +"los operadores es un número complejo, la comparación lanzará una excepción " "de tipo :exc:`TypeError`." #: ../Doc/library/stdtypes.rst:180 @@ -376,7 +377,7 @@ msgid "" "exception." msgstr "" "El comportamiento de los operadores :keyword:`is` e :keyword:`is not` no se " -"puede personalizar; además, nunca elevan una excepción, no importa que dos " +"puede personalizar; además, nunca lanzarán una excepción, no importa que dos " "objetos se comparen." #: ../Doc/library/stdtypes.rst:197 @@ -709,13 +710,12 @@ msgstr "" "con la propiedad ``Nd``)." #: ../Doc/library/stdtypes.rst:355 -#, fuzzy msgid "" "See https://www.unicode.org/Public/13.0.0/ucd/extracted/DerivedNumericType." "txt for a complete list of code points with the ``Nd`` property." msgstr "" -"En http://www.unicode.org/Public/12.1.0/ucd/extracted/DerivedNumericType.txt " -"se puede consultar una lista completa de los puntos de código con la " +"En https://www.unicode.org/Public/13.0.0/ucd/extracted/DerivedNumericType." +"txt se puede consultar una lista completa de los puntos de código con la " "propiedad ``Nd``." #: ../Doc/library/stdtypes.rst:359 @@ -871,24 +871,22 @@ msgstr "invierte los bits de *x*" msgid "" "Negative shift counts are illegal and cause a :exc:`ValueError` to be raised." msgstr "" -"Los desplazamientos negativos son ilegales y elevan una excepción de tipo :" +"Los desplazamientos negativos son ilegales y lanzarán una excepción de tipo :" "exc:`ValeError`." #: ../Doc/library/stdtypes.rst:437 -#, fuzzy msgid "" "A left shift by *n* bits is equivalent to multiplication by ``pow(2, n)``." msgstr "" "Un desplazamiento de *n* bits a la izquierda es equivalente a multiplicar " -"por ``pow(2, n)``, sin comprobación de desbordamiento." +"por ``pow(2, n)``." #: ../Doc/library/stdtypes.rst:440 -#, fuzzy msgid "" "A right shift by *n* bits is equivalent to floor division by ``pow(2, n)``." msgstr "" -"Un desplazamiento de *n* bits a la derecha es equivalente a dividir por " -"``pow(2, n)``, sin comprobación de desbordamiento." +"Un desplazamiento de *n* bits a la derecha es equivalente a efectuar la " +"división de parte entera (floor) por ``pow(2, n)``." #: ../Doc/library/stdtypes.rst:443 msgid "" @@ -952,7 +950,7 @@ msgid "" "raised if the integer is not representable with the given number of bytes." msgstr "" "El número entero se representa usando el número de bits indicados con " -"*length*. Se elevará la excepción :exc:`OverflowError` si no se puede " +"*length*. Se lanzará la excepción :exc:`OverflowError` si no se puede " "representar el valor con ese número de bits." #: ../Doc/library/stdtypes.rst:499 ../Doc/library/stdtypes.rst:531 @@ -980,7 +978,7 @@ msgid "" msgstr "" "El parámetro *signed* determina si se usa el complemento a dos para " "representar los números enteros. Si *signed* es ``False``, y se usa un valor " -"entero negativo, se elevará la excepción :exc:`OverflowError`. El valor por " +"entero negativo, se lanzará la excepción :exc:`OverflowError`. El valor por " "defecto para *signed* es ``False``." #: ../Doc/library/stdtypes.rst:515 @@ -1036,7 +1034,7 @@ msgid "" msgstr "" "Retorna una pareja de números enteros cuya proporción es exactamente igual " "que la del valor en punto flotante original, con un denominador positivo. Si " -"se llama con valores infinitos eleva una excepción de tipo :exc:" +"se llama con valores infinitos lanza una excepción de tipo :exc:" "`OverflowError` y si se llama con *NaN* (*Not A Number*) eleva una excepción " "de tipo :exc:`ValueError`." @@ -1330,7 +1328,7 @@ msgid "" "objects in the Python/C API." msgstr "" "Retorna el siguiente elemento del contenedor. Si no hubiera más elementos, " -"eleva la excepción :exc:`StopIteration`. Este método se corresponde con el " +"lanza la excepción :exc:`StopIteration`. Este método se corresponde con el " "*slot* :c:member:`~PyTypeObject.tp_iternext` de la estructura usada para los " "objetos Python en la API Python/C." @@ -1352,7 +1350,7 @@ msgid "" "`StopIteration`, it must continue to do so on subsequent calls. " "Implementations that do not obey this property are deemed broken." msgstr "" -"Una vez que la ejecución del método :meth:`~iterator.__next__` eleva la " +"Una vez que la ejecución del método :meth:`~iterator.__next__` lanza la " "excepción :exc:`StopIteration`, debe continuar haciéndolo en subsiguientes " "llamadas al método. Si una implementación no cumple esto, se considera rota." @@ -1728,7 +1726,7 @@ msgid "" "without copying any data and with the returned index being relative to the " "start of the sequence rather than the start of the slice." msgstr "" -"El método ``index`` eleva la excepción :exc:`ValueError` si *x* no se " +"El método ``index`` lanza la excepción :exc:`ValueError` si *x* no se " "encuentra en *s*. No todas las implementaciones soportan los parámetros " "opcionales *i* y *j*. Estos parámetros permiten una búsqueda eficiente de " "partes de una secuencia. Usar estos parámetros es más o menos equivalente a " @@ -1943,7 +1941,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:1116 msgid ":meth:`remove` raises :exc:`ValueError` when *x* is not found in *s*." msgstr "" -"El método :meth:`remove` eleva la excepción :exc:`ValueError` cuando no se " +"El método :meth:`remove` lanza la excepción :exc:`ValueError` cuando no se " "encuentra *x* en *s*." # side effect ' efecto secundario? @@ -2159,7 +2157,7 @@ msgid "" msgstr "" "Mientras una lista está siendo ordenada, los efectos de intentar " "modificarla, o incluso examinarla, no están definidos. La implementación en " -"C de Python hace que la lista parezca vacía durante la ordenación, y eleva " +"C de Python hace que la lista parezca vacía durante la ordenación, y lanza " "una excepción del tipo :exc:`ValueError` si detecta un cambio en la lista " "durante el proceso de ordenación." @@ -2283,7 +2281,7 @@ msgstr "" "(O bien objetos de tipo :class:`int` o instancias de una clase que " "implemente el método especial ``__index__``). Si el parámetro *step* se " "omite, se asume el valor ``1``. Si se omite el parámetro ``start``, se toma " -"como ``0``. Si se intenta usar ``0`` como valor de ``step``, se eleva una " +"como ``0``. Si se intenta usar ``0`` como valor de ``step``, se lanza una " "excepción de tipo :exc:`ValueError`." #: ../Doc/library/stdtypes.rst:1283 @@ -2324,7 +2322,7 @@ msgid "" msgstr "" "Los rangos que contengan valores mayores que :data:`sys.maxsize` se " "permiten, pero algunas capacidades (como la función :func:`len`) pueden " -"elevar una excepción de tipo :exc:`OverflowError`." +"lanzar una excepción de tipo :exc:`OverflowError`." #: ../Doc/library/stdtypes.rst:1300 msgid "Range examples::" @@ -2738,7 +2736,7 @@ msgstr "" "Retorna una versión codificada en forma de bytes. La codificación por " "defecto es ``'utf-8'``. El parámetro *errors* permite especificar diferentes " "esquemas de gestión de errores. El valor por defecto de *errors* es " -"``'strict'``, que significa que cualquier error en la codificación eleva una " +"``'strict'``, que significa que cualquier error en la codificación lanza una " "excepción de tipo :exc:`UnicodeError`. Otros valores posibles son " "``'ignore'``, ``'replace'``, ``'xmlcharrefreplace'``, ``'backslashreplace'`` " "y cualquier otro nombre que se haya registrado mediante la función :func:" @@ -2752,6 +2750,10 @@ msgid "" "only used at the first encoding error. Enable the :ref:`Python Development " "Mode `, or use a debug build to check *errors*." msgstr "" +"Por defecto, el argumento *errors* no se verifica para mejor rendimiento, " +"solo se usa con el primer error de codificación encontrado. Se puede " +"habilitar el :ref:`Modo de Desarrollo de Python `, o utilizar una " +"construcción de depuración para verificar *errors*." #: ../Doc/library/stdtypes.rst:1565 msgid "Support for keyword arguments added." @@ -2760,6 +2762,8 @@ msgstr "Añade soporte para el uso de parámetros por nombre." #: ../Doc/library/stdtypes.rst:1568 ../Doc/library/stdtypes.rst:2703 msgid "The *errors* is now checked in development mode and in debug mode." msgstr "" +"El argumento *errors* ahora se verifica en modo de desarrollo y en modo de " +"depuración." #: ../Doc/library/stdtypes.rst:1574 msgid "" @@ -2892,7 +2896,7 @@ msgid "" "Like :meth:`~str.find`, but raise :exc:`ValueError` when the substring is " "not found." msgstr "" -"Como :meth:`~str.find`, pero eleva una excepción de tipo :exc:`ValueError` " +"Como :meth:`~str.find`, pero lanza una excepción de tipo :exc:`ValueError` " "si no se encuentra la cadena a buscar." #: ../Doc/library/stdtypes.rst:1672 @@ -3083,7 +3087,7 @@ msgid "" "elements is the string providing this method." msgstr "" "Retorna una cadena de caracteres formada por la concatenación de las cadenas " -"en el *iterable*. Se eleva una excepción de tipo :exc:`TypeError` si alguno " +"en el *iterable*. Se lanza una excepción de tipo :exc:`TypeError` si alguno " "de los elementos en el *iterable* no es una cadena, incluyendo objetos de " "tipo :class:`bytes`. Se usa como separador entre los elementos la cadena de " "caracteres pasada como parámetro." @@ -3135,6 +3139,9 @@ msgid "" "See :meth:`str.removeprefix` for a method that will remove a single prefix " "string rather than all of a set of characters. For example::" msgstr "" +"Véase :meth:`str.removeprefix` para un método que removerá una única cadena " +"de prefijo en lugar de todas las ocurrencias dentro de un set de caracteres. " +"Por ejemplo::" #: ../Doc/library/stdtypes.rst:1843 msgid "" @@ -3186,6 +3193,9 @@ msgid "" "If the string starts with the *prefix* string, return " "``string[len(prefix):]``. Otherwise, return a copy of the original string::" msgstr "" +"Si la cadena de caracteres empieza con la cadena *prefix*, retorna " +"``string[len(prefix):]``. De otra manera, retorna una copia de la cadena " +"original::" #: ../Doc/library/stdtypes.rst:1880 msgid "" @@ -3193,6 +3203,9 @@ msgid "" "return ``string[:-len(suffix)]``. Otherwise, return a copy of the original " "string::" msgstr "" +"Si la cadena de caracteres termina con la cadena *suffix*, retorna " +"``string[:-len(suffix)]``. De otra manera, retorna una copia de la cadena " +"original::" #: ../Doc/library/stdtypes.rst:1894 msgid "" @@ -3220,7 +3233,7 @@ msgid "" "Like :meth:`rfind` but raises :exc:`ValueError` when the substring *sub* is " "not found." msgstr "" -"Como el método :meth:`rfind`, pero eleva la excepción :exc:`ValueError` si " +"Como el método :meth:`rfind`, pero lanza la excepción :exc:`ValueError` si " "no se encuentra la cadena *sub*." #: ../Doc/library/stdtypes.rst:1914 @@ -3283,6 +3296,9 @@ msgid "" "See :meth:`str.removesuffix` for a method that will remove a single suffix " "string rather than all of a set of characters. For example::" msgstr "" +"Véase :meth:`str.removesuffix` para un método que removerá una única cadena " +"de sufijo en lugar de de todas las ocurrencias dentro de un set de " +"caracteres. Por ejemplo::" #: ../Doc/library/stdtypes.rst:1958 msgid "" @@ -3577,7 +3593,7 @@ msgstr "" "siguientes cosas: retornar otro código Unicode o retornar una cadena de " "caracteres, de forma que se usaran uno u otro como reemplazo en la cadena de " "salida; retornar ``None`` para eliminar el carácter en la cadena de salida, " -"o elevar una excepción de tipo :exc:`LookupError`, que hará que el carácter " +"o lanzar una excepción de tipo :exc:`LookupError`, que hará que el carácter " "se copie igual en la cadena de salida." #: ../Doc/library/stdtypes.rst:2142 @@ -4564,13 +4580,15 @@ msgid "" "``bytes[len(prefix):]``. Otherwise, return a copy of the original binary " "data::" msgstr "" +"Si los datos binarios comienzan con la cadena *prefix*, retorna " +"``bytes[len(prefix):]``. De otra manera, retorna una copia de los datos " +"binarios originales::" #: ../Doc/library/stdtypes.rst:2647 -#, fuzzy msgid "The *prefix* may be any :term:`bytes-like object`." msgstr "" -"El prefijo (o prefijos) a buscar puede ser cualquier :term:`objeto tipo " -"binario `." +"El argumento *prefix* puede ser cualquier :term:`objeto tipo binario `." # La traduccion de in place #: ../Doc/library/stdtypes.rst:2651 ../Doc/library/stdtypes.rst:2673 @@ -4596,13 +4614,15 @@ msgid "" "empty, return ``bytes[:-len(suffix)]``. Otherwise, return a copy of the " "original binary data::" msgstr "" +"Si los datos binarios terminan con la cadena expresada en *suffix* y el " +"argumento *suffix* no está vacío, retorna ``bytes[:-len(suffix)]``. De otra " +"manera, retorna una copia de los datos binarios originales::" #: ../Doc/library/stdtypes.rst:2669 -#, fuzzy msgid "The *suffix* may be any :term:`bytes-like object`." msgstr "" -"El sufijo (o sufijos) a buscar puede ser cualquier :term:`objeto tipo " -"binario `." +"El argumento *suffix* puede ser cualquier :term:`objeto tipo binario `." # Hay que ver si estas referencias se han traducido #: ../Doc/library/stdtypes.rst:2682 @@ -4619,7 +4639,7 @@ msgstr "" "bytes. La codificación por defecto es ``'utf-8'``. El parámetro *errors* " "puede definir diferentes estrategias de gestión de errores. El valor por " "defecto de *errors* es ``'strict'``, que hace que cualquier error de la " -"decodificación eleva una excepción de tipo :exc:`UnicodeError`. Otros " +"decodificación lanza una excepción de tipo :exc:`UnicodeError`. Otros " "valores posibles son``'ignore'``, ``'replace'`` y cualquier otro nombre " "definido mediante la función :func:`codecs.register_error`, véase la " "sección :ref:`error-handlers`. Para un listado de todos los valores de " @@ -4631,6 +4651,10 @@ msgid "" "only used at the first decoding error. Enable the :ref:`Python Development " "Mode `, or use a debug build to check *errors*." msgstr "" +"Por defecto, el argumento *errors* no se verifica para mejor rendimiento, " +"solo se usa con el primer error de codificación encontrado. Se puede " +"habilitar el :ref:`Modo de Desarrollo de Python `, o utilizar una " +"construcción de depuración para verificar *errors*." #: ../Doc/library/stdtypes.rst:2696 msgid "" @@ -4693,7 +4717,7 @@ msgid "" "Like :meth:`~bytes.find`, but raise :exc:`ValueError` when the subsequence " "is not found." msgstr "" -"Como :meth:`~bytes.find`, pero eleva una excepción de tipo :exc:`ValueError` " +"Como :meth:`~bytes.find`, pero lanza una excepción de tipo :exc:`ValueError` " "si no se encuentra la subsecuencia a buscar." #: ../Doc/library/stdtypes.rst:2758 @@ -4707,7 +4731,7 @@ msgid "" msgstr "" "Retorna un objeto de tipo *bytes* o *bytearray* que es la concatenación de " "las secuencias binarias en *iterable*. Si alguno de los objetos de la " -"secuencia no es un :term:`objeto tipo binario ` se eleva " +"secuencia no es un :term:`objeto tipo binario ` se lanza " "la excepción :exc:`TypeError`, incluso si son cadenas de caracteres " "(objetos :class:`str`). El separador entre los distintos elementos es el " "contenido del objeto *bytes* o *bytearray* usando para invocar el método." @@ -4780,7 +4804,7 @@ msgid "" "Like :meth:`~bytes.rfind` but raises :exc:`ValueError` when the subsequence " "*sub* is not found." msgstr "" -"Como el método :meth:`~bytes.rfind`, pero eleva la excepción :exc:" +"Como el método :meth:`~bytes.rfind`, pero lanza la excepción :exc:" "`ValueError` si no se encuentra *sub*." #: ../Doc/library/stdtypes.rst:2837 @@ -4913,6 +4937,11 @@ msgid "" "object`. See :meth:`~bytes.removeprefix` for a method that will remove a " "single prefix string rather than all of a set of characters. For example::" msgstr "" +"La secuencia binaria que especifica el conjunto bytes a ser eliminados puede " +"ser cualquier :term:`objeto de tipo binario`. Véase :meth:" +"`~bytes.removeprefix` para un método que removerá una única cadena de " +"prefijo en lugar de de todas las ocurrencias dentro de un set de caracteres. " +"Por ejemplo::" #: ../Doc/library/stdtypes.rst:2947 msgid "" @@ -4968,6 +4997,11 @@ msgid "" "object`. See :meth:`~bytes.removesuffix` for a method that will remove a " "single suffix string rather than all of a set of characters. For example::" msgstr "" +"La secuencia binaria que especifica el conjunto bytes a ser eliminados puede " +"ser cualquier :term:`objeto de tipo binario`. Véase :meth:" +"`~bytes.removesuffix` para un método que removerá una única cadena de sufijo " +"en lugar de de todas las ocurrencias dentro de un set de caracteres. Por " +"ejemplo::" #: ../Doc/library/stdtypes.rst:3003 msgid "" @@ -5408,9 +5442,8 @@ msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." msgstr "``b'%r'`` está obsoleto, pero no se retirará durante la serie 3.x." #: ../Doc/library/stdtypes.rst:3599 -#, python-format msgid ":pep:`461` - Adding % formatting to bytes and bytearray" -msgstr ":pep:`461` - Añadir formateo usando % con bytes y *bytearray*" +msgstr ":pep:`461` - Añadir formato usando % con bytes y *bytearray*" #: ../Doc/library/stdtypes.rst:3606 msgid "Memory Views" @@ -5686,7 +5719,7 @@ msgid "" "multiple times)::" msgstr "" "Después de que se ha llamado a este método, cualquier operación posterior " -"sobre la vista producirá una excepción de tipo :class:`ValueError` (Excepto " +"sobre la vista lanzará una excepción de tipo :class:`ValueError` (Excepto " "por el propio método :meth:`release()`, que puede ser llamado las veces que " "se quiera)::" @@ -5928,27 +5961,30 @@ msgstr "" "conjunto vacío." #: ../Doc/library/stdtypes.rst:4122 -#, fuzzy msgid "Sets can be created by several means:" -msgstr "Las listas se pueden construir de diferentes formas:" +msgstr "Los conjuntos (*sets*) se pueden construir de diferentes formas:" #: ../Doc/library/stdtypes.rst:4124 msgid "" "Use a comma-separated list of elements within braces: ``{'jack', 'sjoerd'}``" msgstr "" +"Usando una lista de elementos separados por coma entre corchetes: ``{'jack', " +"'sjoerd'}``" #: ../Doc/library/stdtypes.rst:4125 -#, fuzzy msgid "" "Use a set comprehension: ``{c for c in 'abracadabra' if c not in 'abc'}``" msgstr "" -"Usando una lista intensiva o por comprensión: ``[x for x in iterable]``" +"Usando un *set comprehention*: ``{c for c in 'abracadabra' if c not in 'abc'}" +"``" #: ../Doc/library/stdtypes.rst:4126 msgid "" "Use the type constructor: ``set()``, ``set('foobar')``, ``set(['a', 'b', " "'foo'])``" msgstr "" +"Usando un constructor de tipo: ``set()``, ``set('foobar')``, ``set(['a', " +"'b', 'foo'])``" #: ../Doc/library/stdtypes.rst:4128 msgid "" @@ -6158,7 +6194,7 @@ msgid "" "Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not " "contained in the set." msgstr "" -"Elimina del conjunto el elemento *elem*. Eleva la excepción :exc:`KeyError` " +"Elimina del conjunto el elemento *elem*. Lanza la excepción :exc:`KeyError` " "si *elem* no estaba incluido en el conjunto." #: ../Doc/library/stdtypes.rst:4259 @@ -6170,7 +6206,7 @@ msgid "" "Remove and return an arbitrary element from the set. Raises :exc:`KeyError` " "if the set is empty." msgstr "" -"Elimina y retorna un elemento cualquiera del conjunto. Eleva la excepción :" +"Elimina y retorna un elemento cualquiera del conjunto. Lanza la excepción :" "exc:`KeyError` si el conjunto estaba vacío." #: ../Doc/library/stdtypes.rst:4268 @@ -6258,32 +6294,30 @@ msgstr "" "posición, y por una serie de parámetros por nombre, también opcionales." #: ../Doc/library/stdtypes.rst:4320 -#, fuzzy msgid "Dictionaries can be created by several means:" -msgstr "Las listas se pueden construir de diferentes formas:" +msgstr "Los diccionarios se pueden construir de diferentes formas:" #: ../Doc/library/stdtypes.rst:4322 -#, fuzzy msgid "" "Use a comma-separated list of ``key: value`` pairs within braces: ``{'jack': " "4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: 'sjoerd'}``" msgstr "" -"Los diccionarios se pueden crear colocando una lista separada por comas de " -"pares ``key: value`` entre llaves, por ejemplo: ``{'jack': 4098, 'sjoerd': " -"4127}`` o ``{4098: 'jack', 4127: 'sjoerd'}``, o por el constructor :class:" -"`dict`." +"Usando una lista separada por comas de pares ``key: value`` entre llaves:" +"``{'jack': 4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: 'sjoerd'}``" #: ../Doc/library/stdtypes.rst:4324 -#, fuzzy msgid "Use a dict comprehension: ``{}``, ``{x: x ** 2 for x in range(10)}``" msgstr "" -"Usando una lista intensiva o por comprensión: ``[x for x in iterable]``" +"Usando una comprensión de diccionario: ``{}``, ``{x: x ** 2 for x in " +"range(10)}``" #: ../Doc/library/stdtypes.rst:4325 msgid "" "Use the type constructor: ``dict()``, ``dict([('foo', 100), ('bar', " "200)])``, ``dict(foo=100, bar=200)``" msgstr "" +"Usando un constructor de tipo: ``dict()``, ``dict([('foo', 100), ('bar', " +"200)])``, ``dict(foo=100, bar=200)``" #: ../Doc/library/stdtypes.rst:4328 msgid "" @@ -6356,7 +6390,7 @@ msgid "" "Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is " "not in the map." msgstr "" -"Retorna el elemento dentro de *d* almacenado bajo la clave *key*. Eleva una " +"Retorna el elemento dentro de *d* almacenado bajo la clave *key*. Lanza una " "excepción de tipo :exc:`KeyError` si la clave *key* no se encuentra en el " "diccionario *d*." @@ -6373,7 +6407,7 @@ msgstr "" "Si una subclase de un diccionario define el método :meth:`__missing__` y " "*key* no está presente, la operación ``d[key]`` llama a este método pasando " "como parámetro el valor de *key*. La operación ``d[key]`` o bien retorna un " -"valor o eleva la excepción que sea retornada por la llamada a " +"valor o lanza la excepción que sea retornada por la llamada a " "``__missing__(key)``. Ninguna otra operación o método llama a :meth:" "`__missing__`. Si el método :meth:`__missing__` no está definido, se eleva :" "exc:`KeyError`. Si se define :meth:`__missing__`, debe ser de forma " @@ -6398,7 +6432,7 @@ msgid "" "Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the " "map." msgstr "" -"Elimina ``d[key]`` de *d*. Eleva una excepción :exc:`KeyError` si *key* no " +"Elimina ``d[key]`` de *d*. Lanza una excepción :exc:`KeyError` si *key* no " "está en el mapa." #: ../Doc/library/stdtypes.rst:4410 @@ -6457,7 +6491,7 @@ msgid "" msgstr "" "Retorna el elemento dentro de *d* almacenado bajo la clave *key*, si *key* " "está en el diccionario; si no, retorna *default*. El valor de *default* por " -"defecto es ``None``, por lo que esta función nunca eleva la excepción :exc:" +"defecto es ``None``, por lo que esta función nunca lanza la excepción :exc:" "`KeyError`." #: ../Doc/library/stdtypes.rst:4447 @@ -6484,7 +6518,7 @@ msgid "" msgstr "" "Si *key* está en el diccionario, lo elimina del diccionario y retorna su " "valor; si no está, retorna *default*. Si no se especifica valor para " -"*default* y la clave no se encuentra en el diccionario, se eleva la " +"*default* y la clave no se encuentra en el diccionario, se lanza la " "excepción :exc:`KeyError`." #: ../Doc/library/stdtypes.rst:4463 @@ -6504,7 +6538,7 @@ msgid "" msgstr "" "El método :meth:`popitem` es útil para recorrer y a la vez vaciar un " "diccionario, un proceso usado a menudo en algoritmos de conjuntos. Si el " -"diccionario está vacío, llamar a :meth:`popitem` eleva la excepción :exc:" +"diccionario está vacío, llamar a :meth:`popitem` lanza la excepción :exc:" "`KeyError`." #: ../Doc/library/stdtypes.rst:4470 @@ -6577,6 +6611,9 @@ msgid "" "which must both be dictionaries. The values of *other* take priority when " "*d* and *other* share keys." msgstr "" +"Crea un nuevo diccionario con las claves y valores fusionados de *d* y " +"*other*, por lo cual ambos deben ser diccionarios. Los valores de *other* " +"tienen prioridad cuando *d* y *other* tienen claves compartidas." #: ../Doc/library/stdtypes.rst:4520 msgid "" @@ -6584,6 +6621,10 @@ msgid "" "either a :term:`mapping` or an :term:`iterable` of key/value pairs. The " "values of *other* take priority when *d* and *other* share keys." msgstr "" +"Actualiza el diccionario *d* con las claves y valores de *other*, el cual " +"podría ser ya sea un a :term:`mapping` o un :term:`iterable` de pares clave/" +"valor. Los valores de *other* tienen prioridad cuando *d* y *other* tienen " +"claves compartidas." #: ../Doc/library/stdtypes.rst:4526 msgid "" @@ -6593,7 +6634,7 @@ msgid "" msgstr "" "Los diccionarios se consideran iguales si y solo si tienen el mismo conjunto " "de parejas ``(key, value)`` (Independiente de su orden). Los intentos de " -"comparar usando los operadores '<', '<=', '>=', '>' elevan una excepción de " +"comparar usando los operadores '<', '<=', '>=', '>' lanzan una excepción de " "tipo :exc:`TypeError`." #: ../Doc/library/stdtypes.rst:4530 @@ -6686,7 +6727,7 @@ msgid "" "a :exc:`RuntimeError` or fail to iterate over all entries." msgstr "" "Iterar sobre un diccionario a la vez que se borran o añaden entradas puede " -"elevar una excepción de tipo :exc:`RuntimeError`, o puede provocar que no se " +"lanzar una excepción de tipo :exc:`RuntimeError`, o puede provocar que no se " "iteren sobre todas las entradas." #: ../Doc/library/stdtypes.rst:4603 @@ -6835,7 +6876,7 @@ msgid "" "context management code to easily detect whether or not an :meth:`__exit__` " "method has actually failed." msgstr "" -"La excepción pasada nunca debe volver a elevarse explícitamente; en vez de " +"La excepción pasada nunca debe volver a lanzarse explícitamente; en vez de " "eso, el método debería retornar un valor falso para indicar que el método ha " "terminado de ejecutarse sin problemas y que no se desea suprimir la " "excepción. Esto permite a los gestores de contexto detectar fácilmente si el " @@ -6888,7 +6929,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:4737 msgid "Generic Alias Type" -msgstr "" +msgstr "Tipo Alias Genérico" #: ../Doc/library/stdtypes.rst:4743 msgid "" @@ -6896,6 +6937,9 @@ msgid "" "container), such as ``list[int]``. They are intended primarily for :term:" "`type annotations `." msgstr "" +"Los objetos ``GenericAlias`` se crean subindicando una clase (usualmente un " +"contenedor), como ``list[int]``. Están destinados principalmente como :term:" +"`anotaciones de tipo `." #: ../Doc/library/stdtypes.rst:4747 msgid "" @@ -6905,6 +6949,11 @@ msgid "" "of the class instead. The classmethod :meth:`__class_getitem__` should " "return a ``GenericAlias`` object." msgstr "" +"Usualmente, la :ref:`suscripción ` de objetos de contenedores " +"llama al método :meth:`__getitem__` del objeto. Sin embargo, la suscripción " +"de algunas clases de contenedores podrían llamar al método de clase :meth:" +"`__class_getitem__` en su lugar. El método de clase :meth:" +"`__class_getitem__` debe devolver un objeto ``GenericAlias``." #: ../Doc/library/stdtypes.rst:4754 msgid "" @@ -6912,6 +6961,9 @@ msgid "" "precedence over the :meth:`__class_getitem__` defined in the class (see :pep:" "`560` for more details)." msgstr "" +"Si el método :meth:`__getitem__` de la metaclase de la clase está presente, " +"este tendrá prioridad sobre :meth:`__class_getitem__` definido en la clase " +"(véase :pep:`560` para más detalles)." #: ../Doc/library/stdtypes.rst:4758 msgid "" @@ -6919,6 +6971,9 @@ msgid "" "`, implementing *parameterized generics* - a specific instance " "of a generic which provides the types for container elements." msgstr "" +"El objeto ``GenericAlias`` actúa como *proxy* para :term:`tipo genérico " +"`, implementando *parametrized generics* -una instancia " +"específica de genérico que provee tipos para contenedores de elementos." #: ../Doc/library/stdtypes.rst:4762 msgid "" @@ -6926,6 +6981,10 @@ msgid "" "class:`types.GenericAlias` and used for :func:`isinstance` checks. It can " "also be used to create ``GenericAlias`` objects directly." msgstr "" +"El tipo expuesto por el usuario para el objeto ``GenericAlias`` puede ser " +"accedido desde :class:`types.GenericAlias` y usado por chequeos :func:" +"`isinstance`. También puede ser usado para crear objetos ``GenericAlias`` " +"directamente." #: ../Doc/library/stdtypes.rst:4768 msgid "" @@ -6933,6 +6992,9 @@ msgid "" "types *X*, *Y*, and more depending on the ``T`` used. For example, a " "function expecting a :class:`list` containing :class:`float` elements::" msgstr "" +"Crea un ``GenericAlias`` representando un tipo ``T`` que contiene elementos " +"de tipos *X*, *Y*, y más dependiendo del tipo ``T`` usado. Por ejemplo, una " +"función que espera una :class:`list` que contiene elementos :class:`float`::" #: ../Doc/library/stdtypes.rst:4776 msgid "" @@ -6941,12 +7003,18 @@ msgid "" "the value type. In this example, the function expects a ``dict`` with keys " "of type :class:`str` and values of type :class:`int`::" msgstr "" +"Otro ejemplo para el :term:`mapping` de objetos, usando un :class:`dict`, el " +"cual es un tipo genérico que espera dos parámetros de tipo que representan " +"el tipo de la clave y el tipo del valor. En este ejemplo, la función espera " +"un ``dict`` con claves de tipo :class:`str` y valores de tipo :class:`int`::" #: ../Doc/library/stdtypes.rst:4784 msgid "" "The builtin functions :func:`isinstance` and :func:`issubclass` do not " "accept ``GenericAlias`` types for their second argument::" msgstr "" +"Las funciones integradas :func:`isinstance` y :func:`issubclass` no aceptan " +"tipos ``GenericAlias`` como segundo argumento::" #: ../Doc/library/stdtypes.rst:4792 msgid "" @@ -6956,24 +7024,35 @@ msgid "" "their type. For example, the following code is discouraged, but will run " "without errors::" msgstr "" +"Python en tiempo de ejecución no hace cumplir las :term:`anotaciones de tipo " +"`. Esto se extiende para tipos genéricos y sus parámetros. " +"Cuando se crea un objeto desde un ``GenericAlias``, los elementos del " +"contenedor no se verifican con su tipo. Por ejemplo, el siguiente código no " +"es recomendado en lo absoluto, pero correrá sin errores::" #: ../Doc/library/stdtypes.rst:4802 msgid "" "Furthermore, parameterized generics erase type parameters during object " "creation::" msgstr "" +"Además, los tipos de los parámetros de tipos genéricos se borran durante la " +"creación de objetos::" #: ../Doc/library/stdtypes.rst:4813 msgid "" "Calling :func:`repr` or :func:`str` on a generic shows the parameterized " "type::" msgstr "" +"Llamando a :func:`repr` o :func:`str` en un genérico se muestra el tipo " +"parametrizado::" #: ../Doc/library/stdtypes.rst:4821 msgid "" "The :meth:`__getitem__` method of generics will raise an exception to " "disallow mistakes like ``dict[str][str]``::" msgstr "" +"El método :meth:`__getitem__` de tipos genéricos lanzarán una excepción para " +"rechazar los errores como ``dict[str][str]``::" #: ../Doc/library/stdtypes.rst:4829 msgid "" @@ -6982,203 +7061,216 @@ msgid "" "items in the ``GenericAlias`` object's :attr:`__args__ `. ::" msgstr "" +"Sin embargo, estas expresiones son válidas cuando se usa :ref:`variables de " +"tipo `. El índice debe tener tantos elementos como los elementos " +"de variable de tipo que hayan en los :attr:`__args__ `. :: del objeto ``GenericAlias``::" #: ../Doc/library/stdtypes.rst:4840 msgid "Standard Generic Collections" -msgstr "" +msgstr "Colecciones de Genéricos Estándar" #: ../Doc/library/stdtypes.rst:4842 msgid "These standard library collections support parameterized generics." msgstr "" +"Esta librería de colecciones estándar soporta genéricos parametrizados." #: ../Doc/library/stdtypes.rst:4844 msgid ":class:`tuple`" -msgstr "" +msgstr ":class:`tuple`" #: ../Doc/library/stdtypes.rst:4845 msgid ":class:`list`" -msgstr "" +msgstr ":class:`list`" #: ../Doc/library/stdtypes.rst:4846 msgid ":class:`dict`" -msgstr "" +msgstr ":class:`dict`" #: ../Doc/library/stdtypes.rst:4847 msgid ":class:`set`" -msgstr "" +msgstr ":class:`set`" #: ../Doc/library/stdtypes.rst:4848 msgid ":class:`frozenset`" -msgstr "" +msgstr ":class:`frozenset`" #: ../Doc/library/stdtypes.rst:4849 msgid ":class:`type`" -msgstr "" +msgstr ":class:`type`" #: ../Doc/library/stdtypes.rst:4850 msgid ":class:`collections.deque`" -msgstr "" +msgstr ":class:`collections.deque`" #: ../Doc/library/stdtypes.rst:4851 msgid ":class:`collections.defaultdict`" -msgstr "" +msgstr ":class:`collections.defaultdict`" #: ../Doc/library/stdtypes.rst:4852 msgid ":class:`collections.OrderedDict`" -msgstr "" +msgstr ":class:`collections.OrderedDict`" #: ../Doc/library/stdtypes.rst:4853 msgid ":class:`collections.Counter`" -msgstr "" +msgstr ":class:`collections.Counter`" #: ../Doc/library/stdtypes.rst:4854 msgid ":class:`collections.ChainMap`" -msgstr "" +msgstr ":class:`collections.ChainMap`" #: ../Doc/library/stdtypes.rst:4855 msgid ":class:`collections.abc.Awaitable`" -msgstr "" +msgstr ":class:`collections.abc.Awaitable`" #: ../Doc/library/stdtypes.rst:4856 msgid ":class:`collections.abc.Coroutine`" -msgstr "" +msgstr ":class:`collections.abc.Coroutine`" #: ../Doc/library/stdtypes.rst:4857 msgid ":class:`collections.abc.AsyncIterable`" -msgstr "" +msgstr ":class:`collections.abc.AsyncIterable`" #: ../Doc/library/stdtypes.rst:4858 msgid ":class:`collections.abc.AsyncIterator`" -msgstr "" +msgstr ":class:`collections.abc.AsyncIterator`" #: ../Doc/library/stdtypes.rst:4859 msgid ":class:`collections.abc.AsyncGenerator`" -msgstr "" +msgstr ":class:`collections.abc.AsyncGenerator`" #: ../Doc/library/stdtypes.rst:4860 msgid ":class:`collections.abc.Iterable`" -msgstr "" +msgstr ":class:`collections.abc.Iterable`" #: ../Doc/library/stdtypes.rst:4861 msgid ":class:`collections.abc.Iterator`" -msgstr "" +msgstr ":class:`collections.abc.Iterator`" #: ../Doc/library/stdtypes.rst:4862 msgid ":class:`collections.abc.Generator`" -msgstr "" +msgstr ":class:`collections.abc.Generator`" #: ../Doc/library/stdtypes.rst:4863 msgid ":class:`collections.abc.Reversible`" -msgstr "" +msgstr ":class:`collections.abc.Reversible`" #: ../Doc/library/stdtypes.rst:4864 msgid ":class:`collections.abc.Container`" -msgstr "" +msgstr ":class:`collections.abc.Container`" #: ../Doc/library/stdtypes.rst:4865 msgid ":class:`collections.abc.Collection`" -msgstr "" +msgstr ":class:`collections.abc.Collection`" #: ../Doc/library/stdtypes.rst:4866 msgid ":class:`collections.abc.Callable`" -msgstr "" +msgstr ":class:`collections.abc.Callable`" #: ../Doc/library/stdtypes.rst:4867 msgid ":class:`collections.abc.Set`" -msgstr "" +msgstr ":class:`collections.abc.Set`" #: ../Doc/library/stdtypes.rst:4868 msgid ":class:`collections.abc.MutableSet`" -msgstr "" +msgstr ":class:`collections.abc.MutableSet`" #: ../Doc/library/stdtypes.rst:4869 msgid ":class:`collections.abc.Mapping`" -msgstr "" +msgstr ":class:`collections.abc.Mapping`" #: ../Doc/library/stdtypes.rst:4870 msgid ":class:`collections.abc.MutableMapping`" -msgstr "" +msgstr ":class:`collections.abc.MutableMapping`" #: ../Doc/library/stdtypes.rst:4871 msgid ":class:`collections.abc.Sequence`" -msgstr "" +msgstr ":class:`collections.abc.Sequence`" #: ../Doc/library/stdtypes.rst:4872 msgid ":class:`collections.abc.MutableSequence`" -msgstr "" +msgstr ":class:`collections.abc.MutableSequence`" #: ../Doc/library/stdtypes.rst:4873 msgid ":class:`collections.abc.ByteString`" -msgstr "" +msgstr ":class:`collections.abc.ByteString`" #: ../Doc/library/stdtypes.rst:4874 msgid ":class:`collections.abc.MappingView`" -msgstr "" +msgstr ":class:`collections.abc.MappingView`" #: ../Doc/library/stdtypes.rst:4875 msgid ":class:`collections.abc.KeysView`" -msgstr "" +msgstr ":class:`collections.abc.KeysView`" #: ../Doc/library/stdtypes.rst:4876 msgid ":class:`collections.abc.ItemsView`" -msgstr "" +msgstr ":class:`collections.abc.ItemsView`" #: ../Doc/library/stdtypes.rst:4877 msgid ":class:`collections.abc.ValuesView`" -msgstr "" +msgstr ":class:`collections.abc.ValuesView`" #: ../Doc/library/stdtypes.rst:4878 msgid ":class:`contextlib.AbstractContextManager`" -msgstr "" +msgstr ":class:`contextlib.AbstractContextManager`" #: ../Doc/library/stdtypes.rst:4879 msgid ":class:`contextlib.AbstractAsyncContextManager`" -msgstr "" +msgstr ":class:`contextlib.AbstractAsyncContextManager`" #: ../Doc/library/stdtypes.rst:4880 msgid ":ref:`re.Pattern `" -msgstr "" +msgstr ":ref:`re.Pattern `" #: ../Doc/library/stdtypes.rst:4881 msgid ":ref:`re.Match `" -msgstr "" +msgstr ":ref:`re.Match `" #: ../Doc/library/stdtypes.rst:4885 -#, fuzzy msgid "Special Attributes of Generic Alias" -msgstr "Atributos especiales" +msgstr "Atributos especiales de Alias Genérico" #: ../Doc/library/stdtypes.rst:4887 msgid "All parameterized generics implement special read-only attributes." msgstr "" +"Todos los genéricos parametrizados implementan atributos especiales de solo " +"lectura." #: ../Doc/library/stdtypes.rst:4891 msgid "This attribute points at the non-parameterized generic class::" -msgstr "" +msgstr "Este atributo apunta a la clase genérica no parametrizada::" #: ../Doc/library/stdtypes.rst:4899 msgid "" "This attribute is a :class:`tuple` (possibly of length 1) of generic types " "passed to the original :meth:`__class_getitem__` of the generic container::" msgstr "" +"Este atributo es un :class:`tuple` (posiblemente de longitud 1) de tipos " +"genéricos pasados al método original :meth:`__class_getitem__` de un " +"contenedor genérico::" #: ../Doc/library/stdtypes.rst:4909 msgid "" "This attribute is a lazily computed tuple (possibly empty) of unique type " "variables found in ``__args__``::" msgstr "" +"Este atributo es una tupla (posiblemente vacía) computada perezosamente con " +"las variables de tipo únicas encontradas en ``__args__``::" #: ../Doc/library/stdtypes.rst:4921 msgid ":pep:`585` -- \"Type Hinting Generics In Standard Collections\"" msgstr "" +":pep:`585` -- \"Sugerencias de tipo genéricas en las Colecciones Estándar\"" #: ../Doc/library/stdtypes.rst:4922 msgid ":meth:`__class_getitem__` -- Used to implement parameterized generics." msgstr "" +":meth:`__class_getitem__` -- Usado para implementar genéricos parametrizados." #: ../Doc/library/stdtypes.rst:4923 msgid ":ref:`generics` -- Generics in the :mod:`typing` module." -msgstr "" +msgstr ":ref:`generics` -- Genéricos en el módulo :mod:`typing`." #: ../Doc/library/stdtypes.rst:4931 msgid "Other Built-in Types" @@ -7329,7 +7421,7 @@ msgstr "" "soportan asignación de atributos arbitrarios. Sin embargo, como los " "atributos de los métodos se almacenan en la función subyacente (``meth." "__func__``), definir cualquier atributo en métodos ligados está " -"desaconsejado. Intentar asignar un atributo a un método produce que se eleve " +"desaconsejado. Intentar asignar un atributo a un método produce que se lance " "una excepción de tipo :exc:`AttributeError`. Para poder definir un atributo " "a un método, este debe ser definido explícitamente en la función subyacente::" @@ -7554,7 +7646,6 @@ msgstr "" "`~class.__mro__`." #: ../Doc/library/stdtypes.rst:5198 -#, fuzzy msgid "" "Each class keeps a list of weak references to its immediate subclasses. " "This method returns a list of all those references still alive. The list is " @@ -7562,7 +7653,8 @@ msgid "" msgstr "" "Cada clase mantiene una lista de referencias débiles a sus subclase " "inmediatamente anteriores. Este método retorna una lista de todas las " -"referencias que todavía estén vivas. Por ejemplo::" +"referencias que todavía estén vivas. La lista está en orden de definición. " +"Por ejemplo::" #: ../Doc/library/stdtypes.rst:5207 msgid "Footnotes" diff --git a/library/string.po b/library/string.po index dfdd166847..c231e6d84c 100644 --- a/library/string.po +++ b/library/string.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-28 10:58+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-22 00:33+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/string.rst:2 msgid ":mod:`string` --- Common string operations" @@ -669,7 +670,6 @@ msgstr "" "signo menos para números negativos." #: ../Doc/library/string.rst:385 -#, fuzzy msgid "" "The ``'#'`` option causes the \"alternate form\" to be used for the " "conversion. The alternate form is defined differently for different types. " @@ -685,15 +685,14 @@ msgstr "" "La opción ``'#'`` hace que la \"forma alternativa\" se utilice para la " "conversión. La forma alternativa se define de forma diferente para " "diferentes tipos. Esta opción solo es válida para los tipos entero, " -"flotante, complejo y decimal. Para los enteros, cuando se utiliza la salida " -"binaria, octal o hexadecimal, esta opción agrega el respectivo prefijo " -"``'0b'``, ``'0o'`` o ``'0x'`` al valor de salida. Para los tipos *floats*, " -"*complex* y *Decimal*, la forma alternativa hace que el resultado de la " -"conversión siempre contenga un carácter de punto decimal, incluso si no hay " -"dígitos que lo sigan. Normalmente, un carácter de punto decimal aparece en " -"el resultado de estas conversiones solo si un dígito lo sigue. Además, para " -"las conversiones ``'g'`` y ``'G'``, los ceros finales no se eliminan del " -"resultado." +"flotante y complejo. Para los enteros, cuando se utiliza la salida binaria, " +"octal o hexadecimal, esta opción agrega el respectivo prefijo ``'0b'``, " +"``'0o'`` o ``'0x'`` al valor de salida. Para los flotantes y complejos, la " +"forma alternativa hace que el resultado de la conversión siempre contenga un " +"carácter de punto decimal, incluso si no hay dígitos que lo sigan. " +"Normalmente, un carácter de punto decimal aparece en el resultado de estas " +"conversiones sólo si un dígito lo sigue. Además, para las conversiones " +"``'g'`` y ``'G'``, los ceros finales no se eliminan del resultado." #: ../Doc/library/string.rst:399 msgid "" @@ -892,13 +891,12 @@ msgstr "" "formateado." #: ../Doc/library/string.rst:479 -#, fuzzy msgid "" "The available presentation types for :class:`float` and :class:`~decimal." "Decimal` values are:" msgstr "" -"Los tipos de presentación disponibles para los valores decimales y de punto " -"flotante son:" +"Los tipos de presentación disponibles para valores :class:`float` y :class:" +"`~decimal.Decimal` son:" #: ../Doc/library/string.rst:485 msgid "``'e'``" @@ -915,19 +913,26 @@ msgid "" "Decimal`. If no digits follow the decimal point, the decimal point is also " "removed unless the ``#`` option is used." msgstr "" +"Notación científica. Para una precisión dada ``p``, formatea el número en " +"notación científica con la letra ``e`` separando el coeficiente del " +"exponente. El coeficiente tiene un dígito antes, y ``p`` dígitos después, " +"del punto decimal, para un total de ``p + 1`` dígitos significativos. Cuando " +"se no da una precisión, usa una precisión de ``6`` dígitos después del punto " +"decimal para :class:`float`, y muestra todos los dígitos del coeficiente " +"para :class:`~decimal.Decimal`. Si no hay dígitos después del punto decimal, " +"el punto decimal también es removido a no ser que se use la opción ``#``." #: ../Doc/library/string.rst:497 msgid "``'E'``" msgstr "``'E'``" #: ../Doc/library/string.rst:497 -#, fuzzy msgid "" "Scientific notation. Same as ``'e'`` except it uses an upper case 'E' as the " "separator character." msgstr "" -"Notación exponencial. Igual que ``'e'`` excepto que utiliza una mayúscula " -"'E' como carácter separador." +"Notación científica. Igual que ``'e'`` excepto que utiliza una 'E' mayúscula " +"como carácter separador." #: ../Doc/library/string.rst:500 msgid "``'f'``" @@ -943,6 +948,13 @@ msgid "" "decimal point, the decimal point is also removed unless the ``#`` option is " "used." msgstr "" +"Notación de punto fijo. Para una precisión dada ``p``, formatea el número " +"como un valor decimal con exactamente ``p`` dígitos siguiendo el punto " +"decimal. Cuando no se da una precisión, usa una precisión de ``6`` dígitos " +"después del punto decimal para :class:`float`, y usa una precisión tan " +"grande como sea necesaria para mostrar todos los dígitos del coeficiente " +"para :class:`~decimal.Decimal`. Si no hay dígitos después del punto decimal, " +"el punto decimal también es removido a no ser que se use la opción ``#``." #: ../Doc/library/string.rst:510 msgid "``'F'``" @@ -961,16 +973,16 @@ msgid "``'g'``" msgstr "``'g'``" #: ../Doc/library/string.rst:513 -#, fuzzy msgid "" "General format. For a given precision ``p >= 1``, this rounds the number to " "``p`` significant digits and then formats the result in either fixed-point " "format or in scientific notation, depending on its magnitude. A precision of " "``0`` is treated as equivalent to a precision of ``1``." msgstr "" -"Formato general. Para una dada precisión ``p >= 1``, redondea el número a " +"Formato general. Para una precisión dada ``p >= 1``, redondea el número a " "``p`` dígitos significativos y luego formatea el resultado como formato de " -"punto fijo o en notación científica, dependiendo de su magnitud." +"punto fijo o en notación científica, dependiendo de su magnitud. Una " +"precisión de ``0`` es tratada como equivalente a una precisión de ``1``." #: ../Doc/library/string.rst:520 msgid "" @@ -1003,6 +1015,12 @@ msgid "" "place value of the least significant digit is larger than 1, and fixed-point " "notation is used otherwise." msgstr "" +"Si no se da una precisión, usa una precisión de ``6`` dígitos significativos " +"para :class:`float`. Para :class:`~decimal.Decimal` el coeficiente del " +"resultado se construye usando los dígitos del coeficiente del valor; se usa " +"notación científica para valores menores a ``1e-6`` en valor absoluto y " +"valores donde el valor posicional del dígito menos significativo es mayor a " +"1, de otra forma se usa notación de punto fijo." #: ../Doc/library/string.rst:542 msgid "" @@ -1054,6 +1072,10 @@ msgid "" "past the decimal point. The precision used is as large as needed to " "represent the given value faithfully." msgstr "" +"Para :class:`float` esto es lo mismo que ``'g'``, excepto que cuando se usa " +"notación de punto fijo para formatear el resultado, siempre incluye al menos " +"un dígito pasado el punto decimal. La precisión usada es tan larga como sea " +"necesaria para representar el valor dado fielmente." #: ../Doc/library/string.rst:564 msgid "" @@ -1061,12 +1083,17 @@ msgid "" "depending on the value of ``context.capitals`` for the current decimal " "context." msgstr "" +"Para :class:`~decimal.Decimal`, esto es lo mismo que ``'g'`` o ``'G'`` " +"dependiendo del valor de ``context.capitals`` para el contexto decimal " +"actual." #: ../Doc/library/string.rst:568 msgid "" "The overall effect is to match the output of :func:`str` as altered by the " "other format modifiers." msgstr "" +"El efecto general es el de igualar la salida de :func:`str` al ser alterada " +"por los otros modificadores de formato." #: ../Doc/library/string.rst:576 msgid "Format examples" diff --git a/library/subprocess.po b/library/subprocess.po index ccf0ce27dd..297b62a56c 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-27 12:34+0200\n" -"Last-Translator: Cristián Maureira-Fredes \n" +"PO-Revision-Date: 2021-09-01 23:41+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/subprocess.rst:2 msgid ":mod:`subprocess` --- Subprocess management" @@ -955,12 +956,16 @@ msgid "" "value in ``gr_gid`` will be used. If the value is an integer, it will be " "passed verbatim. (POSIX only)" msgstr "" +"Si *group* no es ``None``, la llamada a sistema setregid() se hará en el " +"proceso hijo antes de la ejecución del subproceso. Si el valor proveído es " +"una cadena de caracteres, será buscado usando :func:`grp.getgrnam()` y el " +"valor en ``gr_gid`` será usado. Si el valor es un entero, será pasado " +"literalmente. (solamente POSIX)" #: ../Doc/library/subprocess.rst:560 ../Doc/library/subprocess.rst:569 #: ../Doc/library/subprocess.rst:578 ../Doc/library/subprocess.rst:584 -#, fuzzy msgid ":ref:`Availability `: POSIX" -msgstr ":ref:`Disponibilidad `: POSIX y Windows." +msgstr ":ref:`Disponibilidad `: POSIX" #: ../Doc/library/subprocess.rst:563 msgid "" @@ -970,6 +975,11 @@ msgid "" "the values in ``gr_gid`` will be used. Integer values will be passed " "verbatim. (POSIX only)" msgstr "" +"Si *extra_groups* no es ``None``, la llamada a sistema setgroups() se hará " +"en el proceso hijo antes de la ejecución del subproceso. Cadenas de " +"caracteres proveídas en *extra_groups* serán buscadas usando :func:`grp." +"getgrnam()` y los valores en ``gr_gid`` serán usados. Valor enteros serán " +"pasados literalmente. (solamente POSIX)" #: ../Doc/library/subprocess.rst:572 msgid "" @@ -979,15 +989,19 @@ msgid "" "value in ``pw_uid`` will be used. If the value is an integer, it will be " "passed verbatim. (POSIX only)" msgstr "" +"Si *user* no es ``None``, la llamada a sistema setreuid() se hará en el " +"proceso hijo antes de la ejecución del subproceso. Si el valor proveído es " +"una cadena de caracteres, será buscado usando :func:`pwd.getpwnam()` y el " +"valor en ``pw_uid`` será usado. Si el valor es un entero, será pasado " +"literalmente. (solamente POSIX)" #: ../Doc/library/subprocess.rst:581 -#, fuzzy msgid "" "If *umask* is not negative, the umask() system call will be made in the " "child process prior to the execution of the subprocess." msgstr "" -"Si *start_new_session* es verdadero la llamada al sistema *setsid* se hará " -"en el proceso hijo antes de la ejecución del subproceso (solamente POSIX)." +"Si *umask* no es negativo, la llamada a sistema umask() se hará en el " +"proceso hijo antes de la ejecución del subproceso." #: ../Doc/library/subprocess.rst:587 msgid "" @@ -1306,7 +1320,6 @@ msgid "*timeout* was added." msgstr "Se añadió *timeout*." #: ../Doc/library/subprocess.rst:740 -#, fuzzy msgid "" "Interact with process: Send data to stdin. Read data from stdout and " "stderr, until end-of-file is reached. Wait for process to terminate and set " @@ -1315,12 +1328,13 @@ msgid "" "should be sent to the child. If streams were opened in text mode, *input* " "must be a string. Otherwise, it must be bytes." msgstr "" -"Interactuar con el proceso: Enviar datos a stdin. Leer datos de stdout y " -"stderr, hasta encontrar un fin-de-fichero. Esperar a que termine el proceso. " -"El argumento opcional *input* debe contener los datos que hay que enviar al " -"proceso hijo o ``None``, si no hay que enviar datos al hijo. Si se abrieron " -"los flujos en modo texto, *input* ha de ser una cadena. En caso contrario, " -"debe contener bytes." +"Interactúa con el proceso: Envía datos a stdin. Lee datos de stdout y stderr " +"hasta encontrar un fin-de-fichero. Espera a que termine el proceso y escribe " +"el atributo :attr:`~Popen.returncode`. El argumento opcional *input* debe " +"contener los datos que hay que enviar al proceso hijo o ``None`` si no hay " +"que enviar datos al proceso hijo. Si se abrieron los flujos en modo texto, " +"*input* ha de ser una cadena de caracteres. En caso contrario, debe contener " +"bytes." #: ../Doc/library/subprocess.rst:747 msgid "" @@ -1377,7 +1391,7 @@ msgstr "Envía la señal *signal* al proceso hijo." #: ../Doc/library/subprocess.rst:784 msgid "Do nothing if the process completed." -msgstr "" +msgstr "No hace nada si el proceso ya ha terminado." #: ../Doc/library/subprocess.rst:788 msgid "" @@ -1390,24 +1404,22 @@ msgstr "" "*creationflags* que incluya `CREATE_NEW_PROCESS_GROUP`." #: ../Doc/library/subprocess.rst:795 -#, fuzzy msgid "" "Stop the child. On POSIX OSs the method sends SIGTERM to the child. On " "Windows the Win32 API function :c:func:`TerminateProcess` is called to stop " "the child." msgstr "" -"Detener el proceso hijo. En SO POSIX, este método envía SIGTERM al proceso " -"hijo. En Windows se llama a la función :c:func:`TerminateProcess` de la API " -"de Win32 para detener el proceso hijo." +"Detiene el proceso hijo. En sistemas operativos POSIX este método envía " +"SIGTERM al proceso hijo. En Windows se llama a la función :c:func:" +"`TerminateProcess` de la API de Win32 para detener el proceso hijo." #: ../Doc/library/subprocess.rst:802 -#, fuzzy msgid "" "Kills the child. On POSIX OSs the function sends SIGKILL to the child. On " "Windows :meth:`kill` is an alias for :meth:`terminate`." msgstr "" -"Mata el proceso hijo. En SO POSIX la función envía SIGKILL al proceso hijo. " -"En Windows :meth:`kill` es un alias de :meth:`terminate`." +"Mata el proceso hijo. En sistemas operativos POSIX la función envía SIGKILL " +"al proceso hijo. En Windows :meth:`kill` es un alias de :meth:`terminate`." #: ../Doc/library/subprocess.rst:806 msgid "The following attributes are also available:" @@ -1908,7 +1920,6 @@ msgid "This is equivalent to::" msgstr "Esto equivale a::" #: ../Doc/library/subprocess.rst:1163 -#, fuzzy msgid "" "The arguments shown above are merely some common ones. The full function " "signature is largely the same as that of :func:`run` - most arguments are " @@ -1917,10 +1928,13 @@ msgid "" "``input=b''`` (or ``input=''``, depending on other arguments) rather than " "using the parent's standard input file handle." msgstr "" -"Se muestran algunos argumentos comunes. La signatura completa de la función " -"es casi la misma que la de :func:`run`. La mayoría de los argumentos se pasa " -"directamente a esa interfaz. No obstante, no es posible pasar ``input=None`` " -"para heredar el flujo entrada estándar del padre." +"Los argumentos mostrados arriba son meramente algunos de los comunes. La " +"signatura completa de la función es casi la misma que la de :func:`run` - la " +"mayoría de los argumentos se pasa directamente a esa interfaz. Existe una " +"diferencia con la interfaz de :func:`run` respecto al comportamiento: pasar " +"``input=None`` genera el mismo comportamiento que ``input=b''`` (o " +"``input=''``, dependiendo de otros argumentos) en vez de usar el flujo " +"entrada estándar del padre." #: ../Doc/library/subprocess.rst:1170 msgid "" @@ -1930,7 +1944,7 @@ msgid "" msgstr "" "Por omisión, esta función retornará los datos como bytes codificados. La " "codificación real de los datos podría depender de la orden invocada, por lo " -"que la descodificación a texto se deberá hacer al nivel de la aplicación." +"que la decodificación a texto se deberá hacer al nivel de la aplicación." #: ../Doc/library/subprocess.rst:1174 msgid "" diff --git a/library/symtable.po b/library/symtable.po index 34b754577e..a44db1af68 100644 --- a/library/symtable.po +++ b/library/symtable.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-07 18:38-0400\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 21:58+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/symtable.rst:2 msgid ":mod:`symtable` --- Access to the compiler's symbol tables" @@ -215,9 +216,8 @@ msgid "Return ``True`` if the symbol is local to its block." msgstr "Retorna ``True`` si el símbolo es local a su bloque." #: ../Doc/library/symtable.rst:161 -#, fuzzy msgid "Return ``True`` if the symbol is annotated." -msgstr "Retorna ``True`` si el símbolo es no local." +msgstr "Retorna ``True`` si el símbolo está anotado." #: ../Doc/library/symtable.rst:167 msgid "" diff --git a/library/sys.po b/library/sys.po index 9a973d56c5..70a0f600ce 100644 --- a/library/sys.po +++ b/library/sys.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-17 03:18+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-10-11 14:39+0200\n" +"Last-Translator: Diego Cristóbal Herreros\n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/sys.rst:2 msgid ":mod:`sys` --- System-specific parameters and functions" @@ -150,12 +151,20 @@ msgid "" "given event are considered a public and stable API and should not be " "modified between releases." msgstr "" +"Activar un evento de auditoría y activar cualquier hook de auditoría activo. " +"*event* es una cadena que identifica el evento, y *args* puede contener " +"argumentos opcionales con más información sobre el evento. El número y los " +"tipos de argumentos para un evento determinado se consideran una API pública " +"y estable y no deberían modificarse entre versiones." #: ../Doc/library/sys.rst:94 msgid "" "For example, one auditing event is named ``os.chdir``. This event has one " "argument called *path* that will contain the requested new working directory." msgstr "" +"Por ejemplo, un evento de auditoría se llama ``os.chdir``. Este evento tiene " +"un argumento llamado *path* que contendrá el nuevo directorio de trabajo " +"solicitado." #: ../Doc/library/sys.rst:98 msgid "" @@ -166,6 +175,13 @@ msgid "" "implementations to decide how to respond to particular events: they can " "merely log the event or abort the operation by raising an exception." msgstr "" +":func:`sys.audit` llamará a los ganchos de auditoría existentes, pasando el " +"nombre del evento y los argumentos, y volverá a lanzar la primera excepción " +"de cualquier hook. En general, si se lanza una excepción, no debería ser " +"manejada y el proceso debería terminar lo más rápidamente posible. Esto " +"permite que las implementaciones de los hook decidan cómo responder a " +"determinados eventos: pueden limitarse a registrar el evento o abortar la " +"operación lanzando una excepción." #: ../Doc/library/sys.rst:106 msgid "" @@ -864,7 +880,7 @@ msgstr ":const:`dev_mode`" #: ../Doc/library/sys.rst:464 msgid ":option:`-X dev <-X>` (:ref:`Python Development Mode `)" -msgstr "" +msgstr ":option:`-X dev <-X>` (:ref:`Modo de desarrollo de Python `)" #: ../Doc/library/sys.rst:465 msgid ":const:`utf8_mode`" @@ -945,7 +961,7 @@ msgstr "" #: ../Doc/library/sys.rst:503 msgid "See also :func:`math.ulp`." -msgstr "" +msgstr "Vea también :func:`math.ulp`." #: ../Doc/library/sys.rst:505 msgid ":const:`dig`" @@ -1040,6 +1056,8 @@ msgid "" "Use :func:`math.ulp(0.0) ` to get the smallest positive " "*denormalized* representable float." msgstr "" +"Usa :func:`math.ulp(0.0) ` para obtener el menor flotante positivo " +"*denormalizado* representable." #: ../Doc/library/sys.rst:525 msgid ":const:`min_exp`" @@ -1539,7 +1557,7 @@ msgid "" "Get the current coroutine origin tracking depth, as set by :func:" "`set_coroutine_origin_tracking_depth`." msgstr "" -"Obtiene la profundidad de seguimiento del origen de la co-rutina actual, " +"Obtiene la profundidad de seguimiento del origen de la corrutina actual, " "según lo establecido por :func:`set_coroutine_origin_tracking_depth`." #: ../Doc/library/sys.rst:820 ../Doc/library/sys.rst:1437 @@ -2181,6 +2199,9 @@ msgid "" "Name of the platform-specific library directory. It is used to build the " "path of standard library and the paths of installed extension modules." msgstr "" +"Nombre del directorio de la biblioteca específica de la plataforma. Se " +"utiliza para construir la ruta de la biblioteca estándar y las rutas de los " +"módulos de extensión instalados." #: ../Doc/library/sys.rst:1161 msgid "" @@ -2188,12 +2209,17 @@ msgid "" "equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys." "path`` paths (where ``X.Y`` is the Python ``major.minor`` version):" msgstr "" +"Es igual a ``\"lib\"`` en la mayoría de las plataformas. En Fedora y SuSE, " +"es igual a ``\"lib64\"`` en plataformas de 64 bits, lo que da las siguientes " +"rutas ``sys.path`` (donde ``X.Y`` es la versión ``mayor.menor`` de Python):" #: ../Doc/library/sys.rst:1165 msgid "" "``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` " "module)" msgstr "" +"``/usr/lib64/pythonX.Y/``: Biblioteca estándar (como ``os.py`` del módulo :" +"mod:`os`)" #: ../Doc/library/sys.rst:1167 msgid "" @@ -2201,18 +2227,25 @@ msgid "" "library (like the :mod:`errno` module, the exact filename is platform " "specific)" msgstr "" +"``/usr/lib64/pythonX.Y/lib-dynload/``: Módulos de extensión C de la " +"biblioteca estándar (como el módulo :mod:`errno`, el nombre exacto del " +"archivo es específico de la plataforma)" #: ../Doc/library/sys.rst:1170 msgid "" "``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys." "platlibdir`): Third-party modules" msgstr "" +"``/usr/lib/pythonX.Y/site-packages/`` (utilice siempre ``lib``, no :data:" +"`sys.platlibdir`): Módulos de terceros" #: ../Doc/library/sys.rst:1172 msgid "" "``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party " "packages" msgstr "" +"``/usr/lib64/pythonX.Y/site-packages/``: Módulos de extensión C de paquetes " +"de terceros" #: ../Doc/library/sys.rst:1180 msgid "" @@ -2845,11 +2878,19 @@ msgid "" "the :option:`-u` command-line option or setting the :envvar:" "`PYTHONUNBUFFERED` environment variable." msgstr "" +"Cuando es interactivo, el flujo de ``stdout`` se almacena en búfer de línea. " +"En caso contrario, se almacena en búfer de bloque como los archivos de texto " +"normales. El flujo ``stderr`` tiene un búfer de línea en ambos casos. " +"Puede hacer que ambos flujos no tengan búfer pasando la opción de línea de " +"comandos :option:`-u` o estableciendo la variable de entorno :envvar:" +"`PYTHONUNBUFFERED`." #: ../Doc/library/sys.rst:1501 msgid "" "Non-interactive ``stderr`` is now line-buffered instead of fully buffered." msgstr "" +"Ahora, ``stderr`` no interactivo tiene búfer de línea en lugar de búfer " +"completo." #: ../Doc/library/sys.rst:1507 msgid "" @@ -3001,8 +3042,7 @@ msgstr "" #: ../Doc/library/sys.rst:1584 msgid "The *unraisable* argument has the following attributes:" -msgstr "" -"El argumento *unraisable* (no lanzable) tiene los siguientes atributos:" +msgstr "El argumento *unraisable* tiene los siguientes atributos:" #: ../Doc/library/sys.rst:1586 msgid "*exc_type*: Exception type." diff --git a/library/sysconfig.po b/library/sysconfig.po index b38c7a05aa..7f536980fe 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-16 10:16-0500\n" -"Last-Translator: Gustavo Huarcaya \n" +"PO-Revision-Date: 2021-08-04 21:58+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/sysconfig.rst:2 msgid "" @@ -137,7 +138,6 @@ msgid "Python currently supports seven schemes:" msgstr "Python actualmente admite siete esquemas:" #: ../Doc/library/sysconfig.rst:77 -#, fuzzy msgid "" "*posix_prefix*: scheme for POSIX platforms like Linux or Mac OS X. This is " "the default scheme used when Python or a component is installed." @@ -147,7 +147,6 @@ msgstr "" "componente." #: ../Doc/library/sysconfig.rst:79 -#, fuzzy msgid "" "*posix_home*: scheme for POSIX platforms used when a *home* option is used " "upon installation. This scheme is used when a component is installed " @@ -158,7 +157,6 @@ msgstr "" "componente a través de *Disutils* con un prefijo de inicio específico." #: ../Doc/library/sysconfig.rst:82 -#, fuzzy msgid "" "*posix_user*: scheme for POSIX platforms used when a component is installed " "through Distutils and the *user* option is used. This scheme defines paths " @@ -166,7 +164,7 @@ msgid "" msgstr "" "*posix_user*: esquema para plataformas POSIX usado cuando se instala un " "componente a través de Distutils y se usa la opción *user*. Este esquema " -"define rutas ubicadas bajo el directorio de inicio del usuario" +"define rutas ubicadas bajo el directorio de inicio del usuario." #: ../Doc/library/sysconfig.rst:85 msgid "*nt*: scheme for NT platforms like Windows." @@ -174,7 +172,8 @@ msgstr "*nt*: esquema para plataformas NT como Windows." #: ../Doc/library/sysconfig.rst:86 msgid "*nt_user*: scheme for NT platforms, when the *user* option is used." -msgstr "*nt_user*: esquema para plataformas NT, cuando se usa la opción *user*" +msgstr "" +"*nt_user*: esquema para plataformas NT, cuando se usa la opción *user*." #: ../Doc/library/sysconfig.rst:88 msgid "" @@ -412,7 +411,7 @@ msgstr "" #: ../Doc/library/sysconfig.rst:189 msgid "win32 (all others - specifically, sys.platform is returned)" -msgstr "win32 (todos los demás - específicamente se retorna sys.plataform)" +msgstr "win32 (todos los demás - específicamente se retorna sys.platform)" #: ../Doc/library/sysconfig.rst:191 msgid "Mac OS X can return:" diff --git a/library/tarfile.po b/library/tarfile.po index 5e4d9f7648..9916c883d5 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-15 21:50-0600\n" -"Last-Translator: Alfonso Reyes \n" +"PO-Revision-Date: 2021-08-04 22:00+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tarfile.rst:2 msgid ":mod:`tarfile` --- Read and write tar archive files" @@ -63,7 +64,7 @@ msgid "" "*longlink* extensions, read-only support for all variants of the *sparse* " "extension including restoration of sparse files." msgstr "" -"soporte de lectura/escritira para el formato GNU tar incluyendo extensiones " +"soporte de lectura/escritura para el formato GNU tar incluyendo extensiones " "*longname* y *longlink*, soporte de solo escritura para todas las variantes " "de extensiones de *sparse* (archivo disperso) incluyendo restablecimiento de " "archivos dispersos." @@ -400,18 +401,18 @@ msgstr "" "objects`." #: ../Doc/library/tarfile.rst:162 -#, fuzzy msgid "" "Return :const:`True` if *name* is a tar archive file, that the :mod:" "`tarfile` module can read. *name* may be a :class:`str`, file, or file-like " "object." msgstr "" "Retorna :const:`True` si *name* es un archivo tar, que el módulo :mod:" -"`tarfile` puede leer." +"`tarfile` puede leer. *name* puede ser un :class:`str`, archivo o un objeto " +"similar a un archivo." #: ../Doc/library/tarfile.rst:165 msgid "Support for file and file-like objects." -msgstr "" +msgstr "Soporte para archivos y objetos similares a archivos." #: ../Doc/library/tarfile.rst:169 msgid "The :mod:`tarfile` module defines the following exceptions:" @@ -506,7 +507,7 @@ msgid "" "const:`GNU_FORMAT`." msgstr "" "El formato predeterminado para nuevos archivos fue cambiado de :const:" -"`GNU_FORMAT` a :const:`PAX_FORMAT`" +"`GNU_FORMAT` a :const:`PAX_FORMAT`." #: ../Doc/library/tarfile.rst:246 msgid "Module :mod:`zipfile`" @@ -725,7 +726,7 @@ msgid "" "shortcut to this classmethod." msgstr "" "Constructor alternativo. La función :func:`tarfile.open` es un acceso " -"directo a este método de la clase" +"directo a este método de la clase." #: ../Doc/library/tarfile.rst:348 msgid "" @@ -880,6 +881,11 @@ msgid "" "existing members, :const:`None` is returned. If *member* does not appear in " "the archive, :exc:`KeyError` is raised." msgstr "" +"Extrae un miembro del archivo como un objeto de archivo. *member* puede ser " +"un nombre de archivo o un objeto :class:`TarInfo`. Si *member* es un archivo " +"normal o un enlace, se retorna un objeto :class:`io.BufferedReader`. Para " +"todos los demás miembros existentes, se retorna :const:`None`. Si *member* " +"no aparece en el archivo, se lanza :exc:`KeyError`." #: ../Doc/library/tarfile.rst:454 msgid "Return an :class:`io.BufferedReader` object." @@ -975,7 +981,8 @@ msgstr "" #: ../Doc/library/tarfile.rst:517 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" -"Un diccionario que contiene pares de *pax global headers* en key-value." +"Un diccionario que contiene pares claves-valor de los encabezados globales " +"pax." #: ../Doc/library/tarfile.rst:524 msgid "TarInfo Objects" @@ -1308,8 +1315,8 @@ msgstr "" "El formato pax POSIX.1-2001 (:const:`PAX_FORMAT`). Es el formato más " "flexible prácticamente sin límites. Admite nombres de archivo largos y " "nombres de enlaces, archivos grandes y almacena nombres de ruta de forma " -"portátil. Las implementaciones modernas de tar, incluyendo GNU tar, *bsdtar/" -"libarchive* y star, son totalmente compatibles con las características " +"portátil. Las implementaciones modernas de tar, incluyendo GNU tar, bsdtar/" +"libarchive y star, son totalmente compatibles con las características " "extendidas *pax*; Es posible que algunas bibliotecas antiguas o no " "mantenidas no lo hagan, pero deberían tratar los archivos *pax* como si " "estuvieran en el formato *ustar* compatible universalmente. Es el formato " diff --git a/library/telnetlib.po b/library/telnetlib.po index e19f283eb0..c4ae525eb3 100644 --- a/library/telnetlib.po +++ b/library/telnetlib.po @@ -11,16 +11,16 @@ 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: 2020-07-27 08:47-0400\n" +"PO-Revision-Date: 2021-08-04 22:01+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" -"X-Generator: Poedit 2.4\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/telnetlib.rst:2 msgid ":mod:`telnetlib` --- Telnet client" @@ -213,7 +213,7 @@ msgid "" "callback should access these data when it was invoked with a ``SE`` command. " "This method never blocks." msgstr "" -"Retorna los datos recopilados entre un par SB/SE (suboptionbegin/end). La " +"Retorna los datos recopilados entre un par SB/SE (suboption begin/end). La " "retrollamada debe tener acceso a estos datos cuando se invocó con un comando " "``SE``. Este método nunca se bloquea." @@ -231,9 +231,8 @@ msgstr "" "configuración de tiempo de espera predeterminada global)." #: ../Doc/library/telnetlib.rst:142 -#, fuzzy msgid "Do not try to reopen an already connected instance." -msgstr "No vuelva a abrir una instancia ya conectada." +msgstr "No intente volver a abrir una instancia ya conectada." #: ../Doc/library/telnetlib.rst:144 msgid "" diff --git a/library/tempfile.po b/library/tempfile.po index d2888e4197..4af24d4248 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-25 18:58-0600\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 22:01+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tempfile.rst:2 msgid ":mod:`tempfile` --- Generate temporary files and directories" @@ -269,9 +270,7 @@ msgstr "" "Lanza un :ref:`evento de auditoria ` ``tempfile.mkdtemp`` con " "argumento ``fullpath``." -# race-conditions -> condiciones de carrera (revisar en todo el archivo) #: ../Doc/library/tempfile.rst:144 -#, fuzzy msgid "" "Creates a temporary file in the most secure manner possible. There are no " "race conditions in the file's creation, assuming that the platform properly " @@ -356,6 +355,8 @@ msgid "" "If *text* is specified and true, the file is opened in text mode. Otherwise, " "(the default) the file is opened in binary mode." msgstr "" +"Si se especifica *text* y es verdadero, el archivo se abre en modo texto. De " +"lo contrario, (por defecto) el archivo se abre en modo binario." #: ../Doc/library/tempfile.rst:181 msgid "" diff --git a/library/test.po b/library/test.po index ed68c59375..644ad9d653 100644 --- a/library/test.po +++ b/library/test.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-26 12:19+0200\n" +"PO-Revision-Date: 2021-09-24 10:57-0500\n" "Last-Translator: \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/test.rst:2 msgid ":mod:`test` --- Regression tests package for Python" @@ -439,6 +440,9 @@ msgid "" "Timeout in seconds for tests using a network server listening on the network " "local loopback interface like ``127.0.0.1``." msgstr "" +"Tiempo de espera en segundos para las pruebas que utilizan un servidor de " +"red que escucha en la interfaz local de loopback de la red como " +"``127.0.0.1``." #: ../Doc/library/test.rst:295 msgid "" @@ -446,6 +450,9 @@ msgid "" "that the client and the server can run in different threads or even " "different processes." msgstr "" +"El tiempo de espera es lo suficientemente largo para evitar el fracaso de la " +"prueba: tiene en cuenta que el cliente y el servidor pueden ejecutarse en " +"diferentes hilos o incluso en diferentes procesos." #: ../Doc/library/test.rst:299 msgid "" @@ -453,24 +460,31 @@ msgid "" "`~socket.socket.recv` and :meth:`~socket.socket.send` methods of :class:" "`socket.socket`." msgstr "" +"El tiempo de espera debe ser lo suficientemente largo para los métodos :meth:" +"`~socket.socket.connect`, :meth:`~socket.socket.recv` y :meth:`~socket." +"socket.send` de :class:`socket.socket`." #: ../Doc/library/test.rst:303 msgid "Its default value is 5 seconds." -msgstr "" +msgstr "Su valor por defecto es de 5 segundos." #: ../Doc/library/test.rst:305 msgid "See also :data:`INTERNET_TIMEOUT`." -msgstr "" +msgstr "Ver también :data:`INTERNET_TIMEOUT`." #: ../Doc/library/test.rst:310 msgid "Timeout in seconds for network requests going to the Internet." msgstr "" +"Tiempo de espera en segundos para las solicitudes de red que van a Internet." #: ../Doc/library/test.rst:312 msgid "" "The timeout is short enough to prevent a test to wait for too long if the " "Internet request is blocked for whatever reason." msgstr "" +"El tiempo de espera es lo suficientemente corto como para evitar que una " +"prueba espere demasiado tiempo si la solicitud de Internet se bloquea por " +"cualquier motivo." #: ../Doc/library/test.rst:315 msgid "" @@ -478,38 +492,48 @@ msgid "" "failed, but skip the test instead: see :func:`~test.support.socket_helper." "transient_internet`." msgstr "" +"Normalmente, un tiempo de espera utilizando :data:`INTERNET_TIMEOUT` no " +"debería marcar una prueba como fallida, sino que debería omitir la prueba: " +"ver :func:`~test.support.socket_helper.transient_internet`." #: ../Doc/library/test.rst:319 msgid "Its default value is 1 minute." -msgstr "" +msgstr "Su valor por defecto es de 1 minuto." #: ../Doc/library/test.rst:321 msgid "See also :data:`LOOPBACK_TIMEOUT`." -msgstr "" +msgstr "Ver también :data:`LOOPBACK_TIMEOUT`." #: ../Doc/library/test.rst:326 msgid "" "Timeout in seconds to mark a test as failed if the test takes \"too long\"." msgstr "" +"Tiempo de espera en segundos para marcar una prueba como fallida si la " +"prueba tarda \"demasiado\"." #: ../Doc/library/test.rst:328 msgid "" "The timeout value depends on the regrtest ``--timeout`` command line option." msgstr "" +"El valor del tiempo de espera depende de la opción de línea de comandos " +"regrtest ``--timeout``." #: ../Doc/library/test.rst:330 msgid "" "If a test using :data:`SHORT_TIMEOUT` starts to fail randomly on slow " "buildbots, use :data:`LONG_TIMEOUT` instead." msgstr "" +"Si una prueba que utiliza :data:`SHORT_TIMEOUT` empieza a fallar " +"aleatoriamente en buildbots lentos, utilice en su lugar :data:`LONG_TIMEOUT`." #: ../Doc/library/test.rst:333 msgid "Its default value is 30 seconds." -msgstr "" +msgstr "Su valor por defecto es de 30 segundos." #: ../Doc/library/test.rst:338 msgid "Timeout in seconds to detect when a test hangs." msgstr "" +"Tiempo de espera en segundos para detectar cuando se cuelga una prueba." #: ../Doc/library/test.rst:340 msgid "" @@ -518,16 +542,23 @@ msgid "" "\"too long\". The timeout value depends on the regrtest ``--timeout`` " "command line option." msgstr "" +"Es lo suficientemente largo como para reducir el riesgo de fracaso de la " +"prueba en los buildbots de Python más lentos. No debe utilizarse para marcar " +"una prueba como fallida si la prueba tarda \"demasiado\". El valor del " +"tiempo de espera depende de la opción de línea de comandos regrtest ``--" +"timeout``." #: ../Doc/library/test.rst:345 msgid "Its default value is 5 minutes." -msgstr "" +msgstr "Su valor por defecto es de 5 minutos." #: ../Doc/library/test.rst:347 msgid "" "See also :data:`LOOPBACK_TIMEOUT`, :data:`INTERNET_TIMEOUT` and :data:" "`SHORT_TIMEOUT`." msgstr "" +"Ver también :data:`LOOPBACK_TIMEOUT`, :data:`INTERNET_TIMEOUT` y :data:" +"`SHORT_TIMEOUT`." #: ../Doc/library/test.rst:353 msgid "Set to :func:`os.getcwd`." @@ -614,13 +645,12 @@ msgstr "" "de tipos mixtos." #: ../Doc/library/test.rst:428 -#, fuzzy msgid "" "Object that is not equal to anything (even to :data:`ALWAYS_EQ`). Used to " "test mixed type comparison." msgstr "" -"Objeto que es igual a cualquier cosa. Se utiliza para probar la comparación " -"de tipos mixtos." +"Objeto que no es igual a nada (incluso a :data:`ALWAYS_EQ`). Se utiliza para " +"probar la comparación de tipos mixtos." #: ../Doc/library/test.rst:434 msgid "" @@ -1159,18 +1189,25 @@ msgid "" "\"Warning -- {msg}\"``. If *msg* is made of multiple lines, add ``\"Warning " "-- \"`` prefix to each line." msgstr "" +"Imprime una advertencia en :data:`sys.__stderr__`. Formatea el mensaje como: " +"``f \"Warning -- {msg}\"``. Si *msg* se compone de varias líneas, añade el " +"prefijo ``\"Warning --\"`` a cada línea." #: ../Doc/library/test.rst:828 msgid "" "Wait until process *pid* completes and check that the process exit code is " "*exitcode*." msgstr "" +"Espere hasta que el proceso *pid* termine y comprobará que el código de " +"salida del proceso es *exitcode*." #: ../Doc/library/test.rst:831 msgid "" "Raise an :exc:`AssertionError` if the process exit code is not equal to " "*exitcode*." msgstr "" +"Lanza un :exc:`AssertionError` si el código de salida del proceso no es " +"igual a *exitcode*." #: ../Doc/library/test.rst:834 msgid "" @@ -1178,6 +1215,10 @@ msgid "" "default), kill the process and raise an :exc:`AssertionError`. The timeout " "feature is not available on Windows." msgstr "" +"Si el proceso se ejecuta durante más tiempo que *timeout* en segundos (:data:" +"`SHORT_TIMEOUT` por defecto), mata el proceso y lanza un :exc:" +"`AssertionError`. La función de tiempo de espera no está disponible en " +"Windows." #: ../Doc/library/test.rst:843 msgid "" @@ -1932,27 +1973,23 @@ msgstr "" "lanzará en :meth:`! __ fspath__`." #: ../Doc/library/test.rst:1415 -#, fuzzy msgid ":mod:`test.support.socket_helper` --- Utilities for socket tests" msgstr "" -":mod:`test.support.script_helper` ---Utilidades para las pruebas de " -"ejecución de Python" +":mod:`test.support.socket_helper` --- Utilidades para pruebas de socket" #: ../Doc/library/test.rst:1421 -#, fuzzy msgid "" "The :mod:`test.support.socket_helper` module provides support for socket " "tests." msgstr "" -"El módulo :mod:`test.support.script_helper` proporciona soporte para las " -"pruebas de ejecución de script de Python." +"El módulo :mod:`test.support.socket_helper` proporciona soporte para las " +"pruebas de socket." #: ../Doc/library/test.rst:1428 -#, fuzzy msgid "Set to ``True`` if IPv6 is enabled on this host, ``False`` otherwise." msgstr "" -"Establecido ``True`` si *IPV6* está habilitado en este host, de lo contrario " -"``False``." +"Se establece como ``True`` si IPv6 está habilitado en este host, ``False`` " +"en caso contrario." #: ../Doc/library/test.rst:1433 msgid "" @@ -2039,23 +2076,21 @@ msgstr "" "`PermissionError` es lanzado." #: ../Doc/library/test.rst:1481 -#, fuzzy msgid "" "A decorator for running tests that require a functional ``bind()`` for Unix " "sockets." msgstr "" -"Un decorador para ejecutar pruebas que requieren un enlace *bind()* para " -"*sockets Unix*." +"Un decorador para ejecutar pruebas que requieren un enlace(``bind()``) " +"funcional para sockets en sistemas Unix." #: ../Doc/library/test.rst:1487 -#, fuzzy msgid "" "A context manager that raises :exc:`~test.support.ResourceDenied` when " "various issues with the internet connection manifest themselves as " "exceptions." msgstr "" -"Un administrador de contexto que plantea :exc:`ResourceDenied` cuando varios " -"problemas con la conexión a Internet se manifiestan como excepciones." +"Un gestor de contexto que lanza :exc:`~test.support.ResourceDenied` cuando " +"varios problemas con la conexión a Internet se manifiestan como excepciones." #: ../Doc/library/test.rst:1493 msgid "" @@ -2128,7 +2163,7 @@ msgstr "" #: ../Doc/library/test.rst:1527 ../Doc/library/test.rst:1543 #: ../Doc/library/test.rst:1555 msgid "The function no longer strips whitespaces from *stderr*." -msgstr "" +msgstr "La función ya no elimina los espacios en blanco de *stderr*." #: ../Doc/library/test.rst:1533 msgid "" @@ -2238,37 +2273,41 @@ msgid "" ":mod:`test.support.bytecode_helper` --- Support tools for testing correct " "bytecode generation" msgstr "" +":mod:`test.support.bytecode_helper` --- Herramientas de apoyo para comprobar " +"la correcta generación de bytecode" #: ../Doc/library/test.rst:1609 -#, fuzzy msgid "" "The :mod:`test.support.bytecode_helper` module provides support for testing " "and inspecting bytecode generation." msgstr "" -"El módulo :mod:`test.support.script_helper` proporciona soporte para las " -"pruebas de ejecución de script de Python." +"El módulo :mod:`test.support.bytecode_helper` proporciona soporte para " +"probar e inspeccionar la generación de código de bytes." #: ../Doc/library/test.rst:1614 -#, fuzzy msgid "The module defines the following class:" -msgstr "Este módulo define las siguientes excepciones:" +msgstr "El módulo define la siguiente clase:" #: ../Doc/library/test.rst:1618 msgid "This class has custom assertion methods for inspecting bytecode." msgstr "" +"Esta clase tiene métodos de aserción personalizados para inspeccionar el " +"código de bytes." #: ../Doc/library/test.rst:1622 msgid "Return the disassembly of *co* as string." -msgstr "" +msgstr "Retorna el desensamblaje de *co* como cadena." #: ../Doc/library/test.rst:1627 msgid "" "Return instr if *opname* is found, otherwise throws :exc:`AssertionError`." msgstr "" +"Retorna instr si se encuentra *opname*, de lo contrario lanza :exc:" +"`AssertionError`." #: ../Doc/library/test.rst:1632 msgid "Throws :exc:`AssertionError` if *opname* is found." -msgstr "" +msgstr "Lanza :exc:`AssertionError` si se encuentra *opname*." #~ msgid "" #~ "Strip the *stderr* of a Python process from potential debug output " diff --git a/library/textwrap.po b/library/textwrap.po index 32c2d0ef7b..b38cad901e 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -11,16 +11,16 @@ 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: 2020-05-12 22:08-0500\n" +"PO-Revision-Date: 2021-08-04 22:04+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/textwrap.rst:2 msgid ":mod:`textwrap` --- Text wrapping and filling" @@ -268,9 +268,7 @@ msgstr "" "caracteres de tabulación en *text* se expandirán a cero o más espacios, " "dependiendo de la columna actual y el tamaño de tabulación dado." -# carriage return -- retorno final de carro #: ../Doc/library/textwrap.rst:179 -#, fuzzy msgid "" "(default: ``True``) If true, after tab expansion but before wrapping, the :" "meth:`wrap` method will replace each whitespace character with a single " @@ -367,9 +365,7 @@ msgstr "y \"Spot.\" en::" msgid ":attr:`fix_sentence_endings` is false by default." msgstr ":attr:`fix_sentence_endings` es falso por defecto." -# lowecase letter #: ../Doc/library/textwrap.rst:241 -#, fuzzy msgid "" "Since the sentence detection algorithm relies on ``string.lowercase`` for " "the definition of \"lowercase letter\", and a convention of using two spaces " @@ -377,7 +373,7 @@ msgid "" "English-language texts." msgstr "" "Dado que el algoritmo de detección de oraciones se basa en ``string." -"lowercase`` para la definición de \"*lowercase letter*\", y en la convención " +"lowercase`` para la definición de \"letra en minúscula\", y en la convención " "de utilizar dos espacios después de un punto para separar las oraciones en " "la misma línea, es específico para los textos en inglés." @@ -396,9 +392,7 @@ msgstr "" "pondrán en una línea por sí mismas, para minimizar la cantidad en que se " "excede :attr:`width`)." -# insecable words #: ../Doc/library/textwrap.rst:258 -#, fuzzy msgid "" "(default: ``True``) If true, wrapping will occur preferably on whitespaces " "and right after hyphens in compound words, as it is customary in English. If " @@ -407,14 +401,13 @@ msgid "" "want truly insecable words. Default behaviour in previous versions was to " "always allow breaking hyphenated words." msgstr "" -"(default: ``True``) Si es verdadero, la envoltura se producirá " -"preferentemente en espacios en blanco y justo después de los guiones en las " -"palabras compuestas, como es costumbre en inglés. Si es falso, sólo los " -"espacios en blanco se considerarán como lugares potencialmente buenos para " -"saltos de línea, pero es necesario establecer :attr:`break_long_words` a " -"falso si se quieren palabras verdaderamente inseguras. El comportamiento " -"por defecto en las versiones anteriores era permitir siempre la ruptura de " -"palabras con guión." +"(predeterminado: ``True``) Si es verdadero, el ajuste se producirá " +"preferiblemente en espacios en blanco y justo después de los guiones en " +"palabras compuestas, como es habitual en inglés. Si es falso, solo los " +"espacios en blanco se considerarán lugares potencialmente buenos para los " +"saltos de línea, pero debe establecer :attr:`break_long_words` en falso si " +"desea palabras verdaderamente insecables. El comportamiento predeterminado " +"en versiones anteriores era permitir siempre romper palabras con guiones." #: ../Doc/library/textwrap.rst:268 msgid "" diff --git a/library/time.po b/library/time.po index edc1e25245..f955198c89 100644 --- a/library/time.po +++ b/library/time.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-09 20:15+0200\n" -"Last-Translator: Álvaro Mondéjar \n" +"PO-Revision-Date: 2021-08-21 23:22+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/time.rst:2 msgid ":mod:`time` --- Time access and conversions" @@ -296,7 +297,7 @@ msgid "" "`pthread_getcpuclockid(3)` for further information)." msgstr "" ":ref:`Disponibilidad `: Unix (consulte la página de manual " -"para: manpage: `pthread_getcpuclockid (3)` para más información)." +"para :manpage:`pthread_getcpuclockid(3)` para más información)." #: ../Doc/library/time.rst:156 msgid "" @@ -478,7 +479,6 @@ msgstr "" "plataforma." #: ../Doc/library/time.rst:271 -#, fuzzy msgid "" "Return the value (in fractional seconds) of a monotonic clock, i.e. a clock " "that cannot go backwards. The clock is not affected by system clock " @@ -488,8 +488,8 @@ msgstr "" "Retorna el valor (en segundos fraccionarios) de un reloj monotónico, es " "decir, un reloj que no puede retroceder. El reloj no se ve afectado por las " "actualizaciones del reloj del sistema. El punto de referencia del valor " -"retornado no está definido, de modo que solo la diferencia entre los " -"resultados de llamadas consecutivas es válida." +"retornado no está definido, de modo que sólo la diferencia entre los " +"resultados de dos llamadas es válida." #: ../Doc/library/time.rst:277 msgid "The function is now always available and always system-wide." @@ -501,7 +501,6 @@ msgstr "" "Similar a :func:`monotonic`, pero el tiempo de retorno es en nanosegundos." #: ../Doc/library/time.rst:292 -#, fuzzy msgid "" "Return the value (in fractional seconds) of a performance counter, i.e. a " "clock with the highest available resolution to measure a short duration. It " @@ -513,8 +512,8 @@ msgstr "" "es decir, un reloj con la resolución más alta disponible para medir una " "corta duración. Incluye el tiempo transcurrido durante el sueño y abarca " "todo el sistema. El punto de referencia del valor retornado no está " -"definido, de modo que solo la diferencia entre los resultados de llamadas " -"consecutivas es válida." +"definido, de modo que sólo la diferencia entre los resultados de dos " +"llamadas es válida." #: ../Doc/library/time.rst:302 msgid "Similar to :func:`perf_counter`, but return time as nanoseconds." @@ -522,7 +521,6 @@ msgstr "" "Similar a :func:`perf_counter`, pero el tiempo de retorno es en nanosegundos." #: ../Doc/library/time.rst:314 -#, fuzzy msgid "" "Return the value (in fractional seconds) of the sum of the system and user " "CPU time of the current process. It does not include time elapsed during " @@ -533,8 +531,8 @@ msgstr "" "Retorna el valor (en fracciones de segundo) de la suma del sistema y el " "tiempo de CPU del usuario del proceso actual. No incluye el tiempo " "transcurrido durante el sueño. Es todo el proceso por definición. El punto " -"de referencia del valor retornado no está definido, de modo que solo la " -"diferencia entre los resultados de llamadas consecutivas es válida." +"de referencia del valor retornado no está definido, de modo que sólo la " +"diferencia entre los resultados de dos llamadas es válida." #: ../Doc/library/time.rst:324 msgid "Similar to :func:`process_time` but return time as nanoseconds." @@ -883,7 +881,7 @@ msgstr "" "Es posible que se admitan directivas adicionales en ciertas plataformas, " "pero solo las que se enumeran aquí tienen un significado estandarizado por " "ANSI C. Para ver el conjunto completo de códigos de formato admitidos en su " -"plataforma, consulte la documentación de: manpage: `strftime (3)`." +"plataforma, consulte la documentación de :manpage:`strftime(3)`." #: ../Doc/library/time.rst:472 msgid "" @@ -938,7 +936,7 @@ msgid "" "(and are considered to be non-daylight savings timezones)." msgstr "" "La compatibilidad con la directiva ``%Z`` se basa en los valores contenidos " -"en `` tzname`` y en si `` daylight`` es verdadero. Debido a esto, es " +"en `` tzname`` y en si ``daylight`` es verdadero. Debido a esto, es " "específico de la plataforma, excepto para reconocer UTC y GMT que siempre se " "conocen (y se consideran zonas horarias que no son de horario de verano)." @@ -1187,7 +1185,6 @@ msgstr "" "atributos." #: ../Doc/library/time.rst:592 -#, fuzzy msgid "" "Return the value (in fractional seconds) of the sum of the system and user " "CPU time of the current thread. It does not include time elapsed during " @@ -1198,9 +1195,9 @@ msgstr "" "Retorna el valor (en fracciones de segundo) de la suma del sistema y el " "tiempo de CPU del usuario del subproceso actual. No incluye el tiempo " "transcurrido durante el sueño. Es específico del hilo por definición. El " -"punto de referencia del valor retornado no está definido, de modo que solo " -"la diferencia entre los resultados de llamadas consecutivas en el mismo hilo " -"es válida." +"punto de referencia del valor retornado no está definido, de modo que sólo " +"la diferencia entre los resultados de dos llamadas en el mismo hilo es " +"válida." #: ../Doc/library/time.rst:600 msgid "" @@ -1269,7 +1266,7 @@ msgstr "Donde están los componentes:" #: ../Doc/library/time.rst:647 msgid "``std`` and ``dst``" -msgstr "``std` y ``dst``" +msgstr "``std`` y ``dst``" #: ../Doc/library/time.rst:646 msgid "" @@ -1467,17 +1464,21 @@ msgid "" "`International Atomic Time `_" msgstr "" +"`Tiempo Atómico Internacional `_" #: ../Doc/library/time.rst:781 msgid "" "The system must have a current leap second table in order for this to give " "the correct answer. PTP or NTP software can maintain a leap second table." msgstr "" +"El sistema debe contar con una tabla de segundos intercalares para que éste " +"dé la respuesta correcta. Software PTP o NTP puede mantener una tabla de " +"segundos intercalares." #: ../Doc/library/time.rst:785 -#, fuzzy msgid ":ref:`Availability `: Linux." -msgstr ":ref:`Disponibilidad `: Unix." +msgstr ":ref:`Disponibilidad `: Linux." #: ../Doc/library/time.rst:790 msgid "Thread-specific CPU-time clock." diff --git a/library/timeit.po b/library/timeit.po index daf125bdc5..e1d9416f4a 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -11,16 +11,16 @@ 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: 2020-05-24 12:05+0200\n" +"PO-Revision-Date: 2021-08-04 22:01+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/timeit.rst:2 msgid ":mod:`timeit` --- Measure execution time of small code snippets" @@ -103,9 +103,7 @@ msgstr "" msgid "The optional *globals* parameter was added." msgstr "El parámetro opcional *globals* fue añadido." -# No estoy seguro cómo organizar los argumentos "repeat" y "number" #: ../Doc/library/timeit.rst:78 -#, fuzzy msgid "" "Create a :class:`Timer` instance with the given statement, *setup* code and " "*timer* function and run its :meth:`.repeat` method with the given *repeat* " diff --git a/library/tkinter.colorchooser.po b/library/tkinter.colorchooser.po index 034647c84d..b8f68af4cf 100644 --- a/library/tkinter.colorchooser.po +++ b/library/tkinter.colorchooser.po @@ -4,27 +4,29 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-08-03 14:24+0200\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: Cristián Maureira-Fredes \n" +"Language-Team: \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tkinter.colorchooser.rst:2 msgid ":mod:`tkinter.colorchooser` --- Color choosing dialog" -msgstr "" +msgstr ":mod:`tkinter.colorchooser` --- Diálogo de elección de color" #: ../Doc/library/tkinter.colorchooser.rst:8 msgid "**Source code:** :source:`Lib/tkinter/colorchooser.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/colorchooser.py`" #: ../Doc/library/tkinter.colorchooser.rst:12 msgid "" @@ -33,6 +35,10 @@ msgid "" "modal color choosing dialog window. The ``Chooser`` class inherits from the :" "class:`~tkinter.commondialog.Dialog` class." msgstr "" +"El módulo :mod:`tkinter.colorchooser` proporciona la clase :class:`Chooser` " +"como una interfaz para el diálogo del selector de color nativo. ``Chooser`` " +"implementa una ventana de diálogo de elección de color modal. La clase " +"``Chooser`` hereda de la clase :class:`~tkinter.commondialog.Dialog`." #: ../Doc/library/tkinter.colorchooser.rst:21 msgid "" @@ -40,11 +46,14 @@ msgid "" "wait for the user to make a selection, and return the selected color (or " "``None``) to the caller." msgstr "" +"Cree un cuadro de diálogo de elección de color. Una llamada a este método " +"mostrará la ventana, esperará a que el usuario haga una selección y " +"devolverá el color seleccionado (o ``None``) a la persona que llama." #: ../Doc/library/tkinter.colorchooser.rst:28 msgid "Module :mod:`tkinter.commondialog`" -msgstr "" +msgstr "Módulo :mod:`tkinter.commondialog`" #: ../Doc/library/tkinter.colorchooser.rst:29 msgid "Tkinter standard dialog module" -msgstr "" +msgstr "Módulo de diálogo estándar de Tkinter" diff --git a/library/tkinter.dnd.po b/library/tkinter.dnd.po index 27ce10fd35..5ec7acc327 100644 --- a/library/tkinter.dnd.po +++ b/library/tkinter.dnd.po @@ -4,33 +4,36 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-08-03 14:22+0200\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: Cristián Maureira-Fredes \n" +"Language-Team: \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tkinter.dnd.rst:2 msgid ":mod:`tkinter.dnd` --- Drag and drop support" -msgstr "" +msgstr ":mod:`tkinter.dnd` --- Soporte de arrastrar y soltar" #: ../Doc/library/tkinter.dnd.rst:8 msgid "**Source code:** :source:`Lib/tkinter/dnd.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/dnd.py`" #: ../Doc/library/tkinter.dnd.rst:12 msgid "" "This is experimental and due to be deprecated when it is replaced with the " "Tk DND." msgstr "" +"Esto es experimental y quedará obsoleto cuando se sustituya por el Tk DND." #: ../Doc/library/tkinter.dnd.rst:15 msgid "" @@ -43,71 +46,91 @@ msgid "" "dragged, and 'event' is the event that invoked the call (the argument to " "your callback function)." msgstr "" +"El módulo :mod:`tkinter.dnd` proporciona soporte para arrastrar y soltar " +"objetos dentro de una sola aplicación, dentro de la misma ventana o entre " +"ventanas. Para permitir que se arrastre un objeto, debe crear un enlace de " +"evento para él que inicie el proceso de arrastrar y soltar. Por lo general, " +"vincula un evento ButtonPress a una función de devolución de llamada que " +"escribe (consulte :ref:`Bindings-and-Events`). La función debe llamar a :" +"func:`dnd_start`, donde 'fuente' es el objeto que se va a arrastrar y " +"'evento' es el evento que invoca la llamada (el argumento de la función de " +"devolución de llamada)." #: ../Doc/library/tkinter.dnd.rst:23 msgid "Selection of a target object occurs as follows:" -msgstr "" +msgstr "La selección de un objeto de destino ocurre de la siguiente manera:" #: ../Doc/library/tkinter.dnd.rst:25 msgid "Top-down search of area under mouse for target widget" msgstr "" +"Búsqueda de arriba hacia abajo del área debajo del mouse para el widget de " +"destino" #: ../Doc/library/tkinter.dnd.rst:27 msgid "Target widget should have a callable *dnd_accept* attribute" -msgstr "" +msgstr "El widget de destino debe tener un atributo *dnd_accept* invocable" #: ../Doc/library/tkinter.dnd.rst:28 msgid "" "If *dnd_accept* is not present or returns None, search moves to parent widget" msgstr "" +"Si *dnd_accept* no está presente o devuelve None, la búsqueda se mueve al " +"widget principal" #: ../Doc/library/tkinter.dnd.rst:29 msgid "If no target widget is found, then the target object is None" msgstr "" +"Si no se encuentra ningún widget de destino, el objeto de destino es None" #: ../Doc/library/tkinter.dnd.rst:31 msgid "Call to *.dnd_leave(source, event)*" -msgstr "" +msgstr "Llama a *.dnd_leave(source, event)*" #: ../Doc/library/tkinter.dnd.rst:32 msgid "Call to *.dnd_enter(source, event)*" -msgstr "" +msgstr "Llama a *.dnd_enter(source, event)*" #: ../Doc/library/tkinter.dnd.rst:33 msgid "Call to *.dnd_commit(source, event)* to notify of drop" -msgstr "" +msgstr "Llama a *.dnd_commit(source, event)* para notificar la caída" #: ../Doc/library/tkinter.dnd.rst:34 msgid "" "Call to *.dnd_end(target, event)* to signal end of drag-and-drop" msgstr "" +"Llama a *.dnd_end(target, event)* para señalar el final de arrastrar " +"y soltar" #: ../Doc/library/tkinter.dnd.rst:39 msgid "" "The *DndHandler* class handles drag-and-drop events tracking Motion and " "ButtonRelease events on the root of the event widget." msgstr "" +"La clase *DndHandler* maneja los eventos de arrastrar y soltar que rastrean " +"los eventos Motion y ButtonRelease en la raíz del widget de eventos." #: ../Doc/library/tkinter.dnd.rst:44 msgid "Cancel the drag-and-drop process." -msgstr "" +msgstr "Cancela el proceso de arrastrar y soltar." #: ../Doc/library/tkinter.dnd.rst:48 msgid "Execute end of drag-and-drop functions." -msgstr "" +msgstr "Ejecuta el fin de las funciones de arrastrar y soltar." #: ../Doc/library/tkinter.dnd.rst:52 msgid "Inspect area below mouse for target objects while drag is performed." msgstr "" +"Inspecciona el área debajo del mouse en busca de objetos de destino mientras " +"se realiza el arrastre." #: ../Doc/library/tkinter.dnd.rst:56 msgid "Signal end of drag when the release pattern is triggered." -msgstr "" +msgstr "Señal de fin de arrastre cuando se activa el patrón de liberación." #: ../Doc/library/tkinter.dnd.rst:60 msgid "Factory function for drag-and-drop process." -msgstr "" +msgstr "Función de fábrica para el proceso de arrastrar y soltar." #: ../Doc/library/tkinter.dnd.rst:64 msgid ":ref:`Bindings-and-Events`" -msgstr "" +msgstr ":ref:`Bindings-and-Events`" diff --git a/library/tkinter.font.po b/library/tkinter.font.po index 86fef0d8ce..b782b7b537 100644 --- a/library/tkinter.font.po +++ b/library/tkinter.font.po @@ -4,37 +4,41 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-08-03 14:18+0200\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: Cristián Maureira-Fredes \n" +"Language-Team: \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tkinter.font.rst:2 msgid ":mod:`tkinter.font` --- Tkinter font wrapper" -msgstr "" +msgstr ":mod:`tkinter.font` --- Envoltorio de fuente Tkinter" #: ../Doc/library/tkinter.font.rst:8 msgid "**Source code:** :source:`Lib/tkinter/font.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/font.py`" #: ../Doc/library/tkinter.font.rst:12 msgid "" "The :mod:`tkinter.font` module provides the :class:`Font` class for creating " "and using named fonts." msgstr "" +"El módulo :mod:`tkinter.font` proporciona la clase :class:`Font` para crear " +"y usar fuentes con nombre." #: ../Doc/library/tkinter.font.rst:15 msgid "The different font weights and slants are:" -msgstr "" +msgstr "Los diferentes pesos e inclinaciones de la fuente son:" #: ../Doc/library/tkinter.font.rst:24 msgid "" @@ -44,78 +48,85 @@ msgid "" "as a single object, rather than specifying a font by its attributes with " "each occurrence." msgstr "" +"La clase :class:`Font` representa una fuente con nombre. Las instancias " +"*Font* reciben nombres únicos y se pueden especificar por su configuración " +"de familia, tamaño y estilo. Las fuentes con nombre son el método de Tk para " +"crear e identificar fuentes como un solo objeto, en lugar de especificar una " +"fuente por sus atributos con cada aparición." #: ../Doc/library/tkinter.font.rst:30 msgid "arguments:" -msgstr "" +msgstr "argumentos:" #: ../Doc/library/tkinter.font.rst msgid "*font* - font specifier tuple (family, size, options)" -msgstr "" +msgstr "*font* - tupla de especificador de fuente (familia, tamaño, opciones)" #: ../Doc/library/tkinter.font.rst msgid "*name* - unique font name" -msgstr "" +msgstr "*name* - nombre de fuente único" #: ../Doc/library/tkinter.font.rst msgid "*exists* - self points to existing named font if true" msgstr "" +"*exists* - self apunta a la fuente con nombre existente si es verdadera" #: ../Doc/library/tkinter.font.rst:36 msgid "additional keyword options (ignored if *font* is specified):" msgstr "" +"opciones de palabras clave adicionales (ignoradas si se especifica *font*):" #: ../Doc/library/tkinter.font.rst msgid "*family* - font family i.e. Courier, Times" -msgstr "" +msgstr "*family* - familia de la fuente, es decir, Courier, Times" #: ../Doc/library/tkinter.font.rst msgid "*size* - font size" -msgstr "" +msgstr "*size* - tamaño de fuente" #: ../Doc/library/tkinter.font.rst msgid "If *size* is positive it is interpreted as size in points." -msgstr "" +msgstr "Si *size* es positivo, se interpreta como tamaño en puntos." #: ../Doc/library/tkinter.font.rst msgid "If *size* is a negative number its absolute value is treated" -msgstr "" +msgstr "Si *size* es un número negativo, se trata su valor absoluto" #: ../Doc/library/tkinter.font.rst msgid "as size in pixels." -msgstr "" +msgstr "como tamaño en píxeles." #: ../Doc/library/tkinter.font.rst msgid "*weight* - font emphasis (NORMAL, BOLD)" -msgstr "" +msgstr "*weight* - énfasis de fuente (NORMAL, BOLD)" #: ../Doc/library/tkinter.font.rst msgid "*slant* - ROMAN, ITALIC" -msgstr "" +msgstr "*slant* - ROMAN, ITALIC" #: ../Doc/library/tkinter.font.rst msgid "*underline* - font underlining (0 - none, 1 - underline)" -msgstr "" +msgstr "*underline* - subrayado de fuente (0 - ninguno, 1 - subrayado)" #: ../Doc/library/tkinter.font.rst msgid "*overstrike* - font strikeout (0 - none, 1 - strikeout)" -msgstr "" +msgstr "*overstrike* - tachado de fuente (0 - ninguno, 1 - tachado)" #: ../Doc/library/tkinter.font.rst:50 msgid "Return the attributes of the font." -msgstr "" +msgstr "Retorna los atributos de la fuente." #: ../Doc/library/tkinter.font.rst:54 msgid "Retrieve an attribute of the font." -msgstr "" +msgstr "Recupera un atributo de la fuente." #: ../Doc/library/tkinter.font.rst:58 msgid "Modify attributes of the font." -msgstr "" +msgstr "Modifica los atributos de la fuente." #: ../Doc/library/tkinter.font.rst:62 msgid "Return new instance of the current font." -msgstr "" +msgstr "Retorna una nueva instancia de la fuente actual." #: ../Doc/library/tkinter.font.rst:66 msgid "" @@ -123,43 +134,49 @@ msgid "" "formatted in the current font. If no display is specified then the main " "application window is assumed." msgstr "" +"Retorna la cantidad de espacio que ocuparía el texto en la pantalla " +"especificada cuando se formatee en la fuente actual. Si no se especifica " +"ninguna pantalla, se asume la ventana principal de la aplicación." #: ../Doc/library/tkinter.font.rst:72 msgid "Return font-specific data. Options include:" -msgstr "" +msgstr "Retorna datos específicos de la fuente. Las opciones incluyen:" #: ../Doc/library/tkinter.font.rst:76 msgid "*ascent* - distance between baseline and highest point that a" -msgstr "" +msgstr "*ascent* - distancia entre la línea de base y el punto más alto que un" #: ../Doc/library/tkinter.font.rst:76 ../Doc/library/tkinter.font.rst:79 msgid "character of the font can occupy" -msgstr "" +msgstr "el carácter de la fuente puede ocupar" #: ../Doc/library/tkinter.font.rst:79 msgid "*descent* - distance between baseline and lowest point that a" msgstr "" +"*descent* - distancia entre la línea de base y el punto más bajo que un" #: ../Doc/library/tkinter.font.rst:82 msgid "*linespace* - minimum vertical separation necessary between any two" -msgstr "" +msgstr "*linespace* - separación vertical mínima necesaria entre dos" #: ../Doc/library/tkinter.font.rst:82 msgid "characters of the font that ensures no vertical overlap between lines." msgstr "" +"caracteres de la fuente que aseguran que no haya superposición vertical " +"entre líneas." #: ../Doc/library/tkinter.font.rst:84 msgid "*fixed* - 1 if font is fixed-width else 0" -msgstr "" +msgstr "*fixed* - 1 si la fuente es de ancho fijo en caso contrario 0" #: ../Doc/library/tkinter.font.rst:88 msgid "Return the different font families." -msgstr "" +msgstr "Retorna las diferentes familias de fuentes." #: ../Doc/library/tkinter.font.rst:92 msgid "Return the names of defined fonts." -msgstr "" +msgstr "Retorna los nombres de las fuentes definidas." #: ../Doc/library/tkinter.font.rst:96 msgid "Return a :class:`Font` representation of a tk named font." -msgstr "" +msgstr "Retorna una representación :class:`Font` de una fuente con nombre tk." diff --git a/library/tkinter.messagebox.po b/library/tkinter.messagebox.po index 1ff1f12cf8..1e9930ac35 100644 --- a/library/tkinter.messagebox.po +++ b/library/tkinter.messagebox.po @@ -4,27 +4,29 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-08-03 14:11+0200\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: Cristián Maureira-Fredes \n" +"Language-Team: \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tkinter.messagebox.rst:2 msgid ":mod:`tkinter.messagebox` --- Tkinter message prompts" -msgstr "" +msgstr ":mod:`tkinter.messagebox` --- Indicadores de mensajes de Tkinter" #: ../Doc/library/tkinter.messagebox.rst:8 msgid "**Source code:** :source:`Lib/tkinter/messagebox.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/messagebox.py`" #: ../Doc/library/tkinter.messagebox.rst:12 msgid "" @@ -34,19 +36,24 @@ msgid "" "Yes, No) based on the user's selection. Common message box styles and " "layouts include but are not limited to:" msgstr "" +"El módulo :mod:`tkinter.messagebox` proporciona una clase base de plantilla, " +"así como una variedad de métodos convenientes para configuraciones de uso " +"común. Los cuadros de mensaje son modales y devolverán un subconjunto de " +"(Verdadero, Falso, OK, Ninguno, Sí, No) según la selección del usuario. Los " +"estilos y diseños de cuadros de mensajes comunes incluyen, entre otros:" #: ../Doc/library/tkinter.messagebox.rst:22 msgid "Create a default information message box." -msgstr "" +msgstr "Crea un cuadro de mensaje de información predeterminado." #: ../Doc/library/tkinter.messagebox.rst:24 msgid "**Information message box**" -msgstr "" +msgstr "**Cuadro de mensaje de información**" #: ../Doc/library/tkinter.messagebox.rst:28 msgid "**Warning message boxes**" -msgstr "" +msgstr "**Cuadros de mensaje de advertencia**" #: ../Doc/library/tkinter.messagebox.rst:33 msgid "**Question message boxes**" -msgstr "" +msgstr "**Cuadros de mensajes de preguntas**" diff --git a/library/tkinter.po b/library/tkinter.po index 7027d29e7c..52d132fb38 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-27 12:32+0200\n" +"PO-Revision-Date: 2021-08-03 14:09+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tkinter.rst:2 msgid ":mod:`tkinter` --- Python interface to Tcl/Tk" @@ -77,16 +78,17 @@ msgid "`TKDocs `_" msgstr "`TKDocs `_" #: ../Doc/library/tkinter.rst:32 -#, fuzzy msgid "" "Extensive tutorial plus friendlier widget pages for some of the widgets." msgstr "" -"Amplio tutorial más páginas de widgets amigables para algunos de los widgets." +"Amplio tutorial más páginas de widgets más amigables para algunos de los " +"widgets." #: ../Doc/library/tkinter.rst:35 msgid "" "`Tkinter 8.5 reference: a GUI for Python `_" msgstr "" +"`Tkinter 8.5 reference: a GUI for Python `_" #: ../Doc/library/tkinter.rst:35 msgid "On-line reference material." @@ -101,10 +103,7 @@ msgstr "`Documentos de Tkinter de effbot `_" msgid "Online reference for tkinter supported by effbot.org." msgstr "Referencia en línea para Tkinter producida por effbot.org." -# Mantuve los nombres de libros en inglés. Miré rápido y parece que no hay -# versiones en español. #: ../Doc/library/tkinter.rst:41 -#, fuzzy msgid "`Programming Python `_" msgstr "`Programming Python `_" @@ -244,10 +243,7 @@ msgstr "" "nivel superior de Tk que generalmente es la ventana principal de una " "aplicación. Cada instancia tiene su propio intérprete Tcl asociado." -# Encontré muchas referencias en la web del tipo "ventana toplevel". No sé si -# es muy formal que digamos... ¿lo dejamos en cursiva? #: ../Doc/library/tkinter.rst:101 -#, fuzzy msgid "" "The :func:`Tcl` function is a factory function which creates an object much " "like that created by the :class:`Tk` class, except that it does not " @@ -350,9 +346,7 @@ msgstr ":mod:`turtle`" msgid "Turtle graphics in a Tk window." msgstr "Gráficos de tortuga en una ventana Tk." -# "Guía de supervivencia" en la versión en francés #: ../Doc/library/tkinter.rst:142 -#, fuzzy msgid "Tkinter Life Preserver" msgstr "Guía de supervivencia de Tkinter" @@ -386,13 +380,12 @@ msgstr "" "Virginia." #: ../Doc/library/tkinter.rst:159 -#, fuzzy msgid "" "The HTML rendering, and some liberal editing, was produced from a FrameMaker " "version by Ken Manheimer." msgstr "" -"La renderización HTML y algunos ajustes libres fueron producidos a partir de " -"una versión de FrameMaker por Ken Manheimer." +"El renderizado HTML, y algunas ediciones libres, fueron producidas a partir " +"de una versión de FrameMaker por Ken Manheimer." #: ../Doc/library/tkinter.rst:162 msgid "" @@ -415,15 +408,14 @@ msgid "How To Use This Section" msgstr "Cómo usar esta sección" #: ../Doc/library/tkinter.rst:172 -#, fuzzy msgid "" "This section is designed in two parts: the first half (roughly) covers " "background material, while the second half can be taken to the keyboard as a " "handy reference." msgstr "" "Esta sección está diseñada en dos partes: la primera mitad (aproximadamente) " -"cubre el material de fondo, mientras que la segunda mitad se puede utilizar " -"como guía práctica." +"cubre el material de fondo, mientras que la segunda mitad se puede llevar al " +"teclado como referencia práctica." #: ../Doc/library/tkinter.rst:176 msgid "" @@ -521,15 +513,14 @@ msgstr "" "las otras clases." #: ../Doc/library/tkinter.rst:246 -#, fuzzy msgid "" "The :class:`Widget` class is not meant to be instantiated, it is meant only " "for subclassing to make \"real\" widgets (in C++, this is called an " "'abstract class')." msgstr "" -"La clase :class:`Widget` no está pensada para ser instanciada, solo está " -"destinada a la subclase para hacer widgets \"reales\" (en C++, esto se llama " -"una \"clase abstracta\")." +"La clase :class:`Widget` no está destinada a ser instanciada, solo está " +"destinada a subclases para crear widgets \"reales\" (en C++, esto se llama " +"una 'clase abstracta')." #: ../Doc/library/tkinter.rst:250 msgid "" @@ -662,9 +653,7 @@ msgstr "" "Los comandos de clase en Tk corresponden a constructores de clase en " "Tkinter.::" -# En la versión francesa menciona "Le constructeur d'un objet". #: ../Doc/library/tkinter.rst:317 -#, fuzzy msgid "" "The master of an object is implicit in the new name given to it at creation " "time. In Tkinter, masters are specified explicitly. ::" @@ -673,10 +662,7 @@ msgstr "" "durante la creación. En Tkinter, los constructores se especifican " "explícitamente. ::" -# Creo que hay que refrasear todo. No se termina de entender en pocas -# oraciones #: ../Doc/library/tkinter.rst:322 -#, fuzzy msgid "" "The configuration options in Tk are given in lists of hyphened tags followed " "by values. In Tkinter, options are specified as keyword-arguments in the " @@ -684,15 +670,14 @@ msgid "" "indices, in dictionary style, for established instances. See section :ref:" "`tkinter-setting-options` on setting options. ::" msgstr "" -"Las opciones de configuración en Tk se dan en listas de parámetros separadas " -"por guiones seguidos de sus valores. En Tkinter, las opciones se especifican " -"como argumentos por palabras clave en el constructor de instancias; y como " -"argumentos por palabras clave para configurar llamadas o como una entrada " -"(al estilo diccionario) para instancias establecidas. Consulte la sección :" -"ref:`tkinter-setting-options` en la configuración de opciones. ::" +"Las opciones de configuración en Tk se dan en listas de etiquetas con " +"guiones seguidas de valores. En Tkinter, las opciones se especifican como " +"argumentos de palabras clave en el constructor de instancias y argumentos de " +"palabras clave para llamadas de configuración o como índices de instancias, " +"en estilo diccionario, para instancias establecidas. Consulte la sección :" +"ref:`tkinter-setting-options` sobre las opciones de configuración. ::" #: ../Doc/library/tkinter.rst:332 -#, fuzzy msgid "" "In Tk, to perform an action on a widget, use the widget name as a command, " "and follow it with an action name, possibly with arguments (options). In " @@ -700,12 +685,11 @@ msgid "" "widget. The actions (methods) that a given widget can perform are listed " "in :file:`tkinter/__init__.py`. ::" msgstr "" -"En Tk, para realizar una acción en un objeto gráfico, use el nombre del " -"objeto gráfico como comando seguido del nombre de la acción, posiblemente " -"con argumentos (opciones). En Tkinter, se llama a los métodos en la " -"instancia de clase para invocar acciones en el objeto gráfico. Las acciones " -"(métodos) que puede realizar un objeto gráfico dado se enumeran en :file:" -"`tkinter/__init__.py`. ::" +"En Tk, para realizar una acción en un widget, use el nombre del widget como " +"un comando y siga con un nombre de acción, posiblemente con argumentos " +"(opciones). En Tkinter, llamas a métodos en la instancia de clase para " +"invocar acciones en el widget. Las acciones (métodos) que puede realizar un " +"widget determinado se enumeran en :file:`tkinter/__init__.py`. ::" # en la web encontré "empaquetador", "empacador"... ¿? # geometry manager == administrador de diseño de pantalla ? @@ -935,9 +919,8 @@ msgid "1" msgstr "1" #: ../Doc/library/tkinter.rst:442 -#, fuzzy msgid "option name for database lookup" -msgstr "nombre de la opción para la consulta de base de datos" +msgstr "nombre de la opción para la búsqueda en la base de datos" #: ../Doc/library/tkinter.rst:444 msgid "2" @@ -992,7 +975,6 @@ msgid "The Packer" msgstr "El empaquetador" #: ../Doc/library/tkinter.rst:466 -#, fuzzy msgid "" "The packer is one of Tk's geometry-management mechanisms. Geometry " "managers are used to specify the relative positioning of widgets within " @@ -1002,13 +984,13 @@ msgid "" "*filling*, etc - and works everything out to determine the exact placement " "coordinates for you." msgstr "" -"El empaquetador es uno de los mecanismos de diseño de pantalla de Tk. Los " -"administradores de diseño de pantalla se utilizan para especificar el " -"posicionamiento relativo de widgets dentro de su contenedor, su constructor " -"mutuo. En contraste con *placer*, más engorroso (que se usa con menos " -"frecuencia, y no cubrimos aquí), el empaquetador toma la especificación de " -"relación cualitativa -*above*, *to the left of*, *filling*, etc.- y calcula " -"todo para determinar las coordenadas de ubicación exacta para usted." +"El empaquetador es uno de los mecanismos de gestión de geometría de Tk. Los " +"administradores de geometría se utilizan para especificar la posición " +"relativa de los widgets dentro de su contenedor: su *master* mutuo. En " +"contraste con el *placer* más engorroso (que se usa con menos frecuencia, y " +"no cubrimos aquí), el empaquetador toma la especificación de relación " +"cualitativa - *above*, *to the left of*, *filling*, etc - y funciona todo " +"para determinar las coordenadas de ubicación exactas para usted." #: ../Doc/library/tkinter.rst:473 msgid "" @@ -1231,9 +1213,7 @@ msgstr "" msgid "bitmap" msgstr "bitmap" -# "X" ? Más adelante refiere a Xorg #: ../Doc/library/tkinter.rst:625 -#, fuzzy msgid "" "There are eight built-in, named bitmaps: ``'error'``, ``'gray25'``, " "``'gray50'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, " @@ -1242,7 +1222,7 @@ msgid "" msgstr "" "Hay ocho nombres de *bitmaps* integrados: ``'error'``, ``'gray25'``, " "``'gray50'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, " -"``'warning'``. Para especificar un nombre de archivo de mapa de bits \"X\", " +"``'warning'``. Para especificar un nombre de archivo de mapa de bits de X, " "indique la ruta completa del archivo, precedida por una ``@``, como en ``\"@/" "usr/contrib/bitmap/gumby.bit\"``." @@ -1267,10 +1247,7 @@ msgstr "" msgid "color" msgstr "color" -# "X colors" en la traducción francesa directamente ponen "noms de couleurs -# Xorg dans le fichier rgb.txt" #: ../Doc/library/tkinter.rst:641 -#, fuzzy msgid "" "Colors can be given as the names of X colors in the rgb.txt file, or as " "strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: ``\"#RRGGBB" @@ -1278,7 +1255,7 @@ msgid "" "where R,G,B here represent any legal hex digit. See page 160 of " "Ousterhout's book for details." msgstr "" -"Los colores se pueden dar como nombres de colores \"X\" en el archivo rgb." +"Los colores se pueden dar como nombres de colores de X en el archivo rgb." "txt, o como cadenas que representan valores RGB. La cadena que representa el " "valor RGB que toma un rango de 4 bits:``\"#RGB\"``, 8 bits: ``\"#RRGGBB\"``, " "12 bits\" ``\"#RRRGGGBBB\"``, or 16 bits ``\"#RRRRGGGGBBBB\"``, donde R, G, " @@ -1306,9 +1283,7 @@ msgstr "" msgid "distance" msgstr "distance" -# "puntos de impresora"?? #: ../Doc/library/tkinter.rst:653 -#, fuzzy msgid "" "Screen distances can be specified in either pixels or absolute distances. " "Pixels are given as numbers and absolute distances as strings, with the " @@ -1406,9 +1381,8 @@ msgstr "" "solo argumento." #: ../Doc/library/tkinter.rst:687 -#, fuzzy msgid "wrap" -msgstr "wrap:" +msgstr "wrap" #: ../Doc/library/tkinter.rst:687 msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." @@ -1452,10 +1426,7 @@ msgstr "" msgid "func" msgstr "func" -# entiendo que está hablando siempre del mismo argumento. No me queda claro -# por qué la mayúscula en "An Event"... #: ../Doc/library/tkinter.rst:711 -#, fuzzy msgid "" "is a Python function, taking one argument, to be invoked when the event " "occurs. An Event instance will be passed as the argument. (Functions " @@ -1463,7 +1434,7 @@ msgid "" msgstr "" "es una función de Python que toma un argumento y se llama cuando ocurre el " "evento. La instancia del evento se pasa como el argumento mencionado. (Las " -"funciones implementadas de esta manera a menudo se llaman *callbacks*)." +"funciones implementadas de esta manera a menudo se llaman *callbacks*.)" #: ../Doc/library/tkinter.rst:719 msgid "add" @@ -1481,9 +1452,7 @@ msgstr "" "evento. Pasar ``'+'`` agrega esta función a la lista de funciones vinculadas " "a este tipo de evento." -# lo mismo: X --> Xorg? #: ../Doc/library/tkinter.rst:728 -#, fuzzy msgid "" "Notice how the widget field of the event is being accessed in the " "``turn_red()`` callback. This field contains the widget that caught the X " @@ -1491,11 +1460,11 @@ msgid "" "how they are denoted in Tk, which can be useful when referring to the Tk man " "pages." msgstr "" -"Obsérvese cómo se accede al campo del widget del evento en el *callback* " -"``turn_red ()``. Este campo contiene el widget que capturó el evento X. La " -"siguiente tabla enumera los otros campos de eventos a los que puede acceder " -"y cómo se denotan en Tk. Esto puede ser útil cuando se hace referencia a las " -"páginas del manual de Tk." +"Observe cómo se accede al campo del widget del evento en la devolución de " +"llamada ``turn_red()``. Este campo contiene el widget que capturó el evento " +"de X. La siguiente tabla enumera los otros campos de eventos a los que puede " +"acceder y cómo se indican en Tk, lo que puede ser útil cuando se hace " +"referencia a las páginas del manual de Tk." #: ../Doc/library/tkinter.rst:734 msgid "Tk" @@ -1806,15 +1775,14 @@ msgid "File Handlers" msgstr "Gestor de archivos" #: ../Doc/library/tkinter.rst:825 -#, fuzzy msgid "" "Tk allows you to register and unregister a callback function which will be " "called from the Tk mainloop when I/O is possible on a file descriptor. Only " "one handler may be registered per file descriptor. Example code::" msgstr "" -"Tk permite que los descriptores de archivo registren y anulen el registro de " -"las funciones *callbacks* que se llaman desde el bucle principal de Tk " -"cuando sea posible la E/S. Solo se puede registrar un controlador por " +"Tk permite registrar y anular el registro de una función de devolución de " +"llamada que se llamará desde el mainloop de Tk cuando la E/S sea posible en " +"un descriptor de archivo. Solo se puede registrar un controlador por " "descriptor de archivo. Código de ejemplo:" #: ../Doc/library/tkinter.rst:836 diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index ff56695c8f..5d0ea13eba 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-26 10:44-0600\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-03 14:02+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/tkinter.scrolledtext.rst:2 msgid ":mod:`tkinter.scrolledtext` --- Scrolled Text Widget" @@ -30,7 +31,6 @@ msgid "**Source code:** :source:`Lib/tkinter/scrolledtext.py`" msgstr "**Código fuente:** :source:`Lib/tkinter/scrolledtext.py`" #: ../Doc/library/tkinter.scrolledtext.rst:14 -#, fuzzy msgid "" "The :mod:`tkinter.scrolledtext` module provides a class of the same name " "which implements a basic text widget which has a vertical scroll bar " @@ -38,11 +38,10 @@ msgid "" "is a lot easier than setting up a text widget and scroll bar directly." msgstr "" "El módulo :mod:`tkinter.scrolledtext` proporciona una clase del mismo nombre " -"la cual implementa un widget de texto básico que tiene una barra de " -"desplazamiento vertical para hacer lo \"correcto.\" Usar la clase :class:" -"`ScrolledText` es mucho más fácil que configurar un widget de texto y una " -"barra de desplazamiento directamente. El constructor es el mismo que el de " -"la clase :class:`tkinter.Text`." +"que implementa un widget de texto básico que tiene una barra de " +"desplazamiento vertical configurada para hacer \"lo correcto\". Usar la " +"clase :class:`ScrolledText` es mucho más fácil que configurar un widget de " +"texto y una barra de desplazamiento directamente." #: ../Doc/library/tkinter.scrolledtext.rst:19 msgid "" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index f0e4545ba7..dae2517209 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -1744,14 +1744,14 @@ msgstr "Un nombre simbólico de la lista de opciones de columna." #: ../Doc/library/tkinter.ttk.rst:908 msgid "An integer n, specifying the nth data column." -msgstr "Un entero n, especificando la n-ésima columna de datos." +msgstr "Un entero n, especificando la enésima columna de datos." #: ../Doc/library/tkinter.ttk.rst:909 msgid "" "A string of the form #n, where n is an integer, specifying the nth display " "column." msgstr "" -"Una cadena de la forma #n, donde n es un entero, especificando la n-ésima " +"Una cadena de la forma #n, donde n es un entero, especificando la enésima " "columna mostrada." #: ../Doc/library/tkinter.ttk.rst:912 diff --git a/library/trace.po b/library/trace.po index 54ec64cf28..b9cd1520ed 100644 --- a/library/trace.po +++ b/library/trace.po @@ -311,7 +311,7 @@ msgid "" "be output. If ``None``, the results for each source file are placed in its " "directory." msgstr "" -"Escribe los resultados de la cobertura. Configure * show_missing * para " +"Escribe los resultados de la cobertura. Configure *show_missing* para " "mostrar las líneas que no tuvieron coincidencias. Configurar *summary* para " "incluir en la salida el resumen de cobertura por módulo. *coverdir* " "especifica el directorio en el que se enviarán los archivos de resultado de " diff --git a/library/tracemalloc.po b/library/tracemalloc.po index 45963c39fd..95594035b6 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -6,21 +6,21 @@ # 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: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-03 21:38-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-30 21:01+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/tracemalloc.rst:2 msgid ":mod:`tracemalloc` --- Trace memory allocations" @@ -143,7 +143,7 @@ msgstr "" "cargado antes de los test, cuando la anterior captura de pantalla fue " "tomada. De manera similar, el modulo :mod:`linecache` ha almacenado en " "caché``940 KiB`` del código fuente de Python para formatear los " -"seguimientos, todo desde la captura instántanea." +"seguimientos, todo desde la captura instantánea." #: ../Doc/library/tracemalloc.rst:115 msgid "" @@ -196,11 +196,12 @@ msgid "" msgstr "" "Codifica para configurar las 10 líneas que asignan gran parte de la memoria " "con una salida ``bonita``, ignorando los archivos```` y ````:" +"_bootstrap>`` y ````:" #: ../Doc/library/tracemalloc.rst:253 msgid "Record the current and peak size of all traced memory blocks" msgstr "" +"Graba los tamaños actual y máximo de todos los bloques de memoria rastreados" #: ../Doc/library/tracemalloc.rst:255 msgid "" @@ -210,6 +211,11 @@ msgid "" "observe the small memory usage after the sum is computed as well as the peak " "memory usage during the computations::" msgstr "" +"El siguiente código calcula dos sumas como ``0 + 1 + 2 + ...`` de forma " +"ineficiente, creando una lista con estos números. Esta lista consume mucha " +"memoria de forma temporal. Podemos usar :func:`get_traced_memory` y :func:" +"`reset_peak` para observar el pequeño uso de memoria después de que la suma " +"es calculada, así como también el uso máximo de memoria durante el cálculo:" #: ../Doc/library/tracemalloc.rst:280 ../Doc/library/tracemalloc.rst:759 msgid "Output::" @@ -226,6 +232,14 @@ msgid "" "we could optimise (by removing the unnecessary call to :class:`list`, and " "writing ``sum(range(...))``)." msgstr "" +"El uso de :func:`reset_peak` asegura que podemos registrar precisamente el " +"uso máximo de memoria durante el cálculo de ``small_sum``, incluso si es " +"mucho menor al máximo total desde la llamada a :func:`start`. Sin la llamada " +"a :func:`reset_peak`, ``second_peak`` seguiría siendo el uso máximo de " +"memoria del cálculo de ``large_sum`` (es decir, igual a ``first_peak``). En " +"este caso ambos máximos son mucho mayores al uso final de memoria, lo que " +"sugiere que podemos optimizar (removiendo la llamada innecesaria a :class:" +"`list`, y escribiendo ``sum(range(...))``)." #: ../Doc/library/tracemalloc.rst:295 msgid "API" @@ -249,7 +263,7 @@ msgid "" "class:`Traceback` instance, or ``None`` if the :mod:`tracemalloc` module is " "not tracing memory allocations or did not trace the allocation of the object." msgstr "" -"Obtén el rastreo de donde el objeto de Python fue asignado. Retorna una " +"Obtiene el rastreo de donde el objeto de Python fue asignado. Retorna una " "instancia :class:`Traceback` o ``None`` si el módulo :mod:`tracemalloc` no " "esta rastreando ninguna asignación de memoria o no rastreó la asignación del " "objeto." @@ -262,7 +276,7 @@ msgstr "" #: ../Doc/library/tracemalloc.rst:319 msgid "Get the maximum number of frames stored in the traceback of a trace." msgstr "" -"Obtén el número máximo de cuadros guardados en el seguimiento de un rastro." +"Obtiene el número máximo de cuadros guardados en el seguimiento de un rastro." #: ../Doc/library/tracemalloc.rst:321 msgid "" @@ -281,28 +295,25 @@ msgid "" "Get the current size and peak size of memory blocks traced by the :mod:" "`tracemalloc` module as a tuple: ``(current: int, peak: int)``." msgstr "" -"Obtén el tamaño actual y tamaño pico de los bloques de memorias rastreados " +"Obtiene el tamaño actual y tamaño pico de los bloques de memorias rastreados " "por el módulo :mod:`tracemalloc` como una tupla: ``(current: int, peak: " "int)``." #: ../Doc/library/tracemalloc.rst:335 -#, fuzzy msgid "" "Set the peak size of memory blocks traced by the :mod:`tracemalloc` module " "to the current size." msgstr "" -"Obtén el tamaño actual y tamaño pico de los bloques de memorias rastreados " -"por el módulo :mod:`tracemalloc` como una tupla: ``(current: int, peak: " -"int)``." +"Establece el tamaño máximo de los bloques de memorias rastreados por el " +"módulo :mod:`tracemalloc` al tamaño actual." #: ../Doc/library/tracemalloc.rst:338 -#, fuzzy msgid "" "Do nothing if the :mod:`tracemalloc` module is not tracing memory " "allocations." msgstr "" -"Si el módulo :mod:`tracemalloc` esta rastreando asignaciones de memoria de " -"Python retorna ``True`` sino retorna ``False``." +"No realiza ninguna acción si el módulo :mod:`tracemalloc` no está rastreando " +"asignaciones de memoria." #: ../Doc/library/tracemalloc.rst:341 msgid "" @@ -311,19 +322,24 @@ msgid "" "`take_snapshot` before a call to :func:`reset_peak` can be meaningfully " "compared to snapshots taken after the call." msgstr "" +"Esta función sólo modifica el valor guardado para el uso máximo de memoria, " +"y no modifica o borra ningún rastreo, no como :func:`clear_traces`. " +"Capturas tomadas con :func:`take_snapshot` antes de una llamada a :func:" +"`reset_peak` pueden ser comparadas significativamente con capturas hechas " +"después de la llamada." #: ../Doc/library/tracemalloc.rst:346 -#, fuzzy msgid "See also :func:`get_traced_memory`." -msgstr "Mira también la función :func:`stop`." +msgstr "Mira también la función :func:`get_traced_memory`." #: ../Doc/library/tracemalloc.rst:353 msgid "" "Get the memory usage in bytes of the :mod:`tracemalloc` module used to store " "traces of memory blocks. Return an :class:`int`." msgstr "" -"Obtén el uso de la memoria en bytes desde el modulo :mod:`tracemalloc` usado " -"para guardar rastreos de bloques de memoria. Retorna una clase :class:`int`." +"Obtiene el uso de la memoria en bytes desde el modulo :mod:`tracemalloc` " +"usado para guardar rastreos de bloques de memoria. Retorna una clase :class:" +"`int`." #: ../Doc/library/tracemalloc.rst:360 msgid "" @@ -355,6 +371,8 @@ msgid "" "You can still read the original number of total frames that composed the " "traceback by looking at the :attr:`Traceback.total_nframe` attribute." msgstr "" +"El número original de cuadros totales que componen el seguimiento observando " +"el atributo :attr:`Traceback.total_nframe`." #: ../Doc/library/tracemalloc.rst:376 msgid "" @@ -395,15 +413,14 @@ msgstr "" "`get_traceback_limit`." #: ../Doc/library/tracemalloc.rst:394 -#, fuzzy msgid "" "Stop tracing Python memory allocations: uninstall hooks on Python memory " "allocators. Also clears all previously collected traces of memory blocks " "allocated by Python." msgstr "" -"Detén el rastreo de las asignaciones de memoria de Python: desinstala los " -"*hooks*. También limpia todos los rastros de memoria recolectados por los " -"bloques de memoria asignados por Python." +"Detiene el rastreo de las asignaciones de memoria de Python: desinstala los " +"*hooks*. También limpia todos los rastros de memoria recolectados acerca de " +"los bloques de memoria asignados por Python." #: ../Doc/library/tracemalloc.rst:398 msgid "" @@ -687,7 +704,7 @@ msgid "" msgstr "" "Crea una nueva instancia de clase :class:`Snapshot` con una secuencia de :" "attr:`traces` filtrados, *filters* es una lista de las instancias de :class:" -"`DomainFilter` y :class:`Filter`. Si *filters* es una lista vacia, retorna " +"`DomainFilter` y :class:`Filter`. Si *filters* es una lista vacía, retorna " "una nueva instancia de clase :class:`Snapshot` con una copia de los rastreos." #: ../Doc/library/tracemalloc.rst:562 @@ -950,6 +967,11 @@ msgid "" "total_nframe` attribute. That allows to know if a traceback has been " "truncated by the traceback limit." msgstr "" +"Cuando se toma una captura, los seguimientos de los rastreos se limitan a :" +"func:`get_traceback_limit` cuadros. Ver la función :func:`take_snapshot`. " +"El número original de cuadros del seguimiento se guarda en el atributo :attr:" +"`Traceback.total_nframe`. Esto permite saber si un seguimiento fue truncado " +"por el límite de seguimientos." #: ../Doc/library/tracemalloc.rst:726 msgid "" @@ -972,10 +994,12 @@ msgid "" "Total number of frames that composed the traceback before truncation. This " "attribute can be set to ``None`` if the information is not available." msgstr "" +"Número total de cuadros que componen el seguimiento antes de ser truncado. " +"Este atributo puede ser ``None`` si no hay información disponible." #: ../Doc/library/tracemalloc.rst:738 msgid "The :attr:`Traceback.total_nframe` attribute was added." -msgstr "" +msgstr "El atributo :attr:`Traceback.total_nframe` fue añadido." #: ../Doc/library/tracemalloc.rst:743 msgid "" diff --git a/library/turtle.po b/library/turtle.po index 882d3b5d63..7390c12530 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2021-03-03 21:47-0300\n" +"PO-Revision-Date: 2021-08-04 22:07+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/turtle.rst:3 msgid ":mod:`turtle` --- Turtle graphics" @@ -984,17 +985,16 @@ msgid "a number if *x* is a number, else ``None``" msgstr "un número si *x* es un número, si no ``None``" #: ../Doc/library/turtle.rst:663 -#, fuzzy msgid "" "Return the angle between the line from turtle position to position specified " "by (x,y), the vector or the other turtle. This depends on the turtle's " "start orientation which depends on the mode - \"standard\"/\"world\" or " "\"logo\"." msgstr "" -"Devuelve el ángulo entre la línea en la posición de la tortuga a la posición " +"Retorna el ángulo entre la línea en la posición de la tortuga a la posición " "especificada en (x, y), el vector o la otra tortuga. Esto depende de la " "posición inicial de la tortuga, que depende del modo - \"standard\"/\"world" -"\" o \"logo\")." +"\" o \"logo\"." #: ../Doc/library/turtle.rst:677 msgid "Return the turtle's x coordinate." @@ -1398,18 +1398,17 @@ msgid "a triple (fontname, fontsize, fonttype)" msgstr "un trio (nombre de fuente, tamaño de fuente, tipo de fuente)" #: ../Doc/library/turtle.rst:1107 -#, fuzzy msgid "" "Write text - the string representation of *arg* - at the current turtle " "position according to *align* (\"left\", \"center\" or \"right\") and with " "the given font. If *move* is true, the pen is moved to the bottom-right " "corner of the text. By default, *move* is ``False``." msgstr "" -"Escribe un texto la representación de la cadena de caracteres de *arg* en " -"la posición actual de la tortuga de acuerdo a el alineamiento *align* " -"(\"*left*\", \"*center*\" o \"*right*\") y con la fuente que se estableció. " -"Si *move* es verdadero, el lápiz se mueve a la esquina inferior derecha del " -"texto. Por defecto, *move* es ``False``." +"Escribe texto - la representación de cadena de caracteres de *arg* - en la " +"posición actual de la tortuga de acuerdo con *align* (\"izquierda\", \"centro" +"\" o \"derecha\") y con la fuente dada. Si *mov* es verdadero, el lápiz se " +"mueve a la esquina inferior derecha del texto. De forma predeterminada, " +"*move* es ``False``." #: ../Doc/library/turtle.rst:1125 msgid "" @@ -1442,7 +1441,7 @@ msgid "" "about how to deal with shapes see Screen method :func:`register_shape`." msgstr "" "Establece la forma de la tortuga al *name* que se establece o, si no se " -"establece un nmbre, devuelve el nombre actual de su forma. La forma *name* " +"establece un nombre, devuelve el nombre actual de su forma. La forma *name* " "debe existir en el diccionario de formas de *TurtleScreen*. Inicialmente " "están las siguientes formas poligonales: \"*arrow*\", \"*turtle*\", " "\"*circle*\", \"*square*\", \"*triangle*\", \"*classic*\". Para aprender " @@ -1485,13 +1484,12 @@ msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "\"*noresize*\": no se adapta la apariencia de la tortuga." #: ../Doc/library/turtle.rst:1195 -#, fuzzy msgid "" "``resizemode(\"user\")`` is called by :func:`shapesize` when used with " "arguments." msgstr "" -"*resizemode(\"user\")* es llamado por la función :func:`shapesize` cuando se " -"usa con argumentos." +"``resizemode(\"user\")`` es llamado por la función :func:`shapesize` cuando " +"se usa con argumentos." #: ../Doc/library/turtle.rst:1210 ../Doc/library/turtle.rst:1211 #: ../Doc/library/turtle.rst:1212 @@ -1586,7 +1584,6 @@ msgstr "" "tortuga." #: ../Doc/library/turtle.rst:1329 -#, fuzzy msgid "" "If none of the matrix elements are given, return the transformation matrix " "as a tuple of 4 elements. Otherwise set the given elements and transform the " @@ -1595,13 +1592,13 @@ msgid "" "otherwise an error is raised. Modify stretchfactor, shearfactor and " "tiltangle according to the given matrix." msgstr "" -"Si no se proporciona ninguno de los elementos de la matriz, devuelve la " +"Si no se proporciona ninguno de los elementos de la matriz, retorna la " "matriz de transformación como una tupla de 4 elementos. De lo contrario, " "establezca los elementos dados y transforme la forma de tortuga de acuerdo " -"con la matriz consistente en una primer columna t11, t12 y la segunda " -"columna t21, 22. El determinante t11 * t22 - t12 * t21 no debe ser cero, de " -"lo contrario se genera un error. Modificar el factor de estiramiento, factor " -"de corte y el ángulo de inclinación de acuerdo con la matriz dada." +"con la matriz que consta de la primera fila t11, t12 y la segunda fila t21, " +"t22. El determinante t11 * t22 - t12 * t21 no debe ser cero, de lo contrario " +"se genera un error. Modifique el factor de estiramiento, el factor de corte " +"y el ángulo de inclinación de acuerdo con la matriz dada." #: ../Doc/library/turtle.rst:1351 msgid "" @@ -1731,18 +1728,17 @@ msgid "an integer or ``None``" msgstr "un entero o ``None``" #: ../Doc/library/turtle.rst:1516 -#, fuzzy msgid "" "Set or disable undobuffer. If *size* is an integer, an empty undobuffer of " "given size is installed. *size* gives the maximum number of turtle actions " "that can be undone by the :func:`undo` method/function. If *size* is " "``None``, the undobuffer is disabled." msgstr "" -"Establece o deshabilita el buffer para deshacer acciones. Si *size* es un " -"entero se instala un buffer para deshacer acciones del tamaño. *size* da el " -"máximo número de acciones que la tortuga puede deshacer con la función o " -"método :func:`undo`. Si *size* es ``None``, se deshabilita el buffer para " -"deshacer acciones." +"Establecer o deshabilitar deshacer búfer. Si *size* es un número entero, se " +"instala un búfer de deshacer vacío de un tamaño determinado. *size* da el " +"número máximo de acciones de tortuga que se pueden deshacer mediante el " +"método/función :func:`undo`. Si *size* es ``None``, el búfer para deshacer " +"está deshabilitado." #: ../Doc/library/turtle.rst:1529 msgid "Return number of entries in the undobuffer." @@ -2032,13 +2028,12 @@ msgstr "" "``None``, los vínculos existentes son removidos." #: ../Doc/library/turtle.rst:1823 -#, fuzzy msgid "" "Example for a TurtleScreen instance named ``screen`` and a Turtle instance " "named ``turtle``:" msgstr "" -"Ejemplo de una instancia *TurtleScreen* llamada ``screen`` y una instancia " -"*Turtle* llamada turtle:" +"Ejemplo de una instancia TurtleScreen llamada ``screen`` y una instancia " +"Turtle llamada ``turtle``:" #: ../Doc/library/turtle.rst:1834 msgid "" @@ -2264,9 +2259,8 @@ msgid "Shut the turtlegraphics window." msgstr "Apaga la ventana gráfica de la tortuga." #: ../Doc/library/turtle.rst:2051 -#, fuzzy msgid "Bind ``bye()`` method to mouse clicks on the Screen." -msgstr "Ata el método *bye()* al click del ratón sobre la pantalla." +msgstr "Ata el método ``bye()`` al click del ratón sobre la pantalla." #: ../Doc/library/turtle.rst:2054 msgid "" diff --git a/library/types.po b/library/types.po index 927499bc4c..d7a16dce21 100644 --- a/library/types.po +++ b/library/types.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-28 22:07-0500\n" +"PO-Revision-Date: 2021-08-22 19:13-0500\n" "Last-Translator: \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/types.rst:2 msgid ":mod:`types` --- Dynamic type creation and names for built-in types" @@ -221,12 +222,16 @@ msgid "" "Raises an :ref:`auditing event ` ``function.__new__`` with " "argument ``code``." msgstr "" +"Lanza un :ref:`auditing event ` ``function.__new__`` con el " +"argumento ``code``." #: ../Doc/library/types.rst:114 msgid "" "The audit event only occurs for direct instantiation of function objects, " "and is not raised for normal compilation." msgstr "" +"El evento auditor solo ocurre para la instanciación directa de objetos de " +"código y no se genera para la compilación normal." #: ../Doc/library/types.rst:120 msgid "" @@ -268,14 +273,15 @@ msgstr "" "``flags``." #: ../Doc/library/types.rst:148 -#, fuzzy msgid "" "Note that the audited arguments may not match the names or positions " "required by the initializer. The audit event only occurs for direct " "instantiation of code objects, and is not raised for normal compilation." msgstr "" "Tenga en cuenta que los argumentos auditados pueden no coincidir con los " -"nombres o posiciones requeridos por el inicializador." +"nombres o posiciones requeridos por el inicializador. El evento auditor solo " +"ocurre para la instanciación directa de objetos de código y no se genera " +"para la compilación normal." #: ../Doc/library/types.rst:154 msgid "" @@ -389,6 +395,8 @@ msgid "" "The type of :ref:`parameterized generics ` such as " "``list[int]``." msgstr "" +"El tipo de :ref:`parameterized generics ` como " +"``list[int]``." #: ../Doc/library/types.rst:250 msgid "" @@ -396,10 +404,13 @@ msgid "" "``tuple`` or ``dict``. ``t_args`` should be a :class:`tuple` (possibly of " "length 1) of types which parameterize ``t_origin``::" msgstr "" +"``t_origin`` debería ser una clase genérica no parametrizada, como ``list``, " +"``tuple`` o ``dict``. ``t_args`` debe ser una :class:`tuple` (posiblemente " +"de longitud 1) de tipos que parametriza ``t_origin``::" #: ../Doc/library/types.rst:263 msgid "This type can now be subclassed." -msgstr "" +msgstr "Este tipo ahora puede tener subclases" #: ../Doc/library/types.rst:269 msgid "The type of traceback objects such as found in ``sys.exc_info()[2]``." @@ -483,6 +494,8 @@ msgid "" "Updated to support the new union (``|``) operator from :pep:`584`, which " "simply delegates to the underlying mapping." msgstr "" +"Actualizado para soportar el nuevo operador de unión (``|``) de :pep:`584`, " +"que simplemente delega al mapeo subyacente." #: ../Doc/library/types.rst:320 msgid "" @@ -542,9 +555,9 @@ msgid "Return a new view of the underlying mapping's values." msgstr "Retorna una nueva vista de los valores de la asignación subyacente." #: ../Doc/library/types.rst:362 -#, fuzzy msgid "Return a reverse iterator over the keys of the underlying mapping." -msgstr "Retorna una copia superficial de la asignación subyacente." +msgstr "" +"Retorna un iterador inverso sobre las claves de la asignación subyacente." #: ../Doc/library/types.rst:368 msgid "Additional Utility Classes and Functions" @@ -588,6 +601,8 @@ msgid "" "Attribute order in the repr changed from alphabetical to insertion (like " "``dict``)." msgstr "" +"El orden de los atributos en el *repr* cambió de alfabético a orden de " +"inserción (como ``dict``)." #: ../Doc/library/types.rst:406 msgid "Route attribute access on a class to __getattr__." @@ -607,15 +622,14 @@ msgstr "" "clase; esto se hace lanzando AttributeError." #: ../Doc/library/types.rst:413 -#, fuzzy msgid "" "This allows one to have properties active on an instance, and have virtual " "attributes on the class with the same name (see :class:`enum.Enum` for an " "example)." msgstr "" "Esto permite tener propiedades activas en una instancia y tener atributos " -"virtuales en la clase con el mismo nombre (consulte Enum para obtener un " -"ejemplo)." +"virtuales en la clase con el mismo nombre (véase :class:`enum.Enum` para " +"obtener un ejemplo)." #: ../Doc/library/types.rst:420 msgid "Coroutine Utility Functions" diff --git a/library/typing.po b/library/typing.po index a84fbdcb91..d4ded70950 100644 --- a/library/typing.po +++ b/library/typing.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-15 10:28+0200\n" +"PO-Revision-Date: 2021-08-15 20:17-0500\n" "Last-Translator: Héctor Canto \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/typing.rst:3 msgid ":mod:`typing` --- Support for type hints" @@ -78,7 +79,6 @@ msgid "Type aliases" msgstr "Alias de tipo" #: ../Doc/library/typing.rst:40 -#, fuzzy msgid "" "A type alias is defined by assigning the type to the alias. In this example, " "``Vector`` and ``list[float]`` will be treated as interchangeable synonyms::" @@ -372,7 +372,6 @@ msgstr "" "compatible con todos los tipos." #: ../Doc/library/typing.rst:330 -#, fuzzy msgid "" "This means that it is possible to perform any operation or method call on a " "value of type :data:`Any` and assign it to any variable::" @@ -392,7 +391,7 @@ msgstr "" "tipo :data:`Any` a un tipo más preciso. Por ejemplo, el Validador estático " "de tipos no reportó ningún error cuando se asignó ``a`` a ``s``, aún cuando " "se declaró ``s`` como de tipo :class:`str` y recibió un valor :class:`int` " -"en tiempo de ejecución." +"en tiempo de ejecución!" #: ../Doc/library/typing.rst:354 msgid "" @@ -459,7 +458,6 @@ msgstr "" # Frase ultracompleja, necesitar una revisión fuerte #: ../Doc/library/typing.rst:408 -#, fuzzy msgid "" "This requirement previously also applied to abstract base classes, such as :" "class:`~collections.abc.Iterable`. The problem with this approach is that a " @@ -468,11 +466,11 @@ msgid "" "code. For example, this conforms to :pep:`484`::" msgstr "" "Este requisito también se aplicaba anteriormente a clases base abstractas " -"(ABC), tales como :class:`Iterable`. El problema con esta estrategia es que " -"una clase debía de ser marcada explícitamente para proporcionar tal " -"funcionalidad, lo que resulta poco *pythónico* (idiomático) y poco ajustado " -"a lo que uno normalmente haría en un código Python tipado dinámicamente. Por " -"ejemplo, esto sí se ajusta al :pep:`484`::" +"(ABC), tales como :class:`~collections.abc.Iterable`. El problema con esta " +"estrategia es que una clase debía de ser marcada explícitamente para " +"proporcionar tal funcionalidad, lo que resulta poco *pythónico* (idiomático) " +"y poco ajustado a lo que uno normalmente haría en un código Python tipado " +"dinámicamente. Por ejemplo, esto sí se ajusta al :pep:`484`::" #: ../Doc/library/typing.rst:421 msgid "" @@ -500,12 +498,11 @@ msgstr "" #: ../Doc/library/typing.rst:442 msgid "Module contents" -msgstr "" +msgstr "Contenido del módulo" #: ../Doc/library/typing.rst:444 -#, fuzzy msgid "The module defines the following classes, functions and decorators." -msgstr "El módulo define las siguientes clases, funciones y decoradores:" +msgstr "El módulo define las siguientes clases, funciones y decoradores." #: ../Doc/library/typing.rst:448 msgid "" @@ -514,6 +511,11 @@ msgid "" "variables inside ``[]``. These types became redundant in Python 3.9 when the " "corresponding pre-existing classes were enhanced to support ``[]``." msgstr "" +"Este módulo define algunos tipos que son subclases de clases que ya existen " +"en la librería estándar, y que además extienden :class:`Generic` para " +"soportar variables de tipo dentro de ``[]``. Estos tipos se vuelven " +"redundantes en Python 3.9 ya que las clases correspondientes fueron " +"mejoradas para soportar ``[]``." #: ../Doc/library/typing.rst:454 msgid "" @@ -522,6 +524,10 @@ msgid "" "checkers will flag the deprecated types when the checked program targets " "Python 3.9 or newer." msgstr "" +"Los tipos redundantes están descontinuados con Python 3.9 pero el intérprete " +"no mostrará ninguna advertencia. Se espera que los verificadores de tipo " +"marquen estos tipos como obsoletos cuando el programa a verificar apunte a " +"Python 3.9 o superior." #: ../Doc/library/typing.rst:459 msgid "" @@ -529,19 +535,23 @@ msgid "" "first Python version released 5 years after the release of Python 3.9.0. See " "details in :pep:`585`—*Type Hinting Generics In Standard Collections*." msgstr "" +"Los tipos obsoletos serán removidos del módulo :class:`Generic` en la " +"primera versión de Python que sea lanzada 5 años después del lanzamiento de " +"Python 3.9.0. Véase los detalles en :pep:`585` -- *Sugerencias de tipo " +"genéricas en las Colecciones Estándar*." #: ../Doc/library/typing.rst:465 msgid "Special typing primitives" -msgstr "" +msgstr "Primitivos especiales de tipado" #: ../Doc/library/typing.rst:468 -#, fuzzy msgid "Special types" -msgstr "Tipo Optional." +msgstr "Tipos especiales" #: ../Doc/library/typing.rst:470 msgid "These can be used as types in annotations and do not support ``[]``." msgstr "" +"Estos pueden ser usados como tipos en anotaciones y no soportan ``[]``." #: ../Doc/library/typing.rst:474 msgid "Special type indicating an unconstrained type." @@ -565,13 +575,15 @@ msgstr "" #: ../Doc/library/typing.rst:493 msgid "Special forms" -msgstr "" +msgstr "Formas especiales" #: ../Doc/library/typing.rst:495 msgid "" "These can be used as types in annotations using ``[]``, each having a unique " "syntax." msgstr "" +"Estas se pueden usar como anotaciones de tipo usando ``[]``, cada cual tiene " +"una sintaxis única." #: ../Doc/library/typing.rst:499 msgid "" @@ -609,6 +621,8 @@ msgid "" ":class:`builtins.tuple ` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`builtins.tuple ` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:517 msgid "Union type; ``Union[X, Y]`` means either X or Y." @@ -724,6 +738,8 @@ msgid "" ":class:`collections.abc.Callable` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Callable` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:592 msgid "" @@ -780,6 +796,8 @@ msgid "" ":class:`builtins.type ` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`builtins.type ` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:638 msgid "" @@ -809,6 +827,11 @@ msgid "" "now raise a :exc:`TypeError` exception during equality comparisons if one of " "their parameters are not :term:`immutable`." msgstr "" +"``Literal`` ahora elimina los parámetros duplicados. La comparación de " +"igualdad entre objetos ``Literal`` ya no dependen del orden de los " +"parámetros. Los objetos ``Literal`` ahora lanzarán una excepción :exc:" +"`TypeError` durante la comparación de igualdad si uno de sus parámetros no " +"son :term:`immutable`." #: ../Doc/library/typing.rst:666 msgid "Special type construct to mark class variables." @@ -878,6 +901,21 @@ msgid "" "mypy or Pyre, which can safely ignore ``x``) together with runtime access to " "``x`` within a specific application." msgstr "" +"Un tipo introducido en :pep:`593` (``Anotaciones flexibles de función y " +"variable``), para decorar tipos existentes con metadatos específicos del " +"contexto (posiblemente múltiples partes del mismo, ya que ``Annotated`` es " +"variádico). En concreto, un tipo ``T`` puede ser anotado con el metadato " +"``x`` a través del *typehint* ``Annotated[T,x]``. Estos metadatos se pueden " +"utilizar para el análisis estático o en tiempo de ejecución. Si una librería " +"(o herramienta) encuentra un *typehint* ``Annotated[T,x]`` y no encuentra " +"una lógica especial para el metadato ``x``, este debería ignorarlo o " +"simplemente tratar el tipo como ``T``. A diferencia de la funcionalidad " +"``no_type_check``, que actualmente existe en el módulo ``typing``, que " +"deshabilita completamente la comprobación de anotaciones de tipo en una " +"función o clase, el tipo ``Annotated`` permite tanto la comprobación de " +"tipos estático de ``T`` (por ejemplo, *mypy* o *Pyre*, el cuál ignoraría " +"``x`` de forma segura) en conjunto con el acceso a ``x`` en tiempo de " +"ejecución dentro de una aplicación específica." #: ../Doc/library/typing.rst:725 msgid "" @@ -887,6 +925,11 @@ msgid "" "scan through the annotations to determine if they are of interest (e.g., " "using ``isinstance()``)." msgstr "" +"En última instancia, la responsabilidad de cómo interpretar las anotaciones " +"(si es que la hay) es de la herramienta o librería que encuentra el tipo " +"``Annotated``. Una herramienta o librería que encuentra un tipo " +"``Annotated`` puede escanear las anotaciones para determinar si son de " +"interés. (por ejemplo, usando ``isinstance()``)." #: ../Doc/library/typing.rst:731 msgid "" @@ -894,6 +937,9 @@ msgid "" "unknown annotation it should just ignore it and treat annotated type as the " "underlying type." msgstr "" +"Cuando una herramienta o librería no soporta anotaciones o encuentra una " +"anotación desconocida, simplemente debe ignorarla o tratar la anotación como " +"el tipo subyacente." #: ../Doc/library/typing.rst:735 msgid "" @@ -901,6 +947,8 @@ msgid "" "is allowed to have several annotations on one type and how to merge those " "annotations." msgstr "" +"Depende de la herramienta que consume las anotaciones decidir si el cliente " +"puede tener varias anotaciones en un tipo y cómo combinar esas anotaciones." #: ../Doc/library/typing.rst:739 msgid "" @@ -909,62 +957,78 @@ msgid "" "those annotations are in charge of dealing with potential duplicates. For " "example, if you are doing value range analysis you might allow this::" msgstr "" +"Dado que el tipo ``Annotated`` permite colocar varias anotaciones del mismo " +"(o diferente) tipo(s) en cualquier nodo, las herramientas o librerías que " +"consumen dichas anotaciones están a cargo de ocuparse de potenciales " +"duplicados. Por ejemplo, si se está realizando un análisis de rango, esto se " +"debería permitir::" #: ../Doc/library/typing.rst:748 msgid "" "Passing ``include_extras=True`` to :func:`get_type_hints` lets one access " "the extra annotations at runtime." msgstr "" +"Pasar ``include_extras=True`` a :func:`get_type_hints` permite acceder a las " +"anotaciones extra en tiempo de ejecución." #: ../Doc/library/typing.rst:751 msgid "The details of the syntax:" -msgstr "" +msgstr "Los detalles de la sintaxis:" #: ../Doc/library/typing.rst:753 msgid "The first argument to ``Annotated`` must be a valid type" -msgstr "" +msgstr "El primer argumento en ``Annotated`` debe ser un tipo válido" #: ../Doc/library/typing.rst:755 msgid "" "Multiple type annotations are supported (``Annotated`` supports variadic " "arguments)::" msgstr "" +"Se permiten varias anotaciones de tipo (``Annotated`` admite argumentos " +"variádicos)::" #: ../Doc/library/typing.rst:760 msgid "" "``Annotated`` must be called with at least two arguments " "( ``Annotated[int]`` is not valid)" msgstr "" +"``Annotated`` debe ser llamado con al menos dos argumentos " +"(``Annotated[int]`` no es válido)" #: ../Doc/library/typing.rst:763 msgid "" "The order of the annotations is preserved and matters for equality checks::" msgstr "" +"Se mantiene el orden de las anotaciones y se toma en cuenta para chequeos de " +"igualdad::" #: ../Doc/library/typing.rst:770 msgid "" "Nested ``Annotated`` types are flattened, with metadata ordered starting " "with the innermost annotation::" msgstr "" +"Los tipos ``Annotated`` anidados son aplanados con los metadatos ordenados " +"empezando por la anotación más interna::" #: ../Doc/library/typing.rst:777 msgid "Duplicated annotations are not removed::" -msgstr "" +msgstr "Anotaciones duplicadas no son removidas::" #: ../Doc/library/typing.rst:783 msgid "``Annotated`` can be used with nested and generic aliases::" -msgstr "" +msgstr "``Anotated`` puede ser usado con alias anidados y genéricos::" #: ../Doc/library/typing.rst:794 -#, fuzzy msgid "Building generic types" -msgstr "Tipos genéricos definidos por el usuario" +msgstr "Tipos de construcción de genéricos" #: ../Doc/library/typing.rst:796 msgid "" "These are not used in annotations. They are building blocks for creating " "generic types." msgstr "" +"Estos no son utilizados en anotaciones. Son utilizados como bloques para " +"crear tipos genéricos." #: ../Doc/library/typing.rst:800 msgid "Abstract base class for generic types." @@ -992,9 +1056,7 @@ msgstr "Variable de tipo." msgid "Usage::" msgstr "Uso::" -# parece que falta un link en Generic #: ../Doc/library/typing.rst:831 -#, fuzzy msgid "" "Type variables exist primarily for the benefit of static type checkers. " "They serve as the parameters for generic types as well as for generic " @@ -1003,9 +1065,9 @@ msgid "" msgstr "" "Las variables de tipo son principalmente para ayudar a los validadores " "estáticos de tipos. Sirven tanto como de parámetros para tipos genéricos " -"como para definición de funciones genéricas. Véase la clase *Generic* para " -"más información sobre tipos genéricos. Las funciones genéricas funcionan " -"como sigue::" +"como para definición de funciones genéricas. Véase :class:`Generic` para más " +"información sobre tipos genéricos. Las funciones genéricas funcionan de la " +"siguiente manera::" #: ../Doc/library/typing.rst:844 msgid "" @@ -1099,7 +1161,6 @@ msgstr "" "convierte en un *runtime protocol*)." #: ../Doc/library/typing.rst:912 -#, fuzzy msgid "" "Such a protocol can be used with :func:`isinstance` and :func:`issubclass`. " "This raises :exc:`TypeError` when applied to a non-protocol class. This " @@ -1109,9 +1170,9 @@ msgid "" msgstr "" "Tal protocolo se puede usar con :func:`isinstance` y :func:`issubclass`. " "Esto lanzará una excepción :exc:`TypeError` cuando se aplique a una clase " -"que no es un *protocolo*. Esto permite una comprobación estructural simple, " -"muy semejante a \"one trick ponies\" en :mod:`collections.abc` como es :" -"class:`Iterable`. Por ejemplo::" +"que no es un protocolo. Esto permite una comprobación estructural simple, " +"muy semejante a \"one trick ponies\" en :mod:`collections.abc` con :class:" +"`Iterable`. Por ejemplo::" #: ../Doc/library/typing.rst:925 msgid "" @@ -1122,16 +1183,24 @@ msgid "" "__float__`` method exists only to raise a :class:`TypeError` with a more " "informative message." msgstr "" +":func:`runtime_checkable` comprobará únicamente la presencia de los métodos " +"requeridos, no sus firmas de tipo! Por ejemplo, :class:`builtins.complex " +"` implementa :func:`__float__`, por lo cual pasaría la " +"comprobación :func:`issubclass` contra :class:`SupportsFloat`. Sin embargo, " +"el método ``complex.__float__`` existe únicamente para lanzar un :class:" +"`TypeError` con un mensaje más informativo." #: ../Doc/library/typing.rst:934 msgid "Other special directives" -msgstr "" +msgstr "Otras directivas especiales" #: ../Doc/library/typing.rst:936 msgid "" "These are not used in annotations. They are building blocks for declaring " "types." msgstr "" +"Estos no son utilizados en anotaciones. Son utilizados como bloques para " +"crear tipos genéricos." #: ../Doc/library/typing.rst:940 msgid "Typed version of :func:`collections.namedtuple`." @@ -1196,18 +1265,16 @@ msgstr "" "diccionarios en vez de instancias de ``OrderedDict``." #: ../Doc/library/typing.rst:993 -#, fuzzy msgid "" "Removed the ``_field_types`` attribute in favor of the more standard " "``__annotations__`` attribute which has the same information." msgstr "" -"Convierte en obsoleto el atributo ``_field_types`` en favor del atributo más " -"estándar ``__annotations__``, que tiene la misma información." +"Se remueve el atributo ``_field_types`` en favor del atributo más estándar " +"``__annotations__`` que tiene la misma información." # Aquí se ha preferido distinguible antes que distinto ya que UserId no es un # tipo disting a int, es un int, pero es difirenciable por el validador. #: ../Doc/library/typing.rst:999 -#, fuzzy msgid "" "A helper function to indicate a distinct type to a typechecker, see :ref:" "`distinct`. At runtime it returns a function that returns its argument. " @@ -1222,10 +1289,11 @@ msgid "" "Special construct to add type hints to a dictionary. At runtime it is a " "plain :class:`dict`." msgstr "" +"Es una construcción especial para añadir indicadores de tipo a un " +"diccionario. En tiempo de ejecución es un :class:`dict` simple." # sinonimo para imposicion/imponer #: ../Doc/library/typing.rst:1013 -#, fuzzy msgid "" "``TypedDict`` declares a dictionary type that expects all of its instances " "to have a certain set of keys, where each key is associated with a value of " @@ -1235,7 +1303,7 @@ msgstr "" "``TypedDict`` crea un tipo de diccionario que espera que todas sus " "instancias tenga un cierto conjunto de claves, donde cada clave está " "asociada con un valor de un tipo determinado. Esta exigencia no se comprueba " -"en tiempo de ejecución y solo es impuesta por validadores de tipo. Uso::" +"en tiempo de ejecución y solo es aplicada por validadores de tipo. Uso::" #: ../Doc/library/typing.rst:1029 msgid "" @@ -1280,11 +1348,11 @@ msgstr "" #: ../Doc/library/typing.rst:1055 msgid "Generic concrete collections" -msgstr "" +msgstr "Colecciones genéricas concretas" #: ../Doc/library/typing.rst:1058 msgid "Corresponding to built-in types" -msgstr "" +msgstr "Correspondientes a tipos integrados" #: ../Doc/library/typing.rst:1062 msgid "" @@ -1305,6 +1373,8 @@ msgid "" ":class:`builtins.dict ` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`builtins.dict ` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:1077 msgid "" @@ -1325,6 +1395,8 @@ msgid "" ":class:`builtins.list ` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`builtins.list ` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:1098 msgid "" @@ -1341,6 +1413,8 @@ msgid "" ":class:`builtins.set ` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`builtins.set ` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:1108 msgid "A generic version of :class:`builtins.frozenset `." @@ -1351,14 +1425,16 @@ msgid "" ":class:`builtins.frozenset ` now supports ``[]``. See :pep:`585` " "and :ref:`types-genericalias`." msgstr "" +":class:`builtins.frozenset ` ahora soporta ``[]``. Véase :pep:" +"`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1114 msgid ":data:`Tuple` is a special form." -msgstr "" +msgstr ":data:`Tuple` es una forma especial." #: ../Doc/library/typing.rst:1117 msgid "Corresponding to types in :mod:`collections`" -msgstr "" +msgstr "Correspondiente a tipos en :mod:`collections`" #: ../Doc/library/typing.rst:1121 msgid "A generic version of :class:`collections.defaultdict`." @@ -1369,6 +1445,8 @@ msgid "" ":class:`collections.defaultdict` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.defaultdict` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1131 msgid "A generic version of :class:`collections.OrderedDict`." @@ -1379,6 +1457,8 @@ msgid "" ":class:`collections.OrderedDict` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.OrderedDict` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1141 msgid "A generic version of :class:`collections.ChainMap`." @@ -1389,6 +1469,8 @@ msgid "" ":class:`collections.ChainMap` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`collections.ChainMap` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:1152 msgid "A generic version of :class:`collections.Counter`." @@ -1399,6 +1481,8 @@ msgid "" ":class:`collections.Counter` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`collections.Counter` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:1163 msgid "A generic version of :class:`collections.deque`." @@ -1409,13 +1493,14 @@ msgid "" ":class:`collections.deque` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`collections.deque` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:1173 msgid "Other concrete types" -msgstr "" +msgstr "Otros tipos concretos" #: ../Doc/library/typing.rst:1179 -#, fuzzy msgid "" "Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " "``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " @@ -1423,10 +1508,10 @@ msgid "" msgstr "" "El tipo genérico ``IO[AnyStr]`` y sus subclases ``TextIO(IO[str])`` y " "``BinaryIO(IO[bytes])`` representan tipos de flujo de entrada/salida (*I/O " -"streams*) como los usados por la función :func:`open`." +"streams*) como los usados por la función :func:`open`. Estos tipos también " +"están en el *namespace* ``typing.io``." #: ../Doc/library/typing.rst:1187 -#, fuzzy msgid "" "These type aliases correspond to the return types from :func:`re.compile` " "and :func:`re.match`. These types (and the corresponding functions) are " @@ -1437,13 +1522,16 @@ msgstr "" "Estos aliases de tipo se corresponden con los tipos de retorno de :func:`re." "compile` y :func:`re.match`. Estos tipos (y sus correspondientes funciones) " "son genéricos en ``AnyStr`` y se puede especificar escribiendo " -"``Pattern[str]``, ``Pattern[bytes]``, ``Match[str]``, o ``Match[bytes]``." +"``Pattern[str]``, ``Pattern[bytes]``, ``Match[str]``, o ``Match[bytes]``. " +"Estos tipos también están en el *namespace* ``typing.re``." #: ../Doc/library/typing.rst:1194 msgid "" "Classes ``Pattern`` and ``Match`` from :mod:`re` now support ``[]``. See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" +"Las clases ``Pattern`` y ``Match`` de :mod:`re` ahora soportan ``[]``. " +"Véase :pep:`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1200 msgid "" @@ -1464,13 +1552,12 @@ msgstr "" "Unicode de manera que sea compatible con Python 2 y Python 3::" #: ../Doc/library/typing.rst:1213 -#, fuzzy msgid "Abstract Base Classes" -msgstr "Clase base abstracta para tipos genéricos." +msgstr "Clase base abstracta para tipos genéricos" #: ../Doc/library/typing.rst:1216 msgid "Corresponding to collections in :mod:`collections.abc`" -msgstr "" +msgstr "Correspondientes a las colecciones en :mod:`collections.abc`" #: ../Doc/library/typing.rst:1220 msgid "A generic version of :class:`collections.abc.Set`." @@ -1481,19 +1568,20 @@ msgid "" ":class:`collections.abc.Set` now supports ``[]``. See :pep:`585` and :ref:" "`types-genericalias`." msgstr "" +":class:`collections.abc.Set` ahora soporta ``[]``. Véase :pep:`585` y :ref:" +"`types-genericalias`." #: ../Doc/library/typing.rst:1228 msgid "A generic version of :class:`collections.abc.ByteString`." msgstr "Una versión genérica de :class:`collections.abc.ByteString`." #: ../Doc/library/typing.rst:1230 -#, fuzzy msgid "" "This type represents the types :class:`bytes`, :class:`bytearray`, and :" "class:`memoryview` of byte sequences." msgstr "" "Este tipo representa a los tipos :class:`bytes`, :class:`bytearray`, y :" -"class:`memoryview`." +"class:`memoryview` de secuencias de bytes." #: ../Doc/library/typing.rst:1233 msgid "" @@ -1508,6 +1596,8 @@ msgid "" ":class:`collections.abc.ByteString` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.ByteString` ahora soporta ``[]``. Véase :pep:`585` " +"y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1242 msgid "A generic version of :class:`collections.abc.Collection`" @@ -1518,6 +1608,8 @@ msgid "" ":class:`collections.abc.Collection` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Collection` ahora soporta ``[]``. Véase :pep:`585` " +"y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1252 msgid "A generic version of :class:`collections.abc.Container`." @@ -1528,6 +1620,8 @@ msgid "" ":class:`collections.abc.Container` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Container` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1260 msgid "A generic version of :class:`collections.abc.ItemsView`." @@ -1538,6 +1632,8 @@ msgid "" ":class:`collections.abc.ItemsView` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.ItemsView` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1268 msgid "A generic version of :class:`collections.abc.KeysView`." @@ -1548,6 +1644,8 @@ msgid "" ":class:`collections.abc.KeysView` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.KeysView` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1276 msgid "" @@ -1562,6 +1660,8 @@ msgid "" ":class:`collections.abc.Mapping` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Mapping` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1288 msgid "A generic version of :class:`collections.abc.MappingView`." @@ -1572,6 +1672,8 @@ msgid "" ":class:`collections.abc.MappingView` now supports ``[]``. See :pep:`585` " "and :ref:`types-genericalias`." msgstr "" +":class:`collections.abc.MappingView` ahora soporta ``[]``. Véase :pep:`585` " +"y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1296 msgid "A generic version of :class:`collections.abc.MutableMapping`." @@ -1582,6 +1684,8 @@ msgid "" ":class:`collections.abc.MutableMapping` now supports ``[]``. See :pep:`585` " "and :ref:`types-genericalias`." msgstr "" +":class:`collections.abc.MutableMapping` ahora soporta ``[]``. Véase :pep:" +"`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1304 msgid "A generic version of :class:`collections.abc.MutableSequence`." @@ -1592,6 +1696,8 @@ msgid "" ":class:`collections.abc.MutableSequence` now supports ``[]``. See :pep:`585` " "and :ref:`types-genericalias`." msgstr "" +":class:`collections.abc.MutableSequence` ahora soporta ``[]``. Véase :pep:" +"`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1312 msgid "A generic version of :class:`collections.abc.MutableSet`." @@ -1602,6 +1708,8 @@ msgid "" ":class:`collections.abc.MutableSet` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.MutableSet` ahora soporta ``[]``. Véase :pep:`585` " +"y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1320 msgid "A generic version of :class:`collections.abc.Sequence`." @@ -1612,6 +1720,8 @@ msgid "" ":class:`collections.abc.Sequence` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Sequence` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1328 msgid "A generic version of :class:`collections.abc.ValuesView`." @@ -1622,10 +1732,12 @@ msgid "" ":class:`collections.abc.ValuesView` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.ValuesView` ahora soporta ``[]``. Véase :pep:`585` " +"y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1335 msgid "Corresponding to other types in :mod:`collections.abc`" -msgstr "" +msgstr "Correspondiente a otros tipos en :mod:`collections.abc`" #: ../Doc/library/typing.rst:1339 msgid "A generic version of :class:`collections.abc.Iterable`." @@ -1636,6 +1748,8 @@ msgid "" ":class:`collections.abc.Iterable` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Iterable` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1347 msgid "A generic version of :class:`collections.abc.Iterator`." @@ -1646,6 +1760,8 @@ msgid "" ":class:`collections.abc.Iterator` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Iterator` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1355 msgid "" @@ -1686,6 +1802,8 @@ msgid "" ":class:`collections.abc.Generator` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Generator` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1390 msgid "An alias to :class:`collections.abc.Hashable`" @@ -1700,6 +1818,8 @@ msgid "" ":class:`collections.abc.Reversible` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Reversible` ahora soporta ``[]``. Véase :pep:`585` " +"y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1402 msgid "An alias to :class:`collections.abc.Sized`" @@ -1707,7 +1827,7 @@ msgstr "Un alias de :class:`collections.abc.Sized`" #: ../Doc/library/typing.rst:1405 msgid "Asynchronous programming" -msgstr "" +msgstr "Programación asíncrona" #: ../Doc/library/typing.rst:1409 msgid "" @@ -1724,6 +1844,8 @@ msgid "" ":class:`collections.abc.Coroutine` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Coroutine` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1428 msgid "" @@ -1764,6 +1886,8 @@ msgid "" ":class:`collections.abc.AsyncGenerator` now supports ``[]``. See :pep:`585` " "and :ref:`types-genericalias`." msgstr "" +":class:`collections.abc.AsycGenerator` ahora soporta ``[]``. Véase :pep:" +"`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1465 msgid "A generic version of :class:`collections.abc.AsyncIterable`." @@ -1774,6 +1898,8 @@ msgid "" ":class:`collections.abc.AsyncIterable` now supports ``[]``. See :pep:`585` " "and :ref:`types-genericalias`." msgstr "" +":class:`collections.abc.AsyncIterable` ahora soporta ``[]``. Véase :pep:" +"`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1475 msgid "A generic version of :class:`collections.abc.AsyncIterator`." @@ -1784,6 +1910,8 @@ msgid "" ":class:`collections.abc.AsyncIterator` now supports ``[]``. See :pep:`585` " "and :ref:`types-genericalias`." msgstr "" +":class:`collections.abc.AsyncIterator` ahora soporta ``[]``. Véase :pep:" +"`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1485 msgid "A generic version of :class:`collections.abc.Awaitable`." @@ -1794,10 +1922,12 @@ msgid "" ":class:`collections.abc.Awaitable` now supports ``[]``. See :pep:`585` and :" "ref:`types-genericalias`." msgstr "" +":class:`collections.abc.Awaitable` ahora soporta ``[]``. Véase :pep:`585` y :" +"ref:`types-genericalias`." #: ../Doc/library/typing.rst:1495 msgid "Context manager types" -msgstr "" +msgstr "Tipos del administrador de contextos" #: ../Doc/library/typing.rst:1499 msgid "A generic version of :class:`contextlib.AbstractContextManager`." @@ -1808,6 +1938,8 @@ msgid "" ":class:`contextlib.AbstractContextManager` now supports ``[]``. See :pep:" "`585` and :ref:`types-genericalias`." msgstr "" +":class:`contextlib.AbstractContextManager` ahora soporta ``[]``. Véase :pep:" +"`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1510 msgid "A generic version of :class:`contextlib.AbstractAsyncContextManager`." @@ -1819,14 +1951,16 @@ msgid "" ":class:`contextlib.AbstractAsyncContextManager` now supports ``[]``. See :" "pep:`585` and :ref:`types-genericalias`." msgstr "" +":class:`contextlib.AbstractAsyncContextManager` ahora soporta ``[]``. Véase :" +"pep:`585` y :ref:`types-genericalias`." #: ../Doc/library/typing.rst:1520 msgid "Protocols" -msgstr "" +msgstr "Protocolos" #: ../Doc/library/typing.rst:1522 msgid "These protocols are decorated with :func:`runtime_checkable`." -msgstr "" +msgstr "Estos protocolos se decoran con :func:`runtime_checkable`." #: ../Doc/library/typing.rst:1526 msgid "" @@ -1865,9 +1999,8 @@ msgstr "" "retornado." #: ../Doc/library/typing.rst:1557 -#, fuzzy msgid "Functions and decorators" -msgstr "Clases, funciones y decoradores" +msgstr "Funciones y decoradores" #: ../Doc/library/typing.rst:1561 msgid "Cast a value to a type." @@ -1989,7 +2122,7 @@ msgstr "" #: ../Doc/library/typing.rst:1657 msgid "Introspection helpers" -msgstr "" +msgstr "Ayudas de introspección" #: ../Doc/library/typing.rst:1661 msgid "" @@ -2022,10 +2155,13 @@ msgid "" "unless ``include_extras`` is set to ``True`` (see :class:`Annotated` for " "more information). For example::" msgstr "" +"La función reemplaza todos los ``Annotated[T, ...]`` con ``T`` de manera " +"recursiva, a menos que ``include_extras`` se defina como ``True`` ( véase :" +"class:`Annotated` para más información). Por ejemplo::" #: ../Doc/library/typing.rst:1685 msgid "Added ``include_extras`` parameter as part of :pep:`593`." -msgstr "" +msgstr "Se agregan los parámetros ``include_extras`` como parte de :pep:`593`." # special forms se refiere a tipado exclusivo de typing (no el nativo como str # o int): Union, Optional ... @@ -2036,7 +2172,6 @@ msgstr "" "de tipado." #: ../Doc/library/typing.rst:1693 -#, fuzzy msgid "" "For a typing object of the form ``X[Y, Z, ...]`` these functions return " "``X`` and ``(Y, Z, ...)``. If ``X`` is a generic alias for a builtin or :mod:" @@ -2048,11 +2183,14 @@ msgid "" msgstr "" "Para un objeto de tipado de la forma ``X[Y,Z, ...]``, estas funciones " "retornan ``X`` y ``(Y, Z, ...)``. Si ``X`` es un alias genérico para una " -"clase *built-in* o una clase de :mod:`collections`, se normaliza a su clase " -"original. Los objetos no soportados retornan ``None`` y ``()``. Ejemplos::" +"clase integrada o una clase de :mod:`collections`, se normaliza a su clase " +"original. Si ``X`` es una :class:`Union` o :class:`Literal` contenidos en " +"otro tipo genérico, el orden de ``(Y, Z, ...)`` podría ser distinto al orden " +"de los argumentos originales ``[Y, Z, ...]`` debido al cacheo de tipos. Los " +"objetos no soportados retornan ``None`` y ``()`` correspondientemente. " +"Ejemplos::" #: ../Doc/library/typing.rst:1712 -#, fuzzy msgid "" "A class used for internal typing representation of string forward " "references. For example, ``list[\"SomeClass\"]`` is implicitly transformed " @@ -2067,7 +2205,7 @@ msgstr "" #: ../Doc/library/typing.rst:1720 msgid "Constant" -msgstr "" +msgstr "Constantes" #: ../Doc/library/typing.rst:1724 msgid "" @@ -2079,7 +2217,6 @@ msgstr "" "Uso::" #: ../Doc/library/typing.rst:1733 -#, fuzzy msgid "" "The first type annotation must be enclosed in quotes, making it a \"forward " "reference\", to hide the ``expensive_mod`` reference from the interpreter " @@ -2099,6 +2236,11 @@ msgid "" "stored as strings in ``__annotations__``, This makes it unnecessary to use " "quotes around the annotation. (see :pep:`563`)." msgstr "" +"Si ``from __future__ import annotations`` es usado en Python 3.7 o " +"posterior, las anotaciones no son evaluadas en tiempo de definición de " +"funciones. En cambio, son guardadas como cadenas de caracteres en " +"``__annotations__``, esto hace innecesario usar comillas alrededor de la " +"anotación. (véase :pep:`563`)." #~ msgid "" #~ "A simple typed namespace. At runtime it is equivalent to a plain :class:" diff --git a/library/unicodedata.po b/library/unicodedata.po index b9bcc78bc8..b21659fe9b 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -11,22 +11,22 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-10 10:14+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-04 22:02+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/unicodedata.rst:2 msgid ":mod:`unicodedata` --- Unicode Database" msgstr ":mod:`unicodedata` --- Base de datos Unicode" #: ../Doc/library/unicodedata.rst:18 -#, fuzzy msgid "" "This module provides access to the Unicode Character Database (UCD) which " "defines character properties for all Unicode characters. The data contained " @@ -35,8 +35,8 @@ msgid "" msgstr "" "Este módulo proporciona acceso a la base de datos de caracteres Unicode " "(UCD), que define las propiedades de todos los caracteres Unicode. Los datos " -"contenidos en esta base de datos se compilan a partir de `UCD versión 12.1.0 " -"`_." +"contenidos en esta base de datos se compilan a partir de la `UCD versión " +"13.0.0 `_." #: ../Doc/library/unicodedata.rst:23 msgid "" @@ -264,11 +264,9 @@ msgid "Footnotes" msgstr "Notas al pie" #: ../Doc/library/unicodedata.rst:178 -#, fuzzy msgid "https://www.unicode.org/Public/13.0.0/ucd/NameAliases.txt" -msgstr "http://www.unicode.org/Public/12.1.0/ucd/NameAliases.txt" +msgstr "https://www.unicode.org/Public/13.0.0/ucd/NameAliases.txt" #: ../Doc/library/unicodedata.rst:180 -#, fuzzy msgid "https://www.unicode.org/Public/13.0.0/ucd/NamedSequences.txt" -msgstr "http://www.unicode.org/Public/12.1.0/ucd/NamedSequences.txt" +msgstr "https://www.unicode.org/Public/13.0.0/ucd/NamedSequences.txt" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 5c603bf78a..d39817b2bf 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -6,23 +6,26 @@ # 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-04 17:03+0200\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: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" +"X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/library/unittest.mock-examples.rst:2 msgid ":mod:`unittest.mock` --- getting started" -msgstr "" +msgstr ":mod:`unittest.mock` --- primeros pasos" #: ../Doc/library/unittest.mock-examples.rst:27 msgid "Using Mock" @@ -30,31 +33,36 @@ msgstr "Usando Mock" #: ../Doc/library/unittest.mock-examples.rst:30 msgid "Mock Patching Methods" -msgstr "" +msgstr "Métodos de parcheo Mock" #: ../Doc/library/unittest.mock-examples.rst:32 msgid "Common uses for :class:`Mock` objects include:" -msgstr "" +msgstr "Usos comunes para objetos :class:`Mock` incluye:" #: ../Doc/library/unittest.mock-examples.rst:34 msgid "Patching methods" -msgstr "" +msgstr "Métodos de parcheo" #: ../Doc/library/unittest.mock-examples.rst:35 msgid "Recording method calls on objects" -msgstr "" +msgstr "Métodos de grabación de llamadas sobre objetos" #: ../Doc/library/unittest.mock-examples.rst:37 msgid "" "You might want to replace a method on an object to check that it is called " "with the correct arguments by another part of the system:" msgstr "" +"Es posible que desee reemplazar un método en un objeto para comprobar que se " +"llama con los argumentos correctos por otra parte del sistema:" #: ../Doc/library/unittest.mock-examples.rst:45 msgid "" "Once our mock has been used (``real.method`` in this example) it has methods " "and attributes that allow you to make assertions about how it has been used." msgstr "" +"Una vez que se ha utilizado nuestro mock (``real.method`` en este ejemplo) " +"tiene métodos y atributos que le permiten hacer afirmaciones sobre cómo se " +"ha utilizado." #: ../Doc/library/unittest.mock-examples.rst:50 msgid "" @@ -62,6 +70,9 @@ msgid "" "are interchangeable. As the ``MagicMock`` is the more capable class it makes " "a sensible one to use by default." msgstr "" +"En la mayoría de estos ejemplos, las clases :class:`Mock` y :class:" +"`MagicMock` son intercambiables. Como el ``MagicMock`` es la clase más " +"capaz, hace que sea sensato usarlo por defecto." #: ../Doc/library/unittest.mock-examples.rst:54 msgid "" @@ -70,16 +81,22 @@ msgid "" "or :meth:`~Mock.assert_called_once_with` method to check that it was called " "with the correct arguments." msgstr "" +"Una vez que el mock ha sido llamado su atributo :attr:`~Mock.called` se " +"establece en ``True``. Lo que es más importante, podemos usar el método :" +"meth:`~Mock.assert_called_with` o :meth:`~Mock.assert_called_once_with` para " +"comprobar que se llamó con los argumentos correctos." #: ../Doc/library/unittest.mock-examples.rst:59 msgid "" "This example tests that calling ``ProductionClass().method`` results in a " "call to the ``something`` method:" msgstr "" +"En este ejemplo se prueba que llamar a ``ProductionClass().method`` da como " +"resultado una llamada al método ``something``:" #: ../Doc/library/unittest.mock-examples.rst:76 msgid "Mock for Method Calls on an Object" -msgstr "" +msgstr "Mock de llamadas a métodos sobre un objeto" #: ../Doc/library/unittest.mock-examples.rst:78 msgid "" @@ -88,18 +105,26 @@ msgid "" "method (or some part of the system under test) and then check that it is " "used in the correct way." msgstr "" +"En el último ejemplo, parcheamos un método directamente en un objeto para " +"comprobar que se llamó correctamente. Otro caso de uso común es pasar un " +"objeto a un método (o a alguna parte del sistema sometido a prueba) y, a " +"continuación, comprobar que se utiliza de la manera correcta." #: ../Doc/library/unittest.mock-examples.rst:83 msgid "" "The simple ``ProductionClass`` below has a ``closer`` method. If it is " "called with an object then it calls ``close`` on it." msgstr "" +"La sencilla ``ProductionClass`` a continuación tiene un método ``closer``. " +"Si se llama con un objeto, entonces llama a ``close`` en él." #: ../Doc/library/unittest.mock-examples.rst:91 msgid "" "So to test it we need to pass in an object with a ``close`` method and check " "that it was called correctly." msgstr "" +"Así que para probarlo necesitamos pasar un objeto con un método ``close`` y " +"comprobar que se llamó correctamente." #: ../Doc/library/unittest.mock-examples.rst:99 msgid "" @@ -108,10 +133,14 @@ msgid "" "accessing it in the test will create it, but :meth:`~Mock." "assert_called_with` will raise a failure exception." msgstr "" +"No tenemos que hacer ningún trabajo para proporcionar el método de 'close' " +"en nuestro mock. El acceso al cierre lo crea. Por lo tanto, si 'close' aún " +"no se ha llamado, entonces acceder a él en la prueba lo creará, pero :meth:" +"`~Mock.assert_called_with` generará una excepción de error." #: ../Doc/library/unittest.mock-examples.rst:106 msgid "Mocking Classes" -msgstr "" +msgstr "Clases Mocking" #: ../Doc/library/unittest.mock-examples.rst:108 msgid "" @@ -120,6 +149,11 @@ msgid "" "Instances are created by *calling the class*. This means you access the " "\"mock instance\" by looking at the return value of the mocked class." msgstr "" +"Un caso de uso común es simular las clases que crea la instancia del código " +"que se está probando. Cuando se aplica un parche a una clase, esa clase se " +"reemplaza por un mock. Las instancias se crean *llamando a la clase*. Esto " +"significa que tiene acceso a la \"instancia mock\" examinando el valor " +"devuelto de la clase simulada." #: ../Doc/library/unittest.mock-examples.rst:113 msgid "" @@ -129,10 +163,15 @@ msgid "" "mock, so it is configured by modifying the mock :attr:`~Mock." "return_value`. ::" msgstr "" +"En el ejemplo siguiente tenemos una función ``some_function`` que crea una " +"instancia de ``Foo`` y llama a un método en él. La llamada a :func:`patch` " +"reemplaza la clase ``Foo`` con un mock. La instancia ``Foo`` es el resultado " +"de llamar al mock, por lo que se configura modificando el mock :attr:`-Mock." +"return_value`. ::" #: ../Doc/library/unittest.mock-examples.rst:130 msgid "Naming your mocks" -msgstr "" +msgstr "Nombrando tus mocks" #: ../Doc/library/unittest.mock-examples.rst:132 msgid "" @@ -140,10 +179,14 @@ msgid "" "the mock and can be helpful when the mock appears in test failure messages. " "The name is also propagated to attributes or methods of the mock:" msgstr "" +"Puede ser útil poner un nombre a tus mocks. El nombre se muestra en la " +"reproducción del mock y puede ser útil cuando el mock aparece en los " +"mensajes de error de la prueba. El nombre también se propaga a los atributos " +"o métodos del mock:" #: ../Doc/library/unittest.mock-examples.rst:144 msgid "Tracking all Calls" -msgstr "" +msgstr "Siguiendo todas las llamadas" #: ../Doc/library/unittest.mock-examples.rst:146 msgid "" @@ -151,6 +194,9 @@ msgid "" "`~Mock.mock_calls` attribute records all calls to child attributes of the " "mock - and also to their children." msgstr "" +"A menudo, desea realizar un seguimiento de más de una llamada a un método. " +"El atributo :attr:`~ Mock.mock_calls` registra todas las llamadas a los " +"atributos secundarios del mock, y también a sus hijos." #: ../Doc/library/unittest.mock-examples.rst:158 msgid "" @@ -159,12 +205,18 @@ msgid "" "well as asserting that the calls you expected have been made, you are also " "checking that they were made in the right order and with no additional calls:" msgstr "" +"Si realiza una afirmación sobre ``mock_calls`` y se ha llamado a cualquier " +"método inesperado, la aserción fallará. Esto es útil porque además de " +"afirmar que se han realizado las llamadas que esperaba, también está " +"comprobando que se hicieron en el orden correcto y sin llamadas adicionales:" #: ../Doc/library/unittest.mock-examples.rst:163 msgid "" "You use the :data:`call` object to construct lists for comparing with " "``mock_calls``:" msgstr "" +"Utiliza el objeto :data:`call` para construir listas y compararlas con " +"``mock_calls``:" #: ../Doc/library/unittest.mock-examples.rst:170 msgid "" @@ -172,26 +224,32 @@ msgid "" "it is not possible to track nested calls where the parameters used to create " "ancestors are important:" msgstr "" +"Sin embargo, los parámetros de las llamadas que devuelven mocks no se " +"registran, lo que significa que no es posible realizar un seguimiento de las " +"llamadas anidadas donde los parámetros utilizados para crear ancestros son " +"importantes:" #: ../Doc/library/unittest.mock-examples.rst:181 msgid "Setting Return Values and Attributes" -msgstr "" +msgstr "Establecer valores de retorno y atributos" #: ../Doc/library/unittest.mock-examples.rst:183 msgid "Setting the return values on a mock object is trivially easy:" msgstr "" +"Establecer los valores de retorno en un objeto mock es sumamente fácil:" #: ../Doc/library/unittest.mock-examples.rst:190 msgid "Of course you can do the same for methods on the mock:" -msgstr "" +msgstr "Por supuesto, puede hacer lo mismo con los métodos en el mock:" #: ../Doc/library/unittest.mock-examples.rst:197 msgid "The return value can also be set in the constructor:" -msgstr "" +msgstr "El valor devuelto también se puede establecer en el constructor:" #: ../Doc/library/unittest.mock-examples.rst:203 msgid "If you need an attribute setting on your mock, just do it:" msgstr "" +"Si necesitas una configuración de atributo en su mock, simplemente haga:" #: ../Doc/library/unittest.mock-examples.rst:210 msgid "" @@ -199,22 +257,30 @@ msgid "" "``mock.connection.cursor().execute(\"SELECT 1\")``. If we wanted this call " "to return a list, then we have to configure the result of the nested call." msgstr "" +"A veces desea simular una situación más compleja, como por ejemplo ``mock." +"connection.cursor().execute(\"SELECT 1\")``. Si esperamos que esta llamada " +"devuelva una lista, entonces tenemos que configurar el resultado de la " +"llamada anidada." #: ../Doc/library/unittest.mock-examples.rst:214 msgid "" "We can use :data:`call` to construct the set of calls in a \"chained call\" " "like this for easy assertion afterwards:" msgstr "" +"Podemos usar :data:`call` para construir el conjunto de llamadas en una " +"\"llamada encadenada\" como esta para una fácil afirmación después:" #: ../Doc/library/unittest.mock-examples.rst:228 msgid "" "It is the call to ``.call_list()`` that turns our call object into a list of " "calls representing the chained calls." msgstr "" +"Es la llamada a ``.call_list()`` la que convierte nuestro objeto de llamada " +"en una lista de llamadas que representan las llamadas encadenadas." #: ../Doc/library/unittest.mock-examples.rst:233 msgid "Raising exceptions with mocks" -msgstr "" +msgstr "Generar excepciones con mocks" #: ../Doc/library/unittest.mock-examples.rst:235 msgid "" @@ -222,10 +288,13 @@ msgid "" "exception class or instance then the exception will be raised when the mock " "is called." msgstr "" +"Un atributo útil es :attr:`~Mock.side_effect`. Si establece esto en una " +"clase o instancia de excepción, se producirá la excepción cuando se llame al " +"mock." #: ../Doc/library/unittest.mock-examples.rst:247 msgid "Side effect functions and iterables" -msgstr "" +msgstr "Funciones de efectos secundarios e iterables" #: ../Doc/library/unittest.mock-examples.rst:249 msgid "" @@ -235,6 +304,11 @@ msgid "" "set ``side_effect`` to an iterable every call to the mock returns the next " "value from the iterable:" msgstr "" +"``side_effect`` también se puede asignar en una función o en una iterable. " +"El caso de uso para ``side_effect`` como un iterable es donde se va a llamar " +"a su mock varias veces, y desea que cada llamada devuelva un valor " +"diferente. Cuando se asigna ``side_effect`` en un iterable cada llamada al " +"mock devuelve el siguiente valor de lo iterable:" #: ../Doc/library/unittest.mock-examples.rst:264 msgid "" @@ -243,10 +317,14 @@ msgid "" "function. The function will be called with the same arguments as the mock. " "Whatever the function returns is what the call returns:" msgstr "" +"Para casos de uso más avanzados, como variar dinámicamente los valores " +"devueltos en función de cómo se llame al mock, ``side_effect`` puede ser una " +"función. Se llamará a la función con los mismos argumentos que el mock. Lo " +"que sea que la función devuelve es lo que devuelve la llamada:" #: ../Doc/library/unittest.mock-examples.rst:281 msgid "Mocking asynchronous iterators" -msgstr "" +msgstr "Iteradores asincrónicos de Mocking" #: ../Doc/library/unittest.mock-examples.rst:283 msgid "" @@ -255,10 +333,14 @@ msgid "" "attribute of ``__aiter__`` can be used to set the return values to be used " "for iteration." msgstr "" +"Desde Python 3.8, ``AsyncMock`` y ``MagicMock`` tienen soporte para mock :" +"ref:`async-iterators` through ``__aiter__``. El :attr:`~Mock.return_value` " +"atributo de ``__aiter__`` puede ser usado para asignar los valores de " +"retorno que podrían ser usados por iteración." #: ../Doc/library/unittest.mock-examples.rst:298 msgid "Mocking asynchronous context manager" -msgstr "" +msgstr "El gestor de contexto asincrónico de Mocking" #: ../Doc/library/unittest.mock-examples.rst:300 msgid "" @@ -267,10 +349,14 @@ msgid "" "default, ``__aenter__`` and ``__aexit__`` are ``AsyncMock`` instances that " "return an async function." msgstr "" +"Desde Python 3.8, ``AsyncMock`` y ``MagicMock`` tienen soporte para mock :" +"ref:`async-context-managers` a través de ``__aenter__`` y ``__aexit__``. De " +"forma predeterminada, las instancias ``__aenter__`` y ``__aexit__`` son " +"instancias de ``AsyncMock`` que devuelven una función asincrónica." #: ../Doc/library/unittest.mock-examples.rst:322 msgid "Creating a Mock from an Existing Object" -msgstr "" +msgstr "Creando un mock desde un objeto existente" #: ../Doc/library/unittest.mock-examples.rst:324 msgid "" @@ -281,6 +367,13 @@ msgid "" "you refactor the first class, so that it no longer has ``some_method`` - " "then your tests will continue to pass even though your code is now broken!" msgstr "" +"Un problema con el uso excesivo de mocking es que combina sus pruebas a la " +"implementación de sus mocks en lugar de su código real. Supongamos que tiene " +"una clase que implementa ``some_method``. En una prueba para otra clase, se " +"proporciona un mock de este objeto que *also* proporciona ``some_method``. " +"Si más tarde refactoriza la primera clase, para que ya no tenga " +"``some_method`` - entonces sus pruebas seguirán pasando a pesar de que su " +"código está ahora roto!" #: ../Doc/library/unittest.mock-examples.rst:331 msgid "" @@ -291,6 +384,12 @@ msgid "" "specification, then tests that use that class will start failing immediately " "without you having to instantiate the class in those tests." msgstr "" +":class:`Mock` le permite proporcionar un objeto como especificación para el " +"mock, utilizando el argumento de palabra clave *spec*. El acceso a métodos / " +"atributos en el mock que no existen en el objeto de especificación generará " +"inmediatamente un error de atributo. Si cambia la implementación de la " +"especificación, las pruebas que usan esa clase comenzarán a fallar " +"inmediatamente sin tener que crear instancias de la clase en esas pruebas." #: ../Doc/library/unittest.mock-examples.rst:344 msgid "" @@ -298,12 +397,17 @@ msgid "" "mock, regardless of whether some parameters were passed as positional or " "named arguments::" msgstr "" +"El uso de una especificación también permite una coincidencia más " +"inteligente de las llamadas realizadas al mock, independientemente de si " +"algunos parámetros se pasaron como argumentos posicionales o con nombre::" #: ../Doc/library/unittest.mock-examples.rst:355 msgid "" "If you want this smarter matching to also work with method calls on the " "mock, you can use :ref:`auto-speccing `." msgstr "" +"Si desea que esta coincidencia más inteligente también funcione con llamadas " +"de método en el mock, puede usar :ref:`auto-speccing `." #: ../Doc/library/unittest.mock-examples.rst:358 msgid "" @@ -311,10 +415,13 @@ msgid "" "arbitrary attributes as well as the getting of them then you can use " "*spec_set* instead of *spec*." msgstr "" +"Si desea una forma más fuerte de especificación que impida la configuración " +"de atributos arbitrarios, así como la obtención de ellos, entonces puede " +"usar *spec_set* en lugar de *spec*." #: ../Doc/library/unittest.mock-examples.rst:365 msgid "Patch Decorators" -msgstr "" +msgstr "Decoradores de Parches" #: ../Doc/library/unittest.mock-examples.rst:369 msgid "" @@ -322,6 +429,9 @@ msgid "" "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"Con :func:`patch` importa que parchee objetos en el espacio de nombres donde " +"se buscan. Esto es normalmente sencillo, pero para una guía rápida lea :ref:" +"`where to patch `." #: ../Doc/library/unittest.mock-examples.rst:374 msgid "" @@ -331,6 +441,12 @@ msgid "" "on them has to be undone after the test or the patch will persist into other " "tests and cause hard to diagnose problems." msgstr "" +"Una necesidad común en las pruebas es aplicar revisiones a un atributo de " +"clase o a un atributo de módulo, por ejemplo, aplicar revisiones a una clase " +"integrada o parchear una clase en un módulo para probar que se crea una " +"instancia. Los módulos y las clases son efectivamente globales, por lo que " +"el parcheo en ellos tiene que deshacerse después de la prueba o el parche " +"persistirá en otras pruebas y causará problemas difíciles de diagnosticar." #: ../Doc/library/unittest.mock-examples.rst:380 msgid "" @@ -342,25 +458,36 @@ msgid "" "the name of the attribute you would like patched, plus optionally the value " "to patch it with." msgstr "" +"mock proporciona tres decoradores convenientes para esto: :func:`patch`, :" +"func:`patch.object` y :func:`patch.dict`. ``patch`` toma una sola cadena del " +"formulario ``package.module.Class.attribute`` para especificar el atributo " +"que está parcheando. También, opcionalmente, toma un valor con el que desea " +"que se reemplace el atributo (o clase o lo que sea). 'patch.object' toma un " +"objeto y el nombre del atributo con el que desea parchear, además, " +"opcionalmente, del valor con el que parcharlo." #: ../Doc/library/unittest.mock-examples.rst:388 msgid "``patch.object``::" -msgstr "" +msgstr "``patch.object``::" #: ../Doc/library/unittest.mock-examples.rst:405 msgid "" "If you are patching a module (including :mod:`builtins`) then use :func:" "`patch` instead of :func:`patch.object`:" msgstr "" +"Si está parcheando un módulo (incluyendo :mod:`builtins`) entonces use :func:" +"`patch` en lugar de :func:`patch.object`:" #: ../Doc/library/unittest.mock-examples.rst:415 msgid "" "The module name can be 'dotted', in the form ``package.module`` if needed::" msgstr "" +"EL nombre del módulo puede ser 'dotted', en el formulario ``package.module`` " +"si es necesario::" #: ../Doc/library/unittest.mock-examples.rst:424 msgid "A nice pattern is to actually decorate test methods themselves:" -msgstr "" +msgstr "Un buen patrón en realidad es decorar los métodos de pruebas propios:" #: ../Doc/library/unittest.mock-examples.rst:435 msgid "" @@ -368,10 +495,13 @@ msgid "" "argument (or :func:`patch.object` with two arguments). The mock will be " "created for you and passed into the test function / method:" msgstr "" +"Si desea parchear con un Mock, puede usar :func:`patch` con un solo " +"argumento (o :func:`patch.object` con dos argumentos). El mock se creará " +"para usted y se pasará a la función de prueba / método:" #: ../Doc/library/unittest.mock-examples.rst:447 msgid "You can stack up multiple patch decorators using this pattern::" -msgstr "" +msgstr "Puede apilar varios decoradores de parches utilizando este patrón::" #: ../Doc/library/unittest.mock-examples.rst:458 msgid "" @@ -380,6 +510,11 @@ msgid "" "decorators are applied). This means from the bottom up, so in the example " "above the mock for ``test_module.ClassName2`` is passed in first." msgstr "" +"Al anidar decoradores de parches, los mocks se pasan a la función decorada " +"en el mismo orden en que se aplicaron (el orden normal *Python* que se " +"aplican los decoradores). Esto significa de abajo hacia arriba, así que en " +"el ejemplo anterior el simulacro de ``test_module.ClassName2`` se pasa " +"primero." #: ../Doc/library/unittest.mock-examples.rst:463 msgid "" @@ -387,18 +522,26 @@ msgid "" "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"También está :func:`patch.dict` para establecer valores en un diccionario " +"solo durante un ámbito y restaurar el diccionario a su estado original " +"cuando finaliza la prueba:" #: ../Doc/library/unittest.mock-examples.rst:474 msgid "" "``patch``, ``patch.object`` and ``patch.dict`` can all be used as context " "managers." msgstr "" +"``patch``, ``patch.object`` and ``patch.dict`` se pueden utilizar como " +"gestores de contexto." #: ../Doc/library/unittest.mock-examples.rst:476 msgid "" "Where you use :func:`patch` to create a mock for you, you can get a " "reference to the mock using the \"as\" form of the with statement:" msgstr "" +"Donde utilice :func:`patch` para crear un simulacro para usted, puede " +"obtener una referencia al simulacro utilizando la forma \"as\" de la " +"instrucción with:" #: ../Doc/library/unittest.mock-examples.rst:491 msgid "" @@ -406,18 +549,24 @@ msgid "" "as class decorators. When used in this way it is the same as applying the " "decorator individually to every method whose name starts with \"test\"." msgstr "" +"Como alternativa ``patch``, ``patch.object`` and ``patch.dict`` se pueden " +"utilizar como decoradores de clase. Cuando se utiliza de esta manera es lo " +"mismo que aplicar el decorador individualmente a cada método cuyo nombre " +"comienza con \"test\"." #: ../Doc/library/unittest.mock-examples.rst:499 msgid "Further Examples" -msgstr "" +msgstr "Otros Ejemplos" #: ../Doc/library/unittest.mock-examples.rst:502 msgid "Here are some more examples for some slightly more advanced scenarios." msgstr "" +"Estos son algunos ejemplos más para algunos escenarios ligeramente más " +"avanzados." #: ../Doc/library/unittest.mock-examples.rst:506 msgid "Mocking chained calls" -msgstr "" +msgstr "Mocking de llamadas encadenadas" #: ../Doc/library/unittest.mock-examples.rst:508 msgid "" @@ -426,12 +575,18 @@ msgid "" "for the first time, or you fetch its ``return_value`` before it has been " "called, a new :class:`Mock` is created." msgstr "" +"Mocking de las llamadas encadenadas es en realidad sencillo con mock una vez " +"que entiende el atributo :attr:`~Mock.return_value` . Cuando se llama a un " +"mock por primera vez, o se obtiene su ``return_value`` antes de que se " +"llame, se crea un nuevo :class:`Mock`." #: ../Doc/library/unittest.mock-examples.rst:513 msgid "" "This means that you can see how the object returned from a call to a mocked " "object has been used by interrogating the ``return_value`` mock:" msgstr "" +"Esto significa que puede ver cómo se ha utilizado el objeto devuelto de una " +"llamada a un objeto simulado interrogando el simulado ``return_value``:" #: ../Doc/library/unittest.mock-examples.rst:521 msgid "" @@ -439,10 +594,15 @@ msgid "" "chained calls. Of course another alternative is writing your code in a more " "testable way in the first place..." msgstr "" +"Desde aquí es un paso simple para configurar y luego hacer aserciones sobre " +"llamadas encadenadas. Por supuesto, otra alternativa es escribir su código " +"de una manera más comprobable en primer lugar..." #: ../Doc/library/unittest.mock-examples.rst:525 msgid "So, suppose we have some code that looks a little bit like this:" msgstr "" +"Por lo tanto, supongamos que tenemos algún código que se ve un poco como " +"este:" #: ../Doc/library/unittest.mock-examples.rst:534 msgid "" @@ -450,6 +610,9 @@ msgid "" "``method()``? Specifically, we want to test that the code section ``# more " "code`` uses the response object in the correct way." msgstr "" +"Suponiendo que ``BackendProvider`` ya está bien probado, ¿cómo probamos " +"``method()``? En concreto, queremos probar que la sección de código ``# more " +"code`` usa el objeto de respuesta de la manera correcta." #: ../Doc/library/unittest.mock-examples.rst:538 msgid "" @@ -460,6 +623,13 @@ msgid "" "assume the object it returns is 'file-like', so we'll ensure that our " "response object uses the builtin :func:`open` as its ``spec``." msgstr "" +"A medida que esta cadena de llamadas se realiza a partir de un atributo de " +"instancia, podemos parchear el atributo ``backend`` en una instancia de " +"``Something``. En este caso en particular sólo estamos interesados en el " +"valor devuelto de la llamada final a ``start_call`` por lo que no tenemos " +"mucha configuración que hacer. Supongamos que el objeto que devuelve es " +"'similar a un archivo', por lo que nos aseguraremos de que nuestro objeto de " +"respuesta utilice el compilado :func:`open` as its ``spec``." #: ../Doc/library/unittest.mock-examples.rst:545 msgid "" @@ -467,18 +637,27 @@ msgid "" "response object for it. To set the response as the return value for that " "final ``start_call`` we could do this::" msgstr "" +"Para ello creamos una instancia mock como nuestro back-end simulado y " +"creamos un objeto de respuesta mock para ella. Para establecer la respuesta " +"como el valor devuelto de ese ``start_call`` final podríamos hacer lo " +"siguiente::" #: ../Doc/library/unittest.mock-examples.rst:551 msgid "" "We can do that in a slightly nicer way using the :meth:`~Mock." "configure_mock` method to directly set the return value for us::" msgstr "" +"Podemos hacerlo de una manera un poco mejor usando el método :meth:`~Mock." +"configure_mock` para establecer directamente el valor devuelto para " +"nosotros::" #: ../Doc/library/unittest.mock-examples.rst:560 msgid "" "With these we monkey patch the \"mock backend\" in place and can make the " "real call::" msgstr "" +"Con estos monkey patch el \"backend simulado\" en su lugar y puede hacer la " +"llamada real::" #: ../Doc/library/unittest.mock-examples.rst:566 msgid "" @@ -487,10 +666,14 @@ msgid "" "be several entries in ``mock_calls``. We can use :meth:`call.call_list` to " "create this list of calls for us::" msgstr "" +"Usando :attr:`~Mock.mock_calls` podemos comprobar la llamada encadenada con " +"una sola afirmación. Una llamada encadenada es varias llamadas en una línea " +"de código, por lo que habrá varias entradas en ``mock_calls``. Podemos usar :" +"meth:`call.call_list` para crear esta lista de llamadas para nosotros::" #: ../Doc/library/unittest.mock-examples.rst:577 msgid "Partial mocking" -msgstr "" +msgstr "Mocking parcial" #: ../Doc/library/unittest.mock-examples.rst:579 msgid "" @@ -500,6 +683,11 @@ msgid "" "in C, and so I couldn't just monkey-patch out the static :meth:`date.today` " "method." msgstr "" +"En algunas pruebas quería un mock de una llamada a :meth:`datetime.date." +"today` para devolver una fecha conocida, pero no quería evitar que el código " +"sometido a prueba creara nuevos objetos de fecha. Desafortunadamente :class:" +"`datetime.date` está escrito en C, por lo que no podía simplemente parchear " +"mono el método estático :meth:`date.today` ." #: ../Doc/library/unittest.mock-examples.rst:584 msgid "" @@ -507,6 +695,9 @@ msgid "" "date class with a mock, but passing through calls to the constructor to the " "real class (and returning real instances)." msgstr "" +"Encontré una forma sencilla de hacer esto que implicaba ajustar eficazmente " +"la clase date con un mock, pero pasar llamadas al constructor a la clase " +"real (y devolver instancias reales)." #: ../Doc/library/unittest.mock-examples.rst:588 msgid "" @@ -516,12 +707,20 @@ msgid "" "When the mock date class is called a real date will be constructed and " "returned by ``side_effect``. ::" msgstr "" +"El :func:`patch decorator ` se utiliza aquí como un mock de la clase " +"``date`` en el módulo en pruebas. A continuación, el atributo :attr:" +"`side_effect` de la clase de fecha simulada se establece en una función " +"lambda que devuelve una fecha real. Cuando la clase de fecha simulada se " +"denomina fecha real, se construirá y devolverá ``side_effect``. ::" #: ../Doc/library/unittest.mock-examples.rst:602 msgid "" "Note that we don't patch :class:`datetime.date` globally, we patch ``date`` " "in the module that *uses* it. See :ref:`where to patch `." msgstr "" +"Tenga en cuenta que no parcheamos :class:`datetime.date` globalmente, " +"parcheamos ``date`` en el módulo que *uses*. Consulte :ref:`where to patch " +"`." #: ../Doc/library/unittest.mock-examples.rst:605 msgid "" @@ -530,12 +729,20 @@ msgid "" "find yourself having to calculate an expected result using exactly the same " "algorithm as the code under test, which is a classic testing anti-pattern." msgstr "" +"Cuando ``date.today()`` es llamada se retorna una fecha conocida, pero llama " +"al constructor ``date(...)`` este constructor todavía devuelve fechas " +"normales. Sin esto, puede encontrarse teniendo que calcular un resultado " +"esperado utilizando exactamente el mismo algoritmo que el código en prueba, " +"que es un anti-patrón de prueba clásico." #: ../Doc/library/unittest.mock-examples.rst:610 msgid "" "Calls to the date constructor are recorded in the ``mock_date`` attributes " "(``call_count`` and friends) which may also be useful for your tests." msgstr "" +"Las llamadas al constructor de fecha se registran en los atributos " +"``mock_date`` (``call_count`` y amigos) que también pueden ser útiles para " +"las pruebas." #: ../Doc/library/unittest.mock-examples.rst:613 msgid "" @@ -543,16 +750,22 @@ msgid "" "is discussed in `this blog entry `_." msgstr "" +"Una forma alternativa de tratar con fechas de mock, u otras clases " +"integradas, se discute en `esta entrada de blog `_." #: ../Doc/library/unittest.mock-examples.rst:619 msgid "Mocking a Generator Method" -msgstr "" +msgstr "Mocking de un Método Generador" #: ../Doc/library/unittest.mock-examples.rst:621 msgid "" "A Python generator is a function or method that uses the :keyword:`yield` " "statement to return a series of values when iterated over [#]_." msgstr "" +"Un generador de Python es una función o método que utiliza la instrucción :" +"keyword:`yield` para devolver una serie de valores cuando se itera sobre " +"[#]_." #: ../Doc/library/unittest.mock-examples.rst:624 msgid "" @@ -561,15 +774,22 @@ msgid "" "iteration is :meth:`~container.__iter__`, so we can mock this using a :class:" "`MagicMock`." msgstr "" +"Se llama a un método / función del generador para devolver el objeto " +"generador. Es el objeto generador que luego se itera. El método de protocolo " +"para la iteración es :meth:`~container.__iter__`, por lo que podemos hacer " +"mock de esto usando una :class:`MagicMock`." #: ../Doc/library/unittest.mock-examples.rst:629 msgid "" "Here's an example class with an \"iter\" method implemented as a generator:" msgstr "" +"Aquí hay una clase de ejemplo con un método \"iter\" implementado como " +"generador:" #: ../Doc/library/unittest.mock-examples.rst:641 msgid "How would we mock this class, and in particular its \"iter\" method?" msgstr "" +"¿Cómo haríamos un mock de esta clase y, en particular, de su método \"iter\"?" #: ../Doc/library/unittest.mock-examples.rst:643 msgid "" @@ -577,6 +797,9 @@ msgid "" "to :class:`list`), we need to configure the object returned by the call to " "``foo.iter()``." msgstr "" +"Para configurar los valores devueltos desde la iteración (implícita en la " +"llamada a :class:`list`), necesitamos configurar el objeto devuelto por la " +"llamada a ``foo.iter()``." #: ../Doc/library/unittest.mock-examples.rst:651 msgid "" @@ -586,10 +809,15 @@ msgid "" "they are is: `Generator Tricks for Systems Programmers `_." msgstr "" +"También hay expresiones generadoras y más usos avanzados '_ de generadores, pero no nos preocupan los que " +"están aquí. Una muy buena introducción a los generadores y lo potentes que " +"son es: `Generator Tricks for Systems Programmers `_." #: ../Doc/library/unittest.mock-examples.rst:659 msgid "Applying the same patch to every test method" -msgstr "" +msgstr "Aplicar el mismo parche a cada método de prueba" #: ../Doc/library/unittest.mock-examples.rst:661 msgid "" @@ -600,6 +828,13 @@ msgid "" "patches to all test methods on the class. A test method is identified by " "methods whose names start with ``test``::" msgstr "" +"Si desea que se coloquen varias revisiones para varios métodos de prueba, la " +"forma obvia es aplicar los decoradores de parches a cada método. Esto puede " +"parecer una repetición innecesaria. Para Python 2.6 o más reciente puede " +"utilizar :func:`patch` (en todas sus diversas formas) como decorador de " +"clases. Esto aplica las revisiones a todos los métodos de prueba de la " +"clase. Un método de prueba se identifica mediante métodos cuyos nombres " +"comienzan con ``test``::" #: ../Doc/library/unittest.mock-examples.rst:685 msgid "" @@ -607,6 +842,8 @@ msgid "" "These allow you to move the patching into your ``setUp`` and ``tearDown`` " "methods. ::" msgstr "" +"Una forma alternativa de administrar parches es usar :ref:`start-and-stop`. " +"Estos le permiten mover el parche en sus métodos ``setUp`` y ``tearDown``. ::" #: ../Doc/library/unittest.mock-examples.rst:702 msgid "" @@ -615,10 +852,14 @@ msgid "" "exception is raised in the setUp then tearDown is not called. :meth:" "`unittest.TestCase.addCleanup` makes this easier::" msgstr "" +"Si utiliza esta técnica, debe asegurarse de que la aplicación de parches se " +"\"undone\" llamando a ``stop``. Esto puede ser más complicado de lo que " +"podría pensar, porque si se produce una excepción en el setUp, no se llama a " +"tearDown. :meth:`unittest.TestCase.addCleanup` hace que esto sea más fácil::" #: ../Doc/library/unittest.mock-examples.rst:720 msgid "Mocking Unbound Methods" -msgstr "" +msgstr "Mocking de métodos sin enlazar" #: ../Doc/library/unittest.mock-examples.rst:722 msgid "" @@ -633,6 +874,17 @@ msgid "" "to patch out methods with a mock that having to create a real function " "becomes a nuisance." msgstr "" +"Mientras escribía pruebas hoy en día, necesitaba parchear un método *unbound " +"method* (parchear el método en la clase en lugar de en la instancia). " +"Necesitaba que se pasara a sí mismo como primer argumento porque quiero " +"hacer aserciones sobre qué objetos estaban llamando a este método en " +"particular. El problema es que no se puede parchear con un mock para esto, " +"porque si reemplaza un método independiente con un mock, no se convierte en " +"un método enlazado cuando se obtiene de la instancia, por lo que no se pasa " +"por sí mismo. La solución es revisar el método independiente con una función " +"real en su lugar. El decorador :func:`patch` hace que sea tan simple " +"parchear métodos con un mock que tener que crear una función real se " +"convierte en una molestia." #: ../Doc/library/unittest.mock-examples.rst:733 msgid "" @@ -645,22 +897,34 @@ msgid "" "instance. It will have ``self`` passed in as the first argument, which is " "exactly what I wanted:" msgstr "" +"Si pasa ``autospec=True`` al parche, entonces hace el parche con un objeto " +"de función *real*. Este objeto de función tiene la misma firma que el que " +"está reemplazando, pero delega en un mock bajo el capó. Usted todavía " +"consigue su mock de auto-creado exactamente de la misma manera que antes. Lo " +"que significa, sin embargo, es que si lo usa para parchear un método " +"independiente en una clase, la función simulada se convertirá en un método " +"enlazado si se obtiene de una instancia. Tendrá ``self`` pasado como el " +"primer argumento, que es exactamente lo que quería:" #: ../Doc/library/unittest.mock-examples.rst:754 msgid "" "If we don't use ``autospec=True`` then the unbound method is patched out " "with a Mock instance instead, and isn't called with ``self``." msgstr "" +"Si no usamos ``autospec=True`` entonces el método independiente se parchea " +"con una instancia de Mock en su lugar, y no se llama con ``self``." #: ../Doc/library/unittest.mock-examples.rst:759 msgid "Checking multiple calls with mock" -msgstr "" +msgstr "Comprobación de varias llamadas con mock" #: ../Doc/library/unittest.mock-examples.rst:761 msgid "" "mock has a nice API for making assertions about how your mock objects are " "used." msgstr "" +"mock tiene una buena API para hacer aserciones sobre cómo se usan sus " +"objetos ficticios." #: ../Doc/library/unittest.mock-examples.rst:768 msgid "" @@ -668,6 +932,8 @@ msgid "" "`assert_called_once_with` method that also asserts that the :attr:" "`call_count` is one." msgstr "" +"Si su mock solo se llama una vez, puede usar el método :meth:" +"`assert_called_once_with` que también afirma que :attr:`call_count` es uno." #: ../Doc/library/unittest.mock-examples.rst:779 msgid "" @@ -676,6 +942,10 @@ msgid "" "times, and you want to make assertions about *all* those calls you can use :" "attr:`~Mock.call_args_list`:" msgstr "" +"Tanto ``assert_called_with`` como ``assert_called_once_with`` hacen " +"afirmaciones sobre la llamada *más reciente*. Si su mock va a ser llamado " +"varias veces, y desea hacer aserciones sobre *todas* esas llamadas que puede " +"utilizar :attr:`~Mock.call_args_list`:" #: ../Doc/library/unittest.mock-examples.rst:791 msgid "" @@ -684,10 +954,14 @@ msgid "" "``call_args_list``. This looks remarkably similar to the repr of the " "``call_args_list``:" msgstr "" +"El helper :data:`call` facilita la toma de aserciones sobre estas llamadas. " +"Puede crear una lista de llamadas esperadas y compararla con " +"``call_args_list``. Esto se ve notablemente similar al repr de la " +"``call_args_list``:" #: ../Doc/library/unittest.mock-examples.rst:801 msgid "Coping with mutable arguments" -msgstr "" +msgstr "Copiando con argumentos mutables" #: ../Doc/library/unittest.mock-examples.rst:803 msgid "" @@ -697,18 +971,27 @@ msgid "" "under test then you can no longer make assertions about what the values were " "when the mock was called." msgstr "" +"Otra situación es rara, pero puede morderte, es cuando se llama a tu mock " +"con argumentos mutables. ``call_args`` y ``call_args_list`` almacenan " +"*referencias* a los argumentos. Si el código sometido a prueba muta los " +"argumentos ya no puede realizar aserciones sobre cuáles eran los valores " +"cuando se llamó al mock." #: ../Doc/library/unittest.mock-examples.rst:808 msgid "" "Here's some example code that shows the problem. Imagine the following " "functions defined in 'mymodule'::" msgstr "" +"Este es un código de ejemplo que muestra el problema. Imagine las siguientes " +"funciones definidas en 'mymodule'::" #: ../Doc/library/unittest.mock-examples.rst:819 msgid "" "When we try to test that ``grob`` calls ``frob`` with the correct argument " "look what happens::" msgstr "" +"Cuando tratamos de probar que ``grob`` llama ``frob`` con el argumento " +"correcto mira lo que sucede::" #: ../Doc/library/unittest.mock-examples.rst:834 msgid "" @@ -716,6 +999,9 @@ msgid "" "could then cause problems if you do assertions that rely on object identity " "for equality." msgstr "" +"Una posibilidad sería que el mock copiara los argumentos que pasa. Esto " +"podría causar problemas si realiza aserciones que se basan en la identidad " +"del objeto para la igualdad." #: ../Doc/library/unittest.mock-examples.rst:838 msgid "" @@ -726,6 +1012,13 @@ msgid "" "*another* mock to store the arguments so that I can use the mock methods for " "doing the assertion. Again a helper function sets this up for me. ::" msgstr "" +"Aquí hay una solución que utiliza la funcionalidad :attr:`side_effect`. Si " +"proporciona una función ``side_effect`` para un mock, se llamará a " +"``side_effect`` con los mismos argumentos que el mock. Esto nos da la " +"oportunidad de copiar los argumentos y almacenarlos para aserciones " +"posteriores. En este ejemplo estoy usando *otro* mock para almacenar los " +"argumentos de modo que pueda usar los métodos ficticios para hacer la " +"aserción. Una vez más, una función auxiliar configura esto para mí. ::" #: ../Doc/library/unittest.mock-examples.rst:867 msgid "" @@ -733,6 +1026,9 @@ msgid "" "new mock that we do the assertion on. The ``side_effect`` function makes a " "copy of the args and calls our ``new_mock`` with the copy." msgstr "" +"``copy_call_args`` se llama con el mock que se llamará. Devuelve un nuevo " +"mock en el que hacemos la aserción. La función ``side_effect`` hace una " +"copia de los args y llama a nuestro ``new_mock`` con la copia." #: ../Doc/library/unittest.mock-examples.rst:873 msgid "" @@ -740,6 +1036,9 @@ msgid "" "checking arguments at the point they are called. You can simply do the " "checking inside a ``side_effect`` function." msgstr "" +"Si su simulacro solo se va a usar una vez, hay una forma más fácil de " +"verificar los argumentos en el punto en que se llaman. Simplemente puede " +"hacer la comprobación dentro de una función ``side_effect``." #: ../Doc/library/unittest.mock-examples.rst:887 msgid "" @@ -747,6 +1046,9 @@ msgid "" "`MagicMock` that copies (using :func:`copy.deepcopy`) the arguments. Here's " "an example implementation:" msgstr "" +"Un enfoque alternativo es crear una subclase de :class:`Mock` o :class:" +"`MagicMock` que copie (usando :func:`copy.deepcopy`) los argumentos. A " +"continuación se muestra un ejemplo de implementación:" #: ../Doc/library/unittest.mock-examples.rst:911 msgid "" @@ -755,10 +1057,14 @@ msgid "" "That means all children of a ``CopyingMock`` will also have the type " "``CopyingMock``." msgstr "" +"Cuando subclases ``Mock`` o ``MagicMock`` todos los atributos creados " +"dinámicamente, y el ``return_value`` usará tu subclase automáticamente. Eso " +"significa que todos los elementos secundarios de un ``CopyingMock`` también " +"tendrán el tipo ``CopyingMock``." #: ../Doc/library/unittest.mock-examples.rst:917 msgid "Nesting Patches" -msgstr "" +msgstr "Anidando Parches" #: ../Doc/library/unittest.mock-examples.rst:919 msgid "" @@ -766,6 +1072,9 @@ msgid "" "can end up with nested with statements indenting further and further to the " "right::" msgstr "" +"Usar parches como administradores de contexto es bueno, pero si haces varios " +"parches, puedes terminar con instrucciones anidadas que se sangran cada vez " +"más a la derecha::" #: ../Doc/library/unittest.mock-examples.rst:937 msgid "" @@ -774,16 +1083,23 @@ msgid "" "method, ``create_patch``, puts the patch in place and returns the created " "mock for us::" msgstr "" +"Con las funciones unittest ``cleanup`` y :ref:`start-and-stop` podemos " +"lograr el mismo efecto sin la sangría anidada. Un método auxiliar simple, " +"``create_patch``, pone el parche en su lugar y devuelve el mock creado para " +"nosotros::" #: ../Doc/library/unittest.mock-examples.rst:965 msgid "Mocking a dictionary with MagicMock" -msgstr "" +msgstr "Mocking a un diccionario usando MagickMock" #: ../Doc/library/unittest.mock-examples.rst:967 msgid "" "You may want to mock a dictionary, or other container object, recording all " "access to it whilst having it still behave like a dictionary." msgstr "" +"Es posible que desee simular un diccionario u otro objeto contenedor, " +"registrando todo el acceso a él mientras todavía se comporta como un " +"diccionario." #: ../Doc/library/unittest.mock-examples.rst:970 msgid "" @@ -791,6 +1107,9 @@ msgid "" "and using :data:`~Mock.side_effect` to delegate dictionary access to a real " "underlying dictionary that is under our control." msgstr "" +"Podemos hacer esto con :class:`MagicMock`, que se comportará como un " +"diccionario, y usando :data:`~Mock.side_effect` para delegar el acceso del " +"diccionario a un diccionario subyacente real que está bajo nuestro control." #: ../Doc/library/unittest.mock-examples.rst:974 msgid "" @@ -799,18 +1118,26 @@ msgid "" "called with the key (and in the case of ``__setitem__`` the value too). We " "can also control what is returned." msgstr "" +"Cuando se llama a los métodos :meth:`__getitem__` y :meth:`__setitem__` de " +"nuestro ``MagicMock`` (acceso normal al diccionario), entonces se llama a " +"``side_effect`` con la clave (y en el caso de ``__setitem__`` el valor " +"también). También podemos controlar lo que se devuelve." #: ../Doc/library/unittest.mock-examples.rst:978 msgid "" "After the ``MagicMock`` has been used we can use attributes like :data:" "`~Mock.call_args_list` to assert about how the dictionary was used:" msgstr "" +"Después de que se haya utilizado el ``MagicMock`` podemos usar atributos " +"como :data:`~Mock.call_args_list` para afirmar cómo se usó el diccionario:" #: ../Doc/library/unittest.mock-examples.rst:994 msgid "" "An alternative to using ``MagicMock`` is to use ``Mock`` and *only* provide " "the magic methods you specifically want:" msgstr "" +"Una alternativa al uso de ``MagicMock`` es usar ``Mock`` y *solo* " +"proporcionar los métodos mágicos que desea específicamente:" #: ../Doc/library/unittest.mock-examples.rst:1001 msgid "" @@ -818,6 +1145,9 @@ msgid "" "*spec* (or *spec_set*) argument so that the ``MagicMock`` created only has " "dictionary magic methods available:" msgstr "" +"Una *tercera* opción es usar ``MagicMock`` pero pasando ``dict`` como el " +"argumento *spec* (o *spec_set*) para que el ``MagicMock`` creado solo tenga " +"métodos mágicos de diccionario disponibles:" #: ../Doc/library/unittest.mock-examples.rst:1009 msgid "" @@ -825,22 +1155,30 @@ msgid "" "normal dictionary but recording the access. It even raises a :exc:`KeyError` " "if you try to access a key that doesn't exist." msgstr "" +"Con estas funciones de efectos secundarios en su lugar, el ``mock`` se " +"comportará como un diccionario normal pero registrando el acceso. Incluso " +"genera un :exc:`KeyError` si intenta acceder a una clave que no existe." #: ../Doc/library/unittest.mock-examples.rst:1028 msgid "" "After it has been used you can make assertions about the access using the " "normal mock methods and attributes:" msgstr "" +"Una vez utilizado, puede realizar aserciones sobre el acceso utilizando los " +"métodos y atributos mock normales:" #: ../Doc/library/unittest.mock-examples.rst:1040 msgid "Mock subclasses and their attributes" -msgstr "" +msgstr "Mock de subclases y sus atributos" #: ../Doc/library/unittest.mock-examples.rst:1042 msgid "" "There are various reasons why you might want to subclass :class:`Mock`. One " "reason might be to add helper methods. Here's a silly example:" msgstr "" +"Hay varias razones por las que es posible que desee crear subclases :class:" +"`Mock` Una razón podría ser agregar métodos auxiliares. Aquí hay un ejemplo " +"simple:" #: ../Doc/library/unittest.mock-examples.rst:1058 msgid "" @@ -851,6 +1189,13 @@ msgid "" "methods then they'll also be available on the attributes and return value " "mock of instances of your subclass." msgstr "" +"El comportamiento estándar para las instancias ``Mock`` es que los atributos " +"y los simulacros de valor devuelto son del mismo tipo que el simulacro en el " +"que se accede a ellos. Esto garantiza que los atributos ``Mock`` son " +"``Mocks`` y los atributos ``MagicMock`` son ``MagicMocks`` [#]_. Por lo " +"tanto, si está creando subclases para agregar métodos auxiliares, también " +"estarán disponibles en los atributos y el valor devuelto mock de las " +"instancias de su subclase." #: ../Doc/library/unittest.mock-examples.rst:1074 msgid "" @@ -860,6 +1205,11 @@ msgid "" "components.html>`_. Having this applied to attributes too actually causes " "errors." msgstr "" +"A veces esto es inconveniente. Por ejemplo, `un usuario `_ está creando subclases de mock para crear " +"un `Twisted adaptor `_. Tener esto aplicado a los atributos también puede " +"causar errores en realidad." #: ../Doc/library/unittest.mock-examples.rst:1080 msgid "" @@ -869,6 +1219,11 @@ msgid "" "signature is that it takes arbitrary keyword arguments (``**kwargs``) which " "are then passed onto the mock constructor:" msgstr "" +"``Mock`` (en todos sus sabores) utiliza un método llamado " +"``_get_child_mock`` para crear estos \"sub-mocks\" para atributos y valores " +"devueltos. Puede evitar que la subclase se utilice para los atributos " +"invalidando este método. La firma es que toma argumentos de palabra clave " +"arbitrarios (``**kwargs``) que luego se pasan al constructor ficticio:" #: ../Doc/library/unittest.mock-examples.rst:1097 msgid "" @@ -876,10 +1231,14 @@ msgid "" "callable variant because otherwise non-callable mocks couldn't have callable " "methods." msgstr "" +"Una excepción a esta regla son los mock no invocables. Los atributos usan la " +"variante a la que se puede llamar porque, de lo contrario, los simulacros a " +"los que no se puede llamar no podrían tener métodos a los que se puede " +"llamar." #: ../Doc/library/unittest.mock-examples.rst:1103 msgid "Mocking imports with patch.dict" -msgstr "" +msgstr "Importaciones de Mocking con patch.dict" #: ../Doc/library/unittest.mock-examples.rst:1105 msgid "" @@ -887,6 +1246,10 @@ msgid "" "inside a function. These are harder to mock because they aren't using an " "object from the module namespace that we can patch out." msgstr "" +"Una situación en la que un mocking puede ser difícil es cuando tiene una " +"importación local dentro de una función. Estos son más difíciles de simular " +"porque no están usando un objeto del espacio de nombres del módulo que " +"podemos revisar." #: ../Doc/library/unittest.mock-examples.rst:1109 msgid "" @@ -897,6 +1260,13 @@ msgid "" "unconditional local import (store the module as a class or module attribute " "and only do the import on first use)." msgstr "" +"Por lo general, deben evitarse las importaciones locales. A veces se hacen " +"para evitar dependencias circulares, para las que hay *generalmente* una " +"manera mucho mejor de resolver el problema (refactorizar el código) o para " +"evitar \"costos iniciales\" retrasando la importación. Esto también se puede " +"resolver de mejores maneras que una importación local incondicional " +"(almacenar el módulo como una clase o atributo de módulo y solo hacer la " +"importación en el primer uso)." #: ../Doc/library/unittest.mock-examples.rst:1116 msgid "" @@ -907,6 +1277,13 @@ msgid "" "in `sys.modules`, so usually when you import something you get a module " "back. This need not be the case however." msgstr "" +"Aparte de eso, hay una manera de usar ``mock`` para afectar los resultados " +"de una importación. La importación obtiene un *objeto* del diccionario :data:" +"`sys.modules`. Tenga en cuenta que obtiene un *objeto*, que no tiene por qué " +"ser un módulo. La importación de un módulo por primera vez da como resultado " +"que un objeto de módulo se coloque en `sys.modules`, por lo que normalmente " +"cuando importa algo, recupera un módulo. Sin embargo, este no tiene por qué " +"ser el caso." #: ../Doc/library/unittest.mock-examples.rst:1123 msgid "" @@ -916,28 +1293,40 @@ msgid "" "the with statement body is complete or ``patcher.stop()`` is called) then " "whatever was there previously will be restored safely." msgstr "" +"Esto significa que puede usar :func:`patch.dict` para *temporalmente* poner " +"un mock en su lugar sobre :data:`sys.modules`. Cualquier importación " +"mientras este parche está activo recuperará el mock. Cuando el parche está " +"completo (la función decorada sale, el cuerpo de la instrucción with está " +"completo o se llama a ``patcher.stop()``) entonces lo que había " +"anteriormente se restaurará de forma segura." #: ../Doc/library/unittest.mock-examples.rst:1129 msgid "Here's an example that mocks out the 'fooble' module." -msgstr "" +msgstr "Aquí hay un ejemplo de mock del módulo 'fooble'." #: ../Doc/library/unittest.mock-examples.rst:1141 msgid "" "As you can see the ``import fooble`` succeeds, but on exit there is no " "'fooble' left in :data:`sys.modules`." msgstr "" +"Como puede ver, el ``import fooble`` tiene éxito, pero al salir no queda " +"ningún 'fooble' en :data:`sys.modules`." #: ../Doc/library/unittest.mock-examples.rst:1144 msgid "This also works for the ``from module import name`` form:" -msgstr "" +msgstr "Esto también funciona para el formulario ``from module import name``:" #: ../Doc/library/unittest.mock-examples.rst:1154 msgid "With slightly more work you can also mock package imports:" msgstr "" +"Con un poco más de trabajo también puede simular las importaciones de " +"paquetes:" #: ../Doc/library/unittest.mock-examples.rst:1167 msgid "Tracking order of calls and less verbose call assertions" msgstr "" +"Seguimiento del orden de las llamadas y de las aserciones de llamadas menos " +"detalladas" #: ../Doc/library/unittest.mock-examples.rst:1169 msgid "" @@ -946,6 +1335,11 @@ msgid "" "doesn't allow you to track the order of calls between separate mock objects, " "however we can use :attr:`~Mock.mock_calls` to achieve the same effect." msgstr "" +"La clase :class:`Mock` le permite realizar un seguimiento del *orden* de las " +"llamadas a métodos en sus objetos mock a través del atributo :attr:`~Mock." +"method_calls`. Esto no le permite rastrear el orden de las llamadas entre " +"objetos simulados separados, sin embargo, podemos usar :attr:`~Mock." +"mock_calls` para lograr el mismo efecto." #: ../Doc/library/unittest.mock-examples.rst:1174 msgid "" @@ -954,12 +1348,19 @@ msgid "" "separate mocks from a parent one. Calls to those child mock will then all be " "recorded, in order, in the ``mock_calls`` of the parent:" msgstr "" +"Debido a que los mocks rastrean las llamadas a mocks secundarios en " +"``mock_calls``, y el acceso a un atributo arbitrario de un mock crea un mock " +"secundario, podemos crear nuestros mocks separados de uno primario. Las " +"llamadas a esos mocks hijos se grabarán, en orden, en el ``mock_calls`` del " +"padre:" #: ../Doc/library/unittest.mock-examples.rst:1191 msgid "" "We can then assert about the calls, including the order, by comparing with " "the ``mock_calls`` attribute on the manager mock:" msgstr "" +"A continuación, podemos realizar afirmaciones sobre las llamadas, incluido " +"el orden, comparando con el atributo ``mock_calls`` en el mock administrador:" #: ../Doc/library/unittest.mock-examples.rst:1198 msgid "" @@ -967,6 +1368,10 @@ msgid "" "attach them to a manager mock using the :meth:`~Mock.attach_mock` method. " "After attaching calls will be recorded in ``mock_calls`` of the manager. ::" msgstr "" +"Si ``patch`` está creando y poniendo en su lugar, sus mocks, puede " +"adjuntarlos a un mock administrador usando el método :meth:`~Mock." +"attach_mock` . Después de adjuntar las llamadas se registrarán en " +"``mock_calls`` del administrador. ::" #: ../Doc/library/unittest.mock-examples.rst:1217 msgid "" @@ -976,12 +1381,19 @@ msgid "" "data:`call` object). If that sequence of calls are in :attr:`~Mock." "mock_calls` then the assert succeeds." msgstr "" +"Si se han realizado muchas llamadas, pero solo está interesado en una " +"secuencia particular de ellas, entonces una alternativa es usar el método :" +"meth:`~Mock.assert_has_calls` . Esto toma una lista de llamadas (construidas " +"con el objeto :data:`call`). Si esa secuencia de llamadas sobre :attr:`~Mock." +"mock_calls`, la aserción se realiza correctamente." #: ../Doc/library/unittest.mock-examples.rst:1231 msgid "" "Even though the chained call ``m.one().two().three()`` aren't the only calls " "that have been made to the mock, the assert still succeeds." msgstr "" +"Aunque la llamada encadenada ``m.one().two().three()`` no son las únicas " +"llamadas que se han realizado al mock, la aserción aún tiene éxito." #: ../Doc/library/unittest.mock-examples.rst:1234 msgid "" @@ -990,16 +1402,22 @@ msgid "" "about the order. In this case you can pass ``any_order=True`` to " "``assert_has_calls``:" msgstr "" +"A veces, un mock puede tener varias llamadas, y solo le interesa afirmar " +"sobre *algunas* de esas llamadas. Puede que ni siquiera importe el pedido. " +"En este caso, puede pasar ``any_order=True`` a ``assert_has_calls``:" #: ../Doc/library/unittest.mock-examples.rst:1246 msgid "More complex argument matching" -msgstr "" +msgstr "Coincidencia de argumentos más compleja" #: ../Doc/library/unittest.mock-examples.rst:1248 msgid "" "Using the same basic concept as :data:`ANY` we can implement matchers to do " "more complex assertions on objects used as arguments to mocks." msgstr "" +"Usando el mismo concepto básico que :data:`ANY` podemos implementar " +"comparadores para hacer afirmaciones más complejas en objetos usados como " +"argumentos para mocks." #: ../Doc/library/unittest.mock-examples.rst:1251 msgid "" @@ -1010,27 +1428,39 @@ msgid "" "attributes of this object then we can create a matcher that will check these " "attributes for us." msgstr "" +"Supongamos que esperamos que algún objeto se pase a un mock que, por " +"defecto, se compara igual en función de la identidad del objeto (que es el " +"valor predeterminado de Python para las clases definidas por el usuario). " +"Para usar :meth:`~Mock.assert_called_with` tendríamos que pasar exactamente " +"el mismo objeto. Si solo estamos interesados en algunos de los atributos de " +"este objeto, podemos crear un comparador que verifique estos atributos por " +"nosotros." #: ../Doc/library/unittest.mock-examples.rst:1258 msgid "" "You can see in this example how a 'standard' call to ``assert_called_with`` " "isn't sufficient:" msgstr "" +"Puede ver en este ejemplo cómo una llamada 'estándar' a " +"``assert_called_with`` no es suficiente:" #: ../Doc/library/unittest.mock-examples.rst:1273 msgid "" "A comparison function for our ``Foo`` class might look something like this:" msgstr "" +"Una función de comparación para nuestra clase ``Foo`` podría verse así:" #: ../Doc/library/unittest.mock-examples.rst:1285 msgid "" "And a matcher object that can use comparison functions like this for its " "equality operation would look something like this:" msgstr "" +"Y un objeto comparador que puede usar funciones de comparación como esta " +"para su operación de igualdad se vería así:" #: ../Doc/library/unittest.mock-examples.rst:1296 msgid "Putting all this together:" -msgstr "" +msgstr "Poniendo todo esto junto:" #: ../Doc/library/unittest.mock-examples.rst:1301 msgid "" @@ -1041,12 +1471,20 @@ msgid "" "``assert_called_with`` passes, and if they don't an :exc:`AssertionError` is " "raised:" msgstr "" +"El ``Matcher`` es instanciado con nuestra función de comparación y el objeto " +"``Foo`` con el que queremos comparar. En ``assert_called_with`` se llamará " +"al método de igualdad ``Matcher``, que compara el objeto con el que se llamó " +"al mock con el que creamos nuestro matcher. Si coinciden, entonces pasa " +"``assert_called_with``, y si no lo hacen, se generará un :exc:" +"`AssertionError`:" #: ../Doc/library/unittest.mock-examples.rst:1314 msgid "" "With a bit of tweaking you could have the comparison function raise the :exc:" "`AssertionError` directly and provide a more useful failure message." msgstr "" +"Con un poco de ajuste, podría hacer que la función de comparación genere el :" +"exc:`AssertionError` directamente y proporcione un mensaje de falla más útil." #: ../Doc/library/unittest.mock-examples.rst:1317 msgid "" @@ -1056,3 +1494,9 @@ msgid "" "integration.match_equality `_)." msgstr "" +"A partir de la versión 1.5, la biblioteca de pruebas de Python `PyHamcrest " +"`_ proporciona una funcionalidad " +"similar, que puede ser útil aquí, en la forma de su comparador de igualdad " +"(`hamcrest.library.integration.match_equality `_)." diff --git a/library/unittest.po b/library/unittest.po index c9f3c58a29..9b05eef947 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -5,34 +5,43 @@ # https://mail.python.org/mailman3/lists/docs-es.python.org/ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers +# Translation started and completed partially by: +# Marcos Sánchez Provencio , 2020. +# Translation finished by: +# Claudia Millán (clacri), 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"PO-Revision-Date: 2021-03-20 11:09-0300\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 Millán (@clacri)\n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/unittest.rst:2 msgid ":mod:`unittest` --- Unit testing framework" -msgstr "" +msgstr ":mod:`unittest` --- Infraestructura de tests unitarios" #: ../Doc/library/unittest.rst:12 msgid "**Source code:** :source:`Lib/unittest/__init__.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/unittest/__init__.py`" #: ../Doc/library/unittest.rst:16 msgid "" "(If you are already familiar with the basic concepts of testing, you might " "want to skip to :ref:`the list of assert methods `.)" msgstr "" +"(Si ya estás familiarizado con los conceptos básicos de realización de " +"tests, puedes saltar a :ref:`la lista de métodos de aserción `.)" #: ../Doc/library/unittest.rst:19 msgid "" @@ -42,16 +51,24 @@ msgid "" "for tests, aggregation of tests into collections, and independence of the " "tests from the reporting framework." msgstr "" +"La infraestructura de tests unitarios :mod:`unittest` se inspiró en primera " +"instancia en JUnit y ofrece aspectos similares a las principales estructuras " +"de tests unitarios más importantes de otros lenguajes. Da soporte a " +"automatización de tests, inicialización compartida, código de cierre de los " +"tests, agregación de los tests en colecciones e independencia de los tests " +"de la infraestructura que los reporta." #: ../Doc/library/unittest.rst:25 msgid "" "To achieve this, :mod:`unittest` supports some important concepts in an " "object-oriented way:" msgstr "" +"Para conseguir esto, :mod:`unittest` da soporte a ciertos conceptos " +"importantes de una forma orientada a objetos:" #: ../Doc/library/unittest.rst:32 msgid "test fixture" -msgstr "" +msgstr "configuración de prueba (*fixture*)" #: ../Doc/library/unittest.rst:29 msgid "" @@ -60,10 +77,14 @@ msgid "" "example, creating temporary or proxy databases, directories, or starting a " "server process." msgstr "" +"Un :dfn:`test fixture` representa los preparativos para realizar una o más " +"pruebas y las acciones de limpieza asociadas. Esto puede incluir, por " +"ejemplo, la creación de bases de datos temporales, directorios o el arranque " +"de procesos del servidor." #: ../Doc/library/unittest.rst:37 msgid "test case" -msgstr "" +msgstr "caso de prueba" #: ../Doc/library/unittest.rst:35 msgid "" @@ -71,20 +92,26 @@ msgid "" "specific response to a particular set of inputs. :mod:`unittest` provides a " "base class, :class:`TestCase`, which may be used to create new test cases." msgstr "" +"Un :dfn:`test case` es la unidad mínima de prueba. Verifica la respuesta " +"específica a un juego particular de entradas. :mod:`unittest` proporciona " +"una clase base, :class:`TestCase`, que se puede utilizar para crear nuevos " +"casos de uso." #: ../Doc/library/unittest.rst:41 msgid "test suite" -msgstr "" +msgstr "conjunto de pruebas" #: ../Doc/library/unittest.rst:40 msgid "" "A :dfn:`test suite` is a collection of test cases, test suites, or both. It " "is used to aggregate tests that should be executed together." msgstr "" +"Un :dfn:`test suite` es una colección de casos de prueba, juegos de prueba o " +"ambos. Se usa para agrupar pruebas que se han de ejecutar juntas." #: ../Doc/library/unittest.rst:48 msgid "test runner" -msgstr "" +msgstr "ejecutor de pruebas" #: ../Doc/library/unittest.rst:44 msgid "" @@ -93,60 +120,78 @@ msgid "" "interface, a textual interface, or return a special value to indicate the " "results of executing the tests." msgstr "" +"Un :dfn:`test runner` es un componente que dirige la ejecución de las " +"pruebas y proporciona un resultado. El ejecutor puede disponer de una " +"interfaz gráfica, de texto o devolver un valor especial que indique el " +"resultado de la ejecución de las pruebas." #: ../Doc/library/unittest.rst:53 msgid "Module :mod:`doctest`" -msgstr "" +msgstr "Módulo :mod:`doctest`" #: ../Doc/library/unittest.rst:53 msgid "Another test-support module with a very different flavor." -msgstr "" +msgstr "Otro módulo de soporte a pruebas con una solución muy diferente." #: ../Doc/library/unittest.rst:57 msgid "" "`Simple Smalltalk Testing: With Patterns `_" msgstr "" +"`Simple Smalltalk Testing: With Patterns `_" #: ../Doc/library/unittest.rst:56 msgid "" "Kent Beck's original paper on testing frameworks using the pattern shared " "by :mod:`unittest`." msgstr "" +"El documento original de Kent Beck sobre infraestructuras de prueba mediante " +"el patrón que utiliza :mod:`unittest`." #: ../Doc/library/unittest.rst:61 msgid "`pytest `_" -msgstr "" +msgstr "`pytest `_" #: ../Doc/library/unittest.rst:60 msgid "" "Third-party unittest framework with a lighter-weight syntax for writing " "tests. For example, ``assert func(10) == 42``." msgstr "" +"Una infraestructura de pruebas unitarias de otro proveedor con una sintaxis " +"más ligera de escritura de pruebas, por ejemplo: ``assert func(10) == 42``." #: ../Doc/library/unittest.rst:65 msgid "" "`The Python Testing Tools Taxonomy `_" msgstr "" +"`The Python Testing Tools Taxonomy `_" #: ../Doc/library/unittest.rst:64 msgid "" "An extensive list of Python testing tools including functional testing " "frameworks and mock object libraries." msgstr "" +"Una lista extensa de herramientas de prueba para Python incluyendo " +"infraestructuras de pruebas funcionales y librerías de objetos sucedáneos." #: ../Doc/library/unittest.rst:69 msgid "" "`Testing in Python Mailing List `_" msgstr "" +"`Testing in Python Mailing List `_" #: ../Doc/library/unittest.rst:68 msgid "" "A special-interest-group for discussion of testing, and testing tools, in " "Python." msgstr "" +"Grupo especializado en debate sobre las pruebas y las herramientas de prueba " +"de Python." #: ../Doc/library/unittest.rst:71 msgid "" @@ -158,10 +203,17 @@ msgid "" "`Jenkins `_ or `Travis-CI `_, or " "`AppVeyor `_." msgstr "" +"El script :file:`Tools/unittestgui/unittestgui.py` de la distribución de " +"fuentes de Python es una herramienta gráfica para el descubrimiento y " +"ejecución de pruebas. Está orientado sobre todo a principiantes en el tema " +"de pruebas. Para entornos de producción se recomienda que las pruebas sean " +"dirigidas por un sistema de integración continua como `Buildbot `_, `Jenkins `_ o `Hudson `_." #: ../Doc/library/unittest.rst:82 msgid "Basic example" -msgstr "" +msgstr "Ejemplo sencillo" #: ../Doc/library/unittest.rst:84 msgid "" @@ -169,10 +221,14 @@ msgid "" "running tests. This section demonstrates that a small subset of the tools " "suffice to meet the needs of most users." msgstr "" +"El módulo :mod:`unittest` proporciona un conjunto de herramientas para " +"construir y ejecutar pruebas. Esta sección demuestra que un pequeño " +"subconjunto de las herramientas es suficiente para satisfacer las " +"necesidades de la mayoría." #: ../Doc/library/unittest.rst:88 msgid "Here is a short script to test three string methods::" -msgstr "" +msgstr "He aquí un breve script para probar estros tres métodos de cadena::" #: ../Doc/library/unittest.rst:112 msgid "" @@ -181,6 +237,10 @@ msgid "" "``test``. This naming convention informs the test runner about which " "methods represent tests." msgstr "" +"Para crear un caso de prueba se genera una subclase de :class:`unittest." +"TestCase`. Las tres pruebas se definen con métodos cuyos nombres comienzan " +"por las letras ``test``. Esta convención sobre nombres indica al ejecutor de " +"pruebas qué métodos representan pruebas." #: ../Doc/library/unittest.rst:117 msgid "" @@ -191,6 +251,13 @@ msgid "" "instead of the :keyword:`assert` statement so the test runner can accumulate " "all test results and produce a report." msgstr "" +"El quid de cada test es la llamada a :meth:`~TestCase.assertEqual` para " +"verificar un resultado esperado; :meth:`~TestCase.assertTrue` o :meth:" +"`~TestCase.assertFalse` para verificar una condición; o :meth:`~TestCase." +"assertRaises` para asegurar que se lanza una excepción específica. Se " +"utilizan estos métodos en lugar de la sentencia :keyword:`assert` para que " +"el ejecutor de pruebas pueda acumular todos los resultados de la prueba de " +"cara a realizar un informe." #: ../Doc/library/unittest.rst:124 msgid "" @@ -199,6 +266,10 @@ msgid "" "method. They are covered in more detail in the section :ref:`organizing-" "tests`." msgstr "" +"Los métodos :meth:`~TestCase.setUp` y :meth:`~TestCase.tearDown` permiten " +"definir instrucciones que han de ser ejecutadas antes y después, " +"respectivamente, de cada método de prueba. Se describen con mas detalle en " +"la sección :ref:`organizing-tests`." #: ../Doc/library/unittest.rst:128 msgid "" @@ -206,6 +277,10 @@ msgid "" "provides a command-line interface to the test script. When run from the " "command line, the above script produces an output that looks like this::" msgstr "" +"El bloque final muestra un modo sencillo de ejecutar las pruebas. :func:" +"`unittest.main` proporciona una interfaz de línea de órdenes para el script " +"de prueba. Cuando se ejecuta desde la línea de órdenes, el script anterior " +"produce una salida como::" #: ../Doc/library/unittest.rst:138 msgid "" @@ -213,6 +288,9 @@ msgid "" "main` to enable a higher level of verbosity, and produce the following " "output::" msgstr "" +"Si se le pasa una opción ``-v`` al script de prueba, se establecerá un nivel " +"mayor de detalle del proceso de :func:`unittest.main` y se obtendrá la " +"siguiente salida::" #: ../Doc/library/unittest.rst:150 msgid "" @@ -220,26 +298,35 @@ msgid "" "which are sufficient to meet many everyday testing needs. The remainder of " "the documentation explores the full feature set from first principles." msgstr "" +"Los ejemplos anteriores muestra las características más usuales de :mod:" +"`unittest`, que son suficientes para solventar las necesidades cotidianas de " +"pruebas. El resto de la documentación explora el juego completo de " +"características, que abundan en los mismos principios." #: ../Doc/library/unittest.rst:158 msgid "Command-Line Interface" -msgstr "" +msgstr "Interfaz de línea de comandos" #: ../Doc/library/unittest.rst:160 msgid "" "The unittest module can be used from the command line to run tests from " "modules, classes or even individual test methods::" msgstr "" +"Se puede usar el módulo `unittest` desde la línea de órdenes para ejecutar " +"pruebas de módulos, clases o hasta métodos de prueba individuales::" #: ../Doc/library/unittest.rst:167 msgid "" "You can pass in a list with any combination of module names, and fully " "qualified class or method names." msgstr "" +"Se puede pasar una lista con cualquier combinación de nombres de módulo, así " +"como clases o métodos completamente cualificados." #: ../Doc/library/unittest.rst:170 msgid "Test modules can be specified by file path as well::" msgstr "" +"Se puede especificar los módulos de prueba por ruta de fichero también::" #: ../Doc/library/unittest.rst:174 msgid "" @@ -249,35 +336,47 @@ msgid "" "separators into '.'. If you want to execute a test file that isn't " "importable as a module you should execute the file directly instead." msgstr "" +"Esto permite usar el completado automático de nombre de fichero de la shell " +"para especificar el módulo de pruebas. El fichero especificado aún debe ser " +"susceptible de importarse como módulo. La ruta se convierte en nombre de " +"módulo eliminando '.py' y convirtiendo el separador de directorios por '.'. " +"Si se desea ejecutar un fichero de prueba que no se puede importar como " +"módulo, se ha de ejecutar el fichero directamente." #: ../Doc/library/unittest.rst:180 msgid "" "You can run tests with more detail (higher verbosity) by passing in the -v " "flag::" msgstr "" +"Se pueden ejecutar las pruebas con más nivel de detalle (mayor verbosidad) " +"pasando el parámetro `-v`::" #: ../Doc/library/unittest.rst:184 msgid "" "When executed without arguments :ref:`unittest-test-discovery` is started::" msgstr "" +"Cuando se ejecuta sin argumentos, se inicia :ref:`unittest-test-discovery`::" #: ../Doc/library/unittest.rst:188 msgid "For a list of all the command-line options::" -msgstr "" +msgstr "Para obtener una lista de todas las opciones de línea de órdenes::" #: ../Doc/library/unittest.rst:192 msgid "" "In earlier versions it was only possible to run individual test methods and " "not modules or classes." msgstr "" +"En versiones anteriores sólo era posible ejecutar métodos de prueba " +"individuales, pero no módulos ni clases." #: ../Doc/library/unittest.rst:198 msgid "Command-line options" -msgstr "" +msgstr "Opciones de la línea de órdenes" #: ../Doc/library/unittest.rst:200 msgid ":program:`unittest` supports these command-line options:" msgstr "" +":program:`unittest` da soporte a las siguientes opciones de línea de órdenes:" #: ../Doc/library/unittest.rst:206 msgid "" @@ -285,6 +384,10 @@ msgid "" "run. Output during a passing test is discarded. Output is echoed normally on " "test fail or error and is added to the failure messages." msgstr "" +"Los flujos de datos de salida estándar y error estándar se acumulan en un " +"búfer durante la ejecución de pruebas. La salida de las pruebas correctas se " +"descarta. La salida de las pruebas que fallan o devuelven un error se añade " +"a los mensajes de fallo." #: ../Doc/library/unittest.rst:212 msgid "" @@ -292,15 +395,21 @@ msgid "" "then reports all the results so far. A second :kbd:`Control-C` raises the " "normal :exc:`KeyboardInterrupt` exception." msgstr "" +"La pulsación de :kbd:`Control-C` durante la ejecución de pruebas espera a " +"que termine la prueba en curso y da un informe de los resultados hasta ese " +"momento. Una segunda pulsación de :kbd:`Control-C` lanza la excepción :exc:" +"`KeyboardInterrupt` usual." #: ../Doc/library/unittest.rst:216 msgid "" "See `Signal Handling`_ for the functions that provide this functionality." msgstr "" +"Consultar en `Gestión de señales`_ las funciones que proporcionan esta " +"funcionalidad." #: ../Doc/library/unittest.rst:220 msgid "Stop the test run on the first error or failure." -msgstr "" +msgstr "Finaliza la ejecución tras el primer error o fallo." #: ../Doc/library/unittest.rst:224 msgid "" @@ -308,6 +417,10 @@ msgid "" "option may be used multiple times, in which case all test cases that match " "of the given patterns are included." msgstr "" +"Ejecutar solamente los métodos y clases de prueba que coincidan con el " +"patrón o subcadena. Esta opción se puede usar más de una vez, en cuyo caso " +"se incluirán todos los casos de prueba que coincidan con cualquiera de los " +"patrones dados." #: ../Doc/library/unittest.rst:228 msgid "" @@ -315,12 +428,17 @@ msgid "" "test name using :meth:`fnmatch.fnmatchcase`; otherwise simple case-sensitive " "substring matching is used." msgstr "" +"Los patrones que contengan un comodín (``*``) se comprueban contra el nombre " +"de la prueba usando :meth:`fnmatch.fnmatchcase`; si no lo contienen, se usa " +"una comprobación de contenido simple sensible a mayúsculas." #: ../Doc/library/unittest.rst:232 msgid "" "Patterns are matched against the fully qualified test method name as " "imported by the test loader." msgstr "" +"Los patrones se comprueban contra el nombre del método completamente " +"cualificado como lo importa el cargador de pruebas." #: ../Doc/library/unittest.rst:235 msgid "" @@ -328,32 +446,37 @@ msgid "" "``bar_tests.SomeTest.test_foo``, but not ``bar_tests.FooTest." "test_something``." msgstr "" +"Por ejemplo, ``-k foo`` coincide con ``foo_tests.SomeTest.test_something`` y " +"con ``bar_tests.SomeTest.test_foo``, pero no con ``bar_tests.FooTest." +"test_something``." #: ../Doc/library/unittest.rst:240 msgid "Show local variables in tracebacks." -msgstr "" +msgstr "Mostrar las variables locales en las trazas." #: ../Doc/library/unittest.rst:242 msgid "The command-line options ``-b``, ``-c`` and ``-f`` were added." -msgstr "" +msgstr "Se añadieron las opciones de línea de órdenes ``-b``, ``-c`` y ``-f``." #: ../Doc/library/unittest.rst:245 msgid "The command-line option ``--locals``." -msgstr "" +msgstr "La opción de línea de órdenes ``--locals``." #: ../Doc/library/unittest.rst:248 msgid "The command-line option ``-k``." -msgstr "" +msgstr "La opción de línea de órdenes ``-k``." #: ../Doc/library/unittest.rst:251 msgid "" "The command line can also be used for test discovery, for running all of the " "tests in a project or just a subset." msgstr "" +"La línea de órdenes también se puede usar para descubrimiento de pruebas, " +"para ejecutar todas las pruebas de un proyecto o un subconjunto de éstas." #: ../Doc/library/unittest.rst:258 msgid "Test Discovery" -msgstr "" +msgstr "Descubrimiento de pruebas" #: ../Doc/library/unittest.rst:262 msgid "" @@ -364,12 +487,21 @@ msgid "" "(this means that their filenames must be valid :ref:`identifiers " "`)." msgstr "" +"Unittest da soporte al descubrimiento de pruebas simples. Para ser " +"compatible con el descubrimiento de pruebas, todos los ficheros de prueba " +"deben ser :ref:`módulos ` o :ref:`paquetes ` " +"(incluyendo :term:`paquetes nominales `) importables " +"desde el directorio superior del proyecto (por lo que sus nombres han de " +"ser :ref:`identificadores ` válidos)." #: ../Doc/library/unittest.rst:269 msgid "" "Test discovery is implemented in :meth:`TestLoader.discover`, but can also " "be used from the command line. The basic command-line usage is::" msgstr "" +"El descubrimiento de pruebas está implementado en :meth:`TestLoader." +"discover`, pero también se puede usar desde la línea de órdenes. La línea de " +"órdenes básica es::" #: ../Doc/library/unittest.rst:277 msgid "" @@ -377,26 +509,30 @@ msgid "" "unittest discover``. If you want to pass arguments to test discovery the " "``discover`` sub-command must be used explicitly." msgstr "" +"Como atajo, ``python -m unittest`` es el equivalente de ``python -m unittest " +"discover``. Si se desea pasar argumentos al descubrimiento de pruebas, hay " +"que pasar la sub-orden ``discover`` explícitamente." #: ../Doc/library/unittest.rst:281 msgid "The ``discover`` sub-command has the following options:" -msgstr "" +msgstr "La sub-orden ``discover`` cuenta con las siguientes opciones:" #: ../Doc/library/unittest.rst:287 msgid "Verbose output" -msgstr "" +msgstr "Salida verbosa" #: ../Doc/library/unittest.rst:291 msgid "Directory to start discovery (``.`` default)" -msgstr "" +msgstr "Directorio de inicio para el descubrimiento (``.`` si se omite)" #: ../Doc/library/unittest.rst:295 msgid "Pattern to match test files (``test*.py`` default)" msgstr "" +"Patrón para la búsqueda de ficheros de prueba (``test*.py`` si se omite)" #: ../Doc/library/unittest.rst:299 msgid "Top level directory of project (defaults to start directory)" -msgstr "" +msgstr "Directorio superior del proyecto (el directorio inicial si se omite)" #: ../Doc/library/unittest.rst:301 msgid "" @@ -404,6 +540,9 @@ msgid "" "positional arguments in that order. The following two command lines are " "equivalent::" msgstr "" +"Las opciones :option:`-s`, :option:`-p`, y :option:`-t` se pueden pasar por " +"posición en el orden mostrado. Las siguientes líneas de órdenes son " +"equivalentes::" #: ../Doc/library/unittest.rst:308 msgid "" @@ -412,6 +551,10 @@ msgid "" "supply will then be imported and its location on the filesystem will be used " "as the start directory." msgstr "" +"Además de pasar una ruta, es posible pasar el nombre de un paquete, por " +"ejemplo ``myproject.subpackage.test``, como directorio de inicio. El nombre " +"de paquete proporcionado será importado y su ubicación en el sistema de " +"archivos será utilizada como directorio de inicio." #: ../Doc/library/unittest.rst:315 msgid "" @@ -420,6 +563,11 @@ msgid "" "into package names to import. For example :file:`foo/bar/baz.py` will be " "imported as ``foo.bar.baz``." msgstr "" +"El descubrimiento de pruebas carga las pruebas importándolas. Una vez que el " +"descubrimiento ha encontrado todos los ficheros de prueba a partir del " +"directorio inicial, especificado, convierte las rutas en nombres de paquetes " +"a importar. Por ejemplo, :file:`foo/bar/baz.py` será importado como ``foo." +"bar.baz``." #: ../Doc/library/unittest.rst:320 msgid "" @@ -427,6 +575,10 @@ msgid "" "different copy of the package then the import *could* happen from the wrong " "place. If this happens test discovery will warn you and exit." msgstr "" +"Si hay un paquete instalado globalmente y se intenta hacer un descubrimiento " +"sobre una copia diferente a la instalada del paquete, *podría* ocurrir que " +"se importe la versión incorrecta. Si ocurre esto, el descubrimiento lanza " +"una advertencia y abandona." #: ../Doc/library/unittest.rst:324 msgid "" @@ -434,12 +586,17 @@ msgid "" "directory then discover assumes that whichever location it imports from is " "the location you intended, so you will not get the warning." msgstr "" +"Si se proporciona el directorio de inicio como nombre de paquete en lugar de " +"ruta a un directorio, el descubrimiento asume que la ubicación importada es " +"la deseada, así que no se da la advertencia descrita." #: ../Doc/library/unittest.rst:329 msgid "" "Test modules and packages can customize test loading and discovery by " "through the `load_tests protocol`_." msgstr "" +"Los módulos y paquetes de prueba pueden personalizar la carta y " +"descubrimiento de pruebas mediante el `protocolo load_tests`_." #: ../Doc/library/unittest.rst:332 msgid "" @@ -447,10 +604,14 @@ msgid "" "start directory. Note that you need to the top level directory too. (e.g. " "``python -m unittest discover -s root/namespace -t root``)." msgstr "" +"El descubrimiento de pruebas admite :term:`paquetes nominales ` para el directorio de inicio. Tenga en cuenta que también se " +"necesita el directorio de nivel superior. (por ejemplo, ``python -m unittest " +"discover -s root/namespace -t root``)." #: ../Doc/library/unittest.rst:341 msgid "Organizing test code" -msgstr "" +msgstr "Organización del código de pruebas" #: ../Doc/library/unittest.rst:343 msgid "" @@ -460,6 +621,12 @@ msgid "" "instances. To make your own test cases you must write subclasses of :class:" "`TestCase` or use :class:`FunctionTestCase`." msgstr "" +"Los bloques de construcción básicos de las pruebas unitarias son los :dfn:" +"`test cases`, escenarios simples que se han de configurar y cuya corrección " +"hay que comprobar. En :mod:`unittest`, los casos de prueba están " +"representados por instancias de :class:`unittest.TestCase`. Para crear " +"nuevos casos de prueba, hay que escribir subclases de :class:`TestCase` o " +"usar :class:`FunctionTestCase`." #: ../Doc/library/unittest.rst:349 msgid "" @@ -467,6 +634,9 @@ msgid "" "contained, such that it can be run either in isolation or in arbitrary " "combination with any number of other test cases." msgstr "" +"El código de pruebas de una instancia de :class:`TestCase` debería ser " +"completamente autónomo, de tal modo que se pueda ejecutar aisladamente o en " +"una combinación arbitraria con otras clases de prueba." #: ../Doc/library/unittest.rst:353 msgid "" @@ -474,6 +644,9 @@ msgid "" "(i.e. a method whose name starts with ``test``) in order to perform specific " "testing code::" msgstr "" +"La subclase más simple de :class:`TestCase` se limita a implementar un " +"método test (o un método que empiece por ``test``) para realizar código de " +"prueba específico::" #: ../Doc/library/unittest.rst:364 msgid "" @@ -483,6 +656,11 @@ msgid "" "will identify the test case as a :dfn:`failure`. Any other exceptions will " "be treated as :dfn:`errors`." msgstr "" +"Adviértase que para probar algo, usamos uno de los métodos :meth:`assert\\*` " +"proporcionados por la clase base :class:`TestCase`. Si la prueba no tiene " +"éxito, se lanzará una excepción con un mensaje explicativo y :mod:`unittest` " +"identificará el caso como :dfn:`failure`. Cualquier otra excepción se " +"considerará un :dfn:`errors`." #: ../Doc/library/unittest.rst:370 msgid "" @@ -491,12 +669,18 @@ msgid "" "setUp`, which the testing framework will automatically call for every single " "test we run::" msgstr "" +"Las pruebas pueden ser muchas y su preparación puede ser repetitiva. Por " +"suerte, se puede \"sacar factor común\" a la preparación implementando un " +"método :meth:`~TestCase.setUp`, al que la infraestructura de prueba llamará " +"para cada prueba que se ejecute::" #: ../Doc/library/unittest.rst:391 msgid "" "The order in which the various tests will be run is determined by sorting " "the test method names with respect to the built-in ordering for strings." msgstr "" +"El orden en que se ejecutan las diversas pruebas se determina por orden " +"alfabético de los nombres de métodos de prueba." #: ../Doc/library/unittest.rst:395 msgid "" @@ -504,18 +688,25 @@ msgid "" "running, the framework will consider the test to have suffered an error, and " "the test method will not be executed." msgstr "" +"Si el método :meth:`~TestCase.setUp` lanza una excepción mientras se ejecuta " +"la prueba, la infraestructura considerará que la prueba ha sufrido un error " +"y no se ejecutará el método de prueba propiamente dicho." #: ../Doc/library/unittest.rst:399 msgid "" "Similarly, we can provide a :meth:`~TestCase.tearDown` method that tidies up " "after the test method has been run::" msgstr "" +"Análogamente, se puede proporcionar un método :meth:`~TestCase.tearDown` que " +"haga limpieza después de que se ejecute el método de prueba::" #: ../Doc/library/unittest.rst:411 msgid "" "If :meth:`~TestCase.setUp` succeeded, :meth:`~TestCase.tearDown` will be run " "whether the test method succeeded or not." msgstr "" +"Si :meth:`~TestCase.setUp` se ejecuta sin errores, :meth:`~TestCase." +"tearDown` se ejecutará tanto si el método de prueba tuvo éxito como si no." #: ../Doc/library/unittest.rst:414 msgid "" @@ -525,6 +716,11 @@ msgid "" "`~TestCase.tearDown`, and :meth:`~TestCase.__init__` will be called once per " "test." msgstr "" +"Un entorno de trabajo así para el código de pruebas se llama :dfn:`test " +"fixture` . Se crea una nueva instancia de TestCase como juego de datos de " +"prueba que se utiliza para cada método de prueba. De este modo, :meth:" +"`~TestCase.setUp`, :meth:`~TestCase.tearDown` y :meth:`~TestCase.__init__` " +"se llamarán una vez por prueba." #: ../Doc/library/unittest.rst:420 msgid "" @@ -535,12 +731,20 @@ msgid "" "do the right thing and collect all the module's test cases for you and " "execute them." msgstr "" +"Se recomienda usar implementaciones de `TestCase` para agrupar las pruebas " +"de acuerdo con las características probadas. :mod:`unittest` proporciona una " +"mecanismo para esto: el :dfn:`test suite`, representado por la clase :class:" +"`TestSuite` de :mod:`unittest`. En la mayor parte de los casos, llamar a :" +"func:`unittest.main` hará lo correcto y recolectará todos los casos de " +"prueba del módulo para su ejecución." #: ../Doc/library/unittest.rst:427 msgid "" "However, should you want to customize the building of your test suite, you " "can do it yourself::" msgstr "" +"Sin embargo, si se desea personalizar la construcción del paquete de " +"pruebas, se puede hacer::" #: ../Doc/library/unittest.rst:440 msgid "" @@ -549,44 +753,60 @@ msgid "" "are several advantages to placing the test code in a separate module, such " "as :file:`test_widget.py`:" msgstr "" +"Se puede poner las definiciones de los casos de prueba y de los paquetes de " +"prueba en los mismos módulos que el código que prueban.(tal como :file:" +"`widget.py`), pero sacarlos a un módulo aparte como :file:`test_widget.py` " +"tiene diversas ventajas:" #: ../Doc/library/unittest.rst:445 msgid "The test module can be run standalone from the command line." msgstr "" +"El módulo de pruebas se puede ejecutar aisladamente desde la línea de " +"órdenes." #: ../Doc/library/unittest.rst:447 msgid "The test code can more easily be separated from shipped code." msgstr "" +"El código de pruebas se puede separar con más facilidad del código de " +"producción." #: ../Doc/library/unittest.rst:449 msgid "" "There is less temptation to change test code to fit the code it tests " "without a good reason." msgstr "" +"Disminuye la tentación de cambiar el código de prueba para ajustarse al " +"código bajo prueba." #: ../Doc/library/unittest.rst:452 msgid "" "Test code should be modified much less frequently than the code it tests." msgstr "" +"El código de pruebas debería modificarse con mucha menor frecuencia que el " +"código bajo prueba." #: ../Doc/library/unittest.rst:454 msgid "Tested code can be refactored more easily." -msgstr "" +msgstr "Es más sencillo refactorizar el código bajo prueba." #: ../Doc/library/unittest.rst:456 msgid "" "Tests for modules written in C must be in separate modules anyway, so why " "not be consistent?" msgstr "" +"El código para probar módulos escritos en C ha de estar en módulos aparte, " +"así que ¿por qué no mantener la consistencia?" #: ../Doc/library/unittest.rst:459 msgid "" "If the testing strategy changes, there is no need to change the source code." msgstr "" +"Si cambia la estrategia de prueba, no hay razón para cambiar el código " +"fuente principal." #: ../Doc/library/unittest.rst:465 msgid "Re-using old test code" -msgstr "" +msgstr "Reutilización de código de prueba anterior" #: ../Doc/library/unittest.rst:467 msgid "" @@ -594,6 +814,9 @@ msgid "" "to run from :mod:`unittest`, without converting every old test function to " "a :class:`TestCase` subclass." msgstr "" +"Habrá personas que tengan código de prueba previo que deseen ejecutar desde :" +"mod:`unittest`, sin conversión previa de cada antigua función de prueba a " +"una subclase de :class:`TestCase`." #: ../Doc/library/unittest.rst:471 msgid "" @@ -601,16 +824,22 @@ msgid "" "This subclass of :class:`TestCase` can be used to wrap an existing test " "function. Set-up and tear-down functions can also be provided." msgstr "" +"Por esto, :mod:`unittest` proporciona una clase :class:`FunctionTestCase`. " +"Se puede utilizar esta subclase de :class:`TestCase` para envolver una " +"función de prueba existente. Se pueden proporcionar también funciones de " +"preparación y desmontaje." #: ../Doc/library/unittest.rst:475 msgid "Given the following test function::" -msgstr "" +msgstr "Dada la siguiente función de prueba::" #: ../Doc/library/unittest.rst:482 msgid "" "one can create an equivalent test case instance as follows, with optional " "set-up and tear-down methods::" msgstr "" +"se puede crear una instancia de caso de prueba de la siguiente manera, con " +"métodos opcionales de preparación y desmontaje::" #: ../Doc/library/unittest.rst:491 msgid "" @@ -619,6 +848,11 @@ msgid "" "is not recommended. Taking the time to set up proper :class:`TestCase` " "subclasses will make future test refactorings infinitely easier." msgstr "" +"Aunque se puede usar :class:`FunctionTestCase` para convertir rápidamente " +"unas pruebas existentes a un sistema basado en :mod:`unittest`, no es una " +"vía recomendada. Tomarse el tiempo de construir subclases bien construidas " +"de :class:`TestCase` hará las futuras refactorizaciones de pruebas futura " +"considerablemente más fácil." #: ../Doc/library/unittest.rst:496 msgid "" @@ -627,10 +861,14 @@ msgid "" "class that can automatically build :class:`unittest.TestSuite` instances " "from the existing :mod:`doctest`\\ -based tests." msgstr "" +"En algunos casos, los tests existentes pueden haber sido escritos usando el " +"módulo :mod:`doctest`. En ese caso, :mod:`doctest` tiene una clase :class:" +"`DocTestSuite` que puede construir automáticamente instancias de :class:" +"`unittest.TestSuite` partiendo de los test basados en :mod:`doctest`." #: ../Doc/library/unittest.rst:505 msgid "Skipping tests and expected failures" -msgstr "" +msgstr "Omitir tests y fallos esperados" #: ../Doc/library/unittest.rst:509 msgid "" @@ -639,6 +877,10 @@ msgid "" "a test that is broken and will fail, but shouldn't be counted as a failure " "on a :class:`TestResult`." msgstr "" +"Unittest soporta omitir métodos individuales de tests e incluso clases " +"completas de tests. Además, soporta marcar un test como un \"fallo esperado" +"\", un test que está roto y va a fallar, pero no debería ser contado como " +"fallo en :class:`TestResult`." #: ../Doc/library/unittest.rst:514 msgid "" @@ -647,28 +889,34 @@ msgid "" "skipTest` within a :meth:`~TestCase.setUp` or test method, or raising :exc:" "`SkipTest` directly." msgstr "" +"Omitir un test es solo cuestión de emplear el :term:`decorator` :func:`skip` " +"o una de sus variantes condicionales, llamando a :meth:`TestCase.skipTest` " +"dentro de :meth:`~TestCase.setUp` o en un método de test, o lanzando :exc:" +"`SkipTest` directamente." #: ../Doc/library/unittest.rst:518 msgid "Basic skipping looks like this::" -msgstr "" +msgstr "La omisión más básica tiene la siguiente forma:" #: ../Doc/library/unittest.rst:543 msgid "This is the output of running the example above in verbose mode::" -msgstr "" +msgstr "Esta es la salida de ejecutar el ejemplo superior en modo verboso::" #: ../Doc/library/unittest.rst:555 msgid "Classes can be skipped just like methods::" -msgstr "" +msgstr "Las clases pueden ser omitidas igual que los métodos::" #: ../Doc/library/unittest.rst:562 msgid "" ":meth:`TestCase.setUp` can also skip the test. This is useful when a " "resource that needs to be set up is not available." msgstr "" +":meth:`TestCase.setUp` puede omitir también el test. Esto es útil cuando un " +"recurso que necesita ser puesto a punto no está disponible." #: ../Doc/library/unittest.rst:565 msgid "Expected failures use the :func:`expectedFailure` decorator. ::" -msgstr "" +msgstr "Los fallos esperados emplean el decorador :func:`expectedFailure`. ::" #: ../Doc/library/unittest.rst:572 msgid "" @@ -676,26 +924,33 @@ msgid "" "calls :func:`skip` on the test when it wants it to be skipped. This " "decorator skips the test unless the passed object has a certain attribute::" msgstr "" +"Es fácil lanzar tus propios decoradores que omitan haciendo un decorador que " +"llame a :func:`skip` en el test cuando quiere ser omitido. Este decorador " +"omite el test a menos que el objeto pasado tenga un cierto atributo::" #: ../Doc/library/unittest.rst:581 msgid "" "The following decorators and exception implement test skipping and expected " "failures:" msgstr "" +"Los siguientes decoradores y la excepción implementan la omisión de tests y " +"los fallos esperados:" #: ../Doc/library/unittest.rst:585 msgid "" "Unconditionally skip the decorated test. *reason* should describe why the " "test is being skipped." msgstr "" +"Omitir incondicionalmente el test decorado. *reason* debe describir porqué " +"el test está siendo omitido." #: ../Doc/library/unittest.rst:590 msgid "Skip the decorated test if *condition* is true." -msgstr "" +msgstr "Omitir el test decorado si *condition* es verdadero." #: ../Doc/library/unittest.rst:594 msgid "Skip the decorated test unless *condition* is true." -msgstr "" +msgstr "Omitir el test decorado a menos que *condition* sea verdadero." #: ../Doc/library/unittest.rst:598 msgid "" @@ -703,16 +958,20 @@ msgid "" "it will be considered a success. If the test passes, it will be considered " "a failure." msgstr "" +"Marca el test como un fallo esperado. Si el test falla será considerado un " +"éxito. Si el test pasa, será considerado un fallo." #: ../Doc/library/unittest.rst:604 msgid "This exception is raised to skip a test." -msgstr "" +msgstr "Esta excepción es lanzada para omitir un test." #: ../Doc/library/unittest.rst:606 msgid "" "Usually you can use :meth:`TestCase.skipTest` or one of the skipping " "decorators instead of raising this directly." msgstr "" +"Normalmente puedes usar directamente :meth:`TestCase.skipTest` o uno de los " +"decoradores de omisión en vez de lanzar esta excepción." #: ../Doc/library/unittest.rst:609 msgid "" @@ -721,10 +980,14 @@ msgid "" "setUpClass` or :meth:`~TestCase.tearDownClass` run. Skipped modules will not " "have :func:`setUpModule` or :func:`tearDownModule` run." msgstr "" +"Los tests omitidos no ejecutarán :meth:`~TestCase.setUp` o :meth:`~TestCase." +"tearDown`. Las clases omitidas no ejecutarán :meth:`~TestCase.setUpClass` o :" +"meth:`~TestCase.tearDownClass`. Los módulos omitidos no ejecutarán :func:" +"`setUpModule` o :func:`tearDownModule`." #: ../Doc/library/unittest.rst:617 msgid "Distinguishing test iterations using subtests" -msgstr "" +msgstr "Distinguiendo iteraciones de tests empleando subtests" #: ../Doc/library/unittest.rst:621 msgid "" @@ -732,14 +995,17 @@ msgid "" "parameters, unittest allows you to distinguish them inside the body of a " "test method using the :meth:`~TestCase.subTest` context manager." msgstr "" +"Cuando hay diferencias muy pequeñas entre tus tests, por ejemplo algunos " +"parámetros, unittest te permite distinguirlos dentro del cuerpo de un método " +"de test empleando el administrador de contexto :meth:`~TestCase.subTest` ." #: ../Doc/library/unittest.rst:625 msgid "For example, the following test::" -msgstr "" +msgstr "Por ejemplo, el siguiente test::" #: ../Doc/library/unittest.rst:637 msgid "will produce the following output::" -msgstr "" +msgstr "producirá la siguiente salida:" #: ../Doc/library/unittest.rst:663 msgid "" @@ -747,18 +1013,21 @@ msgid "" "the error would be less easy to diagnose because the value of ``i`` wouldn't " "be displayed::" msgstr "" +"Sin usar un subtest, la ejecución se pararía después del primer fallo, y el " +"error sería más difícil de diagnosticar porque el valor de ``i`` no se " +"mostraría::" #: ../Doc/library/unittest.rst:679 msgid "Classes and functions" -msgstr "" +msgstr "Clases y funciones" #: ../Doc/library/unittest.rst:681 msgid "This section describes in depth the API of :mod:`unittest`." -msgstr "" +msgstr "Esta sección describe en detalle la API de :mod:`unittest`." #: ../Doc/library/unittest.rst:687 msgid "Test cases" -msgstr "" +msgstr "Casos de test" #: ../Doc/library/unittest.rst:691 msgid "" @@ -769,6 +1038,13 @@ msgid "" "drive the tests, and methods that the test code can use to check for and " "report various kinds of failure." msgstr "" +"Las instancias de la clase :class:`TestCase` representan las unidades " +"lógicas de test en el universo de :mod:`unittest`. Esta clase está pensada " +"para ser utilizada como clase base, con los test específicos siendo " +"implementados por subclases concretas. Esta clase implementa la interfaz que " +"necesita el ejecutor de tests para permitirle llevar a cabo los tests, y " +"métodos que el código de test puede utilizar para chequear y reportar " +"distintos tipos de fallo." #: ../Doc/library/unittest.rst:698 msgid "" @@ -776,6 +1052,10 @@ msgid "" "named *methodName*. In most uses of :class:`TestCase`, you will neither " "change the *methodName* nor reimplement the default ``runTest()`` method." msgstr "" +"Cada instancia de :class:`TestCase` ejecutará un solo método base: el " +"método llamado *methodName*. En la mayoría de usos de :class:`TestCase`, no " +"tendrás que cambiar el *methodName* ni reimplementar el método por defecto " +"``runTest()``." #: ../Doc/library/unittest.rst:703 msgid "" @@ -783,6 +1063,9 @@ msgid "" "*methodName*. This makes it easier to experiment with :class:`TestCase` from " "the interactive interpreter." msgstr "" +":class:`TestCase` puede instancias con éxito sin dar un *methodName*. Esto " +"permite experimentar de manera sencilla con :class:`TestCase` en el " +"intérprete interactivo." #: ../Doc/library/unittest.rst:708 msgid "" @@ -791,10 +1074,14 @@ msgid "" "and report failures, and some inquiry methods allowing information about the " "test itself to be gathered." msgstr "" +"Las instancias de :class:`TestCase` proveen tres grupos de métodos: un " +"grupo empleado para ejecutar el test, otro usado para que la implementación " +"del test chequee condiciones y reporte fallos, y algunos métodos de " +"indagación que permiten recopilar información sobre el test en si mismo." #: ../Doc/library/unittest.rst:713 msgid "Methods in the first group (running the test) are:" -msgstr "" +msgstr "Los métodos en el primer grupo (ejecutando el test) son:" #: ../Doc/library/unittest.rst:717 msgid "" @@ -803,6 +1090,11 @@ msgid "" "`SkipTest`, any exception raised by this method will be considered an error " "rather than a test failure. The default implementation does nothing." msgstr "" +"Método llamado para preparar el banco de test. Es invocado inmediatamente " +"antes de llamar al método de test; cualquier excepción lanzada por este " +"método que no sea :exc:`AssertionError` o :exc:`SkipTest` será considerada " +"un error en vez de un fallo del test. La implementación por defecto no hace " +"nada." #: ../Doc/library/unittest.rst:725 msgid "" @@ -816,6 +1108,16 @@ msgid "" "the :meth:`setUp` succeeds, regardless of the outcome of the test method. " "The default implementation does nothing." msgstr "" +"Método llamado inmediatamente después de que se haya llamado el método de " +"prueba y se haya registrado el resultado. Se llama así aunque el método de " +"ensayo haya planteado una excepción, por lo que la aplicación en las " +"subclases puede tener que ser especialmente cuidadosa en cuanto a la " +"comprobación del estado interno. Cualquier excepción, que no sea :exc:" +"`AssertionError` o :exc:`SkipTest`, planteada por este método se " +"considerará un error adicional en lugar de un fallo de la prueba (aumentando " +"así el número total de errores reportados). Este método sólo se llamará si :" +"meth:`setUp` tiene éxito, independientemente del resultado del método de " +"prueba. La implementación por defecto no hace nada." #: ../Doc/library/unittest.rst:738 msgid "" @@ -823,10 +1125,13 @@ msgid "" "``setUpClass`` is called with the class as the only argument and must be " "decorated as a :func:`classmethod`::" msgstr "" +"Un método de clase llamado antes de que los tests en una clase individual " +"sean ejecutados. ``setUpClass`` es llamado con la clase como el único " +"argumento y debe ser decorada como :func:`classmethod`::" #: ../Doc/library/unittest.rst:746 ../Doc/library/unittest.rst:761 msgid "See `Class and Module Fixtures`_ for more details." -msgstr "" +msgstr "Vea `Class and Module Fixtures`_ para más detalles." #: ../Doc/library/unittest.rst:753 msgid "" @@ -834,6 +1139,9 @@ msgid "" "``tearDownClass`` is called with the class as the only argument and must be " "decorated as a :meth:`classmethod`::" msgstr "" +"Un método de clase llamado después de que se hayan realizado tests en una " +"clase individual. ``tearDownClass`` se llama con la clase como único " +"argumento y debe ser decorado como un :meth:`classmethod`::" #: ../Doc/library/unittest.rst:768 msgid "" @@ -842,23 +1150,34 @@ msgid "" "object is created (by calling the :meth:`defaultTestResult` method) and " "used. The result object is returned to :meth:`run`'s caller." msgstr "" +"Ejecutar la prueba, recogiendo el resultado en el objeto :class:" +"`TestResult` pasado como *result*. Si se omite *result* o ``None``, se " +"crea un objeto resultado temporal (llamando al método :meth:" +"`defaultTestResult`) y se emplea ese. El objeto resultante se devuelve al " +"invocador de :meth:`run`." #: ../Doc/library/unittest.rst:774 msgid "" "The same effect may be had by simply calling the :class:`TestCase` instance." msgstr "" +"El mismo efecto puede conseguirse simplemente llamando a la instancia :class:" +"`TestCase`." #: ../Doc/library/unittest.rst:777 msgid "" "Previous versions of ``run`` did not return the result. Neither did calling " "an instance." msgstr "" +"Las versiones previas de ``run`` no retornaban el resultado. Tampoco lo " +"hacía la llamada a una instancia." #: ../Doc/library/unittest.rst:783 msgid "" "Calling this during a test method or :meth:`setUp` skips the current test. " "See :ref:`unittest-skipping` for more information." msgstr "" +"Llamar a esto durante un método de prueba o :meth:`setUp` se salta el test " +"actual. Ver :ref:`unittest-skipping` para más información." #: ../Doc/library/unittest.rst:791 msgid "" @@ -866,16 +1185,21 @@ msgid "" "subtest. *msg* and *params* are optional, arbitrary values which are " "displayed whenever a subtest fails, allowing you to identify them clearly." msgstr "" +"Retorna un gestor de contexto que ejecuta el bloque de código adjunto como " +"un subtest. *msg* y *params* son valores opcionales y arbitrarios que se " +"muestran cuando falla un subtest, permitiéndole identificarlos claramente." #: ../Doc/library/unittest.rst:796 msgid "" "A test case can contain any number of subtest declarations, and they can be " "arbitrarily nested." msgstr "" +"Un caso de test puede contener cualquier número de declaraciones de subtest, " +"y pueden anidarse arbitrariamente." #: ../Doc/library/unittest.rst:799 msgid "See :ref:`subtests` for more information." -msgstr "" +msgstr "Ver :ref:`subtests` para más información." #: ../Doc/library/unittest.rst:806 msgid "" @@ -883,6 +1207,9 @@ msgid "" "by the test to be propagated to the caller, and can be used to support " "running tests under a debugger." msgstr "" +"Realice el test sin recoger el resultado. Esto permite que las excepciones " +"planteadas por el test se propaguen al invocado, y puede utilizarse para " +"apoyar la ejecución de tests bajo un depurador." #: ../Doc/library/unittest.rst:812 msgid "" @@ -890,61 +1217,65 @@ msgid "" "report failures. The following table lists the most commonly used methods " "(see the tables below for more assert methods):" msgstr "" +"La clase :class:`TestCase` proporciona varios métodos de afirmación para " +"comprobar y reportar fallos. En la siguiente tabla se enumeran los métodos " +"más utilizados (consulte las tablas siguientes para ver más métodos de " +"afirmación):" #: ../Doc/library/unittest.rst:817 ../Doc/library/unittest.rst:938 #: ../Doc/library/unittest.rst:1131 ../Doc/library/unittest.rst:1258 msgid "Method" -msgstr "" +msgstr "Método" #: ../Doc/library/unittest.rst:817 ../Doc/library/unittest.rst:938 #: ../Doc/library/unittest.rst:1131 msgid "Checks that" -msgstr "" +msgstr "Comprueba que" #: ../Doc/library/unittest.rst:817 ../Doc/library/unittest.rst:938 #: ../Doc/library/unittest.rst:1131 ../Doc/library/unittest.rst:1258 msgid "New in" -msgstr "" +msgstr "Nuevo en" #: ../Doc/library/unittest.rst:819 msgid ":meth:`assertEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertEqual(a, b) `" #: ../Doc/library/unittest.rst:819 msgid "``a == b``" -msgstr "" +msgstr "``a == b``" #: ../Doc/library/unittest.rst:822 msgid ":meth:`assertNotEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertNotEqual(a, b) `" #: ../Doc/library/unittest.rst:822 msgid "``a != b``" -msgstr "" +msgstr "``a != b``" #: ../Doc/library/unittest.rst:825 msgid ":meth:`assertTrue(x) `" -msgstr "" +msgstr ":meth:`assertTrue(x) `" #: ../Doc/library/unittest.rst:825 msgid "``bool(x) is True``" -msgstr "" +msgstr "``bool(x) is True``" #: ../Doc/library/unittest.rst:828 msgid ":meth:`assertFalse(x) `" -msgstr "" +msgstr ":meth:`assertFalse(x) `" #: ../Doc/library/unittest.rst:828 msgid "``bool(x) is False``" -msgstr "" +msgstr "``bool(x) is False``" #: ../Doc/library/unittest.rst:831 msgid ":meth:`assertIs(a, b) `" -msgstr "" +msgstr ":meth:`assertIs(a, b) `" #: ../Doc/library/unittest.rst:831 msgid "``a is b``" -msgstr "" +msgstr "``a is b``" #: ../Doc/library/unittest.rst:831 ../Doc/library/unittest.rst:834 #: ../Doc/library/unittest.rst:837 ../Doc/library/unittest.rst:840 @@ -956,69 +1287,69 @@ msgstr "" #: ../Doc/library/unittest.rst:1266 ../Doc/library/unittest.rst:1269 #: ../Doc/library/unittest.rst:1272 ../Doc/library/unittest.rst:1275 msgid "3.1" -msgstr "" +msgstr "3.1" #: ../Doc/library/unittest.rst:834 msgid ":meth:`assertIsNot(a, b) `" -msgstr "" +msgstr ":meth:`assertIsNot(a, b) `" #: ../Doc/library/unittest.rst:834 msgid "``a is not b``" -msgstr "" +msgstr "``a is not b``" #: ../Doc/library/unittest.rst:837 msgid ":meth:`assertIsNone(x) `" -msgstr "" +msgstr ":meth:`assertIsNone(x) `" #: ../Doc/library/unittest.rst:837 msgid "``x is None``" -msgstr "" +msgstr "``x is None``" #: ../Doc/library/unittest.rst:840 msgid ":meth:`assertIsNotNone(x) `" -msgstr "" +msgstr ":meth:`assertIsNotNone(x) `" #: ../Doc/library/unittest.rst:840 msgid "``x is not None``" -msgstr "" +msgstr "``x is not None``" #: ../Doc/library/unittest.rst:843 msgid ":meth:`assertIn(a, b) `" -msgstr "" +msgstr ":meth:`assertIn(a, b) `" #: ../Doc/library/unittest.rst:843 msgid "``a in b``" -msgstr "" +msgstr "``a in b``" #: ../Doc/library/unittest.rst:846 msgid ":meth:`assertNotIn(a, b) `" -msgstr "" +msgstr ":meth:`assertNotIn(a, b) `" #: ../Doc/library/unittest.rst:846 msgid "``a not in b``" -msgstr "" +msgstr "``a not in b``" #: ../Doc/library/unittest.rst:849 msgid ":meth:`assertIsInstance(a, b) `" -msgstr "" +msgstr ":meth:`assertIsInstance(a, b) `" #: ../Doc/library/unittest.rst:849 msgid "``isinstance(a, b)``" -msgstr "" +msgstr "``isinstance(a, b)``" #: ../Doc/library/unittest.rst:849 ../Doc/library/unittest.rst:852 #: ../Doc/library/unittest.rst:946 ../Doc/library/unittest.rst:949 #: ../Doc/library/unittest.rst:1154 ../Doc/library/unittest.rst:1157 msgid "3.2" -msgstr "" +msgstr "3.2" #: ../Doc/library/unittest.rst:852 msgid ":meth:`assertNotIsInstance(a, b) `" -msgstr "" +msgstr ":meth:`assertNotIsInstance(a, b) `" #: ../Doc/library/unittest.rst:852 msgid "``not isinstance(a, b)``" -msgstr "" +msgstr "``not isinstance(a, b)``" #: ../Doc/library/unittest.rst:856 msgid "" @@ -1028,12 +1359,20 @@ msgid "" "`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` only when " "they are used as a context manager." msgstr "" +"Todos los métodos de aserción aceptan un argumento *msg* que, si se " +"especifica, se utiliza como mensaje de error en caso de fallo (véase " +"también :data:`longMessage`). Tenga en cuenta que el argumento de la palabra " +"clave *msg* puede pasarse a :meth:`assertRaises`, :meth:" +"`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` sólo " +"cuando se utilizan como gestor de contexto." #: ../Doc/library/unittest.rst:864 msgid "" "Test that *first* and *second* are equal. If the values do not compare " "equal, the test will fail." msgstr "" +"Testea que *first* y *second* son iguales. Si los valores no comparan como " +"iguales, el test fallará." #: ../Doc/library/unittest.rst:867 msgid "" @@ -1044,26 +1383,37 @@ msgid "" "message (see also the :ref:`list of type-specific methods `)." msgstr "" +"Además, si *first* y *second* son exactamente del mismo tipo y uno de lista, " +"tuple, dict, set, frozenset o str o cualquier tipo que una subclase registre " +"con :meth:`addTypeEqualityFunc` se llamará a la función de igualdad " +"específica del tipo para generar un mensaje de error por defecto más útil " +"(véase también la :ref:`lista de métodos específicos del tipo `)." #: ../Doc/library/unittest.rst:874 msgid "Added the automatic calling of type-specific equality function." msgstr "" +"Añadida la llamada automática de la función de igualdad de tipo específico." #: ../Doc/library/unittest.rst:877 msgid "" ":meth:`assertMultiLineEqual` added as the default type equality function for " "comparing strings." msgstr "" +":meth:`assertMultiLineEqual` añadido como la función por defecto para " +"igualdad de tipos cuando se comparan cadenas." #: ../Doc/library/unittest.rst:884 msgid "" "Test that *first* and *second* are not equal. If the values do compare " "equal, the test will fail." msgstr "" +"Testea que *first* y *second* no son iguales. Si los valores son iguales, " +"el test fallará." #: ../Doc/library/unittest.rst:890 msgid "Test that *expr* is true (or false)." -msgstr "" +msgstr "Testea que *expr* es verdadero (o falso)." #: ../Doc/library/unittest.rst:892 msgid "" @@ -1073,18 +1423,23 @@ msgid "" "``assertEqual(a, b)`` instead of ``assertTrue(a == b)``), because they " "provide a better error message in case of failure." msgstr "" +"Note que esto es equivalente a ``bool(expr) is True`` y no a ``expr is " +"True`` (use ``assertIs(expr, True)`` para lo último). Este método también " +"debe evitarse cuando se disponga de métodos más específicos (por ejemplo, " +"``assertEqual(a, b)`` en lugar de ``assertTrue(a == b)``), porque " +"proporcionan un mejor mensaje de error en caso de fallo." #: ../Doc/library/unittest.rst:902 msgid "Test that *first* and *second* are (or are not) the same object." -msgstr "" +msgstr "Testea si *first* y *second* son (o no) el mismo objeto." #: ../Doc/library/unittest.rst:910 msgid "Test that *expr* is (or is not) ``None``." -msgstr "" +msgstr "Testea que *expr* es (o no es) ``None``." #: ../Doc/library/unittest.rst:918 msgid "Test that *member* is (or is not) in *container*." -msgstr "" +msgstr "Testea que *member* está (o no está) en *container*." #: ../Doc/library/unittest.rst:926 msgid "" @@ -1092,60 +1447,71 @@ msgid "" "a tuple of classes, as supported by :func:`isinstance`). To check for the " "exact type, use :func:`assertIs(type(obj), cls) `." msgstr "" +"Testea que *obj* es (o no es) una instancia de *cls* (que puede ser una " +"clase o una tupla de clases, de la misma forma que soporta :func:" +"`isinstance`). Para chequear por el tipo exacto, use :func:" +"`assertIs(type(obj), cls) `." #: ../Doc/library/unittest.rst:934 msgid "" "It is also possible to check the production of exceptions, warnings, and log " "messages using the following methods:" msgstr "" +"Es también posible chequear la producción de excepciones, advertencias y " +"mensajes de log usando los siguientes métodos:" #: ../Doc/library/unittest.rst:940 msgid ":meth:`assertRaises(exc, fun, *args, **kwds) `" -msgstr "" +msgstr ":meth:`assertRaises(exc, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:940 msgid "``fun(*args, **kwds)`` raises *exc*" -msgstr "" +msgstr "``fun(*args, **kwds)`` lanza *exc*" #: ../Doc/library/unittest.rst:943 msgid "" ":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" msgstr "" +":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:943 msgid "``fun(*args, **kwds)`` raises *exc* and the message matches regex *r*" -msgstr "" +msgstr "``fun(*args, **kwds)`` lanza *exc* y el mensaje coincide con regex *r*" #: ../Doc/library/unittest.rst:946 msgid ":meth:`assertWarns(warn, fun, *args, **kwds) `" -msgstr "" +msgstr ":meth:`assertWarns(warn, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:946 msgid "``fun(*args, **kwds)`` raises *warn*" -msgstr "" +msgstr "``fun(*args, **kwds)`` lanza *warn*" #: ../Doc/library/unittest.rst:949 msgid "" ":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" msgstr "" +":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" #: ../Doc/library/unittest.rst:949 msgid "``fun(*args, **kwds)`` raises *warn* and the message matches regex *r*" msgstr "" +"``fun(*args, **kwds)`` lanza *warn* y el mensaje coincide con regex *r*" #: ../Doc/library/unittest.rst:952 msgid ":meth:`assertLogs(logger, level) `" -msgstr "" +msgstr ":meth:`assertLogs(logger, level) `" #: ../Doc/library/unittest.rst:952 msgid "The ``with`` block logs on *logger* with minimum *level*" -msgstr "" +msgstr "El bloque ``with`` vuelca sus logs a *logger* con el *level* mínimo" #: ../Doc/library/unittest.rst:952 msgid "3.4" -msgstr "" +msgstr "3.4" #: ../Doc/library/unittest.rst:959 msgid "" @@ -1156,6 +1522,12 @@ msgid "" "any of a group of exceptions, a tuple containing the exception classes may " "be passed as *exception*." msgstr "" +"Testea que se lanza una excepción cuando se llama a *callable* con cualquier " +"argumento posicional o de palabra clave que también se pasa a :meth:" +"`assertRaises`. El test pasa si se lanza *exception*, es un error si se " +"lanza otra excepción, o falla si no se lanza ninguna excepción. Para tener " +"en cuenta cualquiera de un grupo de excepciones, una tupla que contenga las " +"clases de excepción puede ser pasada como *exception*." #: ../Doc/library/unittest.rst:966 msgid "" @@ -1163,12 +1535,17 @@ msgid "" "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" +"Si sólo se dan los argumentos de *exception* y posiblemente *msg*, retorna " +"un administrador de contexto para que el código testado pueda ser escrito en " +"línea en lugar de como una función::" #: ../Doc/library/unittest.rst:973 msgid "" "When used as a context manager, :meth:`assertRaises` accepts the additional " "keyword argument *msg*." msgstr "" +"Cuando se emplea como un administrador de contexto, :meth:`assertRaises` " +"acepta el argumento por palabra clave adicional *msg*." #: ../Doc/library/unittest.rst:976 msgid "" @@ -1176,19 +1553,25 @@ msgid "" "`exception` attribute. This can be useful if the intention is to perform " "additional checks on the exception raised::" msgstr "" +"El gestor de contexto almacenará el objeto de excepción capturado en su " +"atributo :attr:`exception` . Esto puede ser útil si la intención es " +"realizar comprobaciones adicionales sobre la excepción planteada::" #: ../Doc/library/unittest.rst:986 msgid "Added the ability to use :meth:`assertRaises` as a context manager." msgstr "" +"Añadió la capacidad de usar :meth:`assertRaises` como gestor de contexto." #: ../Doc/library/unittest.rst:989 msgid "Added the :attr:`exception` attribute." -msgstr "" +msgstr "Añadido el atributo :attr:`exception` ." #: ../Doc/library/unittest.rst:992 ../Doc/library/unittest.rst:1018 #: ../Doc/library/unittest.rst:1059 ../Doc/library/unittest.rst:1082 msgid "Added the *msg* keyword argument when used as a context manager." msgstr "" +"Añadido el argumento por palabra clave *msg* cuando se emplea un gestor de " +"contexto." #: ../Doc/library/unittest.rst:999 msgid "" @@ -1197,18 +1580,22 @@ msgid "" "object or a string containing a regular expression suitable for use by :func:" "`re.search`. Examples::" msgstr "" +"Como :meth:`assertRaises` pero también testea que *regex* coincide en la " +"representación de la cadena de la excepción planteada. *regex* puede ser un " +"objeto de expresión regular o una cadena que contiene una expresión regular " +"adecuada para ser usada por :func:`re.search`. Ejemplos::" #: ../Doc/library/unittest.rst:1007 ../Doc/library/unittest.rst:1075 msgid "or::" -msgstr "" +msgstr "o::" #: ../Doc/library/unittest.rst:1012 msgid "Added under the name ``assertRaisesRegexp``." -msgstr "" +msgstr "Añadido bajo el nombre de ``assertRaisesRegexp``." #: ../Doc/library/unittest.rst:1015 msgid "Renamed to :meth:`assertRaisesRegex`." -msgstr "" +msgstr "Renombrado a :meth:`assertRaisesRegex`." #: ../Doc/library/unittest.rst:1025 msgid "" @@ -1218,6 +1605,12 @@ msgid "" "isn't. Any exception is an error. To catch any of a group of warnings, a " "tuple containing the warning classes may be passed as *warnings*." msgstr "" +"Testea que una advertencia se activa cuando se llama a *callable* con " +"cualquier argumento posicional o de palabra clave que también se pasa a :" +"meth:`assertWarns`. El test pasa si se activa el *warning* y falla si no lo " +"hace. Cualquier excepción es un error. Para considerar cualquiera de un " +"grupo de advertencias, una tupla que contenga las clases de advertencia " +"puede ser pasada como *warnings*." #: ../Doc/library/unittest.rst:1032 msgid "" @@ -1225,12 +1618,17 @@ msgid "" "context manager so that the code under test can be written inline rather " "than as a function::" msgstr "" +"Si sólo se dan los argumentos de *advertencia* y *msg*, retorna un gestor " +"de contexto para que el código testado pueda ser escrito en línea en lugar " +"de como una función::" #: ../Doc/library/unittest.rst:1039 msgid "" "When used as a context manager, :meth:`assertWarns` accepts the additional " "keyword argument *msg*." msgstr "" +"Cuando se usa como gestor de contexto, :meth:`assertWarns` acepta el " +"argumento de palabra clave adicional *msg*." #: ../Doc/library/unittest.rst:1042 msgid "" @@ -1239,12 +1637,19 @@ msgid "" "the :attr:`filename` and :attr:`lineno` attributes. This can be useful if " "the intention is to perform additional checks on the warning caught::" msgstr "" +"El gestor de contexto almacenará el objeto de advertencia capturado en su " +"atributo :attr:`warning`, y la línea del código que disparó las advertencias " +"en los atributos :attr:`filename` y :attr:`lineno` . Esto puede ser útil " +"si la intención es realizar comprobaciones adicionales sobre la advertencia " +"capturada::" #: ../Doc/library/unittest.rst:1054 msgid "" "This method works regardless of the warning filters in place when it is " "called." msgstr "" +"Este método funciona independientemente de los filtros de aviso que estén en " +"su lugar cuando se llame." #: ../Doc/library/unittest.rst:1066 msgid "" @@ -1253,12 +1658,18 @@ msgid "" "string containing a regular expression suitable for use by :func:`re." "search`. Example::" msgstr "" +"Como :meth:`assertWarns` pero también testea que *regex* coincide en el " +"mensaje del aviso disparado. *regex* puede ser un objeto de expresión " +"regular o una cadena que contiene una expresión regular adecuada para ser " +"usada por :func:`re.search`. Ejemplo::" #: ../Doc/library/unittest.rst:1087 msgid "" "A context manager to test that at least one message is logged on the " "*logger* or one of its children, with at least the given *level*." msgstr "" +"Un gestor de contexto para comprobar que al menos un mensaje está registrado " +"en el *logger* o en uno de sus hijos, con al menos el *level* dado." #: ../Doc/library/unittest.rst:1091 msgid "" @@ -1267,6 +1678,9 @@ msgid "" "will catch all messages that were not blocked by a non-propagating " "descendent logger." msgstr "" +"Si se da, *logger* debería ser un objeto :class:`logging.Logger` o un :class:" +"`str` dando el nombre de un logger. El valor por defecto es el root logger, " +"que captará todos los mensajes." #: ../Doc/library/unittest.rst:1096 msgid "" @@ -1274,112 +1688,128 @@ msgid "" "equivalent (for example either ``\"ERROR\"`` or :attr:`logging.ERROR`). The " "default is :attr:`logging.INFO`." msgstr "" +"Si se da, *level* debe ser un nivel de logging numérico o su equivalente en " +"cadena (por ejemplo, o bien ``”ERROR”`` o :attr:`logging.ERROR`). El valor " +"por defecto es :attr:`logging.INFO`." #: ../Doc/library/unittest.rst:1100 msgid "" "The test passes if at least one message emitted inside the ``with`` block " "matches the *logger* and *level* conditions, otherwise it fails." msgstr "" +"El test pasa si al menos un mensaje emitido dentro del bloque ``with`` " +"coincide con las condiciones de *logger* y *level*, de lo contrario falla." #: ../Doc/library/unittest.rst:1103 msgid "" "The object returned by the context manager is a recording helper which keeps " "tracks of the matching log messages. It has two attributes:" msgstr "" +"El objeto devuelto por el gestor de contexto es un ayudante de grabación que " +"lleva un registro de los mensajes de registro que coinciden. Tiene dos " +"atributos:" #: ../Doc/library/unittest.rst:1109 msgid "" "A list of :class:`logging.LogRecord` objects of the matching log messages." msgstr "" +"Una lista de objetos :class:`logging.LogRecord` de los mensajes de log " +"coincidentes." #: ../Doc/library/unittest.rst:1114 msgid "" "A list of :class:`str` objects with the formatted output of matching " "messages." msgstr "" +"Una lista de objetos :class:`str` con la salida forrajeada en los mensajes " +"coincidentes." #: ../Doc/library/unittest.rst:1117 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/library/unittest.rst:1128 msgid "" "There are also other methods used to perform more specific checks, such as:" msgstr "" +"Hay también otros métodos empleados para realizar comprobaciones más " +"específicas, tales como:" #: ../Doc/library/unittest.rst:1133 msgid ":meth:`assertAlmostEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertAlmostEqual(a, b) `" #: ../Doc/library/unittest.rst:1133 msgid "``round(a-b, 7) == 0``" -msgstr "" +msgstr "``round(a-b, 7) == 0``" #: ../Doc/library/unittest.rst:1136 msgid ":meth:`assertNotAlmostEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertNotAlmostEqual(a, b) `" #: ../Doc/library/unittest.rst:1136 msgid "``round(a-b, 7) != 0``" -msgstr "" +msgstr "``round(a-b, 7) != 0``" #: ../Doc/library/unittest.rst:1139 msgid ":meth:`assertGreater(a, b) `" -msgstr "" +msgstr ":meth:`assertGreater(a, b) `" #: ../Doc/library/unittest.rst:1139 msgid "``a > b``" -msgstr "" +msgstr "``a > b``" #: ../Doc/library/unittest.rst:1142 msgid ":meth:`assertGreaterEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertGreaterEqual(a, b) `" #: ../Doc/library/unittest.rst:1142 msgid "``a >= b``" -msgstr "" +msgstr "``a >= b``" #: ../Doc/library/unittest.rst:1145 msgid ":meth:`assertLess(a, b) `" -msgstr "" +msgstr ":meth:`assertLess(a, b) `" #: ../Doc/library/unittest.rst:1145 msgid "``a < b``" -msgstr "" +msgstr "``a < b``" #: ../Doc/library/unittest.rst:1148 msgid ":meth:`assertLessEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertLessEqual(a, b) `" #: ../Doc/library/unittest.rst:1148 msgid "``a <= b``" -msgstr "" +msgstr "``a <= b``" #: ../Doc/library/unittest.rst:1151 msgid ":meth:`assertRegex(s, r) `" -msgstr "" +msgstr ":meth:`assertRegex(s, r) `" #: ../Doc/library/unittest.rst:1151 msgid "``r.search(s)``" -msgstr "" +msgstr "``r.search(s)``" #: ../Doc/library/unittest.rst:1154 msgid ":meth:`assertNotRegex(s, r) `" -msgstr "" +msgstr ":meth:`assertNotRegex(s, r) `" #: ../Doc/library/unittest.rst:1154 msgid "``not r.search(s)``" -msgstr "" +msgstr "``not r.search(s)``" #: ../Doc/library/unittest.rst:1157 msgid ":meth:`assertCountEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertCountEqual(a, b) `" #: ../Doc/library/unittest.rst:1157 msgid "" "*a* and *b* have the same elements in the same number, regardless of their " "order." msgstr "" +"*a* y *b* tienen los mismos elementos y en el mismo número, sin importar su " +"orden." #: ../Doc/library/unittest.rst:1166 msgid "" @@ -1389,16 +1819,23 @@ msgid "" "the values to the given number of *decimal places* (i.e. like the :func:" "`round` function) and not *significant digits*." msgstr "" +"Testea que *first* y *second* son aproximadamente (o no aproximadamente) " +"iguales calculando su diferencia, redondeando al número dado de puntos " +"*places* decimales (por defecto 7), y comparado a cero. Nótese que estos " +"métodos redondean los valores al número dado de *puntos decimales* (por " +"ejemplo como la función :func:`round`) y no *cifras significativas*." #: ../Doc/library/unittest.rst:1172 msgid "" "If *delta* is supplied instead of *places* then the difference between " "*first* and *second* must be less or equal to (or greater than) *delta*." msgstr "" +"Si se suministra *delta* en vez de *places* que entonces la diferencia entre " +"*first* y *second* deba ser menor o igual a (o mayor que) *delta*." #: ../Doc/library/unittest.rst:1175 msgid "Supplying both *delta* and *places* raises a :exc:`TypeError`." -msgstr "" +msgstr "Suministrar tanto *delta* como *places* lanza un :exc:`TypeError`." #: ../Doc/library/unittest.rst:1177 msgid "" @@ -1406,12 +1843,18 @@ msgid "" "compare equal. :meth:`assertNotAlmostEqual` automatically fails if the " "objects compare equal. Added the *delta* keyword argument." msgstr "" +":meth:`assertAlmostEqual` considera automáticamente casi iguales a los " +"objetos que se comparan igual. :meth:`assertNotAlmostEqual` falla " +"automáticamente si los objetos comparan iguales. Añadido el argumento de " +"palabra clave *delta*." #: ../Doc/library/unittest.rst:1188 msgid "" "Test that *first* is respectively >, >=, < or <= than *second* depending on " "the method name. If not, the test will fail::" msgstr "" +"Prueba que *first* es respectivamente >, >=, < o <= que *second* dependiendo " +"del nombre del método. Si no, el test fallará::" #: ../Doc/library/unittest.rst:1200 msgid "" @@ -1421,26 +1864,35 @@ msgid "" "regular expression object or a string containing a regular expression " "suitable for use by :func:`re.search`." msgstr "" +"Testea que una búsqueda *regex* coincide (o no coincide) con el *text*. En " +"caso de fallo, el mensaje de error incluirá el patrón y el *text* (o el " +"patrón y la parte de *text* que coincida inesperadamente). *regex* puede " +"ser un objeto de expresión regular o una cadena que contiene una expresión " +"regular adecuada para ser utilizada por :func:`re.search`." #: ../Doc/library/unittest.rst:1206 msgid "Added under the name ``assertRegexpMatches``." -msgstr "" +msgstr "Añadido bajo el nombre de ``assertRegexpMatches``." #: ../Doc/library/unittest.rst:1208 msgid "" "The method ``assertRegexpMatches()`` has been renamed to :meth:`." "assertRegex`." msgstr "" +"El método ``assertRegexpMatches()`` ha sido renombrado a :meth:`." +"assertRegex`." #: ../Doc/library/unittest.rst:1211 msgid ":meth:`.assertNotRegex`." -msgstr "" +msgstr ":meth:`.assertNotRegex`." #: ../Doc/library/unittest.rst:1213 msgid "" "The name ``assertNotRegexpMatches`` is a deprecated alias for :meth:`." "assertNotRegex`." msgstr "" +"El nombre ``assertNotRegexpMatches`` es un alias obsoleto para :meth:`." +"assertNotRegex`." #: ../Doc/library/unittest.rst:1220 msgid "" @@ -1448,6 +1900,9 @@ msgid "" "regardless of their order. When they don't, an error message listing the " "differences between the sequences will be generated." msgstr "" +"Testea que la secuencia *first* contiene los mismos elementos que *second*, " +"independientemente de su orden. Cuando no lo hagan, se generará un mensaje " +"de error con las diferencias entre las secuencias." #: ../Doc/library/unittest.rst:1224 msgid "" @@ -1456,6 +1911,11 @@ msgid "" "Equivalent to: ``assertEqual(Counter(list(first)), Counter(list(second)))`` " "but works with sequences of unhashable objects as well." msgstr "" +"Los elementos duplicados *no* son ignorados cuando se comparan *first* y " +"*second*. Verifica si cada elemento tiene la misma cuenta en ambas " +"secuencias. Equivalente a: ``assertEqual(Counter(list(first)), " +"Counter(list(second)))`` pero funciona también con secuencias de objetos que " +"no son hashable." #: ../Doc/library/unittest.rst:1235 msgid "" @@ -1464,6 +1924,11 @@ msgid "" "implemented for most of the built-in types, but it's also possible to " "register new methods using :meth:`addTypeEqualityFunc`:" msgstr "" +"El método :meth:`assertEqual` envía la comprobación de igualdad de los " +"objetos del mismo tipo a diferentes métodos específicos de tipo. Estos " +"métodos ya están implementados para la mayoría de los tipos incorporados, " +"pero también es posible registrar nuevos métodos usando :meth:" +"`addTypeEqualityFunc`:" #: ../Doc/library/unittest.rst:1242 msgid "" @@ -1475,6 +1940,14 @@ msgid "" "two parameters is detected -- possibly providing useful information and " "explaining the inequalities in details in the error message." msgstr "" +"Registra un método específico de tipo llamado por :meth:`assertEqual` para " +"comprobar si dos objetos del mismo *typeobj* (no subclases) comparan como " +"iguales. *function* debe tomar dos argumentos posicionales y un tercer " +"argumento de palabra clave msg=None tal y como lo hace :meth:`assertEqual`. " +"Debe lanzar :data:`self.failureException(msg) ` cuando " +"se detecta una desigualdad entre los dos primeros parámetros, posiblemente " +"proporcionando información útil y explicando las desigualdades en detalle en " +"el mensaje de error." #: ../Doc/library/unittest.rst:1253 msgid "" @@ -1482,58 +1955,61 @@ msgid "" "assertEqual` are summarized in the following table. Note that it's usually " "not necessary to invoke these methods directly." msgstr "" +"La lista de métodos específicos de tipo utilizados automáticamente por :meth:" +"`~TestCase.assertEqual` se resumen en la siguiente tabla. Tenga en cuenta " +"que normalmente no es necesario invocar estos métodos directamente." #: ../Doc/library/unittest.rst:1258 msgid "Used to compare" -msgstr "" +msgstr "Usado para comparar" #: ../Doc/library/unittest.rst:1260 msgid ":meth:`assertMultiLineEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertMultiLineEqual(a, b) `" #: ../Doc/library/unittest.rst:1260 msgid "strings" -msgstr "" +msgstr "strings" #: ../Doc/library/unittest.rst:1263 msgid ":meth:`assertSequenceEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertSequenceEqual(a, b) `" #: ../Doc/library/unittest.rst:1263 msgid "sequences" -msgstr "" +msgstr "sequences" #: ../Doc/library/unittest.rst:1266 msgid ":meth:`assertListEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertListEqual(a, b) `" #: ../Doc/library/unittest.rst:1266 msgid "lists" -msgstr "" +msgstr "lists" #: ../Doc/library/unittest.rst:1269 msgid ":meth:`assertTupleEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertTupleEqual(a, b) `" #: ../Doc/library/unittest.rst:1269 msgid "tuples" -msgstr "" +msgstr "tuples" #: ../Doc/library/unittest.rst:1272 msgid ":meth:`assertSetEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertSetEqual(a, b) `" #: ../Doc/library/unittest.rst:1272 msgid "sets or frozensets" -msgstr "" +msgstr "sets or frozensets" #: ../Doc/library/unittest.rst:1275 msgid ":meth:`assertDictEqual(a, b) `" -msgstr "" +msgstr ":meth:`assertDictEqual(a, b) `" #: ../Doc/library/unittest.rst:1275 msgid "dicts" -msgstr "" +msgstr "dicts" #: ../Doc/library/unittest.rst:1283 msgid "" @@ -1542,6 +2018,10 @@ msgid "" "included in the error message. This method is used by default when comparing " "strings with :meth:`assertEqual`." msgstr "" +"Testea que la cadena multilínea *first* es igual a la cadena *second*. " +"Cuando no sea igual, una diferencia de las dos cadenas que resalte las " +"diferencias se incluirá en el mensaje de error. Este método se utiliza por " +"defecto cuando se comparan cadenas con :meth:`assertEqual`." #: ../Doc/library/unittest.rst:1293 msgid "" @@ -1550,12 +2030,18 @@ msgid "" "raised. If the sequences are different an error message is constructed that " "shows the difference between the two." msgstr "" +"Testea que dos secuencias son iguales. Si se suministra un *seq_type*, " +"tanto *first* como *second* deben ser instancias de *seq_type* o se lanzará " +"un fallo. Si las secuencias son diferentes se construye un mensaje de error " +"que muestra la diferencia entre las dos." #: ../Doc/library/unittest.rst:1298 msgid "" "This method is not called directly by :meth:`assertEqual`, but it's used to " "implement :meth:`assertListEqual` and :meth:`assertTupleEqual`." msgstr "" +"Este método no es llamado directamente por :meth:`assertEqual`, pero se usa " +"para implementar :meth:`assertListEqual` y :meth:`assertTupleEqual`." #: ../Doc/library/unittest.rst:1308 msgid "" @@ -1564,6 +2050,11 @@ msgid "" "also raised if either of the parameters are of the wrong type. These methods " "are used by default when comparing lists or tuples with :meth:`assertEqual`." msgstr "" +"Testea que dos listas o tuplas son iguales. Si no es así, se construye un " +"mensaje de error que muestra sólo las diferencias entre las dos. También se " +"lanza un error si alguno de los parámetros es del tipo equivocado. Estos " +"métodos se utilizan por defecto cuando se comparan listas o tuplas con :meth:" +"`assertEqual`." #: ../Doc/library/unittest.rst:1319 msgid "" @@ -1571,12 +2062,18 @@ msgid "" "lists the differences between the sets. This method is used by default when " "comparing sets or frozensets with :meth:`assertEqual`." msgstr "" +"Testea que dos conjuntos son iguales. Si no es así, se construye un mensaje " +"de error que enumera las diferencias entre los conjuntos. Este método se " +"utiliza por defecto cuando se comparan los conjuntos o frozensets con :meth:" +"`assertEqual`." #: ../Doc/library/unittest.rst:1323 msgid "" "Fails if either of *first* or *second* does not have a :meth:`set." "difference` method." msgstr "" +"Falla si cualquiera de *first* o *second* no tiene un método de :meth:`set." +"difference`." #: ../Doc/library/unittest.rst:1331 msgid "" @@ -1584,17 +2081,24 @@ msgid "" "constructed that shows the differences in the dictionaries. This method will " "be used by default to compare dictionaries in calls to :meth:`assertEqual`." msgstr "" +"Testea que dos diccionarios son iguales. Si no es así, se construye un " +"mensaje de error que muestra las diferencias en los diccionarios. Este " +"método se usará por defecto para comparar los diccionarios en las llamadas " +"a :meth:`assertEqual`." #: ../Doc/library/unittest.rst:1342 msgid "" "Finally the :class:`TestCase` provides the following methods and attributes:" msgstr "" +"Finalmente, :class:`TestCase` proporciona los siguientes métodos y atributos:" #: ../Doc/library/unittest.rst:1347 msgid "" "Signals a test failure unconditionally, with *msg* or ``None`` for the error " "message." msgstr "" +"Señala un fallo del test incondicionalmente, con *msg* o ``None`` para el " +"mensaje de error." #: ../Doc/library/unittest.rst:1353 msgid "" @@ -1604,6 +2108,11 @@ msgid "" "fair\" with the framework. The initial value of this attribute is :exc:" "`AssertionError`." msgstr "" +"Este atributo de clase da la excepción lanzada por el método de test. Si un " +"marco de pruebas necesita utilizar una excepción especializada, posiblemente " +"para llevar información adicional, debe subclasificar esta excepción para " +"\"jugar limpio\" con el marco. El valor inicial de este atributo es :exc:" +"`AssertionError`." #: ../Doc/library/unittest.rst:1362 msgid "" @@ -1613,6 +2122,11 @@ msgid "" "of the standard failure message. When set to ``False``, the custom message " "replaces the standard message." msgstr "" +"Este atributo de clase determina lo que ocurre cuando se pasa un mensaje de " +"fallo personalizado como el argumento msg a una llamada assertXYY que falla. " +"``True`` es el valor por defecto. En este caso, el mensaje personalizado se " +"añade al final del mensaje de fallo estándar. Cuando se establece en " +"``False``, el mensaje personalizado reemplaza al mensaje estándar." #: ../Doc/library/unittest.rst:1368 msgid "" @@ -1620,10 +2134,14 @@ msgid "" "an instance attribute, self.longMessage, to ``True`` or ``False`` before " "calling the assert methods." msgstr "" +"La configuración de la clase puede ser anulada en los métodos de test " +"individuales asignando un atributo de instancia, self.longMessage, a " +"``True`` o ``False`` antes de llamar a los métodos assert." #: ../Doc/library/unittest.rst:1372 msgid "The class setting gets reset before each test call." msgstr "" +"La configuración de la clase se reajusta antes de cada llamada de test." #: ../Doc/library/unittest.rst:1379 msgid "" @@ -1633,24 +2151,36 @@ msgid "" "the sequence comparison methods that delegate to it), :meth:" "`assertDictEqual` and :meth:`assertMultiLineEqual`." msgstr "" +"Este atributo controla la longitud máxima de las diferencias de salida de " +"métodos assert que reportan diferencias en caso de fallo. El valor " +"predeterminado es de 80*8 caracteres. Los métodos assert afectados por este " +"atributo son :meth:`assertSequenceEqual` (incluyendo todos los métodos de " +"comparación de secuencias que le delegan), :meth:`assertDictEqual` y :meth:" +"`assertMultiLineEqual`." #: ../Doc/library/unittest.rst:1386 msgid "" "Setting ``maxDiff`` to ``None`` means that there is no maximum length of " "diffs." msgstr "" +"Poner ``maxDiff`` en ``None`` significa que no hay una longitud máxima de " +"diferencias." #: ../Doc/library/unittest.rst:1392 msgid "" "Testing frameworks can use the following methods to collect information on " "the test:" msgstr "" +"Los marcos de test pueden utilizar los siguientes métodos para reunir " +"información sobre el test:" #: ../Doc/library/unittest.rst:1398 msgid "" "Return the number of tests represented by this test object. For :class:" "`TestCase` instances, this will always be ``1``." msgstr "" +"Retorna el número de tests representados por este objeto de test. Para las " +"instancias de :class:`TestCase`, este siempre será ``1``." #: ../Doc/library/unittest.rst:1404 msgid "" @@ -1658,6 +2188,9 @@ msgid "" "test case class (if no other result instance is provided to the :meth:`run` " "method)." msgstr "" +"Retorna una instancia de la clase de resultado de test que debería " +"utilizarse para esta clase de caso de test (si no se proporciona otra " +"instancia de resultado al método :meth:`run`)." #: ../Doc/library/unittest.rst:1408 msgid "" @@ -1665,12 +2198,18 @@ msgid "" "`TestResult`; subclasses of :class:`TestCase` should override this as " "necessary." msgstr "" +"Para las instancias de :class:`TestCase`, ésta siempre será una instancia " +"de :class:`TestResult`; las subclases de :class:`TestCase` deben anular esto " +"según sea necesario." #: ../Doc/library/unittest.rst:1415 msgid "" "Return a string identifying the specific test case. This is usually the " "full name of the test method, including the module and class name." msgstr "" +"Devuelva una cadena que identifique el caso de test específico. Normalmente " +"es el nombre completo del método de test, incluyendo el nombre del módulo y " +"de la clase." #: ../Doc/library/unittest.rst:1421 msgid "" @@ -1678,6 +2217,10 @@ msgid "" "provided. The default implementation of this method returns the first line " "of the test method's docstring, if available, or ``None``." msgstr "" +"Devuelve una descripción de la prueba, o ``None`` si no se ha proporcionado " +"ninguna descripción. La implementación por defecto de este método devuelve " +"la primera línea de la docstring del método de test, si está disponible, o " +"``None`` ." #: ../Doc/library/unittest.rst:1426 msgid "" @@ -1686,6 +2229,10 @@ msgid "" "unittest extensions and adding the test name was moved to the :class:" "`TextTestResult` in Python 3.2." msgstr "" +"En 3.1 esto se cambió para añadir el nombre del test a la descripción corta " +"incluso en presencia de una docstring. Esto causó problemas de " +"compatibilidad con las extensiones de unittest y la adición del nombre de " +"test fue movida a la :class:`TextTestResult` en Python 3.2." #: ../Doc/library/unittest.rst:1435 msgid "" @@ -1695,18 +2242,27 @@ msgid "" "arguments and keyword arguments passed into :meth:`addCleanup` when they are " "added." msgstr "" +"Añade una función que se llamará después de :meth:`tearDown` a los recursos " +"de limpieza utilizados durante el test. Las funciones se llamarán en orden " +"inverso al orden en que se agregan (:abbr:`LIFO (last-in, first-out)`). Se " +"llaman con cualquier argumento y argumentos de palabra clave que se pase a :" +"meth:`addCleanup` cuando se agregan." #: ../Doc/library/unittest.rst:1441 msgid "" "If :meth:`setUp` fails, meaning that :meth:`tearDown` is not called, then " "any cleanup functions added will still be called." msgstr "" +"Si :meth:`setUp` falla, lo que significa que :meth:`tearDown` no se llama, " +"entonces cualquier función de limpieza añadida seguirá siendo llamada." #: ../Doc/library/unittest.rst:1449 msgid "" "This method is called unconditionally after :meth:`tearDown`, or after :meth:" "`setUp` if :meth:`setUp` raises an exception." msgstr "" +"Este método se llama incondicionalmente después de :meth:`tearDown`, o " +"después de :meth:`setUp` si :meth:`setUp` lanza una excepción." #: ../Doc/library/unittest.rst:1452 msgid "" @@ -1714,12 +2270,18 @@ msgid "" "`addCleanup`. If you need cleanup functions to be called *prior* to :meth:" "`tearDown` then you can call :meth:`doCleanups` yourself." msgstr "" +"Es responsable de llamar a todas las funciones de limpieza añadidas por :" +"meth:`addCleanup`. Si necesitas que las funciones de limpieza se llamen *con " +"anterioridad* a :meth:`tearDown` entonces puedes llamar a :meth:`doCleanups` " +"tú mismo." #: ../Doc/library/unittest.rst:1457 msgid "" ":meth:`doCleanups` pops methods off the stack of cleanup functions one at a " "time, so it can be called at any time." msgstr "" +":meth:`doCleanups` saca los métodos de la pila de funciones de limpieza uno " +"a uno, así que se puede llamar en cualquier momento." #: ../Doc/library/unittest.rst:1464 msgid "" @@ -1729,18 +2291,28 @@ msgid "" "with any arguments and keyword arguments passed into :meth:`addClassCleanup` " "when they are added." msgstr "" +"Añade una función que se llamará después de :meth:`tearDownClass` para " +"limpiar recursos utilizados durante la clase de test. Las funciones se " +"llamarán en orden inverso al orden en que se agregan (:abbr:`LIFO (last-in, " +"first-out)`). Se llaman con cualquier argumento y argumento de palabra clave " +"que se pase a :meth:`addClassCleanup` cuando se añadan." #: ../Doc/library/unittest.rst:1470 msgid "" "If :meth:`setUpClass` fails, meaning that :meth:`tearDownClass` is not " "called, then any cleanup functions added will still be called." msgstr "" +"Si :meth:`setUpClass` falla, lo que significa que :meth:`tearDownClass` no " +"se invoca, entonces cualquier función de limpieza añadida seguirá siendo " +"llamada." #: ../Doc/library/unittest.rst:1478 msgid "" "This method is called unconditionally after :meth:`tearDownClass`, or after :" "meth:`setUpClass` if :meth:`setUpClass` raises an exception." msgstr "" +"Este método se llama incondicionalmente después de :meth:`tearDownClass`, o " +"después de :meth:`setUpClass` si :meth:`setUpClass` lanza una excepción." #: ../Doc/library/unittest.rst:1481 msgid "" @@ -1748,18 +2320,26 @@ msgid "" "`addClassCleanup`. If you need cleanup functions to be called *prior* to :" "meth:`tearDownClass` then you can call :meth:`doClassCleanups` yourself." msgstr "" +"Es responsable de llamar a todas las funciones de limpieza añadidas por :" +"meth:`addCleanupClass`. Si necesitas que las funciones de limpieza se llamen " +"*con anterioridad* a :meth:`tearDownClass` entonces puedes llamar a :meth:" +"`doCleanupsClass` tú mismo." #: ../Doc/library/unittest.rst:1486 msgid "" ":meth:`doClassCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." msgstr "" +":meth:`doCleanupsClass` saca los métodos de la pila de funciones de limpieza " +"de uno en uno, así que se puede llamar en cualquier momento." #: ../Doc/library/unittest.rst:1494 msgid "" "This class provides an API similar to :class:`TestCase` and also accepts " "coroutines as test functions." msgstr "" +"Esta clase proporciona una API similar a :class:`TestCase` y también acepta " +"corutinas como funciones de test." #: ../Doc/library/unittest.rst:1501 msgid "" @@ -1769,6 +2349,11 @@ msgid "" "method will be considered an error rather than a test failure. The default " "implementation does nothing." msgstr "" +"Método llamado para preparar la configuración de test. Esto se llama después " +"de :meth:`setUp`. Se llama inmediatamente antes de llamar al método de test; " +"aparte de :exc:`AssertionError` o :exc:`SkipTest`, cualquier excepción " +"lanzada por este método se considerará un error más que un fallo del test. " +"La implementación por defecto no hace nada." #: ../Doc/library/unittest.rst:1509 msgid "" @@ -1782,10 +2367,22 @@ msgid "" "method will only be called if the :meth:`asyncSetUp` succeeds, regardless of " "the outcome of the test method. The default implementation does nothing." msgstr "" +"Método llamado inmediatamente después de que se haya llamado el método de " +"test y se haya registrado el resultado. Esto se llama antes de :meth:" +"`tearDown`. Se llama así aunque el método de test haya lanzado una " +"excepción, por lo que la implementación en las subclases puede necesitar ser " +"particularmente cuidadosa en la comprobación del estado interno. Cualquier " +"excepción, que no sea :exc:`AssertionError` o :exc:`SkipTest`, lanzada por " +"este método se considerará un error adicional en lugar de un fallo del test " +"(aumentando así el número total de errores reportados). Este método sólo se " +"llamará si :meth:`asyncSetUp` tiene éxito, independientemente del resultado " +"del método de test. La implementación por defecto no hace nada." #: ../Doc/library/unittest.rst:1521 msgid "This method accepts a coroutine that can be used as a cleanup function." msgstr "" +"Este método acepta una corutina que puede ser utilizada como función de " +"limpieza." #: ../Doc/library/unittest.rst:1525 msgid "" @@ -1796,16 +2393,24 @@ msgid "" "`run`'s caller. At the end of the test all the tasks in the event loop are " "cancelled." msgstr "" +"Establece un nuevo bucle de eventos para ejecutar el test, recogiendo el " +"resultado en el objeto :class:`TestResult` pasado como *result*. Si se " +"omite *result* o ``None``, se crea un objeto resultado temporal (llamando al " +"método :meth:`defaultTestResult`) y se utiliza. El objeto resultante se " +"devuelve al invocado de :meth:`run`. Al final del test se cancelan todas las " +"tareas del bucle de eventos." #: ../Doc/library/unittest.rst:1533 msgid "An example illustrating the order::" -msgstr "" +msgstr "Un ejemplo ilustrando el orden::" #: ../Doc/library/unittest.rst:1569 msgid "" "After running the test, ``events`` would contain ``[\"setUp\", \"asyncSetUp" "\", \"test_response\", \"asyncTearDown\", \"tearDown\", \"cleanup\"]``." msgstr "" +"Después de ejecutar el test, ``events`` contendría ``[“setUp”, " +"“asyncSetUp”, “test_response”, “asyncTearDown”, “tearDown”, “cleanup”]``." #: ../Doc/library/unittest.rst:1574 msgid "" @@ -1815,10 +2420,16 @@ msgid "" "test cases using legacy test code, allowing it to be integrated into a :mod:" "`unittest`-based test framework." msgstr "" +"Esta clase implementa la porción de la interfaz :class:`TestCase` que " +"permite al corredor de tests conducir los tests, pero no proporciona los " +"métodos que el código de test puede utilizar para comprobar e informar de " +"los errores. Se utiliza para crear casos de test utilizando código de " +"prueba heredado, lo que permite que se integre en un marco de tests basado " +"en :mod:`unittest`." #: ../Doc/library/unittest.rst:1584 msgid "Deprecated aliases" -msgstr "" +msgstr "Alias obsoletos" #: ../Doc/library/unittest.rst:1586 msgid "" @@ -1826,138 +2437,149 @@ msgid "" "more aliases that are now deprecated. The following table lists the correct " "names along with their deprecated aliases:" msgstr "" +"Por razones históricas, algunos de los métodos de :class:`TestCase` tenían " +"uno o más alias que ahora están obsoletos. La siguiente tabla lista los " +"nombres correctos junto con sus alias obsoletos:" #: ../Doc/library/unittest.rst:1591 msgid "Method Name" -msgstr "" +msgstr "Nombre del método" #: ../Doc/library/unittest.rst:1591 msgid "Deprecated alias" -msgstr "" +msgstr "Alias deprecado" #: ../Doc/library/unittest.rst:1593 msgid ":meth:`.assertEqual`" -msgstr "" +msgstr ":meth:`.assertEqual`" #: ../Doc/library/unittest.rst:1593 msgid "failUnlessEqual" -msgstr "" +msgstr "failUnlessEqual" #: ../Doc/library/unittest.rst:1593 msgid "assertEquals" -msgstr "" +msgstr "assertEquals" #: ../Doc/library/unittest.rst:1594 msgid ":meth:`.assertNotEqual`" -msgstr "" +msgstr ":meth:`.assertNotEqual`" #: ../Doc/library/unittest.rst:1594 msgid "failIfEqual" -msgstr "" +msgstr "failIfEqual" #: ../Doc/library/unittest.rst:1594 msgid "assertNotEquals" -msgstr "" +msgstr "assertNotEquals" #: ../Doc/library/unittest.rst:1595 msgid ":meth:`.assertTrue`" -msgstr "" +msgstr ":meth:`.assertTrue`" #: ../Doc/library/unittest.rst:1595 msgid "failUnless" -msgstr "" +msgstr "failUnless" #: ../Doc/library/unittest.rst:1595 msgid "assert\\_" -msgstr "" +msgstr "assert\\_" #: ../Doc/library/unittest.rst:1596 msgid ":meth:`.assertFalse`" -msgstr "" +msgstr ":meth:`.assertFalse`" #: ../Doc/library/unittest.rst:1596 msgid "failIf" -msgstr "" +msgstr "failIf" #: ../Doc/library/unittest.rst:1597 msgid ":meth:`.assertRaises`" -msgstr "" +msgstr ":meth:`.assertRaises`" #: ../Doc/library/unittest.rst:1597 msgid "failUnlessRaises" -msgstr "" +msgstr "failUnlessRaises" #: ../Doc/library/unittest.rst:1598 msgid ":meth:`.assertAlmostEqual`" -msgstr "" +msgstr ":meth:`.assertAlmostEqual`" #: ../Doc/library/unittest.rst:1598 msgid "failUnlessAlmostEqual" -msgstr "" +msgstr "failUnlessAlmostEqual" #: ../Doc/library/unittest.rst:1598 msgid "assertAlmostEquals" -msgstr "" +msgstr "assertAlmostEquals" #: ../Doc/library/unittest.rst:1599 msgid ":meth:`.assertNotAlmostEqual`" -msgstr "" +msgstr ":meth:`.assertNotAlmostEqual`" #: ../Doc/library/unittest.rst:1599 msgid "failIfAlmostEqual" -msgstr "" +msgstr "failIfAlmostEqual" #: ../Doc/library/unittest.rst:1599 msgid "assertNotAlmostEquals" -msgstr "" +msgstr "assertNotAlmostEquals" #: ../Doc/library/unittest.rst:1600 msgid ":meth:`.assertRegex`" -msgstr "" +msgstr ":meth:`.assertRegex`" #: ../Doc/library/unittest.rst:1600 msgid "assertRegexpMatches" -msgstr "" +msgstr "assertRegexpMatches" #: ../Doc/library/unittest.rst:1601 msgid ":meth:`.assertNotRegex`" -msgstr "" +msgstr ":meth:`.assertNotRegex`" #: ../Doc/library/unittest.rst:1601 msgid "assertNotRegexpMatches" -msgstr "" +msgstr "assertNotRegexpMatches" #: ../Doc/library/unittest.rst:1602 msgid ":meth:`.assertRaisesRegex`" -msgstr "" +msgstr ":meth:`.assertRaisesRegex`" #: ../Doc/library/unittest.rst:1602 msgid "assertRaisesRegexp" -msgstr "" +msgstr "assertRaisesRegexp" #: ../Doc/library/unittest.rst:1605 msgid "The fail* aliases listed in the second column have been deprecated." msgstr "" +"Los alias de fail* que figuran en la segunda columna han sido declarados " +"obsoletos." #: ../Doc/library/unittest.rst:1607 msgid "The assert* aliases listed in the third column have been deprecated." msgstr "" +"Los alias de aserción* que figuran en la tercera columna han sido declarados " +"obsoletos." #: ../Doc/library/unittest.rst:1609 msgid "" "``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :" "meth:`.assertRegex` and :meth:`.assertRaisesRegex`." msgstr "" +"``assertRegexpMatches`` y ``assertRaisesRegexp`` han sido renombrados a :" +"meth:`.assertRegex` y :meth:`.assertRaisesRegex`." #: ../Doc/library/unittest.rst:1612 msgid "" "The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`." "assertNotRegex`." msgstr "" +"El nombre ``assertNotRegexpMatches`` se ha declarado obsoleto en favor de :" +"meth:`.assertNotRegex`." #: ../Doc/library/unittest.rst:1618 msgid "Grouping tests" -msgstr "" +msgstr "Agrupando tests" #: ../Doc/library/unittest.rst:1622 msgid "" @@ -1966,6 +2588,11 @@ msgid "" "it to be run as any other test case. Running a :class:`TestSuite` instance " "is the same as iterating over the suite, running each test individually." msgstr "" +"Esta clase representa una agregación de casos de test individuales y " +"conjuntos de tests. La clase presenta la interfaz que necesita el corredor " +"de tests para poder ser ejecutado como cualquier otro caso de test. " +"Ejecutar una instancia :class:`TestSuite` es lo mismo que iterar sobre el " +"conjunto, ejecutando cada test individualmente." #: ../Doc/library/unittest.rst:1627 msgid "" @@ -1973,6 +2600,10 @@ msgid "" "other test suites that will be used to build the suite initially. Additional " "methods are provided to add test cases and suites to the collection later on." msgstr "" +"Si se indican *tests*, debe ser un iterable de casos de test individuales u " +"otros conjuntos de tests que se usarán para construir el conjunto " +"inicialmente. Se proporcionan métodos adicionales para añadir casos de test " +"y conjuntos a la colección más adelante." #: ../Doc/library/unittest.rst:1631 msgid "" @@ -1982,26 +2613,36 @@ msgid "" "additional methods are available to add tests to :class:`TestSuite` " "instances:" msgstr "" +"Los objetos de :class:`TestSuite` se comportan de manera muy parecida a los " +"objetos de :class:`TestCase`, excepto que no implementan un test. En " +"cambio, se usan para agregar tests en grupos de tests que deben ser " +"ejecutados juntos. Existen algunos métodos adicionales para agregar tests a " +"las instancias de :class:`TestSuite`:" #: ../Doc/library/unittest.rst:1639 msgid "Add a :class:`TestCase` or :class:`TestSuite` to the suite." -msgstr "" +msgstr "Añade un :class:`TestCase` o :class:`TestSuite` al conjunto." #: ../Doc/library/unittest.rst:1644 msgid "" "Add all the tests from an iterable of :class:`TestCase` and :class:" "`TestSuite` instances to this test suite." msgstr "" +"Añade todos los tests de un iterable de :class:`TestCase` y :class:" +"`TestSuite` a este conjunto de tests." #: ../Doc/library/unittest.rst:1647 msgid "" "This is equivalent to iterating over *tests*, calling :meth:`addTest` for " "each element." msgstr "" +"Esto equivale a iterar sobre *tests*, llamando a :meth:`addTest` para cada " +"elemento." #: ../Doc/library/unittest.rst:1650 msgid ":class:`TestSuite` shares the following methods with :class:`TestCase`:" msgstr "" +":class:`TestSuite` comparte los siguientes métodos con :class:`TestCase`:" #: ../Doc/library/unittest.rst:1655 msgid "" @@ -2009,6 +2650,10 @@ msgid "" "test result object passed as *result*. Note that unlike :meth:`TestCase." "run`, :meth:`TestSuite.run` requires the result object to be passed in." msgstr "" +"Ejecuta los tests asociados a este conjunto, recogiendo el resultado en el " +"objeto de resultado del test pasado como *result*. Tenga en cuenta que a " +"diferencia de :meth:`TestCase.run`, :meth:`TestSuite.run` requiere que se " +"pase el objeto resultado." #: ../Doc/library/unittest.rst:1663 msgid "" @@ -2016,12 +2661,18 @@ msgid "" "allows exceptions raised by the test to be propagated to the caller and can " "be used to support running tests under a debugger." msgstr "" +"Ejecuta los tests asociados con este conjunto sin recoger los resultados. " +"Esto permite que las excepciones lanzadas por este test sean propagadas al " +"invocador y puedes ser usadas para apoyar tests que están ejecutándose con " +"un debugger." #: ../Doc/library/unittest.rst:1670 msgid "" "Return the number of tests represented by this test object, including all " "individual tests and sub-suites." msgstr "" +"Retorna el numero de tests representados por este objeto de test, incluidos " +"todos los test individuales y los sub-conjuntos." #: ../Doc/library/unittest.rst:1676 msgid "" @@ -2034,6 +2685,16 @@ msgid "" "tests returned by this method unless the caller uses a subclass that " "overrides :meth:`TestSuite._removeTestAtIndex` to preserve test references." msgstr "" +"Los tests agrupados por una :class:`TestSuite` se acceden siempre por " +"iteración. Las subclases pueden proporcionar tests anulando :meth:" +"`__iter__`. Tenga en cuenta que este método puede ser invocado varias veces " +"en un mismo conjunto (por ejemplo, cuando se cuentan los tests o se comparan " +"por igualdad), por lo que los tests retornados por iteraciones repetidas " +"antes de :meth:`TestSuite.run` deben ser los mismos para cada iteración de " +"invocación. Después de :meth:`TestSuite.run`, los invocados no deben confiar " +"en los tests retornados por este método a menos que el invocado utilice una " +"subclase que anule :meth:`TestSuite._removeTestAtIndex` para preservar las " +"referencias de los tests." #: ../Doc/library/unittest.rst:1686 msgid "" @@ -2041,6 +2702,9 @@ msgid "" "than through iteration, so overriding :meth:`__iter__` wasn't sufficient for " "providing tests." msgstr "" +"En versiones anteriores la :class:`TestSuite` accedía a los test " +"directamente en lugar de a través de la iteración, por lo que anular :meth:" +"`__iter__` no era suficiente para proporcionar los tests." #: ../Doc/library/unittest.rst:1691 msgid "" @@ -2048,16 +2712,22 @@ msgid "" "`TestCase` after :meth:`TestSuite.run`. Subclasses can restore that behavior " "by overriding :meth:`TestSuite._removeTestAtIndex`." msgstr "" +"En versiones anteriores, la :class:`TestSuite` tenía referencias a cada :" +"class:`TestCase` después de :meth:`TestSuite.run`. Las subclases pueden " +"restaurar ese comportamiento anulando :meth:`TestSuite._removeTestAtIndex`." #: ../Doc/library/unittest.rst:1696 msgid "" "In the typical usage of a :class:`TestSuite` object, the :meth:`run` method " "is invoked by a :class:`TestRunner` rather than by the end-user test harness." msgstr "" +"En el uso típico de un objeto :class:`TestSuite`, el método :meth:`run` es " +"invocado por un :class:`TestRunner` en lugar de por el marco de test de " +"pruebas automático del usuario final." #: ../Doc/library/unittest.rst:1701 msgid "Loading and running tests" -msgstr "" +msgstr "Cargando y ejecutando tests" #: ../Doc/library/unittest.rst:1705 msgid "" @@ -2067,10 +2737,16 @@ msgid "" "`unittest.defaultTestLoader`. Using a subclass or instance, however, allows " "customization of some configurable properties." msgstr "" +"La clase :class:`TestLoader` se utiliza para crear conjuntos de tests a " +"partir de clases y módulos. Normalmente, no es necesario crear una " +"instancia de esta clase; el módulo :mod:`unittest` proporciona una instancia " +"que puede ser compartida como :data:`unittest.defaultTestLoader`. Sin " +"embargo, el uso de una subclase o instancia permite la personalización de " +"algunas propiedades configurables." #: ../Doc/library/unittest.rst:1711 msgid ":class:`TestLoader` objects have the following attributes:" -msgstr "" +msgstr "Los objetos :class:`TestLoader` tienen los siguientes atributos:" #: ../Doc/library/unittest.rst:1716 msgid "" @@ -2079,16 +2755,23 @@ msgid "" "raising an exception to the caller. Non-fatal errors are also indicated by a " "synthetic test that will raise the original error when run." msgstr "" +"Una lista de los errores no fatales encontrados durante los tests de carga. " +"No reseteados por el cargador en ningún momento. Los errores fatales son " +"señalados por el método relevante que lanza una excepción al invocador. Los " +"errores no fatales también son indicados por una prueba sintética que " +"lanzará el error original cuando se ejecute." #: ../Doc/library/unittest.rst:1725 msgid ":class:`TestLoader` objects have the following methods:" -msgstr "" +msgstr "Los objetos :class:`TestLoader` tienen los siguientes métodos:" #: ../Doc/library/unittest.rst:1730 msgid "" "Return a suite of all test cases contained in the :class:`TestCase`\\ -" "derived :class:`testCaseClass`." msgstr "" +"Devuelve un conjunto de todos los casos de test contenidos en la :class:" +"`TestCase`\\ derivada de :class:`testCaseClass`." #: ../Doc/library/unittest.rst:1733 msgid "" @@ -2098,6 +2781,11 @@ msgid "" "`runTest` method is implemented, a single test case is created for that " "method instead." msgstr "" +"Se crea una instancia de caso de test para cada método nombrado por :meth:" +"`getTestCaseNames`. Por defecto, estos son los nombres de los métodos que " +"comienzan con ``test``. Si :meth:`getTestCaseNames` no retorna ningún " +"método, pero se implementa el método :meth:`runTest`, se crea un único caso " +"de test para ese método." #: ../Doc/library/unittest.rst:1742 msgid "" @@ -2105,6 +2793,10 @@ msgid "" "searches *module* for classes derived from :class:`TestCase` and creates an " "instance of the class for each test method defined for the class." msgstr "" +"Devuelva un conjunto de todos los casos de test contenidos en el módulo " +"dado. Este método busca en *module* clases derivadas de :class:`TestCase` y " +"crea una instancia de la clase para cada método de test definido para la " +"clase." #: ../Doc/library/unittest.rst:1749 msgid "" @@ -2114,6 +2806,12 @@ msgid "" "play well with this method. Doing so, however, can be useful when the " "fixtures are different and defined in subclasses." msgstr "" +"Aunque el uso de una jerarquía de clases derivadas de :class:`TestCase` " +"puede ser conveniente para compartir configuraciones y funciones de ayuda, " +"la definición de métodos de test en clases base que no están destinadas a " +"ser instanciadas directamente no complementa bien con este método. Hacerlo, " +"sin embargo, puede ser útil cuando las configuraciones son diferentes y " +"están definidas en subclases." #: ../Doc/library/unittest.rst:1755 msgid "" @@ -2122,10 +2820,14 @@ msgid "" "`load_tests protocol`_. The *pattern* argument is passed as the third " "argument to ``load_tests``." msgstr "" +"Si un módulo proporciona una función ``load_tests`` será llamado para cargar " +"los tests. Esto permite a los módulos personalizar la carga de los tests. " +"Este es el `load_tests protocol`_. El argumento *pattern* se pasa como " +"tercer argumento a ``load_tests``." #: ../Doc/library/unittest.rst:1760 msgid "Support for ``load_tests`` added." -msgstr "" +msgstr "Se ha añadido soporte para ``load_tests``." #: ../Doc/library/unittest.rst:1763 msgid "" @@ -2134,10 +2836,16 @@ msgid "" "compatibility. The method also now accepts a keyword-only argument " "*pattern* which is passed to ``load_tests`` as the third argument." msgstr "" +"El argumento por defecto *use_load_tests* no documentado y no oficial es " +"obsoleto e ignorado, aunque sigue siendo aceptado por la " +"retrocompatibilidad. El método también acepta ahora un argumento de sólo " +"palabra clave *pattern* que se pasa a ``load_tests`` como tercer argumento." #: ../Doc/library/unittest.rst:1772 msgid "Return a suite of all test cases given a string specifier." msgstr "" +"Retorna un conjunto de todos los casos de test dado un especificador de " +"cadena." #: ../Doc/library/unittest.rst:1774 msgid "" @@ -2149,6 +2857,14 @@ msgid "" "up as \"a test method within a test case class\", rather than \"a callable " "object\"." msgstr "" +"El especificador *name* es un \"nombre punteado\" que puede resolverse ya " +"sea a un módulo, una clase de caso de test, un método de test dentro de una " +"clase de caso de test, una instancia :class:`TestSuite`, o un objeto " +"invocable que devuelve una instancia :class:`TestCase` o :class:" +"`TestSuite`. Estas comprobaciones se aplican en el orden que se indica " +"aquí; es decir, un método en una posible clase de caso de test se recogerá " +"como \"un método de test dentro de una clase de caso de test”, en lugar de " +"\"un objeto invocable”." #: ../Doc/library/unittest.rst:1782 msgid "" @@ -2162,10 +2878,19 @@ msgid "" "modules and packages which have not been imported; they will be imported as " "a side-effect." msgstr "" +"Por ejemplo, si tiene un módulo :mod:`SampleTests` que contiene una clase " +"derivada de :class:`TestCase` :class:`SampleTestCase` con tres métodos de " +"test (:meth:`test_one`, :meth:`test_two`, y :meth:`test_three`), el " +"especificador ``SampleTests.SampleTestCase'`` haría que este método " +"devolviera una suite que ejecutara los tres métodos de prueba. El uso del " +"especificador ``SampleTests.SampleTestCase.test_two'`` provocaría que este " +"método devolviera una suite de tests que ejecutaría sólo el método de test :" +"meth:`test_two`. El especificador puede referirse a los módulos y paquetes " +"que no han sido importados; serán importados como un efecto secundario." #: ../Doc/library/unittest.rst:1792 msgid "The method optionally resolves *name* relative to the given *module*." -msgstr "" +msgstr "El método opcionalmente resuelve *name* relativo al *module* dado." #: ../Doc/library/unittest.rst:1794 msgid "" @@ -2173,6 +2898,10 @@ msgid "" "*name* then a synthetic test that raises that error when run will be " "returned. These errors are included in the errors accumulated by self.errors." msgstr "" +"Si un :exc:`ImportError` o :exc:`AttributeError` ocurre mientras atraviesa " +"*name* entonces se devolverá un test sintético que lanza ese error cuando se " +"ejecuta. Estos errores están incluidos en los errores acumulados por self." +"errors." #: ../Doc/library/unittest.rst:1803 msgid "" @@ -2180,12 +2909,17 @@ msgid "" "than a single name. The return value is a test suite which supports all the " "tests defined for each name." msgstr "" +"Similar a :meth:`loadTestsFromName`, pero toma una secuencia de nombres en " +"lugar de un solo nombre. El valor de retorno es una suite de tests que " +"soporta todos los test definidos para cada nombre." #: ../Doc/library/unittest.rst:1810 msgid "" "Return a sorted sequence of method names found within *testCaseClass*; this " "should be a subclass of :class:`TestCase`." msgstr "" +"Devuelve una secuencia ordenada de nombres de métodos encontrados dentro de " +"*testCaseClass*; esta debería ser una subclase de :class:`TestCase`." #: ../Doc/library/unittest.rst:1816 msgid "" @@ -2195,6 +2929,12 @@ msgid "" "pattern matching.) Only module names that are importable (i.e. are valid " "Python identifiers) will be loaded." msgstr "" +"Encuentra todos los módulos de prueba recurriendo a subdirectorios del " +"directorio de inicio especificado, y retorna un objeto de TestSuite que los " +"contenga. Sólo se cargarán los archivos de test que coincidan con el " +"*pattern*. (Utilizando la coincidencia de patrones de estilo de shell.) Sólo " +"se cargarán los nombres de los módulos que sean importables (es decir, que " +"sean identificadores Python válidos)." #: ../Doc/library/unittest.rst:1822 msgid "" @@ -2202,6 +2942,9 @@ msgid "" "the start directory is not the top level directory then the top level " "directory must be specified separately." msgstr "" +"Todos los módulos de test deben ser importables desde el nivel superior del " +"proyecto. Si el directorio de inicio no es el directorio de nivel superior, " +"entonces el directorio de nivel superior debe ser especificado por separado." #: ../Doc/library/unittest.rst:1826 msgid "" @@ -2210,6 +2953,10 @@ msgid "" "import failure is due to :exc:`SkipTest` being raised, it will be recorded " "as a skip instead of an error." msgstr "" +"Si la importación de un módulo falla, por ejemplo debido a un error de " +"sintaxis, entonces esto se registrará como un error único y el " +"descubrimiento continuará. Si el fallo en la importación se debe a que :exc:" +"`SkipTest` se ha lanzado, se registrará como un salto en lugar de un error." #: ../Doc/library/unittest.rst:1831 msgid "" @@ -2220,12 +2967,21 @@ msgid "" "checked for tests once during an invocation, even if the load_tests function " "itself calls ``loader.discover``." msgstr "" +"Si se encuentra un paquete (un directorio que contiene un archivo llamado :" +"file:`__init__.py`), se comprobará si el paquete tiene una función " +"``load_tests``. Si existe, entonces se invocará ``package.load_tests(loader, " +"tests, pattern)``. Test discovery se encarga de asegurar que un paquete sólo " +"se comprueba una vez durante una invocación, incluso si la propia función " +"load_tests llama a ``loader.discover``." #: ../Doc/library/unittest.rst:1839 msgid "" "If ``load_tests`` exists then discovery does *not* recurse into the package, " "``load_tests`` is responsible for loading all tests in the package." msgstr "" +"Si ``load_tests`` existe, entonces el descubrimiento *no* recurre en el " +"paquete, ``load_tests`` es responsable de cargar todos los tests en el " +"paquete." #: ../Doc/library/unittest.rst:1843 msgid "" @@ -2234,26 +2990,38 @@ msgid "" "``load_tests`` does not need to pass this argument in to ``loader." "discover()``." msgstr "" +"El patrón no se almacena deliberadamente como atributo cargador para que los " +"paquetes puedan continuar descubriéndose a sí mismos. *top_level_dir* se " +"almacena de forma que ``load_tests`` no necesita pasar este argumento a " +"``loader.discover()``." #: ../Doc/library/unittest.rst:1848 msgid "*start_dir* can be a dotted module name as well as a directory." msgstr "" +"*start_dir* puede ser un nombre de módulo punteado así como un directorio." #: ../Doc/library/unittest.rst:1852 msgid "" "Modules that raise :exc:`SkipTest` on import are recorded as skips, not " "errors." msgstr "" +"Los módulos que lanzan :exc:`SkipTest` en la importación se registran como " +"saltos, no como errores." #: ../Doc/library/unittest.rst:1856 msgid "*start_dir* can be a :term:`namespace packages `." msgstr "" +"*start_dir* puede ser un :term:`paquete de espacios de nombres `." #: ../Doc/library/unittest.rst:1859 msgid "" "Paths are sorted before being imported so that execution order is the same " "even if the underlying file system's ordering is not dependent on file name." msgstr "" +"Las rutas se ordenan antes de ser importadas para que el orden de ejecución " +"sea el mismo, incluso si el orden del sistema de archivos subyacente no " +"depende del nombre del archivo." #: ../Doc/library/unittest.rst:1864 msgid "" @@ -2261,30 +3029,42 @@ msgid "" "their path matches *pattern*, because it is impossible for a package name to " "match the default pattern." msgstr "" +"Los paquetes encontrados son ahora comprobados para ``load_tests`` sin " +"importar si su ruta coincide con el *pattern*, porque es imposible que el " +"nombre de un paquete coincida con el patrón por defecto." #: ../Doc/library/unittest.rst:1870 msgid "" "The following attributes of a :class:`TestLoader` can be configured either " "by subclassing or assignment on an instance:" msgstr "" +"Los siguientes atributos de un :class:`TestLoader` pueden ser configurados " +"ya sea por subclasificación o asignación en una instancia:" #: ../Doc/library/unittest.rst:1876 msgid "" "String giving the prefix of method names which will be interpreted as test " "methods. The default value is ``'test'``." msgstr "" +"Cadena que da el prefijo de los nombres de métodos que serán interpretados " +"como métodos de test. El valor por defecto es ``'test'``." #: ../Doc/library/unittest.rst:1879 msgid "" "This affects :meth:`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` " "methods." msgstr "" +"Esto afecta a :meth:`getTestCaseNames` y a todos los métodos :meth:" +"`loadTestsFrom\\*` ." #: ../Doc/library/unittest.rst:1885 msgid "" "Function to be used to compare method names when sorting them in :meth:" "`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` methods." msgstr "" +"Función que se utiliza para comparar los nombres de los métodos al " +"clasificarlos en :meth:`getTestCaseNames` y todos los métodos :meth:" +"`loadTestsFrom\\*`." #: ../Doc/library/unittest.rst:1891 msgid "" @@ -2292,16 +3072,22 @@ msgid "" "methods on the resulting object are needed. The default value is the :class:" "`TestSuite` class." msgstr "" +"Objeto invocable que construye un conjunto de pruebas a partir de una lista " +"de pruebas. No se necesitan métodos en el objeto resultante. El valor por " +"defecto es la clase :class:`TestSuite`." #: ../Doc/library/unittest.rst:1895 ../Doc/library/unittest.rst:1908 msgid "This affects all the :meth:`loadTestsFrom\\*` methods." -msgstr "" +msgstr "Esto afecta a todos los métodos :meth:`loadTestsFrom\\*`." #: ../Doc/library/unittest.rst:1899 msgid "" "List of Unix shell-style wildcard test name patterns that test methods have " "to match to be included in test suites (see ``-v`` option)." msgstr "" +"Lista de patrones de nombres de test de comodines al estilo del shell de " +"Unix que los métodos de test tienen que coincidir con para ser incluidos en " +"las suites de test (ver opción ``-v``)." #: ../Doc/library/unittest.rst:1902 msgid "" @@ -2311,12 +3097,20 @@ msgid "" "unlike patterns passed to the ``-v`` option, simple substring patterns will " "have to be converted using ``*`` wildcards." msgstr "" +"Si este atributo no es ``None`` (el predeterminado), todos los métodos de " +"test que se incluyan en los paquetes de test deben coincidir con uno de los " +"patrones de esta lista. Tenga en cuenta que las coincidencias se realizan " +"siempre utilizando :meth:`fnmatch.fnmatchcase`, por lo que a diferencia de " +"los patrones pasados a la opción ``-v``, los patrones de subcadena simple " +"tendrán que ser convertidos utilizando los comodines ``*``." #: ../Doc/library/unittest.rst:1915 msgid "" "This class is used to compile information about which tests have succeeded " "and which have failed." msgstr "" +"Esta clase se utiliza para recopilar información sobre qué tests han tenido " +"éxito y cuáles han fracasado." #: ../Doc/library/unittest.rst:1918 msgid "" @@ -2325,6 +3119,10 @@ msgid "" "properly recorded; test authors do not need to worry about recording the " "outcome of tests." msgstr "" +"Un objeto :class:`TestResult` almacena los resultados de una serie de " +"pruebas. Las clases :class:`TestCase` y :class:`TestSuite` aseguran que los " +"resultados se registren correctamente; los autores de los tests no tienen " +"que preocuparse de registrar el resultado de las mismas." #: ../Doc/library/unittest.rst:1923 msgid "" @@ -2333,12 +3131,19 @@ msgid "" "purposes; a :class:`TestResult` instance is returned by the :meth:" "`TestRunner.run` method for this purpose." msgstr "" +"Los marcos de pruebas construidos sobre :mod:`unittest` pueden querer " +"acceder al objeto :class:`TestResult` generado por la ejecución de un " +"conjunto de tests con fines de reporte; una instancia :class:`TestResult` es " +"devuelta por el método :meth:`TestRunner.run` para este propósito." #: ../Doc/library/unittest.rst:1928 msgid "" ":class:`TestResult` instances have the following attributes that will be of " "interest when inspecting the results of running a set of tests:" msgstr "" +"Las instancias de :class:`TestResult` tienen los siguientes atributos que " +"serán de interés cuando se inspeccionen los resultados de la ejecución de un " +"conjunto de tests:" #: ../Doc/library/unittest.rst:1934 msgid "" @@ -2346,6 +3151,9 @@ msgid "" "holding formatted tracebacks. Each tuple represents a test which raised an " "unexpected exception." msgstr "" +"Una lista que contiene 2 tuplas de instancias :class:`TestCase` y cadenas " +"con formato de tracebacks. Cada tupla representa una prueba que lanzó una " +"excepción inesperada." #: ../Doc/library/unittest.rst:1940 msgid "" @@ -2353,12 +3161,17 @@ msgid "" "holding formatted tracebacks. Each tuple represents a test where a failure " "was explicitly signalled using the :meth:`TestCase.assert\\*` methods." msgstr "" +"Una lista que contiene 2 tuplas de instancias :class:`TestCase` y cadenas " +"con formato de traceback. Cada tupla representa un test en el que un fallo " +"fue explícitamente señalado usando los métodos :meth:`TestCase.assert\\*`." #: ../Doc/library/unittest.rst:1946 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding the reason for skipping the test." msgstr "" +"Una lista que contiene 2 tuplas de instancias de :class:`TestCase` y cadenas " +"que contienen la razón para saltarse el test." #: ../Doc/library/unittest.rst:1953 msgid "" @@ -2366,21 +3179,28 @@ msgid "" "holding formatted tracebacks. Each tuple represents an expected failure or " "error of the test case." msgstr "" +"Una lista que contiene 2 tuplas de instancias :class:`TestCase` y cadenas " +"con formato de traceback. Cada tupla representa un fallo esperado del caso " +"de test." #: ../Doc/library/unittest.rst:1959 msgid "" "A list containing :class:`TestCase` instances that were marked as expected " "failures, but succeeded." msgstr "" +"Una lista que contiene instancias de :class:`TestCase` que fueron marcadas " +"como fracasos esperados, pero tuvieron éxito." #: ../Doc/library/unittest.rst:1964 msgid "" "Set to ``True`` when the execution of tests should stop by :meth:`stop`." msgstr "" +"Puesto en ``True`` cuando la ejecución de los tests se detenga por :meth:" +"`stop`." #: ../Doc/library/unittest.rst:1968 msgid "The total number of tests run so far." -msgstr "" +msgstr "El número total de tests realizados hasta ahora." #: ../Doc/library/unittest.rst:1972 msgid "" @@ -2390,28 +3210,41 @@ msgid "" "if the test fails or errors. Any output is also attached to the failure / " "error message." msgstr "" +"Si se ajusta a true, ``sys.stdout`` y ``sys.stderr`` serán almacenados " +"entre :meth:`startTest` y :meth:`stopTest` siendo llamados. La salida " +"recolectada sólo tendrá eco en el verdadero ``sys.stdout`` y ``sys.stderr`` " +"si la prueba falla o se equivoca. Cualquier salida también se adjunta al " +"mensaje de fallo / error." #: ../Doc/library/unittest.rst:1981 msgid "" "If set to true :meth:`stop` will be called on the first failure or error, " "halting the test run." msgstr "" +"Si se ajusta a true :meth:`stop` se llamará al primer fallo o error, " +"deteniendo la ejecución de la prueba." #: ../Doc/library/unittest.rst:1988 msgid "If set to true then local variables will be shown in tracebacks." msgstr "" +"Si se ajusta a true entonces las variables locales se mostrarán en los " +"tracebacks." #: ../Doc/library/unittest.rst:1994 msgid "" "Return ``True`` if all tests run so far have passed, otherwise returns " "``False``." msgstr "" +"Devuelve ``True`` si todas las pruebas realizadas hasta ahora han pasado, de " +"lo contrario devuelve ``False``." #: ../Doc/library/unittest.rst:1997 msgid "" "Returns ``False`` if there were any :attr:`unexpectedSuccesses` from tests " "marked with the :func:`expectedFailure` decorator." msgstr "" +"Devuelve ``False`` si hubo algún :attr:`unexpectedSuccesses` de las pruebas " +"marcadas con el decorador :func:`expectedFailure`." #: ../Doc/library/unittest.rst:2003 msgid "" @@ -2420,6 +3253,10 @@ msgid "" "`TestRunner` objects should respect this flag and return without running any " "additional tests." msgstr "" +"Este método puede ser llamado para señalar que el conjunto de pruebas que se " +"están ejecutando debe ser abortado poniendo el atributo :attr:`shouldStop` " +"en ``True``. :class:`TestRunner` los objetos deben respetar esta bandera y " +"regresar sin ejecutar ninguna prueba adicional." #: ../Doc/library/unittest.rst:2008 msgid "" @@ -2428,6 +3265,11 @@ msgid "" "keyboard. Interactive tools which provide :class:`TestRunner` " "implementations can use this in a similar manner." msgstr "" +"Por ejemplo, esta característica es utilizada por la clase :class:" +"`TextTestRunner` para detener el marco de pruebas cuando el usuario señala " +"una interrupción desde el teclado. Las herramientas interactivas que " +"proporcionan implementaciones de :class:`TestRunner` pueden usar esto de " +"manera similar." #: ../Doc/library/unittest.rst:2013 msgid "" @@ -2436,24 +3278,31 @@ msgid "" "additional reporting requirements. This is particularly useful in building " "tools which support interactive reporting while tests are being run." msgstr "" +"Los siguientes métodos de la clase :class:`TestResult` se utilizan para " +"mantener las estructuras de datos internos, y pueden ampliarse en subclases " +"para apoyar los requisitos de información adicionales. Esto es " +"particularmente útil para construir herramientas que apoyen la presentación " +"de informes interactivos mientras se ejecutan las pruebas." #: ../Doc/library/unittest.rst:2021 msgid "Called when the test case *test* is about to be run." -msgstr "" +msgstr "Llamado cuando el caso de prueba *test* está a punto de ser ejecutado." #: ../Doc/library/unittest.rst:2025 msgid "" "Called after the test case *test* has been executed, regardless of the " "outcome." msgstr "" +"Llamado después de que el caso de prueba *prueba* haya sido ejecutado, " +"independientemente del resultado." #: ../Doc/library/unittest.rst:2030 msgid "Called once before any tests are executed." -msgstr "" +msgstr "Llamado una vez antes de que se ejecute cualquier prueba." #: ../Doc/library/unittest.rst:2037 msgid "Called once after all tests are executed." -msgstr "" +msgstr "Llamado una vez después de que se ejecuten todas las pruebas." #: ../Doc/library/unittest.rst:2044 msgid "" @@ -2461,6 +3310,9 @@ msgid "" "tuple of the form returned by :func:`sys.exc_info`: ``(type, value, " "traceback)``." msgstr "" +"Llamado cuando el caso de prueba *test* plantea una excepción inesperada. " +"*err* es una tupla de la forma devuelta por :func:`sys.exc_info`: ``(type, " +"value, traceback)``." #: ../Doc/library/unittest.rst:2048 msgid "" @@ -2468,12 +3320,17 @@ msgid "" "instance's :attr:`errors` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" +"La implementación por defecto añade una tupla ``(test, formatted_err)`` al " +"atributo :attr:`errors` de la instancia, donde *formatted_err* es una traza " +"formateada derivada de *err*." #: ../Doc/library/unittest.rst:2055 msgid "" "Called when the test case *test* signals a failure. *err* is a tuple of the " "form returned by :func:`sys.exc_info`: ``(type, value, traceback)``." msgstr "" +"Llamado cuando el caso de prueba *test* señala un fallo. *err* es una tupla " +"de la forma devuelta por :func:`sys.exc_info`: ``(type, value, traceback)``." #: ../Doc/library/unittest.rst:2058 msgid "" @@ -2481,32 +3338,41 @@ msgid "" "instance's :attr:`failures` attribute, where *formatted_err* is a formatted " "traceback derived from *err*." msgstr "" +"La implementación por defecto añade una tupla ``(test, formatted_err)`` al " +"atributo :attr:`failures` de la instancia, donde *formatted_err* es una " +"traza formateada derivada de *err*." #: ../Doc/library/unittest.rst:2065 msgid "Called when the test case *test* succeeds." -msgstr "" +msgstr "Llamado cuando el caso de prueba *test* tenga éxito." #: ../Doc/library/unittest.rst:2067 msgid "The default implementation does nothing." -msgstr "" +msgstr "La implementación por defecto no hace nada." #: ../Doc/library/unittest.rst:2072 msgid "" "Called when the test case *test* is skipped. *reason* is the reason the " "test gave for skipping." msgstr "" +"Llamado cuando se salta el caso de prueba *test*. *reason* es la razón que " +"la prueba dio para saltarse." #: ../Doc/library/unittest.rst:2075 msgid "" "The default implementation appends a tuple ``(test, reason)`` to the " "instance's :attr:`skipped` attribute." msgstr "" +"La implementación por defecto añade una tupla ``(test, reason)`` al " +"atributo :attr:`skipped` de la instancia." #: ../Doc/library/unittest.rst:2081 msgid "" "Called when the test case *test* fails or errors, but was marked with the :" "func:`expectedFailure` decorator." msgstr "" +"Llamó cuando el caso de prueba *test* falla, pero fue marcado con el " +"decorador :func:`expectedFailure`." #: ../Doc/library/unittest.rst:2084 msgid "" @@ -2514,18 +3380,25 @@ msgid "" "instance's :attr:`expectedFailures` attribute, where *formatted_err* is a " "formatted traceback derived from *err*." msgstr "" +"La implementación por defecto añade una tupla ``(test, formatted_err)`` al " +"atributo :attr:`expectedFailures` de la instancia, donde *formatted_err* es " +"una traza formateada derivada de *err*." #: ../Doc/library/unittest.rst:2091 msgid "" "Called when the test case *test* was marked with the :func:`expectedFailure` " "decorator, but succeeded." msgstr "" +"Llamó cuando el caso de prueba *test* se marcó con el decorador :func:" +"`expectedFailure`, pero tuvo éxito." #: ../Doc/library/unittest.rst:2094 msgid "" "The default implementation appends the test to the instance's :attr:" "`unexpectedSuccesses` attribute." msgstr "" +"La implementación por defecto añade la prueba al atributo :attr:" +"`unexpectedSuccesses` de la instancia." #: ../Doc/library/unittest.rst:2100 msgid "" @@ -2533,6 +3406,9 @@ msgid "" "the test method. *subtest* is a custom :class:`TestCase` instance " "describing the subtest." msgstr "" +"Llamado cuando termina una subtest. *test* es el caso de prueba " +"correspondiente al método de test. *subtest* es una instancia " +"personalizada :class:`TestCase` que describe el test." #: ../Doc/library/unittest.rst:2104 msgid "" @@ -2540,24 +3416,33 @@ msgid "" "with an exception where *outcome* is a tuple of the form returned by :func:" "`sys.exc_info`: ``(type, value, traceback)``." msgstr "" +"Si *outcome* es :const:`None`, el subtest tuvo éxito. De lo contrario, " +"falló con una excepción en la que *outcome* es una tupla de la forma " +"devuelta por :func:`sys.exc_info`: ``(type, value, traceback)``." #: ../Doc/library/unittest.rst:2108 msgid "" "The default implementation does nothing when the outcome is a success, and " "records subtest failures as normal failures." msgstr "" +"La implementación por defecto no hace nada cuando el resultado es un éxito, " +"y registra los fallos del subtest como fallos normales." #: ../Doc/library/unittest.rst:2116 msgid "" "A concrete implementation of :class:`TestResult` used by the :class:" "`TextTestRunner`." msgstr "" +"Una implementación concreta de :class:`TestResult` utilizado por el :class:" +"`TextTestRunner`." #: ../Doc/library/unittest.rst:2119 msgid "" "This class was previously named ``_TextTestResult``. The old name still " "exists as an alias but is deprecated." msgstr "" +"Esta clase se llamaba anteriormente ``_TextTestResult``. El antiguo nombre " +"todavía existe como un alias pero está obsoleto." #: ../Doc/library/unittest.rst:2126 msgid "" @@ -2565,6 +3450,9 @@ msgid "" "customization of the :class:`TestLoader` is needed, this instance can be " "used instead of repeatedly creating new instances." msgstr "" +"Instancia de la clase :class:`TestLoader` destinada a ser compartida. Si no " +"es necesario personalizar la clase :class:`TestLoader`, esta instancia puede " +"utilizarse en lugar de crear repetidamente nuevas instancias." #: ../Doc/library/unittest.rst:2134 msgid "" @@ -2576,6 +3464,14 @@ msgid "" "as the interface to construct runners changes when features are added to " "unittest." msgstr "" +"Una implementación básica del test runner que produce resultados en una " +"corriente. Si *stream* es ``None``, el valor por defecto, :data:`sys.stderr` " +"se utiliza como flujo de salida. Esta clase tiene unos pocos parámetros " +"configurables, pero es esencialmente muy simple. Las aplicaciones gráficas " +"que ejecutan las suites de prueba deben proporcionar implementaciones " +"alternativas. Tales implementaciones deberían aceptar ``**kwargs`` como " +"interfaz para construir los cambios de los corredores cuando se añaden " +"características a unittest." #: ../Doc/library/unittest.rst:2141 msgid "" @@ -2589,20 +3485,32 @@ msgid "" "option:`!-Wd` or :option:`!-Wa` options (see :ref:`Warning control `) and leaving *warnings* to ``None``." msgstr "" +"Por defecto este runner muestra :exc:`DeprecationWarning`, :exc:" +"`PendingDeprecationWarning`, :exc:`ResourceWarning` y :exc:`ImportWarning` " +"aunque estén :ref:`ignorados por defecto `. Las " +"advertencias de deprecación causadas por :ref:`métodos deprecated unittest " +"` también tienen un caso especial y, cuando los filtros " +"de advertencia están ``'default'`` o ``'always'``, aparecerán sólo una vez " +"por módulo, para evitar demasiados mensajes de advertencia. Este " +"comportamiento puede ser anulado usando las opciones :option:`!-Wd` o :" +"option:`!-Wa` de Python (ver :ref:`Control de advertencias `) y dejando *warnings* a ``None``." #: ../Doc/library/unittest.rst:2152 msgid "Added the ``warnings`` argument." -msgstr "" +msgstr "Añadió el argumento ``warnings``." #: ../Doc/library/unittest.rst:2155 msgid "" "The default stream is set to :data:`sys.stderr` at instantiation time rather " "than import time." msgstr "" +"El flujo por defecto está configurado como :data:`sys.stderr` en tiempo de " +"instanciación en lugar de tiempo de importación." #: ../Doc/library/unittest.rst:2159 msgid "Added the tb_locals parameter." -msgstr "" +msgstr "Añadido el parámetro tb_locals." #: ../Doc/library/unittest.rst:2164 msgid "" @@ -2610,6 +3518,9 @@ msgid "" "is not intended to be called directly, but can be overridden in subclasses " "to provide a custom ``TestResult``." msgstr "" +"Este método devuelve la instancia de ``TestResult`` usada por :meth:`run`. " +"No está destinado a ser llamado directamente, pero puede ser anulado en " +"subclases para proporcionar un ``TestResult`` personalizado." #: ../Doc/library/unittest.rst:2168 msgid "" @@ -2618,6 +3529,11 @@ msgid "" "to :class:`TextTestResult` if no ``resultclass`` is provided. The result " "class is instantiated with the following arguments::" msgstr "" +"``_makeResult()`` instanciando la clase o el pasaje llamado en el " +"constructor ``TextTestRunner`` como el argumento de ``resultclass``. Por " +"defecto es :class:`TextTestResult` si no se proporciona ninguna " +"``resultclass``. La clase de resultado se instanciará con los siguientes " +"argumentos::" #: ../Doc/library/unittest.rst:2177 msgid "" @@ -2626,6 +3542,10 @@ msgid "" "`TestResult` is created by calling :func:`_makeResult` and the test(s) are " "run and the results printed to stdout." msgstr "" +"Este método es la principal interfaz pública del ``TextTestRunner``. Este " +"método toma una instancia :class:`TestSuite` o :class:`TestCase`. Se crea " +"una :class:`TestResult` llamando a :func:`_makeResult` y se ejecuta(n) la(s) " +"prueba(s) y se imprimen los resultados a stdout." #: ../Doc/library/unittest.rst:2188 msgid "" @@ -2634,12 +3554,18 @@ msgid "" "simplest use for this function is to include the following line at the end " "of a test script::" msgstr "" +"Un programa de línea de comandos que carga un conjunto de pruebas de " +"*módulo* y las ejecuta; esto es principalmente para hacer los módulos de " +"prueba convenientemente ejecutables. El uso más simple de esta función es " +"incluir la siguiente línea al final de un guión de prueba::" #: ../Doc/library/unittest.rst:2196 msgid "" "You can run tests with more detailed information by passing in the verbosity " "argument::" msgstr "" +"Puedes hacer pruebas con información más detallada pasando el argumento de " +"la verbosity::" #: ../Doc/library/unittest.rst:2202 msgid "" @@ -2648,6 +3574,11 @@ msgid "" "not specified or ``None`` and no test names are provided via *argv*, all " "tests found in *module* are run." msgstr "" +"El argumento *defaultTest* es el nombre de una prueba única o un iterable de " +"nombres de pruebas a ejecutar si no se especifican nombres de pruebas a " +"través de *argv*. Si no se especifica o ``Ninguno`` y no se proporcionan " +"nombres de pruebas vía *argv*, se ejecutan todas las pruebas encontradas en " +"*modulo*." #: ../Doc/library/unittest.rst:2207 msgid "" @@ -2655,6 +3586,9 @@ msgid "" "first element being the program name. If not specified or ``None``, the " "values of :data:`sys.argv` are used." msgstr "" +"El argumento *argv* puede ser una lista de opciones pasadas al programa, " +"siendo el primer elemento el nombre del programa. Si no se especifica o " +"``Ninguno``, se utilizan los valores de :data:`sys.argv`." #: ../Doc/library/unittest.rst:2211 msgid "" @@ -2662,12 +3596,18 @@ msgid "" "created instance of it. By default ``main`` calls :func:`sys.exit` with an " "exit code indicating success or failure of the tests run." msgstr "" +"El argumento *testRunner* puede ser una clase de corredor de prueba o una " +"instancia ya creada de él. Por defecto ``main`` llama :func:`sys.exit` con " +"un código de salida que indica el éxito o el fracaso de la ejecución de las " +"pruebas." #: ../Doc/library/unittest.rst:2215 msgid "" "The *testLoader* argument has to be a :class:`TestLoader` instance, and " "defaults to :data:`defaultTestLoader`." msgstr "" +"El argumento *testLoader* tiene que ser una instancia :class:`TestLoader`, y " +"por defecto :data:`defaultTestLoader`." #: ../Doc/library/unittest.rst:2218 msgid "" @@ -2675,12 +3615,17 @@ msgid "" "the argument ``exit=False``. This displays the result on standard output " "without calling :func:`sys.exit`::" msgstr "" +"``main`` apoya el uso del intérprete interactivo pasando el argumento " +"``exit=False``. Esto muestra el resultado en la salida estándar sin llamar " +"a :func:`sys.exit`::" #: ../Doc/library/unittest.rst:2225 msgid "" "The *failfast*, *catchbreak* and *buffer* parameters have the same effect as " "the same-name `command-line options`_." msgstr "" +"Los parámetros *failfast*, *catchbreak* y *buffer* tienen el mismo efecto " +"que las `command-line options`_ del mismo nombre." #: ../Doc/library/unittest.rst:2228 msgid "" @@ -2690,32 +3635,44 @@ msgid "" "(see :ref:`Warning control `), otherwise it will be set " "to ``'default'``." msgstr "" +"El argumento *warnings* especifica el :ref:`filtro de aviso ` que debe ser usado mientras se realizan los tests. Si no se " +"especifica, permanecerá como ``None`` si se pasa una opción :option:`!-W` a :" +"program:`python` (ver :ref:`Warning control `), de lo " +"contrario se establecerá como ``’default’``." #: ../Doc/library/unittest.rst:2234 msgid "" "Calling ``main`` actually returns an instance of the ``TestProgram`` class. " "This stores the result of the tests run as the ``result`` attribute." msgstr "" +"Invocar ``main`` en realidad devuelve una instancia de la clase " +"``TestProgram``. Esto almacena el resultado de las pruebas ejecutadas como " +"el atributo ``result``." #: ../Doc/library/unittest.rst:2237 msgid "The *exit* parameter was added." -msgstr "" +msgstr "El parámetro *exit* fue añadido." #: ../Doc/library/unittest.rst:2240 msgid "" "The *verbosity*, *failfast*, *catchbreak*, *buffer* and *warnings* " "parameters were added." msgstr "" +"Los parámetros *verbosity*, *failfast*, *catchbreak*, *buffer* y *warnings* " +"fueron añadidos." #: ../Doc/library/unittest.rst:2244 msgid "" "The *defaultTest* parameter was changed to also accept an iterable of test " "names." msgstr "" +"El parámetro *defaultTest* fue cambiado para aceptar también un iterable de " +"nombres de pruebas." #: ../Doc/library/unittest.rst:2250 msgid "load_tests Protocol" -msgstr "" +msgstr "load_tests protocolo" #: ../Doc/library/unittest.rst:2254 msgid "" @@ -2723,22 +3680,30 @@ msgid "" "normal test runs or test discovery by implementing a function called " "``load_tests``." msgstr "" +"Los módulos o paquetes pueden personalizar la forma en que se cargan las " +"pruebas a partir de ellos durante las ejecuciones de prueba normales o el " +"descubrimiento de pruebas mediante la implementación de una función llamada " +"``load_tests``." #: ../Doc/library/unittest.rst:2257 msgid "" "If a test module defines ``load_tests`` it will be called by :meth:" "`TestLoader.loadTestsFromModule` with the following arguments::" msgstr "" +"Si un módulo de tests define ``load_tests`` será llamado por :meth:" +"`TestLoader.loadTestsFromModule` con los siguientes argumentos::" #: ../Doc/library/unittest.rst:2262 msgid "" "where *pattern* is passed straight through from ``loadTestsFromModule``. It " "defaults to ``None``." msgstr "" +"donde *pattern* se pasa directamente desde ``loadTestsFromModule``. Por " +"defecto es ``None``." #: ../Doc/library/unittest.rst:2265 msgid "It should return a :class:`TestSuite`." -msgstr "" +msgstr "Debe retornar una :class:`TestSuite`." #: ../Doc/library/unittest.rst:2267 msgid "" @@ -2748,12 +3713,19 @@ msgid "" "from the standard set of tests. The third argument is used when loading " "packages as part of test discovery." msgstr "" +"*loader* es la instancia de :class:`TestLoader` haciendo la carga. " +"*standard_tests* son los tests que se cargarían por defecto desde el módulo. " +"Es común que los módulos de test sólo quieran añadir o quitar tests del " +"conjunto de tests estándar. El tercer argumento se usa cuando se cargan " +"paquetes como parte del descubrimiento de tests." #: ../Doc/library/unittest.rst:2273 msgid "" "A typical ``load_tests`` function that loads tests from a specific set of :" "class:`TestCase` classes may look like::" msgstr "" +"Una típica función de ``load_tests`` que carga pruebas de un conjunto " +"específico de :class:`TestCase`class:`TestCase` puede ser como::" #: ../Doc/library/unittest.rst:2285 msgid "" @@ -2764,6 +3736,13 @@ msgid "" "just another directory. Otherwise, discovery of the package's tests will be " "left up to ``load_tests`` which is called with the following arguments::" msgstr "" +"Si discovery se inicia en un directorio que contiene un paquete, ya sea " +"desde la línea de comandos o llamando a :meth:`TestLoader.discover`, " +"entonces el paquete :file:`__init__.py` se comprobará por ``load_tests``. " +"Si esa función no existe, discover se reincorporará al paquete como si fuera " +"un directorio más. De lo contrario, el descubrimiento de los tests del " +"paquete se dejará en ``load_tests`` que se llama con los siguientes " +"argumentos::" #: ../Doc/library/unittest.rst:2294 msgid "" @@ -2771,6 +3750,9 @@ msgid "" "package. (``standard_tests`` will only contain tests collected from :file:" "`__init__.py`.)" msgstr "" +"Esto debería devolver un :class:`TestSuite` que represente todas las pruebas " +"del paquete. (``test_estándar`` sólo contendrá las pruebas recogidas de :" +"file:`__init__.py`.)" #: ../Doc/library/unittest.rst:2298 msgid "" @@ -2778,16 +3760,23 @@ msgid "" "continue (and potentially modify) test discovery. A 'do nothing' " "``load_tests`` function for a test package would look like::" msgstr "" +"Debido a que el patrón se pasa a ``load_tests`` el paquete es libre de " +"continuar (y potencialmente modificar) el descubrimiento de pruebas. Una " +"función de 'no hace nada' ``load_test`` para un paquete de pruebas se vería " +"como::" #: ../Doc/library/unittest.rst:2309 msgid "" "Discovery no longer checks package names for matching *pattern* due to the " "impossibility of package names matching the default pattern." msgstr "" +"Discovery ya no comprueba si los nombres de los paquetes coinciden con el " +"*patrón* debido a la imposibilidad de que los nombres de los paquetes " +"coincidan con el patrón por defecto." #: ../Doc/library/unittest.rst:2316 msgid "Class and Module Fixtures" -msgstr "" +msgstr "Instalaciones para clases y módulos" #: ../Doc/library/unittest.rst:2318 msgid "" @@ -2796,6 +3785,10 @@ msgid "" "from the previous class (if there is one) is called, followed by :meth:" "`setUpClass` from the new class." msgstr "" +"Los accesorios de nivel de clase y módulo se implementan en :class:" +"`TestSuite`. Cuando el conjunto de pruebas se encuentra con una prueba de " +"una nueva clase entonces se llama :meth:`tearDownClass` de la clase anterior " +"(si existe), seguido de :meth:`setUpClass` de la nueva clase." #: ../Doc/library/unittest.rst:2323 msgid "" @@ -2803,12 +3796,17 @@ msgid "" "``tearDownModule`` from the previous module is run, followed by " "``setUpModule`` from the new module." msgstr "" +"Del mismo modo, si una prueba es de un módulo diferente de la prueba " +"anterior, entonces se ejecuta ``DesmontarMódulo`` del módulo anterior, " +"seguido de ``DesmontarMódulo`` del nuevo módulo." #: ../Doc/library/unittest.rst:2327 msgid "" "After all the tests have run the final ``tearDownClass`` and " "``tearDownModule`` are run." msgstr "" +"Después de todas las pruebas, se ejecutan los últimos ``tearDownClass`` y " +"``tearDownModule``." #: ../Doc/library/unittest.rst:2330 msgid "" @@ -2816,6 +3814,9 @@ msgid "" "test parallelization and they break test isolation. They should be used with " "care." msgstr "" +"Tenga en cuenta que los accesorios compartidos no juegan bien con las " +"características [potenciales] como la paralelización de la prueba y rompen " +"el aislamiento de la prueba. Deben ser usados con cuidado." #: ../Doc/library/unittest.rst:2333 msgid "" @@ -2826,6 +3827,13 @@ msgid "" "modules and classes are adjacent to each other, then these shared fixture " "functions may be called multiple times in a single test run." msgstr "" +"El orden por defecto de las pruebas creadas por los cargadores de pruebas " +"unitarias es agrupar todas las pruebas de los mismos módulos y clases. Esto " +"llevará a que ``setUpClass`` / ``setUpModule`` (etc) sea llamado exactamente " +"una vez por clase y módulo. Si se aleatoriza el orden, de manera que las " +"pruebas de diferentes módulos y clases sean adyacentes entre sí, entonces " +"estas funciones compartidas de fixture pueden ser llamadas varias veces en " +"una sola ejecución de prueba." #: ../Doc/library/unittest.rst:2340 msgid "" @@ -2833,6 +3841,9 @@ msgid "" "ordering. A ``BaseTestSuite`` still exists for frameworks that don't want to " "support shared fixtures." msgstr "" +"Los accesorios compartidos no están pensados para trabajar con suites con " +"pedidos no estándar. Todavía existe una ``BaseTestSuite`` para los marcos de " +"trabajo que no quieren soportar accesorios compartidos." #: ../Doc/library/unittest.rst:2344 msgid "" @@ -2843,14 +3854,20 @@ msgid "" "are just using the standard unittest test runner then this detail doesn't " "matter, but if you are a framework author it may be relevant." msgstr "" +"Si hay alguna excepción planteada durante una de las funciones compartidas " +"del aparato, la prueba se notifica como un error. Debido a que no hay una " +"instancia de prueba correspondiente, se crea un objeto ``_ErrorHolder`` (que " +"tiene la misma interfaz que un :class:`TestCase`) para representar el error. " +"Si sólo estás usando el standard unittest test runner entonces este detalle " +"no importa, pero si eres un autor de marcos de trabajo puede ser relevante." #: ../Doc/library/unittest.rst:2353 msgid "setUpClass and tearDownClass" -msgstr "" +msgstr "setUpClass y tearDownClass" #: ../Doc/library/unittest.rst:2355 msgid "These must be implemented as class methods::" -msgstr "" +msgstr "Estos deben ser implementados como métodos de clase::" #: ../Doc/library/unittest.rst:2368 msgid "" @@ -2858,6 +3875,9 @@ msgid "" "then you must call up to them yourself. The implementations in :class:" "`TestCase` are empty." msgstr "" +"Si quieres que se invoque a ``SetUpClass`` y ``BreakdownClass`` en clases " +"base, debes llamarlos tú mismo. Las implementaciones en :class:`TestCase` " +"están vacías." #: ../Doc/library/unittest.rst:2372 msgid "" @@ -2867,14 +3887,19 @@ msgid "" "`SkipTest` exception then the class will be reported as having been skipped " "instead of as an error." msgstr "" +"Si se lanza una excepción durante una ``setUpClass``, entonces los tests de " +"la clase no se ejecutan y la ``tearDownClass`` no se ejecuta. Las clases que " +"se salten no tendrán ``setUpClass`` o ``tearDownClass``. Si la excepción es " +"una :exc:`SkipTest` entonces la clase será reportada como salteada en lugar " +"de como un error." #: ../Doc/library/unittest.rst:2380 msgid "setUpModule and tearDownModule" -msgstr "" +msgstr "setUpModule y tearDownModule" #: ../Doc/library/unittest.rst:2382 msgid "These should be implemented as functions::" -msgstr "" +msgstr "Estos deben ser implementados como funciones::" #: ../Doc/library/unittest.rst:2390 msgid "" @@ -2883,12 +3908,18 @@ msgid "" "exception is a :exc:`SkipTest` exception then the module will be reported as " "having been skipped instead of as an error." msgstr "" +"Si se lanza una excepción en un ``setUpModule``, entonces no se ejecutará " +"ninguna de las pruebas del módulo y no se ejecutará el ``tearDownModule``. " +"Si la excepción es una :exc:`SkipTest` entonces el módulo será reportado " +"como saltado en lugar de como un error." #: ../Doc/library/unittest.rst:2395 msgid "" "To add cleanup code that must be run even in the case of an exception, use " "``addModuleCleanup``:" msgstr "" +"Para agregar código de limpieza que se debe ejecutar incluso en el caso de " +"una excepción, utilice ``addModuleCleanup``::" #: ../Doc/library/unittest.rst:2401 msgid "" @@ -2898,18 +3929,28 @@ msgid "" "are called with any arguments and keyword arguments passed into :meth:" "`addModuleCleanup` when they are added." msgstr "" +"Añade una función que se llamará después de :func:`tearDownModule` para " +"limpiar los recursos utilizados durante la clase de test. Las funciones se " +"llamarán en orden inverso al orden en que se agregan (:abbr:`LIFO (last-in, " +"first-out)`). Se llaman con cualquier argumento y palabra clave que se pase " +"a :meth:`addModuleCleanup` cuando se añadan." #: ../Doc/library/unittest.rst:2407 msgid "" "If :meth:`setUpModule` fails, meaning that :func:`tearDownModule` is not " "called, then any cleanup functions added will still be called." msgstr "" +"Si :meth:`setUpModule` falla, lo que significa que :func:`tearDownModule` no " +"se invoca, entonces cualquier función de limpieza añadida seguirá siendo " +"invocada." #: ../Doc/library/unittest.rst:2415 msgid "" "This function is called unconditionally after :func:`tearDownModule`, or " "after :func:`setUpModule` if :func:`setUpModule` raises an exception." msgstr "" +"Esta función se llama incondicionalmente después de :func:`tearDownModule`, " +"o después de :func:`setUpModule` si :func:`setUpModule` lanza una excepción." #: ../Doc/library/unittest.rst:2418 msgid "" @@ -2917,16 +3958,22 @@ msgid "" "`addCleanupModule`. If you need cleanup functions to be called *prior* to :" "func:`tearDownModule` then you can call :func:`doModuleCleanups` yourself." msgstr "" +"Es responsable de invocar a todas las funciones de limpieza añadidas por :" +"func:`addCleanupModule`. Si necesitas que las funciones de limpieza se " +"llamen *previamente* a :func:`tearDownModule` entonces puedes invocar a :" +"func:`doModuleCleanups` tú mismo." #: ../Doc/library/unittest.rst:2423 msgid "" ":func:`doModuleCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." msgstr "" +":func:`doModuleCleanups` saca los métodos de la pila de funciones de " +"limpieza uno a uno, así que se puede llamar en cualquier momento." #: ../Doc/library/unittest.rst:2429 msgid "Signal Handling" -msgstr "" +msgstr "Manejo de señales" #: ../Doc/library/unittest.rst:2433 msgid "" @@ -2937,6 +3984,13 @@ msgid "" "complete, and the test run will then end and report all the results so far. " "A second control-c will raise a :exc:`KeyboardInterrupt` in the usual way." msgstr "" +"La opción :option:`-c/--catch ` línea de comando para unittest, " +"junto con el parámetro ``catchbreak`` de :func:`unittest.main()`, " +"proporcionan un manejo más amigable del control-C durante una prueba. Con el " +"comportamiento catch break habilitado, control-C permitirá que se complete " +"la prueba que se está ejecutando actualmente, y la ejecución de la prueba " +"terminará y reportará todos los resultados hasta ahora. Un segundo control-C " +"lanzará una :exc:`KeyboardInterrupt` de la manera habitual." #: ../Doc/library/unittest.rst:2440 msgid "" @@ -2949,12 +4003,24 @@ msgid "" "to it. For individual tests that need ``unittest`` control-c handling " "disabled the :func:`removeHandler` decorator can be used." msgstr "" +"El manejador de señales de manejo de control-c intenta permanecer compatible " +"con el código o las pruebas que instalan su propio manejador :const:`signal." +"SIGINT` . Si se llama al manejador ``unittest`` pero *no es* el manejador :" +"const:`signal.SIGINT` instalado, es decir, ha sido reemplazado por el " +"sistema bajo test y delegado, entonces llama al manejador por defecto. Este " +"será normalmente el comportamiento esperado por el código que reemplaza un " +"manejador instalado y delega en él. Para las pruebas individuales que " +"necesiten el manejo de control-c de ``unittest`` deshabilitado se puede usar " +"el decorador :func:`removeHandler`." #: ../Doc/library/unittest.rst:2449 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." msgstr "" +"Hay algunas funciones de utilidad para que los autores de marcos de trabajo " +"habiliten la funcionalidad de control de control-c dentro de los marcos de " +"prueba." #: ../Doc/library/unittest.rst:2454 msgid "" @@ -2962,6 +4028,9 @@ msgid "" "(usually in response to the user pressing control-c) all registered results " "have :meth:`~TestResult.stop` called." msgstr "" +"Instala el controlador de control-c. Cuando se recibe una :const:`signal." +"SIGINT` (normalmente en respuesta a que el usuario presione control-c) " +"todos los resultados registrados tienen :meth:`~TestResult.stop` llamado." #: ../Doc/library/unittest.rst:2461 msgid "" @@ -2969,6 +4038,9 @@ msgid "" "result stores a weak reference to it, so it doesn't prevent the result from " "being garbage collected." msgstr "" +"Registrar un objeto :class:`TestResult` para el manejo de control-c. El " +"registro de un resultado almacena una referencia débil a él, por lo que no " +"evita que el resultado sea recogido por el recolector de basura." #: ../Doc/library/unittest.rst:2465 msgid "" @@ -2976,6 +4048,10 @@ msgid "" "handling is not enabled, so test frameworks can unconditionally register all " "results they create independently of whether or not handling is enabled." msgstr "" +"El registro de un objeto :class:`TestResult` no tiene efectos secundarios si " +"el manejo de control-c no está habilitado, por lo que los marcos de pruebas " +"pueden registrar incondicionalmente todos los resultados que crean " +"independientemente de si el manejo está habilitado o no." #: ../Doc/library/unittest.rst:2472 msgid "" @@ -2983,6 +4059,9 @@ msgid "" "`~TestResult.stop` will no longer be called on that result object in " "response to a control-c." msgstr "" +"Elimine un resultado registrado. Una vez que un resultado ha sido " +"eliminado, :meth:`~TestResult.stop` ya no se llamará en ese objeto de " +"resultado en respuesta a un control-c." #: ../Doc/library/unittest.rst:2479 msgid "" @@ -2990,3 +4069,6 @@ msgid "" "it has been installed. This function can also be used as a test decorator to " "temporarily remove the handler while the test is being executed::" msgstr "" +"Cuando se llama sin argumentos, esta función quita el gestor control-c si se " +"ha instalado. Esta función también se puede utilizar como decorador de tests " +"para quitar temporalmente el controlador mientras se ejecuta el test::" diff --git a/library/urllib.parse.po b/library/urllib.parse.po index 9a479caf2c..318c0665ca 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-12 14:02-0600\n" -"Last-Translator: Marcos Moreno \n" +"PO-Revision-Date: 2021-08-27 00:11+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/urllib.parse.rst:2 msgid ":mod:`urllib.parse` --- Parse URLs into components" @@ -84,7 +85,6 @@ msgstr "" "en una cadena de dirección URL." #: ../Doc/library/urllib.parse.rst:42 -#, fuzzy, python-format msgid "" "Parse a URL into six components, returning a 6-item :term:`named tuple`. " "This corresponds to the general structure of a URL: ``scheme://netloc/path;" @@ -94,15 +94,15 @@ msgid "" "delimiters as shown above are not part of the result, except for a leading " "slash in the *path* component, which is retained if present. For example:" msgstr "" -"Analice una dirección URL en seis componentes y retorne una tupla de 6 " -"elementos :term:`named tuple`. Esto corresponde a la estructura general de " -"una URL: ``scheme://netloc/path;parameters?query#fragment``. Cada elemento " -"de la tupla es una cadena, posiblemente vacía. Los componentes no se dividen " -"en piezas más pequeñas (por ejemplo, la ubicación de red es una sola cadena) " -"y los caracteres % de escapes no se expanden. Los delimitadores como se " -"muestra anteriormente no forman parte del resultado, excepto una barra " -"diagonal inicial en el componente *path*, que se conserva si está presente. " -"Por ejemplo:" +"Analiza una dirección URL en seis componentes, retornando una :term:`tupla " +"nombrada ` de 6 elementos. Esto corresponde a la estructura " +"general de una URL: ``scheme://netloc/path;parameters?query#fragment``. Cada " +"elemento de la tupla es una cadena, posiblemente vacía. Los componentes no " +"se dividen en piezas más pequeñas (por ejemplo, la ubicación de red es una " +"sola cadena) y los caracteres % de escape no se expanden. Los delimitadores " +"como se muestra anteriormente no forman parte del resultado, excepto una " +"barra diagonal inicial en el componente *path*, que se conserva si está " +"presente. Por ejemplo:" #: ../Doc/library/urllib.parse.rst:63 msgid "" @@ -351,7 +351,7 @@ msgid "" "that support fragments existed." msgstr "" "El fragmento ahora se analiza para todos los esquemas de URL (a menos que " -"*allow_fragment* sea false), de acuerdo con :rfc:`3986`. Anteriormente, " +"*allow_fragment* sea falso), de acuerdo con :rfc:`3986`. Anteriormente, " "existía una lista blanca de esquemas que admiten fragmentos." #: ../Doc/library/urllib.parse.rst:159 ../Doc/library/urllib.parse.rst:314 @@ -393,8 +393,8 @@ msgid "" msgstr "" "El argumento opcional *keep_blank_values* es un indicador que indica si los " "valores en blanco de las consultas codificadas por porcentaje deben tratarse " -"como cadenas en blanco. Un valor true indica que los espacios en blanco " -"deben conservarse como cadenas en blanco. El valor false predeterminado " +"como cadenas en blanco. Un valor verdadero indica que los espacios en blanco " +"deben conservarse como cadenas en blanco. El valor falso predeterminado " "indica que los valores en blanco deben omitirse y tratarse como si no se " "hubieran incluido." @@ -405,9 +405,9 @@ msgid "" "true, errors raise a :exc:`ValueError` exception." msgstr "" "El argumento opcional *strict_parsing* es una marca que indica qué hacer con " -"los errores de análisis. Si es false (valor predeterminado), los errores se " -"omiten silenciosamente. Si es true, los errores generan una excepción :exc:" -"`ValueError`." +"los errores de análisis. Si es falso (valor predeterminado), los errores se " +"omiten silenciosamente. Si es verdadero, los errores generan una excepción :" +"exc:`ValueError`." #: ../Doc/library/urllib.parse.rst:185 ../Doc/library/urllib.parse.rst:230 msgid "" @@ -434,6 +434,8 @@ msgid "" "The optional argument *separator* is the symbol to use for separating the " "query arguments. It defaults to ``&``." msgstr "" +"El argumento opcional *separator* es el símbolo que se usa para separar los " +"argumentos de la cadena de consulta. El valor por defecto es ``&``." #: ../Doc/library/urllib.parse.rst:196 msgid "" @@ -459,6 +461,10 @@ msgid "" "parameter separator. This has been changed to allow only a single separator " "key, with ``&`` as the default separator." msgstr "" +"Añadido parámetro *separator* con un valor por defecto de ``&``. Versiones " +"de Python anterior a Python 3.9.2 permitían el uso de ``;`` y ``&`` como " +"separadores de la cadena de consulta. Esto ha sido cambiado para aceptar " +"sólo una llave separadora, siendo ``&`` en separador por defecto." #: ../Doc/library/urllib.parse.rst:216 msgid "" @@ -555,15 +561,14 @@ msgstr "" "predeterminado que para :func:`urlparse`." #: ../Doc/library/urllib.parse.rst:348 -#, fuzzy msgid "" "If *url* is an absolute URL (that is, it starts with ``//`` or ``scheme://" "``), the *url*'s hostname and/or scheme will be present in the result. For " "example:" msgstr "" -"Si *url* es una URL absoluta (es decir, a partir de ``//`` o ``scheme://``), " -"el nombre de host y/o esquema de *url* estará presente en el resultado. Por " -"ejemplo:" +"Si *url* es una URL absoluta (es decir, comienza con ``//`` o ``scheme://" +"``), el nombre de host y/o esquema de *url* estará presente en el " +"resultado. Por ejemplo:" #: ../Doc/library/urllib.parse.rst:357 msgid "" @@ -575,11 +580,10 @@ msgstr "" "*netloc*." #: ../Doc/library/urllib.parse.rst:363 -#, fuzzy msgid "Behavior updated to match the semantics defined in :rfc:`3986`." msgstr "" -"Comportamiento actualizado para que coincida con la semántica definida en :" -"rfc:`3986`." +"Comportamiento actualizado para coincidir con la semántica definida en :rfc:" +"`3986`." #: ../Doc/library/urllib.parse.rst:368 msgid "" @@ -621,6 +625,10 @@ msgid "" "or ``scheme://host/path``). If *url* is not a wrapped URL, it is returned " "without changes." msgstr "" +"Extrae la url de una URL envuelta (es decir, una cadena de caracteres " +"formateada como ````, ````, " +"``URL:scheme://host/path`` or ``scheme://host/path``). Si *url* no es una " +"URL envuelta, se retorna sin cambios." #: ../Doc/library/urllib.parse.rst:400 msgid "Parsing ASCII Encoded Bytes" @@ -694,8 +702,8 @@ msgid "" msgstr "" "Las aplicaciones que necesitan operar en direcciones URL potencialmente " "citadas incorrectamente que pueden contener datos no ASCII tendrán que " -"realizar su propia descodificación de bytes a caracteres antes de invocar " -"los métodos de análisis de URL." +"realizar su propia decodificación de bytes a caracteres antes de invocar los " +"métodos de análisis de URL." #: ../Doc/library/urllib.parse.rst:432 msgid "" @@ -855,7 +863,7 @@ msgstr "" "está cubierta por las funciones de análisis de URL anteriores." #: ../Doc/library/urllib.parse.rst:539 -#, fuzzy, python-format +#, python-format msgid "" "Replace special characters in *string* using the ``%xx`` escape. Letters, " "digits, and the characters ``'_.-~'`` are never quoted. By default, this " @@ -863,27 +871,25 @@ msgid "" "*safe* parameter specifies additional ASCII characters that should not be " "quoted --- its default value is ``'/'``." msgstr "" -"Reemplace caracteres especiales en *string* con el escape ``%xx``. Las " -"letras, los dígitos y los caracteres ``'_.-~'`` nunca se citan. De forma " -"predeterminada, esta función está pensada para citar la sección de ruta de " -"acceso de la dirección URL. El parámetro opcional *safe* especifica " +"Reemplaza caracteres especiales en *string* con la secuencia de escape ``" +"%xx``. Las letras, los dígitos y los caracteres ``'_.-~'`` nunca se citan. " +"De forma predeterminada, esta función está pensada para citar la sección de " +"ruta de acceso de la dirección URL. El parámetro opcional *safe* especifica " "caracteres ASCII adicionales que no se deben citar --- su valor " "predeterminado es ``'/'``." #: ../Doc/library/urllib.parse.rst:545 ../Doc/library/urllib.parse.rst:591 #: ../Doc/library/urllib.parse.rst:620 -#, fuzzy msgid "*string* may be either a :class:`str` or a :class:`bytes` object." -msgstr "*string* puede ser :class:`str` o :class:`bytes`." +msgstr "*string* puede ser un objeto :class:`str` o :class:`bytes`." #: ../Doc/library/urllib.parse.rst:547 -#, fuzzy msgid "" "Moved from :rfc:`2396` to :rfc:`3986` for quoting URL strings. \"~\" is now " "included in the set of unreserved characters." msgstr "" "Se ha movido de :rfc:`2396` a :rfc:`3986` para citar cadenas URL. Ahora se " -"incluye el valor de \"\" en el conjunto de caracteres reservados." +"incluye \"~\" en el conjunto de caracteres reservados." #: ../Doc/library/urllib.parse.rst:551 msgid "" @@ -921,6 +927,11 @@ msgid "" "Plus signs in the original string are escaped unless they are included in " "*safe*. It also does not have *safe* default to ``'/'``." msgstr "" +"Como :func:`quote`, pero también reemplaza espacios con signos más, como se " +"requiere para citar valores de formularios HTML al momento de construir una " +"cadena de consulta que será parte de una URL. Los signos más en la cadena de " +"caracteres original se escapan, a no ser que se incluyan en *safe*. Además " +"el valor de *safe* no es `/` por defecto." #: ../Doc/library/urllib.parse.rst:572 #, python-format @@ -941,16 +952,17 @@ msgid "Example: ``quote_from_bytes(b'a&\\xef')`` yields ``'a%26%EF'``." msgstr "Ejemplo: ``quote_from_bytes(b'a&\\xef')`` produce ``'a%26%EF'``." #: ../Doc/library/urllib.parse.rst:586 -#, fuzzy, python-format +#, python-format msgid "" "Replace ``%xx`` escapes with their single-character equivalent. The optional " "*encoding* and *errors* parameters specify how to decode percent-encoded " "sequences into Unicode characters, as accepted by the :meth:`bytes.decode` " "method." msgstr "" -"Los parámetros opcionales *encoding* y *errors* especifican cómo " -"descodificar secuencias codificadas porcentualmente en caracteres Unicode, " -"tal como lo acepta el método :meth:`bytes.decode`." +"Reemplaza secuencias de escape ``%xx`` con los caracteres individuales " +"correspondientes. Los parámetros opcionales *encoding* y *errors* " +"especifican cómo descodificar secuencias codificadas porcentualmente a " +"caracteres Unicode, tal como lo acepta el método :meth:`bytes.decode`." #: ../Doc/library/urllib.parse.rst:593 msgid "" @@ -966,19 +978,19 @@ msgid "Example: ``unquote('/El%20Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "Ejemplo: ``unquote('/El%20Ni%C3%B1o/')`` produce ``'/El Niño/'``." #: ../Doc/library/urllib.parse.rst:599 -#, fuzzy msgid "" "*string* parameter supports bytes and str objects (previously only str)." -msgstr "El parámetro Query admite bytes y objetos de cadena." +msgstr "" +"El parámetro *string* admite bytes y cadenas de caracteres (anteriormente " +"sólo cadenas de caracteres)." #: ../Doc/library/urllib.parse.rst:607 -#, fuzzy msgid "" "Like :func:`unquote`, but also replace plus signs with spaces, as required " "for unquoting HTML form values." msgstr "" -"Como :func:`unquote`, pero también reemplace los signos más por espacios, " -"según sea necesario para los valores de formulario HTML sin comillas." +"Como :func:`unquote`, pero también reemplaza los signos más por espacios, " +"como es requerido al decodificar valores de formularios HTML." #: ../Doc/library/urllib.parse.rst:610 msgid "*string* must be a :class:`str`." @@ -989,13 +1001,13 @@ msgid "Example: ``unquote_plus('/El+Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "Ejemplo: ``unquote_plus('/El+Ni%C3%B1o/')`` produce ``'/El Niño/'``." #: ../Doc/library/urllib.parse.rst:617 -#, fuzzy, python-format +#, python-format msgid "" "Replace ``%xx`` escapes with their single-octet equivalent, and return a :" "class:`bytes` object." msgstr "" -"Reemplace los escapes ``%xx`` por su equivalente de un solo octeto y retorne " -"un objeto :class:`bytes`." +"Reemplaza los escapes ``%xx`` por sus equivalentes de un solo octeto y " +"retorna un objeto :class:`bytes`." #: ../Doc/library/urllib.parse.rst:622 msgid "" @@ -1050,7 +1062,6 @@ msgstr "" "``quote`` y especifique un valor para *safe*." #: ../Doc/library/urllib.parse.rst:648 -#, fuzzy msgid "" "When a sequence of two-element tuples is used as the *query* argument, the " "first element of each tuple is a key and the second is a value. The value " @@ -1062,11 +1073,11 @@ msgid "" msgstr "" "Cuando se utiliza una secuencia de tuplas de dos elementos como argumento " "*query*, el primer elemento de cada tupla es una clave y el segundo es un " -"valor. El elemento *value* en sí mismo puede ser una secuencia y, en ese " -"caso, si el parámetro opcional *doseq* se evalúa como ``True``, se generan " -"pares individuales ``key=value`` separados por ``'&'`` para cada elemento de " -"la secuencia de valores de la clave. El orden de los parámetros de la " -"cadena codificada coincidirá con el orden de las tuplas de parámetros de la " +"valor. El valor en sí mismo puede ser una secuencia y, en ese caso, si el " +"parámetro opcional *doseq* se evalúa como ``True``, se generan pares " +"individuales ``key=value`` separados por ``'&'`` para cada elemento de la " +"secuencia de valores de la clave. El orden de los parámetros de la cadena " +"codificada coincidirá con el orden de las tuplas de parámetros de la " "secuencia." #: ../Doc/library/urllib.parse.rst:656 @@ -1089,20 +1100,18 @@ msgstr "" "estructuras de datos de Python." #: ../Doc/library/urllib.parse.rst:663 -#, fuzzy msgid "" "Refer to :ref:`urllib examples ` to find out how the :func:" "`urllib.parse.urlencode` method can be used for generating the query string " "of a URL or data for a POST request." msgstr "" "Consulte :ref:`urllib examples ` para averiguar cómo se " -"puede utilizar el método urlencode para generar una cadena de consulta para " -"una dirección URL o datos para POST." +"puede utilizar el método :func:`urllib.parse.urlencode` para generar una " +"cadena de consulta para una dirección URL o datos para POST." #: ../Doc/library/urllib.parse.rst:667 -#, fuzzy msgid "*query* supports bytes and string objects." -msgstr "El parámetro Query admite bytes y objetos de cadena." +msgstr "El parámetro *query* admite bytes y objetos de cadena." #: ../Doc/library/urllib.parse.rst:670 msgid "*quote_via* parameter." diff --git a/library/urllib.request.po b/library/urllib.request.po index e14de8612e..02938e78a7 100644 --- a/library/urllib.request.po +++ b/library/urllib.request.po @@ -6,21 +6,21 @@ # 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: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2021-01-02 15:40+0100\n" -"Last-Translator: Álvaro Mondéjar Rubio \n" +"PO-Revision-Date: 2021-08-26 23:42+0800\n" +"Last-Translator: Rodrigo Tobar \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/urllib.request.rst:2 msgid ":mod:`urllib.request` --- Extensible library for opening URLs" @@ -125,6 +125,10 @@ msgid "" "manager` and has the properties *url*, *headers*, and *status*. See :class:" "`urllib.response.addinfourl` for more detail on these properties." msgstr "" +"Esta función siempre retorna un objeto que puede actuar como un :term:" +"`gestor de contexto `, y tiene las propiedades *url*, " +"*headers* y *status*. Véase :class:`urllib.response.addinfourl` para más " +"detalles sobre estas propiedades." #: ../Doc/library/urllib.request.rst:61 msgid "" @@ -389,13 +393,12 @@ msgstr "" "*data* debe ser un objeto que especifique datos adicionales a enviar al " "servidor o ``None`` si no se necesitan tales datos. Actualmente las " "peticiones HTTP son las únicas que usan *data*. Los tipos de objetos " -"soportados incluyen bytes, objectos como archivos e iterables de objetos " -"como bytes. Si no se ha provisto el campo de encabezado ``Content-Length`` " -"ni ``Transfer-Encoding``, :class:`HTTPHandler` establecerá estos encabezados " -"de acuerdo al tipo de *data*. ``Content-Length`` será usado para enviar " -"objetos de bytes, mientras ``Transfer-Encoding: chunked`` como se especifica " -"en :rfc:`7230`, Sección 3.3.1 será usado para enviar archivos y otros " -"iterables." +"soportados incluyen bytes, objetos como archivos e iterables de objetos como " +"bytes. Si no se ha provisto el campo de encabezado ``Content-Length`` ni " +"``Transfer-Encoding``, :class:`HTTPHandler` establecerá estos encabezados de " +"acuerdo al tipo de *data*. ``Content-Length`` será usado para enviar objetos " +"de bytes, mientras ``Transfer-Encoding: chunked`` como se especifica en :rfc:" +"`7230`, Sección 3.3.1 será usado para enviar archivos y otros iterables." #: ../Doc/library/urllib.request.rst:201 msgid "" @@ -2440,38 +2443,44 @@ msgid "" "request` module. The typical response object is a :class:`urllib.response." "addinfourl` instance:" msgstr "" +"El módulo :mod:`urllib.response` define funciones y clases que definen una " +"interfaz mínima *file-like*, incluyendo ``read()`` y ``readline()``. Las " +"funciones definidas en este módulo son usadas internamente por el módulo :" +"mod:`urllib.request`. El objeto de respuesta típico es una instancia de :" +"class:`urllib.response.addinfourl`:" #: ../Doc/library/urllib.request.rst:1588 -#, fuzzy msgid "" "URL of the resource retrieved, commonly used to determine if a redirect was " "followed." msgstr "" -":meth:`~urllib.response.addinfourl.geturl` --- retorna la URL del recurso " -"obtenido, comúnmente usado para determinar si se ha seguido una redirección" +":URL del recurso obtenido, comúnmente usado para determinar si se ha seguido " +"una redirección." #: ../Doc/library/urllib.request.rst:1592 msgid "" "Returns the headers of the response in the form of an :class:`~email.message." "EmailMessage` instance." msgstr "" +"Retorna las cabeceras de la respuesta en la forma de una instancia de :class:" +"`~email.message.EmailMessage`." #: ../Doc/library/urllib.request.rst:1598 msgid "Status code returned by server." -msgstr "" +msgstr "Código de estado retornado por el servidor." #: ../Doc/library/urllib.request.rst:1602 msgid "Deprecated in favor of :attr:`~addinfourl.url`." -msgstr "" +msgstr "Obsoleto en favor de :attr:`~addinfourl.url`." #: ../Doc/library/urllib.request.rst:1607 msgid "Deprecated in favor of :attr:`~addinfourl.headers`." -msgstr "" +msgstr "Obsoleto en favor de :attr:`~addinfourl.headers`." #: ../Doc/library/urllib.request.rst:1612 #: ../Doc/library/urllib.request.rst:1617 msgid "Deprecated in favor of :attr:`~addinfourl.status`." -msgstr "" +msgstr "Obsoleto en favor de :attr:`~addinfourl.status`." #~ msgid "" #~ "This function always returns an object which can work as a :term:`context " diff --git a/library/uuid.po b/library/uuid.po index cb2084174b..75e0e550df 100644 --- a/library/uuid.po +++ b/library/uuid.po @@ -9,14 +9,14 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-05-15 11:57-0500\n" +"PO-Revision-Date: 2021-08-04 22:03+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/uuid.rst:2 msgid ":mod:`uuid` --- UUID objects according to :rfc:`4122`" @@ -65,12 +65,10 @@ msgstr "" "atributo :attr:`is_safe` que transmite cualquier información sobre la " "seguridad del UUID, usando esta enumeración:" -# multiprocessing-safe way, revisar en todo este archivo #: ../Doc/library/uuid.rst:34 -#, fuzzy msgid "The UUID was generated by the platform in a multiprocessing-safe way." msgstr "" -"El UUID fue generado por la plataforma de una manera segura de " +"El UUID fue generado por la plataforma de una manera segura para " "multiprocesamiento." #: ../Doc/library/uuid.rst:38 @@ -402,9 +400,10 @@ msgid "Reserved for future definition." msgstr "Reservado para una futura definición." #: ../Doc/library/uuid.rst:260 -#, fuzzy msgid ":rfc:`4122` - A Universally Unique IDentifier (UUID) URN Namespace" -msgstr ":rfc:`4122` - A Universally Unique IDentifier (UUID) URN Namespace" +msgstr "" +":rfc:`4122` - Un espacio de nombres URN de identificador único universal " +"(UUID)" #: ../Doc/library/uuid.rst:260 msgid "" diff --git a/library/venv.po b/library/venv.po index f8c132cd31..062a80ec4d 100644 --- a/library/venv.po +++ b/library/venv.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:39+0100\n" -"PO-Revision-Date: 2020-05-22 17:08+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 21:17+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/venv.rst:2 msgid ":mod:`venv` --- Creation of virtual environments" @@ -51,14 +52,14 @@ msgstr "" "Ver :pep:`405` para más información sobre los entornos virtuales de Python." #: ../Doc/library/venv.rst:29 -#, fuzzy msgid "" "`Python Packaging User Guide: Creating and using virtual environments " "`__" msgstr "" -"`Python Packaging User Guide: Creating and using virtual environments " -"`__" +"`Guía del usuario de la Paquetería Python: Creación y uso de entornos " +"virtuales `__" #: ../Doc/library/venv.rst:34 msgid "Creating virtual environments" @@ -238,20 +239,22 @@ msgstr "" "default-pip``." #: ../Doc/library/venv.rst:123 -#, fuzzy msgid "" "``prompt`` -- a String to be used after virtual environment is activated " "(defaults to ``None`` which means directory name of the environment would be " "used). If the special string ``\".\"`` is provided, the basename of the " "current directory is used as the prompt." msgstr "" -"``prompt`` -- una cadena que se usará después de que se active el entorno " -"virtual (por defecto es ``None`` lo que significa que se usará el nombre de " -"directorio del entorno)." +"``prompt`` -- una cadena de caracteres que se utilizará después de que se " +"active el entorno virtual (el valor predeterminado es ``None``, lo que " +"significa que se utilizaría el nombre del directorio del entorno). Si se " +"proporciona la cadena especial ``\".\"``, el nombre base del directorio " +"actual se utiliza como indicador." #: ../Doc/library/venv.rst:128 msgid "``upgrade_deps`` -- Update the base venv modules to the latest on PyPI" msgstr "" +"``upgrade_deps`` -- actualiza los módulos venv base a lo último en PyPI" #: ../Doc/library/venv.rst:130 ../Doc/library/venv.rst:259 msgid "Added the ``with_pip`` parameter" @@ -262,9 +265,8 @@ msgid "Added the ``prompt`` parameter" msgstr "Añadido el parámetro ``prompt``" #: ../Doc/library/venv.rst:136 -#, fuzzy msgid "Added the ``upgrade_deps`` parameter" -msgstr "Añadido el parámetro ``prompt``" +msgstr "Se agregó el parámetro ``upgrade_deps``" #: ../Doc/library/venv.rst:139 msgid "" @@ -353,6 +355,9 @@ msgid "" "``setuptools``) in the environment. This is done by shelling out to the " "``pip`` executable in the environment." msgstr "" +"Actualiza los paquetes de dependencia principales de venv (actualmente " +"``pip`` y ``setuptools``) en el entorno. Esto se hace desembolsando el " +"ejecutable ``pip`` en el entorno." #: ../Doc/library/venv.rst:205 msgid "" diff --git a/library/weakref.po b/library/weakref.po index dc0150242b..05d6c99838 100644 --- a/library/weakref.po +++ b/library/weakref.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-25 14:37-0500\n" -"Last-Translator: Adolfo Hristo David Roque Gámez \n" +"PO-Revision-Date: 2021-08-04 21:07+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_PE\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/weakref.rst:2 msgid ":mod:`weakref` --- Weak references" @@ -153,10 +154,10 @@ msgid "" msgstr "" "No todos los objetos pueden ser débilmente referenciados; esos objetos que " "pueden incluir instancias de clases, funciones escritas en Python (pero no " -"en C), métodos de instancia, conjuntos, conjuntos congelados (*frozensets*), " -"algunos :term:`objetos de archivo `, :term:`generadores " -"`, objetos de tipos, sockets, arreglos, *deques*, objetos de " -"patrones de expresiones regulares, y objetos código." +"en C), métodos de instancia, conjuntos, frozensets, algunos :term:`objetos " +"de archivo `, :term:`generadores `, objetos de " +"tipos, sockets, arreglos, deques, objetos de patrones de expresiones " +"regulares, y objetos código." #: ../Doc/library/weakref.rst:72 msgid "Added support for thread.lock, threading.Lock, and code objects." @@ -203,10 +204,10 @@ msgstr "" "recuperado al llamar la referencia del objeto si el referente sigue con " "vida; si el referente ya no está con vida, llamar a la referencia del " "objeto causará que se retorne un :const:`None`. Si se proporciona " -"*callback* y no :const:`None`, y el objeto *weakref* retornado aún sigue con " -"vida, el *callback* será llamado cuando el objeto esté a punto de ser " -"finalizado; el objeto de la referencia débil será pasado como el único " -"parámetro a la retrollamada, el referente ya no estará disponible." +"*callback* y no :const:`None`, y el objeto weakref retornado aún sigue con " +"vida, la retrollamada (*callback*) será llamado cuando el objeto esté a " +"punto de ser finalizado; el objeto de la referencia débil será pasado como " +"el único parámetro a la retrollamada, el referente ya no estará disponible." #: ../Doc/library/weakref.rst:102 msgid "" @@ -225,7 +226,7 @@ msgid "" "output, but cannot be propagated; they are handled in exactly the same way " "as exceptions raised from an object's :meth:`__del__` method." msgstr "" -"Las excepciones lanzadas por el *callback* serán anotadas en la salida de " +"Las excepciones lanzadas por la retrollamada serán anotadas en la salida de " "error estándar, pero no pueden ser propagadas; son manejadas igual que las " "excepciones lanzadas por el método :meth:`__del__` de un objeto." @@ -236,7 +237,7 @@ msgid "" "`hash` is called the first time only after the *object* was deleted, the " "call will raise :exc:`TypeError`." msgstr "" -"Las referencias débiles son :term:`hashable` si el *objet* es mapeable. " +"Las referencias débiles son :term:`hashable` si el *object* es mapeable. " "Ellos mantendrán su valor del hash incluso cuando el *objet* haya sido " "eliminado. Si :func:`hash` es llamado por primera vez sólo después de que " "*object* sea eliminado, la llamada lanzará un :exc:`TypeError`." @@ -268,8 +269,8 @@ msgid "" "longer alive then this attribute will have value ``None``." msgstr "" "Este atributo de sólo lectura retorna la llamada que está asociada " -"actualmente con el *weakref*. Si no hay retrollamadas o si el referente del " -"*weakref* no está con vida entonces este atributo tendrá de valor ``None``." +"actualmente con el weakref. Si no hay retrollamadas o si el referente del " +"weakref no está con vida entonces este atributo tendrá de valor ``None``." #: ../Doc/library/weakref.rst:128 msgid "Added the :attr:`__callback__` attribute." @@ -337,6 +338,8 @@ msgstr "" #: ../Doc/library/weakref.rst:166 msgid "Added support for ``|`` and ``|=`` operators, specified in :pep:`584`." msgstr "" +"Se agregó soporte para los operadores ``|`` y ``|=``, especificados en :pep:" +"`584`." #: ../Doc/library/weakref.rst:169 msgid "" @@ -372,6 +375,8 @@ msgstr "" msgid "" "Added support for ``|`` and ``|=`` operators, as specified in :pep:`584`." msgstr "" +"Se agregó soporte para los operadores ``|`` y ``|=``, como se especifica en :" +"pep:`584`." #: ../Doc/library/weakref.rst:190 msgid "" @@ -431,7 +436,7 @@ msgid "" msgstr "" "Se considera a un finalizador como *vivo* hasta que sea llamado (o " "explícitamente o en la recolección de basura), y después que esté *muerto*. " -"Llamar a un finalizador vivo retorna el resultado de evaluar ``func(*arg," +"Llamar a un finalizador vivo retorna el resultado de evaluar ``func(*arg, " "**kwargs)``, mientras que llamar a un finalizador muerto retorna :const:" "`None`." @@ -474,7 +479,7 @@ msgid "" "``func(*args, **kwargs)``. If *self* is dead then return :const:`None`." msgstr "" "Si *self* está vivo entonces lo marca como muerto y retorna el resultado de " -"llamar a ``func(*args,**kwargs)``. Si *self* está muerto entonces retorna :" +"llamar a ``func(*args, **kwargs)``. Si *self* está muerto entonces retorna :" "const:`None`." #: ../Doc/library/weakref.rst:268 @@ -597,7 +602,7 @@ msgid "" "invalidated before the weak reference is called; the idiom shown above is " "safe in threaded applications as well as single-threaded applications." msgstr "" -"Usar una prueba separada para \"vividad\" crea una condición de carrera en " +"Usar una prueba separada para \"vivacidad\" crea una condición de carrera en " "aplicaciones con hilos; otro hilo puede hacer que una referencia débil sea " "invalidada antes de que la referencia débil sea llamada; El modismo mostrado " "arriba es seguro en aplicaciones con hilos también como aplicaciones de un " @@ -770,10 +775,10 @@ msgid "" "register finalizers for classes where the definition is controlled by a " "third party, such as running code when a module is unloaded::" msgstr "" -"La otra ventaja de *weakref* basados en finalizadores es que ellos pueden " -"ser usados para registrar finalizadores para clases donde la definición es " +"La otra ventaja de weakref basados en finalizadores es que ellos pueden ser " +"usados para registrar finalizadores para clases donde la definición es " "controlado por terceros, como un código que corre cuando un módulo es " -"*unloaded*::" +"descargado::" #: ../Doc/library/weakref.rst:562 msgid "" @@ -782,11 +787,10 @@ msgid "" "at exit. However, in a daemonic thread :func:`atexit.register`, ``try: ... " "finally: ...`` and ``with: ...`` do not guarantee that cleanup occurs either." msgstr "" -"Si creas un objeto finalizador en un hilo *daemon* sólo como el programa " -"sale entonces hay la posibilidad de que el finalizador no llegue a ser " -"llamado. Sin embargo, en un hilo demoníaco :func:`atexit.register`, " -"``try: ... finally: ...`` y ``with: ...`` no garantizan que la limpieza " -"ocurra tampoco." +"Si creas un objeto finalizador en un hilo daemon sólo como el programa sale " +"entonces hay la posibilidad de que el finalizador no llegue a ser llamado. " +"Sin embargo, en un hilo daemonic :func:`atexit.register`, ``try: ... " +"finally: ...`` y ``with: ...`` no garantizan que la limpieza ocurra tampoco." #~ msgid "" #~ "Caution: Because a :class:`WeakKeyDictionary` is built on top of a Python " diff --git a/library/wsgiref.po b/library/wsgiref.po index 7178d3ac37..0ce281fdb5 100644 --- a/library/wsgiref.po +++ b/library/wsgiref.po @@ -12,15 +12,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-15 23:10+0200\n" -"Last-Translator: Ignasi Fosch \n" +"PO-Revision-Date: 2021-08-04 21:04+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: Spanish - Spain \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/wsgiref.rst:2 msgid ":mod:`wsgiref` --- WSGI Utilities and Reference Implementation" @@ -741,7 +742,6 @@ msgstr "" "enrutamiento. Este gestor elimina las partes duplicadas de la ruta." #: ../Doc/library/wsgiref.rst:478 -#, fuzzy msgid "" "IIS can be configured to pass the correct ``PATH_INFO``, but this causes " "another bug where ``PATH_TRANSLATED`` is wrong. Luckily this variable is " @@ -751,14 +751,14 @@ msgid "" "IIS<7 is almost never deployed with the fix (Even IIS7 rarely uses it " "because there is still no UI for it.)." msgstr "" -"IIS puede configurarse para pasar el ``PATH_INFO`` correctamente, pero esto " -"cause otro bug por el que ``PATH_TRANSLATED`` es incorrecto. " -"Afortunadamente, esta variable raramente se usa y no está garantizada por " -"WSGI. En IIS<7, sin embargo, la configuración se puede hacer a nivel de " -"virtual host, afectando a todos los mapas de scripts, muchos de los cuales " -"se rompen cuando se exponen al bug de ``PATH_TRANSLATED``. Por esa razón, " -"IIS<7 casi nunca se despliega con la solución. (Incluso IIS7 rara vez lo " -"usa, al no haber interfaz de usuario para él.)" +"IIS se puede configurar para pasar el ``PATH_INFO`` correcto, pero esto " +"causa otro error donde ``PATH_TRANSLATED`` es incorrecto. Afortunadamente, " +"esta variable rara vez se usa y no está garantizada por WSGI. Sin embargo, " +"en IIS<7, la configuración solo se puede realizar en un nivel de vhost, lo " +"que afecta a todas las demás asignaciones de scripts, muchas de las cuales " +"se rompen cuando se exponen al error ``PATH_TRANSLATED``. Por esta razón, " +"IIS<7 casi nunca se implementa con la solución (incluso IIS7 rara vez lo usa " +"porque todavía no tiene una interfaz de usuario)." #: ../Doc/library/wsgiref.rst:486 msgid "" diff --git a/library/xml.dom.minidom.po b/library/xml.dom.minidom.po index c1759f1f62..4635016d41 100644 --- a/library/xml.dom.minidom.po +++ b/library/xml.dom.minidom.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-09 11:58+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-04 21:01+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/xml.dom.minidom.rst:2 msgid ":mod:`xml.dom.minidom` --- Minimal DOM implementation" @@ -264,6 +265,11 @@ msgid "" "otherwise it is set to `\"no\"`. Not stating the argument will omit the " "declaration from the document." msgstr "" +"Similarmente, declarar de forma explícita el argumento *standalone* hace que " +"las declaraciones del documento independiente se agreguen al prólogo del " +"documento XML. Si el valor se establece en `True`, se agrega `standalone=" +"\"yes\"`, de lo contrario, se establece en `\"no\"`. No declarar el " +"argumento omitirá la declaración del documento." #: ../Doc/library/xml.dom.minidom.rst:155 msgid "" @@ -301,6 +307,7 @@ msgstr "" #: ../Doc/library/xml.dom.minidom.rst:187 msgid "The *standalone* argument behaves exactly as in :meth:`writexml`." msgstr "" +"El argumento *standalone* se comporta exactamente como en :meth:`writexml`." #: ../Doc/library/xml.dom.minidom.rst:173 msgid "" diff --git a/library/xml.dom.po b/library/xml.dom.po index 99966dc62f..0ba67973e1 100644 --- a/library/xml.dom.po +++ b/library/xml.dom.po @@ -58,7 +58,7 @@ msgstr "" "El DOM es extremadamente útil para aplicaciones de acceso directo. SAX sólo " "te permite la vista de una parte del documento a la vez. Si estás mirando un " "elemento SAX, no tienes acceso a otro. Si estás viendo un nodo de texto, no " -"tienes acceso al elemento contendor. Cuando desarrollas una aplicación SAX, " +"tienes acceso al elemento contenedor. Cuando desarrollas una aplicación SAX, " "necesitas registrar la posición de tu programa en el documento en algún lado " "de tu código. SAX no lo hace por ti. Además, desafortunadamente no podrás " "mirar hacia adelante (*look ahead*) en el documento XML." @@ -252,7 +252,7 @@ msgid "" msgstr "" "El espacio de nombres de la URI asociada con el prefijo ``xml``, como se " "define por `Namespaces in XML `_ " -"(section 4)." +"(sección 4)." #: ../Doc/library/xml.dom.rst:127 msgid "" @@ -262,7 +262,7 @@ msgid "" msgstr "" "El espacio de nombres del URI para declaraciones del espacio de nombres, " "como se define en `Document Object Model (DOM) Level 2 Core Specification " -"`_ (section 1.1.8)." +"`_ (sección 1.1.8)." #: ../Doc/library/xml.dom.rst:134 msgid "" @@ -271,7 +271,7 @@ msgid "" msgstr "" "El URI del espacio de nombres del XHTML como se define en `XHTML 1.0: The " "Extensible HyperText Markup Language `_ " -"(section 3.1.1)." +"(sección 3.1.1)." #: ../Doc/library/xml.dom.rst:138 msgid "" diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index 59cb4112f0..c69f588fac 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -6,41 +6,47 @@ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Python 3.8\n" +"Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-07-18 20:04+0200\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: Marcos Medrano \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" +"X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/library/xml.etree.elementtree.rst:2 msgid ":mod:`xml.etree.ElementTree` --- The ElementTree XML API" -msgstr "" +msgstr ":mod:`xml.etree.ElementTree` --- La API XML de ElementTree" #: ../Doc/library/xml.etree.elementtree.rst:9 msgid "**Source code:** :source:`Lib/xml/etree/ElementTree.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/xml/etree/ElementTree.py`" #: ../Doc/library/xml.etree.elementtree.rst:13 msgid "" "The :mod:`xml.etree.ElementTree` module implements a simple and efficient " "API for parsing and creating XML data." msgstr "" +"El módulo :mod:`xml.etree.ElementTree` implementa una API simple y eficiente " +"para parsear y crear datos XML." #: ../Doc/library/xml.etree.elementtree.rst:16 msgid "This module will use a fast implementation whenever available." msgstr "" +"Este módulo utilizará una implementación rápida siempre que esté disponible." #: ../Doc/library/xml.etree.elementtree.rst:19 msgid "The :mod:`xml.etree.cElementTree` module is deprecated." -msgstr "" +msgstr "El módulo :mod:`xml.etree.cElementTree` es obsoleto." #: ../Doc/library/xml.etree.elementtree.rst:25 msgid "" @@ -48,10 +54,13 @@ msgid "" "constructed data. If you need to parse untrusted or unauthenticated data " "see :ref:`xml-vulnerabilities`." msgstr "" +"El módulo :mod:`xml.etree.ElementTree` no es seguro contra datos construidos " +"maliciosamente. Si necesita parsear datos no fiables o no autentificados, " +"vea :ref:`xml-vulnerabilities`." #: ../Doc/library/xml.etree.elementtree.rst:30 msgid "Tutorial" -msgstr "" +msgstr "Tutorial" #: ../Doc/library/xml.etree.elementtree.rst:32 msgid "" @@ -59,10 +68,13 @@ msgid "" "short). The goal is to demonstrate some of the building blocks and basic " "concepts of the module." msgstr "" +"Este es un tutorial corto para usar :mod:`xml.etree.ElementTree` (``ET`` en " +"resumen). El objetivo es demostrar algunos de los componentes y conceptos " +"básicos del módulo." #: ../Doc/library/xml.etree.elementtree.rst:37 msgid "XML tree and elements" -msgstr "" +msgstr "Árbol y elementos XML" #: ../Doc/library/xml.etree.elementtree.rst:39 msgid "" @@ -74,24 +86,34 @@ msgid "" "class:`ElementTree` level. Interactions with a single XML element and its " "sub-elements are done on the :class:`Element` level." msgstr "" +"XML es un formato de datos inherentemente jerárquico, y la forma más natural " +"de representarlo es con un árbol. ``ET`` tiene dos clases para este " +"propósito - :class:`ElementTree` representa todo el documento XML como un " +"árbol, y :class:`Element` representa un solo nodo en este árbol. Las " +"interacciones con todo el documento (leer y escribir en/desde archivos) se " +"realizan normalmente en el nivel de :class:`ElementTree`. Las interacciones " +"con un solo elemento XML y sus sub-elementos se realizan en el nivel :class:" +"`Element`." #: ../Doc/library/xml.etree.elementtree.rst:50 msgid "Parsing XML" -msgstr "" +msgstr "Procesando XML" #: ../Doc/library/xml.etree.elementtree.rst:52 msgid "" "We'll be using the following XML document as the sample data for this " "section:" msgstr "" +"Usaremos el siguiente documento XML como los datos de muestra para esta " +"sección:" #: ../Doc/library/xml.etree.elementtree.rst:80 msgid "We can import this data by reading from a file::" -msgstr "" +msgstr "Podemos importar estos datos leyendo desde un archivo::" #: ../Doc/library/xml.etree.elementtree.rst:86 msgid "Or directly from a string::" -msgstr "" +msgstr "O directamente desde una cadena de caracteres::" #: ../Doc/library/xml.etree.elementtree.rst:90 msgid "" @@ -100,19 +122,27 @@ msgid "" "functions may create an :class:`ElementTree`. Check the documentation to be " "sure." msgstr "" +":func:`fromstring` analiza el XML de una cadena de caracteres directamente " +"en un :class:`Element`, que es el elemento raíz del árbol analizado. Otras " +"funciones de análisis pueden crear un :class:`ElementTree`. Compruebe la " +"documentación para estar seguro." #: ../Doc/library/xml.etree.elementtree.rst:94 msgid "" "As an :class:`Element`, ``root`` has a tag and a dictionary of attributes::" msgstr "" +"Como un :class:`Element`, ``root`` tiene una etiqueta y un diccionario de " +"atributos::" #: ../Doc/library/xml.etree.elementtree.rst:101 msgid "It also has children nodes over which we can iterate::" -msgstr "" +msgstr "También tiene nodos hijos sobre los cuales podemos iterar::" #: ../Doc/library/xml.etree.elementtree.rst:110 msgid "Children are nested, and we can access specific child nodes by index::" msgstr "" +"Los hijos están anidados, y podemos acceder a nodos hijos específicos por el " +"índice::" #: ../Doc/library/xml.etree.elementtree.rst:118 msgid "" @@ -125,10 +155,18 @@ msgid "" "passing a custom :class:`TreeBuilder` instance to the :class:`XMLParser` " "constructor." msgstr "" +"No todos los elementos de la entrada XML acabarán siendo elementos del árbol " +"analizado. Actualmente, este módulo omite cualquier comentario XML, " +"instrucciones de procesamiento y declaraciones de tipo documento en la " +"entrada. Sin embargo, los árboles construidos utilizando la API de este " +"módulo, en lugar de analizar el texto XML, pueden contener comentarios e " +"instrucciones de procesamiento, que se incluirán al generar la salida XML. " +"Se puede acceder a una declaración de tipo documento pasando una instancia :" +"class:`TreeBuilder` personalizada al constructor :class:`XMLParser`." #: ../Doc/library/xml.etree.elementtree.rst:132 msgid "Pull API for non-blocking parsing" -msgstr "" +msgstr "API de consulta para un procesamiento no bloqueante" #: ../Doc/library/xml.etree.elementtree.rst:134 msgid "" @@ -140,6 +178,15 @@ msgid "" "able to parse XML incrementally, without blocking operations, while enjoying " "the convenience of fully constructed :class:`Element` objects." msgstr "" +"La mayoría de las funciones de análisis proporcionadas por este módulo " +"requieren que se lea todo el documento a la vez antes de retornar cualquier " +"resultado. Es posible utilizar un :class:`XMLParser` y alimentar los datos " +"en él de forma incremental, pero se trata de una *push* API que llama a " +"métodos en un objetivo invocable, que es demasiado bajo nivel e " +"inconveniente para la mayoría de las necesidades. A veces, lo que el usuario " +"realmente quiere es ser capaz de analizar XML de forma incremental, sin " +"bloquear las operaciones, mientras disfruta de la comodidad de los objetos :" +"class:`Element` totalmente construidos." #: ../Doc/library/xml.etree.elementtree.rst:142 msgid "" @@ -148,6 +195,11 @@ msgid "" "data incrementally with :meth:`XMLPullParser.feed` calls. To get the parsed " "XML elements, call :meth:`XMLPullParser.read_events`. Here is an example::" msgstr "" +"La herramienta más potente para hacer esto es :class:`XMLPullParser`. No " +"requiere una lectura de bloqueo para obtener los datos XML, y en su lugar se " +"alimenta de datos de forma incremental con llamadas a :meth:`XMLPullParser." +"feed`. Para obtener los elementos XML analizados, llama a :meth:" +"`XMLPullParser.read_events`. He aquí un ejemplo::" #: ../Doc/library/xml.etree.elementtree.rst:158 msgid "" @@ -155,6 +207,10 @@ msgid "" "where the XML data is being received from a socket or read incrementally " "from some storage device. In such cases, blocking reads are unacceptable." msgstr "" +"El caso de uso obvio es el de las aplicaciones que operan de forma no " +"bloqueante, donde los datos XML se reciben de un socket o se leen de forma " +"incremental desde algún dispositivo de almacenamiento. En estos casos, las " +"lecturas bloqueantes son inaceptables." #: ../Doc/library/xml.etree.elementtree.rst:162 msgid "" @@ -165,10 +221,16 @@ msgid "" "you're reading a large XML document and don't want to hold it wholly in " "memory." msgstr "" +"Debido a su flexibilidad, :class:`XMLPullParser` puede ser un inconveniente " +"para los casos de uso más simples. Si no te importa que tu aplicación se " +"bloquee en la lectura de datos XML pero te gustaría tener capacidades de " +"análisis incremental, echa un vistazo a :func:`iterparse`. Puede ser útil " +"cuando estás leyendo un documento XML grande y no quieres mantenerlo " +"completamente en memoria." #: ../Doc/library/xml.etree.elementtree.rst:169 msgid "Finding interesting elements" -msgstr "" +msgstr "Encontrando elementos interesantes" #: ../Doc/library/xml.etree.elementtree.rst:171 msgid "" @@ -176,6 +238,9 @@ msgid "" "all the sub-tree below it (its children, their children, and so on). For " "example, :meth:`Element.iter`::" msgstr "" +":class:`Element` tiene algunos métodos útiles que ayudan a iterar " +"recursivamente sobre todo el sub-árbol por debajo de él (sus hijos, los " +"hijos de sus hijos, y así sucesivamente). Por ejemplo, :meth:`Element.iter`::" #: ../Doc/library/xml.etree.elementtree.rst:184 msgid "" @@ -184,22 +249,32 @@ msgid "" "child with a particular tag, and :attr:`Element.text` accesses the element's " "text content. :meth:`Element.get` accesses the element's attributes::" msgstr "" +":meth:`Element.findall` encuentra sólo los elementos con una etiqueta que " +"son hijos directos del elemento actual. :meth:`Element.find` encuentra el " +"*primer* hijo con una etiqueta determinada, y :attr:`Element.text` accede al " +"contenido de texto del elemento. :meth:`Element.get` accede a los atributos " +"del elemento::" #: ../Doc/library/xml.etree.elementtree.rst:198 msgid "" "More sophisticated specification of which elements to look for is possible " "by using :ref:`XPath `." msgstr "" +"Es posible especificar de forma más sofisticada qué elementos buscar " +"utilizando :ref:`XPath `." #: ../Doc/library/xml.etree.elementtree.rst:202 msgid "Modifying an XML File" -msgstr "" +msgstr "Modificando un archivo XML" #: ../Doc/library/xml.etree.elementtree.rst:204 msgid "" ":class:`ElementTree` provides a simple way to build XML documents and write " "them to files. The :meth:`ElementTree.write` method serves this purpose." msgstr "" +":class:`ElementTree` proporciona una forma sencilla de construir documentos " +"XML y escribirlos en archivos. El método :meth:`ElementTree.write` sirve " +"para este propósito." #: ../Doc/library/xml.etree.elementtree.rst:207 msgid "" @@ -208,23 +283,31 @@ msgid "" "attributes (:meth:`Element.set` method), as well as adding new children (for " "example with :meth:`Element.append`)." msgstr "" +"Una vez creado, un objeto :class:`Element` puede ser manipulado cambiando " +"directamente sus campos (como :attr:`Element.text`), añadiendo y modificando " +"atributos (método :meth:`Element.set`), así como añadiendo nuevos hijos (por " +"ejemplo con :meth:`Element.append`)." #: ../Doc/library/xml.etree.elementtree.rst:212 msgid "" "Let's say we want to add one to each country's rank, and add an ``updated`` " "attribute to the rank element::" msgstr "" +"Digamos que queremos añadir uno al rango de cada país, y añadir un atributo " +"``updated`` al elemento rango::" #: ../Doc/library/xml.etree.elementtree.rst:222 #: ../Doc/library/xml.etree.elementtree.rst:266 msgid "Our XML now looks like this:" -msgstr "" +msgstr "Nuestro XML tiene ahora este aspecto:" #: ../Doc/library/xml.etree.elementtree.rst:250 msgid "" "We can remove elements using :meth:`Element.remove`. Let's say we want to " "remove all countries with a rank higher than 50::" msgstr "" +"Podemos eliminar elementos utilizando :meth:`Element.remove`. Digamos que " +"queremos eliminar todos los países con un rango superior a 50::" #: ../Doc/library/xml.etree.elementtree.rst:261 msgid "" @@ -233,20 +316,27 @@ msgid "" "example first collects all matching elements with ``root.findall()``, and " "only then iterates over the list of matches." msgstr "" +"Tenga en cuenta que la modificación concurrente mientras se itera puede " +"conducir a problemas, al igual que cuando se itera y modifica listas o " +"diccionarios de Python. Por lo tanto, el ejemplo recoge primero todos los " +"elementos coincidentes con ``root.findall()``, y sólo entonces itera sobre " +"la lista de coincidencias." #: ../Doc/library/xml.etree.elementtree.rst:288 msgid "Building XML documents" -msgstr "" +msgstr "Construyendo documentos XML" #: ../Doc/library/xml.etree.elementtree.rst:290 msgid "" "The :func:`SubElement` function also provides a convenient way to create new " "sub-elements for a given element::" msgstr "" +"La función :func:`SubElement` también proporciona una forma cómoda de crear " +"nuevos sub-elementos para un elemento dado::" #: ../Doc/library/xml.etree.elementtree.rst:301 msgid "Parsing XML with Namespaces" -msgstr "" +msgstr "Procesando XML con espacio de nombres" #: ../Doc/library/xml.etree.elementtree.rst:303 msgid "" @@ -257,12 +347,21 @@ msgid "" "TR/xml-names/#defaulting>`__, that full URI gets prepended to all of the non-" "prefixed tags." msgstr "" +"Si la entrada XML tiene `espacio de nombres `__, las etiquetas y los atributos con prefijos de la " +"forma ``prefix:sometag`` se expanden a ``{uri}sometag`` donde el *prefix* se " +"sustituye por el *URI* completo. Además, si hay un `espacio de nombre por " +"defecto `__, ese URI completo " +"se antepone a todas las etiquetas sin prefijo." #: ../Doc/library/xml.etree.elementtree.rst:311 msgid "" "Here is an XML example that incorporates two namespaces, one with the prefix " "\"fictional\" and the other serving as the default namespace:" msgstr "" +"A continuación se muestra un ejemplo de XML que incorpora dos espacios de " +"nombres, uno con el prefijo \"fictional\" y el otro que sirve como espacio " +"de nombres por defecto:" #: ../Doc/library/xml.etree.elementtree.rst:332 msgid "" @@ -270,30 +369,38 @@ msgid "" "every tag or attribute in the xpath of a :meth:`~Element.find` or :meth:" "`~Element.findall`::" msgstr "" +"Una forma de buscar y explorar este ejemplo XML es añadir manualmente el URI " +"a cada etiqueta o atributo en el XPath de un :meth:`~Element.find` o :meth:" +"`~Element.findall`::" #: ../Doc/library/xml.etree.elementtree.rst:343 msgid "" "A better way to search the namespaced XML example is to create a dictionary " "with your own prefixes and use those in the search functions::" msgstr "" +"Una mejor manera de buscar en el ejemplo de XML con espacio para nombres es " +"crear un diccionario con sus propios prefijos y utilizarlos en las funciones " +"de búsqueda::" #: ../Doc/library/xml.etree.elementtree.rst:355 msgid "These two approaches both output::" -msgstr "" +msgstr "Estos dos enfoques dan como resultado::" #: ../Doc/library/xml.etree.elementtree.rst:367 msgid "Additional resources" -msgstr "" +msgstr "Recursos adicionales" #: ../Doc/library/xml.etree.elementtree.rst:369 msgid "" "See http://effbot.org/zone/element-index.htm for tutorials and links to " "other docs." msgstr "" +"Vea http://effbot.org/zone/element-index.htm para tutoriales y enlaces a " +"otros documentos." #: ../Doc/library/xml.etree.elementtree.rst:376 msgid "XPath support" -msgstr "" +msgstr "Soporte de XPath" #: ../Doc/library/xml.etree.elementtree.rst:378 msgid "" @@ -302,11 +409,15 @@ msgid "" "small subset of the abbreviated syntax; a full XPath engine is outside the " "scope of the module." msgstr "" +"Este módulo proporciona un soporte limitado para las expresiones `XPath " +"`_ para localizar elementos en un árbol. El " +"objetivo es soportar un pequeño subconjunto de la sintaxis abreviada; un " +"motor XPath completo está fuera del alcance del módulo." #: ../Doc/library/xml.etree.elementtree.rst:384 #: ../Doc/library/xml.etree.elementtree.rst:758 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/xml.etree.elementtree.rst:386 msgid "" @@ -314,28 +425,33 @@ msgid "" "module. We'll be using the ``countrydata`` XML document from the :ref:" "`Parsing XML ` section::" msgstr "" +"A continuación se muestra un ejemplo que demuestra algunas de las " +"capacidades de XPath del módulo. Utilizaremos el documento XML " +"``countrydata`` de la sección :ref:`Parsing XML `::" #: ../Doc/library/xml.etree.elementtree.rst:410 msgid "" "For XML with namespaces, use the usual qualified ``{namespace}tag`` " "notation::" msgstr "" +"Para XML con espacios de nombre, use la notación calificada habitual " +"``{namespace}tag``::" #: ../Doc/library/xml.etree.elementtree.rst:417 msgid "Supported XPath syntax" -msgstr "" +msgstr "Sintaxis XPath soportada" #: ../Doc/library/xml.etree.elementtree.rst:422 msgid "Syntax" -msgstr "" +msgstr "Sintaxis" #: ../Doc/library/xml.etree.elementtree.rst:422 msgid "Meaning" -msgstr "" +msgstr "Significado" #: ../Doc/library/xml.etree.elementtree.rst:424 msgid "``tag``" -msgstr "" +msgstr "``tag``" #: ../Doc/library/xml.etree.elementtree.rst:424 msgid "" @@ -346,102 +462,128 @@ msgid "" "``spam`` in any (or no) namespace, and ``{}*`` only selects tags that are " "not in a namespace." msgstr "" +"Selecciona todos los elementos hijos con la etiqueta dada. Por ejemplo, " +"``spam`` selecciona todos los elementos hijos llamados ``spam``, y ``spam/" +"egg`` selecciona todos los nietos llamados ``egg`` en todos los hijos " +"llamados ``spam``. ``{namespace}*`` selecciona todas las etiquetas en el " +"espacio de nombres dado, ``{*}spam`` selecciona las etiquetas llamadas " +"``spam`` en cualquier (o ningún) espacio de nombres, y ``{}*`` sólo " +"selecciona las etiquetas que no están en un espacio de nombres." #: ../Doc/library/xml.etree.elementtree.rst:433 msgid "Support for star-wildcards was added." -msgstr "" +msgstr "Se ha añadido la posibilidad de utilizar comodines asterisco." #: ../Doc/library/xml.etree.elementtree.rst:436 msgid "``*``" -msgstr "" +msgstr "``*``" #: ../Doc/library/xml.etree.elementtree.rst:436 msgid "" "Selects all child elements, including comments and processing instructions. " "For example, ``*/egg`` selects all grandchildren named ``egg``." msgstr "" +"Selecciona todos los elementos hijos, incluidos los comentarios y las " +"instrucciones de procesamiento. Por ejemplo, ``*/egg`` selecciona todos los " +"hijos llamados ``egg``." #: ../Doc/library/xml.etree.elementtree.rst:440 msgid "``.``" -msgstr "" +msgstr "``.``" #: ../Doc/library/xml.etree.elementtree.rst:440 msgid "" "Selects the current node. This is mostly useful at the beginning of the " "path, to indicate that it's a relative path." msgstr "" +"Selecciona el nodo actual. Esto es útil sobre todo al principio de la ruta, " +"para indicar que es una ruta relativa." #: ../Doc/library/xml.etree.elementtree.rst:444 msgid "``//``" -msgstr "" +msgstr "``//``" #: ../Doc/library/xml.etree.elementtree.rst:444 msgid "" "Selects all subelements, on all levels beneath the current element. For " "example, ``.//egg`` selects all ``egg`` elements in the entire tree." msgstr "" +"Selecciona todos los sub-elementos, en todos los niveles por debajo del " +"elemento actual. Por ejemplo, ``.//egg`` selecciona todos los elementos " +"``egg`` en todo el árbol." #: ../Doc/library/xml.etree.elementtree.rst:448 msgid "``..``" -msgstr "" +msgstr "``..``" #: ../Doc/library/xml.etree.elementtree.rst:448 msgid "" "Selects the parent element. Returns ``None`` if the path attempts to reach " "the ancestors of the start element (the element ``find`` was called on)." msgstr "" +"Selecciona el elemento padre. Retorna ``None`` si la ruta intenta llegar a " +"los ancestros del elemento inicial (el elemento ``find`` fue invocado)." #: ../Doc/library/xml.etree.elementtree.rst:452 msgid "``[@attrib]``" -msgstr "" +msgstr "``[@attrib]``" #: ../Doc/library/xml.etree.elementtree.rst:452 msgid "Selects all elements that have the given attribute." -msgstr "" +msgstr "Selecciona todos los elementos que tengan el atributo dado." #: ../Doc/library/xml.etree.elementtree.rst:454 msgid "``[@attrib='value']``" -msgstr "" +msgstr "``[@attrib='value']``" #: ../Doc/library/xml.etree.elementtree.rst:454 msgid "" "Selects all elements for which the given attribute has the given value. The " "value cannot contain quotes." msgstr "" +"Selecciona todos los elementos para los que el atributo dado tiene el valor " +"dado. El valor no puede contener comillas." #: ../Doc/library/xml.etree.elementtree.rst:458 msgid "``[tag]``" -msgstr "" +msgstr "``[tag]``" #: ../Doc/library/xml.etree.elementtree.rst:458 msgid "" "Selects all elements that have a child named ``tag``. Only immediate " "children are supported." msgstr "" +"Selecciona todos los elementos que tienen un hijo llamado ``tag``. Sólo se " +"admiten los hijos inmediatos." #: ../Doc/library/xml.etree.elementtree.rst:461 msgid "``[.='text']``" -msgstr "" +msgstr "``[.='text']``" #: ../Doc/library/xml.etree.elementtree.rst:461 msgid "" "Selects all elements whose complete text content, including descendants, " "equals the given ``text``." msgstr "" +"Selecciona todos los elementos cuyo contenido de texto completo, incluyendo " +"los descendientes, es igual al \"texto\" dado." #: ../Doc/library/xml.etree.elementtree.rst:466 msgid "``[tag='text']``" -msgstr "" +msgstr "``[tag='text']``" #: ../Doc/library/xml.etree.elementtree.rst:466 msgid "" "Selects all elements that have a child named ``tag`` whose complete text " "content, including descendants, equals the given ``text``." msgstr "" +"Selecciona todos los elementos que tienen un hijo llamado ``tag`` cuyo " +"contenido de texto completo, incluyendo los descendientes, es igual al " +"``text`` dado." #: ../Doc/library/xml.etree.elementtree.rst:470 msgid "``[position]``" -msgstr "" +msgstr "``[position]``" #: ../Doc/library/xml.etree.elementtree.rst:470 msgid "" @@ -450,6 +592,10 @@ msgid "" "``last()`` (for the last position), or a position relative to the last " "position (e.g. ``last()-1``)." msgstr "" +"Selecciona todos los elementos que se encuentran en la posición dada. La " +"posición puede ser un número entero (1 es la primera posición), la expresión " +"``last()`` (para la última posición), o una posición relativa a la última " +"posición (por ejemplo, ``last()-1``)." #: ../Doc/library/xml.etree.elementtree.rst:477 msgid "" @@ -457,20 +603,24 @@ msgid "" "name, an asterisk, or another predicate. ``position`` predicates must be " "preceded by a tag name." msgstr "" +"Los predicados (expresiones entre corchetes) deben ir precedidos de un " +"nombre de etiqueta, un asterisco u otro predicado. Los predicados " +"``position`` deben ir precedidos de un nombre de etiqueta." #: ../Doc/library/xml.etree.elementtree.rst:482 #: ../Doc/library/xml.etree.elementtree.rst:810 msgid "Reference" -msgstr "" +msgstr "Referencia" #: ../Doc/library/xml.etree.elementtree.rst:487 #: ../Doc/library/xml.etree.elementtree.rst:815 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/xml.etree.elementtree.rst:491 msgid "`C14N 2.0 `_ transformation function." msgstr "" +"Función de transformación `C14N 2.0 `_." #: ../Doc/library/xml.etree.elementtree.rst:493 msgid "" @@ -480,7 +630,15 @@ msgid "" "representation. The main restrictions regard the placement of namespace " "declarations, the ordering of attributes, and ignorable whitespace." msgstr "" +"La canonización es una forma de normalizar la salida de XML de manera que " +"permita comparaciones byte a byte y firmas digitales. Reduce la libertad que " +"tienen los serializadores XML y en su lugar genera una representación XML " +"más restringida. Las principales restricciones se refieren a la colocación " +"de las declaraciones de espacio de nombres, el orden de los atributos y los " +"espacios en blanco ignorables." +# Traduzco "file-like object" como "objeto tipo archivo" (en lugar de "objeto similar a un archivo"). Me parece mas claro. +# Luego "file(-like) object" se refiere a un "objeto archivo" o a un "objeto tipo archivo", así que pongo esto último entre parentesis. #: ../Doc/library/xml.etree.elementtree.rst:499 msgid "" "This function takes an XML data string (*xml_data*) or a file path or file-" @@ -489,62 +647,87 @@ msgid "" "as a text string if not. The output file receives text, not bytes. It " "should therefore be opened in text mode with ``utf-8`` encoding." msgstr "" +"Esta función toma una cadena de datos XML (*xml_data*) o una ruta de archivo " +"o un objeto tipo archivo (*from_file*) como entrada, la convierte a la forma " +"canónica y la escribe utilizando el objeto archivo (o tipo archivo) *out*, " +"si se proporciona, o la devuelve como una cadena de texto si no. El archivo " +"de salida recibe texto, no bytes. Por tanto, debe abrirse en modo texto con " +"codificación ``utf-8``." #: ../Doc/library/xml.etree.elementtree.rst:506 msgid "Typical uses::" -msgstr "" +msgstr "Usos típicos::" +# Parece un poco rendunante pero "options" es el nombre del argumento así que lo dejo sin traducir y agrego "opciones de configuración" #: ../Doc/library/xml.etree.elementtree.rst:517 msgid "The configuration *options* are as follows:" -msgstr "" +msgstr "Las opciones de configuración *options* son las siguientes:" +# Set to -> Establecer? Configurar? "Setear"? +# El párrafo utiliza true/false en minúsculas. La traducción literal sería algo así como: "establecer a verdadero para incluir comentarios (por defecto: falso)". +# Sin embargo, creo que en español resulta mas claro si se usa True/False (con mayúsculas, como valores booleanos). #: ../Doc/library/xml.etree.elementtree.rst:519 msgid "*with_comments*: set to true to include comments (default: false)" msgstr "" +"*with_comments*: configurar a ``True`` para incluir los comentarios (por " +"defecto: ``False``)" #: ../Doc/library/xml.etree.elementtree.rst:520 msgid "" "*strip_text*: set to true to strip whitespace before and after text content" msgstr "" +"*strip_text*: configurar a ``True`` para eliminar los espacios en blanco " +"antes y después del contenido del texto" #: ../Doc/library/xml.etree.elementtree.rst:521 #: ../Doc/library/xml.etree.elementtree.rst:523 msgid "(default: false)" -msgstr "" +msgstr "(por defecto: ``False``)" #: ../Doc/library/xml.etree.elementtree.rst:522 msgid "" "*rewrite_prefixes*: set to true to replace namespace prefixes by " "\"n{number}\"" msgstr "" +"*rewrite_prefixes*: configurar a ``True`` para sustituir los prefijos de " +"espacios de nombres por \"n{number}\"" #: ../Doc/library/xml.etree.elementtree.rst:524 msgid "*qname_aware_tags*: a set of qname aware tag names in which prefixes" msgstr "" +"*qname_aware_tags*: un conjunto de nombres de etiquetas conscientes de qname " +"en el que los prefijos" #: ../Doc/library/xml.etree.elementtree.rst:525 #: ../Doc/library/xml.etree.elementtree.rst:527 msgid "should be replaced in text content (default: empty)" -msgstr "" +msgstr "deben ser reemplazados en el contenido del texto (por defecto: vacío)" #: ../Doc/library/xml.etree.elementtree.rst:526 msgid "" "*qname_aware_attrs*: a set of qname aware attribute names in which prefixes" msgstr "" +"*qname_aware_attrs*: un conjunto de nombres de atributos conscientes de " +"qname en el que los prefijos" #: ../Doc/library/xml.etree.elementtree.rst:528 msgid "*exclude_attrs*: a set of attribute names that should not be serialised" msgstr "" +"*exclude_attrs*: un conjunto de nombres de atributos que no deben " +"serializarse" #: ../Doc/library/xml.etree.elementtree.rst:529 msgid "*exclude_tags*: a set of tag names that should not be serialised" msgstr "" +"*exclude_tags*: un conjunto de nombres de etiquetas que no deben serializarse" #: ../Doc/library/xml.etree.elementtree.rst:531 msgid "" "In the option list above, \"a set\" refers to any collection or iterable of " "strings, no ordering is expected." msgstr "" +"En la lista de opciones anterior, \"un conjunto\" se refiere a cualquier " +"colección o iterable de cadenas, no se espera ningún orden." #: ../Doc/library/xml.etree.elementtree.rst:539 msgid "" @@ -554,6 +737,11 @@ msgid "" "string containing the comment string. Returns an element instance " "representing a comment." msgstr "" +"Fábrica de elementos de comentario. Esta función de fábrica crea un elemento " +"especial que será serializado como un comentario XML por el serializador " +"estándar. La cadena de comentario puede ser una cadena de bytes o una cadena " +"Unicode. *text* es una cadena que contiene la cadena de comentario. Devuelve " +"una instancia de elemento que representa un comentario." #: ../Doc/library/xml.etree.elementtree.rst:545 msgid "" @@ -562,28 +750,39 @@ msgid "" "comment nodes if they have been inserted into to the tree using one of the :" "class:`Element` methods." msgstr "" +"Tenga en cuenta que :class:`XMLParser` omite los comentarios en la entrada " +"en lugar de crear objetos de comentario para ellos. Un :class:`ElementTree` " +"sólo contendrá nodos de comentario si se han insertado en el árbol " +"utilizando uno de los métodos :class:`Element`." +# Debugging -> Depuración ? #: ../Doc/library/xml.etree.elementtree.rst:552 msgid "" "Writes an element tree or element structure to sys.stdout. This function " "should be used for debugging only." msgstr "" +"Escribe un árbol de elementos o una estructura de elementos en sys.stdout. " +"Esta función debe utilizarse únicamente para debugging." #: ../Doc/library/xml.etree.elementtree.rst:555 msgid "" "The exact output format is implementation dependent. In this version, it's " "written as an ordinary XML file." msgstr "" +"El formato de salida exacto depende de la implementación. En esta versión, " +"se escribe como un archivo XML ordinario." #: ../Doc/library/xml.etree.elementtree.rst:558 msgid "*elem* is an element tree or an individual element." -msgstr "" +msgstr "*elem* es un árbol de elementos o un elemento individual." #: ../Doc/library/xml.etree.elementtree.rst:560 msgid "" "The :func:`dump` function now preserves the attribute order specified by the " "user." msgstr "" +"La función :func:`dump` ahora preserva el orden de atributos especificado " +"por el usuario." #: ../Doc/library/xml.etree.elementtree.rst:567 msgid "" @@ -592,6 +791,10 @@ msgid "" "If not given, the standard :class:`XMLParser` parser is used. Returns an :" "class:`Element` instance." msgstr "" +"Analiza una sección XML a partir de una constante de cadena. Igual que :func:" +"`XML`. *text* es una cadena que contiene datos XML. *parser* es una " +"instancia de parser opcional. Si no se da, se utiliza el analizador " +"estándar :class:`XMLParser`. Devuelve una instancia de :class:`Element`." #: ../Doc/library/xml.etree.elementtree.rst:575 msgid "" @@ -600,6 +803,11 @@ msgid "" "optional parser instance. If not given, the standard :class:`XMLParser` " "parser is used. Returns an :class:`Element` instance." msgstr "" +"Analiza un documento XML a partir de una secuencia de fragmentos de cadena " +"de caracteres. *sequence* es una lista u otra secuencia que contiene " +"fragmentos de datos XML. *parser* es una instancia de parser opcional. Si no " +"se da, se utiliza el analizador estándar :class:`XMLParser`. Retorna una " +"instancia de :class:`Element`." #: ../Doc/library/xml.etree.elementtree.rst:585 msgid "" @@ -610,12 +818,21 @@ msgid "" "partial subtrees inside of an already indented tree, pass the initial " "indentation level as *level*." msgstr "" +"Añade espacios en blanco al subárbol para indentar el árbol visualmente. " +"Esto puede utilizarse para generar una salida XML con una impresión bonita. " +"*tree* puede ser un Element o ElementTree. *space* es la cadena de espacio " +"en blanco que se insertará para cada nivel de indentación, dos caracteres de " +"espacio por defecto. Para indentar subárboles parciales dentro de un árbol " +"ya indentado, pase el nivel de indentación inicial como *level*." #: ../Doc/library/xml.etree.elementtree.rst:597 msgid "" "Check if an object appears to be a valid element object. *element* is an " "element instance. Return ``True`` if this is an element object." msgstr "" +"Comprueba si un objeto parece ser un objeto elemento válido. *element* es " +"una instancia de elemento. Retorna ``True`` si se trata de un objeto " +"elemento." #: ../Doc/library/xml.etree.elementtree.rst:603 msgid "" @@ -631,6 +848,18 @@ msgid "" "`TreeBuilder` as a target. Returns an :term:`iterator` providing ``(event, " "elem)`` pairs." msgstr "" +"Analiza una sección XML en un árbol de elementos de forma incremental, e " +"informa al usuario de lo que ocurre. *source* es un nombre de archivo o un :" +"term:`file object` que contiene datos XML. *events* es una secuencia de " +"eventos para informar. Los eventos soportados son las cadenas ``\"start\"``, " +"``\"end\"``, ``\"comment\"``, ``\"pi\"``, ``\"start-ns\"`` y ``\"end-ns\"`` " +"(los eventos \"ns\" se utilizan para obtener información detallada del " +"espacio de nombres). Si se omite *events*, sólo se informará de los eventos " +"``\"end\"``. *parser* es una instancia opcional de parser. Si no se da, se " +"utiliza el analizador estándar de :class:`XMLParser`. *parser* debe ser una " +"subclase de :class:`XMLParser` y sólo puede utilizar el :class:`TreeBuilder` " +"por defecto como objetivo. Devuelve un :term:`iterator` que proporciona " +"pares ``(event, elem)``." #: ../Doc/library/xml.etree.elementtree.rst:615 msgid "" @@ -639,6 +868,11 @@ msgid "" "for applications where blocking reads can't be made. For fully non-blocking " "parsing, see :class:`XMLPullParser`." msgstr "" +"Tenga en cuenta que mientras :func:`iterparse` construye el árbol de forma " +"incremental, emite lecturas de bloqueo en la *source* (o en el fichero que " +"nombra). Por lo tanto, no es adecuado para aplicaciones en las que no se " +"pueden realizar lecturas de bloqueo. Para un análisis completamente no " +"bloqueante, véase :class:`XMLPullParser`." #: ../Doc/library/xml.etree.elementtree.rst:622 msgid "" @@ -648,20 +882,27 @@ msgid "" "point. The same applies to the element children; they may or may not be " "present." msgstr "" +":func:`iterparse` sólo garantiza que ha visto el carácter \">\" de una " +"etiqueta de inicio cuando emite un evento \"start\", por lo que los " +"atributos están definidos, pero el contenido de los atributos text y tail " +"está indefinido en ese momento. Lo mismo ocurre con los hijos del elemento; " +"pueden estar presentes o no." #: ../Doc/library/xml.etree.elementtree.rst:628 #: ../Doc/library/xml.etree.elementtree.rst:1456 msgid "If you need a fully populated element, look for \"end\" events instead." msgstr "" +"Si necesita un elemento totalmente poblado, busque los eventos \"end\" en su " +"lugar." #: ../Doc/library/xml.etree.elementtree.rst:630 msgid "The *parser* argument." -msgstr "" +msgstr "El argumento *parser*." #: ../Doc/library/xml.etree.elementtree.rst:633 #: ../Doc/library/xml.etree.elementtree.rst:1460 msgid "The ``comment`` and ``pi`` events were added." -msgstr "" +msgstr "Los eventos ``comment`` y ``pi`` han sido añadidos." #: ../Doc/library/xml.etree.elementtree.rst:639 msgid "" @@ -670,6 +911,10 @@ msgid "" "not given, the standard :class:`XMLParser` parser is used. Returns an :" "class:`ElementTree` instance." msgstr "" +"Analiza una sección XML en un árbol de elementos. *source* es un nombre de " +"archivo o un objeto de archivo que contiene datos XML. *parser* es una " +"instancia de parser opcional. Si no se da, se utiliza el analizador " +"estándar :class:`XMLParser`. Devuelve una instancia de :class:`ElementTree`." #: ../Doc/library/xml.etree.elementtree.rst:647 msgid "" @@ -678,6 +923,11 @@ msgid "" "containing the PI target. *text* is a string containing the PI contents, if " "given. Returns an element instance, representing a processing instruction." msgstr "" +"Fábrica de elementos PI. Esta función de fábrica crea un elemento especial " +"que será serializado como una instrucción de procesamiento XML. *target* es " +"una cadena que contiene el objetivo de PI. *text* es una cadena que contiene " +"el contenido de PI, si se da. Devuelve una instancia de elemento, " +"representando una instrucción de procesamiento." #: ../Doc/library/xml.etree.elementtree.rst:652 msgid "" @@ -686,6 +936,11 @@ msgid "" "only contain processing instruction nodes if they have been inserted into to " "the tree using one of the :class:`Element` methods." msgstr "" +"Tenga en cuenta que :class:`XMLParser` omite las instrucciones de " +"procesamiento en la entrada en lugar de crear objetos de comentario para " +"ellas. Un :class:`ElementTree` sólo contendrá nodos de instrucciones de " +"procesamiento si se han insertado en el árbol utilizando uno de los métodos :" +"class:`Element`." #: ../Doc/library/xml.etree.elementtree.rst:660 msgid "" @@ -695,12 +950,19 @@ msgid "" "attributes in this namespace will be serialized with the given prefix, if at " "all possible." msgstr "" +"Registra un prefijo de espacio de nombres. El registro es global, y " +"cualquier asignación existente para el prefijo dado o el URI del espacio de " +"nombres será eliminado. *prefix* es un prefijo de espacio de nombres. *uri* " +"es una uri del espacio de nombres. Las etiquetas y los atributos de este " +"espacio de nombres se serializarán con el prefijo dado, si es posible." #: ../Doc/library/xml.etree.elementtree.rst:671 msgid "" "Subelement factory. This function creates an element instance, and appends " "it to an existing element." msgstr "" +"Fábrica de sub-elementos. Esta función crea una instancia de elemento y la " +"añade a un elemento existente." #: ../Doc/library/xml.etree.elementtree.rst:674 msgid "" @@ -710,6 +972,12 @@ msgid "" "attributes. *extra* contains additional attributes, given as keyword " "arguments. Returns an element instance." msgstr "" +"El nombre del elemento, los nombres de los atributos y los valores de los " +"atributos pueden ser cadenas de bytes o cadenas de caracteres Unicode. " +"*parent* es el elemento padre. *tag* es el nombre del sub-elemento. *attrib* " +"es un diccionario opcional que contiene los atributos del elemento. *extra* " +"contiene atributos adicionales, dados como argumentos de palabras clave. " +"Devuelve una instancia de elemento." #: ../Doc/library/xml.etree.elementtree.rst:685 msgid "" @@ -722,23 +990,34 @@ msgid "" "the same meaning as in :meth:`ElementTree.write`. Returns an (optionally) " "encoded string containing the XML data." msgstr "" +"Genera una representación de cadena de caracteres de un elemento XML, " +"incluyendo todos los sub-elementos. *element* es una instancia de :class:" +"`Element`. *encoding* [1]_ es la codificación de salida (por defecto es US-" +"ASCII). Utilice ``encoding=\"unicode\"`` para generar una cadena de " +"caracteres Unicode (de lo contrario, se genera una cadena de bytes). " +"*method* es ``\"xml\"``, ``\"html\"`` o ``\"text\"`` (por defecto es ``\"xml" +"\"``). *xml_declaration*, *default_namespace* y *short_empty_elements* " +"tienen el mismo significado que en :meth:`ElementTree.write`. Devuelve una " +"cadena (opcionalmente) codificada que contiene los datos XML." #: ../Doc/library/xml.etree.elementtree.rst:694 #: ../Doc/library/xml.etree.elementtree.rst:721 #: ../Doc/library/xml.etree.elementtree.rst:1168 msgid "The *short_empty_elements* parameter." -msgstr "" +msgstr "El parámetro *short_empty_elements*." #: ../Doc/library/xml.etree.elementtree.rst:697 #: ../Doc/library/xml.etree.elementtree.rst:724 msgid "The *xml_declaration* and *default_namespace* parameters." -msgstr "" +msgstr "Los parámetros *xml_declaration* y *default_namespace*." #: ../Doc/library/xml.etree.elementtree.rst:700 msgid "" "The :func:`tostring` function now preserves the attribute order specified by " "the user." msgstr "" +"La función :func:`tostring` ahora preserva el orden de atributos " +"especificado por el usuario." #: ../Doc/library/xml.etree.elementtree.rst:709 msgid "" @@ -753,12 +1032,25 @@ msgid "" "any specific sequence, except that ``b\"\".join(tostringlist(element)) == " "tostring(element)``." msgstr "" +"Genera una representación de cadena de caracteres de un elemento XML, " +"incluyendo todos los sub-elementos. *element* es una instancia de :class:" +"`Element`. *encoding* [1]_ es la codificación de salida (por defecto es US-" +"ASCII). Utilice ``encoding=\"unicode\"`` para generar una cadena de " +"caracteres Unicode (de lo contrario, se genera una cadena de bytes). " +"*method* es ``\"xml\"``, ``\"html\"`` o ``\"text\"`` (por defecto es ``\"xml" +"\"``). *xml_declaration*, *default_namespace* y *short_empty_elements* " +"tienen el mismo significado que en :meth:`ElementTree.write`. Devuelve una " +"lista de cadenas (opcionalmente) codificadas que contienen los datos XML. No " +"garantiza ninguna secuencia específica, excepto que ``b\"\"." +"join(tostringlist(element)) == tostring(element)``." #: ../Doc/library/xml.etree.elementtree.rst:727 msgid "" "The :func:`tostringlist` function now preserves the attribute order " "specified by the user." msgstr "" +"La función :func:`tostringlist` ahora preserva el orden de atributos " +"especificado por el usuario." #: ../Doc/library/xml.etree.elementtree.rst:734 msgid "" @@ -767,6 +1059,12 @@ msgid "" "data. *parser* is an optional parser instance. If not given, the standard :" "class:`XMLParser` parser is used. Returns an :class:`Element` instance." msgstr "" +"Analiza una sección XML a partir de una constante de cadena de caracteres. " +"Esta función puede utilizarse para incrustar \"literales XML\" en el código " +"de Python. *text* es una cadena de caracteres que contiene datos XML. " +"*parser* es una instancia de parser opcional. Si no se da, se utiliza el " +"analizador estándar :class:`XMLParser`. Devuelve una instancia de :class:" +"`Element`." #: ../Doc/library/xml.etree.elementtree.rst:742 msgid "" @@ -776,10 +1074,16 @@ msgid "" "class:`XMLParser` parser is used. Returns a tuple containing an :class:" "`Element` instance and a dictionary." msgstr "" +"Analiza una sección XML a partir de una constante de cadena de caracteres, y " +"también devuelve un diccionario que mapea los id:s de elementos a elementos. " +"*text* es una cadena de caracteres que contiene datos XML. *parser* es una " +"instancia de parser opcional. Si no se da, se utiliza el analizador estándar " +"de :class:`XMLParser`. Devuelve una tupla que contiene una instancia de :" +"class:`Element` y un diccionario." #: ../Doc/library/xml.etree.elementtree.rst:752 msgid "XInclude support" -msgstr "" +msgstr "Soporte de XInclude" #: ../Doc/library/xml.etree.elementtree.rst:754 msgid "" @@ -788,6 +1092,11 @@ msgid "" "module. This module can be used to insert subtrees and text strings into " "element trees, based on information in the tree." msgstr "" +"Este módulo proporciona un soporte limitado para las directivas `XInclude " +"`_, a través del módulo de ayuda :mod:`xml." +"etree.ElementInclude`. Este módulo puede utilizarse para insertar subárboles " +"y cadenas de texto en árboles de elementos, basándose en la información del " +"árbol." #: ../Doc/library/xml.etree.elementtree.rst:760 msgid "" @@ -796,6 +1105,11 @@ msgid "" "XInclude}include`` element and set the **parse** attribute to ``\"xml\"``, " "and use the **href** attribute to specify the document to include." msgstr "" +"Aquí hay un ejemplo que demuestra el uso del módulo XInclude. Para incluir " +"un documento XML en el documento actual, utilice el elemento ``{http://www." +"w3.org/2001/XInclude}include`` y establezca el atributo **parse** como ``" +"\"xml\"``, y utilice el atributo **href** para especificar el documento a " +"incluir." #: ../Doc/library/xml.etree.elementtree.rst:769 msgid "" @@ -803,12 +1117,17 @@ msgid "" "custom loaders to override this behaviour. Also note that the standard " "helper does not support XPointer syntax." msgstr "" +"Por defecto, el atributo **href** se trata como un nombre de archivo. Puede " +"utilizar cargadores personalizados para anular este comportamiento. También " +"tenga en cuenta que el ayudante estándar no soporta la sintaxis XPointer." #: ../Doc/library/xml.etree.elementtree.rst:771 msgid "" "To process this file, load it as usual, and pass the root element to the :" "mod:`xml.etree.ElementTree` module:" msgstr "" +"Para procesar este archivo, cárguelo como de costumbre y pase el elemento " +"raíz al módulo :mod:`xml.etree.ElementTree`:" #: ../Doc/library/xml.etree.elementtree.rst:782 msgid "" @@ -816,22 +1135,29 @@ msgid "" "include`` element with the root element from the **source.xml** document. " "The result might look something like this:" msgstr "" +"El módulo ElementInclude sustituye el elemento ``{http://www.w3.org/2001/" +"XInclude}include`` por el elemento raíz del documento **source.xml**. El " +"resultado podría ser algo así:" #: ../Doc/library/xml.etree.elementtree.rst:790 msgid "" "If the **parse** attribute is omitted, it defaults to \"xml\". The href " "attribute is required." msgstr "" +"Si se omite el atributo **parse**, el valor por defecto es \"xml\". El " +"atributo href es obligatorio." #: ../Doc/library/xml.etree.elementtree.rst:792 msgid "" "To include a text document, use the ``{http://www.w3.org/2001/XInclude}" "include`` element, and set the **parse** attribute to \"text\":" msgstr "" +"Para incluir un documento de texto, utilice el elemento ``{http://www.w3." +"org/2001/XInclude}include`` y establezca el atributo **parse** como \"text\":" #: ../Doc/library/xml.etree.elementtree.rst:801 msgid "The result might look something like:" -msgstr "" +msgstr "El resultado podría ser algo así:" #: ../Doc/library/xml.etree.elementtree.rst:819 msgid "" @@ -843,6 +1169,13 @@ msgid "" "is a Unicode string. If the loader fails, it can return None or raise an " "exception." msgstr "" +"Cargador por defecto. Este cargador por defecto lee un recurso incluido del " +"disco. *href* es una URL. *parse* es para el modo de análisis \"xml\" o " +"\"text\". *encoding* es una codificación de texto opcional. Si no se da, la " +"codificación es ``utf-8``. Retorna el recurso expandido. Si el modo de " +"análisis es ``\"xml\"``, es una instancia de ElementTree. Si el modo de " +"análisis es \"text\", se trata de una cadena Unicode. Si el cargador falla, " +"puede retornar None o lanzar una excepción." #: ../Doc/library/xml.etree.elementtree.rst:830 msgid "" @@ -854,6 +1187,14 @@ msgid "" "maximum number of recursive inclusions. Limited to reduce the risk of " "malicious content explosion. Pass a negative value to disable the limitation." msgstr "" +"Esta función expande las directivas XInclude. *elem* es el elemento raíz. " +"*loader* es un cargador de recursos opcional. Si se omite, se utiliza por " +"defecto :func:`default_loader`. Si se da, debe ser un callable que " +"implemente la misma interfaz que :func:`default_loader`. *base_url* es la " +"URL base del archivo original, para resolver las referencias relativas al " +"archivo de inclusión. *max_depth* es el número máximo de inclusiones " +"recursivas. Limitado para reducir el riesgo de explosión de contenido " +"malicioso. Pase un valor negativo para desactivar la limitación." #: ../Doc/library/xml.etree.elementtree.rst:838 msgid "" @@ -861,20 +1202,26 @@ msgid "" "ElementTree instance. If the parse mode is \"text\", this is a Unicode " "string. If the loader fails, it can return None or raise an exception." msgstr "" +"Retorna el recurso expandido. Si el modo de análisis es ``\"xml\"``, se " +"trata de una instancia de ElementTree. Si el modo de análisis es \"text\", " +"se trata de una cadena Unicode. Si el cargador falla, puede retornar None o " +"lanzar una excepción." #: ../Doc/library/xml.etree.elementtree.rst:843 msgid "The *base_url* and *max_depth* parameters." -msgstr "" +msgstr "Los parámetros *base_url* y *max_depth*." #: ../Doc/library/xml.etree.elementtree.rst:850 msgid "Element Objects" -msgstr "" +msgstr "Objetos Element" #: ../Doc/library/xml.etree.elementtree.rst:854 msgid "" "Element class. This class defines the Element interface, and provides a " "reference implementation of this interface." msgstr "" +"Clase Element. Esta clase define la interfaz Element, y provee una " +"implementación de referencia de esta interfaz." #: ../Doc/library/xml.etree.elementtree.rst:857 msgid "" @@ -883,12 +1230,19 @@ msgid "" "optional dictionary, containing element attributes. *extra* contains " "additional attributes, given as keyword arguments." msgstr "" +"El nombre del elemento, los nombres de los atributos y los valores de los " +"atributos pueden ser cadenas de bytes o cadenas Unicode. *tag* es el nombre " +"del elemento. *attrib* es un diccionario opcional que contiene los atributos " +"del elemento. *extra* contiene atributos adicionales, dados como argumentos " +"de palabras clave." #: ../Doc/library/xml.etree.elementtree.rst:865 msgid "" "A string identifying what kind of data this element represents (the element " "type, in other words)." msgstr "" +"Una cadena de caracteres que identifica qué tipo de datos representa este " +"elemento (el tipo de elemento, en otras palabras)." #: ../Doc/library/xml.etree.elementtree.rst:872 msgid "" @@ -900,6 +1254,13 @@ msgid "" "the text between the element's end tag and the next tag, or ``None``. For " "the XML data" msgstr "" +"Estos atributos pueden utilizarse para contener datos adicionales asociados " +"al elemento. Sus valores suelen ser cadenas, pero pueden ser cualquier " +"objeto específico de la aplicación. Si el elemento se crea a partir de un " +"archivo XML, el atributo *text* contiene el texto entre la etiqueta inicial " +"del elemento y su primera etiqueta hija o final, o ``None``, y el atributo " +"*tail* contiene el texto entre la etiqueta final del elemento y la siguiente " +"etiqueta, o ``None``. Para los datos XML" #: ../Doc/library/xml.etree.elementtree.rst:884 msgid "" @@ -908,16 +1269,23 @@ msgid "" "*text* ``\"2\"`` and *tail* ``None``, and the *d* element has *text* " "``None`` and *tail* ``\"3\"``." msgstr "" +"el elemento *a* tiene ``None`` para los atributos *text* y *tail*, el " +"elemento *b* tiene *text* ``\"1\"`` y *tail* ``\"4\"``, el elemento *c* " +"tiene *text* ``\"2\"`` y *tail* ``None``, y el elemento *d* tiene *text* " +"``None`` y *tail* ``\"3\"``." #: ../Doc/library/xml.etree.elementtree.rst:889 msgid "" "To collect the inner text of an element, see :meth:`itertext`, for example ``" "\"\".join(element.itertext())``." msgstr "" +"Para recoger el texto interior de un elemento, véase :meth:`itertext`, por " +"ejemplo ``\"\".join(element.itertext())``." #: ../Doc/library/xml.etree.elementtree.rst:892 msgid "Applications may store arbitrary objects in these attributes." msgstr "" +"Las aplicaciones pueden almacenar objetos arbitrarios en estos atributos." #: ../Doc/library/xml.etree.elementtree.rst:897 msgid "" @@ -927,45 +1295,61 @@ msgid "" "the dictionary only if someone asks for it. To take advantage of such " "implementations, use the dictionary methods below whenever possible." msgstr "" +"Un diccionario que contiene los atributos del elemento. Ten en cuenta que " +"aunque el valor *attrib* es siempre un diccionario mutable real de Python, " +"una implementación de ElementTree puede elegir utilizar otra representación " +"interna, y crear el diccionario sólo si alguien lo pide. Para aprovechar " +"este tipo de implementaciones, utiliza los métodos de diccionario que " +"aparecen a continuación siempre que sea posible." #: ../Doc/library/xml.etree.elementtree.rst:903 msgid "The following dictionary-like methods work on the element attributes." msgstr "" +"Los siguientes métodos tipo diccionario funcionan con los atributos de los " +"elementos." #: ../Doc/library/xml.etree.elementtree.rst:908 msgid "" "Resets an element. This function removes all subelements, clears all " "attributes, and sets the text and tail attributes to ``None``." msgstr "" +"Restablece un elemento. Esta función elimina todos los sub-elementos, borra " +"todos los atributos y establece los atributos de texto y cola como ``None``." #: ../Doc/library/xml.etree.elementtree.rst:914 msgid "Gets the element attribute named *key*." -msgstr "" +msgstr "Obtiene el atributo del elemento llamado *key*." #: ../Doc/library/xml.etree.elementtree.rst:916 msgid "" "Returns the attribute value, or *default* if the attribute was not found." msgstr "" +"Retorna el valor del atributo, o *default* si el atributo no fue encontrado." #: ../Doc/library/xml.etree.elementtree.rst:921 msgid "" "Returns the element attributes as a sequence of (name, value) pairs. The " "attributes are returned in an arbitrary order." msgstr "" +"Retorna los atributos del elemento como una secuencia de pares (nombre, " +"valor). Los atributos se retornan en un orden arbitrario." #: ../Doc/library/xml.etree.elementtree.rst:927 msgid "" "Returns the elements attribute names as a list. The names are returned in " "an arbitrary order." msgstr "" +"Retorna los nombres de los atributos de los elementos como una lista. Los " +"nombres se retornan en un orden arbitrario." #: ../Doc/library/xml.etree.elementtree.rst:933 msgid "Set the attribute *key* on the element to *value*." -msgstr "" +msgstr "Establecer el atributo *key* en el elemento a *value*." #: ../Doc/library/xml.etree.elementtree.rst:935 msgid "The following methods work on the element's children (subelements)." msgstr "" +"Los siguientes métodos actúan sobre los hijos del elemento (sub-elementos)." #: ../Doc/library/xml.etree.elementtree.rst:940 msgid "" @@ -973,12 +1357,17 @@ msgid "" "subelements. Raises :exc:`TypeError` if *subelement* is not an :class:" "`Element`." msgstr "" +"Añade el elemento *subelement* al final de la lista interna de sub-elementos " +"de este elemento. Lanza :exc:`TypeError` si *subelement* no es un :class:" +"`Element`." #: ../Doc/library/xml.etree.elementtree.rst:947 msgid "" "Appends *subelements* from a sequence object with zero or more elements. " "Raises :exc:`TypeError` if a subelement is not an :class:`Element`." msgstr "" +"Añade *subelements* de un objeto de secuencia con cero o más elementos. " +"Lanza :exc:`TypeError` si un sub-elemento no es un :class:`Element`." #: ../Doc/library/xml.etree.elementtree.rst:955 msgid "" @@ -988,6 +1377,12 @@ msgid "" "name. Pass ``''`` as prefix to move all unprefixed tag names in the " "expression into the given namespace." msgstr "" +"Encuentra el primer sub-elemento que coincide con *match*. *match* puede ser " +"un nombre de etiqueta o un :ref:`path `. Retorna una " +"instancia de elemento o ``None``. *namespaces* es un mapeo opcional del " +"prefijo del espacio de nombres al nombre completo. Pasa ``''`` como prefijo " +"para mover todos los nombres de etiquetas sin prefijo en la expresión al " +"espacio de nombres dado." #: ../Doc/library/xml.etree.elementtree.rst:964 msgid "" @@ -997,6 +1392,12 @@ msgid "" "name. Pass ``''`` as prefix to move all unprefixed tag names in the " "expression into the given namespace." msgstr "" +"Encuentra todos los sub-elementos coincidentes, por nombre de etiqueta o :" +"ref:`path `. Retorna una lista que contiene todos los " +"elementos coincidentes en el orden del documento. *namespaces* es un mapeo " +"opcional del prefijo del espacio de nombres al nombre completo. Pasa ``''`` " +"como prefijo para mover todos los nombres de etiquetas sin prefijo en la " +"expresión al espacio de nombres dado." #: ../Doc/library/xml.etree.elementtree.rst:973 msgid "" @@ -1008,12 +1409,22 @@ msgid "" "Pass ``''`` as prefix to move all unprefixed tag names in the expression " "into the given namespace." msgstr "" +"Busca el texto del primer sub-elemento que coincida con *match*. *match* " +"puede ser un nombre de etiqueta o un :ref:`path `. " +"Retorna el contenido del texto del primer elemento que coincida, o *default* " +"si no se encuentra ningún elemento. Tenga en cuenta que si el elemento " +"coincidente no tiene contenido de texto se devuelve una cadena vacía. " +"*namespaces* es un mapeo opcional del prefijo del espacio de nombres al " +"nombre completo. Pasa ``''`` como prefijo para mover todos los nombres de " +"etiquetas sin prefijo en la expresión al espacio de nombres dado." #: ../Doc/library/xml.etree.elementtree.rst:984 msgid "" "Inserts *subelement* at the given position in this element. Raises :exc:" "`TypeError` if *subelement* is not an :class:`Element`." msgstr "" +"Inserta *subelement* en la posición dada en este elemento. Lanza :exc:" +"`TypeError` si *subelement* no es un :class:`Element`." #: ../Doc/library/xml.etree.elementtree.rst:990 msgid "" @@ -1023,6 +1434,12 @@ msgid "" "whose tag equals *tag* are returned from the iterator. If the tree " "structure is modified during iteration, the result is undefined." msgstr "" +"Crea un árbol :term:`iterator` con el elemento actual como raíz. El iterador " +"itera sobre este elemento y todos los elementos por debajo de él, en el " +"orden del documento (profundidad primero). Si *tag* no es ``None`` o " +"``'*'``, sólo los elementos cuya etiqueta es igual a *tag* son retornados " +"por el iterador. Si la estructura del árbol se modifica durante la " +"iteración, el resultado es indefinido." #: ../Doc/library/xml.etree.elementtree.rst:1001 msgid "" @@ -1031,18 +1448,27 @@ msgid "" "order. *namespaces* is an optional mapping from namespace prefix to full " "name." msgstr "" +"Encuentra todos los subelementos que coinciden, por nombre de etiqueta o :" +"ref:`ruta `. Retorna un iterable con todos los elementos " +"coincidentes en el orden del documento. *namespaces* es un mapeo opcional " +"del prefijo del espacio de nombres al nombre completo." #: ../Doc/library/xml.etree.elementtree.rst:1012 msgid "" "Creates a text iterator. The iterator loops over this element and all " "subelements, in document order, and returns all inner text." msgstr "" +"Crea un iterador de texto. El iterador hace un bucle sobre este elemento y " +"todos los subelementos, en el orden del documento, y retorna todo el texto " +"interior." #: ../Doc/library/xml.etree.elementtree.rst:1020 msgid "" "Creates a new element object of the same type as this element. Do not call " "this method, use the :func:`SubElement` factory function instead." msgstr "" +"Crea un nuevo objeto elemento del mismo tipo que este elemento. No llame a " +"este método, utilice la función de fábrica :func:`SubElement` en su lugar." #: ../Doc/library/xml.etree.elementtree.rst:1026 msgid "" @@ -1050,6 +1476,9 @@ msgid "" "method compares elements based on the instance identity, not on tag value or " "contents." msgstr "" +"Elimina el *subelement* del elemento. A diferencia de los métodos find\\*, " +"este método compara los elementos basándose en la identidad de la instancia, " +"no en el valor de la etiqueta o el contenido." #: ../Doc/library/xml.etree.elementtree.rst:1030 msgid "" @@ -1057,6 +1486,9 @@ msgid "" "for working with subelements: :meth:`~object.__delitem__`, :meth:`~object." "__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." msgstr "" +"Los objetos :class:`Element` también soportan los siguientes métodos de tipo " +"secuencia para trabajar con subelementos: :meth:`~object.__delitem__`, :meth:" +"`~object.__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." #: ../Doc/library/xml.etree.elementtree.rst:1035 msgid "" @@ -1064,6 +1496,9 @@ msgid "" "will change in future versions. Use specific ``len(elem)`` or ``elem is " "None`` test instead. ::" msgstr "" +"Precaución: Los elementos que no tengan subelementos serán evaluados como " +"``False``. Este comportamiento cambiará en futuras versiones. Utilizar en su " +"lugar el test específico ``len(elem)`` o ``elem is None``. ::" #: ../Doc/library/xml.etree.elementtree.rst:1047 msgid "" @@ -1073,6 +1508,12 @@ msgid "" "reordering was removed in Python 3.8 to preserve the order in which " "attributes were originally parsed or created by user code." msgstr "" +"Antes de Python 3.8, el orden de serialización de los atributos XML de los " +"elementos se hacía predecible artificialmente ordenando los atributos por su " +"nombre. Basado en el ordenamiento -ahora garantizado- de los diccionarios, " +"este reordenamiento arbitrario fue eliminado en Python 3.8 para preservar el " +"orden en que los atributos fueron originalmente analizados o creados por el " +"código del usuario." #: ../Doc/library/xml.etree.elementtree.rst:1053 msgid "" @@ -1084,6 +1525,14 @@ msgid "" "signing or test data sets, canonical serialisation is available with the :" "func:`canonicalize` function." msgstr "" +"En general, el código del usuario debería intentar no depender de un orden " +"específico de los atributos, dado que el `XML Information Set `_ excluye explícitamente el orden de los atributos " +"para transmitir información. El código debe estar preparado para hacer " +"frente a cualquier orden en la entrada. En los casos en los que se requiere " +"una salida XML determinista, por ejemplo, para la firma criptográfica o los " +"conjuntos de datos de prueba, la serialización canónica está disponible con " +"la función :func:`canonicalize`." #: ../Doc/library/xml.etree.elementtree.rst:1061 msgid "" @@ -1094,10 +1543,17 @@ msgid "" "like the following can be applied prior to serialisation to enforce an order " "independently from the Element creation::" msgstr "" +"En los casos en los que la salida canónica no es aplicable, pero un orden de " +"atributos específico sigue siendo deseable en la salida, el código debe " +"tratar de crear los atributos directamente en el orden deseado, para evitar " +"desajustes perceptivos para los lectores del código. En los casos en que " +"esto es difícil de lograr, una receta como la siguiente se puede aplicar " +"antes de la serialización para hacer cumplir un orden independientemente de " +"la creación de elementos::" #: ../Doc/library/xml.etree.elementtree.rst:1081 msgid "ElementTree Objects" -msgstr "" +msgstr "Objetos ElementTree" #: ../Doc/library/xml.etree.elementtree.rst:1086 msgid "" @@ -1105,12 +1561,17 @@ msgid "" "hierarchy, and adds some extra support for serialization to and from " "standard XML." msgstr "" +"Clase envoltorio de un ElementTree. Esta clase representa una jerarquía de " +"elementos completa, y añade algún soporte extra para la serialización hacia " +"y desde XML estándar." #: ../Doc/library/xml.etree.elementtree.rst:1090 msgid "" "*element* is the root element. The tree is initialized with the contents of " "the XML *file* if given." msgstr "" +"*element* es el elemento raíz. El árbol se inicializa con el contenido del " +"*file* XML si se da." #: ../Doc/library/xml.etree.elementtree.rst:1096 msgid "" @@ -1118,22 +1579,25 @@ msgid "" "of the tree, and replaces it with the given element. Use with care. " "*element* is an element instance." msgstr "" +"Reemplaza el elemento raíz de este árbol. Esto descarta el contenido actual " +"del árbol, y lo reemplaza con el elemento dado. Utilícelo con cuidado. " +"*element* es una instancia de elemento." #: ../Doc/library/xml.etree.elementtree.rst:1103 msgid "Same as :meth:`Element.find`, starting at the root of the tree." -msgstr "" +msgstr "Igual que :meth:`Element.find`, empezando por la raíz del árbol." #: ../Doc/library/xml.etree.elementtree.rst:1108 msgid "Same as :meth:`Element.findall`, starting at the root of the tree." -msgstr "" +msgstr "Igual que :meth:`Element.findall`, empezando por la raíz del árbol." #: ../Doc/library/xml.etree.elementtree.rst:1113 msgid "Same as :meth:`Element.findtext`, starting at the root of the tree." -msgstr "" +msgstr "Igual que :meth:`Element.findtext`, empezando por la raíz del árbol." #: ../Doc/library/xml.etree.elementtree.rst:1118 msgid "Returns the root element for this tree." -msgstr "" +msgstr "Retorna el elemento raíz de este árbol." #: ../Doc/library/xml.etree.elementtree.rst:1123 msgid "" @@ -1141,10 +1605,13 @@ msgid "" "loops over all elements in this tree, in section order. *tag* is the tag to " "look for (default is to return all elements)." msgstr "" +"Crea y retorna un iterador de árbol para el elemento raíz. El iterador " +"recorre todos los elementos de este árbol, en orden de sección. *tag* es la " +"etiqueta a buscar (por defecto devuelve todos los elementos)." #: ../Doc/library/xml.etree.elementtree.rst:1130 msgid "Same as :meth:`Element.iterfind`, starting at the root of the tree." -msgstr "" +msgstr "Igual que :meth:`Element.iterfind`, empezando por la raíz del árbol." #: ../Doc/library/xml.etree.elementtree.rst:1137 msgid "" @@ -1153,6 +1620,10 @@ msgid "" "not given, the standard :class:`XMLParser` parser is used. Returns the " "section root element." msgstr "" +"Carga una sección XML externa en este árbol de elementos. *source* es un " +"nombre de archivo o un :term:`file object`. *parser* es una instancia " +"opcional del analizador. Si no se da, se utiliza el analizador estándar :" +"class:`XMLParser`. Retorna el elemento raíz de la sección." #: ../Doc/library/xml.etree.elementtree.rst:1147 msgid "" @@ -1168,6 +1639,17 @@ msgid "" "default), they are emitted as a single self-closed tag, otherwise they are " "emitted as a pair of start/end tags." msgstr "" +"Escribe el árbol de elementos en un archivo, como XML. *file* es un nombre " +"de archivo, o un :term:`file object` abierto para escritura. *encoding* [1]_ " +"es la codificación de salida (por defecto es US-ASCII). *xml_declaration* " +"controla si se debe añadir una declaración XML al archivo. Utilice ``False`` " +"para nunca, ``True`` para siempre, ``None`` para sólo si no es US-ASCII o " +"UTF-8 o Unicode (por defecto es ``None``). *default_namespace* establece el " +"espacio de nombres XML por defecto (para \"xmlns\"). *method* es ``\"xml" +"\"``, ``\"html\"`` o ``\"text\"`` (por defecto es ``\"xml\"``). El parámetro " +"*short_empty_elements* controla el formato de los elementos sin contenido. " +"Si es ``True`` (por defecto), se emiten como una sola etiqueta autocerrada, " +"de lo contrario se emiten como un par de etiquetas de inicio/fin." #: ../Doc/library/xml.etree.elementtree.rst:1161 msgid "" @@ -1177,26 +1659,36 @@ msgid "" "conflict with the type of *file* if it's an open :term:`file object`; make " "sure you do not try to write a string to a binary stream and vice versa." msgstr "" +"La salida es una cadena de caracteres (:class:`str`) o binaria (:class:" +"`bytes`). Esto es controlado por el argumento *encoding*. Si *encoding* es " +"``unicode``, la salida es una cadena de caracteres; en caso contrario, es " +"binaria. Tenga en cuenta que esto puede entrar en conflicto con el tipo de " +"*file* si es un :term:`file object` abierto; asegúrese de no intentar " +"escribir una cadena en un flujo binario y viceversa." #: ../Doc/library/xml.etree.elementtree.rst:1171 msgid "" "The :meth:`write` method now preserves the attribute order specified by the " "user." msgstr "" +"El método :meth:`write` ahora conserva el orden de los atributos " +"especificado por el usuario." #: ../Doc/library/xml.etree.elementtree.rst:1176 msgid "This is the XML file that is going to be manipulated::" -msgstr "" +msgstr "Este es el archivo XML que será manipulado::" #: ../Doc/library/xml.etree.elementtree.rst:1188 msgid "" "Example of changing the attribute \"target\" of every link in first " "paragraph::" msgstr "" +"Ejemplo de cambio del atributo \"target\" de cada enlace en el primer " +"párrafo::" #: ../Doc/library/xml.etree.elementtree.rst:1207 msgid "QName Objects" -msgstr "" +msgstr "Objetos QName" #: ../Doc/library/xml.etree.elementtree.rst:1212 msgid "" @@ -1207,10 +1699,17 @@ msgid "" "interpreted as a URI, and this argument is interpreted as a local name. :" "class:`QName` instances are opaque." msgstr "" +"QName wrapper. Se puede utilizar para envolver un valor de atributo QName, " +"con el fin de obtener un manejo adecuado del espacio de nombres en la " +"salida. *text_or_uri* es una cadena de caracteres que contiene el valor " +"QName, en la forma {uri}local, o, si se da el argumento tag, la parte URI de " +"un QName. Si se da *tag*, el primer argumento se interpreta como un URI, y " +"este argumento se interpreta como un nombre local. Las instancias de :class:" +"`QName` son opacas." #: ../Doc/library/xml.etree.elementtree.rst:1224 msgid "TreeBuilder Objects" -msgstr "" +msgstr "Objetos TreeBuilder" #: ../Doc/library/xml.etree.elementtree.rst:1230 msgid "" @@ -1219,6 +1718,11 @@ msgid "" "structure. You can use this class to build an element structure using a " "custom XML parser, or a parser for some other XML-like format." msgstr "" +"Constructor genérico de estructuras de elementos. Este constructor convierte " +"una secuencia de llamadas a los métodos start, data, end, comment y pi en " +"una estructura de elementos bien formada. Puedes utilizar esta clase para " +"construir una estructura de elementos utilizando un analizador XML " +"personalizado, o un analizador para algún otro formato similar a XML." #: ../Doc/library/xml.etree.elementtree.rst:1235 msgid "" @@ -1226,6 +1730,9 @@ msgid "" "arguments: a tag and a dict of attributes. It is expected to return a new " "element instance." msgstr "" +"*element_factory*, cuando se da, debe ser un callable que acepta dos " +"argumentos posicionales: una etiqueta y un diccionario de atributos. Se " +"espera que retorne una nueva instancia de elemento." #: ../Doc/library/xml.etree.elementtree.rst:1239 msgid "" @@ -1236,48 +1743,70 @@ msgid "" "comments/pis will be inserted into the tree if they appear within the root " "element (but not outside of it)." msgstr "" +"Las funciones *comment_factory* y *pi_factory*, cuando se dan, deben " +"comportarse como las funciones :func:`Comment` y :func:" +"`ProcessingInstruction` para crear comentarios e instrucciones de " +"procesamiento. Si no se dan, se utilizarán las fábricas por defecto. Cuando " +"*insert_comments* y/o *insert_pis* es verdadero, los comentarios/pis se " +"insertarán en el árbol si aparecen dentro del elemento raíz (pero no fuera " +"de él)." #: ../Doc/library/xml.etree.elementtree.rst:1248 msgid "" "Flushes the builder buffers, and returns the toplevel document element. " "Returns an :class:`Element` instance." msgstr "" +"Vacía los buffers del constructor y retorna el elemento del documento de " +"nivel superior. Retorna una instancia de :class:`Element`." #: ../Doc/library/xml.etree.elementtree.rst:1254 msgid "" "Adds text to the current element. *data* is a string. This should be " "either a bytestring, or a Unicode string." msgstr "" +"Añade texto al elemento actual. *data* es una cadena. Debe ser una cadena de " +"bytes o una cadena Unicode." #: ../Doc/library/xml.etree.elementtree.rst:1260 msgid "" "Closes the current element. *tag* is the element name. Returns the closed " "element." msgstr "" +"Cierra el elemento actual. *tag* es el nombre del elemento. Retorna el " +"elemento cerrado." #: ../Doc/library/xml.etree.elementtree.rst:1266 msgid "" "Opens a new element. *tag* is the element name. *attrs* is a dictionary " "containing element attributes. Returns the opened element." msgstr "" +"Abre un nuevo elemento. *tag* es el nombre del elemento. *attrs* es un " +"diccionario que contiene los atributos del elemento. Retorna el elemento " +"abierto." #: ../Doc/library/xml.etree.elementtree.rst:1272 msgid "" "Creates a comment with the given *text*. If ``insert_comments`` is true, " "this will also add it to the tree." msgstr "" +"Crea un comentario con el *texto* dado. Si ``insert_comments`` es verdadero, " +"esto también lo añadirá al árbol." #: ../Doc/library/xml.etree.elementtree.rst:1280 msgid "" "Creates a comment with the given *target* name and *text*. If " "``insert_pis`` is true, this will also add it to the tree." msgstr "" +"Crea un comentario con el nombre *target* y el *texto* dados. Si " +"``insert_pis`` es verdadero, esto también lo añadirá al árbol." #: ../Doc/library/xml.etree.elementtree.rst:1286 msgid "" "In addition, a custom :class:`TreeBuilder` object can provide the following " "methods:" msgstr "" +"Además, un objeto :class:`TreeBuilder` personalizado puede proporcionar los " +"siguientes métodos:" #: ../Doc/library/xml.etree.elementtree.rst:1291 msgid "" @@ -1285,6 +1814,9 @@ msgid "" "public identifier. *system* is the system identifier. This method does not " "exist on the default :class:`TreeBuilder` class." msgstr "" +"Maneja una declaración de doctype. *name* es el nombre del doctype. *pubid* " +"es el identificador público. *system* es el identificador del sistema. Este " +"método no existe en la clase por defecto :class:`TreeBuilder`." #: ../Doc/library/xml.etree.elementtree.rst:1299 msgid "" @@ -1293,6 +1825,11 @@ msgid "" "is ``''`` for the default namespace and the declared namespace prefix name " "otherwise. *uri* is the namespace URI." msgstr "" +"Se llama cada vez que el analizador encuentra una nueva declaración de " +"espacio de nombres, antes de la llamada de retorno ``start()`` para el " +"elemento de apertura que lo define. *prefix* es ``''`` para el espacio de " +"nombres por defecto y el nombre del prefijo del espacio de nombres declarado " +"en caso contrario. *uri* es el URI del espacio de nombres." #: ../Doc/library/xml.etree.elementtree.rst:1308 msgid "" @@ -1300,6 +1837,9 @@ msgid "" "namespace prefix mapping, with the name of the *prefix* that went out of " "scope." msgstr "" +"Se llama después de la llamada de retorno ``end()`` de un elemento que " +"declaró un mapeo de prefijo de espacio de nombres, con el nombre del " +"*prefijo* que salió del ámbito." #: ../Doc/library/xml.etree.elementtree.rst:1320 msgid "" @@ -1308,10 +1848,14 @@ msgid "" "tree but translates the callback events directly into a serialised form " "using the *write* function." msgstr "" +"Un escritor `C14N 2.0 `_. Los argumentos " +"son los mismos que para la función :func:`canonicalize`. Esta clase no " +"construye un árbol, sino que traduce los eventos de devolución de llamada " +"directamente a una forma serializada utilizando la función *write*." #: ../Doc/library/xml.etree.elementtree.rst:1331 msgid "XMLParser Objects" -msgstr "" +msgstr "Objetos XMLParser" #: ../Doc/library/xml.etree.elementtree.rst:1336 msgid "" @@ -1323,12 +1867,21 @@ msgid "" "*encoding* [1]_ is given, the value overrides the encoding specified in the " "XML file." msgstr "" +"Esta clase es el bloque de construcción de bajo nivel del módulo. Utiliza :" +"mod:`xml.parsers.expat` para un análisis eficiente de XML basado en eventos. " +"Puede ser alimentada con datos XML de forma incremental con el método :meth:" +"`feed`, y los eventos de análisis se traducen en una API push - invocando " +"callbacks en el objeto *target*. Si se omite *target*, se utiliza la clase " +"estándar :class:`TreeBuilder`. Si se da *encoding* [1]_, el valor anula la " +"codificación especificada en el archivo XML." #: ../Doc/library/xml.etree.elementtree.rst:1344 msgid "" "Parameters are now :ref:`keyword-only `. The *html* " "argument no longer supported." msgstr "" +"Los parámetros son ahora :ref:`keyword-only `. El " +"argumento *html* ya no se admite." #: ../Doc/library/xml.etree.elementtree.rst:1351 msgid "" @@ -1336,10 +1889,15 @@ msgid "" "``close()`` method of the *target* passed during construction; by default, " "this is the toplevel document element." msgstr "" +"Finaliza la alimentación de datos al analizador. Retorna el resultado de " +"llamar al método ``close()`` del *target* pasado durante la construcción; " +"por defecto, es el elemento del documento de nivel superior." #: ../Doc/library/xml.etree.elementtree.rst:1358 msgid "Feeds data to the parser. *data* is encoded data." msgstr "" +"Introduce los datos en el analizador sintáctico. *data* son datos " +"codificados." #: ../Doc/library/xml.etree.elementtree.rst:1360 msgid "" @@ -1351,10 +1909,18 @@ msgid "" "building a tree structure. This is an example of counting the maximum depth " "of an XML file::" msgstr "" +":meth:`XMLParser.feed` llama al método ``start(tag, attrs_dict)`` de " +"*target* para cada etiqueta de apertura, a su método ``end(tag)`` para cada " +"etiqueta de cierre, y los datos son procesados por el método ``data(data)``. " +"Para más métodos de callback soportados, véase la clase :class:" +"`TreeBuilder`. :meth:`XMLParser.close` llama al método ``close()`` de " +"*target*. :class:`XMLParser` puede utilizarse no sólo para construir una " +"estructura de árbol. Este es un ejemplo de contar la profundidad máxima de " +"un archivo XML::" #: ../Doc/library/xml.etree.elementtree.rst:1404 msgid "XMLPullParser Objects" -msgstr "" +msgstr "Objetos XMLPullParser" #: ../Doc/library/xml.etree.elementtree.rst:1408 msgid "" @@ -1367,10 +1933,19 @@ msgid "" "\"ns\" events are used to get detailed namespace information). If *events* " "is omitted, only ``\"end\"`` events are reported." msgstr "" +"Un analizador sintáctico pull adecuado para aplicaciones no bloqueantes. Su " +"API de entrada es similar a la de :class:`XMLParser`, pero en lugar de " +"enviar llamadas a un objetivo de devolución de llamada, :class:" +"`XMLPullParser` recoge una lista interna de eventos de análisis y permite al " +"usuario leer de ella. *events* son una secuencia de eventos a reportar. Los " +"eventos soportados son las cadenas ``\"start\"``, ``\"end\"``, ``\"comment" +"\"``, ``\"pi\"``, ``\"start-ns\"`` y ``\"end-ns\"`` (los eventos \"ns\" se " +"utilizan para obtener información detallada del espacio de nombres). Si se " +"omite *events*, sólo se informará de los eventos ``\"end\"``." #: ../Doc/library/xml.etree.elementtree.rst:1419 msgid "Feed the given bytes data to the parser." -msgstr "" +msgstr "Introduce los datos de los bytes dados en el analizador." #: ../Doc/library/xml.etree.elementtree.rst:1423 msgid "" @@ -1379,6 +1954,10 @@ msgid "" "yet retrieved when the parser is closed can still be read with :meth:" "`read_events`." msgstr "" +"Señala al analizador que el flujo de datos ha terminado. A diferencia de :" +"meth:`XMLParser.close`, este método siempre retorna :const:`None`. Cualquier " +"evento que no haya sido recuperado cuando el analizador se cierra puede ser " +"leído con :meth:`read_events`." #: ../Doc/library/xml.etree.elementtree.rst:1430 msgid "" @@ -1388,24 +1967,32 @@ msgid "" "*elem* is the encountered :class:`Element` object, or other context value as " "follows." msgstr "" +"Retorna un iterador sobre los eventos que se han encontrado en los datos " +"alimentados al analizador. El iterador retorna pares ``(event, elem)``, " +"donde *event* es una cadena de caracteres que representa el tipo de evento " +"(por ejemplo, ``\"fin\"``) y *elem* es el objeto :class:`Element` " +"encontrado, u otro valor de contexto como el siguiente." #: ../Doc/library/xml.etree.elementtree.rst:1436 msgid "``start``, ``end``: the current Element." -msgstr "" +msgstr "``start``, ``end``: el Element actual." #: ../Doc/library/xml.etree.elementtree.rst:1437 msgid "``comment``, ``pi``: the current comment / processing instruction" msgstr "" +"``comment``, ``pi``: el comentario / la instrucción de procesamiento actual" #: ../Doc/library/xml.etree.elementtree.rst:1438 msgid "" "``start-ns``: a tuple ``(prefix, uri)`` naming the declared namespace " "mapping." msgstr "" +"``start-ns``: una tupla ``(prefix, uri)`` que nombra el mapeo del espacio de " +"nombres declarado." #: ../Doc/library/xml.etree.elementtree.rst:1440 msgid "``end-ns``: :const:`None` (this may change in a future version)" -msgstr "" +msgstr "``end-ns``: :const:`None` (esto puede cambiar en una versión futura)" #: ../Doc/library/xml.etree.elementtree.rst:1442 msgid "" @@ -1415,6 +2002,11 @@ msgid "" "over iterators obtained from :meth:`read_events` will have unpredictable " "results." msgstr "" +"Los eventos proporcionados en una llamada anterior a :meth:`read_events` no " +"serán retornados nuevamente. Los eventos se consumen de la cola interna sólo " +"cuando se recuperan del iterador, por lo que múltiples lectores iterando en " +"paralelo sobre iteradores obtenidos de :meth:`read_events` tendrán " +"resultados impredecibles." #: ../Doc/library/xml.etree.elementtree.rst:1450 msgid "" @@ -1424,10 +2016,15 @@ msgid "" "that point. The same applies to the element children; they may or may not " "be present." msgstr "" +":class:`XMLPullParser` sólo garantiza que ha visto el carácter \">\" de una " +"etiqueta de inicio cuando emite un evento \"start\", por lo que los " +"atributos están definidos, pero el contenido de los atributos text y tail " +"está indefinido en ese momento. Lo mismo ocurre con los hijos del elemento; " +"pueden estar presentes o no." #: ../Doc/library/xml.etree.elementtree.rst:1465 msgid "Exceptions" -msgstr "" +msgstr "Excepciones" #: ../Doc/library/xml.etree.elementtree.rst:1469 msgid "" @@ -1436,21 +2033,30 @@ msgid "" "will contain a user-friendly error message. In addition, it will have the " "following attributes available:" msgstr "" +"Error de análisis de XML, lanzado por los distintos métodos de análisis de " +"este módulo cuando el análisis falla. La representación en cadena de " +"caracteres de una instancia de esta excepción contendrá un mensaje de error " +"fácil de entender. Además, tendrá los siguientes atributos disponibles:" #: ../Doc/library/xml.etree.elementtree.rst:1476 msgid "" "A numeric error code from the expat parser. See the documentation of :mod:" "`xml.parsers.expat` for the list of error codes and their meanings." msgstr "" +"Un código de error numérico del analizador sintáctico expat. Consulte la " +"documentación de :mod:`xml.parsers.expat` para ver la lista de códigos de " +"error y sus significados." #: ../Doc/library/xml.etree.elementtree.rst:1481 msgid "" "A tuple of *line*, *column* numbers, specifying where the error occurred." msgstr "" +"Una tupla de números de *line*, *column*, que especifica dónde se produjo el " +"error." #: ../Doc/library/xml.etree.elementtree.rst:1484 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie de página" #: ../Doc/library/xml.etree.elementtree.rst:1485 msgid "" @@ -1459,3 +2065,8 @@ msgid "" "https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl and https://" "www.iana.org/assignments/character-sets/character-sets.xhtml." msgstr "" +"La cadena de caracteres de codificación incluida en la salida XML debe " +"ajustarse a los estándares adecuados. Por ejemplo, \"UTF-8\" es válido, pero " +"\"UTF8\" no lo es. Consulte https://www.w3.org/TR/2006/REC-xml11-20060816/" +"#NT-EncodingDecl y https://www.iana.org/assignments/character-sets/character-" +"sets.xhtml." diff --git a/library/xml.po b/library/xml.po index 766e9eb8f9..5a32445a93 100644 --- a/library/xml.po +++ b/library/xml.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-12 17:11-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-04 20:52+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/xml.rst:4 msgid "XML Processing Modules" @@ -37,16 +38,15 @@ msgstr "" "``xml``." #: ../Doc/library/xml.rst:20 -#, fuzzy msgid "" "The XML modules are not secure against erroneous or maliciously constructed " "data. If you need to parse untrusted or unauthenticated data see the :ref:" "`xml-vulnerabilities` and :ref:`defusedxml-package` sections." msgstr "" -"Los módulos XML no son seguros contra datos erróneos o construidos " -"malintencionadamente. Si necesita analizar datos no confiables o no " +"Los módulos XML no son seguros contra datos construidos errónea o " +"maliciosamente. Si necesita analizar datos que no son de confianza o no " "autenticados, consulte las secciones :ref:`xml-vulnerabilities` y :ref:" -"`defused-packages`." +"`defusedxml-package`." #: ../Doc/library/xml.rst:25 msgid "" @@ -303,9 +303,8 @@ msgstr "" "los vectores de ataque conocidos con ejemplos y referencias." #: ../Doc/library/xml.rst:119 -#, fuzzy msgid "The :mod:`defusedxml` Package" -msgstr "Paquetes :mod:`defusedxml` y :mod:`defusedexpat`" +msgstr "El paquete :mod:`defusedxml`" #: ../Doc/library/xml.rst:121 msgid "" diff --git a/library/xml.sax.handler.po b/library/xml.sax.handler.po index 660ef62630..fa52e295a1 100644 --- a/library/xml.sax.handler.po +++ b/library/xml.sax.handler.po @@ -116,7 +116,7 @@ msgstr "" #: ../Doc/library/xml.sax.handler.rst:96 ../Doc/library/xml.sax.handler.rst:106 #: ../Doc/library/xml.sax.handler.rst:138 msgid "access: (parsing) read-only; (not parsing) read/write" -msgstr "access: (parsing) sólo de lectura; (not parsing) lectura/escritura" +msgstr "acceso: (parsing) sólo de lectura; (not parsing) lectura/escritura" #: ../Doc/library/xml.sax.handler.rst:65 msgid "value: ``\"http://xml.org/sax/features/namespace-prefixes\"``" @@ -229,7 +229,7 @@ msgstr "" #: ../Doc/library/xml.sax.handler.rst:120 #: ../Doc/library/xml.sax.handler.rst:129 msgid "access: read/write" -msgstr "access: read/write (leer/escribir)" +msgstr "acceso: read/write (leer/escribir)" #: ../Doc/library/xml.sax.handler.rst:125 msgid "value: ``\"http://xml.org/sax/properties/declaration-handler\"``" @@ -281,7 +281,7 @@ msgstr "" #: ../Doc/library/xml.sax.handler.rst:147 msgid "access: read-only" -msgstr "accesso: solo-lectura" +msgstr "acceso: solo-lectura" #: ../Doc/library/xml.sax.handler.rst:152 msgid "List of all known property names." diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 8dcdf71fbf..99cdade34a 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.po @@ -11,16 +11,16 @@ 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: 2020-11-21 20:32-0300\n" +"PO-Revision-Date: 2021-08-03 11:13+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Emmanuel Arias \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/xmlrpc.client.rst:2 msgid ":mod:`xmlrpc.client` --- XML-RPC client access" @@ -596,16 +596,16 @@ msgstr "" "Escribe la codificación XML-RPC base 64 de este elemento binario en el " "objeto de flujo *out*." +# Se hizo una excepción para que :rfc:`...` comience por números y no genere un error #: ../Doc/library/xmlrpc.client.rst:336 -#, fuzzy msgid "" "The encoded data will have newlines every 76 characters as per :rfc:`RFC " "2045 section 6.8 <2045#section-6.8>`, which was the de facto standard base64 " "specification when the XML-RPC spec was written." msgstr "" -"Los datos codificados tendrán líneas nuevas cada 76 caracteres según :rfc:" -"`RFC 2045 section 6.8 <2045#section-6.8>`, que era la especificación " -"estándar de facto base64 cuando se escribió la especificación XML-RPC." +"Los datos codificados tendrán líneas nuevas cada 76 caracteres según RFC " +"2045 sección 6.8 :rfc:`2045#section-6.8`, que era la especificación estándar " +"de facto base64 cuando se escribió la especificación XML-RPC." #: ../Doc/library/xmlrpc.client.rst:341 msgid "" diff --git a/library/xmlrpc.server.po b/library/xmlrpc.server.po index 2e62aa609f..b454375fb4 100644 --- a/library/xmlrpc.server.po +++ b/library/xmlrpc.server.po @@ -334,7 +334,7 @@ msgstr "" "parámetros de la solicitud; el valor de retorno se devuelve al cliente como " "resultado. Si la instancia no tiene un método :meth:`_dispatch`, se busca un " "atributo que coincida con el nombre del método solicitado; si el nombre del " -"método contiene púntos, cada componente del nombre del método se busca " +"método contiene puntos, cada componente del nombre del método se busca " "individualmente, con el efecto con el efecto que produce una búsqueda " "jerárquica simple. El valor encontrado en esta búsqueda es entonces llamado " "con los parámetros de la solicitud y el valor de retorno se devuelve al " diff --git a/library/zipapp.po b/library/zipapp.po index 770fa81787..ef9e00e4c7 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -306,7 +306,7 @@ msgid "" "If a file object is specified for *source* or *target*, it is the caller's " "responsibility to close it after calling create_archive." msgstr "" -"Si se especifica un objeto archivo para *source* o * target*, es " +"Si se especifica un objeto archivo para *source* o *target*, es " "responsabilidad de quien invoca cerrarlo luego de invocar a create_archive." #: ../Doc/library/zipapp.rst:168 diff --git a/library/zipfile.po b/library/zipfile.po index 4795295acf..df2f5c1043 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-10 22:55-0500\n" -"Last-Translator: Cristian Danilo Rengifo Parra \n" +"PO-Revision-Date: 2021-08-04 20:50+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_CO\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/zipfile.rst:2 msgid ":mod:`zipfile` --- Work with ZIP archives" @@ -807,11 +808,18 @@ msgid "" "TextIOWrapper` when opened as text and ignored otherwise. ``pwd`` is the " "``pwd`` parameter to :meth:`ZipFile.open`." msgstr "" +"Invoca :meth:`ZipFile.open` en la ruta actual. Permite la apertura para " +"lectura o escritura, texto o binario a través de los modos admitidos: 'r', " +"'w', 'rb', 'wb'. Los argumentos posicionales y de palabras clave se pasan a " +"través de :class:`io.TextIOWrapper` cuando se abren como texto y se ignoran " +"en caso contrario. ``pwd`` es el parámetro ``pwd`` para :meth:`ZipFile.open`." #: ../Doc/library/zipfile.rst:503 msgid "" "Added support for text and binary modes for open. Default mode is now text." msgstr "" +"Se agregó soporte para modos de texto y binarios para abrir. El modo " +"predeterminado ahora es texto." #: ../Doc/library/zipfile.rst:509 msgid "Enumerate the children of the current directory." diff --git a/library/zipimport.po b/library/zipimport.po index 30e24867a2..6297344900 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -11,16 +11,16 @@ 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: 2020-10-06 14:13-0500\n" +"PO-Revision-Date: 2021-08-04 20:46+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/zipimport.rst:2 msgid ":mod:`zipimport` --- Import modules from Zip archives" @@ -171,9 +171,7 @@ msgstr "" ":exc:`ZipImportError` es lanzada si *archivepath* no apunta a un archivo ZIP " "válido." -# dotted notation -- punteado #: ../Doc/library/zipimport.rst:78 -#, fuzzy msgid "" "Search for a module specified by *fullname*. *fullname* must be the fully " "qualified (dotted) module name. It returns the zipimporter instance itself " @@ -184,7 +182,7 @@ msgstr "" "Busca un módulo especificado por *fullname*. *fullname* debe ser el nombre " "completo del módulo (punteado). Retorna la propia instancia zipimporter si " "el módulo fue encontrado, o :const:`None` si no. El argumento opcional " -"*path* es ignorado; está ahí por compatibilidad con el protocolo del " +"*path* es ignorado --- está ahí por compatibilidad con el protocolo del " "importador." #: ../Doc/library/zipimport.rst:87 diff --git a/library/zlib.po b/library/zlib.po index af841ef597..dc3245b5de 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -11,22 +11,22 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-05 21:57-0300\n" -"Last-Translator: Carlos A. Crespo \n" +"PO-Revision-Date: 2021-08-04 20:45+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/library/zlib.rst:2 msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" msgstr ":mod:`zlib` --- Compresión compatible con :program:`gzip`" #: ../Doc/library/zlib.rst:10 -#, fuzzy msgid "" "For applications that require data compression, the functions in this module " "allow compression and decompression, using the zlib library. The zlib " @@ -35,13 +35,13 @@ msgid "" "earlier than 1.1.3; 1.1.3 has a `security vulnerability `_, so we recommend using 1.1.4 or later." msgstr "" -"Para las aplicaciones que requieren compresión de datos, las funciones de " -"este módulo permiten la compresión y la descompresión, utilizando la " -"biblioteca zlib. La biblioteca zlib tiene su propia página de inicio en " -"http://www.zlib.net. Existen incompatibilidades conocidas entre el módulo " -"Python y las versiones de la biblioteca zlib anteriores a 1.1.3; 1.1.3 tiene " -"una vulnerabilidad de seguridad, por lo que recomendamos usar 1.1.4 o " -"posterior." +"Para aplicaciones que requieren compresión de datos, las funciones en este " +"módulo permiten la compresión y descompresión mediante la biblioteca zlib. " +"La biblioteca zlib tiene su propia página de inicio en https://www.zlib.net. " +"Existen incompatibilidades conocidas entre el módulo de Python y las " +"versiones de la biblioteca zlib anteriores a la 1.1.3; 1.1.3 tiene una " +"`vulnerabilidad de seguridad `_, por " +"lo que recomendamos usar 1.1.4 o posterior." #: ../Doc/library/zlib.rst:17 msgid "" @@ -50,10 +50,10 @@ msgid "" "consult the zlib manual at http://www.zlib.net/manual.html for authoritative " "information." msgstr "" -"Las funciones de zlib tienen muchas opciones y a menudo necesitan ser " -"utilizadas en un orden particular. Esta documentación no intenta cubrir " -"todas las permutaciones; consultar el manual de zlib en http://www.zlib.net/" -"manual.html para obtener información autorizada." +"Las funciones de zlib tienen muchas opciones y, a menudo, deben usarse en un " +"orden particular. Esta documentación no intenta cubrir todas las " +"permutaciones; consulte el manual de zlib en http://www.zlib.net/manual.html " +"para obtener información autorizada." #: ../Doc/library/zlib.rst:22 msgid "For reading and writing ``.gz`` files see the :mod:`gzip` module." diff --git a/library/zoneinfo.po b/library/zoneinfo.po index 7b73190e53..62be49232f 100644 --- a/library/zoneinfo.po +++ b/library/zoneinfo.po @@ -4,23 +4,25 @@ # package. # FIRST AUTHOR , 2021. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2021-10-01 21:30-0500\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" +"Language-Team: \n" +"X-Generator: Poedit 3.0\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" #: ../Doc/library/zoneinfo.rst:2 msgid ":mod:`zoneinfo` --- IANA time zone support" -msgstr "" +msgstr ":mod:`zoneinfo` --- Soporte de zona horaria IANA" #: ../Doc/library/zoneinfo.rst:14 msgid "" @@ -30,30 +32,40 @@ msgid "" "if no system time zone data is available, the library will fall back to " "using the first-party `tzdata`_ package available on PyPI." msgstr "" +"El módulo :mod:`zoneinfo` proporciona una implementación concreta de zonas " +"horarias para soportar la base de datos de zonas horarias de IANA tal y como " +"se especificó originalmente en :pep:`615`. Por defecto, :mod:`zoneinfo` " +"utiliza los datos de zona horaria del sistema si están disponibles; si no " +"hay datos de zona horaria del sistema, la biblioteca volverá a utilizar el " +"paquete de primera parte `tzdata`_ disponible en PyPI." #: ../Doc/library/zoneinfo.rst:24 msgid "Module: :mod:`datetime`" -msgstr "" +msgstr "Modulo: :mod:`datetime`" #: ../Doc/library/zoneinfo.rst:23 msgid "" "Provides the :class:`~datetime.time` and :class:`~datetime.datetime` types " "with which the :class:`ZoneInfo` class is designed to be used." msgstr "" +"Proporciona los tipos :class:`~datetime.time` y :class:`~datetime.datetime` " +"con los que está diseñada la clase :class:`ZoneInfo`." #: ../Doc/library/zoneinfo.rst:27 msgid "Package `tzdata`_" -msgstr "" +msgstr "Paquete `tzdata`_" #: ../Doc/library/zoneinfo.rst:27 msgid "" "First-party package maintained by the CPython core developers to supply time " "zone data via PyPI." msgstr "" +"Paquete de origen mantenido por los desarrolladores del núcleo de CPython " +"para suministrar datos de zonas horarias a través de PyPI." #: ../Doc/library/zoneinfo.rst:32 msgid "Using ``ZoneInfo``" -msgstr "" +msgstr "Usando ``ZoneInfo``" #: ../Doc/library/zoneinfo.rst:34 msgid "" @@ -63,12 +75,20 @@ msgid "" "replace>` method or :meth:`datetime.astimezone `::" msgstr "" +":class:`ZoneInfo` es una implementación concreta de la clase base abstracta :" +"class:`datetime.tzinfo`, y está pensada para ser adjuntada a ``tzinfo``, " +"bien a través del constructor, del método :meth:`datetime.replace ` o de :meth:`datetime.astimezone `:" #: ../Doc/library/zoneinfo.rst:49 msgid "" "Datetimes constructed in this way are compatible with datetime arithmetic " "and handle daylight saving time transitions with no further intervention::" msgstr "" +"Las fechas construidas de esta manera son compatibles con la aritmética de " +"fechas y manejan las transiciones del horario de verano sin ninguna otra " +"intervención::" #: ../Doc/library/zoneinfo.rst:60 msgid "" @@ -78,16 +98,24 @@ msgid "" "offset from *before* the transition is used when ``fold=0``, and the offset " "*after* the transition is used when ``fold=1``, for example::" msgstr "" +"Estas zonas horarias también soportan el atributo :attr:`~datetime.datetime." +"fold` introducido en :pep:`495`. Durante las transiciones de desfase que " +"inducen tiempos ambiguos (como una transición de horario de verano a horario " +"estándar), se utiliza el desfase de *antes* de la transición cuando " +"``fold=0``, y el desfase *después* de la transición cuando ``fold=1``, por " +"ejemplo::" #: ../Doc/library/zoneinfo.rst:73 msgid "" "When converting from another time zone, the fold will be set to the correct " "value::" msgstr "" +"Al convertir desde otra zona horaria, el pliegue se ajustará al valor " +"correcto::" #: ../Doc/library/zoneinfo.rst:89 msgid "Data sources" -msgstr "" +msgstr "Fuentes de datos" #: ../Doc/library/zoneinfo.rst:91 msgid "" @@ -100,10 +128,20 @@ msgid "" "system data nor tzdata are available, all calls to :class:`ZoneInfo` will " "raise :exc:`ZoneInfoNotFoundError`." msgstr "" +"El módulo ``zoneinfo`` no proporciona directamente los datos de la zona " +"horaria, y en su lugar extrae la información de la zona horaria de la base " +"de datos de la zona horaria del sistema o del paquete de PyPI `tzdata`_, si " +"está disponible. Algunos sistemas, incluyendo notablemente los sistemas " +"Windows, no tienen una base de datos IANA disponible, por lo que para los " +"proyectos que tienen como objetivo la compatibilidad entre plataformas que " +"requieren datos de zona horaria, se recomienda declarar una dependencia de " +"tzdata. Si no están disponibles ni los datos del sistema ni los de tzdata, " +"todas las llamadas a :class:`ZoneInfo` lanzarán un :exc:" +"`ZoneInfoNotFoundError`." #: ../Doc/library/zoneinfo.rst:103 msgid "Configuring the data sources" -msgstr "" +msgstr "Configurando los orígenes de datos" #: ../Doc/library/zoneinfo.rst:105 msgid "" @@ -112,28 +150,39 @@ msgid "" "failure looks for a match in the tzdata package. This behavior can be " "configured in three ways:" msgstr "" +"Cuando se llama a ``ZoneInfo(key)``, el constructor busca primero en los " +"directorios especificados en :data:`TZPATH` un archivo que coincida con " +"``key``, y en caso de fallo busca una coincidencia en el paquete tzdata. " +"Este comportamiento puede configurarse de tres maneras:" #: ../Doc/library/zoneinfo.rst:110 msgid "" "The default :data:`TZPATH` when not otherwise specified can be configured " "at :ref:`compile time `." msgstr "" +"El :data:`TZPATH` por defecto cuando no se especifica otra cosa puede " +"configurarse en :ref:`tiempo de compilación " +"`." #: ../Doc/library/zoneinfo.rst:112 msgid "" ":data:`TZPATH` can be configured using :ref:`an environment variable " "`." msgstr "" +":data:`TZPATH` puede configurarse utilizando :ref:`una variable de entorno " +"`." #: ../Doc/library/zoneinfo.rst:114 msgid "" "At :ref:`runtime `, the search path can be " "manipulated using the :func:`reset_tzpath` function." msgstr "" +"En :ref:`runtime `, la ruta de búsqueda puede " +"ser manipulada usando la función :func:`reset_tzpath`." #: ../Doc/library/zoneinfo.rst:120 msgid "Compile-time configuration" -msgstr "" +msgstr "Configuración en tiempo de compilación" #: ../Doc/library/zoneinfo.rst:122 msgid "" @@ -145,16 +194,27 @@ msgid "" "time option ``TZPATH`` (or, more likely, the ``configure`` flag ``--with-" "tzpath``), which should be a string delimited by :data:`os.pathsep`." msgstr "" +"La ruta por defecto :data:`TZPATH` incluye varias ubicaciones comunes de " +"despliegue para la base de datos de zonas horarias (excepto en Windows, " +"donde no hay ubicaciones \"conocidas\" para los datos de zonas horarias). En " +"los sistemas POSIX, los distribuidores posteriores y aquellos que construyen " +"Python desde el código fuente que saben dónde se despliegan los datos de " +"zona horaria de su sistema pueden cambiar la ruta de zona horaria por " +"defecto especificando la opción de compilación ``TZPATH`` (o, más " +"probablemente, la bandera ``configure`` ``--with-tzpath``), que debe ser una " +"cadena delimitada por :data:`os.pathsep`." #: ../Doc/library/zoneinfo.rst:130 msgid "" "On all platforms, the configured value is available as the ``TZPATH`` key " "in :func:`sysconfig.get_config_var`." msgstr "" +"En todas las plataformas, el valor configurado está disponible como la clave " +"``TZPATH`` en :func:`sysconfig.get_config_var`." #: ../Doc/library/zoneinfo.rst:136 msgid "Environment configuration" -msgstr "" +msgstr "Configuración del entorno" #: ../Doc/library/zoneinfo.rst:138 msgid "" @@ -163,6 +223,10 @@ msgid "" "use the environment variable ``PYTHONTZPATH``, if it exists, to set the " "search path." msgstr "" +"Cuando se inicializa :data:`TZPATH` (ya sea en el momento de la importación " +"o cuando se llama a :func:`reset_tzpath` sin argumentos), el módulo " +"``zoneinfo`` utilizará la variable de entorno ``PYTHONTZPATH``, si existe, " +"para establecer la ruta de búsqueda." #: ../Doc/library/zoneinfo.rst:145 msgid "" @@ -174,16 +238,26 @@ msgid "" "other implementations are free to silently ignore the erroneous component or " "raise an exception." msgstr "" +"Se trata de una cadena separada por :data:`os.pathsep` que contiene la ruta " +"de búsqueda de la zona horaria a utilizar. Debe consistir sólo en rutas " +"absolutas y no relativas. Los componentes relativos especificados en " +"``PYTHONTZPATH`` no se utilizarán, pero por lo demás el comportamiento " +"cuando se especifica una ruta relativa es definido por la implementación; " +"CPython lanzará :exc:`InvalidTZPathWarning`, pero otras implementaciones son " +"libres de ignorar silenciosamente el componente erróneo o lanzar una " +"excepción." #: ../Doc/library/zoneinfo.rst:153 msgid "" "To set the system to ignore the system data and use the tzdata package " "instead, set ``PYTHONTZPATH=\"\"``." msgstr "" +"Para que el sistema ignore los datos del sistema y utilice el paquete tzdata " +"en su lugar, establezca ``PYTHONTZPATH=\"\"``." #: ../Doc/library/zoneinfo.rst:159 msgid "Runtime configuration" -msgstr "" +msgstr "Configuración de tiempo de ejecución" #: ../Doc/library/zoneinfo.rst:161 msgid "" @@ -193,10 +267,15 @@ msgid "" "a specific time zone path (or require disabling access to the system time " "zones)." msgstr "" +"La ruta de búsqueda de TZ también puede configurarse en tiempo de ejecución " +"mediante la función :func:`reset_tzpath`. Por lo general, esta operación no " +"es aconsejable, aunque es razonable utilizarla en funciones de prueba que " +"requieran el uso de una ruta de zona horaria específica (o que requieran " +"deshabilitar el acceso a las zonas horarias del sistema)." #: ../Doc/library/zoneinfo.rst:168 msgid "The ``ZoneInfo`` class" -msgstr "" +msgstr "La clase ``ZoneInfo``" #: ../Doc/library/zoneinfo.rst:172 msgid "" @@ -206,6 +285,12 @@ msgid "" "cache invalidation via :meth:`ZoneInfo.clear_cache`, for all values of " "``key``, the following assertion will always be true:" msgstr "" +"Una subclase concreta de :class:`datetime.tzinfo` que representa una zona " +"horaria IANA especificada por la cadena ``key``. Las llamadas al constructor " +"primario siempre devolverán objetos que se comparan de forma idéntica; dicho " +"de otro modo, salvo la invalidación de la caché mediante :meth:`ZoneInfo." +"clear_cache`, para todos los valores de ``key``, la siguiente afirmación " +"siempre será verdadera:" #: ../Doc/library/zoneinfo.rst:184 msgid "" @@ -213,16 +298,21 @@ msgid "" "level references. The constructor will raise :exc:`ValueError` if a non-" "conforming key is passed." msgstr "" +"La ``key`` debe tener la forma de una ruta POSIX relativa y normalizada, sin " +"referencias de nivel superior. El constructor lanzará :exc:`ValueError` si " +"se pasa una clave no conforme." #: ../Doc/library/zoneinfo.rst:188 msgid "" "If no file matching ``key`` is found, the constructor will raise :exc:" "`ZoneInfoNotFoundError`." msgstr "" +"Si no se encuentra ningún archivo que coincida con la ``clave``, el " +"constructor lanzará :exc:`ZoneInfoNotFoundError`." #: ../Doc/library/zoneinfo.rst:192 msgid "The ``ZoneInfo`` class has two alternate constructors:" -msgstr "" +msgstr "La clase ``ZoneInfo`` tiene dos constructores alternativos:" #: ../Doc/library/zoneinfo.rst:196 msgid "" @@ -230,17 +320,25 @@ msgid "" "g. a file opened in binary mode or an :class:`io.BytesIO` object). Unlike " "the primary constructor, this always constructs a new object." msgstr "" +"Construye un objeto ``ZoneInfo`` a partir de un objeto tipo archivo que " +"retorna bytes (por ejemplo, un archivo abierto en modo binario o un objeto :" +"class:`io.BytesIO`). A diferencia del constructor primario, éste siempre " +"construye un nuevo objeto." #: ../Doc/library/zoneinfo.rst:200 msgid "" "The ``key`` parameter sets the name of the zone for the purposes of :py:meth:" "`~object.__str__` and :py:meth:`~object.__repr__`." msgstr "" +"El parámetro ``key`` establece el nombre de la zona a efectos de :py:meth:" +"`~object.__str__` y :py:meth:`~object.__repr__`." #: ../Doc/library/zoneinfo.rst:203 msgid "" "Objects created via this constructor cannot be pickled (see `pickling`_)." msgstr "" +"Los objetos creados a través de este constructor no pueden ser serializados " +"(ver `pickling`_)." #: ../Doc/library/zoneinfo.rst:207 msgid "" @@ -250,22 +348,31 @@ msgid "" "it can also be used to create a system with a different cache invalidation " "strategy." msgstr "" +"Un constructor alternativo que omite la caché del constructor. Es idéntico " +"al constructor principal, pero retorna un nuevo objeto en cada llamada. Es " +"muy probable que esto sea útil para propósitos de prueba o demostración, " +"pero también se puede utilizar para crear un sistema con una estrategia de " +"invalidación de caché diferente." #: ../Doc/library/zoneinfo.rst:213 msgid "" "Objects created via this constructor will also bypass the cache of a " "deserializing process when unpickled." msgstr "" +"Los objetos creados a través de este constructor también pasarán por encima " +"de la caché de un proceso de deserialización cuando sean deserializados." #: ../Doc/library/zoneinfo.rst:220 msgid "" "Using this constructor may change the semantics of your datetimes in " "surprising ways, only use it if you know that you need to." msgstr "" +"El uso de este constructor puede cambiar la semántica de tus datetimes de " +"manera sorprendente, sólo úsalo si sabes que lo necesitas." #: ../Doc/library/zoneinfo.rst:223 msgid "The following class methods are also available:" -msgstr "" +msgstr "También están disponibles los siguientes métodos de clase:" #: ../Doc/library/zoneinfo.rst:227 msgid "" @@ -273,6 +380,9 @@ msgid "" "arguments are passed, all caches are invalidated and the next call to the " "primary constructor for each key will return a new instance." msgstr "" +"Un método para invalidar la caché de la clase ``ZoneInfo``. Si no se pasan " +"argumentos, se invalidan todas las cachés y la siguiente llamada al " +"constructor primario de cada clave devolverá una nueva instancia." #: ../Doc/library/zoneinfo.rst:231 msgid "" @@ -280,6 +390,9 @@ msgid "" "the specified keys will be removed from the cache. Keys passed to " "``only_keys`` but not found in the cache are ignored." msgstr "" +"Si se pasa un iterable de nombres de claves al parámetro ``only_keys``, sólo " +"se eliminarán de la caché las claves especificadas. Las claves pasadas a " +"``only_keys`` pero que no se encuentran en la caché se ignoran." #: ../Doc/library/zoneinfo.rst:239 msgid "" @@ -287,10 +400,14 @@ msgid "" "``ZoneInfo`` in surprising ways; this modifies process-wide global state and " "thus may have wide-ranging effects. Only use it if you know that you need to." msgstr "" +"La invocación de esta función puede cambiar la semántica de las fechas " +"utilizando ``ZoneInfo`` de forma sorprendente; esto modifica el estado " +"global del proceso y por lo tanto puede tener efectos de gran alcance. " +"Utilícela sólo si sabe que lo necesita." #: ../Doc/library/zoneinfo.rst:244 msgid "The class has one attribute:" -msgstr "" +msgstr "La clase tiene un atributo:" #: ../Doc/library/zoneinfo.rst:248 msgid "" @@ -299,12 +416,18 @@ msgid "" "zone database (e.g. ``America/New_York``, ``Europe/Paris`` or ``Asia/" "Tokyo``)." msgstr "" +"Se trata de un :term:`attribute` de sólo lectura que retorna el valor de " +"``key`` pasado al constructor, que debe ser una clave de búsqueda en la base " +"de datos de zonas horarias de la IANA (por ejemplo, ``America/New_York``, " +"``Europe/Paris`` o ``Asia/Tokyo``." #: ../Doc/library/zoneinfo.rst:253 msgid "" "For zones constructed from file without specifying a ``key`` parameter, this " "will be set to ``None``." msgstr "" +"Para las zonas construidas a partir de un archivo sin especificar un " +"parámetro ``key``, se establecerá como ``None``." #: ../Doc/library/zoneinfo.rst:258 msgid "" @@ -314,10 +437,15 @@ msgid "" "Unicode Common Locale Data Repository) can be used to get more user-friendly " "strings from these keys." msgstr "" +"Aunque es una práctica algo común exponerlos a los usuarios finales, estos " +"valores están diseñados para ser claves primarias para representar las zonas " +"relevantes y no necesariamente elementos orientados al usuario. Se pueden " +"utilizar proyectos como CLDR (Unicode Common Locale Data Repository) para " +"obtener cadenas más fáciles de usar a partir de estas claves." #: ../Doc/library/zoneinfo.rst:265 msgid "String representations" -msgstr "" +msgstr "Representaciones de cadenas" #: ../Doc/library/zoneinfo.rst:267 msgid "" @@ -325,6 +453,9 @@ msgid "" "`ZoneInfo` object defaults to using the :attr:`ZoneInfo.key` attribute (see " "the note on usage in the attribute documentation)::" msgstr "" +"La representación de cadena que se retorna al llamar a :py:class:`str` sobre " +"un objeto :class:`ZoneInfo` utiliza por defecto el atributo :attr:`ZoneInfo." +"key` (ver la nota de uso en la documentación del atributo)::" #: ../Doc/library/zoneinfo.rst:279 msgid "" @@ -333,10 +464,15 @@ msgid "" "implementation-defined and not necessarily stable between versions, but it " "is guaranteed not to be a valid ``ZoneInfo`` key." msgstr "" +"Para los objetos construidos a partir de un fichero sin especificar un " +"parámetro ``key``, ``str`` vuelve a llamar a :func:`repr``. El parámetro " +"``repr`` de ``ZoneInfo`` está definido por la implementación y no es " +"necesariamente estable entre versiones, pero se garantiza que no es una " +"clave válida de ``ZoneInfo``.Pickled." #: ../Doc/library/zoneinfo.rst:287 msgid "Pickle serialization" -msgstr "" +msgstr "Serialización de Pickle" #: ../Doc/library/zoneinfo.rst:289 msgid "" @@ -344,10 +480,16 @@ msgid "" "serialized by key, and ``ZoneInfo`` objects constructed from files (even " "those with a value for ``key`` specified) cannot be pickled." msgstr "" +"En lugar de serializar todos los datos de transición, los objetos " +"``ZoneInfo`` se serializan por clave, y los objetos ``ZoneInfo`` construidos " +"a partir de archivos (incluso los que tienen un valor por ``key`` " +"especifico) no pueden ser serializados." #: ../Doc/library/zoneinfo.rst:293 msgid "The behavior of a ``ZoneInfo`` file depends on how it was constructed:" msgstr "" +"El comportamiento de un archivo ``ZoneInfo`` depende de cómo se haya " +"construido:" #: ../Doc/library/zoneinfo.rst:295 msgid "" @@ -359,6 +501,13 @@ msgid "" "constructed from ``ZoneInfo(\"Europe/Berlin\")``, one would expect the " "following behavior:" msgstr "" +"``ZoneInfo(key)``: Cuando se construye con el constructor primario, un " +"objeto ``ZoneInfo`` se serializa por la clave, y cuando se deserializa, el " +"proceso de deserialización utiliza el primario y por lo tanto se espera que " +"estos sean el mismo objeto que otras referencias a la misma zona horaria. " +"Por ejemplo, si ``europe_berlin_pkl`` es una cadena que contiene un pickle " +"construido a partir de ``ZoneInfo(\"Europe/Berlin\")``, se esperaría el " +"siguiente comportamiento:" #: ../Doc/library/zoneinfo.rst:310 msgid "" @@ -369,6 +518,12 @@ msgid "" "constructed from ``ZoneInfo.no_cache(\"Europe/Berlin\")``, one would expect " "the following behavior:" msgstr "" +"``ZoneInfo.no_cache(key)``: Cuando se construye a partir del constructor que " +"evita la caché, el objeto ``ZoneInfo`` también se serializa por clave, pero " +"cuando se deserializa, el proceso de deserialización utiliza el constructor " +"que evita la caché. Si ``europe_berlin_pkl_nc`` es una cadena que contiene " +"un pickle construido a partir de ``ZoneInfo.no_cache(\"Europe/Berlin\")``, " +"cabría esperar el siguiente comportamiento:" #: ../Doc/library/zoneinfo.rst:324 msgid "" @@ -378,6 +533,12 @@ msgid "" "use a wrapper type or a custom serialization function: either serializing by " "key or storing the contents of the file object and serializing that." msgstr "" +"``ZoneInfo.from_file(fobj, /, key=None)``: Cuando se construye a partir de " +"un fichero, el objeto ``ZoneInfo`` lanza una excepción al ser recogido. Si " +"un usuario final quiere recoger un ``ZoneInfo`` construido a partir de un " +"archivo, se recomienda que utilice un tipo de envoltura o una función de " +"serialización personalizada: ya sea serializando por clave o almacenando el " +"contenido del objeto archivo y serializándolo." #: ../Doc/library/zoneinfo.rst:330 msgid "" @@ -389,10 +550,18 @@ msgid "" "a ``ZoneInfo`` pickled in an environment with a different version of the " "time zone data." msgstr "" +"Este método de serialización requiere que los datos de la zona horaria para " +"la clave requerida estén disponibles tanto en el lado de serialización como " +"en el de deserialización, de forma similar a como se espera que las " +"referencias a las clases y funciones existan tanto en el entorno de " +"serialización como en el de deserialización. También significa que no se " +"garantiza la consistencia de los resultados cuando se retira un ``ZoneInfo`` " +"recogido en un entorno con una versión diferente de los datos de la zona " +"horaria." #: ../Doc/library/zoneinfo.rst:338 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/zoneinfo.rst:342 msgid "" @@ -400,6 +569,9 @@ msgid "" "anywhere on the time zone path. This is recalculated on every call to the " "function." msgstr "" +"Obtiene un conjunto que contiene todas las claves válidas para las zonas " +"horarias de la IANA disponibles en cualquier lugar de la ruta de zonas " +"horarias. Se recalcula en cada llamada a la función." #: ../Doc/library/zoneinfo.rst:346 msgid "" @@ -407,6 +579,9 @@ msgid "" "\"special\" zones such as those under the ``posix/`` and ``right/`` " "directories, or the ``posixrules`` zone." msgstr "" +"Esta función sólo incluye los nombres de zona canónicos y no incluye las " +"zonas \"especiales\" como las que se encuentran bajo los directorios ``posix/" +"`` y ``right/``, o la zona ``posixrules``." #: ../Doc/library/zoneinfo.rst:352 msgid "" @@ -414,6 +589,9 @@ msgid "" "if a file on the time zone path is a valid time zone is to read the \"magic " "string\" at the beginning." msgstr "" +"Esta función puede abrir un gran número de archivos, ya que la mejor manera " +"de determinar si un archivo en la ruta de la zona horaria es una zona " +"horaria válida es leer la \"magic string\" (cadena mágica) al principio." #: ../Doc/library/zoneinfo.rst:358 msgid "" @@ -422,12 +600,20 @@ msgid "" "Locale Data Repository) to get more user-friendly strings. See also the " "cautionary note on :attr:`ZoneInfo.key`." msgstr "" +"Estos valores no están diseñados para ser expuestos a los usuarios finales; " +"para los elementos de cara al usuario, las aplicaciones deberían utilizar " +"algo como CLDR (el Unicode Common Locale Data Repository) para obtener " +"cadenas más fáciles de usar. Véase también la nota de advertencia sobre :" +"attr:`ZoneInfo.key`." #: ../Doc/library/zoneinfo.rst:365 msgid "" "Sets or resets the time zone search path (:data:`TZPATH`) for the module. " "When called with no arguments, :data:`TZPATH` is set to the default value." msgstr "" +"Establece o restablece la ruta de búsqueda de la zona horaria (:data:" +"`TZPATH`) para el módulo. Cuando se llama sin argumentos, :data:`TZPATH` se " +"establece en el valor por defecto." #: ../Doc/library/zoneinfo.rst:368 msgid "" @@ -435,6 +621,9 @@ msgid "" "and so calls to the primary ``ZoneInfo`` constructor will only use the new " "``TZPATH`` in the case of a cache miss." msgstr "" +"La llamada a ``reset_tzpath`` no invalidará la caché de :class:`ZoneInfo`, " +"por lo que las llamadas al constructor primario de ``ZoneInfo`` sólo " +"utilizarán el nuevo ``TZPATH`` en caso de que se pierda la caché." #: ../Doc/library/zoneinfo.rst:372 msgid "" @@ -443,10 +632,13 @@ msgid "" "`ValueError` will be raised if something other than an absolute path is " "passed." msgstr "" +"El parámetro ``to`` debe ser un :term:`sequence` de cadenas o :class:`os." +"PathLike` y no una cadena, todos los cuales deben ser rutas absolutas. :exc:" +"`ValueError` se lanzará si se pasa algo que no sea una ruta absoluta." #: ../Doc/library/zoneinfo.rst:378 msgid "Globals" -msgstr "" +msgstr "Globales" #: ../Doc/library/zoneinfo.rst:382 msgid "" @@ -454,12 +646,18 @@ msgid "" "constructing a ``ZoneInfo`` from a key, the key is joined to each entry in " "the ``TZPATH``, and the first file found is used." msgstr "" +"Una secuencia de sólo lectura que representa la ruta de búsqueda de zonas " +"horarias -- cuando se construye un ``ZoneInfo`` a partir de una clave, la " +"clave se une a cada entrada del ``TZPATH``, y se utiliza el primer archivo " +"encontrado." #: ../Doc/library/zoneinfo.rst:386 msgid "" "``TZPATH`` may contain only absolute paths, never relative paths, regardless " "of how it is configured." msgstr "" +"``TZPATH`` sólo puede contener rutas absolutas, nunca relativas, " +"independientemente de cómo esté configurado." #: ../Doc/library/zoneinfo.rst:389 msgid "" @@ -468,16 +666,22 @@ msgid "" "TZPATH`` rather than importing ``TZPATH`` from ``zoneinfo`` or assigning a " "long-lived variable to ``zoneinfo.TZPATH``." msgstr "" +"El objeto al que apunta ``zoneinfo.TZPATH`` puede cambiar en respuesta a una " +"llamada a :func:`reset_tzpath`, por lo que se recomienda utilizar ``zoneinfo." +"TZPATH`` en lugar de importar ``TZPATH`` desde ``zoneinfo`` o asignar una " +"variable de larga duración a ``zoneinfo.TZPATH``." #: ../Doc/library/zoneinfo.rst:394 msgid "" "For more information on configuring the time zone search path, see :ref:" "`zoneinfo_data_configuration`." msgstr "" +"Para más información sobre la configuración de la ruta de búsqueda de zonas " +"horarias, consulte :ref:`zoneinfo_data_configuration`." #: ../Doc/library/zoneinfo.rst:398 msgid "Exceptions and warnings" -msgstr "" +msgstr "Excepciones y advertencias" #: ../Doc/library/zoneinfo.rst:402 msgid "" @@ -485,9 +689,14 @@ msgid "" "specified key could not be found on the system. This is a subclass of :exc:" "`KeyError`." msgstr "" +"Se lanza cuando la construcción de un objeto :class:`ZoneInfo` falla porque " +"la clave especificada no puede encontrarse en el sistema. Es una subclase " +"de :exc:`KeyError`." #: ../Doc/library/zoneinfo.rst:408 msgid "" "Raised when :envvar:`PYTHONTZPATH` contains an invalid component that will " "be filtered out, such as a relative path." msgstr "" +"Se lanza cuando :envvar:`PYTHONTZPATH` contiene un componente no válido que " +"será filtrado, como una ruta relativa." diff --git a/license.po b/license.po index e75da44ca5..0d7ff4bca6 100644 --- a/license.po +++ b/license.po @@ -6,27 +6,29 @@ # 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: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-04 11:18+0200\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: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/license.rst:7 msgid "History and License" -msgstr "" +msgstr "Historia y Licencia" #: ../Doc/license.rst:11 msgid "History of the software" -msgstr "" +msgstr "Historia del software" #: ../Doc/license.rst:13 msgid "" @@ -35,6 +37,10 @@ msgid "" "successor of a language called ABC. Guido remains Python's principal " "author, although it includes many contributions from others." msgstr "" +"Python fue creado a principios de la década de 1990 por Guido van Rossum en " +"Stichting Mathematisch Centrum (CWI, ver https://www.cwi.nl/) en los Países " +"Bajos como sucesor de un idioma llamado ABC. Guido sigue siendo el autor " +"principal de Python, aunque incluye muchas contribuciones de otros." #: ../Doc/license.rst:18 msgid "" @@ -42,6 +48,9 @@ msgid "" "Research Initiatives (CNRI, see https://www.cnri.reston.va.us/) in Reston, " "Virginia where he released several versions of the software." msgstr "" +"En 1995, Guido continuó su trabajo en Python en la Corporation for National " +"Research Initiatives (CNRI, consulte https://www.cnri.reston.va.us/) en " +"Reston, Virginia, donde lanzó varias versiones del software." #: ../Doc/license.rst:22 msgid "" @@ -53,6 +62,14 @@ msgid "" "specifically to own Python-related Intellectual Property. Zope Corporation " "is a sponsoring member of the PSF." msgstr "" +"En mayo de 2000, Guido y el equipo de desarrollo central de Python se " +"trasladaron a BeOpen.com para formar el equipo de BeOpen PythonLabs. En " +"octubre del mismo año, el equipo de PythonLabs se trasladó a Digital " +"Creations (ahora Zope Corporation; consulte https://www.zope.org/). En 2001, " +"se formó la Python Software Foundation (PSF, consulte https://www.python.org/" +"psf/), una organización sin fines de lucro creada específicamente para " +"poseer la propiedad intelectual relacionada con Python. Zope Corporation es " +"miembro patrocinador del PSF." #: ../Doc/license.rst:30 msgid "" @@ -61,143 +78,148 @@ msgid "" "have also been GPL-compatible; the table below summarizes the various " "releases." msgstr "" +"Todas las versiones de Python son de código abierto (consulte https://" +"opensource.org/ para conocer la definición de código abierto). " +"Históricamente, la mayoría de las versiones de Python, pero no todas, " +"también han sido compatibles con GPL; la siguiente tabla resume las " +"distintas versiones." #: ../Doc/license.rst:35 msgid "Release" -msgstr "" +msgstr "Lanzamiento" #: ../Doc/license.rst:35 msgid "Derived from" -msgstr "" +msgstr "Derivado de" #: ../Doc/license.rst:35 msgid "Year" -msgstr "" +msgstr "Año" #: ../Doc/license.rst:35 msgid "Owner" -msgstr "" +msgstr "Dueño/a" #: ../Doc/license.rst:35 msgid "GPL compatible?" -msgstr "" +msgstr "¿compatible con GPL?" #: ../Doc/license.rst:37 msgid "0.9.0 thru 1.2" -msgstr "" +msgstr "0.9.0 hasta 1.2" #: ../Doc/license.rst:37 msgid "n/a" -msgstr "" +msgstr "n/a" #: ../Doc/license.rst:37 msgid "1991-1995" -msgstr "" +msgstr "1991-1995" #: ../Doc/license.rst:37 msgid "CWI" -msgstr "" +msgstr "CWI" #: ../Doc/license.rst:37 ../Doc/license.rst:39 ../Doc/license.rst:49 #: ../Doc/license.rst:51 ../Doc/license.rst:53 ../Doc/license.rst:55 #: ../Doc/license.rst:57 msgid "yes" -msgstr "" +msgstr "sí" #: ../Doc/license.rst:39 msgid "1.3 thru 1.5.2" -msgstr "" +msgstr "1.3 hasta 1.5.2" #: ../Doc/license.rst:39 msgid "1.2" -msgstr "" +msgstr "1.2" #: ../Doc/license.rst:39 msgid "1995-1999" -msgstr "" +msgstr "1995-1999" #: ../Doc/license.rst:39 ../Doc/license.rst:41 ../Doc/license.rst:45 msgid "CNRI" -msgstr "" +msgstr "CNRI" #: ../Doc/license.rst:41 ../Doc/license.rst:43 ../Doc/license.rst:45 msgid "1.6" -msgstr "" +msgstr "1.6" #: ../Doc/license.rst:41 msgid "1.5.2" -msgstr "" +msgstr "1.5.2" #: ../Doc/license.rst:41 ../Doc/license.rst:43 msgid "2000" -msgstr "" +msgstr "2000" #: ../Doc/license.rst:41 ../Doc/license.rst:43 ../Doc/license.rst:45 #: ../Doc/license.rst:47 msgid "no" -msgstr "" +msgstr "no" #: ../Doc/license.rst:43 msgid "2.0" -msgstr "" +msgstr "2.0" #: ../Doc/license.rst:43 msgid "BeOpen.com" -msgstr "" +msgstr "BeOpen.com" #: ../Doc/license.rst:45 msgid "1.6.1" -msgstr "" +msgstr "1.6.1" #: ../Doc/license.rst:45 ../Doc/license.rst:47 ../Doc/license.rst:49 #: ../Doc/license.rst:51 msgid "2001" -msgstr "" +msgstr "2001" #: ../Doc/license.rst:47 msgid "2.1" -msgstr "" +msgstr "2.1" #: ../Doc/license.rst:47 ../Doc/license.rst:49 msgid "2.0+1.6.1" -msgstr "" +msgstr "2.0+1.6.1" #: ../Doc/license.rst:47 ../Doc/license.rst:49 ../Doc/license.rst:51 #: ../Doc/license.rst:53 ../Doc/license.rst:55 ../Doc/license.rst:57 msgid "PSF" -msgstr "" +msgstr "PSF" #: ../Doc/license.rst:49 msgid "2.0.1" -msgstr "" +msgstr "2.0.1" #: ../Doc/license.rst:51 ../Doc/license.rst:53 ../Doc/license.rst:57 msgid "2.1.1" -msgstr "" +msgstr "2.1.1" #: ../Doc/license.rst:51 msgid "2.1+2.0.1" -msgstr "" +msgstr "2.1+2.0.1" #: ../Doc/license.rst:53 ../Doc/license.rst:55 msgid "2.1.2" -msgstr "" +msgstr "2.1.2" #: ../Doc/license.rst:53 ../Doc/license.rst:55 msgid "2002" -msgstr "" +msgstr "2002" #: ../Doc/license.rst:55 msgid "2.1.3" -msgstr "" +msgstr "2.1.3" #: ../Doc/license.rst:57 msgid "2.2 and above" -msgstr "" +msgstr "2.2 y superior" #: ../Doc/license.rst:57 msgid "2001-now" -msgstr "" +msgstr "2001-ahora" #: ../Doc/license.rst:62 msgid "" @@ -207,22 +229,31 @@ msgid "" "possible to combine Python with other software that is released under the " "GPL; the others don't." msgstr "" +"Compatible con GPL no significa que estemos distribuyendo Python bajo la " +"GPL. Todas las licencias de Python, a diferencia de la GPL, le permiten " +"distribuir una versión modificada sin que los cambios sean de código " +"abierto. Las licencias compatibles con GPL permiten combinar Python con otro " +"software que se publica bajo la GPL; los otros no lo hacen." #: ../Doc/license.rst:68 msgid "" "Thanks to the many outside volunteers who have worked under Guido's " "direction to make these releases possible." msgstr "" +"Gracias a los muchos voluntarios externos que han trabajado bajo la " +"dirección de Guido para hacer posibles estos lanzamientos." #: ../Doc/license.rst:73 msgid "Terms and conditions for accessing or otherwise using Python" -msgstr "" +msgstr "Términos y condiciones para acceder o usar Python" #: ../Doc/license.rst:75 msgid "" "Python software and documentation are licensed under the :ref:`PSF License " "Agreement `." msgstr "" +"El software y la documentación de Python están sujetos a :ref:`Acuerdo de " +"licencia de PSF `." #: ../Doc/license.rst:78 msgid "" @@ -230,6 +261,9 @@ msgid "" "documentation are dual licensed under the PSF License Agreement and the :ref:" "`Zero-Clause BSD license `." msgstr "" +"A partir de Python 3.8.6, los ejemplos, recetas y otros códigos de la " +"documentación tienen licencia doble según el Acuerdo de licencia de PSF y " +"la :ref:`Licencia BSD de cláusula cero `." #: ../Doc/license.rst:82 msgid "" @@ -237,34 +271,40 @@ msgid "" "licenses are listed with code falling under that license. See :ref:" "`OtherLicenses` for an incomplete list of these licenses." msgstr "" +"Parte del software incorporado en Python está bajo diferentes licencias. Las " +"licencias se enumeran con el código correspondiente a esa licencia. " +"Consulte :ref:`OtherLicenses` para obtener una lista incompleta de estas " +"licencias." #: ../Doc/license.rst:90 msgid "PSF LICENSE AGREEMENT FOR PYTHON |release|" -msgstr "" +msgstr "ACUERDO DE LICENCIA DE PSF PARA PYTHON | lanzamiento |" #: ../Doc/license.rst:138 msgid "BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0" -msgstr "" +msgstr "ACUERDO DE LICENCIA DE BEOPEN.COM PARA PYTHON 2.0" #: ../Doc/license.rst:140 msgid "BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1" -msgstr "" +msgstr "ACUERDO DE LICENCIA DE CÓDIGO ABIERTO DE BEOPEN PYTHON VERSIÓN 1" #: ../Doc/license.rst:185 msgid "CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1" -msgstr "" +msgstr "ACUERDO DE LICENCIA CNRI PARA PYTHON 1.6.1" #: ../Doc/license.rst:250 msgid "CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2" -msgstr "" +msgstr "ACUERDO DE LICENCIA CWI PARA PYTHON 0.9.0 HASTA 1.2" #: ../Doc/license.rst:277 msgid "ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON |release| DOCUMENTATION" msgstr "" +"LICENCIA BSD DE CLÁUSULA CERO PARA CÓDIGO EN EL PYTHON | lanzamiento | " +"DOCUMENTACIÓN" #: ../Doc/license.rst:296 msgid "Licenses and Acknowledgements for Incorporated Software" -msgstr "" +msgstr "Licencias y reconocimientos para software incorporado" #: ../Doc/license.rst:298 msgid "" @@ -272,10 +312,13 @@ msgid "" "acknowledgements for third-party software incorporated in the Python " "distribution." msgstr "" +"Esta sección es una lista incompleta, pero creciente, de licencias y " +"reconocimientos para software de terceros incorporado en la distribución de " +"Python." #: ../Doc/license.rst:303 msgid "Mersenne Twister" -msgstr "" +msgstr "Mersenne Twister" #: ../Doc/license.rst:305 msgid "" @@ -283,10 +326,13 @@ msgid "" "math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html. The following " "are the verbatim comments from the original code::" msgstr "" +"El módulo :mod:`_random` incluye código basado en una descarga de http://www." +"math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html. Los siguientes " +"son los comentarios textuales del código original:" #: ../Doc/license.rst:352 msgid "Sockets" -msgstr "" +msgstr "Sockets" #: ../Doc/license.rst:354 msgid "" @@ -294,80 +340,88 @@ msgid "" "`getnameinfo`, which are coded in separate source files from the WIDE " "Project, http://www.wide.ad.jp/. ::" msgstr "" +"El módulo :mod:`socket` usa las funciones, :func:`getaddrinfo`, y :func:" +"`getnameinfo`, que están codificadas en archivos fuente separados del " +"Proyecto WIDE, http://www.wide.ad.jp /. ::" #: ../Doc/license.rst:387 msgid "Asynchronous socket services" -msgstr "" +msgstr "Servicios de socket asincrónicos" #: ../Doc/license.rst:389 msgid "" "The :mod:`asynchat` and :mod:`asyncore` modules contain the following " "notice::" msgstr "" +"Los módulos :mod:`asynchat` y :mod:`asyncore` contienen el siguiente aviso::" #: ../Doc/license.rst:414 msgid "Cookie management" -msgstr "" +msgstr "Gestión de cookies" #: ../Doc/license.rst:416 msgid "The :mod:`http.cookies` module contains the following notice::" -msgstr "" +msgstr "El módulo :mod:`http.cookies` contiene el siguiente aviso::" #: ../Doc/license.rst:442 msgid "Execution tracing" -msgstr "" +msgstr "Seguimiento de ejecución" #: ../Doc/license.rst:444 msgid "The :mod:`trace` module contains the following notice::" -msgstr "" +msgstr "El módulo :mod:`trace` contiene el siguiente aviso::" #: ../Doc/license.rst:475 msgid "UUencode and UUdecode functions" -msgstr "" +msgstr "funciones UUencode y UUdecode" #: ../Doc/license.rst:477 msgid "The :mod:`uu` module contains the following notice::" -msgstr "" +msgstr "El módulo :mod:`uu` contiene el siguiente aviso::" #: ../Doc/license.rst:505 msgid "XML Remote Procedure Calls" -msgstr "" +msgstr "Llamadas a procedimientos remotos XML" #: ../Doc/license.rst:507 msgid "The :mod:`xmlrpc.client` module contains the following notice::" -msgstr "" +msgstr "El módulo :mod:`xmlrpc.client` contiene el siguiente aviso::" #: ../Doc/license.rst:538 msgid "test_epoll" -msgstr "" +msgstr "test_epoll" #: ../Doc/license.rst:540 msgid "The :mod:`test_epoll` module contains the following notice::" -msgstr "" +msgstr "El módulo :mod:`test_epoll` contiene el siguiente aviso::" #: ../Doc/license.rst:564 msgid "Select kqueue" -msgstr "" +msgstr "Seleccionar kqueue" #: ../Doc/license.rst:566 msgid "" "The :mod:`select` module contains the following notice for the kqueue " "interface::" msgstr "" +"El módulo :mod:`select` contiene el siguiente aviso para la interfaz kqueue::" #: ../Doc/license.rst:595 msgid "SipHash24" -msgstr "" +msgstr "SipHash24" #: ../Doc/license.rst:597 msgid "" "The file :file:`Python/pyhash.c` contains Marek Majkowski' implementation of " "Dan Bernstein's SipHash24 algorithm. It contains the following note::" msgstr "" +"El archivo :file:`Python/pyhash.c` contiene la implementación de Marek " +"Majkowski del algoritmo SipHash24 de Dan Bernstein. Contiene la siguiente " +"nota::" #: ../Doc/license.rst:624 msgid "strtod and dtoa" -msgstr "" +msgstr "strtod y dtoa" #: ../Doc/license.rst:626 msgid "" @@ -377,10 +431,15 @@ msgid "" "org/fp/. The original file, as retrieved on March 16, 2009, contains the " "following copyright and licensing notice::" msgstr "" +"El archivo :file:`Python/dtoa.c`, que proporciona las funciones de C dtoa y " +"strtod para la conversión de C dobles hacia y desde cadenas, se deriva del " +"archivo del mismo nombre de David M. Gay, actualmente disponible en http://" +"www.netlib.org/fp/. El archivo original, recuperado el 16 de marzo de 2009, " +"contiene el siguiente aviso de licencia y derechos de autor::" #: ../Doc/license.rst:654 msgid "OpenSSL" -msgstr "" +msgstr "OpenSSL" #: ../Doc/license.rst:656 msgid "" @@ -390,30 +449,41 @@ msgid "" "include a copy of the OpenSSL libraries, so we include a copy of the OpenSSL " "license here::" msgstr "" +"Los módulos :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, :mod:`crypt` usan la " +"biblioteca OpenSSL para un mayor rendimiento si el sistema operativo los " +"pone a disposición. Además, los instaladores de Windows y Mac OS X para " +"Python pueden incluir una copia de las bibliotecas de OpenSSL, por lo que " +"incluimos una copia de la licencia de OpenSSL aquí::" #: ../Doc/license.rst:791 msgid "expat" -msgstr "" +msgstr "expat" #: ../Doc/license.rst:793 msgid "" "The :mod:`pyexpat` extension is built using an included copy of the expat " "sources unless the build is configured ``--with-system-expat``::" msgstr "" +"La extensión :mod:`pyexpat` se construye usando una copia incluida de las " +"fuentes de expatriados a menos que la construcción esté configurada ``--with-" +"system-expat``::" #: ../Doc/license.rst:820 msgid "libffi" -msgstr "" +msgstr "libffi" #: ../Doc/license.rst:822 msgid "" "The :mod:`_ctypes` extension is built using an included copy of the libffi " "sources unless the build is configured ``--with-system-libffi``::" msgstr "" +"La extensión :mod:`_ctypes` se construye usando una copia incluida de las " +"fuentes de libffi a menos que la construcción esté configurada ``--with-" +"system-libffi``::" #: ../Doc/license.rst:849 msgid "zlib" -msgstr "" +msgstr "zlib" #: ../Doc/license.rst:851 msgid "" @@ -421,30 +491,38 @@ msgid "" "sources if the zlib version found on the system is too old to be used for " "the build::" msgstr "" +"La extensión :mod:`zlib` se crea utilizando una copia incluida de las " +"fuentes de zlib si la versión de zlib encontrada en el sistema es demasiado " +"antigua para ser utilizada para la compilación::" #: ../Doc/license.rst:880 msgid "cfuhash" -msgstr "" +msgstr "cfuhash" #: ../Doc/license.rst:882 msgid "" "The implementation of the hash table used by the :mod:`tracemalloc` is based " "on the cfuhash project::" msgstr "" +"La implementación de la tabla hash utilizada por :mod:`tracemalloc` se basa " +"en el proyecto cfuhash::" #: ../Doc/license.rst:921 msgid "libmpdec" -msgstr "" +msgstr "libmpdec" #: ../Doc/license.rst:923 msgid "" "The :mod:`_decimal` module is built using an included copy of the libmpdec " "library unless the build is configured ``--with-system-libmpdec``::" msgstr "" +"El módulo :mod:`_decimal` se construye usando una copia incluida de la " +"biblioteca libmpdec a menos que la construcción esté configurada ``--with-" +"system-libmpdec``::" #: ../Doc/license.rst:953 msgid "W3C C14N test suite" -msgstr "" +msgstr "Conjunto de pruebas W3C C14N" #: ../Doc/license.rst:955 msgid "" @@ -452,23 +530,35 @@ msgid "" "c14n-20/``) was retrieved from the W3C website at https://www.w3.org/TR/xml-" "c14n2-testcases/ and is distributed under the 3-clause BSD license:" msgstr "" +"El conjunto de pruebas C14N 2.0 en el paquete :mod:`test` (``Lib/test/" +"xmltestdata/c14n-20/``) se recuperó del sitio web del W3C en https://www.w3." +"org/TR/xml-c14n2-testcases / y se distribuye bajo la licencia BSD de 3 " +"cláusulas:" #: ../Doc/license.rst:960 msgid "" "Copyright (c) 2013 W3C(R) (MIT, ERCIM, Keio, Beihang), All Rights Reserved." msgstr "" +"Copyright (c) 2013 W3C (R) (MIT, ERCIM, Keio, Beihang), Todos los derechos " +"reservados." #: ../Doc/license.rst:963 msgid "" "Redistribution and use in source and binary forms, with or without " "modification, are permitted provided that the following conditions are met:" msgstr "" +"La redistribución y el uso en formato fuente y binario, con o sin " +"modificaciones, están permitidos siempre que se cumplan las siguientes " +"condiciones:" #: ../Doc/license.rst:967 msgid "" "Redistributions of works must retain the original copyright notice, this " "list of conditions and the following disclaimer." msgstr "" +"Las redistribuciones de obras deben conservar el aviso de copyright " +"original, esta lista de condiciones y el siguiente descargo de " +"responsabilidad." #: ../Doc/license.rst:969 msgid "" @@ -476,6 +566,10 @@ msgid "" "this list of conditions and the following disclaimer in the documentation " "and/or other materials provided with the distribution." msgstr "" +"Las redistribuciones en formato binario deben reproducir el aviso de " +"derechos de autor original, esta lista de condiciones y el siguiente " +"descargo de responsabilidad en la documentación u otros materiales " +"proporcionados con la distribución." #: ../Doc/license.rst:972 msgid "" @@ -483,6 +577,9 @@ msgid "" "endorse or promote products derived from this work without specific prior " "written permission." msgstr "" +"Ni el nombre del W3C ni los nombres de sus colaboradores pueden usarse para " +"respaldar o promover productos derivados de este trabajo sin un permiso " +"previo específico por escrito." #: ../Doc/license.rst:976 msgid "" @@ -498,3 +595,15 @@ msgid "" "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE " "POSSIBILITY OF SUCH DAMAGE." msgstr "" +"ESTE SOFTWARE ES PROPORCIONADO POR LOS TITULARES DE LOS DERECHOS DE AUTOR Y " +"COLABORADORES \"TAL CUAL\" Y CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA, " +"INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD " +"E IDONEIDAD PARA UN PROPÓSITO DETERMINADO ESTÁN RENUNCIADAS. EN NINGÚN CASO " +"EL PROPIETARIO DE LOS DERECHOS DE AUTOR O LOS COLABORADORES SERÁN " +"RESPONSABLES DE CUALQUIER DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, " +"EJEMPLAR O CONSECUENTE (INCLUYENDO, PERO NO LIMITADO A, LA ADQUISICIÓN DE " +"BIENES O SERVICIOS SUSTITUTOS; PÉRDIDA DE USO, DATOS O BENEFICIOS; O " +"INTERRUPCIÓN COMERCIAL) SIN EMBARGO Y EN CUALQUIER TEORÍA DE " +"RESPONSABILIDAD, YA SEA POR CONTRATO, RESPONSABILIDAD ESTRICTA O AGRAVIO " +"(INCLUYENDO NEGLIGENCIA O DE OTRA MANERA) QUE SURJA DE CUALQUIER FORMA DEL " +"USO DE ESTE SOFTWARE, AUNQUE SE INDIQUE LA POSIBILIDAD DE DICHO DAÑO." diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index a5e1a9c83f..ba6b80da20 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-05 14:52-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 19:34+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/compound_stmts.rst:5 msgid "Compound statements" @@ -292,7 +293,6 @@ msgstr "" "código de limpieza para un grupo de sentencias:" #: ../Doc/reference/compound_stmts.rst:248 -#, fuzzy msgid "" "The :keyword:`except` clause(s) specify one or more exception handlers. When " "no exception occurs in the :keyword:`try` clause, no exception handler is " @@ -307,18 +307,19 @@ msgid "" "tuple containing an item that is the class or a base class of the exception " "object." msgstr "" -"La/s cláusula/s :keyword:`except` especifican uno o más gestores de " -"excepciones. Cuando no se produce ninguna excepción en la cláusula :keyword:" -"`try`, no se ejecuta ningún gestor de excepción. Cuando se produce una " -"excepción en la suite :keyword:`!try`, se inicia la búsqueda de un gestor de " -"excepciones. Esta búsqueda inspecciona las cláusulas ``except`` por turno " -"hasta que se encuentre una que coincida con la excepción. Una cláusula " -"excepción sin una expresión, si está presente, debe ser la última; coincide " -"con cualquier excepción. Para una cláusula ``except`` con una expresión, esa " +"Las cláusulas :keyword:`except` especifican uno o más manejadores de " +"excepciones. Cuando no ocurre ninguna excepción en la palabra clave :keyword:" +"`try`, no se ejecuta ningún controlador de excepciones. Cuando ocurre una " +"excepción en la suite :keyword:`!try`, se inicia una búsqueda de un " +"manejador de excepciones. Esta búsqueda inspecciona las cláusulas except a " +"su vez hasta encontrar una que coincida con la excepción. Una cláusula " +"except sin expresión, si está presente, debe ser la última; coincide con " +"cualquier excepción. Para una cláusula except con una expresión, esa " "expresión se evalúa y la cláusula coincide con la excepción si el objeto " "resultante es \"compatible\" con la excepción. Un objeto es compatible con " -"una excepción si es la clase o una clase base del objeto de excepción o una " -"tupla que contiene un elemento compatible con la excepción." +"una excepción si es la clase o una clase base del objeto de excepción, o una " +"tupla que contiene un elemento que es la clase o una clase base del objeto " +"de excepción." #: ../Doc/reference/compound_stmts.rst:260 msgid "" @@ -714,6 +715,9 @@ msgid "" "Previously, the grammar was much more restrictive; see :pep:`614` for " "details." msgstr "" +"Las funciones se pueden decorar con cualquier token válido :token:" +"`assignment_expression`. Anteriormente, la gramática era mucho más " +"restrictiva; ver :pep:`614` para más detalles." #: ../Doc/reference/compound_stmts.rst:565 msgid "" @@ -982,6 +986,9 @@ msgid "" "Previously, the grammar was much more restrictive; see :pep:`614` for " "details." msgstr "" +"Las clases se pueden decorar con cualquier token válido :token:" +"`assignment_expression`. Anteriormente, la gramática era mucho más " +"restrictiva; ver :pep:`614` para más detalles." #: ../Doc/reference/compound_stmts.rst:732 msgid "" @@ -1078,18 +1085,16 @@ msgid "The :keyword:`!async for` statement" msgstr "La sentencia :keyword:`!async for`" #: ../Doc/reference/compound_stmts.rst:803 -#, fuzzy msgid "" "An :term:`asynchronous iterable` provides an ``__aiter__`` method that " "directly returns an :term:`asynchronous iterator`, which can call " "asynchronous code in its ``__anext__`` method." msgstr "" -"Un :term:`asynchronous iterable` es capaz de llamar código asincrónico en su " -"implementación *iter*, y :term:`asynchronous iterator` puede llamar a código " -"asincrónico en su método *next*." +"Un :term:`asynchronous iterable` proporciona un método ``__aiter__`` que " +"retorna directamente un :term:`asynchronous iterator`, que puede llamar a " +"código asincrónico en su método ``__anext__``." #: ../Doc/reference/compound_stmts.rst:807 -#, fuzzy msgid "" "The ``async for`` statement allows convenient iteration over asynchronous " "iterables." diff --git a/reference/datamodel.po b/reference/datamodel.po index f393d3ffeb..c79048d305 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2021-03-19 22:57+0100\n" +"PO-Revision-Date: 2021-08-02 19:35+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/datamodel.rst:6 msgid "Data model" @@ -270,7 +270,6 @@ msgid "NotImplemented" msgstr "NotImplemented" #: ../Doc/reference/datamodel.rst:155 -#, fuzzy msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the built-in name ``NotImplemented``. " @@ -280,11 +279,12 @@ msgid "" "the operator.) It should not be evaluated in a boolean context." msgstr "" "Este tipo tiene un solo valor. Hay un solo objeto con este valor. Se accede " -"a este objeto a través del nombre incorporado ``NotImplemented``. Los " -"métodos numéricos y los métodos de comparación enriquecidos deberían " -"retornar este valor si no implementan la operación para los operandos " -"proporcionados. (El intérprete intentará la operación reflejada, o alguna " -"otra alternativa, dependiendo del operador). Su valor de verdad es verdadero." +"a este objeto a través del nombre integrado ``NotImplemented``. Los métodos " +"numéricos y los métodos de comparación enriquecidos deben devolver este " +"valor si no implementan la operación para los operandos proporcionados. (El " +"intérprete intentará entonces la operación reflejada, o alguna otra " +"alternativa, dependiendo del operador). No debe evaluarse en un contexto " +"booleano." #: ../Doc/reference/datamodel.rst:162 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." @@ -1013,7 +1013,6 @@ msgstr "" "valor asignado." #: ../Doc/reference/datamodel.rst:564 -#, fuzzy msgid "" "Function objects also support getting and setting arbitrary attributes, " "which can be used, for example, to attach metadata to functions. Regular " @@ -1022,13 +1021,13 @@ msgid "" "functions. Function attributes on built-in functions may be supported in the " "future.*" msgstr "" -"Los objetos de función también admiten obtener y establecer atributos " -"arbitrarios, que pueden usarse, por ejemplo, para adjuntar metadatos a " -"funciones. La notación regular de atributo por punto se usa para obtener y " -"establecer tales atributos. *Tenga en cuenta que la implementación actual " -"solo admite atributos de función en funciones definidas por el usuario. Los " -"atributos de función en funciones incorporadas pueden ser compatibles en el " -"futuro.*" +"Los objetos de función también admiten la obtención y configuración de " +"atributos arbitrarios, que se pueden usar, por ejemplo, para adjuntar " +"metadatos a funciones. La notación de puntos de atributo regular se utiliza " +"para obtener y establecer dichos atributos. *Tenga en cuenta que la " +"implementación actual solo admite atributos de función en funciones " +"definidas por el usuario. Los atributos de función en funciones integradas " +"pueden ser compatibles en el futuro.*" #: ../Doc/reference/datamodel.rst:570 msgid "" @@ -2983,7 +2982,7 @@ msgstr "" "El atributo :attr:`__objclass__` es interpretado por el módulo :mod:" "`inspect` como la especificación de la clase donde el objeto fue definido " "(establecer esto adecuadamente puede ayudar en introspección de atributos " -"dinámicos de clases en tiempo de ejecución). Para llamables, puede indicar " +"dinámicos de clases en tiempo de ejecución). Para invocables, puede indicar " "que una instancia de un tipo (o subclase) dado es esperado o requerido como " "el primero argumento posicional (por ejemplo, CPython establece este " "atributo para métodos independientes que son implementados en C)." diff --git a/reference/executionmodel.po b/reference/executionmodel.po index fe04552e5e..bbe864ff0d 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-26 09:14-0300\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 19:39+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/executionmodel.rst:6 msgid "Execution model" @@ -30,7 +31,6 @@ msgid "Structure of a program" msgstr "Estructura de un programa" #: ../Doc/reference/executionmodel.rst:19 -#, fuzzy msgid "" "A Python program is constructed from code blocks. A :dfn:`block` is a piece " "of Python program text that is executed as a unit. The following are blocks: " @@ -43,17 +43,19 @@ msgid "" "option:`-m` argument is also a code block. The string argument passed to the " "built-in functions :func:`eval` and :func:`exec` is a code block." msgstr "" -"Un programa Python está construido a partir de bloques de código. Un :dfn:" -"`block` es un trozo de texto de un programa Python que se ejecuta como una " -"unidad. Los siguientes son bloques: un módulo, el cuerpo de una función y la " -"definición de una clase. Cada comando ingresado en el intérprete interactivo " -"es un bloque. Un archivo de script (un archivo provisto como entrada " -"estándar al intérprete, o especificado como argumento en la línea de comando " -"al intérprete) es un bloque de código. Un comando de script (un comando " -"especificado en la línea de comandos del intérprete con la opción :option:`-" -"c` es un bloque de código. El argumento cadena de caracteres que se envía a " -"las funciones incorporadas :func:`eval` y :func:`exec` es también un bloque " -"de código." +"Un programa de Python se construye a partir de bloques de código. Un :dfn:" +"`block` es una parte del texto del programa Python que se ejecuta como una " +"unidad. Los siguientes son bloques: un módulo, un cuerpo de función y una " +"definición de clase. Cada comando escrito de forma interactiva es un bloque. " +"Un archivo de secuencia de comandos (un archivo proporcionado como entrada " +"estándar al intérprete o especificado como un argumento de línea de comando " +"para el intérprete) es un bloque de código. Un comando de secuencia de " +"comandos (un comando especificado en la línea de comandos del intérprete con " +"la opción: :option:`-c`) es un bloque de código. Un módulo que se ejecuta " +"como un script de nivel superior (como módulo ``__main__``) desde la línea " +"de comando usando un argumento :option:`-m` también es un bloque de código. " +"El argumento de cadena pasado a las funciones integradas :func:`eval` y :" +"func:`exec` es un bloque de código." #: ../Doc/reference/executionmodel.rst:33 msgid "" @@ -82,9 +84,7 @@ msgstr "" "Los :dfn:`Names` refieren a objetos. Los nombres se introducen por las " "operaciones de vinculación de nombre (*name binding operations*)." -# ¿ target == objetivo ? #: ../Doc/reference/executionmodel.rst:59 -#, fuzzy msgid "" "The following constructs bind names: formal parameters to functions, :" "keyword:`import` statements, class and function definitions (these bind the " @@ -107,14 +107,13 @@ msgstr "" "módulo." #: ../Doc/reference/executionmodel.rst:69 -#, fuzzy msgid "" "A target occurring in a :keyword:`del` statement is also considered bound " "for this purpose (though the actual semantics are to unbind the name)." msgstr "" -"Un objetivo que ocurre en una declaración :keyword:`del` también está " -"considerado como vinculado para este propósito (aunque la semántica real es " -"desvincular el nombre)." +"Un objetivo que aparece en una sentencia :keyword:`del` también se considera " +"vinculado para este propósito (aunque la semántica real es desvincular el " +"nombre)." #: ../Doc/reference/executionmodel.rst:72 msgid "" @@ -168,9 +167,7 @@ msgstr "" "definición, a menos que uno de los bloques contenidos introduzca un vínculo " "diferente para el nombre." -# ¿"the nearest enclosing scope" == "el ámbito que cierre más cerca"? #: ../Doc/reference/executionmodel.rst:101 -#, fuzzy msgid "" "When a name is used in a code block, it is resolved using the nearest " "enclosing scope. The set of all such scopes visible to a code block is " @@ -240,10 +237,7 @@ msgstr "" "namespace*). La declaración :keyword:`!global` debe preceder a todos los " "usos del nombre." -# Tengo dudas con la palabra enclosing en este contexto. Aparece también en -# otras partes del archivo. #: ../Doc/reference/executionmodel.rst:131 -#, fuzzy msgid "" "The :keyword:`global` statement has the same scope as a name binding " "operation in the same block. If the nearest enclosing scope for a free " @@ -255,9 +249,7 @@ msgstr "" "para una variable libre contiene una declaración global, se trata a la " "variable libre como global." -# Otra vez enclosing. #: ../Doc/reference/executionmodel.rst:137 -#, fuzzy msgid "" "The :keyword:`nonlocal` statement causes corresponding names to refer to " "previously bound variables in the nearest enclosing function scope. :exc:" @@ -306,9 +298,8 @@ msgstr "" "lo siguiente fallará::" #: ../Doc/reference/executionmodel.rst:165 -#, fuzzy msgid "Builtins and restricted execution" -msgstr "Módulos incorporados (*builtins*) y ejecución restringida" +msgstr "Integraciones y ejecución restringida" #: ../Doc/reference/executionmodel.rst:171 msgid "" @@ -355,7 +346,6 @@ msgstr "" "42::" #: ../Doc/reference/executionmodel.rst:201 -#, fuzzy msgid "" "The :func:`eval` and :func:`exec` functions do not have access to the full " "environment for resolving names. Names may be resolved in the local and " @@ -365,14 +355,14 @@ msgid "" "global and local namespace. If only one namespace is specified, it is used " "for both." msgstr "" -"Las funciones :func:`eval` y :func:`exec`no tienen acceso al entorno " -"completo para resolver nombres. Los nombres pueden resolverse en el espacio " -"de nombres local y global del código que invoque. Las variables libres no se " -"resuelven en el espacio de nombres de cierre más cercano, sino en el espacio " -"de nombres global. [#]_ Las funciones :func:`exec` y :func:`eval` tienen " -"argumentos opcionales para sobreescribir el espacio de nombres local y " -"global. Si se especifica un solo espacio de nombres, éste se usa para ambas " -"cosas." +"Las funciones :func:`eval` y :func:`exec` no tienen acceso al entorno " +"completo para resolver nombres. Los nombres pueden resolverse en los " +"espacios de nombres locales y globales de la persona que llama. Las " +"variables libres no se resuelven en el espacio de nombres adjunto más " +"cercano, sino en el espacio de nombres global. [#]_ Las funciones :func:" +"`exec` y :func:`eval` tienen argumentos opcionales para anular el espacio de " +"nombres global y local. Si solo se especifica un espacio de nombres, se usa " +"para ambos." #: ../Doc/reference/executionmodel.rst:212 msgid "Exceptions" diff --git a/reference/expressions.po b/reference/expressions.po index fb6675d885..87e1e39320 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-12-06 14:19+0100\n" -"Last-Translator: Álvaro Mondéjar Rubio \n" +"PO-Revision-Date: 2021-08-02 19:31+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/expressions.rst:6 msgid "Expressions" @@ -721,7 +722,6 @@ msgstr "" "ejecución de cualquier cláusula :keyword:`finally` pendiente." #: ../Doc/reference/expressions.rst:479 -#, fuzzy msgid "" "When ``yield from `` is used, the supplied expression must be an " "iterable. The values produced by iterating that iterable are passed directly " @@ -732,15 +732,14 @@ msgid "" "exc:`AttributeError` or :exc:`TypeError`, while :meth:`~generator.throw` " "will just raise the passed in exception immediately." msgstr "" -"Cuando se usa ``yield from ``, esto trata a la expresión provista como " -"un subiterador. Todos los valores producidos por ese subiterador son pasados " -"directamente al invocador de los métodos del generador actual. Cualquiera de " -"los valores pasados con :meth:`~generator.send` y cualquiera de las " -"excepciones pasadas con :meth:`~generator.throw` son pasados al iterador " -"subyacente si tiene los métodos apropiados. Si este no es el caso, entonces :" -"meth:`~generator.send` generará :exc:`AttributeError` o :exc:`TypeError`, " -"mientras :meth:`~generator.throw` sólo generará inmediatamente la excepción " -"pasada." +"Cuando se usa ``yield from ``, la expresión proporcionada debe ser " +"iterable. Los valores producidos al iterar ese iterable se pasan " +"directamente al llamador de los métodos del generador actual. Cualquier " +"valor pasado con :meth:`~generator.send` y cualquier excepción pasada con :" +"meth:`~generator.throw` se pasan al iterador subyacente si tiene los métodos " +"apropiados. Si este no es el caso, entonces :meth:`~generator.send` " +"generará :exc:`AttributeError` o :exc:`TypeError`, mientras que :meth:" +"`~generator.throw` solo generará la excepción pasada inmediatamente." #: ../Doc/reference/expressions.rst:488 msgid "" @@ -1216,13 +1215,12 @@ msgid "Subscriptions" msgstr "Suscripciones" #: ../Doc/reference/expressions.rst:803 -#, fuzzy msgid "" "Subscription of a sequence (string, tuple or list) or mapping (dictionary) " "object usually selects an item from the collection:" msgstr "" -"Una subscripción selecciona un elemento de una objeto secuencia (cadena de " -"caracteres, tupla o lista) o mapeo (diccionario):" +"La suscripción de una secuencia (cadena, tupla o lista) o un objeto de mapeo " +"(diccionario) generalmente selecciona un elemento de la colección:" #: ../Doc/reference/expressions.rst:809 msgid "" @@ -1300,6 +1298,10 @@ msgid "" "defined classes can support subscription by providing a :meth:" "`__class_getitem__` classmethod." msgstr "" +"La suscripción de ciertos :term:`clases ` o :term:`tipos ` crea " +"un :ref:`alias genérico `. En este caso, las clases " +"definidas por el usuario pueden admitir la suscripción proporcionando un " +"método de clase :meth:`__class_getitem__`." #: ../Doc/reference/expressions.rst:849 msgid "Slicings" @@ -2558,14 +2560,18 @@ msgid "" "\"walrus\") assigns an :token:`expression` to an :token:`identifier`, while " "also returning the value of the :token:`expression`." msgstr "" +"Una expresión de asignación (a veces también llamada \"expresión con nombre" +"\" o \"walrus\") asigna un :token:`expression` a un :token:`identifier`, " +"mientras que también retorna el valor de :token:`expression`." #: ../Doc/reference/expressions.rst:1666 msgid "One common use case is when handling matched regular expressions:" msgstr "" +"Un caso de uso común es cuando se manejan expresiones regulares coincidentes:" #: ../Doc/reference/expressions.rst:1673 msgid "Or, when processing a file stream in chunks:" -msgstr "" +msgstr "O, al procesar un flujo de archivos en fragmentos:" #: ../Doc/reference/expressions.rst:1680 msgid "See :pep:`572` for more details about assignment expressions." @@ -2668,7 +2674,7 @@ msgstr "" "La coma final sólo es requerida para crear una tupla única (también " "denominada un *singleton*); es opcional en todos los otros casos. Una única " "expresión sin una coma final no crea una tupla, si no produce el valor de " -"esa expresion. (Para crear una tupla vacía, usa un par de paréntesis vacío: " +"esa expresión. (Para crear una tupla vacía, usa un par de paréntesis vacío: " "``()``.)" #: ../Doc/reference/expressions.rst:1786 diff --git a/reference/grammar.po b/reference/grammar.po index 0b732bd4f8..c3e0de48ca 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-09-27 23:15+0200\n" +"PO-Revision-Date: 2021-08-02 19:28+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/grammar.rst:2 msgid "Full Grammar specification" @@ -31,6 +32,10 @@ msgid "" "generate the CPython parser (see :source:`Grammar/python.gram`). The version " "here omits details related to code generation and error recovery." msgstr "" +"Esta es la gramática completa de Python, derivada directamente de la " +"gramática utilizada para generar el analizador CPython (ver :source:`Grammar/" +"python.gram`). La versión aquí omite detalles relacionados con la generación " +"de código y la recuperación de errores." #: ../Doc/reference/grammar.rst:9 #, python-format @@ -43,6 +48,14 @@ msgid "" "lookahead (i.e., is required _not_ to match). We use the ``|`` separator to " "mean PEG's \"ordered choice\" (written as ``/`` in traditional PEG grammars)." msgstr "" +"La notación es una mezcla de `EBNF `_ y `PEG `_. En particular, ``&`` seguido de un símbolo, " +"ficha o grupo entre paréntesis indica una anticipación positiva (es decir, " +"se requiere que coincida pero no se consume), mientras que ``!`` Indica una " +"anticipación negativa (es decir, se requiere _no_ para partido). Usamos el " +"separador ``|`` para referirnos a la \"elección ordenada\" de PEG (escrito " +"como ``/`` en las gramáticas tradicionales de PEG)." #~ msgid "" #~ "This is the full Python grammar, as it is read by the parser generator " diff --git a/reference/import.po b/reference/import.po index d941e6a437..7a378057cb 100644 --- a/reference/import.po +++ b/reference/import.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-06-01 08:26-0400\n" -"Last-Translator: @Jighdan\n" +"PO-Revision-Date: 2021-08-02 19:27+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/import.rst:6 msgid "The import system" @@ -149,7 +150,7 @@ msgid "" msgstr "" "Python sólo tiene un tipo de objeto módulo, y todos los módulos son de este " "tipo, independientemente de si el módulo está implementado en Python, C, o " -"en cualquier otro lenguage. Para ayudar a organizar los módulos y " +"en cualquier otro lenguaje. Para ayudar a organizar los módulos y " "proporcionar una jerarquía de nombres, Python tiene un concepto de :term:" "`paquete `." @@ -169,8 +170,8 @@ msgstr "" "tienen por qué originarse en el sistema de archivos. Para los propósitos de " "esta documentación, usaremos esta conveniente analogía de directorios y " "archivos. Al igual que los directorios del sistema de archivos, los " -"paquetes están organizados jerárquicamente, y los paquetes pueden contener " -"subpaquetes, así como módulos regulares." +"paquetes están organizados de forma jerárquica, y los paquetes pueden " +"contener subpaquetes, así como módulos regulares." #: ../Doc/reference/import.rst:80 msgid "" @@ -181,11 +182,10 @@ msgid "" msgstr "" "Es importante tener en cuenta que todos los paquetes son módulos, pero no " "todos los módulos son paquetes. O dicho de otro modo, los paquetes son sólo " -"un tipo especial de módulo. Específicamente, cualquier módulo que contenga " +"un tipo especial de módulo. Específicamente, cualquier módulo que contenga " "un atributo ``__path__`` se considera un paquete." #: ../Doc/reference/import.rst:85 -#, fuzzy msgid "" "All modules have a name. Subpackage names are separated from their parent " "package name by a dot, akin to Python's standard attribute access syntax. " @@ -195,7 +195,7 @@ msgid "" msgstr "" "Todos los módulos tienen un nombre. Los nombres de los subpaquetes se " "separan del nombre del paquete padre por puntos, similar a la sintaxis de " -"acceso a atributos estándar de Python. Así, puedes tener un módulo llamado :" +"acceso a atributos estándar de Python. Así, puedes tener un módulo llamado :" "mod:`sys` y un paquete llamado :mod:`email`, que a su vez tiene un " "subpaquete llamado :mod:`email.mime` y un módulo dentro de ese subpaquete " "llamado :mod:`email.mime.text`." @@ -816,10 +816,11 @@ msgid "" msgstr "" "Los cargadores de módulos pueden optar por crear el objeto de módulo durante " "la carga mediante la implementación de un método :meth:`~importlib.abc." -"Loader.create_module`. Toma un argumento, el module spec, y retorna el nuevo " -"objeto de módulo que se usará durante la carga. ``create_module()`` no " -"necesita establecer ningún atributo en el objeto module. Si el método " -"retorna ``None``, la maquinaria de importación creará el nuevo módulo en sí." +"Loader.create_module`. Toma un argumento, la especificación del módulo, y " +"retorna el nuevo objeto de módulo que se usará durante la carga. " +"``create_module()`` no necesita establecer ningún atributo en el objeto " +"module. Si el método retorna ``None``, la maquinaria de importación creará " +"el nuevo módulo en sí." #: ../Doc/reference/import.rst:433 msgid "The :meth:`~importlib.abc.Loader.create_module` method of loaders." @@ -910,7 +911,7 @@ msgstr "" #: ../Doc/reference/import.rst:474 msgid "Submodules" -msgstr "Sub-modulos" +msgstr "Submódulos" #: ../Doc/reference/import.rst:476 msgid "" @@ -1312,7 +1313,6 @@ msgid "Cached bytecode invalidation" msgstr "Invalidación del código de bytes en caché" #: ../Doc/reference/import.rst:683 -#, fuzzy msgid "" "Before Python loads cached bytecode from a ``.pyc`` file, it checks whether " "the cache is up-to-date with the source ``.py`` file. By default, Python " @@ -1321,13 +1321,13 @@ msgid "" "cache file by checking the stored metadata in the cache file against the " "source's metadata." msgstr "" -"Antes de que Python cargue el código de bytes almacenado en caché desde el " -"archivo ``.pyc``, comprueba si la memoria caché está actualizada con el " -"archivo de origen ``.py``. De forma predeterminada, Python lo hace " -"almacenando la última marca de tiempo y el tamaño modificados del origen en " -"el archivo de caché al escribirlo. En tiempo de ejecución, el sistema de " -"importación valida el archivo de caché comprobando los metadatos almacenados " -"en el archivo de caché con los metadatos del origen." +"Antes de que Python cargue el código de bytes en caché de un archivo ``." +"pyc``, verifica si el caché está actualizado con el archivo ``.py`` de " +"origen. De forma predeterminada, Python hace esto almacenando la marca de " +"tiempo y el tamaño de la última modificación de la fuente en el archivo de " +"caché al escribirlo. En tiempo de ejecución, el sistema de importación " +"valida el archivo de caché comprobando los metadatos almacenados en el " +"archivo de caché con los metadatos de la fuente." #: ../Doc/reference/import.rst:690 msgid "" @@ -1699,16 +1699,15 @@ msgstr "" "establecido (con una excepción)." #: ../Doc/reference/import.rst:859 -#, fuzzy msgid "" "To indicate to the import machinery that the spec represents a namespace :" "term:`portion`, the path entry finder sets \"submodule_search_locations\" to " "a list containing the portion." msgstr "" -"Para indicar a la máquina de importación que la especificación representa un " -"espacio de nombres :term:`portion`, el buscador de entradas de ruta " -"establece \"loader\" en la especificación en ``None`` y " -"\"submodule_search_locations\" en una lista que contiene la parte." +"Para indicar a la maquinaria de importación que la especificación representa " +"un espacio de nombres :term:`portion`, el buscador de entrada de ruta " +"establece *\"submodule_search_locations\"* en una lista que contiene la " +"porción." #: ../Doc/reference/import.rst:863 msgid "" @@ -1742,6 +1741,10 @@ msgid "" "returns a 2-tuple where the first item is the loader and the second item is " "a namespace :term:`portion`." msgstr "" +":meth:`~importlib.abc.PathEntryFinder.find_loader` toma un argumento, el " +"nombre completo del módulo que se está importando. ``find_loader()`` " +"devuelve una 2-tupla donde el primer elemento es el cargador y el segundo " +"elemento es un espacio de nombres :term:`portion`." #: ../Doc/reference/import.rst:879 msgid "" @@ -1879,12 +1882,12 @@ msgid "" "interpreter is invoked." msgstr "" "El módulo :mod:`__main__` es un caso especial relativo al sistema de " -"importación de Python. Como se señaló :ref:`elsewhere `, el " -"módulo ``__main__`` se inicializa directamente al inicio del intérprete, al " -"igual que :mod:`sys` y :mod:`builtins`. Sin embargo, a diferencia de esos " -"dos, no califica estrictamente como un módulo integrado. Esto se debe a que " -"la forma en que se inicializa ``__main__`` depende de las marcas y otras " -"opciones con las que se invoca el intérprete." +"importación de Python. Como se señaló :ref:`elsewhere `, el módulo " +"``__main__`` se inicializa directamente al inicio del intérprete, al igual " +"que :mod:`sys` y :mod:`builtins`. Sin embargo, a diferencia de esos dos, no " +"califica estrictamente como un módulo integrado. Esto se debe a que la forma " +"en que se inicializa ``__main__`` depende de las marcas y otras opciones con " +"las que se invoca el intérprete." #: ../Doc/reference/import.rst:968 msgid "__main__.__spec__" @@ -1920,7 +1923,7 @@ msgstr "" "En :ref:`los casos restantes ` ``__main__." "__spec__`` se establece en ``None``, ya que el código utilizado para " "rellenar el :mod:`__main__` no se corresponde directamente con un módulo " -"importable:" +"importable:" #: ../Doc/reference/import.rst:982 msgid "interactive prompt" @@ -2067,7 +2070,6 @@ msgid ":pep:`338` defines executing modules as scripts." msgstr ":pep:`338` define la ejecución de módulos como scripts." #: ../Doc/reference/import.rst:1042 -#, fuzzy msgid "" ":pep:`451` adds the encapsulation of per-module import state in spec " "objects. It also off-loads most of the boilerplate responsibilities of " @@ -2077,7 +2079,7 @@ msgid "" msgstr "" ":pep:`451` agrega la encapsulación del estado de importación por módulo en " "los objetos de especificación. También descargara la mayoría de las " -"responsabilidades de los cargadores en la maquinaria de importación. Estos " +"responsabilidades de los cargadores en la maquinaria de importación. Estos " "cambios permiten el desuso de varias API en el sistema de importación y " "también la adición de nuevos métodos a los buscadores y cargadores." diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 68ce1f83f0..6d1e46d210 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-15 20:43+0200\n" -"Last-Translator: Miguel Hernandez \n" +"PO-Revision-Date: 2021-08-02 19:24+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/lexical_analysis.rst:6 msgid "Lexical analysis" @@ -526,7 +527,6 @@ msgid "*Pc* - connector punctuations" msgstr "*Pc* - puntuaciones conectoras" #: ../Doc/reference/lexical_analysis.rst:318 -#, fuzzy msgid "" "*Other_ID_Start* - explicit list of characters in `PropList.txt `_ to support backwards " @@ -549,15 +549,14 @@ msgstr "" "analizan; la comparación de los identificadores se basa en NFKC." #: ../Doc/reference/lexical_analysis.rst:326 -#, fuzzy msgid "" "A non-normative HTML file listing all valid identifier characters for " "Unicode 4.1 can be found at https://www.unicode.org/Public/13.0.0/ucd/" "DerivedCoreProperties.txt" msgstr "" -"En https://www.dcl.hpi.uni-potsdam.de/home/loewis/table-3131.html se puede " -"encontrar un archivo HTML no normativo que enumera todos los caracteres de " -"identificación válidos para Unicode 4.1." +"Puede encontrar un archivo HTML no normativo que enumera todos los " +"caracteres identificadores válidos para Unicode 4.1 en https://www.unicode." +"org/Public/13.0.0/ucd/DerivedCoreProperties.txt" #: ../Doc/reference/lexical_analysis.rst:334 msgid "Keywords" @@ -1081,7 +1080,7 @@ msgstr "" "usado para concatenar expresiones de cadena al momento de la ejecución. " "Observar también que la concatenación de literales puede utilizar diferentes " "estilos de citas para cada componente (incluso mezclando cadenas *raw* y " -"cadenas de triple comillado), y los literales de cadena formateados pueden " +"cadenas con triple comilla), y los literales de cadena formateados pueden " "ser concatenados con los literales de cadena simples." #: ../Doc/reference/lexical_analysis.rst:648 @@ -1113,7 +1112,6 @@ msgstr "" "Después de la decodificación, la gramática para el contenido de la cadena es:" #: ../Doc/reference/lexical_analysis.rst:672 -#, fuzzy msgid "" "The parts of the string outside curly braces are treated literally, except " "that any doubled curly braces ``'{{'`` or ``'}}'`` are replaced with the " @@ -1125,14 +1123,16 @@ msgid "" "format specifier may also be appended, introduced by a colon ``':'``. A " "replacement field ends with a closing curly bracket ``'}'``." msgstr "" -"Las partes de la cadena fuera de llaves se tratan literalmente, excepto que " -"cualquier llave doble ``'{{'`` o ``'}}'`` se reemplaza con la llave simple " -"correspondiente. Una llave de apertura simple ``'{'``` marca un campo de " -"reemplazo, que comienza con una expresión de Python. Después de la " -"expresión, puede haber un campo de conversión, introducido por un signo de " -"exclamación ``'!'``. También se puede añadir un especificador de formato, " -"introducido por dos puntos ``':'``. Un campo de reemplazo termina con una " -"llave de cierre ``'}'``." +"Las partes de la cadena fuera de las llaves se tratan literalmente, excepto " +"que las llaves dobles ``'{{'`` o ``'}}'`` se reemplazan con la llave simple " +"correspondiente. Un solo corchete de apertura ``'{'`` marca un campo de " +"reemplazo, que comienza con una expresión de Python. Para mostrar tanto el " +"texto de la expresión como su valor después de la evaluación (útil en la " +"depuración), se puede agregar un signo igual ``'='`` después de la " +"expresión. Puede seguir un campo de conversión, introducido por un signo de " +"exclamación ``'!'``. También se puede agregar un especificador de formato, " +"introducido por dos puntos ``':'``. Un campo de reemplazo termina con un " +"corchete de cierre ``'}'``." #: ../Doc/reference/lexical_analysis.rst:682 msgid "" @@ -1174,10 +1174,17 @@ msgid "" "it defaults to the :func:`str` of the expression unless a conversion ``'!" "r'`` is declared." msgstr "" +"Cuando se proporciona el signo igual ``'='``, la salida tendrá el texto de " +"expresión, el ``'='`` y el valor evaluado. Los espacios después de la llave " +"de apertura ``'{'``, dentro de la expresión y después de ``'='`` se " +"conservan en la salida. Por defecto, el ``'='`` hace que se proporcione :" +"func:`repr` de la expresión, a menos que haya un formato especificado. " +"Cuando se especifica un formato, el valor predeterminado es :func:`str` de " +"la expresión a menos que se declare una conversión ``'!r'``." #: ../Doc/reference/lexical_analysis.rst:704 msgid "The equal sign ``'='``." -msgstr "" +msgstr "El símbolo igual ``'='``." #: ../Doc/reference/lexical_analysis.rst:707 msgid "" @@ -1205,7 +1212,6 @@ msgstr "" "valor final de toda la cadena." #: ../Doc/reference/lexical_analysis.rst:717 -#, fuzzy msgid "" "Top-level format specifiers may include nested replacement fields. These " "nested fields may include their own conversion fields and :ref:`format " @@ -1215,10 +1221,10 @@ msgid "" msgstr "" "Los especificadores de formato de nivel superior pueden incluir campos de " "reemplazo anidados. Estos campos anidados pueden incluir sus propios campos " -"de conversión y :ref:`especificadores de formato `, pero no " -"pueden incluir campos de reemplazo con nidos más profundos. El :ref:`mini-" -"lenguaje de especificadores de formato ` es el mismo que el " -"utilizado por el método de *string* `.format()`." +"de conversión y :ref:`especificadores de formato `, pero pueden " +"no incluir campos de reemplazo más anidados. El :ref:`especificador de " +"formato mini-lenguaje ` es el mismo que el utilizado por el " +"método :meth:`str.format`." #: ../Doc/reference/lexical_analysis.rst:723 msgid "" @@ -1452,6 +1458,5 @@ msgid "Footnotes" msgstr "Notas al pie de página" #: ../Doc/reference/lexical_analysis.rst:964 -#, fuzzy msgid "https://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" -msgstr "http://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" +msgstr "https://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 5c187839e3..fd1e296e15 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -11,8 +11,8 @@ 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: 2020-12-04 13:39+0100\n" -"Last-Translator: Elena He \n" +"PO-Revision-Date: 2021-08-02 19:21+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,7 +20,7 @@ msgstr "" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Language: es\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/reference/simple_stmts.rst:6 msgid "Simple statements" @@ -1457,17 +1457,17 @@ msgstr "" "variables fuera del ámbito local además del ámbito global (módulo)." #: ../Doc/reference/simple_stmts.rst:1002 -#, fuzzy msgid "" "Names listed in a :keyword:`nonlocal` statement, unlike those listed in a :" "keyword:`global` statement, must refer to pre-existing bindings in an " "enclosing scope (the scope in which a new binding should be created cannot " "be determined unambiguously)." msgstr "" -"Los nombres enumerados en una declaración :keyword:`nonlocal`, a diferencia " -"de los enumerados en una declaración :keyword:`global`, deben hacer " -"referencia a enlaces preexistentes en un ámbito adjunto (el ámbito en el que " -"se debe crear un nuevo enlace no se puede determinar de forma inequívoca)." +"Los nombres enumerados en una instrucción :keyword:`nonlocal`, a diferencia " +"de los enumerados en una instrucción :keyword:`global`, deben hacer " +"referencia a enlaces preexistentes en un ámbito adjunto (no se puede " +"determinar el ámbito en el que se debe crear un nuevo enlace " +"inequívocamente)." #: ../Doc/reference/simple_stmts.rst:1007 msgid "" diff --git a/requirements.txt b/requirements.txt index 960e3d215a..bb44d9d254 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ pip==20.1 Sphinx==2.4.4 blurb polib -pospell==1.0.5 +pospell==1.0.12 potodo powrap python-docs-theme diff --git a/scripts/completed_files.py b/scripts/completed_files.py old mode 100644 new mode 100755 diff --git a/scripts/find_in_po.py b/scripts/find_in_po.py index 523ebda427..025f4e6d8a 100755 --- a/scripts/find_in_po.py +++ b/scripts/find_in_po.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 import argparse +import functools from glob import glob +import multiprocessing import os from textwrap import fill @@ -10,26 +12,46 @@ from tabulate import tabulate # fades +REVERSE = '\033[7m' +NORMAL = '\033[m' + +def _get_file_entries(pattern, width, filename): + entries = [] + for entry in (entry for entry in polib.pofile(filename) if entry.msgstr): + match = pattern.search(entry.msgid) + if match: + add_str = entry.msgid + " ·filename: " + filename + "·" + entries.append( + [ + fill(add_str, width=width), + fill(entry.msgstr, width=width), + ] + ) + return entries + def find_in_po(pattern): - table = [] + pattern = regex.compile(pattern) try: _, columns = os.popen("stty size", "r").read().split() available_width = int(columns) // 2 - 3 except: available_width = 80 // 2 - 3 - for file in glob("**/*.po"): - pofile = polib.pofile(file) - for entry in pofile: - if entry.msgstr and regex.search(pattern, entry.msgid): - add_str = entry.msgid + " ·filename: " + file + "·" - table.append( - [ - fill(add_str, width=available_width), - fill(entry.msgstr, width=available_width), - ] - ) - print(tabulate(table, tablefmt="fancy_grid")) + # Find entries in parallel + get_file_entries = functools.partial(_get_file_entries, pattern, available_width) + pool = multiprocessing.Pool() + all_entries = pool.map(get_file_entries, glob("**/*.po")) + table = [entry for file_entries in all_entries for entry in file_entries] + + # Create table and highlight results + table = tabulate(table, tablefmt="fancy_grid") + for line in table.splitlines(): + match = pattern.search(line) + if match: + span = match.span() + line = (line[:span[0]] + REVERSE + line[span[0]:span[1]] + NORMAL + + line[span[1]:]) + print(line) def parse_args(): diff --git a/scripts/format_differences.py b/scripts/format_differences.py index 06a763743f..55a7039177 100644 --- a/scripts/format_differences.py +++ b/scripts/format_differences.py @@ -35,10 +35,10 @@ def main(): wordsid = wordsstr = list() if has_delimiters(entry.msgid): - wordsid = [word for word in entry.msgid.split() if has_delimiter(word)] + wordsid = [word for word in entry.msgid.split() if has_delimiters(word)] if has_delimiters(entry.msgstr): - wordsstr = [word for word in entry.msgstr.split() if has_delimiter(word)] + wordsstr = [word for word in entry.msgstr.split() if has_delimiters(word)] if len(wordsid) != len(wordsstr): key = pofilename.replace(PO_DIR, '') diff --git a/scripts/print_percentage.py b/scripts/print_percentage.py old mode 100644 new mode 100755 diff --git a/sphinx.po b/sphinx.po index 2aa0c73f4a..b2e5d30283 100644 --- a/sphinx.po +++ b/sphinx.po @@ -192,7 +192,7 @@ msgstr "Meta información:" #: ../Doc/tools/templates/indexcontent.html:59 msgid "Reporting bugs" -msgstr "Reportar errores (bugs)" +msgstr "Reportar errores" #: ../Doc/tools/templates/indexcontent.html:60 msgid "About the documentation" @@ -285,7 +285,7 @@ msgstr "Por favor, haga una donación." #: ../Doc/tools/templates/layout.html:121 msgid "Last updated on %(last_updated)s." -msgstr "Última actualización el %(last_updated)." +msgstr "Última actualización el %(last_updated)s." #: ../Doc/tools/templates/layout.html:122 msgid "Found a bug?" diff --git a/tutorial/classes.po b/tutorial/classes.po index a2a5c7f3a2..e300fab124 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 13:38+0200\n" -"Last-Translator: Marco Richetta \n" +"PO-Revision-Date: 2021-08-02 19:52+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/classes.rst:5 msgid "Classes" @@ -268,14 +269,13 @@ msgstr "" "dentro del espacio de nombres." #: ../Doc/tutorial/classes.rst:116 -#, fuzzy msgid "" "Although scopes are determined statically, they are used dynamically. At any " "time during execution, there are 3 or 4 nested scopes whose namespaces are " "directly accessible:" msgstr "" -"Aunque los alcances se determinan estáticamente, se usan dinámicamente. En " -"cualquier momento durante la ejecución hay por lo menos cuatro alcances " +"Aunque los alcances se determinan de forma estática, se utilizan de forma " +"dinámica. En cualquier momento durante la ejecución, hay 3 o 4 ámbitos " "anidados cuyos espacios de nombres son directamente accesibles:" #: ../Doc/tutorial/classes.rst:120 @@ -1282,7 +1282,6 @@ msgid "Generators" msgstr "Generadores" #: ../Doc/tutorial/classes.rst:852 -#, fuzzy msgid "" ":term:`Generators ` are a simple and powerful tool for creating " "iterators. They are written like regular functions but use the :keyword:" @@ -1291,12 +1290,12 @@ msgid "" "the data values and which statement was last executed). An example shows " "that generators can be trivially easy to create::" msgstr "" -"Los :term:`Generator` son una simple y poderosa herramienta para crear " -"iteradores. Se escriben como funciones regulares pero usan la sentencia :" -"keyword:`yield` cuando quieren retornar datos. Cada vez que se llama :func:" -"`next` sobre él, el generador continúa desde donde dejó (y recuerda todos " -"los valores de datos y cual sentencia fue ejecutada última). Un ejemplo " -"muestra que los generadores pueden ser muy fáciles de crear::" +":term:`Generators ` son una herramienta simple y poderosa para " +"crear iteradores. Están escritas como funciones regulares pero usan la " +"palabra clave :keyword:`yield` siempre que quieran retornar datos. Cada vez " +"que se llama a :func:`next`, el generador se reanuda donde lo dejó (recuerda " +"todos los valores de datos y qué instrucción se ejecutó por última vez). Un " +"ejemplo muestra que los generadores pueden ser trivialmente fáciles de crear:" #: ../Doc/tutorial/classes.rst:873 msgid "" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index afe435e570..3c63ef7219 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-21 14:04+0200\n" -"Last-Translator: Raúl Cumplido \n" +"PO-Revision-Date: 2021-08-02 19:51+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/controlflow.rst:5 msgid "More Control Flow Tools" @@ -340,7 +341,6 @@ msgstr "" "funciones que engloban la función local), aunque si pueden ser referenciadas." #: ../Doc/tutorial/controlflow.rst:294 -#, fuzzy msgid "" "The actual parameters (arguments) to a function call are introduced in the " "local symbol table of the called function when it is called; thus, arguments " @@ -349,11 +349,12 @@ msgid "" "another function, or calls itself recursively, a new local symbol table is " "created for that call." msgstr "" -"Los parámetros reales (argumentos) de una función se introducen en la tabla " -"de símbolos local de la función llamada cuando esta es ejecutada; así, los " -"argumentos son pasados por valor (dónde el valor es siempre una referencia a " -"un objeto, no el valor del objeto). [#]_ Cuando una función llama a otra " -"función, una nueva tabla de símbolos local es creada para esa llamada." +"Los parámetros (argumentos) reales para una llamada de función se introducen " +"en la tabla de símbolos local de la función llamada cuando se llama; por lo " +"tanto, los argumentos se pasan usando *llamada por valor* (donde el *valor* " +"es siempre un objeto *referencia*, no el valor del objeto). [#]_ Cuando una " +"función llama a otra función, o se llama a sí misma de forma recursiva, se " +"crea una nueva tabla de símbolos locales para esa llamada." #: ../Doc/tutorial/controlflow.rst:301 msgid "" @@ -362,6 +363,11 @@ msgid "" "to by that name as a user-defined function. Other names can also point to " "that same function object and can also be used to access the function::" msgstr "" +"Una definición de función asocia el nombre de la función con el objeto de " +"función en la tabla de símbolos actual. El intérprete reconoce el objeto al " +"que apunta ese nombre como una función definida por el usuario. Otros " +"nombres también pueden apuntar a ese mismo objeto de función y también se " +"pueden usar para acceder a la función:" #: ../Doc/tutorial/controlflow.rst:312 msgid "" @@ -761,13 +767,12 @@ msgstr "" "incluye ``name`` como una clave::" #: ../Doc/tutorial/controlflow.rst:661 -#, fuzzy msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" msgstr "" -"No existe una llamada que retorne ``True`` ya que la clave ``'name'`` será " -"siempre asignada al primer parámetro. Por ejemplo::" +"No hay una llamada posible que lo haga retornar ``True`` ya que la palabra " +"clave ``'name'`` siempre se vinculará al primer parámetro. Por ejemplo::" #: ../Doc/tutorial/controlflow.rst:670 msgid "" @@ -801,7 +806,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:688 msgid "As guidance:" -msgstr "A modo de guía: " +msgstr "A modo de guía:" #: ../Doc/tutorial/controlflow.rst:690 msgid "" @@ -833,9 +838,8 @@ msgid "" "For an API, use positional-only to prevent breaking API changes if the " "parameter's name is modified in the future." msgstr "" -"Para una API, utilice únicamente posicionales para prevenir cambios que " -"rompan con la compatibilidad de la API si el nombre del parámetro es " -"modificado en el futuro. " +"En el caso de una API, use solo posicional para evitar que se rompan los " +"cambios de la API si el nombre del parámetro se modifica en el futuro." #: ../Doc/tutorial/controlflow.rst:704 msgid "Arbitrary Argument Lists" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 6b466fab67..5ae6e069d1 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 13:51+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 19:49+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/datastructures.rst:5 msgid "Data Structures" @@ -673,6 +674,10 @@ msgid "" "idiomatic way to loop over unique elements of the sequence in sorted " "order. ::" msgstr "" +"El uso de :func:`set` en una secuencia elimina los elementos duplicados. El " +"uso de :func:`sorted` en combinación con :func:`set` sobre una secuencia es " +"una forma idiomática de recorrer elementos únicos de la secuencia en orden " +"ordenado. ::" #: ../Doc/tutorial/datastructures.rst:640 msgid "" diff --git a/tutorial/errors.po b/tutorial/errors.po index 20636f9b5a..628f184989 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 01:09+0200\n" -"Last-Translator: Héctor Canto \n" +"PO-Revision-Date: 2021-08-02 19:54+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/errors.rst:5 msgid "Errors and Exceptions" @@ -117,17 +118,16 @@ msgstr "" "qué la causó." #: ../Doc/tutorial/errors.rst:69 -#, fuzzy msgid "" "The preceding part of the error message shows the context where the " "exception occurred, in the form of a stack traceback. In general it contains " "a stack traceback listing source lines; however, it will not display lines " "read from standard input." msgstr "" -"La parte anterior del mensaje de error muestra el contexto donde ha sucedido " -"la excepción, en formato de *traza de error*. En general, contiene una traza " -"de error que lista líneas de código fuente; sin embargo, no mostrará líneas " -"leídas desde la entrada estándar." +"La parte anterior del mensaje de error muestra el contexto donde ocurrió la " +"excepción, en forma de seguimiento de pila. En general, contiene un " +"seguimiento de pila que enumera las líneas de origen; sin embargo, no " +"mostrará las líneas leídas desde la entrada estándar." #: ../Doc/tutorial/errors.rst:74 msgid "" @@ -158,7 +158,7 @@ msgstr "" #: ../Doc/tutorial/errors.rst:96 msgid "The :keyword:`try` statement works as follows." -msgstr "La declaración :keyword:`try` funciona de la siguiente manera:" +msgstr "La sentencia :keyword:`try` funciona de la siguiente manera." #: ../Doc/tutorial/errors.rst:98 msgid "" @@ -361,17 +361,20 @@ msgstr "" #: ../Doc/tutorial/errors.rst:273 msgid "Exception Chaining" -msgstr "" +msgstr "Encadenamiento de excepciones" #: ../Doc/tutorial/errors.rst:275 msgid "" "The :keyword:`raise` statement allows an optional :keyword:`from` which " "enables chaining exceptions. For example::" msgstr "" +"La instrucción :keyword:`raise` permite una palabra clave opcional :keyword:" +"`from` que habilita el encadenamiento de excepciones. Por ejemplo::" #: ../Doc/tutorial/errors.rst:281 msgid "This can be useful when you are transforming exceptions. For example::" msgstr "" +"Esto puede resultar útil cuando está transformando excepciones. Por ejemplo::" #: ../Doc/tutorial/errors.rst:302 msgid "" @@ -379,11 +382,17 @@ msgid "" "an :keyword:`except` or :keyword:`finally` section. Exception chaining can " "be disabled by using ``from None`` idiom:" msgstr "" +"El encadenamiento de excepciones ocurre automáticamente cuando se genera una " +"excepción dentro de una sección palabra clave :keyword:`except` o :keyword:" +"`finally`. El encadenamiento de excepciones se puede deshabilitar usando el " +"modismo ``from None``:" #: ../Doc/tutorial/errors.rst:315 msgid "" "For more information about chaining mechanics, see :ref:`bltin-exceptions`." msgstr "" +"Para obtener más información sobre la mecánica del encadenamiento, consulte :" +"ref:`bltin-exceptions`." #: ../Doc/tutorial/errors.rst:321 msgid "User-defined Exceptions" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index d65556da43..17e7bd816a 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -4,18 +4,20 @@ # docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-02 19:49+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/floatingpoint.rst:9 msgid "Floating Point Arithmetic: Issues and Limitations" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 6f902171b3..47cfda9c51 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 14:34+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 19:48+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/inputoutput.rst:5 msgid "Input and Output" @@ -235,18 +236,17 @@ msgstr "" "Se pueden combinar arbitrariamente argumentos posicionales y nombrados::" #: ../Doc/tutorial/inputoutput.rst:172 -#, fuzzy msgid "" "If you have a really long format string that you don't want to split up, it " "would be nice if you could reference the variables to be formatted by name " "instead of by position. This can be done by simply passing the dict and " "using square brackets ``'[]'`` to access the keys. ::" msgstr "" -"Si tenés una cadena de formateo realmente larga que no querés separar, " -"podría ser bueno que puedas hacer referencia a las variables a ser " -"formateadas por el nombre en vez de la posición. Esto puede hacerse " -"simplemente pasando el diccionario y usando corchetes ``'[]'`` para acceder " -"a las claves ::" +"Si tiene una cadena de caracteres de formato realmente larga que no desea " +"dividir, sería bueno si pudiera hacer referencia a las variables que se " +"formatearán por nombre en lugar de por posición. Esto se puede hacer " +"simplemente pasando el dict y usando corchetes ``'[]'`` para acceder a las " +"claves. ::" #: ../Doc/tutorial/inputoutput.rst:182 msgid "" @@ -295,7 +295,7 @@ msgid "" "`print` works: it always adds spaces between its arguments.)" msgstr "" "(Resaltar que el espacio existente entre cada columna es añadido debido a " -"como funciona :func:`print`: siempre añade espacios entre sus argumentos)." +"como funciona :func:`print`: siempre añade espacios entre sus argumentos.)" #: ../Doc/tutorial/inputoutput.rst:237 msgid "" @@ -338,6 +338,11 @@ msgid "" "zero or more elements of ``values``. This operation is commonly known as " "string interpolation. For example::" msgstr "" +"El operador % (módulo) también se puede utilizar para formatear cadenas de " +"caracteres. Dados los ``'cadena de caracteres' % valores``, las instancias " +"de ``%`` en ``cadena de caracteres`` se reemplazan con cero o más elementos " +"de ``valores``. Esta operación se conoce comúnmente como interpolación de " +"cadenas. Por ejemplo::" #: ../Doc/tutorial/inputoutput.rst:269 msgid "" @@ -433,6 +438,9 @@ msgid "" "close()`` to close the file and immediately free up any system resources " "used by it." msgstr "" +"Si no está utilizando la palabra clave :keyword:`with`, entonces debe llamar " +"a ``f.close()`` para cerrar el archivo y liberar inmediatamente los recursos " +"del sistema utilizados por él." #: ../Doc/tutorial/inputoutput.rst:335 msgid "" @@ -440,6 +448,10 @@ msgid "" "``f.close()`` **might** result in the arguments of ``f.write()`` not being " "completely written to the disk, even if the program exits successfully." msgstr "" +"Al llamar a ``f.write()`` sin usar la palabra clave :keyword::`!with` o " +"llamar a ``f.close()`` **podría** dar como resultado los argumentos de ``f." +"write()`` no se escribe completamente en el disco, incluso si el programa se " +"cierra correctamente." #: ../Doc/tutorial/inputoutput.rst:343 msgid "" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index e0e3fa9134..e2cc8fdc63 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -4,18 +4,20 @@ # docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-02 19:46+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/interactive.rst:5 msgid "Interactive Input Editing and History Substitution" diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index bcbba82a3c..775ea8f204 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-05-09 14:41+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 19:45+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/interpreter.rst:5 msgid "Using the Python Interpreter" @@ -30,17 +31,16 @@ msgid "Invoking the Interpreter" msgstr "Invocando al intérprete" #: ../Doc/tutorial/interpreter.rst:13 -#, fuzzy msgid "" "The Python interpreter is usually installed as :file:`/usr/local/bin/" "python3.9` on those machines where it is available; putting :file:`/usr/" "local/bin` in your Unix shell's search path makes it possible to start it by " "typing the command:" msgstr "" -"Por lo general, el intérprete de Python se instala en :file:`/usr/local/bin/" -"python3.8` en las máquinas dónde está disponible; poner :file:`/usr/local/" -"bin` en el camino de búsqueda de tu intérprete de comandos Unix hace posible " -"iniciarlo ingresando la orden:" +"El intérprete de Python generalmente se instala como :file:`/usr/local/bin/" +"python3.9` en aquellas máquinas donde está disponible; poner :file:`/usr/" +"local/bin` en la ruta de búsqueda de su shell de Unix hace posible iniciarlo " +"escribiendo el comando:" #: ../Doc/tutorial/interpreter.rst:21 msgid "" @@ -55,7 +55,6 @@ msgstr "" "(Por ejemplo, :file:`/usr/local/python` es una alternativa popular)." #: ../Doc/tutorial/interpreter.rst:26 -#, fuzzy msgid "" "On Windows machines where you have installed Python from the :ref:`Microsoft " "Store `, the :file:`python3.9` command will be available. If " @@ -63,11 +62,11 @@ msgid "" "file:`py` command. See :ref:`setting-envvars` for other ways to launch " "Python." msgstr "" -"En ordenadores con Windows dónde Python se encuentra instalado desde la :ref:" -"`Microsoft Store `, el comando :file:`python3.8` estará " -"disponible. Si tienes el :ref:`py.exe launcher ` instalado, puedes " -"utilizar el comando :file:`py`. Ver :ref:`setting-envvars` para otras formas " -"de ejecutar Python." +"En máquinas Windows en las que haya instalado Python desde :ref:`Microsoft " +"Store `, el comando :file:`python3.9` estará disponible. Si " +"tiene instalado :ref:`py.exe launcher `, puede usar el comando :" +"file:`py`. Consulte :ref:`setting-envvars` para conocer otras formas de " +"iniciar Python." #: ../Doc/tutorial/interpreter.rst:31 msgid "" diff --git a/tutorial/venv.po b/tutorial/venv.po index 161f19b158..de2f8a96fd 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -11,8 +11,8 @@ 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: 2020-05-09 14:05+0200\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 19:44+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/tutorial/venv.rst:6 msgid "Virtual Environments and Packages" @@ -157,7 +157,7 @@ msgid "" msgstr "" "(Este script está escrito para la consola bash. Si usas las consolas :" "program:`csh` or :program:`fish`, hay scripts alternativos ``activate.csh`` " -"y ``activate.fish`` que deberá usar en su lugar)." +"y ``activate.fish`` que deberá usar en su lugar.)" #: ../Doc/tutorial/venv.rst:74 msgid "" diff --git a/using/cmdline.po b/using/cmdline.po index 03cac71cf0..2735803ff5 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-08-28 09:36-0400\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-02 20:02+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/using/cmdline.rst:9 msgid "Command line and environment" @@ -749,6 +750,8 @@ msgid "" "``-X oldparser``: enable the traditional LL(1) parser. See also :envvar:" "`PYTHONOLDPARSER` and :pep:`617`." msgstr "" +"``-X oldparser``: habilita el analizador tradicional LL(1). Vea también :" +"envvar:`PYTHONOLDPARSER` y :pep:`617`." #: ../Doc/using/cmdline.rst:431 msgid "" @@ -796,6 +799,9 @@ msgid "" "``-X dev``: enable :ref:`Python Development Mode `, introducing " "additional runtime checks that are too expensive to be enabled by default." msgstr "" +"``-X dev``: habilita :ref:`Python Development Mode `, introduciendo " +"comprobaciones de tiempo de ejecución adicionales que son demasiado caras " +"para habilitarse de forma predeterminada." #: ../Doc/using/cmdline.rst:447 msgid "" @@ -861,16 +867,16 @@ msgid "" "Using ``-X dev`` option, check *encoding* and *errors* arguments on string " "encoding and decoding operations." msgstr "" +"Usando la opción ``-X dev``, verifique *encoding* y *errors* argumentos en " +"las operaciones de codificación y decodificación de cadenas de caracteres." #: ../Doc/using/cmdline.rst:481 -#, fuzzy msgid "The ``-X showalloccount`` option has been removed." -msgstr "La opción ``-X showalloccount``." +msgstr "Se ha eliminado la opción ``-X showalloccount``." #: ../Doc/using/cmdline.rst:484 -#, fuzzy msgid "The ``-X oldparser`` option." -msgstr "La opción ``-VV``." +msgstr "La opción ``-X analizador antiguo``." #: ../Doc/using/cmdline.rst:488 msgid "Options you shouldn't use" @@ -968,13 +974,12 @@ msgstr "" "Python como la variable :data:`sys.path`." #: ../Doc/using/cmdline.rst:543 -#, fuzzy msgid "" "If this is set to a non-empty string, it overrides the :data:`sys." "platlibdir` value." msgstr "" -"Si se establece en una cadena no vacía, equivale a especificar la opción :" -"option:`-i`." +"Si se establece en una cadena no vacía, anula el valor :data:`sys." +"platlibdir`." #: ../Doc/using/cmdline.rst:551 msgid "" @@ -1050,16 +1055,15 @@ msgstr "" "d` varias veces." #: ../Doc/using/cmdline.rst:592 -#, fuzzy msgid "" "If this is set to a non-empty string, enable the traditional LL(1) parser." msgstr "" -"Si se establece en una cadena no vacía, equivale a especificar la opción :" -"option:`-u`." +"Si se establece en una cadena no vacía, habilite el analizador tradicional " +"LL(1)." #: ../Doc/using/cmdline.rst:594 msgid "See also the :option:`-X` ``oldparser`` option and :pep:`617`." -msgstr "" +msgstr "Vea también la opción :option:`-X` ``oldparser`` y :pep:`617`." #: ../Doc/using/cmdline.rst:601 msgid "" @@ -1535,7 +1539,6 @@ msgstr "" "ejecución de Python." #: ../Doc/using/cmdline.rst:885 -#, fuzzy msgid "" "Also note that even when locale coercion is disabled, or when it fails to " "find a suitable target locale, :envvar:`PYTHONUTF8` will still activate by " @@ -1543,12 +1546,12 @@ msgid "" "order to force the interpreter to use ``ASCII`` instead of ``UTF-8`` for " "system interfaces." msgstr "" -"Tenga en cuenta también que incluso cuando la coerción de configuración " -"local está deshabilitada, o cuando no encuentra una configuración local de " -"destino adecuada, :envvar:`PYTHONUTF8` seguirá activando de forma " -"predeterminada en las configuraciones regionales basadas en ASCII heredadas. " -"Ambas características deben ser inhabilitadas para forzar al intérprete a " -"utilizar ``ASCII`` en lugar de ``UTF-8`` para las interfaces del sistema." +"También tenga en cuenta que incluso cuando la coerción de configuración " +"regional está desactivada, o cuando no puede encontrar una configuración " +"regional de destino adecuada, :envvar:`PYTHONUTF8` se activará de forma " +"predeterminada en las configuraciones regionales heredadas basadas en ASCII. " +"Ambas funciones deben estar deshabilitadas para obligar al intérprete a usar " +"``ASCII`` en lugar de ``UTF-8`` para las interfaces del sistema." #: ../Doc/using/cmdline.rst:892 msgid ":ref:`Availability `: \\*nix." @@ -1559,14 +1562,15 @@ msgid "See :pep:`538` for more details." msgstr "Consulte :pep:`538` para obtener más detalles." #: ../Doc/using/cmdline.rst:899 -#, fuzzy msgid "" "If this environment variable is set to a non-empty string, enable :ref:" "`Python Development Mode `, introducing additional runtime checks " "that are too expensive to be enabled by default." msgstr "" -"Si esta variable de entorno se establece en una cadena no vacía, habilite el " -"\"modo de desarrollo\" de CPython. Consulte la opción :option:`-X` ``dev``." +"Si esta variable de entorno se establece en una cadena no vacía, habilite :" +"ref:`Python Development Mode `, introduciendo comprobaciones de " +"tiempo de ejecución adicionales que son demasiado caras para habilitarse de " +"forma predeterminada." #: ../Doc/using/cmdline.rst:907 msgid "" diff --git a/using/mac.po b/using/mac.po index 6055d1dea5..a0579ef3bd 100644 --- a/using/mac.po +++ b/using/mac.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-07-07 08:51-0500\n" -"Last-Translator: Juan Alegría \n" +"PO-Revision-Date: 2021-08-02 19:57+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_CO\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/using/mac.rst:6 msgid "Using Python on a Macintosh" @@ -73,6 +74,10 @@ msgid "" "Python distributions; and PythonLauncher, which handles double-clicking " "Python scripts from the Finder." msgstr "" +"Una carpeta :file:`Python 3.9` en su carpeta :file:`Applications`. Aquí " +"encontrará IDLE, el entorno de desarrollo que es una parte estándar de las " +"distribuciones oficiales de Python; y PythonLauncher, que se encarga de " +"hacer doble clic en los scripts de Python desde el Finder." #: ../Doc/using/mac.rst:33 msgid "" @@ -210,11 +215,10 @@ msgstr "" "comenzar tales scripts." #: ../Doc/using/mac.rst:95 -#, fuzzy msgid "" "With Python 3.9, you can use either :program:`python` or :program:`pythonw`." msgstr "" -"Con Python 3.8, usted podrá utilizar ya sea :program:`python` o :program:" +"Con Python 3.9, usted podrá utilizar ya sea :program:`python` o :program:" "`pythonw`." #: ../Doc/using/mac.rst:99 diff --git a/using/unix.po b/using/unix.po index b251d17415..17014ae892 100644 --- a/using/unix.po +++ b/using/unix.po @@ -165,7 +165,7 @@ msgid "" "since it only installs :file:`{exec_prefix}/bin/python{version}`." msgstr "" "``make install`` puede sobreescribir o enmascarar el binario :file:" -"`python3`. Por lo tanto se recomienda ``make altinstall`` en lugar de``make " +"`python3`. Por lo tanto se recomienda ``make altinstall`` en lugar de ``make " "install`` debido a que sólo instala :file:`{exec_prefix}/bin/python{version}" "`." diff --git a/using/windows.po b/using/windows.po index 0e40ea4fcc..47a455c041 100644 --- a/using/windows.po +++ b/using/windows.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2021-02-27 14:06-0300\n" -"Last-Translator: Federico Zuccolo \n" +"PO-Revision-Date: 2021-08-02 19:59+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/using/windows.rst:7 msgid "Using Python on Windows" @@ -62,6 +63,11 @@ msgid "" "that Python |version| supports Windows 8.1 and newer. If you require Windows " "7 support, please install Python 3.8." msgstr "" +"Como se especifica en :pep:`11`, una versión de Python solo admite una " +"plataforma Windows, mientras que Microsoft considera la plataforma con " +"soporte extendido. Esto significa que Python | versión | es compatible con " +"Windows 8.1 y versiones posteriores. Si necesita compatibilidad con Windows " +"7, instale Python 3.8." #: ../Doc/using/windows.rst:29 msgid "" @@ -252,7 +258,6 @@ msgstr "" "producirían errores." #: ../Doc/using/windows.rst:104 -#, fuzzy msgid "" "In the latest versions of Windows, this limitation can be expanded to " "approximately 32,000 characters. Your administrator will need to activate " @@ -260,23 +265,20 @@ msgid "" "``1`` in the registry key ``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet" "\\Control\\FileSystem``." msgstr "" -"En las últimas versiones de Windows, este límite puede ser extendido a " -"aproximadamente 32,000 caracteres. El administrador tendrá que activar la " -"directiva de grupo \"Enable Win32 long paths\", o establecer el valor del " -"registro ``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" -"\\FileSystem@LongPathsEnabled`` a ``1``." +"En las últimas versiones de Windows, esta limitación se puede ampliar a " +"aproximadamente 32.000 caracteres. Su administrador deberá activar la " +"política de grupo \"Habilitar rutas largas de Win32\" o establecer " +"``LongPathsEnabled`` en ``1`` en la clave de registro ``HKEY_LOCAL_MACHINE" +"\\SYSTEM\\CurrentControlSet\\Control\\FileSystem``." #: ../Doc/using/windows.rst:110 -#, fuzzy msgid "" "This allows the :func:`open` function, the :mod:`os` module and most other " "path functionality to accept and return paths longer than 260 characters." msgstr "" "Esto permite que la función :func:`open`, el módulo :mod:`os` y la mayoría " -"de las demás funciones de ruta acepten y retornen rutas de más de 260 " -"caracteres cuando se usan cadenas. (El uso de bytes como rutas está en " -"desuso en Windows, y esta característica no está disponible cuando se usan " -"bytes.)" +"de las demás funciones de ruta acepten y devuelvan rutas de más de 260 " +"caracteres." #: ../Doc/using/windows.rst:113 msgid "After changing the above option, no further configuration is required." @@ -664,7 +666,6 @@ msgstr "" "número de instalaciones es muy útil tener una copia en la caché local." #: ../Doc/using/windows.rst:257 -#, fuzzy msgid "" "Execute the following command from Command Prompt to download all possible " "required files. Remember to substitute ``python-3.9.0.exe`` for the actual " @@ -672,9 +673,9 @@ msgid "" "avoid collisions between files with the same name." msgstr "" "Ejecute el siguiente comando desde el símbolo del sistema para descargar " -"todos los posibles archivos requeridos. Recuerde reemplazar ``Python-3.8.0." -"exe`` por el nombre real del instalador y crear una estructura de " -"directorios propia para evitar colisiones entre archivos del mismo nombre." +"todos los archivos necesarios posibles. Recuerde sustituir ``python-3.9.0." +"exe`` por el nombre real de su instalador y crear diseños en sus propios " +"directorios para evitar colisiones entre archivos con el mismo nombre." #: ../Doc/using/windows.rst:266 msgid "" @@ -752,7 +753,7 @@ msgstr "" "Para instalar el paquete, asegúrate de tener las últimas actualizaciones de " "Windows 10 y busca \"Python |version|\" en Microsoft Store. Comprueba que la " "aplicación que seleccionas es una publicación de la Python Software " -"Foundation e instálala." +"Foundation y procede a instalarla." #: ../Doc/using/windows.rst:302 msgid "" @@ -861,6 +862,11 @@ msgid "" "scenes `_" msgstr "" +"Para obtener más detalles sobre la base técnica de estas limitaciones, " +"consulte la documentación de Microsoft sobre aplicaciones empaquetadas de " +"plena confianza, actualmente disponible en `docs.microsoft.com/en-us/windows/" +"msix/desktop/desktop-to-uwp-behind-the-scenes `_" #: ../Doc/using/windows.rst:351 msgid "The nuget.org packages" 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." diff --git a/whatsnew/2.1.po b/whatsnew/2.1.po index 36d0ccce05..9cbd4605bf 100644 --- a/whatsnew/2.1.po +++ b/whatsnew/2.1.po @@ -6,49 +6,62 @@ # 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-07 09:59+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.1.rst:3 msgid "What's New in Python 2.1" -msgstr "" +msgstr "Novedades de Python 2.1" #: ../Doc/whatsnew/2.1.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.1.rst:5 msgid "A.M. Kuchling" -msgstr "" +msgstr "A.M. Kuchling" #: ../Doc/whatsnew/2.1.rst:13 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/whatsnew/2.1.rst:15 msgid "" -"This article explains the new features in Python 2.1. While there aren't as " +"This article explains the new features in Python 2.1While there aren't as " "many changes in 2.1 as there were in Python 2.0, there are still some " -"pleasant surprises in store. 2.1 is the first release to be steered through " +"pleasant surprises in store2.1 is the first release to be steered through " "the use of Python Enhancement Proposals, or PEPs, so most of the sizable " "changes have accompanying PEPs that provide more complete documentation and " -"a design rationale for the change. This article doesn't attempt to document " +"a design rationale for the changeThis article doesn't attempt to document " "the new features completely, but simply provides an overview of the new " "features for Python programmers. Refer to the Python 2.1 documentation, or " "to the specific PEP, for more details about any new feature that " "particularly interests you." msgstr "" +"Este artículo explica las nuevas características de Python 2.1. Aunque no " +"hay tantos cambios en 2.1 como en Python 2.0, todavía hay algunas sorpresas " +"agradables. La versión 2.1 es la primera que se dirige mediante el uso de " +"Propuestas de Mejora de Python, o PEPs, por lo que la mayoría de los cambios " +"importantes tienen PEPs adjuntos que proporcionan una documentación más " +"completa y una justificación de diseño para el cambio. Este artículo no " +"intenta documentar las nuevas características por completo, sino que " +"simplemente proporciona una visión general de las nuevas características " +"para los programadores de Python. Consulta la documentación de Python 2.1, o " +"el PEP específico, para obtener más detalles sobre cualquier nueva " +"característica que te interese particularmente." #: ../Doc/whatsnew/2.1.rst:25 msgid "" @@ -57,53 +70,83 @@ msgid "" "the first release to come out at this faster pace, with the first alpha " "appearing in January, 3 months after the final version of 2.0 was released." msgstr "" +"Un objetivo reciente del equipo de desarrollo de Python ha sido acelerar el " +"ritmo de las nuevas versiones, con una nueva versión cada 6 a 9 meses. La " +"versión 2.1 es la primera que sale a este ritmo más rápido, con la primera " +"alfa que apareció en enero, 3 meses después de que se publicara la versión " +"final de la 2.0." #: ../Doc/whatsnew/2.1.rst:30 msgid "The final release of Python 2.1 was made on April 17, 2001." -msgstr "" +msgstr "La versión final de Python 2.1 se realizó el 17 de abril de 2001." #: ../Doc/whatsnew/2.1.rst:36 msgid "PEP 227: Nested Scopes" -msgstr "" +msgstr "PEP 227: Ámbitos anidados" #: ../Doc/whatsnew/2.1.rst:38 msgid "" -"The largest change in Python 2.1 is to Python's scoping rules. In Python " -"2.0, at any given time there are at most three namespaces used to look up " -"variable names: local, module-level, and the built-in namespace. This often " -"surprised people because it didn't match their intuitive expectations. For " +"The largest change in Python 2.1 is to Python's scoping rulesIn Python 2.0, " +"at any given time there are at most three namespaces used to look up " +"variable names: local, module-level, and the built-in namespaceThis often " +"surprised people because it didn't match their intuitive expectationsFor " "example, a nested recursive function definition doesn't work::" msgstr "" +"El mayor cambio en Python 2.1 es el de las reglas de alcance de Python. En " +"Python 2.0, en cualquier momento hay como máximo tres espacios de nombres " +"utilizados para buscar nombres de variables: local, a nivel de módulo y el " +"espacio de nombres incorporado. Esto a menudo sorprendía a la gente porque " +"no coincidía con sus expectativas intuitivas. Por ejemplo, una definición de " +"función recursiva anidada no funciona::" #: ../Doc/whatsnew/2.1.rst:51 msgid "" "The function :func:`g` will always raise a :exc:`NameError` exception, " "because the binding of the name ``g`` isn't in either its local namespace or " -"in the module-level namespace. This isn't much of a problem in practice " -"(how often do you recursively define interior functions like this?), but " -"this also made using the :keyword:`lambda` expression clumsier, and this was " -"a problem in practice. In code which uses :keyword:`lambda` you can often " -"find local variables being copied by passing them as the default values of " +"in the module-level namespaceThis isn't much of a problem in practice (how " +"often do you recursively define interior functions like this?), but this " +"also made using the :keyword:`lambda` expression clumsier, and this was a " +"problem in practice. In code which uses :keyword:`lambda` you can often find " +"local variables being copied by passing them as the default values of " "arguments. ::" msgstr "" +"La función :func:`g` siempre lanzará una excepción :exc:`NameError`, porque " +"el enlace del nombre ``g`` no está ni en su espacio de nombres local ni en " +"el espacio de nombres a nivel de módulo. Esto no es un gran problema en la " +"práctica (¿con qué frecuencia se definen recursivamente funciones interiores " +"como ésta?), pero esto también hacía más torpe el uso de la expresión :" +"keyword:`lambda`, y esto era un problema en la práctica. En el código que " +"utiliza :keyword:`lambda` a menudo se pueden encontrar variables locales que " +"se copian al pasarlas como valores por defecto de los argumentos. ::" #: ../Doc/whatsnew/2.1.rst:65 msgid "" "The readability of Python code written in a strongly functional style " "suffers greatly as a result." msgstr "" +"La legibilidad del código Python escrito en un estilo fuertemente funcional " +"sufre mucho como resultado." #: ../Doc/whatsnew/2.1.rst:68 msgid "" "The most significant change to Python 2.1 is that static scoping has been " -"added to the language to fix this problem. As a first effect, the " -"``name=name`` default argument is now unnecessary in the above example. Put " +"added to the language to fix this problemAs a first effect, the " +"``name=name`` default argument is now unnecessary in the above examplePut " "simply, when a given variable name is not assigned a value within a function " "(by an assignment, or the :keyword:`def`, :keyword:`class`, or :keyword:" "`import` statements), references to the variable will be looked up in the " -"local namespace of the enclosing scope. A more detailed explanation of the " +"local namespace of the enclosing scopeA more detailed explanation of the " "rules, and a dissection of the implementation, can be found in the PEP." msgstr "" +"El cambio más significativo de Python 2.1 es que se ha añadido al lenguaje " +"el ámbito estático para solucionar este problema. Como primer efecto, el " +"argumento por defecto ``name=name`` es ahora innecesario en el ejemplo " +"anterior. En pocas palabras, cuando a un nombre de variable dado no se le " +"asigna un valor dentro de una función (mediante una asignación, o las " +"sentencias :keyword:`def`, :keyword:`class`, o :keyword:`import`), las " +"referencias a la variable se buscarán en el espacio de nombres local del " +"ámbito que la rodea. Puede encontrar una explicación más detallada de las " +"reglas y una disección de la implementación en el PEP." #: ../Doc/whatsnew/2.1.rst:77 msgid "" @@ -113,26 +156,46 @@ msgid "" "rather unlikely though, since such code would have been pretty confusing to " "read in the first place." msgstr "" +"Este cambio puede causar algunos problemas de compatibilidad para el código " +"en el que el mismo nombre de variable se utiliza tanto a nivel de módulo " +"como de variable local dentro de una función que contiene otras definiciones " +"de función. Sin embargo, esto parece bastante improbable, ya que dicho " +"código habría sido bastante confuso de leer en primer lugar." #: ../Doc/whatsnew/2.1.rst:83 msgid "" "One side effect of the change is that the ``from module import *`` and " "``exec`` statements have been made illegal inside a function scope under " -"certain conditions. The Python reference manual has said all along that " -"``from module import *`` is only legal at the top level of a module, but the " -"CPython interpreter has never enforced this before. As part of the " +"certain conditionsThe Python reference manual has said all along that ``from " +"module import *`` is only legal at the top level of a module, but the " +"CPython interpreter has never enforced this beforeAs part of the " "implementation of nested scopes, the compiler which turns Python source into " "bytecodes has to generate different code to access variables in a containing " -"scope. ``from module import *`` and ``exec`` make it impossible for the " +"scope``from module import *`` and ``exec`` make it impossible for the " "compiler to figure this out, because they add names to the local namespace " "that are unknowable at compile time. Therefore, if a function contains " "function definitions or :keyword:`lambda` expressions with free variables, " "the compiler will flag this by raising a :exc:`SyntaxError` exception." msgstr "" +"Un efecto secundario del cambio es que las sentencias ``from module import " +"*`` y ``exec`` se han hecho ilegales dentro del ámbito de una función bajo " +"ciertas condiciones. El manual de referencia de Python ha dicho todo el " +"tiempo que ``from module import *`` sólo es legal en el nivel superior de un " +"módulo, pero el intérprete de CPython nunca ha aplicado esto antes. Como " +"parte de la implementación de los ámbitos anidados, el compilador que " +"convierte el código fuente de Python en bytecodes tiene que generar un " +"código diferente para acceder a las variables de un ámbito contenedor. Los " +"códigos ``from module import *`` y ``exec`` hacen que el compilador no pueda " +"averiguar esto, porque añaden nombres al espacio de nombres local que son " +"desconocidos en tiempo de compilación. Por lo tanto, si una función contiene " +"definiciones de funciones o expresiones :keyword:`lambda` con variables " +"libres, el compilador lo señalará lanzando una excepción :exc:`SyntaxError`." #: ../Doc/whatsnew/2.1.rst:96 msgid "To make the preceding explanation a bit clearer, here's an example::" msgstr "" +"Para que la explicación anterior quede un poco más clara, he aquí un " +"ejemplo::" #: ../Doc/whatsnew/2.1.rst:105 msgid "" @@ -140,6 +203,9 @@ msgid "" "would define a new local variable named ``x`` whose value should be accessed " "by :func:`g`." msgstr "" +"La línea 4 que contiene la sentencia ``exec`` es un error de sintaxis, ya " +"que ``exec`` definiría una nueva variable local llamada ``x`` cuyo valor " +"debería ser accedido por :func:`g`." #: ../Doc/whatsnew/2.1.rst:109 msgid "" @@ -147,67 +213,94 @@ msgid "" "most Python code (and when it is used, it's often a sign of a poor design " "anyway)." msgstr "" +"Esto no debería ser una gran limitación, ya que ``exec`` rara vez se utiliza " +"en la mayoría del código de Python (y cuando se utiliza, a menudo es un " +"signo de un mal diseño de todos modos)." #: ../Doc/whatsnew/2.1.rst:113 msgid "" "Compatibility concerns have led to nested scopes being introduced gradually; " "in Python 2.1, they aren't enabled by default, but can be turned on within a " -"module by using a future statement as described in :pep:`236`. (See the " +"module by using a future statement as described in :pep:`236`(See the " "following section for further discussion of :pep:`236`.) In Python 2.2, " "nested scopes will become the default and there will be no way to turn them " "off, but users will have had all of 2.1's lifetime to fix any breakage " "resulting from their introduction." msgstr "" +"Los problemas de compatibilidad han llevado a que los ámbitos anidados se " +"introduzcan gradualmente; en Python 2.1, no están habilitados por defecto, " +"pero pueden activarse dentro de un módulo utilizando una sentencia future " +"como se describe en :pep:`236`. (En Python 2.2, los ámbitos anidados se " +"convertirán en el valor por defecto y no habrá forma de desactivarlos, pero " +"los usuarios habrán tenido toda la vida de la versión 2.1 para arreglar " +"cualquier rotura resultante de su introducción." #: ../Doc/whatsnew/2.1.rst:123 msgid ":pep:`227` - Statically Nested Scopes" -msgstr "" +msgstr ":pep:`227` - Ámbitos anidados estáticamente" #: ../Doc/whatsnew/2.1.rst:124 msgid "Written and implemented by Jeremy Hylton." -msgstr "" +msgstr "Escrito e implementado por Jeremy Hylton." #: ../Doc/whatsnew/2.1.rst:130 msgid "PEP 236: __future__ Directives" -msgstr "" +msgstr "PEP 236: Directivas __future__" #: ../Doc/whatsnew/2.1.rst:132 msgid "" "The reaction to nested scopes was widespread concern about the dangers of " "breaking code with the 2.1 release, and it was strong enough to make the " -"Pythoneers take a more conservative approach. This approach consists of " +"Pythoneers take a more conservative approachThis approach consists of " "introducing a convention for enabling optional functionality in release N " "that will become compulsory in release N+1." msgstr "" +"La reacción a los ámbitos anidados fue una preocupación generalizada sobre " +"los peligros de romper el código con la versión 2.1, y fue lo " +"suficientemente fuerte como para que los Pythonistas adoptaran un enfoque " +"más conservador. Este enfoque consiste en introducir una convención para " +"habilitar una funcionalidad opcional en la versión N que se convertirá en " +"obligatoria en la versión N+1." #: ../Doc/whatsnew/2.1.rst:138 msgid "" "The syntax uses a ``from...import`` statement using the reserved module " -"name :mod:`__future__`. Nested scopes can be enabled by the following " +"name :mod:`__future__`Nested scopes can be enabled by the following " "statement::" msgstr "" +"La sintaxis utiliza una sentencia ``from...import`` utilizando el nombre de " +"módulo reservado :mod:`__future__`. Los ámbitos anidados pueden habilitarse " +"mediante la siguiente sentencia::" #: ../Doc/whatsnew/2.1.rst:143 msgid "" "While it looks like a normal :keyword:`import` statement, it's not; there " "are strict rules on where such a future statement can be put. They can only " "be at the top of a module, and must precede any Python code or regular :" -"keyword:`!import` statements. This is because such statements can affect " -"how the Python bytecode compiler parses code and generates bytecode, so they " +"keyword:`!import` statementsThis is because such statements can affect how " +"the Python bytecode compiler parses code and generates bytecode, so they " "must precede any statement that will result in bytecodes being produced." msgstr "" +"Aunque parece una sentencia :keyword:`import` normal, no lo es; hay reglas " +"estrictas sobre dónde se puede poner una sentencia future. Sólo pueden estar " +"en la parte superior de un módulo, y deben preceder a cualquier código " +"Python o a las sentencias :keyword:`!import` normales. Esto se debe a que " +"tales declaraciones pueden afectar a la forma en que el compilador de código " +"de bytes de Python analiza el código y genera el código de bytes, por lo que " +"deben preceder a cualquier declaración que dé lugar a la producción de " +"códigos de bytes." #: ../Doc/whatsnew/2.1.rst:153 msgid ":pep:`236` - Back to the :mod:`__future__`" -msgstr "" +msgstr ":pep:`236` - De vuelta al :mod:`__future__`" #: ../Doc/whatsnew/2.1.rst:154 msgid "Written by Tim Peters, and primarily implemented by Jeremy Hylton." -msgstr "" +msgstr "Escrito por Tim Peters, y ejecutado principalmente por Jeremy Hylton." #: ../Doc/whatsnew/2.1.rst:160 msgid "PEP 207: Rich Comparisons" -msgstr "" +msgstr "PEP 207: Comparaciones Enriquecidas" #: ../Doc/whatsnew/2.1.rst:162 msgid "" @@ -216,223 +309,306 @@ msgid "" "implement a :meth:`__cmp__` method that was given two instances of a class, " "and could only return 0 if they were equal or +1 or -1 if they weren't; the " "method couldn't raise an exception or return anything other than a Boolean " -"value. Users of Numeric Python often found this model too weak and " +"valueUsers of Numeric Python often found this model too weak and " "restrictive, because in the number-crunching programs that numeric Python is " "used for, it would be more useful to be able to perform elementwise " "comparisons of two matrices, returning a matrix containing the results of a " -"given comparison for each element. If the two matrices are of different " -"sizes, then the compare has to be able to raise an exception to signal the " -"error." -msgstr "" +"given comparison for each elementIf the two matrices are of different sizes, " +"then the compare has to be able to raise an exception to signal the error." +msgstr "" +"En versiones anteriores, el soporte de Python para implementar comparaciones " +"en clases definidas por el usuario y tipos de extensión era bastante simple. " +"Las clases podían implementar un método :meth:`__cmp__` al que se le daban " +"dos instancias de una clase, y sólo podía retornar 0 si eran iguales o +1 o " +"-1 si no lo eran; el método no podía lanzar una excepción ni retornar nada " +"más que un valor booleano. Los usuarios de Python Numérico a menudo " +"encontraban este modelo demasiado débil y restrictivo, porque en los " +"programas de cálculo de números para los que se utiliza Numeric Python, " +"sería más útil poder realizar comparaciones por elementos de dos matrices, " +"retornando una matriz que contenga los resultados de una comparación dada " +"para cada elemento. Si las dos matrices son de diferente tamaño, entonces el " +"comparador tiene que ser capaz de lanzar una excepción para señalar el error." #: ../Doc/whatsnew/2.1.rst:174 msgid "" "In Python 2.1, rich comparisons were added in order to support this need. " "Python classes can now individually overload each of the ``<``, ``<=``, " -"``>``, ``>=``, ``==``, and ``!=`` operations. The new magic method names " -"are:" +"``>``, ``>=``, ``==``, and ``!=`` operationsThe new magic method names are:" msgstr "" +"En Python 2.1, se añadieron comparaciones enriquecidas para dar soporte a " +"esta necesidad. Las clases de Python pueden ahora sobrecargar " +"individualmente cada una de las operaciones ``<``, ``<=``, ``>`, ``>=``, " +"``==`` y ``!=``. Los nuevos nombres de métodos mágicos son:" #: ../Doc/whatsnew/2.1.rst:179 msgid "Operation" -msgstr "" +msgstr "Operación" #: ../Doc/whatsnew/2.1.rst:179 msgid "Method name" -msgstr "" +msgstr "Nombre del método" #: ../Doc/whatsnew/2.1.rst:181 msgid "``<``" -msgstr "" +msgstr "``<``" #: ../Doc/whatsnew/2.1.rst:181 msgid ":meth:`__lt__`" -msgstr "" +msgstr ":meth:`__lt__`" #: ../Doc/whatsnew/2.1.rst:183 msgid "``<=``" -msgstr "" +msgstr "``<=``" #: ../Doc/whatsnew/2.1.rst:183 msgid ":meth:`__le__`" -msgstr "" +msgstr ":meth:`__le__`" #: ../Doc/whatsnew/2.1.rst:185 msgid "``>``" -msgstr "" +msgstr "``>``" #: ../Doc/whatsnew/2.1.rst:185 msgid ":meth:`__gt__`" -msgstr "" +msgstr ":meth:`__gt__`" #: ../Doc/whatsnew/2.1.rst:187 msgid "``>=``" -msgstr "" +msgstr "``>=``" #: ../Doc/whatsnew/2.1.rst:187 msgid ":meth:`__ge__`" -msgstr "" +msgstr ":meth:`__ge__`" #: ../Doc/whatsnew/2.1.rst:189 msgid "``==``" -msgstr "" +msgstr "``==``" #: ../Doc/whatsnew/2.1.rst:189 msgid ":meth:`__eq__`" -msgstr "" +msgstr ":meth:`__eq__`" #: ../Doc/whatsnew/2.1.rst:191 msgid "``!=``" -msgstr "" +msgstr "``!=``" #: ../Doc/whatsnew/2.1.rst:191 msgid ":meth:`__ne__`" -msgstr "" +msgstr ":meth:`__ne__`" #: ../Doc/whatsnew/2.1.rst:194 msgid "" "(The magic methods are named after the corresponding Fortran operators ``.LT." -"``. ``.LE.``, &c. Numeric programmers are almost certainly quite familiar " -"with these names and will find them easy to remember.)" +"``. ``.LE.``, &cNumeric programmers are almost certainly quite familiar with " +"these names and will find them easy to remember.)" msgstr "" +"(Los métodos mágicos se denominan como los correspondientes operadores de " +"Fortran ``.LT.``. ``.LE.``, &c. Los programadores numéricos están casi " +"seguramente bastante familiarizados con estos nombres y los encontrarán " +"fáciles de recordar.)" #: ../Doc/whatsnew/2.1.rst:198 msgid "" "Each of these magic methods is of the form ``method(self, other)``, where " "``self`` will be the object on the left-hand side of the operator, while " -"``other`` will be the object on the right-hand side. For example, the " +"``other`` will be the object on the right-hand sideFor example, the " "expression ``A < B`` will cause ``A.__lt__(B)`` to be called." msgstr "" +"Cada uno de estos métodos mágicos tiene la forma ``method(self, other)``, " +"donde ``self`` será el objeto que se encuentre en el lado izquierdo del " +"operador, mientras que ``other`` será el objeto que se encuentre en el lado " +"derecho. Por ejemplo, la expresión ``A < B`` hará que se llame a ``A." +"__lt__(B)``." #: ../Doc/whatsnew/2.1.rst:203 msgid "" "Each of these magic methods can return anything at all: a Boolean, a matrix, " -"a list, or any other Python object. Alternatively they can raise an " -"exception if the comparison is impossible, inconsistent, or otherwise " -"meaningless." +"a list, or any other Python objectAlternatively they can raise an exception " +"if the comparison is impossible, inconsistent, or otherwise meaningless." msgstr "" +"Cada uno de estos métodos mágicos puede retornar cualquier cosa: un " +"booleano, una matriz, una lista o cualquier otro objeto de Python. También " +"pueden lanzar una excepción si la comparación es imposible, inconsistente o " +"no tiene sentido." #: ../Doc/whatsnew/2.1.rst:207 msgid "" "The built-in ``cmp(A,B)`` function can use the rich comparison machinery, " "and now accepts an optional argument specifying which comparison operation " "to use; this is given as one of the strings ``\"<\"``, ``\"<=\"``, ``\">" -"\"``, ``\">=\"``, ``\"==\"``, or ``\"!=\"``. If called without the optional " +"\"``, ``\">=\"``, ``\"==\"``, or ``\"!=\"``If called without the optional " "third argument, :func:`cmp` will only return -1, 0, or +1 as in previous " "versions of Python; otherwise it will call the appropriate method and can " "return any Python object." msgstr "" +"La función incorporada ``cmp(A,B)`` puede utilizar la comparación " +"enriquecida, y ahora acepta un argumento opcional que especifica la " +"operación de comparación a utilizar; esto se da como una de las cadenas ``\"<" +"\"``, ``\"<=\"``, ``\">\"``, ``\">=\"``, ``\"==\"``, o ``\"!=\"``. Si se " +"llama sin el tercer argumento opcional, :func:`cmp` sólo retornará -1, 0 o " +"+1 como en versiones anteriores de Python; en caso contrario, llamará al " +"método apropiado y puede retornar cualquier objeto de Python." #: ../Doc/whatsnew/2.1.rst:214 msgid "" "There are also corresponding changes of interest to C programmers; there's a " "new slot ``tp_richcmp`` in type objects and an API for performing a given " -"rich comparison. I won't cover the C API here, but will refer you to :pep:" +"rich comparisonI won't cover the C API here, but will refer you to :pep:" "`207`, or to 2.1's C API documentation, for the full list of related " "functions." msgstr "" +"También hay cambios correspondientes de interés para los programadores de C; " +"hay una nueva ranura ``tp_richcmp`` en los objetos de tipo y una API para " +"realizar una comparación rica determinada. No cubrirá la API de C aquí, sino " +"que le remitiré a :pep:`207`, o a la documentación de la API de C de 2.1, " +"para la lista completa de funciones relacionadas." #: ../Doc/whatsnew/2.1.rst:223 msgid ":pep:`207` - Rich Comparisons" -msgstr "" +msgstr ":pep:`207` - Comparaciones enriquecidas" #: ../Doc/whatsnew/2.1.rst:223 msgid "" "Written by Guido van Rossum, heavily based on earlier work by David Ascher, " "and implemented by Guido van Rossum." msgstr "" +"Escrito por Guido van Rossum, basado en gran medida en un trabajo anterior " +"de David Ascher, e implementado por Guido van Rossum." #: ../Doc/whatsnew/2.1.rst:230 msgid "PEP 230: Warning Framework" -msgstr "" +msgstr "PEP 230: Marco de advertencia" #: ../Doc/whatsnew/2.1.rst:232 msgid "" "Over its 10 years of existence, Python has accumulated a certain number of " -"obsolete modules and features along the way. It's difficult to know when a " +"obsolete modules and features along the wayIt's difficult to know when a " "feature is safe to remove, since there's no way of knowing how much code " -"uses it --- perhaps no programs depend on the feature, or perhaps many do. " -"To enable removing old features in a more structured way, a warning " -"framework was added. When the Python developers want to get rid of a " -"feature, it will first trigger a warning in the next version of Python. The " -"following Python version can then drop the feature, and users will have had " -"a full release cycle to remove uses of the old feature." -msgstr "" +"uses it --- perhaps no programs depend on the feature, or perhaps many doTo " +"enable removing old features in a more structured way, a warning framework " +"was added. When the Python developers want to get rid of a feature, it will " +"first trigger a warning in the next version of PythonThe following Python " +"version can then drop the feature, and users will have had a full release " +"cycle to remove uses of the old feature." +msgstr "" +"A lo largo de sus 10 años de existencia, Python ha acumulado un cierto " +"número de módulos y características obsoletas en el camino. Es difícil saber " +"cuándo es seguro eliminar una característica, ya que no hay manera de saber " +"cuánto código la utiliza --- tal vez ningún programa depende de la " +"característica, o tal vez muchos lo hacen. Para permitir la eliminación de " +"características antiguas de una manera más estructurada, se añadió un marco " +"de advertencia. Cuando los desarrolladores de Python quieran deshacerse de " +"una característica, primero se activará una advertencia en la siguiente " +"versión de Python. La siguiente versión de Python puede entonces eliminar la " +"característica, y los usuarios habrán tenido un ciclo de lanzamiento " +"completo para eliminar los usos de la antigua característica." #: ../Doc/whatsnew/2.1.rst:242 msgid "" -"Python 2.1 adds the warning framework to be used in this scheme. It adds a :" +"Python 2.1 adds the warning framework to be used in this schemeIt adds a :" "mod:`warnings` module that provide functions to issue warnings, and to " "filter out warnings that you don't want to be displayed. Third-party modules " "can also use this framework to deprecate old features that they no longer " "wish to support." msgstr "" +"Python 2.1 añade el marco de trabajo de las advertencias para ser utilizado " +"en este esquema. Añade un módulo :mod:`warnings` que proporciona funciones " +"para emitir advertencias, y para filtrar las advertencias que no se quieren " +"mostrar. Los módulos de terceros también pueden utilizar este marco de " +"trabajo para dejar de lado funciones antiguas que ya no desean soportar." #: ../Doc/whatsnew/2.1.rst:248 msgid "" "For example, in Python 2.1 the :mod:`regex` module is deprecated, so " "importing it causes a warning to be printed::" msgstr "" +"Por ejemplo, en Python 2.1 el módulo :mod:`regex` está obsoleto, por lo que " +"al importarlo se imprime una advertencia::" #: ../Doc/whatsnew/2.1.rst:256 msgid "Warnings can be issued by calling the :func:`warnings.warn` function::" msgstr "" +"Las advertencias se pueden emitir llamando a la función :func:`warnings." +"warn`::" #: ../Doc/whatsnew/2.1.rst:260 msgid "" "The first parameter is the warning message; an additional optional " "parameters can be used to specify a particular warning category." msgstr "" +"El primer parámetro es el mensaje de advertencia; se pueden utilizar otros " +"parámetros opcionales para especificar una categoría de advertencia concreta." #: ../Doc/whatsnew/2.1.rst:263 msgid "" "Filters can be added to disable certain warnings; a regular expression " "pattern can be applied to the message or to the module name in order to " -"suppress a warning. For example, you may have a program that uses the :mod:" +"suppress a warningFor example, you may have a program that uses the :mod:" "`regex` module and not want to spare the time to convert it to use the :mod:" -"`re` module right now. The warning can be suppressed by calling ::" +"`re` module right nowThe warning can be suppressed by calling ::" msgstr "" +"Se pueden añadir filtros para desactivar ciertas advertencias; se puede " +"aplicar un patrón de expresión regular al mensaje o al nombre del módulo " +"para suprimir una advertencia. Por ejemplo, puede tener un programa que " +"utilice el módulo :mod:`regex` y no querer dedicar tiempo a convertirlo para " +"que utilice el módulo :mod:`re` en este momento. La advertencia puede " +"suprimirse llamando a ::" #: ../Doc/whatsnew/2.1.rst:275 msgid "" "This adds a filter that will apply only to warnings of the class :class:" "`DeprecationWarning` triggered in the :mod:`__main__` module, and applies a " "regular expression to only match the message about the :mod:`regex` module " -"being deprecated, and will cause such warnings to be ignored. Warnings can " +"being deprecated, and will cause such warnings to be ignoredWarnings can " "also be printed only once, printed every time the offending code is " "executed, or turned into exceptions that will cause the program to stop " "(unless the exceptions are caught in the usual way, of course)." msgstr "" +"Esto añade un filtro que se aplicará sólo a las advertencias de la clase :" +"class:`DeprecationWarning` lanzadas en el módulo :mod:`__main__`, y aplica " +"una expresión regular para que sólo coincida con el mensaje sobre el módulo :" +"mod:`regex` que está obsoleto, y hará que tales advertencias sean ignoradas. " +"Las advertencias también pueden imprimirse sólo una vez, imprimirse cada vez " +"que se ejecute el código infractor, o convertirse en excepciones que harán " +"que el programa se detenga (a menos que las excepciones se atrapen de la " +"forma habitual, por supuesto)." #: ../Doc/whatsnew/2.1.rst:283 msgid "" "Functions were also added to Python's C API for issuing warnings; refer to " "PEP 230 or to Python's API documentation for the details." msgstr "" +"También se agregaron funciones a la API de C de Python para emitir " +"advertencias; consulte el PEP 230 o la documentación de la API de Python " +"para conocer los detalles." #: ../Doc/whatsnew/2.1.rst:293 msgid ":pep:`5` - Guidelines for Language Evolution" -msgstr "" +msgstr ":pep:`5` - Directrices para la evolución del lenguaje" #: ../Doc/whatsnew/2.1.rst:290 msgid "" "Written by Paul Prescod, to specify procedures to be followed when removing " -"old features from Python. The policy described in this PEP hasn't been " +"old features from PythonThe policy described in this PEP hasn't been " "officially adopted, but the eventual policy probably won't be too different " "from Prescod's proposal." msgstr "" +"Escrito por Paul Prescod, para especificar los procedimientos a seguir " +"cuando se eliminan características antiguas de PythonLa política descrita en " +"este PEP no ha sido adoptada oficialmente, pero la política final " +"probablemente no será muy diferente de la propuesta de Prescod." #: ../Doc/whatsnew/2.1.rst:295 msgid ":pep:`230` - Warning Framework" -msgstr "" +msgstr ":pep:`230` - Marco de advertencia" #: ../Doc/whatsnew/2.1.rst:296 msgid "Written and implemented by Guido van Rossum." -msgstr "" +msgstr "Escrito y ejecutado por Guido van Rossum." #: ../Doc/whatsnew/2.1.rst:302 msgid "PEP 229: New Build System" -msgstr "" +msgstr "PEP 229: Sistema de construcción nuevo" #: ../Doc/whatsnew/2.1.rst:304 msgid "" @@ -443,27 +619,48 @@ msgid "" "notably Linux, Python installations often don't contain all useful modules " "they could." msgstr "" +"Al compilar Python, el usuario tenía que entrar y editar el archivo :file:" +"`Modules/Setup` para habilitar varios módulos adicionales; el conjunto por " +"defecto es relativamente pequeño y se limita a los módulos que se compilan " +"en la mayoría de las plataformas Unix. Esto significa que en plataformas " +"Unix con muchas más características, sobre todo Linux, las instalaciones de " +"Python no suelen contener todos los módulos útiles que podrían." #: ../Doc/whatsnew/2.1.rst:310 msgid "" "Python 2.0 added the Distutils, a set of modules for distributing and " -"installing extensions. In Python 2.1, the Distutils are used to compile " -"much of the standard library of extension modules, autodetecting which ones " -"are supported on the current machine. It's hoped that this will make Python " +"installing extensionsIn Python 2.1, the Distutils are used to compile much " +"of the standard library of extension modules, autodetecting which ones are " +"supported on the current machineIt's hoped that this will make Python " "installations easier and more featureful." msgstr "" +"Python 2.0 añadió los Distutils, un conjunto de módulos para distribuir e " +"instalar extensiones. En Python 2.1, los Distutils se utilizan para compilar " +"gran parte de la biblioteca estándar de módulos de extensión, autodetectando " +"cuáles son compatibles con la máquina actual Se espera que esto haga que las " +"instalaciones de Python sean más fáciles y tengan más funciones." #: ../Doc/whatsnew/2.1.rst:316 msgid "" "Instead of having to edit the :file:`Modules/Setup` file in order to enable " "modules, a :file:`setup.py` script in the top directory of the Python source " "distribution is run at build time, and attempts to discover which modules " -"can be enabled by examining the modules and header files on the system. If " -"a module is configured in :file:`Modules/Setup`, the :file:`setup.py` script " +"can be enabled by examining the modules and header files on the systemIf a " +"module is configured in :file:`Modules/Setup`, the :file:`setup.py` script " "won't attempt to compile that module and will defer to the :file:`Modules/" -"Setup` file's contents. This provides a way to specific any strange command-" +"Setup` file's contentsThis provides a way to specific any strange command-" "line flags or libraries that are required for a specific platform." msgstr "" +"En lugar de tener que editar el archivo :file:`Modules/Setup` para habilitar " +"los módulos, un script :file:`setup.py` en el directorio superior de la " +"distribución de fuentes de Python se ejecuta en el momento de la " +"compilación, e intenta descubrir qué módulos pueden ser habilitados " +"examinando los módulos y archivos de cabecera en el sistema. Si un módulo " +"está configurado en :file:`Modules/Setup`, el script :file:`setup.py` no " +"intentará compilar ese módulo y se remitirá al contenido del archivo :file:" +"`Modules/Setup`. Esto proporciona una manera de especificar cualquier flag " +"de línea de comandos extraña o bibliotecas que se requieren para una " +"plataforma específica." #: ../Doc/whatsnew/2.1.rst:325 msgid "" @@ -471,36 +668,51 @@ msgid "" "restructured things so Python now uses a single makefile that isn't " "recursive, instead of makefiles in the top directory and in each of the :" "file:`Python/`, :file:`Parser/`, :file:`Objects/`, and :file:`Modules/` " -"subdirectories. This makes building Python faster and also makes hacking " -"the Makefiles clearer and simpler." +"subdirectoriesThis makes building Python faster and also makes hacking the " +"Makefiles clearer and simpler." msgstr "" +"En otro cambio de gran alcance en el mecanismo de construcción, Neil " +"Schemenauer reestructuró las cosas para que Python ahora utilice un único " +"makefile que no es recursivo, en lugar de makefiles en el directorio " +"superior y en cada uno de los subdirectorios :file:`Python/`, :file:`Parser/" +"`, :file:`Objects/`, y :file:`Modules/`. Esto hace que la construcción de " +"Python sea más rápida y también hace que el hackeo de los Makefiles sea más " +"claro y sencillo." #: ../Doc/whatsnew/2.1.rst:335 msgid ":pep:`229` - Using Distutils to Build Python" -msgstr "" +msgstr ":pep:`229` - Uso de Distutils para construir Python" #: ../Doc/whatsnew/2.1.rst:336 ../Doc/whatsnew/2.1.rst:571 msgid "Written and implemented by A.M. Kuchling." -msgstr "" +msgstr "Escrito y ejecutado por A.M. Kuchling." #: ../Doc/whatsnew/2.1.rst:342 msgid "PEP 205: Weak References" -msgstr "" +msgstr "PEP 205: Referencias débiles" #: ../Doc/whatsnew/2.1.rst:344 msgid "" "Weak references, available through the :mod:`weakref` module, are a minor " "but useful new data type in the Python programmer's toolbox." msgstr "" +"Las referencias débiles, disponibles a través del módulo :mod:`weakref`, son " +"un nuevo tipo de datos menor pero útil en la caja de herramientas del " +"programador de Python." #: ../Doc/whatsnew/2.1.rst:347 msgid "" "Storing a reference to an object (say, in a dictionary or a list) has the " -"side effect of keeping that object alive forever. There are a few specific " +"side effect of keeping that object alive foreverThere are a few specific " "cases where this behaviour is undesirable, object caches being the most " "common one, and another being circular references in data structures such as " "trees." msgstr "" +"Almacenar una referencia a un objeto (por ejemplo, en un diccionario o una " +"lista) tiene el efecto secundario de mantener ese objeto vivo para siempre. " +"Hay algunos casos específicos en los que este comportamiento es indeseable, " +"siendo las cachés de objetos el más común, y otro son las referencias " +"circulares en estructuras de datos como los árboles." #: ../Doc/whatsnew/2.1.rst:352 msgid "" @@ -508,6 +720,9 @@ msgid "" "another function ``f(x)`` by storing the function's argument and its result " "in a dictionary::" msgstr "" +"Por ejemplo, considere una función de memoización que almacena en caché los " +"resultados de otra función ``f(x)`` almacenando el argumento de la función y " +"su resultado en un diccionario::" #: ../Doc/whatsnew/2.1.rst:368 msgid "" @@ -517,24 +732,40 @@ msgid "" "This isn't very noticeable for integers, but if :func:`f` returns an object, " "or a data structure that takes up a lot of memory, this can be a problem." msgstr "" +"Esta versión funciona para cosas simples como los enteros, pero tiene un " +"efecto secundario; el diccionario ``_cache`` mantiene una referencia a los " +"valores retornados, por lo que nunca serán desocupados hasta que el proceso " +"de Python salga y se limpie. Esto no es muy notable para los enteros, pero " +"si :func:`f` retorna un objeto, o una estructura de datos que ocupa mucha " +"memoria, esto puede ser un problema." #: ../Doc/whatsnew/2.1.rst:374 msgid "" "Weak references provide a way to implement a cache that won't keep objects " -"alive beyond their time. If an object is only accessible through weak " +"alive beyond their timeIf an object is only accessible through weak " "references, the object will be deallocated and the weak references will now " -"indicate that the object it referred to no longer exists. A weak reference " -"to an object *obj* is created by calling ``wr = weakref.ref(obj)``. The " -"object being referred to is returned by calling the weak reference as if it " -"were a function: ``wr()``. It will return the referenced object, or " -"``None`` if the object no longer exists." -msgstr "" +"indicate that the object it referred to no longer existsA weak reference to " +"an object *obj* is created by calling ``wr = weakref.ref(obj)``The object " +"being referred to is returned by calling the weak reference as if it were a " +"function: ``wr()``It will return the referenced object, or ``None`` if the " +"object no longer exists." +msgstr "" +"Las referencias débiles proporcionan una forma de implementar una caché que " +"no mantendrá los objetos vivos más allá de su tiempo. Si un objeto sólo es " +"accesible a través de referencias débiles, el objeto será desasignado y las " +"referencias débiles indicarán ahora que el objeto al que se refería ya no " +"existe. Una referencia débil a un objeto *obj* se crea llamando ``wr = " +"weakref.ref(obj)``El objeto al que se hace referencia se retorna llamando a " +"la referencia débil como si fuera una función: ``wr()`` retornará el objeto " +"referenciado, o ``None`` si el objeto ya no existe." #: ../Doc/whatsnew/2.1.rst:382 msgid "" "This makes it possible to write a :func:`memoize` function whose cache " "doesn't keep objects alive, by storing weak references in the cache. ::" msgstr "" +"Esto hace posible escribir una función :func:`memoize` cuya caché no " +"mantenga objetos vivos, almacenando referencias débiles en la caché. ::" #: ../Doc/whatsnew/2.1.rst:400 msgid "" @@ -542,42 +773,62 @@ msgid "" "like weak references --- an object referenced only by proxy objects is " "deallocated -- but instead of requiring an explicit call to retrieve the " "object, the proxy transparently forwards all operations to the object as " -"long as the object still exists. If the object is deallocated, attempting " -"to use a proxy will cause a :exc:`weakref.ReferenceError` exception to be " +"long as the object still existsIf the object is deallocated, attempting to " +"use a proxy will cause a :exc:`weakref.ReferenceError` exception to be " "raised. ::" msgstr "" +"El módulo :mod:`weakref` también permite crear objetos proxy que se " +"comportan como referencias débiles --- un objeto referenciado sólo por " +"objetos proxy es desasignado - pero en lugar de requerir una llamada " +"explícita para recuperar el objeto, el proxy reenvía de forma transparente " +"todas las operaciones al objeto mientras éste siga existiendo. Si el objeto " +"es desocupado, el intento de usar un proxy causará una excepción :exc:" +"`weakref.ReferenceError`. ::" #: ../Doc/whatsnew/2.1.rst:416 msgid ":pep:`205` - Weak References" -msgstr "" +msgstr ":pep:`205` - Referencias débiles" #: ../Doc/whatsnew/2.1.rst:417 msgid "Written and implemented by Fred L. Drake, Jr." -msgstr "" +msgstr "Escrito e implementado por Fred L. Drake, Jr." #: ../Doc/whatsnew/2.1.rst:423 msgid "PEP 232: Function Attributes" -msgstr "" +msgstr "PEP 232: Atributos de la función" #: ../Doc/whatsnew/2.1.rst:425 msgid "" "In Python 2.1, functions can now have arbitrary information attached to " "them. People were often using docstrings to hold information about functions " "and methods, because the ``__doc__`` attribute was the only way of attaching " -"any information to a function. For example, in the Zope Web application " +"any information to a functionFor example, in the Zope Web application " "server, functions are marked as safe for public access by having a " "docstring, and in John Aycock's SPARK parsing framework, docstrings hold " -"parts of the BNF grammar to be parsed. This overloading is unfortunate, " -"since docstrings are really intended to hold a function's documentation; for " +"parts of the BNF grammar to be parsedThis overloading is unfortunate, since " +"docstrings are really intended to hold a function's documentation; for " "example, it means you can't properly document functions intended for private " "use in Zope." msgstr "" +"En Python 2.1, las funciones ahora pueden tener información arbitraria " +"adjunta a ellas. La gente solía utilizar docstrings para mantener la " +"información sobre las funciones y los métodos, porque el atributo " +"``__doc__`` era la única manera de adjuntar cualquier información a una " +"función. Por ejemplo, en el servidor de aplicaciones web Zope, las funciones " +"se marcan como seguras para el acceso público teniendo un docstring, y en el " +"marco de análisis SPARK de John Aycock, los docstrings contienen partes de " +"la gramática BNF para ser analizada. Esta sobrecarga es desafortunada, ya " +"que los docstrings están realmente pensados para contener la documentación " +"de una función; por ejemplo, significa que no puedes documentar " +"adecuadamente las funciones destinadas al uso privado en Zope." #: ../Doc/whatsnew/2.1.rst:435 msgid "" "Arbitrary attributes can now be set and retrieved on functions using the " "regular Python syntax::" msgstr "" +"Ahora se pueden establecer y recuperar atributos arbitrarios en las " +"funciones utilizando la sintaxis normal de Python::" #: ../Doc/whatsnew/2.1.rst:444 msgid "" @@ -588,18 +839,27 @@ msgid "" "dictionary; you *can't* be tricky and set it to a :class:`UserDict` " "instance, or any other random object that behaves like a mapping." msgstr "" +"Se puede acceder al diccionario que contiene los atributos como :attr:" +"`~objeto.__dict__` de la función. A diferencia del atributo :attr:`~objeto." +"__dict__` de las instancias de clase, en las funciones se puede asignar un " +"nuevo diccionario a :attr:`~objeto.__dict__`, aunque el nuevo valor está " +"restringido a un diccionario normal de Python; no se puede ser complicado y " +"establecerlo como una instancia de :class:`UserDict`, o cualquier otro " +"objeto aleatorio que se comporte como un mapeo." #: ../Doc/whatsnew/2.1.rst:454 msgid ":pep:`232` - Function Attributes" -msgstr "" +msgstr ":pep:`232` - Atributos de la función" #: ../Doc/whatsnew/2.1.rst:455 msgid "Written and implemented by Barry Warsaw." -msgstr "" +msgstr "Escrito y ejecutado por Barry Warsaw." #: ../Doc/whatsnew/2.1.rst:461 msgid "PEP 235: Importing Modules on Case-Insensitive Platforms" msgstr "" +"PEP 235: Importación de módulos en plataformas que no distinguen entre " +"mayúsculas y minúsculas" #: ../Doc/whatsnew/2.1.rst:463 msgid "" @@ -608,20 +868,33 @@ msgid "" "distinguish the filenames ``FILE.PY`` and ``file.py``, even though they do " "store the file's name in its original case (they're case-preserving, too)." msgstr "" +"Algunos sistemas operativos tienen sistemas de archivos que no distinguen " +"entre mayúsculas y minúsculas, siendo MacOS y Windows los principales " +"ejemplos; en estos sistemas, es imposible distinguir los nombres de archivo " +"``FILE.PY`` y ``file.py``, aunque almacenan el nombre del archivo en su caso " +"original (también preservan las mayúsculas)." #: ../Doc/whatsnew/2.1.rst:468 msgid "" "In Python 2.1, the :keyword:`import` statement will work to simulate case-" -"sensitivity on case-insensitive platforms. Python will now search for the " +"sensitivity on case-insensitive platformsPython will now search for the " "first case-sensitive match by default, raising an :exc:`ImportError` if no " "such file is found, so ``import file`` will not import a module named ``FILE." "PY``. Case-insensitive matching can be requested by setting the :envvar:" "`PYTHONCASEOK` environment variable before starting the Python interpreter." msgstr "" +"En Python 2.1, la sentencia :keyword:`import` funcionará para simular la " +"distinción entre mayúsculas y minúsculas en plataformas que no las " +"distinguen. Python buscará ahora la primera coincidencia entre mayúsculas y " +"minúsculas por defecto, lanzando un :exc:`ImportError` si no se encuentra " +"dicho fichero, por lo que ``import file`` no importará un módulo llamado " +"``FILE.PY``. La coincidencia insensible a mayúsculas y minúsculas puede " +"solicitarse estableciendo la variable de entorno :envvar:`PYTHONCASEOK` " +"antes de iniciar el intérprete de Python." #: ../Doc/whatsnew/2.1.rst:479 msgid "PEP 217: Interactive Display Hook" -msgstr "" +msgstr "PEP 217: Gancho de pantalla interactivo" #: ../Doc/whatsnew/2.1.rst:481 msgid "" @@ -631,25 +904,34 @@ msgid "" "be called instead of :func:`repr`. For example, you can set it to a special " "pretty-printing function::" msgstr "" +"Cuando se utiliza el intérprete de Python de forma interactiva, la salida de " +"los comandos se muestra utilizando la función incorporada :func:`repr`. En " +"Python 2.1, la variable :func:`sys.displayhook` puede establecerse a un " +"objeto invocable que será llamado en lugar de :func:`repr`. Por ejemplo, " +"puede establecerla a una función especial de impresión bonita::" #: ../Doc/whatsnew/2.1.rst:502 msgid ":pep:`217` - Display Hook for Interactive Use" -msgstr "" +msgstr ":pep:`217` - Gancho de visualización para uso interactivo" #: ../Doc/whatsnew/2.1.rst:503 msgid "Written and implemented by Moshe Zadka." -msgstr "" +msgstr "Escrito y ejecutado por Moshe Zadka." #: ../Doc/whatsnew/2.1.rst:509 msgid "PEP 208: New Coercion Model" -msgstr "" +msgstr "PEP 208: Nuevo modelo de coerción" #: ../Doc/whatsnew/2.1.rst:511 msgid "" -"How numeric coercion is done at the C level was significantly modified. " -"This will only affect the authors of C extensions to Python, allowing them " -"more flexibility in writing extension types that support numeric operations." +"How numeric coercion is done at the C level was significantly modifiedThis " +"will only affect the authors of C extensions to Python, allowing them more " +"flexibility in writing extension types that support numeric operations." msgstr "" +"Se ha modificado significativamente la forma en que se realiza la coerción " +"numérica a nivel de C. Esto sólo afectará a los autores de las extensiones " +"de C a Python, permitiéndoles más flexibilidad a la hora de escribir tipos " +"de extensión que soporten operaciones numéricas." #: ../Doc/whatsnew/2.1.rst:515 msgid "" @@ -663,166 +945,260 @@ msgid "" "``Py_NotImplemented`` singleton value. The numeric functions of the other " "type will then be tried, and perhaps they can handle the operation; if the " "other type also returns ``Py_NotImplemented``, then a :exc:`TypeError` will " -"be raised. Numeric methods written in Python can also return " +"be raisedNumeric methods written in Python can also return " "``Py_NotImplemented``, causing the interpreter to act as if the method did " "not exist (perhaps raising a :exc:`TypeError`, perhaps trying another " "object's numeric methods)." msgstr "" +"Los tipos de extensión pueden ahora establecer el indicador de tipo " +"``Py_TPFLAGS_CHECKTYPES`` en su estructura ``PyTypeObject`` para indicar que " +"soportan el nuevo modelo de coerción. En tales tipos de extensión, las " +"funciones numéricas de ranura ya no pueden asumir que se les pasarán dos " +"argumentos del mismo tipo; en su lugar, se les pueden pasar dos argumentos " +"de tipos diferentes, y entonces pueden realizar su propia coerción interna. " +"Si a la función de ranura se le pasa un tipo que no puede manejar, puede " +"indicar el fallo retornando una referencia al valor singleton " +"``Py_NotImplemented``. Las funciones numéricas del otro tipo serán entonces " +"probadas, y quizás puedan manejar la operación; si el otro tipo también " +"retorna ``Py_NotImplemented``, entonces se levantará un :exc:`TypeError`Los " +"métodos numéricos escritos en Python también pueden retornar " +"``Py_NotImplemented``, haciendo que el intérprete actúe como si el método no " +"existiera (tal vez lanzando un :exc:`TypeError`, tal vez probando los " +"métodos numéricos de otro objeto)." #: ../Doc/whatsnew/2.1.rst:534 msgid ":pep:`208` - Reworking the Coercion Model" -msgstr "" +msgstr ":pep:`208` - Reformulación del modelo de coerción" #: ../Doc/whatsnew/2.1.rst:533 msgid "" "Written and implemented by Neil Schemenauer, heavily based upon earlier work " -"by Marc-André Lemburg. Read this to understand the fine points of how " -"numeric operations will now be processed at the C level." +"by Marc-André LemburgRead this to understand the fine points of how numeric " +"operations will now be processed at the C level." msgstr "" +"Escrito e implementado por Neil Schemenauer, basado en gran medida en el " +"trabajo anterior de Marc-André Lemburg. Léalo para entender los puntos finos " +"de cómo las operaciones numéricas serán ahora procesadas en el nivel C." #: ../Doc/whatsnew/2.1.rst:541 msgid "PEP 241: Metadata in Python Packages" -msgstr "" +msgstr "PEP 241: Metadatos en paquetes de Python" #: ../Doc/whatsnew/2.1.rst:543 msgid "" "A common complaint from Python users is that there's no single catalog of " -"all the Python modules in existence. T. Middleton's Vaults of Parnassus at " +"all the Python modules in existenceT. Middleton's Vaults of Parnassus at " "http://www.vex.net/parnassus/ are the largest catalog of Python modules, but " "registering software at the Vaults is optional, and many people don't bother." msgstr "" +"Una queja común de los usuarios de Python es que no hay un catálogo único de " +"todos los módulos de Python existentes. Las Bóvedas de Parnaso de T. " +"Middleton en http://www.vex.net/parnassus/ son el mayor catálogo de módulos " +"de Python, pero registrar el software en las Bóvedas es opcional, y mucha " +"gente no se molesta." #: ../Doc/whatsnew/2.1.rst:548 msgid "" "As a first small step toward fixing the problem, Python software packaged " "using the Distutils :command:`sdist` command will include a file named :file:" "`PKG-INFO` containing information about the package such as its name, " -"version, and author (metadata, in cataloguing terminology). :pep:`241` " +"version, and author (metadata, in cataloguing terminology):pep:`241` " "contains the full list of fields that can be present in the :file:`PKG-INFO` " -"file. As people began to package their software using Python 2.1, more and " +"fileAs people began to package their software using Python 2.1, more and " "more packages will include metadata, making it possible to build automated " -"cataloguing systems and experiment with them. With the result experience, " +"cataloguing systems and experiment with themWith the result experience, " "perhaps it'll be possible to design a really good catalog and then build " "support for it into Python 2.2. For example, the Distutils :command:`sdist` " "and :command:`bdist_\\*` commands could support an ``upload`` option that " "would automatically upload your package to a catalog server." msgstr "" +"Como primer pequeño paso para solucionar el problema, el software de Python " +"empaquetado con el comando :command:`sdist` de Distutils incluirá un archivo " +"llamado :file:`PKG-INFO` que contiene información sobre el paquete, como su " +"nombre, versión y autor (metadatos, en terminología de catalogación). :pep:" +"`241` contiene la lista completa de campos que pueden estar presentes en el " +"archivo :file:`PKG-INFO`A medida que la gente empiece a empaquetar su " +"software usando Python 2.1, más y más paquetes incluirán metadatos, haciendo " +"posible construir sistemas de catalogación automatizados y experimentar con " +"ellosCon la experiencia resultante, tal vez sea posible diseñar un catálogo " +"realmente bueno y luego construir soporte para él en Python 2.2. Por " +"ejemplo, los comandos Distutils :command:`sdist` y :command:`bdist_\\*` " +"podrían soportar una opción ``upload`` que subiera automáticamente tu " +"paquete a un servidor de catálogos." #: ../Doc/whatsnew/2.1.rst:561 msgid "" "You can start creating packages containing :file:`PKG-INFO` even if you're " "not using Python 2.1, since a new release of the Distutils will be made for " -"users of earlier Python versions. Version 1.0.2 of the Distutils includes " -"the changes described in :pep:`241`, as well as various bugfixes and " -"enhancements. It will be available from the Distutils SIG at https://www." +"users of earlier Python versionsVersion 1.0.2 of the Distutils includes the " +"changes described in :pep:`241`, as well as various bugfixes and " +"enhancementsIt will be available from the Distutils SIG at https://www." "python.org/community/sigs/current/distutils-sig/." msgstr "" +"Puedes empezar a crear paquetes que contengan :file:`PKG-INFO` incluso si no " +"estás usando Python 2.1, ya que se hará una nueva versión de las Distutils " +"para los usuarios de versiones anteriores de PythonLa versión 1.0.2 de las " +"Distutils incluye los cambios descritos en :pep:`241`, así como varias " +"correcciones de errores y mejoras. Estará disponible en el SIG de Distutils " +"en https://www.python.org/community/sigs/current/distutils-sig/." #: ../Doc/whatsnew/2.1.rst:571 msgid ":pep:`241` - Metadata for Python Software Packages" -msgstr "" +msgstr ":pep:`241` - Metadatos para paquetes de software de Python" #: ../Doc/whatsnew/2.1.rst:574 msgid ":pep:`243` - Module Repository Upload Mechanism" -msgstr "" +msgstr ":pep:`243` - Mecanismo de carga del repositorio de módulos" #: ../Doc/whatsnew/2.1.rst:574 msgid "" "Written by Sean Reifschneider, this draft PEP describes a proposed mechanism " "for uploading Python packages to a central server." msgstr "" +"Escrito por Sean Reifschneider, este borrador de PEP describe un mecanismo " +"propuesto para subir paquetes de Python a un servidor central." #: ../Doc/whatsnew/2.1.rst:581 msgid "New and Improved Modules" -msgstr "" +msgstr "Módulos nuevos y mejorados" #: ../Doc/whatsnew/2.1.rst:583 msgid "" "Ka-Ping Yee contributed two new modules: :mod:`inspect.py`, a module for " "getting information about live Python code, and :mod:`pydoc.py`, a module " -"for interactively converting docstrings to HTML or text. As a bonus, :file:" +"for interactively converting docstrings to HTML or textAs a bonus, :file:" "`Tools/scripts/pydoc`, which is now automatically installed, uses :mod:" "`pydoc.py` to display documentation given a Python module, package, or class " -"name. For example, ``pydoc xml.dom`` displays the following::" +"nameFor example, ``pydoc xml.dom`` displays the following::" msgstr "" +"Ka-Ping Yee ha contribuido con dos nuevos módulos: :mod:`inspect.py`, un " +"módulo para obtener información sobre código Python en vivo, y :mod:`pydoc." +"py`, un módulo para convertir interactivamente docstrings a HTML o texto. " +"Además, :file:`Tools/scripts/pydoc`, que se instala automáticamente, " +"utiliza :mod:`pydoc.py` para mostrar la documentación de un módulo, paquete " +"o clase de Python. Por ejemplo, ``pydoc xml.dom`` muestra lo siguiente::" #: ../Doc/whatsnew/2.1.rst:605 msgid "" -":file:`pydoc` also includes a Tk-based interactive help browser. :file:" +":file:`pydoc` also includes a Tk-based interactive help browser :file:" "`pydoc` quickly becomes addictive; try it out!" msgstr "" +":file:`pydoc` también incluye un navegador de ayuda interactiva basado en " +"Tk. :file:`pydoc` se vuelve rápidamente adictivo; ¡pruébalo!" #: ../Doc/whatsnew/2.1.rst:608 msgid "" "Two different modules for unit testing were added to the standard library. " "The :mod:`doctest` module, contributed by Tim Peters, provides a testing " "framework based on running embedded examples in docstrings and comparing the " -"results against the expected output. PyUnit, contributed by Steve Purcell, " -"is a unit testing framework inspired by JUnit, which was in turn an " -"adaptation of Kent Beck's Smalltalk testing framework. See http://pyunit." -"sourceforge.net/ for more information about PyUnit." -msgstr "" +"results against the expected outputPyUnit, contributed by Steve Purcell, is " +"a unit testing framework inspired by JUnit, which was in turn an adaptation " +"of Kent Beck's Smalltalk testing frameworkSee http://pyunit.sourceforge.net/ " +"for more information about PyUnit." +msgstr "" +"Se han añadido a la biblioteca estándar dos módulos diferentes para realizar " +"pruebas unitarias. El módulo :mod:`doctest`, aportado por Tim Peters, " +"proporciona un marco de pruebas basado en la ejecución de ejemplos " +"incrustados en docstrings y la comparación de los resultados con la salida " +"esperadaPyUnit, contribuido por Steve Purcell, es un marco de pruebas " +"unitarias inspirado en JUnit, que a su vez fue una adaptación del marco de " +"pruebas Smalltalk de Kent BeckConsulte http://pyunit.sourceforge.net/ para " +"obtener más información sobre PyUnit." #: ../Doc/whatsnew/2.1.rst:616 msgid "" "The :mod:`difflib` module contains a class, :class:`SequenceMatcher`, which " "compares two sequences and computes the changes required to transform one " -"sequence into the other. For example, this module can be used to write a " -"tool similar to the Unix :program:`diff` program, and in fact the sample " -"program :file:`Tools/scripts/ndiff.py` demonstrates how to write such a " -"script." +"sequence into the otherFor example, this module can be used to write a tool " +"similar to the Unix :program:`diff` program, and in fact the sample program :" +"file:`Tools/scripts/ndiff.py` demonstrates how to write such a script." msgstr "" +"El módulo :mod:`difflib` contiene una clase, :class:`SequenceMatcher`, que " +"compara dos secuencias y calcula los cambios necesarios para transformar una " +"secuencia en la otra. Por ejemplo, este módulo puede utilizarse para " +"escribir una herramienta similar al programa :program:`diff` de Unix, y de " +"hecho el programa de ejemplo :file:`Tools/scripts/ndiff.py` demuestra cómo " +"escribir un script de este tipo." #: ../Doc/whatsnew/2.1.rst:622 msgid "" ":mod:`curses.panel`, a wrapper for the panel library, part of ncurses and of " -"SYSV curses, was contributed by Thomas Gellekum. The panel library provides " +"SYSV curses, was contributed by Thomas GellekumThe panel library provides " "windows with the additional feature of depth. Windows can be moved higher or " "lower in the depth ordering, and the panel library figures out where panels " "overlap and which sections are visible." msgstr "" +":mod:`curses.panel`, una envoltura para la biblioteca de paneles, parte de " +"ncurses y de curses SYSV, fue contribuida por Thomas Gellekum. La biblioteca " +"de paneles proporciona ventanas con la característica adicional de la " +"profundidad. Las ventanas pueden ser movidas más arriba o más abajo en el " +"ordenamiento de la profundidad, y la librería de paneles calcula dónde se " +"superponen los paneles y qué secciones son visibles." #: ../Doc/whatsnew/2.1.rst:628 msgid "" "The PyXML package has gone through a few releases since Python 2.0, and " -"Python 2.1 includes an updated version of the :mod:`xml` package. Some of " -"the noteworthy changes include support for Expat 1.2 and later versions, the " +"Python 2.1 includes an updated version of the :mod:`xml` packageSome of the " +"noteworthy changes include support for Expat 1.2 and later versions, the " "ability for Expat parsers to handle files in any encoding supported by " "Python, and various bugfixes for SAX, DOM, and the :mod:`minidom` module." msgstr "" +"El paquete PyXML ha pasado por varias versiones desde Python 2.0, y Python " +"2.1 incluye una versión actualizada del paquete :mod:`xml`. Algunos de los " +"cambios notables incluyen soporte para Expat 1.2 y versiones posteriores, la " +"capacidad de los analizadores Expat para manejar archivos en cualquier " +"codificación soportada por Python, y varias correcciones de errores para " +"SAX, DOM, y el módulo :mod:`minidom`." #: ../Doc/whatsnew/2.1.rst:634 msgid "" "Ping also contributed another hook for handling uncaught exceptions. :func:" -"`sys.excepthook` can be set to a callable object. When an exception isn't " +"`sys.excepthook` can be set to a callable objectWhen an exception isn't " "caught by any :keyword:`try`...\\ :keyword:`except` blocks, the exception " "will be passed to :func:`sys.excepthook`, which can then do whatever it " -"likes. At the Ninth Python Conference, Ping demonstrated an application for " +"likesAt the Ninth Python Conference, Ping demonstrated an application for " "this hook: printing an extended traceback that not only lists the stack " "frames, but also lists the function arguments and the local variables for " "each frame." msgstr "" +"Ping también contribuyó con otro gancho para el manejo de excepciones no " +"capturadas. :func:`sys.excepthook` puede ser establecido a un objeto " +"llamable. Cuando una excepción no es capturada por ningún bloque :keyword:" +"`try`...`except`, la excepción será pasada a :func:`sys.excepthook`, que " +"puede entonces hacer lo que quiera. En la Novena Conferencia de Python, Ping " +"demostró una aplicación para este gancho: imprimir un rastreo extendido que " +"no sólo lista los marcos de la pila, sino que también lista los argumentos " +"de la función y las variables locales para cada marco." #: ../Doc/whatsnew/2.1.rst:642 msgid "" "Various functions in the :mod:`time` module, such as :func:`asctime` and :" "func:`localtime`, require a floating point argument containing the time in " -"seconds since the epoch. The most common use of these functions is to work " +"seconds since the epochThe most common use of these functions is to work " "with the current time, so the floating point argument has been made " -"optional; when a value isn't provided, the current time will be used. For " +"optional; when a value isn't provided, the current time will be usedFor " "example, log file entries usually need a string containing the current time; " "in Python 2.1, ``time.asctime()`` can be used, instead of the lengthier " "``time.asctime(time.localtime(time.time()))`` that was previously required." msgstr "" +"Varias funciones del módulo :mod:`time`, como :func:`asctime` y :func:" +"`localtime`, requieren un argumento de punto flotante que contiene el tiempo " +"en segundos desde la época. El uso más común de estas funciones es trabajar " +"con la hora actual, por lo que el argumento de punto flotante se ha hecho " +"opcional; cuando no se proporciona un valor, se utilizará la hora actual. " +"Por ejemplo, las entradas de archivos de registro suelen necesitar una " +"cadena que contenga la hora actual; en Python 2.1, se puede utilizar ``time." +"asctime()``, en lugar del más largo ``time.asctime(time.localtime(time." +"time()))`` que se requería anteriormente." #: ../Doc/whatsnew/2.1.rst:651 msgid "This change was proposed and implemented by Thomas Wouters." -msgstr "" +msgstr "Este cambio fue propuesto y aplicado por Thomas Wouters." #: ../Doc/whatsnew/2.1.rst:653 msgid "" "The :mod:`ftplib` module now defaults to retrieving files in passive mode, " -"because passive mode is more likely to work from behind a firewall. This " +"because passive mode is more likely to work from behind a firewallThis " "request came from the Debian bug tracking system, since other Debian " "packages use :mod:`ftplib` to retrieve files and then don't work from behind " "a firewall. It's deemed unlikely that this will cause problems for anyone, " @@ -830,19 +1206,34 @@ msgid "" "passive mode is unsuitable for your application or network setup, call " "``set_pasv(0)`` on FTP objects to disable passive mode." msgstr "" +"El módulo :mod:`ftplib` ahora recupera por defecto los ficheros en modo " +"pasivo, porque es más probable que el modo pasivo funcione desde detrás de " +"un cortafuegos. Esta petición vino del sistema de seguimiento de errores de " +"Debian, ya que otros paquetes de Debian utilizan :mod:`ftplib` para " +"recuperar archivos y entonces no funcionan desde detrás de un cortafuegos. " +"Se considera poco probable que esto cause problemas a nadie, porque Netscape " +"utiliza por defecto el modo pasivo y poca gente se queja, pero si el modo " +"pasivo no es adecuado para su aplicación o configuración de red, llame a " +"``set_pasv(0)`` en los objetos FTP para desactivar el modo pasivo." #: ../Doc/whatsnew/2.1.rst:662 msgid "" "Support for raw socket access has been added to the :mod:`socket` module, " "contributed by Grant Edwards." msgstr "" +"Se ha añadido soporte para el acceso a sockets sin procesar en el módulo :" +"mod:`socket`, aportado por Grant Edwards." #: ../Doc/whatsnew/2.1.rst:665 msgid "" "The :mod:`pstats` module now contains a simple interactive statistics " "browser for displaying timing profiles for Python programs, invoked when the " -"module is run as a script. Contributed by Eric S. Raymond." +"module is run as a scriptContributed by Eric S. Raymond." msgstr "" +"El módulo :mod:`pstats` contiene ahora un sencillo navegador de estadísticas " +"interactivo para mostrar los perfiles de tiempo de los programas de Python, " +"invocado cuando el módulo se ejecuta como un script. Contribuido por Eric S. " +"Raymond." #: ../Doc/whatsnew/2.1.rst:669 msgid "" @@ -850,39 +1241,59 @@ msgid "" "been added to return a given frame object from the current call stack. :func:" "`sys._getframe` returns the frame at the top of the call stack; if the " "optional integer argument *depth* is supplied, the function returns the " -"frame that is *depth* calls below the top of the stack. For example, ``sys." +"frame that is *depth* calls below the top of the stackFor example, ``sys." "_getframe(1)`` returns the caller's frame object." msgstr "" +"Se ha añadido una nueva función dependiente de la implementación, ``sys." +"_getframe([depth])``, para retornar un objeto marco dado de la pila de " +"llamadas actual. :func:``sys._getframe`` retorna el marco en la parte " +"superior de la pila de llamadas; si se proporciona el argumento entero " +"opcional *depth*, la función retorna el marco que está *depth* llama por " +"debajo de la parte superior de la pila. Por ejemplo, ``sys._getframe(1)`` " +"retorna el objeto frame de la llamada." #: ../Doc/whatsnew/2.1.rst:676 msgid "" "This function is only present in CPython, not in Jython or the .NET " -"implementation. Use it for debugging, and resist the temptation to put it " -"into production code." +"implementationUse it for debugging, and resist the temptation to put it into " +"production code." msgstr "" +"Esta función sólo está presente en CPython, no en Jython ni en la " +"implementación de .NET. Utilízala para depurar, y resiste la tentación de " +"ponerla en el código de producción." #: ../Doc/whatsnew/2.1.rst:684 msgid "Other Changes and Fixes" -msgstr "" +msgstr "Otros cambios y correcciones" #: ../Doc/whatsnew/2.1.rst:686 msgid "" "There were relatively few smaller changes made in Python 2.1 due to the " -"shorter release cycle. A search through the CVS change logs turns up 117 " +"shorter release cycleA search through the CVS change logs turns up 117 " "patches applied, and 136 bugs fixed; both figures are likely to be " -"underestimates. Some of the more notable changes are:" +"underestimatesSome of the more notable changes are:" msgstr "" +"En Python 2.1 se hicieron relativamente pocos cambios pequeños debido al " +"ciclo de publicación más corto. Una búsqueda en los registros de cambios de " +"CVS muestra 117 parches aplicados y 136 errores corregidos; es probable que " +"ambas cifras estén subestimadas. Algunos de los cambios más notables son:" #: ../Doc/whatsnew/2.1.rst:691 msgid "" "A specialized object allocator is now optionally available, that should be " -"faster than the system :func:`malloc` and have less memory overhead. The " +"faster than the system :func:`malloc` and have less memory overheadThe " "allocator uses C's :func:`malloc` function to get large pools of memory, and " -"then fulfills smaller memory requests from these pools. It can be enabled " -"by providing the :option:`!--with-pymalloc` option to the :program:" -"`configure` script; see :file:`Objects/obmalloc.c` for the implementation " -"details." -msgstr "" +"then fulfills smaller memory requests from these poolsIt can be enabled by " +"providing the :option:`!--with-pymalloc` option to the :program:`configure` " +"script; see :file:`Objects/obmalloc.c` for the implementation details." +msgstr "" +"Ahora está disponible opcionalmente un asignador de objetos especializado, " +"que debería ser más rápido que el sistema :func:`malloc` y tener menos " +"sobrecarga de memoria. El asignador utiliza la función :func:`malloc` de C " +"para obtener grandes reservas de memoria, y luego satisface las peticiones " +"de memoria más pequeñas de estas reservas. Puede activarse proporcionando la " +"opción :option:`!--with-pymalloc` al script :program:`configure`; véase :" +"file:`Objects/obmalloc.c` para los detalles de la implementación." #: ../Doc/whatsnew/2.1.rst:698 msgid "" @@ -891,40 +1302,69 @@ msgid "" "at runtime. There are a bunch of memory allocation functions in Python's C " "API that have previously been just aliases for the C library's :func:" "`malloc` and :func:`free`, meaning that if you accidentally called " -"mismatched functions, the error wouldn't be noticeable. When the object " +"mismatched functions, the error wouldn't be noticeableWhen the object " "allocator is enabled, these functions aren't aliases of :func:`malloc` and :" "func:`free` any more, and calling the wrong function to free memory will get " -"you a core dump. For example, if memory was allocated using :func:" -"`PyMem_New`, it has to be freed using :func:`PyMem_Del`, not :func:`free`. " -"A few modules included with Python fell afoul of this and had to be fixed; " -"doubtless there are more third-party modules that will have the same problem." -msgstr "" +"you a core dumpFor example, if memory was allocated using :func:`PyMem_New`, " +"it has to be freed using :func:`PyMem_Del`, not :func:`free`A few modules " +"included with Python fell afoul of this and had to be fixed; doubtless there " +"are more third-party modules that will have the same problem." +msgstr "" +"Los autores de los módulos de extensión de C deberían probar su código con " +"el asignador de objetos activado, porque algún código incorrecto puede " +"romperse, causando volcados del núcleo en tiempo de ejecución. Hay un montón " +"de funciones de asignación de memoria en la API de C de Python que " +"anteriormente eran sólo alias de :func:`malloc` y :func:`free` de la " +"biblioteca de C, lo que significa que si accidentalmente llamabas a " +"funciones que no coincidían, el error no se notaba. Cuando el asignador de " +"objetos está habilitado, estas funciones ya no son alias de :func:`malloc` " +"y :func:`free`, y llamar a la función incorrecta para liberar memoria te " +"hará un volcado del núcleo. Por ejemplo, si la memoria fue asignada usando :" +"func:`PyMem_New`, tiene que ser liberada usando :func:`PyMem_Del`, no :func:" +"`free`. Unos cuantos módulos incluidos en Python han caído en la trampa y " +"han tenido que ser corregidos; sin duda hay más módulos de terceros que " +"tendrán el mismo problema." #: ../Doc/whatsnew/2.1.rst:711 msgid "The object allocator was contributed by Vladimir Marangozov." -msgstr "" +msgstr "El asignador de objetos fue aportado por Vladimir Marangozov." #: ../Doc/whatsnew/2.1.rst:713 msgid "" "The speed of line-oriented file I/O has been improved because people often " "complain about its lack of speed, and because it's often been used as a " -"naïve benchmark. The :meth:`readline` method of file objects has therefore " -"been rewritten to be much faster. The exact amount of the speedup will vary " +"naïve benchmarkThe :meth:`readline` method of file objects has therefore " +"been rewritten to be much fasterThe exact amount of the speedup will vary " "from platform to platform depending on how slow the C library's :func:`getc` " "was, but is around 66%, and potentially much faster on some particular " "operating systems. Tim Peters did much of the benchmarking and coding for " "this change, motivated by a discussion in comp.lang.python." msgstr "" +"La velocidad de la E/S de archivos orientada a líneas se ha mejorado porque " +"la gente suele quejarse de su falta de velocidad, y porque a menudo se ha " +"utilizado como referencia ingenua. El método :meth:`readline` de los objetos " +"de archivo ha sido reescrito para ser mucho más rápido. La cantidad exacta " +"de la aceleración variará de una plataforma a otra dependiendo de la " +"lentitud del método :func:`getc` de la biblioteca C, pero es alrededor del " +"66%, y potencialmente mucho más rápido en algunos sistemas operativos " +"concretos. Tim Peters hizo gran parte de la evaluación comparativa y la " +"codificación de este cambio, motivado por una discusión en comp.lang.python." #: ../Doc/whatsnew/2.1.rst:722 msgid "" "A new module and method for file objects was also added, contributed by Jeff " "Epler. The new method, :meth:`xreadlines`, is similar to the existing :func:" -"`xrange` built-in. :func:`xreadlines` returns an opaque sequence object " -"that only supports being iterated over, reading a line on every iteration " -"but not reading the entire file into memory as the existing :meth:" -"`readlines` method does. You'd use it like this::" -msgstr "" +"`xrange` built-in:func:`xreadlines` returns an opaque sequence object that " +"only supports being iterated over, reading a line on every iteration but not " +"reading the entire file into memory as the existing :meth:`readlines` method " +"does. You'd use it like this::" +msgstr "" +"También se ha añadido un nuevo módulo y método para objetos de archivo, " +"aportado por Jeff Epler. El nuevo método, :meth:`xreadlines`, es similar al " +"ya existente :func:`xrange` incorporado. :func:`xreadlines` retorna un " +"objeto de secuencia opaco que sólo admite ser iterado, leyendo una línea en " +"cada iteración pero no leyendo todo el archivo en memoria como hace el " +"método :meth:`readlines` existente. Se usaría así::" #: ../Doc/whatsnew/2.1.rst:733 msgid "" @@ -932,6 +1372,9 @@ msgid "" "for January 1--15, 2001 at https://mail.python.org/pipermail/python-dev/2001-" "January/." msgstr "" +"Para una discusión más completa de los cambios en la línea de E/S, véase el " +"resumen de python-dev del 1 al 15 de enero de 2001 en https://mail.python." +"org/pipermail/python-dev/2001-January/." #: ../Doc/whatsnew/2.1.rst:736 msgid "" @@ -939,20 +1382,34 @@ msgid "" "destructively iterating through the contents of a dictionary; this can be " "faster for large dictionaries because there's no need to construct a list " "containing all the keys or values. ``D.popitem()`` removes a random ``(key, " -"value)`` pair from the dictionary ``D`` and returns it as a 2-tuple. This " -"was implemented mostly by Tim Peters and Guido van Rossum, after a " -"suggestion and preliminary patch by Moshe Zadka." -msgstr "" +"value)`` pair from the dictionary ``D`` and returns it as a 2-tupleThis was " +"implemented mostly by Tim Peters and Guido van Rossum, after a suggestion " +"and preliminary patch by Moshe Zadka." +msgstr "" +"Se ha añadido un nuevo método, :meth:`popitem`, a los diccionarios para " +"permitir la iteración destructiva a través del contenido de un diccionario; " +"esto puede ser más rápido para diccionarios grandes porque no hay necesidad " +"de construir una lista que contenga todas las claves o valores. ``D." +"popitem()`` elimina un par aleatorio ``(key, value)`` del diccionario ``D`` " +"y lo retorna como una 2-tupla. Esto fue implementado principalmente por Tim " +"Peters y Guido van Rossum, después de una sugerencia y un parche preliminar " +"de Moshe Zadka." #: ../Doc/whatsnew/2.1.rst:744 msgid "" "Modules can now control which names are imported when ``from module import " "*`` is used, by defining an ``__all__`` attribute containing a list of names " -"that will be imported. One common complaint is that if the module imports " +"that will be importedOne common complaint is that if the module imports " "other modules such as :mod:`sys` or :mod:`string`, ``from module import *`` " -"will add them to the importing module's namespace. To fix this, simply list " +"will add them to the importing module's namespaceTo fix this, simply list " "the public names in ``__all__``::" msgstr "" +"Ahora los módulos pueden controlar qué nombres se importan cuando se utiliza " +"``from module import *``, definiendo un atributo ``__all__`` que contiene " +"una lista de nombres que se importarán. Una queja común es que si el módulo " +"importa otros módulos como :mod:`sys` o :mod:`string`, ``from module import " +"*`` los añadirá al espacio de nombres del módulo importador. Para arreglar " +"esto, simplemente liste los nombres públicos en ``__all__``:" #: ../Doc/whatsnew/2.1.rst:754 msgid "" @@ -960,16 +1417,25 @@ msgid "" "Wolfson, but after some python-dev discussion, a weaker final version was " "checked in." msgstr "" +"Una versión más estricta de este parche fue primero sugerida e implementada " +"por Ben Wolfson, pero después de algunas discusiones de python-dev, una " +"versión final más débil fue revisada." #: ../Doc/whatsnew/2.1.rst:758 msgid "" "Applying :func:`repr` to strings previously used octal escapes for non-" -"printable characters; for example, a newline was ``'\\012'``. This was a " +"printable characters; for example, a newline was ``'\\012'``This was a " "vestigial trace of Python's C ancestry, but today octal is of very little " -"practical use. Ka-Ping Yee suggested using hex escapes instead of octal " -"ones, and using the ``\\n``, ``\\t``, ``\\r`` escapes for the appropriate " +"practical useKa-Ping Yee suggested using hex escapes instead of octal ones, " +"and using the ``\\n``, ``\\t``, ``\\r`` escapes for the appropriate " "characters, and implemented this new formatting." msgstr "" +"Al aplicar :func:`repr` a las cadenas, antes se utilizaban escapes octales " +"para los caracteres no imprimibles; por ejemplo, una nueva línea era " +"``'012'``Esto era un vestigio de la ascendencia de Python en C, pero hoy en " +"día el octal tiene muy poco uso prácticoKa-Ping Yee sugirió usar escapes " +"hexadecimales en lugar de octales, y usar los escapes ``n``, ``t``, ``r`` " +"para los caracteres apropiados, e implementó este nuevo formato." #: ../Doc/whatsnew/2.1.rst:765 msgid "" @@ -977,20 +1443,31 @@ msgid "" "the filename and line number of the error, a pleasant side effect of the " "compiler reorganization done by Jeremy Hylton." msgstr "" +"Los errores de sintaxis detectados en tiempo de compilación pueden ahora " +"lanzar excepciones que contienen el nombre del archivo y el número de línea " +"del error, un agradable efecto secundario de la reorganización del " +"compilador realizada por Jeremy Hylton." #: ../Doc/whatsnew/2.1.rst:769 msgid "" "C extensions which import other modules have been changed to use :func:" "`PyImport_ImportModule`, which means that they will use any import hooks " -"that have been installed. This is also encouraged for third-party " -"extensions that need to import some other module from C code." +"that have been installedThis is also encouraged for third-party extensions " +"that need to import some other module from C code." msgstr "" +"Las extensiones C que importan otros módulos han sido cambiadas para usar :" +"func:`PyImport_ImportModule`, lo que significa que usarán cualquier gancho " +"de importación que haya sido instalado. Esto también se fomenta para las " +"extensiones de terceros que necesitan importar algún otro módulo desde el " +"código C." #: ../Doc/whatsnew/2.1.rst:774 msgid "" "The size of the Unicode character database was shrunk by another 340K thanks " "to Fredrik Lundh." msgstr "" +"El tamaño de la base de datos de caracteres Unicode se redujo en otros 340K " +"gracias a Fredrik Lundh." #: ../Doc/whatsnew/2.1.rst:777 msgid "" @@ -998,6 +1475,9 @@ msgid "" "Jason Tishler); RISCOS (by Dietmar Schwertberger); Unixware 7 (by Billy G. " "Allie)." msgstr "" +"Se han aportado algunos puertos nuevos: MacOS X (por Steven Majewski), " +"Cygwin (por Jason Tishler); RISCOS (por Dietmar Schwertberger); Unixware 7 " +"(por Billy G. Allie)." #: ../Doc/whatsnew/2.1.rst:781 msgid "" @@ -1005,10 +1485,14 @@ msgid "" "edits, and other tweaks, too lengthy to be worth itemizing; see the CVS logs " "for the full details if you want them." msgstr "" +"Y hay la lista habitual de correcciones de errores menores, fugas de memoria " +"menores, ediciones de docstrings, y otros ajustes, demasiado largos para que " +"valga la pena detallarlos; vea los registros de CVS para los detalles " +"completos si los quiere." #: ../Doc/whatsnew/2.1.rst:789 msgid "Acknowledgements" -msgstr "" +msgstr "Agradecimientos" #: ../Doc/whatsnew/2.1.rst:791 msgid "" @@ -1017,3 +1501,7 @@ msgid "" "Michael Hudson, Marc-André Lemburg, Fredrik Lundh, Neil Schemenauer, Thomas " "Wouters." msgstr "" +"El autor desea agradecer a las siguientes personas sus sugerencias sobre " +"varios borradores de este artículo: Graeme Cross, David Goodger, Jay Graves, " +"Michael Hudson, Marc-André Lemburg, Fredrik Lundh, Neil Schemenauer, Thomas " +"Wouters." diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po index b836ae76e7..53d3b97ff1 100644 --- a/whatsnew/2.2.po +++ b/whatsnew/2.2.po @@ -1,37 +1,39 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. -# Maintained by the python-doc-es workteam. +# Maintained by the python-doc-es workteam. # docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-07 10:12+0100\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Claudia Millan \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/whatsnew/2.2.rst:3 msgid "What's New in Python 2.2" -msgstr "" +msgstr "Qué hay de nuevo en Python 2.2" #: ../Doc/whatsnew/2.2.rst:0 msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.2.rst:5 msgid "A.M. Kuchling" -msgstr "" +msgstr "A.M. Kuchling" #: ../Doc/whatsnew/2.2.rst:13 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/whatsnew/2.2.rst:15 msgid "" @@ -39,6 +41,9 @@ msgid "" "14, 2002. Python 2.2.2 is a bugfix release of Python 2.2, originally " "released on December 21, 2001." msgstr "" +"Este artículo explica las nuevas características en Python 2.2.2, publicado " +"el 14 de octubre de 2002. Python 2.2.2 es una versión de corrección de " +"errores de Python 2.2, lanzada originalmente el 21 de diciembre de 2001." #: ../Doc/whatsnew/2.2.rst:19 msgid "" @@ -47,6 +52,11 @@ msgid "" "of the changes, significant and far-reaching though they may be, are aimed " "at cleaning up irregularities and dark corners of the language design." msgstr "" +"Python 2.2 se puede considerar como la \"versión de limpieza\". Hay algunas " +"características como los generadores e iteradores que son completamente " +"nuevas, pero la mayoría de los cambios, aunque sean significativos y de gran " +"alcance, tienen como objetivo limpiar las irregularidades y los rincones " +"oscuros del diseño del lenguaje." #: ../Doc/whatsnew/2.2.rst:24 msgid "" @@ -58,10 +68,18 @@ msgid "" "you want to understand the complete implementation and design rationale for " "a change, refer to the PEP for a particular new feature." msgstr "" +"Este artículo no procura proporcionar una especificación completa de las " +"nuevas características, pero en su lugar proporciona una descripción general " +"conveniente. Para más detalles, deberías consultar la documentación de " +"Python 2.2, como `Python Library Reference `_ y `Python Reference Manual `_. Si quieres comprender la justificación completa de la " +"implementación y el diseño de un cambio, consultar la PEP para conocer una " +"característica nueva en particular." #: ../Doc/whatsnew/2.2.rst:43 msgid "PEPs 252 and 253: Type and Class Changes" -msgstr "" +msgstr "PEPs 252 y 253: Cambios de tipo y clase" #: ../Doc/whatsnew/2.2.rst:45 msgid "" @@ -72,6 +90,13 @@ msgid "" "and most complicated section of this article, I'll provide an overview of " "the changes and offer some comments." msgstr "" +"Los cambios más grandes y de mayor alcance en Python 2.2 son el modelo de " +"objetos y clases de Python. Los cambios deben ser compatibles con versiones " +"anteriores, por lo que es probable que tu código continuará ejecutándose sin " +"cambios, pero los cambios proporcionan algunas capacidades nuevas " +"increíbles. Antes de comenzar esta, la sección más larga y complicada de " +"este artículo, brindaré una descripción general de los cambios y ofreceré " +"algunos comentarios." #: ../Doc/whatsnew/2.2.rst:52 msgid "" @@ -84,24 +109,40 @@ msgid "" "there's lots of C code that expects a regular Python list and won't accept " "a :class:`UserList` instance." msgstr "" +"Hace mucho tiempo escribí una página web que enumeraba los defectos en el " +"diseño de Python. Una de las fallas más importantes fue que es imposible " +"subclasificar tipos de Python implementados en C. En particular, no es " +"posible subclasificar tipos incorporados, por lo que no se puede solo " +"subclasificar, digamos, listas para agregar un solo método útil para ellos. " +"El módulo :mod:`UserList` proporciona una clase que admite todos los métodos " +"de listas y que puede subclasificarse aún más, pero hay mucho código C que " +"espera una lista normal de Python y no aceptará una instancia :class:" +"`UserList`." #: ../Doc/whatsnew/2.2.rst:61 msgid "" "Python 2.2 fixes this, and in the process adds some exciting new " "capabilities. A brief summary:" msgstr "" +"Python 2.2 corrige esto y, en el proceso, agrega algunas capacidades nuevas " +"interesantes. Un breve resumen:" #: ../Doc/whatsnew/2.2.rst:64 msgid "" "You can subclass built-in types such as lists and even integers, and your " "subclasses should work in every place that requires the original type." msgstr "" +"Puedes subclasificar tipos incorporados como listas e incluso enteros, y tus " +"subclases deberían funcionar en todos los lugares que requieran el tipo " +"original." #: ../Doc/whatsnew/2.2.rst:67 msgid "" "It's now possible to define static and class methods, in addition to the " "instance methods available in previous versions of Python." msgstr "" +"Ahora es posible definir métodos estáticos y de clase, además de los métodos " +"de instancia disponibles en versiones anteriores de Python." #: ../Doc/whatsnew/2.2.rst:70 msgid "" @@ -111,6 +152,12 @@ msgid "" "making the resulting code simpler and faster. As a small side benefit, " "attributes can now have docstrings, too." msgstr "" +"También es posible llamar automáticamente métodos al acceder o configurar un " +"atributo de instancia mediante el uso de un nuevo mecanismo llamado :dfn:" +"`properties`. Muchos usos de :meth:`__getattr__` se pueden reescribir para " +"usar propiedades en su lugar, haciendo que el código resultante sea más " +"simple y rápido. Como un pequeño beneficio secundario, ahora también los " +"atributos pueden tener docstrings." #: ../Doc/whatsnew/2.2.rst:76 msgid "" @@ -118,6 +165,10 @@ msgid "" "set using :dfn:`slots`, making it possible to safeguard against typos and " "perhaps make more optimizations possible in future versions of Python." msgstr "" +"La lista de atributos legales para una instancia se puede limitar a un " +"conjunto particular usando :dfn:`slots`, lo que hace posible protegerse " +"contra errores tipográficos y quizás hacer posibles más optimizaciones en " +"versiones futuras de Python." #: ../Doc/whatsnew/2.2.rst:80 msgid "" @@ -128,6 +179,12 @@ msgid "" "recommended Python for its simplicity, and feel that its simplicity is being " "lost." msgstr "" +"Algunos usuarios han expresado preocupación por todos estos cambios. Claro, " +"dicen, las nuevas características son ordenadas y se prestan a todo tipo de " +"trucos que no eran posibles en versiones anteriores de Python, pero también " +"hacen que el lenguaje sea más complicado. Algunas personas han dicho que " +"siempre han recomendado Python por su simplicidad, y sienten que su " +"simplicidad se está perdiendo." #: ../Doc/whatsnew/2.2.rst:86 msgid "" @@ -139,6 +196,13 @@ msgid "" "only possible from C will now be possible in pure Python, and to my mind " "that's all for the better." msgstr "" +"Personalmente. pienso que no hay que preocuparse. Muchas de las nuevas " +"características son bastante esotéricas, y puedes escribir mucho código de " +"Python sin tener que estar al tanto de ellas. Escribir una clase simple no " +"es más difícil de lo que nunca fue, así que no necesitas molestarte en " +"aprender o enseñarlos a menos que realmente sean necesarios. Algunas tareas " +"muy complicadas que antes solo eran posibles desde C ahora serán posibles en " +"Python puro, y en mi opinión, esto es todo para mejor." #: ../Doc/whatsnew/2.2.rst:93 msgid "" @@ -148,10 +212,15 @@ msgid "" "Links\", for further sources of information about Python 2.2's new object " "model." msgstr "" +"No voy a intentar cubrir todas los casos de las esquinas y los pequeños " +"cambios que fueron necesarios para hacer que las nuevas características " +"funcionen. En su lugar, esta sección pintará solo a grandes rasgos. " +"Consultar la sección :ref:`sect-rellinks`, \"Enlaces relacionados\", para " +"más fuentes de información sobre el nuevo modelo de objetos de Python 2.2." #: ../Doc/whatsnew/2.2.rst:100 msgid "Old and New Classes" -msgstr "" +msgstr "Clases antiguas y nuevas" #: ../Doc/whatsnew/2.2.rst:102 msgid "" @@ -162,6 +231,13 @@ msgid "" "classes. This divergence isn't intended to last forever; eventually old-" "style classes will be dropped, possibly in Python 3.0." msgstr "" +"Primero, debes saber que realmente Python 2.2 tiene dos tipos de clases: " +"clases clásicas o de estilo antiguo y clases de estilo nuevo. El modelo de " +"clase de estilo antiguo exactamente es el mismo que el modelo de clase en " +"versiones anteriores de Python. Todas las nuevas características descritas " +"en esta sección se aplican solo a las clases de estilo nuevo. Esta " +"divergencia no está destinada a durar para siempre; eventualmente las clases " +"de estilo antiguo se eliminarán, posiblemente en Python 3.0." #: ../Doc/whatsnew/2.2.rst:109 msgid "" @@ -172,6 +248,13 @@ msgid "" "types, has also been added so if no built-in type is suitable, you can just " "subclass :class:`object`::" msgstr "" +"Entonces, ¿cómo defines una clase de estilo nuevo? Lo haces subclasificando " +"una clases de estilo nuevo existente. La mayoría de los tipos integrados de " +"Python, como enteros, listas, diccionarios e incluso archivos, ahora son " +"clases de estilo nuevo. También se agregó una clase de estilo nuevo llamada :" +"class:`object`, la clase base para todos los tipos integrados, por lo que si " +"ningún tipo integrado es apropiado, puedes solo subclasificar :class:" +"`object`::" #: ../Doc/whatsnew/2.2.rst:121 msgid "" @@ -181,6 +264,11 @@ msgid "" "pep:`253` for the details --- but it's easier to just subclass :class:" "`object`.)" msgstr "" +"Esto significa que las declaraciones :keyword:`class` que no tienen ninguna " +"clase base siempre son clases clásicas en Python 2.2. (Realmente también " +"puedes cambiar esto configurando una variable de nivel de módulo llamada :" +"attr:`__metaclass__` --- consultar :pep:`253` para más detalles --- pero es " +"más fácil solo subclasificar :class:`object`.)" #: ../Doc/whatsnew/2.2.rst:126 msgid "" @@ -189,6 +277,11 @@ msgid "" "`int`, :func:`float`, and :func:`str`. In 2.2, they aren't functions any " "more, but type objects that behave as factories when called. ::" msgstr "" +"Los objetos de tipo para los tipos integrados están disponibles como " +"incorporados, nombrados mediante un truco inteligente. Python siempre ha " +"tenido funciones incorporadas llamadas :func:`int`, :func:`float` y :func:" +"`str`. En la versión 2.2, ya no son funciones, sino objetos de tipo que se " +"comportan como fábricas cuando se les llaman. ::" #: ../Doc/whatsnew/2.2.rst:136 msgid "" @@ -196,6 +289,9 @@ msgid "" "and :func:`file` have been added. Here's a more interesting example, adding " "a :meth:`lock` method to file objects::" msgstr "" +"Para completar el conjunto de tipos, se agregaron nuevos objetos de tipo " +"como :func:`dict` y :func:`file`. Aquí hay un ejemplo más interesante, " +"agregando un método :meth:`lock` a los objetos de archivo::" #: ../Doc/whatsnew/2.2.rst:146 msgid "" @@ -204,10 +300,15 @@ msgid "" "class couldn't be passed to internal functions that expected a built-in " "file, something which is possible with our new :class:`LockableFile`." msgstr "" +"El módulo ahora obsoleto :mod:`posixfile` contenía una clase que emulaba " +"todos los métodos de un objeto de archivo y también agregaba un método :meth:" +"`lock`, pero esta clase no podía pasarse a funciones internas que esperaban " +"un archivo incorporado, algo que es posible con nuestra nueva clase :class:" +"`LockableFile`." #: ../Doc/whatsnew/2.2.rst:153 msgid "Descriptors" -msgstr "" +msgstr "Descriptores" #: ../Doc/whatsnew/2.2.rst:155 msgid "" @@ -220,6 +321,14 @@ msgid "" "inheritance or an arbitrary :meth:`__getattr__` hook were in use this could " "still be inaccurate." msgstr "" +"En versiones anteriores de Python, no había una forma consistente de " +"descubrir qué atributos y métodos eran compatibles con un objeto. Había " +"algunas convenciones informales, como definir atributos :attr:`__members__` " +"y :attr:`__methods__` que eran listas de nombres, pero a menudo el autor de " +"un tipo de extensión o una clase no se molestaría en definirlos. Podrías " +"recurrir a inspeccionar el :attr:`~object.__dict__` de un objeto, pero " +"cuando la herencia de una clase o un gancho arbitrario :meth:`__getattr__` " +"estuvieran en uso, esto podría ser inexacto." #: ../Doc/whatsnew/2.2.rst:163 msgid "" @@ -229,41 +338,54 @@ msgid "" "it's a method or a field. With the descriptor API, static methods and class " "methods become possible, as well as more exotic constructs." msgstr "" +"La única gran idea que subyace al nuevo modelo de clases es que se ha " +"formalizado una API para describir los atributos de un objeto usando :dfn:" +"`descriptors`. Los descriptores especifican el valor de un atributo, " +"indicando si es un método o un campo. Con la API de un descriptor, los " +"métodos estáticos y de clase se vuelven posibles, así como constructos más " +"exóticos." #: ../Doc/whatsnew/2.2.rst:169 msgid "" "Attribute descriptors are objects that live inside class objects, and have a " "few attributes of their own:" msgstr "" +"Los descriptores de atributos son objetos que viven dentro de los objetos de " +"clase y tienen algunos atributos propios:" #: ../Doc/whatsnew/2.2.rst:172 msgid ":attr:`~definition.__name__` is the attribute's name." -msgstr "" +msgstr ":attr:`~definition.__name__` es el nombre del atributo." #: ../Doc/whatsnew/2.2.rst:174 msgid ":attr:`__doc__` is the attribute's docstring." -msgstr "" +msgstr ":attr:`__doc__` es el docstring del atributo." #: ../Doc/whatsnew/2.2.rst:176 msgid "" "``__get__(object)`` is a method that retrieves the attribute value from " "*object*." msgstr "" +"``__get__(object)`` es un método que recupera el valor del atributo de " +"*object*." #: ../Doc/whatsnew/2.2.rst:179 msgid "``__set__(object, value)`` sets the attribute on *object* to *value*." msgstr "" +"``__set__(object, value)`` establece el atributo de *object* en *value*." #: ../Doc/whatsnew/2.2.rst:181 msgid "" "``__delete__(object, value)`` deletes the *value* attribute of *object*." -msgstr "" +msgstr "``__delete__(object, value)`` elimina el atributo *value* de *object*." #: ../Doc/whatsnew/2.2.rst:183 msgid "" "For example, when you write ``obj.x``, the steps that Python actually " "performs are::" msgstr "" +"Por ejemplo, cuando escribes ``obj.x``, los pasos que realmente Python " +"realiza son::" #: ../Doc/whatsnew/2.2.rst:189 msgid "" @@ -276,6 +398,14 @@ msgid "" "methods are passed the class of the object, but not the object itself. " "Static and class methods are defined like this::" msgstr "" +"Para los métodos, :meth:`descriptor.__get__` retorna un objeto temporal que " +"se puede llamar y contiene la instancia y el método que se llamará en él. " +"También esto es el por qué los métodos estáticos y de clase ahora son " +"posibles; tienen descriptores que contienen solo el método o el método y la " +"clase. Como una breve explicación de estos tipos nuevos de métodos, los " +"métodos estáticos no se pasan a la instancia y, por lo tanto, se asemejan a " +"funciones regulares. Los métodos de clase se pasan a la clase del objeto, " +"pero no al objeto en sí. Los métodos estáticos y de clase se definen así::" #: ../Doc/whatsnew/2.2.rst:207 msgid "" @@ -285,6 +415,11 @@ msgid "" "static f``, ``defstatic f()``, or something like that) but no such syntax " "has been defined yet; that's been left for future versions of Python." msgstr "" +"La función :func:`staticmethod` toma la función :func:`f` y la retorna en un " +"descriptor para que pueda almacenarse en el objeto de clase. Puedes esperar " +"que haya una sintaxis especial para crear tales métodos (``def static f``, " +"``defstatic f()`` o algo así) pero aún no se ha definido dicha sintaxis; que " +"se ha dejado para versiones futuras de Python." #: ../Doc/whatsnew/2.2.rst:213 msgid "" @@ -295,6 +430,12 @@ msgid "" "and postconditions for a method. A class that used this feature might be " "defined like this::" msgstr "" +"También se implementan más características nuevas, como ranuras y " +"propiedades, como nuevos tipos de descriptores, y no es difícil escribir una " +"clase de descriptor que haga algo nuevo. Por ejemplo, sería posible escribir " +"una clase de descriptor que hiciera posible escribir condiciones previas al " +"estilo Eiffel y posteriores para un método. Una clase que usó esta " +"característica podría definirse así::" #: ../Doc/whatsnew/2.2.rst:235 msgid "" @@ -305,10 +446,17 @@ msgid "" "the ZODB or whatever, but most users will just write code on top of the " "resulting libraries and ignore the implementation details." msgstr "" +"Toma en cuenta que una persona que usa la nueva función :func:`eiffelmethod` " +"no tiene que entender nada sobre descriptores. Esta es la razón por la que " +"creo que las nuevas características no incrementan la complejidad básica del " +"lenguaje. Habrá algunos asistentes que necesitarán conocerlo para escribir :" +"func:`eiffelmethod` o la ZODB o lo que sea, pero la mayoría de los usuarios " +"solo escribirán código sobre las bibliotecas resultantes e ignorarán los " +"detalles de implementación." #: ../Doc/whatsnew/2.2.rst:244 msgid "Multiple Inheritance: The Diamond Rule" -msgstr "" +msgstr "Herencia múltiple: la regla del diamante" #: ../Doc/whatsnew/2.2.rst:246 msgid "" @@ -316,6 +464,9 @@ msgid "" "rules under which names are resolved. Consider this set of classes (diagram " "taken from :pep:`253` by Guido van Rossum)::" msgstr "" +"La herencia múltiple también se ha hecho más útil al cambiar las reglas bajo " +"las cuales se resuelven los nombres. Considera este conjunto de clases " +"(diagrama tomado de :pep:`253` de Guido van Rossum)::" #: ../Doc/whatsnew/2.2.rst:264 msgid "" @@ -327,6 +478,14 @@ msgid "" "`save` method is saving some internal state specific to :class:`C`, not " "calling it will result in that state never getting saved." msgstr "" +"La regla de búsqueda para clases clásicas es simple pero no muy inteligente; " +"se buscan las clases base primero en profundidad, yendo de izquierda a " +"derecha. Una referencia a :meth:`D.save` buscará las clases :class:`D`, :" +"class:`B` y luego :class:`A`, donde :meth:`save` se encontraría y " +"retornaría. :meth:`C.save` nunca se encontraría en absoluto. Esto es malo, " +"porque si el método :meth:`save` de :class:`C` está guardando algún estado " +"interno específico de :class:`C`, no llamarlo resultará en que este estado " +"nunca se guardará." #: ../Doc/whatsnew/2.2.rst:272 msgid "" @@ -336,6 +495,11 @@ msgid "" "cases, but produces more useful results for really complicated inheritance " "graphs.)" msgstr "" +"Las clases de estilo nuevo siguen un algoritmo diferente que es más " +"complicado de explicar, pero hace lo correcto en esta situación. (Toma en " +"cuenta que Python 2.3 cambia este algoritmo a uno que produce los mismos " +"resultados en la mayoría de los casos, pero produce resultados más útiles " +"para gráficos de herencia realmente complicados.)" #: ../Doc/whatsnew/2.2.rst:277 msgid "" @@ -344,6 +508,10 @@ msgid "" "list of visited classes is [:class:`D`, :class:`B`, :class:`A`, :class:`C`, :" "class:`A`]." msgstr "" +"Enumera todas las clases base, siguiendo la regla de búsqueda clásica e " +"incluye una clase varias veces si se visita repetidamente. En el ejemplo " +"anterior, la lista de clases visitadas es [:class:`D`, :class:`B`, :class:" +"`A`, :class:`C`, :class:`A`]." #: ../Doc/whatsnew/2.2.rst:282 msgid "" @@ -352,6 +520,10 @@ msgid "" "list becomes [:class:`D`, :class:`B`, :class:`C`, :class:`A`] after dropping " "duplicates." msgstr "" +"Escanea la lista en busca de clases duplicadas. Si encuentra alguna, elimina " +"todas menos una, dejando la *última* en la lista. En el ejemplo anterior, la " +"lista se convierte en [:class:`D`, :class:`B`, :class:`C`, :class:`A`] " +"después de eliminar las duplicadas." #: ../Doc/whatsnew/2.2.rst:287 msgid "" @@ -364,6 +536,15 @@ msgid "" "will be used in methods to call a method in the superclass; for example, :" "class:`D`'s :meth:`save` method would look like this::" msgstr "" +"Siguiendo esta regla, refiriéndose a :meth:`D.save` retornará :meth:`C." +"save`, el cual es el comportamiento que buscamos. Esta regla de búsqueda es " +"la misma que sigue Common Lisp. Una nueva función incorporada, :func:" +"`super`, proporciona una forma de acceder a las superclases de una clase sin " +"tener que volver a implementar el algoritmo de Python. La forma más " +"utilizada será ``super(class, obj)``, la cual retorna un objeto de " +"superclase vinculado. Esta forma se usará en métodos para llamar a un método " +"en la superclase; por ejemplo, el método :meth:`save` de :class:`D` se vería " +"así::" #: ../Doc/whatsnew/2.2.rst:303 msgid "" @@ -371,10 +552,13 @@ msgid "" "``super(class)`` or ``super(class1, class2)``, but this probably won't often " "be useful." msgstr "" +"También :func:`super` puede retornar objetos de superclase no vinculados " +"cuando se llama como ``super(class)`` o ``super(class1, class2)``, pero " +"probablemente esto no sea útil a menudo." #: ../Doc/whatsnew/2.2.rst:309 msgid "Attribute Access" -msgstr "" +msgstr "Acceso a atributos" #: ../Doc/whatsnew/2.2.rst:311 msgid "" @@ -384,6 +568,12 @@ msgid "" "attribute access such as ``obj.parent`` into a method call such as ``obj." "get_parent``. Python 2.2 adds some new ways of controlling attribute access." msgstr "" +"Un buen número de clases sofisticadas de Python definen ganchos para el " +"acceso de atributos usando :meth:`__getattr__`; más comúnmente, esto se hace " +"por conveniencia, para hacer que el código sea más legible al mapear " +"automáticamente un acceso de atributo como ``obj.parent`` en una llamada de " +"método como ``obj.get_parent``. Python 2.2 agrega algunas formas nuevas de " +"controlar el acceso de atributos." #: ../Doc/whatsnew/2.2.rst:317 msgid "" @@ -392,6 +582,10 @@ msgid "" "attempt is made to access ``obj.foo`` and no attribute named ``foo`` is " "found in the instance's dictionary." msgstr "" +"Primero, ``__getattr__(attr_name)`` aún es compatible con las clases de " +"nuevo estilo, y nada al respecto ha cambiado. Como antes, se llamará cuando " +"se intente acceder a ``obj.foo`` y no se encuentre ningún atributo llamado " +"``foo`` en el diccionario de la instancia." #: ../Doc/whatsnew/2.2.rst:322 msgid "" @@ -401,6 +595,11 @@ msgid "" "accessed, while the old :meth:`__getattr__` is only called if ``foo`` isn't " "found in the instance's dictionary." msgstr "" +"Las clases de nuevo estilo también admiten un nuevo método, " +"``__getattribute__(attr_name)``. La diferencia entre los dos métodos es que :" +"meth:`__getattribute__` *siempre* se llama cada vez que se accede a " +"cualquier atributo, mientras que el antiguo :meth:`__getattr__` se llama " +"solo si no se encuentra ``foo`` en el diccionario de la instancia." #: ../Doc/whatsnew/2.2.rst:328 msgid "" @@ -414,6 +613,16 @@ msgid "" "calling a function on every attribute access results in a sizable " "performance loss." msgstr "" +"Sin embargo, el soporte de Python 2.2 para :dfn:`properties` será a menudo " +"una forma más simple de atrapar referencias de atributos. Escribir un " +"método :meth:`__getattr__` es complicado porque para evitar la recursividad " +"no puedes usar accesos regulares a atributos dentro de ellos, y en su lugar " +"tienes que jugar con el contenido de :attr:`~object.__dict__`. Los métodos :" +"meth:`__getattr__` también terminan siendo llamados por Python cuando busca " +"otros métodos como :meth:`__repr__` o :meth:`__coerce__`, por lo que se " +"tienen que escribirse teniendo esto en cuenta. Finalmente, llamar una " +"función en cada acceso de atributo resulta en una pérdida de rendimiento " +"considerable." #: ../Doc/whatsnew/2.2.rst:337 msgid "" @@ -422,6 +631,10 @@ msgid "" "want to define a :attr:`size` attribute that's computed, but also settable, " "you could write::" msgstr "" +":class:`property` es un nuevo tipo integrado que empaqueta tres funciones " +"obtienen, establecen o eliminan un atributo y una docstring. Por ejemplo, si " +"quieres definir un atributo :attr:`size` que se calcula, pero que también se " +"puede configurar, puedes escribir::" #: ../Doc/whatsnew/2.2.rst:357 msgid "" @@ -432,6 +645,12 @@ msgid "" "the only ones which have to perform the work of calling a function, so " "references to other attributes run at their usual speed." msgstr "" +"Eso es ciertamente más claro y fácil de escribir que un par de métodos :meth:" +"`__getattr__`/:meth:`__setattr__` que verifican el atributo :attr:`size` y " +"lo manejan especialmente mientras recuperan todos los demás atributos :attr:" +"`~object.__dict__` de la instancia. Los accesos a :attr:`size` también son " +"los únicos que tienen que realizar el trabajo de llamar a una función, por " +"lo que las referencias a otros atributos se ejecutan a su velocidad habitual." #: ../Doc/whatsnew/2.2.rst:364 msgid "" @@ -443,16 +662,26 @@ msgid "" "`~object.__slots__` to limit the legal attributes to a particular set of " "names. An example will make this clear::" msgstr "" +"Finalmente, es posible restringir la lista de atributos que se pueden " +"referenciar en un objeto usando el nuevo atributo de clase :attr:`~object." +"__slots__`. Los objetos de Python por lo general son muy dinámicos; en " +"cualquier momento es posible definir un nuevo atributo en una instancia " +"haciendo simplemente ``obj.new_attr=1``. Una clase de estilo nuevo puede " +"definir un atributo de clase llamado :attr:`~object.__slots__` para limitar " +"los atributos legales a un conjunto particular de nombres. Un ejemplo hará " +"esto claro::" #: ../Doc/whatsnew/2.2.rst:385 msgid "" "Note how you get an :exc:`AttributeError` on the attempt to assign to an " "attribute not listed in :attr:`~object.__slots__`." msgstr "" +"Toma en cuenta cómo obtienes un :exc:`AttributeError` en el intento de " +"asignar a un atributo que no aparece en :attr:`~object.__slots__`." #: ../Doc/whatsnew/2.2.rst:392 msgid "Related Links" -msgstr "" +msgstr "Enlaces relacionados" #: ../Doc/whatsnew/2.2.rst:394 msgid "" @@ -461,6 +690,10 @@ msgid "" "been simplified or ignored. Where should you go to get a more complete " "picture?" msgstr "" +"Esta sección solo ha sido una descripción rápida de las nuevas " +"características, brindando una explicación suficiente para comenzar a " +"programar, pero muchos detalles se han simplificado o ignorado. ¿Dónde " +"deberías ir para obtener una imagen más completa?" #: ../Doc/whatsnew/2.2.rst:398 msgid "" @@ -470,6 +703,11 @@ msgid "" "it goes into much more detail about the new features while still remaining " "quite easy to read." msgstr "" +"https://docs.python.org/dev/howto/descriptor.html es un extenso tutorial de " +"introducción a las características del descriptor, escrito por Guido van " +"Rossum. Si mi descripción te despertó el apetito, lee este tutorial a " +"continuación, porque entra en mucho más detalle sobre las nuevas " +"características sin dejar de ser bastante fácil de leer." #: ../Doc/whatsnew/2.2.rst:403 msgid "" @@ -482,6 +720,15 @@ msgid "" "explode. Both PEPs were written and implemented by Guido van Rossum, with " "substantial assistance from the rest of the Zope Corp. team." msgstr "" +"A continuación, hay dos PEPs relevantes, :pep:`252` y :pep:`253`. :pep:`252` " +"se titula \"Hacer que los tipos se parezcan más a las clases\", y cubre la " +"API del descriptor. :pep:`253` se titula \"Subtipado de tipos incorporados" +"\", y describe los cambios de los objetos de tipo que hacen posible el " +"subtipo de objetos incorporados. :pep:`253` es la PEP más complicada de las " +"dos, y en algunos puntos las explicaciones necesarias de tipos y meta-tipos " +"pueden causar que tu cabeza explote. Ambas PEPs se escribieron e " +"implementaron por Guido van Rossum con la asistencia sustancial del resto " +"del equipo de Zope Corp." #: ../Doc/whatsnew/2.2.rst:412 msgid "" @@ -490,10 +737,15 @@ msgid "" "should only resort to it after all other avenues have been exhausted, " "including posting a question to python-list or python-dev." msgstr "" +"Finalmente, está la máxima autoridad: el código fuente. La mayoría de la " +"maquinaria para el manejo de tipos está en :file:`Objects/typeobject.c`, " +"pero solo debes recurrir a él después de que se hayan agotado todas las " +"demás vías, incluida la publicación de una pregunta en python-list o python-" +"dev." #: ../Doc/whatsnew/2.2.rst:421 msgid "PEP 234: Iterators" -msgstr "" +msgstr "PEP 234: Iteradores" #: ../Doc/whatsnew/2.2.rst:423 msgid "" @@ -501,12 +753,18 @@ msgid "" "and Python levels. Objects can define how they can be looped over by " "callers." msgstr "" +"Otra adición significativa a la versión 2.2 es una interfaz de iteración " +"tanto a nivel de C como de Python. Los objetos pueden definir cómo pueden " +"ser iterados por quienes los llaman." #: ../Doc/whatsnew/2.2.rst:426 msgid "" "In Python versions up to 2.1, the usual way to make ``for item in obj`` work " "is to define a :meth:`__getitem__` method that looks something like this::" msgstr "" +"En las versiones de Python hasta la 2.1, la forma habitual de hacer que " +"funcione ``for item in obj`` es definir un método :meth:`__getitem__` que se " +"parezca a esto::" #: ../Doc/whatsnew/2.2.rst:432 msgid "" @@ -520,6 +778,16 @@ msgid "" "`__getitem__` method doesn't mean that using ``file[5]`` to randomly access " "the sixth element will work, though it really should." msgstr "" +":meth:`__getitem__` se utiliza más adecuadamente para definir una operación " +"de indexación en un objeto, de modo que se puede escribir ``obj[5]`` para " +"recuperar el sexto elemento. Es un poco engañoso cuando se utiliza esto " +"sólo para soportar bucles :keyword:`for`. Considere algún objeto tipo " +"archivo que quiera ser revisado en bucle; el parámetro *index* no tiene " +"sentido, ya que la clase probablemente asume que se hará una serie de " +"llamadas a :meth:`__getitem__` con *index* incrementándose en uno cada vez. " +"En otras palabras, la presencia del método :meth:`__getitem__` no significa " +"que el uso de ``file[5]`` para acceder al azar al sexto elemento vaya a " +"funcionar, aunque realmente debería hacerlo." #: ../Doc/whatsnew/2.2.rst:442 msgid "" @@ -531,6 +799,14 @@ msgid "" "``iter(C, sentinel)`` returns an iterator that will invoke the callable " "object *C* until it returns *sentinel* to signal that the iterator is done." msgstr "" +"En Python 2.2, la iteración puede implementarse por separado, y los métodos :" +"meth:`__getitem__` pueden limitarse a las clases que realmente soportan el " +"acceso aleatorio. La idea básica de los iteradores es simple. Una nueva " +"función incorporada, ``iter(obj)`` o ``iter(C, sentinel)``, se utiliza para " +"obtener un iterador. ``iter(obj)`` retorna un iterador para el objeto *obj*, " +"mientras que ``iter(C, sentinel)`` retorna un iterador que invocará al " +"objeto invocable *C* hasta que retorne *sentinel* para señalar que el " +"iterador ha terminado." #: ../Doc/whatsnew/2.2.rst:450 msgid "" @@ -542,6 +818,14 @@ msgid "" "extension types that want to behave as iterators can define a :c:member:" "`~PyTypeObject.tp_iternext` function." msgstr "" +"Las clases de Python pueden definir un método :meth:`__iter__`, que debe " +"crear y retornar un nuevo iterador para el objeto; si el objeto es su propio " +"iterador, este método puede simplemente retornar ``self``. En particular, " +"los iteradores suelen ser sus propios iteradores. Los tipos de extensión " +"implementados en C pueden implementar una función :c:member:`~PyTypeObject." +"tp_iter` para retornar un iterador, y los tipos de extensión que quieran " +"comportarse como iteradores pueden definir una función :c:member:" +"`~PyTypeObject.tp_iternext`." #: ../Doc/whatsnew/2.2.rst:457 msgid "" @@ -550,6 +834,10 @@ msgid "" "When there are no more values to be returned, calling :meth:`next` should " "raise the :exc:`StopIteration` exception. ::" msgstr "" +"Entonces, después de todo esto, ¿qué hacen realmente los iteradores? Tienen " +"un método obligatorio, :meth:`next`, que no toma argumentos y retorna el " +"siguiente valor. Cuando no hay más valores que retornar, la llamada a :meth:" +"`next` debería lanzar la excepción :exc:`StopIteration`. ::" #: ../Doc/whatsnew/2.2.rst:478 msgid "" @@ -562,6 +850,14 @@ msgid "" "changed to use the iterator protocol. This means you can do things like " "this::" msgstr "" +"En 2.2, la sentencia :keyword:`for` de Python ya no espera una secuencia; " +"espera algo para lo que :func:`iter` retornará un iterador. Por " +"compatibilidad y comodidad, se construye automáticamente un iterador para " +"las secuencias que no implementan :meth:`__iter__` o una ranura :c:member:" +"`~PyTypeObject.tp_iter`, por lo que ``for i in [1,2,3]`` seguirá " +"funcionando. Dondequiera que el intérprete de Python haga un bucle sobre " +"una secuencia, se ha cambiado para utilizar el protocolo de los iteradores. " +"Esto significa que puedes hacer cosas como esta::" #: ../Doc/whatsnew/2.2.rst:492 msgid "" @@ -569,6 +865,9 @@ msgid "" "func:`iter` on a dictionary will return an iterator which loops over its " "keys::" msgstr "" +"Se ha añadido soporte de iteradores a algunos de los tipos básicos de " +"Python. Llamar a :func:`iter` sobre un diccionario retornará un iterador " +"que hace un bucle sobre sus claves::" #: ../Doc/whatsnew/2.2.rst:512 msgid "" @@ -578,6 +877,12 @@ msgid "" "iterator. In a minor related change, the :keyword:`in` operator now works on " "dictionaries, so ``key in dict`` is now equivalent to ``dict.has_key(key)``." msgstr "" +"Este es el comportamiento por defecto. Si quieres iterar sobre claves, " +"valores o pares clave/valor, puedes llamar explícitamente a los métodos :" +"meth:`iterkeys`, :meth:`itervalues` o :meth:`iteritems` para obtener un " +"iterador apropiado. En un cambio menor relacionado, el operador :keyword:" +"`in` ahora funciona en los diccionarios, por lo que ``key in dict`` es ahora " +"equivalente a ``dict.has_key(key)``." #: ../Doc/whatsnew/2.2.rst:518 msgid "" @@ -585,6 +890,9 @@ msgid "" "until there are no more lines in the file. This means you can now read each " "line of a file using code like this::" msgstr "" +"Los archivos también proporcionan un iterador, que llama al método :meth:" +"`readline` hasta que no hay más líneas en el archivo. Esto significa que " +"ahora puede leer cada línea de un archivo utilizando un código como este::" #: ../Doc/whatsnew/2.2.rst:526 msgid "" @@ -593,26 +901,34 @@ msgid "" "object could provide such additional capabilities, but the iterator protocol " "only requires a :meth:`next` method." msgstr "" +"Tenga en cuenta que sólo puede avanzar en un iterador; no hay forma de " +"obtener el elemento anterior, reiniciar el iterador o hacer una copia del " +"mismo. Un objeto iterador podría proporcionar estas capacidades adicionales, " +"pero el protocolo iterador sólo requiere un método :meth:`next`." #: ../Doc/whatsnew/2.2.rst:535 msgid ":pep:`234` - Iterators" -msgstr "" +msgstr ":pep:`234` - Iteradores" #: ../Doc/whatsnew/2.2.rst:535 msgid "" "Written by Ka-Ping Yee and GvR; implemented by the Python Labs crew, mostly " "by GvR and Tim Peters." msgstr "" +"Escrito por Ka-Ping Yee y GvR; implementado por el equipo de Python Labs, " +"principalmente por GvR y Tim Peters." #: ../Doc/whatsnew/2.2.rst:542 msgid "PEP 255: Simple Generators" -msgstr "" +msgstr "PEP 255: Generadores simples" #: ../Doc/whatsnew/2.2.rst:544 msgid "" "Generators are another new feature, one that interacts with the introduction " "of iterators." msgstr "" +"Los generadores son otra novedad que interactúa con la introducción de los " +"iteradores." #: ../Doc/whatsnew/2.2.rst:547 msgid "" @@ -626,10 +942,20 @@ msgid "" "This is what generators provide; they can be thought of as resumable " "functions." msgstr "" +"Sin duda estás familiarizado con cómo funcionan las llamadas a funciones en " +"Python o C. Cuando llamas a una función, ésta obtiene un espacio de nombres " +"privado donde se crean sus variables locales. Cuando la función llega a una " +"declaración :keyword:`return`, las variables locales se destruyen y el valor " +"resultante se retorna a quien la llamó. Una llamada posterior a la misma " +"función obtendrá un nuevo conjunto de variables locales. Pero, ¿qué pasaría " +"si las variables locales no se tiraran al salir de una función? ¿Qué pasaría " +"si pudieras reanudar la función donde la dejaste? Esto es lo que " +"proporcionan los generadores; se puede pensar en ellos como funciones " +"reanudables." #: ../Doc/whatsnew/2.2.rst:556 msgid "Here's the simplest example of a generator function::" -msgstr "" +msgstr "Este es el ejemplo más sencillo de una función generadora::" #: ../Doc/whatsnew/2.2.rst:562 msgid "" @@ -641,6 +967,15 @@ msgid "" "import generators`` statement near the top of the module's source code. In " "Python 2.3 this statement will become unnecessary." msgstr "" +"Se ha introducido una nueva palabra clave, :keyword:`yield`, para los " +"generadores. Cualquier función que contenga una declaración :keyword:`!" +"yield` es una función generadora; esto es detectado por el compilador de " +"código de bits de Python que compila la función especialmente como " +"resultado. Debido a la introducción de una nueva palabra clave, los " +"generadores deben ser explícitamente habilitados en un módulo incluyendo una " +"declaración ``from __future__ import generators`` cerca de la parte superior " +"del código fuente del módulo. En Python 2.3 esta declaración será " +"innecesaria." #: ../Doc/whatsnew/2.2.rst:570 msgid "" @@ -657,16 +992,31 @@ msgid "" "`try`...\\ :keyword:`finally` statement; read :pep:`255` for a full " "explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" +"Cuando se llama a una función generadora, ésta no retorna un único valor, " +"sino que retorna un objeto generador que soporta el protocolo de los " +"iteradores. Al ejecutar la sentencia :keyword:`yield`, el generador retorna " +"el valor de ``i``, de forma similar a una sentencia :keyword:`return`. La " +"gran diferencia entre :keyword:`!yield` y una sentencia :keyword:`!return` " +"es que al llegar a una sentencia :keyword:`!yield` se suspende el estado de " +"ejecución del generador y se conservan las variables locales. En la " +"siguiente llamada al método ``next()`` del generador, la función se " +"reanudará la ejecución inmediatamente después de la sentencia :keyword:`!" +"yield`. (Por razones complicadas, la sentencia :keyword:`!yield` no está " +"permitida dentro del bloque :keyword:`!try` de una sentencia :keyword:" +"`try`...`\\ :keyword:`finally`; lea :pep:`255` para una explicación completa " +"de la interacción entre :keyword:`!yield` y las excepciones)" #: ../Doc/whatsnew/2.2.rst:583 msgid "Here's a sample usage of the :func:`generate_ints` generator::" -msgstr "" +msgstr "Este es un ejemplo de uso del generador :func:`generate_ints`::" #: ../Doc/whatsnew/2.2.rst:600 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a,b,c = " "generate_ints(3)``." msgstr "" +"También podrías escribir ``for i in generate_ints(5)``, o ``a,b,c = " +"generate_ints(3)``." #: ../Doc/whatsnew/2.2.rst:603 msgid "" @@ -678,6 +1028,13 @@ msgid "" "indicated by raising :exc:`StopIteration` manually, or by just letting the " "flow of execution fall off the bottom of the function." msgstr "" +"Dentro de una función generadora, la sentencia :keyword:`return` sólo puede " +"usarse sin un valor, y señala el final de la procesión de valores; después " +"el generador no puede retornar más valores. :keyword:`!return` con un valor, " +"como ``return 5``, es un error de sintaxis dentro de una función " +"generadora. El final de los resultados del generador también puede " +"indicarse levantando manualmente :exc:`StopIteration`, o simplemente dejando " +"que el flujo de ejecución caiga en el fondo de la función." #: ../Doc/whatsnew/2.2.rst:611 msgid "" @@ -691,6 +1048,15 @@ msgid "" "The simplest one implements an in-order traversal of a tree using generators " "recursively. ::" msgstr "" +"Puedes conseguir el efecto de los generadores manualmente escribiendo tu " +"propia clase y almacenando todas las variables locales del generador como " +"variables de instancia. Por ejemplo, la lución de una lista de enteros " +"podría hacerse estableciendo ``self.count`` a 0, y haciendo que el método :" +"meth:`next` incremente ``self.count`` y lo retorne. Sin embargo, para un " +"generador medianamente complicado, escribir la clase correspondiente sería " +"mucho más complicado. :file:`Lib/test/test_generators.py` contiene varios " +"ejemplos más interesantes. El más sencillo implementa un recorrido en orden " +"de un árbol utilizando generadores de forma recursiva ::" #: ../Doc/whatsnew/2.2.rst:629 msgid "" @@ -700,6 +1066,11 @@ msgid "" "knight to every square of an $NxN$ chessboard without visiting any square " "twice)." msgstr "" +"Otros dos ejemplos en :file:`Lib/test/test_generators.py` producen " +"soluciones para el problema de las N reinas (colocar $N$ reinas en un " +"tablero de ajedrez $NxN$ de forma que ninguna reina amenace a otra) y el " +"recorrido del caballero (una ruta que lleva a un caballo a cada casilla de " +"un tablero de ajedrez $NxN$ sin visitar ninguna casilla dos veces)." #: ../Doc/whatsnew/2.2.rst:634 msgid "" @@ -710,6 +1081,12 @@ msgid "" "\" at https://www.cs.arizona.edu/icon/docs/ipd266.htm gives an idea of what " "this looks like::" msgstr "" +"La idea de los generadores proviene de otros lenguajes de programación, " +"especialmente de Icon (https://www.cs.arizona.edu/icon/), donde la idea de " +"los generadores es fundamental. En Icon, cada expresión y llamada a una " +"función se comporta como un generador. Un ejemplo de \"*An Overview of the " +"Icon Programming Language*\" en https://www.cs.arizona.edu/icon/docs/ipd266." +"htm da una idea de cómo es esto::" #: ../Doc/whatsnew/2.2.rst:644 msgid "" @@ -719,6 +1096,12 @@ msgid "" "Icon retries it with the second value of 23. 23 is greater than 5, so the " "comparison now succeeds, and the code prints the value 23 to the screen." msgstr "" +"En Icon la función :func:`find` retorna los índices en los que se encuentra " +"la subcadena \"o\": 3, 23, 33. En la sentencia :keyword:`if`, a ``i`` se le " +"asigna primero un valor de 3, pero 3 es menor que 5, por lo que la " +"comparación falla, e Icon la reintenta con el segundo valor de 23. 23 es " +"mayor que 5, por lo que la comparación ahora tiene éxito, y el código " +"imprime el valor 23 en la pantalla." #: ../Doc/whatsnew/2.2.rst:650 msgid "" @@ -730,10 +1113,18 @@ msgid "" "represented as a concrete object (the iterator) that can be passed around to " "other functions or stored in a data structure." msgstr "" +"Python no va tan lejos como Icon en la adopción de generadores como concepto " +"central. Los generadores se consideran una nueva parte del núcleo del " +"lenguaje Python, pero aprenderlos o utilizarlos no es obligatorio; si no " +"resuelven ningún problema que tengas, siéntete libre de ignorarlos. Una " +"característica novedosa de la interfaz de Python en comparación con la de " +"Icon es que el estado de un generador se representa como un objeto concreto " +"(el iterador) que puede pasarse a otras funciones o almacenarse en una " +"estructura de datos." #: ../Doc/whatsnew/2.2.rst:662 msgid ":pep:`255` - Simple Generators" -msgstr "" +msgstr ":pep:`255` - Generadores simples" #: ../Doc/whatsnew/2.2.rst:662 msgid "" @@ -741,10 +1132,13 @@ msgid "" "mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python " "Labs crew." msgstr "" +"Escrito por Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implementado " +"principalmente por Neil Schemenauer y Tim Peters, con otras correcciones del " +"equipo de Python Labs." #: ../Doc/whatsnew/2.2.rst:669 msgid "PEP 237: Unifying Long Integers and Integers" -msgstr "" +msgstr "PEP 237: Unificación de enteros largos y enteros" #: ../Doc/whatsnew/2.2.rst:671 msgid "" @@ -758,6 +1152,16 @@ msgid "" "be used as a slice index, and ``'abc'[1L:]`` would raise a :exc:`TypeError` " "exception with the message 'slice index must be int'." msgstr "" +"En versiones recientes, la distinción entre enteros regulares, que son " +"valores de 32 bits en la mayoría de las máquinas, y enteros largos, que " +"pueden tener un tamaño arbitrario, se estaba convirtiendo en una molestia. " +"Por ejemplo, en las plataformas que soportan archivos de más de ``2**32`` " +"bytes, el método :meth:`tell` de los objetos archivo tiene que retornar un " +"entero largo. Sin embargo, había varias partes de Python que esperaban " +"números enteros simples y que daban un error si se proporcionaba un número " +"entero largo en su lugar. Por ejemplo, en Python 1.5, sólo podían usarse " +"enteros normales como índice de corte, y ``'abc'[1L:]`` lanzaba una " +"excepción :exc:`TypeError` con el mensaje 'slice index must be int'." #: ../Doc/whatsnew/2.2.rst:681 msgid "" @@ -769,6 +1173,13 @@ msgid "" "to raise an :exc:`OverflowError` will now return a long integer as their " "result. For example::" msgstr "" +"Python 2.2 cambiará los valores de enteros cortos a enteros largos según sea " +"necesario. El sufijo 'L' ya no es necesario para indicar un literal entero " +"largo, ya que ahora el compilador elegirá el tipo apropiado. (El uso del " +"sufijo 'L' se desaconsejará en futuras versiones 2.x de Python, provocando " +"una advertencia en Python 2.4, y probablemente se eliminará en Python 3.0) " +"Muchas operaciones que solían lanzar un :exc:`OverflowError` ahora " +"retornarán un entero largo como resultado. Por ejemplo::" #: ../Doc/whatsnew/2.2.rst:694 msgid "" @@ -776,20 +1187,25 @@ msgid "" "You can still distinguish them with the :func:`type` built-in function, but " "that's rarely needed." msgstr "" +"En la mayoría de los casos, los enteros y los enteros largos se tratarán " +"ahora de forma idéntica. Todavía se pueden distinguir con la función " +"incorporada :func:`type`, pero rara vez se necesita." #: ../Doc/whatsnew/2.2.rst:702 msgid ":pep:`237` - Unifying Long Integers and Integers" -msgstr "" +msgstr ":pep:`237` - Unificación de enteros largos y enteros" #: ../Doc/whatsnew/2.2.rst:702 msgid "" "Written by Moshe Zadka and Guido van Rossum. Implemented mostly by Guido " "van Rossum." msgstr "" +"Escrito por Moshe Zadka y Guido van Rossum. Implementado principalmente por " +"Guido van Rossum." #: ../Doc/whatsnew/2.2.rst:709 msgid "PEP 238: Changing the Division Operator" -msgstr "" +msgstr "PEP 238: Cambio del operador de división" #: ../Doc/whatsnew/2.2.rst:711 msgid "" @@ -803,6 +1219,16 @@ msgid "" "the two operands and because Python is dynamically typed, it can be " "difficult to determine the possible types of the operands." msgstr "" +"El cambio más controvertido de Python 2.2 anuncia el inicio de un esfuerzo " +"por arreglar un viejo defecto de diseño que ha estado en Python desde el " +"principio. Actualmente, el operador de división de Python, ``/``, se " +"comporta como el operador de división de C cuando se le presentan dos " +"argumentos enteros: retorna un resultado entero que se trunca cuando hay una " +"parte fraccionaria. Por ejemplo, ``3/2`` es 1, no 1,5, y ``(-1)/2`` es -1, " +"no -0,5. Esto significa que los resultados de la división pueden variar " +"inesperadamente dependiendo del tipo de los dos operandos y, como Python " +"está tipado dinámicamente, puede ser difícil determinar los posibles tipos " +"de los operandos." #: ../Doc/whatsnew/2.2.rst:721 msgid "" @@ -813,6 +1239,13 @@ msgid "" "either side here and will stick to describing what's implemented in 2.2. " "Read :pep:`238` for a summary of arguments and counter-arguments.)" msgstr "" +"(La controversia se centra en si esto es *realmente* un defecto de diseño, y " +"si vale la pena romper el código existente para arreglarlo. Ha provocado " +"interminables discusiones en python-dev, y en julio de 2001 estalló una " +"tormenta de publicaciones ácidamente sarcásticas en :newsgroup:`comp.lang." +"python`. No argumentaré aquí a favor de ninguno de los dos bandos y me " +"limitaré a describir lo que se ha implementado en la 2.2. Lea :pep:`238` " +"para un resumen de los argumentos y contra-argumentos)" #: ../Doc/whatsnew/2.2.rst:728 msgid "" @@ -820,6 +1253,9 @@ msgid "" "Python 2.2 begins the transition, but the switch won't be complete until " "Python 3.0." msgstr "" +"Debido a que este cambio podría romper el código, se está introduciendo de " +"forma muy gradual. Python 2.2 comienza la transición, pero el cambio no será " +"completo hasta Python 3.0." #: ../Doc/whatsnew/2.2.rst:732 msgid "" @@ -832,10 +1268,20 @@ msgid "" "operands are integers, and returns the result of true division when one of " "the operands is a floating-point number." msgstr "" +"En primer lugar, tomaré prestada alguna terminología de :pep:`238`. La " +"\"división verdadera\" es la división con la que la mayoría de los no " +"programadores están familiarizados: 3/2 es 1,5, 1/4 es 0,25, y así " +"sucesivamente. La \"división por el piso\" es lo que hace actualmente el " +"operador ``/`` de Python cuando se le dan operandos enteros; el resultado es " +"el piso del valor retornado por la división verdadera. La \"división clásica" +"\" es el comportamiento mixto actual de ``/``; retorna el resultado de la " +"división por el suelo cuando los operandos son enteros, y retorna el " +"resultado de la división verdadera cuando uno de los operandos es un número " +"de punto flotante." #: ../Doc/whatsnew/2.2.rst:740 msgid "Here are the changes 2.2 introduces:" -msgstr "" +msgstr "Estos son los cambios que introduce la versión 2.2:" #: ../Doc/whatsnew/2.2.rst:742 msgid "" @@ -844,12 +1290,18 @@ msgid "" "no matter what the types of its operands are, so ``1 // 2`` is 0 and " "``1.0 // 2.0`` is also 0.0." msgstr "" +"Un nuevo operador, ``//``, es el operador de división por el suelo. (Sí, ya " +"sabemos que se parece al símbolo de comentario de C++.) ``//`` *siempre* " +"realiza la división por el suelo sin importar los tipos de sus operandos, " +"así que ``1 // 2`` es 0 y ``1.0 // 2.0`` también es 0.0." #: ../Doc/whatsnew/2.2.rst:747 msgid "" "``//`` is always available in Python 2.2; you don't need to enable it using " "a ``__future__`` statement." msgstr "" +"``//` está siempre disponible en Python 2.2; no es necesario habilitarlo " +"mediante una sentencia ``__future__``." #: ../Doc/whatsnew/2.2.rst:750 msgid "" @@ -858,6 +1310,11 @@ msgid "" "is 0.5. Without the ``__future__`` statement, ``/`` still means classic " "division. The default meaning of ``/`` will not change until Python 3.0." msgstr "" +"Al incluir una declaración ``from __future__ import division`` en un módulo, " +"el operador ``/`` se cambiará para retornar el resultado de la división " +"verdadera, por lo que ``1/2`` es 0,5. Sin la declaración ``__future__``, ``/" +"`` sigue significando la división clásica. El significado por defecto de ``/" +"`` no cambiará hasta Python 3.0." #: ../Doc/whatsnew/2.2.rst:755 msgid "" @@ -866,6 +1323,10 @@ msgid "" "there are also slots in the :c:type:`PyNumberMethods` structure so extension " "types can define the two operators." msgstr "" +"Las clases pueden definir métodos llamados :meth:`__truediv__` y :meth:" +"`__floordiv__` para sobrecargar los dos operadores de división. En el nivel " +"C, también hay ranuras en la estructura :c:type:`PyNumberMethods` para que " +"los tipos de extensión puedan definir los dos operadores." #: ../Doc/whatsnew/2.2.rst:760 msgid "" @@ -876,20 +1337,29 @@ msgid "" "and fix it. By default, Python 2.2 will simply perform classic division " "without a warning; the warning will be turned on by default in Python 2.3." msgstr "" +"Python 2.2 admite algunos argumentos de línea de comandos para comprobar si " +"el código funcionará con la semántica de división modificada. Ejecutar " +"python con :option:`!-Q warn` hará que se emita una advertencia cada vez que " +"se aplique la división a dos enteros. Puedes usar esto para encontrar el " +"código que está afectado por el cambio y arreglarlo. Por defecto, Python " +"2.2 simplemente realizará la división clásica sin una advertencia; la " +"advertencia se activará por defecto en Python 2.3." #: ../Doc/whatsnew/2.2.rst:770 msgid ":pep:`238` - Changing the Division Operator" -msgstr "" +msgstr ":pep:`238` - Cambio del operador de división" #: ../Doc/whatsnew/2.2.rst:771 msgid "" "Written by Moshe Zadka and Guido van Rossum. Implemented by Guido van " "Rossum.." msgstr "" +"Escrito por Moshe Zadka y Guido van Rossum. Implementado por Guido van " +"Rossum.." #: ../Doc/whatsnew/2.2.rst:777 msgid "Unicode Changes" -msgstr "" +msgstr "Cambios en Unicode" #: ../Doc/whatsnew/2.2.rst:779 msgid "" @@ -900,6 +1370,13 @@ msgid "" "script. (It's also possible to specify :option:`!--disable-unicode` to " "completely disable Unicode support.)" msgstr "" +"El soporte de Unicode de Python se ha mejorado un poco en la versión 2.2. " +"Las cadenas Unicode se almacenan normalmente como UCS-2, como enteros sin " +"signo de 16 bits. Python 2.2 también puede ser compilado para usar UCS-4, " +"enteros sin signo de 32 bits, como su codificación interna suministrando :" +"option:`!--enable-unicode=ucs4` al script de configuración. (También es " +"posible especificar :option:`!--disable-unicode` para desactivar " +"completamente el soporte de Unicode)" #: ../Doc/whatsnew/2.2.rst:786 msgid "" @@ -911,6 +1388,14 @@ msgid "" "exception. This is all described in :pep:`261`, \"Support for 'wide' Unicode " "characters\"; consult it for further details." msgstr "" +"Cuando se compila para usar UCS-4 (un \"Python amplio\"), el intérprete " +"puede manejar de forma nativa caracteres Unicode desde U+000000 hasta U" +"+110000, por lo que el rango de valores legales para la función :func:" +"`unichr` se expande en consecuencia. Utilizando un intérprete compilado " +"para usar UCS-2 (un \"Python estrecho\"), los valores mayores de 65535 " +"seguirán provocando que :func:`unichr` lance una excepción :exc:" +"`ValueError`. Todo esto se describe en :pep:`261`, \"Soporte para caracteres " +"Unicode 'anchos'\"; consúltelo para más detalles." #: ../Doc/whatsnew/2.2.rst:794 msgid "" @@ -922,6 +1407,13 @@ msgid "" "specified encoding and decodes it, returning whatever is returned by the " "codec." msgstr "" +"Otro cambio es más sencillo de explicar. Desde su introducción, las cadenas " +"Unicode han soportado un método :meth:`encode` para convertir la cadena a " +"una codificación seleccionada como UTF-8 o Latin-1. Un método simétrico " +"``decode([*encoding*])`` ha sido añadido a las cadenas de 8 bits (aunque no " +"a las cadenas Unicode) en 2.2. :meth:`decode` asume que la cadena está en la " +"codificación especificada y la decodifica, retornando lo que sea retornado " +"por el códec." #: ../Doc/whatsnew/2.2.rst:801 msgid "" @@ -929,12 +1421,18 @@ msgid "" "related to Unicode. For example, codecs have been added for uu-encoding, " "MIME's base64 encoding, and compression with the :mod:`zlib` module::" msgstr "" +"Gracias a esta nueva función, se han añadido códecs para tareas no " +"relacionadas directamente con Unicode. Por ejemplo, se han añadido códecs " +"para la codificación uu, la codificación base64 de MIME y la compresión con " +"el módulo :mod:`zlib`::" #: ../Doc/whatsnew/2.2.rst:822 msgid "" "To convert a class instance to Unicode, a :meth:`__unicode__` method can be " "defined by a class, analogous to :meth:`__str__`." msgstr "" +"Para convertir una instancia de clase a Unicode, se puede definir un método :" +"meth:`__unicode__` por clase, análogo a :meth:`__str__`." #: ../Doc/whatsnew/2.2.rst:825 msgid "" @@ -942,18 +1440,21 @@ msgid "" "Marc-André Lemburg. The changes to support using UCS-4 internally were " "implemented by Fredrik Lundh and Martin von Löwis." msgstr "" +":meth:`encode`, :meth:`decode`, y :meth:`__unicode__` fueron implementados " +"por Marc-André Lemburg. Los cambios para soportar el uso de UCS-4 " +"internamente fueron implementados por Fredrik Lundh y Martin von Löwis." #: ../Doc/whatsnew/2.2.rst:832 msgid ":pep:`261` - Support for 'wide' Unicode characters" -msgstr "" +msgstr ":pep:`261` - Soporte para caracteres Unicode 'anchos'" #: ../Doc/whatsnew/2.2.rst:833 msgid "Written by Paul Prescod." -msgstr "" +msgstr "Escrito por Paul Prescod." #: ../Doc/whatsnew/2.2.rst:839 msgid "PEP 227: Nested Scopes" -msgstr "" +msgstr "PEP 227: Ámbitos anidados" #: ../Doc/whatsnew/2.2.rst:841 msgid "" @@ -964,6 +1465,13 @@ msgid "" "scopes from my \"What's New in Python 2.1\" document; if you read it when " "2.1 came out, you can skip the rest of this section." msgstr "" +"En Python 2.1, los ámbitos anidados estáticamente se añadieron como una " +"característica opcional, que se activaba mediante una directiva ``from " +"__future__ import nested_scopes``. En 2.2 los ámbitos anidados ya no " +"necesitan ser habilitados especialmente, y ahora están siempre presentes. " +"El resto de esta sección es una copia de la descripción de los ámbitos " +"anidados de mi documento \"What's New in Python 2.1\"; si lo leíste cuando " +"salió la 2.1, puedes saltarte el resto de esta sección." #: ../Doc/whatsnew/2.2.rst:848 msgid "" @@ -974,6 +1482,12 @@ msgid "" "their intuitive expectations. For example, a nested recursive function " "definition doesn't work::" msgstr "" +"El mayor cambio introducido en Python 2.1, y completado en 2.2, es el de las " +"reglas de alcance de Python. En Python 2.0, en cualquier momento hay como " +"máximo tres espacios de nombres utilizados para buscar nombres de variables: " +"local, a nivel de módulo y el espacio de nombres incorporado. Esto a menudo " +"sorprendía a la gente porque no coincidía con sus expectativas intuitivas. " +"Por ejemplo, una definición de función recursiva anidada no funciona::" #: ../Doc/whatsnew/2.2.rst:862 msgid "" @@ -986,12 +1500,22 @@ msgid "" "find local variables being copied by passing them as the default values of " "arguments. ::" msgstr "" +"La función :func:`g` siempre lanzará una excepción :exc:`NameError`, porque " +"el enlace del nombre ``g`` no está ni en su espacio de nombres local ni en " +"el espacio de nombres a nivel de módulo. Esto no es un gran problema en la " +"práctica (¿con qué frecuencia se definen recursivamente funciones interiores " +"como ésta?), pero esto también hacía más torpe el uso de la expresión :" +"keyword:`lambda`, y esto era un problema en la práctica. En el código que " +"utiliza :keyword:`!lambda` a menudo se pueden encontrar variables locales " +"que se copian al pasarlas como valores por defecto de los argumentos. ::" #: ../Doc/whatsnew/2.2.rst:876 msgid "" "The readability of Python code written in a strongly functional style " "suffers greatly as a result." msgstr "" +"La legibilidad del código Python escrito en un estilo fuertemente funcional " +"sufre mucho como resultado." #: ../Doc/whatsnew/2.2.rst:879 msgid "" @@ -1004,6 +1528,15 @@ msgid "" "local namespace of the enclosing scope. A more detailed explanation of the " "rules, and a dissection of the implementation, can be found in the PEP." msgstr "" +"El cambio más significativo de Python 2.2 es que se ha añadido al lenguaje " +"el ámbito estático para solucionar este problema. Como primer efecto, el " +"argumento por defecto ``name=name`` es ahora innecesario en el ejemplo " +"anterior. En pocas palabras, cuando a un nombre de variable dado no se le " +"asigna un valor dentro de una función (mediante una asignación, o las " +"sentencias :keyword:`def`, :keyword:`class`, o :keyword:`import`), las " +"referencias a la variable se buscarán en el espacio de nombres local del " +"ámbito que la rodea. Puede encontrar una explicación más detallada de las " +"reglas y una disección de la implementación en el PEP." #: ../Doc/whatsnew/2.2.rst:888 msgid "" @@ -1013,6 +1546,11 @@ msgid "" "rather unlikely though, since such code would have been pretty confusing to " "read in the first place." msgstr "" +"Este cambio puede causar algunos problemas de compatibilidad para el código " +"en el que el mismo nombre de variable se utiliza tanto a nivel de módulo " +"como de variable local dentro de una función que contiene otras definiciones " +"de función. Sin embargo, esto parece bastante improbable, ya que dicho " +"código habría sido bastante confuso de leer en primer lugar." #: ../Doc/whatsnew/2.2.rst:894 msgid "" @@ -1029,10 +1567,25 @@ msgid "" "function definitions or :keyword:`lambda` expressions with free variables, " "the compiler will flag this by raising a :exc:`SyntaxError` exception." msgstr "" +"Un efecto secundario del cambio es que las sentencias ``from module import " +"*`` y ``exec`` se han hecho ilegales dentro del ámbito de una función bajo " +"ciertas condiciones. El manual de referencia de Python ha dicho todo el " +"tiempo que ``from module import *`` sólo es legal en el nivel superior de un " +"módulo, pero el intérprete de CPython nunca ha aplicado esto antes. Como " +"parte de la implementación de los ámbitos anidados, el compilador que " +"convierte el código fuente de Python en bytecodes tiene que generar un " +"código diferente para acceder a las variables de un ámbito contenedor. Los " +"códigos ``from module import *`` y ``exec`` hacen que el compilador no pueda " +"averiguar esto, porque añaden nombres al espacio de nombres local que son " +"desconocidos en tiempo de compilación. Por lo tanto, si una función contiene " +"definiciones de funciones o expresiones :keyword:`lambda` con variables " +"libres, el compilador lo señalará lanzando una excepción :exc:`SyntaxError`." #: ../Doc/whatsnew/2.2.rst:907 msgid "To make the preceding explanation a bit clearer, here's an example::" msgstr "" +"Para que la explicación anterior quede un poco más clara, he aquí un " +"ejemplo::" #: ../Doc/whatsnew/2.2.rst:916 msgid "" @@ -1040,6 +1593,9 @@ msgid "" "would define a new local variable named ``x`` whose value should be accessed " "by :func:`g`." msgstr "" +"La línea 4 que contiene la sentencia ``exec`` es un error de sintaxis, ya " +"que ``exec`` definiría una nueva variable local llamada ``x`` cuyo valor " +"debería ser accedido por :func:`g`." #: ../Doc/whatsnew/2.2.rst:920 msgid "" @@ -1047,18 +1603,21 @@ msgid "" "most Python code (and when it is used, it's often a sign of a poor design " "anyway)." msgstr "" +"Esto no debería ser una gran limitación, ya que ``exec`` rara vez se utiliza " +"en la mayoría del código de Python (y cuando se utiliza, a menudo es un " +"signo de un mal diseño de todos modos)." #: ../Doc/whatsnew/2.2.rst:927 msgid ":pep:`227` - Statically Nested Scopes" -msgstr "" +msgstr ":pep:`227` - Ámbitos anidados estáticamente" #: ../Doc/whatsnew/2.2.rst:928 msgid "Written and implemented by Jeremy Hylton." -msgstr "" +msgstr "Escrito e implementado por Jeremy Hylton." #: ../Doc/whatsnew/2.2.rst:934 msgid "New and Improved Modules" -msgstr "" +msgstr "Módulos nuevos y mejorados" #: ../Doc/whatsnew/2.2.rst:936 msgid "" @@ -1068,6 +1627,12 @@ msgid "" "example, the following snippet retrieves a list of RSS channels from the " "O'Reilly Network, and then lists the recent headlines for one channel::" msgstr "" +"El módulo :mod:`xmlrpclib` fue aportado a la biblioteca estándar por Fredrik " +"Lundh, proporcionando soporte para escribir clientes XML-RPC. XML-RPC es un " +"sencillo protocolo de llamada a procedimientos remotos construido sobre HTTP " +"y XML. Por ejemplo, el siguiente fragmento recupera una lista de canales RSS " +"de la red O'Reilly y, a continuación, muestra los titulares recientes de un " +"canal::" #: ../Doc/whatsnew/2.2.rst:959 msgid "" @@ -1075,12 +1640,17 @@ msgid "" "XML-RPC servers. See http://xmlrpc.scripting.com/ for more information " "about XML-RPC." msgstr "" +"El módulo :mod:`SimpleXMLRPCServer` facilita la creación de servidores XML-" +"RPC sencillos. Consulte http://xmlrpc.scripting.com/ para obtener más " +"información sobre XML-RPC." #: ../Doc/whatsnew/2.2.rst:962 msgid "" "The new :mod:`hmac` module implements the HMAC algorithm described by :rfc:" "`2104`. (Contributed by Gerhard Häring.)" msgstr "" +"El nuevo módulo :mod:`hmac` implementa el algoritmo HMAC descrito por :rfc:" +"`2104`. (Contribución de Gerhard Häring)" #: ../Doc/whatsnew/2.2.rst:965 msgid "" @@ -1091,6 +1661,12 @@ msgid "" "mod:`os` module, and :func:`localtime`, :func:`gmtime`, and :func:`strptime` " "in the :mod:`time` module." msgstr "" +"Varias funciones que originalmente retornaban tuplas largas ahora retornan " +"pseudo-secuencias que siguen comportándose como tuplas pero que también " +"tienen atributos mnemónicos como memberst_mtime o :attr:`tm_year`. Las " +"funciones mejoradas incluyen :func:`stat`, :func:`fstat`, :func:`statvfs` y :" +"func:`fstatvfs` en el módulo :mod:`os`, y :func:`localtime`, :func:`gmtime` " +"y :func:`strptime` en el módulo :mod:`time`." #: ../Doc/whatsnew/2.2.rst:972 msgid "" @@ -1099,10 +1675,14 @@ msgid "" "now this can be written more clearly as ``file_size = os.stat(filename)." "st_size``." msgstr "" +"Por ejemplo, para obtener el tamaño de un archivo utilizando las antiguas " +"tuplas, se terminaba escribiendo algo como ``tamaño_de_archivo = os." +"stat(nombre_de_archivo)[stat.ST_SIZE]``, pero ahora se puede escribir más " +"claramente como ``tamaño_de_archivo = os.stat(nombre_de_archivo).st_size``." #: ../Doc/whatsnew/2.2.rst:976 msgid "The original patch for this feature was contributed by Nick Mathewson." -msgstr "" +msgstr "El parche original para esta función fue aportado por Nick Mathewson." #: ../Doc/whatsnew/2.2.rst:978 msgid "" @@ -1110,6 +1690,9 @@ msgid "" "output have been corrected. (Contributed by Fred L. Drake, Jr. and Tim " "Peters.)" msgstr "" +"El perfilador de Python ha sido ampliamente revisado y se han corregido " +"varios errores en su salida. (Contribución de Fred L. Drake, Jr. y Tim " +"Peters)" #: ../Doc/whatsnew/2.2.rst:981 msgid "" @@ -1117,6 +1700,9 @@ msgid "" "option:`!--enable-ipv6` option to Python's configure script. (Contributed " "by Jun-ichiro \"itojun\" Hagino.)" msgstr "" +"El módulo :mod:`socket` puede ser compilado para soportar IPv6; especifica " +"la opción :option:`!--enable-ipv6` al script configure de Python. " +"(Contribución de Jun-ichiro \"itojun\" Hagino)" #: ../Doc/whatsnew/2.2.rst:985 msgid "" @@ -1125,6 +1711,11 @@ msgid "" "for a signed 64-bit integer, and ``Q`` is for an unsigned one. The value is " "returned in Python's long integer type. (Contributed by Tim Peters.)" msgstr "" +"Se han añadido dos nuevos caracteres de formato al módulo :mod:`struct` para " +"enteros de 64 bits en plataformas que soportan el tipo C :c:type:`long " +"long`. ``q`` es para un entero de 64 bits con signo, y ``Q`` es para uno " +"sin signo. El valor se retorna en el tipo entero largo de Python. " +"(Contribuido por Tim Peters.)" #: ../Doc/whatsnew/2.2.rst:990 msgid "" @@ -1136,6 +1727,12 @@ msgid "" "their help text. (Contributed by Guido van Rossum, using Ka-Ping Yee's :mod:" "`pydoc` module.)" msgstr "" +"En el modo interactivo del intérprete, hay una nueva función incorporada :" +"func:`help` que utiliza el módulo :mod:`pydoc` introducido en Python 2.1 " +"para proporcionar ayuda interactiva. :func:`help` sin ningún argumento te " +"sitúa en una utilidad de ayuda online, donde puedes introducir los nombres " +"de las funciones, clases o módulos para leer su texto de ayuda. (Contribuido " +"por Guido van Rossum, usando el módulo :mod:`pydoc` de Ka-Ping Yee)" #: ../Doc/whatsnew/2.2.rst:998 msgid "" @@ -1147,6 +1744,14 @@ msgid "" "the non-overlapping matches in a given string. (SRE is maintained by " "Fredrik Lundh. The BIGCHARSET patch was contributed by Martin von Löwis.)" msgstr "" +"Se han realizado varias correcciones de errores y mejoras de rendimiento en " +"el motor SRE subyacente al módulo :mod:`re`. Por ejemplo, las funciones :" +"func:`re.sub` y :func:`re.split` han sido reescritas en C. Otro parche " +"contribuido acelera ciertos rangos de caracteres Unicode por un factor de " +"dos, y un nuevo método :meth:`finditer` que retorna un iterador sobre todas " +"las coincidencias no superpuestas en una cadena dada. (El mantenimiento de " +"SRE corre a cargo de Fredrik Lundh. El parche BIGCHARSET fue aportado por " +"Martin von Löwis)" #: ../Doc/whatsnew/2.2.rst:1006 msgid "" @@ -1155,6 +1760,11 @@ msgid "" "program and the mail transport agent being handed a message. :mod:`smtplib` " "also supports SMTP authentication. (Contributed by Gerhard Häring.)" msgstr "" +"El módulo :mod:`smtplib` soporta ahora :rfc:`2487`, \"Secure SMTP over TLS" +"\", por lo que ahora es posible cifrar el tráfico SMTP entre un programa " +"Python y el agente de transporte de correo que recibe un mensaje. :mod:" +"`smtplib` también soporta la autenticación SMTP. (Contribución de Gerhard " +"Häring)" #: ../Doc/whatsnew/2.2.rst:1011 msgid "" @@ -1163,6 +1773,9 @@ msgid "" "SORT, GETACL and SETACL. (Contributed by Anthony Baxter and Michel " "Pelletier.)" msgstr "" +"El módulo :mod:`imaplib`, mantenido por Piers Lauder, tiene soporte para " +"varias extensiones nuevas: la extensión NAMESPACE definida en :rfc:`2342`, " +"SORT, GETACL y SETACL. (Contribución de Anthony Baxter y Michel Pelletier)" #: ../Doc/whatsnew/2.2.rst:1015 msgid "" @@ -1172,6 +1785,12 @@ msgid "" "added for parsing and generating e-mail messages. (Contributed by Barry " "Warsaw, and arising out of his work on Mailman.)" msgstr "" +"El módulo :mod:`rfc822` que analiza las direcciones de correo electrónico " +"cumple ahora con :rfc:`2822`, una actualización de :rfc:`822`. (El nombre " +"del módulo *no* se va a cambiar a ``rfc2822``.) También se ha añadido un " +"nuevo paquete, :mod:`email`, para analizar y generar mensajes de correo " +"electrónico. (Contribuido por Barry Warsaw, y surgido de su trabajo en " +"Mailman)" #: ../Doc/whatsnew/2.2.rst:1021 msgid "" @@ -1183,6 +1802,13 @@ msgid "" "contributed by David Goodger, from ndiff.py code by Tim Peters who then did " "the generatorization.)" msgstr "" +"El módulo :mod:`difflib` contiene ahora una nueva clase :class:`Differ` para " +"producir listas legibles por humanos de cambios (un \"delta\") entre dos " +"secuencias de líneas de texto. También hay dos funciones generadoras, :func:" +"`ndiff` y :func:`restore`, que retornan respectivamente un delta de dos " +"secuencias, o una de las secuencias originales de un delta. (Trabajo de " +"gruñido contribuido por David Goodger, a partir del código ndiff.py de Tim " +"Peters que luego hizo la generización)" #: ../Doc/whatsnew/2.2.rst:1028 msgid "" @@ -1195,6 +1821,15 @@ msgid "" "fixed to use :const:`ascii_letters` instead. (Reported by an unknown person; " "fixed by Fred L. Drake, Jr.)" msgstr "" +"Se han añadido las nuevas constantes :const:`ascii_letters`, :const:" +"`ascii_lowercase` y :const:`ascii_uppercase` al módulo :mod:`string`. Había " +"varios módulos en la biblioteca estándar que utilizaban :const:`string." +"letters` para referirse a los rangos A-Za-z, pero esa suposición es " +"incorrecta cuando se utilizan locales, porque :const:`string.letters` varía " +"dependiendo del conjunto de caracteres legales definidos por el local " +"actual. Los módulos con errores se han corregido para que utilicen :const:" +"`ascii_letters` en su lugar. (Informado por una persona desconocida; " +"corregido por Fred L. Drake, Jr.)" #: ../Doc/whatsnew/2.2.rst:1037 msgid "" @@ -1202,6 +1837,10 @@ msgid "" "databases by the addition of a :class:`MimeTypes` class, which takes a list " "of filenames to be parsed. (Contributed by Fred L. Drake, Jr.)" msgstr "" +"El módulo :mod:`mimetypes` facilita ahora el uso de bases de datos de tipos " +"MIME alternativos mediante la adición de una clase :class:`MimeTypes`, que " +"toma una lista de nombres de archivo para ser analizados. (Contribución de " +"Fred L. Drake, Jr.)" #: ../Doc/whatsnew/2.2.rst:1041 msgid "" @@ -1209,10 +1848,13 @@ msgid "" "scheduling an activity to happen at some future time. (Contributed by " "Itamar Shtull-Trauring.)" msgstr "" +"Se ha añadido una clase :class:`Timer` al módulo :mod:`threading` que " +"permite programar una actividad para que ocurra en algún momento futuro. " +"(Contribución de Itamar Shtull-Trauring)" #: ../Doc/whatsnew/2.2.rst:1049 msgid "Interpreter Changes and Fixes" -msgstr "" +msgstr "Cambios y correcciones en el intérprete" #: ../Doc/whatsnew/2.2.rst:1051 msgid "" @@ -1222,6 +1864,11 @@ msgid "" "write Python code, none of the changes described here will affect you very " "much." msgstr "" +"Algunos de los cambios sólo afectan a la gente que trata con el intérprete " +"de Python a nivel de C porque están escribiendo módulos de extensión de " +"Python, incrustando el intérprete, o simplemente hackeando el propio " +"intérprete. Si sólo escribes código Python, ninguno de los cambios descritos " +"aquí te afectará mucho." #: ../Doc/whatsnew/2.2.rst:1056 msgid "" @@ -1234,6 +1881,15 @@ msgid "" "exist, and have simply been changed to use the new C-level interface. " "(Contributed by Fred L. Drake, Jr.)" msgstr "" +"Las funciones de perfilado y rastreo pueden implementarse ahora en C, que " +"puede operar a velocidades mucho mayores que las funciones basadas en Python " +"y debería reducir la sobrecarga de perfilado y rastreo. Esto será de " +"interés para los autores de entornos de desarrollo para Python. Se han " +"añadido dos nuevas funciones en C a la API de Python, :c:func:" +"`PyEval_SetProfile` y :c:func:`PyEval_SetTrace`. Las funciones :func:`sys." +"setprofile` y :func:`sys.settrace` existentes siguen existiendo, y " +"simplemente se han cambiado para utilizar la nueva interfaz de nivel C. " +"(Contribución de Fred L. Drake, Jr.)" #: ../Doc/whatsnew/2.2.rst:1065 msgid "" @@ -1245,6 +1901,13 @@ msgid "" "looping over all the thread states for a given interpreter. (Contributed by " "David Beazley.)" msgstr "" +"Se ha añadido otra API de bajo nivel, principalmente de interés para los " +"implementadores de depuradores y herramientas de desarrollo de Python. :c:" +"func:`PyInterpreterState_Head` y :c:func:`PyInterpreterState_Next` permiten " +"al usuario recorrer todos los objetos intérpretes existentes; :c:func:" +"`PyInterpreterState_ThreadHead` y :c:func:`PyThreadState_Next` permiten " +"recorrer todos los estados de los hilos de un intérprete dado. " +"(Contribución de David Beazley)" #: ../Doc/whatsnew/2.2.rst:1072 msgid "" @@ -1256,41 +1919,57 @@ msgid "" "collection, so updating them for 2.2 should be considered fairly high " "priority." msgstr "" +"La interfaz a nivel de C para el recolector de basura ha sido cambiada para " +"facilitar la escritura de tipos de extensión que soporten la recolección de " +"basura y para depurar los malos usos de las funciones. Varias funciones " +"tienen una semántica ligeramente diferente, por lo que hubo que cambiar el " +"nombre de un montón de funciones. Las extensiones que utilizan la antigua " +"API seguirán compilando pero *no* participarán en la recolección de basura, " +"por lo que actualizarlas para la 2.2 debería considerarse de alta prioridad." #: ../Doc/whatsnew/2.2.rst:1079 msgid "" "To upgrade an extension module to the new API, perform the following steps:" msgstr "" +"Para actualizar un módulo de extensión a la nueva API, realice los " +"siguientes pasos:" #: ../Doc/whatsnew/2.2.rst:1081 msgid "Rename :c:func:`Py_TPFLAGS_GC` to :c:func:`PyTPFLAGS_HAVE_GC`." msgstr "" +"Cambia el nombre de :c:func:`Py_TPFLAGS_GC` a :c:func:`PyTPFLAGS_HAVE_GC`." #: ../Doc/whatsnew/2.2.rst:1084 msgid "" "Use :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar` to allocate" msgstr "" +"Utilice :c:func:`PyObject_GC_New` o :c:func:`PyObject_GC_NewVar` para asignar" #: ../Doc/whatsnew/2.2.rst:1084 msgid "objects, and :c:func:`PyObject_GC_Del` to deallocate them." -msgstr "" +msgstr "objetos, y :c:func:`PyObject_GC_Del` para desocuparlos." #: ../Doc/whatsnew/2.2.rst:1087 msgid "Rename :c:func:`PyObject_GC_Init` to :c:func:`PyObject_GC_Track` and" msgstr "" +"Cambiar el nombre de :c:func:`PyObject_GC_Init` a :c:func:" +"`PyObject_GC_Track` y" #: ../Doc/whatsnew/2.2.rst:1087 msgid ":c:func:`PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." -msgstr "" +msgstr ":c:func:`PyObject_GC_Fini` a :c:func:`PyObject_GC_UnTrack`." #: ../Doc/whatsnew/2.2.rst:1089 msgid "Remove :c:func:`PyGC_HEAD_SIZE` from object size calculations." msgstr "" +"Eliminar :c:func:`PyGC_HEAD_SIZE` del cálculo del tamaño de los objetos." #: ../Doc/whatsnew/2.2.rst:1091 msgid "" "Remove calls to :c:func:`PyObject_AS_GC` and :c:func:`PyObject_FROM_GC`." msgstr "" +"Eliminar las llamadas a :c:func:`PyObject_AS_GC` y :c:func:" +"`PyObject_FROM_GC`." #: ../Doc/whatsnew/2.2.rst:1093 msgid "" @@ -1303,6 +1982,15 @@ msgid "" "converts them to the specified new encoding. (Contributed by M.-A. Lemburg, " "and used for the MBCS support on Windows described in the following section.)" msgstr "" +"Se ha añadido una nueva secuencia de formato ``et`` a :c:func:" +"`PyArg_ParseTuple`; ``et`` toma tanto un parámetro como un nombre de " +"codificación, y convierte el parámetro a la codificación dada si el " +"parámetro resulta ser una cadena Unicode, o lo deja solo si es una cadena de " +"8 bits, asumiendo que ya está en la codificación deseada. Esto difiere del " +"carácter de formato ``es``, que asume que las cadenas de 8 bits están en la " +"codificación ASCII por defecto de Python y las convierte a la nueva " +"codificación especificada. (Contribuido por M.-A. Lemburg, y utilizado para " +"el soporte de MBCS en Windows descrito en la siguiente sección)" #: ../Doc/whatsnew/2.2.rst:1102 msgid "" @@ -1312,6 +2000,12 @@ msgid "" "expected, and a set of pointers to :c:type:`PyObject\\*` variables that will " "be filled in with argument values." msgstr "" +"Se ha añadido una función de análisis de argumentos diferente, :c:func:" +"`PyArg_UnpackTuple`, que es más sencilla y presumiblemente más rápida. En " +"lugar de especificar una cadena de formato, la persona que llama simplemente " +"da el número mínimo y máximo de argumentos esperados, y un conjunto de " +"punteros a variables :c:type:`PyObject\\*` que se rellenarán con los valores " +"de los argumentos." #: ../Doc/whatsnew/2.2.rst:1108 msgid "" @@ -1322,6 +2016,13 @@ msgid "" "`METH_VARARGS`. Also, the old :const:`METH_OLDARGS` style of writing C " "methods is now officially deprecated." msgstr "" +"Dos nuevos indicadores :const:`METH_NOARGS` y :const:`METH_O` están " +"disponibles en las tablas de definición de métodos para simplificar la " +"implementación de métodos sin argumentos o con un único argumento no tipado. " +"Llamar a estos métodos es más eficiente que llamar a un método " +"correspondiente que utilice :const:`METH_VARARGS`. Además, el antiguo " +"estilo :const:`METH_OLDARGS` de escribir métodos en C está oficialmente en " +"desuso." #: ../Doc/whatsnew/2.2.rst:1114 msgid "" @@ -1332,6 +2033,13 @@ msgid "" "the Python versions check the bounds of the buffer used to protect against " "buffer overruns. (Contributed by M.-A. Lemburg.)" msgstr "" +"Se han añadido dos nuevas funciones de envoltura, :c:func:`PyOS_snprintf` y :" +"c:func:`PyOS_vsnprintf` para proporcionar implementaciones multiplataforma " +"para las relativamente nuevas APIs de la biblioteca C :c:func:`snprintf` y :" +"c:func:`vsnprintf`. A diferencia de las funciones estándar :c:func:`sprintf` " +"y :c:func:`vsprintf`, las versiones de Python comprueban los límites del " +"búfer utilizado para protegerse de los desbordamientos del mismo. " +"(Contribución de M.-A. Lemburg.)" #: ../Doc/whatsnew/2.2.rst:1121 msgid "" @@ -1340,10 +2048,14 @@ msgid "" "can simply be discarded when porting code from earlier versions to Python " "2.2." msgstr "" +"La función :c:func:`_PyTuple_Resize` ha perdido un parámetro que no se " +"utilizaba, por lo que ahora toma 2 parámetros en lugar de 3. El tercer " +"argumento nunca se utilizaba, y puede descartarse simplemente al portar el " +"código de versiones anteriores a Python 2.2." #: ../Doc/whatsnew/2.2.rst:1129 msgid "Other Changes and Fixes" -msgstr "" +msgstr "Otros cambios y correcciones" #: ../Doc/whatsnew/2.2.rst:1131 msgid "" @@ -1353,10 +2065,16 @@ msgid "" "2.2; 2.2.1 applied 139 patches and fixed 143 bugs; 2.2.2 applied 106 patches " "and fixed 82 bugs. These figures are likely to be underestimates." msgstr "" +"Como es habitual, hubo un montón de otras mejoras y correcciones de errores " +"repartidas por todo el árbol de fuentes. Una búsqueda en los registros de " +"cambios de CVS revela que se aplicaron 527 parches y se corrigieron 683 " +"errores entre Python 2.1 y 2.2; en 2.2.1 se aplicaron 139 parches y se " +"corrigieron 143 errores; en 2.2.2 se aplicaron 106 parches y se corrigieron " +"82 errores. Es probable que estas cifras estén subestimadas." #: ../Doc/whatsnew/2.2.rst:1137 msgid "Some of the more notable changes are:" -msgstr "" +msgstr "Algunos de los cambios más notables son:" #: ../Doc/whatsnew/2.2.rst:1139 msgid "" @@ -1364,6 +2082,9 @@ msgid "" "kept in the main Python CVS tree, and many changes have been made to support " "MacOS X." msgstr "" +"El código del puerto MacOS para Python, mantenido por Jack Jansen, se " +"mantiene ahora en el árbol CVS principal de Python, y se han realizado " +"muchos cambios para soportar MacOS X." #: ../Doc/whatsnew/2.2.rst:1142 msgid "" @@ -1378,6 +2099,16 @@ msgid "" "application, porting the MacPython IDE, possibly using Python as a standard " "OSA scripting language and much more.\"" msgstr "" +"El cambio más significativo es la capacidad de construir Python como un " +"marco de trabajo, que se activa proporcionando la opción :option:`!--enable-" +"framework` al script de configuración cuando se compila Python. Según Jack " +"Jansen, \"Esto instala una instalación autónoma de Python más el \"pegamento" +"\" del framework de OS X en :file:`/Library/Frameworks/Python.framework` (o " +"en otra ubicación de su elección). Por ahora hay poco beneficio inmediato " +"añadido a esto (en realidad, existe la desventaja de que tienes que cambiar " +"tu PATH para poder encontrar Python), pero es la base para crear una " +"aplicación Python completa, portar el IDE de MacPython, posiblemente usar " +"Python como un lenguaje de scripting estándar de OSA y mucho más.\"" #: ../Doc/whatsnew/2.2.rst:1153 msgid "" @@ -1386,6 +2117,11 @@ msgid "" "been left commented out in :file:`setup.py`. People who want to experiment " "with these modules can uncomment them manually." msgstr "" +"La mayoría de los módulos de la caja de herramientas de MacPython, que " +"interactúan con las APIs de MacOS como ventanas, QuickTime, scripts, etc. " +"han sido portados a OS X, pero se han dejado comentados en :file:`setup." +"py`. Las personas que quieran experimentar con estos módulos pueden " +"descomentarlos manualmente." #: ../Doc/whatsnew/2.2.rst:1176 msgid "" @@ -1393,6 +2129,9 @@ msgid "" "cause a :exc:`TypeError` exception to be raised, with the message " "\"*function* takes no keyword arguments\"." msgstr "" +"Los argumentos de palabras clave pasados a funciones incorporadas que no los " +"aceptan ahora provocan una excepción :exc:`TypeError`, con el mensaje " +"\"*function* no acepta argumentos de palabras clave\"." #: ../Doc/whatsnew/2.2.rst:1180 msgid "" @@ -1401,6 +2140,11 @@ msgid "" "The :exc:`ReferenceError` exception has therefore moved from the :mod:" "`weakref` module to become a built-in exception." msgstr "" +"Las referencias débiles, añadidas en Python 2.1 como un módulo de extensión, " +"son ahora parte del núcleo porque se utilizan en la implementación de clases " +"de nuevo estilo. Por lo tanto, la excepción :exc:`ReferenceError` se ha " +"movido del módulo :mod:`weakref` para convertirse en una excepción " +"incorporada." #: ../Doc/whatsnew/2.2.rst:1185 msgid "" @@ -1408,6 +2152,9 @@ msgid "" "automatically removes obsolete ``__future__`` statements from Python source " "code." msgstr "" +"Un nuevo script, :file:`Tools/scripts/cleanfuture.py` de Tim Peters, elimina " +"automáticamente las sentencias ``__future__`` obsoletas del código fuente de " +"Python." #: ../Doc/whatsnew/2.2.rst:1189 msgid "" @@ -1417,6 +2164,11 @@ msgid "" "other development environments. This is described in :pep:`264`. " "(Contributed by Michael Hudson.)" msgstr "" +"Se ha añadido un argumento adicional *flags* a la función incorporada :func:" +"`compile`, por lo que el comportamiento de las sentencias ``__future__`` " +"puede ahora observarse correctamente en shells simulados, como los " +"presentados por IDLE y otros entornos de desarrollo. Esto se describe en :" +"pep:`264`. (Contribución de Michael Hudson)" #: ../Doc/whatsnew/2.2.rst:1195 msgid "" @@ -1427,6 +2179,13 @@ msgid "" "BSD license, same as it always was. The license changes were also applied " "to the Python 2.0.1 and 2.1.1 releases." msgstr "" +"La nueva licencia introducida con Python 1.6 no era compatible con la GPL. " +"Esto se ha solucionado con algunos cambios textuales menores en la licencia " +"2.2, de modo que ahora es legal volver a incrustar Python dentro de un " +"programa con licencia GPL. Tenga en cuenta que Python en sí mismo no es " +"GPL, sino que está bajo una licencia que es esencialmente equivalente a la " +"licencia BSD, igual que siempre. Los cambios en la licencia también se " +"aplicaron a las versiones 2.0.1 y 2.1.1 de Python." #: ../Doc/whatsnew/2.2.rst:1202 msgid "" @@ -1438,17 +2197,29 @@ msgid "" "was contributed by Mark Hammond with assistance from Marc-André Lemburg. " "Unix support was added by Martin von Löwis.)" msgstr "" +"Cuando se presenta un nombre de archivo Unicode en Windows, Python ahora lo " +"convertirá en una cadena codificada en MBCS, como la que utilizan las APIs " +"de archivos de Microsoft. Como las APIs de archivos utilizan explícitamente " +"MBCS, la elección de Python de ASCII como codificación por defecto resulta " +"ser una molestia. En Unix, se utiliza el juego de caracteres de la " +"localización si ``locale.nl_langinfo(CODESET)`` está disponible. (El " +"soporte de Windows fue contribuido por Mark Hammond con la ayuda de Marc-" +"André Lemburg. El soporte para Unix fue añadido por Martin von Löwis)" #: ../Doc/whatsnew/2.2.rst:1210 msgid "" "Large file support is now enabled on Windows. (Contributed by Tim Peters.)" msgstr "" +"La compatibilidad con archivos de gran tamaño ya está activada en Windows. " +"(Contribución de Tim Peters.)" #: ../Doc/whatsnew/2.2.rst:1212 msgid "" "The :file:`Tools/scripts/ftpmirror.py` script now parses a :file:`.netrc` " "file, if you have one. (Contributed by Mike Romberg.)" msgstr "" +"El script :file:`Tools/scripts/ftpmirror.py` ahora analiza un archivo :file:" +"`.netrc`, si tiene uno. (Contribución de Mike Romberg)" #: ../Doc/whatsnew/2.2.rst:1215 msgid "" @@ -1461,6 +2232,15 @@ msgid "" "attributes are also being deprecated. At the C level, the fourth argument " "to the :c:func:`PyRange_New` function, ``repeat``, has also been deprecated." msgstr "" +"Algunas características del objeto retornado por la función :func:`xrange` " +"están ahora obsoletas, y provocan advertencias cuando se accede a ellas; " +"desaparecerán en Python 2.3. Los objetos :class:`xrange` intentaban fingir " +"que eran tipos de secuencia completos soportando el troceado, la " +"multiplicación de secuencias y el operador :keyword:`in`, pero estas " +"características se utilizaban raramente y, por lo tanto, tenían errores. El " +"método :meth:`tolist` y los atributos :attr:`start`, :attr:`stop` y :attr:" +"`step` también han quedado obsoletos. A nivel de C, el cuarto argumento de " +"la función :c:func:`PyRange_New`, ``repeat``, también ha quedado obsoleto." #: ../Doc/whatsnew/2.2.rst:1224 msgid "" @@ -1471,6 +2251,12 @@ msgid "" "case that dumped core, Tim Peters fixing the bug, Michael finding another " "case, and round and round it went." msgstr "" +"Hubo un montón de parches para la implementación del diccionario, sobre todo " +"para arreglar posibles vertidos del núcleo si un diccionario contiene " +"objetos que cambian furtivamente su valor hash, o mutan el diccionario que " +"contienen. Durante un tiempo python-dev cayó en un suave ritmo de Michael " +"Hudson encontrando un caso que volcaba el núcleo, Tim Peters corrigiendo el " +"error, Michael encontrando otro caso, y así sucesivamente." #: ../Doc/whatsnew/2.2.rst:1231 msgid "" @@ -1478,6 +2264,9 @@ msgid "" "patches contributed by Stephen Hansen, though the result isn't fully " "functional yet. (But this *is* progress...)" msgstr "" +"En Windows, Python puede ahora compilarse con Borland C gracias a una serie " +"de parches aportados por Stephen Hansen, aunque el resultado aún no es " +"totalmente funcional. (Pero esto *es* un progreso...)" #: ../Doc/whatsnew/2.2.rst:1235 msgid "" @@ -1486,6 +2275,10 @@ msgid "" "installers used Wise 5.0a, which was beginning to show its age. (Packaged " "up by Tim Peters.)" msgstr "" +"Otra mejora de Windows: Wise Solutions ofreció generosamente a PythonLabs el " +"uso de su sistema InstallerMaster 8.1. Los anteriores instaladores de " +"PythonLabs para Windows utilizaban Wise 5.0a, que estaba empezando a mostrar " +"su edad. (Empaquetado por Tim Peters)" #: ../Doc/whatsnew/2.2.rst:1239 msgid "" @@ -1496,6 +2289,12 @@ msgid "" "such scripts, in case they're also usable as modules. (Implemented by David " "Bolen.)" msgstr "" +"Los archivos que terminan en ``.pyw`` pueden importarse ahora en Windows. ``." +"pyw`` es algo exclusivo de Windows, que se utiliza para indicar que un " +"script debe ejecutarse utilizando PYTHONW.EXE en lugar de PYTHON.EXE para " +"evitar que aparezca una consola DOS para mostrar la salida. Este parche " +"hace posible la importación de tales scripts, en caso de que también se " +"puedan utilizar como módulos. (Implementado por David Bolen)" #: ../Doc/whatsnew/2.2.rst:1245 msgid "" @@ -1504,6 +2303,10 @@ msgid "" "`dlopen` using the :func:`sys.getdlopenflags` and :func:`sys.setdlopenflags` " "functions. (Contributed by Bram Stolk.)" msgstr "" +"En las plataformas en las que Python utiliza la función C :c:func:`dlopen` " +"para cargar módulos de extensión, ahora es posible establecer las banderas " +"utilizadas por :c:func:`dlopen` utilizando las funciones :func:`sys." +"getdlopenflags` y :func:`sys.setdlopenflags`. (Contribución de Bram Stolk.)" #: ../Doc/whatsnew/2.2.rst:1250 msgid "" @@ -1513,10 +2316,15 @@ msgid "" "result varies unpredictably depending on the platform. A call such as " "``pow(2.0, 8.0, 7.0)`` will now raise a :exc:`TypeError` exception." msgstr "" +"La función incorporada :func:`pow` ya no admite 3 argumentos cuando se " +"suministran números de punto flotante. ``pow(x, y, z)`` retorna ``(x**y) % " +"z``, pero esto nunca es útil para números de punto flotante, y el resultado " +"final varía de forma impredecible dependiendo de la plataforma. Una llamada " +"como ``pow(2.0, 8.0, 7.0)`` lanzará ahora una excepción :exc:`TypeError`." #: ../Doc/whatsnew/2.2.rst:1260 msgid "Acknowledgements" -msgstr "" +msgstr "Agradecimientos" #: ../Doc/whatsnew/2.2.rst:1262 msgid "" @@ -1529,3 +2337,11 @@ msgid "" "Paalasma, Tim Peters, Jens Quade, Tom Reinhardt, Neil Schemenauer, Guido van " "Rossum, Greg Ward, Edward Welbourne." msgstr "" +"El autor desea agradecer a las siguientes personas sus sugerencias, " +"correcciones y ayuda en varios borradores de este artículo: Fred Bremmer, " +"Keith Briggs, Andrew Dalke, Fred L. Drake, Jr, Carel Fellinger, David " +"Goodger, Mark Hammond, Stephen Hansen, Michael Hudson, Jack Jansen, Marc-" +"André Lemburg, Martin von Löwis, Fredrik Lundh, Michael McLay, Nick " +"Mathewson, Paul Moore, Gustavo Niemeyer, Don O'Donnell, Joonas Paalasma, Tim " +"Peters, Jens Quade, Tom Reinhardt, Neil Schemenauer, Guido van Rossum, Greg " +"Ward, Edward Welbourne." diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index c72bead719..9b0e113686 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -1,39 +1,43 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. -# Maintained by the python-doc-es workteam. +# Maintained by the python-doc-es workteam. # docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-09-25 10:30+0100\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Claudia Millan \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/whatsnew/2.3.rst:3 msgid "What's New in Python 2.3" -msgstr "" +msgstr "Qué hay de nuevo en Python 2.3" #: ../Doc/whatsnew/2.3.rst:0 msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.3.rst:5 msgid "A.M. Kuchling" -msgstr "" +msgstr "A.M. Kuchling" #: ../Doc/whatsnew/2.3.rst:11 msgid "" "This article explains the new features in Python 2.3. Python 2.3 was " "released on July 29, 2003." msgstr "" +"Este artículo explica las nuevas características de Python 2.3. Python 2.3 " +"se publicó el 29 de julio de 2003." #: ../Doc/whatsnew/2.3.rst:14 msgid "" @@ -46,6 +50,16 @@ msgid "" "and :func:`enumerate`. The :keyword:`in` operator can now be used for " "substring searches (e.g. ``\"ab\" in \"abc\"`` returns :const:`True`)." msgstr "" +"Los temas principales de Python 2.3 son el pulido de algunas de las " +"características añadidas en la 2.2, la adición de varias mejoras pequeñas " +"pero útiles al núcleo del lenguaje y la ampliación de la biblioteca " +"estándar. El nuevo modelo de objetos introducido en la versión anterior se " +"ha beneficiado de 18 meses de correcciones de errores y de esfuerzos de " +"optimización que han mejorado el rendimiento de las clases de nuevo estilo. " +"Se han añadido algunas funciones incorporadas, como :func:`sum` y :func:" +"`enumerate`. El operador :keyword:`in` puede utilizarse ahora para " +"búsquedas de subcadenas (por ejemplo, ``\"ab\" en \"abc\"`` retorna :const:" +"`True`)." #: ../Doc/whatsnew/2.3.rst:23 msgid "" @@ -56,6 +70,13 @@ msgid "" "processing command-line options, using BerkeleyDB databases... the list of " "new and enhanced modules is lengthy." msgstr "" +"Algunas de las nuevas características de la biblioteca son los tipos de " +"datos booleanos, de conjunto, de montón y de fecha/hora, la posibilidad de " +"importar módulos desde archivos con formato ZIP, el soporte de metadatos " +"para el tan esperado catálogo de Python, una versión actualizada de IDLE y " +"módulos para registrar mensajes, envolver texto, analizar archivos CSV, " +"procesar opciones de línea de comandos, utilizar bases de datos " +"BerkeleyDB... la lista de módulos nuevos y mejorados es larga." #: ../Doc/whatsnew/2.3.rst:30 msgid "" @@ -66,10 +87,17 @@ msgid "" "complete implementation and design rationale, refer to the PEP for a " "particular new feature." msgstr "" +"Este artículo no pretende proporcionar una especificación completa de las " +"nuevas características, sino que proporciona una visión general " +"conveniente. Para obtener todos los detalles, debes consultar la " +"documentación de Python 2.3, como la Referencia de la Biblioteca de Python y " +"el Manual de Referencia de Python. Si quieres entender la implementación " +"completa y los fundamentos del diseño, consulta el PEP de una nueva " +"característica en particular." #: ../Doc/whatsnew/2.3.rst:41 msgid "PEP 218: A Standard Set Datatype" -msgstr "" +msgstr "PEP 218: Un tipo de datos de conjunto estándar" #: ../Doc/whatsnew/2.3.rst:43 msgid "" @@ -80,10 +108,17 @@ msgid "" "dictionary keys. Sets are built on top of dictionaries, so the elements " "within a set must be hashable." msgstr "" +"El nuevo módulo :mod:`sets` contiene una implementación de un tipo de datos " +"de conjuntos. La clase :class:`Set` es para conjuntos mutables, conjuntos a " +"los que se les pueden añadir y eliminar miembros. La clase :class:" +"`ImmutableSet` es para los conjuntos que no pueden ser modificados, y las " +"instancias de :class:`ImmutableSet` pueden por lo tanto ser utilizadas como " +"claves de diccionario. Los conjuntos se construyen sobre diccionarios, por " +"lo que los elementos de un conjunto deben ser hashables." #: ../Doc/whatsnew/2.3.rst:50 msgid "Here's a simple example::" -msgstr "" +msgstr "Aquí hay un ejemplo simple::" #: ../Doc/whatsnew/2.3.rst:66 msgid "" @@ -92,6 +127,11 @@ msgid "" "operators ``&`` and ``|``. Mutable sets also have in-place versions of these " "methods, :meth:`union_update` and :meth:`intersection_update`. ::" msgstr "" +"La unión y la intersección de los conjuntos pueden calcularse con los " +"métodos :meth:`union` y :meth:`intersection`; una notación alternativa " +"utiliza los operadores bitácora ``&`` y ``|``. Los conjuntos mutables " +"también tienen versiones in situ de estos métodos, :meth:`union_update` y :" +"meth:`intersection_update`. ::" #: ../Doc/whatsnew/2.3.rst:86 msgid "" @@ -102,26 +142,36 @@ msgid "" "notation (``^``), and an in-place version with the ungainly name :meth:" "`symmetric_difference_update`. ::" msgstr "" +"También es posible tomar la diferencia simétrica de dos conjuntos. Este es " +"el conjunto de todos los elementos de la unión que no están en la " +"intersección. Otra forma de decirlo es que la diferencia simétrica contiene " +"todos los elementos que están exactamente en un conjunto. De nuevo, existe " +"una notación alternativa (``^``), y una versión in-place con el poco " +"agraciado nombre :meth:`symmetric_difference_update`. ::" #: ../Doc/whatsnew/2.3.rst:100 msgid "" "There are also :meth:`issubset` and :meth:`issuperset` methods for checking " "whether one set is a subset or superset of another::" msgstr "" +"También hay métodos :meth:`issubset` y :meth:`issuperset` para comprobar si " +"un conjunto es subconjunto o superconjunto de otro::" #: ../Doc/whatsnew/2.3.rst:117 msgid ":pep:`218` - Adding a Built-In Set Object Type" -msgstr "" +msgstr ":pep:`218` - Añadiendo un tipo de objeto de conjunto incorporado" #: ../Doc/whatsnew/2.3.rst:117 msgid "" "PEP written by Greg V. Wilson. Implemented by Greg V. Wilson, Alex Martelli, " "and GvR." msgstr "" +"PEP escrito por Greg V. Wilson. Implementado por Greg V. Wilson, Alex " +"Martelli y GvR." #: ../Doc/whatsnew/2.3.rst:126 msgid "PEP 255: Simple Generators" -msgstr "" +msgstr "PEP 255: Generadores simples" #: ../Doc/whatsnew/2.3.rst:128 msgid "" @@ -133,6 +183,14 @@ msgid "" "2.2\" document; if you read it back when Python 2.2 came out, you can skip " "the rest of this section." msgstr "" +"En Python 2.2, los generadores se añadieron como una característica " +"opcional, que se activaba mediante una directiva ``from __future__ import " +"generators``. En 2.3 los generadores ya no necesitan ser habilitados " +"especialmente, y ahora están siempre presentes; esto significa que :keyword:" +"`yield` es ahora siempre una palabra clave. El resto de esta sección es una " +"copia de la descripción de los generadores del documento \"What's New in " +"Python 2.2\"; si lo leíste cuando salió Python 2.2, puedes saltarte el resto " +"de esta sección." #: ../Doc/whatsnew/2.3.rst:136 msgid "" @@ -146,10 +204,20 @@ msgid "" "This is what generators provide; they can be thought of as resumable " "functions." msgstr "" +"Sin duda estás familiarizado con cómo funcionan las llamadas a funciones en " +"Python o C. Cuando llamas a una función, ésta obtiene un espacio de nombres " +"privado donde se crean sus variables locales. Cuando la función llega a una " +"declaración :keyword:`return`, las variables locales se destruyen y el valor " +"resultante se retorna a quien la llamó. Una llamada posterior a la misma " +"función obtendrá un nuevo conjunto de variables locales. Pero, ¿qué pasaría " +"si las variables locales no se tiraran al salir de una función? ¿Qué pasaría " +"si pudieras reanudar la función donde la dejaste? Esto es lo que " +"proporcionan los generadores; se puede pensar en ellos como funciones " +"reanudables." #: ../Doc/whatsnew/2.3.rst:145 msgid "Here's the simplest example of a generator function::" -msgstr "" +msgstr "Este es el ejemplo más sencillo de una función generadora::" #: ../Doc/whatsnew/2.3.rst:151 msgid "" @@ -158,6 +226,10 @@ msgid "" "this is detected by Python's bytecode compiler which compiles the function " "specially as a result." msgstr "" +"Se ha introducido una nueva palabra clave, :keyword:`yield`, para los " +"generadores. Cualquier función que contenga una declaración :keyword:`!" +"yield` es una función generadora; esto es detectado por el compilador de " +"código de bits de Python que compila la función especialmente como resultado." #: ../Doc/whatsnew/2.3.rst:156 msgid "" @@ -174,16 +246,31 @@ msgid "" "try`...\\ :keyword:`!finally` statement; read :pep:`255` for a full " "explanation of the interaction between :keyword:`!yield` and exceptions.)" msgstr "" +"Cuando se llama a una función generadora, ésta no retorna un único valor, " +"sino que retorna un objeto generador que soporta el protocolo de los " +"iteradores. Al ejecutar la sentencia :keyword:`yield`, el generador retorna " +"el valor de ``i``, de forma similar a una sentencia :keyword:`return`. La " +"gran diferencia entre :keyword:`!yield` y una sentencia :keyword:`!return` " +"es que al llegar a una sentencia :keyword:`!yield` se suspende el estado de " +"ejecución del generador y se conservan las variables locales. En la " +"siguiente llamada al método ``.next()`` del generador, la función se " +"reanudará la ejecución inmediatamente después de la sentencia :keyword:`!" +"yield`. (Por razones complicadas, la sentencia :keyword:`!yield` no está " +"permitida dentro del bloque :keyword:`try` de una sentencia :keyword:`!" +"try`...`; lea :pep:`255` para una explicación completa de la interacción " +"entre :keyword:`!yield` y las excepciones)" #: ../Doc/whatsnew/2.3.rst:169 msgid "Here's a sample usage of the :func:`generate_ints` generator::" -msgstr "" +msgstr "Este es un ejemplo de uso del generador :func:`generate_ints`::" #: ../Doc/whatsnew/2.3.rst:186 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a,b,c = " "generate_ints(3)``." msgstr "" +"También podrías escribir ``for i in generate_ints(5)``, o ``a,b,c = " +"generate_ints(3)``." #: ../Doc/whatsnew/2.3.rst:189 msgid "" @@ -195,6 +282,13 @@ msgid "" "indicated by raising :exc:`StopIteration` manually, or by just letting the " "flow of execution fall off the bottom of the function." msgstr "" +"Dentro de una función generadora, la expresión :keyword:`return` sólo puede " +"usarse sin un valor, y señala el final de la procesión de valores; después " +"el generador no puede retornar más valores. :keyword:`!return` con un valor, " +"como ``return 5``, es un error de sintaxis dentro de una función " +"generadora. El final de los resultados del generador también puede " +"indicarse levantando manualmente :exc:`StopIteration`, o simplemente dejando " +"que el flujo de ejecución caiga en el fondo de la función." #: ../Doc/whatsnew/2.3.rst:197 msgid "" @@ -208,6 +302,15 @@ msgid "" "The simplest one implements an in-order traversal of a tree using generators " "recursively. ::" msgstr "" +"Puedes conseguir el efecto de los generadores manualmente escribiendo tu " +"propia clase y almacenando todas las variables locales del generador como " +"variables de instancia. Por ejemplo, la devolución de una lista de enteros " +"podría hacerse estableciendo ``self.count`` a 0, y haciendo que el método :" +"meth:`next` incremente ``self.count`` y lo retorne. Sin embargo, para un " +"generador medianamente complicado, escribir la clase correspondiente sería " +"mucho más complicado. :file:`Lib/test/test_generators.py` contiene varios " +"ejemplos más interesantes. El más sencillo implementa un recorrido en orden " +"de un árbol utilizando generadores de forma recursiva ::" #: ../Doc/whatsnew/2.3.rst:215 msgid "" @@ -217,6 +320,11 @@ msgid "" "knight to every square of an $NxN$ chessboard without visiting any square " "twice)." msgstr "" +"Otros dos ejemplos en :file:`Lib/test/test_generators.py` producen " +"soluciones para el problema de las N reinas (colocar $N$ reinas en un " +"tablero de ajedrez $NxN$ de forma que ninguna reina amenace a otra) y el " +"recorrido del caballero (una ruta que lleva a un caballo a cada casilla de " +"un tablero de ajedrez $NxN$ sin visitar ninguna casilla dos veces)." #: ../Doc/whatsnew/2.3.rst:220 msgid "" @@ -227,6 +335,12 @@ msgid "" "\" at https://www.cs.arizona.edu/icon/docs/ipd266.htm gives an idea of what " "this looks like::" msgstr "" +"La idea de los generadores proviene de otros lenguajes de programación, " +"especialmente de Icon (https://www.cs.arizona.edu/icon/), donde la idea de " +"los generadores es fundamental. En Icon, cada expresión y llamada a una " +"función se comporta como un generador. Un ejemplo de \"*An Overview of the " +"Icon Programming Language*\" en https://www.cs.arizona.edu/icon/docs/ipd266." +"htm da una idea de cómo es esto::" #: ../Doc/whatsnew/2.3.rst:230 msgid "" @@ -236,6 +350,12 @@ msgid "" "Icon retries it with the second value of 23. 23 is greater than 5, so the " "comparison now succeeds, and the code prints the value 23 to the screen." msgstr "" +"En Icon la función :func:`find` retorna los índices en los que se encuentra " +"la subcadena \"o\": 3, 23, 33. En la expresión :keyword:`if`, a ``i`` se le " +"asigna primero un valor de 3, pero 3 es menor que 5, por lo que la " +"comparación falla, e Icon la reintenta con el segundo valor de 23. 23 es " +"mayor que 5, por lo que la comparación ahora tiene éxito, y el código " +"imprime el valor 23 en la pantalla." #: ../Doc/whatsnew/2.3.rst:236 msgid "" @@ -247,10 +367,17 @@ msgid "" "as a concrete object (the iterator) that can be passed around to other " "functions or stored in a data structure." msgstr "" +"Python no va tan lejos como Icon en la adopción de generadores como concepto " +"central. Los generadores se consideran parte del núcleo del lenguaje " +"Python, pero aprenderlos o utilizarlos no es obligatorio; si no resuelven " +"ningún problema que tengas, siéntete libre de ignorarlos. Una característica " +"novedosa de la interfaz de Python en comparación con la de Icon es que el " +"estado de un generador se representa como un objeto concreto (el iterador) " +"que puede pasarse a otras funciones o almacenarse en una estructura de datos." #: ../Doc/whatsnew/2.3.rst:248 msgid ":pep:`255` - Simple Generators" -msgstr "" +msgstr ":pep:`255` - Generadores simples" #: ../Doc/whatsnew/2.3.rst:248 msgid "" @@ -258,10 +385,13 @@ msgid "" "mostly by Neil Schemenauer and Tim Peters, with other fixes from the Python " "Labs crew." msgstr "" +"Escrito por Neil Schemenauer, Tim Peters, Magnus Lie Hetland. Implementado " +"principalmente por Neil Schemenauer y Tim Peters, con otras correcciones del " +"equipo de Python Labs." #: ../Doc/whatsnew/2.3.rst:257 msgid "PEP 263: Source Code Encodings" -msgstr "" +msgstr "PEP 263: Codificación del código fuente" #: ../Doc/whatsnew/2.3.rst:259 msgid "" @@ -270,6 +400,10 @@ msgid "" "comment in the first or second line of the source file. For example, a " "UTF-8 file can be declared with::" msgstr "" +"Los archivos fuente de Python ahora pueden declararse con diferentes " +"codificaciones de conjuntos de caracteres. Las codificaciones se declaran " +"incluyendo un comentario con formato especial en la primera o segunda línea " +"del archivo fuente. Por ejemplo, un archivo UTF-8 puede declararse con::" #: ../Doc/whatsnew/2.3.rst:267 msgid "" @@ -279,6 +413,11 @@ msgid "" "`DeprecationWarning` being signalled by Python 2.3; in 2.4 this will be a " "syntax error." msgstr "" +"Sin esta declaración de codificación, la codificación por defecto utilizada " +"es ASCII de 7 bits. Ejecutar o importar módulos que contengan literales de " +"cadena con caracteres de 8 bits y que no tengan una declaración de " +"codificación dará lugar a un :exc:`DeprecationWarning` señalado por Python " +"2.3; en 2.4 será un error de sintaxis." #: ../Doc/whatsnew/2.3.rst:273 msgid "" @@ -287,20 +426,28 @@ msgid "" "identifiers are still restricted to ASCII characters, so you can't have " "variable names that use characters outside of the usual alphanumerics." msgstr "" +"La declaración de codificación sólo afecta a los literales de cadena " +"Unicode, que se convertirán a Unicode utilizando la codificación " +"especificada. Ten en cuenta que los identificadores de Python siguen " +"restringidos a caracteres ASCII, por lo que no puedes tener nombres de " +"variables que utilicen caracteres fuera de los alfanuméricos habituales." #: ../Doc/whatsnew/2.3.rst:282 msgid ":pep:`263` - Defining Python Source Code Encodings" msgstr "" +":pep:`263` - Definición de las codificaciones del código fuente de Python" #: ../Doc/whatsnew/2.3.rst:282 msgid "" "Written by Marc-André Lemburg and Martin von Löwis; implemented by Suzuki " "Hisao and Martin von Löwis." msgstr "" +"Escrito por Marc-André Lemburg y Martin von Löwis; realizado por Suzuki " +"Hisao y Martin von Löwis." #: ../Doc/whatsnew/2.3.rst:289 msgid "PEP 273: Importing Modules from ZIP Archives" -msgstr "" +msgstr "PEP 273: Importar módulos desde archivos ZIP" #: ../Doc/whatsnew/2.3.rst:291 msgid "" @@ -309,6 +456,10 @@ msgid "" "be automatically imported if a ZIP archive's filename is added to ``sys." "path``. For example:" msgstr "" +"El nuevo módulo :mod:`zipimport` añade soporte para importar módulos desde " +"un archivo en formato ZIP. No es necesario importar el módulo " +"explícitamente; se importará automáticamente si se añade el nombre de un " +"archivo ZIP a ``sys.path``. Por ejemplo:" #: ../Doc/whatsnew/2.3.rst:314 msgid "" @@ -319,6 +470,13 @@ msgid "" "by adding the corresponding :file:`\\*.pyc` file, meaning that if a ZIP " "archive doesn't contain :file:`\\*.pyc` files, importing may be rather slow." msgstr "" +"Una entrada en ``sys.path`` puede ser ahora el nombre de un archivo ZIP. El " +"archivo ZIP puede contener cualquier tipo de ficheros, pero sólo se pueden " +"importar los ficheros llamados :file:`\\*.py`, :file:`\\*.pyc`, o :file:`\\*." +"pyo`. Si un archivo sólo contiene ficheros :file:`\\*.py`, Python no " +"intentará modificar el archivo añadiendo el correspondiente fichero :file:`" +"\\*.pyc`, lo que significa que si un archivo ZIP no contiene ficheros :file:`" +"\\*.pyc`, la importación puede ser bastante lenta." #: ../Doc/whatsnew/2.3.rst:321 msgid "" @@ -326,10 +484,13 @@ msgid "" "subdirectory; for example, the path :file:`/tmp/example.zip/lib/` would only " "import from the :file:`lib/` subdirectory within the archive." msgstr "" +"También se puede especificar una ruta dentro del archivo para importar sólo " +"de un subdirectorio; por ejemplo, la ruta :file:`/tmp/example.zip/lib/` sólo " +"importaría del subdirectorio :file:`lib/` dentro del archivo." #: ../Doc/whatsnew/2.3.rst:331 msgid ":pep:`273` - Import Modules from Zip Archives" -msgstr "" +msgstr ":pep:`273` - Importación de módulos desde archivos Zip" #: ../Doc/whatsnew/2.3.rst:329 msgid "" @@ -339,10 +500,15 @@ msgid "" "`302`. See section :ref:`section-pep302` for a description of the new import " "hooks." msgstr "" +"Escrito por James C. Ahlstrom, que también proporcionó una implementación. " +"Python 2.3 sigue la especificación en :pep:`273`, pero utiliza una " +"implementación escrita por Just van Rossum que utiliza los ganchos de " +"importación descritos en :pep:`302`. Vea la sección :ref:`section-pep302` " +"para una descripción de los nuevos ganchos de importación." #: ../Doc/whatsnew/2.3.rst:338 msgid "PEP 277: Unicode file name support for Windows NT" -msgstr "" +msgstr "PEP 277: Soporte de nombres de archivo Unicode para Windows NT" #: ../Doc/whatsnew/2.3.rst:340 msgid "" @@ -350,6 +516,10 @@ msgid "" "strings. Traditionally, Python has represented file names as byte strings, " "which is inadequate because it renders some file names inaccessible." msgstr "" +"En Windows NT, 2000 y XP, el sistema almacena los nombres de archivo como " +"cadenas Unicode. Tradicionalmente, Python ha representado los nombres de " +"archivo como cadenas de bytes, lo cual es inadecuado porque hace que algunos " +"nombres de archivo sean inaccesibles." #: ../Doc/whatsnew/2.3.rst:344 msgid "" @@ -359,12 +529,21 @@ msgid "" "listdir`, Python now returns a list of Unicode strings. A new function, :" "func:`os.getcwdu`, returns the current directory as a Unicode string." msgstr "" +"Python permite ahora utilizar cadenas Unicode arbitrarias (dentro de las " +"limitaciones del sistema de archivos) para todas las funciones que esperan " +"nombres de archivos, sobre todo la función incorporada :func:`open`. Si se " +"pasa una cadena Unicode a :func:`os.listdir`, Python retorna ahora una lista " +"de cadenas Unicode. Una nueva función, :func:`os.getcwdu`, retorna el " +"directorio actual como una cadena Unicode." #: ../Doc/whatsnew/2.3.rst:350 msgid "" "Byte strings still work as file names, and on Windows Python will " "transparently convert them to Unicode using the ``mbcs`` encoding." msgstr "" +"Las cadenas de bytes siguen funcionando como nombres de archivo, y en " +"Windows Python las convertirá de forma transparente a Unicode utilizando la " +"codificación ``mbcs``." #: ../Doc/whatsnew/2.3.rst:353 msgid "" @@ -374,24 +553,32 @@ msgid "" "strings are supported as file names by checking :attr:`os.path." "supports_unicode_filenames`, a Boolean value." msgstr "" +"Otros sistemas también permiten cadenas Unicode como nombres de archivo, " +"pero las convierten en cadenas de bytes antes de pasarlas al sistema, lo que " +"puede provocar un :exc:`UnicodeError`. Las aplicaciones pueden comprobar si " +"se admiten cadenas Unicode arbitrarias como nombres de archivo comprobando :" +"attr:`os.path.supports_unicode_filenames`, un valor booleano." #: ../Doc/whatsnew/2.3.rst:359 msgid "Under MacOS, :func:`os.listdir` may now return Unicode filenames." msgstr "" +"En MacOS, :func:`os.listdir` ahora puede retornar nombres de archivo Unicode." #: ../Doc/whatsnew/2.3.rst:365 msgid ":pep:`277` - Unicode file name support for Windows NT" -msgstr "" +msgstr ":pep:`277` - Soporte de nombres de archivo Unicode para Windows NT" #: ../Doc/whatsnew/2.3.rst:365 msgid "" "Written by Neil Hodgson; implemented by Neil Hodgson, Martin von Löwis, and " "Mark Hammond." msgstr "" +"Escrito por Neil Hodgson; realizado por Neil Hodgson, Martin von Löwis y " +"Mark Hammond." #: ../Doc/whatsnew/2.3.rst:375 msgid "PEP 278: Universal Newline Support" -msgstr "" +msgstr "PEP 278: Soporte universal de nuevas líneas" #: ../Doc/whatsnew/2.3.rst:377 msgid "" @@ -402,6 +589,14 @@ msgid "" "character 10), MacOS uses the carriage return (ASCII character 13), and " "Windows uses a two-character sequence of a carriage return plus a newline." msgstr "" +"Los tres principales sistemas operativos que se utilizan hoy en día son " +"Microsoft Windows, el sistema operativo Macintosh de Apple y los diversos " +"derivados de Unix. Una pequeña molestia del trabajo entre plataformas es " +"que estas tres plataformas utilizan diferentes caracteres para marcar el " +"final de las líneas en los archivos de texto. Unix utiliza el salto de " +"línea (carácter ASCII 10), MacOS utiliza el retorno de carro (carácter ASCII " +"13), y Windows utiliza una secuencia de dos caracteres de un retorno de " +"carro más una nueva línea." #: ../Doc/whatsnew/2.3.rst:384 msgid "" @@ -412,6 +607,13 @@ msgid "" "translated to a ``'\\n'`` in the strings returned by the various file " "methods such as :meth:`read` and :meth:`readline`." msgstr "" +"Los objetos de archivo de Python pueden ahora soportar convenciones de fin " +"de línea distintas de la que sigue la plataforma en la que se ejecuta " +"Python. Al abrir un archivo con el modo ``'U`` o ``'rU`` se abrirá un " +"archivo para su lectura en modo :term:`universal newlines`. Las tres " +"convenciones de final de línea se traducirán a un ``'\\n'`` en las cadenas " +"retornadas por los distintos métodos de archivo como :meth:`read` y :meth:" +"`readline`." #: ../Doc/whatsnew/2.3.rst:391 msgid "" @@ -420,6 +622,10 @@ msgid "" "modules can be shared between all three operating systems without needing to " "convert the line-endings." msgstr "" +"El soporte universal de nuevas líneas también se utiliza al importar módulos " +"y al ejecutar un archivo con la función :func:`execfile`. Esto significa " +"que los módulos de Python pueden ser compartidos entre los tres sistemas " +"operativos sin necesidad de convertir los finales de línea." #: ../Doc/whatsnew/2.3.rst:396 msgid "" @@ -427,18 +633,21 @@ msgid "" "`!--without-universal-newlines` switch when running Python's :program:" "`configure` script." msgstr "" +"Esta función puede desactivarse al compilar Python especificando la opción :" +"option:`!--without-universal-newlines` al ejecutar el script :program:" +"`configure` de Python." #: ../Doc/whatsnew/2.3.rst:403 msgid ":pep:`278` - Universal Newline Support" -msgstr "" +msgstr ":pep:`278` - Soporte universal de nuevas líneas" #: ../Doc/whatsnew/2.3.rst:404 msgid "Written and implemented by Jack Jansen." -msgstr "" +msgstr "Escrito y ejecutado por Jack Jansen." #: ../Doc/whatsnew/2.3.rst:412 msgid "PEP 279: enumerate()" -msgstr "" +msgstr "PEP 279: enumerate()" #: ../Doc/whatsnew/2.3.rst:414 msgid "" @@ -447,26 +656,32 @@ msgid "" "sequence, returns an iterator that will return ``(0, thing[0])``, ``(1, " "thing[1])``, ``(2, thing[2])``, and so forth." msgstr "" +"Una nueva función incorporada, :func:`enumerate`, hará que ciertos bucles " +"sean un poco más claros. ``enumerate(cosa)``, donde *cosa* es un iterador o " +"una secuencia, retorna un iterador que retornará ``(0, cosa[0])``, ``(1, " +"cosa[1])``, ``(2, cosa[2])``, y así sucesivamente." #: ../Doc/whatsnew/2.3.rst:419 msgid "A common idiom to change every element of a list looks like this::" msgstr "" +"Un modismo común para cambiar cada elemento de una lista tiene el siguiente " +"aspecto::" #: ../Doc/whatsnew/2.3.rst:426 msgid "This can be rewritten using :func:`enumerate` as::" -msgstr "" +msgstr "Esto se puede reescribir usando :func:`enumerate` como::" #: ../Doc/whatsnew/2.3.rst:435 msgid ":pep:`279` - The enumerate() built-in function" -msgstr "" +msgstr ":pep:`279` - La función incorporada enumerate()" #: ../Doc/whatsnew/2.3.rst:436 msgid "Written and implemented by Raymond D. Hettinger." -msgstr "" +msgstr "Escrito y ejecutado por Raymond D. Hettinger." #: ../Doc/whatsnew/2.3.rst:442 msgid "PEP 282: The logging Package" -msgstr "" +msgstr "PEP 282: El paquete de registro" #: ../Doc/whatsnew/2.3.rst:444 msgid "" @@ -479,6 +694,15 @@ msgid "" "log, or even e-mail them to a particular address; of course, it's also " "possible to write your own handler classes." msgstr "" +"Se ha añadido a Python 2.3 un paquete estándar para escribir registros, :mod:" +"`logging`. Proporciona un mecanismo potente y flexible para generar salidas " +"de registro que pueden ser filtradas y procesadas de varias maneras. Se " +"puede utilizar un archivo de configuración escrito en un formato estándar " +"para controlar el comportamiento de registro de un programa. Python incluye " +"manejadores que escribirán los registros en el error estándar o en un " +"archivo o socket, los enviarán al registro del sistema, o incluso los " +"enviarán por correo electrónico a una dirección particular; por supuesto, " +"también es posible escribir tus propias clases de manejadores." #: ../Doc/whatsnew/2.3.rst:453 msgid "" @@ -494,16 +718,30 @@ msgid "" "auth`` and ``server.network``. There's also a root :class:`Logger` that's " "the parent of all other loggers." msgstr "" +"La clase :class:`Logger` es la clase principal. La mayoría del código de la " +"aplicación tratará con uno o más objetos :class:`Logger`, cada uno utilizado " +"por un subsistema particular de la aplicación. Cada :class:`Logger` se " +"identifica con un nombre, y los nombres se organizan en una jerarquía " +"utilizando ``.`` como separador de componentes. Por ejemplo, puedes tener " +"instancias de :class:`Logger` llamadas ``servidor``, ``servidor.auth`` y " +"``servidor.network``. Estas dos últimas instancias están por debajo de " +"``servidor`` en la jerarquía. Esto significa que si aumentas la verbosidad " +"de ``servidor`` o diriges los mensajes de ``servidor`` a un gestor " +"diferente, los cambios también se aplicarán a los registros de ``servidor." +"auth`` y ``servidor.network``. También hay un :class:`Logger` raíz que es el " +"padre de todos los demás loggers." #: ../Doc/whatsnew/2.3.rst:464 msgid "" "For simple uses, the :mod:`logging` package contains some convenience " "functions that always use the root log::" msgstr "" +"Para usos sencillos, el paquete :mod:`logging` contiene algunas funciones de " +"conveniencia que siempre utilizan la raíz log::" #: ../Doc/whatsnew/2.3.rst:475 ../Doc/whatsnew/2.3.rst:500 msgid "This produces the following output::" -msgstr "" +msgstr "Esto produce la siguiente salida::" #: ../Doc/whatsnew/2.3.rst:481 msgid "" @@ -512,6 +750,10 @@ msgid "" "display of informational and debugging messages by calling the :meth:" "`setLevel` method on the root logger." msgstr "" +"En la configuración por defecto, los mensajes informativos y de depuración " +"se suprimen y la salida se envía al error estándar. Puede habilitar la " +"visualización de mensajes informativos y de depuración llamando al método :" +"meth:`setLevel` del registrador raíz." #: ../Doc/whatsnew/2.3.rst:486 msgid "" @@ -519,6 +761,10 @@ msgid "" "the functions for logging messages take the arguments ``(msg, arg1, " "arg2, ...)`` and log the string resulting from ``msg % (arg1, arg2, ...)``." msgstr "" +"Observe que la llamada :func:`warning` utiliza operadores de formato de " +"cadena; todas las funciones para el registro de mensajes toman los " +"argumentos ``(msg, arg1, arg2, ...)`` y registran la cadena resultante de " +"``msg % (arg1, arg2, ...)``." #: ../Doc/whatsnew/2.3.rst:490 msgid "" @@ -526,6 +772,10 @@ msgid "" "traceback. Any of the other functions will also record the traceback if you " "specify a true value for the keyword argument *exc_info*. ::" msgstr "" +"También hay una función :func:`exception` que registra el rastro más " +"reciente. Cualquiera de las otras funciones también registrará el rastro si " +"se especifica un valor verdadero para el argumento de la palabra clave " +"*exc_info*. ::" #: ../Doc/whatsnew/2.3.rst:508 msgid "" @@ -534,6 +784,10 @@ msgid "" "creating it if it doesn't exist yet. ``getLogger(None)`` returns the root " "logger. ::" msgstr "" +"Los programas un poco más avanzados utilizarán un logger distinto del logger " +"raíz. La función ``getLogger(nombre)`` se utiliza para obtener un registro " +"en particular, creándolo si aún no existe. ``getLogger(None)`` retorna el " +"logger raíz. ::" #: ../Doc/whatsnew/2.3.rst:519 msgid "" @@ -542,6 +796,10 @@ msgid "" "`Logger` can prevent this by setting its :attr:`propagate` attribute to :" "const:`False`." msgstr "" +"Los registros se suelen propagar hacia arriba en la jerarquía, por lo que un " +"mensaje registrado en ``servidor.auth`` también es visto por ``servidor`` y " +"``root``, pero un :class:`Logger` puede evitar esto estableciendo su " +"atributo :attr:`propagate` a :const:`False`." #: ../Doc/whatsnew/2.3.rst:523 msgid "" @@ -555,6 +813,16 @@ msgid "" "by a :class:`Formatter` class. All of these classes can be replaced by your " "own specially-written classes." msgstr "" +"Hay más clases proporcionadas por el paquete :mod:`logging` que pueden ser " +"personalizadas. Cuando una instancia de :class:`Logger` recibe la orden de " +"registrar un mensaje, crea una instancia de :class:`LogRecord` que se envía " +"a cualquier número de instancias de :class:`Handler` diferentes. Los " +"loggers y handlers también pueden tener una lista adjunta de filtros, y cada " +"filtro puede hacer que el :class:`LogRecord` sea ignorado o puede modificar " +"el registro antes de pasarlo. Cuando finalmente se emiten, las instancias " +"de :class:`LogRecord` se convierten en texto mediante una clase :class:" +"`Formatter`. Todas estas clases pueden ser reemplazadas por tus propias " +"clases especialmente escritas." #: ../Doc/whatsnew/2.3.rst:533 msgid "" @@ -564,18 +832,23 @@ msgid "" "documentation for all of the details. Reading :pep:`282` will also be " "helpful." msgstr "" +"Con todas estas características, el paquete :mod:`logging` debería " +"proporcionar suficiente flexibilidad incluso para las aplicaciones más " +"complicadas. Esto es sólo un resumen incompleto de sus características, así " +"que por favor consulte la documentación de referencia del paquete para todos " +"los detalles. La lectura de :pep:`282` también será útil." #: ../Doc/whatsnew/2.3.rst:541 msgid ":pep:`282` - A Logging System" -msgstr "" +msgstr ":pep:`282` - Un sistema de registro" #: ../Doc/whatsnew/2.3.rst:542 msgid "Written by Vinay Sajip and Trent Mick; implemented by Vinay Sajip." -msgstr "" +msgstr "Escrito por Vinay Sajip y Trent Mick; implementado por Vinay Sajip." #: ../Doc/whatsnew/2.3.rst:550 msgid "PEP 285: A Boolean Type" -msgstr "" +msgstr "PEP 285: Un tipo booleano" #: ../Doc/whatsnew/2.3.rst:552 msgid "" @@ -585,6 +858,11 @@ msgid "" "2.2.1, but the 2.2.1 versions are simply set to integer values of 1 and 0 " "and aren't a different type.)" msgstr "" +"Se ha añadido un tipo booleano a Python 2.3. Se añadieron dos nuevas " +"constantes al módulo :mod:`__builtin__`, :const:`True` y :const:`False`. " +"(Las constantes :const:`True` y :const:`False` se añadieron a los módulos " +"incorporados en Python 2.2.1, pero las versiones de 2.2.1 se ajustan " +"simplemente a valores enteros de 1 y 0 y no son un tipo diferente)" #: ../Doc/whatsnew/2.3.rst:558 msgid "" @@ -592,12 +870,17 @@ msgid "" "for it takes any Python value and converts it to :const:`True` or :const:" "`False`. ::" msgstr "" +"El objeto de tipo para este nuevo tipo se denomina :class:`bool`; su " +"constructor toma cualquier valor de Python y lo convierte en :const:`True` " +"o :const:`False`. ::" #: ../Doc/whatsnew/2.3.rst:570 msgid "" "Most of the standard library modules and built-in functions have been " "changed to return Booleans. ::" msgstr "" +"La mayoría de los módulos de la biblioteca estándar y las funciones " +"incorporadas se han modificado para retornar booleanos. ::" #: ../Doc/whatsnew/2.3.rst:581 msgid "" @@ -608,6 +891,12 @@ msgid "" "the statement is ``return True``, however, the meaning of the return value " "is quite clear." msgstr "" +"Los booleanos de Python se añadieron con el objetivo principal de hacer el " +"código más claro. Por ejemplo, si estás leyendo una función y te encuentras " +"con la sentencia ``return 1``, podrías preguntarte si el ``1`` representa un " +"valor de verdad booleano, un índice o un coeficiente que multiplica alguna " +"otra cantidad. Sin embargo, si la sentencia es ``return True``, el " +"significado del valor de retorno es bastante claro." #: ../Doc/whatsnew/2.3.rst:587 msgid "" @@ -621,6 +910,15 @@ msgid "" "a subclass of the :class:`int` class so that arithmetic using a Boolean " "still works. ::" msgstr "" +"Los booleanos de Python *no* se añadieron en aras de una comprobación de " +"tipos estricta. Un lenguaje muy estricto como Pascal también le impediría " +"realizar aritmética con booleanos, y requeriría que la expresión en una " +"declaración :keyword:`if` siempre se evaluara a un resultado booleano. " +"Python no es tan estricto y nunca lo será, como dice explícitamente :pep:" +"`285`. Esto significa que puede utilizar cualquier expresión en una " +"sentencia :keyword:`!if`, incluso las que se evalúan a una lista o tupla o " +"algún objeto aleatorio. El tipo Booleano es una subclase de la clase :class:" +"`int` por lo que la aritmética que utiliza un Booleano sigue funcionando. ::" #: ../Doc/whatsnew/2.3.rst:605 msgid "" @@ -629,18 +927,22 @@ msgid "" "difference that :func:`str` and :func:`repr` return the strings ``'True'`` " "and ``'False'`` instead of ``'1'`` and ``'0'``." msgstr "" +"Para resumir :const:`True` and :const:`False` en una frase: son formas " +"alternativas de deletrear los valores enteros 1 y 0, con la única diferencia " +"de que :func:`str` y :func:`repr` retornan las cadenas ``Verdadero`` y " +"``Falso`` en lugar de ``1`` y ``0``." #: ../Doc/whatsnew/2.3.rst:613 msgid ":pep:`285` - Adding a bool type" -msgstr "" +msgstr ":pep:`285` - Añadir un tipo booleano" #: ../Doc/whatsnew/2.3.rst:614 msgid "Written and implemented by GvR." -msgstr "" +msgstr "Escrito y ejecutado por GvR." #: ../Doc/whatsnew/2.3.rst:620 msgid "PEP 293: Codec Error Handling Callbacks" -msgstr "" +msgstr "PEP 293: Llamadas de retorno para el manejo de errores del códec" #: ../Doc/whatsnew/2.3.rst:622 msgid "" @@ -653,6 +955,14 @@ msgid "" "inserting an XML character reference or HTML entity reference into the " "converted string." msgstr "" +"Al codificar una cadena Unicode en una cadena de bytes, pueden encontrarse " +"caracteres no codificables. Hasta ahora, Python ha permitido especificar el " +"procesamiento del error como \"estricto\" (lanzando :exc:`UnicodeError`), " +"\"ignorar\" (saltando el carácter), o \"reemplazar\" (usando un signo de " +"interrogación en la cadena de salida), siendo \"estricto\" el comportamiento " +"por defecto. Puede ser deseable especificar un procesamiento alternativo de " +"tales errores, como insertar una referencia de carácter XML o una referencia " +"de entidad HTML en la cadena convertida." #: ../Doc/whatsnew/2.3.rst:630 msgid "" @@ -665,6 +975,15 @@ msgid "" "target encoding. The handler can then either raise an exception or return a " "replacement string." msgstr "" +"Python tiene ahora un marco flexible para añadir diferentes estrategias de " +"procesamiento. Se pueden añadir nuevos manejadores de errores con :func:" +"`codecs.register_error`, y los códecs pueden acceder al manejador de errores " +"con :func:`codecs.lookup_error`. Se ha añadido una API en C equivalente para " +"los códecs escritos en C. El gestor de errores obtiene la información de " +"estado necesaria, como la cadena que se está convirtiendo, la posición en la " +"cadena donde se ha detectado el error y la codificación de destino. El " +"controlador puede entonces lanzar una excepción o retornar una cadena de " +"reemplazo." #: ../Doc/whatsnew/2.3.rst:638 msgid "" @@ -672,24 +991,30 @@ msgid "" "\"backslashreplace\" uses Python backslash quoting to represent unencodable " "characters and \"xmlcharrefreplace\" emits XML character references." msgstr "" +"Se han implementado dos manejadores de error adicionales utilizando este " +"marco: \"backslashreplace\" utiliza las comillas de barra invertida de " +"Python para representar los caracteres no codificables y \"xmlcharrefreplace" +"\" emite referencias de caracteres XML." #: ../Doc/whatsnew/2.3.rst:645 msgid ":pep:`293` - Codec Error Handling Callbacks" -msgstr "" +msgstr ":pep:`293` - Retrollamadas de manejo de errores del códec" #: ../Doc/whatsnew/2.3.rst:646 msgid "Written and implemented by Walter Dörwald." -msgstr "" +msgstr "Escrito y ejecutado por Walter Dörwald." #: ../Doc/whatsnew/2.3.rst:654 msgid "PEP 301: Package Index and Metadata for Distutils" -msgstr "" +msgstr "PEP 301: Índice de paquetes y metadatos para Distutils" #: ../Doc/whatsnew/2.3.rst:656 msgid "" "Support for the long-requested Python catalog makes its first appearance in " "2.3." msgstr "" +"La compatibilidad con el catálogo de Python, largamente solicitada, hace su " +"primera aparición en 2.3." #: ../Doc/whatsnew/2.3.rst:658 msgid "" @@ -699,6 +1024,11 @@ msgid "" "it to a central catalog server. The resulting catalog is available from " "https://pypi.org." msgstr "" +"El corazón del catálogo es el nuevo comando :command:`register` de " +"Distutils. Ejecutando ``python setup.py register`` se recogen los metadatos " +"que describen un paquete, como su nombre, versión, mantenedor, descripción, " +"etc., y se envían a un servidor de catálogo central. El catálogo resultante " +"está disponible en https://pypi.org." #: ../Doc/whatsnew/2.3.rst:664 msgid "" @@ -707,30 +1037,38 @@ msgid "" "`Trove `_-style strings can be supplied to help " "classify the software." msgstr "" +"Para hacer el catálogo un poco más útil, se ha añadido un nuevo argumento " +"opcional de palabra clave *clasificadores* a la función Distutils :func:" +"`setup`. Se puede suministrar una lista de cadenas de estilo `Trove `_ para ayudar a clasificar el software." #: ../Doc/whatsnew/2.3.rst:669 msgid "" "Here's an example :file:`setup.py` with classifiers, written to be " "compatible with older versions of the Distutils::" msgstr "" +"Aquí hay un ejemplo :file:`setup.py` con clasificadores, escrito para que " +"sea compatible con las versiones más antiguas de Distutils::" #: ../Doc/whatsnew/2.3.rst:688 msgid "" "The full list of classifiers can be obtained by running ``python setup.py " "register --list-classifiers``." msgstr "" +"La lista completa de clasificadores se puede obtener ejecutando ``python " +"setup.py register --list-classifiers``." #: ../Doc/whatsnew/2.3.rst:694 msgid ":pep:`301` - Package Index and Metadata for Distutils" -msgstr "" +msgstr ":pep:`301` - Índice de paquetes y metadatos para Distutils" #: ../Doc/whatsnew/2.3.rst:695 msgid "Written and implemented by Richard Jones." -msgstr "" +msgstr "Escrito y ejecutado por Richard Jones." #: ../Doc/whatsnew/2.3.rst:703 msgid "PEP 302: New Import Hooks" -msgstr "" +msgstr "PEP 302: Nuevos ganchos de importación" #: ../Doc/whatsnew/2.3.rst:705 msgid "" @@ -741,6 +1079,12 @@ msgid "" "and :mod:`iu` modules, but none of them has ever gained much acceptance, and " "none of them were easily usable from C code." msgstr "" +"Aunque ha sido posible escribir ganchos de importación personalizados desde " +"que se introdujo el módulo :mod:`ihooks` en Python 1.3, nadie ha estado " +"nunca realmente contento con él porque escribir nuevos ganchos de " +"importación es difícil y complicado. Se han propuesto varias alternativas, " +"como los módulos :mod:`imputil` y :mod:`iu`, pero ninguno de ellos ha tenido " +"mucha aceptación, y ninguno era fácilmente utilizable desde el código C." #: ../Doc/whatsnew/2.3.rst:712 msgid "" @@ -748,6 +1092,9 @@ msgid "" "McMillan's :mod:`iu` module. Three new items are added to the :mod:`sys` " "module:" msgstr "" +":pep:`302` toma prestadas ideas de sus predecesores, especialmente del " +"módulo :mod:`iu` de Gordon McMillan. Se añaden tres nuevos elementos al " +"módulo :mod:`sys`:" #: ../Doc/whatsnew/2.3.rst:716 msgid "" @@ -756,12 +1103,19 @@ msgid "" "an importer object that will handle imports from this path or raises an :exc:" "`ImportError` exception if it can't handle this path." msgstr "" +"``sys.path_hooks`` es una lista de objetos invocables; la mayoría de las " +"veces serán clases. Cada llamada toma una cadena que contiene una ruta y " +"retorna un objeto importador que manejará las importaciones desde esta ruta " +"o lanza una excepción :exc:`ImportError` si no puede manejar esta ruta." #: ../Doc/whatsnew/2.3.rst:721 msgid "" "``sys.path_importer_cache`` caches importer objects for each path, so ``sys." "path_hooks`` will only need to be traversed once for each path." msgstr "" +"``sys.path_importer_cache`` almacena en caché los objetos del importador " +"para cada ruta, por lo que ``sys.path_hooks`` sólo tendrá que ser recorrido " +"una vez para cada ruta." #: ../Doc/whatsnew/2.3.rst:724 msgid "" @@ -770,6 +1124,11 @@ msgid "" "can add objects to it. Additional built-in and frozen modules can be " "imported by an object added to this list." msgstr "" +"``sys.meta_path`` es una lista de objetos importadores que se recorrerán " +"antes de comprobar ``sys.path``. Esta lista está inicialmente vacía, pero " +"el código de usuario puede añadir objetos a ella. Los módulos adicionales " +"incorporados y congelados pueden ser importados por un objeto añadido a esta " +"lista." #: ../Doc/whatsnew/2.3.rst:729 msgid "" @@ -779,25 +1138,35 @@ msgid "" "has a single method, ``load_module(fullname)``, that creates and returns the " "corresponding module object." msgstr "" +"Los objetos importadores deben tener un único método, " +"``find_module(fullname, path=None)``. *fullname* será un nombre de módulo o " +"paquete, por ejemplo ``string`` o ``distutils.core``. :meth:`find_module` " +"debe retornar un objeto cargador que tenga un único método, " +"``load_module(fullname)``, que cree y retorne el objeto módulo " +"correspondiente." #: ../Doc/whatsnew/2.3.rst:735 msgid "" "Pseudo-code for Python's new import logic, therefore, looks something like " "this (simplified a bit; see :pep:`302` for the full details)::" msgstr "" +"Por lo tanto, el pseudocódigo de la nueva lógica de importación de Python es " +"algo así (simplificado un poco; véase :pep:`302` para los detalles " +"completos)::" #: ../Doc/whatsnew/2.3.rst:760 msgid ":pep:`302` - New Import Hooks" -msgstr "" +msgstr ":pep:`302` - Nuevos ganchos de importación" #: ../Doc/whatsnew/2.3.rst:761 msgid "" "Written by Just van Rossum and Paul Moore. Implemented by Just van Rossum." msgstr "" +"Escrito por Just van Rossum y Paul Moore. Implementado por Just van Rossum." #: ../Doc/whatsnew/2.3.rst:769 msgid "PEP 305: Comma-separated Files" -msgstr "" +msgstr "PEP 305: Archivos separados por comas" #: ../Doc/whatsnew/2.3.rst:771 msgid "" @@ -805,22 +1174,31 @@ msgid "" "databases and spreadsheets. Python 2.3 adds a parser for comma-separated " "files." msgstr "" +"Los archivos separados por comas son un formato frecuentemente utilizado " +"para exportar datos de bases de datos y hojas de cálculo. Python 2.3 añade " +"un analizador de archivos separados por comas." #: ../Doc/whatsnew/2.3.rst:774 msgid "Comma-separated format is deceptively simple at first glance::" msgstr "" +"El formato separado por comas es engañosamente sencillo a primera vista::" #: ../Doc/whatsnew/2.3.rst:778 msgid "" "Read a line and call ``line.split(',')``: what could be simpler? But toss in " "string data that can contain commas, and things get more complicated::" msgstr "" +"Leer una línea y llamar a ``line.split(',')``: ¿qué puede ser más sencillo? " +"Pero si se añaden datos de cadena que pueden contener comas, las cosas se " +"complican::" #: ../Doc/whatsnew/2.3.rst:783 msgid "" "A big ugly regular expression can parse this, but using the new :mod:`csv` " "package is much simpler::" msgstr "" +"Una expresión regular grande y fea puede analizar esto, pero usar el nuevo " +"paquete :mod:`csv` es mucho más sencillo::" #: ../Doc/whatsnew/2.3.rst:793 msgid "" @@ -828,6 +1206,9 @@ msgid "" "separator isn't limited to the comma and can be changed to any character, " "and so can the quoting and line-ending characters." msgstr "" +"La función :func:`reader` admite varias opciones. El separador de campos no " +"se limita a la coma y puede cambiarse por cualquier carácter, al igual que " +"las comillas y el final de línea." #: ../Doc/whatsnew/2.3.rst:797 msgid "" @@ -836,20 +1217,27 @@ msgid "" "class:`csv.writer` class will generate comma-separated files from a " "succession of tuples or lists, quoting strings that contain the delimiter." msgstr "" +"Se pueden definir y registrar diferentes dialectos de archivos separados por " +"comas; actualmente hay dos dialectos, ambos utilizados por Microsoft Excel. " +"Una clase :class:`csv.writer` independiente generará archivos separados por " +"comas a partir de una sucesión de tuplas o listas, citando cadenas que " +"contengan el delimitador." #: ../Doc/whatsnew/2.3.rst:806 msgid ":pep:`305` - CSV File API" -msgstr "" +msgstr ":pep:`305` - API de archivos CSV" #: ../Doc/whatsnew/2.3.rst:806 msgid "" "Written and implemented by Kevin Altis, Dave Cole, Andrew McNamara, Skip " "Montanaro, Cliff Wells." msgstr "" +"Escrito y realizado por Kevin Altis, Dave Cole, Andrew McNamara, Skip " +"Montanaro, Cliff Wells." #: ../Doc/whatsnew/2.3.rst:815 msgid "PEP 307: Pickle Enhancements" -msgstr "" +msgstr "PEP 307: Mejoras en Pickle" #: ../Doc/whatsnew/2.3.rst:817 msgid "" @@ -859,6 +1247,12 @@ msgid "" "quotes a trivial example where a new-style class results in a pickled string " "three times longer than that for a classic class." msgstr "" +"Los módulos :mod:`pickle` y :mod:`cPickle` recibieron cierta atención " +"durante el ciclo de desarrollo de la 2.3. En 2.2, las clases de estilo " +"nuevo podían ser desempaquetadas sin dificultad, pero no se desempaquetaba " +"de forma muy compacta; :pep:`307` cita un ejemplo trivial en el que una " +"clase de estilo nuevo da lugar a una cadena desempaquetada tres veces más " +"larga que la de una clase clásica." #: ../Doc/whatsnew/2.3.rst:823 msgid "" @@ -869,6 +1263,13 @@ msgid "" "format. A new constant, :const:`pickle.HIGHEST_PROTOCOL`, can be used to " "select the fanciest protocol available." msgstr "" +"La solución fue inventar un nuevo protocolo pickle. La función :func:" +"`pickle.dumps` soporta desde hace tiempo una bandera de texto o binario. En " +"la versión 2.3, esta bandera se ha redefinido, pasando de ser un booleano a " +"un entero: 0 es el antiguo formato pickle en modo texto, 1 es el antiguo " +"formato binario, y ahora 2 es un nuevo formato específico de 2.3. Una nueva " +"constante, :const:`pickle.HIGHEST_PROTOCOL`, puede utilizarse para " +"seleccionar el protocolo más elegante disponible." #: ../Doc/whatsnew/2.3.rst:830 msgid "" @@ -878,6 +1279,12 @@ msgid "" "this code was ever audited and therefore it's all been ripped out in 2.3. " "You should not unpickle untrusted data in any version of Python." msgstr "" +"El unpickling ya no se considera una operación segura. El :mod:`pickle` de " +"la versión 2.2 proporcionaba ganchos para tratar de evitar que las clases no " +"seguras fueran deserializadas (específicamente, un atributo :attr:" +"`__safe_for_unpickling__`), pero nada de este código fue nunca auditado y " +"por lo tanto todo ha sido eliminado en la versión 2.3. No se debe " +"deserializar datos no confiables en ninguna versión de Python." #: ../Doc/whatsnew/2.3.rst:836 msgid "" @@ -886,6 +1293,11 @@ msgid "" "`__getstate__`, :meth:`__setstate__`, and :meth:`__getnewargs__`. Consult :" "pep:`307` for the full semantics of these methods." msgstr "" +"Para reducir la sobrecarga de pickling de las clases de estilo nuevo, se ha " +"añadido una nueva interfaz para personalizar el pickling mediante tres " +"métodos especiales: :meth:`__getstate__`, :meth:`__setstate__`, y :meth:" +"`__getnewargs__`. Consulte :pep:`307` para conocer la semántica completa de " +"estos métodos." #: ../Doc/whatsnew/2.3.rst:841 msgid "" @@ -894,18 +1306,23 @@ msgid "" "Software Foundation will maintain a list of standardized codes; there's also " "a range of codes for private use. Currently no codes have been specified." msgstr "" +"Como forma de comprimir aún más los pickles, ahora es posible utilizar " +"códigos enteros en lugar de cadenas largas para identificar las clases " +"serializadas. La Python Software Foundation mantendrá una lista de códigos " +"estandarizados; también hay una gama de códigos para uso privado. " +"Actualmente no se ha especificado ningún código." #: ../Doc/whatsnew/2.3.rst:849 msgid ":pep:`307` - Extensions to the pickle protocol" -msgstr "" +msgstr ":pep:`307` - Extensiones del protocolo pickle" #: ../Doc/whatsnew/2.3.rst:850 msgid "Written and implemented by Guido van Rossum and Tim Peters." -msgstr "" +msgstr "Escrito y ejecutado por Guido van Rossum y Tim Peters." #: ../Doc/whatsnew/2.3.rst:858 msgid "Extended Slices" -msgstr "" +msgstr "Rebanadas ampliadas" #: ../Doc/whatsnew/2.3.rst:860 msgid "" @@ -917,21 +1334,33 @@ msgid "" "sequence types have never supported this feature, raising a :exc:`TypeError` " "if you tried it. Michael Hudson contributed a patch to fix this shortcoming." msgstr "" +"Desde la versión 1.4 de Python, la sintaxis de corte admite un tercer " +"argumento opcional \"paso\" o \"zancada\". Por ejemplo, estas son todas las " +"sintaxis legales de Python: ``L[1:10:2]``, ``L[:-1:1]``, ``L[::-1]``. Esto " +"se añadió a Python a petición de los desarrolladores de Numerical Python, " +"que utiliza ampliamente el tercer argumento. Sin embargo, los tipos de " +"secuencias de listas, tuplas y cadenas incorporados en Python nunca han " +"soportado esta característica, y lanzan un :exc:`TypeError` si lo intentas. " +"Michael Hudson ha contribuido con un parche para solucionar este problema." #: ../Doc/whatsnew/2.3.rst:868 msgid "" "For example, you can now easily extract the elements of a list that have " "even indexes::" msgstr "" +"Por ejemplo, ahora puede extraer fácilmente los elementos de una lista que " +"tengan índices pares::" #: ../Doc/whatsnew/2.3.rst:875 msgid "" "Negative values also work to make a copy of the same list in reverse order::" msgstr "" +"Los valores negativos también sirven para hacer una copia de la misma lista " +"en orden inverso::" #: ../Doc/whatsnew/2.3.rst:880 msgid "This also works for tuples, arrays, and strings::" -msgstr "" +msgstr "Esto también funciona para tuplas, arrays y cadenas::" #: ../Doc/whatsnew/2.3.rst:888 msgid "" @@ -940,6 +1369,10 @@ msgid "" "assignment to extended and regular slices. Assignment to a regular slice " "can be used to change the length of the sequence::" msgstr "" +"Si tienes una secuencia mutable, como una lista o un array, puedes asignar o " +"eliminar una rebanada extendida, pero hay algunas diferencias entre la " +"asignación a rebanadas extendidas y regulares. La asignación a una rebanada " +"regular se puede utilizar para cambiar la longitud de la secuencia::" #: ../Doc/whatsnew/2.3.rst:900 msgid "" @@ -947,20 +1380,25 @@ msgid "" "the list on the right hand side of the statement must contain the same " "number of items as the slice it is replacing::" msgstr "" +"Las rebanadas extendidas no son tan flexibles. Cuando se asigna a una " +"rebanada extendida, la lista a la derecha de la declaración debe contener el " +"mismo número de elementos que la rebanada que está reemplazando::" #: ../Doc/whatsnew/2.3.rst:917 msgid "Deletion is more straightforward::" -msgstr "" +msgstr "La eliminación es más sencilla::" #: ../Doc/whatsnew/2.3.rst:928 msgid "" "One can also now pass slice objects to the :meth:`__getitem__` methods of " "the built-in sequences::" msgstr "" +"Ahora también se pueden pasar objetos slice a los métodos :meth:" +"`__getitem__` de las secuencias incorporadas::" #: ../Doc/whatsnew/2.3.rst:934 msgid "Or use slice objects directly in subscripts::" -msgstr "" +msgstr "O utilizar los objetos de corte directamente en los subíndices::" #: ../Doc/whatsnew/2.3.rst:939 msgid "" @@ -972,6 +1410,13 @@ msgid "" "phrase hides a welter of confusing details!). The method is intended to be " "used like this::" msgstr "" +"Para simplificar la implementación de secuencias que soportan el corte " +"extendido, los objetos slice tienen ahora un método ``indices(length)`` que, " +"dada la longitud de una secuencia, retorna una tupla ``(start, stop, step)`` " +"que puede pasarse directamente a :func:`range`. :meth:`indices` maneja los " +"índices omitidos y los que están fuera de los límites de una manera " +"consistente con los slices regulares (¡y esta frase inocua esconde un montón " +"de detalles confusos!). El método está pensado para ser utilizado así::" #: ../Doc/whatsnew/2.3.rst:957 msgid "" @@ -980,28 +1425,38 @@ msgid "" "This is consistent with Python 2.2, where :class:`int`, :class:`str`, etc., " "underwent the same change." msgstr "" +"En este ejemplo también se puede ver que el objeto incorporado :class:" +"`slice` es ahora el objeto tipo para el tipo slice, y ya no es una función. " +"Esto es consistente con Python 2.2, donde :class:`int`, :class:`str`, etc., " +"sufrieron el mismo cambio." #: ../Doc/whatsnew/2.3.rst:966 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios en el lenguaje" #: ../Doc/whatsnew/2.3.rst:968 msgid "" "Here are all of the changes that Python 2.3 makes to the core Python " "language." msgstr "" +"Estos son todos los cambios que Python 2.3 introduce en el núcleo del " +"lenguaje Python." #: ../Doc/whatsnew/2.3.rst:970 msgid "" "The :keyword:`yield` statement is now always a keyword, as described in " "section :ref:`section-generators` of this document." msgstr "" +"La expresión :keyword:`yield` es ahora siempre una palabra clave, como se " +"describe en la sección :ref:`section-generators` de este documento." #: ../Doc/whatsnew/2.3.rst:973 msgid "" "A new built-in function :func:`enumerate` was added, as described in " "section :ref:`section-enumerate` of this document." msgstr "" +"Se ha añadido una nueva función incorporada :func:`enumerate`, como se " +"describe en la sección :ref:`section-enumerate` de este documento." #: ../Doc/whatsnew/2.3.rst:976 msgid "" @@ -1009,6 +1464,9 @@ msgid "" "the built-in :class:`bool` type, as described in section :ref:`section-bool` " "of this document." msgstr "" +"Se han añadido dos nuevas constantes, :const:`True` y :const:`False` junto " +"con el tipo incorporado :class:`bool`, como se describe en la sección :ref:" +"`section-bool` de este documento." #: ../Doc/whatsnew/2.3.rst:980 msgid "" @@ -1018,12 +1476,19 @@ msgid "" "that ``isinstance(int(expression), int)`` is false, but that seems unlikely " "to cause problems in practice." msgstr "" +"El constructor de tipo :func:`int` ahora retornará un entero largo en lugar " +"de lanzar un :exc:`OverflowError` cuando una cadena o un número de punto " +"flotante es demasiado grande para caber en un entero. Esto puede llevar al " +"resultado paradójico de que ``isinstance(int(expresión), int)`` sea falso, " +"pero parece poco probable que cause problemas en la práctica." #: ../Doc/whatsnew/2.3.rst:986 msgid "" "Built-in types now support the extended slicing syntax, as described in " "section :ref:`section-slices` of this document." msgstr "" +"Los tipos incorporados ahora soportan la sintaxis de rebanado extendida, " +"como se describe en la sección :ref:`section-slices` de este documento." #: ../Doc/whatsnew/2.3.rst:989 msgid "" @@ -1032,6 +1497,10 @@ msgid "" "accepts numbers, meaning that you can't use it to concatenate a bunch of " "strings. (Contributed by Alex Martelli.)" msgstr "" +"Una nueva función incorporada, ``suma(iterable, start=0)``, suma los " +"elementos numéricos en el objeto iterable y retorna su suma. :func:`suma` " +"sólo acepta números, lo que significa que no se puede utilizar para " +"concatenar un montón de cadenas. (Contribución de Alex Martelli)" #: ../Doc/whatsnew/2.3.rst:994 msgid "" @@ -1040,6 +1509,10 @@ msgid "" "consistent with slice indexing, so when *pos* is -1 the value will be " "inserted before the last element, and so forth." msgstr "" +"``list.insert(pos, valor)`` solía insertar *valor* al principio de la lista " +"cuando *pos* era negativo. El comportamiento ha sido cambiado para ser " +"consistente con la indexación de las rebanadas, así que cuando *pos* es -1 " +"el valor será insertado antes del último elemento, y así sucesivamente." #: ../Doc/whatsnew/2.3.rst:999 msgid "" @@ -1047,6 +1520,9 @@ msgid "" "returns its index, now takes optional *start* and *stop* arguments to limit " "the search to only part of the list." msgstr "" +"``list.index(value)``, que busca *valor* dentro de la lista y retorna su " +"índice, ahora toma los argumentos opcionales *start* y *stop* para limitar " +"la búsqueda sólo a una parte de la lista." #: ../Doc/whatsnew/2.3.rst:1003 msgid "" @@ -1055,6 +1531,11 @@ msgid "" "dictionary. If the requested key isn't present in the dictionary, *default* " "is returned if it's specified and :exc:`KeyError` raised if it isn't. ::" msgstr "" +"Los diccionarios tienen un nuevo método, ``pop(key[, *default*])``, que " +"retorna el valor correspondiente a *key* y elimina ese par clave/valor del " +"diccionario. Si la clave solicitada no está presente en el diccionario, se " +"retorna *default* si está especificada y se lanza :exc:`KeyError` si no lo " +"está:" #: ../Doc/whatsnew/2.3.rst:1025 msgid "" @@ -1062,20 +1543,26 @@ msgid "" "creates a dictionary with keys taken from the supplied iterator *iterable* " "and all values set to *value*, defaulting to ``None``." msgstr "" +"También hay un nuevo método de clase, ``dict.fromkeys(iterable, value)``, " +"que crea un diccionario con claves tomadas del iterador *iterable* " +"suministrado y todos los valores establecidos a *value*, por defecto a " +"``None``." #: ../Doc/whatsnew/2.3.rst:1029 msgid "(Patches contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Parches aportados por Raymond Hettinger)" #: ../Doc/whatsnew/2.3.rst:1031 msgid "" "Also, the :func:`dict` constructor now accepts keyword arguments to simplify " "creating small dictionaries::" msgstr "" +"Además, el constructor :func:`dict` ahora acepta argumentos de palabras " +"clave para simplificar la creación de pequeños diccionarios::" #: ../Doc/whatsnew/2.3.rst:1037 msgid "(Contributed by Just van Rossum.)" -msgstr "" +msgstr "(Contribución de Just van Rossum.)" #: ../Doc/whatsnew/2.3.rst:1039 msgid "" @@ -1084,6 +1571,10 @@ msgid "" "Python with the :option:`-O` switch will still generate code that doesn't " "execute any assertions." msgstr "" +"La expresión :keyword:`assert` ya no comprueba la bandera ``debug__``, por " +"lo que ya no se pueden desactivar las aserciones asignando a ``__debug__``. " +"Ejecutar Python con la opción :option:`-O` seguirá generando código que no " +"ejecute ninguna aserción." #: ../Doc/whatsnew/2.3.rst:1044 msgid "" @@ -1093,6 +1584,12 @@ msgid "" "now use the type objects available in the :mod:`types` module.) For example, " "you can create a new module object with the following code:" msgstr "" +"La mayoría de los objetos de tipo son ahora invocables, por lo que puedes " +"usarlos para crear nuevos objetos como funciones, clases y módulos. (Esto " +"significa que el módulo :mod:`new` puede quedar obsoleto en una futura " +"versión de Python, porque ahora puedes utilizar los objetos de tipo " +"disponibles en el módulo :mod:`types`) Por ejemplo, puede crear un nuevo " +"objeto de módulo con el siguiente código:" #: ../Doc/whatsnew/2.3.rst:1059 msgid "" @@ -1103,6 +1600,12 @@ msgid "" "PendingDeprecationWarning:: <-W>` on the command line or use :func:`warnings." "filterwarnings`." msgstr "" +"Se ha añadido una nueva advertencia, :exc:`PendingDeprecationWarning` para " +"indicar las características que están en proceso de ser obsoletas. La " +"advertencia no se imprimirá por defecto. Para comprobar el uso de funciones " +"que quedarán obsoletas en el futuro, proporcione :option:`-Walways::" +"PendingDeprecationWarning:: <-W>` en la línea de comandos o utilice :func:" +"`warnings.filterwarnings`." #: ../Doc/whatsnew/2.3.rst:1065 msgid "" @@ -1110,6 +1613,9 @@ msgid "" "occurred\"``, has begun. Raising a string will now trigger :exc:" "`PendingDeprecationWarning`." msgstr "" +"Ha comenzado el proceso de desaprobación de las excepciones basadas en " +"cadenas, como en ``lanzamiento de \"Error ocurred”``. Al lanzar una cadena, " +"ahora se activará :exc:`PendingDeprecationWarning`." #: ../Doc/whatsnew/2.3.rst:1069 msgid "" @@ -1117,6 +1623,9 @@ msgid "" "warning. In a future version of Python, ``None`` may finally become a " "keyword." msgstr "" +"El uso de ``None`` como nombre de una variable ahora resultará en una " +"advertencia :exc:`SyntaxWarning`. En una futura versión de Python, ``None`` " +"podría convertirse en una palabra clave." #: ../Doc/whatsnew/2.3.rst:1072 msgid "" @@ -1128,6 +1637,15 @@ msgid "" "encoding used by the file; Unicode strings written to the file will be " "automatically converted to bytes using the given encoding." msgstr "" +"El método :meth:`xreadlines` de los objetos archivo, introducido en Python " +"2.1, ya no es necesario porque los archivos se comportan ahora como su " +"propio iterador. :meth:`xreadlines` se introdujo originalmente como una " +"forma más rápida de recorrer todas las líneas de un archivo, pero ahora se " +"puede escribir simplemente ``for line in file_obj``. Los objetos archivo " +"también tienen un nuevo atributo :attr:`encoding` de sólo lectura que " +"proporciona la codificación utilizada por el archivo; las cadenas Unicode " +"escritas en el archivo se convertirán automáticamente a bytes utilizando la " +"codificación dada." #: ../Doc/whatsnew/2.3.rst:1080 msgid "" @@ -1144,6 +1662,19 @@ msgid "" "pipermail/python-dev/2002-October/029035.html. Samuele Pedroni first pointed " "out the problem and also implemented the fix by coding the C3 algorithm." msgstr "" +"El orden de resolución de los métodos utilizados por las clases del nuevo " +"estilo ha cambiado, aunque sólo notarás la diferencia si tienes una " +"jerarquía de herencia realmente complicada. Las clases clásicas no se ven " +"afectadas por este cambio. Python 2.2 originalmente utilizaba una " +"ordenación topológica de los ancestros de una clase, pero 2.3 ahora utiliza " +"el algoritmo C3 como se describe en el artículo `\"A Monotonic Superclass " +"Linearization for Dylan\" `_. Para entender la motivación de este cambio, lea el " +"artículo de Michele Simionato `\"Python 2.3 Method Resolution Order\" " +"`_, o lea el hilo en python-" +"dev que comienza con el mensaje en https://mail.python.org/pipermail/python-" +"dev/2002-October/029035.html. Samuele Pedroni fue el primero en señalar el " +"problema y también implementó la solución codificando el algoritmo C3." #: ../Doc/whatsnew/2.3.rst:1093 msgid "" @@ -1155,6 +1686,13 @@ msgid "" "number using ``sys.setcheckinterval(N)``. The limit can be retrieved with " "the new :func:`sys.getcheckinterval` function." msgstr "" +"Python ejecuta programas multihilo cambiando entre hilos después de ejecutar " +"N bytecodes. El valor por defecto de N se ha incrementado de 10 a 100 " +"bytecodes, acelerando las aplicaciones de un solo hilo al reducir la " +"sobrecarga de cambio. Algunas aplicaciones multihilo pueden sufrir un " +"tiempo de respuesta más lento, pero eso se arregla fácilmente estableciendo " +"el límite a un número menor usando ``sys.setcheckinterval(N)``. El límite " +"puede recuperarse con la nueva función :func:`sys.getcheckinterval`." #: ../Doc/whatsnew/2.3.rst:1101 msgid "" @@ -1163,10 +1701,15 @@ msgid "" "``'.'`` in front of the type name. For example, in Python 2.2, if you " "created a socket and printed its :attr:`__class__`, you'd get this output::" msgstr "" +"Un cambio menor pero de gran alcance es que los nombres de los tipos de " +"extensión definidos por los módulos incluidos con Python ahora contienen el " +"módulo y un ``.'`` delante del nombre del tipo. Por ejemplo, en Python 2.2, " +"si creabas un socket e imprimías su :attr:`__class__`, obtendrías esta " +"salida::" #: ../Doc/whatsnew/2.3.rst:1110 msgid "In 2.3, you get this::" -msgstr "" +msgstr "En 2.3, se obtiene esto::" #: ../Doc/whatsnew/2.3.rst:1115 msgid "" @@ -1177,10 +1720,16 @@ msgid "" "lines of those relating to assigning to an instance's :attr:`~instance." "__class__` attribute." msgstr "" +"Se ha eliminado una de las incompatibilidades señaladas entre las clases de " +"estilo antiguo y las de estilo nuevo: ahora se pueden asignar a los " +"atributos :attr:`~definición.__name__` y :attr:`~clase.__bases__` de las " +"clases de estilo nuevo. Hay algunas restricciones sobre lo que se puede " +"asignar a :attr:`~class.__bases__` en la línea de las relacionadas con la " +"asignación al atributo :attr:`~instance.__class__` de una instancia." #: ../Doc/whatsnew/2.3.rst:1125 msgid "String Changes" -msgstr "" +msgstr "Cambios en las cadenas de texto" #: ../Doc/whatsnew/2.3.rst:1127 msgid "" @@ -1190,12 +1739,20 @@ msgid "" "and ``X in Y`` will return :const:`True` if *X* is a substring of *Y*. If " "*X* is the empty string, the result is always :const:`True`. ::" msgstr "" +"El operador :keyword:`in` ahora funciona de forma diferente para las " +"cadenas. Antes, cuando se evaluaba ``X en Y`` donde *X* y *Y* eran cadenas, " +"*X* sólo podía ser un único carácter. Esto ha cambiado; *X* puede ser una " +"cadena de cualquier longitud, y ``X en Y`` retornará :const:`True` si *X* es " +"una subcadena de *Y*. Si *X* es una cadena vacía, el resultado es siempre :" +"const:`True`. ::" #: ../Doc/whatsnew/2.3.rst:1140 msgid "" "Note that this doesn't tell you where the substring starts; if you need that " "information, use the :meth:`find` string method." msgstr "" +"Tenga en cuenta que esto no le dice dónde empieza la subcadena; si necesita " +"esa información, utilice el método :meth:`find` string." #: ../Doc/whatsnew/2.3.rst:1143 msgid "" @@ -1203,16 +1760,22 @@ msgid "" "have an optional argument for specifying the characters to strip. The " "default is still to remove all whitespace characters::" msgstr "" +"Los métodos de cadena :meth:`strip`, :meth:`lstrip` y :meth:`rstrip` tienen " +"ahora un argumento opcional para especificar los caracteres a eliminar. El " +"valor por defecto sigue siendo eliminar todos los caracteres de espacio en " +"blanco::" #: ../Doc/whatsnew/2.3.rst:1157 msgid "(Suggested by Simon Brunning and implemented by Walter Dörwald.)" -msgstr "" +msgstr "(Sugerido por Simon Brunning y aplicado por Walter Dörwald)" #: ../Doc/whatsnew/2.3.rst:1159 msgid "" "The :meth:`startswith` and :meth:`endswith` string methods now accept " "negative numbers for the *start* and *end* parameters." msgstr "" +"Los métodos de cadena :meth:`startswith` y :meth:`endswith` ahora aceptan " +"números negativos para los parámetros *start* y *end*." #: ../Doc/whatsnew/2.3.rst:1162 msgid "" @@ -1221,10 +1784,14 @@ msgid "" "left until it's the specified width. Note that the ``%`` operator is still " "more flexible and powerful than :meth:`zfill`. ::" msgstr "" +"Otro nuevo método de cadena es :meth:`zfill`, originalmente una función del " +"módulo :mod:`string`. :meth:`zfill` rellena una cadena numérica con ceros a " +"la izquierda hasta que tenga el ancho especificado. Tenga en cuenta que el " +"operador ``%`` sigue siendo más flexible y potente que :meth:`zfill`. ::" #: ../Doc/whatsnew/2.3.rst:1174 msgid "(Contributed by Walter Dörwald.)" -msgstr "" +msgstr "(Contribución de Walter Dörwald.)" #: ../Doc/whatsnew/2.3.rst:1176 msgid "" @@ -1233,6 +1800,11 @@ msgid "" "basestring)`` will return :const:`True` for either kind of string. It's a " "completely abstract type, so you can't create :class:`basestring` instances." msgstr "" +"Se ha añadido un nuevo tipo de objeto, :class:`basestring`. Tanto las " +"cadenas de 8 bits como las cadenas Unicode heredan de este tipo, por lo que " +"``isinstance(obj, basestring)`` retornará :const:`True` para cualquier tipo " +"de cadena. Es un tipo completamente abstracto, por lo que no se pueden " +"crear instancias de :class:`basestring`." #: ../Doc/whatsnew/2.3.rst:1181 msgid "" @@ -1240,22 +1812,30 @@ msgid "" "the usual way when the only reference to them is from the internal " "dictionary of interned strings. (Implemented by Oren Tirosh.)" msgstr "" +"Las cadenas internas ya no son inmortales y ahora serán recolectadas de la " +"forma habitual cuando la única referencia a ellas sea desde el diccionario " +"interno de cadenas internas. (Implementado por Oren Tirosh)" #: ../Doc/whatsnew/2.3.rst:1189 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/2.3.rst:1191 msgid "" "The creation of new-style class instances has been made much faster; they're " "now faster than classic classes!" msgstr "" +"La creación de instancias de clases de estilo nuevo se ha hecho mucho más " +"rápida; ¡ahora son más rápidas que las clases clásicas!" #: ../Doc/whatsnew/2.3.rst:1194 msgid "" "The :meth:`sort` method of list objects has been extensively rewritten by " "Tim Peters, and the implementation is significantly faster." msgstr "" +"El método :meth:`sort` de los objetos de la lista ha sido ampliamente " +"reescrito por Tim Peters, y la implementación es significativamente más " +"rápida." #: ../Doc/whatsnew/2.3.rst:1197 msgid "" @@ -1265,6 +1845,11 @@ msgid "" "(Original patch by Christopher A. Craig, and significantly reworked by Tim " "Peters.)" msgstr "" +"La multiplicación de enteros largos es ahora mucho más rápida gracias a una " +"implementación de la multiplicación Karatsuba, un algoritmo que escala mejor " +"que el O(n\\*n) requerido para el algoritmo de multiplicación de la escuela " +"primaria. (Parche original de Christopher A. Craig, y reelaborado " +"significativamente por Tim Peters)" #: ../Doc/whatsnew/2.3.rst:1202 msgid "" @@ -1272,6 +1857,10 @@ msgid "" "increase, depending on your compiler's idiosyncrasies. See section :ref:" "`23section-other` for a longer explanation. (Removed by Michael Hudson.)" msgstr "" +"El opcode ``SET_LINENO`` ha desaparecido. Esto puede proporcionar un " +"pequeño aumento de velocidad, dependiendo de la idiosincrasia de su " +"compilador. Vea la sección :ref:`23section-other` para una explicación más " +"larga. (Eliminado por Michael Hudson)" #: ../Doc/whatsnew/2.3.rst:1206 msgid "" @@ -1279,6 +1868,9 @@ msgid "" "xrange(n)`` slightly faster than ``for i in range(n)``. (Patch by Raymond " "Hettinger.)" msgstr "" +"Los objetos :func:`xrange` tienen ahora su propio iterador, haciendo que " +"``for i in xrange(n)`` sea ligeramente más rápido que ``for i in " +"range(n)``. (Parche de Raymond Hettinger)" #: ../Doc/whatsnew/2.3.rst:1210 msgid "" @@ -1287,16 +1879,22 @@ msgid "" "(Implemented mostly by GvR, but lots of people have contributed single " "changes.)" msgstr "" +"Se han realizado una serie de pequeños reajustes en varios puntos " +"conflictivos para mejorar el rendimiento, como por ejemplo alinear una " +"función o eliminar algo de código. (Implementado principalmente por GvR, " +"pero mucha gente ha contribuido con cambios individuales)" #: ../Doc/whatsnew/2.3.rst:1214 msgid "" "The net result of the 2.3 optimizations is that Python 2.3 runs the pystone " "benchmark around 25% faster than Python 2.2." msgstr "" +"El resultado neto de las optimizaciones de la versión 2.3 es que Python 2.3 " +"ejecuta el benchmark pystone alrededor de un 25% f más rápido que Python 2.2." #: ../Doc/whatsnew/2.3.rst:1221 msgid "New, Improved, and Deprecated Modules" -msgstr "" +msgstr "Módulos nuevos, mejorados y obsoletos" #: ../Doc/whatsnew/2.3.rst:1223 msgid "" @@ -1306,6 +1904,12 @@ msgid "" "source tree for a more complete list of changes, or look through the CVS " "logs for all the details." msgstr "" +"Como es habitual, la biblioteca estándar de Python ha recibido una serie de " +"mejoras y correcciones de errores. Aquí hay una lista parcial de los " +"cambios más notables, ordenados alfabéticamente por nombre de módulo. " +"Consulte el archivo :file:`Misc/NEWS` en el árbol de fuentes para obtener " +"una lista más completa de los cambios, o busque en los registros de CVS para " +"obtener todos los detalles." #: ../Doc/whatsnew/2.3.rst:1228 msgid "" @@ -1314,6 +1918,11 @@ msgid "" "assignment operator to add another array's contents, and the ``*=`` " "assignment operator to repeat an array. (Contributed by Jason Orendorff.)" msgstr "" +"El módulo :mod:`array` soporta ahora matrices de caracteres Unicode que " +"utilizan el carácter de formato ``'u``. Las matrices también soportan ahora " +"el uso del operador de asignación ``+=`` para añadir el contenido de otra " +"matriz, y el operador de asignación ``*=`` para repetir una matriz. " +"(Contribución de Jason Orendorff)" #: ../Doc/whatsnew/2.3.rst:1233 msgid "" @@ -1321,6 +1930,10 @@ msgid "" "`_ package, providing a more complete " "interface to the transactional features of the BerkeleyDB library." msgstr "" +"El módulo :mod:`bsddb` ha sido reemplazado por la versión 4.1.6 del paquete " +"`PyBSDDB `_, proporcionando una interfaz más " +"completa para las características transaccionales de la biblioteca " +"BerkeleyDB." #: ../Doc/whatsnew/2.3.rst:1237 msgid "" @@ -1337,6 +1950,19 @@ msgid "" "importing it as :mod:`bsddb3`, you will have to change your ``import`` " "statements to import it as :mod:`bsddb`." msgstr "" +"La antigua versión del módulo ha sido renombrada como :mod:`bsddb185` y ya " +"no se construye automáticamente; tendrás que editar :file:`Modules/Setup` " +"para activarlo. Ten en cuenta que el nuevo paquete :mod:`bsddb` está " +"pensado para ser compatible con el módulo antiguo, así que asegúrate de " +"enviar errores si descubres alguna incompatibilidad. Al actualizar a Python " +"2.3, si el nuevo intérprete se compila con una nueva versión de la " +"biblioteca BerkeleyDB subyacente, es casi seguro que tendrá que convertir " +"sus archivos de base de datos a la nueva versión. Puede hacerlo fácilmente " +"con los nuevos scripts :file:`db2pickle.py` y :file:`pickle2db.py` que " +"encontrará en el directorio :file:`Tools/scripts` de la distribución. Si ya " +"ha estado utilizando el paquete PyBSDDB e importándolo como :mod:`bsddb3`, " +"tendrá que cambiar sus sentencias ``import`` para importarlo como :mod:" +"`bsddb`." #: ../Doc/whatsnew/2.3.rst:1249 msgid "" @@ -1344,12 +1970,19 @@ msgid "" "library. bz2-compressed data is usually smaller than corresponding :mod:" "`zlib`\\ -compressed data. (Contributed by Gustavo Niemeyer.)" msgstr "" +"El nuevo módulo :mod:`bz2` es una interfaz para la biblioteca de compresión " +"de datos bz2. Los datos comprimidos con bz2 suelen ser más pequeños que los " +"correspondientes datos comprimidos con :mod:`zlib`. (Contribución de Gustavo " +"Niemeyer)" #: ../Doc/whatsnew/2.3.rst:1253 msgid "" "A set of standard date/time types has been added in the new :mod:`datetime` " "module. See the following section for more details." msgstr "" +"Se ha añadido un conjunto de tipos de fecha/hora estándar en el nuevo " +"módulo :mod:`datetime`. Consulte la siguiente sección para obtener más " +"detalles." #: ../Doc/whatsnew/2.3.rst:1256 msgid "" @@ -1360,12 +1993,20 @@ msgid "" "includes the header file :file:`sample.h`, you would create the :class:" "`Extension` object like this::" msgstr "" +"La clase Distutils :class:`Extension` soporta ahora un argumento constructor " +"extra llamado *depends* para listar archivos fuente adicionales de los que " +"depende una extensión. Esto permite a Distutils recompilar el módulo si se " +"modifica alguno de los archivos de dependencia. Por ejemplo, si :file:" +"`sampmodule.c` incluye el fichero de cabecera :file:`sample.h`, se crearía " +"el objeto :class:`Extension` así::" #: ../Doc/whatsnew/2.3.rst:1267 msgid "" "Modifying :file:`sample.h` would then cause the module to be recompiled. " "(Contributed by Jeremy Hylton.)" msgstr "" +"La modificación de :file:`sample.h` haría que el módulo se recompilara. " +"(Contribución de Jeremy Hylton)" #: ../Doc/whatsnew/2.3.rst:1270 msgid "" @@ -1374,6 +2015,10 @@ msgid "" "environment variables, using them to override the settings in Python's " "configuration (contributed by Robert Weber)." msgstr "" +"Otros cambios menores en Distutils: ahora comprueba las variables de " +"entorno :envvar:`CC`, :envvar:`CFLAGS`, :envvar:`CPP`, :envvar:`LDFLAGS` y :" +"envvar:`CPPFLAGS`, utilizándolas para anular los ajustes de la configuración " +"de Python (contribución de Robert Weber)." #: ../Doc/whatsnew/2.3.rst:1275 msgid "" @@ -1382,12 +2027,18 @@ msgid "" "private ones as well. The :func:`DocTestSuite` function creates a :class:" "`unittest.TestSuite` object from a set of :mod:`doctest` tests." msgstr "" +"Anteriormente el módulo :mod:`doctest` sólo buscaba casos de prueba en los " +"docstrings de los métodos y funciones públicos, pero ahora también examina " +"los privados. La función :func:`DocTestSuite` crea un objeto :class:" +"`unittest.TestSuite` a partir de un conjunto de pruebas :mod:`doctest`." #: ../Doc/whatsnew/2.3.rst:1280 msgid "" "The new ``gc.get_referents(object)`` function returns a list of all the " "objects referenced by *object*." msgstr "" +"La nueva función ``gc.get_referents(object)`` retorna una lista de todos los " +"objetos referenciados por *object*." #: ../Doc/whatsnew/2.3.rst:1283 msgid "" @@ -1398,20 +2049,29 @@ msgid "" "mode processing continues, meaning that options and arguments can be mixed. " "For example::" msgstr "" +"El módulo :mod:`getopt` ha ganado una nueva función, :func:`gnu_getopt`, que " +"admite los mismos argumentos que la función :func:`getopt` existente, pero " +"utiliza el modo de exploración al estilo GNU. La función :func:`getopt` " +"existente deja de procesar las opciones tan pronto como se encuentra un " +"argumento que no es una opción, pero en el modo GNU el procesamiento " +"continúa, lo que significa que las opciones y los argumentos pueden " +"mezclarse. Por ejemplo::" #: ../Doc/whatsnew/2.3.rst:1294 msgid "(Contributed by Peter Åstrand.)" -msgstr "" +msgstr "(Contribución de Peter Åstrand.)" #: ../Doc/whatsnew/2.3.rst:1296 msgid "" "The :mod:`grp`, :mod:`pwd`, and :mod:`resource` modules now return enhanced " "tuples::" msgstr "" +"Los módulos :mod:`grp`, :mod:`pwd` y :mod:`resource` retornan ahora tuplas " +"mejoradas::" #: ../Doc/whatsnew/2.3.rst:1304 msgid "The :mod:`gzip` module can now handle files exceeding 2 GiB." -msgstr "" +msgstr "El módulo :mod:`gzip` ahora puede manejar archivos de más de 2 GiB." #: ../Doc/whatsnew/2.3.rst:1306 msgid "" @@ -1423,6 +2083,14 @@ msgid "" "is O(lg n). (See https://xlinux.nist.gov/dads//HTML/priorityque.html for " "more information about the priority queue data structure.)" msgstr "" +"El nuevo módulo :mod:`heapq` contiene una implementación de un algoritmo de " +"colas de montón. Un montón es una estructura de datos similar a un array " +"que mantiene los elementos en un orden parcialmente ordenado de forma que, " +"para cada índice *k*, ``heap[k] <= heap[2*k+1]`` y ``heap[k] <= heap[2*k" +"+2]``. Esto hace que sea rápido eliminar el elemento más pequeño, y la " +"inserción de un nuevo elemento manteniendo la propiedad del montón es *O(lg " +"n)*. (Véase https://xlinux.nist.gov/dads//HTML/priorityque.html para más " +"información sobre la estructura de datos de la cola de prioridad)" #: ../Doc/whatsnew/2.3.rst:1314 msgid "" @@ -1431,10 +2099,14 @@ msgid "" "on top of some other mutable Python sequence type. Here's an example that " "uses a Python list::" msgstr "" +"El módulo :mod:`heapq` proporciona las funciones :func:`heappush` y :func:" +"`heappop` para añadir y eliminar elementos manteniendo la propiedad del " +"montón sobre algún otro tipo de secuencia mutable de Python. Aquí hay un " +"ejemplo que utiliza una lista de Python::" #: ../Doc/whatsnew/2.3.rst:1332 msgid "(Contributed by Kevin O'Connor.)" -msgstr "" +msgstr "(Contribución de Kevin O'Connor.)" #: ../Doc/whatsnew/2.3.rst:1334 msgid "" @@ -1445,903 +2117,9 @@ msgid "" "operations. IDLE's core code has been incorporated into the standard library " "as the :mod:`idlelib` package." msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1340 -msgid "" -"The :mod:`imaplib` module now supports IMAP over SSL. (Contributed by Piers " -"Lauder and Tino Lange.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1343 -msgid "" -"The :mod:`itertools` contains a number of useful functions for use with " -"iterators, inspired by various functions provided by the ML and Haskell " -"languages. For example, ``itertools.ifilter(predicate, iterator)`` returns " -"all elements in the iterator for which the function :func:`predicate` " -"returns :const:`True`, and ``itertools.repeat(obj, N)`` returns ``obj`` *N* " -"times. There are a number of other functions in the module; see the " -"package's reference documentation for details. (Contributed by Raymond " -"Hettinger.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1352 -msgid "" -"Two new functions in the :mod:`math` module, ``degrees(rads)`` and " -"``radians(degs)``, convert between radians and degrees. Other functions in " -"the :mod:`math` module such as :func:`math.sin` and :func:`math.cos` have " -"always required input values measured in radians. Also, an optional *base* " -"argument was added to :func:`math.log` to make it easier to compute " -"logarithms for bases other than ``e`` and ``10``. (Contributed by Raymond " -"Hettinger.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1359 -msgid "" -"Several new POSIX functions (:func:`getpgid`, :func:`killpg`, :func:" -"`lchown`, :func:`loadavg`, :func:`major`, :func:`makedev`, :func:`minor`, " -"and :func:`mknod`) were added to the :mod:`posix` module that underlies the :" -"mod:`os` module. (Contributed by Gustavo Niemeyer, Geert Jansen, and Denis " -"S. Otkidach.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1365 -msgid "" -"In the :mod:`os` module, the :func:`\\*stat` family of functions can now " -"report fractions of a second in a timestamp. Such time stamps are " -"represented as floats, similar to the value returned by :func:`time.time`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1369 -msgid "" -"During testing, it was found that some applications will break if time " -"stamps are floats. For compatibility, when using the tuple interface of " -"the :class:`stat_result` time stamps will be represented as integers. When " -"using named fields (a feature first introduced in Python 2.2), time stamps " -"are still represented as integers, unless :func:`os.stat_float_times` is " -"invoked to enable float return values::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1382 -msgid "In Python 2.4, the default will change to always returning floats." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1384 -msgid "" -"Application developers should enable this feature only if all their " -"libraries work properly when confronted with floating point time stamps, or " -"if they use the tuple API. If used, the feature should be activated on an " -"application level instead of trying to enable it on a per-use basis." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1389 -msgid "" -"The :mod:`optparse` module contains a new parser for command-line arguments " -"that can convert option values to a particular Python type and will " -"automatically generate a usage message. See the following section for more " -"details." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1394 -msgid "" -"The old and never-documented :mod:`linuxaudiodev` module has been " -"deprecated, and a new version named :mod:`ossaudiodev` has been added. The " -"module was renamed because the OSS sound drivers can be used on platforms " -"other than Linux, and the interface has also been tidied and brought up to " -"date in various ways. (Contributed by Greg Ward and Nicholas FitzRoy-Dale.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1400 -msgid "" -"The new :mod:`platform` module contains a number of functions that try to " -"determine various properties of the platform you're running on. There are " -"functions for getting the architecture, CPU type, the Windows OS version, " -"and even the Linux distribution version. (Contributed by Marc-André Lemburg.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1405 -msgid "" -"The parser objects provided by the :mod:`pyexpat` module can now optionally " -"buffer character data, resulting in fewer calls to your character data " -"handler and therefore faster performance. Setting the parser object's :attr:" -"`buffer_text` attribute to :const:`True` will enable buffering." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1410 -msgid "" -"The ``sample(population, k)`` function was added to the :mod:`random` " -"module. *population* is a sequence or :class:`xrange` object containing the " -"elements of a population, and :func:`sample` chooses *k* elements from the " -"population without replacing chosen elements. *k* can be any value up to " -"``len(population)``. For example::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1432 -msgid "" -"The :mod:`random` module now uses a new algorithm, the Mersenne Twister, " -"implemented in C. It's faster and more extensively studied than the " -"previous algorithm." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1436 -msgid "(All changes contributed by Raymond Hettinger.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1438 -msgid "" -"The :mod:`readline` module also gained a number of new functions: :func:" -"`get_history_item`, :func:`get_current_history_length`, and :func:" -"`redisplay`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1442 -msgid "" -"The :mod:`rexec` and :mod:`Bastion` modules have been declared dead, and " -"attempts to import them will fail with a :exc:`RuntimeError`. New-style " -"classes provide new ways to break out of the restricted execution " -"environment provided by :mod:`rexec`, and no one has interest in fixing them " -"or time to do so. If you have applications using :mod:`rexec`, rewrite them " -"to use something else." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1448 -msgid "" -"(Sticking with Python 2.2 or 2.1 will not make your applications any safer " -"because there are known bugs in the :mod:`rexec` module in those versions. " -"To repeat: if you're using :mod:`rexec`, stop using it immediately.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1452 -msgid "" -"The :mod:`rotor` module has been deprecated because the algorithm it uses " -"for encryption is not believed to be secure. If you need encryption, use " -"one of the several AES Python modules that are available separately." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1456 -msgid "" -"The :mod:`shutil` module gained a ``move(src, dest)`` function that " -"recursively moves a file or directory to a new location." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1459 -msgid "" -"Support for more advanced POSIX signal handling was added to the :mod:" -"`signal` but then removed again as it proved impossible to make it work " -"reliably across platforms." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1463 -msgid "" -"The :mod:`socket` module now supports timeouts. You can call the " -"``settimeout(t)`` method on a socket object to set a timeout of *t* seconds. " -"Subsequent socket operations that take longer than *t* seconds to complete " -"will abort and raise a :exc:`socket.timeout` exception." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1468 -msgid "" -"The original timeout implementation was by Tim O'Malley. Michael Gilfix " -"integrated it into the Python :mod:`socket` module and shepherded it through " -"a lengthy review. After the code was checked in, Guido van Rossum rewrote " -"parts of it. (This is a good example of a collaborative development process " -"in action.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1474 -msgid "" -"On Windows, the :mod:`socket` module now ships with Secure Sockets Layer " -"(SSL) support." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1477 -msgid "" -"The value of the C :const:`PYTHON_API_VERSION` macro is now exposed at the " -"Python level as ``sys.api_version``. The current exception can be cleared " -"by calling the new :func:`sys.exc_clear` function." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1481 -msgid "" -"The new :mod:`tarfile` module allows reading from and writing to :program:" -"`tar`\\ -format archive files. (Contributed by Lars Gustäbel.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1484 -msgid "" -"The new :mod:`textwrap` module contains functions for wrapping strings " -"containing paragraphs of text. The ``wrap(text, width)`` function takes a " -"string and returns a list containing the text split into lines of no more " -"than the chosen width. The ``fill(text, width)`` function returns a single " -"string, reformatted to fit into lines no longer than the chosen width. (As " -"you can guess, :func:`fill` is built on top of :func:`wrap`. For example::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1506 -msgid "" -"The module also contains a :class:`TextWrapper` class that actually " -"implements the text wrapping strategy. Both the :class:`TextWrapper` class " -"and the :func:`wrap` and :func:`fill` functions support a number of " -"additional keyword arguments for fine-tuning the formatting; consult the " -"module's documentation for details. (Contributed by Greg Ward.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1512 -msgid "" -"The :mod:`thread` and :mod:`threading` modules now have companion modules, :" -"mod:`dummy_thread` and :mod:`dummy_threading`, that provide a do-nothing " -"implementation of the :mod:`thread` module's interface for platforms where " -"threads are not supported. The intention is to simplify thread-aware " -"modules (ones that *don't* rely on threads to run) by putting the following " -"code at the top::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1524 -msgid "" -"In this example, :mod:`_threading` is used as the module name to make it " -"clear that the module being used is not necessarily the actual :mod:" -"`threading` module. Code can call functions and use classes in :mod:" -"`_threading` whether or not threads are supported, avoiding an :keyword:`if` " -"statement and making the code slightly clearer. This module will not " -"magically make multithreaded code run without threads; code that waits for " -"another thread to return or to do something will simply hang forever." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1532 -msgid "" -"The :mod:`time` module's :func:`strptime` function has long been an " -"annoyance because it uses the platform C library's :func:`strptime` " -"implementation, and different platforms sometimes have odd bugs. Brett " -"Cannon contributed a portable implementation that's written in pure Python " -"and should behave identically on all platforms." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1538 -msgid "" -"The new :mod:`timeit` module helps measure how long snippets of Python code " -"take to execute. The :file:`timeit.py` file can be run directly from the " -"command line, or the module's :class:`Timer` class can be imported and used " -"directly. Here's a short example that figures out whether it's faster to " -"convert an 8-bit string to Unicode by appending an empty Unicode string to " -"it or by using the :func:`unicode` function::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1558 -msgid "" -"The :mod:`Tix` module has received various bug fixes and updates for the " -"current version of the Tix package." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1561 -msgid "" -"The :mod:`Tkinter` module now works with a thread-enabled version of Tcl. " -"Tcl's threading model requires that widgets only be accessed from the thread " -"in which they're created; accesses from another thread can cause Tcl to " -"panic. For certain Tcl interfaces, :mod:`Tkinter` will now automatically " -"avoid this when a widget is accessed from a different thread by marshalling " -"a command, passing it to the correct thread, and waiting for the results. " -"Other interfaces can't be handled automatically but :mod:`Tkinter` will now " -"raise an exception on such an access so that you can at least find out about " -"the problem. See https://mail.python.org/pipermail/python-dev/2002-" -"December/031107.html for a more detailed explanation of this change. " -"(Implemented by Martin von Löwis.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1572 -msgid "" -"Calling Tcl methods through :mod:`_tkinter` no longer returns only strings. " -"Instead, if Tcl returns other objects those objects are converted to their " -"Python equivalent, if one exists, or wrapped with a :class:`_tkinter." -"Tcl_Obj` object if no Python equivalent exists. This behavior can be " -"controlled through the :meth:`wantobjects` method of :class:`tkapp` objects." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1578 -msgid "" -"When using :mod:`_tkinter` through the :mod:`Tkinter` module (as most " -"Tkinter applications will), this feature is always activated. It should not " -"cause compatibility problems, since Tkinter would always convert string " -"results to Python types where possible." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1583 -msgid "" -"If any incompatibilities are found, the old behavior can be restored by " -"setting the :attr:`wantobjects` variable in the :mod:`Tkinter` module to " -"false before creating the first :class:`tkapp` object. ::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1590 -msgid "Any breakage caused by this change should be reported as a bug." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1592 -msgid "" -"The :mod:`UserDict` module has a new :class:`DictMixin` class which defines " -"all dictionary methods for classes that already have a minimum mapping " -"interface. This greatly simplifies writing classes that need to be " -"substitutable for dictionaries, such as the classes in the :mod:`shelve` " -"module." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1598 -msgid "" -"Adding the mix-in as a superclass provides the full dictionary interface " -"whenever the class defines :meth:`__getitem__`, :meth:`__setitem__`, :meth:" -"`__delitem__`, and :meth:`keys`. For example::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1639 -msgid "(Contributed by Raymond Hettinger.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1641 -msgid "" -"The DOM implementation in :mod:`xml.dom.minidom` can now generate XML output " -"in a particular encoding by providing an optional encoding argument to the :" -"meth:`toxml` and :meth:`toprettyxml` methods of DOM nodes." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1645 -msgid "" -"The :mod:`xmlrpclib` module now supports an XML-RPC extension for handling " -"nil data values such as Python's ``None``. Nil values are always supported " -"on unmarshalling an XML-RPC response. To generate requests containing " -"``None``, you must supply a true value for the *allow_none* parameter when " -"creating a :class:`Marshaller` instance." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1651 -msgid "" -"The new :mod:`DocXMLRPCServer` module allows writing self-documenting XML-" -"RPC servers. Run it in demo mode (as a program) to see it in action. " -"Pointing the Web browser to the RPC server produces pydoc-style " -"documentation; pointing xmlrpclib to the server allows invoking the actual " -"methods. (Contributed by Brian Quinlan.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1657 -msgid "" -"Support for internationalized domain names (RFCs 3454, 3490, 3491, and 3492) " -"has been added. The \"idna\" encoding can be used to convert between a " -"Unicode domain name and the ASCII-compatible encoding (ACE) of that name. ::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1664 -msgid "" -"The :mod:`socket` module has also been extended to transparently convert " -"Unicode hostnames to the ACE version before passing them to the C library. " -"Modules that deal with hostnames such as :mod:`httplib` and :mod:`ftplib`) " -"also support Unicode host names; :mod:`httplib` also sends HTTP ``Host`` " -"headers using the ACE version of the domain name. :mod:`urllib` supports " -"Unicode URLs with non-ASCII host names as long as the ``path`` part of the " -"URL is ASCII only." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1672 -msgid "" -"To implement this change, the :mod:`stringprep` module, the " -"``mkstringprep`` tool and the ``punycode`` encoding have been added." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1679 -msgid "Date/Time Type" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1681 -msgid "" -"Date and time types suitable for expressing timestamps were added as the :" -"mod:`datetime` module. The types don't support different calendars or many " -"fancy features, and just stick to the basics of representing time." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1685 -msgid "" -"The three primary types are: :class:`date`, representing a day, month, and " -"year; :class:`~datetime.time`, consisting of hour, minute, and second; and :" -"class:`~datetime.datetime`, which contains all the attributes of both :class:" -"`date` and :class:`~datetime.time`. There's also a :class:`timedelta` class " -"representing differences between two points in time, and time zone logic is " -"implemented by classes inheriting from the abstract :class:`tzinfo` class." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1692 -msgid "" -"You can create instances of :class:`date` and :class:`~datetime.time` by " -"either supplying keyword arguments to the appropriate constructor, e.g. " -"``datetime.date(year=1972, month=10, day=15)``, or by using one of a number " -"of class methods. For example, the :meth:`date.today` class method returns " -"the current local date." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1698 -msgid "" -"Once created, instances of the date/time classes are all immutable. There " -"are a number of methods for producing formatted strings from objects::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1710 -msgid "" -"The :meth:`replace` method allows modifying one or more fields of a :class:" -"`date` or :class:`~datetime.datetime` instance, returning a new instance::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1720 -msgid "" -"Instances can be compared, hashed, and converted to strings (the result is " -"the same as that of :meth:`isoformat`). :class:`date` and :class:`~datetime." -"datetime` instances can be subtracted from each other, and added to :class:" -"`timedelta` instances. The largest missing feature is that there's no " -"standard library support for parsing strings and getting back a :class:" -"`date` or :class:`~datetime.datetime`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1727 -msgid "" -"For more information, refer to the module's reference documentation. " -"(Contributed by Tim Peters.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1734 -msgid "The optparse Module" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1736 -msgid "" -"The :mod:`getopt` module provides simple parsing of command-line arguments. " -"The new :mod:`optparse` module (originally named Optik) provides more " -"elaborate command-line parsing that follows the Unix conventions, " -"automatically creates the output for :option:`!--help`, and can perform " -"different actions for different options." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1742 -msgid "" -"You start by creating an instance of :class:`OptionParser` and telling it " -"what your program's options are. ::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1756 -msgid "" -"Parsing a command line is then done by calling the :meth:`parse_args` " -"method. ::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1762 -msgid "" -"This returns an object containing all of the option values, and a list of " -"strings containing the remaining arguments." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1765 -msgid "" -"Invoking the script with the various arguments now works as you'd expect it " -"to. Note that the length argument is automatically converted to an integer." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1778 -msgid "The help message is automatically generated for you:" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1793 -msgid "See the module's documentation for more details." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1796 -msgid "" -"Optik was written by Greg Ward, with suggestions from the readers of the " -"Getopt SIG." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1805 -msgid "Pymalloc: A Specialized Object Allocator" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1807 -msgid "" -"Pymalloc, a specialized object allocator written by Vladimir Marangozov, was " -"a feature added to Python 2.1. Pymalloc is intended to be faster than the " -"system :c:func:`malloc` and to have less memory overhead for allocation " -"patterns typical of Python programs. The allocator uses C's :c:func:`malloc` " -"function to get large pools of memory and then fulfills smaller memory " -"requests from these pools." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1813 -msgid "" -"In 2.1 and 2.2, pymalloc was an experimental feature and wasn't enabled by " -"default; you had to explicitly enable it when compiling Python by providing " -"the :option:`!--with-pymalloc` option to the :program:`configure` script. " -"In 2.3, pymalloc has had further enhancements and is now enabled by default; " -"you'll have to supply :option:`!--without-pymalloc` to disable it." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1819 -msgid "" -"This change is transparent to code written in Python; however, pymalloc may " -"expose bugs in C extensions. Authors of C extension modules should test " -"their code with pymalloc enabled, because some incorrect code may cause core " -"dumps at runtime." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1824 -msgid "" -"There's one particularly common error that causes problems. There are a " -"number of memory allocation functions in Python's C API that have previously " -"just been aliases for the C library's :c:func:`malloc` and :c:func:`free`, " -"meaning that if you accidentally called mismatched functions the error " -"wouldn't be noticeable. When the object allocator is enabled, these " -"functions aren't aliases of :c:func:`malloc` and :c:func:`free` any more, " -"and calling the wrong function to free memory may get you a core dump. For " -"example, if memory was allocated using :c:func:`PyObject_Malloc`, it has to " -"be freed using :c:func:`PyObject_Free`, not :c:func:`free`. A few modules " -"included with Python fell afoul of this and had to be fixed; doubtless there " -"are more third-party modules that will have the same problem." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1836 -msgid "" -"As part of this change, the confusing multiple interfaces for allocating " -"memory have been consolidated down into two API families. Memory allocated " -"with one family must not be manipulated with functions from the other " -"family. There is one family for allocating chunks of memory and another " -"family of functions specifically for allocating Python objects." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1842 -msgid "" -"To allocate and free an undistinguished chunk of memory use the \"raw memory" -"\" family: :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, and :c:func:" -"`PyMem_Free`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1845 -msgid "" -"The \"object memory\" family is the interface to the pymalloc facility " -"described above and is biased towards a large number of \"small\" " -"allocations: :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, and :c:" -"func:`PyObject_Free`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1849 -msgid "" -"To allocate and free Python objects, use the \"object\" family :c:func:" -"`PyObject_New`, :c:func:`PyObject_NewVar`, and :c:func:`PyObject_Del`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1852 -msgid "" -"Thanks to lots of work by Tim Peters, pymalloc in 2.3 also provides " -"debugging features to catch memory overwrites and doubled frees in both " -"extension modules and in the interpreter itself. To enable this support, " -"compile a debugging version of the Python interpreter by running :program:" -"`configure` with :option:`!--with-pydebug`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1858 -msgid "" -"To aid extension writers, a header file :file:`Misc/pymemcompat.h` is " -"distributed with the source to Python 2.3 that allows Python extensions to " -"use the 2.3 interfaces to memory allocation while compiling against any " -"version of Python since 1.5.2. You would copy the file from Python's source " -"distribution and bundle it with the source of your extension." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1869 -msgid "https://hg.python.org/cpython/file/default/Objects/obmalloc.c" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1868 -msgid "" -"For the full details of the pymalloc implementation, see the comments at the " -"top of the file :file:`Objects/obmalloc.c` in the Python source code. The " -"above link points to the file within the python.org SVN browser." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1876 -msgid "Build and C API Changes" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1878 -msgid "Changes to Python's build process and to the C API include:" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1880 -msgid "" -"The cycle detection implementation used by the garbage collection has proven " -"to be stable, so it's now been made mandatory. You can no longer compile " -"Python without it, and the :option:`!--with-cycle-gc` switch to :program:" -"`configure` has been removed." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1885 -msgid "" -"Python can now optionally be built as a shared library (:file:`libpython2.3." -"so`) by supplying :option:`!--enable-shared` when running Python's :program:" -"`configure` script. (Contributed by Ondrej Palkovsky.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1889 -msgid "" -"The :c:macro:`DL_EXPORT` and :c:macro:`DL_IMPORT` macros are now deprecated. " -"Initialization functions for Python extension modules should now be declared " -"using the new macro :c:macro:`PyMODINIT_FUNC`, while the Python core will " -"generally use the :c:macro:`PyAPI_FUNC` and :c:macro:`PyAPI_DATA` macros." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1894 -msgid "" -"The interpreter can be compiled without any docstrings for the built-in " -"functions and modules by supplying :option:`!--without-doc-strings` to the :" -"program:`configure` script. This makes the Python executable about 10% " -"smaller, but will also mean that you can't get help for Python's built-ins. " -"(Contributed by Gustavo Niemeyer.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1900 -msgid "" -"The :c:func:`PyArg_NoArgs` macro is now deprecated, and code that uses it " -"should be changed. For Python 2.2 and later, the method definition table " -"can specify the :const:`METH_NOARGS` flag, signalling that there are no " -"arguments, and the argument checking can then be removed. If compatibility " -"with pre-2.2 versions of Python is important, the code could use " -"``PyArg_ParseTuple(args, \"\")`` instead, but this will be slower than " -"using :const:`METH_NOARGS`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1907 -msgid "" -":c:func:`PyArg_ParseTuple` accepts new format characters for various sizes " -"of unsigned integers: ``B`` for :c:type:`unsigned char`, ``H`` for :c:type:" -"`unsigned short int`, ``I`` for :c:type:`unsigned int`, and ``K`` for :c:" -"type:`unsigned long long`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1912 -msgid "" -"A new function, ``PyObject_DelItemString(mapping, char *key)`` was added as " -"shorthand for ``PyObject_DelItem(mapping, PyString_New(key))``." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1915 -msgid "" -"File objects now manage their internal string buffer differently, increasing " -"it exponentially when needed. This results in the benchmark tests in :file:" -"`Lib/test/test_bufio.py` speeding up considerably (from 57 seconds to 1.7 " -"seconds, according to one measurement)." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1920 -msgid "" -"It's now possible to define class and static methods for a C extension type " -"by setting either the :const:`METH_CLASS` or :const:`METH_STATIC` flags in a " -"method's :c:type:`PyMethodDef` structure." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1924 -msgid "" -"Python now includes a copy of the Expat XML parser's source code, removing " -"any dependence on a system version or local installation of Expat." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1927 -msgid "" -"If you dynamically allocate type objects in your extension, you should be " -"aware of a change in the rules relating to the :attr:`__module__` and :attr:" -"`~definition.__name__` attributes. In summary, you will want to ensure the " -"type's dictionary contains a ``'__module__'`` key; making the module name " -"the part of the type name leading up to the final period will no longer have " -"the desired effect. For more detail, read the API reference documentation " -"or the source." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1938 -msgid "Port-Specific Changes" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1940 -msgid "" -"Support for a port to IBM's OS/2 using the EMX runtime environment was " -"merged into the main Python source tree. EMX is a POSIX emulation layer " -"over the OS/2 system APIs. The Python port for EMX tries to support all the " -"POSIX-like capability exposed by the EMX runtime, and mostly succeeds; :func:" -"`fork` and :func:`fcntl` are restricted by the limitations of the underlying " -"emulation layer. The standard OS/2 port, which uses IBM's Visual Age " -"compiler, also gained support for case-sensitive import semantics as part of " -"the integration of the EMX port into CVS. (Contributed by Andrew MacIntyre.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1949 -msgid "" -"On MacOS, most toolbox modules have been weaklinked to improve backward " -"compatibility. This means that modules will no longer fail to load if a " -"single routine is missing on the current OS version. Instead calling the " -"missing routine will raise an exception. (Contributed by Jack Jansen.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1954 -msgid "" -"The RPM spec files, found in the :file:`Misc/RPM/` directory in the Python " -"source distribution, were updated for 2.3. (Contributed by Sean " -"Reifschneider.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1957 -msgid "" -"Other new platforms now supported by Python include AtheOS (http://www." -"atheos.cx/), GNU/Hurd, and OpenVMS." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1966 -msgid "Other Changes and Fixes" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1968 -msgid "" -"As usual, there were a bunch of other improvements and bugfixes scattered " -"throughout the source tree. A search through the CVS change logs finds " -"there were 523 patches applied and 514 bugs fixed between Python 2.2 and " -"2.3. Both figures are likely to be underestimates." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1973 -msgid "Some of the more notable changes are:" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1975 -msgid "" -"If the :envvar:`PYTHONINSPECT` environment variable is set, the Python " -"interpreter will enter the interactive prompt after running a Python " -"program, as if Python had been invoked with the :option:`-i` option. The " -"environment variable can be set before running the Python interpreter, or it " -"can be set by the Python program as part of its execution." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1981 -msgid "" -"The :file:`regrtest.py` script now provides a way to allow \"all resources " -"except *foo*.\" A resource name passed to the :option:`!-u` option can now " -"be prefixed with a hyphen (``'-'``) to mean \"remove this resource.\" For " -"example, the option '``-uall,-bsddb``' could be used to enable the use of " -"all resources except ``bsddb``." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1987 -msgid "" -"The tools used to build the documentation now work under Cygwin as well as " -"Unix." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1990 -msgid "" -"The ``SET_LINENO`` opcode has been removed. Back in the mists of time, this " -"opcode was needed to produce line numbers in tracebacks and support trace " -"functions (for, e.g., :mod:`pdb`). Since Python 1.5, the line numbers in " -"tracebacks have been computed using a different mechanism that works with " -"\"python -O\". For Python 2.3 Michael Hudson implemented a similar scheme " -"to determine when to call the trace function, removing the need for " -"``SET_LINENO`` entirely." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:1998 -msgid "" -"It would be difficult to detect any resulting difference from Python code, " -"apart from a slight speed up when Python is run without :option:`-O`." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2001 -msgid "" -"C extensions that access the :attr:`f_lineno` field of frame objects should " -"instead call ``PyCode_Addr2Line(f->f_code, f->f_lasti)``. This will have the " -"added effect of making the code work as desired under \"python -O\" in " -"earlier versions of Python." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2006 -msgid "" -"A nifty new feature is that trace functions can now assign to the :attr:" -"`f_lineno` attribute of frame objects, changing the line that will be " -"executed next. A ``jump`` command has been added to the :mod:`pdb` debugger " -"taking advantage of this new feature. (Implemented by Richie Hindle.)" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2015 -msgid "Porting to Python 2.3" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2017 -msgid "" -"This section lists previously described changes that may require changes to " -"your code:" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2020 -msgid "" -":keyword:`yield` is now always a keyword; if it's used as a variable name in " -"your code, a different name must be chosen." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2023 -msgid "" -"For strings *X* and *Y*, ``X in Y`` now works if *X* is more than one " -"character long." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2026 -msgid "" -"The :func:`int` type constructor will now return a long integer instead of " -"raising an :exc:`OverflowError` when a string or floating-point number is " -"too large to fit into an integer." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2030 -msgid "" -"If you have Unicode strings that contain 8-bit characters, you must declare " -"the file's encoding (UTF-8, Latin-1, or whatever) by adding a comment to the " -"top of the file. See section :ref:`section-encodings` for more information." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2034 -msgid "" -"Calling Tcl methods through :mod:`_tkinter` no longer returns only strings. " -"Instead, if Tcl returns other objects those objects are converted to their " -"Python equivalent, if one exists, or wrapped with a :class:`_tkinter." -"Tcl_Obj` object if no Python equivalent exists." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2039 -msgid "" -"Large octal and hex literals such as ``0xffffffff`` now trigger a :exc:" -"`FutureWarning`. Currently they're stored as 32-bit numbers and result in a " -"negative value, but in Python 2.4 they'll become positive long integers." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2043 -msgid "" -"There are a few ways to fix this warning. If you really need a positive " -"number, just add an ``L`` to the end of the literal. If you're trying to " -"get a 32-bit integer with low bits set and have previously used an " -"expression such as ``~(1 << 31)``, it's probably clearest to start with all " -"bits set and clear the desired upper bits. For example, to clear just the " -"top bit (bit 31), you could write ``0xffffffffL &~(1L<<31)``." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2050 -msgid "You can no longer disable assertions by assigning to ``__debug__``." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2052 -msgid "" -"The Distutils :func:`setup` function has gained various new keyword " -"arguments such as *depends*. Old versions of the Distutils will abort if " -"passed unknown keywords. A solution is to check for the presence of the " -"new :func:`get_distutil_options` function in your :file:`setup.py` and only " -"uses the new keywords with a version of the Distutils that supports them::" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2065 -msgid "" -"Using ``None`` as a variable name will now result in a :exc:`SyntaxWarning` " -"warning." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2068 -msgid "" -"Names of extension types defined by the modules included with Python now " -"contain the module and a ``'.'`` in front of the type name." -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2077 -msgid "Acknowledgements" -msgstr "" - -#: ../Doc/whatsnew/2.3.rst:2079 -msgid "" -"The author would like to thank the following people for offering " -"suggestions, corrections and assistance with various drafts of this article: " -"Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, Andrew Dalke, " -"Scott David Daniels, Fred L. Drake, Jr., David Fraser, Kelly Gerber, " -"Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von " -"Löwis, Andrew MacIntyre, Lalo Martins, Chad Netzer, Gustavo Niemeyer, Neal " -"Norwitz, Hans Nowak, Chris Reedy, Francesco Ricciardi, Vinay Sajip, Neil " -"Schemenauer, Roman Suzi, Jason Tishler, Just van Rossum." -msgstr "" +"El entorno de desarrollo integrado IDLE ha sido actualizado utilizando el " +"código del proyecto IDLEfork (http://idlefork.sourceforge.net). La " +"característica más notable es que el código que se está desarrollando se " +"ejecuta ahora en un subproceso, lo que significa que ya no es necesario " +"realizar operaciones manuales de ``reload()``. El código central de IDLE ha " +"sido incorporado a la biblioteca estándar como el paquete :mod:`idlelib`." diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index bdfbbb0193..fe126d76bc 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -6,31 +6,33 @@ # 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-10-03 10:57-0300\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 2.4.2\n" #: ../Doc/whatsnew/2.5.rst:3 msgid "What's New in Python 2.5" -msgstr "" +msgstr "Novedades de Python 2.5" #: ../Doc/whatsnew/2.5.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.5.rst:5 msgid "A.M. Kuchling" -msgstr "" +msgstr "A.M. Kuchling" #: ../Doc/whatsnew/2.5.rst:12 msgid "" @@ -38,6 +40,9 @@ msgid "" "Python 2.5 is scheduled for August 2006; :pep:`356` describes the planned " "release schedule." msgstr "" +"Este artículo explica las nuevas características de Python 2.5. La versión " +"final de Python 2.5 está prevista para agosto de 2006; :pep:`356` describe " +"el calendario de publicación previsto." #: ../Doc/whatsnew/2.5.rst:16 msgid "" @@ -48,6 +53,12 @@ msgid "" "SQLite database module (:mod:`sqlite`), and the :mod:`ctypes` module for " "calling C functions." msgstr "" +"Los cambios en Python 2.5 son una interesante mezcla de mejoras en el " +"lenguaje y en las bibliotecas. Las mejoras de la biblioteca serán más " +"importantes para la comunidad de usuarios de Python, creo, porque se han " +"añadido varios paquetes muy útiles. Los nuevos módulos incluyen ElementTree " +"para el procesamiento de XML (:mod:`xml.etree`), el módulo de base de datos " +"SQLite (:mod:`sqlite`), y el módulo :mod:`ctypes` para llamar a funciones C." #: ../Doc/whatsnew/2.5.rst:23 msgid "" @@ -63,6 +74,18 @@ msgid "" "to one specific language feature or another; none of them are broad " "modifications to Python's semantics." msgstr "" +"Los cambios en el lenguaje son de mediana importancia. Se han añadido " +"algunas características nuevas y agradables, pero la mayoría de ellas no son " +"características que vaya a utilizar todos los días. Las expresiones " +"condicionales fueron finalmente añadidas al lenguaje usando una nueva " +"sintaxis; ver sección :ref:`pep-308`. La nueva sentencia ':keyword:`with`' " +"facilitará la escritura de código de limpieza (sección :ref:`pep-343`). " +"Ahora se pueden pasar valores a los generadores (sección :ref:`pep-342`). " +"Las importaciones son ahora visibles como absolutas o relativas (sección :" +"ref:`pep-328`). Se han mejorado algunos casos de manejo de excepciones " +"(sección :ref:`pep-341`). Todas estas mejoras merecen la pena, pero son " +"mejoras de una u otra característica específica del lenguaje; ninguna de " +"ellas es una modificación amplia de la semántica de Python." #: ../Doc/whatsnew/2.5.rst:34 msgid "" @@ -71,6 +94,11 @@ msgid "" "change logs finds there were 353 patches applied and 458 bugs fixed between " "Python 2.4 and 2.5. (Both figures are likely to be underestimates.)" msgstr "" +"Además de las adiciones al lenguaje y a la biblioteca, se han realizado " +"otras mejoras y correcciones de errores en todo el árbol de código fuente. " +"Una búsqueda en los registros de cambios del SVN revela que se aplicaron 353 " +"parches y se corrigieron 458 errores entre Python 2.4 y 2.5. (Es probable " +"que ambas cifras estén subestimadas)" #: ../Doc/whatsnew/2.5.rst:39 msgid "" @@ -81,16 +109,25 @@ msgid "" "implementation and design rationale, refer to the PEP for a particular new " "feature." msgstr "" +"Este artículo no pretende ser una especificación completa de las nuevas " +"características; en su lugar, los cambios se introducen brevemente " +"utilizando ejemplos útiles. Para obtener todos los detalles, siempre debes " +"consultar la documentación de Python 2.5 en https://docs.python.org. Si " +"quieres entender la implementación completa y los fundamentos del diseño, " +"consulta el PEP de una nueva característica en particular." #: ../Doc/whatsnew/2.5.rst:45 msgid "" "Comments, suggestions, and error reports for this document are welcome; " "please e-mail them to the author or open a bug in the Python bug tracker." msgstr "" +"Son bienvenidos los comentarios, las sugerencias y los informes de errores " +"para este documento; por favor, envíelos por correo electrónico al autor o " +"abra un error en el rastreador de errores de Python." #: ../Doc/whatsnew/2.5.rst:54 msgid "PEP 308: Conditional Expressions" -msgstr "" +msgstr "PEP 308: Expresiones condicionales" #: ../Doc/whatsnew/2.5.rst:56 msgid "" @@ -100,6 +137,11 @@ msgid "" "you write a single assignment statement that has the same effect as the " "following::" msgstr "" +"Durante mucho tiempo, la gente ha solicitado una forma de escribir " +"expresiones condicionales, que son expresiones que devuelven el valor A o el " +"valor B dependiendo de si un valor booleano es verdadero o falso. Una " +"expresión condicional le permite escribir una única sentencia de asignación " +"que tiene el mismo efecto que la siguiente::" #: ../Doc/whatsnew/2.5.rst:66 msgid "" @@ -109,10 +151,16 @@ msgid "" "was preferred by a clear majority. Candidates included C's ``cond ? true_v : " "false_v``, ``if cond then true_v else false_v``, and 16 other variations." msgstr "" +"Ha habido interminables y tediosas discusiones sobre la sintaxis tanto en " +"python-dev como en comp.lang.python. Incluso se llevó a cabo una votación " +"en la que se descubrió que la mayoría de los votantes querían expresiones " +"condicionales de alguna forma, pero no había ninguna sintaxis que fuera " +"preferida por una clara mayoría. Los candidatos incluían ``cond ? true_v : " +"false_v``, ``if cond then true_v else false_v``, y otras 16 variaciones." #: ../Doc/whatsnew/2.5.rst:72 msgid "Guido van Rossum eventually chose a surprising syntax::" -msgstr "" +msgstr "Guido van Rossum eligió finalmente una sintaxis sorprendente::" #: ../Doc/whatsnew/2.5.rst:76 msgid "" @@ -122,6 +170,11 @@ msgid "" "condition was true. Similarly, the *false_value* expression is only " "evaluated when the condition is false." msgstr "" +"La evaluación sigue siendo perezosa como en las expresiones booleanas " +"existentes, por lo que el orden de evaluación salta un poco. La expresión " +"*condición* del medio se evalúa primero, y la expresión *valor_verdadero* se " +"evalúa sólo si la condición es verdadera. Del mismo modo, la expresión " +"*valor_falso* sólo se evalúa cuando la condición es falsa." #: ../Doc/whatsnew/2.5.rst:82 msgid "" @@ -134,6 +187,14 @@ msgid "" "when the condition isn't met. The conditional syntax makes this pattern a " "bit more obvious::" msgstr "" +"Esta sintaxis puede parecer extraña y retrógrada; ¿por qué la condición va " +"en el *medio* de la expresión, y no en la parte delantera como en ``c ? x : " +"y`` de C? La decisión se comprobó aplicando la nueva sintaxis a los módulos " +"de la biblioteca estándar y viendo cómo se leía el código resultante. En " +"muchos casos en los que se utiliza una expresión condicional, un valor " +"parece ser el \"caso común\" y otro valor es un \"caso excepcional\", " +"utilizado sólo en las raras ocasiones en las que no se cumple la condición. " +"La sintaxis condicional hace que este patrón sea un poco más obvio::" #: ../Doc/whatsnew/2.5.rst:92 msgid "" @@ -142,6 +203,10 @@ msgid "" "an empty string is returned.\" I doubt I will use conditional expressions " "very often where there isn't a clear common and uncommon case." msgstr "" +"Leo la afirmación anterior en el sentido de que \"aquí se asigna a " +"*contents* un valor de ``doc+'\\n'``; a veces *doc* está vacío, en cuyo caso " +"especial se devuelve una cadena vacía\" Dudo que use expresiones " +"condicionales muy a menudo donde no hay un caso común y no común claro." #: ../Doc/whatsnew/2.5.rst:97 msgid "" @@ -150,6 +215,11 @@ msgid "" "require parentheses in the Python language's grammar, but as a matter of " "style I think you should always use them. Consider these two statements::" msgstr "" +"Hubo alguna discusión sobre si el lenguaje debería requerir rodear las " +"expresiones condicionales con paréntesis. Se tomó la decisión de *no* " +"requerir paréntesis en la gramática del lenguaje Python, pero como una " +"cuestión de estilo creo que siempre deberías usarlos. Considere estas dos " +"declaraciones::" #: ../Doc/whatsnew/2.5.rst:108 msgid "" @@ -159,6 +229,11 @@ msgid "" "better, in my opinion, because it makes it clear that the assignment is " "always performed and the choice is being made between two values." msgstr "" +"En la primera versión, creo que el ojo de un lector podría agrupar la " +"sentencia en 'nivel = 1', 'si registro', 'si no 0', y pensar que la " +"condición decide si se realiza la asignación a *nivel*. La segunda versión " +"se lee mejor, en mi opinión, porque deja claro que la asignación se realiza " +"siempre y que se está eligiendo entre dos valores." #: ../Doc/whatsnew/2.5.rst:114 msgid "" @@ -167,26 +242,34 @@ msgid "" "expressions. See :pep:`308` for some examples. If you put parentheses " "around your conditional expressions, you won't run into this case." msgstr "" +"Otra razón para incluir los paréntesis: algunas combinaciones extrañas de " +"comprensiones de listas y lambdas podrían parecer expresiones condicionales " +"incorrectas. Véase :pep:`308` para algunos ejemplos. Si pone paréntesis " +"alrededor de sus expresiones condicionales, no se encontrará con este caso." #: ../Doc/whatsnew/2.5.rst:123 msgid ":pep:`308` - Conditional Expressions" -msgstr "" +msgstr ":pep:`308` - Expresiones condicionales" #: ../Doc/whatsnew/2.5.rst:123 msgid "" "PEP written by Guido van Rossum and Raymond D. Hettinger; implemented by " "Thomas Wouters." msgstr "" +"PEP escrito por Guido van Rossum y Raymond D. Hettinger; implementado por " +"Thomas Wouters." #: ../Doc/whatsnew/2.5.rst:132 msgid "PEP 309: Partial Function Application" -msgstr "" +msgstr "PEP 309: Aplicación parcial de funciones" #: ../Doc/whatsnew/2.5.rst:134 msgid "" "The :mod:`functools` module is intended to contain tools for functional-" "style programming." msgstr "" +"El módulo :mod:`functools` está destinado a contener herramientas para la " +"programación de estilo funcional." #: ../Doc/whatsnew/2.5.rst:137 msgid "" @@ -197,6 +280,12 @@ msgid "" "c)`` that was equivalent to ``f(1, b, c)``. This is called \"partial " "function application\"." msgstr "" +"Una herramienta útil de este módulo es la función :func:`partial`. Para los " +"programas escritos en un estilo funcional, a veces querrá construir " +"variantes de funciones existentes que tengan algunos de los parámetros " +"rellenados. Considere una función Python ``f(a, b, c)``; podría crear una " +"nueva función ``g(b, c)`` que fuera equivalente a ``f(1, b, c)``. Esto se " +"llama \"aplicación parcial de funciones\"." #: ../Doc/whatsnew/2.5.rst:144 msgid "" @@ -204,10 +293,13 @@ msgid "" "kwarg1=value1, kwarg2=value2)``. The resulting object is callable, so you " "can just call it to invoke *function* with the filled-in arguments." msgstr "" +":func:`parcial` toma los argumentos ``(function, arg1, arg2, ... " +"kwarg1=valor1, kwarg2=valor2)``. El objeto resultante es invocable, por lo " +"que puedes llamarlo para invocar la *función* con los argumentos rellenados." #: ../Doc/whatsnew/2.5.rst:148 msgid "Here's a small but realistic example::" -msgstr "" +msgstr "He aquí un pequeño pero realista ejemplo::" #: ../Doc/whatsnew/2.5.rst:160 msgid "" @@ -216,6 +308,11 @@ msgid "" "provided for the menu option is a partially applied version of the :meth:" "`open_item` method, where the first argument has been provided. ::" msgstr "" +"Aquí hay otro ejemplo, de un programa que utiliza PyGTK. Aquí se está " +"construyendo dinámicamente un menú emergente sensible al contexto. El " +"callback proporcionado para la opción de menú es una versión parcialmente " +"aplicada del método :meth:`open_item`, donde se ha proporcionado el primer " +"argumento ::" #: ../Doc/whatsnew/2.5.rst:173 msgid "" @@ -225,6 +322,12 @@ msgid "" "docstring attribute to a wrapper function so that tracebacks inside the " "wrapped function are easier to understand. For example, you might write::" msgstr "" +"Otra función del módulo :mod:`functools` es la función " +"``update_wrapper(wrapper, wrapped)`` que le ayuda a escribir decoradores con " +"un buen comportamiento. :func:`update_wrapper` copia el nombre, el módulo y " +"el atributo docstring a una función wrapper para que las trazas dentro de la " +"función envuelta sean más fáciles de entender. Por ejemplo, puedes " +"escribir::" #: ../Doc/whatsnew/2.5.rst:186 msgid "" @@ -232,20 +335,25 @@ msgid "" "copy the wrapped function's information. An alternate version of the " "previous example would be::" msgstr "" +":func:`wraps` es un decorador que se puede utilizar dentro de sus propios " +"decoradores para copiar la información de la función envuelta. Una versión " +"alternativa del ejemplo anterior sería::" #: ../Doc/whatsnew/2.5.rst:201 msgid ":pep:`309` - Partial Function Application" -msgstr "" +msgstr ":pep:`309` - Aplicación parcial de funciones" #: ../Doc/whatsnew/2.5.rst:201 msgid "" "PEP proposed and written by Peter Harris; implemented by Hye-Shik Chang and " "Nick Coghlan, with adaptations by Raymond Hettinger." msgstr "" +"PEP propuesto y escrito por Peter Harris; implementado por Hye-Shik Chang y " +"Nick Coghlan, con adaptaciones de Raymond Hettinger." #: ../Doc/whatsnew/2.5.rst:210 msgid "PEP 314: Metadata for Python Software Packages v1.1" -msgstr "" +msgstr "PEP 314: Metadatos para paquetes de software Python v1.1" #: ../Doc/whatsnew/2.5.rst:212 msgid "" @@ -255,6 +363,11 @@ msgid "" "command, the dependency information will be recorded in the :file:`PKG-INFO` " "file." msgstr "" +"Se ha añadido a Distutils un sencillo soporte de dependencias. La función :" +"func:`setup` ahora tiene parámetros de palabras clave ``requires``, " +"``provides`` y ``obsoletes``. Cuando se construye una distribución de " +"origen utilizando el comando ``sdist``, la información de las dependencias " +"se registrará en el archivo :file:`PKG-INFO`." #: ../Doc/whatsnew/2.5.rst:217 msgid "" @@ -263,6 +376,10 @@ msgid "" "an entry in the package index, determine the dependencies for a package, and " "download the required packages. ::" msgstr "" +"Otro nuevo parámetro de palabra clave es ``download_url``, que debe " +"establecerse como una URL para el código fuente del paquete. Esto significa " +"que ahora es posible buscar una entrada en el índice de paquetes, determinar " +"las dependencias de un paquete y descargar los paquetes necesarios. ::" #: ../Doc/whatsnew/2.5.rst:231 msgid "" @@ -270,6 +387,9 @@ msgid "" "storing source and binary archives for a package. The new :command:`upload` " "Distutils command will upload a package to the repository." msgstr "" +"Otra nueva mejora en el índice de paquetes de Python en https://pypi.org es " +"el almacenamiento de archivos fuente y binarios de un paquete. El nuevo " +"comando :command:`upload` de Distutils subirá un paquete al repositorio." #: ../Doc/whatsnew/2.5.rst:236 msgid "" @@ -279,25 +399,33 @@ msgid "" "Optionally you can GPG-sign the package by supplying the :option:`!--sign` " "and :option:`!--identity` options." msgstr "" +"Antes de poder subir un paquete, debes ser capaz de construir una " +"distribución usando el comando :command:`sdist` de Distutils. Una vez que " +"funcione, puedes ejecutar ``python setup.py upload`` para añadir tu paquete " +"al archivo PyPI. Opcionalmente puedes firmar el paquete con GPG " +"suministrando las opciones :option:`!--sign` y :option:`!--identity`." #: ../Doc/whatsnew/2.5.rst:242 msgid "" "Package uploading was implemented by Martin von Löwis and Richard Jones." msgstr "" +"La carga de paquetes fue implementada por Martin von Löwis y Richard Jones." #: ../Doc/whatsnew/2.5.rst:248 msgid ":pep:`314` - Metadata for Python Software Packages v1.1" -msgstr "" +msgstr ":pep:`314` - Metadatos para paquetes de software Python v1.1" #: ../Doc/whatsnew/2.5.rst:248 msgid "" "PEP proposed and written by A.M. Kuchling, Richard Jones, and Fred Drake; " "implemented by Richard Jones and Fred Drake." msgstr "" +"PEP propuesto y redactado por A.M. Kuchling, Richard Jones y Fred Drake; " +"aplicado por Richard Jones y Fred Drake." #: ../Doc/whatsnew/2.5.rst:257 msgid "PEP 328: Absolute and Relative Imports" -msgstr "" +msgstr "PEP 328: Importaciones absolutas y relativas" #: ../Doc/whatsnew/2.5.rst:259 msgid "" @@ -306,6 +434,10 @@ msgid "" "``from ... import ...`` statement, making it easier to import many different " "names." msgstr "" +"La parte más sencilla de :pep:`328` se implementó en Python 2.4: los " +"paréntesis podían utilizarse ahora para encerrar los nombres importados de " +"un módulo utilizando la sentencia ``from ... import ...``, facilitando la " +"importación de muchos nombres diferentes." #: ../Doc/whatsnew/2.5.rst:263 msgid "" @@ -314,16 +446,22 @@ msgid "" "plan is to move toward making absolute imports the default in future " "versions of Python." msgstr "" +"La parte más complicada se ha implementado en Python 2.5: la importación de " +"un módulo puede especificarse para utilizar importaciones absolutas o " +"relativas al paquete. El plan es hacer que las importaciones absolutas sean " +"el valor por defecto en futuras versiones de Python." #: ../Doc/whatsnew/2.5.rst:267 msgid "Let's say you have a package directory like this::" -msgstr "" +msgstr "Digamos que tienes un directorio de paquetes como este::" #: ../Doc/whatsnew/2.5.rst:274 msgid "" "This defines a package named :mod:`pkg` containing the :mod:`pkg.main` and :" "mod:`pkg.string` submodules." msgstr "" +"Esto define un paquete llamado :mod:`pkg` que contiene los submódulos :mod:" +"`pkg.main` y :mod:`pkg.string`." #: ../Doc/whatsnew/2.5.rst:277 msgid "" @@ -334,6 +472,12 @@ msgid "" "`pkg.string` module, and that module is bound to the name ``string`` in the :" "mod:`pkg.main` module's namespace." msgstr "" +"Considera el código del módulo :file:`main.py`. ¿Qué ocurre si ejecuta la " +"sentencia ``importar cadena``? En Python 2.4 y anteriores, primero buscará " +"en el directorio del paquete para realizar una importación relativa, " +"encuentra :file:`pkg/string.py`, importa el contenido de ese archivo como el " +"módulo :mod:`pkg.string`, y ese módulo se vincula al nombre ``string`` en el " +"espacio de nombres del módulo :mod:`pkg.main`." #: ../Doc/whatsnew/2.5.rst:284 msgid "" @@ -345,6 +489,14 @@ msgid "" "imports from the standard library, ``import py; py.std.string.join()``, but " "that package isn't available on all Python installations." msgstr "" +"Eso está bien si :mod:`pkg.string` era lo que querías. ¿Pero qué pasa si " +"quieres el módulo estándar de Python :mod:`string`? No hay una forma limpia " +"de ignorar :mod:`pkg.string` y buscar el módulo estándar; generalmente " +"tienes que mirar el contenido de ``sys.modules``, lo cual es ligeramente " +"sucio. El paquete :mod:`py.std` de Holger Krekel proporciona una forma " +"más ordenada de realizar importaciones desde la biblioteca estándar, " +"``import py; py.std.string.join()``, pero ese paquete no está disponible en " +"todas las instalaciones de Python." #: ../Doc/whatsnew/2.5.rst:292 msgid "" @@ -355,6 +507,13 @@ msgid "" "submodules, but you can't protect against having your submodule's name being " "used for a new module added in a future version of Python." msgstr "" +"La lectura de código que depende de importaciones relativas también es menos " +"clara, porque un lector puede confundirse sobre qué módulo, :mod:`cadena` o :" +"mod:`cadena.pkg`, se pretende utilizar. Los usuarios de Python aprendieron " +"pronto a no duplicar los nombres de los módulos de la biblioteca estándar en " +"los nombres de los submódulos de sus paquetes, pero no puedes protegerte de " +"que el nombre de tu submódulo se utilice para un nuevo módulo añadido en una " +"futura versión de Python." #: ../Doc/whatsnew/2.5.rst:299 msgid "" @@ -366,12 +525,23 @@ msgid "" "that users should begin using absolute imports as much as possible, so it's " "preferable to begin writing ``from pkg import string`` in your code." msgstr "" +"En Python 2.5, puedes cambiar el comportamiento de :keyword:`import` a " +"importaciones absolutas usando una directiva ``from __future__ import " +"absolute_import``. Este comportamiento de importación absoluta será el " +"predeterminado en una versión futura (probablemente Python 2.7). Una vez " +"que las importaciones absolutas sean el valor por defecto, ``import string`` " +"siempre encontrará la versión de la biblioteca estándar. Se sugiere que los " +"usuarios comiencen a usar importaciones absolutas tanto como sea posible, " +"así que es preferible comenzar a escribir ``de pkg import string`` en su " +"código." #: ../Doc/whatsnew/2.5.rst:307 msgid "" "Relative imports are still possible by adding a leading period to the " "module name when using the ``from ... import`` form::" msgstr "" +"Las importaciones relativas siguen siendo posibles añadiendo un punto " +"inicial al nombre del módulo cuando se utiliza la forma ``from ... import``::" #: ../Doc/whatsnew/2.5.rst:315 msgid "" @@ -381,33 +551,41 @@ msgid "" "from the parent of the current package. For example, code in the :mod:`A.B." "C` module can do::" msgstr "" +"Esto importa el módulo :mod:`string` relativo al paquete actual, así que en :" +"mod:`pkg.main` esto importará *nombre1* y *nombre2* de :mod:`pkg.string`. " +"Los puntos iniciales adicionales realizan la importación relativa empezando " +"por el padre del paquete actual. Por ejemplo, el código en el módulo :mod:" +"`A.B.C` puede hacer::" #: ../Doc/whatsnew/2.5.rst:324 msgid "" "Leading periods cannot be used with the ``import modname`` form of the " "import statement, only the ``from ... import`` form." msgstr "" +"Los puntos suspensivos no pueden usarse con la forma ``importar nombre de " +"modelo`` de la sentencia import, sólo con la forma ``de ... import``." #: ../Doc/whatsnew/2.5.rst:331 msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative" -msgstr "" +msgstr ":pep:`328` - Importaciones: Multilínea y Absoluto/Relativo" #: ../Doc/whatsnew/2.5.rst:331 msgid "PEP written by Aahz; implemented by Thomas Wouters." -msgstr "" +msgstr "PEP escrito por Aahz; implementado por Thomas Wouters." #: ../Doc/whatsnew/2.5.rst:333 msgid "https://pylib.readthedocs.io/" -msgstr "" +msgstr "https://pylib.readthedocs.io/" #: ../Doc/whatsnew/2.5.rst:334 msgid "" "The py library by Holger Krekel, which contains the :mod:`py.std` package." msgstr "" +"La biblioteca py de Holger Krekel, que contiene el paquete :mod:`py.std`." #: ../Doc/whatsnew/2.5.rst:342 msgid "PEP 338: Executing Modules as Scripts" -msgstr "" +msgstr "PEP 338: Ejecutando Módulos como Scripts" #: ../Doc/whatsnew/2.5.rst:344 msgid "" @@ -416,6 +594,10 @@ msgid "" "the Python interpreter, the switch now uses an implementation in a new " "module, :mod:`runpy`." msgstr "" +"El conmutador :option:`-m` añadido en Python 2.4 para ejecutar un módulo " +"como un script ganó algunas habilidades más. En lugar de estar implementado " +"en código C dentro del intérprete de Python, el interruptor ahora utiliza " +"una implementación en un nuevo módulo, :mod:`runpy`." #: ../Doc/whatsnew/2.5.rst:349 msgid "" @@ -426,18 +608,24 @@ msgid "" "to ``sys.path`` and then use the :option:`-m` switch to execute code from " "the archive." msgstr "" +"El módulo :mod:`runpy` implementa un mecanismo de importación más " +"sofisticado de forma que ahora es posible ejecutar módulos en un paquete " +"como :mod:`pychecker.checker`. El módulo también soporta mecanismos de " +"importación alternativos como el módulo :mod:`zipimport`. Esto significa " +"que puede añadir la ruta de un archivo .zip a ``sys.path`` y luego utilizar " +"el modificador :option:`-m` para ejecutar el código del archivo." #: ../Doc/whatsnew/2.5.rst:359 msgid ":pep:`338` - Executing modules as scripts" -msgstr "" +msgstr ":pep:`338` - Ejecución de módulos como scripts" #: ../Doc/whatsnew/2.5.rst:360 msgid "PEP written and implemented by Nick Coghlan." -msgstr "" +msgstr "PEP escrito e implementado por Nick Coghlan." #: ../Doc/whatsnew/2.5.rst:368 msgid "PEP 341: Unified try/except/finally" -msgstr "" +msgstr "PEP 341: Try/except/finally unificados" #: ../Doc/whatsnew/2.5.rst:370 msgid "" @@ -449,6 +637,13 @@ msgid "" "complicated and it wasn't clear what the semantics of the combined statement " "should be." msgstr "" +"Hasta la versión 2.5 de Python, la sentencia :keyword:`try` tenía dos " +"variantes. Podías usar un bloque :keyword:`finally` para asegurarte de que " +"el código se ejecutaba siempre, o uno o más bloques :keyword:`except` para " +"capturar excepciones específicas. No podías combinar ambos bloques :keyword:" +"`!except` y un bloque :keyword:`!finally`, porque generar el bytecode " +"correcto para la versión combinada era complicado y no estaba claro cuál " +"debía ser la semántica de la sentencia combinada." #: ../Doc/whatsnew/2.5.rst:377 msgid "" @@ -457,6 +652,10 @@ msgid "" "block, and this clarified what the statement should mean. In Python 2.5, " "you can now write::" msgstr "" +"Guido van Rossum pasó algún tiempo trabajando con Java, que sí soporta el " +"equivalente de combinar bloques :keyword:`except` y un bloque :keyword:" +"`finally`, y esto aclaró lo que debería significar la declaración. En " +"Python 2.5, ahora se puede escribir::" #: ../Doc/whatsnew/2.5.rst:393 msgid "" @@ -466,6 +665,11 @@ msgid "" "class:`Exception2`, *handler-2* is executed, and so forth. If no exception " "is raised, the *else-block* is executed." msgstr "" +"Se ejecuta el código del *bloque-1*. Si el código lanza una excepción, se " +"comprueban los distintos bloques :keyword:`except`: si la excepción es de " +"clase :class:`Exception1`, se ejecuta *handler-1*; en caso contrario, si es " +"de clase :class:`Exception2`, se ejecuta *handler-2*, y así sucesivamente. " +"Si no se produce ninguna excepción, se ejecuta el bloque *else*." #: ../Doc/whatsnew/2.5.rst:399 msgid "" @@ -474,18 +678,23 @@ msgid "" "error in an exception handler or the *else-block* and a new exception is " "raised, the code in the *final-block* is still run." msgstr "" +"No importa lo que haya sucedido previamente, el *bloque final* se ejecuta " +"una vez que el bloque de código se ha completado y se han manejado las " +"excepciones planteadas. Incluso si hay un error en un manejador de " +"excepciones o en el *bloque else* y se lanza una nueva excepción, el código " +"del *bloque final* se sigue ejecutando." #: ../Doc/whatsnew/2.5.rst:407 msgid ":pep:`341` - Unifying try-except and try-finally" -msgstr "" +msgstr ":pep:`341` - Unificar try-except y try-finally" #: ../Doc/whatsnew/2.5.rst:408 msgid "PEP written by Georg Brandl; implementation by Thomas Lee." -msgstr "" +msgstr "PEP escrito por Georg Brandl; implementación por Thomas Lee." #: ../Doc/whatsnew/2.5.rst:416 msgid "PEP 342: New Generator Features" -msgstr "" +msgstr "PEP 342: Nuevas funciones del generador" #: ../Doc/whatsnew/2.5.rst:418 msgid "" @@ -498,10 +707,20 @@ msgid "" "changing the global variable's value, or passing in some mutable object that " "callers then modify." msgstr "" +"Python 2.5 añade una forma sencilla de pasar valores *a* un generador. Tal y " +"como se introdujo en Python 2.3, los generadores sólo producen salida; una " +"vez que se invoca el código de un generador para crear un iterador, no hay " +"forma de pasar ninguna información nueva a la función cuando se reanuda su " +"ejecución. A veces, la capacidad de pasar alguna información sería útil. " +"Las soluciones más ingeniosas para esto incluyen hacer que el código del " +"generador mire a una variable global y luego cambie el valor de la variable " +"global, o pasar algún objeto mutable que los llamadores luego modifiquen." #: ../Doc/whatsnew/2.5.rst:426 msgid "To refresh your memory of basic generators, here's a simple example::" msgstr "" +"Para refrescar la memoria de los generadores básicos, he aquí un ejemplo " +"sencillo::" #: ../Doc/whatsnew/2.5.rst:434 msgid "" @@ -512,6 +731,12 @@ msgid "" "the iterator's :meth:`next` method, picking up after the :keyword:`!yield` " "statement." msgstr "" +"Cuando se llama a ``contador(10)``, el resultado es un iterador que devuelve " +"los valores de 0 a 9. Al encontrar la sentencia :keyword:`yield`, el " +"iterador devuelve el valor proporcionado y suspende la ejecución de la " +"función, preservando las variables locales. La ejecución se reanuda en la " +"siguiente llamada al método :meth:`next` del iterador, retomando después de " +"la sentencia :keyword:`!yield`." #: ../Doc/whatsnew/2.5.rst:440 msgid "" @@ -519,6 +744,10 @@ msgid "" "value. In 2.5, :keyword:`!yield` is now an expression, returning a value " "that can be assigned to a variable or otherwise operated on::" msgstr "" +"En Python 2.3, :keyword:`yield` era una declaración; no devolvía ningún " +"valor. En 2.5, :keyword:`!yield` es ahora una expresión, que devuelve un " +"valor que se puede asignar a una variable o que se puede operar de otra " +"manera::" #: ../Doc/whatsnew/2.5.rst:446 msgid "" @@ -527,6 +756,10 @@ msgid "" "above example. The parentheses aren't always necessary, but it's easier to " "always add them instead of having to remember when they're needed." msgstr "" +"Te recomiendo que siempre pongas paréntesis alrededor de una expresión :" +"keyword:`yield` cuando estés haciendo algo con el valor devuelto, como en el " +"ejemplo anterior. Los paréntesis no siempre son necesarios, pero es más " +"fácil añadirlos siempre en lugar de tener que recordar cuándo son necesarios." #: ../Doc/whatsnew/2.5.rst:451 msgid "" @@ -536,6 +769,11 @@ msgid "" "can write ``val = yield i`` but have to use parentheses when there's an " "operation, as in ``val = (yield i) + 12``.)" msgstr "" +"(:pep:`342` explica las reglas exactas, que consisten en que una expresión :" +"keyword:`yield`\\ debe ir siempre entre paréntesis, excepto cuando ocurre en " +"la expresión de nivel superior en el lado derecho de una asignación. Esto " +"significa que puedes escribir ``val = yield i`` pero tienes que usar " +"paréntesis cuando hay una operación, como en ``val = (yield i) + 12``)" #: ../Doc/whatsnew/2.5.rst:458 msgid "" @@ -544,16 +782,22 @@ msgid "" "the specified *value*. If the regular :meth:`next` method is called, the :" "keyword:`!yield` returns :const:`None`." msgstr "" +"Los valores se envían a un generador llamando a su método ``send(value)``. " +"El código del generador se reanuda y la expresión :keyword:`yield` devuelve " +"el *valor* especificado. Si se llama al método regular :meth:`next`, la " +"expresión :keyword:`!yield` devuelve :const:`None`." #: ../Doc/whatsnew/2.5.rst:463 msgid "" "Here's the previous example, modified to allow changing the value of the " "internal counter. ::" msgstr "" +"Aquí está el ejemplo anterior, modificado para permitir cambiar el valor del " +"contador interno. ::" #: ../Doc/whatsnew/2.5.rst:476 msgid "And here's an example of changing the counter::" -msgstr "" +msgstr "Y aquí hay un ejemplo de cambio de contador::" #: ../Doc/whatsnew/2.5.rst:493 msgid "" @@ -562,11 +806,16 @@ msgid "" "sure that the :meth:`send` method will be the only method used to resume " "your generator function." msgstr "" +":keyword:`yield` normalmente devolverá :const:`None`, por lo que siempre " +"debes comprobar este caso. No utilices su valor en las expresiones sin más, " +"a menos que estés seguro de que el método :meth:`send` será el único " +"utilizado para reanudar tu función generadora." #: ../Doc/whatsnew/2.5.rst:498 msgid "" "In addition to :meth:`send`, there are two other new methods on generators:" msgstr "" +"Además de :meth:`send`, hay otros dos nuevos métodos en los generadores:" #: ../Doc/whatsnew/2.5.rst:500 msgid "" @@ -574,6 +823,9 @@ msgid "" "inside the generator; the exception is raised by the :keyword:`yield` " "expression where the generator's execution is paused." msgstr "" +"``throw(type, value=None, traceback=None)`` se utiliza para lanzar una " +"excepción dentro del generador; la excepción es lanzada por la expresión :" +"keyword:`yield` donde la ejecución del generador se pausa." #: ../Doc/whatsnew/2.5.rst:504 msgid "" @@ -586,6 +838,14 @@ msgid "" "meth:`close` will also be called by Python's garbage collector when the " "generator is garbage-collected." msgstr "" +":meth:`close` lanza una nueva excepción :exc:`GeneratorExit` dentro del " +"generador para terminar la iteración. Al recibir esta excepción, el código " +"del generador debe lanzar :exc:`GeneratorExit` o :exc:`StopIteration`. " +"Capturar la excepción :exc:`GeneratorExit` y devolver un valor es ilegal y " +"provocará un :exc:`RuntimeError`; si la función lanza alguna otra excepción, " +"esa excepción se propaga a quien la llama. :meth:`close` también será " +"llamado por el recolector de basura de Python cuando el generador sea " +"recolectado." #: ../Doc/whatsnew/2.5.rst:512 msgid "" @@ -593,12 +853,18 @@ msgid "" "suggest using a ``try: ... finally:`` suite instead of catching :exc:" "`GeneratorExit`." msgstr "" +"Si necesitas ejecutar código de limpieza cuando se produce un :exc:" +"`GeneratorExit`, te sugiero que utilices un conjunto ``try: ... finally:`` " +"en lugar de atrapar :exc:`GeneratorExit`." #: ../Doc/whatsnew/2.5.rst:515 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." msgstr "" +"El efecto acumulativo de estos cambios es que los generadores pasan de ser " +"productores unidireccionales de información a ser tanto productores como " +"consumidores." #: ../Doc/whatsnew/2.5.rst:518 msgid "" @@ -609,6 +875,12 @@ msgid "" "statements). We'll have to figure out patterns for using coroutines " "effectively in Python." msgstr "" +"Los generadores también se convierten en *corutinas*, una forma más " +"generalizada de subrutinas. Las subrutinas se introducen en un punto y se " +"salen en otro (la parte superior de la función, y una declaración :keyword:" +"`return`), pero las coroutines pueden introducirse, salirse y reanudarse en " +"muchos puntos diferentes (las declaraciones :keyword:`yield`). Tendremos que " +"descubrir patrones para usar coroutines de forma efectiva en Python." #: ../Doc/whatsnew/2.5.rst:524 msgid "" @@ -624,6 +896,19 @@ msgid "" "necessary in order to implement the :keyword:`with` statement described by :" "pep:`343`. I'll look at this new statement in the following section." msgstr "" +"La adición del método :meth:`close` tiene un efecto secundario que no es " +"obvio. :meth:`close` es llamado cuando un generador es recogido por la " +"basura, lo que significa que el código del generador tiene una última " +"oportunidad de ejecutarse antes de que el generador sea destruido. Esta " +"última oportunidad significa que ahora se puede garantizar que las " +"sentencias ``intentar...finalmente`` en los generadores funcionen; la " +"cláusula :keyword:`finally` ahora siempre tendrá una oportunidad de " +"ejecutarse. Por lo tanto, se ha eliminado la restricción sintáctica que " +"impedía mezclar sentencias :keyword:`yield` con un conjunto ``try..." +"finally``. Esto parece una trivialidad menor del lenguaje, pero el uso de " +"generadores y ``try...finally`` es realmente necesario para implementar la " +"sentencia :keyword:`with` descrita por :pep:`343`. Veré esta nueva " +"sentencia en la siguiente sección." #: ../Doc/whatsnew/2.5.rst:536 msgid "" @@ -632,44 +917,54 @@ msgid "" "possible for :attr:`gi_frame` to be ``None`` once the generator has been " "exhausted." msgstr "" +"Otro efecto aún más esotérico de este cambio: antes, el atributo :attr:" +"`gi_frame` de un generador era siempre un objeto frame. Ahora es posible " +"que :attr:`gi_frame` sea ``None`` una vez que el generador se ha agotado." #: ../Doc/whatsnew/2.5.rst:549 msgid ":pep:`342` - Coroutines via Enhanced Generators" -msgstr "" +msgstr ":pep:`342` - Coroutines mediante generadores mejorados" #: ../Doc/whatsnew/2.5.rst:545 msgid "" "PEP written by Guido van Rossum and Phillip J. Eby; implemented by Phillip " "J. Eby. Includes examples of some fancier uses of generators as coroutines." msgstr "" +"PEP escrito por Guido van Rossum y Phillip J. Eby; implementado por Phillip " +"J. Eby. Incluye ejemplos de algunos usos más sofisticados de los " +"generadores como coroutines." #: ../Doc/whatsnew/2.5.rst:548 msgid "" "Earlier versions of these features were proposed in :pep:`288` by Raymond " "Hettinger and :pep:`325` by Samuele Pedroni." msgstr "" +"Versiones anteriores de estas características fueron propuestas en :pep:" +"`288` por Raymond Hettinger y :pep:`325` por Samuele Pedroni." #: ../Doc/whatsnew/2.5.rst:552 msgid "https://en.wikipedia.org/wiki/Coroutine" -msgstr "" +msgstr "https://en.wikipedia.org/wiki/Coroutine" #: ../Doc/whatsnew/2.5.rst:552 msgid "The Wikipedia entry for coroutines." -msgstr "" +msgstr "La entrada de Wikipedia para las coroutines." #: ../Doc/whatsnew/2.5.rst:554 msgid "http://www.sidhe.org/~dan/blog/archives/000178.html" -msgstr "" +msgstr "http://www.sidhe.org/~dan/blog/archivos/000178.html" #: ../Doc/whatsnew/2.5.rst:555 msgid "" "An explanation of coroutines from a Perl point of view, written by Dan " "Sugalski." msgstr "" +"Una explicación de las coroutines desde el punto de vista de Perl, escrita " +"por Dan Sugalski." #: ../Doc/whatsnew/2.5.rst:563 msgid "PEP 343: The 'with' statement" -msgstr "" +msgstr "PEP 343: La declaración \"con" #: ../Doc/whatsnew/2.5.rst:565 msgid "" @@ -679,12 +974,19 @@ msgid "" "next section, I'll examine the implementation details and show how to write " "objects for use with this statement." msgstr "" +"La sentencia ':keyword:`with`' aclara el código que antes utilizaba bloques " +"``try...finally``' para asegurar que se ejecuta el código de limpieza. En " +"esta sección, hablaré de la sentencia tal y como se utiliza habitualmente. " +"En la siguiente sección, examinaré los detalles de la implementación y " +"mostraré cómo escribir objetos para usar con esta sentencia." #: ../Doc/whatsnew/2.5.rst:571 msgid "" "The ':keyword:`with`' statement is a new control-flow structure whose basic " "structure is::" msgstr "" +"La declaración ':keyword:`with`' es una nueva estructura de flujo de control " +"cuya estructura básica es::" #: ../Doc/whatsnew/2.5.rst:577 msgid "" @@ -692,6 +994,9 @@ msgid "" "the context management protocol (that is, has :meth:`__enter__` and :meth:" "`__exit__` methods." msgstr "" +"La expresión se evalúa y debe dar como resultado un objeto que soporte el " +"protocolo de gestión de contextos (es decir, que tenga los métodos :meth:" +"`__enter__` y :meth:`__exit__`)." #: ../Doc/whatsnew/2.5.rst:581 msgid "" @@ -700,6 +1005,11 @@ msgid "" "the name *variable*, if given. (Note carefully that *variable* is *not* " "assigned the result of *expression*.)" msgstr "" +"El :meth:`__enter__` del objeto es llamado antes de que se ejecute *with-" +"block* y por lo tanto puede ejecutar código de configuración. También puede " +"devolver un valor ligado al nombre *variable*, si se da. (Observe " +"cuidadosamente que a *variable* no se le asigna el resultado de la " +"*expresión*)" #: ../Doc/whatsnew/2.5.rst:586 msgid "" @@ -707,16 +1017,21 @@ msgid "" "`__exit__` method is called, even if the block raised an exception, and can " "therefore run clean-up code." msgstr "" +"Una vez finalizada la ejecución del *with-block*, se llama al método :meth:" +"`__exit__` del objeto, incluso si el bloque lanzó una excepción, y por lo " +"tanto puede ejecutar código de limpieza." #: ../Doc/whatsnew/2.5.rst:590 msgid "" "To enable the statement in Python 2.5, you need to add the following " "directive to your module::" msgstr "" +"Para habilitar la declaración en Python 2.5, debe añadir la siguiente " +"directiva a su módulo::" #: ../Doc/whatsnew/2.5.rst:595 msgid "The statement will always be enabled in Python 2.6." -msgstr "" +msgstr "La declaración siempre estará habilitada en Python 2.6." #: ../Doc/whatsnew/2.5.rst:597 msgid "" @@ -724,6 +1039,9 @@ msgid "" "can be used with the ':keyword:`with`' statement. File objects are one " "example::" msgstr "" +"Algunos objetos estándar de Python soportan ahora el protocolo de gestión de " +"contextos y pueden utilizarse con la sentencia ':keyword:`with`''. Los " +"objetos de archivo son un ejemplo::" #: ../Doc/whatsnew/2.5.rst:605 msgid "" @@ -731,24 +1049,33 @@ msgid "" "automatically closed, even if the :keyword:`for` loop raised an exception " "part-way through the block." msgstr "" +"Después de que esta sentencia se haya ejecutado, el objeto archivo en *f* se " +"habrá cerrado automáticamente, incluso si el bucle :keyword:`for` lanzó una " +"excepción a mitad del bloque." #: ../Doc/whatsnew/2.5.rst:611 msgid "" "In this case, *f* is the same object created by :func:`open`, because :meth:" "`file.__enter__` returns *self*." msgstr "" +"En este caso, *f* es el mismo objeto creado por :func:`open`, porque :meth:" +"`file.__enter__` devuelve *self*." #: ../Doc/whatsnew/2.5.rst:614 msgid "" "The :mod:`threading` module's locks and condition variables also support " "the ':keyword:`with`' statement::" msgstr "" +"Los bloqueos y las variables de condición del módulo :mod:`threading` " +"también soportan la sentencia ':keyword:`with`'::" #: ../Doc/whatsnew/2.5.rst:622 msgid "" "The lock is acquired before the block is executed and always released once " "the block is complete." msgstr "" +"El bloqueo se adquiere antes de que se ejecute el bloque y siempre se libera " +"una vez que el bloque se ha completado." #: ../Doc/whatsnew/2.5.rst:625 msgid "" @@ -756,10 +1083,13 @@ msgid "" "easy to save and restore the current decimal context, which encapsulates the " "desired precision and rounding characteristics for computations::" msgstr "" +"La nueva función :func:`localcontext` del módulo :mod:`decimal` facilita el " +"guardado y la restauración del contexto decimal actual, que encapsula las " +"características de precisión y redondeo deseadas para los cálculos::" #: ../Doc/whatsnew/2.5.rst:644 msgid "Writing Context Managers" -msgstr "" +msgstr "Redacción de Gestores de Contexto" #: ../Doc/whatsnew/2.5.rst:646 msgid "" @@ -769,10 +1099,17 @@ msgid "" "if you like. Authors of new objects will need to understand the details of " "the underlying implementation and should keep reading." msgstr "" +"Bajo el capó, la sentencia ':keyword:`with`' es bastante complicada. La " +"mayoría de la gente sólo utilizará ':keyword:`!with`' en compañía de objetos " +"existentes y no necesita conocer estos detalles, así que puedes saltarte el " +"resto de esta sección si quieres. Los autores de nuevos objetos necesitarán " +"entender los detalles de la implementación subyacente y deberían seguir " +"leyendo." #: ../Doc/whatsnew/2.5.rst:652 msgid "A high-level explanation of the context management protocol is:" msgstr "" +"Una explicación de alto nivel del protocolo de gestión del contexto es:" #: ../Doc/whatsnew/2.5.rst:654 msgid "" @@ -780,6 +1117,9 @@ msgid "" "\"context manager\". The context manager must have :meth:`__enter__` and :" "meth:`__exit__` methods." msgstr "" +"La expresión se evalúa y debe dar como resultado un objeto llamado \"gestor " +"de contexto\". El gestor de contexto debe tener métodos :meth:`__enter__` " +"y :meth:`__exit__`." #: ../Doc/whatsnew/2.5.rst:658 msgid "" @@ -787,10 +1127,13 @@ msgid "" "returned is assigned to *VAR*. If no ``'as VAR'`` clause is present, the " "value is simply discarded." msgstr "" +"Se llama al método :meth:`__enter__` del gestor de contexto. El valor " +"devuelto se asigna a *VAR*. Si no está presente la cláusula ``'as VAR'``, " +"el valor simplemente se descarta." #: ../Doc/whatsnew/2.5.rst:662 msgid "The code in *BLOCK* is executed." -msgstr "" +msgstr "Se ejecuta el código en *BLOQUE*." #: ../Doc/whatsnew/2.5.rst:664 msgid "" @@ -802,18 +1145,31 @@ msgid "" "if you do the author of the code containing the ':keyword:`with`' statement " "will never realize anything went wrong." msgstr "" +"Si *BLOCK* lanza una excepción, se llama a ``__exit__(type, value, " +"traceback)`` con los detalles de la excepción, los mismos valores devueltos " +"por :func:`sys.exc_info`. El valor de retorno del método controla si la " +"excepción se vuelve a lanzar: cualquier valor falso vuelve a lanzar la " +"excepción, y ``True`` resultará en suprimirla. Sólo en raras ocasiones " +"querrá suprimir la excepción, porque si lo hace el autor del código que " +"contiene la declaración ':keyword:`with`' nunca se dará cuenta de que algo " +"ha ido mal." #: ../Doc/whatsnew/2.5.rst:672 msgid "" "If *BLOCK* didn't raise an exception, the :meth:`__exit__` method is still " "called, but *type*, *value*, and *traceback* are all ``None``." msgstr "" +"Si *BLOCK* no lanzó una excepción, el método :meth:`__exit__` sigue siendo " +"llamado, pero *type*, *value*, y *traceback* son todos ``None``." #: ../Doc/whatsnew/2.5.rst:675 msgid "" "Let's think through an example. I won't present detailed code but will only " "sketch the methods necessary for a database that supports transactions." msgstr "" +"Pensemos en un ejemplo. No presentaré un código detallado, sino que sólo " +"esbozaré los métodos necesarios para una base de datos que soporte " +"transacciones." #: ../Doc/whatsnew/2.5.rst:678 msgid "" @@ -823,12 +1179,21 @@ msgid "" "rolled back, meaning that the changes are all discarded and the database is " "unchanged. See any database textbook for more information.)" msgstr "" +"(Para quienes no estén familiarizados con la terminología de las bases de " +"datos: un conjunto de cambios en la base de datos se agrupa en una " +"transacción. Las transacciones pueden ser confirmadas, lo que significa que " +"todos los cambios se escriben en la base de datos, o revertidas, lo que " +"significa que todos los cambios se descartan y la base de datos no se " +"modifica. Consulte cualquier libro de texto sobre bases de datos para " +"obtener más información)" #: ../Doc/whatsnew/2.5.rst:684 msgid "" "Let's assume there's an object representing a database connection. Our goal " "will be to let the user write code like this::" msgstr "" +"Supongamos que hay un objeto que representa una conexión a la base de datos. " +"Nuestro objetivo será permitir que el usuario escriba código como este::" #: ../Doc/whatsnew/2.5.rst:693 msgid "" @@ -836,6 +1201,9 @@ msgid "" "or rolled back if there's an exception. Here's the basic interface for :" "class:`DatabaseConnection` that I'll assume::" msgstr "" +"La transacción debe ser confirmada si el código en el bloque se ejecuta sin " +"problemas o revertida si hay una excepción. Aquí está la interfaz básica " +"para :class:`DatabaseConnection` que voy a asumir::" #: ../Doc/whatsnew/2.5.rst:706 msgid "" @@ -845,6 +1213,11 @@ msgid "" "cursor`` to their ':keyword:`with`' statement to bind the cursor to a " "variable name. ::" msgstr "" +"El método :meth:`__enter__` es bastante sencillo, ya que sólo hay que " +"iniciar una nueva transacción. Para esta aplicación el objeto cursor " +"resultante sería un resultado útil, por lo que el método lo devolverá. El " +"usuario puede entonces añadir ``as cursor`` a su sentencia ':keyword:`with`' " +"para ligar el cursor a un nombre de variable. ::" #: ../Doc/whatsnew/2.5.rst:718 msgid "" @@ -853,6 +1226,10 @@ msgid "" "occurred. If there was no exception, the transaction is committed. The " "transaction is rolled back if there was an exception." msgstr "" +"El método :meth:`__exit__` es el más complicado porque es donde hay que " +"hacer la mayor parte del trabajo. El método tiene que comprobar si se " +"produjo una excepción. Si no hubo ninguna excepción, la transacción es " +"confirmada. La transacción es revertida si hubo una excepción." #: ../Doc/whatsnew/2.5.rst:723 msgid "" @@ -861,10 +1238,15 @@ msgid "" "exception will be re-raised automatically. If you wished, you could be more " "explicit and add a :keyword:`return` statement at the marked location. ::" msgstr "" +"En el código de abajo, la ejecución simplemente caerá al final de la " +"función, devolviendo el valor por defecto de ``None``. ``None`` es falso, " +"por lo que la excepción se volverá a lanzar automáticamente. Si lo desea, " +"puede ser más explícito y añadir una declaración :keyword:`return` en el " +"lugar marcado. ::" #: ../Doc/whatsnew/2.5.rst:743 msgid "The contextlib module" -msgstr "" +msgstr "El módulo contextlib" #: ../Doc/whatsnew/2.5.rst:745 msgid "" @@ -872,6 +1254,9 @@ msgid "" "that are useful for writing objects for use with the ':keyword:`with`' " "statement." msgstr "" +"El nuevo módulo :mod:`contextlib` proporciona algunas funciones y un " +"decorador que son útiles para escribir objetos para usar con la sentencia ':" +"keyword:`with`'." #: ../Doc/whatsnew/2.5.rst:748 msgid "" @@ -885,12 +1270,23 @@ msgid "" "exception raised in the block will be raised by the :keyword:`!yield` " "statement." msgstr "" +"El decorador se llama :func:`contextmanager`, y permite escribir una única " +"función generadora en lugar de definir una nueva clase. El generador debe " +"producir exactamente un valor. El código hasta la palabra clave :keyword:" +"`yield` se ejecutará como el método :meth:`__enter__`, y el valor producido " +"será el valor de retorno del método que se vinculará a la variable en la " +"cláusula :keyword:`with` de la sentencia :keyword:`!as`, si existe. El " +"código después de :keyword:`yield` se ejecutará en el método :meth:" +"`__exit__`. Cualquier excepción lanzada en el bloque será lanzada por la " +"sentencia :keyword:`!yield`." #: ../Doc/whatsnew/2.5.rst:757 msgid "" "Our database example from the previous section could be written using this " "decorator as::" msgstr "" +"Nuestro ejemplo de base de datos de la sección anterior podría escribirse " +"utilizando este decorador como::" #: ../Doc/whatsnew/2.5.rst:777 msgid "" @@ -900,16 +1296,24 @@ msgid "" "with`' statement both starts a database transaction and acquires a thread " "lock::" msgstr "" +"El módulo :mod:`contextlib` también tiene una función ``anidada(mgr1, " +"mgr2, ...)`` que combina varios gestores de contexto para que no sea " +"necesario escribir sentencias ':keyword:`with`' anidadas. En este ejemplo, " +"la única sentencia ':keyword:`!with`` inicia una transacción de base de " +"datos y adquiere un bloqueo de hilo::" #: ../Doc/whatsnew/2.5.rst:786 msgid "" "Finally, the ``closing(object)`` function returns *object* so that it can be " "bound to a variable, and calls ``object.close`` at the end of the block. ::" msgstr "" +"Por último, la función ``closing(object)`` devuelve el *objeto* para que " +"pueda ser vinculado a una variable, y llama a ``object.close`` al final del " +"bloque. ::" #: ../Doc/whatsnew/2.5.rst:803 msgid ":pep:`343` - The \"with\" statement" -msgstr "" +msgstr ":pep:`343` - La declaración \"con\"" #: ../Doc/whatsnew/2.5.rst:800 msgid "" @@ -918,14 +1322,18 @@ msgid "" "':keyword:`with`' statement, which can be helpful in learning how the " "statement works." msgstr "" +"PEP escrito por Guido van Rossum y Nick Coghlan; implementado por Mike " +"Bland, Guido van Rossum y Neal Norwitz. El PEP muestra el código generado " +"para una sentencia ':keyword:`with`', que puede ser útil para aprender cómo " +"funciona la sentencia." #: ../Doc/whatsnew/2.5.rst:805 msgid "The documentation for the :mod:`contextlib` module." -msgstr "" +msgstr "La documentación del módulo :mod:`contextlib`." #: ../Doc/whatsnew/2.5.rst:813 msgid "PEP 352: Exceptions as New-Style Classes" -msgstr "" +msgstr "PEP 352: Las excepciones como clases de nuevo estilo" #: ../Doc/whatsnew/2.5.rst:815 msgid "" @@ -934,12 +1342,18 @@ msgid "" "exceptions (:exc:`NameError`, :exc:`ValueError`, etc.) are now new-style " "classes." msgstr "" +"Las clases de excepción ahora pueden ser clases de nuevo estilo, no sólo " +"clases clásicas, y la clase incorporada :exc:`Exception` y todas las " +"excepciones incorporadas estándar (:exc:`NameError`, :exc:`ValueError`, " +"etc.) son ahora clases de nuevo estilo." #: ../Doc/whatsnew/2.5.rst:819 msgid "" "The inheritance hierarchy for exceptions has been rearranged a bit. In 2.5, " "the inheritance relationships are::" msgstr "" +"La jerarquía de herencia de las excepciones se ha reordenado un poco. En " +"2.5, las relaciones de herencia son::" #: ../Doc/whatsnew/2.5.rst:828 msgid "" @@ -951,6 +1365,14 @@ msgid "" "exc:`KeyboardInterrupt` and :exc:`SystemExit` in order to re-raise them. " "The usual pattern is::" msgstr "" +"Esta reorganización se hizo porque la gente a menudo quiere atrapar todas " +"las excepciones que indican errores del programa. :exc:`KeyboardInterrupt` " +"y :exc:`SystemExit` no son errores, sin embargo, y por lo general " +"representan una acción explícita como el usuario pulsando :kbd:`Control-C` o " +"el código llamando a :func:`sys.exit`. Una simple ``except:`` atrapará " +"todas las excepciones, por lo que comúnmente se necesita listar :exc:" +"`KeyboardInterrupt` y :exc:`SystemExit` para volver a lanzarlas. El patrón " +"habitual es::" #: ../Doc/whatsnew/2.5.rst:843 msgid "" @@ -959,6 +1381,11 @@ msgid "" "leaving :exc:`KeyboardInterrupt` and :exc:`SystemExit` alone. As in " "previous versions, a bare ``except:`` still catches all exceptions." msgstr "" +"En Python 2.5, ahora puedes escribir ``except Exception`` para conseguir el " +"mismo resultado, capturando todas las excepciones que suelen indicar errores " +"pero dejando :exc:`KeyboardInterrupt` y :exc:`SystemExit` en paz. Como en " +"versiones anteriores, un ``except:`` desnudo sigue capturando todas las " +"excepciones." #: ../Doc/whatsnew/2.5.rst:848 msgid "" @@ -970,6 +1397,13 @@ msgid "" "``except:`` form should be removed in Python 3.0, but Guido van Rossum " "hasn't decided whether to do this or not." msgstr "" +"El objetivo de Python 3.0 es requerir que cualquier clase lanzada como " +"excepción derive de :exc:`BaseException` o de algún descendiente de :exc:" +"`BaseException`, y las futuras versiones de la serie Python 2.x pueden " +"empezar a imponer esta restricción. Por lo tanto, sugiero que empieces a " +"hacer que todas tus clases de excepción deriven de :exc:`Exception` ahora. " +"Se ha sugerido que la forma desnuda ``except:`` sea eliminada en Python 3.0, " +"pero Guido van Rossum no ha decidido si hacerlo o no." #: ../Doc/whatsnew/2.5.rst:856 msgid "" @@ -977,20 +1411,26 @@ msgid "" "occurred\"``, is deprecated in Python 2.5 and will trigger a warning. The " "aim is to be able to remove the string-exception feature in a few releases." msgstr "" +"El lanzamiento de cadenas como excepciones, como en la declaración ``raise " +"\"Error occurred\"``, está obsoleto en Python 2.5 y provocará una " +"advertencia. El objetivo es poder eliminar la función de excepción de " +"cadena en algunas versiones." #: ../Doc/whatsnew/2.5.rst:863 msgid ":pep:`352` - Required Superclass for Exceptions" -msgstr "" +msgstr ":pep:`352` - Superclase necesaria para las excepciones" #: ../Doc/whatsnew/2.5.rst:864 msgid "" "PEP written by Brett Cannon and Guido van Rossum; implemented by Brett " "Cannon." msgstr "" +"PEP escrito por Brett Cannon y Guido van Rossum; implementado por Brett " +"Cannon." #: ../Doc/whatsnew/2.5.rst:872 msgid "PEP 353: Using ssize_t as the index type" -msgstr "" +msgstr "PEP 353: Uso de ssize_t como tipo de índice" #: ../Doc/whatsnew/2.5.rst:874 msgid "" @@ -999,6 +1439,10 @@ msgid "" "handle more data on 64-bit platforms. This change doesn't affect Python's " "capacity on 32-bit platforms." msgstr "" +"Un amplio cambio en la API C de Python, que utiliza una nueva definición de " +"tipo :c:type:`Py_ssize_t` en lugar de :c:type:`int`, permitirá al intérprete " +"manejar más datos en plataformas de 64 bits. Este cambio no afecta a la " +"capacidad de Python en plataformas de 32 bits." #: ../Doc/whatsnew/2.5.rst:879 msgid "" @@ -1011,6 +1455,16 @@ msgid "" "www.unix.org/version2/whatsnew/lp64_wp.html for a discussion -- but the most " "commonly available model leaves :c:type:`int` as 32 bits.)" msgstr "" +"Varias partes del intérprete de Python utilizaban el tipo :c:type:`int` de C " +"para almacenar tamaños o recuentos; por ejemplo, el número de elementos de " +"una lista o tupla se almacenaba en un :c:type:`int`. Los compiladores de C " +"para la mayoría de las plataformas de 64 bits siguen definiendo :c:type:" +"`int` como un tipo de 32 bits, lo que significa que las listas sólo pueden " +"contener hasta ``2**31 - 1`` = 2147483647 elementos. (En realidad, hay " +"algunos modelos de programación diferentes que los compiladores de C de 64 " +"bits pueden utilizar -- véase http://www.unix.org/version2/whatsnew/lp64_wp." +"html para una discusión -- pero el modelo más comúnmente disponible deja :c:" +"type:`int` como de 32 bits)" #: ../Doc/whatsnew/2.5.rst:888 msgid "" @@ -1020,6 +1474,12 @@ msgid "" "type:`PyObject` representing the item. 2147483647\\*4 is already more bytes " "than a 32-bit address space can contain." msgstr "" +"Un límite de 2147483647 elementos no importa realmente en una plataforma de " +"32 bits porque te quedarás sin memoria antes de alcanzar el límite de " +"longitud. Cada elemento de la lista requiere espacio para un puntero, que es " +"de 4 bytes, más espacio para un :c:type:`PyObject` que representa el " +"elemento. 2147483647*4 ya son más bytes de los que puede contener un " +"espacio de direcciones de 32 bits." #: ../Doc/whatsnew/2.5.rst:894 msgid "" @@ -1033,6 +1493,17 @@ msgid "" "users is still relatively small. (In 5 or 10 years, we may *all* be on 64-" "bit machines, and the transition would be more painful then.)" msgstr "" +"Sin embargo, es posible direccionar esa cantidad de memoria en una " +"plataforma de 64 bits. Los punteros para una lista de ese tamaño sólo " +"requerirían 16 GiB de espacio, por lo que no es descabellado que los " +"programadores de Python puedan construir listas tan grandes. Por lo tanto, " +"el intérprete de Python tuvo que ser cambiado para usar algún tipo diferente " +"a :c:type:`int`, y este será un tipo de 64 bits en plataformas de 64 bits. " +"El cambio causará incompatibilidades en las máquinas de 64 bits, por lo que " +"se consideró que valía la pena hacer la transición ahora, mientras el número " +"de usuarios de 64 bits es todavía relativamente pequeño. (En 5 o 10 años, " +"puede que *todos* estemos en máquinas de 64 bits, y la transición sería " +"entonces más dolorosa)" #: ../Doc/whatsnew/2.5.rst:904 msgid "" @@ -1042,6 +1513,12 @@ msgid "" "now return :c:type:`Py_ssize_t`. Code in extension modules may therefore " "need to have some variables changed to :c:type:`Py_ssize_t`." msgstr "" +"Este cambio afecta en mayor medida a los autores de módulos de extensión de " +"C. Las cadenas de Python y los tipos contenedores como las listas y las " +"tuplas utilizan ahora :c:type:`Py_ssize_t` para almacenar su tamaño. " +"Funciones como :c:func:`PyList_Size` ahora devuelven :c:type:`Py_ssize_t`. " +"Por lo tanto, el código de los módulos de extensión puede necesitar cambiar " +"algunas variables a :c:type:`Py_ssize_t`." #: ../Doc/whatsnew/2.5.rst:910 msgid "" @@ -1051,24 +1528,32 @@ msgid "" "default, but you can define the macro :c:macro:`PY_SSIZE_T_CLEAN` before " "including :file:`Python.h` to make them return :c:type:`Py_ssize_t`." msgstr "" +"Las funciones :c:func:`PyArg_ParseTuple` y :c:func:`Py_BuildValue` tienen un " +"nuevo código de conversión, ``n``, para :c:type:`Py_ssize_t`. Las " +"funciones :c:func:`PyArg_ParseTuple` ``s#`` y ``t#`` siguen devolviendo :c:" +"type:`int` por defecto, pero puedes definir la macro :c:macro:" +"`PY_SSIZE_T_CLEAN` antes de incluir :file:`Python.h` para que devuelvan :c:" +"type:`Py_ssize_t`." #: ../Doc/whatsnew/2.5.rst:916 msgid "" ":pep:`353` has a section on conversion guidelines that extension authors " "should read to learn about supporting 64-bit platforms." msgstr "" +":pep:`353` tiene una sección sobre directrices de conversión que los autores " +"de extensiones deberían leer para aprender a soportar plataformas de 64 bits." #: ../Doc/whatsnew/2.5.rst:922 msgid ":pep:`353` - Using ssize_t as the index type" -msgstr "" +msgstr ":pep:`353` - Uso de ssize_t como tipo de índice" #: ../Doc/whatsnew/2.5.rst:923 msgid "PEP written and implemented by Martin von Löwis." -msgstr "" +msgstr "PEP escrito y aplicado por Martin von Löwis." #: ../Doc/whatsnew/2.5.rst:931 msgid "PEP 357: The '__index__' method" -msgstr "" +msgstr "PEP 357: El método '__index__'" #: ../Doc/whatsnew/2.5.rst:933 msgid "" @@ -1080,6 +1565,14 @@ msgid "" "8, 16, 32, and 64 bits, but there was no way to signal that these types " "could be used as slice indexes." msgstr "" +"Los desarrolladores de NumPy tenían un problema que sólo podía resolverse " +"añadiendo un nuevo método especial, :meth:`__index__`. Cuando se utiliza la " +"notación de trozos, como en ``[start:stop:step]``, los valores de los " +"índices *start*, *stop* y *step* deben ser todos enteros o enteros largos. " +"NumPy define una variedad de tipos de enteros especializados que " +"corresponden a enteros sin signo y con signo de 8, 16, 32 y 64 bits, pero no " +"había forma de señalar que estos tipos pudieran usarse como índices de " +"trozos." #: ../Doc/whatsnew/2.5.rst:941 msgid "" @@ -1088,6 +1581,11 @@ msgid "" "meth:`__int__`, floating-point numbers would also become legal slice indexes " "and that's clearly an undesirable behaviour." msgstr "" +"El rebanado no puede utilizar el método :meth:`__int__` existente porque ese " +"método también se utiliza para implementar la coerción a enteros. Si el " +"rebanado utilizara :meth:`__int__`, los números de punto flotante también se " +"convertirían en índices de rebanada legales y eso es claramente un " +"comportamiento indeseable." #: ../Doc/whatsnew/2.5.rst:946 msgid "" @@ -1095,6 +1593,9 @@ msgid "" "no arguments and returns an integer giving the slice index to use. For " "example::" msgstr "" +"En su lugar, se ha añadido un nuevo método especial llamado :meth:" +"`__index__`. No toma argumentos y devuelve un entero que da el índice de " +"corte a utilizar. Por ejemplo::" #: ../Doc/whatsnew/2.5.rst:953 msgid "" @@ -1102,6 +1603,9 @@ msgid "" "interpreter will check that the type returned is correct, and raises a :exc:" "`TypeError` if this requirement isn't met." msgstr "" +"El valor devuelto debe ser un entero de Python o un entero largo. El " +"intérprete comprobará que el tipo devuelto es correcto, y lanza un :exc:" +"`TypeError` si no se cumple este requisito." #: ../Doc/whatsnew/2.5.rst:957 msgid "" @@ -1110,24 +1614,31 @@ msgid "" "``PyNumber_Index(obj)`` can be used in extension code to call the :meth:" "`__index__` function and retrieve its result." msgstr "" +"Se ha añadido la correspondiente ranura :attr:`nb_index` a la estructura :c:" +"type:`PyNumberMethods` de nivel C para que las extensiones C puedan " +"implementar este protocolo. El código de la extensión puede utilizar " +"``PyNumber_Index(obj)`` para llamar a la función :meth:`__index__` y obtener " +"su resultado." #: ../Doc/whatsnew/2.5.rst:965 msgid ":pep:`357` - Allowing Any Object to be Used for Slicing" -msgstr "" +msgstr ":pep:`357` - Permitir el uso de cualquier objeto para rebanar" #: ../Doc/whatsnew/2.5.rst:966 msgid "PEP written and implemented by Travis Oliphant." -msgstr "" +msgstr "PEP escrito e implementado por Travis Oliphant." #: ../Doc/whatsnew/2.5.rst:974 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios lingüísticos" #: ../Doc/whatsnew/2.5.rst:976 msgid "" "Here are all of the changes that Python 2.5 makes to the core Python " "language." msgstr "" +"Estos son todos los cambios que Python 2.5 introduce en el núcleo del " +"lenguaje Python." #: ../Doc/whatsnew/2.5.rst:978 msgid "" @@ -1138,12 +1649,22 @@ msgid "" "`collections` module. The following example defines a dictionary that " "returns zero for any missing key::" msgstr "" +"El tipo :class:`dict` tiene un nuevo gancho para permitir que las subclases " +"proporcionen un valor por defecto cuando una clave no está contenida en el " +"diccionario. Cuando no se encuentre una clave, se llamará al método " +"``missing__(key)`` del diccionario. Este hook se utiliza para implementar " +"la nueva clase :class:`defaultdict` en el módulo :mod:`collections`. El " +"siguiente ejemplo define un diccionario que devuelve cero para cualquier " +"clave que falte::" #: ../Doc/whatsnew/2.5.rst:993 msgid "" "Both 8-bit and Unicode strings have new ``partition(sep)`` and " "``rpartition(sep)`` methods that simplify a common use case." msgstr "" +"Tanto las cadenas de 8 bits como las de Unicode tienen nuevos métodos " +"``partition(sep)`` y ``rpartition(sep)`` que simplifican un caso de uso " +"común." #: ../Doc/whatsnew/2.5.rst:996 msgid "" @@ -1157,25 +1678,37 @@ msgid "" "tuple but starts searching from the end of the string; the ``r`` stands for " "'reverse'." msgstr "" +"El método ``find(S)`` se utiliza a menudo para obtener un índice que luego " +"se utiliza para cortar la cadena y obtener las piezas que están antes y " +"después del separador. El método ``partition(sep)`` condensa este patrón en " +"una sola llamada al método que devuelve una tripleta que contiene la " +"subcadena antes del separador, el propio separador y la subcadena después " +"del separador. Si no se encuentra el separador, el primer elemento de la " +"tupla es la cadena completa y los otros dos elementos están vacíos. " +"``rpartition(sep)`` también devuelve una tupla de 3 elementos, pero empieza " +"a buscar desde el final de la cadena; la ``r`` significa \"al revés\"." #: ../Doc/whatsnew/2.5.rst:1005 msgid "Some examples::" -msgstr "" +msgstr "Algunos ejemplos::" #: ../Doc/whatsnew/2.5.rst:1018 msgid "" "(Implemented by Fredrik Lundh following a suggestion by Raymond Hettinger.)" msgstr "" +"(Implementado por Fredrik Lundh tras una sugerencia de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1020 msgid "" "The :meth:`startswith` and :meth:`endswith` methods of string types now " "accept tuples of strings to check for. ::" msgstr "" +"Los métodos :meth:`startswith` y :meth:`endswith` de los tipos de cadena " +"aceptan ahora tuplas de cadenas para su comprobación. ::" #: ../Doc/whatsnew/2.5.rst:1026 msgid "(Implemented by Georg Brandl following a suggestion by Tom Lynn.)" -msgstr "" +msgstr "(Implementado por Georg Brandl tras una sugerencia de Tom Lynn)" #: ../Doc/whatsnew/2.5.rst:1030 msgid "" @@ -1186,10 +1719,16 @@ msgid "" "with the smallest/largest return value from this function. For example, to " "find the longest string in a list, you can do::" msgstr "" +"Las funciones incorporadas :func:`min` y :func:`max` han ganado un parámetro " +"de palabra clave ``key`` análogo al argumento ``key`` de :meth:`sort`. Este " +"parámetro proporciona una función que toma un único argumento y es llamada " +"para cada valor de la lista; :func:`min`/:func:`max` devolverá el elemento " +"con el valor de retorno más pequeño/más grande de esta función. Por ejemplo, " +"para encontrar la cadena más larga de una lista, puede hacer::" #: ../Doc/whatsnew/2.5.rst:1043 msgid "(Contributed by Steven Bethard and Raymond Hettinger.)" -msgstr "" +msgstr "(Contribución de Steven Bethard y Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1045 msgid "" @@ -1200,6 +1739,12 @@ msgid "" "values returned by the iterator evaluate as true. (Suggested by Guido van " "Rossum, and implemented by Raymond Hettinger.)" msgstr "" +"Dos nuevas funciones incorporadas, :func:`any` y :func:`all`, evalúan si un " +"iterador contiene algún valor verdadero o falso. :func:`any` devuelve :const:" +"`True` si cualquier valor devuelto por el iterador es verdadero; en caso " +"contrario devolverá :const:`False`. :func:`all` devuelve :const:`True` sólo " +"si todos los valores devueltos por el iterador se evalúan como verdaderos. " +"(Sugerido por Guido van Rossum, e implementado por Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1052 msgid "" @@ -1210,6 +1755,13 @@ msgid "" "return non-negative numbers, and users often seem to use ``id(self)`` in :" "meth:`__hash__` methods (though this is discouraged)." msgstr "" +"El resultado del método :meth:`__hash__` de una clase puede ser ahora un " +"entero largo o un entero normal. Si se devuelve un entero largo, se toma el " +"hash de ese valor. En versiones anteriores se requería que el valor del " +"hash fuera un entero regular, pero en 2.5 el built-in :func:`id` se cambió " +"para devolver siempre números no negativos, y los usuarios parecen utilizar " +"a menudo ``id(self)`` en los métodos :meth:`__hash__` (aunque esto se " +"desaconseja)." #: ../Doc/whatsnew/2.5.rst:1061 msgid "" @@ -1219,6 +1771,12 @@ msgid "" "error. See :pep:`263` for how to declare a module's encoding; for example, " "you might add a line like this near the top of the source file::" msgstr "" +"ASCII es ahora la codificación por defecto para los módulos. Ahora es un " +"error de sintaxis si un módulo contiene literales de cadena con caracteres " +"de 8 bits pero no tiene una declaración de codificación. En Python 2.4 esto " +"provocaba una advertencia, no un error de sintaxis. Vea en :pep:`263` cómo " +"declarar la codificación de un módulo; por ejemplo, puede añadir una línea " +"como ésta cerca de la parte superior del fichero fuente::" #: ../Doc/whatsnew/2.5.rst:1069 msgid "" @@ -1227,6 +1785,10 @@ msgid "" "Unicode using the default ASCII encoding. The result of the comparison is " "false::" msgstr "" +"Una nueva advertencia, :class:`UnicodeWarning`, se activa cuando se intenta " +"comparar una cadena Unicode y una cadena de 8 bits que no se puede convertir " +"a Unicode utilizando la codificación ASCII por defecto. El resultado de la " +"comparación es falso::" #: ../Doc/whatsnew/2.5.rst:1081 msgid "" @@ -1237,6 +1799,13 @@ msgid "" "resulted in this exception being raised instead of suppressed by the code " "in :file:`dictobject.c` that implements dictionaries." msgstr "" +"Anteriormente, esto lanzaba una excepción :class:`UnicodeDecodeError`, pero " +"en 2.5 esto podía dar lugar a problemas desconcertantes al acceder a un " +"diccionario. Si se buscaba ``unichr(128)`` y se utilizaba ``chr(128)`` como " +"clave, se producía una excepción :class:`UnicodeDecodeError`. Otros cambios " +"en la versión 2.5 hicieron que esta excepción se lanzara en lugar de ser " +"suprimida por el código de :file:`dictobject.c` que implementa los " +"diccionarios." #: ../Doc/whatsnew/2.5.rst:1088 msgid "" @@ -1244,10 +1813,13 @@ msgid "" "change might have broken code, so instead :class:`UnicodeWarning` was " "introduced." msgstr "" +"Lanzar una excepción para tal comparación es estrictamente correcto, pero el " +"cambio podría haber roto el código, así que en su lugar se introdujo :class:" +"`UnicodeWarning`." #: ../Doc/whatsnew/2.5.rst:1091 msgid "(Implemented by Marc-André Lemburg.)" -msgstr "" +msgstr "(Implementado por Marc-André Lemburg.)" #: ../Doc/whatsnew/2.5.rst:1093 msgid "" @@ -1261,20 +1833,32 @@ msgid "" "running the Python executable to display the warning message. (Implemented " "by Thomas Wouters.)" msgstr "" +"Un error que a veces cometen los programadores de Python es olvidarse de " +"incluir un módulo :file:`__init__.py` en el directorio de un paquete. " +"Depurar este error puede ser confuso, y normalmente requiere ejecutar Python " +"con el modificador :option:`-v` para registrar todas las rutas buscadas. En " +"Python 2.5, una nueva advertencia :exc:`ImportWarning` se activa cuando una " +"importación habría recogido un directorio como paquete pero no se encontró " +"ningún :file:`__init__.py`. Esta advertencia se ignora silenciosamente por " +"defecto; proporcione la opción :option:`-Wd <-W>` cuando ejecute el " +"ejecutable de Python para mostrar el mensaje de advertencia. (Implementado " +"por Thomas Wouters)" #: ../Doc/whatsnew/2.5.rst:1102 msgid "" "The list of base classes in a class definition can now be empty. As an " "example, this is now legal::" msgstr "" +"La lista de clases base en una definición de clase ahora puede estar " +"vacía. Como ejemplo, esto es ahora legal::" #: ../Doc/whatsnew/2.5.rst:1108 msgid "(Implemented by Brett Cannon.)" -msgstr "" +msgstr "(Implementado por Brett Cannon.)" #: ../Doc/whatsnew/2.5.rst:1116 msgid "Interactive Interpreter Changes" -msgstr "" +msgstr "Cambios en el intérprete interactivo" #: ../Doc/whatsnew/2.5.rst:1118 msgid "" @@ -1282,6 +1866,9 @@ msgid "" "strings so that new users get a somewhat helpful message when they try to " "quit::" msgstr "" +"En el intérprete interactivo, ``quit`` y ``exit`` han sido durante mucho " +"tiempo cadenas para que los nuevos usuarios obtengan un mensaje algo útil " +"cuando intenten salir::" #: ../Doc/whatsnew/2.5.rst:1124 msgid "" @@ -1290,6 +1877,10 @@ msgid "" "``quit()`` or ``exit()`` will now exit the interpreter as they expect. " "(Implemented by Georg Brandl.)" msgstr "" +"En Python 2.5, ``quit`` y ``exit`` son ahora objetos que siguen produciendo " +"representaciones de cadena de sí mismos, pero también son invocables. Los " +"novatos que prueben ``quit()`` o ``exit()`` ahora saldrán del intérprete " +"como se espera. (Implementado por Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:1129 msgid "" @@ -1297,10 +1888,13 @@ msgid "" "help` and :option:`--version`; on Windows, it also accepts the :option:`/? " "<-?>` option for displaying a help message. (Implemented by Georg Brandl.)" msgstr "" +"El ejecutable de Python ahora acepta las opciones largas estándar :option:`--" +"help` y :option:`--version`; en Windows, también acepta la opción :option:" +"`/? <-?>` para mostrar un mensaje de ayuda. (Implementado por Georg Brandl)" #: ../Doc/whatsnew/2.5.rst:1139 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/2.5.rst:1141 msgid "" @@ -1310,6 +1904,12 @@ msgid "" "LLC with local support from CCP Games. Those optimizations added at this " "sprint are specially marked in the following list." msgstr "" +"Varias de las optimizaciones se desarrollaron en el sprint NeedForSpeed, un " +"evento celebrado en Reikiavik, Islandia, del 21 al 28 de mayo de 2006. El " +"sprint se centró en las mejoras de velocidad de la implementación de CPython " +"y fue financiado por EWT LLC con el apoyo local de CCP Games. Las " +"optimizaciones añadidas en este sprint están especialmente marcadas en la " +"siguiente lista." #: ../Doc/whatsnew/2.5.rst:1147 msgid "" @@ -1319,6 +1919,11 @@ msgid "" "and as a result sets will use a third less memory and are somewhat faster. " "(Implemented by Raymond Hettinger.)" msgstr "" +"Cuando se introdujeron en Python 2.4, los tipos incorporados :class:`set` y :" +"class:`frozenset` se construyeron sobre el tipo diccionario de Python. En " +"2.5 la estructura de datos interna se ha personalizado para implementar " +"conjuntos, y como resultado los conjuntos utilizarán un tercio menos de " +"memoria y son algo más rápidos. (Implementado por Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1153 msgid "" @@ -1328,6 +1933,12 @@ msgid "" "Andrew Dalke at the NeedForSpeed sprint. Character maps were improved by " "Walter Dörwald and Martin von Löwis.)" msgstr "" +"Se ha mejorado la velocidad de algunas operaciones Unicode, como la búsqueda " +"de subcadenas, la división de cadenas y la codificación y decodificación de " +"mapas de caracteres. (Las mejoras en la búsqueda de subcadenas y la división " +"fueron añadidas por Fredrik Lundh y Andrew Dalke en el sprint NeedForSpeed. " +"Los mapas de caracteres fueron mejorados por Walter Dörwald y Martin von " +"Löwis)" #: ../Doc/whatsnew/2.5.rst:1161 msgid "" @@ -1336,6 +1947,10 @@ msgid "" "around 800--1000 digits where the function is 6 times faster. (Contributed " "by Alan McIntyre and committed at the NeedForSpeed sprint.)" msgstr "" +"La función ``long(str, base)`` es ahora más rápida en cadenas de dígitos " +"largos porque se calculan menos resultados intermedios. El máximo es para " +"cadenas de alrededor de 800-1000 dígitos, donde la función es 6 veces más " +"rápida. (Aportado por Alan McIntyre y comprometido en el sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1168 msgid "" @@ -1347,22 +1962,35 @@ msgid "" "methods will now trigger a :exc:`ValueError` from the :meth:`read\\*` " "method. (Implemented by Thomas Wouters.)" msgstr "" +"Ahora es ilegal mezclar la iteración sobre un fichero con ``for line in " +"file`` y llamar a los métodos :meth:`read`/:meth:`readline`/:meth:" +"`readlines` del objeto fichero. La iteración utiliza un buffer interno y " +"los métodos :meth:`read\\*` no utilizan ese buffer. En su lugar, " +"devolverán los datos que siguen al buffer, haciendo que los datos aparezcan " +"desordenados. Mezclar la iteración y estos métodos provocará ahora un :exc:" +"`ValueError` del método :meth:`read\\*`. (Implementado por Thomas Wouters)" -#: ../Doc/whatsnew/2.5.rst:1178 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1178, python-format msgid "" "The :mod:`struct` module now compiles structure format strings into an " -"internal representation and caches this representation, yielding a " -"20% speedup. (Contributed by Bob Ippolito at the NeedForSpeed sprint.)" +"internal representation and caches this representation, yielding a 20% " +"speedup. (Contributed by Bob Ippolito at the NeedForSpeed sprint.)" msgstr "" +"El módulo :mod:`struct` ahora compila cadenas de formato de estructura en " +"una representación interna y almacena en caché esta representación, lo que " +"supone una mejora del 20% s. (Contribuido por Bob Ippolito en el sprint " +"NeedForSpeed)" -#: ../Doc/whatsnew/2.5.rst:1182 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1182, python-format msgid "" "The :mod:`re` module got a 1 or 2% speedup by switching to Python's " "allocator functions instead of the system's :c:func:`malloc` and :c:func:" "`free`. (Contributed by Jack Diederich at the NeedForSpeed sprint.)" msgstr "" +"El módulo :mod:`re` obtuvo un 1 o 2% s de velocidad al cambiar a las " +"funciones asignadoras de Python en lugar de las :c:func:`malloc` y :c:func:" +"`free` del sistema. (Contribuido por Jack Diederich en el sprint " +"NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1186 msgid "" @@ -1371,6 +1999,11 @@ msgid "" "will do the arithmetic and produce code corresponding to ``a = 5``. " "(Proposed and implemented by Raymond Hettinger.)" msgstr "" +"El optimizador de la mirilla del generador de código realiza ahora un simple " +"plegado de constantes en las expresiones. Si escribes algo como ``a = " +"2+3``, el generador de código hará la aritmética y producirá el código " +"correspondiente a ``a = 5``. (Propuesto e implementado por Raymond " +"Hettinger)" #: ../Doc/whatsnew/2.5.rst:1191 msgid "" @@ -1382,15 +2015,27 @@ msgid "" "may improve cache locality and reduce memory usage a bit. (Contributed by " "Neal Norwitz.)" msgstr "" +"Las llamadas a funciones son ahora más rápidas porque los objetos de código " +"guardan ahora el último fotograma terminado (un \"fotograma zombi\") en un " +"campo interno del objeto de código, reutilizándolo la próxima vez que se " +"invoque el objeto de código. (Parche original de Michael Hudson, modificado " +"por Armin Rigo y Richard Jones; confirmado en el sprint NeedForSpeed) Los " +"objetos marco son también ligeramente más pequeños, lo que puede mejorar la " +"localidad de la caché y reducir un poco el uso de la memoria. (Contribución " +"de Neal Norwitz)" -#: ../Doc/whatsnew/2.5.rst:1201 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1201, python-format msgid "" "Python's built-in exceptions are now new-style classes, a change that speeds " "up instantiation considerably. Exception handling in Python 2.5 is " "therefore about 30% faster than in 2.4. (Contributed by Richard Jones, Georg " "Brandl and Sean Reifschneider at the NeedForSpeed sprint.)" msgstr "" +"Las excepciones incorporadas en Python son ahora clases de nuevo estilo, un " +"cambio que acelera considerablemente la instanciación. El manejo de " +"excepciones en Python 2.5 es, por tanto, un 30% f más rápido que en 2.4. " +"(Contribución de Richard Jones, Georg Brandl y Sean Reifschneider en el " +"sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1206 msgid "" @@ -1398,10 +2043,13 @@ msgid "" "so that the interpreter makes fewer :c:func:`open` and :c:func:`stat` calls " "on startup. (Contributed by Martin von Löwis and Georg Brandl.)" msgstr "" +"La importación ahora almacena en caché las rutas intentadas, registrando si " +"existen o no para que el intérprete haga menos llamadas a :c:func:`open` y :" +"c:func:`stat` al iniciar. (Contribución de Martin von Löwis y Georg Brandl)" #: ../Doc/whatsnew/2.5.rst:1218 msgid "New, Improved, and Removed Modules" -msgstr "" +msgstr "Módulos nuevos, mejorados y eliminados" #: ../Doc/whatsnew/2.5.rst:1220 msgid "" @@ -1411,12 +2059,21 @@ msgid "" "more complete list of changes, or look through the SVN logs for all the " "details." msgstr "" +"La biblioteca estándar ha recibido muchas mejoras y correcciones de errores " +"en Python 2.5. Aquí hay una lista parcial de los cambios más notables, " +"ordenados alfabéticamente por el nombre del módulo. Consulte el archivo :" +"file:`Misc/NEWS` en el árbol de fuentes para obtener una lista más completa " +"de los cambios, o busque en los registros de SVN para obtener todos los " +"detalles." #: ../Doc/whatsnew/2.5.rst:1225 msgid "" "The :mod:`audioop` module now supports the a-LAW encoding, and the code for " "u-LAW encoding has been improved. (Contributed by Lars Immisch.)" msgstr "" +"El módulo :mod:`audioop` soporta ahora la codificación a-LAW, y se ha " +"mejorado el código para la codificación u-LAW. (Contribución de Lars " +"Immisch)" #: ../Doc/whatsnew/2.5.rst:1228 msgid "" @@ -1431,6 +2088,17 @@ msgid "" "module documentation for details. (Designed and implemented by Walter " "Dörwald.)" msgstr "" +"El módulo :mod:`codecs` ha ganado soporte para códecs incrementales. La " +"función :func:`codec.lookup` devuelve ahora una instancia de :class:" +"`CodecInfo` en lugar de una tupla. Las instancias de :class:`CodecInfo` se " +"comportan como una cuádruple tupla para preservar la compatibilidad con " +"versiones anteriores, pero también tienen los atributos :attr:`encode`, :" +"attr:`decode`, :attr:`incrementalencoder`, :attr:`incrementaldecoder`, :attr:" +"`streamwriter` y :attr:`streamreader`. Los códecs incrementales pueden " +"recibir la entrada y producir la salida en varios trozos; la salida es la " +"misma que si la entrada completa fuera alimentada por el códec no " +"incremental. Consulte la documentación del módulo :mod:`codecs` para más " +"detalles. (Diseñado e implementado por Walter Dörwald)" #: ../Doc/whatsnew/2.5.rst:1240 msgid "" @@ -1439,6 +2107,11 @@ msgid "" "like a dictionary but constructs a default value when a key isn't present, " "automatically adding it to the dictionary for the requested key value." msgstr "" +"El módulo :mod:`collections` ha ganado un nuevo tipo, :class:`defaultdict`, " +"que subclasifica el tipo estándar :class:`dict`. El nuevo tipo se comporta " +"principalmente como un diccionario pero construye un valor por defecto " +"cuando una clave no está presente, añadiéndolo automáticamente al " +"diccionario para el valor de la clave solicitada." #: ../Doc/whatsnew/2.5.rst:1245 msgid "" @@ -1448,14 +2121,20 @@ msgid "" "constructors such as :func:`list` or :func:`int`. For example, you can " "make an index of words based on their initial letter like this::" msgstr "" +"El primer argumento del constructor de :class:`defaultdict` es una función " +"de fábrica que se llama cada vez que se solicita una clave pero no se " +"encuentra. Esta función de fábrica no recibe argumentos, por lo que puede " +"utilizar constructores de tipo incorporado como :func:`list` o :func:`int`. " +"Por ejemplo, puedes hacer un índice de palabras basado en su letra inicial " +"así::" #: ../Doc/whatsnew/2.5.rst:1261 msgid "Printing ``index`` results in the following output::" -msgstr "" +msgstr "Al imprimir ``index`` se obtiene la siguiente salida::" #: ../Doc/whatsnew/2.5.rst:1269 msgid "(Contributed by Guido van Rossum.)" -msgstr "" +msgstr "(Contribución de Guido van Rossum.)" #: ../Doc/whatsnew/2.5.rst:1271 msgid "" @@ -1464,6 +2143,10 @@ msgid "" "first occurrence of *value* in the queue, raising :exc:`ValueError` if the " "value isn't found. (Contributed by Raymond Hettinger.)" msgstr "" +"El tipo de cola doble :class:`deque` suministrado por el módulo :mod:" +"`collections` tiene ahora un método ``remove(value)`` que elimina la primera " +"aparición de *value* en la cola, lanzando :exc:`ValueError` si no se " +"encuentra el valor. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1276 msgid "" @@ -1471,6 +2154,9 @@ msgid "" "with the new ':keyword:`with`' statement. See section :ref:`contextlibmod` " "for more about this module." msgstr "" +"Nuevo módulo: El módulo :mod:`contextlib` contiene funciones de ayuda para " +"usar con la nueva sentencia ':keyword:`with`'. Consulte la sección :ref:" +"`contextlibmod` para obtener más información sobre este módulo." #: ../Doc/whatsnew/2.5.rst:1280 msgid "" @@ -1482,6 +2168,14 @@ msgid "" "the :mod:`profile` module's interface, will continue to be maintained in " "future versions of Python. (Contributed by Armin Rigo.)" msgstr "" +"Nuevo módulo: El módulo :mod:`cProfile` es una implementación en C del " +"módulo existente :mod:`profile` que tiene una sobrecarga mucho menor. La " +"interfaz del módulo es la misma que la de :mod:`profile`: se ejecuta " +"``cProfile.run('main()')`` para perfilar una función, se pueden guardar los " +"datos del perfil en un archivo, etc. Todavía no se sabe si el perfilador " +"Hotshot, que también está escrito en C pero no coincide con la interfaz del " +"módulo :mod:`profile`, seguirá manteniéndose en futuras versiones de " +"Python. (Contribución de Armin Rigo.)" #: ../Doc/whatsnew/2.5.rst:1288 msgid "" @@ -1490,6 +2184,10 @@ msgid "" "*stream* argument to the :class:`Stats` constructor. (Contributed by Skip " "Montanaro.)" msgstr "" +"Además, el módulo :mod:`pstats` para analizar los datos medidos por el " +"perfilador ahora soporta dirigir la salida a cualquier objeto archivo " +"suministrando un argumento *stream* al constructor :class:`Stats`. " +"(Contribución de Skip Montanaro)" #: ../Doc/whatsnew/2.5.rst:1292 msgid "" @@ -1502,6 +2200,15 @@ msgid "" "the source; records can span multiple physical lines, so :attr:`line_num` is " "not the same as the number of records read." msgstr "" +"El módulo :mod:`csv`, que analiza archivos en formato de valores separados " +"por comas, ha recibido varias mejoras y una serie de correcciones de " +"errores. Ahora se puede establecer el tamaño máximo en bytes de un campo " +"llamando a la función ``csv.field_size_limit(new_limit)``; si se omite el " +"argumento *new_limit* se devolverá el límite establecido actualmente. La " +"clase :class:`reader` tiene ahora un atributo :attr:`line_num` que cuenta el " +"número de líneas físicas leídas de la fuente; los registros pueden abarcar " +"varias líneas físicas, por lo que :attr:`line_num` no es lo mismo que el " +"número de registros leídos." #: ../Doc/whatsnew/2.5.rst:1301 msgid "" @@ -1514,10 +2221,19 @@ msgid "" "fields are important, the input should be split into lines in a manner that " "preserves the newline characters." msgstr "" +"El analizador CSV es ahora más estricto con los campos entrecomillados de " +"varias líneas. Anteriormente, si una línea terminaba dentro de un campo " +"entre comillas sin un carácter de nueva línea final, se insertaba una nueva " +"línea en el campo devuelto. Este comportamiento causaba problemas cuando se " +"leían archivos que contenían caracteres de retorno de carro dentro de los " +"campos, por lo que se cambió el código para devolver el campo sin insertar " +"nuevas líneas. Como consecuencia, si las nuevas líneas incrustadas dentro de " +"los campos son importantes, la entrada debe dividirse en líneas de manera " +"que se conserven los caracteres de nueva línea." #: ../Doc/whatsnew/2.5.rst:1309 msgid "(Contributed by Skip Montanaro and Andrew McNamara.)" -msgstr "" +msgstr "(Contribución de Skip Montanaro y Andrew McNamara)" #: ../Doc/whatsnew/2.5.rst:1311 msgid "" @@ -1526,6 +2242,10 @@ msgid "" "by Josh Spoerri. It uses the same format characters as :func:`time.strptime` " "and :func:`time.strftime`::" msgstr "" +"La clase :class:`~datetime.datetime` del módulo :mod:`datetime` tiene ahora " +"un método ``strptime(string, format)`` para analizar cadenas de fechas, " +"aportado por Josh Spoerri. Utiliza los mismos caracteres de formato que :" +"func:`time.strptime` y :func:`time.strftime`::" #: ../Doc/whatsnew/2.5.rst:1321 msgid "" @@ -1534,6 +2254,11 @@ msgid "" "subsequences. Previously, the algorithm would occasionally break a block of " "matching elements into two list entries. (Enhancement by Tim Peters.)" msgstr "" +"El método :meth:`SequenceMatcher.get_matching_blocks` del módulo :mod:" +"`difflib` garantiza ahora la devolución de una lista mínima de bloques que " +"describen subsecuencias coincidentes. Anteriormente, el algoritmo rompía " +"ocasionalmente un bloque de elementos coincidentes en dos entradas de la " +"lista. (Mejora realizada por Tim Peters)" #: ../Doc/whatsnew/2.5.rst:1326 msgid "" @@ -1541,6 +2266,10 @@ msgid "" "from being executed at all. This is intended for code snippets that are " "usage examples intended for the reader and aren't actually test cases." msgstr "" +"El módulo :mod:`doctest` ha ganado una opción ``SKIP`` que impide que un " +"ejemplo se ejecute en absoluto. Esto está pensado para los fragmentos de " +"código que son ejemplos de uso destinados al lector y que no son realmente " +"casos de prueba." #: ../Doc/whatsnew/2.5.rst:1330 msgid "" @@ -1549,12 +2278,18 @@ msgid "" "easier to use non-ASCII characters in tests contained within a docstring. " "(Contributed by Bjorn Tillenius.)" msgstr "" +"Se ha añadido un parámetro *encoding* a la función :func:`testfile` y a la " +"clase :class:`DocFileSuite` para especificar la codificación del archivo. " +"Esto facilita el uso de caracteres no ASCII en las pruebas contenidas en un " +"docstring. (Contribución de Bjorn Tillenius)" #: ../Doc/whatsnew/2.5.rst:1337 msgid "" "The :mod:`email` package has been updated to version 4.0. (Contributed by " "Barry Warsaw.)" msgstr "" +"El paquete :mod:`email` ha sido actualizado a la versión 4.0. (Contribución " +"de Barry Warsaw.)" #: ../Doc/whatsnew/2.5.rst:1345 msgid "" @@ -1567,6 +2302,15 @@ msgid "" "`fileno` returns the file descriptor for the currently opened file. " "(Contributed by Georg Brandl.)" msgstr "" +"El módulo :mod:`fileinput` se ha hecho más flexible. Ahora se soportan los " +"nombres de archivo Unicode, y se ha añadido un parámetro *mode* que por " +"defecto es ``\"r\"`` a la función :func:`input` para permitir la apertura de " +"archivos en modo binario o :term:`universal newlines`. Otro nuevo " +"parámetro, *openhook*, permite utilizar una función distinta de :func:`open` " +"para abrir los ficheros de entrada. Una vez que se itera sobre el conjunto " +"de archivos, el nuevo :meth:`fileno` del objeto :class:`FileInput` devuelve " +"el descriptor de archivo del archivo actualmente abierto. (Contribuido por " +"Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:1354 msgid "" @@ -1578,6 +2322,13 @@ msgid "" "*generation* argument of 0, 1, or 2 to specify which generation to collect. " "(Contributed by Barry Warsaw.)" msgstr "" +"En el módulo :mod:`gc`, la nueva función :func:`get_count` devuelve una 3-" +"tupla que contiene los recuentos de recolección actuales para las tres " +"generaciones de GC. Se trata de información contable para el recolector de " +"basura; cuando estos recuentos alcanzan un umbral especificado, se realiza " +"un barrido de recolección de basura. La función :func:`gc.collect` " +"existente ahora toma un argumento opcional *generación* de 0, 1 o 2 para " +"especificar qué generación recoger. (Contribución de Barry Warsaw)" #: ../Doc/whatsnew/2.5.rst:1361 msgid "" @@ -1586,10 +2337,14 @@ msgid "" "by the :func:`min`/:func:`max` functions and the :meth:`sort` methods. For " "example::" msgstr "" +"Las funciones :func:`nsmallest` y :func:`nlargest` del módulo :mod:`heapq` " +"soportan ahora un parámetro de palabra clave ``key`` similar al " +"proporcionado por las funciones :func:`min`/:func:`max` y los métodos :meth:" +"`sort`. Por ejemplo::" #: ../Doc/whatsnew/2.5.rst:1373 ../Doc/whatsnew/2.5.rst:1382 msgid "(Contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger.)" #: ../Doc/whatsnew/2.5.rst:1375 msgid "" @@ -1597,15 +2352,19 @@ msgid "" "step arguments. This makes it more compatible with the attributes of slice " "objects, so that you can now write the following::" msgstr "" +"La función :func:`itertools.islice` ahora acepta ``None`` para los " +"argumentos de inicio y paso. Esto la hace más compatible con los atributos " +"de los objetos slice, por lo que ahora se puede escribir lo siguiente::" #: ../Doc/whatsnew/2.5.rst:1384 msgid "" "The :func:`format` function in the :mod:`locale` module has been modified " "and two new functions were added, :func:`format_string` and :func:`currency`." msgstr "" +"Se ha modificado la función :func:`format` del módulo :mod:`locale` y se han " +"añadido dos nuevas funciones, :func:`format_string` y :func:`currency`." -#: ../Doc/whatsnew/2.5.rst:1387 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1387, python-format msgid "" "The :func:`format` function's *val* parameter could previously be a string " "as long as no more than one %char specifier appeared; now the parameter must " @@ -1614,24 +2373,34 @@ msgid "" "locale's rules for formatting currency in placing a separator between groups " "of three digits." msgstr "" +"El parámetro *val* de la función :func:`format` podía ser antes una cadena " +"siempre que no apareciera más de un especificador %char; ahora el parámetro " +"debe ser exactamente un especificador %char sin texto alrededor. También se " +"ha añadido un parámetro opcional *monetario* que, si es ``Verdadero``, " +"utilizará las reglas de la configuración regional para formatear la moneda " +"al colocar un separador entre grupos de tres dígitos." -#: ../Doc/whatsnew/2.5.rst:1393 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1393, python-format msgid "" "To format strings with multiple %char specifiers, use the new :func:" "`format_string` function that works like :func:`format` but also supports " "mixing %char specifiers with arbitrary text." msgstr "" +"Para formatear cadenas con múltiples especificadores %char, utilice la nueva " +"función :func:`format_string` que funciona como :func:`format` pero que " +"también permite mezclar especificadores %char con texto arbitrario." #: ../Doc/whatsnew/2.5.rst:1397 msgid "" "A new :func:`currency` function was also added that formats a number " "according to the current locale's settings." msgstr "" +"También se ha añadido una nueva función :func:`currency` que formatea un " +"número de acuerdo con la configuración local actual." #: ../Doc/whatsnew/2.5.rst:1400 msgid "(Contributed by Georg Brandl.)" -msgstr "" +msgstr "(Contribución de Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:1404 msgid "" @@ -1643,12 +2412,21 @@ msgid "" "unlock the mailbox. The following example converts a maildir-format mailbox " "into an mbox-format one::" msgstr "" +"El módulo :mod:`mailbox` ha sido reestructurado de forma masiva para añadir " +"la capacidad de modificar los buzones además de leerlos. Un nuevo conjunto " +"de clases que incluyen :class:`mbox`, :class:`MH`, y :class:`Maildir` se " +"utilizan para leer buzones, y tienen un método ``add(message)`` para añadir " +"mensajes, ``remove(key)`` para eliminar mensajes, y :meth:`lock`/:meth:" +"`unlock` para bloquear/desbloquear el buzón. El siguiente ejemplo convierte " +"un buzón con formato maildir en uno con formato mbox::" #: ../Doc/whatsnew/2.5.rst:1422 msgid "" "(Contributed by Gregory K. Johnson. Funding was provided by Google's 2005 " "Summer of Code.)" msgstr "" +"(Contribución de Gregory K. Johnson. La financiación fue proporcionada por " +"el Summer of Code 2005 de Google)" #: ../Doc/whatsnew/2.5.rst:1425 msgid "" @@ -1656,6 +2434,9 @@ msgid "" "file:`.msi` files and CAB files. Some support for reading the :file:`.msi` " "database is also included. (Contributed by Martin von Löwis.)" msgstr "" +"Nuevo módulo: el módulo :mod:`msilib` permite crear archivos :file:`.msi` de " +"Microsoft Installer y archivos CAB. También se incluye soporte para la " +"lectura de la base de datos :file:`.msi`. (Contribución de Martin von Löwis)" #: ../Doc/whatsnew/2.5.rst:1429 msgid "" @@ -1663,6 +2444,9 @@ msgid "" "default domain by supplying a *domain* argument to the :func:`nis.match` " "and :func:`nis.maps` functions. (Contributed by Ben Bell.)" msgstr "" +"El módulo :mod:`nis` soporta ahora el acceso a dominios distintos del " +"dominio por defecto del sistema proporcionando un argumento *dominio* a las " +"funciones :func:`nis.match` y :func:`nis.maps`. (Contribución de Ben Bell)" #: ../Doc/whatsnew/2.5.rst:1433 msgid "" @@ -1673,6 +2457,12 @@ msgid "" "method's ``key`` parameter lets you easily sort lists using multiple " "fields. (Contributed by Raymond Hettinger.)" msgstr "" +"Las funciones :mod:`operator` del módulo :func:`itemgetter` y :func:" +"`attrgetter` ahora soportan múltiples campos. Una llamada como ``operator." +"attrgetter('a', 'b')`` devolverá una función que recupera los atributos :" +"attr:`a` y :attr:`b`. La combinación de esta nueva función con el parámetro " +"``key`` del método :meth:`sort` permite ordenar fácilmente las listas " +"utilizando varios campos. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1440 msgid "" @@ -1682,6 +2472,11 @@ msgid "" "method to break reference cycles created by the object. (Contributed by Greg " "Ward.)" msgstr "" +"El módulo :mod:`optparse` se ha actualizado a la versión 1.5.1 de la " +"biblioteca Optik. La clase :class:`OptionParser` obtuvo un atributo :attr:" +"`epilog`, una cadena que se imprimirá después del mensaje de ayuda, y un " +"método :meth:`destroy` para romper los ciclos de referencia creados por el " +"objeto. (Contribuido por Greg Ward.)" #: ../Doc/whatsnew/2.5.rst:1445 msgid "" @@ -1691,6 +2486,12 @@ msgid "" "that :func:`os.stat` will return times that are precise to fractions of a " "second; not all systems support such precision.)" msgstr "" +"El módulo :mod:`os` ha sufrido varios cambios. La variable :attr:" +"`stat_float_times` ahora está predeterminada a true, lo que significa que :" +"func:`os.stat` ahora devolverá los valores de tiempo como flotantes. (Esto " +"no significa necesariamente que :func:`os.stat` devolverá tiempos con una " +"precisión de fracciones de segundo; no todos los sistemas soportan dicha " +"precisión)" #: ../Doc/whatsnew/2.5.rst:1451 msgid "" @@ -1699,6 +2500,10 @@ msgid "" "function. Two new constants for locking are :attr:`os.O_SHLOCK` and :attr:" "`os.O_EXLOCK`." msgstr "" +"Se han añadido las constantes :attr:`os.SEEK_SET`, :attr:`os.SEEK_CUR` y :" +"attr:`os.SEEK_END`, que son los parámetros de la función :func:`os.lseek`. " +"Dos nuevas constantes para el bloqueo son :attr:`os.O_SHLOCK` y :attr:`os." +"O_EXLOCK`." #: ../Doc/whatsnew/2.5.rst:1456 msgid "" @@ -1711,6 +2516,15 @@ msgid "" "the :func:`resource.getrusage` function. ``wait4(pid)`` does take a process " "ID. (Contributed by Chad J. Schroeder.)" msgstr "" +"Se han añadido dos nuevas funciones, :func:`wait3` y :func:`wait4`. Son " +"similares a la función :func:`waitpid` que espera la salida de un proceso " +"hijo y devuelve una tupla con el ID del proceso y su estado de salida, pero :" +"func:`wait3` y :func:`wait4` devuelven información adicional. :func:`wait3` " +"no toma un ID de proceso como entrada, por lo que espera a que cualquier " +"proceso hijo salga y devuelve una tupla de *id de proceso*, *estado de " +"salida*, *uso de recursos* tal y como se devuelve desde la función :func:" +"`resource.getrusage`. ``wait4(pid)`` toma un ID de proceso. (Contribuido por " +"Chad J. Schroeder.)" #: ../Doc/whatsnew/2.5.rst:1465 msgid "" @@ -1719,6 +2533,10 @@ msgid "" "`st_birthtime`. The :attr:`st_flags` attribute is also available, if the " "platform supports it. (Contributed by Antti Louko and Diego Pettenò.)" msgstr "" +"En FreeBSD, la función :func:`os.stat` devuelve ahora tiempos con resolución " +"de nanosegundos, y el objeto devuelto tiene ahora :attr:`st_gen` y :attr:" +"`st_birthtime`. El atributo :attr:`st_flags` también está disponible, si la " +"plataforma lo soporta. (Contribución de Antti Louko y Diego Pettenò)" #: ../Doc/whatsnew/2.5.rst:1472 msgid "" @@ -1729,6 +2547,13 @@ msgid "" "can include commands that resume execution, such as ``continue`` or " "``next``. (Contributed by Grégoire Dooms.)" msgstr "" +"El depurador de Python proporcionado por el módulo :mod:`pdb` puede ahora " +"almacenar listas de comandos a ejecutar cuando se alcanza un punto de " +"ruptura y se detiene la ejecución. Una vez creado el punto de interrupción " +"nº 1, introduzca ``comandos 1`` e introduzca una serie de comandos a " +"ejecutar, terminando la lista con ``end``. La lista de comandos puede " +"incluir comandos que reanuden la ejecución, como ``continue`` o ``next``. " +"(Contribución de Grégoire Dooms.)" #: ../Doc/whatsnew/2.5.rst:1481 msgid "" @@ -1737,6 +2562,10 @@ msgid "" "tuple of arguments instead. The ability to return ``None`` was deprecated " "in Python 2.4, so this completes the removal of the feature." msgstr "" +"Los módulos :mod:`pickle` y :mod:`cPickle` ya no aceptan un valor de retorno " +"de ``None`` del método :meth:`__reduce__`; el método debe devolver una tupla " +"de argumentos. La capacidad de devolver ``None`` fue obsoleta en Python " +"2.4, así que esto completa la eliminación de la función." #: ../Doc/whatsnew/2.5.rst:1486 msgid "" @@ -1745,6 +2574,10 @@ msgid "" "works for packages stored in ZIP-format archives. (Contributed by Phillip J. " "Eby.)" msgstr "" +"El módulo :mod:`pkgutil`, que contiene varias funciones de utilidad para " +"encontrar paquetes, fue mejorado para soportar los ganchos de importación " +"de :pep:`302` y ahora también funciona para paquetes almacenados en archivos " +"con formato ZIP. (Contribución de Phillip J. Eby)" #: ../Doc/whatsnew/2.5.rst:1490 msgid "" @@ -1756,12 +2589,22 @@ msgid "" "numeric operations, instead of performing many different operations and " "reducing the result to a single number as :file:`pystone.py` does." msgstr "" +"El conjunto de pruebas pybench de Marc-André Lemburg se incluye ahora en el " +"directorio :file:`Tools/pybench`. El conjunto de pruebas pybench es una " +"mejora del programa :file:`pystone.py` de uso común, ya que pybench " +"proporciona una medición más detallada de la velocidad del intérprete. " +"Calcula el tiempo de determinadas operaciones como las llamadas a funciones, " +"el corte de tuplas, las búsquedas de métodos y las operaciones numéricas, en " +"lugar de realizar muchas operaciones diferentes y reducir el resultado a un " +"único número como hace :file:`pystone.py`." #: ../Doc/whatsnew/2.5.rst:1498 msgid "" "The :mod:`pyexpat` module now uses version 2.0 of the Expat parser. " "(Contributed by Trent Mick.)" msgstr "" +"El módulo :mod:`pyexpat` utiliza ahora la versión 2.0 del analizador " +"sintáctico Expat. (Contribución de Trent Mick)" #: ../Doc/whatsnew/2.5.rst:1501 msgid "" @@ -1772,6 +2615,12 @@ msgid "" "processing for an item has been completed. (Contributed by Raymond " "Hettinger.)" msgstr "" +"La clase :class:`~queue.Queue` proporcionada por el módulo :mod:`Queue` ha " +"ganado dos nuevos métodos. :meth:`join` bloquea hasta que todos los " +"elementos de la cola han sido recuperados y todo el trabajo de procesamiento " +"de los elementos ha sido completado. Los hilos de trabajo llaman al otro " +"método nuevo, :meth:`task_done`, para indicar que el procesamiento de un " +"elemento ha finalizado. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:1507 msgid "" @@ -1779,6 +2628,9 @@ msgid "" "ever since Python 2.0, have finally been deleted. Other deleted modules: :" "mod:`statcache`, :mod:`tzparse`, :mod:`whrandom`." msgstr "" +"Los antiguos módulos :mod:`regex` y :mod:`regsub`, obsoletos desde Python " +"2.0, han sido finalmente eliminados. Otros módulos eliminados: :mod:" +"`statcache`, :mod:`tzparse`, :mod:`whrandom`." #: ../Doc/whatsnew/2.5.rst:1511 msgid "" @@ -1787,6 +2639,11 @@ msgid "" "the default ``sys.path``, so unless your programs explicitly added the " "directory to ``sys.path``, this removal shouldn't affect your code." msgstr "" +"También se ha eliminado el directorio :file:`lib-old`, que incluye módulos " +"antiguos como :mod:`dircmp` y :mod:`ni`. :file:`lib-old` no estaba en el " +"directorio por defecto ``sys.path``, así que a menos que tus programas " +"añadan explícitamente el directorio a ``sys.path``, esta eliminación no " +"debería afectar a tu código." #: ../Doc/whatsnew/2.5.rst:1516 msgid "" @@ -1794,6 +2651,9 @@ msgid "" "`readline` module and therefore now works on non-Unix platforms. (Patch from " "Robert Kiendl.)" msgstr "" +"El módulo :mod:`rlcompleter` ya no depende de la importación del módulo :mod:" +"`readline` y, por lo tanto, ahora funciona en plataformas no Unix. (Parche " +"de Robert Kiendl.)" #: ../Doc/whatsnew/2.5.rst:1522 msgid "" @@ -1803,6 +2663,11 @@ msgid "" "RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables " "this path checking." msgstr "" +"Las clases :mod:`SimpleXMLRPCServer` y :mod:`DocXMLRPCServer` tienen ahora " +"un atributo :attr:`rpc_paths` que restringe las operaciones XML-RPC a un " +"conjunto limitado de rutas URL; por defecto sólo se permiten ``'/'`` y ``'/" +"RPC2'``. Establecer :attr:`rpc_paths` como ``None`` o una tupla vacía " +"desactiva esta comprobación de rutas." #: ../Doc/whatsnew/2.5.rst:1529 msgid "" @@ -1813,6 +2678,13 @@ msgid "" "linuxjournal.com/article/7356. In Python code, netlink addresses are " "represented as a tuple of 2 integers, ``(pid, group_mask)``." msgstr "" +"El módulo :mod:`socket` ahora soporta sockets :const:`AF_NETLINK` en Linux, " +"gracias a un parche de Philippe Biondi. Los sockets Netlink son un " +"mecanismo específico de Linux para las comunicaciones entre un proceso en el " +"espacio del usuario y el código del kernel; hay un artículo introductorio " +"sobre ellos en https://www.linuxjournal.com/article/7356. En el código " +"Python, las direcciones de netlink se representan como una tupla de 2 " +"enteros, ``(pid, group_mask)``." #: ../Doc/whatsnew/2.5.rst:1536 msgid "" @@ -1822,6 +2694,11 @@ msgid "" "This means you can put the data directly into an array or a memory-mapped " "file." msgstr "" +"Dos nuevos métodos en objetos socket, ``recv_into(buffer)`` y " +"``recvrom_into(buffer)``, almacenan los datos recibidos en un objeto que " +"soporta el protocolo de buffer en lugar de devolver los datos como una " +"cadena. Esto significa que puedes poner los datos directamente en un array " +"o en un archivo mapeado en memoria." #: ../Doc/whatsnew/2.5.rst:1541 msgid "" @@ -1829,12 +2706,18 @@ msgid "" "`getproto` accessor methods to retrieve the family, type, and protocol " "values for the socket." msgstr "" +"Los objetos Socket también han ganado métodos de acceso :meth:`getfamily`, :" +"meth:`gettype` y :meth:`getproto` para recuperar los valores de familia, " +"tipo y protocolo del socket." #: ../Doc/whatsnew/2.5.rst:1545 msgid "" "New module: the :mod:`spwd` module provides functions for accessing the " "shadow password database on systems that support shadow passwords." msgstr "" +"Nuevo módulo: el módulo :mod:`spwd` proporciona funciones para acceder a la " +"base de datos de contraseñas en la sombra en sistemas que soportan " +"contraseñas en la sombra." #: ../Doc/whatsnew/2.5.rst:1548 msgid "" @@ -1845,6 +2728,13 @@ msgid "" "func:`unpack` functions; they'll create :class:`Struct` objects and cache " "them. Or you can use :class:`Struct` instances directly::" msgstr "" +"El módulo :mod:`struct` es ahora más rápido porque compila cadenas de " +"formato en objetos :class:`Struct` con métodos :meth:`pack` y :meth:" +"`unpack`. Esto es similar a cómo el módulo :mod:`re` permite crear objetos " +"de expresión regular compilados. Puede seguir utilizando las funciones :" +"func:`pack` y :func:`unpack` a nivel de módulo; éstas crearán objetos :class:" +"`Struct` y los almacenarán en caché. O puede utilizar directamente las " +"instancias de :class:`Struct`::" #: ../Doc/whatsnew/2.5.rst:1560 msgid "" @@ -1853,6 +2743,10 @@ msgid "" "offset)`` methods. This lets you store data directly into an array or a " "memory-mapped file." msgstr "" +"También puedes empaquetar y desempaquetar datos hacia y desde objetos buffer " +"directamente usando los métodos ``pack_into(buffer, offset, v1, v2, ...)`` y " +"``unpack_from(buffer, offset)``. Esto te permite almacenar datos " +"directamente en un array o en un archivo mapeado en memoria." #: ../Doc/whatsnew/2.5.rst:1565 msgid "" @@ -1860,6 +2754,9 @@ msgid "" "NeedForSpeed sprint. Support for buffer objects was added by Martin Blais, " "also at the NeedForSpeed sprint.)" msgstr "" +"(:class:`Struct` objects fueron implementados por Bob Ippolito en el sprint " +"NeedForSpeed. El soporte para los objetos buffer fue añadido por Martin " +"Blais, también en el sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:1569 msgid "" @@ -1869,6 +2766,12 @@ msgid "" "name, revision-range)``. For example, at the time of writing my copy of 2.5 " "was reporting ``('CPython', 'trunk', '45313:45315')``." msgstr "" +"Los desarrolladores de Python cambiaron de CVS a Subversion durante el " +"proceso de desarrollo de la versión 2.5. La información sobre la versión " +"exacta de construcción está disponible como la variable ``sys.subversion``, " +"una 3-tupla de ``(nombre del intérprete, nombre de la rama, rango de " +"revisión)``. Por ejemplo, en el momento de escribir esto, mi copia de 2.5 " +"informaba de ``('CPython', 'trunk', '45313:45315')``." #: ../Doc/whatsnew/2.5.rst:1575 msgid "" @@ -1877,6 +2780,10 @@ msgid "" "this: ``\"trunk:45355:45356M, Apr 13 2006, 07:42:19\"``. (Contributed by " "Barry Warsaw.)" msgstr "" +"Esta información también está disponible para las extensiones de C a través " +"de la función :c:func:`Py_GetBuildInfo` que devuelve una cadena de " +"información de compilación como esta ``\"trunk:45355:45356M, Apr 13 2006, " +"07:42:19\"``. (Contribuido por Barry Warsaw.)" #: ../Doc/whatsnew/2.5.rst:1580 msgid "" @@ -1885,6 +2792,11 @@ msgid "" "the topmost stack frame currently active in that thread at the time the " "function is called. (Contributed by Tim Peters.)" msgstr "" +"Otra nueva función, :func:`sys._current_frames`, devuelve los marcos de pila " +"actuales para todos los hilos en ejecución como un diccionario que asigna " +"los identificadores de los hilos al marco de pila superior actualmente " +"activo en ese hilo en el momento en que se llama a la función. (Contribuido " +"por Tim Peters.)" #: ../Doc/whatsnew/2.5.rst:1585 msgid "" @@ -1894,12 +2806,20 @@ msgid "" "as the extraction target, and to unpack only a subset of the archive's " "members." msgstr "" +"La clase :class:`TarFile` del módulo :mod:`tarfile` tiene ahora un método :" +"meth:`extractall` que extrae todos los miembros del archivo en el directorio " +"de trabajo actual. También es posible establecer un directorio diferente " +"como destino de la extracción, y desempaquetar sólo un subconjunto de los " +"miembros del archivo." #: ../Doc/whatsnew/2.5.rst:1590 msgid "" "The compression used for a tarfile opened in stream mode can now be " "autodetected using the mode ``'r|*'``. (Contributed by Lars Gustäbel.)" msgstr "" +"La compresión utilizada para un archivo tar abierto en modo stream puede " +"ahora ser autodetectada utilizando el modo ``'r|*'``. (Contribución de Lars " +"Gustäbel)" #: ../Doc/whatsnew/2.5.rst:1595 msgid "" @@ -1909,6 +2829,12 @@ msgid "" "sets a new value. Not all platforms support changing the stack size, but " "Windows, POSIX threading, and OS/2 all do. (Contributed by Andrew MacIntyre.)" msgstr "" +"El módulo :mod:`threading` permite ahora establecer el tamaño de la pila " +"utilizado cuando se crean nuevos hilos. La función ``stack_size([*size*])`` " +"devuelve el tamaño de pila actualmente configurado, y suministrando el " +"parámetro opcional *size* establece un nuevo valor. No todas las " +"plataformas soportan el cambio del tamaño de la pila, pero Windows, POSIX " +"threading y OS/2 lo hacen. (Contribución de Andrew MacIntyre)" #: ../Doc/whatsnew/2.5.rst:1603 msgid "" @@ -1916,6 +2842,10 @@ msgid "" "Unicode character database. Version 3.2.0 is required by some " "specifications, so it's still available as :attr:`unicodedata.ucd_3_2_0`." msgstr "" +"El módulo :mod:`unicodedata` ha sido actualizado para utilizar la versión " +"4.1.0 de la base de datos de caracteres Unicode. La versión 3.2.0 es " +"requerida por algunas especificaciones, por lo que sigue estando disponible " +"como :attr:`unicodedata.ucd_3_2_0`." #: ../Doc/whatsnew/2.5.rst:1607 msgid "" @@ -1928,10 +2858,18 @@ msgid "" "UUIDs are not specified in :rfc:`4122` and are not supported by this " "module.) ::" msgstr "" +"Nuevo módulo: el módulo :mod:`uuid` genera identificadores únicos " +"universales (UUID) de acuerdo con :rfc:`4122`. El RFC define varias " +"versiones diferentes de UUID que se generan a partir de una cadena inicial, " +"de propiedades del sistema o de forma puramente aleatoria. Este módulo " +"contiene una clase :class:`UUID` y funciones llamadas :func:`uuid1`, :func:" +"`uuid3`, :func:`uuid4`, y :func:`uuid5` para generar diferentes versiones de " +"UUID. (Los UUID de la versión 2 no se especifican en :rfc:`4122` y no están " +"soportados por este módulo) ::" #: ../Doc/whatsnew/2.5.rst:1632 msgid "(Contributed by Ka-Ping Yee.)" -msgstr "" +msgstr "(Contribución de Ka-Ping Yee.)" #: ../Doc/whatsnew/2.5.rst:1634 msgid "" @@ -1942,6 +2880,12 @@ msgid "" "`itervaluerefs` and :meth:`valuerefs` were added to :class:" "`WeakValueDictionary`. (Contributed by Fred L. Drake, Jr.)" msgstr "" +"Los tipos :mod:`weakref` del módulo :class:`WeakKeyDictionary` y :class:" +"`WeakValueDictionary` han obtenido nuevos métodos para iterar sobre las " +"referencias débiles contenidas en el diccionario. Se han añadido los " +"métodos :meth:`iterkeyrefs` y :meth:`keyrefs` a :class:`WeakKeyDictionary`, " +"y :meth:`itervaluerefs` y :meth:`valuerefs` a :class:`WeakValueDictionary`. " +"(Contribución de Fred L. Drake, Jr.)" #: ../Doc/whatsnew/2.5.rst:1641 msgid "" @@ -1956,6 +2900,17 @@ msgid "" "supported list such as Firefox, Opera, Konqueror, and elinks. (Contributed " "by Oleg Broytmann and Georg Brandl.)" msgstr "" +"El módulo :mod:`webbrowser` ha recibido una serie de mejoras. Ahora se puede " +"utilizar como un script con ``python -m webbrowser``, tomando una URL como " +"argumento; hay una serie de interruptores para controlar el comportamiento (:" +"option:`!-n` para una nueva ventana del navegador, :option:`!-t` para una " +"nueva pestaña). Se han añadido nuevas funciones a nivel de módulo, :func:" +"`open_new` y :func:`open_new_tab`, para soportar esto. La función :func:" +"`open` del módulo soporta una característica adicional, un parámetro " +"*autoraise* que señala si se debe levantar la ventana abierta cuando sea " +"posible. Se añadieron varios navegadores adicionales a la lista de " +"soportados, como Firefox, Opera, Konqueror y elinks. (Contribución de Oleg " +"Broytmann y Georg Brandl)" #: ../Doc/whatsnew/2.5.rst:1653 msgid "" @@ -1964,6 +2919,11 @@ msgid "" "to the :func:`loads` function or the :class:`Unmarshaller` class to enable " "this feature. (Contributed by Skip Montanaro.)" msgstr "" +"El módulo :mod:`xmlrpclib` ahora soporta la devolución de objetos :class:" +"`~datetime.datetime` para el tipo de fecha XML-RPC. Proporcione " +"``use_datetime=True`` a la función :func:`loads` o a la clase :class:" +"`Unmarshaller` para activar esta característica. (Contribución de Skip " +"Montanaro)" #: ../Doc/whatsnew/2.5.rst:1660 msgid "" @@ -1971,6 +2931,10 @@ msgid "" "meaning that a .zip archive can now be larger than 4 GiB and can contain " "individual files larger than 4 GiB. (Contributed by Ronald Oussoren.)" msgstr "" +"El módulo :mod:`zipfile` ahora soporta la versión ZIP64 del formato, lo que " +"significa que un archivo .zip ahora puede ser mayor de 4 GiB y puede " +"contener archivos individuales mayores de 4 GiB. (Contribución de Ronald " +"Oussoren)" #: ../Doc/whatsnew/2.5.rst:1666 msgid "" @@ -1979,10 +2943,14 @@ msgid "" "internal state and returns a new :class:`Compress` or :class:`Decompress` " "object. (Contributed by Chris AtLee.)" msgstr "" +"Los objetos :class:`zlib` y :class:`Decompress` del módulo :mod:`zlib` " +"soportan ahora un método :meth:`copy` que realiza una copia del estado " +"interno del objeto y devuelve un nuevo objeto :class:`Compress` o :class:" +"`Decompress`. (Contribución de Chris AtLee)" #: ../Doc/whatsnew/2.5.rst:1679 msgid "The ctypes package" -msgstr "" +msgstr "El paquete ctypes" #: ../Doc/whatsnew/2.5.rst:1681 msgid "" @@ -1992,6 +2960,12 @@ msgid "" "module, which provides functions for loading shared libraries and calling " "functions in them. The :mod:`ctypes` package is much fancier." msgstr "" +"El paquete :mod:`ctypes`, escrito por Thomas Heller, se ha añadido a la " +"biblioteca estándar. :mod:`ctypes` permite llamar a funciones arbitrarias en " +"bibliotecas compartidas o DLL. Los usuarios veteranos recordarán el módulo :" +"mod:`dl`, que proporciona funciones para cargar bibliotecas compartidas y " +"llamar a las funciones que contienen. El paquete :mod:`ctypes` es mucho más " +"sofisticado." #: ../Doc/whatsnew/2.5.rst:1687 msgid "" @@ -2000,6 +2974,10 @@ msgid "" "that's done, you can call arbitrary functions by accessing them as " "attributes of the :class:`CDLL` object. ::" msgstr "" +"Para cargar una biblioteca compartida o DLL, debes crear una instancia de la " +"clase :class:`CDLL` y proporcionar el nombre o la ruta de la biblioteca " +"compartida o DLL. Una vez hecho esto, puedes llamar a funciones arbitrarias " +"accediendo a ellas como atributos del objeto :class:`CDLL`. ::" #: ../Doc/whatsnew/2.5.rst:1697 msgid "" @@ -2012,6 +2990,15 @@ msgid "" "constructor. (And I mean *must*; getting it wrong will often result in the " "interpreter crashing with a segmentation fault.)" msgstr "" +"Se proporcionan constructores de tipos para los distintos tipos de C: :func:" +"`c_int`, :func:`c_float`, :func:`c_double`, :func:`c_char_p` (equivalente a :" +"c:type:`char \\*`), etc. A diferencia de los tipos de Python, las versiones " +"de C son todas mutables; puedes asignar a su atributo :attr:`value` para " +"cambiar el valor envuelto. Los enteros y las cadenas de Python se " +"convertirán automáticamente a los tipos C correspondientes, pero para otros " +"tipos debes llamar al constructor de tipo correcto. (Y quiero decir *debe*; " +"si se equivoca, a menudo el intérprete se bloquea con un fallo de " +"segmentación)" #: ../Doc/whatsnew/2.5.rst:1706 msgid "" @@ -2020,12 +3007,20 @@ msgid "" "be immutable; breaking this rule will cause puzzling bugs. When you need a " "modifiable memory area, use :func:`create_string_buffer`::" msgstr "" +"No debería usar :func:`c_char_p` con una cadena de Python cuando la función " +"C vaya a modificar el área de memoria, porque se supone que las cadenas de " +"Python son inmutables; romper esta regla causará errores desconcertantes. " +"Cuando necesite un área de memoria modificable, utilice :func:" +"`create_string_buffer`::" #: ../Doc/whatsnew/2.5.rst:1715 msgid "" "C functions are assumed to return integers, but you can set the :attr:" "`restype` attribute of the function object to change this::" msgstr "" +"Se supone que las funciones en C devuelven números enteros, pero se puede " +"establecer el atributo :attr:`restype` del objeto de la función para cambiar " +"esto::" #: ../Doc/whatsnew/2.5.rst:1724 msgid "" @@ -2036,12 +3031,20 @@ msgid "" "constructor that will create a :c:type:`PyObject \\*` pointer. A simple " "usage::" msgstr "" +":mod:`ctypes` también proporciona una envoltura para la API de C de Python " +"como el objeto ``ctypes.pythonapi``. Este objeto *no* libera el bloqueo " +"global del intérprete antes de llamar a una función, porque el bloqueo debe " +"mantenerse cuando se llama al código del intérprete. Hay un constructor de " +"tipo :class:`py_object()` que creará un puntero :c:type:`PyObject \\*`. Un " +"uso sencillo::" #: ../Doc/whatsnew/2.5.rst:1737 msgid "" "Don't forget to use :class:`py_object()`; if it's omitted you end up with a " "segmentation fault." msgstr "" +"No olvides usar :class:`py_object()`; si se omite acabas con un fallo de " +"segmentación." #: ../Doc/whatsnew/2.5.rst:1740 msgid "" @@ -2051,22 +3054,29 @@ msgid "" "wrappers atop a library accessed through :mod:`ctypes` instead of extension " "modules, now that :mod:`ctypes` is included with core Python." msgstr "" +":mod:`ctypes` existe desde hace tiempo, pero la gente sigue escribiendo y " +"distribuyendo módulos de extensión codificados a mano porque no se puede " +"confiar en que :mod:`ctypes` esté presente. Quizás los desarrolladores " +"empiecen a escribir envoltorios de Python sobre una biblioteca a la que se " +"accede a través de :mod:`ctypes` en lugar de módulos de extensión, ahora " +"que :mod:`ctypes` está incluido en el núcleo de Python." #: ../Doc/whatsnew/2.5.rst:1750 msgid "http://starship.python.net/crew/theller/ctypes/" -msgstr "" +msgstr "http://starship.python.net/crew/theller/ctypes/" #: ../Doc/whatsnew/2.5.rst:1750 msgid "The ctypes web page, with a tutorial, reference, and FAQ." msgstr "" +"La página web de ctypes, con un tutorial, referencias y preguntas frecuentes." #: ../Doc/whatsnew/2.5.rst:1752 msgid "The documentation for the :mod:`ctypes` module." -msgstr "" +msgstr "La documentación del módulo :mod:`ctypes`." #: ../Doc/whatsnew/2.5.rst:1760 msgid "The ElementTree package" -msgstr "" +msgstr "El paquete ElementTree" #: ../Doc/whatsnew/2.5.rst:1762 msgid "" @@ -2076,6 +3086,11 @@ msgid "" "ElementTree 1.2.6. The :mod:`cElementTree` accelerator module is also " "included." msgstr "" +"Un subconjunto de la biblioteca ElementTree de Fredrik Lundh para el " +"procesamiento de XML se ha añadido a la biblioteca estándar como :mod:`xml." +"etree`. Los módulos disponibles son :mod:`ElementTree`, :mod:`ElementPath` " +"y :mod:`ElementInclude` de ElementTree 1.2.6. También se incluye el " +"módulo acelerador :mod:`cElementTree`." #: ../Doc/whatsnew/2.5.rst:1768 msgid "" @@ -2083,6 +3098,9 @@ msgid "" "Full documentation for ElementTree is available at http://effbot.org/zone/" "element-index.htm." msgstr "" +"El resto de esta sección proporcionará una breve descripción del uso de " +"ElementTree. La documentación completa de ElementTree está disponible en " +"http://effbot.org/zone/element-index.htm." #: ../Doc/whatsnew/2.5.rst:1772 msgid "" @@ -2092,6 +3110,11 @@ msgid "" "the Document Object Model; in the DOM there are many different types of " "node, including :class:`TextNode`.)" msgstr "" +"ElementTree representa un documento XML como un árbol de nodos de elementos. " +"El contenido de texto del documento se almacena como los atributos :attr:" +"`text` y :attr:`tail` de (Esta es una de las principales diferencias entre " +"ElementTree y el Modelo de Objetos del Documento; en el DOM hay muchos tipos " +"diferentes de nodo, incluyendo :class:`TextNode`)" #: ../Doc/whatsnew/2.5.rst:1778 msgid "" @@ -2099,12 +3122,17 @@ msgid "" "a string (assumed to contain a filename) or a file-like object and returns " "an :class:`ElementTree` instance::" msgstr "" +"La función de análisis más utilizada es :func:`parse`, que toma una cadena " +"(se supone que contiene un nombre de archivo) o un objeto similar a un " +"archivo y devuelve una instancia de :class:`ElementTree`::" #: ../Doc/whatsnew/2.5.rst:1790 msgid "" "Once you have an :class:`ElementTree` instance, you can call its :meth:" "`getroot` method to get the root :class:`Element` node." msgstr "" +"Una vez que tengas una instancia de :class:`ElementTree`, puedes llamar a su " +"método :meth:`getroot` para obtener el nodo raíz de :class:`Element`." #: ../Doc/whatsnew/2.5.rst:1793 msgid "" @@ -2113,6 +3141,10 @@ msgid "" "provides a tidy way to incorporate XML fragments, approaching the " "convenience of an XML literal::" msgstr "" +"También hay una función :func:`XML` que toma un literal de cadena y devuelve " +"un nodo :class:`Element` (no un :class:`ElementTree`). Esta función " +"proporciona una forma ordenada de incorporar fragmentos XML, acercándose a " +"la comodidad de un literal XML::" #: ../Doc/whatsnew/2.5.rst:1803 msgid "" @@ -2120,110 +3152,114 @@ msgid "" "methods. Dictionary-like operations are used to access attribute values, " "and list-like operations are used to access child nodes." msgstr "" +"Cada elemento XML admite algunos métodos de acceso tipo diccionario y otros " +"tipo lista. Las operaciones tipo diccionario se utilizan para acceder a los " +"valores de los atributos, y las operaciones tipo lista se utilizan para " +"acceder a los nodos hijos." #: ../Doc/whatsnew/2.5.rst:1808 msgid "Operation" -msgstr "" +msgstr "Operación" #: ../Doc/whatsnew/2.5.rst:1808 msgid "Result" -msgstr "" +msgstr "Resultado" #: ../Doc/whatsnew/2.5.rst:1810 msgid "``elem[n]``" -msgstr "" +msgstr "``elem[n]``" #: ../Doc/whatsnew/2.5.rst:1810 msgid "Returns n'th child element." -msgstr "" +msgstr "Devuelve el elemento hijo enésimo." #: ../Doc/whatsnew/2.5.rst:1812 msgid "``elem[m:n]``" -msgstr "" +msgstr "``elem[m:n]``" #: ../Doc/whatsnew/2.5.rst:1812 msgid "Returns list of m'th through n'th child elements." -msgstr "" +msgstr "Devuelve la lista de m's a n's elementos hijos." #: ../Doc/whatsnew/2.5.rst:1815 msgid "``len(elem)``" -msgstr "" +msgstr "``len(elem)``" #: ../Doc/whatsnew/2.5.rst:1815 msgid "Returns number of child elements." -msgstr "" +msgstr "Devuelve el número de elementos hijos." #: ../Doc/whatsnew/2.5.rst:1817 msgid "``list(elem)``" -msgstr "" +msgstr "``lista(elem)``" #: ../Doc/whatsnew/2.5.rst:1817 msgid "Returns list of child elements." -msgstr "" +msgstr "Devuelve la lista de elementos hijos." #: ../Doc/whatsnew/2.5.rst:1819 msgid "``elem.append(elem2)``" -msgstr "" +msgstr "``elem.append(elem2)``" #: ../Doc/whatsnew/2.5.rst:1819 msgid "Adds *elem2* as a child." -msgstr "" +msgstr "Añade *elemento2* como hijo." #: ../Doc/whatsnew/2.5.rst:1821 msgid "``elem.insert(index, elem2)``" -msgstr "" +msgstr "``elem.insert(index, elem2)``" #: ../Doc/whatsnew/2.5.rst:1821 msgid "Inserts *elem2* at the specified location." -msgstr "" +msgstr "Inserta *elemento2* en el lugar especificado." #: ../Doc/whatsnew/2.5.rst:1823 msgid "``del elem[n]``" -msgstr "" +msgstr "``del elem[n]``" #: ../Doc/whatsnew/2.5.rst:1823 msgid "Deletes n'th child element." -msgstr "" +msgstr "Elimina el elemento hijo enésimo." #: ../Doc/whatsnew/2.5.rst:1825 msgid "``elem.keys()``" -msgstr "" +msgstr "``elem.keys()``" #: ../Doc/whatsnew/2.5.rst:1825 msgid "Returns list of attribute names." -msgstr "" +msgstr "Devuelve la lista de nombres de atributos." #: ../Doc/whatsnew/2.5.rst:1827 msgid "``elem.get(name)``" -msgstr "" +msgstr "``elem.get(name)``" #: ../Doc/whatsnew/2.5.rst:1827 msgid "Returns value of attribute *name*." -msgstr "" +msgstr "Devuelve el valor del atributo *nombre*." #: ../Doc/whatsnew/2.5.rst:1829 msgid "``elem.set(name, value)``" -msgstr "" +msgstr "``elem.set(nombre, valor)``" #: ../Doc/whatsnew/2.5.rst:1829 msgid "Sets new value for attribute *name*." -msgstr "" +msgstr "Establece el nuevo valor del atributo *nombre*." #: ../Doc/whatsnew/2.5.rst:1831 msgid "``elem.attrib``" -msgstr "" +msgstr "``elem.attrib``" #: ../Doc/whatsnew/2.5.rst:1831 msgid "Retrieves the dictionary containing attributes." -msgstr "" +msgstr "Recupera el diccionario que contiene los atributos." #: ../Doc/whatsnew/2.5.rst:1834 msgid "``del elem.attrib[name]``" -msgstr "" +msgstr "``del elem.attrib[name]``" #: ../Doc/whatsnew/2.5.rst:1834 msgid "Deletes attribute *name*." -msgstr "" +msgstr "Borra el atributo *nombre*." #: ../Doc/whatsnew/2.5.rst:1837 msgid "" @@ -2231,6 +3267,9 @@ msgid "" "`Element` nodes. To check if a node is a comment or processing " "instructions::" msgstr "" +"Los comentarios y las instrucciones de procesamiento también se representan " +"como nodos :class:`Element`. Para comprobar si un nodo es un comentario o " +"unas instrucciones de procesamiento::" #: ../Doc/whatsnew/2.5.rst:1845 msgid "" @@ -2238,6 +3277,9 @@ msgid "" "method. Like :func:`parse`, it can take either a string or a file-like " "object::" msgstr "" +"Para generar una salida XML, debes llamar al método :meth:`ElementTree." +"write`. Al igual que :func:`parse`, puede tomar una cadena o un objeto tipo " +"archivo::" #: ../Doc/whatsnew/2.5.rst:1855 msgid "" @@ -2248,24 +3290,34 @@ msgid "" "Therefore, it's best to specify a different encoding such as UTF-8 that can " "handle any Unicode character.)" msgstr "" +"(Atención: la codificación por defecto utilizada para la salida es ASCII. " +"Para el trabajo general de XML, donde el nombre de un elemento puede " +"contener caracteres Unicode arbitrarios, ASCII no es una codificación muy " +"útil porque lanzará una excepción si el nombre de un elemento contiene " +"cualquier carácter con valores superiores a 127. Por lo tanto, es mejor " +"especificar una codificación diferente, como UTF-8, que puede manejar " +"cualquier carácter Unicode)" #: ../Doc/whatsnew/2.5.rst:1862 msgid "" "This section is only a partial description of the ElementTree interfaces. " "Please read the package's official documentation for more details." msgstr "" +"Esta sección es sólo una descripción parcial de las interfaces de " +"ElementTree. Por favor, lee la documentación oficial del paquete para más " +"detalles." #: ../Doc/whatsnew/2.5.rst:1868 msgid "http://effbot.org/zone/element-index.htm" -msgstr "" +msgstr "http://effbot.org/zone/element-index.htm" #: ../Doc/whatsnew/2.5.rst:1869 msgid "Official documentation for ElementTree." -msgstr "" +msgstr "Documentación oficial de ElementTree." #: ../Doc/whatsnew/2.5.rst:1877 msgid "The hashlib package" -msgstr "" +msgstr "El paquete hashlib" #: ../Doc/whatsnew/2.5.rst:1879 msgid "" @@ -2275,6 +3327,11 @@ msgid "" "available, the module uses OpenSSL for fast platform optimized " "implementations of algorithms." msgstr "" +"Se ha añadido un nuevo módulo :mod:`hashlib`, escrito por Gregory P. Smith, " +"para sustituir a los módulos :mod:`md5` y :mod:`sha`. :mod:`hashlib` añade " +"soporte para hashes seguros adicionales (SHA-224, SHA-256, SHA-384 y " +"SHA-512). Cuando está disponible, el módulo utiliza OpenSSL para " +"implementaciones rápidas de algoritmos optimizados para la plataforma." #: ../Doc/whatsnew/2.5.rst:1885 msgid "" @@ -2284,6 +3341,11 @@ msgid "" "significant difference is that the constructor functions for creating new " "hashing objects are named differently. ::" msgstr "" +"Los antiguos módulos :mod:`md5` y :mod:`sha` siguen existiendo como " +"envoltorios de hashlib para preservar la compatibilidad hacia atrás. La " +"interfaz del nuevo módulo es muy parecida a la de los módulos antiguos, pero " +"no es idéntica. La diferencia más significativa es que las funciones " +"constructoras para crear nuevos objetos hashing tienen un nombre diferente ::" #: ../Doc/whatsnew/2.5.rst:1914 msgid "" @@ -2293,14 +3355,19 @@ msgid "" "binary string or a string of hex digits, and :meth:`copy` returns a new " "hashing object with the same digest state." msgstr "" +"Una vez que se ha creado un objeto hash, sus métodos son los mismos que " +"antes: ``actualizar(cadena)`` convierte la cadena especificada en el estado " +"de resumen actual, :meth:`digest` y :meth:`hexdigest` devuelven el valor de " +"resumen como una cadena binaria o una cadena de dígitos hexadecimales, y :" +"meth:`copiar` devuelve un nuevo objeto hash con el mismo estado de resumen." #: ../Doc/whatsnew/2.5.rst:1923 msgid "The documentation for the :mod:`hashlib` module." -msgstr "" +msgstr "La documentación del módulo :mod:`hashlib`." #: ../Doc/whatsnew/2.5.rst:1931 msgid "The sqlite3 package" -msgstr "" +msgstr "El paquete sqlite3" #: ../Doc/whatsnew/2.5.rst:1933 msgid "" @@ -2308,6 +3375,9 @@ msgid "" "embedded database, has been added to the standard library under the package " "name :mod:`sqlite3`." msgstr "" +"El módulo pysqlite (http://www.pysqlite.org), una envoltura para la base de " +"datos incrustada SQLite, se ha añadido a la biblioteca estándar bajo el " +"nombre de paquete :mod:`sqlite3`." #: ../Doc/whatsnew/2.5.rst:1937 msgid "" @@ -2318,12 +3388,21 @@ msgid "" "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" +"SQLite es una biblioteca en C que proporciona una base de datos ligera " +"basada en disco que no requiere un proceso de servidor independiente y " +"permite acceder a la base de datos utilizando una variante no estándar del " +"lenguaje de consulta SQL. Algunas aplicaciones pueden utilizar SQLite para " +"el almacenamiento interno de datos. También es posible crear un prototipo " +"de una aplicación utilizando SQLite y luego portar el código a una base de " +"datos más grande como PostgreSQL u Oracle." #: ../Doc/whatsnew/2.5.rst:1944 msgid "" "pysqlite was written by Gerhard Häring and provides a SQL interface " "compliant with the DB-API 2.0 specification described by :pep:`249`." msgstr "" +"pysqlite fue escrito por Gerhard Häring y proporciona una interfaz SQL que " +"cumple con la especificación DB-API 2.0 descrita por :pep:`249`." #: ../Doc/whatsnew/2.5.rst:1947 msgid "" @@ -2333,6 +3412,11 @@ msgid "" "the build process will compile the module when the necessary headers are " "available." msgstr "" +"Si estás compilando el código fuente de Python tú mismo, ten en cuenta que " +"el árbol de código fuente no incluye el código de SQLite, sólo el módulo " +"envolvente. Necesitarás tener las librerías y cabeceras de SQLite instaladas " +"antes de compilar Python, y el proceso de construcción compilará el módulo " +"cuando las cabeceras necesarias estén disponibles." #: ../Doc/whatsnew/2.5.rst:1952 msgid "" @@ -2340,18 +3424,25 @@ msgid "" "represents the database. Here the data will be stored in the :file:`/tmp/" "example` file::" msgstr "" +"Para utilizar el módulo, primero hay que crear un objeto :class:`Connection` " +"que represente la base de datos. Aquí los datos se almacenarán en el " +"archivo :file:`/tmp/example`::" #: ../Doc/whatsnew/2.5.rst:1958 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" +"También puede suministrar el nombre especial ``:memory:`` para crear una " +"base de datos en la RAM." #: ../Doc/whatsnew/2.5.rst:1960 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`execute` method to perform SQL commands::" msgstr "" +"Una vez que tengas una :class:`Connection`, puedes crear un objeto :class:" +"`Cursor` y llamar a su método :meth:`execute` para realizar comandos SQL::" #: ../Doc/whatsnew/2.5.rst:1974 msgid "" @@ -2360,9 +3451,12 @@ msgid "" "doing so is insecure; it makes your program vulnerable to an SQL injection " "attack." msgstr "" +"Normalmente tus operaciones SQL necesitarán usar valores de variables de " +"Python. No deberías montar tu consulta usando las operaciones de cadena de " +"Python porque hacerlo es inseguro; hace que tu programa sea vulnerable a un " +"ataque de inyección SQL." -#: ../Doc/whatsnew/2.5.rst:1978 -#, python-format +#: ../Doc/whatsnew/2.5.rst:1978, python-format msgid "" "Instead, use the DB-API's parameter substitution. Put ``?`` as a " "placeholder wherever you want to use a value, and then provide a tuple of " @@ -2370,6 +3464,11 @@ msgid "" "(Other database modules may use a different placeholder, such as ``%s`` or " "``:1``.) For example::" msgstr "" +"En su lugar, utilice la sustitución de parámetros de la DB-API. Ponga ``?`` " +"como marcador de posición donde quiera usar un valor, y luego proporcione " +"una tupla de valores como segundo argumento al método :meth:`execute` del " +"cursor. (Otros módulos de base de datos pueden utilizar un marcador de " +"posición diferente, como ``%s`` o ``:1``) Por ejemplo::" #: ../Doc/whatsnew/2.5.rst:1998 msgid "" @@ -2378,50 +3477,58 @@ msgid "" "retrieve a single matching row, or call :meth:`fetchall` to get a list of " "the matching rows." msgstr "" +"Para recuperar datos después de ejecutar una sentencia SELECT, puede tratar " +"el cursor como un iterador, llamar al método :meth:`fetchone` del cursor " +"para recuperar una sola fila que coincida, o llamar a :meth:`fetchall` para " +"obtener una lista de las filas que coincidan." #: ../Doc/whatsnew/2.5.rst:2003 msgid "This example uses the iterator form::" -msgstr "" +msgstr "Este ejemplo utiliza la forma del iterador::" #: ../Doc/whatsnew/2.5.rst:2016 msgid "" "For more information about the SQL dialect supported by SQLite, see https://" "www.sqlite.org." msgstr "" +"Para más información sobre el dialecto SQL soportado por SQLite, consulte " +"https://www.sqlite.org." #: ../Doc/whatsnew/2.5.rst:2023 msgid "http://www.pysqlite.org" -msgstr "" +msgstr "http://www.pysqlite.org" #: ../Doc/whatsnew/2.5.rst:2023 msgid "The pysqlite web page." -msgstr "" +msgstr "La página web de pysqlite." #: ../Doc/whatsnew/2.5.rst:2027 msgid "https://www.sqlite.org" -msgstr "" +msgstr "https://www.sqlite.org" #: ../Doc/whatsnew/2.5.rst:2026 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" +"La página web de SQLite; la documentación describe la sintaxis y los tipos " +"de datos disponibles para el dialecto SQL soportado." #: ../Doc/whatsnew/2.5.rst:2029 msgid "The documentation for the :mod:`sqlite3` module." -msgstr "" +msgstr "La documentación del módulo :mod:`sqlite3`." #: ../Doc/whatsnew/2.5.rst:2031 msgid ":pep:`249` - Database API Specification 2.0" -msgstr "" +msgstr ":pep:`249` - Especificación de la API de la base de datos 2.0" #: ../Doc/whatsnew/2.5.rst:2032 msgid "PEP written by Marc-André Lemburg." -msgstr "" +msgstr "PEP escrito por Marc-André Lemburg." #: ../Doc/whatsnew/2.5.rst:2040 msgid "The wsgiref package" -msgstr "" +msgstr "El paquete wsgiref" #: ../Doc/whatsnew/2.5.rst:2042 msgid "" @@ -2430,6 +3537,10 @@ msgid "" "`333`. The :mod:`wsgiref` package is a reference implementation of the WSGI " "specification." msgstr "" +"La Interfaz de Pasarela del Servidor Web (WSGI) v1.0 define una interfaz " +"estándar entre los servidores web y las aplicaciones web de Python y se " +"describe en :pep:`333`. El paquete :mod:`wsgiref` es una implementación de " +"referencia de la especificación WSGI." #: ../Doc/whatsnew/2.5.rst:2049 msgid "" @@ -2437,30 +3548,36 @@ msgid "" "this server is useful for debugging but isn't intended for production use. " "Setting up a server takes only a few lines of code::" msgstr "" +"El paquete incluye un servidor HTTP básico que ejecutará una aplicación " +"WSGI; este servidor es útil para la depuración pero no está pensado para su " +"uso en producción. La configuración de un servidor sólo requiere unas pocas " +"líneas de código::" #: ../Doc/whatsnew/2.5.rst:2069 msgid "http://www.wsgi.org" -msgstr "" +msgstr "http://www.wsgi.org" #: ../Doc/whatsnew/2.5.rst:2069 msgid "A central web site for WSGI-related resources." -msgstr "" +msgstr "Un sitio web central para los recursos relacionados con WSGI." #: ../Doc/whatsnew/2.5.rst:2071 msgid ":pep:`333` - Python Web Server Gateway Interface v1.0" -msgstr "" +msgstr ":pep:`333` - Interfaz del servidor web Python v1.0" #: ../Doc/whatsnew/2.5.rst:2072 msgid "PEP written by Phillip J. Eby." -msgstr "" +msgstr "PEP escrito por Phillip J. Eby." #: ../Doc/whatsnew/2.5.rst:2080 msgid "Build and C API Changes" -msgstr "" +msgstr "Cambios en la API de construcción y C" #: ../Doc/whatsnew/2.5.rst:2082 msgid "Changes to Python's build process and to the C API include:" msgstr "" +"Los cambios en el proceso de construcción de Python y en la API de C " +"incluyen:" #: ../Doc/whatsnew/2.5.rst:2084 msgid "" @@ -2468,6 +3585,10 @@ msgid "" "migration procedure that was supervised and flawlessly carried out by Martin " "von Löwis. The procedure was developed as :pep:`347`." msgstr "" +"El árbol de fuentes de Python fue convertido de CVS a Subversion, en un " +"complejo procedimiento de migración que fue supervisado y llevado a cabo de " +"forma impecable por Martin von Löwis. El procedimiento se desarrolló como :" +"pep:`347`." #: ../Doc/whatsnew/2.5.rst:2088 msgid "" @@ -2477,6 +3598,12 @@ msgid "" "were refcounting problems, often occurring in error-handling code. See " "https://scan.coverity.com for the statistics." msgstr "" +"Coverity, una empresa que comercializa una herramienta de análisis de código " +"fuente llamada Prevent, proporcionó los resultados de su examen del código " +"fuente de Python. El análisis encontró alrededor de 60 errores que fueron " +"rápidamente corregidos. Muchos de los errores eran problemas de recuento, " +"que a menudo se producen en el código de gestión de errores. Consulte las " +"estadísticas en https://scan.coverity.com." #: ../Doc/whatsnew/2.5.rst:2094 msgid "" @@ -2485,6 +3612,10 @@ msgid "" "`int`. See the earlier section :ref:`pep-353` for a discussion of this " "change." msgstr "" +"El mayor cambio en la API de C proviene de :pep:`353`, que modifica el " +"intérprete para utilizar una definición de tipo :c:type:`Py_ssize_t` en " +"lugar de :c:type:`int`. Vea la sección anterior :ref:`pep-353` para una " +"discusión de este cambio." #: ../Doc/whatsnew/2.5.rst:2099 msgid "" @@ -2493,6 +3624,11 @@ msgid "" "converted to an abstract syntax tree (or AST), and it is the abstract " "syntax tree that's traversed to produce the bytecode." msgstr "" +"El diseño del compilador de código de bytes ha cambiado mucho, ya no genera " +"código de bytes recorriendo el árbol de análisis sintáctico. En su lugar, " +"el árbol de análisis se convierte en un árbol de sintaxis abstracta (o AST), " +"y es el árbol de sintaxis abstracta el que se recorre para producir el " +"código de bytes." #: ../Doc/whatsnew/2.5.rst:2104 msgid "" @@ -2500,6 +3636,9 @@ msgid "" "`compile` built-in and specifying ``_ast.PyCF_ONLY_AST`` as the value of " "the *flags* parameter::" msgstr "" +"Es posible que el código Python obtenga objetos AST utilizando el built-in :" +"func:`compile` y especificando ``_ast.PyCF_ONLY_AST`` como valor del " +"parámetro *flags*::" #: ../Doc/whatsnew/2.5.rst:2117 msgid "" @@ -2514,6 +3653,16 @@ msgid "" "`PyAST_Compile`. For more information, read the source code, and then ask " "questions on python-dev." msgstr "" +"Todavía no se ha escrito ninguna documentación oficial para el código AST, " +"pero :pep:`339` discute el diseño. Para empezar a conocer el código, lea la " +"definición de los distintos nodos AST en :file:`Parser/Python.asdl`. Un " +"script de Python lee este archivo y genera un conjunto de definiciones de " +"estructuras C en :file:`Include/Python-ast.h`. Las funciones :c:func:" +"`PyParser_ASTFromString` y :c:func:`PyParser_ASTFromFile`, definidas en :" +"file:`Include/pythonrun.h`, toman el código fuente de Python como entrada y " +"devuelven la raíz de un AST que representa el contenido. Este AST puede " +"convertirse en un objeto de código mediante :c:func:`PyAST_Compile`. Para " +"más información, lea el código fuente, y luego haga preguntas en python-dev." #: ../Doc/whatsnew/2.5.rst:2127 msgid "" @@ -2523,6 +3672,11 @@ msgid "" "Schemenauer, plus the participants in a number of AST sprints at conferences " "such as PyCon." msgstr "" +"El código de la AST fue desarrollado bajo la dirección de Jeremy Hylton, e " +"implementado por (en orden alfabético) Brett Cannon, Nick Coghlan, Grant " +"Edwards, John Ehresman, Kurt Kaiser, Neal Norwitz, Tim Peters, Armin Rigo y " +"Neil Schemenauer, además de los participantes en varios sprints de la AST en " +"conferencias como la PyCon." #: ../Doc/whatsnew/2.5.rst:2136 msgid "" @@ -2534,6 +3688,14 @@ msgid "" "the memory may be returned to the operating system. (Implemented by Evan " "Jones, and reworked by Tim Peters.)" msgstr "" +"Se aplicó el parche de Evan Jones a obmalloc, descrito por primera vez en " +"una charla en la PyCon DC 2005. Python 2.4 asignaba objetos pequeños en " +"arenas de 256K, pero nunca liberaba arenas. Con este parche, Python " +"liberará arenas cuando estén vacías. El efecto neto es que en algunas " +"plataformas, cuando se asignan muchos objetos, el uso de la memoria de " +"Python puede realmente caer cuando se borran y la memoria puede ser devuelta " +"al sistema operativo. (Implementado por Evan Jones, y reelaborado por Tim " +"Peters)" #: ../Doc/whatsnew/2.5.rst:2144 msgid "" @@ -2545,6 +3707,14 @@ msgid "" "`PyObject_Realloc`, and :c:func:`PyObject_Free` are another family that's " "supposed to be used for creating Python objects." msgstr "" +"Tenga en cuenta que este cambio significa que los módulos de extensión deben " +"ser más cuidadosos al asignar memoria. La API de Python tiene muchas " +"funciones diferentes para asignar memoria que se agrupan en familias. Por " +"ejemplo, :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc`, y :c:func:" +"`PyMem_Free` son una familia que asigna memoria en bruto, mientras que :c:" +"func:`PyObject_Malloc`, :c:func:`PyObject_Realloc`, y :c:func:" +"`PyObject_Free` son otra familia que se supone que se utiliza para crear " +"objetos de Python." #: ../Doc/whatsnew/2.5.rst:2152 msgid "" @@ -2556,6 +3726,14 @@ msgid "" "probably result in a segfault. You should carefully test your C extension " "modules with Python 2.5." msgstr "" +"Anteriormente estas diferentes familias se reducían a las funciones :c:func:" +"`malloc` y :c:func:`free` de la plataforma. Esto significaba que no " +"importaba si te equivocabas y asignabas memoria con la función :c:func:" +"`PyMem` pero la liberabas con la función :c:func:`PyObject`. Con los " +"cambios de la versión 2.5 en obmalloc, estas familias hacen ahora cosas " +"diferentes y los desajustes probablemente darán lugar a un fallo de " +"seguridad. Deberías probar cuidadosamente tus módulos de extensión C con " +"Python 2.5." #: ../Doc/whatsnew/2.5.rst:2159 msgid "" @@ -2565,6 +3743,11 @@ msgid "" "`PySet_Contains` and :c:func:`PySet_Size` to examine the set's state. " "(Contributed by Raymond Hettinger.)" msgstr "" +"Los tipos de conjuntos incorporados tienen ahora una API oficial en C. " +"Llame a :c:func:`PySet_New` y :c:func:`PyFrozenSet_New` para crear un nuevo " +"conjunto, :c:func:`PySet_Add` y :c:func:`PySet_Discard` para añadir y " +"eliminar elementos, y :c:func:`PySet_Contains` y :c:func:`PySet_Size` para " +"examinar el estado del conjunto. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.5.rst:2165 msgid "" @@ -2573,6 +3756,11 @@ msgid "" "a string of build information like this: ``\"trunk:45355:45356M, Apr 13 " "2006, 07:42:19\"``. (Contributed by Barry Warsaw.)" msgstr "" +"El código C puede ahora obtener información sobre la revisión exacta del " +"intérprete de Python llamando a la función :c:func:`Py_GetBuildInfo` que " +"devuelve una cadena de información de compilación como esta ``" +"\"trunk:45355:45356M, Apr 13 2006, 07:42:19\"``. (Contribuido por Barry " +"Warsaw.)" #: ../Doc/whatsnew/2.5.rst:2170 msgid "" @@ -2587,12 +3775,24 @@ msgid "" "optimizations actually make the code faster. (Contributed by Fredrik Lundh " "at the NeedForSpeed sprint.)" msgstr "" +"Se pueden utilizar dos nuevas macros para indicar las funciones C que son " +"locales al fichero actual, de modo que se pueda utilizar una convención de " +"llamada más rápida. ``Py_LOCAL(type)`` declara que la función devuelve un " +"valor del *tipo* especificado y utiliza un calificador de llamada rápida. " +"``Py_LOCAL_INLINE(type)`` hace lo mismo y también solicita que la función " +"sea inline. Si :c:func:`PY_LOCAL_AGGRESSIVE` se define antes de que se " +"incluya :file:`python.h`, se habilita un conjunto de optimizaciones más " +"agresivas para el módulo; debería comparar los resultados para averiguar si " +"estas optimizaciones realmente hacen el código más rápido. (Contribuido por " +"Fredrik Lundh en el sprint NeedForSpeed)" #: ../Doc/whatsnew/2.5.rst:2181 msgid "" "``PyErr_NewException(name, base, dict)`` can now accept a tuple of base " "classes as its *base* argument. (Contributed by Georg Brandl.)" msgstr "" +"``PyErr_NewException(name, base, dict)`` ahora puede aceptar una tupla de " +"clases base como su argumento *base*. (Contribuido por Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:2184 msgid "" @@ -2602,6 +3802,12 @@ msgid "" "A *stacklevel* of 1 is the function calling :c:func:`PyErr_WarnEx`, 2 is the " "function above that, and so forth. (Added by Neal Norwitz.)" msgstr "" +"La función :c:func:`PyErr_Warn` para emitir avisos está ahora obsoleta en " +"favor de ``PyErr_WarnEx(category, message, stacklevel)`` que permite " +"especificar el número de marcos de pila que separan esta función y la que la " +"llama. Un *stacklevel* de 1 es la función que llama a :c:func:" +"`PyErr_WarnEx`, 2 es la función que está por encima, y así sucesivamente. " +"(Añadido por Neal Norwitz.)" #: ../Doc/whatsnew/2.5.rst:2190 msgid "" @@ -2609,6 +3815,9 @@ msgid "" "compiled with a C++ compiler without errors. (Implemented by Anthony " "Baxter, Martin von Löwis, Skip Montanaro.)" msgstr "" +"El intérprete de CPython sigue estando escrito en C, pero el código ahora " +"puede ser compilado con un compilador de C++ sin errores. (Implementado " +"por Anthony Baxter, Martin von Löwis, Skip Montanaro)" #: ../Doc/whatsnew/2.5.rst:2194 msgid "" @@ -2617,16 +3826,22 @@ msgid "" "unlikely case that your extensions were using it, you can replace it by " "something like the following::" msgstr "" +"Se ha eliminado la función :c:func:`PyRange_New`. Nunca se documentó, nunca " +"se utilizó en el código del núcleo, y tenía una comprobación de errores " +"peligrosamente laxa. En el improbable caso de que sus extensiones la " +"utilizaran, puede sustituirla por algo como lo siguiente::" #: ../Doc/whatsnew/2.5.rst:2208 msgid "Port-Specific Changes" -msgstr "" +msgstr "Cambios específicos en los puertos" #: ../Doc/whatsnew/2.5.rst:2210 msgid "" "MacOS X (10.3 and higher): dynamic loading of modules now uses the :c:func:" "`dlopen` function instead of MacOS-specific functions." msgstr "" +"MacOS X (10.3 y superior): la carga dinámica de módulos utiliza ahora la " +"función :c:func:`dlopen` en lugar de funciones específicas de MacOS." #: ../Doc/whatsnew/2.5.rst:2213 msgid "" @@ -2635,6 +3850,10 @@ msgid "" "binary able to run on both PowerPC and Intel processors. (Contributed by " "Ronald Oussoren; :issue:`2573`.)" msgstr "" +"MacOS X: se ha añadido una opción :option:`!--enable-universalsdk` al " +"script :program:`configure` que compila el intérprete como un binario " +"universal capaz de funcionar tanto en procesadores PowerPC como Intel. " +"(Contribución de Ronald Oussoren; :issue:`2573`.)" #: ../Doc/whatsnew/2.5.rst:2218 msgid "" @@ -2642,16 +3861,21 @@ msgid "" "extension modules. :file:`.pyd` is now the only filename extension that " "will be searched for." msgstr "" +"Windows: :file:`.dll` ya no se admite como extensión de nombre de archivo " +"para los módulos de extensión. :file:`.pyd` es ahora la única extensión de " +"nombre de archivo que se buscará." #: ../Doc/whatsnew/2.5.rst:2228 msgid "Porting to Python 2.5" -msgstr "" +msgstr "Adaptación a Python 2.5" #: ../Doc/whatsnew/2.5.rst:2230 msgid "" "This section lists previously described changes that may require changes to " "your code:" msgstr "" +"Esta sección enumera los cambios descritos anteriormente que pueden requerir " +"cambios en su código:" #: ../Doc/whatsnew/2.5.rst:2233 msgid "" @@ -2660,6 +3884,10 @@ msgid "" "encoding declaration. In Python 2.4 this triggered a warning, not a syntax " "error." msgstr "" +"ASCII es ahora la codificación por defecto para los módulos. Ahora es un " +"error de sintaxis si un módulo contiene literales de cadena con caracteres " +"de 8 bits pero no tiene una declaración de codificación. En Python 2.4 esto " +"provocaba una advertencia, no un error de sintaxis." #: ../Doc/whatsnew/2.5.rst:2238 msgid "" @@ -2667,6 +3895,9 @@ msgid "" "object. Because of the :pep:`342` changes described in section :ref:" "`pep-342`, it's now possible for :attr:`gi_frame` to be ``None``." msgstr "" +"Anteriormente, el atributo :attr:`gi_frame` de un generador era siempre un " +"objeto frame. Debido a los cambios de :pep:`342` descritos en la sección :" +"ref:`pep-342`, ahora es posible que :attr:`gi_frame` sea ``None``." #: ../Doc/whatsnew/2.5.rst:2242 msgid "" @@ -2675,6 +3906,11 @@ msgid "" "Unicode using the default ASCII encoding. Previously such comparisons would " "raise a :class:`UnicodeDecodeError` exception." msgstr "" +"Una nueva advertencia, :class:`UnicodeWarning`, se lanza cuando se intenta " +"comparar una cadena Unicode y una cadena de 8 bits que no puede ser " +"convertida a Unicode utilizando la codificación ASCII por defecto. " +"Anteriormente estas comparaciones lanzaban una excepción :class:" +"`UnicodeDecodeError`." #: ../Doc/whatsnew/2.5.rst:2247 msgid "" @@ -2683,15 +3919,22 @@ msgid "" "should be split into lines in a manner which preserves the newline " "characters." msgstr "" +"Biblioteca: el módulo :mod:`csv` es ahora más estricto con los campos " +"citados en varias líneas. Si sus archivos contienen nuevas líneas " +"incrustadas dentro de los campos, la entrada debe dividirse en líneas de " +"manera que se conserven los caracteres de nueva línea." -#: ../Doc/whatsnew/2.5.rst:2251 -#, python-format +#: ../Doc/whatsnew/2.5.rst:2251, python-format msgid "" "Library: the :mod:`locale` module's :func:`format` function's would " "previously accept any string as long as no more than one %char specifier " "appeared. In Python 2.5, the argument must be exactly one %char specifier " "with no surrounding text." msgstr "" +"Biblioteca: la función :func:`format` del módulo :mod:`locale` aceptaba " +"antes cualquier cadena siempre que no apareciera más de un especificador " +"%char. En Python 2.5, el argumento debe ser exactamente un especificador " +"%char sin texto alrededor." #: ../Doc/whatsnew/2.5.rst:2256 msgid "" @@ -2700,6 +3943,10 @@ msgid "" "return a tuple of arguments instead. The modules also no longer accept the " "deprecated *bin* keyword parameter." msgstr "" +"Biblioteca: Los módulos :mod:`pickle` y :mod:`cPickle` ya no aceptan un " +"valor de retorno de ``None`` del método :meth:`__reduce__`; el método debe " +"devolver una tupla de argumentos. Los módulos tampoco aceptan ya el " +"parámetro obsoleto de la palabra clave *bin*." #: ../Doc/whatsnew/2.5.rst:2261 msgid "" @@ -2709,6 +3956,11 @@ msgid "" "RPC2'``. Setting :attr:`rpc_paths` to ``None`` or an empty tuple disables " "this path checking." msgstr "" +"Biblioteca: Las clases :mod:`SimpleXMLRPCServer` y :mod:`DocXMLRPCServer` " +"tienen ahora un atributo :attr:`rpc_paths` que restringe las operaciones XML-" +"RPC a un conjunto limitado de rutas URL; por defecto sólo se permiten " +"``'/'`` y ``'/RPC2'``. Establecer :attr:`rpc_paths` como ``None`` o una " +"tupla vacía desactiva esta comprobación de rutas." #: ../Doc/whatsnew/2.5.rst:2267 msgid "" @@ -2717,6 +3969,11 @@ msgid "" "to make the same change to avoid warnings and to support 64-bit machines. " "See the earlier section :ref:`pep-353` for a discussion of this change." msgstr "" +"API C: Muchas funciones utilizan ahora :c:type:`Py_ssize_t` en lugar de :c:" +"type:`int` para permitir el procesamiento de más datos en máquinas de 64 " +"bits. Es posible que el código de las extensiones tenga que hacer el mismo " +"cambio para evitar advertencias y soportar máquinas de 64 bits. Véase la " +"sección anterior :ref:`pep-353` para una discusión de este cambio." #: ../Doc/whatsnew/2.5.rst:2272 msgid "" @@ -2725,10 +3982,15 @@ msgid "" "Memory allocated with one family's :c:func:`\\*_Malloc` must be freed with " "the corresponding family's :c:func:`\\*_Free` function." msgstr "" +"C API: Los cambios en obmalloc significan que debe tener cuidado de no " +"mezclar el uso de las familias de funciones :c:func:`PyMem_\\*` y :c:func:" +"`PyObject_\\*`. La memoria asignada con la función :c:func:`\\*_Malloc` de " +"una familia debe ser liberada con la función :c:func:`\\*_Free` de la " +"familia correspondiente." #: ../Doc/whatsnew/2.5.rst:2281 msgid "Acknowledgements" -msgstr "" +msgstr "Agradecimientos" #: ../Doc/whatsnew/2.5.rst:2283 msgid "" @@ -2740,3 +4002,9 @@ msgid "" "Paul Prescod, James Pryor, Mike Rovner, Scott Weikart, Barry Warsaw, Thomas " "Wouters." msgstr "" +"El autor desea agradecer a las siguientes personas sus sugerencias, " +"correcciones y ayuda en varios borradores de este artículo: Georg Brandl, " +"Nick Coghlan, Phillip J. Eby, Lars Gustäbel, Raymond Hettinger, Ralf W. " +"Grosse-Kunstleve, Kent Johnson, Iain Lowe, Martin von Löwis, Fredrik Lundh, " +"Andrew McNamara, Skip Montanaro, Gustavo Niemeyer, Paul Prescod, James " +"Pryor, Mike Rovner, Scott Weikart, Barry Warsaw, Thomas Wouters." diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 37747e39ac..aae0dc7bd0 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -6,37 +6,41 @@ # 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-09-27 14:39-0300\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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/whatsnew/2.6.rst:5 msgid "What's New in Python 2.6" -msgstr "" +msgstr "Qué hay de nuevo en Python 2.6" #: ../Doc/whatsnew/2.6.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.6.rst:9 msgid "A.M. Kuchling (amk at amk.ca)" -msgstr "" +msgstr "A.M. Kuchling (amk arroba amk.ca)" #: ../Doc/whatsnew/2.6.rst:52 msgid "" "This article explains the new features in Python 2.6, released on October 1 " "2008. The release schedule is described in :pep:`361`." msgstr "" +"Este articulo explica las nuevas características en Python 2.6, publicado el " +"1 de Octubre de 2008. El calendario de publicación se describe en :pep:`361`." #: ../Doc/whatsnew/2.6.rst:55 msgid "" @@ -48,6 +52,14 @@ msgid "" "compatibility functions in a :mod:`future_builtins` module and a :option:" "`!-3` switch to warn about usages that will become unsupported in 3.0." msgstr "" +"El tema principal de Python 2.6 es preparar el camino de migración a Python " +"3.0, un importante rediseño del lenguaje. Siempre que sea posible, Python " +"2.6 incorpora nuevas características y sintaxis de 3.0 mientras sigue siendo " +"compatible con el código existente al no eliminar características o sintaxis " +"más antiguas. Cuando no es posible hacer eso, Python 2.6 intenta hacer lo " +"que puede, agregando funciones de compatibilidad en el módulo :mod:" +"`future_builtins` y un interruptor :option:`!-3` para advertir sobre usos " +"que dejarán de ser compatibles en 3.0 ." #: ../Doc/whatsnew/2.6.rst:64 msgid "" @@ -55,6 +67,10 @@ msgid "" "as the :mod:`multiprocessing` and :mod:`json` modules, but there aren't many " "new features that aren't related to Python 3.0 in some way." msgstr "" +"Se han agregado algunos paquetes nuevos importantes a la biblioteca " +"estándar, como los módulos :mod:`multiprocessing` y :mod:`json`, pero no hay " +"muchas características nuevas que no estén relacionadas con Python 3.0 de " +"alguna manera." #: ../Doc/whatsnew/2.6.rst:69 msgid "" @@ -63,6 +79,10 @@ msgid "" "applied and 612 bugs fixed between Python 2.5 and 2.6. Both figures are " "likely to be underestimates." msgstr "" +"Python 2.6 también incluye una serie de mejoras y correcciones de errores en " +"el código fuente. Una búsqueda en los registros de cambios encuentra que se " +"aplicaron 259 parches y se corrigieron 612 errores entre Python 2.5 y 2.6. " +"Es probable que ambas cifras estén subestimadas." #: ../Doc/whatsnew/2.6.rst:74 msgid "" @@ -73,10 +93,17 @@ msgid "" "particular new feature. Whenever possible, \"What's New in Python\" links to " "the bug/patch item for each change." msgstr "" +"Este artículo no intenta proporcionar una especificación completa de las " +"nuevas características, sino que proporciona una conveniente descripción " +"general. Para obtener detalles completos, debe consultar la documentación de " +"Python 2.6. Si desea comprender la justificación del diseño y la " +"implementación, consulte el PEP de una característica nueva en particular. " +"Siempre que sea posible, \"Qué hay de nuevo en Python\" enlaza con el " +"elemento de error / parche para cada cambio." #: ../Doc/whatsnew/2.6.rst:90 msgid "Python 3.0" -msgstr "" +msgstr "Python 3.0" #: ../Doc/whatsnew/2.6.rst:92 msgid "" @@ -84,6 +111,9 @@ msgid "" "the alpha and beta releases for both versions being made on the same days. " "The development of 3.0 has influenced many features in 2.6." msgstr "" +"El ciclo de desarrollo de las versiones 2.6 y 3.0 de Python se sincronizó, y " +"las versiones alfa y beta de ambos lanzamientos se realizaron los mismos " +"días. El desarrollo de 3.0 ha influido en muchas características de 2.6." #: ../Doc/whatsnew/2.6.rst:97 msgid "" @@ -95,21 +125,33 @@ msgid "" "described in this document in the appropriate place. Some of the 3.0-" "derived features are:" msgstr "" +"Python 3.0 es un rediseño de Python de gran alcance que rompe la " +"compatibilidad con la serie 2.x. Esto significa que el código Python " +"existente necesitará alguna conversión para poder ejecutarse en Python 3.0. " +"Sin embargo, no todos los cambios en 3.0 rompen necesariamente la " +"compatibilidad. En los casos en que las nuevas funciones no provoquen la " +"rotura del código existente, se han actualizado a 2.6 y se describen en este " +"documento en el lugar correspondiente. Algunas de las características " +"derivadas de 3.0 son:" #: ../Doc/whatsnew/2.6.rst:106 msgid "" "A :meth:`__complex__` method for converting objects to a complex number." msgstr "" +"El método :meth:`__complex__` para convertir objetos en un número complejo." #: ../Doc/whatsnew/2.6.rst:107 msgid "Alternate syntax for catching exceptions: ``except TypeError as exc``." msgstr "" +"Sintaxis alternativa para detectar excepciones: ``except TypeError as exc``." #: ../Doc/whatsnew/2.6.rst:108 msgid "" "The addition of :func:`functools.reduce` as a synonym for the built-in :func:" "`reduce` function." msgstr "" +"La adición de :func:`functools.reduce` como sinónimo de la función " +"incorporada :func:`reduce`." #: ../Doc/whatsnew/2.6.rst:111 msgid "" @@ -120,6 +162,13 @@ msgid "" "new 3.0 semantics. Code written to be compatible with 3.0 can do ``from " "future_builtins import hex, map`` as necessary." msgstr "" +"Python 3.0 agrega varias funciones integradas nuevas y cambia la semántica " +"de algunas integradas existentes. Las funciones que son nuevas en 3.0 como :" +"func:`bin` simplemente se han agregado a Python 2.6, pero las funciones " +"existentes no se han cambiado; en cambio, el módulo :mod:`future_builtins` " +"tiene versiones con la nueva semántica 3.0. El código escrito puede ser " +"compatible con 3.0 haciendo ``from future_builtins import hex, map`` según " +"sea necesario." #: ../Doc/whatsnew/2.6.rst:119 msgid "" @@ -129,6 +178,12 @@ msgid "" "switch is available to Python code as the boolean variable :data:`sys." "py3kwarning`, and to C extension code as :c:data:`Py_Py3kWarningFlag`." msgstr "" +"Un nuevo modificador de línea de comandos, :option:`!-3`, habilita " +"advertencias sobre características que se eliminarán en Python 3.0. Puede " +"ejecutar código con este modificador para ver cuánto trabajo será necesario " +"para migrar el código a 3.0. El valor de este modificador está disponible " +"para el código Python como la variable booleana :data:`sys.py3kwarning`, y " +"para el código de extensión C como :c:data:`Py_Py3kWarningFlag`." #: ../Doc/whatsnew/2.6.rst:128 msgid "" @@ -137,10 +192,14 @@ msgid "" "`3100` that describes the general goals for Python 3.0, and then explore the " "higher-numbered PEPS that propose specific features." msgstr "" +"Las series 3xxx de PEP, que contienen propuestas para Python 3.0. :pep:" +"`3000` describe el proceso de desarrollo de Python 3.0. Empiece con :pep:" +"`3100` que describe los objetivos generales de Python 3.0, y luego explore " +"los PEPS con números más altos que proponen características específicas." #: ../Doc/whatsnew/2.6.rst:136 msgid "Changes to the Development Process" -msgstr "" +msgstr "Cambios en el proceso de desarrollo" #: ../Doc/whatsnew/2.6.rst:138 msgid "" @@ -149,10 +208,14 @@ msgid "" "customized Roundup installation, and the documentation was converted from " "LaTeX to reStructuredText." msgstr "" +"Mientras se desarrollaba 2.6, el proceso de desarrollo de Python experimentó " +"dos cambios significativos: cambiamos del seguidor de incidentes (*issue " +"tracker*) de SourceForge a una instalación personalizada de Roundup, y la " +"documentación se convirtió de LaTeX a reStructuredText." #: ../Doc/whatsnew/2.6.rst:145 msgid "New Issue Tracker: Roundup" -msgstr "" +msgstr "Nuevo seguidor de incidentes: Roundup" #: ../Doc/whatsnew/2.6.rst:147 msgid "" @@ -161,6 +224,10 @@ msgid "" "much customization; for example, it wasn't possible to customize the life " "cycle of issues." msgstr "" +"Durante mucho tiempo, los desarrolladores de Python estaban cada vez más " +"molestos por el seguidor de errores de SourceForge. La solución alojada en " +"SourceForge no permite mucha personalización; por ejemplo, no fue posible " +"personalizar el ciclo de vida de los problemas." #: ../Doc/whatsnew/2.6.rst:152 msgid "" @@ -175,6 +242,17 @@ msgid "" "software projects; Roundup is an open-source project that requires " "volunteers to administer it and a server to host it." msgstr "" +"Por lo tanto, el comité de infraestructura de la *Python Software " +"Foundation* publicó una convocatoria sobre el seguimiento de incidentes, " +"pidiendo a los voluntarios que configuren diferentes productos e importen " +"algunos de los errores y parches de SourceForge. Se examinaron cuatro " +"seguidores diferentes: `Jira ` __, " +"`Launchpad ` __, `Roundup `__ y `Trac `__. El comité " +"finalmente se decidió por Jira y Roundup como los dos candidatos. Jira es un " +"producto comercial que ofrece instancias alojadas sin costo para proyectos " +"de software libre; Roundup es un proyecto de código abierto que requiere " +"voluntarios para administrarlo y un servidor para alojarlo." #: ../Doc/whatsnew/2.6.rst:166 msgid "" @@ -185,6 +263,13 @@ msgid "" "possible, this edition of \"What's New in Python\" links to the bug/patch " "item for each change." msgstr "" +"Después de publicar una llamada para voluntarios, se configuró una nueva " +"instalación de Roundup en https://bugs.python.org. Una instalación de " +"Roundup puede alojar varios seguidores, y este servidor ahora también aloja " +"seguidores de problemas para Jython y para el sitio web de Python. " +"Seguramente encontrará otros usos en el futuro. Siempre que sea posible, " +"esta edición de \"Qué hay de nuevo en Python\" se vincula al elemento de " +"error/parche para cada cambio." #: ../Doc/whatsnew/2.6.rst:174 msgid "" @@ -195,42 +280,48 @@ msgid "" "org/view/tracker/importer/ and may be useful to other projects wishing to " "move from SourceForge to Roundup." msgstr "" +"`Upfront Systems ` __ de Stellenbosch, " +"Sudáfrica, proporciona amablemente el alojamiento del seguidor de errores de " +"Python. Martin von Löwis se esforzó mucho en importar errores y parches " +"existentes desde SourceForge. Sus scripts para esta operación de importación " +"se encuentran en http://svn.python.org/view/tracker/importer/ y pueden ser " +"útiles para otros proyectos que deseen pasar de SourceForge a Roundup." #: ../Doc/whatsnew/2.6.rst:185 msgid "https://bugs.python.org" -msgstr "" +msgstr "https://bugs.python.org" #: ../Doc/whatsnew/2.6.rst:185 msgid "The Python bug tracker." -msgstr "" +msgstr "El seguidor de errores de Python." #: ../Doc/whatsnew/2.6.rst:188 msgid "http://bugs.jython.org:" -msgstr "" +msgstr "http://bugs.jython.org:" #: ../Doc/whatsnew/2.6.rst:188 msgid "The Jython bug tracker." -msgstr "" +msgstr "El seguidor de errores de Jython." #: ../Doc/whatsnew/2.6.rst:191 msgid "http://roundup.sourceforge.net/" -msgstr "" +msgstr "http://roundup.sourceforge.net/" #: ../Doc/whatsnew/2.6.rst:191 msgid "Roundup downloads and documentation." -msgstr "" +msgstr "Descargas y documentación de Roundup." #: ../Doc/whatsnew/2.6.rst:193 msgid "http://svn.python.org/view/tracker/importer/" -msgstr "" +msgstr "http://svn.python.org/view/tracker/importer/" #: ../Doc/whatsnew/2.6.rst:194 msgid "Martin von Löwis's conversion scripts." -msgstr "" +msgstr "Scripts de conversión de Martin von Löwis." #: ../Doc/whatsnew/2.6.rst:197 msgid "New Documentation Format: reStructuredText Using Sphinx" -msgstr "" +msgstr "Nuevo formato de documentación: texto reestructurado con Sphinx" #: ../Doc/whatsnew/2.6.rst:199 msgid "" @@ -240,6 +331,12 @@ msgid "" "provided attractive printed output while remaining straightforward to write " "once the basic rules of the markup were learned." msgstr "" +"La documentación de Python se escribió usando LaTeX desde que el proyecto " +"comenzó alrededor de 1989. En la década de 1980 y principios de la de 1990, " +"la mayor parte de la documentación se imprimió para su estudio posterior, no " +"se vio en línea. LaTeX fue ampliamente utilizado porque proporcionaba una " +"salida impresa atractiva sin dejar de ser sencillo de escribir una vez que " +"se aprendían las reglas básicas de marcado." #: ../Doc/whatsnew/2.6.rst:206 msgid "" @@ -253,6 +350,16 @@ msgid "" "into SGML and later XML, but performing a good conversion is a major task " "and no one ever committed the time required to finish the job." msgstr "" +"Hoy en día, LaTeX todavía se usa para escribir publicaciones destinadas a la " +"impresión, pero el panorama de las herramientas de programación ha cambiado. " +"Ya no imprimimos montones de documentación; en su lugar, lo navegamos en " +"línea y HTML se ha convertido en el formato más importante para dar soporte. " +"Desafortunadamente, convertir LaTeX a HTML es bastante complicado y Fred L. " +"Drake Jr., el editor de documentación de Python desde hace mucho tiempo, " +"pasó mucho tiempo manteniendo el proceso de conversión. De vez en cuando, la " +"gente sugeriría convertir la documentación a SGML y luego a XML, pero " +"realizar una buena conversión es una tarea importante y nadie comprometió el " +"tiempo necesario para terminar el trabajo." #: ../Doc/whatsnew/2.6.rst:217 msgid "" @@ -260,6 +367,9 @@ msgid "" "building a new toolchain for processing the documentation. The resulting " "package is called Sphinx, and is available from http://sphinx-doc.org/." msgstr "" +"Durante el ciclo de desarrollo 2.6, Georg Brandl se esforzó mucho en crear " +"una nueva cadena de herramientas para procesar la documentación. El paquete " +"resultante se llama Sphinx y está disponible en http://sphinx-doc.org/." #: ../Doc/whatsnew/2.6.rst:222 msgid "" @@ -268,6 +378,11 @@ msgid "" "input format is reStructuredText, a markup syntax supporting custom " "extensions and directives that is commonly used in the Python community." msgstr "" +"Sphinx se concentra en la salida HTML, produciendo HTML moderno y con un " +"estilo atractivo; la salida impresa todavía se admite mediante la conversión " +"a LaTeX. El formato de entrada es reStructuredText, una sintaxis de marcado " +"que admite extensiones y directivas personalizadas que se usa comúnmente en " +"la comunidad de Python." #: ../Doc/whatsnew/2.6.rst:228 msgid "" @@ -276,34 +391,40 @@ msgid "" "org/en/master/examples.html>`__) have adopted Sphinx as their documentation " "tool." msgstr "" +"Sphinx es un paquete independiente que se puede usar para escribir, y casi " +"dos docenas de otros proyectos (`enumerados en el sitio web de Sphinx " +"`__) han adoptado Sphinx " +"como su herramienta de documentación." #: ../Doc/whatsnew/2.6.rst:236 msgid "`Documenting Python `__" -msgstr "" +msgstr "`Documentando Python `__" #: ../Doc/whatsnew/2.6.rst:236 msgid "Describes how to write for Python's documentation." -msgstr "" +msgstr "Describe cómo escribir para la documentación de Python." #: ../Doc/whatsnew/2.6.rst:239 msgid "`Sphinx `__" -msgstr "" +msgstr "`Sphinx `__" #: ../Doc/whatsnew/2.6.rst:239 msgid "Documentation and code for the Sphinx toolchain." -msgstr "" +msgstr "Documentación y código para la cadena de herramientas Sphinx." #: ../Doc/whatsnew/2.6.rst:241 msgid "`Docutils `__" -msgstr "" +msgstr "`Docutils `__" #: ../Doc/whatsnew/2.6.rst:242 msgid "The underlying reStructuredText parser and toolset." msgstr "" +"El analizador sintáctico y el conjunto de herramientas *reStructuredText* " +"subyacentes." #: ../Doc/whatsnew/2.6.rst:248 msgid "PEP 343: The 'with' statement" -msgstr "" +msgstr "PEP 343: La sentencia *'with'*" #: ../Doc/whatsnew/2.6.rst:250 msgid "" @@ -315,6 +436,14 @@ msgid "" "from the \"What's New in Python 2.5\" document; if you're familiar with the " "':keyword:`!with`' statement from Python 2.5, you can skip this section." msgstr "" +"La versión anterior, Python 2.5, agregó la instrucción ':keyword:`with`' " +"como una característica opcional, para ser habilitada por una directiva " +"``from __future__ import with_statement``. En 2.6, la instrucción ya no " +"necesita estar habilitada especialmente; esto significa que ahora :keyword:`!" +"with` es siempre una palabra clave. El resto de esta sección es una copia de " +"la sección correspondiente del documento \"Qué hay de nuevo en Python 2.5\"; " +"si está familiarizado con la declaración ':keyword:`!with`' de Python 2.5, " +"puede omitir esta sección." #: ../Doc/whatsnew/2.6.rst:259 msgid "" @@ -324,12 +453,19 @@ msgid "" "next section, I'll examine the implementation details and show how to write " "objects for use with this statement." msgstr "" +"La sentencia ':keyword:`with`' resuelve el código que anteriormente usaría " +"bloques `try...finally`` para garantizar que el código de limpieza se " +"ejecute. En esta sección, discutiré como se usará comúnmente la declaración. " +"En la siguiente sección, examinaré los detalles de la implementación y " +"mostraré cómo escribir objetos para usar con esta declaración." #: ../Doc/whatsnew/2.6.rst:265 msgid "" "The ':keyword:`with`' statement is a control-flow structure whose basic " "structure is::" msgstr "" +"La sentencia ':keyword:`with`' es una estructura de control de flujo cuya " +"estructura básica es::" #: ../Doc/whatsnew/2.6.rst:271 msgid "" @@ -337,6 +473,9 @@ msgid "" "the context management protocol (that is, has :meth:`__enter__` and :meth:" "`__exit__` methods)." msgstr "" +"La expresión se evalúa y debe dar como resultado un objeto que admita el " +"protocolo de administración de contexto (es decir, tiene los métodos :meth:" +"`__enter__` y :meth:`__exit__`)." #: ../Doc/whatsnew/2.6.rst:275 msgid "" @@ -345,6 +484,11 @@ msgid "" "the name *variable*, if given. (Note carefully that *variable* is *not* " "assigned the result of *expression*.)" msgstr "" +"El objeto :meth:`__enter__` se llama antes de que se ejecute *with-block* y, " +"por lo tanto, se puede ejecutar código de configuración. También, si se " +"proporciona, puede retornar un valor que esté vinculado al nombre " +"*variable*. (Tenga en cuenta que a la *variable* *no* se le asigna el " +"resultado de la *expression*)." #: ../Doc/whatsnew/2.6.rst:280 msgid "" @@ -352,6 +496,9 @@ msgid "" "`__exit__` method is called, even if the block raised an exception, and can " "therefore run clean-up code." msgstr "" +"Una vez finalizada la ejecución de *with-block*, se llama al método :meth:" +"`__exit__` del objeto, incluso si el bloque generó una excepción y, por lo " +"tanto, puede ejecutar código de limpieza." #: ../Doc/whatsnew/2.6.rst:284 msgid "" @@ -359,6 +506,9 @@ msgid "" "can be used with the ':keyword:`with`' statement. File objects are one " "example::" msgstr "" +"Algunos objetos estándar de Python ahora admiten el protocolo de " +"administración de contexto y se pueden usar con la sentencia ':keyword:" +"`with`'. Los objetos de archivo son un ejemplo::" #: ../Doc/whatsnew/2.6.rst:292 msgid "" @@ -366,24 +516,33 @@ msgid "" "automatically closed, even if the :keyword:`for` loop raised an exception " "part-way through the block." msgstr "" +"Después de que se haya ejecutado esta sentencia, el objeto de archivo en *f* " +"se habrá cerrado automáticamente, incluso si el bucle :keyword:`for` generó " +"una excepción en la mitad del bloque." #: ../Doc/whatsnew/2.6.rst:298 msgid "" "In this case, *f* is the same object created by :func:`open`, because :meth:" "`file.__enter__` returns *self*." msgstr "" +"En este caso, *f* es el mismo objeto creado por :func:`open`, porque :meth:" +"`file.__enter__` retorna *self*." #: ../Doc/whatsnew/2.6.rst:301 msgid "" "The :mod:`threading` module's locks and condition variables also support " "the ':keyword:`with`' statement::" msgstr "" +"Los *locks* y las condiciones variables del módulo :mod:`threading` también " +"admiten la sentencia ':keyword:`with`'::" #: ../Doc/whatsnew/2.6.rst:309 msgid "" "The lock is acquired before the block is executed and always released once " "the block is complete." msgstr "" +"El *lock* se adquiere antes de que se ejecute el bloque y siempre se libera " +"una vez que este se completa." #: ../Doc/whatsnew/2.6.rst:312 msgid "" @@ -391,10 +550,13 @@ msgid "" "to save and restore the current decimal context, which encapsulates the " "desired precision and rounding characteristics for computations::" msgstr "" +"La función :func:`localcontext` en el módulo :mod:`decimal` facilita guardar " +"y restaurar el contexto decimal actual, que encapsula la precisión deseada y " +"las características de redondeo para los cálculos::" #: ../Doc/whatsnew/2.6.rst:331 msgid "Writing Context Managers" -msgstr "" +msgstr "Escribiendo gestores de contexto" #: ../Doc/whatsnew/2.6.rst:333 msgid "" @@ -404,10 +566,16 @@ msgid "" "if you like. Authors of new objects will need to understand the details of " "the underlying implementation and should keep reading." msgstr "" +"Por detrás, la sentencia ':keyword:`with`' es bastante complicada. La " +"mayoría de las personas solo usarán ':keyword:`!with`' en compañía de " +"objetos existentes y no necesitan conocer estos detalles, por lo que puede " +"omitir el resto de esta sección si lo desea. Los autores de nuevos objetos " +"deberán comprender los detalles de la implementación subyacente y deben " +"seguir leyendo." #: ../Doc/whatsnew/2.6.rst:339 msgid "A high-level explanation of the context management protocol is:" -msgstr "" +msgstr "Una explicación de alto nivel del protocolo de gestor de contexto es:" #: ../Doc/whatsnew/2.6.rst:341 msgid "" @@ -415,6 +583,9 @@ msgid "" "\"context manager\". The context manager must have :meth:`__enter__` and :" "meth:`__exit__` methods." msgstr "" +"La expresión se evalúa y debería dar como resultado un objeto llamado " +"\"gestor de contexto\". El gestor de contexto debe tener los métodos :meth:" +"`__enter__` y :meth:`__exit__`." #: ../Doc/whatsnew/2.6.rst:345 msgid "" @@ -422,10 +593,13 @@ msgid "" "returned is assigned to *VAR*. If no ``as VAR`` clause is present, the " "value is simply discarded." msgstr "" +"Se llama al método :meth:`__enter__` del gestor de contexto. El valor " +"retornado se asigna a *VAR*. Si no hay una cláusula ``as VAR``, el valor " +"simplemente se descarta." #: ../Doc/whatsnew/2.6.rst:349 msgid "The code in *BLOCK* is executed." -msgstr "" +msgstr "Se ejecuta el código en *BLOCK*." #: ../Doc/whatsnew/2.6.rst:351 msgid "" @@ -439,18 +613,31 @@ msgid "" "containing the ':keyword:`with`' statement will never realize anything went " "wrong." msgstr "" +"Si *BLOCK* lanza una excepción, se llama al método :meth:`__exit__` del " +"gestor de contexto con tres argumentos, los detalles de la excepción " +"(``type, value, traceback``, los mismos valores retornados por :func:`sys." +"exc_info`, que también puede ser ``None`` si no se produjo ninguna " +"excepción). El valor de retorno del método controla si se vuelve a generar " +"una excepción: cualquier valor *false* vuelve a lanzar la excepción, y " +"``True`` resultará en inhibirla. Rara vez querrá suprimir la excepción, " +"porque si lo hace, el autor del código que contenga la sentencia ':keyword:" +"`with`' nunca se dará cuenta de que algo salió mal." #: ../Doc/whatsnew/2.6.rst:360 msgid "" "If *BLOCK* didn't raise an exception, the :meth:`__exit__` method is still " "called, but *type*, *value*, and *traceback* are all ``None``." msgstr "" +"Si *BLOCK* no lanzó una excepción, el método :meth:`__exit__` continúa " +"llamándose, pero *type*, *value* y *traceback* son todos``None``." #: ../Doc/whatsnew/2.6.rst:363 msgid "" "Let's think through an example. I won't present detailed code but will only " "sketch the methods necessary for a database that supports transactions." msgstr "" +"Pensemos en un ejemplo. No presentaré un código detallado, solo bosquejaré " +"los métodos necesarios para una base de datos que admita transacciones." #: ../Doc/whatsnew/2.6.rst:366 msgid "" @@ -460,12 +647,21 @@ msgid "" "rolled back, meaning that the changes are all discarded and the database is " "unchanged. See any database textbook for more information.)" msgstr "" +"(Para las personas que no están familiarizadas con la terminología de la " +"base de datos: un conjunto de cambios en la base de datos se agrupa en una " +"transacción. Las transacciones pueden confirmarse, lo que significa que " +"todos los cambios se escriben en la base de datos, o deshacerse, lo que " +"significa que todos los cambios se descartan y la base de datos no ha " +"cambiado. Consulte cualquier libro de texto de base de datos para obtener " +"más información.)" #: ../Doc/whatsnew/2.6.rst:372 msgid "" "Let's assume there's an object representing a database connection. Our goal " "will be to let the user write code like this::" msgstr "" +"Supongamos que hay un objeto que representa una conexión de base de datos. " +"Nuestro objetivo será permitir que el usuario escriba un código como este::" #: ../Doc/whatsnew/2.6.rst:381 msgid "" @@ -473,6 +669,9 @@ msgid "" "or rolled back if there's an exception. Here's the basic interface for :" "class:`DatabaseConnection` that I'll assume::" msgstr "" +"La transacción debe confirmarse si el código del bloque se ejecuta sin " +"problemas o revertirse si hay una excepción. Aquí está la interfaz básica " +"para :class:`DatabaseConnection` que asumiré::" #: ../Doc/whatsnew/2.6.rst:394 msgid "" @@ -482,6 +681,11 @@ msgid "" "cursor`` to their ':keyword:`with`' statement to bind the cursor to a " "variable name. ::" msgstr "" +"El método :meth:`__enter__` es bastante fácil, ya que solo tiene que iniciar " +"una nueva transacción. Para esta aplicación, el objeto cursor resultante " +"sería un resultado útil, por lo que el método lo retornará. Luego, el " +"usuario puede agregar ``as cursor`` a su sentencia ':keyword:`with`' para " +"vincular el cursor a un nombre de variable. ::" #: ../Doc/whatsnew/2.6.rst:406 msgid "" @@ -490,6 +694,10 @@ msgid "" "occurred. If there was no exception, the transaction is committed. The " "transaction is rolled back if there was an exception." msgstr "" +"El método :meth:`__exit__` es el más complicado porque es donde se debe " +"realizar la mayor parte del trabajo. El método debe verificar si ocurrió una " +"excepción. Si no hubo excepción, la transacción se confirma. La transacción " +"se revierte si hubo una excepción." #: ../Doc/whatsnew/2.6.rst:411 msgid "" @@ -498,16 +706,23 @@ msgid "" "exception will be re-raised automatically. If you wished, you could be more " "explicit and add a :keyword:`return` statement at the marked location. ::" msgstr "" +"En el siguiente código, la ejecución simplemente caerá al final de la " +"función, retornando el valor predeterminado ``None``. ``None`` es falso, por " +"lo que la excepción se volverá a lanzar automáticamente. Si lo desea, puede " +"ser más explícito y agregar una sentencia :keyword:`return` en la ubicación " +"marcada. ::" #: ../Doc/whatsnew/2.6.rst:431 msgid "The contextlib module" -msgstr "" +msgstr "El módulo contextlib" #: ../Doc/whatsnew/2.6.rst:433 msgid "" "The :mod:`contextlib` module provides some functions and a decorator that " "are useful when writing objects for use with the ':keyword:`with`' statement." msgstr "" +"El módulo :mod:`contextlib` proporciona algunas funciones y un decorador que " +"son útiles al escribir objetos para usar con la sentencia ':keyword:`with`'." #: ../Doc/whatsnew/2.6.rst:436 msgid "" @@ -521,12 +736,23 @@ msgid "" "exception raised in the block will be raised by the :keyword:`!yield` " "statement." msgstr "" +"El decorador se llama :func:`contextmanager`, y te permite escribir una " +"única función generadora en lugar de definir una clase nueva. El generador " +"debería producir exactamente un valor. El código hasta :keyword:`yield` se " +"ejecutará como el método :meth:`__enter__`, y el valor obtenido será el " +"valor de retorno del método que se vinculará a la variable en la clausula :" +"keyword:`!as` (si la hay) de la sentencia ':keyword:`with`'. El código " +"después de :keyword:`!yield` se ejecutará en el método :meth:`__exit__` . " +"Cualquier excepción lanzada en el bloque será generada por la sentencia :" +"keyword:`!yield`." #: ../Doc/whatsnew/2.6.rst:445 msgid "" "Using this decorator, our database example from the previous section could " "be written as::" msgstr "" +"Usando este decorador, nuestro ejemplo de base de datos de la sección " +"anterior podría escribirse como::" #: ../Doc/whatsnew/2.6.rst:465 msgid "" @@ -536,6 +762,11 @@ msgid "" "with`' statement both starts a database transaction and acquires a thread " "lock::" msgstr "" +"El módulo :mod:`contextlib` también tiene una función ``nested(mgr1, " +"mgr2, ...)`` que combina varios gestores de contexto para que no necesite " +"escribir sentencias ':keyword:`with`' anidadas. En este ejemplo, se utiliza " +"una única sentencia ':keyword:`!with`' que inicia una transacción de base de " +"datos y adquiere un bloqueo del hilo::" #: ../Doc/whatsnew/2.6.rst:474 msgid "" @@ -543,10 +774,13 @@ msgid "" "bound to a variable, and calls the argument's ``.close()`` method at the end " "of the block. ::" msgstr "" +"Por último, la función :func:`close` retorna su argumento para que pueda " +"vincularse a una variable, y llama al método ``.close()`` del argumento al " +"final del bloque. ::" #: ../Doc/whatsnew/2.6.rst:492 msgid ":pep:`343` - The \"with\" statement" -msgstr "" +msgstr ":pep:`343` - La sentencia \"with\"" #: ../Doc/whatsnew/2.6.rst:489 msgid "" @@ -555,14 +789,18 @@ msgid "" "':keyword:`with`' statement, which can be helpful in learning how the " "statement works." msgstr "" +"PEP escrito por Guido van Rossum y Nick Coghlan; implementado por Mike " +"Bland, Guido van Rossum y Neal Norwitz. El PEP muestra el código generado " +"para una sentencia ':keyword:`with`', que puede ser útil para aprender cómo " +"la sentencia funciona." #: ../Doc/whatsnew/2.6.rst:494 msgid "The documentation for the :mod:`contextlib` module." -msgstr "" +msgstr "La documentación para el módulo :mod:`contextlib`." #: ../Doc/whatsnew/2.6.rst:501 msgid "PEP 366: Explicit Relative Imports From a Main Module" -msgstr "" +msgstr "PEP 366: Importaciones relativas explícitas desde un módulo principal" #: ../Doc/whatsnew/2.6.rst:503 msgid "" @@ -570,6 +808,9 @@ msgid "" "ran a module that was located inside a package, relative imports didn't work " "correctly." msgstr "" +"El modificador de Python :option:`-m` permite ejecutar un módulo como un " +"script. Cuando ejecutabas un módulo que estaba ubicado dentro de un paquete, " +"las importaciones relativas no funcionaban correctamente." #: ../Doc/whatsnew/2.6.rst:507 msgid "" @@ -577,6 +818,10 @@ msgid "" "When this attribute is present, relative imports will be relative to the " "value of this attribute instead of the :attr:`__name__` attribute." msgstr "" +"La corrección para Python 2.6 agrega un atributo :attr:`__package__` a los " +"módulos. Cuando este atributo está presente, las importaciones relativas " +"serán relativas al valor de este atributo en lugar del atributo :attr:" +"`__name__`." #: ../Doc/whatsnew/2.6.rst:512 msgid "" @@ -585,10 +830,15 @@ msgid "" "relative imports will now work correctly in scripts running from inside a " "package." msgstr "" +"Las importaciones de estilo PEP 302 pueden configurar :attr:`__package__` " +"según sea necesario. El módulo :mod:`runpy` que implementa el modificador :" +"option:`-m` ahora hace esto, por lo que las importaciones relativas ahora " +"funcionarán correctamente en los scripts que se ejecutan desde el interior " +"de un paquete." #: ../Doc/whatsnew/2.6.rst:522 msgid "PEP 370: Per-user ``site-packages`` Directory" -msgstr "" +msgstr "PEP 370: Directorio de ``site-packages`` por usuario" #: ../Doc/whatsnew/2.6.rst:524 msgid "" @@ -597,20 +847,27 @@ msgid "" "intended to hold locally-installed packages available to all users using a " "machine or a particular site installation." msgstr "" +"Cuando ejecutas Python, la ruta de búsqueda del módulo ``sys.path`` " +"generalmente incluye un directorio cuya ruta termina en ``\"site-packages" +"\"``. Este directorio está destinado a contener paquetes instalados " +"localmente disponibles para todos los usuarios que utilizan una máquina o un " +"sitio de instalación en particular." #: ../Doc/whatsnew/2.6.rst:529 msgid "" "Python 2.6 introduces a convention for user-specific site directories. The " "directory varies depending on the platform:" msgstr "" +"Python 2.6 introduce una convención para directorios de sitios específicos " +"del usuario. El directorio varía según la plataforma:" #: ../Doc/whatsnew/2.6.rst:532 msgid "Unix and Mac OS X: :file:`~/.local/`" -msgstr "" +msgstr "Unix y Mac OS X: :file:`~/.local/`" #: ../Doc/whatsnew/2.6.rst:533 msgid "Windows: :file:`%APPDATA%/Python`" -msgstr "" +msgstr "Windows: :file:`%APPDATA%/Python`" #: ../Doc/whatsnew/2.6.rst:535 msgid "" @@ -618,6 +875,9 @@ msgid "" "as :file:`lib/python2.6/site-packages` on Unix/Mac OS and :file:`Python26/" "site-packages` on Windows." msgstr "" +"Dentro de este directorio, habrá subdirectorios específicos de versión, " +"como :file:`lib/python2.6/site-packages` en Unix/Mac OS y :file:`Python26/" +"site-packages` en Windows." #: ../Doc/whatsnew/2.6.rst:539 msgid "" @@ -628,24 +888,33 @@ msgid "" "`APPDATA` environment variable. You can also modify the :file:`site.py` " "file for your Python installation." msgstr "" +"Si no le gusta el directorio predeterminado, puede sobrescribirlo mediante " +"una variable de entorno. :envvar:`PYTHONUSERBASE` establece el directorio " +"raíz utilizado para todas las versiones de Python que admiten esta función. " +"En Windows, el directorio de datos específicos de la aplicación se puede " +"cambiar configurando la variable de entorno :envvar:`APPDATA`. También puede " +"modificar el archivo :file:`site.py` para su instalación de Python." #: ../Doc/whatsnew/2.6.rst:546 msgid "" "The feature can be disabled entirely by running Python with the :option:`-s` " "option or setting the :envvar:`PYTHONNOUSERSITE` environment variable." msgstr "" +"La característica se puede desactivar por completo ejecutando Python con la " +"opción :option:`-s` o *seteando* la variable de entorno :envvar:" +"`PYTHONNOUSERSITE`." #: ../Doc/whatsnew/2.6.rst:552 msgid ":pep:`370` - Per-user ``site-packages`` Directory" -msgstr "" +msgstr "PEP 370: Directorio de ``site-packages`` por usuario" #: ../Doc/whatsnew/2.6.rst:553 msgid "PEP written and implemented by Christian Heimes." -msgstr "" +msgstr "PEP escrito e implementado por Christian Heimes." #: ../Doc/whatsnew/2.6.rst:561 msgid "PEP 371: The ``multiprocessing`` Package" -msgstr "" +msgstr "PEP 371: El paquete ``multiprocessing``" #: ../Doc/whatsnew/2.6.rst:563 msgid "" @@ -655,6 +924,11 @@ msgid "" "pipes, synchronize their operations using locks and semaphores, and can " "share simple arrays of data." msgstr "" +"El nuevo paquete :mod:`multiprocessing` permite a los programas de Python " +"crear nuevos procesos que realizarán un cálculo y retornaran un resultado al " +"padre. Los procesos padre e hijo pueden comunicarse mediante colas " +"(*queues*) y tuberías (*pipes*), sincronizar sus operaciones mediante " +"bloqueos y semáforos, y pueden compartir matrices simples de datos." #: ../Doc/whatsnew/2.6.rst:569 msgid "" @@ -667,6 +941,15 @@ msgid "" "can call the :meth:`is_alive` method to check whether the subprocess is " "still running and the :meth:`join` method to wait for the process to exit." msgstr "" +"El módulo :mod:`multiprocessing` comenzó como una emulación exacta del " +"módulo :mod:`threading` usando procesos en lugar de hilos. Ese objetivo se " +"descartó en el camino a Python 2.6, pero el enfoque general del módulo sigue " +"siendo similar. La clase fundamental es :class:`Process`, a la que se le " +"pasa un objeto invocable y una colección de argumentos. El método :meth:" +"`start` establece el invocable ejecutándose en un subproceso, después de lo " +"cual se puede llamar al método :meth:`is_alive` para verificar si el " +"subproceso aún se está ejecutando y al método :meth:`join` para esperar al " +"proceso para salir." #: ../Doc/whatsnew/2.6.rst:579 msgid "" @@ -674,6 +957,9 @@ msgid "" "The function doing the calculation is written strangely so that it takes " "significantly longer when the input argument is a multiple of 4." msgstr "" +"Aquí hay un ejemplo simple donde el subproceso calculará un factorial. La " +"función que realiza el cálculo está escrita de forma extraña, por lo que " +"lleva mucho más tiempo cuando el argumento de entrada es un múltiplo de 4." #: ../Doc/whatsnew/2.6.rst:616 msgid "" @@ -684,6 +970,12 @@ msgid "" "communicate. (If the parent were to change the value of the global " "variable, the child's value would be unaffected, and vice versa.)" msgstr "" +"Un :class:`~queue.Queue` se usa para comunicar el resultado del factorial. " +"El objeto :class:`~queue.Queue` se almacena en una variable global. El " +"proceso hijo usará el valor de la variable cuando se creó el hijo; porque es " +"una :class:`~ queue.Queue`, padre e hijo pueden usar el objeto para " +"comunicarse. (Si el padre cambiara el valor de la variable global, el valor " +"del hijo no se vería afectado y viceversa)." #: ../Doc/whatsnew/2.6.rst:624 msgid "" @@ -695,10 +987,17 @@ msgid "" "`Pool` to spread requests across 5 worker processes and retrieve a list of " "results::" msgstr "" +"Otras dos clases, :class:`Pool` y :class:`Manager`, proporcionan interfaces " +"de nivel superior. :class:`Pool` creará un número fijo de procesos de " +"trabajo, y las solicitudes se pueden distribuir a los trabajadores llamando " +"a :meth:`apply` o :meth:`apply_async` para agregar una sola solicitud, y :" +"meth:`map` o :meth:`map_async` para agregar una serie de solicitudes. El " +"siguiente código usa :class:`Pool` para distribuir las solicitudes en 5 " +"procesos de trabajo y recuperar una lista de resultados::" #: ../Doc/whatsnew/2.6.rst:642 msgid "This produces the following output::" -msgstr "" +msgstr "Esto produce la siguiente salida::" #: ../Doc/whatsnew/2.6.rst:651 msgid "" @@ -712,28 +1011,39 @@ msgid "" "methods also include :meth:`Lock`, :meth:`RLock`, and :meth:`Semaphore` to " "create shared locks.)" msgstr "" +"La otra interfaz de alto nivel, la clase :class:`Manager`, crea un proceso " +"de servidor separado que puede contener copias maestras de las estructuras " +"de datos de Python. Luego, otros procesos pueden acceder y modificar estas " +"estructuras de datos utilizando objetos proxy. El siguiente ejemplo crea un " +"diccionario compartido llamando al método :meth:`dict`; los procesos de " +"trabajo luego insertan valores en el diccionario. (El bloqueo no se realiza " +"automáticamente, lo cual no importa en este ejemplo. Los métodos de :class:" +"`Manager` también incluyen :meth:`Lock`, :meth:`RLock`, y :meth:`Semaphore` " +"para crear bloqueos compartidos.)" #: ../Doc/whatsnew/2.6.rst:695 msgid "This will produce the output::" -msgstr "" +msgstr "Esto producirá la salida::" #: ../Doc/whatsnew/2.6.rst:706 msgid "The documentation for the :mod:`multiprocessing` module." -msgstr "" +msgstr "La documentación del módulo :mod:`multiprocessing`." #: ../Doc/whatsnew/2.6.rst:709 msgid ":pep:`371` - Addition of the multiprocessing package" -msgstr "" +msgstr ":pep:`371` - Adición del paquete de multiprocesamiento" #: ../Doc/whatsnew/2.6.rst:709 msgid "" "PEP written by Jesse Noller and Richard Oudkerk; implemented by Richard " "Oudkerk and Jesse Noller." msgstr "" +"PEP escrito por Jesse Noller y Richard Oudkerk; implementado por Richard " +"Oudkerk y Jesse Noller." #: ../Doc/whatsnew/2.6.rst:718 msgid "PEP 3101: Advanced String Formatting" -msgstr "" +msgstr "PEP 3101: Formateo avanzado de cadena de caracteres" #: ../Doc/whatsnew/2.6.rst:720 msgid "" @@ -741,6 +1051,9 @@ msgid "" "formatting method, :meth:`format`. Support for the :meth:`str.format` " "method has been backported to Python 2.6." msgstr "" +"En Python 3.0, el operador `%` se complementa con un método de formato de " +"cadena de caracteres más potente, :meth:`format`. La compatibilidad con el " +"método :meth:`str.format` se ha actualizado a Python 2.6." #: ../Doc/whatsnew/2.6.rst:724 msgid "" @@ -748,10 +1061,14 @@ msgid "" "the string as a template and takes the arguments to be formatted. The " "formatting template uses curly brackets (`{`, `}`) as special characters::" msgstr "" +"En 2.6, las cadenas de caracteres de 8 bits y Unicode tienen un método `." +"format()` que trata la cadena como una plantilla y toma los argumentos a " +"formatear. La plantilla de formato utiliza llaves (`{`, `}`) como caracteres " +"especiales::" #: ../Doc/whatsnew/2.6.rst:737 msgid "Curly brackets can be escaped by doubling them::" -msgstr "" +msgstr "Las llaves se pueden escapar duplicándose::" #: ../Doc/whatsnew/2.6.rst:742 msgid "" @@ -759,6 +1076,10 @@ msgid "" "``, ``{1}``, etc. or names of keyword arguments. You can also supply " "compound field names that read attributes or access dictionary keys::" msgstr "" +"Los nombres de campo pueden ser números enteros que indican argumentos " +"posicionales, como ``{0}``, ``{1}``, etc. o nombres de argumentos de " +"palabras clave. También puede proporcionar nombres de campos compuestos que " +"lean atributos o accedan a claves de diccionario::" #: ../Doc/whatsnew/2.6.rst:756 msgid "" @@ -768,6 +1089,11 @@ msgid "" "converted to an integer. You can't write more complicated expressions " "inside a format string." msgstr "" +"Tenga en cuenta que cuando utilice una notación de estilo diccionario como " +"``[.mp4]``, no es necesario poner comillas alrededor de la cadena; se " +"buscará el valor usando ``.mp4`` como clave. Las cadenas de caracteres que " +"comienzan con un número se convertirán en entero. No puede escribir " +"expresiones más complicadas dentro de una cadena de formato." #: ../Doc/whatsnew/2.6.rst:762 msgid "" @@ -775,54 +1101,60 @@ msgid "" "resulting string. The precise formatting used is also controllable by " "adding a colon followed by a format specifier. For example::" msgstr "" +"Hasta ahora hemos mostrado cómo especificar qué campo sustituir en la cadena " +"resultante. El formato preciso utilizado también se puede controlar " +"agregando dos puntos seguidos de un especificador de formato. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:776 msgid "Format specifiers can reference other fields through nesting::" msgstr "" +"Los especificadores de formato pueden hacer referencia a otros campos a " +"través del anidamiento::" #: ../Doc/whatsnew/2.6.rst:786 msgid "The alignment of a field within the desired width can be specified:" msgstr "" +"Se puede especificar la alineación de un campo dentro del ancho deseado:" #: ../Doc/whatsnew/2.6.rst:789 msgid "Character" -msgstr "" +msgstr "Carácter" #: ../Doc/whatsnew/2.6.rst:789 msgid "Effect" -msgstr "" +msgstr "Efecto" #: ../Doc/whatsnew/2.6.rst:791 msgid "< (default)" -msgstr "" +msgstr "< (por defecto)" #: ../Doc/whatsnew/2.6.rst:791 msgid "Left-align" -msgstr "" +msgstr "Alinear a la izquierda" #: ../Doc/whatsnew/2.6.rst:792 msgid ">" -msgstr "" +msgstr ">" #: ../Doc/whatsnew/2.6.rst:792 msgid "Right-align" -msgstr "" +msgstr "Alinear a la derecha" #: ../Doc/whatsnew/2.6.rst:793 msgid "^" -msgstr "" +msgstr "^" #: ../Doc/whatsnew/2.6.rst:793 msgid "Center" -msgstr "" +msgstr "Centrado" #: ../Doc/whatsnew/2.6.rst:794 msgid "=" -msgstr "" +msgstr "=" #: ../Doc/whatsnew/2.6.rst:794 msgid "(For numeric types only) Pad after the sign." -msgstr "" +msgstr "(Solo para tipos numéricos) Relleno después del signo." #: ../Doc/whatsnew/2.6.rst:797 msgid "" @@ -830,188 +1162,259 @@ msgid "" "the value is formatted. For example, floating-point numbers can be " "formatted as a general number or in exponential notation::" msgstr "" +"Los especificadores de formato también pueden incluir un tipo de " +"presentación, que controla cómo se formatea el valor. Por ejemplo, los " +"números de punto flotante pueden formatearse como un número general o en " +"notación exponencial::" #: ../Doc/whatsnew/2.6.rst:806 msgid "" "A variety of presentation types are available. Consult the 2.6 " "documentation for a :ref:`complete list `; here's a sample:" msgstr "" +"Hay una variedad de tipos de presentación disponibles. Consulte la " +"documentación 2.6 para obtener una :ref:`lista completa `; " +"aquí hay un ejemplo:" #: ../Doc/whatsnew/2.6.rst:810 msgid "``b``" -msgstr "" +msgstr "``b``" #: ../Doc/whatsnew/2.6.rst:810 msgid "Binary. Outputs the number in base 2." -msgstr "" +msgstr "Binario. Emite el número en base 2." #: ../Doc/whatsnew/2.6.rst:811 msgid "``c``" -msgstr "" +msgstr "``c``" #: ../Doc/whatsnew/2.6.rst:811 +#, fuzzy msgid "" "Character. Converts the integer to the corresponding Unicode character " "before printing." msgstr "" +"Carácter. Convierte el número entero en el carácter Unicode correspondiente " +"antes de imprimirlo." #: ../Doc/whatsnew/2.6.rst:813 +#, fuzzy msgid "``d``" -msgstr "" +msgstr "``d``" #: ../Doc/whatsnew/2.6.rst:813 +#, fuzzy msgid "Decimal Integer. Outputs the number in base 10." -msgstr "" +msgstr "Entero Decimal. Muestra el número en base 10." #: ../Doc/whatsnew/2.6.rst:814 +#, fuzzy msgid "``o``" -msgstr "" +msgstr "``o``" #: ../Doc/whatsnew/2.6.rst:814 +#, fuzzy msgid "Octal format. Outputs the number in base 8." -msgstr "" +msgstr "Formato octal. Da salida al número en base 8." #: ../Doc/whatsnew/2.6.rst:815 +#, fuzzy msgid "``x``" -msgstr "" +msgstr "``x``" #: ../Doc/whatsnew/2.6.rst:815 +#, fuzzy msgid "" "Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." msgstr "" +"Formato hexadecimal. Muestra el número en base 16, utilizando letras " +"minúsculas para los dígitos superiores a 9." #: ../Doc/whatsnew/2.6.rst:817 +#, fuzzy msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/whatsnew/2.6.rst:817 +#, fuzzy msgid "" "Exponent notation. Prints the number in scientific notation using the letter " "'e' to indicate the exponent." msgstr "" +"Notación de exponente. Imprime el número en notación científica utilizando " +"la letra 'e' para indicar el exponente." #: ../Doc/whatsnew/2.6.rst:819 +#, fuzzy msgid "``g``" -msgstr "" +msgstr "``g``" #: ../Doc/whatsnew/2.6.rst:819 +#, fuzzy msgid "" "General format. This prints the number as a fixed-point number, unless the " "number is too large, in which case it switches to 'e' exponent notation." msgstr "" +"Formato general. Esto imprime el número como un número de punto fijo, a " +"menos que el número sea demasiado grande, en cuyo caso cambia a la notación " +"de exponente 'e'." #: ../Doc/whatsnew/2.6.rst:822 +#, fuzzy msgid "``n``" -msgstr "" +msgstr "``n``" #: ../Doc/whatsnew/2.6.rst:822 +#, fuzzy msgid "" "Number. This is the same as 'g' (for floats) or 'd' (for integers), except " "that it uses the current locale setting to insert the appropriate number " "separator characters." msgstr "" +"Número. Es lo mismo que 'g' (para flotantes) o 'd' (para enteros), salvo que " +"utiliza la configuración regional actual para insertar los caracteres " +"separadores de números adecuados." #: ../Doc/whatsnew/2.6.rst:825 +#, fuzzy msgid "``%``" -msgstr "" +msgstr "``%``" #: ../Doc/whatsnew/2.6.rst:825 +#, fuzzy msgid "" "Percentage. Multiplies the number by 100 and displays in fixed ('f') format, " "followed by a percent sign." msgstr "" +"Porcentaje. Multiplica el número por 100 y lo muestra en formato fijo ('f'), " +"seguido de un signo de porcentaje." #: ../Doc/whatsnew/2.6.rst:829 +#, fuzzy msgid "" "Classes and types can define a :meth:`__format__` method to control how " "they're formatted. It receives a single argument, the format specifier::" msgstr "" +"Las clases y los tipos pueden definir un método :meth:`__format__` para " +"controlar cómo se formatean. Recibe un único argumento, el especificador de " +"formato::" #: ../Doc/whatsnew/2.6.rst:838 +#, fuzzy msgid "" "There's also a :func:`format` builtin that will format a single value. It " "calls the type's :meth:`__format__` method with the provided specifier::" msgstr "" +"También hay un builtin :func:`format` que formateará un solo valor. Llama " +"al método :meth:`__format__` del tipo con el especificador proporcionado::" #: ../Doc/whatsnew/2.6.rst:849 +#, fuzzy msgid ":ref:`formatstrings`" -msgstr "" +msgstr ":ref:`formatos`" #: ../Doc/whatsnew/2.6.rst:849 +#, fuzzy msgid "The reference documentation for format fields." -msgstr "" +msgstr "La documentación de referencia para los campos de formato." #: ../Doc/whatsnew/2.6.rst:851 +#, fuzzy msgid ":pep:`3101` - Advanced String Formatting" -msgstr "" +msgstr ":pep:`3101` - Formato avanzado de cadenas" #: ../Doc/whatsnew/2.6.rst:852 +#, fuzzy msgid "PEP written by Talin. Implemented by Eric Smith." -msgstr "" +msgstr "PEP escrito por Talin. Implementado por Eric Smith." #: ../Doc/whatsnew/2.6.rst:859 +#, fuzzy msgid "PEP 3105: ``print`` As a Function" -msgstr "" +msgstr "PEP 3105: ``print`` como función" #: ../Doc/whatsnew/2.6.rst:861 +#, fuzzy msgid "" "The ``print`` statement becomes the :func:`print` function in Python 3.0. " "Making :func:`print` a function makes it possible to replace the function by " "doing ``def print(...)`` or importing a new function from somewhere else." msgstr "" +"La sentencia ``print`` se convierte en la función :func:`print` en Python " +"3.0. Hacer de :func:`print` una función hace posible reemplazar la función " +"haciendo ``def print(...)`` o importando una nueva función desde otro lugar." #: ../Doc/whatsnew/2.6.rst:865 +#, fuzzy msgid "" "Python 2.6 has a ``__future__`` import that removes ``print`` as language " "syntax, letting you use the functional form instead. For example::" msgstr "" +"Python 2.6 tiene una importación ``__future__`` que elimina ``print`` como " +"sintaxis del lenguaje, permitiéndote usar la forma funcional en su lugar. " +"Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:871 +#, fuzzy msgid "The signature of the new function is::" -msgstr "" +msgstr "La firma de la nueva función es::" #: ../Doc/whatsnew/2.6.rst:876 +#, fuzzy msgid "The parameters are:" -msgstr "" +msgstr "Los parámetros son:" #: ../Doc/whatsnew/2.6.rst:878 +#, fuzzy msgid "*args*: positional arguments whose values will be printed out." -msgstr "" +msgstr "*args*: argumentos posicionales cuyos valores se imprimirán." #: ../Doc/whatsnew/2.6.rst:879 +#, fuzzy msgid "*sep*: the separator, which will be printed between arguments." -msgstr "" +msgstr "*sep*: el separador que se imprimirá entre los argumentos." #: ../Doc/whatsnew/2.6.rst:880 +#, fuzzy msgid "" "*end*: the ending text, which will be printed after all of the arguments " "have been output." msgstr "" +"*end*: el texto final, que se imprimirá después de que se hayan emitido " +"todos los argumentos." #: ../Doc/whatsnew/2.6.rst:882 +#, fuzzy msgid "*file*: the file object to which the output will be sent." -msgstr "" +msgstr "*archivo*: el objeto archivo al que se enviará la salida." #: ../Doc/whatsnew/2.6.rst:886 +#, fuzzy msgid ":pep:`3105` - Make print a function" -msgstr "" +msgstr ":pep:`3105` - Hacer de la impresión una función" #: ../Doc/whatsnew/2.6.rst:887 +#, fuzzy msgid "PEP written by Georg Brandl." -msgstr "" +msgstr "PEP escrito por Georg Brandl." #: ../Doc/whatsnew/2.6.rst:894 +#, fuzzy msgid "PEP 3110: Exception-Handling Changes" -msgstr "" +msgstr "PEP 3110: Cambios en el manejo de excepciones" #: ../Doc/whatsnew/2.6.rst:896 +#, fuzzy msgid "" "One error that Python programmers occasionally make is writing the following " "code::" msgstr "" +"Un error que ocasionalmente cometen los programadores de Python es escribir " +"el siguiente código::" #: ../Doc/whatsnew/2.6.rst:904 +#, fuzzy msgid "" "The author is probably trying to catch both :exc:`TypeError` and :exc:" "`ValueError` exceptions, but this code actually does something different: it " @@ -1019,22 +1422,37 @@ msgid "" "local name ``\"ValueError\"``. The :exc:`ValueError` exception will not be " "caught at all. The correct code specifies a tuple of exceptions::" msgstr "" +"El autor probablemente está tratando de atrapar ambas excepciones :exc:" +"`TypeError` y :exc:`ValueError`, pero este código en realidad hace algo " +"diferente: atrapará :exc:`TypeError` y vinculará el objeto de excepción " +"resultante al nombre local ``\"ValueError\"``. La excepción :exc:" +"`ValueError` no será capturada en absoluto. El código correcto especifica " +"una tupla de excepciones::" #: ../Doc/whatsnew/2.6.rst:916 +#, fuzzy msgid "" "This error happens because the use of the comma here is ambiguous: does it " "indicate two different nodes in the parse tree, or a single node that's a " "tuple?" msgstr "" +"Este error se produce porque el uso de la coma aquí es ambiguo: ¿indica dos " +"nodos diferentes en el árbol de análisis sintáctico, o un único nodo que es " +"una tupla?" #: ../Doc/whatsnew/2.6.rst:920 +#, fuzzy msgid "" "Python 3.0 makes this unambiguous by replacing the comma with the word \"as" "\". To catch an exception and store the exception object in the variable " "``exc``, you must write::" msgstr "" +"Python 3.0 hace que esto sea inequívoco al sustituir la coma por la palabra " +"\"as\". Para atrapar una excepción y almacenar el objeto de excepción en la " +"variable ``exc``, debes escribir::" #: ../Doc/whatsnew/2.6.rst:929 +#, fuzzy msgid "" "Python 3.0 will only support the use of \"as\", and therefore interprets the " "first example as catching two different exceptions. Python 2.6 supports " @@ -1042,20 +1460,29 @@ msgid "" "therefore suggest using \"as\" when writing new Python code that will only " "be executed with 2.6." msgstr "" +"Python 3.0 sólo soporta el uso de \"as\", y por lo tanto interpreta el " +"primer ejemplo como la captura de dos excepciones diferentes. Python 2.6 " +"soporta tanto la coma como \"as\", por lo que el código existente seguirá " +"funcionando. Por lo tanto, sugerimos utilizar \"as\" cuando se escriba " +"nuevo código Python que sólo se ejecutará con la versión 2.6." #: ../Doc/whatsnew/2.6.rst:937 +#, fuzzy msgid ":pep:`3110` - Catching Exceptions in Python 3000" -msgstr "" +msgstr ":pep:`3110` - Captura de excepciones en Python 3000" #: ../Doc/whatsnew/2.6.rst:938 +#, fuzzy msgid "PEP written and implemented by Collin Winter." -msgstr "" +msgstr "PEP escrito y ejecutado por Collin Winter." #: ../Doc/whatsnew/2.6.rst:945 +#, fuzzy msgid "PEP 3112: Byte Literals" -msgstr "" +msgstr "PEP 3112: Literales de bytes" #: ../Doc/whatsnew/2.6.rst:947 +#, fuzzy msgid "" "Python 3.0 adopts Unicode as the language's fundamental string type and " "denotes 8-bit literals differently, either as ``b'string'`` or using a :" @@ -1063,8 +1490,14 @@ msgid "" "`bytes` as a synonym for the :class:`str` type, and it also supports the " "``b''`` notation." msgstr "" +"Python 3.0 adopta Unicode como el tipo de cadena fundamental del lenguaje y " +"denota los literales de 8 bits de forma diferente, ya sea como ``b'string`` " +"o utilizando un constructor :class:`bytes`. Por compatibilidad futura, " +"Python 2.6 añade :class:`bytes` como sinónimo del tipo :class:`str`, y " +"también soporta la notación ``b''``." #: ../Doc/whatsnew/2.6.rst:954 +#, fuzzy msgid "" "The 2.6 :class:`str` differs from 3.0's :class:`bytes` type in various ways; " "most notably, the constructor is completely different. In 3.0, ``bytes([65, " @@ -1072,8 +1505,15 @@ msgid "" "2.6, ``bytes([65, 66, 67])`` returns the 12-byte string representing the :" "func:`str` of the list." msgstr "" +"El tipo :class:`str` de la versión 2.6 difiere del tipo :class:`bytes` de la " +"versión 3.0 en varios aspectos; el más notable es que el constructor es " +"completamente diferente. En la 3.0, ``bytes([65, 66, 67])`` tiene 3 " +"elementos, que contienen los bytes que representan ``ABC``; en la 2.6, " +"``bytes([65, 66, 67])`` devuelve la cadena de 12 bytes que representa el :" +"func:`str` de la lista." #: ../Doc/whatsnew/2.6.rst:960 +#, fuzzy msgid "" "The primary use of :class:`bytes` in 2.6 will be to write tests of object " "type such as ``isinstance(x, bytes)``. This will help the 2to3 converter, " @@ -1082,15 +1522,27 @@ msgid "" "`str` to represent your intention exactly, and the resulting code will also " "be correct in Python 3.0." msgstr "" +"El uso principal de :class:`bytes` en 2.6 será escribir pruebas de tipo de " +"objeto como ``isinstance(x, bytes)``. Esto ayudará al convertidor de 2 a 3, " +"que no puede decir si el código de 2.x pretende que las cadenas contengan " +"caracteres o bytes de 8 bits; ahora puede utilizar :class:`bytes` o :class:" +"`str` para representar su intención exactamente, y el código resultante " +"también será correcto en Python 3.0." #: ../Doc/whatsnew/2.6.rst:967 +#, fuzzy msgid "" "There's also a ``__future__`` import that causes all string literals to " "become Unicode strings. This means that ``\\u`` escape sequences can be " "used to include Unicode characters::" msgstr "" +"También hay una importación ``__future__`` que hace que todos los literales " +"de cadena se conviertan en cadenas Unicode. Esto significa que las " +"secuencias de escape ``u`` pueden ser utilizadas para incluir caracteres " +"Unicode::" #: ../Doc/whatsnew/2.6.rst:979 +#, fuzzy msgid "" "At the C level, Python 3.0 will rename the existing 8-bit string type, " "called :c:type:`PyStringObject` in Python 2.x, to :c:type:`PyBytesObject`. " @@ -1099,39 +1551,63 @@ msgid "" "`PyBytes_FromStringAndSize`, and all the other functions and macros used " "with strings." msgstr "" +"A nivel de C, Python 3.0 renombrará el tipo de cadena de 8 bits existente, " +"llamado :c:type:`PyStringObject` en Python 2.x, a :c:type:`PyBytesObject`. " +"Python 2.6 utiliza ``#define`` para soportar el uso de los nombres :c:func:" +"`PyBytesObject`, :c:func:`PyBytes_Check`, :c:func:" +"`PyBytes_FromStringAndSize`, y todas las demás funciones y macros utilizadas " +"con cadenas." #: ../Doc/whatsnew/2.6.rst:986 +#, fuzzy msgid "" "Instances of the :class:`bytes` type are immutable just as strings are. A " "new :class:`bytearray` type stores a mutable sequence of bytes::" msgstr "" +"Las instancias del tipo :class:`bytes` son inmutables al igual que las " +"cadenas. Un nuevo tipo :class:`bytearray` almacena una secuencia mutable de " +"bytes::" #: ../Doc/whatsnew/2.6.rst:1001 +#, fuzzy msgid "" "Byte arrays support most of the methods of string types, such as :meth:" "`startswith`/:meth:`endswith`, :meth:`find`/:meth:`rfind`, and some of the " "methods of lists, such as :meth:`append`, :meth:`pop`, and :meth:`reverse`." msgstr "" +"Las matrices de bytes admiten la mayoría de los métodos de los tipos de " +"cadena, como :meth:`startswith`/:meth:`endswith`, :meth:`find`/:meth:" +"`rfind`, y algunos de los métodos de las listas, como :meth:`append`, :meth:" +"`pop` y :meth:`reverse`." #: ../Doc/whatsnew/2.6.rst:1014 +#, fuzzy msgid "" "There's also a corresponding C API, with :c:func:`PyByteArray_FromObject`, :" "c:func:`PyByteArray_FromStringAndSize`, and various other functions." msgstr "" +"También existe la correspondiente API en C, con :c:func:" +"`PyByteArray_FromObject`, :c:func:`PyByteArray_FromStringAndSize`, y varias " +"otras funciones." #: ../Doc/whatsnew/2.6.rst:1021 +#, fuzzy msgid ":pep:`3112` - Bytes literals in Python 3000" -msgstr "" +msgstr ":pep:`3112` - Literales de bytes en Python 3000" #: ../Doc/whatsnew/2.6.rst:1022 +#, fuzzy msgid "PEP written by Jason Orendorff; backported to 2.6 by Christian Heimes." msgstr "" +"PEP escrito por Jason Orendorff; retroalimentado a 2.6 por Christian Heimes." #: ../Doc/whatsnew/2.6.rst:1029 +#, fuzzy msgid "PEP 3116: New I/O Library" -msgstr "" +msgstr "PEP 3116: Nueva biblioteca de E/S" #: ../Doc/whatsnew/2.6.rst:1031 +#, fuzzy msgid "" "Python's built-in file objects support a number of methods, but file-like " "objects don't necessarily support all of them. Objects that imitate files " @@ -1140,14 +1616,25 @@ msgid "" "in the :mod:`io` module that separates buffering and text-handling features " "from the fundamental read and write operations." msgstr "" +"Los objetos de archivo incorporados en Python soportan una serie de métodos, " +"pero los objetos que imitan a los archivos no necesariamente los soportan " +"todos. Los objetos que imitan a los archivos normalmente soportan :meth:" +"`read` y :meth:`write`, pero pueden no soportar :meth:`readline`, por " +"ejemplo. Python 3.0 introduce una biblioteca de E/S por capas en el módulo :" +"mod:`io` que separa las funciones de almacenamiento en búfer y manejo de " +"texto de las operaciones fundamentales de lectura y escritura." #: ../Doc/whatsnew/2.6.rst:1039 +#, fuzzy msgid "" "There are three levels of abstract base classes provided by the :mod:`io` " "module:" msgstr "" +"Existen tres niveles de clases base abstractas proporcionadas por el módulo :" +"mod:`io`:" #: ../Doc/whatsnew/2.6.rst:1042 +#, fuzzy msgid "" ":class:`RawIOBase` defines raw I/O operations: :meth:`read`, :meth:" "`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:`truncate`, " @@ -1156,22 +1643,39 @@ msgid "" "meth:`seekable` methods for determining what operations a given object will " "allow." msgstr "" +":class:`RawIOBase` define las operaciones de E/S en bruto: :meth:`read`, :" +"meth:`readinto`, :meth:`write`, :meth:`seek`, :meth:`tell`, :meth:" +"`truncate`, y :meth:`close`. La mayoría de los métodos de esta clase suelen " +"corresponder a una única llamada al sistema. También hay métodos :meth:" +"`readable`, :meth:`writable` y :meth:`seekable` para determinar qué " +"operaciones permite un objeto dado." #: ../Doc/whatsnew/2.6.rst:1050 +#, fuzzy msgid "" "Python 3.0 has concrete implementations of this class for files and sockets, " "but Python 2.6 hasn't restructured its file and socket objects in this way." msgstr "" +"Python 3.0 tiene implementaciones concretas de esta clase para archivos y " +"sockets, pero Python 2.6 no ha reestructurado sus objetos archivo y socket " +"de esta manera." #: ../Doc/whatsnew/2.6.rst:1056 +#, fuzzy msgid "" ":class:`BufferedIOBase` is an abstract base class that buffers data in " "memory to reduce the number of system calls used, making I/O processing more " "efficient. It supports all of the methods of :class:`RawIOBase`, and adds a :" "attr:`raw` attribute holding the underlying raw object." msgstr "" +":class:`BufferedIOBase` es una clase base abstracta que almacena los datos " +"en la memoria para reducir el número de llamadas al sistema, haciendo más " +"eficiente el procesamiento de E/S. Soporta todos los métodos de :class:" +"`RawIOBase`, y añade un atributo :attr:`raw` que contiene el objeto crudo " +"subyacente." #: ../Doc/whatsnew/2.6.rst:1062 +#, fuzzy msgid "" "There are five concrete classes implementing this ABC. :class:" "`BufferedWriter` and :class:`BufferedReader` are for objects that support " @@ -1182,16 +1686,30 @@ msgid "" "streams of data. The :class:`BytesIO` class supports reading, writing, and " "seeking over an in-memory buffer." msgstr "" +"Hay cinco clases concretas que implementan este ABC. :class:`BufferedWriter` " +"y :class:`BufferedReader` son para objetos que soportan el uso de sólo " +"escritura o de sólo lectura que tienen un método :meth:`seek` para el acceso " +"aleatorio. Los objetos :class:`BufferedRandom` soportan el acceso de lectura " +"y escritura sobre el mismo flujo subyacente, y :class:`BufferedRWPair` es " +"para objetos como los TTYs que tienen operaciones de lectura y escritura " +"actuando sobre flujos de datos desconectados. La clase :class:`BytesIO` " +"permite leer, escribir y buscar sobre un buffer en memoria." #: ../Doc/whatsnew/2.6.rst:1075 +#, fuzzy msgid "" ":class:`TextIOBase`: Provides functions for reading and writing strings " "(remember, strings will be Unicode in Python 3.0), and supporting :term:" "`universal newlines`. :class:`TextIOBase` defines the :meth:`readline` " "method and supports iteration upon objects." msgstr "" +":class:`TextIOBase`: Proporciona funciones para leer y escribir cadenas " +"(recuerde que las cadenas serán Unicode en Python 3.0), y soporta :term:" +"`universal newlines`. :class:`TextIOBase` define el método :meth:`readline` " +"y soporta la iteración sobre objetos." #: ../Doc/whatsnew/2.6.rst:1081 +#, fuzzy msgid "" "There are two concrete implementations. :class:`TextIOWrapper` wraps a " "buffered I/O object, supporting all of the methods for text I/O and adding " @@ -1199,8 +1717,14 @@ msgid "" "`StringIO` simply buffers everything in memory without ever writing anything " "to disk." msgstr "" +"Hay dos implementaciones concretas. :class:`TextIOWrapper` envuelve un " +"objeto de E/S con buffer, soportando todos los métodos de E/S de texto y " +"añadiendo un atributo :attr:`buffer` para acceder al objeto subyacente. :" +"class:`StringIO` simplemente almacena todo en memoria sin escribir nunca " +"nada en el disco." #: ../Doc/whatsnew/2.6.rst:1087 +#, fuzzy msgid "" "(In Python 2.6, :class:`io.StringIO` is implemented in pure Python, so it's " "pretty slow. You should therefore stick with the existing :mod:`StringIO` " @@ -1208,8 +1732,15 @@ msgid "" "module will be rewritten into C for speed, and perhaps the C implementation " "will be backported to the 2.x releases.)" msgstr "" +"(En Python 2.6, :class:`io.StringIO` está implementado en Python puro, por " +"lo que es bastante lento. Por lo tanto, deberías seguir con el módulo :mod:" +"`StringIO` existente o con :mod:`cStringIO` por ahora. En algún momento el " +"módulo :mod:`io` de Python 3.0 será reescrito en C para aumentar la " +"velocidad, y quizás la implementación en C será retroalimentada a las " +"versiones 2.x)" #: ../Doc/whatsnew/2.6.rst:1093 +#, fuzzy msgid "" "In Python 2.6, the underlying implementations haven't been restructured to " "build on top of the :mod:`io` module's classes. The module is being " @@ -1217,23 +1748,35 @@ msgid "" "and to save developers the effort of writing their own implementations of " "buffering and text I/O." msgstr "" +"En Python 2.6, las implementaciones subyacentes no han sido reestructuradas " +"para construir sobre las clases del módulo :mod:`io`. El módulo se " +"proporciona para facilitar la escritura de código compatible con la versión " +"3.0, y para ahorrar a los desarrolladores el esfuerzo de escribir sus " +"propias implementaciones de búfer y E/S de texto." #: ../Doc/whatsnew/2.6.rst:1103 +#, fuzzy msgid ":pep:`3116` - New I/O" -msgstr "" +msgstr ":pep:`3116` - Nueva E/S" #: ../Doc/whatsnew/2.6.rst:1102 +#, fuzzy msgid "" "PEP written by Daniel Stutzbach, Mike Verdone, and Guido van Rossum. Code by " "Guido van Rossum, Georg Brandl, Walter Doerwald, Jeremy Hylton, Martin von " "Löwis, Tony Lownds, and others." msgstr "" +"PEP escrito por Daniel Stutzbach, Mike Verdone y Guido van Rossum. Código de " +"Guido van Rossum, Georg Brandl, Walter Doerwald, Jeremy Hylton, Martin von " +"Löwis, Tony Lownds y otros." #: ../Doc/whatsnew/2.6.rst:1111 +#, fuzzy msgid "PEP 3118: Revised Buffer Protocol" -msgstr "" +msgstr "PEP 3118: Protocolo revisado de la memoria intermedia" #: ../Doc/whatsnew/2.6.rst:1113 +#, fuzzy msgid "" "The buffer protocol is a C-level API that lets Python types exchange " "pointers into their internal representations. A memory-mapped file can be " @@ -1241,8 +1784,14 @@ msgid "" "such as :mod:`re` treat memory-mapped files as a string of characters to be " "searched." msgstr "" +"El protocolo de búferes es una API de nivel C que permite a los tipos de " +"Python intercambiar punteros a sus representaciones internas. Un archivo " +"mapeado en memoria puede ser visto como un buffer de caracteres, por " +"ejemplo, y esto permite que otro módulo como :mod:`re` trate los archivos " +"mapeados en memoria como una cadena de caracteres a buscar." #: ../Doc/whatsnew/2.6.rst:1119 +#, fuzzy msgid "" "The primary users of the buffer protocol are numeric-processing packages " "such as NumPy, which expose the internal representation of arrays so that " @@ -1251,8 +1800,16 @@ msgid "" "from NumPy development, adding a number of new features such as indicating " "the shape of an array or locking a memory region." msgstr "" +"Los principales usuarios del protocolo de búferes son los paquetes de " +"procesamiento numérico como NumPy, que exponen la representación interna de " +"los arrays para que los invocadores puedan escribir datos directamente en un " +"array en lugar de pasar por una API más lenta. Este PEP actualiza el " +"protocolo de búfer a la luz de la experiencia del desarrollo de NumPy, " +"añadiendo una serie de nuevas características como la indicación de la forma " +"de un array o el bloqueo de una región de memoria." #: ../Doc/whatsnew/2.6.rst:1126 +#, fuzzy msgid "" "The most important new C API function is ``PyObject_GetBuffer(PyObject *obj, " "Py_buffer *view, int flags)``, which takes an object and a set of flags, and " @@ -1262,50 +1819,79 @@ msgid "" "corresponding ``PyBuffer_Release(Py_buffer *view)`` to indicate that the " "external caller is done." msgstr "" +"La nueva función más importante de la API en C es " +"``PyObject_GetBuffer(PyObject *obj, Py_buffer *view, int flags)``, que toma " +"un objeto y un conjunto de flags, y rellena la estructura ``Py_buffer`` con " +"información sobre la representación en memoria del objeto. Los objetos " +"pueden utilizar esta operación para bloquear la memoria en su lugar mientras " +"un llamador externo podría estar modificando el contenido, por lo que hay un " +"correspondiente ``PyBuffer_Release(Py_buffer *view)`` para indicar que el " +"llamador externo ha terminado." #: ../Doc/whatsnew/2.6.rst:1138 +#, fuzzy msgid "" "The *flags* argument to :c:func:`PyObject_GetBuffer` specifies constraints " "upon the memory returned. Some examples are:" msgstr "" +"El argumento *flags* de :c:func:`PyObject_GetBuffer` especifica las " +"restricciones de la memoria devuelta. Algunos ejemplos son:" #: ../Doc/whatsnew/2.6.rst:1141 +#, fuzzy msgid ":const:`PyBUF_WRITABLE` indicates that the memory must be writable." -msgstr "" +msgstr ":const:`PyBUF_WRITABLE` indica que la memoria debe ser escribible." #: ../Doc/whatsnew/2.6.rst:1143 +#, fuzzy msgid "" ":const:`PyBUF_LOCK` requests a read-only or exclusive lock on the memory." msgstr "" +":const:`PyBUF_LOCK` solicita un bloqueo de sólo lectura o exclusivo en la " +"memoria." #: ../Doc/whatsnew/2.6.rst:1145 +#, fuzzy msgid "" ":const:`PyBUF_C_CONTIGUOUS` and :const:`PyBUF_F_CONTIGUOUS` requests a C-" "contiguous (last dimension varies the fastest) or Fortran-contiguous (first " "dimension varies the fastest) array layout." msgstr "" +":const:`PyBUF_C_CONTIGUOUS` y :const:`PyBUF_F_CONTIGUOUS` solicitan una " +"disposición de matriz contigua en C (la última dimensión varía más " +"rápidamente) o contigua en Fortran (la primera dimensión varía más " +"rápidamente)." #: ../Doc/whatsnew/2.6.rst:1149 +#, fuzzy msgid "" "Two new argument codes for :c:func:`PyArg_ParseTuple`, ``s*`` and ``z*``, " "return locked buffer objects for a parameter." msgstr "" +"Dos nuevos códigos de argumento para :c:func:`PyArg_ParseTuple`, ``s*`` y " +"``z*``, devuelven objetos buffer bloqueados para un parámetro." #: ../Doc/whatsnew/2.6.rst:1155 +#, fuzzy msgid ":pep:`3118` - Revising the buffer protocol" -msgstr "" +msgstr ":pep:`3118` - Revisión del protocolo del buffer" #: ../Doc/whatsnew/2.6.rst:1155 +#, fuzzy msgid "" "PEP written by Travis Oliphant and Carl Banks; implemented by Travis " "Oliphant." msgstr "" +"PEP escrito por Travis Oliphant y Carl Banks; implementado por Travis " +"Oliphant." #: ../Doc/whatsnew/2.6.rst:1164 +#, fuzzy msgid "PEP 3119: Abstract Base Classes" -msgstr "" +msgstr "PEP 3119: Clases base abstractas" #: ../Doc/whatsnew/2.6.rst:1166 +#, fuzzy msgid "" "Some object-oriented languages such as Java support interfaces, declaring " "that a class has a given set of methods or supports a given access " @@ -1316,8 +1902,18 @@ msgid "" "basic ABCs that the Python developers think will be widely useful. Future " "versions of Python will probably add more ABCs." msgstr "" +"Algunos lenguajes orientados a objetos, como Java, admiten interfaces, que " +"declaran que una clase tiene un determinado conjunto de métodos o admite un " +"determinado protocolo de acceso. Las clases base abstractas (o ABC) son una " +"característica equivalente para Python. El soporte de ABC consiste en un " +"módulo :mod:`abc` que contiene una metaclase llamada :class:`ABCMeta`, un " +"manejo especial de esta metaclase por parte de los builtins :func:" +"`isinstance` y :func:`issubclass`, y una colección de ABCs básicas que los " +"desarrolladores de Python creen que serán ampliamente útiles. Las futuras " +"versiones de Python probablemente añadirán más ABCs." #: ../Doc/whatsnew/2.6.rst:1176 +#, fuzzy msgid "" "Let's say you have a particular class and wish to know whether it supports " "dictionary-style access. The phrase \"dictionary-style\" is vague, however. " @@ -1327,8 +1923,17 @@ msgid "" "the iterative variants such as :meth:`iterkeys`? :meth:`copy` and :meth:" "`update`? Iterating over the object with :func:`iter`?" msgstr "" +"Supongamos que tiene una clase concreta y desea saber si admite el acceso " +"tipo diccionario. Sin embargo, la frase \"estilo diccionario\" es vaga. " +"Probablemente significa que el acceso a los elementos con ``obj[1]`` " +"funciona. ¿Implica que el establecimiento de elementos con ``obj[2] = " +"valor`` funciona? ¿O que el objeto tendrá métodos :meth:`keys`, :meth:" +"`values` y :meth:`items`? ¿Qué pasa con las variantes iterativas como :meth:" +"`iterkeys`? :meth:`copy` y :meth:`update`? ¿Iterar sobre el objeto con :" +"func:`iter`?" #: ../Doc/whatsnew/2.6.rst:1184 +#, fuzzy msgid "" "The Python 2.6 :mod:`collections` module includes a number of different ABCs " "that represent these distinctions. :class:`Iterable` indicates that a class " @@ -1338,21 +1943,35 @@ msgid "" "`keys`, :meth:`values`, and :meth:`items`, is defined by the :class:" "`MutableMapping` ABC." msgstr "" +"El módulo :mod:`collections` de Python 2.6 incluye un número de ABCs " +"diferentes que representan estas distinciones. :class:`Iterable` indica que " +"una clase define :meth:`__iter__`, y :class:`Container` significa que la " +"clase define un método :meth:`__contains__` y por lo tanto soporta " +"expresiones ``x in y``. La interfaz básica del diccionario para obtener " +"elementos, establecer elementos, y :meth:`llaves`, :meth:`valores`, y :meth:" +"`elementos`, está definida por el :class:`MutableMapping` ABC." #: ../Doc/whatsnew/2.6.rst:1193 +#, fuzzy msgid "" "You can derive your own classes from a particular ABC to indicate they " "support that ABC's interface::" msgstr "" +"Puedes derivar tus propias clases de un ABC particular para indicar que " +"soportan la interfaz de ese ABC::" #: ../Doc/whatsnew/2.6.rst:1202 +#, fuzzy msgid "" "Alternatively, you could write the class without deriving from the desired " "ABC and instead register the class by calling the ABC's :meth:`register` " "method::" msgstr "" +"Alternativamente, puede escribir la clase sin derivar del ABC deseado y en " +"su lugar registrar la clase llamando al método :meth:`register` del ABC::" #: ../Doc/whatsnew/2.6.rst:1213 +#, fuzzy msgid "" "For classes that you write, deriving from the ABC is probably clearer. The :" "meth:`register` method is useful when you've written a new ABC that can " @@ -1360,21 +1979,34 @@ msgid "" "third-party class implements an ABC. For example, if you defined a :class:" "`PrintableType` ABC, it's legal to do::" msgstr "" +"Para las clases que usted escribe, derivar del ABC es probablemente más " +"claro. El método :meth:`register` es útil cuando has escrito un nuevo ABC " +"que puede describir un tipo o clase existente, o si quieres declarar que " +"alguna clase de terceros implementa un ABC. Por ejemplo, si has definido un :" +"class:`PrintableType` ABC, es legal hacer::" #: ../Doc/whatsnew/2.6.rst:1225 +#, fuzzy msgid "" "Classes should obey the semantics specified by an ABC, but Python can't " "check this; it's up to the class author to understand the ABC's requirements " "and to implement the code accordingly." msgstr "" +"Las clases deben obedecer la semántica especificada por un ABC, pero Python " +"no puede comprobarlo; depende del autor de la clase entender los requisitos " +"del ABC e implementar el código en consecuencia." #: ../Doc/whatsnew/2.6.rst:1229 +#, fuzzy msgid "" "To check whether an object supports a particular interface, you can now " "write::" msgstr "" +"Para comprobar si un objeto es compatible con una determinada interfaz, " +"ahora se puede escribir::" #: ../Doc/whatsnew/2.6.rst:1236 +#, fuzzy msgid "" "Don't feel that you must now begin writing lots of checks as in the above " "example. Python has a strong tradition of duck-typing, where explicit type-" @@ -1383,14 +2015,24 @@ msgid "" "Be judicious in checking for ABCs and only do it where it's absolutely " "necessary." msgstr "" +"No sientas que ahora debes empezar a escribir muchas comprobaciones como en " +"el ejemplo anterior. Python tiene una fuerte tradición de \"duck-typing\", " +"donde la comprobación explícita de tipos nunca se hace y el código " +"simplemente llama a los métodos de un objeto, confiando en que esos métodos " +"estarán ahí y lanzando una excepción si no lo están. Sea juicioso al " +"comprobar el ABC y hágalo sólo cuando sea absolutamente necesario." #: ../Doc/whatsnew/2.6.rst:1243 +#, fuzzy msgid "" "You can write your own ABCs by using ``abc.ABCMeta`` as the metaclass in a " "class definition::" msgstr "" +"Puedes escribir tu propio ABC utilizando ``abc.ABCMeta`` como metaclase en " +"una definición de clase::" #: ../Doc/whatsnew/2.6.rst:1264 +#, fuzzy msgid "" "In the :class:`Drawable` ABC above, the :meth:`draw_doubled` method renders " "the object at twice its size and can be implemented in terms of other " @@ -1399,8 +2041,16 @@ msgid "" "`draw_doubled`, though they can do so. An implementation of :meth:`draw` is " "necessary, though; the ABC can't provide a useful generic implementation." msgstr "" +"En el ABC de :class:`Drawable` anterior, el método :meth:`draw_doubled` " +"renderiza el objeto al doble de su tamaño y puede ser implementado en " +"términos de otros métodos descritos en :class:`Drawable`. Las clases que " +"implementan este ABC no necesitan proporcionar su propia implementación de :" +"meth:`draw_doubled`, aunque pueden hacerlo. Sin embargo, es necesaria una " +"implementación de :meth:`draw`; el ABC no puede proporcionar una " +"implementación genérica útil." #: ../Doc/whatsnew/2.6.rst:1272 +#, fuzzy msgid "" "You can apply the ``@abstractmethod`` decorator to methods such as :meth:" "`draw` that must be implemented; Python will then raise an exception for " @@ -1408,108 +2058,157 @@ msgid "" "when you actually try to create an instance of a subclass lacking the " "method::" msgstr "" +"Puedes aplicar el decorador ``@abstractmethod`` a métodos como :meth:`draw` " +"que deben ser implementados; Python lanzará una excepción para las clases " +"que no definan el método. Ten en cuenta que la excepción sólo se produce " +"cuando intentas crear una instancia de una subclase que carece del método::" #: ../Doc/whatsnew/2.6.rst:1287 +#, fuzzy msgid "" "Abstract data attributes can be declared using the ``@abstractproperty`` " "decorator::" msgstr "" +"Los atributos de datos abstractos pueden declararse utilizando el decorador " +"``@abstractproperty``::" #: ../Doc/whatsnew/2.6.rst:1297 +#, fuzzy msgid "Subclasses must then define a :meth:`readonly` property." -msgstr "" +msgstr "Las subclases deben definir una propiedad :meth:`readonly`." #: ../Doc/whatsnew/2.6.rst:1303 +#, fuzzy msgid ":pep:`3119` - Introducing Abstract Base Classes" -msgstr "" +msgstr ":pep:`3119` - Presentación de las clases base abstractas" #: ../Doc/whatsnew/2.6.rst:1302 +#, fuzzy msgid "" "PEP written by Guido van Rossum and Talin. Implemented by Guido van Rossum. " "Backported to 2.6 by Benjamin Aranguren, with Alex Martelli." msgstr "" +"PEP escrito por Guido van Rossum y Talin. Implementado por Guido van Rossum. " +"Adaptado a la versión 2.6 por Benjamin Aranguren, con Alex Martelli." #: ../Doc/whatsnew/2.6.rst:1311 +#, fuzzy msgid "PEP 3127: Integer Literal Support and Syntax" -msgstr "" +msgstr "PEP 3127: Soporte y sintaxis de literales enteros" #: ../Doc/whatsnew/2.6.rst:1313 +#, fuzzy msgid "" "Python 3.0 changes the syntax for octal (base-8) integer literals, prefixing " "them with \"0o\" or \"0O\" instead of a leading zero, and adds support for " "binary (base-2) integer literals, signalled by a \"0b\" or \"0B\" prefix." msgstr "" +"Python 3.0 cambia la sintaxis de los literales enteros octales (base-8), " +"prefijándolos con \"0o\" o \"0O\" en lugar de un cero inicial, y añade " +"soporte para los literales enteros binarios (base-2), señalados con un " +"prefijo \"0b\" o \"0B\"." #: ../Doc/whatsnew/2.6.rst:1318 +#, fuzzy msgid "" "Python 2.6 doesn't drop support for a leading 0 signalling an octal number, " "but it does add support for \"0o\" and \"0b\"::" msgstr "" +"Python 2.6 no elimina el soporte para el 0 inicial que señala un número " +"octal, pero sí añade soporte para \"0o\" y \"0b\"::" #: ../Doc/whatsnew/2.6.rst:1326 +#, fuzzy msgid "" "The :func:`oct` builtin still returns numbers prefixed with a leading zero, " "and a new :func:`bin` builtin returns the binary representation for a " "number::" msgstr "" +"La función :func:`oct` sigue devolviendo números prefijados con un cero a la " +"izquierda, y la nueva función :func:`bin` devuelve la representación binaria " +"de un número::" #: ../Doc/whatsnew/2.6.rst:1337 +#, fuzzy msgid "" "The :func:`int` and :func:`long` builtins will now accept the \"0o\" and \"0b" "\" prefixes when base-8 or base-2 are requested, or when the *base* argument " "is zero (signalling that the base used should be determined from the " "string)::" msgstr "" +"Las funciones built-in :func:`int` y :func:`long` aceptarán ahora los " +"prefijos \"0o\" y \"0b\" cuando se solicite base-8 o base-2, o cuando el " +"argumento *base* sea cero (indicando que la base utilizada debe determinarse " +"a partir de la cadena)::" #: ../Doc/whatsnew/2.6.rst:1355 +#, fuzzy msgid ":pep:`3127` - Integer Literal Support and Syntax" -msgstr "" +msgstr ":pep:`3127` - Soporte y sintaxis de literales enteros" #: ../Doc/whatsnew/2.6.rst:1355 +#, fuzzy msgid "PEP written by Patrick Maupin; backported to 2.6 by Eric Smith." -msgstr "" +msgstr "PEP escrito por Patrick Maupin; retroalimentado a 2.6 por Eric Smith." #: ../Doc/whatsnew/2.6.rst:1363 +#, fuzzy msgid "PEP 3129: Class Decorators" -msgstr "" +msgstr "PEP 3129: Decoradores de clase" #: ../Doc/whatsnew/2.6.rst:1365 +#, fuzzy msgid "" "Decorators have been extended from functions to classes. It's now legal to " "write::" msgstr "" +"Los decoradores se han ampliado de funciones a clases. Ahora es legal " +"escribir::" #: ../Doc/whatsnew/2.6.rst:1373 +#, fuzzy msgid "This is equivalent to::" -msgstr "" +msgstr "Esto equivale a::" #: ../Doc/whatsnew/2.6.rst:1382 +#, fuzzy msgid ":pep:`3129` - Class Decorators" -msgstr "" +msgstr ":pep:`3129` - Decoradores de clase" #: ../Doc/whatsnew/2.6.rst:1383 +#, fuzzy msgid "PEP written by Collin Winter." -msgstr "" +msgstr "PEP escrito por Collin Winter." #: ../Doc/whatsnew/2.6.rst:1390 +#, fuzzy msgid "PEP 3141: A Type Hierarchy for Numbers" -msgstr "" +msgstr "PEP 3141: Una jerarquía de tipos para los números" #: ../Doc/whatsnew/2.6.rst:1392 +#, fuzzy msgid "" "Python 3.0 adds several abstract base classes for numeric types inspired by " "Scheme's numeric tower. These classes were backported to 2.6 as the :mod:" "`numbers` module." msgstr "" +"Python 3.0 añade varias clases base abstractas para tipos numéricos " +"inspiradas en la torre numérica de Scheme. Estas clases fueron retrocedidas " +"a la versión 2.6 como el módulo :mod:`numbers`." #: ../Doc/whatsnew/2.6.rst:1396 +#, fuzzy msgid "" "The most general ABC is :class:`Number`. It defines no operations at all, " "and only exists to allow checking if an object is a number by doing " "``isinstance(obj, Number)``." msgstr "" +"El ABC más general es :class:`Number`. No define ninguna operación, y sólo " +"existe para permitir comprobar si un objeto es un número haciendo " +"``isinstance(obj, Number)``." #: ../Doc/whatsnew/2.6.rst:1400 +#, fuzzy msgid "" ":class:`Complex` is a subclass of :class:`Number`. Complex numbers can " "undergo the basic operations of addition, subtraction, multiplication, " @@ -1517,15 +2216,25 @@ msgid "" "parts and obtain a number's conjugate. Python's built-in complex type is an " "implementation of :class:`Complex`." msgstr "" +":class:`Complex` es una subclase de :class:`Number`. Los números complejos " +"pueden someterse a las operaciones básicas de suma, resta, multiplicación, " +"división y exponenciación, y se pueden recuperar las partes real e " +"imaginaria y obtener el conjugado de un número. El tipo complejo " +"incorporado en Python es una implementación de :class:`Complex`." #: ../Doc/whatsnew/2.6.rst:1406 +#, fuzzy msgid "" ":class:`Real` further derives from :class:`Complex`, and adds operations " "that only work on real numbers: :func:`floor`, :func:`trunc`, rounding, " "taking the remainder mod N, floor division, and comparisons." msgstr "" +":class:`Real` deriva a su vez de :class:`Complex`, y añade operaciones que " +"sólo funcionan con números reales: :func:`floor`, :func:`trunc`, redondeo, " +"toma del resto mod N, división por defecto y comparaciones." #: ../Doc/whatsnew/2.6.rst:1411 +#, fuzzy msgid "" ":class:`Rational` numbers derive from :class:`Real`, have :attr:`numerator` " "and :attr:`denominator` properties, and can be converted to floats. Python " @@ -1533,16 +2242,28 @@ msgid "" "`fractions` module. (It's called :class:`Fraction` instead of :class:" "`Rational` to avoid a name clash with :class:`numbers.Rational`.)" msgstr "" +"Los números :class:`Rational` derivan de :class:`Real`, tienen las " +"propiedades :attr:`numerator` y :attr:`denominator`, y se pueden convertir " +"en flotantes. Python 2.6 añade una clase simple de números racionales, :" +"class:`Fraction`, en el módulo :mod:`fractions`. (Se llama :class:" +"`Fraction` en lugar de :class:`Rational` para evitar un choque de nombres " +"con :class:`numbers.Rational`)" #: ../Doc/whatsnew/2.6.rst:1418 +#, fuzzy msgid "" ":class:`Integral` numbers derive from :class:`Rational`, and can be shifted " "left and right with ``<<`` and ``>>``, combined using bitwise operations " "such as ``&`` and ``|``, and can be used as array indexes and slice " "boundaries." msgstr "" +"Los números de :class:`Integral` derivan de :class:`Rational`, y pueden " +"desplazarse a la izquierda y a la derecha con ``<`` y ``>```, combinarse " +"utilizando operaciones de bits como ``&`` y ``|``, y pueden utilizarse como " +"índices de matrices y límites de cortes." #: ../Doc/whatsnew/2.6.rst:1423 +#, fuzzy msgid "" "In Python 3.0, the PEP slightly redefines the existing builtins :func:" "`round`, :func:`math.floor`, :func:`math.ceil`, and adds a new one, :func:" @@ -1550,75 +2271,117 @@ msgid "" "rounds toward zero, returning the closest :class:`Integral` that's between " "the function's argument and zero." msgstr "" +"En Python 3.0, el PEP redefine ligeramente las funciones integradas " +"existentes :func:`round`, :func:`math.floor`, :func:`math.ceil`, y añade uno " +"nuevo, :func:`math.trunc`, que ha sido retrocedido a Python 2.6. :func:`math." +"trunc` redondea hacia cero, devolviendo el :class:`Integral` más cercano que " +"esté entre el argumento de la función y cero." #: ../Doc/whatsnew/2.6.rst:1432 +#, fuzzy msgid ":pep:`3141` - A Type Hierarchy for Numbers" -msgstr "" +msgstr ":pep:`3141` - Una jerarquía de tipos para los números" #: ../Doc/whatsnew/2.6.rst:1432 +#, fuzzy msgid "PEP written by Jeffrey Yasskin." -msgstr "" +msgstr "PEP escrito por Jeffrey Yasskin." #: ../Doc/whatsnew/2.6.rst:1434 +#, fuzzy msgid "" "`Scheme's numerical tower `__, from the Guile manual." msgstr "" +"`Torre numérica del esquema `__, del manual de Guile." #: ../Doc/whatsnew/2.6.rst:1436 +#, fuzzy msgid "" "`Scheme's number datatypes `__ from the R5RS Scheme specification." msgstr "" +"`Scheme's number datatypes `__ de la especificación R5RS Scheme." #: ../Doc/whatsnew/2.6.rst:1440 +#, fuzzy msgid "The :mod:`fractions` Module" -msgstr "" +msgstr "El módulo :mod:`fractions`" #: ../Doc/whatsnew/2.6.rst:1442 +#, fuzzy msgid "" "To fill out the hierarchy of numeric types, the :mod:`fractions` module " "provides a rational-number class. Rational numbers store their values as a " "numerator and denominator forming a fraction, and can exactly represent " "numbers such as ``2/3`` that floating-point numbers can only approximate." msgstr "" +"Para completar la jerarquía de tipos numéricos, el módulo :mod:`fractions` " +"proporciona una clase de números racionales. Los números racionales " +"almacenan sus valores como un numerador y un denominador que forman una " +"fracción, y pueden representar exactamente números como ``2/3`` que los " +"números de punto flotante sólo pueden aproximar." #: ../Doc/whatsnew/2.6.rst:1448 +#, fuzzy msgid "" "The :class:`Fraction` constructor takes two :class:`Integral` values that " "will be the numerator and denominator of the resulting fraction. ::" msgstr "" +"El constructor :class:`Fraction` toma dos valores :class:`Integral` que " +"serán el numerador y el denominador de la fracción resultante. ::" #: ../Doc/whatsnew/2.6.rst:1461 +#, fuzzy msgid "" "For converting floating-point numbers to rationals, the float type now has " "an :meth:`as_integer_ratio()` method that returns the numerator and " "denominator for a fraction that evaluates to the same floating-point value::" msgstr "" +"Para convertir números de punto flotante en racionales, el tipo float tiene " +"ahora un método :meth:`as_integer_ratio()` que devuelve el numerador y el " +"denominador de una fracción que se evalúa al mismo valor de punto flotante::" #: ../Doc/whatsnew/2.6.rst:1473 +#, fuzzy msgid "" "Note that values that can only be approximated by floating-point numbers, " "such as 1./3, are not simplified to the number being approximated; the " "fraction attempts to match the floating-point value **exactly**." msgstr "" +"Tenga en cuenta que los valores que sólo pueden ser aproximados por números " +"de punto flotante, como 1,/3, no se simplifican al número que se está " +"aproximando; la fracción intenta coincidir con el valor de punto flotante " +"**exactamente**." #: ../Doc/whatsnew/2.6.rst:1478 +#, fuzzy msgid "" "The :mod:`fractions` module is based upon an implementation by Sjoerd " "Mullender that was in Python's :file:`Demo/classes/` directory for a long " "time. This implementation was significantly updated by Jeffrey Yasskin." msgstr "" +"El módulo :mod:`fractions` se basa en una implementación de Sjoerd Mullender " +"que estuvo en el directorio :file:`Demo/classes/` de Python durante mucho " +"tiempo. Esta implementación fue significativamente actualizada por Jeffrey " +"Yasskin." #: ../Doc/whatsnew/2.6.rst:1485 +#, fuzzy msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios lingüísticos" #: ../Doc/whatsnew/2.6.rst:1487 +#, fuzzy msgid "Some smaller changes made to the core Python language are:" msgstr "" +"Algunos de los cambios más pequeños realizados en el núcleo del lenguaje " +"Python son:" #: ../Doc/whatsnew/2.6.rst:1489 +#, fuzzy msgid "" "Directories and zip archives containing a :file:`__main__.py` file can now " "be executed directly by passing their name to the interpreter. The directory " @@ -1626,8 +2389,14 @@ msgid "" "(Suggestion and initial patch by Andy Chu, subsequently revised by Phillip " "J. Eby and Nick Coghlan; :issue:`1739468`.)" msgstr "" +"Los directorios y archivos zip que contengan un archivo :file:`__main__.py` " +"pueden ahora ejecutarse directamente pasando su nombre al intérprete. El " +"directorio o archivo zip se inserta automáticamente como la primera entrada " +"en sys.path. (Sugerencia y parche inicial de Andy Chu, revisado " +"posteriormente por Phillip J. Eby y Nick Coghlan; :issue:`1739468`)" #: ../Doc/whatsnew/2.6.rst:1496 +#, fuzzy msgid "" "The :func:`hasattr` function was catching and ignoring all errors, under the " "assumption that they meant a :meth:`__getattr__` method was failing somehow " @@ -1637,77 +2406,121 @@ msgid "" "when :func:`hasattr` encounters them. (Fixed by Benjamin Peterson; :issue:" "`2196`.)" msgstr "" +"La función :func:`hasattr` estaba capturando e ignorando todos los errores, " +"bajo la suposición de que significaban que un método :meth:`__getattr__` " +"estaba fallando de alguna manera y que el valor de retorno de :func:" +"`hasattr` sería por tanto ``False``. Esta lógica no debería aplicarse a :" +"exc:`KeyboardInterrupt` y :exc:`SystemExit`, sin embargo; Python 2.6 ya no " +"descartará tales excepciones cuando :func:`hasattr` las encuentre. " +"(Corregido por Benjamin Peterson; :issue:`2196`.)" #: ../Doc/whatsnew/2.6.rst:1504 +#, fuzzy msgid "" "When calling a function using the ``**`` syntax to provide keyword " "arguments, you are no longer required to use a Python dictionary; any " "mapping will now work::" msgstr "" +"Cuando se llama a una función utilizando la sintaxis ``**`` para " +"proporcionar argumentos de palabras clave, ya no es necesario utilizar un " +"diccionario de Python; ahora funcionará cualquier asignación::" #: ../Doc/whatsnew/2.6.rst:1517 +#, fuzzy msgid "(Contributed by Alexander Belopolsky; :issue:`1686487`.)" -msgstr "" +msgstr "(Contribución de Alexander Belopolsky; :issue:`1686487`.)" #: ../Doc/whatsnew/2.6.rst:1519 +#, fuzzy msgid "" "It's also become legal to provide keyword arguments after a ``*args`` " "argument to a function call. ::" msgstr "" +"También se ha convertido en legal proporcionar argumentos de palabras clave " +"después de un argumento ``*args`` a una llamada de función. ::" #: ../Doc/whatsnew/2.6.rst:1528 +#, fuzzy msgid "" "Previously this would have been a syntax error. (Contributed by Amaury " "Forgeot d'Arc; :issue:`3473`.)" msgstr "" +"Anteriormente, esto habría sido un error de sintaxis. (Contribución de " +"Amaury Forgeot d'Arc; :issue:`3473`.)" #: ../Doc/whatsnew/2.6.rst:1531 +#, fuzzy msgid "" "A new builtin, ``next(iterator, [default])`` returns the next item from the " "specified iterator. If the *default* argument is supplied, it will be " "returned if *iterator* has been exhausted; otherwise, the :exc:" "`StopIteration` exception will be raised. (Backported in :issue:`2719`.)" msgstr "" +"Un nuevo builtin, ``next(iterator, [default])`` devuelve el siguiente " +"elemento del iterador especificado. Si se suministra el argumento " +"*default*, se devolverá si *iterador* se ha agotado; en caso contrario, se " +"lanzará la excepción :exc:`StopIteration`. (Se ha modificado en :issue:" +"`2719`.)" #: ../Doc/whatsnew/2.6.rst:1537 +#, fuzzy msgid "" "Tuples now have :meth:`index` and :meth:`count` methods matching the list " "type's :meth:`index` and :meth:`count` methods::" msgstr "" +"Las tuplas tienen ahora métodos :meth:`index` y :meth:`count` que coinciden " +"con los métodos :meth:`index` y :meth:`count` del tipo lista::" #: ../Doc/whatsnew/2.6.rst:1546 +#, fuzzy msgid "(Contributed by Raymond Hettinger)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1548 +#, fuzzy msgid "" "The built-in types now have improved support for extended slicing syntax, " "accepting various combinations of ``(start, stop, step)``. Previously, the " "support was partial and certain corner cases wouldn't work. (Implemented by " "Thomas Wouters.)" msgstr "" +"Los tipos incorporados tienen ahora un soporte mejorado para la sintaxis de " +"corte extendida, aceptando varias combinaciones de ``(inicio, parada, " +"paso)``. Anteriormente, el soporte era parcial y algunos casos de esquina no " +"funcionaban. (Implementado por Thomas Wouters)" #: ../Doc/whatsnew/2.6.rst:1555 +#, fuzzy msgid "" "Properties now have three attributes, :attr:`getter`, :attr:`setter` and :" "attr:`deleter`, that are decorators providing useful shortcuts for adding a " "getter, setter or deleter function to an existing property. You would use " "them like this::" msgstr "" +"Las propiedades tienen ahora tres atributos, :attr:`getter`, :attr:`setter` " +"y :attr:`deleter`, que son decoradores que proporcionan atajos útiles para " +"añadir una función getter, setter o deleter a una propiedad existente. Los " +"usarás así::" #: ../Doc/whatsnew/2.6.rst:1582 +#, fuzzy msgid "" "Several methods of the built-in set types now accept multiple iterables: :" "meth:`intersection`, :meth:`intersection_update`, :meth:`union`, :meth:" "`update`, :meth:`difference` and :meth:`difference_update`." msgstr "" +"Varios métodos de los tipos de conjuntos incorporados aceptan ahora " +"múltiples iterables: :meth:`intersection`, :meth:`intersection_update`, :" +"meth:`union`, :meth:`update`, :meth:`difference` y :meth:`difference_update`." #: ../Doc/whatsnew/2.6.rst:1596 ../Doc/whatsnew/2.6.rst:1880 #: ../Doc/whatsnew/2.6.rst:1901 +#, fuzzy msgid "(Contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger.)" #: ../Doc/whatsnew/2.6.rst:1598 +#, fuzzy msgid "" "Many floating-point features were added. The :func:`float` function will " "now turn the string ``nan`` into an IEEE 754 Not A Number value, and ``" @@ -1715,15 +2528,25 @@ msgid "" "platform with IEEE 754 semantics. (Contributed by Christian Heimes; :issue:" "`1635`.)" msgstr "" +"Se han añadido muchas funciones de punto flotante. La función :func:`float` " +"ahora convertirá la cadena ``nan`` en un valor IEEE 754 Not A Number, y ``" +"+inf`` y ``-inf`` en infinito positivo o negativo. Esto funciona en " +"cualquier plataforma con semántica IEEE 754. (Contribución de Christian " +"Heimes; :issue:`1635`.)" #: ../Doc/whatsnew/2.6.rst:1604 +#, fuzzy msgid "" "Other functions in the :mod:`math` module, :func:`isinf` and :func:`isnan`, " "return true if their floating-point argument is infinite or Not A Number. (:" "issue:`1640`)" msgstr "" +"Otras funciones del módulo :mod:`math`, :func:`isinf` y :func:`isnan`, " +"devuelven true si su argumento en coma flotante es infinito o No es un " +"número. (:issue:`1640`)" #: ../Doc/whatsnew/2.6.rst:1608 +#, fuzzy msgid "" "Conversion functions were added to convert floating-point numbers into " "hexadecimal strings (:issue:`3008`). These functions convert floats to and " @@ -1732,24 +2555,42 @@ msgid "" "that returns a string representation, and the ``float.fromhex()`` method " "converts a string back into a number::" msgstr "" +"Se han añadido funciones de conversión para convertir números de punto " +"flotante en cadenas hexadecimales (:issue:`3008`). Estas funciones " +"convierten los números flotantes a y desde una representación de cadena sin " +"introducir errores de redondeo por la conversión entre decimal y binario. " +"Los flotadores tienen un método :meth:`hex` que devuelve una representación " +"de cadena, y el método ``float.fromhex()`` convierte una cadena de nuevo en " +"un número::" #: ../Doc/whatsnew/2.6.rst:1625 +#, fuzzy msgid "" "A numerical nicety: when creating a complex number from two floats on " "systems that support signed zeros (-0 and +0), the :func:`complex` " "constructor will now preserve the sign of the zero. (Fixed by Mark T. " "Dickinson; :issue:`1507`.)" msgstr "" +"Un detalle numérico: cuando se crea un número complejo a partir de dos " +"flotantes en sistemas que admiten ceros con signo (-0 y +0), el constructor :" +"func:`complex` conserva ahora el signo del cero. (Corregido por Mark T. " +"Dickinson; :issue:`1507`.)" #: ../Doc/whatsnew/2.6.rst:1630 +#, fuzzy msgid "" "Classes that inherit a :meth:`__hash__` method from a parent class can set " "``__hash__ = None`` to indicate that the class isn't hashable. This will " "make ``hash(obj)`` raise a :exc:`TypeError` and the class will not be " "indicated as implementing the :class:`Hashable` ABC." msgstr "" +"Las clases que heredan un método :meth:`__hash__` de una clase padre pueden " +"establecer ``__hash__ = None`` para indicar que la clase no es hashable. " +"Esto hará que ``hash(obj)`` lance un :exc:`TypeError` y la clase no será " +"indicada como implementando el ABC de :class:`Hashable`." #: ../Doc/whatsnew/2.6.rst:1636 +#, fuzzy msgid "" "You should do this when you've defined a :meth:`__cmp__` or :meth:`__eq__` " "method that compares objects by their value rather than by identity. All " @@ -1760,37 +2601,64 @@ msgid "" "`PyObject_HashNotImplemented`. (Fixed by Nick Coghlan and Amaury Forgeot " "d'Arc; :issue:`2235`.)" msgstr "" +"Debes hacer esto cuando hayas definido un método :meth:`__cmp__` o :meth:" +"`__eq__` que compare objetos por su valor en lugar de por su identidad. " +"Todos los objetos tienen un método hash por defecto que utiliza ``id(obj)`` " +"como valor hash. No hay una forma ordenada de eliminar el método :meth:" +"`__hash__` heredado de una clase padre, por lo que la asignación de ``None`` " +"fue implementada como una sobreescritura. A nivel de C, las extensiones " +"pueden establecer ``tp_hash`` a :c:func:`PyObject_HashNotImplemented`. " +"(Corregido por Nick Coghlan y Amaury Forgeot d'Arc; :issue:`2235`.)" #: ../Doc/whatsnew/2.6.rst:1646 +#, fuzzy msgid "" "The :exc:`GeneratorExit` exception now subclasses :exc:`BaseException` " "instead of :exc:`Exception`. This means that an exception handler that does " "``except Exception:`` will not inadvertently catch :exc:`GeneratorExit`. " "(Contributed by Chad Austin; :issue:`1537`.)" msgstr "" +"La excepción :exc:`GeneratorExit` ahora subclasa :exc:`BaseException` en " +"lugar de :exc:`Exception`. Esto significa que un manejador de excepciones " +"que haga ``except Exception:`` no atrapará inadvertidamente :exc:" +"`GeneratorExit`. (Contribuido por Chad Austin; :issue:`1537`.)" #: ../Doc/whatsnew/2.6.rst:1652 +#, fuzzy msgid "" "Generator objects now have a :attr:`gi_code` attribute that refers to the " "original code object backing the generator. (Contributed by Collin Winter; :" "issue:`1473257`.)" msgstr "" +"Los objetos generadores tienen ahora un atributo :attr:`gi_code` que hace " +"referencia al objeto de código original que respalda al generador. " +"(Contribución de Collin Winter; :issue:`1473257`.)" #: ../Doc/whatsnew/2.6.rst:1656 +#, fuzzy msgid "" "The :func:`compile` built-in function now accepts keyword arguments as well " "as positional parameters. (Contributed by Thomas Wouters; :issue:`1444529`.)" msgstr "" +"La función incorporada :func:`compile` ahora acepta argumentos de palabras " +"clave así como parámetros posicionales. (Contribución de Thomas Wouters; :" +"issue:`1444529`.)" #: ../Doc/whatsnew/2.6.rst:1660 +#, fuzzy msgid "" "The :func:`complex` constructor now accepts strings containing parenthesized " "complex numbers, meaning that ``complex(repr(cplx))`` will now round-trip " "values. For example, ``complex('(3+4j)')`` now returns the value (3+4j). (:" "issue:`1491866`)" msgstr "" +"El constructor :func:`complex` ahora acepta cadenas que contengan números " +"complejos entre paréntesis, lo que significa que ``complex(repr(cplx))`` " +"ahora redondeará los valores. Por ejemplo, ``complex('(3+4j)')`` ahora " +"devuelve el valor (3+4j). (:issue:`1491866`)" #: ../Doc/whatsnew/2.6.rst:1665 +#, fuzzy msgid "" "The string :meth:`translate` method now accepts ``None`` as the translation " "table parameter, which is treated as the identity transformation. This " @@ -1798,8 +2666,14 @@ msgid "" "(Contributed by Bengt Richter and implemented by Raymond Hettinger; :issue:" "`1193128`.)" msgstr "" +"El método string :meth:`translate` acepta ahora ``None`` como parámetro de " +"la tabla de traducción, que se trata como la transformación de identidad. " +"Esto facilita la realización de operaciones que sólo eliminan caracteres. " +"(Contribuido por Bengt Richter e implementado por Raymond Hettinger; :issue:" +"`1193128`)" #: ../Doc/whatsnew/2.6.rst:1671 +#, fuzzy msgid "" "The built-in :func:`dir` function now checks for a :meth:`__dir__` method on " "the objects it receives. This method must return a list of strings " @@ -1808,36 +2682,61 @@ msgid "" "`__getattr__` or :meth:`__getattribute__` methods can use this to advertise " "pseudo-attributes they will honor. (:issue:`1591665`)" msgstr "" +"La función incorporada :func:`dir` ahora comprueba si existe un método :meth:" +"`__dir__` en los objetos que recibe. Este método debe devolver una lista de " +"cadenas que contengan los nombres de los atributos válidos para el objeto, y " +"permite al objeto controlar el valor que :func:`dir` produce. Los objetos " +"que tienen métodos :meth:`__getattr__` o :meth:`__getattribute__` pueden " +"usar esto para anunciar los pseudo-atributos que respetarán. (:issue:" +"`1591665`)" #: ../Doc/whatsnew/2.6.rst:1679 +#, fuzzy msgid "" "Instance method objects have new attributes for the object and function " "comprising the method; the new synonym for :attr:`im_self` is :attr:" "`__self__`, and :attr:`im_func` is also available as :attr:`__func__`. The " "old names are still supported in Python 2.6, but are gone in 3.0." msgstr "" +"Los objetos de método de instancia tienen nuevos atributos para el objeto y " +"la función que comprende el método; el nuevo sinónimo de :attr:`im_self` es :" +"attr:`__self__`, y :attr:`im_func` también está disponible como :attr:" +"`__func__`. Los nombres antiguos todavía se soportan en Python 2.6, pero han " +"desaparecido en la 3.0." #: ../Doc/whatsnew/2.6.rst:1684 +#, fuzzy msgid "" "An obscure change: when you use the :func:`locals` function inside a :" "keyword:`class` statement, the resulting dictionary no longer returns free " "variables. (Free variables, in this case, are variables referenced in the :" "keyword:`!class` statement that aren't attributes of the class.)" msgstr "" +"Un cambio oscuro: cuando se utiliza la función :func:`locals` dentro de una " +"sentencia :keyword:`class`, el diccionario resultante ya no devuelve " +"variables libres. (Las variables libres, en este caso, son variables " +"referenciadas en la sentencia :keyword:`!class` que no son atributos de la " +"clase)" #: ../Doc/whatsnew/2.6.rst:1693 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/2.6.rst:1695 +#, fuzzy msgid "" "The :mod:`warnings` module has been rewritten in C. This makes it possible " "to invoke warnings from the parser, and may also make the interpreter's " "startup faster. (Contributed by Neal Norwitz and Brett Cannon; :issue:" "`1631171`.)" msgstr "" +"El módulo :mod:`warnings` ha sido reescrito en C. Esto hace posible invocar " +"advertencias desde el analizador sintáctico, y también puede hacer que el " +"arranque del intérprete sea más rápido. (Contribuido por Neal Norwitz y " +"Brett Cannon; :issue:`1631171`.)" #: ../Doc/whatsnew/2.6.rst:1700 +#, fuzzy msgid "" "Type objects now have a cache of methods that can reduce the work required " "to find the correct method implementation for a particular class; once " @@ -1847,8 +2746,17 @@ msgid "" "Python's dynamic nature. (Original optimization implemented by Armin Rigo, " "updated for Python 2.6 by Kevin Jacobs; :issue:`1700288`.)" msgstr "" +"Los objetos de tipo tienen ahora una caché de métodos que puede reducir el " +"trabajo necesario para encontrar la implementación del método correcto para " +"una clase en particular; una vez almacenada en la caché, el intérprete no " +"necesita recorrer las clases base para averiguar el método correcto a " +"llamar. La caché se borra si una clase base o la propia clase se modifica, " +"por lo que la caché debería seguir siendo correcta incluso ante la " +"naturaleza dinámica de Python. (Optimización original implementada por Armin " +"Rigo, actualizada para Python 2.6 por Kevin Jacobs; :issue:`1700288`.)" #: ../Doc/whatsnew/2.6.rst:1710 +#, fuzzy msgid "" "By default, this change is only applied to types that are included with the " "Python core. Extension modules may not necessarily be compatible with this " @@ -1859,55 +2767,94 @@ msgid "" "implements. Most modules don't do this, but it's impossible for the Python " "interpreter to determine that. See :issue:`1878` for some discussion.)" msgstr "" +"Por defecto, este cambio sólo se aplica a los tipos que se incluyen con el " +"núcleo de Python. Los módulos de extensión no son necesariamente " +"compatibles con esta caché, por lo que deben añadir explícitamente :c:macro:" +"`Py_TPFLAGS_HAVE_VERSION_TAG` al campo ``tp_flags`` del módulo para " +"habilitar la caché de métodos. (Para ser compatible con la caché de métodos, " +"el código del módulo de extensión no debe acceder directamente ni modificar " +"el miembro ``tp_dict`` de ninguno de los tipos que implementa. La mayoría " +"de los módulos no lo hacen, pero es imposible que el intérprete de Python lo " +"determine. Ver :issue:`1878` para una discusión)" #: ../Doc/whatsnew/2.6.rst:1721 +#, fuzzy msgid "" "Function calls that use keyword arguments are significantly faster by doing " "a quick pointer comparison, usually saving the time of a full string " "comparison. (Contributed by Raymond Hettinger, after an initial " "implementation by Antoine Pitrou; :issue:`1819`.)" msgstr "" +"Las llamadas a funciones que utilizan argumentos de palabras clave son " +"significativamente más rápidas al hacer una comparación rápida de punteros, " +"lo que suele ahorrar el tiempo de una comparación completa de cadenas. " +"(Contribución de Raymond Hettinger, tras una implementación inicial de " +"Antoine Pitrou; :issue:`1819`)" #: ../Doc/whatsnew/2.6.rst:1726 +#, fuzzy msgid "" "All of the functions in the :mod:`struct` module have been rewritten in C, " "thanks to work at the Need For Speed sprint. (Contributed by Raymond " "Hettinger.)" msgstr "" +"Todas las funciones del módulo :mod:`struct` han sido reescritas en C, " +"gracias al trabajo en el sprint de Need For Speed. (Contribución de Raymond " +"Hettinger)" #: ../Doc/whatsnew/2.6.rst:1730 +#, fuzzy msgid "" "Some of the standard built-in types now set a bit in their type objects. " "This speeds up checking whether an object is a subclass of one of these " "types. (Contributed by Neal Norwitz.)" msgstr "" +"Algunos de los tipos estándar incorporados ahora establecen un bit en sus " +"objetos de tipo. Esto acelera la comprobación de si un objeto es una " +"subclase de uno de estos tipos. (Contribución de Neal Norwitz)" #: ../Doc/whatsnew/2.6.rst:1734 +#, fuzzy msgid "" "Unicode strings now use faster code for detecting whitespace and line " "breaks; this speeds up the :meth:`split` method by about 25% and :meth:" "`splitlines` by 35%. (Contributed by Antoine Pitrou.) Memory usage is " "reduced by using pymalloc for the Unicode string's data." msgstr "" +"Las cadenas Unicode utilizan ahora un código más rápido para detectar los " +"espacios en blanco y los saltos de línea; esto acelera el método :meth:" +"`split` en un 25% a y :meth:`splitlines` en un 35%. (Contribuido por Antoine " +"Pitrou.) El uso de la memoria se reduce utilizando pymalloc para los datos " +"de la cadena Unicode." #: ../Doc/whatsnew/2.6.rst:1740 +#, fuzzy msgid "" "The ``with`` statement now stores the :meth:`__exit__` method on the stack, " "producing a small speedup. (Implemented by Jeffrey Yasskin.)" msgstr "" +"La sentencia ``with`` ahora almacena el método :meth:`__exit__` en la pila, " +"produciendo un pequeño aumento de velocidad. (Implementado por Jeffrey " +"Yasskin)" #: ../Doc/whatsnew/2.6.rst:1743 +#, fuzzy msgid "" "To reduce memory usage, the garbage collector will now clear internal free " "lists when garbage-collecting the highest generation of objects. This may " "return memory to the operating system sooner." msgstr "" +"Para reducir el uso de memoria, el recolector de basura ahora borrará las " +"listas libres internas cuando recolecte la generación más alta de objetos. " +"Esto puede devolver la memoria al sistema operativo antes." #: ../Doc/whatsnew/2.6.rst:1752 +#, fuzzy msgid "Interpreter Changes" -msgstr "" +msgstr "Cambios de intérprete" #: ../Doc/whatsnew/2.6.rst:1754 +#, fuzzy msgid "" "Two command-line options have been reserved for use by other Python " "implementations. The :option:`-J` switch has been reserved for use by " @@ -1917,8 +2864,17 @@ msgid "" "If either option is used with Python 2.6, the interpreter will report that " "the option isn't currently used." msgstr "" +"Se han reservado dos opciones de la línea de comandos para su uso por otras " +"implementaciones de Python. La opción :option:`-J` se ha reservado para su " +"uso por parte de Jython para las opciones específicas de Jython, como los " +"interruptores que se pasan a la JVM subyacente. :option:`-X` se ha reservado " +"para las opciones específicas de una implementación particular de Python " +"como CPython, Jython o IronPython. Si cualquiera de estas opciones se " +"utiliza con Python 2.6, el intérprete informará de que la opción no se " +"utiliza actualmente." #: ../Doc/whatsnew/2.6.rst:1762 +#, fuzzy msgid "" "Python can now be prevented from writing :file:`.pyc` or :file:`.pyo` files " "by supplying the :option:`-B` switch to the Python interpreter, or by " @@ -1928,8 +2884,16 @@ msgid "" "value to modify the interpreter's behaviour. (Contributed by Neal Norwitz " "and Georg Brandl.)" msgstr "" +"Ahora se puede evitar que Python escriba archivos :file:`.pyc` o :file:`." +"pyo` proporcionando el modificador :option:`-B` al intérprete de Python, o " +"estableciendo la variable de entorno :envvar:`PYTHONDONTWRITEBYTECODE` antes " +"de ejecutar el intérprete. Esta configuración está disponible para los " +"programas de Python como la variable ``sys.dont_write_bytecode``, y el " +"código de Python puede cambiar el valor para modificar el comportamiento del " +"intérprete. (Contribución de Neal Norwitz y Georg Brandl)" #: ../Doc/whatsnew/2.6.rst:1770 +#, fuzzy msgid "" "The encoding used for standard input, output, and standard error can be " "specified by setting the :envvar:`PYTHONIOENCODING` environment variable " @@ -1940,12 +2904,23 @@ msgid "" "handled by the encoding, and should be one of \"error\", \"ignore\", or " "\"replace\". (Contributed by Martin von Löwis.)" msgstr "" +"La codificación utilizada para la entrada, la salida y el error estándar " +"puede especificarse estableciendo la variable de entorno :envvar:" +"`PYTHONIOENCODING` antes de ejecutar el intérprete. El valor debe ser una " +"cadena de la forma```` o ``:``. La parte " +"*encoding* especifica el nombre de la codificación, por ejemplo ``utf-8`` o " +"``latin-1``; la parte opcional *errorhandler* especifica qué hacer con los " +"caracteres que no pueden ser manejados por la codificación, y debe ser una " +"de las opciones \"error\", \"ignorar\" o \"reemplazar\". (Contribución de " +"Martin von Löwis)" #: ../Doc/whatsnew/2.6.rst:1783 +#, fuzzy msgid "New and Improved Modules" -msgstr "" +msgstr "Módulos nuevos y mejorados" #: ../Doc/whatsnew/2.6.rst:1785 +#, fuzzy msgid "" "As in every release, Python's standard library received a number of " "enhancements and bug fixes. Here's a partial list of the most notable " @@ -1953,15 +2928,27 @@ msgid "" "file in the source tree for a more complete list of changes, or look through " "the Subversion logs for all the details." msgstr "" +"Como en cada versión, la biblioteca estándar de Python ha recibido una serie " +"de mejoras y correcciones de errores. Aquí hay una lista parcial de los " +"cambios más notables, ordenados alfabéticamente por nombre de módulo. " +"Consulta el archivo :file:`Misc/NEWS` en el árbol de fuentes para una lista " +"más completa de cambios, o mira los registros de Subversion para todos los " +"detalles." #: ../Doc/whatsnew/2.6.rst:1791 +#, fuzzy msgid "" "The :mod:`asyncore` and :mod:`asynchat` modules are being actively " "maintained again, and a number of patches and bugfixes were applied. " "(Maintained by Josiah Carlson; see :issue:`1736190` for one patch.)" msgstr "" +"Los módulos :mod:`asyncore` y :mod:`asynchat` están siendo mantenidos " +"activamente de nuevo, y se han aplicado varios parches y correcciones de " +"errores. (Mantenido por Josiah Carlson; véase :issue:`1736190` para un " +"parche)" #: ../Doc/whatsnew/2.6.rst:1796 +#, fuzzy msgid "" "The :mod:`bsddb` module also has a new maintainer, Jesús Cea Avión, and the " "package is now available as a standalone package. The web page for the " @@ -1970,67 +2957,107 @@ msgid "" "standard library in Python 3.0, because its pace of releases is much more " "frequent than Python's." msgstr "" +"El módulo :mod:`bsddb` también tiene un nuevo mantenedor, Jesús Cea Avión, y " +"el paquete está ahora disponible como paquete independiente. La página web " +"del paquete es `www.jcea.es/programacion/pybsddb.htm `__. El plan es eliminar el paquete de la " +"biblioteca estándar en Python 3.0, porque su ritmo de lanzamientos es mucho " +"más frecuente que el de Python." #: ../Doc/whatsnew/2.6.rst:1804 +#, fuzzy msgid "" "The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol " "available, instead of restricting itself to protocol 1. (Contributed by W. " "Barnes.)" msgstr "" +"El módulo :mod:`bsddb.dbshelve` utiliza ahora el protocolo de decapado más " +"alto disponible, en lugar de limitarse al protocolo 1. (Contribución de W. " +"Barnes.)" #: ../Doc/whatsnew/2.6.rst:1808 +#, fuzzy msgid "" "The :mod:`cgi` module will now read variables from the query string of an " "HTTP POST request. This makes it possible to use form actions with URLs " "that include query strings such as \"/cgi-bin/add.py?category=1\". " "(Contributed by Alexandre Fiori and Nubis; :issue:`1817`.)" msgstr "" +"El módulo :mod:`cgi` leerá ahora las variables de la cadena de consulta de " +"una petición HTTP POST. Esto permite utilizar acciones de formulario con " +"URLs que incluyen cadenas de consulta como \"/cgi-bin/add.py?category=1\". " +"(Contribución de Alexandre Fiori y Nubis; :issue:`1817`.)" #: ../Doc/whatsnew/2.6.rst:1814 +#, fuzzy msgid "" "The :func:`parse_qs` and :func:`parse_qsl` functions have been relocated " "from the :mod:`cgi` module to the :mod:`urlparse` module. The versions still " "available in the :mod:`cgi` module will trigger :exc:" "`PendingDeprecationWarning` messages in 2.6 (:issue:`600362`)." msgstr "" +"Las funciones :func:`parse_qs` y :func:`parse_qsl` han sido reubicadas del " +"módulo :mod:`cgi` al módulo :mod:`urlparse`. Las versiones aún disponibles " +"en el módulo :mod:`cgi` activarán los mensajes :exc:" +"`PendingDeprecationWarning` en la versión 2.6 (:issue:`600362`)." #: ../Doc/whatsnew/2.6.rst:1820 +#, fuzzy msgid "" "The :mod:`cmath` module underwent extensive revision, contributed by Mark " "Dickinson and Christian Heimes. Five new functions were added:" msgstr "" +"El módulo :mod:`cmath` ha sido objeto de una amplia revisión, a la que han " +"contribuido Mark Dickinson y Christian Heimes. Se han añadido cinco nuevas " +"funciones:" #: ../Doc/whatsnew/2.6.rst:1824 +#, fuzzy msgid "" ":func:`polar` converts a complex number to polar form, returning the modulus " "and argument of the complex number." msgstr "" +":func:`polar` convierte un número complejo en forma polar, devolviendo el " +"módulo y el argumento del número complejo." #: ../Doc/whatsnew/2.6.rst:1827 +#, fuzzy msgid "" ":func:`rect` does the opposite, turning a modulus, argument pair back into " "the corresponding complex number." msgstr "" +":func:`rect` hace lo contrario, convirtiendo un par de módulos y argumentos " +"en el correspondiente número complejo." #: ../Doc/whatsnew/2.6.rst:1830 +#, fuzzy msgid "" ":func:`phase` returns the argument (also called the angle) of a complex " "number." msgstr "" +":func:`phase` devuelve el argumento (también llamado ángulo) de un número " +"complejo." #: ../Doc/whatsnew/2.6.rst:1833 +#, fuzzy msgid "" ":func:`isnan` returns True if either the real or imaginary part of its " "argument is a NaN." msgstr "" +":func:`isnan` devuelve True si la parte real o imaginaria de su argumento es " +"un NaN." #: ../Doc/whatsnew/2.6.rst:1836 +#, fuzzy msgid "" ":func:`isinf` returns True if either the real or imaginary part of its " "argument is infinite." msgstr "" +":func:`isinf` devuelve True si la parte real o imaginaria de su argumento es " +"infinita." #: ../Doc/whatsnew/2.6.rst:1839 +#, fuzzy msgid "" "The revisions also improved the numerical soundness of the :mod:`cmath` " "module. For all functions, the real and imaginary parts of the results are " @@ -2038,104 +3065,167 @@ msgid "" "See :issue:`1381` for the details. The branch cuts for :func:`asinh`, :func:" "`atanh`: and :func:`atan` have also been corrected." msgstr "" +"Las revisiones también han mejorado la solidez numérica del módulo :mod:" +"`cmath`. Para todas las funciones, las partes real e imaginaria de los " +"resultados son exactas con unas pocas unidades de precisión mínima (ulps) " +"siempre que sea posible. Véase :issue:`1381` para los detalles. También se " +"han corregido los cortes de rama para :func:`asinh`, :func:`atanh`: y :func:" +"`atan`." #: ../Doc/whatsnew/2.6.rst:1846 +#, fuzzy msgid "" "The tests for the module have been greatly expanded; nearly 2000 new test " "cases exercise the algebraic functions." msgstr "" +"Las pruebas del módulo se han ampliado considerablemente; casi 2000 nuevos " +"casos de prueba ejercitan las funciones algebraicas." #: ../Doc/whatsnew/2.6.rst:1849 +#, fuzzy msgid "" "On IEEE 754 platforms, the :mod:`cmath` module now handles IEEE 754 special " "values and floating-point exceptions in a manner consistent with Annex 'G' " "of the C99 standard." msgstr "" +"En las plataformas IEEE 754, el módulo :mod:`cmath` maneja ahora los valores " +"especiales IEEE 754 y las excepciones de punto flotante de forma consistente " +"con el Anexo 'G' del estándar C99." #: ../Doc/whatsnew/2.6.rst:1853 +#, fuzzy msgid "" "A new data type in the :mod:`collections` module: :class:" "`namedtuple(typename, fieldnames)` is a factory function that creates " "subclasses of the standard tuple whose fields are accessible by name as well " "as index. For example::" msgstr "" +"Un nuevo tipo de datos en el módulo :mod:`collections`: :class:" +"`namedtuple(typename, fieldnames)` es una función de fábrica que crea " +"subclases de la tupla estándar cuyos campos son accesibles tanto por nombre " +"como por índice. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:1875 +#, fuzzy msgid "" "Several places in the standard library that returned tuples have been " "modified to return :class:`namedtuple` instances. For example, the :meth:" "`Decimal.as_tuple` method now returns a named tuple with :attr:`sign`, :attr:" "`digits`, and :attr:`exponent` fields." msgstr "" +"Varios lugares de la biblioteca estándar que devolvían tuplas han sido " +"modificados para devolver instancias de :class:`namedtuple`. Por ejemplo, " +"el método :meth:`Decimal.as_tuple` ahora devuelve una tupla con nombre con " +"los campos :attr:`signo`, :attr:`dígitos` y :attr:`exponente`." #: ../Doc/whatsnew/2.6.rst:1882 +#, fuzzy msgid "" "Another change to the :mod:`collections` module is that the :class:`deque` " "type now supports an optional *maxlen* parameter; if supplied, the deque's " "size will be restricted to no more than *maxlen* items. Adding more items " "to a full deque causes old items to be discarded." msgstr "" +"Otro cambio en el módulo :mod:`collections` es que el tipo :class:`deque` " +"admite ahora un parámetro opcional *maxlen*; si se suministra, el tamaño del " +"deque estará restringido a no más de *maxlen* elementos. Si se añaden más " +"elementos a un deque lleno, se descartan los elementos antiguos." #: ../Doc/whatsnew/2.6.rst:1903 +#, fuzzy msgid "" "The :mod:`Cookie` module's :class:`Morsel` objects now support an :attr:" "`httponly` attribute. In some browsers. cookies with this attribute set " "cannot be accessed or manipulated by JavaScript code. (Contributed by Arvin " "Schnell; :issue:`1638033`.)" msgstr "" +"Los objetos :mod:`Cookie` del módulo :class:`Morsel` soportan ahora un " +"atributo :attr:`httponly`. En algunos navegadores, las cookies con este " +"atributo no pueden ser accedidas o manipuladas por el código JavaScript. " +"(Contribución de Arvin Schnell; :issue:`1638033`.)" #: ../Doc/whatsnew/2.6.rst:1908 +#, fuzzy msgid "" "A new window method in the :mod:`curses` module, :meth:`chgat`, changes the " "display attributes for a certain number of characters on a single line. " "(Contributed by Fabian Kreutz.)" msgstr "" +"Un nuevo método de ventana en el módulo :mod:`curses`, :meth:`chgat`, cambia " +"los atributos de visualización para un determinado número de caracteres en " +"una sola línea. (Contribución de Fabian Kreutz)" #: ../Doc/whatsnew/2.6.rst:1918 +#, fuzzy msgid "" "The :class:`Textbox` class in the :mod:`curses.textpad` module now supports " "editing in insert mode as well as overwrite mode. Insert mode is enabled by " "supplying a true value for the *insert_mode* parameter when creating the :" "class:`Textbox` instance." msgstr "" +"La clase :class:`Textbox` del módulo :mod:`curses.textpad` soporta ahora la " +"edición en modo de inserción así como en modo de sobrescritura. El modo de " +"inserción se activa proporcionando un valor verdadero para el parámetro " +"*insert_mode* al crear la instancia de :class:`Textbox`." #: ../Doc/whatsnew/2.6.rst:1923 -#, python-format +#, fuzzy, python-format msgid "" "The :mod:`datetime` module's :meth:`strftime` methods now support a ``%f`` " "format code that expands to the number of microseconds in the object, zero-" "padded on the left to six places. (Contributed by Skip Montanaro; :issue:" "`1158`.)" msgstr "" +"Los métodos :meth:`strftime` del módulo :mod:`datetime` soportan ahora un " +"código de formato ``%f`` que se expande al número de microsegundos en el " +"objeto, rellenado de cero a la izquierda hasta seis lugares. (Contribución " +"de Skip Montanaro; :issue:`1158`.)" #: ../Doc/whatsnew/2.6.rst:1928 +#, fuzzy msgid "" "The :mod:`decimal` module was updated to version 1.66 of `the General " "Decimal Specification `__. " "New features include some methods for some basic mathematical functions such " "as :meth:`exp` and :meth:`log10`::" msgstr "" +"El módulo :mod:`decimal` se ha actualizado a la versión 1.66 de `la " +"Especificación General Decimal `__. Las nuevas características incluyen algunos métodos para algunas " +"funciones matemáticas básicas como :meth:`exp` y :meth:`log10`::" #: ../Doc/whatsnew/2.6.rst:1940 +#, fuzzy msgid "" "The :meth:`as_tuple` method of :class:`Decimal` objects now returns a named " "tuple with :attr:`sign`, :attr:`digits`, and :attr:`exponent` fields." msgstr "" +"El método :meth:`as_tuple` de los objetos :class:`Decimal` devuelve ahora " +"una tupla con nombre con los campos :attr:`signo`, :attr:`dígitos` y :attr:" +"`exponente`." #: ../Doc/whatsnew/2.6.rst:1943 +#, fuzzy msgid "" "(Implemented by Facundo Batista and Mark Dickinson. Named tuple support " "added by Raymond Hettinger.)" msgstr "" +"(Implementado por Facundo Batista y Mark Dickinson. Soporte de tuplas con " +"nombre añadido por Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1946 +#, fuzzy msgid "" "The :mod:`difflib` module's :class:`SequenceMatcher` class now returns named " "tuples representing matches, with :attr:`a`, :attr:`b`, and :attr:`size` " "attributes. (Contributed by Raymond Hettinger.)" msgstr "" +"La clase :mod:`difflib` del módulo :class:`SequenceMatcher` devuelve ahora " +"tuplas con nombre que representan coincidencias, con atributos :attr:`a`, :" +"attr:`b` y :attr:`size`. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1951 +#, fuzzy msgid "" "An optional ``timeout`` parameter, specifying a timeout measured in seconds, " "was added to the :class:`ftplib.FTP` class constructor as well as the :meth:" @@ -2144,8 +3234,16 @@ msgid "" "*callback* parameter that will be called with each block of data after the " "data has been sent. (Contributed by Phil Schwartz; :issue:`1221598`.)" msgstr "" +"Se ha añadido un parámetro opcional ``timeout``, que especifica un tiempo de " +"espera medido en segundos, al constructor de la clase :class:`ftplib.FTP` " +"así como al método :meth:`connect`. (Añadido por Facundo Batista.) Además, " +"los métodos :meth:`storbinary` y :meth:`storlines` de la clase :class:`FTP` " +"ahora toman un parámetro opcional *callback* que será llamado con cada " +"bloque de datos después de que los datos hayan sido enviados. (Contribuido " +"por Phil Schwartz; :issue:`1221598`.)" #: ../Doc/whatsnew/2.6.rst:1959 +#, fuzzy msgid "" "The :func:`reduce` built-in function is also available in the :mod:" "`functools` module. In Python 3.0, the builtin has been dropped and :func:" @@ -2153,8 +3251,14 @@ msgid "" "plans to drop the builtin in the 2.x series. (Patched by Christian Heimes; :" "issue:`1739906`.)" msgstr "" +"La función incorporada :func:`reduce` también está disponible en el módulo :" +"mod:`functools`. En Python 3.0, la función incorporada se ha eliminado y :" +"func:`reduce` sólo está disponible en :mod:`functools`; actualmente no hay " +"planes para eliminar la función incorporada en la serie 2.x. (Parcheado por " +"Christian Heimes; :issue:`1739906`.)" #: ../Doc/whatsnew/2.6.rst:1965 +#, fuzzy msgid "" "When possible, the :mod:`getpass` module will now use :file:`/dev/tty` to " "print a prompt message and read the password, falling back to standard error " @@ -2162,101 +3266,159 @@ msgid "" "warning is printed before the prompt is displayed. (Contributed by Gregory " "P. Smith.)" msgstr "" +"Cuando sea posible, el módulo :mod:`getpass` utilizará ahora :file:`/dev/" +"tty` para imprimir un mensaje de aviso y leer la contraseña, retrocediendo " +"al error estándar y a la entrada estándar. Si la contraseña puede ser " +"enviada al terminal, se imprimirá una advertencia antes de que se muestre el " +"aviso. (Contribución de Gregory P. Smith)" #: ../Doc/whatsnew/2.6.rst:1971 +#, fuzzy msgid "" "The :func:`glob.glob` function can now return Unicode filenames if a Unicode " "path was used and Unicode filenames are matched within the directory. (:" "issue:`1001604`)" msgstr "" +"La función :func:`glob.glob` ahora puede devolver nombres de archivo Unicode " +"si se ha utilizado una ruta Unicode y se han encontrado nombres de archivo " +"Unicode dentro del directorio. (:issue:`1001604`)" #: ../Doc/whatsnew/2.6.rst:1975 +#, fuzzy msgid "" "A new function in the :mod:`heapq` module, ``merge(iter1, iter2, ...)``, " "takes any number of iterables returning data in sorted order, and returns a " "new generator that returns the contents of all the iterators, also in sorted " "order. For example::" msgstr "" +"Una nueva función en el módulo :mod:`heapq`, ``merge(iter1, iter2, ...)``, " +"toma cualquier número de iterables que devuelven datos en orden ordenado, y " +"devuelve un nuevo generador que devuelve el contenido de todos los " +"iteradores, también en ordenado. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:1983 +#, fuzzy msgid "" "Another new function, ``heappushpop(heap, item)``, pushes *item* onto " "*heap*, then pops off and returns the smallest item. This is more efficient " "than making a call to :func:`heappush` and then :func:`heappop`." msgstr "" +"Otra nueva función, ``heappushpop(heap, item)``, empuja *item* a *heap*, " +"luego lo saca y devuelve el elemento más pequeño. Esto es más eficiente que " +"hacer una llamada a :func:`heappush` y luego a :func:`heappop`." #: ../Doc/whatsnew/2.6.rst:1988 +#, fuzzy msgid "" ":mod:`heapq` is now implemented to only use less-than comparison, instead of " "the less-than-or-equal comparison it previously used. This makes :mod:" "`heapq`'s usage of a type match the :meth:`list.sort` method. (Contributed " "by Raymond Hettinger.)" msgstr "" +":mod:`heapq` se ha implementado para utilizar únicamente la comparación " +"menor que, en lugar de la comparación menor o igual que utilizaba " +"anteriormente. Esto hace que el uso de :mod:`heapq` de un tipo coincida con " +"el método :meth:`list.sort`. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:1994 +#, fuzzy msgid "" "An optional ``timeout`` parameter, specifying a timeout measured in seconds, " "was added to the :class:`httplib.HTTPConnection` and :class:" "`HTTPSConnection` class constructors. (Added by Facundo Batista.)" msgstr "" +"Se ha añadido un parámetro opcional ``timeout``, que especifica un tiempo de " +"espera medido en segundos, a los constructores de las clases :class:`httplib." +"HTTPConnection` y :class:`HTTPSConnection`. (Añadido por Facundo Batista)" #: ../Doc/whatsnew/2.6.rst:1999 +#, fuzzy msgid "" "Most of the :mod:`inspect` module's functions, such as :func:`getmoduleinfo` " "and :func:`getargs`, now return named tuples. In addition to behaving like " "tuples, the elements of the return value can also be accessed as " "attributes. (Contributed by Raymond Hettinger.)" msgstr "" +"La mayoría de las funciones del módulo :mod:`inspect`, como :func:" +"`getmoduleinfo` y :func:`getargs`, ahora devuelven tuplas con nombre. Además " +"de comportarse como tuplas, también se puede acceder a los elementos del " +"valor devuelto como atributos. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2005 +#, fuzzy msgid "" "Some new functions in the module include :func:`isgenerator`, :func:" "`isgeneratorfunction`, and :func:`isabstract`." msgstr "" +"Algunas de las nuevas funciones del módulo son :func:`isgenerator`, :func:" +"`isgeneratorfunction` y :func:`isabstract`." #: ../Doc/whatsnew/2.6.rst:2009 +#, fuzzy msgid "The :mod:`itertools` module gained several new functions." -msgstr "" +msgstr "El módulo :mod:`itertools` ha ganado varias funciones nuevas." #: ../Doc/whatsnew/2.6.rst:2011 +#, fuzzy msgid "" "``izip_longest(iter1, iter2, ...[, fillvalue])`` makes tuples from each of " "the elements; if some of the iterables are shorter than others, the missing " "values are set to *fillvalue*. For example::" msgstr "" +"``izip_longest(iter1, iter2, ...[, fillvalue])`` hace tuplas de cada uno de " +"los elementos; si algunos de los iterables son más cortos que otros, los " +"valores que faltan se ponen a *fillvalue*. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:2018 +#, fuzzy msgid "" "``product(iter1, iter2, ..., [repeat=N])`` returns the Cartesian product of " "the supplied iterables, a set of tuples containing every possible " "combination of the elements returned from each iterable. ::" msgstr "" +"``product(iter1, iter2, ..., [repeat=N])`` devuelve el producto cartesiano " +"de los iterables suministrados, un conjunto de tuplas que contiene todas las " +"combinaciones posibles de los elementos devueltos de cada iterable. ::" #: ../Doc/whatsnew/2.6.rst:2027 +#, fuzzy msgid "" "The optional *repeat* keyword argument is used for taking the product of an " "iterable or a set of iterables with themselves, repeated *N* times. With a " "single iterable argument, *N*-tuples are returned::" msgstr "" +"El argumento opcional de la palabra clave *repeat* se utiliza para tomar el " +"producto de un iterable o un conjunto de iterables con ellos mismos, " +"repetido *N* veces. Con un único argumento iterable, se devuelven *N*-" +"tuplas::" #: ../Doc/whatsnew/2.6.rst:2036 +#, fuzzy msgid "With two iterables, *2N*-tuples are returned. ::" -msgstr "" +msgstr "Con dos iterables, se devuelven *2N*-tuplas. ::" #: ../Doc/whatsnew/2.6.rst:2044 +#, fuzzy msgid "" "``combinations(iterable, r)`` returns sub-sequences of length *r* from the " "elements of *iterable*. ::" msgstr "" +"``combinaciones(iterable, r)`` devuelve subsecuencias de longitud *r* de los " +"elementos de *iterable*. ::" #: ../Doc/whatsnew/2.6.rst:2055 +#, fuzzy msgid "" "``permutations(iter[, r])`` returns all the permutations of length *r* of " "the iterable's elements. If *r* is not specified, it will default to the " "number of elements produced by the iterable. ::" msgstr "" +"``permutaciones(iter[, r])`` devuelve todas las permutaciones de longitud " +"*r* de los elementos del iterable. Si no se especifica *r*, por defecto " +"será el número de elementos producidos por el iterable. ::" #: ../Doc/whatsnew/2.6.rst:2065 +#, fuzzy msgid "" "``itertools.chain(*iterables)`` is an existing function in :mod:`itertools` " "that gained a new constructor in Python 2.6. ``itertools.chain." @@ -2264,12 +3426,19 @@ msgid "" "iterables. :func:`chain` will then return all the elements of the first " "iterable, then all the elements of the second, and so on. ::" msgstr "" +"``itertools.chain(*iterables)`` es una función existente en :mod:`itertools` " +"que obtuvo un nuevo constructor en Python 2.6. ``itertools.chain." +"from_iterable(iterable)`` toma un único iterable que debe devolver otros " +"iterables. :func:`chain` devolverá entonces todos los elementos del primer " +"iterable, luego todos los elementos del segundo, y así sucesivamente. ::" #: ../Doc/whatsnew/2.6.rst:2075 +#, fuzzy msgid "(All contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Todo ello aportado por Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2077 +#, fuzzy msgid "" "The :mod:`logging` module's :class:`FileHandler` class and its subclasses :" "class:`WatchedFileHandler`, :class:`RotatingFileHandler`, and :class:" @@ -2277,69 +3446,112 @@ msgid "" "constructors. If *delay* is true, opening of the log file is deferred until " "the first :meth:`emit` call is made. (Contributed by Vinay Sajip.)" msgstr "" +"La clase :mod:`logging` del módulo :class:`FileHandler` y sus subclases :" +"class:`WatchedFileHandler`, :class:`RotatingFileHandler` y :class:" +"`TimedRotatingFileHandler` tienen ahora un parámetro opcional *delay* en sus " +"constructores. Si *retraso* es verdadero, la apertura del fichero de " +"registro se retrasa hasta que se realice la primera llamada :meth:`emit`. " +"(Contribuido por Vinay Sajip.)" #: ../Doc/whatsnew/2.6.rst:2084 +#, fuzzy msgid "" ":class:`TimedRotatingFileHandler` also has a *utc* constructor parameter. " "If the argument is true, UTC time will be used in determining when midnight " "occurs and in generating filenames; otherwise local time will be used." msgstr "" +":class:`TimedRotatingFileHandler` también tiene un parámetro constructor " +"*utc*. Si el argumento es verdadero, se utilizará la hora UTC para " +"determinar cuándo ocurre la medianoche y para generar los nombres de los " +"archivos; en caso contrario, se utilizará la hora local." #: ../Doc/whatsnew/2.6.rst:2089 +#, fuzzy msgid "Several new functions were added to the :mod:`math` module:" -msgstr "" +msgstr "Se han añadido varias funciones nuevas al módulo :mod:`math`:" #: ../Doc/whatsnew/2.6.rst:2091 +#, fuzzy msgid "" ":func:`~math.isinf` and :func:`~math.isnan` determine whether a given float " "is a (positive or negative) infinity or a NaN (Not a Number), respectively." msgstr "" +":func:`~math.isinf` y :func:`~math.isnan` determinan si un flotador dado es " +"un infinito (positivo o negativo) o un NaN (Not a Number), respectivamente." #: ../Doc/whatsnew/2.6.rst:2094 +#, fuzzy msgid "" ":func:`~math.copysign` copies the sign bit of an IEEE 754 number, returning " "the absolute value of *x* combined with the sign bit of *y*. For example, " "``math.copysign(1, -0.0)`` returns -1.0. (Contributed by Christian Heimes.)" msgstr "" +":func:`~math.copysign` copia el bit de signo de un número IEEE 754, " +"devolviendo el valor absoluto de *x* combinado con el bit de signo de *y*. " +"Por ejemplo, ``math.copysign(1, -0.0)`` devuelve -1.0. (Contribución de " +"Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:2099 +#, fuzzy msgid "" ":func:`~math.factorial` computes the factorial of a number. (Contributed by " "Raymond Hettinger; :issue:`2138`.)" msgstr "" +":func:`~math.factorial` calcula el factorial de un número. (Contribuido por " +"Raymond Hettinger; :issue:`2138`.)" #: ../Doc/whatsnew/2.6.rst:2102 +#, fuzzy msgid "" ":func:`~math.fsum` adds up the stream of numbers from an iterable, and is " "careful to avoid loss of precision through using partial sums. (Contributed " "by Jean Brouwers, Raymond Hettinger, and Mark Dickinson; :issue:`2819`.)" msgstr "" +":func:`~math.fsum` suma el flujo de números de un iterable, y tiene cuidado " +"de evitar la pérdida de precisión mediante el uso de sumas parciales. " +"(Contribución de Jean Brouwers, Raymond Hettinger y Mark Dickinson; :issue:" +"`2819`)" #: ../Doc/whatsnew/2.6.rst:2107 +#, fuzzy msgid "" ":func:`~math.acosh`, :func:`~math.asinh` and :func:`~math.atanh` compute the " "inverse hyperbolic functions." msgstr "" +":func:`~math.acosh`, :func:`~math.asinh` y :func:`~math.atanh` calculan las " +"funciones hiperbólicas inversas." #: ../Doc/whatsnew/2.6.rst:2110 +#, fuzzy msgid ":func:`~math.log1p` returns the natural logarithm of *1+x* (base *e*)." -msgstr "" +msgstr ":func:`~math.log1p` devuelve el logaritmo natural de *1+x* (base *e*)." #: ../Doc/whatsnew/2.6.rst:2113 +#, fuzzy msgid "" ":func:`trunc` rounds a number toward zero, returning the closest :class:" "`Integral` that's between the function's argument and zero. Added as part of " "the backport of `PEP 3141's type hierarchy for numbers <#pep-3141>`__." msgstr "" +":func:`trunc` redondea un número hacia cero, devolviendo el :class:" +"`Integral` más cercano que esté entre el argumento de la función y el cero. " +"Añadido como parte del backport de la jerarquía de tipos de números de `PEP " +"3141 <#pep-3141>`__." #: ../Doc/whatsnew/2.6.rst:2118 +#, fuzzy msgid "" "The :mod:`math` module has been improved to give more consistent behaviour " "across platforms, especially with respect to handling of floating-point " "exceptions and IEEE 754 special values." msgstr "" +"El módulo :mod:`math` se ha mejorado para ofrecer un comportamiento más " +"coherente en todas las plataformas, especialmente en lo que respecta al " +"manejo de las excepciones de punto flotante y los valores especiales IEEE " +"754." #: ../Doc/whatsnew/2.6.rst:2122 +#, fuzzy msgid "" "Whenever possible, the module follows the recommendations of the C99 " "standard about 754's special values. For example, ``sqrt(-1.)`` should now " @@ -2350,49 +3562,80 @@ msgid "" "standard recommends signaling 'overflow', Python will raise :exc:" "`OverflowError`. (See :issue:`711019` and :issue:`1640`.)" msgstr "" +"Siempre que es posible, el módulo sigue las recomendaciones del estándar C99 " +"sobre los valores especiales de 754. Por ejemplo, ``sqrt(-1.)`` debería dar " +"ahora un :exc:`ValueError` en casi todas las plataformas, mientras que " +"``sqrt(float('NaN'))`` debería devolver un NaN en todas las plataformas IEEE " +"754. Cuando el Anexo 'F' del estándar C99 recomiende señalar 'dividir por " +"cero' o 'inválido', Python lanzará :exc:`ValueError`. Cuando el Anexo 'F' " +"del estándar C99 recomiende señalar 'desbordamiento', Python lanzará :exc:" +"`OverflowError`. (Ver :issue:`711019` y :issue:`1640`)" #: ../Doc/whatsnew/2.6.rst:2132 +#, fuzzy msgid "(Contributed by Christian Heimes and Mark Dickinson.)" -msgstr "" +msgstr "(Contribución de Christian Heimes y Mark Dickinson)" #: ../Doc/whatsnew/2.6.rst:2134 +#, fuzzy msgid "" ":class:`~mmap.mmap` objects now have a :meth:`rfind` method that searches " "for a substring beginning at the end of the string and searching backwards. " "The :meth:`find` method also gained an *end* parameter giving an index at " "which to stop searching. (Contributed by John Lenton.)" msgstr "" +"Los objetos :class:`~mmap.mmap` tienen ahora un método :meth:`rfind` que " +"busca una subcadena empezando por el final de la cadena y buscando hacia " +"atrás. El método :meth:`find` también ha ganado un parámetro *end* que da " +"un índice en el que parar la búsqueda. (Contribución de John Lenton)" #: ../Doc/whatsnew/2.6.rst:2140 +#, fuzzy msgid "" "The :mod:`operator` module gained a :func:`methodcaller` function that takes " "a name and an optional set of arguments, returning a callable that will call " "the named function on any arguments passed to it. For example::" msgstr "" +"El módulo :mod:`operator` ganó una función :func:`methodcaller` que toma un " +"nombre y un conjunto opcional de argumentos, devolviendo un callable que " +"llamará a la función nombrada en cualquier argumento que se le pase. Por " +"ejemplo::" #: ../Doc/whatsnew/2.6.rst:2150 +#, fuzzy msgid "(Contributed by Georg Brandl, after a suggestion by Gregory Petrosyan.)" msgstr "" +"(Contribución de Georg Brandl, tras una sugerencia de Gregory Petrosyan)" #: ../Doc/whatsnew/2.6.rst:2152 +#, fuzzy msgid "" "The :func:`attrgetter` function now accepts dotted names and performs the " "corresponding attribute lookups::" msgstr "" +"La función :func:`attrgetter` acepta ahora nombres con puntos y realiza las " +"correspondientes búsquedas de atributos::" #: ../Doc/whatsnew/2.6.rst:2162 +#, fuzzy msgid "(Contributed by Georg Brandl, after a suggestion by Barry Warsaw.)" -msgstr "" +msgstr "(Contribución de Georg Brandl, tras una sugerencia de Barry Warsaw)" #: ../Doc/whatsnew/2.6.rst:2164 +#, fuzzy msgid "" "The :mod:`os` module now wraps several new system calls. ``fchmod(fd, " "mode)`` and ``fchown(fd, uid, gid)`` change the mode and ownership of an " "opened file, and ``lchmod(path, mode)`` changes the mode of a symlink. " "(Contributed by Georg Brandl and Christian Heimes.)" msgstr "" +"El módulo :mod:`os` incluye ahora varias llamadas nuevas al sistema. " +"``fchmod(fd, mode)`` y ``fchown(fd, uid, gid)`` cambian el modo y la " +"propiedad de un fichero abierto, y ``lchmod(path, mode)`` cambia el modo de " +"un enlace simbólico. (Contribución de Georg Brandl y Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:2170 +#, fuzzy msgid "" ":func:`chflags` and :func:`lchflags` are wrappers for the corresponding " "system calls (where they're available), changing the flags set on a file. " @@ -2401,23 +3644,41 @@ msgid "" "changed and :const:`UF_APPEND` to indicate that data can only be appended to " "the file. (Contributed by M. Levinson.)" msgstr "" +":func:`chflags` y :func:`lchflags` son envoltorios para las correspondientes " +"llamadas al sistema (cuando están disponibles), que cambian las banderas " +"establecidas en un archivo. Las constantes para los valores de las banderas " +"se definen en el módulo :mod:`stat`; algunos valores posibles son :const:" +"`UF_IMMUTABLE` para indicar que el fichero no puede ser modificado y :const:" +"`UF_APPEND` para indicar que sólo se pueden añadir datos al fichero. " +"(Contribución de M. Levinson)" #: ../Doc/whatsnew/2.6.rst:2178 +#, fuzzy msgid "" "``os.closerange(low, high)`` efficiently closes all file descriptors from " "*low* to *high*, ignoring any errors and not including *high* itself. This " "function is now used by the :mod:`subprocess` module to make starting " "processes faster. (Contributed by Georg Brandl; :issue:`1663329`.)" msgstr "" +"``os.closerange(low, high)`` cierra eficazmente todos los descriptores de " +"fichero desde *low* hasta *high*, ignorando cualquier error y sin incluir a " +"*high* mismo. Esta función es ahora utilizada por el módulo :mod:" +"`subprocess` para hacer más rápido el arranque de procesos. (Contribuido " +"por Georg Brandl; :issue:`1663329`.)" #: ../Doc/whatsnew/2.6.rst:2183 +#, fuzzy msgid "" "The ``os.environ`` object's :meth:`clear` method will now unset the " "environment variables using :func:`os.unsetenv` in addition to clearing the " "object's keys. (Contributed by Martin Horcicka; :issue:`1181`.)" msgstr "" +"El método :meth:`clear` del objeto ``os.environ`` ahora desajustará las " +"variables de entorno utilizando :func:`os.unsetenv` además de borrar las " +"claves del objeto. (Contribuido por Martin Horcicka; :issue:`1181`.)" #: ../Doc/whatsnew/2.6.rst:2187 +#, fuzzy msgid "" "The :func:`os.walk` function now has a ``followlinks`` parameter. If set to " "True, it will follow symlinks pointing to directories and visit the " @@ -2425,8 +3686,15 @@ msgid "" "value is false. Note that the function can fall into an infinite recursion " "if there's a symlink that points to a parent directory. (:issue:`1273829`)" msgstr "" +"La función :func:`os.walk` tiene ahora un parámetro ``followlinks``. Si se " +"establece como True, seguirá los enlaces simbólicos que apunten a " +"directorios y visitará el contenido del directorio. Por compatibilidad con " +"el pasado, el valor por defecto del parámetro es false. Tenga en cuenta que " +"la función puede caer en una recursión infinita si hay un enlace simbólico " +"que apunte a un directorio padre. (:issue:`1273829`)" #: ../Doc/whatsnew/2.6.rst:2194 +#, fuzzy msgid "" "In the :mod:`os.path` module, the :func:`splitext` function has been changed " "to not split on leading period characters. This produces better results when " @@ -2434,64 +3702,105 @@ msgid "" "now returns ``('.ipython', '')`` instead of ``('', '.ipython')``. (:issue:" "`1115886`)" msgstr "" +"En el módulo :mod:`os.path`, la función :func:`splitext` ha sido modificada " +"para no dividir los caracteres de punto inicial. Esto produce mejores " +"resultados cuando se opera con archivos de puntos de Unix. Por ejemplo, ``os." +"path.splitext('.ipython')`` ahora devuelve ``('.ipython', '')`` en lugar de " +"``('', '.ipython')``. (:issue:`1115886`)" #: ../Doc/whatsnew/2.6.rst:2201 +#, fuzzy msgid "" "A new function, ``os.path.relpath(path, start='.')``, returns a relative " "path from the ``start`` path, if it's supplied, or from the current working " "directory to the destination ``path``. (Contributed by Richard Barran; :" "issue:`1339796`.)" msgstr "" +"Una nueva función, ``os.path.relpath(path, start='.')``, devuelve una ruta " +"relativa desde la ruta ``start``, si se suministra, o desde el directorio de " +"trabajo actual hasta el destino ``path``. (Contribución de Richard Barran; :" +"issue:`1339796`.)" #: ../Doc/whatsnew/2.6.rst:2206 +#, fuzzy msgid "" "On Windows, :func:`os.path.expandvars` will now expand environment variables " "given in the form \"%var%\", and \"~user\" will be expanded into the user's " "home directory path. (Contributed by Josiah Carlson; :issue:`957650`.)" msgstr "" +"En Windows, :func:`os.path.expandvars` ahora expandirá las variables de " +"entorno dadas en la forma \"%var%\", y \"~user\" se expandirá en la ruta del " +"directorio personal del usuario. (Contribución de Josiah Carlson; :issue:" +"`957650`.)" #: ../Doc/whatsnew/2.6.rst:2211 +#, fuzzy msgid "" "The Python debugger provided by the :mod:`pdb` module gained a new command: " "\"run\" restarts the Python program being debugged and can optionally take " "new command-line arguments for the program. (Contributed by Rocky " "Bernstein; :issue:`1393667`.)" msgstr "" +"El depurador de Python proporcionado por el módulo :mod:`pdb` ganó un nuevo " +"comando: \"run\" reinicia el programa Python que se está depurando y puede " +"tomar opcionalmente nuevos argumentos de línea de comandos para el programa. " +"(Contribución de Rocky Bernstein; :issue:`1393667`.)" #: ../Doc/whatsnew/2.6.rst:2216 +#, fuzzy msgid "" "The :func:`pdb.post_mortem` function, used to begin debugging a traceback, " "will now use the traceback returned by :func:`sys.exc_info` if no traceback " "is supplied. (Contributed by Facundo Batista; :issue:`1106316`.)" msgstr "" +"La función :func:`pdb.post_mortem`, utilizada para iniciar la depuración de " +"un traceback, utilizará ahora el traceback devuelto por :func:`sys.exc_info` " +"si no se suministra ningún traceback. (Contribuido por Facundo Batista; :" +"issue:`1106316`.)" #: ../Doc/whatsnew/2.6.rst:2221 +#, fuzzy msgid "" "The :mod:`pickletools` module now has an :func:`optimize` function that " "takes a string containing a pickle and removes some unused opcodes, " "returning a shorter pickle that contains the same data structure. " "(Contributed by Raymond Hettinger.)" msgstr "" +"El módulo :mod:`pickletools` tiene ahora una función :func:`optimize` que " +"toma una cadena que contiene un pickle y elimina algunos opcodes no " +"utilizados, devolviendo un pickle más corto que contiene la misma estructura " +"de datos. (Contribución de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2226 +#, fuzzy msgid "" "A :func:`get_data` function was added to the :mod:`pkgutil` module that " "returns the contents of resource files included with an installed Python " "package. For example::" msgstr "" +"Se ha añadido una función :func:`get_data` al módulo :mod:`pkgutil` que " +"devuelve el contenido de los archivos de recursos incluidos con un paquete " +"Python instalado. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:2241 +#, fuzzy msgid "(Contributed by Paul Moore; :issue:`2439`.)" -msgstr "" +msgstr "(Contribución de Paul Moore; :issue:`2439`.)" #: ../Doc/whatsnew/2.6.rst:2243 +#, fuzzy msgid "" "The :mod:`pyexpat` module's :class:`Parser` objects now allow setting their :" "attr:`buffer_size` attribute to change the size of the buffer used to hold " "character data. (Contributed by Achim Gaedke; :issue:`1137`.)" msgstr "" +"Los objetos :mod:`pyexpat` del módulo :class:`Parser` permiten ahora " +"establecer su atributo :attr:`buffer_size` para cambiar el tamaño del buffer " +"utilizado para mantener los datos de caracteres. (Contribución de Achim " +"Gaedke; :issue:`1137`.)" #: ../Doc/whatsnew/2.6.rst:2248 +#, fuzzy msgid "" "The :mod:`Queue` module now provides queue variants that retrieve entries in " "different orders. The :class:`PriorityQueue` class stores queued items in a " @@ -2499,8 +3808,15 @@ msgid "" "the most recently added entries first, meaning that it behaves like a stack. " "(Contributed by Raymond Hettinger.)" msgstr "" +"El módulo :mod:`Queue` proporciona ahora variantes de colas que recuperan " +"las entradas en diferentes órdenes. La clase :class:`PriorityQueue` " +"almacena los elementos en cola en un montón y los recupera en orden de " +"prioridad, y :class:`LifoQueue` recupera primero las entradas añadidas más " +"recientemente, lo que significa que se comporta como una pila. (Contribución " +"de Raymond Hettinger)" #: ../Doc/whatsnew/2.6.rst:2255 +#, fuzzy msgid "" "The :mod:`random` module's :class:`Random` objects can now be pickled on a " "32-bit system and unpickled on a 64-bit system, and vice versa. " @@ -2508,8 +3824,15 @@ msgid "" "objects can't be unpickled correctly on earlier versions of Python. " "(Contributed by Shawn Ligocki; :issue:`1727780`.)" msgstr "" +"Los objetos :class:`Random` del módulo :mod:`random` ahora pueden ser " +"decapados en un sistema de 32 bits y desempaquetados en un sistema de 64 " +"bits, y viceversa. Desafortunadamente, este cambio también significa que " +"los objetos :class:`Random` de Python 2.6 no pueden ser desempaquetados " +"correctamente en versiones anteriores de Python. (Contribuido por Shawn " +"Ligocki; :issue:`1727780`.)" #: ../Doc/whatsnew/2.6.rst:2262 +#, fuzzy msgid "" "The new ``triangular(low, high, mode)`` function returns random numbers " "following a triangular distribution. The returned values are between *low* " @@ -2517,15 +3840,26 @@ msgid "" "frequently occurring value in the distribution. (Contributed by Wladmir van " "der Laan and Raymond Hettinger; :issue:`1681432`.)" msgstr "" +"La nueva función ``triangular(low, high, mode)`` devuelve números aleatorios " +"siguiendo una distribución triangular. Los valores devueltos están entre " +"*bajos* y *altos*, sin incluir los propios *altos*, y con *modo* como valor " +"más frecuente en la distribución. (Contribución de Wladmir van der Laan y " +"Raymond Hettinger; :issue:`1681432`.)" #: ../Doc/whatsnew/2.6.rst:2269 +#, fuzzy msgid "" "Long regular expression searches carried out by the :mod:`re` module will " "check for signals being delivered, so time-consuming searches can now be " "interrupted. (Contributed by Josh Hoyt and Ralf Schmitt; :issue:`846388`.)" msgstr "" +"Las búsquedas de expresiones regulares largas llevadas a cabo por el módulo :" +"mod:`re` comprobarán la entrega de señales, por lo que ahora se pueden " +"interrumpir las búsquedas que consumen mucho tiempo. (Contribución de Josh " +"Hoyt y Ralf Schmitt; :issue:`846388`.)" #: ../Doc/whatsnew/2.6.rst:2274 +#, fuzzy msgid "" "The regular expression module is implemented by compiling bytecodes for a " "tiny regex-specific virtual machine. Untrusted code could create malicious " @@ -2533,23 +3867,40 @@ msgid "" "verifier for the regex bytecode. (Contributed by Guido van Rossum from work " "for Google App Engine; :issue:`3487`.)" msgstr "" +"El módulo de expresiones regulares se implementa compilando bytecodes para " +"una pequeña máquina virtual específica de regex. El código no fiable podría " +"crear cadenas maliciosas de código de bytes directamente y causar caídas, " +"por lo que Python 2.6 incluye un verificador para el código de bytes regex. " +"(Contribuido por Guido van Rossum del trabajo para Google App Engine; :issue:" +"`3487`.)" #: ../Doc/whatsnew/2.6.rst:2281 +#, fuzzy msgid "" "The :mod:`rlcompleter` module's :meth:`Completer.complete()` method will now " "ignore exceptions triggered while evaluating a name. (Fixed by Lorenz " "Quack; :issue:`2250`.)" msgstr "" +"El método :meth:`Completer.complete()` del módulo :mod:`rlcompleter` ahora " +"ignorará las excepciones que se produzcan al evaluar un nombre. (Corregido " +"por Lorenz Quack; :issue:`2250`.)" #: ../Doc/whatsnew/2.6.rst:2285 +#, fuzzy msgid "" "The :mod:`sched` module's :class:`scheduler` instances now have a read-only :" "attr:`queue` attribute that returns the contents of the scheduler's queue, " "represented as a list of named tuples with the fields ``(time, priority, " "action, argument)``. (Contributed by Raymond Hettinger; :issue:`1861`.)" msgstr "" +"Las instancias :mod:`sched` del módulo :class:`scheduler` tienen ahora un " +"atributo :attr:`queue` de sólo lectura que devuelve el contenido de la cola " +"del planificador, representado como una lista de tuplas con nombre con los " +"campos ``(tiempo, prioridad, acción, argumento)``. (Contribución de Raymond " +"Hettinger; :issue:`1861`.)" #: ../Doc/whatsnew/2.6.rst:2291 +#, fuzzy msgid "" "The :mod:`select` module now has wrapper functions for the Linux :c:func:" "`epoll` and BSD :c:func:`kqueue` system calls. :meth:`modify` method was " @@ -2558,16 +3909,28 @@ msgid "" "modifying the recorded event mask for that file. (Contributed by Christian " "Heimes; :issue:`1657`.)" msgstr "" +"El módulo :mod:`select` tiene ahora funciones de envoltura para las llamadas " +"al sistema Linux :c:func:`epoll` y BSD :c:func:`kqueue`. Se ha añadido el " +"método :meth:`modify` a los objetos :class:`poll` existentes; ``pollobj." +"modify(fd, eventmask)`` toma un descriptor de fichero o un objeto de fichero " +"y una máscara de evento, modificando la máscara de evento registrada para " +"ese fichero. (Contribución de Christian Heimes; :issue:`1657`.)" #: ../Doc/whatsnew/2.6.rst:2299 +#, fuzzy msgid "" "The :func:`shutil.copytree` function now has an optional *ignore* argument " "that takes a callable object. This callable will receive each directory " "path and a list of the directory's contents, and returns a list of names " "that will be ignored, not copied." msgstr "" +"La función :func:`shutil.copytree` tiene ahora un argumento opcional " +"*ignore* que toma un objeto callable. Esta llamada recibirá cada ruta de " +"directorio y una lista del contenido del directorio, y devuelve una lista de " +"nombres que serán ignorados, no copiados." #: ../Doc/whatsnew/2.6.rst:2304 +#, fuzzy msgid "" "The :mod:`shutil` module also provides an :func:`ignore_patterns` function " "for use with this new parameter. :func:`ignore_patterns` takes an arbitrary " @@ -2576,12 +3939,21 @@ msgid "" "example copies a directory tree, but skips both :file:`.svn` directories and " "Emacs backup files, which have names ending with '~'::" msgstr "" +"El módulo :mod:`shutil` también proporciona una función :func:" +"`ignore_patterns` para su uso con este nuevo parámetro. :func:" +"`ignore_patterns` toma un número arbitrario de patrones de estilo glob y " +"devuelve una llamada que ignorará cualquier archivo o directorio que " +"coincida con cualquiera de estos patrones. El siguiente ejemplo copia un " +"árbol de directorios, pero omite los directorios :file:`.svn` y los ficheros " +"de copia de seguridad de Emacs, que tienen nombres que terminan en '~'::" #: ../Doc/whatsnew/2.6.rst:2315 +#, fuzzy msgid "(Contributed by Tarek Ziadé; :issue:`2663`.)" -msgstr "" +msgstr "(Contribución de Tarek Ziadé; :issue:`2663`.)" #: ../Doc/whatsnew/2.6.rst:2317 +#, fuzzy msgid "" "Integrating signal handling with GUI handling event loops like those used by " "Tkinter or GTk+ has long been a problem; most software ends up polling, " @@ -2592,8 +3964,18 @@ msgid "" "a C-level function, :c:func:`PySignal_SetWakeupFd`, for setting the " "descriptor." msgstr "" +"Integrar el manejo de señales con los bucles de eventos de manejo de la " +"interfaz gráfica de usuario (GUI), como los utilizados por Tkinter o GTk+, " +"ha sido durante mucho tiempo un problema; la mayoría del software acaba " +"sondeando, despertando cada fracción de segundo para comprobar si se ha " +"producido algún evento de la GUI. El módulo :mod:`signal` puede ahora hacer " +"esto más eficiente. Llamando a ``signal.set_wakeup_fd(fd)`` se establece un " +"descriptor de fichero a utilizar; cuando se recibe una señal, se escribe un " +"byte en ese descriptor de fichero. También hay una función en C, :c:func:" +"`PySignal_SetWakeupFd`, para establecer el descriptor." #: ../Doc/whatsnew/2.6.rst:2327 +#, fuzzy msgid "" "Event loops will use this by opening a pipe to create two descriptors, one " "for reading and one for writing. The writable descriptor will be passed to :" @@ -2602,19 +3984,32 @@ msgid "" "`poll`. On receiving a signal, a byte will be written and the main event " "loop will be woken up, avoiding the need to poll." msgstr "" +"Los bucles de eventos utilizarán esto abriendo una tubería para crear dos " +"descriptores, uno de lectura y otro de escritura. El descriptor de " +"escritura se pasará a :func:`set_wakeup_fd`, y el descriptor de lectura se " +"añadirá a la lista de descriptores monitorizados por el bucle de eventos " +"mediante :c:func:`select` o :c:func:`poll`. Al recibir una señal, se " +"escribirá un byte y se despertará el bucle de eventos principal, evitando la " +"necesidad de hacer un sondeo." #: ../Doc/whatsnew/2.6.rst:2335 +#, fuzzy msgid "(Contributed by Adam Olsen; :issue:`1583`.)" -msgstr "" +msgstr "(Contribución de Adam Olsen; :issue:`1583`.)" #: ../Doc/whatsnew/2.6.rst:2337 +#, fuzzy msgid "" "The :func:`siginterrupt` function is now available from Python code, and " "allows changing whether signals can interrupt system calls or not. " "(Contributed by Ralf Schmitt.)" msgstr "" +"La función :func:`siginterrupt` está ahora disponible desde el código " +"Python, y permite cambiar si las señales pueden interrumpir las llamadas al " +"sistema o no. (Contribución de Ralf Schmitt)" #: ../Doc/whatsnew/2.6.rst:2341 +#, fuzzy msgid "" "The :func:`setitimer` and :func:`getitimer` functions have also been added " "(where they're available). :func:`setitimer` allows setting interval timers " @@ -2622,8 +4017,15 @@ msgid "" "time, measured in wall-clock time, consumed process time, or combined process" "+system time. (Contributed by Guilherme Polo; :issue:`2240`.)" msgstr "" +"También se han añadido las funciones :func:`setitimer` y :func:`getitimer` " +"(cuando están disponibles). :func:`setitimer` permite establecer " +"temporizadores de intervalo que harán que se entregue una señal al proceso " +"después de un tiempo especificado, medido en tiempo de reloj de pared, " +"tiempo de proceso consumido, o tiempo combinado de proceso+sistema. " +"(Contribuido por Guilherme Polo; :issue:`2240`.)" #: ../Doc/whatsnew/2.6.rst:2348 +#, fuzzy msgid "" "The :mod:`smtplib` module now supports SMTP over SSL thanks to the addition " "of the :class:`SMTP_SSL` class. This class supports an interface identical " @@ -2632,31 +4034,52 @@ msgid "" "specifies a timeout for the initial connection attempt, measured in " "seconds. (Contributed by Facundo Batista.)" msgstr "" +"El módulo :mod:`smtplib` ahora soporta SMTP sobre SSL gracias a la adición " +"de la clase :class:`SMTP_SSL`. Esta clase soporta una interfaz idéntica a la " +"clase :class:`SMTP` existente. (Contribuido por Monty Taylor.) Ambos " +"constructores de la clase también tienen un parámetro opcional ``timeout`` " +"que especifica un tiempo de espera para el intento de conexión inicial, " +"medido en segundos. (Contribuido por Facundo Batista.)" #: ../Doc/whatsnew/2.6.rst:2356 +#, fuzzy msgid "" "An implementation of the LMTP protocol (:rfc:`2033`) was also added to the " "module. LMTP is used in place of SMTP when transferring e-mail between " "agents that don't manage a mail queue. (LMTP implemented by Leif Hedstrom; :" "issue:`957003`.)" msgstr "" +"También se ha añadido al módulo una implementación del protocolo LMTP (:rfc:" +"`2033`). LMTP se utiliza en lugar de SMTP cuando se transfiere correo " +"electrónico entre agentes que no gestionan una cola de correo. (LMTP " +"implementado por Leif Hedstrom; :issue:`957003`.)" #: ../Doc/whatsnew/2.6.rst:2361 +#, fuzzy msgid "" ":meth:`SMTP.starttls` now complies with :rfc:`3207` and forgets any " "knowledge obtained from the server not obtained from the TLS negotiation " "itself. (Patch contributed by Bill Fenner; :issue:`829951`.)" msgstr "" +":meth:`SMTP.starttls` ahora cumple con :rfc:`3207` y olvida cualquier " +"conocimiento obtenido del servidor que no se haya obtenido de la propia " +"negociación TLS. (Parche aportado por Bill Fenner; :issue:`829951`.)" #: ../Doc/whatsnew/2.6.rst:2366 +#, fuzzy msgid "" "The :mod:`socket` module now supports TIPC (http://tipc.sourceforge.net/), a " "high-performance non-IP-based protocol designed for use in clustered " "environments. TIPC addresses are 4- or 5-tuples. (Contributed by Alberto " "Bertogli; :issue:`1646`.)" msgstr "" +"El módulo :mod:`socket` soporta ahora TIPC (http://tipc.sourceforge.net/), " +"un protocolo de alto rendimiento no basado en IP y diseñado para su uso en " +"entornos agrupados. Las direcciones TIPC son de 4 o 5 tuplas. (Contribución " +"de Alberto Bertogli; :issue:`1646`.)" #: ../Doc/whatsnew/2.6.rst:2371 +#, fuzzy msgid "" "A new function, :func:`create_connection`, takes an address and connects to " "it using an optional timeout value, returning the connected socket object. " @@ -2665,8 +4088,16 @@ msgid "" "instead of ``socket(socket.AF_INET, ...)`` may be all that's required to " "make your code work with IPv6." msgstr "" +"Una nueva función, :func:`create_connection`, toma una dirección y se " +"conecta a ella utilizando un valor opcional de tiempo de espera, devolviendo " +"el objeto socket conectado. Esta función también busca el tipo de dirección " +"y se conecta a ella usando IPv4 o IPv6 según sea el caso. Cambiar su código " +"para usar :func:`create_connection` en lugar de ``socket(socket." +"AF_INET, ...)`` puede ser todo lo que se necesita para que su código " +"funcione con IPv6." #: ../Doc/whatsnew/2.6.rst:2379 +#, fuzzy msgid "" "The base classes in the :mod:`SocketServer` module now support calling a :" "meth:`handle_timeout` method after a span of inactivity specified by the " @@ -2676,20 +4107,34 @@ msgid "" "shutdown request. (Contributed by Pedro Werneck and Jeffrey Yasskin; :issue:" "`742598`, :issue:`1193577`.)" msgstr "" +"Las clases base del módulo :mod:`SocketServer` ahora soportan la llamada a " +"un método :meth:`handle_timeout` después de un periodo de inactividad " +"especificado por el atributo :attr:`timeout` del servidor. (Contribuido por " +"Michael Pomraning.) El método :meth:`serve_forever` ahora toma un intervalo " +"de sondeo opcional medido en segundos, controlando la frecuencia con la que " +"el servidor comprobará si hay una solicitud de cierre. (Contribuido por " +"Pedro Werneck y Jeffrey Yasskin; :issue:`742598`, :issue:`1193577`.)" #: ../Doc/whatsnew/2.6.rst:2388 +#, fuzzy msgid "" "The :mod:`sqlite3` module, maintained by Gerhard Häring, has been updated " "from version 2.3.2 in Python 2.5 to version 2.4.1." msgstr "" +"El módulo :mod:`sqlite3`, mantenido por Gerhard Häring, ha sido actualizado " +"de la versión 2.3.2 en Python 2.5 a la versión 2.4.1." #: ../Doc/whatsnew/2.6.rst:2392 +#, fuzzy msgid "" "The :mod:`struct` module now supports the C99 :c:type:`_Bool` type, using " "the format character ``'?'``. (Contributed by David Remahl.)" msgstr "" +"El módulo :mod:`struct` soporta ahora el tipo C99 :c:type:`_Bool`, " +"utilizando el carácter de formato ``'?'``. (Contribución de David Remahl.)" #: ../Doc/whatsnew/2.6.rst:2396 +#, fuzzy msgid "" "The :class:`Popen` objects provided by the :mod:`subprocess` module now " "have :meth:`terminate`, :meth:`kill`, and :meth:`send_signal` methods. On " @@ -2697,8 +4142,14 @@ msgid "" "all these methods are aliases for the Win32 API function :c:func:" "`TerminateProcess`. (Contributed by Christian Heimes.)" msgstr "" +"Los objetos :class:`Popen` proporcionados por el módulo :mod:`subprocess` " +"tienen ahora métodos :meth:`terminate`, :meth:`kill` y :meth:`send_signal`. " +"En Windows, :meth:`send_signal` sólo soporta la señal :const:`SIGTERM`, y " +"todos estos métodos son alias de la función de la API Win32 :c:func:" +"`TerminateProcess`. (Contribuido por Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:2403 +#, fuzzy msgid "" "A new variable in the :mod:`sys` module, :attr:`float_info`, is an object " "containing information derived from the :file:`float.h` file about the " @@ -2707,8 +4158,16 @@ msgid "" "difference between 1.0 and the next largest value representable), and " "several others. (Contributed by Christian Heimes; :issue:`1534`.)" msgstr "" +"Una nueva variable en el módulo :mod:`sys`, :attr:`float_info`, es un objeto " +"que contiene información derivada del archivo :file:`float.h` sobre el " +"soporte de punto flotante de la plataforma. Los atributos de este objeto " +"incluyen :attr:`mant_dig` (número de dígitos en la mantisa), :attr:`epsilon` " +"(diferencia más pequeña entre 1.0 y el siguiente valor más grande " +"representable), y varios otros. (Contribuido por Christian Heimes; :issue:" +"`1534`.)" #: ../Doc/whatsnew/2.6.rst:2411 +#, fuzzy msgid "" "Another new variable, :attr:`dont_write_bytecode`, controls whether Python " "writes any :file:`.pyc` or :file:`.pyo` files on importing a module. If this " @@ -2719,8 +4178,18 @@ msgid "" "change the value of this variable to control whether bytecode files are " "written or not. (Contributed by Neal Norwitz and Georg Brandl.)" msgstr "" +"Otra nueva variable, :attr:`dont_write_bytecode`, controla si Python escribe " +"algún archivo :file:`.pyc` o :file:`.pyo` al importar un módulo. Si esta " +"variable es verdadera, los archivos compilados no se escriben. La variable " +"se establece inicialmente al iniciar el intérprete de Python con la opción :" +"option:`-B`, o estableciendo la variable de entorno :envvar:" +"`PYTHONDONTWRITEBYTECODE` antes de ejecutar el intérprete. El código de " +"Python puede cambiar posteriormente el valor de esta variable para controlar " +"si los archivos de código de bytes se escriben o no. (Contribución de Neal " +"Norwitz y Georg Brandl)" #: ../Doc/whatsnew/2.6.rst:2422 +#, fuzzy msgid "" "Information about the command-line arguments supplied to the Python " "interpreter is available by reading attributes of a named tuple available as " @@ -2728,8 +4197,15 @@ msgid "" "was executed in verbose mode, :attr:`debug` is true in debugging mode, etc. " "These attributes are all read-only. (Contributed by Christian Heimes.)" msgstr "" +"La información sobre los argumentos de la línea de comandos suministrados al " +"intérprete de Python está disponible leyendo los atributos de una tupla con " +"nombre disponible como ``sys.flags``. Por ejemplo, el atributo :attr:" +"`verbose` es verdadero si Python fue ejecutado en modo verbose, :attr:" +"`debug` es verdadero en modo debugging, etc. Todos estos atributos son de " +"sólo lectura. (Contribución de Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:2430 +#, fuzzy msgid "" "A new function, :func:`getsizeof`, takes a Python object and returns the " "amount of memory used by the object, measured in bytes. Built-in objects " @@ -2737,23 +4213,39 @@ msgid "" "meth:`__sizeof__` method to return the object's size. (Contributed by Robert " "Schuppenies; :issue:`2898`.)" msgstr "" +"Una nueva función, :func:`getsizeof`, toma un objeto Python y devuelve la " +"cantidad de memoria utilizada por el objeto, medida en bytes. Los objetos " +"incorporados devuelven resultados correctos; las extensiones de terceros " +"pueden no hacerlo, pero pueden definir un método :meth:`__sizeof__` para " +"devolver el tamaño del objeto. (Contribución de Robert Schuppenies; :issue:" +"`2898`.)" #: ../Doc/whatsnew/2.6.rst:2437 +#, fuzzy msgid "" "It's now possible to determine the current profiler and tracer functions by " "calling :func:`sys.getprofile` and :func:`sys.gettrace`. (Contributed by " "Georg Brandl; :issue:`1648`.)" msgstr "" +"Ahora es posible determinar las funciones actuales del perfilador y del " +"trazador llamando a :func:`sys.getprofile` y :func:`sys.gettrace`. " +"(Contribuido por Georg Brandl; :issue:`1648`.)" #: ../Doc/whatsnew/2.6.rst:2441 +#, fuzzy msgid "" "The :mod:`tarfile` module now supports POSIX.1-2001 (pax) tarfiles in " "addition to the POSIX.1-1988 (ustar) and GNU tar formats that were already " "supported. The default format is GNU tar; specify the ``format`` parameter " "to open a file using a different format::" msgstr "" +"El módulo :mod:`tarfile` soporta ahora archivos tar POSIX.1-2001 (pax) " +"además de los formatos POSIX.1-1988 (ustar) y GNU tar que ya estaban " +"soportados. El formato por defecto es GNU tar; especifique el parámetro " +"``format`` para abrir un archivo con un formato diferente::" #: ../Doc/whatsnew/2.6.rst:2449 +#, fuzzy msgid "" "The new ``encoding`` and ``errors`` parameters specify an encoding and an " "error handling scheme for character conversions. ``'strict'``, " @@ -2762,8 +4254,16 @@ msgid "" "with their UTF-8 representation. (Character conversions occur because the " "PAX format supports Unicode filenames, defaulting to UTF-8 encoding.)" msgstr "" +"Los nuevos parámetros ``encoding`` y ``errors`` especifican una codificación " +"y un esquema de manejo de errores para las conversiones de caracteres. " +"``'strict'``, ``'ignore'``, y ``'replace'`` son las tres formas estándar en " +"las que Python puede manejar los errores; ``'utf-8'`` es un valor especial " +"que reemplaza los caracteres erróneos con su representación UTF-8. (Las " +"conversiones de caracteres ocurren porque el formato PAX soporta nombres de " +"archivo Unicode, por defecto con codificación UTF-8)" #: ../Doc/whatsnew/2.6.rst:2457 +#, fuzzy msgid "" "The :meth:`TarFile.add` method now accepts an ``exclude`` argument that's a " "function that can be used to exclude certain filenames from an archive. The " @@ -2772,81 +4272,128 @@ msgid "" "initially passed to :meth:`add` and to the names of files in recursively-" "added directories." msgstr "" +"El método :meth:`TarFile.add` ahora acepta un argumento ``exclude`` que es " +"una función que se puede utilizar para excluir ciertos nombres de archivo de " +"un archivo. La función debe tomar un nombre de archivo y devolver true si el " +"archivo debe ser excluido o false si debe ser archivado. La función se " +"aplica tanto al nombre inicialmente pasado a :meth:`add` como a los nombres " +"de los archivos en los directorios añadidos recursivamente." #: ../Doc/whatsnew/2.6.rst:2465 +#, fuzzy msgid "(All changes contributed by Lars Gustäbel)." -msgstr "" +msgstr "(Todos los cambios han sido aportados por Lars Gustäbel)." #: ../Doc/whatsnew/2.6.rst:2467 +#, fuzzy msgid "" "An optional ``timeout`` parameter was added to the :class:`telnetlib.Telnet` " "class constructor, specifying a timeout measured in seconds. (Added by " "Facundo Batista.)" msgstr "" +"Se agregó un parámetro opcional ``timeout`` al constructor de la clase :" +"class:`telnetlib.Telnet`, especificando un tiempo de espera medido en " +"segundos. (Añadido por Facundo Batista)" #: ../Doc/whatsnew/2.6.rst:2471 +#, fuzzy msgid "" "The :class:`tempfile.NamedTemporaryFile` class usually deletes the temporary " "file it created when the file is closed. This behaviour can now be changed " "by passing ``delete=False`` to the constructor. (Contributed by Damien " "Miller; :issue:`1537850`.)" msgstr "" +"La clase :class:`tempfile.NamedTemporaryFile` suele borrar el archivo " +"temporal que ha creado cuando se cierra el archivo. Este comportamiento se " +"puede cambiar pasando ``delete=False`` al constructor. (Contribución de " +"Damien Miller; :issue:`1537850`.)" #: ../Doc/whatsnew/2.6.rst:2476 +#, fuzzy msgid "" "A new class, :class:`SpooledTemporaryFile`, behaves like a temporary file " "but stores its data in memory until a maximum size is exceeded. On reaching " "that limit, the contents will be written to an on-disk temporary file. " "(Contributed by Dustin J. Mitchell.)" msgstr "" +"Una nueva clase, :class:`SpooledTemporaryFile`, se comporta como un archivo " +"temporal pero almacena sus datos en memoria hasta que se supera un tamaño " +"máximo. Al llegar a ese límite, el contenido se escribirá en un archivo " +"temporal en el disco. (Contribución de Dustin J. Mitchell)" #: ../Doc/whatsnew/2.6.rst:2481 +#, fuzzy msgid "" "The :class:`NamedTemporaryFile` and :class:`SpooledTemporaryFile` classes " "both work as context managers, so you can write ``with tempfile." "NamedTemporaryFile() as tmp: ...``. (Contributed by Alexander Belopolsky; :" "issue:`2021`.)" msgstr "" +"Las clases :class:`NamedTemporaryFile` y :class:`SpooledTemporaryFile` " +"funcionan como gestores de contexto, por lo que puedes escribir ``con " +"tempfile.NamedTemporaryFile() como tmp: ...``. (Contribuido por Alexander " +"Belopolsky; :issue:`2021`.)" #: ../Doc/whatsnew/2.6.rst:2486 +#, fuzzy msgid "" "The :mod:`test.test_support` module gained a number of context managers " "useful for writing tests. :func:`EnvironmentVarGuard` is a context manager " "that temporarily changes environment variables and automatically restores " "them to their old values." msgstr "" +"El módulo :mod:`test.test_support` obtuvo una serie de gestores de contexto " +"útiles para escribir pruebas. :func:`EnvironmentVarGuard` es un gestor de " +"contexto que cambia temporalmente las variables de entorno y las restaura " +"automáticamente a sus valores anteriores." #: ../Doc/whatsnew/2.6.rst:2492 +#, fuzzy msgid "" "Another context manager, :class:`TransientResource`, can surround calls to " "resources that may or may not be available; it will catch and ignore a " "specified list of exceptions. For example, a network test may ignore " "certain failures when connecting to an external web site::" msgstr "" +"Otro gestor de contexto, :class:`TransientResource`, puede rodear las " +"llamadas a recursos que pueden o no estar disponibles; atrapará e ignorará " +"una lista especificada de excepciones. Por ejemplo, una prueba de red puede " +"ignorar ciertos fallos al conectarse a un sitio web externo::" #: ../Doc/whatsnew/2.6.rst:2503 +#, fuzzy msgid "" "Finally, :func:`check_warnings` resets the :mod:`warning` module's warning " "filters and returns an object that will record all warning messages " "triggered (:issue:`3781`)::" msgstr "" +"Por último, :func:`check_warnings` restablece los filtros de advertencia del " +"módulo :mod:`warning` y devuelve un objeto que registrará todos los mensajes " +"de advertencia activados (:issue:`3781`)::" #: ../Doc/whatsnew/2.6.rst:2513 +#, fuzzy msgid "(Contributed by Brett Cannon.)" -msgstr "" +msgstr "(Contribución de Brett Cannon.)" #: ../Doc/whatsnew/2.6.rst:2515 +#, fuzzy msgid "" "The :mod:`textwrap` module can now preserve existing whitespace at the " "beginnings and ends of the newly-created lines by specifying " "``drop_whitespace=False`` as an argument::" msgstr "" +"El módulo :mod:`textwrap` ahora puede conservar los espacios en blanco " +"existentes al principio y al final de las líneas recién creadas " +"especificando ``drop_whitespace=False`` como argumento::" #: ../Doc/whatsnew/2.6.rst:2534 +#, fuzzy msgid "(Contributed by Dwayne Bailey; :issue:`1581073`.)" -msgstr "" +msgstr "(Contribución de Dwayne Bailey; :issue:`1581073`.)" #: ../Doc/whatsnew/2.6.rst:2536 +#, fuzzy msgid "" "The :mod:`threading` module API is being changed to use properties such as :" "attr:`daemon` instead of :meth:`setDaemon` and :meth:`isDaemon` methods, and " @@ -2858,15 +4405,30 @@ msgid "" "in any 2.x version. (Carried out by several people, most notably Benjamin " "Peterson.)" msgstr "" +"La API del módulo :mod:`threading` se ha cambiado para utilizar propiedades " +"como :attr:`daemon` en lugar de los métodos :meth:`setDaemon` y :meth:" +"`isDaemon`, y algunos métodos se han renombrado para utilizar guiones bajos " +"en lugar de mayúsculas; por ejemplo, el método :meth:`activeCount` se ha " +"renombrado a :meth:`active_count`. Tanto la versión 2.6 como la 3.0 del " +"módulo soportan las mismas propiedades y métodos renombrados, pero no " +"eliminan los métodos antiguos. No se ha fijado una fecha para la " +"eliminación de las antiguas APIs en Python 3.x; las antiguas APIs no se " +"eliminarán en ninguna versión 2.x. (Llevado a cabo por varias personas, " +"sobre todo por Benjamin Peterson)" #: ../Doc/whatsnew/2.6.rst:2547 +#, fuzzy msgid "" "The :mod:`threading` module's :class:`Thread` objects gained an :attr:" "`ident` property that returns the thread's identifier, a nonzero integer. " "(Contributed by Gregory P. Smith; :issue:`2871`.)" msgstr "" +"Los objetos :mod:`threading` del módulo :class:`Thread` han ganado una " +"propiedad :attr:`ident` que devuelve el identificador del hilo, un entero no " +"nulo. (Contribución de Gregory P. Smith; :issue:`2871`.)" #: ../Doc/whatsnew/2.6.rst:2552 +#, fuzzy msgid "" "The :mod:`timeit` module now accepts callables as well as strings for the " "statement being timed and for the setup code. Two convenience functions were " @@ -2875,96 +4437,150 @@ msgid "" "instance and call the corresponding method. (Contributed by Erik Demaine; :" "issue:`1533909`.)" msgstr "" +"El módulo :mod:`timeit` acepta ahora callables así como cadenas para la " +"sentencia que se está cronometrando y para el código de configuración. Se " +"han añadido dos funciones para crear instancias de :class:`Timer`: " +"``repeat(stmt, setup, time, repeat, number)`` y ``timeit(stmt, setup, time, " +"number)`` crean una instancia y llaman al método correspondiente. " +"(Contribución de Erik Demaine; :issue:`1533909`.)" #: ../Doc/whatsnew/2.6.rst:2561 +#, fuzzy msgid "" "The :mod:`Tkinter` module now accepts lists and tuples for options, " "separating the elements by spaces before passing the resulting value to Tcl/" "Tk. (Contributed by Guilherme Polo; :issue:`2906`.)" msgstr "" +"El módulo :mod:`Tkinter` ahora acepta listas y tuplas para las opciones, " +"separando los elementos por espacios antes de pasar el valor resultante a " +"Tcl/Tk. (Contribuido por Guilherme Polo; :issue:`2906`.)" #: ../Doc/whatsnew/2.6.rst:2566 +#, fuzzy msgid "" "The :mod:`turtle` module for turtle graphics was greatly enhanced by Gregor " "Lingl. New features in the module include:" msgstr "" +"El módulo :mod:`turtle` para los gráficos de tortugas ha sido muy mejorado " +"por Gregor Lingl. Las nuevas características del módulo incluyen:" #: ../Doc/whatsnew/2.6.rst:2569 +#, fuzzy msgid "Better animation of turtle movement and rotation." -msgstr "" +msgstr "Mejor animación del movimiento y la rotación de la tortuga." #: ../Doc/whatsnew/2.6.rst:2570 +#, fuzzy msgid "" "Control over turtle movement using the new :meth:`delay`, :meth:`tracer`, " "and :meth:`speed` methods." msgstr "" +"Control del movimiento de las tortugas mediante los nuevos métodos :meth:" +"`retraso`, :meth:`tracer` y :meth:`velocidad`." #: ../Doc/whatsnew/2.6.rst:2572 +#, fuzzy msgid "" "The ability to set new shapes for the turtle, and to define a new coordinate " "system." msgstr "" +"La posibilidad de establecer nuevas formas para la tortuga y de definir un " +"nuevo sistema de coordenadas." #: ../Doc/whatsnew/2.6.rst:2574 +#, fuzzy msgid "Turtles now have an :meth:`undo()` method that can roll back actions." msgstr "" +"Las tortugas ahora tienen un método :meth:`undo()` que puede revertir las " +"acciones." #: ../Doc/whatsnew/2.6.rst:2575 +#, fuzzy msgid "" "Simple support for reacting to input events such as mouse and keyboard " "activity, making it possible to write simple games." msgstr "" +"Soporte sencillo para reaccionar a eventos de entrada como la actividad del " +"ratón y del teclado, lo que permite escribir juegos sencillos." #: ../Doc/whatsnew/2.6.rst:2577 +#, fuzzy msgid "" "A :file:`turtle.cfg` file can be used to customize the starting appearance " "of the turtle's screen." msgstr "" +"Se puede utilizar un archivo :file:`turtle.cfg` para personalizar la " +"apariencia inicial de la pantalla de la tortuga." #: ../Doc/whatsnew/2.6.rst:2579 +#, fuzzy msgid "" "The module's docstrings can be replaced by new docstrings that have been " "translated into another language." msgstr "" +"Los docstrings del módulo pueden ser sustituidos por nuevos docstrings " +"traducidos a otro idioma." #: ../Doc/whatsnew/2.6.rst:2582 +#, fuzzy msgid "(:issue:`1513695`)" -msgstr "" +msgstr "(:issue:`1513695`)" #: ../Doc/whatsnew/2.6.rst:2584 +#, fuzzy msgid "" "An optional ``timeout`` parameter was added to the :func:`urllib.urlopen` " "function and the :class:`urllib.ftpwrapper` class constructor, as well as " "the :func:`urllib2.urlopen` function. The parameter specifies a timeout " "measured in seconds. For example::" msgstr "" +"Se ha añadido un parámetro opcional ``timeout`` a la función :func:`urllib." +"urlopen` y al constructor de la clase :class:`urllib.ftpwrapper`, así como a " +"la función :func:`urllib2.urlopen`. El parámetro especifica un tiempo de " +"espera medido en segundos. Por ejemplo::" #: ../Doc/whatsnew/2.6.rst:2597 +#, fuzzy msgid "(Added by Facundo Batista.)" -msgstr "" +msgstr "(Añadido por Facundo Batista.)" #: ../Doc/whatsnew/2.6.rst:2599 +#, fuzzy msgid "" "The Unicode database provided by the :mod:`unicodedata` module has been " "updated to version 5.1.0. (Updated by Martin von Löwis; :issue:`3811`.)" msgstr "" +"La base de datos Unicode proporcionada por el módulo :mod:`unicodedata` ha " +"sido actualizada a la versión 5.1.0. (Actualizado por Martin von Löwis; :" +"issue:`3811`.)" #: ../Doc/whatsnew/2.6.rst:2603 +#, fuzzy msgid "" "The :mod:`warnings` module's :func:`formatwarning` and :func:`showwarning` " "gained an optional *line* argument that can be used to supply the line of " "source code. (Added as part of :issue:`1631171`, which re-implemented part " "of the :mod:`warnings` module in C code.)" msgstr "" +"Las funciones :mod:`warnings` del módulo :func:`formatwarning` y :func:" +"`showwarning` han ganado un argumento opcional *line* que puede utilizarse " +"para proporcionar la línea de código fuente. (Añadido como parte de :issue:" +"`1631171`, que reimplementaba parte del módulo :mod:`warnings` en código C)" #: ../Doc/whatsnew/2.6.rst:2608 +#, fuzzy msgid "" "A new function, :func:`catch_warnings`, is a context manager intended for " "testing purposes that lets you temporarily modify the warning filters and " "then restore their original values (:issue:`3781`)." msgstr "" +"Una nueva función, :func:`catch_warnings`, es un gestor de contexto " +"destinado a la realización de pruebas que permite modificar temporalmente " +"los filtros de advertencia y luego restaurar sus valores originales (:issue:" +"`3781`)." #: ../Doc/whatsnew/2.6.rst:2612 +#, fuzzy msgid "" "The XML-RPC :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer` classes " "can now be prevented from immediately opening and binding to their socket by " @@ -2974,8 +4590,16 @@ msgid "" "to open the socket and begin listening for connections. (Contributed by " "Peter Parente; :issue:`1599845`.)" msgstr "" +"Las clases XML-RPC :class:`SimpleXMLRPCServer` y :class:`DocXMLRPCServer` " +"pueden ahora evitar que se abran inmediatamente y se vinculen a su socket " +"pasando ``False`` como parámetro del constructor *bind_and_activate*. Esto " +"puede usarse para modificar el atributo :attr:`allow_reuse_address` de la " +"instancia antes de llamar a los métodos :meth:`server_bind` y :meth:" +"`server_activate` para abrir el socket y comenzar a escuchar conexiones. " +"(Contribuido por Peter Parente; :issue:`1599845`.)" #: ../Doc/whatsnew/2.6.rst:2621 +#, fuzzy msgid "" ":class:`SimpleXMLRPCServer` also has a :attr:`_send_traceback_header` " "attribute; if true, the exception and formatted traceback are returned as " @@ -2985,8 +4609,16 @@ msgid "" "(Contributed by Alan McIntyre as part of his project for Google's Summer of " "Code 2007.)" msgstr "" +":class:`SimpleXMLRPCServer` también tiene un atributo :attr:" +"`_send_traceback_header`; si es true, la excepción y el traceback formateado " +"se devuelven como cabeceras HTTP \"X-Exception\" y \"X-Traceback\". Esta " +"característica es sólo para propósitos de depuración y no debe ser usada en " +"servidores de producción porque los trazos pueden revelar contraseñas u otra " +"información sensible. (Contribuido por Alan McIntyre como parte de su " +"proyecto para el Summer of Code 2007 de Google)" #: ../Doc/whatsnew/2.6.rst:2629 +#, fuzzy msgid "" "The :mod:`xmlrpclib` module no longer automatically converts :class:" "`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib." @@ -2997,55 +4629,92 @@ msgid "" "bit integers represented by using ```` in XML-RPC responses (contributed " "by Riku Lindblad; :issue:`2985`)." msgstr "" +"El módulo :mod:`xmlrpclib` ya no convierte automáticamente las instancias :" +"class:`datetime.date` y :class:`datetime.time` al tipo :class:`xmlrpclib." +"DateTime`; la semántica de conversión no era necesariamente correcta para " +"todas las aplicaciones. El código que utiliza :mod:`xmlrpclib` debe " +"convertir las instancias :class:`date` y :class:`~datetime.time`. (:issue:" +"`1330538`) El código también puede manejar fechas anteriores a 1900 " +"(contribución de Ralf Schmitt;:issue:`2014`) y enteros de 64 bits " +"representados mediante el uso de```` en las respuestas XML-RPC " +"(contribución de Riku Lindblad; :issue:`2985`)." #: ../Doc/whatsnew/2.6.rst:2639 +#, fuzzy msgid "" "The :mod:`zipfile` module's :class:`ZipFile` class now has :meth:`extract` " "and :meth:`extractall` methods that will unpack a single file or all the " "files in the archive to the current directory, or to a specified directory::" msgstr "" +"La clase :mod:`zipfile` del módulo :class:`ZipFile` tiene ahora los métodos :" +"meth:`extract` y :meth:`extractall` que desempaquetarán un solo fichero o " +"todos los ficheros del archivo en el directorio actual, o en un directorio " +"especificado::" #: ../Doc/whatsnew/2.6.rst:2653 +#, fuzzy msgid "(Contributed by Alan McIntyre; :issue:`467924`.)" -msgstr "" +msgstr "(Contribución de Alan McIntyre; :issue:`467924`.)" #: ../Doc/whatsnew/2.6.rst:2655 +#, fuzzy msgid "" "The :meth:`open`, :meth:`read` and :meth:`extract` methods can now take " "either a filename or a :class:`ZipInfo` object. This is useful when an " "archive accidentally contains a duplicated filename. (Contributed by Graham " "Horler; :issue:`1775025`.)" msgstr "" +"Los métodos :meth:`open`, :meth:`read` y :meth:`extract` ahora pueden tomar " +"un nombre de archivo o un objeto :class:`ZipInfo`. Esto es útil cuando un " +"archivo contiene accidentalmente un nombre de archivo duplicado. " +"(Contribución de Graham Horler; :issue:`1775025`.)" #: ../Doc/whatsnew/2.6.rst:2660 +#, fuzzy msgid "" "Finally, :mod:`zipfile` now supports using Unicode filenames for archived " "files. (Contributed by Alexey Borzenkov; :issue:`1734346`.)" msgstr "" +"Por último, :mod:`zipfile` soporta ahora el uso de nombres de archivo " +"Unicode para los ficheros archivados. (Contribución de Alexey Borzenkov; :" +"issue:`1734346`.)" #: ../Doc/whatsnew/2.6.rst:2667 +#, fuzzy msgid "The :mod:`ast` module" -msgstr "" +msgstr "El módulo :mod:`ast`" #: ../Doc/whatsnew/2.6.rst:2669 +#, fuzzy msgid "" "The :mod:`ast` module provides an Abstract Syntax Tree representation of " "Python code, and Armin Ronacher contributed a set of helper functions that " "perform a variety of common tasks. These will be useful for HTML templating " "packages, code analyzers, and similar tools that process Python code." msgstr "" +"El módulo :mod:`ast` proporciona una representación de árbol de sintaxis " +"abstracta del código Python, y Armin Ronacher ha contribuido con un conjunto " +"de funciones de ayuda que realizan una variedad de tareas comunes. Éstas " +"serán útiles para paquetes de plantillas HTML, analizadores de código y " +"herramientas similares que procesan código Python." #: ../Doc/whatsnew/2.6.rst:2676 +#, fuzzy msgid "" "The :func:`parse` function takes an expression and returns an AST. The :func:" "`dump` function outputs a representation of a tree, suitable for debugging::" msgstr "" +"La función :func:`parse` toma una expresión y devuelve un AST. La función :" +"func:`dump` devuelve una representación de un árbol, adecuada para la " +"depuración::" #: ../Doc/whatsnew/2.6.rst:2690 +#, fuzzy msgid "This outputs a deeply nested tree::" -msgstr "" +msgstr "Esto produce un árbol profundamente anidado::" #: ../Doc/whatsnew/2.6.rst:2723 +#, fuzzy msgid "" "The :func:`literal_eval` method takes a string or an AST representing a " "literal expression, parses and evaluates it, and returns the resulting " @@ -3054,19 +4723,32 @@ msgid "" "need to evaluate an expression but cannot accept the security risk of using " "an :func:`eval` call, :func:`literal_eval` will handle it safely::" msgstr "" +"El método :func:`literal_eval` toma una cadena o un AST que representa una " +"expresión literal, la analiza y evalúa, y devuelve el valor resultante. Una " +"expresión literal es una expresión de Python que sólo contiene cadenas, " +"números, diccionarios, etc. pero no declaraciones o llamadas a funciones. " +"Si necesita evaluar una expresión pero no puede aceptar el riesgo de " +"seguridad que supone utilizar una llamada a :func:`eval`, :func:" +"`literal_eval` lo hará de forma segura::" #: ../Doc/whatsnew/2.6.rst:2739 +#, fuzzy msgid "" "The module also includes :class:`NodeVisitor` and :class:`NodeTransformer` " "classes for traversing and modifying an AST, and functions for common " "transformations such as changing line numbers." msgstr "" +"El módulo también incluye las clases :class:`NodeVisitor` y :class:" +"`NodeTransformer` para recorrer y modificar un AST, y funciones para " +"transformaciones comunes como el cambio de números de línea." #: ../Doc/whatsnew/2.6.rst:2747 +#, fuzzy msgid "The :mod:`future_builtins` module" -msgstr "" +msgstr "El módulo :mod:`future_builtins`" #: ../Doc/whatsnew/2.6.rst:2749 +#, fuzzy msgid "" "Python 3.0 makes many changes to the repertoire of built-in functions, and " "most of the changes can't be introduced in the Python 2.x series because " @@ -3074,121 +4756,188 @@ msgid "" "versions of these built-in functions that can be imported when writing 3.0-" "compatible code." msgstr "" +"Python 3.0 introduce muchos cambios en el repertorio de funciones " +"incorporadas, y la mayoría de los cambios no pueden introducirse en la serie " +"Python 2.x porque romperían la compatibilidad. El módulo :mod:" +"`future_builtins` proporciona versiones de estas funciones incorporadas que " +"pueden importarse al escribir código compatible con la versión 3.0." #: ../Doc/whatsnew/2.6.rst:2756 +#, fuzzy msgid "The functions in this module currently include:" -msgstr "" +msgstr "Las funciones de este módulo incluyen actualmente:" #: ../Doc/whatsnew/2.6.rst:2758 +#, fuzzy msgid "" "``ascii(obj)``: equivalent to :func:`repr`. In Python 3.0, :func:`repr` " "will return a Unicode string, while :func:`ascii` will return a pure ASCII " "bytestring." msgstr "" +"``ascii(obj)``: equivalente a :func:`repr`. En Python 3.0, :func:`repr` " +"devolverá una cadena Unicode, mientras que :func:`ascii` devolverá una " +"cadena de bytes ASCII pura." #: ../Doc/whatsnew/2.6.rst:2762 +#, fuzzy msgid "" "``filter(predicate, iterable)``, ``map(func, iterable1, ...)``: the 3.0 " "versions return iterators, unlike the 2.x builtins which return lists." msgstr "" +"``filtro(predicado, iterable)``, ``map(func, iterable1, ...)``: las " +"versiones 3.0 devuelven iteradores, a diferencia de las funciones integradas " +"2.x que devuelven listas." #: ../Doc/whatsnew/2.6.rst:2766 +#, fuzzy msgid "" "``hex(value)``, ``oct(value)``: instead of calling the :meth:`__hex__` or :" "meth:`__oct__` methods, these versions will call the :meth:`__index__` " "method and convert the result to hexadecimal or octal. :func:`oct` will use " "the new ``0o`` notation for its result." msgstr "" +"``hex(valor)``, ``oct(valor)``: en lugar de llamar a los métodos :meth:" +"`__hex__` o :meth:`__oct__`, estas versiones llamarán al método :meth:" +"`__index__` y convertirán el resultado a hexadecimal u octal. :func:`oct` " +"utilizará la nueva notación ``0o`` para su resultado." #: ../Doc/whatsnew/2.6.rst:2775 +#, fuzzy msgid "The :mod:`json` module: JavaScript Object Notation" -msgstr "" +msgstr "El módulo :mod:`json`: Notación de objetos de JavaScript" #: ../Doc/whatsnew/2.6.rst:2777 +#, fuzzy msgid "" "The new :mod:`json` module supports the encoding and decoding of Python " "types in JSON (Javascript Object Notation). JSON is a lightweight " "interchange format often used in web applications. For more information " "about JSON, see http://www.json.org." msgstr "" +"El nuevo módulo :mod:`json` soporta la codificación y decodificación de " +"tipos Python en JSON (*Javascript Object Notation*). JSON es un formato de " +"intercambio ligero que se utiliza a menudo en las aplicaciones web. Para más " +"información sobre JSON, consulte http://www.json.org." #: ../Doc/whatsnew/2.6.rst:2782 +#, fuzzy msgid "" ":mod:`json` comes with support for decoding and encoding most built-in " "Python types. The following example encodes and decodes a dictionary::" msgstr "" +":mod:`json` viene con soporte para decodificar y codificar la mayoría de los " +"tipos incorporados de Python. El siguiente ejemplo codifica y decodifica un " +"diccionario::" #: ../Doc/whatsnew/2.6.rst:2793 +#, fuzzy msgid "" "It's also possible to write your own decoders and encoders to support more " "types. Pretty-printing of the JSON strings is also supported." msgstr "" +"También es posible escribir tus propios decodificadores y codificadores para " +"soportar más tipos. También se admite la impresión bonita de las cadenas " +"JSON." #: ../Doc/whatsnew/2.6.rst:2796 +#, fuzzy msgid ":mod:`json` (originally called simplejson) was written by Bob Ippolito." msgstr "" +":mod:`json` (originalmente llamado simplejson) fue escrito por Bob Ippolito." #: ../Doc/whatsnew/2.6.rst:2803 +#, fuzzy msgid "The :mod:`plistlib` module: A Property-List Parser" -msgstr "" +msgstr "El módulo :mod:`plistlib`: Un analizador de listas de propiedades" #: ../Doc/whatsnew/2.6.rst:2805 +#, fuzzy msgid "" "The ``.plist`` format is commonly used on Mac OS X to store basic data types " "(numbers, strings, lists, and dictionaries) by serializing them into an XML-" "based format. It resembles the XML-RPC serialization of data types." msgstr "" +"El formato ``.plist`` se utiliza habitualmente en Mac OS X para almacenar " +"tipos de datos básicos (números, cadenas, listas y diccionarios) " +"serializándolos en un formato basado en XML. Se asemeja a la serialización " +"XML-RPC de los tipos de datos." #: ../Doc/whatsnew/2.6.rst:2810 +#, fuzzy msgid "" "Despite being primarily used on Mac OS X, the format has nothing Mac-" "specific about it and the Python implementation works on any platform that " "Python supports, so the :mod:`plistlib` module has been promoted to the " "standard library." msgstr "" +"A pesar de ser utilizado principalmente en Mac OS X, el formato no tiene " +"nada de específico para Mac y la implementación de Python funciona en " +"cualquier plataforma que soporte Python, por lo que el módulo :mod:" +"`plistlib` ha sido promovido a la biblioteca estándar." #: ../Doc/whatsnew/2.6.rst:2815 +#, fuzzy msgid "Using the module is simple::" -msgstr "" +msgstr "El uso del módulo es sencillo::" #: ../Doc/whatsnew/2.6.rst:2842 +#, fuzzy msgid "ctypes Enhancements" -msgstr "" +msgstr "mejoras en ctypes" #: ../Doc/whatsnew/2.6.rst:2844 +#, fuzzy msgid "" "Thomas Heller continued to maintain and enhance the :mod:`ctypes` module." -msgstr "" +msgstr "Thomas Heller siguió manteniendo y mejorando el módulo :mod:`ctypes`." #: ../Doc/whatsnew/2.6.rst:2847 +#, fuzzy msgid "" ":mod:`ctypes` now supports a :class:`c_bool` datatype that represents the " "C99 ``bool`` type. (Contributed by David Remahl; :issue:`1649190`.)" msgstr "" +":mod:`ctypes` soporta ahora un tipo de datos :class:`c_bool` que representa " +"el tipo C99 ``bool``. (Contribución de David Remahl; :issue:`1649190`.)" #: ../Doc/whatsnew/2.6.rst:2851 +#, fuzzy msgid "" "The :mod:`ctypes` string, buffer and array types have improved support for " "extended slicing syntax, where various combinations of ``(start, stop, " "step)`` are supplied. (Implemented by Thomas Wouters.)" msgstr "" +"Los tipos de cadena, buffer y array de :mod:`ctypes` han mejorado el soporte " +"para la sintaxis de corte extendida, donde se suministran varias " +"combinaciones de ``(start, stop, step)``. (Implementado por Thomas Wouters)" #: ../Doc/whatsnew/2.6.rst:2858 +#, fuzzy msgid "" "All :mod:`ctypes` data types now support :meth:`from_buffer` and :meth:" "`from_buffer_copy` methods that create a ctypes instance based on a provided " "buffer object. :meth:`from_buffer_copy` copies the contents of the object, " "while :meth:`from_buffer` will share the same memory area." msgstr "" +"Todos los tipos de datos :mod:`ctypes` soportan ahora los métodos :meth:" +"`from_buffer` y :meth:`from_buffer_copy` que crean una instancia de ctypes " +"basada en un objeto buffer proporcionado. :meth:`from_buffer_copy` copia el " +"contenido del objeto, mientras que :meth:`from_buffer` compartirá la misma " +"área de memoria." #: ../Doc/whatsnew/2.6.rst:2865 +#, fuzzy msgid "" "A new calling convention tells :mod:`ctypes` to clear the ``errno`` or Win32 " "LastError variables at the outset of each wrapped call. (Implemented by " "Thomas Heller; :issue:`1798`.)" msgstr "" +"Una nueva convención de llamada indica a :mod:`ctypes` que borre las " +"variables ``errno`` o Win32 LastError al inicio de cada llamada envuelta. " +"(Implementado por Thomas Heller; :issue:`1798`.)" #: ../Doc/whatsnew/2.6.rst:2869 +#, fuzzy msgid "" "You can now retrieve the Unix ``errno`` variable after a function call. " "When creating a wrapped function, you can supply ``use_errno=True`` as a " @@ -3196,27 +4945,44 @@ msgid "" "methods :meth:`set_errno` and :meth:`get_errno` to set and retrieve the " "error value." msgstr "" +"Ahora puede recuperar la variable Unix ``errno`` después de una llamada a " +"una función. Al crear una función envuelta, puede suministrar " +"``use_errno=True`` como parámetro de palabra clave a la función :func:`DLL` " +"y luego llamar a los métodos de nivel de módulo :meth:`set_errno` y :meth:" +"`get_errno` para establecer y recuperar el valor del error." #: ../Doc/whatsnew/2.6.rst:2875 +#, fuzzy msgid "" "The Win32 LastError variable is similarly supported by the :func:`DLL`, :" "func:`OleDLL`, and :func:`WinDLL` functions. You supply " "``use_last_error=True`` as a keyword parameter and then call the module-" "level methods :meth:`set_last_error` and :meth:`get_last_error`." msgstr "" +"La variable Win32 LastError es soportada de forma similar por las funciones :" +"func:`DLL`, :func:`OleDLL`, y :func:`WinDLL`. Se suministra " +"``use_last_error=True`` como parámetro de palabra clave y luego se llaman " +"los métodos a nivel de módulo :meth:`set_last_error` y :meth:" +"`get_last_error`." #: ../Doc/whatsnew/2.6.rst:2881 +#, fuzzy msgid "" "The :func:`byref` function, used to retrieve a pointer to a ctypes instance, " "now has an optional *offset* parameter that is a byte count that will be " "added to the returned pointer." msgstr "" +"La función :func:`byref`, utilizada para recuperar un puntero a una " +"instancia de ctypes, tiene ahora un parámetro opcional *offset* que es un " +"recuento de bytes que se añadirá al puntero devuelto." #: ../Doc/whatsnew/2.6.rst:2888 +#, fuzzy msgid "Improved SSL Support" -msgstr "" +msgstr "Mejora de la compatibilidad con SSL" #: ../Doc/whatsnew/2.6.rst:2890 +#, fuzzy msgid "" "Bill Janssen made extensive improvements to Python 2.6's support for the " "Secure Sockets Layer by adding a new module, :mod:`ssl`, that's built atop " @@ -3226,44 +4992,72 @@ msgid "" "Python. The existing SSL support in the :mod:`socket` module hasn't been " "removed and continues to work, though it will be removed in Python 3.0." msgstr "" +"Bill Janssen ha realizado amplias mejoras en el soporte de Python 2.6 para " +"la Capa de Conexión Segura añadiendo un nuevo módulo, :mod:`ssl`, que está " +"construido sobre la biblioteca `OpenSSL `__. Este " +"nuevo módulo proporciona más control sobre el protocolo negociado, los " +"certificados X.509 utilizados, y tiene un mejor soporte para escribir " +"servidores SSL (a diferencia de los clientes) en Python. El soporte SSL " +"existente en el módulo :mod:`socket` no ha sido eliminado y sigue " +"funcionando, aunque será eliminado en Python 3.0." #: ../Doc/whatsnew/2.6.rst:2899 +#, fuzzy msgid "" "To use the new module, you must first create a TCP connection in the usual " "way and then pass it to the :func:`ssl.wrap_socket` function. It's possible " "to specify whether a certificate is required, and to obtain certificate info " "by calling the :meth:`getpeercert` method." msgstr "" +"Para utilizar el nuevo módulo, primero hay que crear una conexión TCP de la " +"forma habitual y luego pasarla a la función :func:`ssl.wrap_socket`. Es " +"posible especificar si se requiere un certificado, y obtener información " +"sobre el mismo llamando al método :meth:`getpeercert`." #: ../Doc/whatsnew/2.6.rst:2906 +#, fuzzy msgid "The documentation for the :mod:`ssl` module." -msgstr "" +msgstr "La documentación del módulo :mod:`ssl`." #: ../Doc/whatsnew/2.6.rst:2911 +#, fuzzy msgid "Deprecations and Removals" -msgstr "" +msgstr "Cancelaciones y eliminaciones" #: ../Doc/whatsnew/2.6.rst:2913 ../Doc/whatsnew/2.6.rst:3241 +#, fuzzy msgid "" "String exceptions have been removed. Attempting to use them raises a :exc:" "`TypeError`." msgstr "" +"Se han eliminado las excepciones de cadena. Al intentar utilizarlas se " +"produce un :exc:`TypeError`." #: ../Doc/whatsnew/2.6.rst:2916 +#, fuzzy msgid "" "Changes to the :class:`Exception` interface as dictated by :pep:`352` " "continue to be made. For 2.6, the :attr:`message` attribute is being " "deprecated in favor of the :attr:`args` attribute." msgstr "" +"Los cambios en la interfaz :class:`Exception` dictados por :pep:`352` siguen " +"realizándose. En la versión 2.6, el atributo :attr:`message` queda obsoleto " +"en favor del atributo :attr:`args`." #: ../Doc/whatsnew/2.6.rst:2921 +#, fuzzy msgid "" "(3.0-warning mode) Python 3.0 will feature a reorganized standard library " "that will drop many outdated modules and rename others. Python 2.6 running " "in 3.0-warning mode will warn about these modules when they are imported." msgstr "" +"(modo 3.0-warning) Python 3.0 presentará una biblioteca estándar " +"reorganizada que eliminará muchos módulos obsoletos y renombrará otros. " +"Python 2.6 funcionando en modo 3.0-warning avisará de estos módulos cuando " +"se importen." #: ../Doc/whatsnew/2.6.rst:2926 +#, fuzzy msgid "" "The list of deprecated modules is: :mod:`audiodev`, :mod:`bgenlocations`, :" "mod:`buildtools`, :mod:`bundlebuilder`, :mod:`Canvas`, :mod:`compiler`, :mod:" @@ -3272,74 +5066,115 @@ msgid "" "`mhlib`, :mod:`mimetools`, :mod:`multifile`, :mod:`new`, :mod:`pure`, :mod:" "`statvfs`, :mod:`sunaudiodev`, :mod:`test.testall`, and :mod:`toaiff`." msgstr "" +"La lista de módulos obsoletos es: :mod:`audiodev`, :mod:`bgenlocations`, :" +"mod:`buildtools`, :mod:`bundlebuilder`, :mod:`Canvas`, :mod:`compiler`, :mod:" +"`dircache`, :mod:`dl`, :mod:`fpformat`, :mod:`gensuitemodule`, :mod:" +"`ihooks`, :mod:`imageop`, :mod:`imgfile`, :mod:`linuxaudiodev`, :mod:" +"`mhlib`, :mod:`mimetools`, :mod:`multifile`, :mod:`new`, :mod:`pure`, :mod:" +"`statvfs`, :mod:`sunaudiodev`, :mod:`test.testall`, y :mod:`toaiff`." #: ../Doc/whatsnew/2.6.rst:2951 +#, fuzzy msgid "The :mod:`gopherlib` module has been removed." -msgstr "" +msgstr "El módulo :mod:`gopherlib` ha sido eliminado." #: ../Doc/whatsnew/2.6.rst:2953 +#, fuzzy msgid "" "The :mod:`MimeWriter` module and :mod:`mimify` module have been deprecated; " "use the :mod:`email` package instead." msgstr "" +"El módulo :mod:`MimeWriter` y el módulo :mod:`mimify` han quedado obsoletos; " +"utilice en su lugar el paquete :mod:`email`." #: ../Doc/whatsnew/2.6.rst:2957 +#, fuzzy msgid "" "The :mod:`md5` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" +"El módulo :mod:`md5` ha quedado obsoleto; utilice en su lugar el módulo :mod:" +"`hashlib`." #: ../Doc/whatsnew/2.6.rst:2960 +#, fuzzy msgid "" "The :mod:`posixfile` module has been deprecated; :func:`fcntl.lockf` " "provides better locking." msgstr "" +"El módulo :mod:`posixfile` ha quedado obsoleto; :func:`fcntl.lockf` " +"proporciona un mejor bloqueo." #: ../Doc/whatsnew/2.6.rst:2963 +#, fuzzy msgid "" "The :mod:`popen2` module has been deprecated; use the :mod:`subprocess` " "module." msgstr "" +"El módulo :mod:`popen2` ha quedado obsoleto; utilice el módulo :mod:" +"`subprocess`." #: ../Doc/whatsnew/2.6.rst:2966 +#, fuzzy msgid "The :mod:`rgbimg` module has been removed." -msgstr "" +msgstr "Se ha eliminado el módulo :mod:`rgbimg`." #: ../Doc/whatsnew/2.6.rst:2968 +#, fuzzy msgid "" "The :mod:`sets` module has been deprecated; it's better to use the built-in :" "class:`set` and :class:`frozenset` types." msgstr "" +"El módulo :mod:`sets` ha quedado obsoleto; es mejor utilizar los tipos " +"incorporados :class:`set` y :class:`frozenset`." #: ../Doc/whatsnew/2.6.rst:2971 +#, fuzzy msgid "" "The :mod:`sha` module has been deprecated; use the :mod:`hashlib` module " "instead." msgstr "" +"El módulo :mod:`sha` ha quedado obsoleto; utilice en su lugar el módulo :mod:" +"`hashlib`." #: ../Doc/whatsnew/2.6.rst:2979 +#, fuzzy msgid "Build and C API Changes" -msgstr "" +msgstr "Cambios en la API de construcción y C" #: ../Doc/whatsnew/2.6.rst:2981 +#, fuzzy msgid "Changes to Python's build process and to the C API include:" msgstr "" +"Los cambios en el proceso de construcción de Python y en la API de C " +"incluyen:" #: ../Doc/whatsnew/2.6.rst:2983 +#, fuzzy msgid "" "Python now must be compiled with C89 compilers (after 19 years!). This " "means that the Python source tree has dropped its own implementations of :c:" "func:`memmove` and :c:func:`strerror`, which are in the C89 standard library." msgstr "" +"Python ahora debe ser compilado con compiladores C89 (¡después de 19 " +"años!). Esto significa que el árbol de fuentes de Python ha abandonado sus " +"propias implementaciones de :c:func:`memmove` y :c:func:`strerror`, que " +"están en la biblioteca estándar de C89." #: ../Doc/whatsnew/2.6.rst:2988 +#, fuzzy msgid "" "Python 2.6 can be built with Microsoft Visual Studio 2008 (version 9.0), and " "this is the new default compiler. See the :file:`PCbuild` directory for the " "build files. (Implemented by Christian Heimes.)" msgstr "" +"Python 2.6 puede ser construido con Microsoft Visual Studio 2008 (versión " +"9.0), y este es el nuevo compilador por defecto. Ver el directorio :file:" +"`PCbuild` para los archivos de construcción. (Implementado por Christian " +"Heimes)" #: ../Doc/whatsnew/2.6.rst:2993 +#, fuzzy msgid "" "On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. The :" "program:`configure` script can take a :option:`!--with-universal-archs=[32-" @@ -3347,22 +5182,37 @@ msgid "" "bit architectures (x86, PowerPC), 64-bit (x86-64 and PPC-64), or both. " "(Contributed by Ronald Oussoren.)" msgstr "" +"En Mac OS X, Python 2.6 puede ser compilado como una construcción universal " +"de 4 vías. El script :program:`configure` puede tomar una opción :`!--with-" +"universal-archs=[32-bit|64-bit|all]`, controlando si los binarios se " +"construyen para arquitecturas de 32 bits (x86, PowerPC), 64 bits (x86-64 y " +"PPC-64), o ambas. (Contribución de Ronald Oussoren)" #: ../Doc/whatsnew/2.6.rst:3000 +#, fuzzy msgid "" "The BerkeleyDB module now has a C API object, available as ``bsddb.db." "api``. This object can be used by other C extensions that wish to use the :" "mod:`bsddb` module for their own purposes. (Contributed by Duncan Grisby.)" msgstr "" +"El módulo BerkeleyDB tiene ahora un objeto C API, disponible como ``bsddb.db." +"api``. Este objeto puede ser utilizado por otras extensiones de C que " +"deseen utilizar el módulo :mod:`bsddb` para sus propios fines. (Contribución " +"de Duncan Grisby)" #: ../Doc/whatsnew/2.6.rst:3005 +#, fuzzy msgid "" "The new buffer interface, previously described in `the PEP 3118 section " "<#pep-3118-revised-buffer-protocol>`__, adds :c:func:`PyObject_GetBuffer` " "and :c:func:`PyBuffer_Release`, as well as a few other functions." msgstr "" +"La nueva interfaz del buffer, descrita previamente en `la sección PEP 3118 " +"<#pep-3118-revised-buffer-protocol>`__, añade :c:func:`PyObject_GetBuffer` " +"y :c:func:`PyBuffer_Release`, así como algunas otras funciones." #: ../Doc/whatsnew/2.6.rst:3010 +#, fuzzy msgid "" "Python's use of the C stdio library is now thread-safe, or at least as " "thread-safe as the underlying library is. A long-standing potential bug " @@ -3376,8 +5226,21 @@ msgid "" "immediately after the GIL is re-acquired. (Contributed by Antoine Pitrou and " "Gregory P. Smith.)" msgstr "" +"El uso que hace Python de la biblioteca stdio de C es ahora seguro para los " +"hilos, o al menos tan seguro como la biblioteca subyacente. Un error " +"potencial de larga data ocurría si un hilo cerraba un objeto de archivo " +"mientras otro hilo estaba leyendo o escribiendo en el objeto. En la versión " +"2.6 los objetos archivo tienen un contador de referencias, manipulado por " +"las funciones :c:func:`PyFile_IncUseCount` y :c:func:`PyFile_DecUseCount`. " +"Los objetos de archivo no pueden cerrarse a menos que el recuento de " +"referencias sea cero. :c:func:`PyFile_IncUseCount` debe llamarse mientras se " +"mantiene el GIL, antes de realizar una operación de E/S utilizando el " +"puntero ``FILE *``, y :c:func:`PyFile_DecUseCount` debe llamarse " +"inmediatamente después de recuperar el GIL. (Contribución de Antoine Pitrou " +"y Gregory P. Smith)" #: ../Doc/whatsnew/2.6.rst:3023 +#, fuzzy msgid "" "Importing modules simultaneously in two different threads no longer " "deadlocks; it will now raise an :exc:`ImportError`. A new API function, :c:" @@ -3386,8 +5249,15 @@ msgid "" "the import lock is held by another thread, an :exc:`ImportError` is raised. " "(Contributed by Christian Heimes.)" msgstr "" +"Importar módulos simultáneamente en dos hilos diferentes ya no se bloquea; " +"ahora lanzará un :exc:`ImportError`. Una nueva función de la API, :c:func:" +"`PyImport_ImportModuleNoBlock`, buscará un módulo en ``sys.modules`` " +"primero, y luego intentará importarlo después de adquirir un bloqueo de " +"importación. Si el bloqueo de importación está en manos de otro hilo, se " +"genera un :exc:`ImportError`. (Contribuido por Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:3031 +#, fuzzy msgid "" "Several functions return information about the platform's floating-point " "support. :c:func:`PyFloat_GetMax` returns the maximum representable " @@ -3398,8 +5268,17 @@ msgid "" "and the next largest value representable), and several others. (Contributed " "by Christian Heimes; :issue:`1534`.)" msgstr "" +"Varias funciones devuelven información sobre el soporte de punto flotante de " +"la plataforma. :c:func:`PyFloat_GetMax` devuelve el máximo valor de punto " +"flotante representable, y :c:func:`PyFloat_GetMin` devuelve el mínimo valor " +"positivo. :c:func:`PyFloat_GetInfo` devuelve un objeto que contiene más " +"información del fichero :file:`float.h`, como ``\"mant_dig\"`` (número de " +"dígitos en la mantisa), ``\"epsilon\"`` (diferencia más pequeña entre 1.0 y " +"el siguiente valor más grande representable), y varios otros. (Contribución " +"de Christian Heimes; :issue:`1534`.)" #: ../Doc/whatsnew/2.6.rst:3042 +#, fuzzy msgid "" "C functions and methods that use :c:func:`PyComplex_AsCComplex` will now " "accept arguments that have a :meth:`__complex__` method. In particular, the " @@ -3407,15 +5286,26 @@ msgid "" "method. This is a backport of a Python 3.0 change. (Contributed by Mark " "Dickinson; :issue:`1675423`.)" msgstr "" +"Las funciones y métodos de C que utilizan :c:func:`PyComplex_AsCComplex` " +"ahora aceptarán argumentos que tengan un método :meth:`__complex__`. En " +"particular, las funciones del módulo :mod:`cmath` ahora aceptarán objetos " +"con este método. Este es un retroceso de un cambio en Python 3.0. " +"(Contribuido por Mark Dickinson; :issue:`1675423`.)" #: ../Doc/whatsnew/2.6.rst:3049 +#, fuzzy msgid "" "Python's C API now includes two functions for case-insensitive string " "comparisons, ``PyOS_stricmp(char*, char*)`` and ``PyOS_strnicmp(char*, " "char*, Py_ssize_t)``. (Contributed by Christian Heimes; :issue:`1635`.)" msgstr "" +"La API de C de Python incluye ahora dos funciones para comparar cadenas sin " +"distinción de mayúsculas y minúsculas, ``PyOS_stricmp(char*, char*)`` y " +"``PyOS_strnicmp(char*, char*, Py_ssize_t)``. (Contribución de Christian " +"Heimes; :issue:`1635`.)" #: ../Doc/whatsnew/2.6.rst:3054 +#, fuzzy msgid "" "Many C extensions define their own little macro for adding integers and " "strings to the module's dictionary in the ``init*`` function. Python 2.6 " @@ -3423,8 +5313,14 @@ msgid "" "`PyModule_AddStringMacro` and :c:macro:`PyModule_AddIntMacro()`. " "(Contributed by Christian Heimes.)" msgstr "" +"Muchas extensiones de C definen su propia macro para añadir enteros y " +"cadenas al diccionario del módulo en la función ``init*``. Python 2.6 " +"finalmente define macros estándar para añadir valores a un módulo, :c:macro:" +"`PyModule_AddStringMacro` y :c:macro:`PyModule_AddIntMacro()`. " +"(Contribución de Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:3061 +#, fuzzy msgid "" "Some macros were renamed in both 3.0 and 2.6 to make it clearer that they " "are macros, not functions. :c:macro:`Py_Size()` became :c:macro:" @@ -3432,15 +5328,27 @@ msgid "" "`Py_Refcnt()` became :c:macro:`Py_REFCNT()`. The mixed-case macros are still " "available in Python 2.6 for backward compatibility. (:issue:`1629`)" msgstr "" +"Algunas macros han sido renombradas tanto en la 3.0 como en la 2.6 para " +"dejar más claro que son macros y no funciones. :c:macro:`Py_Size()` se " +"convierte en :c:macro:`Py_SIZE()`, :c:macro:`Py_Type()` se convierte en :c:" +"macro:`Py_TYPE()`, y :c:macro:`Py_Refcnt()` se convierte en :c:macro:" +"`Py_REFCNT()`. Las macros de mayúsculas y minúsculas siguen estando " +"disponibles en Python 2.6 por compatibilidad con versiones anteriores. (:" +"issue:`1629`)" #: ../Doc/whatsnew/2.6.rst:3070 +#, fuzzy msgid "" "Distutils now places C extensions it builds in a different directory when " "running on a debug version of Python. (Contributed by Collin Winter; :issue:" "`1530959`.)" msgstr "" +"Distutils ahora coloca las extensiones C que construye en un directorio " +"diferente cuando se ejecuta en una versión de depuración de Python. " +"(Contribución de Collin Winter; :issue:`1530959`.)" #: ../Doc/whatsnew/2.6.rst:3074 +#, fuzzy msgid "" "Several basic data types, such as integers and strings, maintain internal " "free lists of objects that can be re-used. The data structures for these " @@ -3448,8 +5356,15 @@ msgid "" "``free_list``, the counter is always named ``numfree``, and a macro " "``Py_MAXFREELIST`` is always defined." msgstr "" +"Varios tipos de datos básicos, como los enteros y las cadenas, mantienen " +"listas internas de objetos libres que pueden reutilizarse. Las estructuras " +"de datos para estas listas libres siguen ahora una convención de " +"nomenclatura: la variable se llama siempre ``free_list``, el contador se " +"llama siempre ``numfree``, y siempre se define una macro " +"``Py_MAXFREELIST``" #: ../Doc/whatsnew/2.6.rst:3081 +#, fuzzy msgid "" "A new Makefile target, \"make patchcheck\", prepares the Python source tree " "for making a patch: it fixes trailing whitespace in all modified ``.py`` " @@ -3457,8 +5372,14 @@ msgid "" "whether the :file:`Misc/ACKS` and :file:`Misc/NEWS` files have been updated. " "(Contributed by Brett Cannon.)" msgstr "" +"Un nuevo objetivo de Makefile, \"make patchcheck\", prepara el árbol de " +"fuentes de Python para hacer un parche: corrige los espacios en blanco al " +"final de todos los archivos ``.py`` modificados, comprueba si la " +"documentación ha sido cambiada, e informa si los archivos :file:`Misc/ACKS` " +"y :file:`Misc/NEWS` han sido actualizados. (Contribuido por Brett Cannon.)" #: ../Doc/whatsnew/2.6.rst:3088 +#, fuzzy msgid "" "Another new target, \"make profile-opt\", compiles a Python binary using " "GCC's profile-guided optimization. It compiles Python with profiling " @@ -3466,19 +5387,28 @@ msgid "" "compiles using these results for optimization. (Contributed by Gregory P. " "Smith.)" msgstr "" +"Otro nuevo objetivo, \"make profile-opt\", compila un binario de Python " +"utilizando la optimización guiada por perfiles de GCC. Compila Python con " +"el perfil habilitado, ejecuta el conjunto de pruebas para obtener un " +"conjunto de resultados de perfil, y luego compila usando estos resultados " +"para la optimización. (Contribución de Gregory P. Smith)" #: ../Doc/whatsnew/2.6.rst:3097 +#, fuzzy msgid "Port-Specific Changes: Windows" -msgstr "" +msgstr "Cambios específicos en los puertos: Windows" #: ../Doc/whatsnew/2.6.rst:3099 +#, fuzzy msgid "" "The support for Windows 95, 98, ME and NT4 has been dropped. Python 2.6 " "requires at least Windows 2000 SP4." msgstr "" +"Se ha eliminado el soporte para Windows 95, 98, ME y NT4. Python 2.6 " +"requiere al menos Windows 2000 SP4." #: ../Doc/whatsnew/2.6.rst:3102 -#, python-format +#, fuzzy, python-format msgid "" "The new default compiler on Windows is Visual Studio 2008 (version 9.0). The " "build directories for Visual Studio 2003 (version 7.1) and 2005 (version " @@ -3488,8 +5418,16 @@ msgid "" "(Contributed by Christian Heimes with help from Amaury Forgeot d'Arc and " "Martin von Löwis.)" msgstr "" +"El nuevo compilador por defecto en Windows es Visual Studio 2008 (versión " +"9.0). Los directorios de compilación para Visual Studio 2003 (versión 7.1) y " +"2005 (versión 8.0) se han trasladado al directorio PC/. El nuevo directorio :" +"file:`PCbuild` admite la compilación cruzada para X64, las compilaciones de " +"depuración y la optimización guiada por perfil (PGO). Las compilaciones PGO " +"son aproximadamente un 10% f más rápidas que las normales. (Contribuido por " +"Christian Heimes con la ayuda de Amaury Forgeot d'Arc y Martin von Löwis)" #: ../Doc/whatsnew/2.6.rst:3110 +#, fuzzy msgid "" "The :mod:`msvcrt` module now supports both the normal and wide char variants " "of the console I/O API. The :func:`getwch` function reads a keypress and " @@ -3497,21 +5435,35 @@ msgid "" "`putwch` function takes a Unicode character and writes it to the console. " "(Contributed by Christian Heimes.)" msgstr "" +"El módulo :mod:`msvcrt` soporta ahora las variantes normal y wide char de la " +"API de E/S de la consola. La función :func:`getwch` lee una pulsación de " +"tecla y devuelve un valor Unicode, al igual que la función :func:`getwche`. " +"La función :func:`putwch` toma un carácter Unicode y lo escribe en la " +"consola. (Contribución de Christian Heimes)" #: ../Doc/whatsnew/2.6.rst:3117 +#, fuzzy msgid "" ":func:`os.path.expandvars` will now expand environment variables in the form " "\"%var%\", and \"~user\" will be expanded into the user's home directory " "path. (Contributed by Josiah Carlson; :issue:`957650`.)" msgstr "" +":func:`os.path.expandvars` ahora expandirá las variables de entorno de la " +"forma \"%var%\", y \"~user\" se expandirá en la ruta del directorio personal " +"del usuario. (Contribución de Josiah Carlson; :issue:`957650`.)" #: ../Doc/whatsnew/2.6.rst:3121 +#, fuzzy msgid "" "The :mod:`socket` module's socket objects now have an :meth:`ioctl` method " "that provides a limited interface to the :c:func:`WSAIoctl` system interface." msgstr "" +"Los objetos socket del módulo :mod:`socket` tienen ahora un método :meth:" +"`ioctl` que proporciona una interfaz limitada a la interfaz del sistema :c:" +"func:`WSAIoctl`." #: ../Doc/whatsnew/2.6.rst:3125 +#, fuzzy msgid "" "The :mod:`_winreg` module now has a function, :func:" "`ExpandEnvironmentStrings`, that expands environment variable references " @@ -3519,41 +5471,68 @@ msgid "" "module now support the context protocol, so they can be used in :keyword:" "`with` statements. (Contributed by Christian Heimes.)" msgstr "" +"El módulo :mod:`_winreg` tiene ahora una función, :func:" +"`ExpandEnvironmentStrings`, que expande las referencias a variables de " +"entorno como ``%NAME%`` en una cadena de entrada. Los objetos handle " +"proporcionados por este módulo ahora soportan el protocolo de contexto, por " +"lo que pueden ser utilizados en sentencias :keyword:`with`. (Contribuido por " +"Christian Heimes.)" #: ../Doc/whatsnew/2.6.rst:3132 +#, fuzzy msgid "" ":mod:`_winreg` also has better support for x64 systems, exposing the :func:" "`DisableReflectionKey`, :func:`EnableReflectionKey`, and :func:" "`QueryReflectionKey` functions, which enable and disable registry reflection " "for 32-bit processes running on 64-bit systems. (:issue:`1753245`)" msgstr "" +":mod:`_winreg` también tiene un mejor soporte para los sistemas x64, " +"exponiendo las funciones :func:`DisableReflectionKey`, :func:" +"`EnableReflectionKey`, y :func:`QueryReflectionKey`, que habilitan y " +"deshabilitan la reflexión del registro para los procesos de 32 bits que se " +"ejecutan en sistemas de 64 bits. (:issue:`1753245`)" #: ../Doc/whatsnew/2.6.rst:3138 +#, fuzzy msgid "" "The :mod:`msilib` module's :class:`Record` object gained :meth:`GetInteger` " "and :meth:`GetString` methods that return field values as an integer or a " "string. (Contributed by Floris Bruynooghe; :issue:`2125`.)" msgstr "" +"El objeto :class:`Record` del módulo :mod:`msilib` ha ganado los métodos :" +"meth:`GetInteger` y :meth:`GetString` que devuelven los valores de los " +"campos como un entero o una cadena. (Contribución de Floris Bruynooghe; :" +"issue:`2125`.)" #: ../Doc/whatsnew/2.6.rst:3146 +#, fuzzy msgid "Port-Specific Changes: Mac OS X" -msgstr "" +msgstr "Cambios específicos en los puertos: Mac OS X" #: ../Doc/whatsnew/2.6.rst:3148 +#, fuzzy msgid "" "When compiling a framework build of Python, you can now specify the " "framework name to be used by providing the :option:`!--with-framework-name=` " "option to the :program:`configure` script." msgstr "" +"Cuando se compila una estructura de Python, ahora se puede especificar el " +"nombre de la estructura que se utilizará proporcionando la opción :option:" +"`!--with-framework-name=` al script :program:`configure`." #: ../Doc/whatsnew/2.6.rst:3153 +#, fuzzy msgid "" "The :mod:`macfs` module has been removed. This in turn required the :func:" "`macostools.touched` function to be removed because it depended on the :mod:" "`macfs` module. (:issue:`1490190`)" msgstr "" +"Se ha eliminado el módulo :mod:`macfs`. Esto, a su vez, ha requerido la " +"eliminación de la función :func:`macostools.touched` porque dependía del " +"módulo :mod:`macfs`. (:issue:`1490190`)" #: ../Doc/whatsnew/2.6.rst:3157 +#, fuzzy msgid "" "Many other Mac OS modules have been deprecated and will be removed in Python " "3.0: :mod:`_builtinSuites`, :mod:`aepack`, :mod:`aetools`, :mod:`aetypes`, :" @@ -3567,12 +5546,24 @@ msgid "" "`StdSuites`, :mod:`SystemEvents`, :mod:`Terminal`, and :mod:" "`terminalcommand`." msgstr "" +"Muchos otros módulos de Mac OS han quedado obsoletos y serán eliminados en " +"Python 3.0: :mod:`_builtinSuites`, :mod:`aepack`, :mod:`aetools`, :mod:" +"`aetypes`, :mod:`applesingle`, :mod:`appletrawmain`, :mod:`appletrunner`, :" +"mod:`argvemulator`, :mod:`Audio_mac`, :mod:`autoGIL`, :mod:`Carbon`, :mod:" +"`cfmfile`, :mod:`CodeWarrior`, :mod:`ColorPicker`, :mod:`EasyDialogs`, :mod:" +"`Explorer`, :mod:`Finder`, :mod:`FrameWork`, :mod:`findertools`, :mod:`ic`, :" +"mod:`icglue`, :mod:`icopen`, :mod:`macerrors`, :mod:`MacOS`, :mod:`macfs`, :" +"mod:`macostools`, :mod:`macresource`, :mod:`MiniAEFrame`, :mod:`Nav`, :mod:" +"`Netscape`, :mod:`OSATerminology`, :mod:`pimp`, :mod:`PixMapWrapper`, :mod:" +"`StdSuites`, :mod:`SystemEvents`, :mod:`Terminal`, y :mod:`terminalcommand`." #: ../Doc/whatsnew/2.6.rst:3200 +#, fuzzy msgid "Port-Specific Changes: IRIX" -msgstr "" +msgstr "Cambios específicos en los puertos: IRIX" #: ../Doc/whatsnew/2.6.rst:3202 +#, fuzzy msgid "" "A number of old IRIX-specific modules were deprecated and will be removed in " "Python 3.0: :mod:`al` and :mod:`AL`, :mod:`cd`, :mod:`cddb`, :mod:" @@ -3582,31 +5573,51 @@ msgid "" "`panelparser`, :mod:`readcd`, :mod:`SV` and :mod:`sv`, :mod:`torgb`, :mod:" "`videoreader`, and :mod:`WAIT`." msgstr "" +"Una serie de antiguos módulos específicos de IRIX fueron obsoletos y serán " +"eliminados en Python 3.0: :mod:`al` y :mod:`AL`, :mod:`cd`, :mod:`cddb`, :" +"mod:`cdplayer`, :mod:`CL` y :mod:`cl`, :mod:`DEVICE`, :mod:`ERRNO`, :mod:" +"`FILE`, :mod:`FL` y :mod:`fl`, :mod:`flp`, :mod:`fm`, :mod:`GET`, :mod:" +"`GLWS`, :mod:`GL` y :mod:`gl`, :mod:`IN`, :mod:`IOCTL`, :mod:`jpeg`, :mod:" +"`panelparser`, :mod:`readcd`, :mod:`SV` y :mod:`sv`, :mod:`torgb`, :mod:" +"`videoreader` y :mod:`WAIT`." #: ../Doc/whatsnew/2.6.rst:3232 +#, fuzzy msgid "Porting to Python 2.6" -msgstr "" +msgstr "Adaptación a Python 2.6" #: ../Doc/whatsnew/2.6.rst:3234 +#, fuzzy msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" msgstr "" +"Esta sección enumera los cambios descritos anteriormente y otras " +"correcciones de errores que pueden requerir cambios en su código:" #: ../Doc/whatsnew/2.6.rst:3237 +#, fuzzy msgid "" "Classes that aren't supposed to be hashable should set ``__hash__ = None`` " "in their definitions to indicate the fact." msgstr "" +"Las clases que no se supone que son hashable deben establecer ``__hash__ = " +"None`` en sus definiciones para indicar el hecho." #: ../Doc/whatsnew/2.6.rst:3244 +#, fuzzy msgid "" "The :meth:`__init__` method of :class:`collections.deque` now clears any " "existing contents of the deque before adding elements from the iterable. " "This change makes the behavior match ``list.__init__()``." msgstr "" +"El método :meth:`__init__` de :class:`collections.deque` ahora borra " +"cualquier contenido existente del deque antes de añadir elementos del " +"iterable. Este cambio hace que el comportamiento coincida con ``list." +"__init__()``." #: ../Doc/whatsnew/2.6.rst:3249 +#, fuzzy msgid "" ":meth:`object.__init__` previously accepted arbitrary arguments and keyword " "arguments, ignoring them. In Python 2.6, this is no longer allowed and will " @@ -3614,8 +5625,15 @@ msgid "" "that end up calling the corresponding method on :class:`object` (perhaps " "through using :func:`super`). See :issue:`1683368` for discussion." msgstr "" +":meth:`object.__init__` anteriormente aceptaba argumentos arbitrarios y " +"argumentos de palabras clave, ignorándolos. En Python 2.6, esto ya no está " +"permitido y resultará en un :exc:`TypeError`. Esto afectará a los métodos :" +"meth:`__init__` que acaben llamando al método correspondiente en :class:" +"`object` (quizás mediante el uso de :func:`super`). Ver :issue:`1683368` " +"para su discusión." #: ../Doc/whatsnew/2.6.rst:3256 +#, fuzzy msgid "" "The :class:`Decimal` constructor now accepts leading and trailing whitespace " "when passed a string. Previously it would raise an :exc:`InvalidOperation` " @@ -3623,37 +5641,63 @@ msgid "" "`Context` objects now explicitly disallows extra whitespace, raising a :exc:" "`ConversionSyntax` exception." msgstr "" +"El constructor :class:`Decimal` ahora acepta los espacios en blanco " +"iniciales y finales cuando se le pasa una cadena. Antes lanzaba una " +"excepción :exc:`InvalidOperation`. Por otro lado, el método :meth:" +"`create_decimal` de los objetos :class:`Context` ahora desestima " +"explícitamente los espacios en blanco adicionales, lanzando una excepción :" +"exc:`ConversionSyntax`." #: ../Doc/whatsnew/2.6.rst:3263 +#, fuzzy msgid "" "Due to an implementation accident, if you passed a file path to the built-" "in :func:`__import__` function, it would actually import the specified " "file. This was never intended to work, however, and the implementation now " "explicitly checks for this case and raises an :exc:`ImportError`." msgstr "" +"Debido a un accidente de implementación, si se pasaba una ruta de archivo a " +"la función incorporada :func:`__import__`, ésta importaría realmente el " +"archivo especificado. Sin embargo, nunca se pretendió que esto funcionara, " +"y la implementación ahora comprueba explícitamente este caso y lanza un :exc:" +"`ImportError`." #: ../Doc/whatsnew/2.6.rst:3269 +#, fuzzy msgid "" "C API: the :c:func:`PyImport_Import` and :c:func:`PyImport_ImportModule` " "functions now default to absolute imports, not relative imports. This will " "affect C extensions that import other modules." msgstr "" +"API C: las funciones :c:func:`PyImport_Import` y :c:func:" +"`PyImport_ImportModule` ahora se ajustan por defecto a importaciones " +"absolutas, no a importaciones relativas. Esto afectará a las extensiones de " +"C que importen otros módulos." #: ../Doc/whatsnew/2.6.rst:3273 +#, fuzzy msgid "" "C API: extension data types that shouldn't be hashable should define their " "``tp_hash`` slot to :c:func:`PyObject_HashNotImplemented`." msgstr "" +"API C: los tipos de datos de extensión que no deben ser hashable deben " +"definir su ranura ``tp_hash`` a :c:func:`PyObject_HashNotImplemented`." #: ../Doc/whatsnew/2.6.rst:3277 +#, fuzzy msgid "" "The :mod:`socket` module exception :exc:`socket.error` now inherits from :" "exc:`IOError`. Previously it wasn't a subclass of :exc:`StandardError` but " "now it is, through :exc:`IOError`. (Implemented by Gregory P. Smith; :issue:" "`1706815`.)" msgstr "" +"La excepción del módulo :mod:`socket` :exc:`socket.error` ahora hereda de :" +"exc:`IOError`. Anteriormente no era una subclase de :exc:`StandardError` " +"pero ahora lo es, a través de :exc:`IOError`. (Implementado por Gregory P. " +"Smith; :issue:`1706815`.)" #: ../Doc/whatsnew/2.6.rst:3282 +#, fuzzy msgid "" "The :mod:`xmlrpclib` module no longer automatically converts :class:" "`datetime.date` and :class:`datetime.time` to the :class:`xmlrpclib." @@ -3661,36 +5705,60 @@ msgid "" "all applications. Code using :mod:`xmlrpclib` should convert :class:`date` " "and :class:`~datetime.time` instances. (:issue:`1330538`)" msgstr "" +"El módulo :mod:`xmlrpclib` ya no convierte automáticamente las instancias :" +"class:`datetime.date` y :class:`datetime.time` al tipo :class:`xmlrpclib." +"DateTime`; la semántica de conversión no era necesariamente correcta para " +"todas las aplicaciones. El código que utiliza :mod:`xmlrpclib` debe " +"convertir las instancias :class:`date` y :class:`~datetime.time`. (:issue:" +"`1330538`)" #: ../Doc/whatsnew/2.6.rst:3289 +#, fuzzy msgid "" "(3.0-warning mode) The :class:`Exception` class now warns when accessed " "using slicing or index access; having :class:`Exception` behave like a tuple " "is being phased out." msgstr "" +"(Modo de advertencia 3.0) La clase :class:`Exception` ahora advierte cuando " +"se accede utilizando el acceso a la rebanada o al índice; tener :class:" +"`Exception` se comporta como una tupla está siendo eliminado." #: ../Doc/whatsnew/2.6.rst:3293 +#, fuzzy msgid "" "(3.0-warning mode) inequality comparisons between two dictionaries or two " "objects that don't implement comparison methods are reported as warnings. " "``dict1 == dict2`` still works, but ``dict1 < dict2`` is being phased out." msgstr "" +"(modo de advertencia 3.0) las comparaciones de desigualdad entre dos " +"diccionarios o dos objetos que no implementan métodos de comparación se " +"reportan como advertencias. ``dict1 == dict2`` sigue funcionando, pero " +"``dict1 < dict2`` está siendo eliminado." #: ../Doc/whatsnew/2.6.rst:3298 +#, fuzzy msgid "" "Comparisons between cells, which are an implementation detail of Python's " "scoping rules, also cause warnings because such comparisons are forbidden " "entirely in 3.0." msgstr "" +"Las comparaciones entre celdas, que son un detalle de implementación de las " +"reglas de alcance de Python, también causan advertencias porque tales " +"comparaciones están prohibidas por completo en 3.0." #: ../Doc/whatsnew/2.6.rst:3308 msgid "Acknowledgements" -msgstr "" +msgstr "Agradecimientos" #: ../Doc/whatsnew/2.6.rst:3310 +#, fuzzy msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " "Georg Brandl, Steve Brown, Nick Coghlan, Ralph Corderoy, Jim Jewett, Kent " "Johnson, Chris Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner." msgstr "" +"El autor desea agradecer a las siguientes personas sus sugerencias, " +"correcciones y ayuda en varios borradores de este artículo: Georg Brandl, " +"Steve Brown, Nick Coghlan, Ralph Corderoy, Jim Jewett, Kent Johnson, Chris " +"Lambacher, Martin Michlmayr, Antoine Pitrou, Brian Warner." diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 5e6ab30f33..d39fba028a 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -11,7 +11,7 @@ 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: 2020-12-16 18:23-0300\n" +"PO-Revision-Date: 2021-03-23 18:50-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1070,12 +1070,21 @@ msgid "" "code is being used by checking :data:`sys.float_repr_style`, which will be " "``short`` if the new code is in use and ``legacy`` if it isn't." msgstr "" +"La biblioteca de redondeo responsable de esta mejora funciona en Windows y " +"en plataformas Unix utilizando los compiladores gcc, icc o suncc. Puede " +"haber un pequeño número de plataformas donde no se puede garantizar el " +"correcto funcionamiento de este código, por lo que el código no se utiliza " +"en dichos sistemas. Puede averiguar qué código se está utilizando marcando :" +"data:`sys.float_repr_style`, que será ``short`` si el nuevo código está en " +"uso y ``legacy`` si no lo está." #: ../Doc/whatsnew/2.7.rst:757 msgid "" "Implemented by Eric Smith and Mark Dickinson, using David Gay's :file:`dtoa." "c` library; :issue:`7117`." msgstr "" +"Implementado por Eric Smith y Mark Dickinson, utilizando la biblioteca de " +"David Gay's :file:`dtoa.c`; :issue:`7117`." #: ../Doc/whatsnew/2.7.rst:760 msgid "" @@ -1086,22 +1095,32 @@ msgid "" "2.7 now approximates more closely. For example, Python 2.6 computed the " "following::" msgstr "" +"Las conversiones de enteros largos y enteros normales a punto flotante ahora " +"redondean de forma diferente, devolviendo el número de punto flotante más " +"cercano al número. Esto no importa para los enteros pequeños que se pueden " +"convertir exactamente, pero para los números grandes que inevitablemente " +"perderán precisión, Python 2.7 ahora se aproxima más de cerca. Por ejemplo, " +"Python 2.6 calculó lo siguiente::" #: ../Doc/whatsnew/2.7.rst:773 msgid "" "Python 2.7's floating-point result is larger, but much closer to the true " "value::" msgstr "" +"El resultado de punto flotante de Python 2.7 es mayor, pero mucho más cerca " +"del valor verdadero::" #: ../Doc/whatsnew/2.7.rst:782 msgid "(Implemented by Mark Dickinson; :issue:`3166`.)" -msgstr "" +msgstr "(Implementado por Mark Dickinson; :issue:`3166`.)" #: ../Doc/whatsnew/2.7.rst:784 msgid "" "Integer division is also more accurate in its rounding behaviours. (Also " "implemented by Mark Dickinson; :issue:`1811`.)" msgstr "" +"La división de enteros también es más precisa en sus comportamientos de " +"redondeo. (También implementado por Mark Dickinson; :issue:`1811`.)" #: ../Doc/whatsnew/2.7.rst:787 msgid "" @@ -1109,6 +1128,9 @@ msgid "" "no longer ever attempt to call a :meth:`__coerce__` method on complex " "objects. (Removed by Meador Inge and Mark Dickinson; :issue:`5211`.)" msgstr "" +"Se ha eliminado la coerción implícita para números complejos; el intérprete " +"ya no intentará llamar a un método :meth:`__coerce__` en objetos complejos. " +"(Eliminado por Meador Inge y Mark Dickinson; :issue:`5211`.)" #: ../Doc/whatsnew/2.7.rst:791 #, python-format @@ -1117,6 +1139,9 @@ msgid "" "replacement fields. This makes using :meth:`str.format` more closely " "resemble using ``%s`` formatting::" msgstr "" +"El método :meth:`str.format` ahora admite la numeración automática de los " +"campos de reemplazo. Esto hace que el uso de :meth:`str.format` se parezca " +"más al uso del formato ``%s``::" #: ../Doc/whatsnew/2.7.rst:800 msgid "" @@ -1127,6 +1152,13 @@ msgid "" "fields or none of them -- but you can mix auto-numbering and named fields, " "as in the second example above. (Contributed by Eric Smith; :issue:`5237`.)" msgstr "" +"La numeración automática toma los campos de izquierda a derecha, por lo que " +"el primer especificador ``{...}`` usará el primer argumento a :meth:`str." +"format`, el siguiente especificador usará el siguiente argumento, y así " +"sucesivamente. No puede mezclar la numeración automática y la numeración " +"explícita -- o numeran todos los campos especificados o ninguno de ellos -- " +"pero puede mezclar la numeración automática y los campos con nombre, como en " +"el segundo ejemplo anterior. (Contribuido por Eric Smith; :issue:`5237`.)" #: ../Doc/whatsnew/2.7.rst:807 msgid "" @@ -1136,6 +1168,12 @@ msgid "" "width and alignment is applied to the whole of the resulting ``1.5+3j`` " "output. (Contributed by Eric Smith; :issue:`1588` and :issue:`7988`.)" msgstr "" +"Los números complejos ahora admiten correctamente el uso con :func:`format` " +"y, por defecto, están alineados a la derecha. Especificar una precisión o " +"separación de comas se aplica a las partes reales e imaginarias del número, " +"pero un ancho de campo y una alineación especificados se aplica a la " +"totalidad de la salida ''1.5+3j'' resultante. (Contribuido por Eric Smith; :" +"issue:`1588` y :issue:`7988`.)" #: ../Doc/whatsnew/2.7.rst:814 msgid "" @@ -1143,6 +1181,9 @@ msgid "" "characters, so it will now produce 'INF' and 'NAN'. (Contributed by Eric " "Smith; :issue:`3382`.)" msgstr "" +"El código de formato 'F' ahora siempre da formato a su salida utilizando " +"caracteres en mayúsculas, por lo que ahora producirá 'INF' y 'NAN'. " +"(Contribuido por Eric Smith; :issue:`3382`.)" #: ../Doc/whatsnew/2.7.rst:818 msgid "" @@ -1155,16 +1196,28 @@ msgid "" "alignment or precision, presumably you're expecting the formatting to be " "applied in some object-specific way. (Fixed by Eric Smith; :issue:`7994`.)" msgstr "" +"Un cambio de bajo nivel: el método :meth:`object.__format__` ahora " +"desencadena un :exc:`PendingDeprecationWarning` si se pasa una cadena de " +"formato, porque el método :meth:`__format__` para :class:`object` convierte " +"el objeto en una representación de cadena y da formato a eso. " +"Anteriormente, el método aplicaba silenciosamente la cadena de formato a la " +"representación de cadena, pero eso podía ocultar errores en el código de " +"Python. Si proporciona información de formato, como una alineación o una " +"precisión, presumiblemente espera que el formato se aplique de alguna manera " +"específica del objeto. (Arreglado por Eric Smith; :issue:`7994`.)" #: ../Doc/whatsnew/2.7.rst:828 msgid "" "The :func:`int` and :func:`long` types gained a ``bit_length`` method that " "returns the number of bits necessary to represent its argument in binary::" msgstr "" +"Los tipos :func:`int` y :func:`long` obtuvieron un método ``bit_length`` que " +"devuelve el número de bits necesarios para representar su argumento en " +"binario::" #: ../Doc/whatsnew/2.7.rst:843 msgid "(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.)" -msgstr "" +msgstr "(Contribuido por Fredrik Johansson y Victor Stinner; :issue:`3439`.)" #: ../Doc/whatsnew/2.7.rst:845 msgid "" @@ -1173,6 +1226,11 @@ msgid "" "could possibly break certain :keyword:`!import` statements that were only " "working by accident. (Fixed by Meador Inge; :issue:`7902`.)" msgstr "" +"La instrucción :keyword:`import` ya no intentará una importación absoluta si " +"se produce un error en una importación relativa (por ejemplo, ``from .os " +"import sep``). Esto corrige un error, pero posiblemente podría romper " +"ciertas instrucciones :keyword:`!import` que solo funcionaban por " +"accidente. (Arreglado por Meador Inge; :issue:`7902`.)" #: ../Doc/whatsnew/2.7.rst:851 msgid "" @@ -1180,6 +1238,9 @@ msgid "" "override the :meth:`__unicode__` method. (Implemented by Victor Stinner; :" "issue:`1583863`.)" msgstr "" +"Ahora es posible que una subclase del tipo integrado :class:`unicode` " +"reemplace el método :meth:`__unicode__`. (Implementado por Victor Stinner; :" +"issue:`1583863`.)" #: ../Doc/whatsnew/2.7.rst:855 msgid "" @@ -1187,6 +1248,9 @@ msgid "" "accepts ``None`` as its first argument. (Fixed by Georg Brandl; :issue:" "`4759`.)" msgstr "" +"El método :meth:`~bytearray.translate` del tipo :class:`bytearray` ahora " +"acepta ``None`` como su primer argumento. (Arreglado por Georg Brandl; :" +"issue:`4759`.)" #: ../Doc/whatsnew/2.7.rst:861 msgid "" @@ -1195,6 +1259,10 @@ msgid "" "their :attr:`__func__` attribute. (Contributed by Amaury Forgeot d'Arc, " "after a suggestion by George Sakkis; :issue:`5982`.)" msgstr "" +"Cuando se usa ``@classmethod`` y ``@staticmethod`` para envolver métodos " +"como clase o métodos estáticos, el objeto decorador ahora expone la función " +"decoradora como su atributo :attr:`__func__`. (Contribuido por Amaury " +"Forgeot d'Arc, después de una sugerencia de George Sakkis; :issue:`5982`.)" #: ../Doc/whatsnew/2.7.rst:867 ../Doc/whatsnew/2.7.rst:2462 msgid "" @@ -1202,6 +1270,10 @@ msgid "" "an unset attribute would not raise :exc:`AttributeError` as you would " "expect. Fixed by Benjamin Peterson; :issue:`7604`.)" msgstr "" +"Cuando se estableció un conjunto restringido de atributos mediante " +"``__slots__``, eliminar un atributo desarmado no llamaría :exc:" +"`AttributeError` como cabría esperar. Corregido por Benjamin Peterson; :" +"issue:`7604`.)" #: ../Doc/whatsnew/2.7.rst:871 msgid "" @@ -1210,6 +1282,11 @@ msgid "" "contributed by Alexander Belchenko and Amaury Forgeot d'Arc in :issue:" "`1616979`; CP858 contributed by Tim Hatch in :issue:`8016`.)" msgstr "" +"Ahora se admiten dos nuevas codificaciones: \"cp720\", que se utiliza " +"principalmente para texto árabe; y \"cp858\", una variante de CP 850 que " +"añade el símbolo del euro. (CP720 contribuido por Alexander Belchenko y " +"Amaury Forgeot d'Arc en :issue:`1616979`; CP858 contribuido por Tim Hatch " +"en :issue:`8016`.)" #: ../Doc/whatsnew/2.7.rst:877 msgid "" @@ -1219,6 +1296,12 @@ msgid "" "forbids writing to read-only file objects instead of trusting the C library " "to catch and report the error (fixed by Stefan Krah; :issue:`5677`)." msgstr "" +"El objeto :class:`file` ahora establecerá el atributo :attr:`filename` en la " +"excepción :exc:`IOError` al intentar abrir un directorio en plataformas " +"POSIX (señalada por Jan Kaliszewski; :issue:`4764`), y ahora comprueba " +"explícitamente y prohíbe escribir en objetos de archivo de solo lectura en " +"lugar de confiar en la biblioteca C para detectar e informar del error " +"(arreglado por Stefan Krah; :issue:`5677`)." #: ../Doc/whatsnew/2.7.rst:884 msgid "" @@ -1227,6 +1310,10 @@ msgid "" "convention. Additionally, it no longer requires that the code end in a " "newline." msgstr "" +"El tokenizador de Python ahora traduce las terminaciones de línea por sí " +"mismo, por lo que la función integrada :func:`compile` ahora acepta código " +"mediante cualquier convención de fin de línea. Además, ya no requiere que " +"el código finalice en una nueva línea." #: ../Doc/whatsnew/2.7.rst:889 msgid "" @@ -1235,6 +1322,11 @@ msgid "" "mode, Python 2.7 will now warn about this odd usage. (Noted by James " "Lingard; :issue:`7362`.)" msgstr "" +"Los paréntesis adicionales en las definiciones de función son ilegales en " +"Python 3.x, lo que significa que se obtiene un error de sintaxis de ``def " +"f((x)): pass``. En el modo de advertencia Python3, Python 2.7 ahora " +"advertirá sobre este uso no común. (Anotado por James Lingard; :" +"issue:'7362'.)" #: ../Doc/whatsnew/2.7.rst:894 msgid "" @@ -1242,6 +1334,9 @@ msgid "" "style classes were always weak-referenceable. (Fixed by Antoine Pitrou; :" "issue:`8268`.)" msgstr "" +"Ahora es posible crear referencias débiles a objetos de clase de estilo " +"antiguo. Las clases de estilo nuevo siempre eran de referencia débil. " +"(Corregido por Antoine Pitrou; :issue:`8268`.)" #: ../Doc/whatsnew/2.7.rst:898 msgid "" @@ -1249,10 +1344,12 @@ msgid "" "only cleared if no one else is holding a reference to the dictionary (:issue:" "`7140`)." msgstr "" +"Cuando se recicla un objeto de módulo, el diccionario del módulo ahora solo " +"se borra si nadie más tiene una referencia al diccionario (:issue:`7140`)." #: ../Doc/whatsnew/2.7.rst:907 msgid "Interpreter Changes" -msgstr "" +msgstr "Cambios en el intérprete" #: ../Doc/whatsnew/2.7.rst:909 msgid "" @@ -1261,6 +1358,11 @@ msgid "" "equivalent to those used with the :option:`-W` switch, separated by commas. " "(Contributed by Brian Curtin; :issue:`7301`.)" msgstr "" +"Una nueva variable de entorno, :envvar:`PYTHONWARNINGS`, permite controlar " +"las advertencias. Debe establecerse en una cadena que contenga la " +"configuración de advertencia, equivalente a las utilizadas con el " +"modificador :option:`-W`, separado por comas. (Contribuido por Brian " +"Curtin; :issue:`7301`.)" #: ../Doc/whatsnew/2.7.rst:915 msgid "" @@ -1269,14 +1371,18 @@ msgid "" "exact syntax for setting an environment variable varies across operating " "systems and shells.)" msgstr "" +"Por ejemplo, la siguiente configuración imprimirá advertencias cada vez que " +"se produzcan, pero convertirá las advertencias del módulo :mod:`Cookie` en " +"un error. (La sintaxis exacta para establecer una variable de entorno varía " +"entre sistemas operativos y vaciados.)" #: ../Doc/whatsnew/2.7.rst:928 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/2.7.rst:930 msgid "Several performance enhancements have been added:" -msgstr "" +msgstr "Se han añadido varias mejoras de rendimiento:" #: ../Doc/whatsnew/2.7.rst:932 msgid "" @@ -1284,6 +1390,9 @@ msgid "" "statements, looking up the :meth:`__enter__` and :meth:`__exit__` methods. " "(Contributed by Benjamin Peterson.)" msgstr "" +"Se agregó un nuevo código de operación para realizar la configuración " +"inicial de las instrucciones :keyword:`with`, buscando los métodos :meth:" +"`__enter__` y :meth:`__exit__`. (Contribución de Benjamin Peterson.)" #: ../Doc/whatsnew/2.7.rst:936 #, python-format @@ -1298,6 +1407,16 @@ msgid "" "objects in the oldest generation. (Suggested by Martin von Löwis and " "implemented by Antoine Pitrou; :issue:`4074`.)" msgstr "" +"El recolector de elementos no utilizados ahora funciona mejor para un patrón " +"de uso común: cuando se asignan muchos objetos sin desasignar ninguno de " +"ellos. Esto anteriormente tomaría tiempo cuadrático para la recolección de " +"elementos no utilizados, pero ahora el número de colecciones de elementos no " +"utilizados completas se reduce a medida que crece el número de objetos en el " +"montón. La nueva lógica solo realiza un paso completo de recolección de " +"elementos no utilizados cuando la generación media se ha recopilado 10 veces " +"y cuando el número de objetos supervivientes de la generación media supera " +"el 10% del número de objetos de la generación más antigua. (Sugerido por " +"Martin von Löwis e implementado por Antoine Pitrou; :issue:`4074`.)" #: ../Doc/whatsnew/2.7.rst:947 msgid "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index f23cd1d666..b454baf0be 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -11,7 +11,7 @@ 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: 2021-02-13 22:51-0300\n" +"PO-Revision-Date: 2021-09-06 09:08-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1000,7 +1000,6 @@ msgstr "" "correo electrónico en formato de bytes." #: ../Doc/whatsnew/3.2.rst:687 -#, fuzzy msgid "" "New functions :func:`~email.message_from_bytes` and :func:`~email." "message_from_binary_file`, and new classes :class:`~email.parser." @@ -1010,7 +1009,7 @@ msgstr "" "Nuevas funciones :func:`~email.message_from_bytes` y :func:`~email." "message_from_binary_file`, y nuevas clases :class:`~email.parser." "BytesFeedParser` y :class:`~email.parser.BytesParser` permiten mensajes de " -"datos en binario ser analizados (*parsed*) en objetos modelados." +"datos en binario para ser analizados (*parsed*) en objetos modelados." #: ../Doc/whatsnew/3.2.rst:692 msgid "" @@ -2125,7 +2124,7 @@ msgstr "" #: ../Doc/whatsnew/3.2.rst:1395 msgid "(Available on Unix systems. Patch by Sébastien Sablé in :issue:`9862`)" msgstr "" -"(Disponbile en sistemas Unix. Parche de Sébastien Sablé en :issue:`9862`)" +"(Disponible en sistemas Unix. Parche de Sébastien Sablé en :issue:`9862`)" #: ../Doc/whatsnew/3.2.rst:1398 msgid "gzip and zipfile" diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index db5240657b..bdeeb9028a 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -6,7 +6,6 @@ # 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" @@ -18,19 +17,22 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: José Luis Salgado Banda\n" +"Language: es_MX\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/whatsnew/3.5.rst:3 msgid "What's New In Python 3.5" -msgstr "" +msgstr "Qué hay de nuevo en Python 3.5" #: ../Doc/whatsnew/3.5.rst msgid "Editors" -msgstr "" +msgstr "Editores" #: ../Doc/whatsnew/3.5.rst:5 msgid "Elvis Pranskevichus , Yury Selivanov " -msgstr "" +msgstr "Elvis Pranskevichus , Yury Selivanov " #: ../Doc/whatsnew/3.5.rst:47 msgid "" @@ -38,70 +40,88 @@ msgid "" "Python 3.5 was released on September 13, 2015.  See the `changelog `_ for a full list of changes." msgstr "" +"Este artículo explica las nuevas características de Python 3.5, en " +"comparación con 3.4. Python 3.5 se publicó el 13 de septiembre de 2015. " +"Consultar el `registro de cambios `_ para una lista completa de cambios." #: ../Doc/whatsnew/3.5.rst:54 msgid ":pep:`478` - Python 3.5 Release Schedule" -msgstr "" +msgstr ":pep:`478` - Python 3.5 Calendario de lanzamiento de Python 3.5" #: ../Doc/whatsnew/3.5.rst:58 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Resumen -- Aspectos destacados de la versión" #: ../Doc/whatsnew/3.5.rst:60 msgid "New syntax features:" -msgstr "" +msgstr "Nuevas características de sintaxis:" #: ../Doc/whatsnew/3.5.rst:62 msgid "" ":ref:`PEP 492 `, coroutines with async and await syntax." msgstr "" +":ref:`PEP 492 `, corrutinas con sintaxis async y await." #: ../Doc/whatsnew/3.5.rst:63 msgid "" ":ref:`PEP 465 `, a new matrix multiplication operator: ``a " "@ b``." msgstr "" +":ref:`PEP 465 `, un nuevo operador de multiplicación de " +"matrices: ``a @ b``." #: ../Doc/whatsnew/3.5.rst:64 msgid "" ":ref:`PEP 448 `, additional unpacking generalizations." msgstr "" +":ref:`PEP 448 `, generalizaciones de desembalaje " +"adicionales." #: ../Doc/whatsnew/3.5.rst:67 msgid "New library modules:" -msgstr "" +msgstr "Nuevos módulos:" #: ../Doc/whatsnew/3.5.rst:69 msgid ":mod:`typing`: :ref:`PEP 484 -- Type Hints `." msgstr "" +":mod:`typing`: :ref:`PEP 484 -- Indicador de tipos `." #: ../Doc/whatsnew/3.5.rst:70 msgid "" ":mod:`zipapp`: :ref:`PEP 441 Improving Python ZIP Application Support " "`." msgstr "" +":mod:`zipapp`: :ref:`PEP 441 Mejora de soporte de la aplicación Python ZIP " +"`." #: ../Doc/whatsnew/3.5.rst:74 msgid "New built-in features:" -msgstr "" +msgstr "Nuevas características integradas:" #: ../Doc/whatsnew/3.5.rst:76 msgid "" "``bytes % args``, ``bytearray % args``: :ref:`PEP 461 ` -- " "Adding ``%`` formatting to bytes and bytearray." msgstr "" +"``bytes % args``, ``bytearray % args``: :ref:`PEP 461 ` -- " +"Agrega formato ``%`` a bytes y bytearray." #: ../Doc/whatsnew/3.5.rst:79 msgid "" "New :meth:`bytes.hex`, :meth:`bytearray.hex` and :meth:`memoryview.hex` " "methods. (Contributed by Arnon Yaari in :issue:`9951`.)" msgstr "" +"Nuevos métodos :meth:`bytes.hex`, :meth:`bytearray.hex` y :meth:`memoryview." +"hex`. (Contribución de Arnon Yaari en :issue:`9951`.)" #: ../Doc/whatsnew/3.5.rst:82 msgid "" ":class:`memoryview` now supports tuple indexing (including multi-" "dimensional). (Contributed by Antoine Pitrou in :issue:`23632`.)" msgstr "" +":class:`memoryview` ahora admite la indexación de tuplas (incluida la " +"multidimensional). (Contribución de Antoine Pitrou en :issue:`23632`.)" #: ../Doc/whatsnew/3.5.rst:85 msgid "" @@ -109,16 +129,22 @@ msgid "" "being iterated by ``yield from`` expressions. (Contributed by Benno Leslie " "and Yury Selivanov in :issue:`24450`.)" msgstr "" +"Los generadores tienen un nuevo atributo ``gi_yieldfrom``, el cual retorna " +"el objeto que está siendo iterado por expresiones ``yield from``. " +"(Contribución de Benno Leslie y Yury Selivanov en :issue:`24450`.)" #: ../Doc/whatsnew/3.5.rst:89 msgid "" "A new :exc:`RecursionError` exception is now raised when maximum recursion " "depth is reached. (Contributed by Georg Brandl in :issue:`19235`.)" msgstr "" +"Ahora se genera una nueva excepción :exc:`RecursionError` cuando se alcanza " +"la profundidad máxima de recursividad. (Contribución de Georg Brandl en :" +"issue:`19235`.)" #: ../Doc/whatsnew/3.5.rst:94 msgid "CPython implementation improvements:" -msgstr "" +msgstr "Mejoras en la implementación de CPython:" #: ../Doc/whatsnew/3.5.rst:96 msgid "" @@ -127,6 +153,11 @@ msgid "" "handler, instead of the ``strict`` error handler. (Contributed by Victor " "Stinner in :issue:`19977`.)" msgstr "" +"Cuando la configuración regional ``LC_TYPE`` es la configuración regional " +"POSIX (configuración regional ``C``), ahora :py:data:`sys.stdin` y :py:data:" +"`sys.stdout` usan el controlador de errores ``surrogateescape``, en lugar " +"del controlador de errores ``strict``. (Contribución de Victor Stinner en :" +"issue:`19977`.)" #: ../Doc/whatsnew/3.5.rst:101 msgid "" @@ -134,6 +165,10 @@ msgid "" "scheme that includes the optimization level explicitly in ``.pyc`` name. " "(See :ref:`PEP 488 overview `.)" msgstr "" +"Los archivos ``.pyo`` ya no se utilizan y han sido reemplazados por un " +"esquema más flexible que incluye el nivel de optimización explícitamente en " +"el nombre ``.pyc``. (Consultar la :ref:`PEP 488 descripción general " +"`.)" #: ../Doc/whatsnew/3.5.rst:105 msgid "" @@ -141,50 +176,66 @@ msgid "" "which is similar to how Python modules are loaded. (See :ref:`PEP 489 " "overview `.)" msgstr "" +"Ahora los módulos integrados y de extensión son inicializados en un proceso " +"de múltiples fases, que es similar a cómo los módulos de Python son " +"cargados. (Consultar :ref:`PEP 489 descripción general `.)" #: ../Doc/whatsnew/3.5.rst:110 msgid "Significant improvements in the standard library:" -msgstr "" +msgstr "Mejoras significativas en la biblioteca estándar:" #: ../Doc/whatsnew/3.5.rst:112 msgid "" ":class:`collections.OrderedDict` is now :ref:`implemented in C `, which makes it 4 to 100 times faster." msgstr "" +":class:`collections.OrderedDict` ahora está :ref:`implementado en C " +"`, que lo hace de 4 a 100 veces más rápido." #: ../Doc/whatsnew/3.5.rst:116 msgid "" "The :mod:`ssl` module gained :ref:`support for Memory BIO `, which decouples SSL protocol handling from network IO." msgstr "" +"El módulo :mod:`ssl` adquirió :ref:`soporte para la memoria BIO `, que desacopla el manejo del protocolo SSL de la red de E/S." #: ../Doc/whatsnew/3.5.rst:120 msgid "" "The new :func:`os.scandir` function provides a :ref:`better and " "significantly faster way ` of directory traversal." msgstr "" +"La nueva función :func:`os.scandir` proporciona una :ref:`forma mejor y " +"significativamente más rápida ` de recorrido de directorio." #: ../Doc/whatsnew/3.5.rst:124 msgid "" ":func:`functools.lru_cache` has been mostly :ref:`reimplemented in C " "`, yielding much better performance." msgstr "" +":func:`functools.lru_cache` ha sido principalmente :ref:`reimplementado en C " +"`, produciendo un rendimiento mucho mejor." #: ../Doc/whatsnew/3.5.rst:128 msgid "" "The new :func:`subprocess.run` function provides a :ref:`streamlined way to " "run subprocesses `." msgstr "" +"La nueva función :func:`subprocess.run` proporciona una :ref:`forma " +"simplificada de ejecutar subprocesos `." #: ../Doc/whatsnew/3.5.rst:131 msgid "" "The :mod:`traceback` module has been significantly :ref:`enhanced ` for improved performance and developer convenience." msgstr "" +"El módulo :mod:`traceback` se ha :ref:`mejorado ` " +"significativamente para mejorar el rendimiento y la conveniencia del " +"desarrollador." #: ../Doc/whatsnew/3.5.rst:136 msgid "Security improvements:" -msgstr "" +msgstr "Mejoras de seguridad:" #: ../Doc/whatsnew/3.5.rst:138 msgid "" @@ -192,28 +243,39 @@ msgid "" "enabled by instantiating a :class:`ssl.SSLContext` manually. (See :issue:" "`22638` for more details; this change was backported to CPython 3.4 and 2.7.)" msgstr "" +"Ahora SSLv3 está deshabilitado en toda la biblioteca estándar. Aún se puede " +"habilitar creando una instancia de :class:`ssl.SSLContext` manualmente. " +"(Consultar :issue:`22638` para más detalles; este cambio fue respaldado a " +"CPython 3.4 y 2.7.)" #: ../Doc/whatsnew/3.5.rst:143 msgid "" "HTTP cookie parsing is now stricter, in order to protect against potential " "injection attacks. (Contributed by Antoine Pitrou in :issue:`22796`.)" msgstr "" +"Ahora el análisis de cookies HTTP es más estricto, con el fin de proteger " +"contra posibles ataques de entrada. (Contribución de Antoine Pitrou en :" +"issue:`22796`.)" #: ../Doc/whatsnew/3.5.rst:148 msgid "Windows improvements:" -msgstr "" +msgstr "Mejoras de Windows:" #: ../Doc/whatsnew/3.5.rst:150 msgid "" "A new installer for Windows has replaced the old MSI. See :ref:`using-on-" "windows` for more information." msgstr "" +"Un nuevo instalador para Windows ha reemplazado al antiguo MSI. Consultar :" +"ref:`using-on-windows` para más información." #: ../Doc/whatsnew/3.5.rst:153 msgid "" "Windows builds now use Microsoft Visual C++ 14.0, and extension modules " "should use the same." msgstr "" +"Ahora las compilaciones de Windows usan Microsoft Visual C++ 14.0, y los " +"módulos de extensión deberían utilizar lo mismo." #: ../Doc/whatsnew/3.5.rst:157 msgid "" @@ -221,14 +283,18 @@ msgid "" "many other smaller improvements, CPython optimizations, deprecations, and " "potential porting issues." msgstr "" +"Por favor sigue leyendo para obtener una lista completa de los cambios que " +"se enfrentan los usuarios, incluidas muchas otras mejoras menores, " +"optimizaciones de CPython, deprecaciones y posibles problemas de " +"portabilidad." #: ../Doc/whatsnew/3.5.rst:163 msgid "New Features" -msgstr "" +msgstr "Nuevas características" #: ../Doc/whatsnew/3.5.rst:168 msgid "PEP 492 - Coroutines with async and await syntax" -msgstr "" +msgstr "PEP 492 - Corrutinas con sintaxis async y await" #: ../Doc/whatsnew/3.5.rst:170 msgid "" @@ -238,11 +304,18 @@ msgid "" "iterable>`, and :term:`asynchronous context managers `." msgstr "" +":pep:`492` mejora enormemente el soporte para la programación asíncrona en " +"Python al agregar :term:`objetos aguardables `, :term:`funciones " +"corrutina `, :term:`iteración asincrónica `, y :term:`gestores asincrónicos de contexto `." #: ../Doc/whatsnew/3.5.rst:176 msgid "" "Coroutine functions are declared using the new :keyword:`async def` syntax::" msgstr "" +"Las funciones corrutina se declaran usando la nueva sintaxis :keyword:`async " +"def`::" #: ../Doc/whatsnew/3.5.rst:181 msgid "" @@ -251,38 +324,53 @@ msgid "" "can be *awaited*, as long as it implements the :term:`awaitable` protocol by " "defining the :meth:`__await__` method." msgstr "" +"Dentro de una función corrutina, la nueva expresión :keyword:`await` puede " +"ser usada para suspender la ejecución de la corrutina hasta que el resultado " +"esté disponible. Cualquier objeto puede ser *awaited*, siempre que " +"implemente el protocolo :term:`awaitable` al definir el método :meth:" +"`__await__`." #: ../Doc/whatsnew/3.5.rst:186 msgid "" "PEP 492 also adds :keyword:`async for` statement for convenient iteration " "over asynchronous iterables." msgstr "" +"PEP 492 también agrega la declaración :keyword:`async for` para una " +"iteración conveniente sobre iterables asincrónicas." #: ../Doc/whatsnew/3.5.rst:189 msgid "An example of a rudimentary HTTP client written using the new syntax::" msgstr "" +"Un ejemplo de un cliente rudimentario HTTP escrito con la nueva sintaxis::" #: ../Doc/whatsnew/3.5.rst:215 msgid "" "Similarly to asynchronous iteration, there is a new syntax for asynchronous " "context managers. The following script::" msgstr "" +"De manera similar a la iteración asincrónica, hay una nueva sintaxis para " +"los gestores asincrónicos de contexto. El siguiente script::" #: ../Doc/whatsnew/3.5.rst:235 msgid "will output::" -msgstr "" +msgstr "saldrá::" #: ../Doc/whatsnew/3.5.rst:244 msgid "" "Note that both :keyword:`async for` and :keyword:`async with` can only be " "used inside a coroutine function declared with :keyword:`async def`." msgstr "" +"Ten en cuenta que tanto :keyword:`async for` como :keyword:`async with` " +"solamente pueden ser utilizadas dentro de una función corrutina declarada " +"con :keyword:`async def`." #: ../Doc/whatsnew/3.5.rst:247 msgid "" "Coroutine functions are intended to be run inside a compatible event loop, " "such as the :ref:`asyncio loop `." msgstr "" +"Las funciones corrutina están destinadas para ser ejecutadas dentro de un " +"bucle de eventos compatible, como :ref:`asyncio loop `." #: ../Doc/whatsnew/3.5.rst:253 msgid "" @@ -290,22 +378,28 @@ msgid "" "`asynchronous iterators `. Returning an :term:" "`awaitable` object will result in a :exc:`PendingDeprecationWarning`." msgstr "" +"A partir de CPython 3.5.2, ``__aiter__`` puede retornar directamente :term:" +"`iteradores asincrónicos `. Retornar un objeto :term:" +"`awaitable` resultará en :exc:`PendingDeprecationWarning`." #: ../Doc/whatsnew/3.5.rst:259 msgid "See more details in the :ref:`async-iterators` documentation section." msgstr "" +"Consultar más detalles en la sección de la documentación :ref:`async-" +"iterators`." #: ../Doc/whatsnew/3.5.rst:265 msgid ":pep:`492` -- Coroutines with async and await syntax" -msgstr "" +msgstr ":pep:`492` -- Corrutinas con sintaxis async y await" #: ../Doc/whatsnew/3.5.rst:266 msgid "PEP written and implemented by Yury Selivanov." -msgstr "" +msgstr "PEP escrito e implementado por Yury Selivanov." #: ../Doc/whatsnew/3.5.rst:272 msgid "PEP 465 - A dedicated infix operator for matrix multiplication" msgstr "" +"PEP 465 - Un operador infijo dedicado para la multiplicación de matrices" #: ../Doc/whatsnew/3.5.rst:274 msgid "" @@ -316,6 +410,13 @@ msgid "" "multiplication. The semantics of these methods is similar to that of " "methods defining other infix arithmetic operators." msgstr "" +":pep:`465` agrega el operador infijo ``@`` para la multiplicación de " +"matrices. Actualmente, ningún tipo de Python incorporado implementa el nuevo " +"operador, sin embargo, puede ser implementado al definir :meth:" +"`__matmul__`, :meth:`__rmatmul__`, y :meth:`__imatmul__` para la " +"multiplicación de matrices regulares, reflejadas e in situ. La semántica de " +"estos métodos es similar a la de los métodos que definen otros operadores " +"infijos aritméticos." #: ../Doc/whatsnew/3.5.rst:281 msgid "" @@ -323,26 +424,31 @@ msgid "" "mathematics, science, engineering, and the addition of ``@`` allows writing " "cleaner code::" msgstr "" +"La multiplicación de matrices es una operación notablemente común en muchos " +"campos de las matemáticas, la ciencia, la ingeniería, y la adición de ``@`` " +"permite escribir código más limpio::" #: ../Doc/whatsnew/3.5.rst:287 msgid "instead of::" -msgstr "" +msgstr "en lugar de::" #: ../Doc/whatsnew/3.5.rst:292 msgid "NumPy 1.10 has support for the new operator::" -msgstr "" +msgstr "NumPy 1.10 tiene soporte para el nuevo operador::" #: ../Doc/whatsnew/3.5.rst:312 msgid ":pep:`465` -- A dedicated infix operator for matrix multiplication" msgstr "" +":pep:`465` -- Un operador infijo dedicado para la multiplicación de matrices" #: ../Doc/whatsnew/3.5.rst:313 msgid "PEP written by Nathaniel J. Smith; implemented by Benjamin Peterson." msgstr "" +"PEP escrito por Nathaniel J. Smith; implementado por Benjamin Peterson." #: ../Doc/whatsnew/3.5.rst:319 msgid "PEP 448 - Additional Unpacking Generalizations" -msgstr "" +msgstr "PEP 448 - Generalizaciones de desembalaje adicionales" #: ../Doc/whatsnew/3.5.rst:321 msgid "" @@ -350,32 +456,43 @@ msgid "" "and ``**`` dictionary unpacking operator. It is now possible to use an " "arbitrary number of unpackings in :ref:`function calls `::" msgstr "" +":pep:`448` extiende los usos permitidos del operador de desembalaje iterable " +"``*`` y del operador de desembalaje del diccionario ``**``. Ahora es posible " +"utilizar un número arbitrario de desembalajes en :ref:`llamadas a funciones " +"`::" #: ../Doc/whatsnew/3.5.rst:335 msgid "" "Similarly, tuple, list, set, and dictionary displays allow multiple " "unpackings (see :ref:`exprlists` and :ref:`dict`)::" msgstr "" +"De manera similar, las pantallas de tupla, lista, conjunto y diccionario " +"permiten desembalajes múltiples (consultar :ref:`exprlists` and :ref:" +"`dict`)::" #: ../Doc/whatsnew/3.5.rst:353 msgid ":pep:`448` -- Additional Unpacking Generalizations" -msgstr "" +msgstr ":pep:`448` -- Generalizaciones de desembalaje adicionales" #: ../Doc/whatsnew/3.5.rst:353 msgid "" "PEP written by Joshua Landau; implemented by Neil Girdhar, Thomas Wouters, " "and Joshua Landau." msgstr "" +"PEP escrito por Joshua Landau; implementado por Neil Girdhar, Thomas Wouters " +"y Joshua Landau." #: ../Doc/whatsnew/3.5.rst:360 msgid "PEP 461 - percent formatting support for bytes and bytearray" -msgstr "" +msgstr "PEP 461 - soporte de formateo porcentual para bytes y bytearray" #: ../Doc/whatsnew/3.5.rst:362 msgid "" ":pep:`461` adds support for the ``%`` :ref:`interpolation operator ` to :class:`bytes` and :class:`bytearray`." msgstr "" +":pep:`461` agrega soporte para el :ref:`operador de interpolación ` ``%`` a :class:`bytes` y :class:`bytearray`." #: ../Doc/whatsnew/3.5.rst:366 msgid "" @@ -386,16 +503,25 @@ msgid "" "dealing with wire format protocols, which are often a mixture of binary and " "ASCII compatible text." msgstr "" +"Si bien la interpolación generalmente se considera una operación de cadena " +"de caracteres, hay casos donde la interpolación en ``bytes`` o " +"``bytearrays`` tiene sentido y el trabajo necesario para compensar esta " +"funcionalidad faltante resta valor a la legibilidad general del código. Este " +"problema es particularmente importante cuando se trata con protocolos de " +"formato de cable, que a menudo son una mezcla de texto compatible binario y " +"ASCII." #: ../Doc/whatsnew/3.5.rst:373 ../Doc/whatsnew/3.5.rst:1848 msgid "Examples::" -msgstr "" +msgstr "Ejemplos::" #: ../Doc/whatsnew/3.5.rst:381 msgid "" "Unicode is not allowed for ``%b``, but it is accepted by ``%a`` (equivalent " "of ``repr(obj).encode('ascii', 'backslashreplace')``)::" msgstr "" +"Unicode no está permitido para ``%b``, pero es aceptado por ``%a`` " +"(equivalente a ``repr(obj).encode('ascii', 'backslashreplace')``)::" #: ../Doc/whatsnew/3.5.rst:392 #, python-format @@ -403,27 +529,35 @@ msgid "" "Note that ``%s`` and ``%r`` conversion types, although supported, should " "only be used in codebases that need compatibility with Python 2." msgstr "" +"Ten en cuenta que los tipos de conversión ``%s`` y ``%r``, aunque son " +"compatibles, solo deben usarse en bases de código que necesiten " +"compatibilidad con Python 2." #: ../Doc/whatsnew/3.5.rst:398 #, python-format msgid ":pep:`461` -- Adding % formatting to bytes and bytearray" -msgstr "" +msgstr ":pep:`461` -- Agrega formato ``%`` a bytes y bytearray" #: ../Doc/whatsnew/3.5.rst:398 msgid "" "PEP written by Ethan Furman; implemented by Neil Schemenauer and Ethan " "Furman." msgstr "" +"PEP escrito por Ethan Furman; implementado por Neil Schemenauer y Ethan " +"Furman." #: ../Doc/whatsnew/3.5.rst:405 msgid "PEP 484 - Type Hints" -msgstr "" +msgstr "PEP 484 - Indicador de tipos" #: ../Doc/whatsnew/3.5.rst:407 msgid "" "Function annotation syntax has been a Python feature since version 3.0 (:pep:" "`3107`), however the semantics of annotations has been left undefined." msgstr "" +"La sintaxis de anotaciones de funciones ha sido una característica de Python " +"desde la versión 3.0 (:pep:`3107`), sin embargo, la semántica de anotaciones " +"se ha dejado indefinida." #: ../Doc/whatsnew/3.5.rst:410 msgid "" @@ -432,6 +566,11 @@ msgid "" "evident that it would be beneficial for Python users, if the standard " "library included the base definitions and tools for type annotations." msgstr "" +"La experiencia ha mostrado que la mayoría de los usos de las anotaciones de " +"funciones eran para proporcionar el indicador de tipos para los parámetros " +"de función y los valores de retorno. Se hizo evidente que sería beneficioso " +"para los usuarios de Python, si la biblioteca estándar incluyera las " +"definiciones y las herramientas base para las anotaciones de tipo." #: ../Doc/whatsnew/3.5.rst:415 msgid "" @@ -439,12 +578,17 @@ msgid "" "provide these standard definitions and tools, along with some conventions " "for situations where annotations are not available." msgstr "" +":pep:`484` introduce un :term:`módulo provisional ` para " +"proporcionar estas definiciones y herramientas estándar, junto con algunas " +"convenciones para situaciones en la que las anotaciones no están disponibles." #: ../Doc/whatsnew/3.5.rst:419 msgid "" "For example, here is a simple function whose argument and return type are " "declared in the annotations::" msgstr "" +"Por ejemplo, aquí hay una función simple cuyo argumento y tipo de retorno se " +"declaran en las anotaciones::" #: ../Doc/whatsnew/3.5.rst:425 msgid "" @@ -454,6 +598,12 @@ msgid "" "g. `mypy `_) will be used for on-demand source code " "analysis." msgstr "" +"Si bien estas anotaciones están disponibles en tiempo de ejecución a través " +"del atributo habitual :attr:`__annotations__`, *no se realiza ninguna " +"verificación de tipos automática en tiempo de ejecución*. En su lugar, se " +"asume que se utilizará un verificador de tipos fuera de línea independiente " +"(p. ej. `mypy `_) para el análisis de código fuente " +"bajo demanda." #: ../Doc/whatsnew/3.5.rst:431 msgid "" @@ -461,33 +611,40 @@ msgid "" "class:`~typing.Any` which is consistent with (i.e. assignable to and from) " "all types." msgstr "" +"El sistema de tipos admite uniones, tipos genéricos y un tipo especial " +"llamado :class:`~typing.Any` el cual es consistente con (esto es asignable " +"desde y hacia) todos los tipos." #: ../Doc/whatsnew/3.5.rst:437 msgid ":mod:`typing` module documentation" -msgstr "" +msgstr ":mod:`typing` documentación del módulo" #: ../Doc/whatsnew/3.5.rst:439 msgid ":pep:`484` -- Type Hints" -msgstr "" +msgstr ":pep:`484` -- Indicador de tipos" #: ../Doc/whatsnew/3.5.rst:439 msgid "" "PEP written by Guido van Rossum, Jukka Lehtosalo, and Łukasz Langa; " "implemented by Guido van Rossum." msgstr "" +"PEP escrito por Guido van Rossum, Jukka Lehtosalo y Łukasz Langa; " +"implementado por Guido van Rossum." #: ../Doc/whatsnew/3.5.rst:441 msgid ":pep:`483` -- The Theory of Type Hints" -msgstr "" +msgstr ":pep:`483` -- La teoría del indicador de tipos" #: ../Doc/whatsnew/3.5.rst:442 msgid "PEP written by Guido van Rossum" -msgstr "" +msgstr "PEP escrito por Guido van Rossum" #: ../Doc/whatsnew/3.5.rst:448 msgid "" "PEP 471 - os.scandir() function -- a better and faster directory iterator" msgstr "" +"PEP 471 - Función os.scandir() -- un iterador de directorio mejor y más " +"rápido" #: ../Doc/whatsnew/3.5.rst:450 msgid "" @@ -498,6 +655,12 @@ msgid "" "reducing the number of calls to :func:`os.stat` required to walk a directory " "tree." msgstr "" +":pep:`471` agrega una nueva función de iteración de directorio, :func:`os." +"scandir`, a la biblioteca estándar. Adicionalmente, ahora :func:`os.walk` se " +"implementa utilizando ``scandir``, lo que lo hace de 3 a 5 veces más rápido " +"en sistemas POSIX y de 7 a 20 veces más rápido en sistemas Windows. Esto se " +"logra en gran medida al reducir enormemente el número de llamadas necesarias " +"de :func:`os.stat` para recorrer un árbol de directorios." #: ../Doc/whatsnew/3.5.rst:457 msgid "" @@ -505,6 +668,9 @@ msgid "" "list of file names, which improves memory efficiency when iterating over " "very large directories." msgstr "" +"También ``scandir`` retorna un iterador, en lugar de retornar una lista de " +"nombres de archivos, lo que mejora la eficiencia de la memoria cuando se " +"itera sobre directorios muy grandes." #: ../Doc/whatsnew/3.5.rst:461 msgid "" @@ -513,20 +679,27 @@ msgid "" "with ``'.'``. The :meth:`entry.is_file() ` call will " "generally not make an additional system call::" msgstr "" +"El siguiente ejemplo presenta un uso simple de :func:`os.scandir` para " +"mostrar todos los archivos (excluyendo directorios) en el *path* dado que no " +"comienzan con ``'.'``. La llamada a :meth:`entry.is_file() ` generalmente no hará una llamada adicional al sistema::" #: ../Doc/whatsnew/3.5.rst:472 msgid "" ":pep:`471` -- os.scandir() function -- a better and faster directory iterator" msgstr "" +":pep:`471` -- Función os.scandir() -- un iterador de directorio mejor y más " +"rápido" #: ../Doc/whatsnew/3.5.rst:473 msgid "" "PEP written and implemented by Ben Hoyt with the help of Victor Stinner." msgstr "" +"PEP escrito e implementado por Ben Hoyt con la ayuda de Victor Stinner." #: ../Doc/whatsnew/3.5.rst:479 msgid "PEP 475: Retry system calls failing with EINTR" -msgstr "" +msgstr "PEP 475: Reintentar las llamadas al sistema que fallan con EINTR" #: ../Doc/whatsnew/3.5.rst:481 msgid "" @@ -535,16 +708,23 @@ msgid "" "would raise :exc:`InterruptedError` in such cases. This meant that, when " "writing a Python application, the developer had two choices:" msgstr "" +"Se retorna un código de error :py:data:`errno.EINTR` siempre que una llamada " +"al sistema, que está esperando E/S, es interrumpida por una señal. " +"Anteriormente, Python generaría :exc:`InterruptedError` en tales casos. Esto " +"significaba que, al escribir una aplicación en Python, el desarrollador " +"tenía dos opciones:" #: ../Doc/whatsnew/3.5.rst:486 msgid "Ignore the ``InterruptedError``." -msgstr "" +msgstr "Ignorar el ``InterruptedError``." #: ../Doc/whatsnew/3.5.rst:487 msgid "" "Handle the ``InterruptedError`` and attempt to restart the interrupted " "system call at every call site." msgstr "" +"Manejar el ``InterruptedError`` y probar reiniciar la llamada interrumpida " +"al sistema en cada sitio de llamada." #: ../Doc/whatsnew/3.5.rst:490 msgid "" @@ -552,10 +732,13 @@ msgid "" "adds a large amount of boilerplate that makes the code nearly unreadable. " "Compare::" msgstr "" +"La primera opción hace que una aplicación falle intermitentemente. La " +"segunda opción agrega una gran cantidad de código repetitivo que hace que el " +"código sea casi ilegible. Compara::" #: ../Doc/whatsnew/3.5.rst:496 msgid "and::" -msgstr "" +msgstr "y::" #: ../Doc/whatsnew/3.5.rst:505 msgid "" @@ -565,20 +748,28 @@ msgid "" "standard library, more robust. Note that the system call is only retried if " "the signal handler does not raise an exception." msgstr "" +":pep:`475` implementa el reintento automático de las llamadas al sistema en " +"``EINTR``. Esto elimina la carga de lidiar con ``EINTR`` o la excepción :exc:" +"`InterruptedError` en el código de usuario en la mayoría de las situaciones " +"y hace que los programas de Python, incluida la biblioteca estándar, sean " +"más robustos. Ten en cuenta que la llamada al sistema sólo se reintenta si " +"el gestor de señales no lanza una excepción." #: ../Doc/whatsnew/3.5.rst:512 msgid "" "Below is a list of functions which are now retried when interrupted by a " "signal:" msgstr "" +"A continuación se muestra una lista de funciones que ahora se reintentan " +"cuando son interrumpidas por una señal:" #: ../Doc/whatsnew/3.5.rst:515 msgid ":func:`open` and :func:`io.open`;" -msgstr "" +msgstr ":func:`open` y :func:`io.open`;" #: ../Doc/whatsnew/3.5.rst:517 msgid "functions of the :mod:`faulthandler` module;" -msgstr "" +msgstr "funciones del módulo :mod:`faulthandler`;" #: ../Doc/whatsnew/3.5.rst:519 msgid "" @@ -591,6 +782,14 @@ msgid "" "wait4`, :func:`~os.wait`, :func:`~os.waitid`, :func:`~os.waitpid`, :func:" "`~os.write`, :func:`~os.writev`;" msgstr "" +"funciones del módulo :mod:`os`: :func:`~os.fchdir`, :func:`~os.fchmod`, :" +"func:`~os.fchown`, :func:`~os.fdatasync`, :func:`~os.fstat`, :func:`~os." +"fstatvfs`, :func:`~os.fsync`, :func:`~os.ftruncate`, :func:`~os.mkfifo`, :" +"func:`~os.mknod`, :func:`~os.open`, :func:`~os.posix_fadvise`, :func:`~os." +"posix_fallocate`, :func:`~os.pread`, :func:`~os.pwrite`, :func:`~os.read`, :" +"func:`~os.readv`, :func:`~os.sendfile`, :func:`~os.wait3`, :func:`~os." +"wait4`, :func:`~os.wait`, :func:`~os.waitid`, :func:`~os.waitpid`, :func:" +"`~os.write`, :func:`~os.writev`;" #: ../Doc/whatsnew/3.5.rst:529 msgid "" @@ -598,6 +797,9 @@ msgid "" "`~errno.EINTR` errors; the syscall is not retried (see the PEP for the " "rationale);" msgstr "" +"casos especiales: ahora :func:`os.close` y :func:`os.dup2` ignoran errores :" +"py:data:`~errno.EINTR`; no se reintenta la llamada al sistema (consultar la " +"PEP para la justificación);" #: ../Doc/whatsnew/3.5.rst:533 msgid "" @@ -605,6 +807,10 @@ msgid "" "`epoll.poll() `, :func:`kqueue.control() `, :func:`poll.poll() `, :func:`~select.select`;" msgstr "" +"funciones del módulo :mod:`select`: :func:`devpoll.poll() `, :func:`epoll.poll() `, :func:`kqueue.control() " +"`, :func:`poll.poll() `, :func:" +"`~select.select`;" #: ../Doc/whatsnew/3.5.rst:538 msgid "" @@ -614,28 +820,35 @@ msgid "" "socket.recvmsg`, :meth:`~socket.socket.send`, :meth:`~socket.socket." "sendall`, :meth:`~socket.socket.sendmsg`, :meth:`~socket.socket.sendto`;" msgstr "" +"métodos de la clase :class:`~socket.socket`: :meth:`~socket.socket.accept`, :" +"meth:`~socket.socket.connect` (excepto para sockets sin bloqueo), :meth:" +"`~socket.socket.recv`, :meth:`~socket.socket.recvfrom`, :meth:`~socket." +"socket.recvmsg`, :meth:`~socket.socket.send`, :meth:`~socket.socket." +"sendall`, :meth:`~socket.socket.sendmsg`, :meth:`~socket.socket.sendto`;" #: ../Doc/whatsnew/3.5.rst:545 msgid ":func:`signal.sigtimedwait` and :func:`signal.sigwaitinfo`;" -msgstr "" +msgstr ":func:`signal.sigtimedwait` y :func:`signal.sigwaitinfo`;" #: ../Doc/whatsnew/3.5.rst:547 msgid ":func:`time.sleep`." -msgstr "" +msgstr ":func:`time.sleep`." #: ../Doc/whatsnew/3.5.rst:552 msgid ":pep:`475` -- Retry system calls failing with EINTR" -msgstr "" +msgstr ":pep:`475` -- Reintentar las llamadas al sistema que fallan con EINTR" #: ../Doc/whatsnew/3.5.rst:552 msgid "" "PEP and implementation written by Charles-François Natali and Victor " "Stinner, with the help of Antoine Pitrou (the French connection)." msgstr "" +"PEP e implementación escrita por Charles-François Natali y Victor Stinner, " +"con la ayuda de Antoine Pitrou (la conexión francesa)." #: ../Doc/whatsnew/3.5.rst:559 msgid "PEP 479: Change StopIteration handling inside generators" -msgstr "" +msgstr "PEP 479: Cambiar el gestor de StopIteration dentro de generadores" #: ../Doc/whatsnew/3.5.rst:561 msgid "" @@ -645,6 +858,11 @@ msgid "" "function was interpreted as the end of the iteration by the loop construct " "driving the generator." msgstr "" +"La interacción de los generadores y :exc:`StopIteration` en las versiones de " +"Python 3.4 y anteriores a veces fue sorprendente y podría ocultar bugs " +"oscuros. Anteriormente, el ``StopIteration`` lanzado accidentalmente dentro " +"de una función de generadores se interpretó como el final de la iteración " +"por la construcción de bucle que impulsa el generador." #: ../Doc/whatsnew/3.5.rst:567 msgid "" @@ -656,12 +874,22 @@ msgid "" "generator to terminate silently. This is particularly pernicious in " "combination with the ``yield from`` construct." msgstr "" +":pep:`479` cambia el comportamiento de los generadores: cuando se lanza una " +"excepción ``StopIteration`` dentro de un generador, se reemplaza con una " +"excepción :exc:`RuntimeError` antes de que salga del marco del generador. El " +"objetivo principal de este cambio es facilitar la depuración en la situación " +"en la que una llamada desprotegida a la función :func:`next` lanza una " +"excepción ``StopIteration`` y hace que la iteración controlada por el " +"generador termine silenciosamente. Esto es particularmente pernicioso en " +"combinación con la construcción ``yield from``." #: ../Doc/whatsnew/3.5.rst:575 msgid "" "This is a backwards incompatible change, so to enable the new behavior, a :" "term:`__future__` import is necessary::" msgstr "" +"Este es un cambio incompatible hacia atrás, así que para habilitar el nuevo " +"comportamiento, es necesario importar :term:`__future__`::" #: ../Doc/whatsnew/3.5.rst:595 msgid "" @@ -669,20 +897,25 @@ msgid "" "raised whenever a :exc:`StopIteration` exception is raised inside a " "generator." msgstr "" +"Si no se importa ``__future__``, se lanzará la excepción :exc:" +"`PendingDeprecationWarning` siempre que se lance una excepción :exc:" +"`StopIteration` dentro de un generador." #: ../Doc/whatsnew/3.5.rst:601 msgid ":pep:`479` -- Change StopIteration handling inside generators" -msgstr "" +msgstr ":pep:`479` -- Cambiar el gestor de StopIteration dentro de generadores" #: ../Doc/whatsnew/3.5.rst:601 msgid "" "PEP written by Chris Angelico and Guido van Rossum. Implemented by Chris " "Angelico, Yury Selivanov and Nick Coghlan." msgstr "" +"PEP escrito por Chris Angelico y Guido van Rossum. Implementado por Chris " +"Angelico, Yury Selivanov y Nick Coghlan." #: ../Doc/whatsnew/3.5.rst:608 msgid "PEP 485: A function for testing approximate equality" -msgstr "" +msgstr "PEP 485: Una función para probar la igualdad aproximada" #: ../Doc/whatsnew/3.5.rst:610 msgid "" @@ -693,25 +926,37 @@ msgid "" "the maximum allowed difference between ``isclose`` arguments, relative to " "the larger absolute value::" msgstr "" +":pep:`485` agrega las funciones :func:`math.isclose` y :func:`cmath.isclose` " +"que indican si dos valores son aproximadamente iguales o \"cercanos\" entre " +"sí. Si dos valores se consideran cercanos o no, se determina conforme con " +"las tolerancias absolutas y relativas dadas. La tolerancia relativa es la " +"diferencia máxima permitida entre los argumentos ``isclose``, en relación " +"con el valor absoluto mayor::" #: ../Doc/whatsnew/3.5.rst:625 msgid "" "It is also possible to compare two values using absolute tolerance, which " "must be a non-negative value::" msgstr "" +"También es posible comparar dos valores usando una tolerancia absoluta, que " +"debe ser un valor no negativo::" #: ../Doc/whatsnew/3.5.rst:639 msgid ":pep:`485` -- A function for testing approximate equality" -msgstr "" +msgstr ":pep:`485` -- Una función para probar la igualdad aproximada" #: ../Doc/whatsnew/3.5.rst:639 msgid "" "PEP written by Christopher Barker; implemented by Chris Barker and Tal Einat." msgstr "" +"PEP escrito por Christopher Barker; implementado por Chris Barker y Tal " +"Einat." #: ../Doc/whatsnew/3.5.rst:646 msgid "PEP 486: Make the Python Launcher aware of virtual environments" msgstr "" +"PEP 486: Hacer que el launcher de Python sea consciente de los entornos " +"virtuales" #: ../Doc/whatsnew/3.5.rst:648 msgid "" @@ -720,18 +965,24 @@ msgid "" "``VIRTUAL_ENV`` environment variable is set, the interpreter in the virtual " "environment will be used." msgstr "" +":pep:`486` hace que el launcher de Windows (consultar :pep:`397`) sea " +"consciente de un entorno virtual activo. Cuando se usa el intérprete " +"predeterminado y se establece la variable de entorno ``VIRTUAL_ENV`` está " +"configurado, se utilizará el intérprete en el entorno virtual." #: ../Doc/whatsnew/3.5.rst:655 msgid ":pep:`486` -- Make the Python Launcher aware of virtual environments" msgstr "" +":pep:`486` -- Hacer que el launcher de Python sea consciente de los entornos " +"virtuales" #: ../Doc/whatsnew/3.5.rst:656 msgid "PEP written and implemented by Paul Moore." -msgstr "" +msgstr "PEP escrito e implementado por Paul Moore." #: ../Doc/whatsnew/3.5.rst:662 msgid "PEP 488: Elimination of PYO files" -msgstr "" +msgstr "PEP 488: Eliminación de archivos PYO" #: ../Doc/whatsnew/3.5.rst:664 msgid "" @@ -745,24 +996,37 @@ msgid "" "`importlib.util.cache_from_source` has an updated API to help with this " "change." msgstr "" +":pep:`488` elimina el concepto de archivos ``.pyo``. Esto significa que los " +"archivos ``.pyc`` representan tanto bytecode optimizado y sin optimizar. " +"Para evitar la necesidad de regenerar constantemente archivos bytecode, " +"ahora los archivos ``.pyc`` tienen una etiqueta opcional ``opt-`` en su " +"nombre cuando se optimiza el bytecode. Esto tiene el efecto secundario de " +"que no habrá más conflictos de nombres de archivos de bytecode cuando se " +"ejecuta bajo :option:`-O` o :option:`-OO`. Por consiguiente, ahora los " +"archivos bytecode generados a partir de :option:`-O` y :option:`-OO` pueden " +"existir simultáneamente. :func:`importlib.util.cache_from_source` tiene una " +"API actualizada para ayudar con este cambio." #: ../Doc/whatsnew/3.5.rst:676 msgid ":pep:`488` -- Elimination of PYO files" -msgstr "" +msgstr ":pep:`488` -- Eliminación de archivos PYO" #: ../Doc/whatsnew/3.5.rst:677 msgid "PEP written and implemented by Brett Cannon." -msgstr "" +msgstr "PEP escrito e implementado por Brett Cannon." #: ../Doc/whatsnew/3.5.rst:683 msgid "PEP 489: Multi-phase extension module initialization" -msgstr "" +msgstr "PEP 489: Inicialización del módulo de extensión multifase" #: ../Doc/whatsnew/3.5.rst:685 msgid "" ":pep:`489` updates extension module initialization to take advantage of the " "two step module loading mechanism introduced by :pep:`451` in Python 3.4." msgstr "" +":pep:`489` actualiza la inicialización del módulo de extensión para " +"aprovechar el mecanismo de carga del módulo de dos pasos introducido por :" +"pep:`451` en Python 3.4." #: ../Doc/whatsnew/3.5.rst:688 msgid "" @@ -771,24 +1035,33 @@ msgid "" "modules, including the ability to use any valid identifier as a module name, " "rather than being restricted to ASCII." msgstr "" +"Este cambio acerca la semántica de importación de los módulos de extensión " +"que optan por usar el mecanismo nuevo a la de los módulos fuente y de " +"bytecode de Python, incluida la capacidad de utilizar cualquier " +"identificador válido como un nombre de módulo, en lugar de estar restringido " +"a ASCII." #: ../Doc/whatsnew/3.5.rst:696 msgid ":pep:`489` -- Multi-phase extension module initialization" -msgstr "" +msgstr ":pep:`489` -- Inicialización del módulo de extensión multifase" #: ../Doc/whatsnew/3.5.rst:696 msgid "" "PEP written by Petr Viktorin, Stefan Behnel, and Nick Coghlan; implemented " "by Petr Viktorin." msgstr "" +"PEP escrito por Petr Viktorin, Stefan Behnel y Nick Coghlan; implementado " +"por Petr Viktorin." #: ../Doc/whatsnew/3.5.rst:701 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios en el lenguaje" #: ../Doc/whatsnew/3.5.rst:703 msgid "Some smaller changes made to the core Python language are:" msgstr "" +"Algunos cambios más pequeños que se hicieron en el lenguaje central de " +"Python son:" #: ../Doc/whatsnew/3.5.rst:705 msgid "" @@ -796,12 +1069,17 @@ msgid "" "error handlers now work with decoding and translating. (Contributed by " "Serhiy Storchaka in :issue:`19676` and :issue:`22286`.)" msgstr "" +"Se agregaron los gestores de error ``\"namereplace\"``. Ahora los gestores " +"de error ``\"backslashreplace\"`` funcionan con decodificación y traducción. " +"(Contribución de Serhiy Storchaka en :issue:`19676` y :issue:`22286`.)" #: ../Doc/whatsnew/3.5.rst:709 msgid "" "The :option:`-b` option now affects comparisons of :class:`bytes` with :" "class:`int`. (Contributed by Serhiy Storchaka in :issue:`23681`.)" msgstr "" +"Ahora la opción :option:`-b` afecta comparaciones de :class:`bytes` con :" +"class:`int`. (Contribución de Serhiy Storchaka en :issue:`23681`.)" #: ../Doc/whatsnew/3.5.rst:712 msgid "" @@ -809,6 +1087,9 @@ msgid "" "encodings>`. (Contributed by Serhiy Storchaka in :issue:`22682` and :issue:" "`22681`.)" msgstr "" +"Nuevos :ref:`códecs ` Kazakh ``kz1048`` y Tajik " +"``koi8_t``. (Contribución de Serhiy Storchaka en :issue:`22682` y :issue:" +"`22681`.)" #: ../Doc/whatsnew/3.5.rst:715 msgid "" @@ -816,20 +1097,25 @@ msgid "" "`collections.namedtuple` docstrings. (Contributed by Berker Peksag in :issue:" "`24064`.)" msgstr "" +"Ahora las docstrings de propiedad se pueden escribir. Esto es especialmente " +"útil para las docstrings :func:`collections.namedtuple`. (Contribución de " +"Berker Peksag en :issue:`24064`.)" #: ../Doc/whatsnew/3.5.rst:719 msgid "" "Circular imports involving relative imports are now supported. (Contributed " "by Brett Cannon and Antoine Pitrou in :issue:`17636`.)" msgstr "" +"Ahora se admiten las importaciones circulares que involucran importaciones " +"relativas. (Contribución de Brett Cannon y Antoine Pitrou en :issue:`17636`.)" #: ../Doc/whatsnew/3.5.rst:724 msgid "New Modules" -msgstr "" +msgstr "Nuevos módulos" #: ../Doc/whatsnew/3.5.rst:727 msgid "typing" -msgstr "" +msgstr "typing" #: ../Doc/whatsnew/3.5.rst:729 msgid "" @@ -837,10 +1123,14 @@ msgid "" "standard definitions and tools for function type annotations. See :ref:`Type " "Hints ` for more information." msgstr "" +"El módulo nuevo :term:`provisional ` :mod:`typing` " +"proporciona definiciones y herramientas estándar para anotaciones de tipos " +"de funciones. Consultar :ref:`Indicador de tipos ` para " +"más información." #: ../Doc/whatsnew/3.5.rst:736 msgid "zipapp" -msgstr "" +msgstr "zipapp" #: ../Doc/whatsnew/3.5.rst:738 msgid "" @@ -849,6 +1139,11 @@ msgid "" "were introduced in Python 2.6 in :issue:`1739468`, but which were not well " "publicized, either at the time or since." msgstr "" +"El módulo nuevo :mod:`zipapp` (especificado en :pep:`441`) proporciona una " +"API y una herramienta de línea de comandos para crear aplicaciones Python " +"Zip ejecutables, las cuales se introdujeron en la versión de Python 2.6 en :" +"issue:`1739468`, pero no se publicitaron bien, ni en ese momento ni desde " +"entonces." #: ../Doc/whatsnew/3.5.rst:743 msgid "" @@ -856,24 +1151,29 @@ msgid "" "the files, including a ``__main__.py`` file, into a directory ``myapp`` and " "running:" msgstr "" +"Con el módulo nuevo, empaquetar tu aplicación es tan simple como colocar " +"todos los archivos, incluido un archivo ``__main__.py`` en un directorio " +"``myapp`` y ejecutar:" #: ../Doc/whatsnew/3.5.rst:752 msgid "" "The module implementation has been contributed by Paul Moore in :issue:" "`23491`." msgstr "" +"La implementación del módulo ha sido contribución de Paul Moore en :issue:" +"`23491`." #: ../Doc/whatsnew/3.5.rst:757 msgid ":pep:`441` -- Improving Python ZIP Application Support" -msgstr "" +msgstr ":pep:`441` -- Mejora de soporte de la aplicación Python ZIP" #: ../Doc/whatsnew/3.5.rst:761 msgid "Improved Modules" -msgstr "" +msgstr "Módulos mejorados" #: ../Doc/whatsnew/3.5.rst:764 msgid "argparse" -msgstr "" +msgstr "argparse" #: ../Doc/whatsnew/3.5.rst:766 msgid "" @@ -882,10 +1182,14 @@ msgid "" "`allow_abbrev` to ``False``. (Contributed by Jonathan Paugh, Steven " "Bethard, paul j3 and Daniel Eriksson in :issue:`14910`.)" msgstr "" +"Ahora la clase :class:`~argparse.ArgumentParser` permite deshabilitar el :" +"ref:`uso abreviado ` de opciones largas al establecer :ref:" +"`allow_abbrev` en ``False``. (Contribución de Jonathan Paugh, Steven " +"Bethard, paul j3 y Daniel Eriksson en :issue:`14910`.)" #: ../Doc/whatsnew/3.5.rst:773 msgid "asyncio" -msgstr "" +msgstr "asyncio" #: ../Doc/whatsnew/3.5.rst:775 msgid "" @@ -893,10 +1197,13 @@ msgid "" "all changes introduced in Python 3.5 have also been backported to Python 3.4." "x." msgstr "" +"Ya que el módulo :mod:`asyncio` es :term:`provisional `, " +"todos los cambios que se introdujeron en Python 3.5 también se han " +"actualizado en Python 3.4.x." #: ../Doc/whatsnew/3.5.rst:778 msgid "Notable changes in the :mod:`asyncio` module since Python 3.4.0:" -msgstr "" +msgstr "Cambios notables en el módulo :mod:`asyncio` desde Python 3.4.0:" #: ../Doc/whatsnew/3.5.rst:780 msgid "" @@ -904,18 +1211,26 @@ msgid "" "meth:`loop.get_debug() ` methods. (Contributed by " "Victor Stinner.)" msgstr "" +"Nuevas API de depuración: métodos :meth:`loop.set_debug() ` y :meth:`loop.get_debug() `. " +"(Contribución de Victor Stinner.)" #: ../Doc/whatsnew/3.5.rst:784 msgid "" "The proactor event loop now supports SSL. (Contributed by Antoine Pitrou and " "Victor Stinner in :issue:`22560`.)" msgstr "" +"Ahora el ciclo de eventos proactor es compatible con SSL. (Contribución de " +"Antoine Pitrou y Victor Stinner en :issue:`22560`.)" #: ../Doc/whatsnew/3.5.rst:787 msgid "" "A new :meth:`loop.is_closed() ` method to check if " "the event loop is closed. (Contributed by Victor Stinner in :issue:`21326`.)" msgstr "" +"Un nuevo método :meth:`loop.is_closed() ` para " +"comprobar si el ciclo de eventos está cerrado. (Contribución de Victor " +"Stinner en :issue:`21326`.)" #: ../Doc/whatsnew/3.5.rst:791 msgid "" @@ -925,6 +1240,12 @@ msgid "" "coroutines into tasks, such as :func:`asyncio.wait`, :func:`asyncio.gather`, " "etc. (Contributed by Victor Stinner.)" msgstr "" +"Un nuevo método :meth:`loop.create_task() ` para " +"crear y programar convenientemente una nueva clase :class:`~asyncio.Task` " +"para una corrutina. El método ``create_task`` también se usa para todas las " +"funciones asyncio que contengan corrutinas en tareas, tales como :func:" +"`asyncio.wait`, :func:`asyncio.gather`, etc. (Contribución de Victor " +"Stinner.)" #: ../Doc/whatsnew/3.5.rst:798 msgid "" @@ -932,12 +1253,18 @@ msgid "" "get_write_buffer_limits>` method to inquire for *high-* and *low-* water " "limits of the flow control. (Contributed by Victor Stinner.)" msgstr "" +"Un nuevo método :meth:`transport.get_write_buffer_limits() ` para consultar los límites *high-* " +"(superior) y *low-* (inferior) del control de flujo. (Contribución de Victor " +"Stinner.)" #: ../Doc/whatsnew/3.5.rst:803 msgid "" "The :func:`~asyncio.async` function is deprecated in favor of :func:" "`~asyncio.ensure_future`. (Contributed by Yury Selivanov.)" msgstr "" +"La función :func:`~asyncio.async` está obsoleta en favor de la función :func:" +"`~asyncio.ensure_future`. (Contribución de Yury Selivanov.)" #: ../Doc/whatsnew/3.5.rst:807 msgid "" @@ -946,22 +1273,32 @@ msgid "" "customize the task factory that :meth:`loop.create_task() ` method uses. (Contributed by Yury Selivanov.)" msgstr "" +"Nuevos métodos :meth:`loop.set_task_factory() ` y :meth:`loop.get_task_factory() ` para personalizar la fábrica de tareas que el método :" +"meth:`loop.create_task() ` usa. (Contribución de " +"Yury Selivanov.)" #: ../Doc/whatsnew/3.5.rst:814 msgid "" "New :meth:`Queue.join() ` and :meth:`Queue.task_done() " "` queue methods. (Contributed by Victor Stinner.)" msgstr "" +"Nuevos métodos de cola :meth:`Queue.join() ` y :meth:" +"`Queue.task_done() `. (Contribución de Victor " +"Stinner.)" #: ../Doc/whatsnew/3.5.rst:818 msgid "" "The ``JoinableQueue`` class was removed, in favor of the :class:`asyncio." "Queue` class. (Contributed by Victor Stinner.)" msgstr "" +"Se eliminó la clase ``JoinableQueue``, en favor de la clase :class:`asyncio." +"Queue`. (Contribución de Victor Stinner.)" #: ../Doc/whatsnew/3.5.rst:822 msgid "Updates in 3.5.1:" -msgstr "" +msgstr "Actualizaciones en 3.5.1:" #: ../Doc/whatsnew/3.5.rst:824 msgid "" @@ -970,12 +1307,19 @@ msgid "" "now accept all kinds of :term:`awaitable objects `. (Contributed " "by Yury Selivanov.)" msgstr "" +"La función :func:`~asyncio.ensure_future` y todas las funciones que la " +"utilizan, como el método :meth:`loop.run_until_complete() `, ahora acepta todo tipo de :term:`objetos aguardables " +"`. (Contribución de Yury Selivanov.)" #: ../Doc/whatsnew/3.5.rst:829 msgid "" "New :func:`~asyncio.run_coroutine_threadsafe` function to submit coroutines " "to event loops from other threads. (Contributed by Vincent Michel.)" msgstr "" +"Nueva función :func:`~asyncio.run_coroutine_threadsafe` para enviar " +"corrutinas a bucles de eventos de otros hilos. (Contribución de Vincent " +"Michel.)" #: ../Doc/whatsnew/3.5.rst:833 msgid "" @@ -983,16 +1327,21 @@ msgid "" "to check if the transport is closing or closed. (Contributed by Yury " "Selivanov.)" msgstr "" +"Nuevo método :meth:`Transport.is_closing() ` para comprobar si el transporte se está cerrando o ya está " +"cerrado. (Contribución de Yury Selivanov.)" #: ../Doc/whatsnew/3.5.rst:837 msgid "" "The :meth:`loop.create_server() ` method can now " "accept a list of hosts. (Contributed by Yann Sionneau.)" msgstr "" +"Ahora el método :meth:`loop.create_server() ` " +"puede aceptar una lista de hosts. (Contribución de Yann Sionneau.)" #: ../Doc/whatsnew/3.5.rst:841 msgid "Updates in 3.5.2:" -msgstr "" +msgstr "Actualizaciones en 3.5.2:" #: ../Doc/whatsnew/3.5.rst:843 msgid "" @@ -1002,6 +1351,11 @@ msgid "" "faster :class:`asyncio.Future` implementation. (Contributed by Yury " "Selivanov.)" msgstr "" +"Nuevo método :meth:`loop.create_future() ` para " +"crear objetos Future. Esto permite implementaciones alternativas de bucles " +"de eventos, como `uvloop `_, para " +"proporcionar una implementación más rápida de :class:`asyncio.Future`. " +"(Contribución de Yury Selivanov.)" #: ../Doc/whatsnew/3.5.rst:850 msgid "" @@ -1009,6 +1363,9 @@ msgid "" "get_exception_handler>` method to get the current exception handler. " "(Contributed by Yury Selivanov.)" msgstr "" +"Nuevo método :meth:`loop.get_exception_handler() ` para obtener el gestor de excepciones actual. " +"(Contribución de Yury Selivanov.)" #: ../Doc/whatsnew/3.5.rst:854 msgid "" @@ -1016,6 +1373,9 @@ msgid "" "to read data from the stream until a separator bytes sequence appears. " "(Contributed by Mark Korenberg.)" msgstr "" +"Nuevo método :meth:`StreamReader.readuntil() ` para leer datos de la secuencia hasta que aparezca una secuencia " +"de separador de bytes. (Contribución de Mark Korenberg.)" #: ../Doc/whatsnew/3.5.rst:859 msgid "" @@ -1024,6 +1384,10 @@ msgid "" "optimized to avoid calling the system ``getaddrinfo`` function if the " "address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" msgstr "" +"Se optimizaron los métodos :meth:`loop.create_connection() ` y :meth:`loop.create_server() ` para evitar llamar al sistema la función ``getaddrinfo`` si " +"la dirección ya está resuelta. (Contribución de A. Jesse Jiryu Davis.)" #: ../Doc/whatsnew/3.5.rst:865 msgid "" @@ -1031,10 +1395,13 @@ msgid "" "longer requires the *address* to be resolved prior to the call. (Contributed " "by A. Jesse Jiryu Davis.)" msgstr "" +"El método :meth:`loop.sock_connect(sock, address) ` ya no requiere *address* para que se resuelva antes de la " +"llamada. (Contribución de A. Jesse Jiryu Davis.)" #: ../Doc/whatsnew/3.5.rst:871 msgid "bz2" -msgstr "" +msgstr "bz2" #: ../Doc/whatsnew/3.5.rst:873 msgid "" @@ -1042,30 +1409,39 @@ msgid "" "method now accepts an optional *max_length* argument to limit the maximum " "size of decompressed data. (Contributed by Nikolaus Rath in :issue:`15955`.)" msgstr "" +"Ahora el método :meth:`BZ2Decompressor.decompress ` acepta un argumento opcional *max_length* para limitar el " +"tamaño máximo de datos descomprimidos. (Contribución de Nikolaus Rath en :" +"issue:`15955`.)" #: ../Doc/whatsnew/3.5.rst:879 msgid "cgi" -msgstr "" +msgstr "cgi" #: ../Doc/whatsnew/3.5.rst:881 msgid "" "The :class:`~cgi.FieldStorage` class now supports the :term:`context " "manager` protocol. (Contributed by Berker Peksag in :issue:`20289`.)" msgstr "" +"Ahora la clase :class:`~cgi.FieldStorage` admite el protocolo :term:`context " +"manager`. (Contribución de Berker Peksag en :issue:`20289`.)" #: ../Doc/whatsnew/3.5.rst:886 msgid "cmath" -msgstr "" +msgstr "cmath" #: ../Doc/whatsnew/3.5.rst:888 msgid "" "A new function :func:`~cmath.isclose` provides a way to test for approximate " "equality. (Contributed by Chris Barker and Tal Einat in :issue:`24270`.)" msgstr "" +"Una nueva función :func:`~cmath.isclose` proporciona una forma de probar la " +"igualdad aproximada. (Contribución de Chris Barker y Tal Einat en :issue:" +"`24270`.)" #: ../Doc/whatsnew/3.5.rst:893 msgid "code" -msgstr "" +msgstr "code" #: ../Doc/whatsnew/3.5.rst:895 msgid "" @@ -1074,10 +1450,14 @@ msgid "" "traceback, just like the interactive interpreter. (Contributed by Claudiu " "Popa in :issue:`17442`.)" msgstr "" +"Ahora el método :func:`InteractiveInterpreter.showtraceback() ` imprime el rastreo encadenado " +"completo, al igual que el interprete interactivo. (Contribución de Claudiu " +"Popa en :issue:`17442`.)" #: ../Doc/whatsnew/3.5.rst:901 msgid "collections" -msgstr "" +msgstr "collections" #: ../Doc/whatsnew/3.5.rst:905 msgid "" @@ -1085,6 +1465,9 @@ msgid "" "makes it 4 to 100 times faster. (Contributed by Eric Snow in :issue:" "`16991`.)" msgstr "" +"Ahora la clase :class:`~collections.OrderedDict` está implementada en C, lo " +"que la hace de 4 a 100 veces más rápida. (Contribución de Eric Snow en :" +"issue:`16991`.)" #: ../Doc/whatsnew/3.5.rst:908 msgid "" @@ -1093,6 +1476,10 @@ msgid "" "values() ` views now support :func:" "`reversed` iteration. (Contributed by Serhiy Storchaka in :issue:`19505`.)" msgstr "" +":meth:`OrderedDict.items() `, :meth:" +"`OrderedDict.keys() `, :meth:`OrderedDict." +"values() ` ahora soportan la iteración :func:" +"`reversed`. (Contribución de Serhiy Storchaka en :issue:`19505`.)" #: ../Doc/whatsnew/3.5.rst:914 msgid "" @@ -1103,15 +1490,23 @@ msgid "" "substitutability for lists. (Contributed by Raymond Hettinger in :issue:" "`23704`.)" msgstr "" +"Ahora la clase :class:`~collections.deque` define :meth:`~collections.deque." +"index`, :meth:`~collections.deque.insert` y :meth:`~collections.deque.copy`, " +"y soporta los operadores ``+`` y ``*``. Esto permite que las deques sean " +"reconocidas como :class:`~collections.abc.MutableSequence` y mejora su " +"sustituibilidad por listas. (Contribución de Raymond Hettinger en :issue:" +"`23704`.)" #: ../Doc/whatsnew/3.5.rst:921 msgid "" "Docstrings produced by :func:`~collections.namedtuple` can now be updated::" msgstr "" +"Ahora las docstrings producidas por :func:`~collections.namedtuple` se " +"pueden actualizar::" #: ../Doc/whatsnew/3.5.rst:928 msgid "(Contributed by Berker Peksag in :issue:`24064`.)" -msgstr "" +msgstr "(Contribución de Berker Peksag en :issue:`24064`.)" #: ../Doc/whatsnew/3.5.rst:930 msgid "" @@ -1121,10 +1516,15 @@ msgid "" "match the corresponding methods of :class:`str`. (Contributed by Joe Jevnik " "in :issue:`22189`.)" msgstr "" +"Ahora la clase :class:`~collections.UserString` implementa los métodos :meth:" +"`__getnewargs__`, :meth:`__rmod__`, :meth:`~str.casefold`, :meth:`~str." +"format_map`, :meth:`~str.isprintable` y :meth:`~str.maketrans` para que " +"coincidan con los métodos correspondientes de :class:`str`. (Contribución de " +"Joe Jevnik en :issue:`22189`.)" #: ../Doc/whatsnew/3.5.rst:938 msgid "collections.abc" -msgstr "" +msgstr "collections.abc" #: ../Doc/whatsnew/3.5.rst:940 msgid "" @@ -1133,12 +1533,18 @@ msgid "" "class:`tuple`, :class:`list`, etc. (Contributed by Devin Jeanpierre in :" "issue:`23086`.)" msgstr "" +"Ahora el método :meth:`Sequence.index() ` " +"acepta los argumentos *start* y *stop* para que coincidan con los métodos " +"correspondientes de :class:`tuple`, :class:`list`, etc. (Contribución de " +"Devin Jeanpierre en :issue:`23086`.)" #: ../Doc/whatsnew/3.5.rst:945 msgid "" "A new :class:`~collections.abc.Generator` abstract base class. (Contributed " "by Stefan Behnel in :issue:`24018`.)" msgstr "" +"Una nueva clase de base abstracta :class:`~collections.abc.Generator`. " +"(Contribución de Stefan Behnel en :issue:`24018`.)" #: ../Doc/whatsnew/3.5.rst:948 msgid "" @@ -1147,16 +1553,23 @@ msgid "" "`~collections.abc.AsyncIterable` abstract base classes. (Contributed by Yury " "Selivanov in :issue:`24184`.)" msgstr "" +"Nuevas clases de base abstracta :class:`~collections.abc.Awaitable`, :class:" +"`~collections.abc.Coroutine`, :class:`~collections.abc.AsyncIterator` y :" +"class:`~collections.abc.AsyncIterable`. (Contribución de Yury Selivanov en :" +"issue:`24184`.)" #: ../Doc/whatsnew/3.5.rst:953 msgid "" "For earlier Python versions, a backport of the new ABCs is available in an " "external `PyPI package `_." msgstr "" +"Para versiones anteriores de Python, un backport del nuevo ABC está " +"disponible en un `paquete PyPI `_ " +"externo." #: ../Doc/whatsnew/3.5.rst:958 msgid "compileall" -msgstr "" +msgstr "compileall" #: ../Doc/whatsnew/3.5.rst:960 msgid "" @@ -1165,12 +1578,19 @@ msgid "" "`~compileall.compile_dir` function has a corresponding ``workers`` " "parameter. (Contributed by Claudiu Popa in :issue:`16104`.)" msgstr "" +"Una nueva opción :mod:`compileall`, :samp:`-j {N}`, permite ejecutar *N* " +"workers simultáneamente para realizar la compilación de bytecode en " +"paralelo. La función :func:`~compileall.compile_dir` tiene un parámetro " +"``workers`` correspondiente. (Contribución de Claudiu Popa en :issue:" +"`16104`.)" #: ../Doc/whatsnew/3.5.rst:965 msgid "" "Another new option, ``-r``, allows controlling the maximum recursion level " "for subdirectories. (Contributed by Claudiu Popa in :issue:`19628`.)" msgstr "" +"Otra nueva opción, ``-r``, permite controlar el nivel máximo de recursividad " +"de los subdirectorios. (Contribución de Claudiu Popa en :issue:`19628`.)" #: ../Doc/whatsnew/3.5.rst:968 msgid "" @@ -1181,10 +1601,16 @@ msgid "" "integer value indicating the level of output suppression. (Contributed by " "Thomas Kluyver in :issue:`21338`.)" msgstr "" +"Ahora la opción de línea de comando ``-q`` se puede especificar más de una " +"vez, en cuyo caso todas las salidas, incluyendo errores, se suprimirán. " +"Ahora el parámetro ``quiet`` correspondiente en :func:`~compileall." +"compile_dir`, :func:`~compileall.compile_file` y :func:`~compileall." +"compile_path` puede aceptar un valor entero que indica el nivel de supresión " +"de salida. (Contribución de Thomas Kluyver en :issue:`21338`.)" #: ../Doc/whatsnew/3.5.rst:977 msgid "concurrent.futures" -msgstr "" +msgstr "concurrent.futures" #: ../Doc/whatsnew/3.5.rst:979 msgid "" @@ -1193,6 +1619,10 @@ msgid "" "performance when :meth:`~concurrent.futures.ProcessPoolExecutor` is used. " "(Contributed by Dan O'Reilly in :issue:`11271`.)" msgstr "" +"Ahora el método :meth:`Executor.map() ` " +"acepta un argumento *chunksize* para permitir el procesamiento por lotes de " +"tareas para mejorar el desempeño cuando se usa :meth:`~concurrent.futures." +"ProcessPoolExecutor`. (Contribución de Dan O'Reilly en :issue:`11271`.)" #: ../Doc/whatsnew/3.5.rst:984 msgid "" @@ -1200,10 +1630,13 @@ msgid "" "constructor is optional now. The default value is 5 times the number of " "CPUs. (Contributed by Claudiu Popa in :issue:`21527`.)" msgstr "" +"Ahora el número de workers en el constructor :class:`~concurrent.futures." +"ThreadPoolExecutor` es opcional. El valor predeterminado es 5 veces el " +"número de CPUs. (Contribución de Claudiu Popa en :issue:`21527`.)" #: ../Doc/whatsnew/3.5.rst:990 msgid "configparser" -msgstr "" +msgstr "configparser" #: ../Doc/whatsnew/3.5.rst:992 msgid "" @@ -1213,18 +1646,23 @@ msgid "" "``ConfigParser`` subclasses. Converters defined in a parser instance are " "inherited by its section proxies." msgstr "" +"Ahora :mod:`configparser` proporciona una forma de personalizar la " +"conversión de valores al especificar un diccionario de convertidores en el " +"constructor :class:`~configparser.ConfigParser` o al definirlos como métodos " +"en las subclases ``ConfigParser``. Los convertidores definidos en una " +"instancia de analizador se heredan por sus proxies de sección." #: ../Doc/whatsnew/3.5.rst:998 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/whatsnew/3.5.rst:1016 msgid "(Contributed by Łukasz Langa in :issue:`18159`.)" -msgstr "" +msgstr "(Contribución de Łukasz Langa en :issue:`18159`.)" #: ../Doc/whatsnew/3.5.rst:1020 msgid "contextlib" -msgstr "" +msgstr "contextlib" #: ../Doc/whatsnew/3.5.rst:1022 msgid "" @@ -1233,24 +1671,31 @@ msgid "" "to handle inflexible APIs that write their output to :data:`sys.stderr` and " "don't provide any options to redirect it::" msgstr "" +"El nuevo :term:`context manager` :func:`~contextlib.redirect_stderr` " +"(similar a :func:`~contextlib.redirect_stdout`) facilita que los scripts de " +"utilidad manejen APIs inflexibles que escriben su salida a :data:`sys." +"stderr` y no proporcionen ninguna opción para redirigirlo::" #: ../Doc/whatsnew/3.5.rst:1035 msgid "(Contributed by Berker Peksag in :issue:`22389`.)" -msgstr "" +msgstr "(Contribución de Berker Peksag en :issue:`22389`.)" #: ../Doc/whatsnew/3.5.rst:1039 msgid "csv" -msgstr "" +msgstr "csv" #: ../Doc/whatsnew/3.5.rst:1041 msgid "" "The :meth:`~csv.csvwriter.writerow` method now supports arbitrary iterables, " "not just sequences. (Contributed by Serhiy Storchaka in :issue:`23171`.)" msgstr "" +"Ahora el método :meth:`~csv.csvwriter.writerow` admite iterables " +"arbitrarios, no sólo secuencias. (Contribución de Serhiy Storchaka en :issue:" +"`23171`.)" #: ../Doc/whatsnew/3.5.rst:1046 msgid "curses" -msgstr "" +msgstr "curses" #: ../Doc/whatsnew/3.5.rst:1048 msgid "" @@ -1259,10 +1704,14 @@ msgid "" "detecting manual screen resizing. (Contributed by Arnon Yaari in :issue:" "`4254`.)" msgstr "" +"La nueva función :func:`~curses.update_lines_cols` actualiza las variables " +"de entorno :envvar:`LINES` y :envvar:`COLS`. Esto es útil para detectar el " +"cambio de tamaño manual de la pantalla. (Contribución de Arnon Yaari en :" +"issue:`4254`.)" #: ../Doc/whatsnew/3.5.rst:1054 msgid "dbm" -msgstr "" +msgstr "dbm" #: ../Doc/whatsnew/3.5.rst:1056 msgid "" @@ -1270,10 +1719,13 @@ msgid "" "flag has the value ``\"n\"``. (Contributed by Claudiu Popa in :issue:" "`18039`.)" msgstr "" +":func:`dumb.open ` siempre crea una nueva base de datos " +"cuando la bandera tiene el valor ``\"n\"``. (Contribución de Claudiu Popa " +"en :issue:`18039`.)" #: ../Doc/whatsnew/3.5.rst:1061 msgid "difflib" -msgstr "" +msgstr "difflib" #: ../Doc/whatsnew/3.5.rst:1063 msgid "" @@ -1283,6 +1735,11 @@ msgid "" "\"ISO-8859-1\"`` to ``\"utf-8\"``. (Contributed by Berker Peksag in :issue:" "`2052`.)" msgstr "" +"Ahora el juego de caracteres de los documentos HTML generado por :meth:" +"`HtmlDiff.make_file() ` se puede personalizar " +"usando un nuevo argumento de solo palabras clave *charset*. El juego de " +"caracteres predeterminado del documento HTML cambió de ``\"ISO-8859-1\"`` a " +"``\"utf-8\"``. (Contribución de Berker Peksag en :issue:`2052`.)" #: ../Doc/whatsnew/3.5.rst:1070 msgid "" @@ -1290,10 +1747,13 @@ msgid "" "strings. This fixes a regression from Python 2. (Contributed by Terry J. " "Reedy and Greg Ward in :issue:`17445`.)" msgstr "" +"Ahora la función :func:`~difflib.diff_bytes` puede comparar listas de bytes " +"de cadenas de caracteres. Esto arregla una regresión de Python 2. " +"(Contribución de Terry J. Reedy y Greg Ward en :issue:`17445`.)" #: ../Doc/whatsnew/3.5.rst:1076 msgid "distutils" -msgstr "" +msgstr "distutils" #: ../Doc/whatsnew/3.5.rst:1078 msgid "" @@ -1301,6 +1761,9 @@ msgid "" "enable parallel building of extension modules. (Contributed by Antoine " "Pitrou in :issue:`5309`.)" msgstr "" +"Ahora los comandos ``build`` y ``build_ext`` aceptan una opción ``-j`` para " +"habilitar la construcción paralela de módulos de extensión. (Contribución de " +"Antoine Pitrou en :issue:`5309`.)" #: ../Doc/whatsnew/3.5.rst:1082 msgid "" @@ -1308,10 +1771,13 @@ msgid "" "enabled by passing ``xztar`` as an argument to ``bdist --format``. " "(Contributed by Serhiy Storchaka in :issue:`16314`.)" msgstr "" +"Ahora el módulo :mod:`distutils` admite la compresión ``xz`` y se puede " +"habilitar pasando ``xztar`` como un argumento a ``bdist --format``. " +"(Contribución de Serhiy Storchaka en :issue:`16314`.)" #: ../Doc/whatsnew/3.5.rst:1088 msgid "doctest" -msgstr "" +msgstr "doctest" #: ../Doc/whatsnew/3.5.rst:1090 msgid "" @@ -1319,10 +1785,13 @@ msgid "" "TestSuite` if *module* contains no docstrings, instead of raising :exc:" "`ValueError`. (Contributed by Glenn Jones in :issue:`15916`.)" msgstr "" +"La función :func:`~doctest.DocTestSuite` retorna una clase :class:`unittest." +"TestSuite` vacía si *module* no contiene docstrings, en lugar de lanzar :exc:" +"`ValueError`. (Contribución de Glenn Jones en :issue:`15916`.)" #: ../Doc/whatsnew/3.5.rst:1096 msgid "email" -msgstr "" +msgstr "email" #: ../Doc/whatsnew/3.5.rst:1098 msgid "" @@ -1332,6 +1801,12 @@ msgid "" "default is ``True`` for :attr:`~email.policy.compat32` and ``False`` for all " "other policies. (Contributed by Milan Oberkirch in :issue:`20098`.)" msgstr "" +"Una nueva opción de directiva :attr:`Policy.mangle_from_ ` controla si las líneas que empiecen o no con ``\"From " +"\"`` en los cuerpos del correo electrónico tienen el prefijo de un caracter " +"``\">\"`` por generadores. El valor predeterminado es ``True`` para :attr:" +"`~email.policy.compat32` y ``False`` para todas las demás directivas. " +"(Contribución de Milan Oberkirch en :issue:`20098`.)" #: ../Doc/whatsnew/3.5.rst:1104 msgid "" @@ -1340,6 +1815,10 @@ msgid "" "for the :mailheader:`Content-Disposition` header. (Contributed by Abhilash " "Raj in :issue:`21083`.)" msgstr "" +"Un nuevo método :meth:`Message.get_content_disposition() ` proporciona fácil acceso a un valor " +"canónico para el encabezado :mailheader:`Content-Disposition`. (Contribución " +"de Abhilash Raj en :issue:`21083`.)" #: ../Doc/whatsnew/3.5.rst:1110 msgid "" @@ -1350,6 +1829,13 @@ msgid "" "`6531` ``SMTPUTF8`` extension. (Contributed by R. David Murray in :issue:" "`24211`.)" msgstr "" +"Una nueva opción de directiva :attr:`EmailPolicy.utf8 ` se puede configurar en ``True`` para codificar los " +"encabezados de correo electrónico usando el juego de caracteres UTF-8 en " +"lugar de utilizar palabras codificadas. Esto permite formatear ``Messages`` " +"de acuerdo a :rfc:`6532` y usarlos con un servidor SMTP que admita la " +"extensión :rfc:`6531` ``SMTPUTF8``. (Contribución de R. David Murray en :" +"issue:`24211`.)" #: ../Doc/whatsnew/3.5.rst:1117 msgid "" @@ -1357,24 +1843,30 @@ msgid "" "accepts a :class:`charset.Charset ` instance. " "(Contributed by Claude Paroz and Berker Peksag in :issue:`16324`.)" msgstr "" +"Ahora el constructor :class:`mime.text.MIMEText ` " +"admite una instancia de :class:`charset.Charset `. " +"(Contribución de Claude Paroz y Berker Peksag en :issue:`16324`.)" #: ../Doc/whatsnew/3.5.rst:1123 msgid "enum" -msgstr "" +msgstr "enum" #: ../Doc/whatsnew/3.5.rst:1125 msgid "" "The :class:`~enum.Enum` callable has a new parameter *start* to specify the " "initial number of enum values if only *names* are provided::" msgstr "" +"La clase invocable :class:`~enum.Enum` tiene un nuevo parámetro *start* para " +"especificar el número inicial de los valores de enumeración si solo se " +"proporcionan *names*::" #: ../Doc/whatsnew/3.5.rst:1134 msgid "(Contributed by Ethan Furman in :issue:`21706`.)" -msgstr "" +msgstr "(Contribución de Ethan Furman en :issue:`21706`.)" #: ../Doc/whatsnew/3.5.rst:1138 msgid "faulthandler" -msgstr "" +msgstr "faulthandler" #: ../Doc/whatsnew/3.5.rst:1140 msgid "" @@ -1383,10 +1875,14 @@ msgid "" "dump_traceback_later` functions now accept file descriptors in addition to " "file-like objects. (Contributed by Wei Wu in :issue:`23566`.)" msgstr "" +"Ahora las funciones :func:`~faulthandler.enable`, :func:`~faulthandler." +"register`, :func:`~faulthandler.dump_traceback` y :func:`~faulthandler." +"dump_traceback_later` aceptan descriptores de archivo además de objetos " +"similares a archivos. (Contribución de Wei Wu en :issue:`23566`.)" #: ../Doc/whatsnew/3.5.rst:1148 msgid "functools" -msgstr "" +msgstr "functools" #: ../Doc/whatsnew/3.5.rst:1152 msgid "" @@ -1394,10 +1890,13 @@ msgid "" "making it significantly faster. (Contributed by Matt Joiner, Alexey " "Kachayev, and Serhiy Storchaka in :issue:`14373`.)" msgstr "" +"Ahora la mayoría de la maquinaria de :func:`~functools.lru_cache` se " +"implementa en C, lo que la hace significativamente más rápida. (Contribución " +"de Matt Joiner, Alexey Kachayev y Serhiy Storchaka en :issue:`14373`.)" #: ../Doc/whatsnew/3.5.rst:1158 msgid "glob" -msgstr "" +msgstr "glob" #: ../Doc/whatsnew/3.5.rst:1160 msgid "" @@ -1405,10 +1904,13 @@ msgid "" "recursive search in subdirectories, using the ``\"**\"`` pattern. " "(Contributed by Serhiy Storchaka in :issue:`13968`.)" msgstr "" +"Ahora las funciones :func:`~glob.iglob` y :func:`~glob.glob` admiten " +"búsquedas recursivas en subdirectorios usando el patrón ``\"**\"``. " +"(Contribución de Serhiy Storchaka en :issue:`13968`.)" #: ../Doc/whatsnew/3.5.rst:1166 msgid "gzip" -msgstr "" +msgstr "gzip" #: ../Doc/whatsnew/3.5.rst:1168 msgid "" @@ -1416,10 +1918,13 @@ msgid "" "\"x\"`` to request exclusive creation. (Contributed by Tim Heaney in :issue:" "`19222`.)" msgstr "" +"Ahora el argumento *mode* del constructor de :class:`~gzip.GzipFile` acepta " +"``\"x\"`` para solicitar la creación exclusiva. (Contribución de Tim Heaney " +"en :issue:`19222`.)" #: ../Doc/whatsnew/3.5.rst:1174 msgid "heapq" -msgstr "" +msgstr "heapq" #: ../Doc/whatsnew/3.5.rst:1176 msgid "" @@ -1428,14 +1933,18 @@ msgid "" "optional *reverse* keyword argument can be used to reverse element " "comparison::" msgstr "" +"Ahora la comparación de elementos en :func:`~heapq.merge` se puede " +"personalizar pasando una :term:`key function` en un nuevo argumento de " +"palabra clave opcional *key*, y un nuevo argumento de palabra clave opcional " +"*reverse* se puede usar para revertir la comparación de elementos::" #: ../Doc/whatsnew/3.5.rst:1189 msgid "(Contributed by Raymond Hettinger in :issue:`13742`.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger en :issue:`13742`.)" #: ../Doc/whatsnew/3.5.rst:1193 msgid "http" -msgstr "" +msgstr "http" #: ../Doc/whatsnew/3.5.rst:1195 msgid "" @@ -1443,10 +1952,13 @@ msgid "" "status codes, reason phrases and long descriptions written in English. " "(Contributed by Demian Brecht in :issue:`21793`.)" msgstr "" +"Una nueva enumeración :class:`HTTPStatus ` que define un " +"conjunto de códigos de estado HTTP, frases de motivo y descripciones largas " +"escritas en inglés. (Contribución de Demian Brecht en :issue:`21793`.)" #: ../Doc/whatsnew/3.5.rst:1201 msgid "http.client" -msgstr "" +msgstr "http.client" #: ../Doc/whatsnew/3.5.rst:1203 msgid "" @@ -1457,14 +1969,20 @@ msgid "" "raised, the client socket is now closed automatically, and will reconnect on " "the next request::" msgstr "" +"Ahora :meth:`HTTPConnection.getresponse() ` lanza una excepción :exc:`~http.client.RemoteDisconnected` " +"cuando una conexión de servidor remoto se cierra inesperadamente. Además, si " +"se lanza una excepción :exc:`ConnectionError` (del cual " +"``RemoteDisconnected`` es una subclase), ahora el socket del cliente se " +"cierra automáticamente y se reconectará en la siguiente solicitud::" #: ../Doc/whatsnew/3.5.rst:1219 msgid "(Contributed by Martin Panter in :issue:`3566`.)" -msgstr "" +msgstr "(Contribución de Martin Panter en :issue:`3566`.)" #: ../Doc/whatsnew/3.5.rst:1223 msgid "idlelib and IDLE" -msgstr "" +msgstr "idlelib e IDLE" #: ../Doc/whatsnew/3.5.rst:1225 msgid "" @@ -1474,10 +1992,16 @@ msgid "" "well as changes made in future 3.5.x releases. This file is also available " "from the IDLE :menuselection:`Help --> About IDLE` dialog." msgstr "" +"Desde que idlelib implementa el shell y el editor IDLE y no se destina para " +"ser importado por otros programas, obtiene mejoras con cada versión. " +"Consultar :file:`Lib/idlelib/NEWS.txt` para una lista acumulativa de cambios " +"desde la 3.4.0, así como los cambios realizados en futuras versiones 3.5.x. " +"Este archivo también está disponible en IDLE :menuselection:`Help --> About " +"IDLE`." #: ../Doc/whatsnew/3.5.rst:1233 msgid "imaplib" -msgstr "" +msgstr "imaplib" #: ../Doc/whatsnew/3.5.rst:1235 msgid "" @@ -1486,6 +2010,10 @@ msgid "" "command will be called automatically at the end of the block. (Contributed " "by Tarek Ziadé and Serhiy Storchaka in :issue:`4972`.)" msgstr "" +"Ahora la clase :class:`~imaplib.IMAP4` admite el protocolo :term:`context " +"manager`. Cuando se utiliza en una declaración :keyword:`with`, el comando " +"IMAP4 ``LOGOUT`` se llamará automáticamente al final del bloque. " +"(Contribución de Tarek Ziadé y Serhiy Storchaka en :issue:`4972`.)" #: ../Doc/whatsnew/3.5.rst:1240 msgid "" @@ -1496,6 +2024,12 @@ msgid "" "enabled. (Contributed by Milan Oberkirch, R. David Murray, and Maciej Szulik " "in :issue:`21800`.)" msgstr "" +"Ahora el módulo :mod:`imaplib` admite :rfc:`5161` (extensión ENABLE) y :rfc:" +"`6855` (soporte UTF-8) a través del método :meth:`IMAP4.enable() `. Un nuevo atributo :attr:`IMAP4.utf8_enabled ` rastrea si el soporte con :rfc:`6855` está habilitado o no. " +"(Contribución de Milan Oberkirch, R. David Murray y Maciej Szulik en :issue:" +"`21800`.)" #: ../Doc/whatsnew/3.5.rst:1247 msgid "" @@ -1503,10 +2037,13 @@ msgid "" "usernames and passwords using UTF-8, as recommended by the RFCs. " "(Contributed by Milan Oberkirch in :issue:`21800`.)" msgstr "" +"Ahora el módulo :mod:`imaplib` codifica automáticamente nombres de usuario y " +"contraseñas de cadenas de caracteres no ASCII usando UTF-8, como recomiendan " +"las RFCs. (Contribución de Milan Oberkirch en :issue:`21800`.)" #: ../Doc/whatsnew/3.5.rst:1253 msgid "imghdr" -msgstr "" +msgstr "imghdr" #: ../Doc/whatsnew/3.5.rst:1255 msgid "" @@ -1515,10 +2052,14 @@ msgid "" "issue:`20295`), and the `WebP `_ format " "(contributed by Fabrice Aneche and Claudiu Popa in :issue:`20197`.)" msgstr "" +"Ahora la función :func:`~imghdr.what` reconoce el formato `OpenEXR `_ (contribución de Martin Vignali y Claudiu Popa en :issue:" +"`20295`) y el formato `WebP `_ " +"(contribución de Fabrice Aneche y Claudiu Popa en :issue:`20197`.)" #: ../Doc/whatsnew/3.5.rst:1263 msgid "importlib" -msgstr "" +msgstr "importlib" #: ../Doc/whatsnew/3.5.rst:1265 msgid "" @@ -1526,6 +2067,9 @@ msgid "" "lazy loading of modules in applications where startup time is important. " "(Contributed by Brett Cannon in :issue:`17621`.)" msgstr "" +"La clase :class:`util.LazyLoader ` permite la " +"carga lenta de módulos en aplicaciones donde el tiempo de inicio es " +"importante. (Contribución de Brett Cannon en :issue:`17621`.)" #: ../Doc/whatsnew/3.5.rst:1269 msgid "" @@ -1535,6 +2079,11 @@ msgid "" "``exec(code, module.__dict__)``. (Contributed by Brett Cannon in :issue:" "`21156`.)" msgstr "" +"Ahora el método es :func:`abc.InspectLoader.source_to_code() ` es un método estático. Esto hace más fácil la " +"inicialización de un objeto de módulo con código compilado a partir de una " +"cadena de caracteres ejecutando ``exec(code, module.__dict__)``. " +"(Contribución de Brett Cannon en :issue:`21156`.)" #: ../Doc/whatsnew/3.5.rst:1275 msgid "" @@ -1544,10 +2093,16 @@ msgid "" "will set the various import-controlled attributes based on the passed-in " "spec object. (Contributed by Brett Cannon in :issue:`20383`.)" msgstr "" +"Ahora la nueva función :func:`util.module_from_spec() ` es la forma preferida para crear un nuevo módulo. A " +"diferencia de crear directamente una instancia :class:`types.ModuleType`, " +"esta nueva función configurará varios atributos controlados por importación " +"basados en el objeto de especificación pasado. (Contribución de Brett Cannon " +"en :issue:`20383`.)" #: ../Doc/whatsnew/3.5.rst:1283 msgid "inspect" -msgstr "" +msgstr "inspect" #: ../Doc/whatsnew/3.5.rst:1285 msgid "" @@ -1555,6 +2110,9 @@ msgid "" "are now picklable and hashable. (Contributed by Yury Selivanov in :issue:" "`20726` and :issue:`20334`.)" msgstr "" +"Ahora las clases :class:`~inspect.Signature` y :class:`~inspect.Parameter` " +"se pueden seleccionar y manipular. (Contribución de Yury Selivanov en :issue:" +"`20726` y :issue:`20334`.)" #: ../Doc/whatsnew/3.5.rst:1289 msgid "" @@ -1562,10 +2120,13 @@ msgid "" "apply_defaults>` method provides a way to set default values for missing " "arguments::" msgstr "" +"Un nuevo método :meth:`BoundArguments.apply_defaults() ` proporciona una forma de establecer valores " +"predeterminados para los argumentos faltantes::" #: ../Doc/whatsnew/3.5.rst:1299 msgid "(Contributed by Yury Selivanov in :issue:`24190`.)" -msgstr "" +msgstr "(Contribución de Yury Selivanov en :issue:`24190`.)" #: ../Doc/whatsnew/3.5.rst:1301 msgid "" @@ -1573,6 +2134,9 @@ msgid "" "from_callable>` makes subclassing of :class:`~inspect.Signature` easier. " "(Contributed by Yury Selivanov and Eric Snow in :issue:`17373`.)" msgstr "" +"Un nuevo método de clase :meth:`Signature.from_callable() ` facilita la subclasificación de :class:`~inspect.Signature`. " +"(Contribución de Yury Selivanov y Eric Snow en :issue:`17373`.)" #: ../Doc/whatsnew/3.5.rst:1306 msgid "" @@ -1581,6 +2145,10 @@ msgid "" "following of ``__wrapped__`` links. (Contributed by Yury Selivanov in :issue:" "`20691`.)" msgstr "" +"Ahora la función :func:`~inspect.signature` acepta un argumento de palabra " +"clave opcional *follow_wrapped*, el cual, cuando se establece en ``False``, " +"deshabilita el seguimiento automático de enlaces ``__wrapped__``. " +"(Contribución de Yury Selivanov en :issue:`20691`.)" #: ../Doc/whatsnew/3.5.rst:1311 msgid "" @@ -1591,6 +2159,12 @@ msgid "" "`~inspect.getcoroutinestate`. (Contributed by Yury Selivanov in :issue:" "`24017` and :issue:`24400`.)" msgstr "" +"Se ha agregado un conjunto de nuevas funciones para inspeccionar :term:" +"`funciones corrutina ` y :term:`objetos corrutina " +"`: :func:`~inspect.iscoroutine`, :func:`~inspect." +"iscoroutinefunction`, :func:`~inspect.isawaitable`, :func:`~inspect." +"getcoroutinelocals` y :func:`~inspect.getcoroutinestate`. (Contribución de " +"Yury Selivanov en :issue:`24017` y :issue:`24400`.)" #: ../Doc/whatsnew/3.5.rst:1319 msgid "" @@ -1598,10 +2172,14 @@ msgid "" "getouterframes`, and :func:`~inspect.getinnerframes` functions now return a " "list of named tuples. (Contributed by Daniel Shahaf in :issue:`16808`.)" msgstr "" +"Ahora las funciones :func:`~inspect.stack`, :func:`~inspect.trace`, :func:" +"`~inspect.getouterframes` y :func:`~inspect.getinnerframes` retornan una " +"lista de tuplas con nombre. (Contribución de Daniel Shahaf en :issue:" +"`16808`.)" #: ../Doc/whatsnew/3.5.rst:1326 msgid "io" -msgstr "" +msgstr "io" #: ../Doc/whatsnew/3.5.rst:1328 msgid "" @@ -1611,10 +2189,15 @@ msgid "" "RawIOBase.readinto>` methods. (Contributed by Nikolaus Rath in :issue:" "`20578`.)" msgstr "" +"Un nuevo método :meth:`BufferedIOBase.readinto1() `, que usa como mucho una llamada al flujo sin procesar subyacente " +"de los métodos :meth:`RawIOBase.read() ` o :meth:" +"`RawIOBase.readinto() `. (Contribución de Nikolaus " +"Rath en :issue:`20578`.)" #: ../Doc/whatsnew/3.5.rst:1336 msgid "ipaddress" -msgstr "" +msgstr "ipaddress" #: ../Doc/whatsnew/3.5.rst:1338 msgid "" @@ -1622,10 +2205,13 @@ msgid "" "classes now accept an ``(address, netmask)`` tuple argument, so as to easily " "construct network objects from existing addresses::" msgstr "" +"Ahora las clases :class:`~ipaddress.IPv4Network` y :class:`~ipaddress." +"IPv6Network` aceptan un argumento de tupla ``(address, netmask)``, para " +"construir fácilmente objetos de red a partir de direcciones existentes::" #: ../Doc/whatsnew/3.5.rst:1348 msgid "(Contributed by Peter Moody and Antoine Pitrou in :issue:`16531`.)" -msgstr "" +msgstr "(Contribución de Peter Moody y Antoine Pitrou en :issue:`16531`.)" #: ../Doc/whatsnew/3.5.rst:1350 msgid "" @@ -1633,14 +2219,17 @@ msgid "" "class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` classes " "returns the name of the reverse DNS PTR record::" msgstr "" +"Un nuevo atributo :attr:`~ipaddress.IPv4Network.reverse_pointer` para las " +"clases :class:`~ipaddress.IPv4Network` y :class:`~ipaddress.IPv6Network` " +"retorna el nombre del registro DNS PTR inverso::" #: ../Doc/whatsnew/3.5.rst:1362 msgid "(Contributed by Leon Weber in :issue:`20480`.)" -msgstr "" +msgstr "(Contribución de Leon Weber en :issue:`20480`.)" #: ../Doc/whatsnew/3.5.rst:1366 msgid "json" -msgstr "" +msgstr "json" #: ../Doc/whatsnew/3.5.rst:1368 msgid "" @@ -1649,6 +2238,10 @@ msgid "" "to sort the keys alphabetically. (Contributed by Berker Peksag in :issue:" "`21650`.)" msgstr "" +"Ahora la interfaz de la línea de comandos :mod:`json.tool` conserva el orden " +"de los nombres en los objetos JSON pasados en la entrada. La nueva opción " +"``--sort-keys`` se puede usar para ordenar los nombres alfabéticamente. " +"(Contribución de Berker Peksag en :issue:`21650`.)" #: ../Doc/whatsnew/3.5.rst:1373 msgid "" @@ -1656,10 +2249,13 @@ msgid "" "`ValueError` to provide better context information about the error. " "(Contributed by Serhiy Storchaka in :issue:`19361`.)" msgstr "" +"Ahora el decodificador JSON lanza :exc:`~json.JSONDecodeError` en lugar de :" +"exc:`ValueError` para proporcionar una mejor información de contexto sobre " +"el error. (Contribución de Serhiy Storchaka en :issue:`19361`.)" #: ../Doc/whatsnew/3.5.rst:1379 msgid "linecache" -msgstr "" +msgstr "linecache" #: ../Doc/whatsnew/3.5.rst:1381 msgid "" @@ -1669,10 +2265,16 @@ msgid "" "actually needed, without having to carry the module globals around " "indefinitely. (Contributed by Robert Collins in :issue:`17911`.)" msgstr "" +"Una nueva función :func:`~linecache.lazycache` se puede usar para capturar " +"información sobre un módulo no basado en archivos para permitir obtener sus " +"líneas más tarde a través de :func:`~linecache.getline`. Esto evita hacer E/" +"S hasta que una línea sea realmente necesaria, sin tener que llevar los " +"módulos globales indefinidamente. (Contribución de Robert Collins en :issue:" +"`17911`.)" #: ../Doc/whatsnew/3.5.rst:1389 msgid "locale" -msgstr "" +msgstr "locale" #: ../Doc/whatsnew/3.5.rst:1391 msgid "" @@ -1680,14 +2282,17 @@ msgid "" "into a normalized number string, taking the ``LC_NUMERIC`` settings into " "account::" msgstr "" +"Una nueva función :func:`~locale.delocalize` se puede usar para convertir " +"una cadena de caracteres en una cadena numérica normalizada, teniendo la " +"configuración ``LC_NUMERIC`` en cuenta::" #: ../Doc/whatsnew/3.5.rst:1404 msgid "(Contributed by Cédric Krier in :issue:`13918`.)" -msgstr "" +msgstr "(Contribución de Cédric Krier en :issue:`13918`.)" #: ../Doc/whatsnew/3.5.rst:1408 msgid "logging" -msgstr "" +msgstr "logging" #: ../Doc/whatsnew/3.5.rst:1410 msgid "" @@ -1696,10 +2301,15 @@ msgid "" "`~logging.Logger.debug`, etc.), now accept exception instances as an " "*exc_info* argument, in addition to boolean values and exception tuples::" msgstr "" +"Ahora todos los métodos del módulo logging (:class:`~logging.Logger` :meth:" +"`~logging.Logger.log`, :meth:`~logging.Logger.exception`, :meth:`~logging." +"Logger.critical`, :meth:`~logging.Logger.debug`, etc.), aceptan instancias " +"de excepción como un argumento *exc_info*, además de valores booleanos y " +"tuplas de excepción::" #: ../Doc/whatsnew/3.5.rst:1423 msgid "(Contributed by Yury Selivanov in :issue:`20537`.)" -msgstr "" +msgstr "(Contribución de Yury Selivanov en :issue:`20537`.)" #: ../Doc/whatsnew/3.5.rst:1425 msgid "" @@ -1708,6 +2318,10 @@ msgid "" "settings used in an HTTP connection. (Contributed by Alex Gaynor in :issue:" "`22788`.)" msgstr "" +"Ahora la clase :class:`handlers.HTTPHandler ` " +"acepta una instancia opcional :class:`ssl.SSLContext` para establecer la " +"configuración SSL usada en una conexión HTTP. (Contribución de Alex Gaynor " +"en :issue:`22788`.)" #: ../Doc/whatsnew/3.5.rst:1430 msgid "" @@ -1716,10 +2330,14 @@ msgid "" "``True``, will pass messages to handlers taking handler levels into account. " "(Contributed by Vinay Sajip.)" msgstr "" +"Ahora la clase :class:`handlers.QueueListener ` toma un argumento de palabra clave *respect_handler_level*, " +"el cual, si se establece en ``True``, pasará mensajes a gestores teniendo en " +"cuenta los gestores de niveles. (Contribución de Vinay Sajip.)" #: ../Doc/whatsnew/3.5.rst:1437 msgid "lzma" -msgstr "" +msgstr "lzma" #: ../Doc/whatsnew/3.5.rst:1439 msgid "" @@ -1727,10 +2345,14 @@ msgid "" "method now accepts an optional *max_length* argument to limit the maximum " "size of decompressed data. (Contributed by Martin Panter in :issue:`15955`.)" msgstr "" +"Ahora el método :meth:`LZMADecompressor.decompress() ` acepta un argumento opcional *max_length* para limitar el " +"tamaño máximo de datos descomprimidos. (Contribución de Martin Panter en :" +"issue:`15955`.)" #: ../Doc/whatsnew/3.5.rst:1446 msgid "math" -msgstr "" +msgstr "math" #: ../Doc/whatsnew/3.5.rst:1448 msgid "" @@ -1738,12 +2360,17 @@ msgid "" "inf` and :data:`~math.nan`. (Contributed by Mark Dickinson in :issue:" "`23185`.)" msgstr "" +"Se agregaron dos nuevas contantes en el módulo :mod:`math`: :data:`~math." +"inf` y :data:`~math.nan`. (Contribución de Mark Dickinson en :issue:`23185`.)" #: ../Doc/whatsnew/3.5.rst:1451 msgid "" "A new function :func:`~math.isclose` provides a way to test for approximate " "equality. (Contributed by Chris Barker and Tal Einat in :issue:`24270`.)" msgstr "" +"Una nueva función :func:`~math.isclose` proporciona una forma de comprobar " +"la igualdad aproximada. (Contribución de Chris Barker y Tal Einat en :issue:" +"`24270`.)" #: ../Doc/whatsnew/3.5.rst:1454 msgid "" @@ -1751,10 +2378,13 @@ msgid "" "function is now deprecated. (Contributed by Mark Dickinson and Serhiy " "Storchaka in :issue:`22486`.)" msgstr "" +"Se agregó una nueva función :func:`~math.gcd`. Ahora la función :func:" +"`fractions.gcd` está obsoleta. (Contribución de Mark Dickinson y Serhiy " +"Storchaka en :issue:`22486`.)" #: ../Doc/whatsnew/3.5.rst:1460 msgid "multiprocessing" -msgstr "" +msgstr "multiprocessing" #: ../Doc/whatsnew/3.5.rst:1462 msgid "" @@ -1762,10 +2392,13 @@ msgid "" "synchronized>` objects now support the :term:`context manager` protocol. " "(Contributed by Charles-François Natali in :issue:`21565`.)" msgstr "" +"Ahora los objetos :func:`sharedctypes.synchronized() ` admiten el protocolo :term:`context manager`. " +"(Contribución de Charles-François Natali en :issue:`21565`.)" #: ../Doc/whatsnew/3.5.rst:1468 msgid "operator" -msgstr "" +msgstr "operator" #: ../Doc/whatsnew/3.5.rst:1470 msgid "" @@ -1773,6 +2406,9 @@ msgid "" "`~operator.methodcaller` objects now support pickling. (Contributed by Josh " "Rosenberg and Serhiy Storchaka in :issue:`22955`.)" msgstr "" +"Ahora los objetos :func:`~operator.attrgetter`, :func:`~operator.itemgetter` " +"y :func:`~operator.methodcaller` admiten pickling. (Contribución de Josh " +"Rosenberg y Serhiy Storchaka en :issue:`22955`.)" #: ../Doc/whatsnew/3.5.rst:1474 msgid "" @@ -1780,10 +2416,13 @@ msgid "" "perform matrix multiplication. (Contributed by Benjamin Peterson in :issue:" "`21176`.)" msgstr "" +"Las nuevas funciones :func:`~operator.matmul` y :func:`~operator.imatmul` " +"para realizar multiplicación de matrices. (Contribución de Benjamin Peterson " +"en :issue:`21176`.)" #: ../Doc/whatsnew/3.5.rst:1480 msgid "os" -msgstr "" +msgstr "os" #: ../Doc/whatsnew/3.5.rst:1482 msgid "" @@ -1794,6 +2433,13 @@ msgid "" "significantly improve performance. (Contributed by Ben Hoyt with the help " "of Victor Stinner in :issue:`22524`.)" msgstr "" +"Se agregó la nueva función :func:`~os.scandir` que retorna un iterador de :" +"class:`~os.DirEntry`. Si es posible, :func:`~os.scandir` extrae los " +"atributos del archivo mientras escanea un directorio, eliminando la " +"necesidad de realizar llamadas posteriores al sistema para determinar el " +"tipo de archivo o los atributos, lo que puede mejorar significativamente el " +"rendimiento. (Contribución de Ben Hoyt con la ayuda de Victor Stinner en :" +"issue:`22524`.)" #: ../Doc/whatsnew/3.5.rst:1489 msgid "" @@ -1803,6 +2449,11 @@ msgid "" "returned by ``GetFileInformationByHandle()``. (Contributed by Ben Hoyt in :" "issue:`21719`.)" msgstr "" +"En Windows, ahora un nuevo atributo :attr:`stat_result.st_file_attributes " +"` está disponible. Corresponde al miembro " +"``dwFileAttributes`` de la estructura ``BY_HANDLE_FILE_INFORMATION`` " +"retornado por ``GetFileInformationByHandle()``. (Contribución de Ben Hoyt " +"en :issue:`21719`.)" #: ../Doc/whatsnew/3.5.rst:1495 msgid "" @@ -1811,6 +2462,12 @@ msgid "" "the need to use ``/dev/urandom`` and avoiding failures due to potential file " "descriptor exhaustion. (Contributed by Victor Stinner in :issue:`22181`.)" msgstr "" +"Ahora la función :func:`~os.urandom` usa la llamada al sistema " +"``getrandom()`` en Linux 3.17 o versiones más recientes, y ``getentropy()`` " +"en OpenBSD 5.6 y versiones más recientes, eliminando la necesidad de " +"utilizar ``/dev/urandom`` y evitando fallas debido al posible agotamiento " +"del descriptor de archivo. (Contribución de Victor Stinner en :issue:" +"`22181`.)" #: ../Doc/whatsnew/3.5.rst:1500 msgid "" @@ -1818,12 +2475,17 @@ msgid "" "getting and setting a file descriptor's blocking mode (:data:`~os." "O_NONBLOCK`.) (Contributed by Victor Stinner in :issue:`22054`.)" msgstr "" +"Las nuevas funciones :func:`~os.get_blocking` y :func:`~os.set_blocking` " +"permiten obtener y establecer un modo de bloqueo del descriptor (:data:`~os." +"O_NONBLOCK`.) (Contribución de Victor Stinner en :issue:`22054`.)" #: ../Doc/whatsnew/3.5.rst:1504 msgid "" "The :func:`~os.truncate` and :func:`~os.ftruncate` functions are now " "supported on Windows. (Contributed by Steve Dower in :issue:`23668`.)" msgstr "" +"Ahora las funciones :func:`~os.truncate` y :func:`~os.ftruncate` se admiten " +"en Windows. (Contribución de Steve Dower en :issue:`23668`.)" #: ../Doc/whatsnew/3.5.rst:1507 msgid "" @@ -1831,14 +2493,17 @@ msgid "" "common sub-path of each passed pathname. Unlike the :func:`os.path." "commonprefix` function, it always returns a valid path::" msgstr "" +"Hay una nueva función :func:`os.path.commonpath` que retorna la sub-ruta " +"común más larga de cada nombre de ruta pasado. A diferencia de la función :" +"func:`os.path.commonprefix`, siempre retorna una ruta válida::" #: ../Doc/whatsnew/3.5.rst:1518 msgid "(Contributed by Rafik Draoui and Serhiy Storchaka in :issue:`10395`.)" -msgstr "" +msgstr "(Contribución de Rafik Draoui y Serhiy Storchaka en :issue:`10395`.)" #: ../Doc/whatsnew/3.5.rst:1522 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.5.rst:1524 msgid "" @@ -1846,10 +2511,14 @@ msgid "" "to check whether the path points to the same file as another path, which can " "be either another :class:`~pathlib.Path` object, or a string::" msgstr "" +"El nuevo método :meth:`Path.samefile() ` se puede " +"usar para verificar si la ruta apunta al mismo archivo que otra ruta, el " +"cual puede ser otro objeto :class:`~pathlib.Path` o una cadena de " +"caracteres::" #: ../Doc/whatsnew/3.5.rst:1534 msgid "(Contributed by Vajrasky Kok and Antoine Pitrou in :issue:`19775`.)" -msgstr "" +msgstr "(Contribución de Vajrasky Kok y Antoine Pitrou en :issue:`19775`.)" #: ../Doc/whatsnew/3.5.rst:1536 msgid "" @@ -1857,6 +2526,10 @@ msgid "" "optional *exist_ok* argument to match ``mkdir -p`` and :func:`os.makedirs` " "functionality. (Contributed by Berker Peksag in :issue:`21539`.)" msgstr "" +"Ahora el método :meth:`Path.mkdir() ` acepta un nuevo " +"argumento opcional *exist_ok* para que coincida con la funcionalidad ``mkdir " +"-p`` y :func:`os.makedirs`. (Contribución de Berker Peksag en :issue:" +"`21539`.)" #: ../Doc/whatsnew/3.5.rst:1540 msgid "" @@ -1864,6 +2537,9 @@ msgid "" "expand ``~`` and ``~user`` prefixes. (Contributed by Serhiy Storchaka and " "Claudiu Popa in :issue:`19776`.)" msgstr "" +"Hay un nuevo método :meth:`Path.expanduser() ` para " +"expandir los prefijos ``~`` y ``~user``. (Contribución de Serhiy Storchaka y " +"Claudiu Popa en :issue:`19776`.)" #: ../Doc/whatsnew/3.5.rst:1544 msgid "" @@ -1872,6 +2548,10 @@ msgid "" "directory. (Contributed by Victor Salgado and Mayank Tripathi in :issue:" "`19777`.)" msgstr "" +"Una nueva clase de método :meth:`Path.home() ` se puede " +"usar para obtener una instancia :class:`~pathlib.Path` que representa el " +"directorio de inicio del usuario. (Contribución de Victor Salgado y Mayank " +"Tripathi en :issue:`19777`.)" #: ../Doc/whatsnew/3.5.rst:1549 msgid "" @@ -1880,20 +2560,27 @@ msgid "" "Path.write_bytes>`, :meth:`Path.read_bytes() ` " "methods to simplify read/write operations on files." msgstr "" +"Los nuevos métodos :meth:`Path.write_text() `, :" +"meth:`Path.read_text() `, :meth:`Path.write_bytes() " +"`, :meth:`Path.read_bytes() ` para simplificar la lectura/escritura de operaciones en los " +"archivos." #: ../Doc/whatsnew/3.5.rst:1555 msgid "" "The following code snippet will create or rewrite existing file ``~/" "spam42``::" msgstr "" +"El siguiente fragmento de código creará o reescribirá el archivo existente " +"``~/spam42``::" #: ../Doc/whatsnew/3.5.rst:1563 msgid "(Contributed by Christopher Welborn in :issue:`20218`.)" -msgstr "" +msgstr "(Contribución de Christopher Welborn en :issue:`20218`.)" #: ../Doc/whatsnew/3.5.rst:1567 msgid "pickle" -msgstr "" +msgstr "pickle" #: ../Doc/whatsnew/3.5.rst:1569 msgid "" @@ -1902,10 +2589,15 @@ msgid "" "version 4. Protocol version 4 already supports these cases. (Contributed by " "Serhiy Storchaka in :issue:`23611`.)" msgstr "" +"Ahora los objetos anidados, como los métodos independientes o las clases " +"anidadas, se pueden serializar con pickle usando :ref:`protocolos pickle " +"` anteriores al protocolo de la versión 4. El protocolo de " +"la versión 4 ya admite estos casos. (Contribución de Serhiy Storchaka en :" +"issue:`23611`.)" #: ../Doc/whatsnew/3.5.rst:1576 msgid "poplib" -msgstr "" +msgstr "poplib" #: ../Doc/whatsnew/3.5.rst:1578 msgid "" @@ -1913,26 +2605,33 @@ msgid "" "(Internationalized Email) support, if a POP server supports it. (Contributed " "by Milan OberKirch in :issue:`21804`.)" msgstr "" +"Un nuevo comando :meth:`POP3.utf8() ` habilita el soporte " +"(correo electrónico internacionalizado) :rfc:`6856`, si un servidor POP lo " +"admite. (Contribución de Milan Oberkirch en :issue:`21804`.)" #: ../Doc/whatsnew/3.5.rst:1584 msgid "re" -msgstr "" +msgstr "re" #: ../Doc/whatsnew/3.5.rst:1586 msgid "" "References and conditional references to groups with fixed length are now " "allowed in lookbehind assertions::" msgstr "" +"Ahora las referencias y referencias condicionales a grupos con longitud fija " +"se permiten en afirmaciones retrospectivas::" #: ../Doc/whatsnew/3.5.rst:1596 msgid "(Contributed by Serhiy Storchaka in :issue:`9179`.)" -msgstr "" +msgstr "(Contribución de Serhiy Storchaka en :issue:`9179`.)" #: ../Doc/whatsnew/3.5.rst:1598 msgid "" "The number of capturing groups in regular expressions is no longer limited " "to 100. (Contributed by Serhiy Storchaka in :issue:`22437`.)" msgstr "" +"El número de captura de grupos en expresiones regulares ya no se limita a " +"100. (Contribución de Serhiy Storchaka en :issue:`22437`.)" #: ../Doc/whatsnew/3.5.rst:1601 msgid "" @@ -1940,6 +2639,9 @@ msgid "" "groups with empty strings instead of raising an exception. (Contributed by " "Serhiy Storchaka in :issue:`1519638`.)" msgstr "" +"Ahora las funciones :func:`~re.sub` y :func:`~re.subn` reemplazan grupos que " +"no coinciden con cadenas de caracteres vacías en lugar de lanzar una " +"excepción. (Contribución de Serhiy Storchaka en :issue:`1519638`.)" #: ../Doc/whatsnew/3.5.rst:1605 msgid "" @@ -1948,14 +2650,18 @@ msgid "" "lineno`, and :attr:`~re.error.colno`, that provide better context " "information about the error::" msgstr "" +"Las excepciones :class:`re.error` tienen nuevos atributos, :attr:`~re.error." +"msg`, :attr:`~re.error.pattern`, :attr:`~re.error.pos`, :attr:`~re.error." +"lineno` y :attr:`~re.error.colno`, que proporcionan una mejor información de " +"contexto sobre el error::" #: ../Doc/whatsnew/3.5.rst:1619 msgid "(Contributed by Serhiy Storchaka in :issue:`22578`.)" -msgstr "" +msgstr "(Contribución de Serhiy Storchaka en :issue:`22578`.)" #: ../Doc/whatsnew/3.5.rst:1623 msgid "readline" -msgstr "" +msgstr "readline" #: ../Doc/whatsnew/3.5.rst:1625 msgid "" @@ -1963,20 +2669,26 @@ msgid "" "the specified number of trailing elements in history to the given file. " "(Contributed by Bruno Cauet in :issue:`22940`.)" msgstr "" +"Una nueva función :func:`~readline.append_history_file` se puede usar para " +"adjuntar el número especificado de los elementos finales en el historial al " +"archivo dado. (Contribución de Bruno Cauet en :issue:`22940`.)" #: ../Doc/whatsnew/3.5.rst:1631 msgid "selectors" -msgstr "" +msgstr "selectors" #: ../Doc/whatsnew/3.5.rst:1633 msgid "" "The new :class:`~selectors.DevpollSelector` supports efficient ``/dev/poll`` " "polling on Solaris. (Contributed by Giampaolo Rodola' in :issue:`18931`.)" msgstr "" +"La nueva clase :class:`~selectors.DevpollSelector` admite sondeos eficientes " +"``/dev/poll`` en Solaris. (Contribución de Giampaolo Rodola' en :issue:" +"`18931`.)" #: ../Doc/whatsnew/3.5.rst:1639 msgid "shutil" -msgstr "" +msgstr "shutil" #: ../Doc/whatsnew/3.5.rst:1641 msgid "" @@ -1985,22 +2697,32 @@ msgid "" "of the default :func:`~shutil.copy2` if there is a need to ignore file " "metadata when moving. (Contributed by Claudiu Popa in :issue:`19840`.)" msgstr "" +"Ahora la función :func:`~shutil.move` acepta un argumento *copy_function*, " +"permitiendo, por ejemplo, que se use la función :func:`~shutil.copy` en " +"lugar de la predeterminada :func:`~shutil.copy2` si es necesario ignorar " +"metadatos de archivo al moverlo. (Contribución de Claudiu Popa en :issue:" +"`19840`.)" #: ../Doc/whatsnew/3.5.rst:1647 msgid "" "The :func:`~shutil.make_archive` function now supports the *xztar* format. " "(Contributed by Serhiy Storchaka in :issue:`5411`.)" msgstr "" +"Ahora la función :func:`~shutil.make_archive` admite el formato *xztar*. " +"(Contribución de Serhiy Storchaka en :issue:`5411`.)" #: ../Doc/whatsnew/3.5.rst:1652 msgid "signal" -msgstr "" +msgstr "signal" #: ../Doc/whatsnew/3.5.rst:1654 msgid "" "On Windows, the :func:`~signal.set_wakeup_fd` function now also supports " "socket handles. (Contributed by Victor Stinner in :issue:`22018`.)" msgstr "" +"En Windows, ahora la función :func:`~signal.set_wakeup_fd` también admite " +"identificadores de socket. (Contribución de Victor Stinner en :issue:" +"`22018`.)" #: ../Doc/whatsnew/3.5.rst:1657 msgid "" @@ -2009,10 +2731,14 @@ msgid "" "debugging, instead of integer \"magic numbers\". (Contributed by Giampaolo " "Rodola' in :issue:`21076`.)" msgstr "" +"Varias constantes ``SIG*`` en el módulo :mod:`signal` se convirtieron en :" +"mod:`Enums `. Esto permite que los nombres significativos se impriman " +"durante la depuración en lugar de \"números mágicos\" enteros. (Contribución " +"de Giampaolo Rodola' en :issue:`21076`.)" #: ../Doc/whatsnew/3.5.rst:1664 msgid "smtpd" -msgstr "" +msgstr "smtpd" #: ../Doc/whatsnew/3.5.rst:1666 msgid "" @@ -2026,6 +2752,16 @@ msgid "" "method must be prepared to accept keyword arguments. (Contributed by Maciej " "Szulik in :issue:`19662`.)" msgstr "" +"Ahora las clases :class:`~smtpd.SMTPServer` y :class:`~smtpd.SMTPChannel` " +"aceptan un argumento de palabra clave *decode_data* para determinar si la " +"porción ``DATA`` de la transacción SMTP se decodifica usando el códec ``" +"\"utf-8\"`` o en su lugar se proporciona al método :meth:`SMTPServer." +"process_message() ` como un byte de cadena " +"de caracteres. El valor predeterminado es ``True`` por razones de " +"compatibilidad con versiones anteriores, pero se cambiará a ``False`` en " +"Python 3.6. Si *decode_data* se establece en ``False``, el método " +"``process_message`` se debe preparar para aceptar argumentos de palabra " +"clave. (Contribución de Maciej Szulik en :issue:`19662`.)" #: ../Doc/whatsnew/3.5.rst:1677 msgid "" @@ -2036,6 +2772,12 @@ msgid "" "the *mail_options* keyword. (Contributed by Milan Oberkirch and R. David " "Murray in :issue:`21795`.)" msgstr "" +"Ahora la clase :class:`~smtpd.SMTPServer` anuncia la extensión ``8BITMIME`` " +"(:rfc:`6152`) si *decode_data* se establece como ``True``. Si el cliente " +"especifica ``BODY=8BITMIME`` en el comando ``MAIL``, se pasa al método :meth:" +"`SMTPServer.process_message() ` a través " +"de la palabra clave *mail_options*. (Contribución de Milan Oberkirch y R. " +"David Murray en :issue:`21795`.)" #: ../Doc/whatsnew/3.5.rst:1684 msgid "" @@ -2047,6 +2789,13 @@ msgid "" "method to correctly handle the ``SMTPUTF8`` data. (Contributed by Milan " "Oberkirch in :issue:`21725`.)" msgstr "" +"Ahora la clase :class:`~smtpd.SMTPServer` también admite la extensión " +"``SMTPUTF8`` (:rfc:`6531`: correo electrónico internacionalizado). Si el " +"cliente especificó ``SMTPUTF8 BODY=8BITMIME`` en el comando ``MAIL``, se " +"pasan al método :meth:`SMTPServer.process_message() ` a través de la palabra clave *mail_options*. Es " +"responsabilidad del método ``process_message`` manejar correctamente los " +"datos ``SMTPUTF8``. (Contribución de Milan Oberkirch en :issue:`21725`.)" #: ../Doc/whatsnew/3.5.rst:1692 msgid "" @@ -2054,10 +2803,14 @@ msgid "" "addresses in the :class:`~smtpd.SMTPServer` constructor, and have it " "successfully connect. (Contributed by Milan Oberkirch in :issue:`14758`.)" msgstr "" +"Ahora es posible proporcionar, directamente o mediante resolución de " +"nombres, direcciones IPv6 en el constructor :class:`~smtpd.SMTPServer`, y " +"hacer que se conecte correctamente. (Contribución de Milan Oberkirch en :" +"issue:`14758`.)" #: ../Doc/whatsnew/3.5.rst:1698 msgid "smtplib" -msgstr "" +msgstr "smtplib" #: ../Doc/whatsnew/3.5.rst:1700 msgid "" @@ -2065,6 +2818,9 @@ msgid "" "way to implement custom authentication mechanisms. (Contributed by Milan " "Oberkirch in :issue:`15014`.)" msgstr "" +"Un nuevo método :meth:`SMTP.auth() ` proporciona una " +"forma conveniente de implementar mecanismos de autenticación personalizados. " +"(Contribución de Milan Oberkirch en :issue:`15014`.)" #: ../Doc/whatsnew/3.5.rst:1704 msgid "" @@ -2073,6 +2829,10 @@ msgid "" "messages. (Contributed by Gavin Chappell and Maciej Szulik in :issue:" "`16914`.)" msgstr "" +"Ahora el método :meth:`SMTP.set_debuglevel() ` " +"acepta un nivel de depuración adicional (2), el cual habilita las marcas de " +"tiempo en los mensajes de depuración. (Contribución de Gavin Chappell y " +"Maciej Szulik en :issue:`16914`.)" #: ../Doc/whatsnew/3.5.rst:1708 msgid "" @@ -2081,10 +2841,14 @@ msgid "" "(SMTPUTF8). (Contributed by Milan Oberkirch and R. David Murray in :issue:" "`22027`.)" msgstr "" +"Ahora los métodos :meth:`SMTP.sendmail() ` y :meth:" +"`SMTP.send_message() ` admiten :rfc:`6531` " +"(SMTPUTF8). (Contribución de Milan Oberkirch y R. David Murray en :issue:" +"`22027`.)" #: ../Doc/whatsnew/3.5.rst:1715 msgid "sndhdr" -msgstr "" +msgstr "sndhdr" #: ../Doc/whatsnew/3.5.rst:1717 msgid "" @@ -2092,16 +2856,21 @@ msgid "" "a :func:`~collections.namedtuple`. (Contributed by Claudiu Popa in :issue:" "`18615`.)" msgstr "" +"Ahora las funciones :func:`~sndhdr.what` y :func:`~sndhdr.whathdr` retornan " +"una :func:`~collections.namedtuple`. (Contribución de Claudiu Popa en :issue:" +"`18615`.)" #: ../Doc/whatsnew/3.5.rst:1723 msgid "socket" -msgstr "" +msgstr "socket" #: ../Doc/whatsnew/3.5.rst:1725 msgid "" "Functions with timeouts now use a monotonic clock, instead of a system " "clock. (Contributed by Victor Stinner in :issue:`22043`.)" msgstr "" +"Ahora las funciones con tiempo de espera usan un reloj monótono en lugar de " +"un reloj del sistema. (Contribución de Victor Stinner en :issue:`22043`.)" #: ../Doc/whatsnew/3.5.rst:1728 msgid "" @@ -2111,6 +2880,12 @@ msgid "" "faster than when using plain :meth:`socket.send() `. " "(Contributed by Giampaolo Rodola' in :issue:`17552`.)" msgstr "" +"Un nuevo método :meth:`socket.sendfile() ` permite " +"enviar un archivo a través de un socket usando la función de alto " +"rendimiento :func:`os.sendfile` en UNIX, lo que hace que las cargas sean de " +"2 a 3 veces más rápido que cuando se usa el método simple :meth:`socket." +"send() `. (Contribución de Giampaolo Rodola' en :issue:" +"`17552`.)" #: ../Doc/whatsnew/3.5.rst:1734 msgid "" @@ -2119,6 +2894,10 @@ msgid "" "timeout is now the maximum total duration to send all data. (Contributed by " "Victor Stinner in :issue:`23853`.)" msgstr "" +"El método :meth:`socket.sendall() ` ya no reinicia el " +"tiempo de espera del socket cada vez que se reciben o se envían bytes. Ahora " +"el tiempo de espera del socket es la duración total máxima para enviar todos " +"los datos. (Contribución de Victor Stinner en :issue:`23853`.)" #: ../Doc/whatsnew/3.5.rst:1739 msgid "" @@ -2127,18 +2906,22 @@ msgid "" "SOMAXCONN>` or to ``128``, whichever is less. (Contributed by Charles-" "François Natali in :issue:`21455`.)" msgstr "" +"Ahora el argumento *backlog* del método :meth:`socket.listen() ` es opcional. De forma predeterminada, se establece en :data:" +"`SOMAXCONN ` o en ``128``, lo que sea menor. (Contribución " +"de Charles-François Natali en :issue:`21455`.)" #: ../Doc/whatsnew/3.5.rst:1746 msgid "ssl" -msgstr "" +msgstr "ssl" #: ../Doc/whatsnew/3.5.rst:1751 msgid "Memory BIO Support" -msgstr "" +msgstr "Soporte de memoria BIO" #: ../Doc/whatsnew/3.5.rst:1753 msgid "(Contributed by Geert Jansen in :issue:`21965`.)" -msgstr "" +msgstr "(Contribución de Geert Jansen en :issue:`21965`.)" #: ../Doc/whatsnew/3.5.rst:1755 msgid "" @@ -2149,6 +2932,13 @@ msgid "" "instead provides a memory buffer interface. The new :class:`~ssl.MemoryBIO` " "class can be used to pass data between Python and an SSL protocol instance." msgstr "" +"Se ha agregado la nueva clase :class:`~ssl.SSLObject` para proporcionar " +"soporte del protocolo SSL para los casos en que las capacidades de E/S de " +"red de :class:`~ssl.SSLSocket` no son necesarias o no son óptimas. " +"``SSLObject`` representa una instancia del protocolo SSL pero no implementa " +"ningún método de E/S de red y, en su lugar, proporciona una interfaz de " +"búfer de memoria. La nueva clase :class:`~ssl.MemoryBIO` se puede usar para " +"pasar datos entre Python y una instancia del protocolo SSL." #: ../Doc/whatsnew/3.5.rst:1762 msgid "" @@ -2156,20 +2946,25 @@ msgid "" "implementing asynchronous I/O for which :class:`~ssl.SSLSocket`'s readiness " "model (\"select/poll\") is inefficient." msgstr "" +"El soporte de la memoria BIO SSL está destinado principalmente para ser " +"usado en frameworks que implementan E/S asíncronas para las cuales el modelo " +"de preparación (\"select/poll\") de :class:`~ssl.SSLSocket` es ineficiente." #: ../Doc/whatsnew/3.5.rst:1766 msgid "" "A new :meth:`SSLContext.wrap_bio() ` method can be " "used to create a new ``SSLObject`` instance." msgstr "" +"Un nuevo método :meth:`SSLContext.wrap_bio() ` se " +"puede usar para crear una nueva instancia ``SSLObject``." #: ../Doc/whatsnew/3.5.rst:1771 msgid "Application-Layer Protocol Negotiation Support" -msgstr "" +msgstr "Soporte de negociación de protocolo de capa de aplicación" #: ../Doc/whatsnew/3.5.rst:1773 msgid "(Contributed by Benjamin Peterson in :issue:`20188`.)" -msgstr "" +msgstr "(Contribución de Benjamin Peterson en :issue:`20188`.)" #: ../Doc/whatsnew/3.5.rst:1775 msgid "" @@ -2177,6 +2972,9 @@ msgid "" "*Application-Layer Protocol Negotiation* TLS extension as described in :rfc:" "`7301`." msgstr "" +"Donde está presente el soporte de OpenSSL, ahora el módulo :mod:`ssl` " +"implementa la extensión TLS *Application-Layer Protocol Negotiation* como se " +"describe en :rfc:`7301`." #: ../Doc/whatsnew/3.5.rst:1779 msgid "" @@ -2184,6 +2982,9 @@ msgid "" "set_alpn_protocols>` can be used to specify which protocols a socket should " "advertise during the TLS handshake." msgstr "" +"El nuevo método :meth:`SSLContext.set_alpn_protocols() ` se puede usar para especificar qué protocolos deben " +"anunciar un socket durante el protocolo de enlace TLS." #: ../Doc/whatsnew/3.5.rst:1783 msgid "" @@ -2192,10 +2993,14 @@ msgid "" "TLS handshake. The :data:`~ssl.HAS_ALPN` flag indicates whether ALPN support " "is present." msgstr "" +"El nuevo método :meth:`SSLSocket.selected_alpn_protocol() ` retorna el protocolo que se seleccionó durante el " +"protocolo de enlace TLS. La bandera :data:`~ssl.HAS_ALPN` indica si el " +"soporte ALPN está presente." #: ../Doc/whatsnew/3.5.rst:1790 msgid "Other Changes" -msgstr "" +msgstr "Otros cambios" #: ../Doc/whatsnew/3.5.rst:1792 msgid "" @@ -2203,6 +3008,9 @@ msgid "" "query the actual protocol version in use. (Contributed by Antoine Pitrou in :" "issue:`20421`.)" msgstr "" +"Hay un nuevo método :meth:`SSLSocket.version() ` para " +"consultar la versión actual del protocolo en uso. (Contribución de Antoine " +"Pitrou en :issue:`20421`.)" #: ../Doc/whatsnew/3.5.rst:1796 msgid "" @@ -2210,6 +3018,9 @@ msgid "" "sendfile() ` method. (Contributed by Giampaolo " "Rodola' in :issue:`17552`.)" msgstr "" +"Ahora la clase :class:`~ssl.SSLSocket` implementa un método :meth:`SSLSocket." +"sendfile() `. (Contribución de Giampaolo Rodola' en :" +"issue:`17552`.)" #: ../Doc/whatsnew/3.5.rst:1800 msgid "" @@ -2218,6 +3029,10 @@ msgid "" "a non-blocking socket if the operation would block. Previously, it would " "return ``0``. (Contributed by Nikolaus Rath in :issue:`20951`.)" msgstr "" +"Ahora el método :meth:`SSLSocket.send() ` lanza la " +"excepción :exc:`ssl.SSLWantReadError` o :exc:`ssl.SSLWantWriteError` en un " +"socket sin bloqueo si la operación se bloquearía. Anteriormente, retornaría " +"``0``. (Contribución de Nikolaus Rath en :issue:`20951`.)" #: ../Doc/whatsnew/3.5.rst:1805 msgid "" @@ -2225,6 +3040,10 @@ msgid "" "as UTC and not as local time, per :rfc:`5280`. Additionally, the return " "value is always an :class:`int`. (Contributed by Akira Li in :issue:`19940`.)" msgstr "" +"Ahora la función :func:`~ssl.cert_time_to_seconds` interpreta la hora de " +"entrada como UTC y no como hora local, por :rfc:`5280`. Además, el valor de " +"retorno siempre es un :class:`int`. (Contribución de Akira Li en :issue:" +"`19940`.)" #: ../Doc/whatsnew/3.5.rst:1809 msgid "" @@ -2233,6 +3052,11 @@ msgid "" "return the list of ciphers sent by the client during the handshake. " "(Contributed by Benjamin Peterson in :issue:`23186`.)" msgstr "" +"Los nuevos métodos :meth:`SSLObject.shared_ciphers() ` y :meth:`SSLSocket.shared_ciphers() ` retornan la lista de cifrados enviados por el cliente " +"durante el protocolo de enlace. (Contribución de Benjamin Peterson en :issue:" +"`23186`.)" #: ../Doc/whatsnew/3.5.rst:1814 msgid "" @@ -2244,16 +3068,25 @@ msgid "" "maximum total duration of the method. (Contributed by Victor Stinner in :" "issue:`23853`.)" msgstr "" +"Los métodos :meth:`SSLSocket.do_handshake() `, :" +"meth:`SSLSocket.read() `, :meth:`SSLSocket.shutdown() " +"` y :meth:`SSLSocket.write() ` " +"de la clase :class:`~ssl.SSLSocket` ya no reinician el tiempo de espera del " +"socket cada vez que se reciben o se envían bytes. Ahora el tiempo de espera " +"del socket es la duración total máxima del método. (Contribución de Victor " +"Stinner en :issue:`23853`.)" #: ../Doc/whatsnew/3.5.rst:1822 msgid "" "The :func:`~ssl.match_hostname` function now supports matching of IP " "addresses. (Contributed by Antoine Pitrou in :issue:`23239`.)" msgstr "" +"Ahora la función :func:`~ssl.match_hostname` admite la coincidencia de " +"direcciones IP. (Contribución de Antoine Pitrou en :issue:`23239`.)" #: ../Doc/whatsnew/3.5.rst:1827 msgid "sqlite3" -msgstr "" +msgstr "sqlite3" #: ../Doc/whatsnew/3.5.rst:1829 msgid "" @@ -2262,10 +3095,14 @@ msgid "" "Claudiu Popa in :issue:`10203`; by Lucas Sinclair, Jessica McKellar, and " "Serhiy Storchaka in :issue:`13583`.)" msgstr "" +"Ahora la clase :class:`~sqlite3.Row` admite totalmente el protocolo de " +"secuencia, en particular la iteración :func:`reversed` y la indexación " +"segmentada. (Contribución de Claudiu Popa en :issue:`10203`; de Lucas " +"Sinclair, Jessica McKellar, y Serhiy Storchaka en :issue:`13583`.)" #: ../Doc/whatsnew/3.5.rst:1838 msgid "subprocess" -msgstr "" +msgstr "subprocess" #: ../Doc/whatsnew/3.5.rst:1840 msgid "" @@ -2276,10 +3113,16 @@ msgid "" "does not need to maintain compatibility with earlier Python versions. " "(Contributed by Thomas Kluyver in :issue:`23342`.)" msgstr "" +"Se agregó la nueva función :func:`~subprocess.run`. Ejecuta el comando " +"especificado y retorna un objeto :class:`~subprocess.CompletedProcess`, el " +"cual describe un proceso terminado. La nueva API es más consistente y es el " +"enfoque recomendado para invocar subprocesos en código Python que no " +"necesita mantener la compatibilidad con versiones anteriores de Python. " +"(Contribución de Thomas Kluyver en :issue:`23342`.)" #: ../Doc/whatsnew/3.5.rst:1864 msgid "sys" -msgstr "" +msgstr "sys" #: ../Doc/whatsnew/3.5.rst:1866 msgid "" @@ -2290,6 +3133,13 @@ msgid "" "functions are :term:`provisional `, and are intended for " "debugging purposes only. (Contributed by Yury Selivanov in :issue:`24017`.)" msgstr "" +"Una nueva función :func:`~sys.set_coroutine_wrapper` permite configurar un " +"enlace global que será llamado siempre que un :term:`objeto corrutina " +"` sea creado por una función :keyword:`async def`. Una función " +"correspondiente :func:`~sys.get_coroutine_wrapper` se puede usar para " +"obtener un contenedor configurado actualmente. Ambas funciones son :term:" +"`provisionales ` y se destinan solo para propósitos de " +"depuración. (Contribución de Yury Selivanov en :issue:`24017`.)" #: ../Doc/whatsnew/3.5.rst:1874 msgid "" @@ -2297,10 +3147,13 @@ msgid "" "interpreter is :term:`shutting down `. (Contributed by " "Antoine Pitrou in :issue:`22696`.)" msgstr "" +"Una nueva función :func:`~sys.is_finalizing` se puede usar para verificar si " +"el intérprete de Python se está :term:`apagando `. " +"(Contribución de Antoine Pitrou en :issue:`22696`.)" #: ../Doc/whatsnew/3.5.rst:1880 msgid "sysconfig" -msgstr "" +msgstr "sysconfig" #: ../Doc/whatsnew/3.5.rst:1882 msgid "" @@ -2308,10 +3161,13 @@ msgid "" "components of the Python version. (Contributed by Paul Moore in :issue:" "`23437`.)" msgstr "" +"Ahora el nombre del directorio de los scripts del usuario en Windows incluye " +"los dos primeros componentes de la versión de Python. (Contribución de Paul " +"Moore en :issue:`23437`.)" #: ../Doc/whatsnew/3.5.rst:1888 msgid "tarfile" -msgstr "" +msgstr "tarfile" #: ../Doc/whatsnew/3.5.rst:1890 msgid "" @@ -2319,6 +3175,9 @@ msgid "" "\"`` to request exclusive creation. (Contributed by Berker Peksag in :issue:" "`21717`.)" msgstr "" +"Ahora el argumento *mode* de la función :func:`~tarfile.open` acepta ``\"x" +"\"`` para solicitar una creación exclusiva. (Contribución de Berker Peksag " +"en :issue:`21717`.)" #: ../Doc/whatsnew/3.5.rst:1893 msgid "" @@ -2330,6 +3189,14 @@ msgid "" "prior to 3.5), they will be owned by the named user and group in the " "tarfile. (Contributed by Michael Vogt and Eric Smith in :issue:`23193`.)" msgstr "" +"Ahora los métodos :meth:`TarFile.extractall() ` " +"y :meth:`TarFile.extract() ` toman un argumento de " +"palabra clave *numeric_owner*. Si se establece como ``True``, los archivos y " +"directorios extraídos serán propiedad de los números ``uid`` y ``gid`` del " +"archivo tar. Si se establece como ``False`` (el valor predeterminado y el " +"comportamiento en versiones anteriores a la 3.5), serán propiedad del " +"usuario y el grupo nombrados en el archivo tar. (Contribución de Michael " +"Vogt y Eric Smith en :issue:`23193`.)" #: ../Doc/whatsnew/3.5.rst:1901 msgid "" @@ -2338,10 +3205,14 @@ msgid "" "by :meth:`TarFile.getmembers() `. (Contributed " "by Serhiy Storchaka in :issue:`21549`.)" msgstr "" +"Ahora :meth:`TarFile.list() ` acepta un argumento de " +"palabra clave opcional *members* que se puede establecer en un subconjunto " +"de la lista retornada por :meth:`TarFile.getmembers() `. (Contribución de Serhiy Storchaka en :issue:`21549`.)" #: ../Doc/whatsnew/3.5.rst:1908 msgid "threading" -msgstr "" +msgstr "threading" #: ../Doc/whatsnew/3.5.rst:1910 msgid "" @@ -2349,20 +3220,26 @@ msgid "" "acquire() ` methods now use a monotonic clock for " "timeout management. (Contributed by Victor Stinner in :issue:`22043`.)" msgstr "" +"Ahora los métodos :meth:`Lock.acquire() ` y :meth:" +"`RLock.acquire() ` usan un reloj monótono para la " +"administración del tiempo de espera. (Contribución de Victor Stinner en :" +"issue:`22043`.)" #: ../Doc/whatsnew/3.5.rst:1917 msgid "time" -msgstr "" +msgstr "time" #: ../Doc/whatsnew/3.5.rst:1919 msgid "" "The :func:`~time.monotonic` function is now always available. (Contributed " "by Victor Stinner in :issue:`22043`.)" msgstr "" +"Ahora la función :func:`~time.monotonic` siempre está disponible. " +"(Contribución de Victor Stinner en :issue:`22043`.)" #: ../Doc/whatsnew/3.5.rst:1924 msgid "timeit" -msgstr "" +msgstr "timeit" #: ../Doc/whatsnew/3.5.rst:1926 msgid "" @@ -2370,6 +3247,10 @@ msgid "" "specify the time unit for the timer output. Supported options are ``usec``, " "``msec``, or ``sec``. (Contributed by Julian Gindi in :issue:`18983`.)" msgstr "" +"Una nueva opción de línea de comando ``-u`` o :samp:`--unit={U}` se puede " +"usar para especificar la unidad de tiempo para la salida del temporizador. " +"Las opciones que se admiten son ``usec``, ``msec`` o ``sec``. (Contribución " +"de Julian Gindi en :issue:`18983`.)" #: ../Doc/whatsnew/3.5.rst:1930 msgid "" @@ -2377,10 +3258,13 @@ msgid "" "specifying the namespace in which the code will be running. (Contributed by " "Ben Roberts in :issue:`2527`.)" msgstr "" +"La función :func:`~timeit.timeit` tiene un nuevo parámetro *globals* para " +"especificar el espacio de nombres donde el código se ejecutará. " +"(Contribución de Ben Roberts en :issue:`2527`.)" #: ../Doc/whatsnew/3.5.rst:1936 msgid "tkinter" -msgstr "" +msgstr "tkinter" #: ../Doc/whatsnew/3.5.rst:1938 msgid "" @@ -2389,10 +3273,14 @@ msgid "" "module which makes no permanent changes to environment variables. " "(Contributed by Zachary Ware in :issue:`20035`.)" msgstr "" +"El módulo :mod:`tkinter._fix` que se usaba para configurar el entorno Tcl/Tk " +"en Windows se reemplazó por una función privada en el módulo :mod:`_tkinter` " +"que no hace cambios permanentes en las variables de entorno. (Contribución " +"de Zachary Ware en :issue:`20035`.)" #: ../Doc/whatsnew/3.5.rst:1947 msgid "traceback" -msgstr "" +msgstr "traceback" #: ../Doc/whatsnew/3.5.rst:1949 msgid "" @@ -2400,6 +3288,9 @@ msgid "" "to conveniently traverse frame and traceback objects. (Contributed by Robert " "Collins in :issue:`17911`.)" msgstr "" +"Las nuevas funciones :func:`~traceback.walk_stack` y :func:`~traceback." +"walk_tb` atraviesan convenientemente objetos de marco y rastreo. " +"(Contribución de Robert Collins en :issue:`17911`.)" #: ../Doc/whatsnew/3.5.rst:1953 msgid "" @@ -2407,6 +3298,9 @@ msgid "" "`~traceback.StackSummary`, and :class:`~traceback.FrameSummary`. " "(Contributed by Robert Collins in :issue:`17911`.)" msgstr "" +"Nuevas clases ligeras: :class:`~traceback.TracebackException`, :class:" +"`~traceback.StackSummary` y :class:`~traceback.FrameSummary`. (Contribución " +"de Robert Collins en :issue:`17911`.)" #: ../Doc/whatsnew/3.5.rst:1957 msgid "" @@ -2414,10 +3308,13 @@ msgid "" "functions now support negative values for the *limit* argument. (Contributed " "by Dmitry Kazakov in :issue:`22619`.)" msgstr "" +"Ahora las funciones :func:`~traceback.print_tb` y :func:`~traceback." +"print_stack` admiten valores negativos para el argumento *limit*. " +"(Contribución de Dmitry Kazakov en :issue:`22619`.)" #: ../Doc/whatsnew/3.5.rst:1963 msgid "types" -msgstr "" +msgstr "types" #: ../Doc/whatsnew/3.5.rst:1965 msgid "" @@ -2426,6 +3323,10 @@ msgid "" "Generator>` objects into :term:`awaitables `. (Contributed by " "Yury Selivanov in :issue:`24017`.)" msgstr "" +"Una nueva función :func:`~types.coroutine` para transformar un :term:" +"`iterador generador ` y objetos :class:`generator-like " +"` en :term:`aguardables `. " +"(Contribución de Yury Selivanov en :issue:`24017`.)" #: ../Doc/whatsnew/3.5.rst:1971 msgid "" @@ -2433,20 +3334,25 @@ msgid "" "`coroutine` objects created by :keyword:`async def` functions. (Contributed " "by Yury Selivanov in :issue:`24400`.)" msgstr "" +"Un nuevo tipo llamado :class:`~types.CoroutineType`, el cual se usa para " +"objetos :term:`coroutine` creados por funciones :keyword:`async def`. " +"(Contribución de Yury Selivanov en :issue:`24400`.)" #: ../Doc/whatsnew/3.5.rst:1977 msgid "unicodedata" -msgstr "" +msgstr "unicodedata" #: ../Doc/whatsnew/3.5.rst:1979 msgid "" "The :mod:`unicodedata` module now uses data from `Unicode 8.0.0 `_." msgstr "" +"Ahora el módulo :mod:`unicodedata` usa datos de `Unicode 8.0.0 `_." #: ../Doc/whatsnew/3.5.rst:1984 msgid "unittest" -msgstr "" +msgstr "unittest" #: ../Doc/whatsnew/3.5.rst:1986 msgid "" @@ -2458,6 +3364,13 @@ msgid "" "pattern. (Contributed by Robert Collins and Barry A. Warsaw in :issue:" "`16662`.)" msgstr "" +"Ahora el método :meth:`TestLoader.loadTestsFromModule() ` acepta un solo argumento de palabra clave *pattern* " +"que se pasa a ``load_tests`` como el tercer argumento. Ahora los paquetes " +"encontrados se verifican en busca de ``load_tests`` independientemente de si " +"su ruta coincide con *pattern*, porque es imposible que el nombre de un " +"paquete coincida con el modelo predeterminado. (Contribución de Robert " +"Collins y Barry A. Warsaw en :issue:`16662`.)" #: ../Doc/whatsnew/3.5.rst:1993 msgid "" @@ -2465,20 +3378,25 @@ msgid "" "` attribute of the :class:`~unittest.TestLoader` " "instance. (Contributed by Robert Collins in :issue:`19746`.)" msgstr "" +"Ahora los errores de descubrimiento de unittest se exponen en el atributo :" +"data:`TestLoader.errors ` de la instancia :class:" +"`~unittest.TestLoader`. (Contribución de Robert Collins en :issue:`19746`.)" #: ../Doc/whatsnew/3.5.rst:1998 msgid "" "A new command line option ``--locals`` to show local variables in " "tracebacks. (Contributed by Robert Collins in :issue:`22936`.)" msgstr "" +"Una nueva opción de línea de comando ``--locals`` muestra variables locales " +"en rastreo. (Contribución de Robert Collins en :issue:`22936`.)" #: ../Doc/whatsnew/3.5.rst:2003 msgid "unittest.mock" -msgstr "" +msgstr "unittest.mock" #: ../Doc/whatsnew/3.5.rst:2005 msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" -msgstr "" +msgstr "La clase :class:`~unittest.mock.Mock` tiene las siguientes mejoras:" #: ../Doc/whatsnew/3.5.rst:2007 msgid "" @@ -2486,6 +3404,10 @@ msgid "" "objects to raise :exc:`AttributeError` on attribute names starting with ``" "\"assert\"``. (Contributed by Kushal Das in :issue:`21238`.)" msgstr "" +"El constructor de la clase tiene un nuevo parámetro *unsafe*, que hace que " +"los objetos simulados lancen :exc:`AttributeError` en los nombres de " +"atributo que comienzan con ``\"assert\"``. (Contribución de Kushal Das en :" +"issue:`21238`.)" #: ../Doc/whatsnew/3.5.rst:2012 msgid "" @@ -2493,6 +3415,9 @@ msgid "" "assert_not_called>` method to check if the mock object was called. " "(Contributed by Kushal Das in :issue:`21262`.)" msgstr "" +"Un nuevo método :meth:`Mock.assert_not_called() ` para verificar si se llamó el objeto simulado. " +"(Contribución de Kushal Das en :issue:`21262`.)" #: ../Doc/whatsnew/3.5.rst:2016 msgid "" @@ -2501,6 +3426,10 @@ msgid "" "(Contributed by Johannes Baiter in :issue:`20968`, and Håkan Lövdahl in :" "issue:`23581` and :issue:`23568`.)" msgstr "" +"Ahora la clase :class:`~unittest.mock.MagicMock` admite los operadores :meth:" +"`__truediv__`, :meth:`__divmod__` y :meth:`__matmul__`. (Contribución de " +"Johannes Baiter en :issue:`20968` y de Håkan Lövdahl en :issue:`23581` y :" +"issue:`23568`.)" #: ../Doc/whatsnew/3.5.rst:2021 msgid "" @@ -2508,10 +3437,13 @@ msgid "" "`~unittest.mock.patch` function when patching builtin names. (Contributed by " "Kushal Das in :issue:`17660`.)" msgstr "" +"Ya no es necesario pasar explícitamente ``create=True`` a la función :func:" +"`~unittest.mock.patch` cuando se parchean los nombres incorporados. " +"(Contribución de Kushal Das en :issue:`17660`.)" #: ../Doc/whatsnew/3.5.rst:2027 msgid "urllib" -msgstr "" +msgstr "urllib" #: ../Doc/whatsnew/3.5.rst:2029 msgid "" @@ -2523,6 +3455,14 @@ msgid "" "a ``401`` if the ``Authorization`` header is not sent. (Contributed by Matej " "Cepl in :issue:`19494` and Akshit Khurana in :issue:`7159`.)" msgstr "" +"Una nueva clase :class:`request.HTTPPasswordMgrWithPriorAuth ` permite que se administren las credenciales " +"de autenticación básica HTTP para eliminar el manejo innecesario de " +"respuestas ``401`` o enviar credenciales incondicionalmente en la primera " +"solicitud para comunicarse con los servidores que retornen una respuesta " +"``404`` en lugar de un ``401`` si el encabezado ``Authorization`` no se " +"envía. (Contribución de Matej Cepl en :issue:`19494` y de Akshit Khurana en :" +"issue:`7159`.)" #: ../Doc/whatsnew/3.5.rst:2038 msgid "" @@ -2530,6 +3470,10 @@ msgid "" "urlencode>` function provides a way to control the encoding of query parts " "if needed. (Contributed by Samwyse and Arnon Yaari in :issue:`13866`.)" msgstr "" +"Un nuevo argumento *quote_via* para la función :func:`parse.urlencode() " +"` proporciona una forma de controlar la codificación " +"de las partes de la consulta si es necesario. (Contribución de Samwyse y " +"Arnon Yaari en :issue:`13866`.)" #: ../Doc/whatsnew/3.5.rst:2043 msgid "" @@ -2537,6 +3481,9 @@ msgid "" "class:`ssl.SSLContext` object as a *context* argument, which will be used " "for the HTTPS connection. (Contributed by Alex Gaynor in :issue:`22366`.)" msgstr "" +"La función :func:`request.urlopen() ` acepta un " +"objeto :class:`ssl.SSLContext` como un argumento *context*, el cual se usará " +"para la conexión HTTPS. (Contribución de Alex Gaynor en :issue:`22366`.)" #: ../Doc/whatsnew/3.5.rst:2047 msgid "" @@ -2545,10 +3492,14 @@ msgid "" "`1808` and :rfc:`2396`. (Contributed by Demian Brecht and Senthil Kumaran " "in :issue:`22118`.)" msgstr "" +"Se actualizó :func:`parse.urljoin() ` para usar la " +"semántica :rfc:`3986` para la resolución de URL relativas, en lugar de :rfc:" +"`1808` y :rfc:`2396`. (Contribución de Demian Brecht y Senthil Kumaran en :" +"issue:`22118`.)" #: ../Doc/whatsnew/3.5.rst:2054 msgid "wsgiref" -msgstr "" +msgstr "wsgiref" #: ../Doc/whatsnew/3.5.rst:2056 msgid "" @@ -2556,10 +3507,13 @@ msgid "" "Headers>` class constructor is now optional. (Contributed by Pablo Torres " "Navarrete and SilentGhost in :issue:`5800`.)" msgstr "" +"Ahora el argumento *headers* del constructor de la clase :class:`headers." +"Headers ` es opcional. (Contribución de Pablo " +"Torres Navarrete y SilentGhost en :issue:`5800`.)" #: ../Doc/whatsnew/3.5.rst:2062 msgid "xmlrpc" -msgstr "" +msgstr "xmlrpc" #: ../Doc/whatsnew/3.5.rst:2064 msgid "" @@ -2567,6 +3521,9 @@ msgid "" "supports the :term:`context manager` protocol. (Contributed by Claudiu Popa " "in :issue:`20627`.)" msgstr "" +"Ahora la clase :class:`client.ServerProxy ` " +"admite el protocolo :term:`context manager`. (Contribución de Claudiu Popa " +"en :issue:`20627`.)" #: ../Doc/whatsnew/3.5.rst:2068 msgid "" @@ -2574,10 +3531,13 @@ msgid "" "accepts an optional :class:`ssl.SSLContext` instance. (Contributed by Alex " "Gaynor in :issue:`22960`.)" msgstr "" +"Ahora el constructor de :class:`client.ServerProxy ` acepta una instancia opcional :class:`ssl.SSLContext`. " +"(Contribución de Alex Gaynor en :issue:`22960`.)" #: ../Doc/whatsnew/3.5.rst:2074 msgid "xml.sax" -msgstr "" +msgstr "xml.sax" #: ../Doc/whatsnew/3.5.rst:2076 msgid "" @@ -2585,22 +3545,29 @@ msgid "" "InputSource ` object. (Contributed by Serhiy " "Storchaka in :issue:`2175`.)" msgstr "" +"Ahora los analizadores SAX admiten un flujo de caracteres del objeto :class:" +"`xmlreader.InputSource `. (Contribución de " +"Serhiy Storchaka en :issue:`2175`.)" #: ../Doc/whatsnew/3.5.rst:2080 msgid "" ":func:`~xml.sax.parseString` now accepts a :class:`str` instance. " "(Contributed by Serhiy Storchaka in :issue:`10590`.)" msgstr "" +"Ahora :func:`~xml.sax.parseString` acepta una instancia :class:`str`. " +"(Contribución de Serhiy Storchaka en :issue:`10590`.)" #: ../Doc/whatsnew/3.5.rst:2085 msgid "zipfile" -msgstr "" +msgstr "zipfile" #: ../Doc/whatsnew/3.5.rst:2087 msgid "" "ZIP output can now be written to unseekable streams. (Contributed by Serhiy " "Storchaka in :issue:`23252`.)" msgstr "" +"Ahora la salida ZIP se puede escribir en flujos inescrutables. (Contribución " +"de Serhiy Storchaka en :issue:`23252`.)" #: ../Doc/whatsnew/3.5.rst:2090 msgid "" @@ -2608,10 +3575,13 @@ msgid "" "now accepts ``\"x\"`` to request exclusive creation. (Contributed by Serhiy " "Storchaka in :issue:`21717`.)" msgstr "" +"Ahora el argumento *mode* del método :meth:`ZipFile.open() ` acepta ``\"x\"`` para solicitar una creación exclusiva. (Contribución " +"de Serhiy Storchaka en :issue:`21717`.)" #: ../Doc/whatsnew/3.5.rst:2096 msgid "Other module-level changes" -msgstr "" +msgstr "Otros cambios a nivel de módulo" #: ../Doc/whatsnew/3.5.rst:2098 msgid "" @@ -2620,10 +3590,14 @@ msgid "" "objects `. (Contributed by Serhiy Storchaka in :issue:" "`23001`.)" msgstr "" +"Ahora muchas funciones en los módulos :mod:`mmap`, :mod:`ossaudiodev`, :mod:" +"`socket`, :mod:`ssl` y :mod:`codecs` aceptan :term:`objetos de tipo bytes " +"` que se pueden escribir. (Contribución de Serhiy " +"Storchaka en :issue:`23001`.)" #: ../Doc/whatsnew/3.5.rst:2105 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/3.5.rst:2107 msgid "" @@ -2633,6 +3607,11 @@ msgid "" "``readdir`` or ``FindFirstFile``/``FindNextFile`` system calls. " "(Contributed by Ben Hoyt with help from Victor Stinner in :issue:`23605`.)" msgstr "" +"La función :func:`os.walk` se aceleró de 3 a 5 veces en los sistemas POSIX y " +"de 7 a 20 veces en Windows. Esto se hizo usando la nueva función :func:`os." +"scandir`, el cual expone la información del archivo de las llamadas al " +"sistema ``readdir`` o ``FindFirstFile``/``FindNextFile``. (Contribución de " +"Ben Hoyt con ayuda de Victor Stinner en :issue:`23605`.)" #: ../Doc/whatsnew/3.5.rst:2113 msgid "" @@ -2641,6 +3620,10 @@ msgid "" "to allocate memory for these objects. (Contributed by Victor Stinner in :" "issue:`21233`.)" msgstr "" +"La construcción de ``bytes(int)`` (llenado con cero bytes) es más rápida y " +"usa menos memoria para objetos grandes. Se usa ``calloc()`` en lugar de " +"``malloc()`` para asignar memoria para estos objetos. (Contribución de " +"Victor Stinner en :issue:`21233`.)" #: ../Doc/whatsnew/3.5.rst:2118 msgid "" @@ -2652,12 +3635,22 @@ msgid "" "by Antoine Pitrou, Michel Albert, and Markus in :issue:`21486`, :issue:" "`21487`, :issue:`20826`, :issue:`23266`.)" msgstr "" +"Algunas operaciones en :mod:`ipaddress` :class:`~ipaddress.IPv4Network` y :" +"class:`~ipaddress.IPv6Network` se aceleraron masivamente, tal como :meth:" +"`~ipaddress.IPv4Network.subnets`, :meth:`~ipaddress.IPv4Network.supernet`, :" +"func:`~ipaddress.summarize_address_range`, :func:`~ipaddress." +"collapse_addresses`. La velocidad puede variar de 3 a 15 veces. " +"(Contribución de Antoine Pitrou, Michel Albert y Markus en :issue:`21486`, :" +"issue:`21487`, :issue:`20826`, :issue:`23266`.)" #: ../Doc/whatsnew/3.5.rst:2126 msgid "" "Pickling of :mod:`ipaddress` objects was optimized to produce significantly " "smaller output. (Contributed by Serhiy Storchaka in :issue:`23133`.)" msgstr "" +"Se optimizó pickling de objetos :mod:`ipaddress` para producir una salida " +"significativamente menor. (Contribución de Serhiy Storchaka en :issue:" +"`23133`.)" #: ../Doc/whatsnew/3.5.rst:2129 #, python-format @@ -2666,6 +3659,9 @@ msgid "" "(Contributed by Serhiy Storchaka in :issue:`15381` and David Wilson in :" "issue:`22003`.)" msgstr "" +"Ahora muchas operaciones en :class:`io.BytesIO` son de 50% a 100% más " +"rápidas. (Contribución de Serhiy Storchaka en :issue:`15381` y de David " +"Wilson en :issue:`22003`.)" #: ../Doc/whatsnew/3.5.rst:2133 msgid "" @@ -2674,12 +3670,18 @@ msgid "" "best cases. (Contributed by Serhiy Storchaka in :issue:`20416` and :issue:" "`23344`.)" msgstr "" +"Ahora la función :func:`marshal.dumps` es más rápida: 65--85% en las " +"versiones 3 y 4, 20--25% en las versiones 0 a 2 con datos típicos, y hasta 5 " +"veces en el mejor de los casos. (Contribución de Serhiy Storchaka en :issue:" +"`20416` y :issue:`23344`.)" #: ../Doc/whatsnew/3.5.rst:2138 msgid "" "The UTF-32 encoder is now 3 to 7 times faster. (Contributed by Serhiy " "Storchaka in :issue:`15027`.)" msgstr "" +"Ahora el codificador UTF-32 es de 3 a 7 veces más rápido. (Contribución de " +"Serhiy Storchaka en :issue:`15027`.)" #: ../Doc/whatsnew/3.5.rst:2141 #, python-format @@ -2687,6 +3689,8 @@ msgid "" "Regular expressions are now parsed up to 10% faster. (Contributed by Serhiy " "Storchaka in :issue:`19380`.)" msgstr "" +"Ahora las expresiones regulares se analizan hasta un 10% más rápido. " +"(Contribución de Serhiy Storchaka en :issue:`19380`.)" #: ../Doc/whatsnew/3.5.rst:2144 msgid "" @@ -2694,6 +3698,9 @@ msgid "" "``ensure_ascii=False`` as fast as with ``ensure_ascii=True``. (Contributed " "by Naoki Inada in :issue:`23206`.)" msgstr "" +"Se optimizó la función :func:`json.dumps` para ejecutarse con " +"``ensure_ascii=False`` tan rápido como con ``ensure_ascii=True``. " +"(Contribución de Naoki Inada en :issue:`23206`.)" #: ../Doc/whatsnew/3.5.rst:2148 msgid "" @@ -2702,6 +3709,9 @@ msgid "" "class:`type` as its metaclass. (Contributed Georg Brandl by in :issue:" "`22540`.)" msgstr "" +"Las funciones :c:func:`PyObject_IsInstance` y :c:func:`PyObject_IsSubclass` " +"se aceleraron en el caso común de que el segundo argumento tenga :class:" +"`type` como su metaclase. (Contribución de Georg Brandl en :issue:`22540`.)" #: ../Doc/whatsnew/3.5.rst:2153 msgid "" @@ -2709,6 +3719,9 @@ msgid "" "improvement in some benchmarks. (Contributed by Antoine Pitrou in :issue:" "`22847`.)" msgstr "" +"Se mejoró ligeramente el almacenamiento en caché del método, lo que arrojó " +"una mejora del rendimiento de hasta un 5% en algunos puntos de referencia. " +"(Contribución de Antoine Pitrou en :issue:`22847`.)" #: ../Doc/whatsnew/3.5.rst:2157 #, python-format @@ -2716,6 +3729,9 @@ msgid "" "Objects from the :mod:`random` module now use 50% less memory on 64-bit " "builds. (Contributed by Serhiy Storchaka in :issue:`23488`.)" msgstr "" +"Ahora los objetos del módulo :mod:`random` usan un 50% menos de memoria en " +"compilaciones de 64 bits. (Contribución de Serhiy Storchaka en :issue:" +"`23488`.)" #: ../Doc/whatsnew/3.5.rst:2160 #, python-format @@ -2723,6 +3739,8 @@ msgid "" "The :func:`property` getter calls are up to 25% faster. (Contributed by Joe " "Jevnik in :issue:`23910`.)" msgstr "" +"Las llamadas getter de :func:`property` son hasta un 25% más rápidas. " +"(Contribución de Joe Jevnik en :issue:`23910`.)" #: ../Doc/whatsnew/3.5.rst:2163 #, python-format @@ -2730,6 +3748,8 @@ msgid "" "Instantiation of :class:`fractions.Fraction` is now up to 30% faster. " "(Contributed by Stefan Behnel in :issue:`22464`.)" msgstr "" +"Ahora la instanciación de :class:`fractions.Fraction` es hasta un 30% más " +"rápida. (Contribución de Stefan Behnel en :issue:`22464`.)" #: ../Doc/whatsnew/3.5.rst:2166 msgid "" @@ -2738,46 +3758,50 @@ msgid "" "significantly faster for searching 1-character substrings. (Contributed by " "Serhiy Storchaka in :issue:`23573`.)" msgstr "" +"Ahora los métodos de cadena de caracteres :meth:`~str.find`, :meth:`~str." +"rfind`, :meth:`~str.split`, :meth:`~str.partition` y el operador :keyword:" +"`in` son significativamente más rápidos para buscar subcadenas de 1 " +"carácter. (Contribución de Serhiy Storchaka en :issue:`23573`.)" #: ../Doc/whatsnew/3.5.rst:2173 msgid "Build and C API Changes" -msgstr "" +msgstr "Cambios en la compilación y la API de C" #: ../Doc/whatsnew/3.5.rst:2175 msgid "New ``calloc`` functions were added:" -msgstr "" +msgstr "Se agregaron las nuevas funciones ``calloc``:" #: ../Doc/whatsnew/3.5.rst:2177 msgid ":c:func:`PyMem_RawCalloc`," -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," #: ../Doc/whatsnew/3.5.rst:2178 msgid ":c:func:`PyMem_Calloc`," -msgstr "" +msgstr ":c:func:`PyMem_Calloc`," #: ../Doc/whatsnew/3.5.rst:2179 msgid ":c:func:`PyObject_Calloc`." -msgstr "" +msgstr ":c:func:`PyObject_Calloc`." #: ../Doc/whatsnew/3.5.rst:2181 msgid "(Contributed by Victor Stinner in :issue:`21233`.)" -msgstr "" +msgstr "(Contribución de Victor Stinner en :issue:`21233`.)" #: ../Doc/whatsnew/3.5.rst:2183 msgid "New encoding/decoding helper functions:" -msgstr "" +msgstr "Nuevas funciones auxiliares de codificación/decodificación:" #: ../Doc/whatsnew/3.5.rst:2185 msgid ":c:func:`Py_DecodeLocale` (replaced ``_Py_char2wchar()``)," -msgstr "" +msgstr ":c:func:`Py_DecodeLocale` (reemplazó ``_Py_char2wchar()``)," #: ../Doc/whatsnew/3.5.rst:2186 msgid ":c:func:`Py_EncodeLocale` (replaced ``_Py_wchar2char()``)." -msgstr "" +msgstr ":c:func:`Py_EncodeLocale` (reemplazó ``_Py_wchar2char()``)." #: ../Doc/whatsnew/3.5.rst:2188 msgid "(Contributed by Victor Stinner in :issue:`18395`.)" -msgstr "" +msgstr "(Contribución de Victor Stinner en :issue:`18395`.)" #: ../Doc/whatsnew/3.5.rst:2190 msgid "" @@ -2785,6 +3809,9 @@ msgid "" "encode error with ``\\N{...}`` escapes. (Contributed by Serhiy Storchaka in :" "issue:`19676`.)" msgstr "" +"Una nueva función :c:func:`PyCodec_NameReplaceErrors` para reemplazar el " +"error de codificación unicode con ``\\N{...}`` escapes. (Contribución de " +"Serhiy Storchaka en :issue:`19676`.)" #: ../Doc/whatsnew/3.5.rst:2194 msgid "" @@ -2792,12 +3819,17 @@ msgid "" "but accepts a ``va_list`` argument. (Contributed by Antoine Pitrou in :issue:" "`18711`.)" msgstr "" +"Una nueva función :c:func:`PyErr_FormatV` similar a :c:func:`PyErr_Format`, " +"pero acepta un argumento ``va_list``. (Contribución de Antoine Pitrou en :" +"issue:`18711`.)" #: ../Doc/whatsnew/3.5.rst:2198 msgid "" "A new :c:data:`PyExc_RecursionError` exception. (Contributed by Georg Brandl " "in :issue:`19235`.)" msgstr "" +"Una nueva excepción :c:data:`PyExc_RecursionError`. (Contribución de Georg " +"Brandl en :issue:`19235`.)" #: ../Doc/whatsnew/3.5.rst:2201 msgid "" @@ -2806,6 +3838,10 @@ msgid "" "phase extension module initialization. (Contributed by Petr Viktorin in :" "issue:`24268`.)" msgstr "" +"Se introdujeron las nuevas funciones :c:func:`PyModule_FromDefAndSpec`, :c:" +"func:`PyModule_FromDefAndSpec2` y :c:func:`PyModule_ExecDef` por :pep:`489` " +"-- inicialización del módulo de extensión multifase. (Contribución de Petr " +"Viktorin en :issue:`24268`.)" #: ../Doc/whatsnew/3.5.rst:2206 msgid "" @@ -2814,17 +3850,26 @@ msgid "" "(Contributed by Benjamin Peterson in :issue:`21176`. See also :pep:`465` " "for details.)" msgstr "" +"Nuevas funciones :c:func:`PyNumber_MatrixMultiply` y :c:func:" +"`PyNumber_InPlaceMatrixMultiply` para realizar la multiplicación de " +"matrices. (Contribución de Benjamin Peterson en :issue:`21176`. Consultar " +"también :pep:`465` para más detalles.)" #: ../Doc/whatsnew/3.5.rst:2212 msgid "" "The :c:member:`PyTypeObject.tp_finalize` slot is now part of the stable ABI." msgstr "" +"Ahora el espacio :c:member:`PyTypeObject.tp_finalize` es parte de la ABI " +"estable." #: ../Doc/whatsnew/3.5.rst:2214 msgid "" "Windows builds now require Microsoft Visual C++ 14.0, which is available as " "part of `Visual Studio 2015 `_." msgstr "" +"Ahora las compilaciones de Windows requieren Microsoft Visual C++ 14.0, que " +"está disponible como parte de `Visual Studio 2015 `_." #: ../Doc/whatsnew/3.5.rst:2217 msgid "" @@ -2833,24 +3878,34 @@ msgid "" "without it, although if the tag is present and mismatched, the extension " "won't be loaded):" msgstr "" +"Ahora los módulos de extensión incluyen una etiqueta de información de la " +"plataforma en su nombre de archivo en algunas plataformas (la etiqueta es " +"opcional y CPython importará las extensiones sin ella, aunque si la etiqueta " +"está presente y no coincide, no se cargará la extensión):" #: ../Doc/whatsnew/3.5.rst:2222 msgid "" "On Linux, extension module filenames end with ``.cpython-m-" "-.pyd``:" msgstr "" +"En Linux, los nombres de archivo del módulo de extensión termina con ``." +"cpython-m--.pyd``:" #: ../Doc/whatsnew/3.5.rst:2225 ../Doc/whatsnew/3.5.rst:2242 msgid "" "```` is the major number of the Python version; for Python 3.5 this " "is ``3``." msgstr "" +"```` es el número principal de la versión de Python; para Python 3.5 " +"este es ``3``." #: ../Doc/whatsnew/3.5.rst:2228 ../Doc/whatsnew/3.5.rst:2245 msgid "" "```` is the minor number of the Python version; for Python 3.5 this " "is ``5``." msgstr "" +"```` es el número menor de la versión de Python; para Python 3.5 este " +"es ``5``." #: ../Doc/whatsnew/3.5.rst:2231 msgid "" @@ -2858,6 +3913,9 @@ msgid "" "built to run on. It's most commonly either ``i386`` for 32-bit Intel " "platforms or ``x86_64`` for 64-bit Intel (and AMD) platforms." msgstr "" +"```` es la arquitectura de hardware para la que se construyó " +"el módulo de extensión. Es más común ``i386`` para plataformas Intel de 32 " +"bits o ``x86_64`` para plataformas Intel (y AMD) de 64 bits." #: ../Doc/whatsnew/3.5.rst:2235 msgid "" @@ -2865,12 +3923,17 @@ msgid "" "32-bit ABI on 64-bit platforms, in which case it is ``linux-gnu32`` (and " "```` will be ``x86_64``)." msgstr "" +"```` siempre es ``linux-gnu``, excepto para las extensiones que se " +"crearon para comunicarse con la ABI de 32 bits en plataformas de 64 bits, en " +"cuyo caso es ``linux-gnu32`` (y ```` será ``x86_64``)." #: ../Doc/whatsnew/3.5.rst:2239 msgid "" "On Windows, extension module filenames end with ``.cp-" ".pyd``:" msgstr "" +"En Windows, los nombres de archivo del módulo de extensión termina con " +"``.cp-.pyd``:" #: ../Doc/whatsnew/3.5.rst:2248 msgid "" @@ -2878,31 +3941,40 @@ msgid "" "``win32`` for Win32, ``win_amd64`` for Win64, ``win_ia64`` for Windows " "Itanium 64, and ``win_arm`` for Windows on ARM." msgstr "" +"```` es la plataforma para la que se construyó el módulo de " +"extensión, ya sea ``win32`` para Win32, ``win_amd64`` para Win64, " +"``win_ia64`` para Windows Itanium 64 y ``win_arm`` para Windows con ARM." #: ../Doc/whatsnew/3.5.rst:2252 msgid "" "If built in debug mode, ```` will be ``_d``, otherwise it will be " "blank." msgstr "" +"Si está integrado en el modo de depuración, ```` será ``_d``, de lo " +"contrario estará en blanco." #: ../Doc/whatsnew/3.5.rst:2255 msgid "" "On OS X platforms, extension module filenames now end with ``-darwin.so``." msgstr "" +"En plataformas OS X, ahora los nombres de archivo del módulo de extensión " +"terminan con ``-darwin.so``." #: ../Doc/whatsnew/3.5.rst:2257 msgid "" "On all other platforms, extension module filenames are the same as they were " "with Python 3.4." msgstr "" +"En todas las demás plataformas, los nombres de archivo del módulo de " +"extensión son los mismos que en Python 3.4." #: ../Doc/whatsnew/3.5.rst:2262 msgid "Deprecated" -msgstr "" +msgstr "Obsoleto" #: ../Doc/whatsnew/3.5.rst:2265 msgid "New Keywords" -msgstr "" +msgstr "Nuevas palabras clave" #: ../Doc/whatsnew/3.5.rst:2267 msgid "" @@ -2910,10 +3982,13 @@ msgid "" "function or module names. Introduced by :pep:`492` in Python 3.5, they will " "become proper keywords in Python 3.7." msgstr "" +"No se recomienda usarse ``async`` y ``await`` como nombres de variable, " +"clase, función o módulo. Se introdujo por :pep:`492` en Python 3.5, se " +"convertirán en palabras clave adecuadas en Python 3.7." #: ../Doc/whatsnew/3.5.rst:2273 msgid "Deprecated Python Behavior" -msgstr "" +msgstr "Comportamiento obsoleto de Python" #: ../Doc/whatsnew/3.5.rst:2275 msgid "" @@ -2923,32 +3998,44 @@ msgid "" "`RuntimeError` in Python 3.7. See :ref:`PEP 479: Change StopIteration " "handling inside generators ` for details." msgstr "" +"Al lanzar la excepción :exc:`StopIteration` dentro de un generador ahora se " +"generará un :exc:`PendingDeprecationWarning` silencioso, el cual se " +"convertirá en una advertencia de deprecación no silenciosa en Python 3.6 y " +"activará un :exc:`RuntimeError` en Python 3.7. Consultar :ref:`PEP 479: " +"Cambiar el gestor de StopIteration dentro de generadores ` " +"para más detalles." #: ../Doc/whatsnew/3.5.rst:2283 msgid "Unsupported Operating Systems" -msgstr "" +msgstr "Sistemas operativos no compatibles" #: ../Doc/whatsnew/3.5.rst:2285 msgid "" "Windows XP is no longer supported by Microsoft, thus, per :PEP:`11`, CPython " "3.5 is no longer officially supported on this OS." msgstr "" +"Windows XP ya no es compatible con Microsoft, por lo tanto, según :PEP:`11`, " +"CPython 3.5 oficialmente ya no es compatible con este sistema operativo." #: ../Doc/whatsnew/3.5.rst:2290 msgid "Deprecated Python modules, functions and methods" -msgstr "" +msgstr "Módulos, funciones y métodos obsoletos de Python" #: ../Doc/whatsnew/3.5.rst:2292 msgid "" "The :mod:`formatter` module has now graduated to full deprecation and is " "still slated for removal in Python 3.6." msgstr "" +"Ahora el módulo :mod:`formatter` se ha graduado a su deprecación completa y " +"aún está programada para su eliminación en Python 3.6." #: ../Doc/whatsnew/3.5.rst:2295 msgid "" "The :func:`asyncio.async` function is deprecated in favor of :func:`~asyncio." "ensure_future`." msgstr "" +"La función :func:`asyncio.async` es obsoleta en favor de :func:`~asyncio." +"ensure_future`." #: ../Doc/whatsnew/3.5.rst:2298 msgid "" @@ -2958,6 +4045,12 @@ msgid "" "is ``True``, but this default is deprecated. Specify the *decode_data* " "keyword with an appropriate value to avoid the deprecation warning." msgstr "" +"En el pasado, el módulo :mod:`smtpd` siempre ha decodificado la porción DATA " +"de los mensajes de correo electrónico usando el códec ``utf-8``. Ahora esto " +"se puede controlar con la nueva palabra clave *decode_data* en :class:" +"`~smtpd.SMTPServer`. El valor predeterminado es ``True``, pero éste está " +"obsoleto. Especificar la palabra clave *decode_data* con un valor apropiado " +"para evitar la advertencia de deprecación." #: ../Doc/whatsnew/3.5.rst:2304 msgid "" @@ -2968,6 +4061,12 @@ msgid "" "*LegalChars* parameter of :meth:`~http.cookies.Morsel.set` is deprecated, " "and is now ignored." msgstr "" +"Está obsoleto asignar valores directamente en :attr:`~http.cookies.Morsel." +"key`, :attr:`~http.cookies.Morsel.value` y :attr:`~http.cookies.Morsel." +"coded_value` en los objetos de :class:`http.cookies.Morsel`. Usar en su " +"lugar el método :meth:`~http.cookies.Morsel.set`. Además, el parámetro no " +"documentado *LegalChars* de :meth:`~http.cookies.Morsel.set` está obsoleto y " +"ahora se ignora." #: ../Doc/whatsnew/3.5.rst:2311 msgid "" @@ -2975,6 +4074,10 @@ msgid "" "`~string.Formatter.format` method of the :class:`string.Formatter` class has " "been deprecated. (Contributed by Serhiy Storchaka in :issue:`23671`.)" msgstr "" +"Pasar una cadena de caracteres de formato como argumento de palabra clave " +"*format_string* al método :meth:`~string.Formatter.format` de la clase :" +"class:`string.Formatter` se ha quedado obsoleto. (Contribución de Serhiy " +"Storchaka en :issue:`23671`.)" #: ../Doc/whatsnew/3.5.rst:2316 msgid "" @@ -2983,6 +4086,11 @@ msgid "" "describing themselves, so the functionality is left to a package. " "(Contributed by Vajrasky Kok and Berker Peksag in :issue:`1322`.)" msgstr "" +"Ahora las funciones :func:`platform.dist` y :func:`platform." +"linux_distribution` están obsoletas. Las distribuciones de Linux usan " +"demasiadas formas diferentes de describirse a sí mismas, así que la " +"funcionalidad se deja a un paquete. (Contribución de Vajrasky Kok y Berker " +"Peksag en :issue:`1322`.)" #: ../Doc/whatsnew/3.5.rst:2321 msgid "" @@ -2991,12 +4099,18 @@ msgid "" "from_callable() ` method instead. " "(Contributed by Yury Selivanov in :issue:`24248`.)" msgstr "" +"Los métodos ``from_function`` y ``from_builtin`` previamente no documentados " +"de :class:`inspect.Signature` están obsoletos. Utilizar en su lugar el nuevo " +"método :meth:`Signature.from_callable() `. " +"(Contribución de Yury Selivanov en :issue:`24248`.)" #: ../Doc/whatsnew/3.5.rst:2326 msgid "" "The :func:`inspect.getargspec` function is deprecated and scheduled to be " "removed in Python 3.6. (See :issue:`20438` for details.)" msgstr "" +"La función :func:`inspect.getargspec` está obsoleta y programada para ser " +"eliminada en Python 3.6. (Consultar :issue:`20438` para más detalles.)" #: ../Doc/whatsnew/3.5.rst:2329 msgid "" @@ -3005,18 +4119,27 @@ msgid "" "favor of the :func:`inspect.signature` API. (Contributed by Yury Selivanov " "in :issue:`20438`.)" msgstr "" +"Las funciones :mod:`inspect` :func:`~inspect.getfullargspec`, :func:" +"`~inspect.getcallargs` y :func:`~inspect.formatargspec` están obsoletas en " +"favor de la API :func:`inspect.signature`. (Contribución de Yury Selivanov " +"en :issue:`20438`.)" #: ../Doc/whatsnew/3.5.rst:2334 msgid "" ":func:`~inspect.getargvalues` and :func:`~inspect.formatargvalues` functions " "were inadvertently marked as deprecated with the release of Python 3.5.0." msgstr "" +"Las funciones :func:`~inspect.getargvalues` y :func:`~inspect." +"formatargvalues` se marcaron inadvertidamente como obsoletas con el " +"lanzamiento de Python 3.5.0." #: ../Doc/whatsnew/3.5.rst:2337 msgid "" "Use of :const:`re.LOCALE` flag with str patterns or :const:`re.ASCII` is now " "deprecated. (Contributed by Serhiy Storchaka in :issue:`22407`.)" msgstr "" +"Ahora el uso de la bandera :const:`re.LOCALE` con patrones str o :const:`re." +"ASCII` está obsoleto. (Contribución de Serhiy Storchaka en :issue:`22407`.)" #: ../Doc/whatsnew/3.5.rst:2340 msgid "" @@ -3025,6 +4148,10 @@ msgid "" "deprecation warning and will be forbidden in Python 3.6. (Contributed by " "Serhiy Storchaka in :issue:`23622`.)" msgstr "" +"El uso de secuencias especiales no reconocidas que consisten en ``'\\'`` y " +"una letra ASCII en patrones de expresión regular y patrones de reemplazo " +"ahora lanza una advertencia de deprecación y estará prohibido en Python 3.6. " +"(Contribución de Serhiy Storchaka en :issue:`23622`.)" #: ../Doc/whatsnew/3.5.rst:2345 msgid "" @@ -3033,20 +4160,26 @@ msgid "" "ignored. (Contributed by Robert Collins and Barry A. Warsaw in :issue:" "`16662`.)" msgstr "" +"Ahora el argumento predeterminado no documentado y no oficial " +"*use_load_tests* del método :meth:`unittest.TestLoader.loadTestsFromModule` " +"está obsoleto e ignorado. (Contribución de Robert Collins y Barry A. Warsaw " +"en :issue:`16662`.)" #: ../Doc/whatsnew/3.5.rst:2352 msgid "Removed" -msgstr "" +msgstr "Eliminado" #: ../Doc/whatsnew/3.5.rst:2355 msgid "API and Feature Removals" -msgstr "" +msgstr "APIs y características eliminadas" #: ../Doc/whatsnew/3.5.rst:2357 msgid "" "The following obsolete and previously deprecated APIs and features have been " "removed:" msgstr "" +"Se eliminaron las siguientes APIs y características obsoletas y " +"anteriormente obsoletas:" #: ../Doc/whatsnew/3.5.rst:2360 msgid "" @@ -3054,16 +4187,23 @@ msgid "" "email code hasn't been shipped separately from the stdlib for a long time, " "and the ``__version__`` string was not updated in the last few releases." msgstr "" +"Se eliminó el atributo ``__version__`` del paquete de correo electrónico. No " +"se envió el código de correo electrónico por separado de stdlib durante " +"mucho tiempo, y la cadena de caracteres ``__version__`` no se actualizó en " +"las últimas versiones." #: ../Doc/whatsnew/3.5.rst:2364 msgid "" "The internal ``Netrc`` class in the :mod:`ftplib` module was deprecated in " "3.4, and has now been removed. (Contributed by Matt Chaput in :issue:`6623`.)" msgstr "" +"La clase interna ``Netrc`` en el módulo :mod:`ftplib` quedó obsoleta en la " +"versión 3.4 y ahora se eliminó. (Contribución de Matt Chaput en :issue:" +"`6623`.)" #: ../Doc/whatsnew/3.5.rst:2368 msgid "The concept of ``.pyo`` files has been removed." -msgstr "" +msgstr "Se eliminó el concepto de los archivos ``.pyo``." #: ../Doc/whatsnew/3.5.rst:2370 msgid "" @@ -3071,36 +4211,46 @@ msgid "" "deprecated in 3.4.4 and is now removed. (Contributed by A. Jesse Jiryu Davis " "in :issue:`23464`.)" msgstr "" +"La clase JoinableQueue en el módulo provisional :mod:`asyncio` quedó " +"obsoleto en la versión 3.4.4 y ahora se eliminó. (Contribución de A. Jesse " +"Jiryu Davis en :issue:`23464`.)" #: ../Doc/whatsnew/3.5.rst:2376 msgid "Porting to Python 3.5" -msgstr "" +msgstr "Portando a Python 3.5" #: ../Doc/whatsnew/3.5.rst:2378 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" +"Esta sección enumera cambios descritos anteriormente y otras correcciones de " +"errores que pueden requerir cambios en tu código." #: ../Doc/whatsnew/3.5.rst:2383 msgid "Changes in Python behavior" -msgstr "" +msgstr "Cambios en el comportamiento de Python" #: ../Doc/whatsnew/3.5.rst:2385 msgid "" "Due to an oversight, earlier Python versions erroneously accepted the " "following syntax::" msgstr "" +"Debido a un descuido, erróneamente en anteriores versiones de Python " +"aceptaron la siguiente sintaxis::" #: ../Doc/whatsnew/3.5.rst:2391 msgid "" "Python 3.5 now correctly raises a :exc:`SyntaxError`, as generator " "expressions must be put in parentheses if not a sole argument to a function." msgstr "" +"Ahora Python 3.5 lanza correctamente un :exc:`SyntaxError`, ya que las " +"expresiones generadoras deben ponerse entre paréntesis si no son el único " +"argumento de una función." #: ../Doc/whatsnew/3.5.rst:2396 msgid "Changes in the Python API" -msgstr "" +msgstr "Cambios en la API de Python" #: ../Doc/whatsnew/3.5.rst:2398 msgid "" @@ -3108,6 +4258,9 @@ msgid "" "instead of raising :exc:`InterruptedError` if the Python signal handler does " "not raise an exception." msgstr "" +":pep:`475`: Ahora se reintentan las llamadas al sistema cuando se " +"interrumpen por una señal en lugar de lanzar :exc:`InterruptedError` si el " +"gestor de señales de Python no lanza una excepción." #: ../Doc/whatsnew/3.5.rst:2402 msgid "" @@ -3116,6 +4269,10 @@ msgid "" "obscure and error-prone and has been removed in Python 3.5. See :issue:" "`13936` for full details." msgstr "" +"Antes de Python 3.5, se consideraba falso un objeto :class:`datetime.time` " +"si representaba la medianoche en UTC. Este comportamiento se consideraba " +"oscuro y propenso a errores y se eliminó en Python 3.5. Consultar :issue:" +"`13936` para más detalles." #: ../Doc/whatsnew/3.5.rst:2407 msgid "" @@ -3124,6 +4281,10 @@ msgid "" "if the operation would block. Previously, it would return ``0``. " "(Contributed by Nikolaus Rath in :issue:`20951`.)" msgstr "" +"Ahora el método :meth:`ssl.SSLSocket.send()` lanza ya sea :exc:`ssl." +"SSLWantReadError` o :exc:`ssl.SSLWantWriteError` en un socket sin bloqueo si " +"la operación se bloqueara. Anteriormente, retornaría ``0``. (Contribución de " +"Nikolaus Rath en :issue:`20951`.)" #: ../Doc/whatsnew/3.5.rst:2412 msgid "" @@ -3133,6 +4294,12 @@ msgid "" "attribute, the qualified name, which is now used for the representation of a " "generator (``repr(gen)``). (Contributed by Victor Stinner in :issue:`21205`.)" msgstr "" +"Ahora el atributo ``__name__`` de los generadores se establece desde el " +"nombre de la función en lugar de establecerse desde el nombre del código. " +"Usar ``gen.gi_code.co_name`` para recuperar el nombre del código. También " +"los generadores tienen un nuevo atributo ``__qualname__``, el nombre " +"calificado, el cual se utiliza ahora para la representación de un generador " +"(``repr(gen)``). (Contribución de Victor Stinner en :issue:`21205`.)" #: ../Doc/whatsnew/3.5.rst:2419 msgid "" @@ -3143,6 +4310,12 @@ msgid "" "HTMLParser` is now ``True`` by default. (Contributed by Berker Peksag in :" "issue:`21047`.)" msgstr "" +"Se eliminaron el argumento y modo obsoleto \"strict\" de :class:`~html." +"parser.HTMLParser`, :meth:`HTMLParser.error` y la excepción :exc:" +"`HTMLParserError`. (Contribución de Ezio Melotti en :issue:`15114`.) Ahora " +"el argumento *convert_charrefs* de :class:`~html.parser.HTMLParser` es " +"``True`` como valor predeterminado. (Contribución de Berker Peksag en :issue:" +"`21047`.)" #: ../Doc/whatsnew/3.5.rst:2425 msgid "" @@ -3152,6 +4325,11 @@ msgid "" "\"a :term:`bytes-like object` is required, not 'sometype'\". (Contributed by " "Ezio Melotti in :issue:`16518`.)" msgstr "" +"Aunque no es parte formalmente de la API, vale la pena señalar con fines de " +"portabilidad (es decir: pruebas de reparación) que ahora los mensajes de " +"error que anteriormente tenían el formato \"'sometype' no es compatible con " +"el protocolo búfer\" son del formato \"se requiere :term:`bytes-like " +"object`, no 'sometype'\". (Contribución de Ezio Melotti en :issue:`16518`.)" #: ../Doc/whatsnew/3.5.rst:2431 msgid "" @@ -3161,6 +4339,11 @@ msgid "" "caching ``None`` in :data:`sys.path_importer_cache`, which is different than " "the typical case (:issue:`22834`)." msgstr "" +"Si el directorio actual se establece en un directorio que ya no existe " +"entonces ya no se lanzará :exc:`FileNotFoundError` y en su lugar :meth:" +"`~importlib.machinery.FileFinder.find_spec` retornará ``None`` **sin** " +"almacenamiento en caché ``None`` en :data:`sys.path_importer_cache`, el cual " +"es diferente al caso típico (:issue:`22834`)." #: ../Doc/whatsnew/3.5.rst:2437 msgid "" @@ -3169,6 +4352,11 @@ msgid "" "in :mod:`http.client` and :mod:`http.server` remain available for backwards " "compatibility. (Contributed by Demian Brecht in :issue:`21793`.)" msgstr "" +"El código de estado HTTP y los mensajes de :mod:`http.client` y :mod:`http." +"server` se refactorizaron en una enumeración :class:`~http.HTTPStatus`. Los " +"valores en :mod:`http.client` y :mod:`http.server` permanecen disponibles " +"para compatibilidad con versiones anteriores. (Contribución de Demian Brecht " +"en :issue:`21793`.)" #: ../Doc/whatsnew/3.5.rst:2442 msgid "" @@ -3180,6 +4368,13 @@ msgid "" "Loader.create_module` to return ``None``. (Contributed by Brett Cannon in :" "issue:`23014`.)" msgstr "" +"Cuando un cargador de importación define :meth:`importlib.machinery.Loader." +"exec_module`, ahora se espera que también defina :meth:`~importlib.machinery." +"Loader.create_module` (ahora lanza un :exc:`DeprecationWarning`, será un " +"error en Python 3.6). Si el cargador hereda de :class:`importlib.abc.Loader` " +"entonces no hay nada que hacer, de lo contrario simplemente defina :meth:" +"`~importlib.machinery.Loader.create_module` para retornar ``None``. " +"(Contribución de Brett Cannon en :issue:`23014`.)" #: ../Doc/whatsnew/3.5.rst:2450 msgid "" @@ -3191,6 +4386,14 @@ msgid "" "only match an empty string (such as ``\"\\b\"``) now raise an error. " "(Contributed by Serhiy Storchaka in :issue:`22818`.)" msgstr "" +"La función :func:`re.split` siempre ignoraba las coincidencias de patrones " +"vacías, así que el patrón ``\"x*\"`` funcionaba igual que ``\"x+\"`` y el " +"patrón ``\"\\b\"`` nunca funcionó. Ahora :func:`re.split` lanza una " +"advertencia si el patrón puede coincidir con una cadena de caracteres vacía. " +"Para compatibilidad, usar patrones que nunca coincidan con una cadena vacía " +"(p. ej. ``\"x+\"`` en lugar de ``\"x*\"``). Ahora los patrones que solo " +"pueden coincidir con una cadena vacía (como ``\"\\b\"``) lanzan un error. " +"(Contribución de Serhiy Storchaka en :issue:`22818`.)" #: ../Doc/whatsnew/3.5.rst:2458 msgid "" @@ -3204,6 +4407,15 @@ msgid "" "`~http.cookies.Morsel.set` is deprecated and is now ignored. (Contributed " "by Demian Brecht in :issue:`2211`.)" msgstr "" +"La interfaz similar a diccionarios :class:`http.cookies.Morsel` se ha hecho " +"autoconsistente: ahora la comparación de morsel toma en cuenta :attr:`~http." +"cookies.Morsel.key` y :attr:`~http.cookies.Morsel.value`, ahora :meth:`~http." +"cookies.Morsel.copy` da como resultado en una instancia :class:`~http." +"cookies.Morsel` en lugar de un :class:`dict`, y ahora :meth:`~http.cookies." +"Morsel.update` lanzará una excepción si alguna de las claves del diccionario " +"de actualización no es válida. Además, el parámetro no documentado " +"*LegalChars* de :func:`~http.cookies.Morsel.set` está obsoleto y ahora se " +"ignora. (Contribución de Demian Brecht en :issue:`2211`.)" #: ../Doc/whatsnew/3.5.rst:2468 msgid "" @@ -3218,12 +4430,25 @@ msgid "" "pyo` files from previous versions of Python are invalid regardless of this " "PEP." msgstr "" +":pep:`488` eliminó los archivos ``.pyo`` de Python e introdujo la etiqueta " +"opcional ``opt-`` en los nombres de archivo ``.pyc``. La función :func:" +"`importlib.util.cache_from_source` ganó un parámetro *optimization* para " +"ayudar a controlar la etiqueta ``opt-``. Debido a esto, ahora el parámetro " +"*debug_override* de la función está obsoleto. También los archivos `.pyo` ya " +"no se admiten como un argumento de archivo para el intérprete de Python, y " +"por lo tanto, no tienen ningún propósito cuando se distribuyen por sí mismos " +"(es decir, distribución de código sin fuente). Debido al hecho de que el " +"número mágico para bytecode se cambió en Python 3.5, todos los archivos " +"antiguos `.pyo` de versiones anteriores de Python no son válidos " +"independientemente de este PEP." #: ../Doc/whatsnew/3.5.rst:2479 msgid "" "The :mod:`socket` module now exports the :data:`~socket.CAN_RAW_FD_FRAMES` " "constant on linux 3.6 and greater." msgstr "" +"Ahora el módulo :mod:`socket` exporta la constante :data:`~socket." +"CAN_RAW_FD_FRAMES` en Linux 3.6 y versiones superiores." #: ../Doc/whatsnew/3.5.rst:2482 msgid "" @@ -3231,12 +4456,18 @@ msgid "" "as UTC and not as local time, per :rfc:`5280`. Additionally, the return " "value is always an :class:`int`. (Contributed by Akira Li in :issue:`19940`.)" msgstr "" +"Ahora la función :func:`ssl.cert_time_to_seconds` interpreta la hora de " +"entrada como UTC y no como hora local, por :rfc:`5280`. Además, el valor de " +"retorno siempre es un :class:`int`. (Contribución de Akira Li en :issue:" +"`19940`.)" #: ../Doc/whatsnew/3.5.rst:2486 msgid "" "The ``pygettext.py`` Tool now uses the standard +NNNN format for timezones " "in the POT-Creation-Date header." msgstr "" +"Ahora la herramienta ``pygettext.py`` usa el formato estándar +NNNN para " +"zonas horarias en el encabezado POT-Creation-Date." #: ../Doc/whatsnew/3.5.rst:2489 msgid "" @@ -3245,6 +4476,11 @@ msgid "" "(test) program depends on patching the module-level variable to capture the " "debug output, you will need to update it to capture sys.stderr instead." msgstr "" +"Ahora el módulo :mod:`smtplib` usa :data:`sys.stderr` en lugar de la " +"variable anterior de nivel de módulo :data:`stderr` para la salida de " +"depuración. Si tu programa (de prueba) depende de parchear la variable de " +"nivel de mundo para capturar la salida de depuración, necesitarás " +"actualizarlo para capturar sys.stderr en su lugar." #: ../Doc/whatsnew/3.5.rst:2494 msgid "" @@ -3252,6 +4488,10 @@ msgid "" "``True`` when finding the empty string and the indexes are completely out of " "range. (Contributed by Serhiy Storchaka in :issue:`24284`.)" msgstr "" +"Los métodos :meth:`str.startswith` y :meth:`str.endswith` ya no retornan " +"``True`` cuando encuentran la cadena de caracteres vacía y los índices están " +"completamente fuera de rango. (Contribución de Serhiy Storchaka en :issue:" +"`24284`.)" #: ../Doc/whatsnew/3.5.rst:2498 msgid "" @@ -3263,6 +4503,13 @@ msgid "" "module and the :func:`help` function. (Contributed by Serhiy Storchaka in :" "issue:`15582`.)" msgstr "" +"Ahora la función :func:`inspect.getdoc` retorna cadenas de documentación que " +"se heredaron de clases base. Ya no es necesario duplicar las cadenas de " +"documentación si la documentación que se heredó es apropiada. Para suprimir " +"una cadena que se heredó, se debe especificar una cadena vacía (o se puede " +"completar la documentación). Este cambio afecta la salida del módulo :mod:" +"`pydoc` y la función :func:`help`. (Contribución de Serhiy Storchaka en :" +"issue:`15582`.)" #: ../Doc/whatsnew/3.5.rst:2506 msgid "" @@ -3271,10 +4518,14 @@ msgid "" "func:`functools.partial` object or you can create a subclass of :func:" "`functools.partial`. (Contributed by Alexander Belopolsky in :issue:`7830`.)" msgstr "" +"Ahora las llamadas anidadas :func:`functools.partial` se aplanan. Si se " +"confiaba en el comportamiento anterior, ahora se puede agregar un atributo a " +"un objeto :func:`functools.partial` o se puede crear una subclase de :func:" +"`functools.partial`. (Contribución de Alexander Belopolsky en :issue:`7830`.)" #: ../Doc/whatsnew/3.5.rst:2513 msgid "Changes in the C API" -msgstr "" +msgstr "Cambios en la API de C" #: ../Doc/whatsnew/3.5.rst:2515 msgid "" @@ -3283,12 +4534,18 @@ msgid "" "extensions relying on the relevant parts in ``memoryobject.h`` must be " "rebuilt." msgstr "" +"Se eliminó el miembro no documentado :c:member:`~PyMemoryViewObject.format` " +"de la estructura (no pública) :c:type:`PyMemoryViewObject`. Todas las " +"extensiones que se basan en las partes relevantes en ``memoryobject.h`` se " +"debe recompilar." #: ../Doc/whatsnew/3.5.rst:2520 msgid "" "The :c:type:`PyMemAllocator` structure was renamed to :c:type:" "`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" +"La estructura :c:type:`PyMemAllocator` se renombró a :c:type:" +"`PyMemAllocatorEx` y se agregó un nuevo campo ``calloc``." #: ../Doc/whatsnew/3.5.rst:2523 msgid "" @@ -3297,6 +4554,10 @@ msgid "" "like functions to format the :func:`repr` of the object. (Contributed by " "Serhiy Storchaka in :issue:`22453`.)" msgstr "" +"Se eliminó la macro no documentada :c:macro:`PyObject_REPR` que filtró " +"referencias. Usar el carácter de formato ``%R`` en funciones similares a :c:" +"func:`PyUnicode_FromFormat` para formatear :func:`repr` del objeto. " +"(Contribución de Serhiy Storchaka en :issue:`22453`.)" #: ../Doc/whatsnew/3.5.rst:2528 msgid "" @@ -3305,6 +4566,10 @@ msgid "" "the :attr:`__module__` attribute. This would be an AttributeError in the " "future. (Contributed by Serhiy Storchaka in :issue:`20204`.)" msgstr "" +"Debido a que la falta del atributo :attr:`__module__` rompe pickling y la " +"introspección, ahora se lanza una advertencia de deprecación para los tipos " +"integrados sin el atributo :attr:`__module__`. Este sería un AttributeError " +"en el futuro. (Contribución de Serhiy Storchaka en :issue:`20204`.)" #: ../Doc/whatsnew/3.5.rst:2534 msgid "" @@ -3312,14 +4577,18 @@ msgid "" "type:`PyTypeObject` was replaced with a :c:member:`tp_as_async` slot. Refer " "to :ref:`coro-objects` for new types, structures and functions." msgstr "" +"Como parte de la implementación de :pep:`492`, el espacio ``tp_reserved`` " +"de :c:type:`PyTypeObject` se reemplazó con un espacio :c:member:" +"`tp_as_async`. Consultar :ref:`coro-objects` para nuevos tipos, estructuras " +"y funciones." #: ../Doc/whatsnew/3.5.rst:2541 msgid "Notable changes in Python 3.5.4" -msgstr "" +msgstr "Cambios notables en Python 3.5.4" #: ../Doc/whatsnew/3.5.rst:2544 msgid "New ``make regen-all`` build target" -msgstr "" +msgstr "Nuevo objetivo de compilación ``make regen-all``" #: ../Doc/whatsnew/3.5.rst:2546 msgid "" @@ -3328,6 +4597,11 @@ msgid "" "available, the autotools-based build system no longer attempts to implicitly " "recompile generated files based on file modification times." msgstr "" +"Para simplificar la compilación cruzada y asegurar que CPython se pueda " +"compilar de manera confiable sin requerir que una versión existente de " +"Python ya esté disponible, el sistema de compilación basado en herramientas " +"automáticas ya no intenta volver a compilar implícitamente los archivos " +"generados en función de los tiempos de modificación de los archivos." #: ../Doc/whatsnew/3.5.rst:2551 msgid "" @@ -3335,20 +4609,26 @@ msgid "" "regeneration of these files when desired (e.g. after an initial version of " "Python has already been built based on the pregenerated versions)." msgstr "" +"En su lugar, se agregó un nuevo comando ``make regen-all`` para forzar la " +"regeneración de estos archivos cuando se desee (p. ej. después de que ya se " +"haya creado una versión inicial de Python basada en las versiones " +"pregeneradas). " #: ../Doc/whatsnew/3.5.rst:2555 msgid "" "More selective regeneration targets are also defined - see :source:`Makefile." "pre.in` for details." msgstr "" +"También se definen objetivos de regeneración más selectivos - consultar :" +"source:`Makefile.pre.in` para más detalles." #: ../Doc/whatsnew/3.5.rst:2558 ../Doc/whatsnew/3.5.rst:2571 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" -msgstr "" +msgstr "(Contribución de Victor Stinner en :issue:`23404`.)" #: ../Doc/whatsnew/3.5.rst:2564 msgid "Removal of ``make touch`` build target" -msgstr "" +msgstr "Eliminación del objetivo de compilación ``make touch``" #: ../Doc/whatsnew/3.5.rst:2566 msgid "" @@ -3356,7 +4636,10 @@ msgid "" "regeneration of generated files by updating their modification times has " "been removed." msgstr "" +"Se eliminó el objetivo de compilación ``make touch`` que anteriormente se " +"usaba para solicitar la regeneración implícita de los archivos generados " +"mediante la actualización de sus tiempos de modificación." #: ../Doc/whatsnew/3.5.rst:2569 msgid "It has been replaced by the new ``make regen-all`` target." -msgstr "" +msgstr "Se reemplazó por el nuevo objetivo ``make regen-all``." diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index 367d1fcd5a..2613ca342b 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-12 05:44-0500\n" -"Last-Translator: \n" +"PO-Revision-Date: 2021-08-16 23:02+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_EC\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/whatsnew/3.7.rst:3 msgid "What's New In Python 3.7" @@ -171,9 +172,8 @@ msgid ":ref:`PEP 552 `, deterministic .pycs" msgstr ":ref:`PEP 552 `, determinista *.pycs*" #: ../Doc/whatsnew/3.7.rst:105 -#, fuzzy msgid ":ref:`New Python Development Mode `" -msgstr ":ref:`el nuevo modo de ejecución de desarrollo `" +msgstr ":ref:`El nuevo modo de ejecución de desarrollo `" #: ../Doc/whatsnew/3.7.rst:106 msgid "" @@ -302,9 +302,8 @@ msgstr "" "`__future__`:" #: ../Doc/whatsnew/3.7.rst:174 -#, fuzzy msgid "It will become the default in Python 3.10." -msgstr "Se convertirá en el predeterminado en Python 4.0." +msgstr "Se convertirá en el predeterminado en Python 3.10." #: ../Doc/whatsnew/3.7.rst:178 msgid ":pep:`563` -- Postponed evaluation of annotations" @@ -921,9 +920,8 @@ msgstr "" "Stinner*." #: ../Doc/whatsnew/3.7.rst:483 -#, fuzzy msgid "Python Development Mode (-X dev)" -msgstr "Modo de tiempo de ejecución de desarrollo: -X *dev*" +msgstr "Modo de desarrollo de Python (-X dev)" #: ../Doc/whatsnew/3.7.rst:485 msgid "" @@ -934,6 +932,12 @@ msgid "" "See :ref:`Python Development Mode ` documentation for the full " "description." msgstr "" +"La nueva opción :option:`-X` ``dev`` opción de línea de comando o la nueva " +"variable de entorno :envvar:`PYTHONDEVMODE` se puede usar para habilitar :" +"ref:`Python Development Mode `. Cuando está en modo de desarrollo, " +"Python realiza comprobaciones de tiempo de ejecución adicionales que son " +"demasiado caras para habilitarse de forma predeterminada. Ver :ref:`Python " +"Development Mode ` documentación para la descripción completa." #: ../Doc/whatsnew/3.7.rst:494 msgid "Other Language Changes" @@ -1189,14 +1193,13 @@ msgstr "" "incluyen:" #: ../Doc/whatsnew/3.7.rst:639 -#, fuzzy msgid "" "The new :term:`provisional ` :func:`asyncio.run` function " "can be used to run a coroutine from synchronous code by automatically " "creating and destroying the event loop. (Contributed by Yury Selivanov in :" "issue:`32314`.)" msgstr "" -"La nueva función :term:`provisional ` :func:`asyncio.run` " +"La nueva función :term:`provisional ` :func:`asyncio.run` " "se puede utilizar para ejecutar una corrutina desde código síncrono creando " "y destruyendo automáticamente el bucle de eventos. (Contribuido por *Yury " "Selivanov* en :issue:`32314`.)" @@ -2595,7 +2598,6 @@ msgstr "" "Heimes* en :issue:`31399`.)" #: ../Doc/whatsnew/3.7.rst:1335 -#, fuzzy msgid "" "The improved host name check requires a *libssl* implementation compatible " "with OpenSSL 1.0.2 or 1.1. Consequently, OpenSSL 0.9.8 and 1.0.1 are no " @@ -2605,8 +2607,8 @@ msgstr "" "La verificación mejorada del nombre de host requiere una implementación " "*libssl* compatible con OpenSSL 1.0.2 o 1.1. En consecuencia, OpenSSL 0.9.8 " "y 1.0.1 ya no son compatibles (consulte :ref:`37-platform-support-removals` " -"para más detalles). El módulo *ssl* es principalmente compatible con " -"LibreSSL 2.7.2 y versiones posteriores." +"para más detalles). El módulo ssl es principalmente compatible con LibreSSL " +"2.7.2 y versiones posteriores." #: ../Doc/whatsnew/3.7.rst:1340 msgid "" @@ -5132,9 +5134,8 @@ msgstr "" "Pitrou*, y *Yury Selivanov* en :issue:`37228`.)" #: ../Doc/whatsnew/3.7.rst:2561 -#, fuzzy msgid "Notable changes in Python 3.7.10" -msgstr "Cambios notables en Python 3.7.1" +msgstr "Cambios notables en Python 3.7.10" #: ../Doc/whatsnew/3.7.rst:2563 msgid "" @@ -5147,6 +5148,15 @@ msgid "" "For more details, please see their respective documentation. (Contributed by " "Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr "" +"Las versiones anteriores de Python permitían usar tanto ``;`` como ``&`` " +"como separadores de parámetros de consulta en :func:`urllib.parse.parse_qs` " +"y :func:`urllib.parse.parse_qsl`. Debido a problemas de seguridad y para " +"cumplir con las recomendaciones más recientes del W3C, esto se ha cambiado " +"para permitir solo una clave separadora, con ``&`` como valor " +"predeterminado. Este cambio también afecta a :func:`cgi.parse` y :func:`cgi." +"parse_multipart` ya que utilizan las funciones afectadas internamente. Para " +"obtener más detalles, consulte su documentación respectiva. (Contribuido por " +"Adam Goldschmidt, Senthil Kumaran y Ken Jin en :issue:`42967`.)" #~ msgid "" #~ "The new :option:`-X` ``dev`` command line option or the new :envvar:" diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index f85e16721b..47e1165771 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 11:16+0100\n" -"PO-Revision-Date: 2020-10-16 21:15+0200\n" -"Last-Translator: Francisco Jesús Sevilla García \n" +"PO-Revision-Date: 2021-08-16 23:07+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language: es_ES\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/whatsnew/3.8.rst:3 msgid "What's New In Python 3.8" @@ -355,7 +356,7 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:254 msgid "f-strings support ``=`` for self-documenting expressions and debugging" msgstr "" -"Los f-strings soportan ``=`` para expresiones autodocumentadas y depuración" +"los f-strings soportan ``=`` para expresiones autodocumentadas y depuración" #: ../Doc/whatsnew/3.8.rst:256 msgid "" @@ -584,21 +585,19 @@ msgid "(Contributed by Victor Stinner in :issue:`36763`.)" msgstr "(Contribución de Victor Stinner en :issue:`36763`.)" #: ../Doc/whatsnew/3.8.rst:350 -#, fuzzy msgid "PEP 590: Vectorcall: a fast calling protocol for CPython" -msgstr "Vectorcall: un protocolo de invocación rápida para CPython" +msgstr "PEP 590: Vectorcall: un protocolo de llamada rápida para CPython" #: ../Doc/whatsnew/3.8.rst:352 -#, fuzzy msgid "" ":ref:`vectorcall` is added to the Python/C API. It is meant to formalize " "existing optimizations which were already done for various classes. Any " "static type implementing a callable can use this protocol." msgstr "" -"El protocolo \"vectorcall\" se ha agregado a la API de Python/C. Tiene como " -"objetivo formalizar las optimizaciones existentes que ya se realizaron para " -"varias clases. Cualquier tipo de extensión que implemente un invocable puede " -"utilizar este protocolo." +":ref:`vectorcall` se agrega a la API de Python/C. Está destinado a " +"formalizar las optimizaciones existentes que ya se realizaron para varias " +"clases. Cualquier tipo estático que implemente un invocable puede utilizar " +"este protocolo." #: ../Doc/whatsnew/3.8.rst:357 msgid "" @@ -613,11 +612,12 @@ msgid "See :pep:`590` for a full description." msgstr "Consultar :pep:`590` para obtener una descripción completa." #: ../Doc/whatsnew/3.8.rst:362 -#, fuzzy msgid "" "(Contributed by Jeroen Demeyer, Mark Shannon and Petr Viktorin in :issue:" "`36974`.)" -msgstr "(Contribución de Jeroen Demeyer y Mark Shannon en :issue:`36974`.)" +msgstr "" +"(Contribución de Jeroen Demeyer, Mark Shannon y Petr Viktorin en :issue:" +"`36974`.)" #: ../Doc/whatsnew/3.8.rst:366 msgid "Pickle protocol 5 with out-of-band data buffers" @@ -1037,7 +1037,6 @@ msgid "(Contributed by Yury Selivanov in :issue:`37028`.)" msgstr "(Contribución de Yury Selivanov en :issue:`37028`.)" #: ../Doc/whatsnew/3.8.rst:648 ../Doc/whatsnew/3.8.rst:1964 -#, fuzzy msgid "" "The exception :class:`asyncio.CancelledError` now inherits from :class:" "`BaseException` rather than :class:`Exception` and no longer inherits from :" @@ -1045,8 +1044,9 @@ msgid "" "in :issue:`32528`.)" msgstr "" "La excepción :class:`asyncio.CancelledError` ahora hereda de :class:" -"`BaseException` en vez de :class:`Exception`. (Contribución de Yury " -"Selivanov en :issue:`32528`.)" +"`BaseException` en lugar de :class:`Exception` y ya no hereda de :class:" +"`concurrent.futures.CancelledError`. (Contribuido por Yury Selivanov en :" +"issue:`32528`.)" #: ../Doc/whatsnew/3.8.rst:653 msgid "" @@ -1410,20 +1410,23 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:873 msgid "New in 3.8.1:" -msgstr "" +msgstr "Nuevo en 3.8.1:" #: ../Doc/whatsnew/3.8.rst:875 -#, fuzzy msgid "" "Add option to toggle cursor blink off. (Contributed by Zackery Spytz in :" "issue:`4603`.)" -msgstr "(Contribución de Zackery Spytz en :issue:`33407`.)" +msgstr "" +"Agregue la opción para desactivar el parpadeo del cursor. (Contribuido por " +"Zackery Spytz en :issue:`4603`.)" #: ../Doc/whatsnew/3.8.rst:878 msgid "" "Escape key now closes IDLE completion windows. (Contributed by Johnny " "Najera in :issue:`38944`.)" msgstr "" +"La tecla Escape ahora cierra las ventanas de finalización IDLE. (Contribuido " +"por Johnny Najera en :issue:`38944`.)" #: ../Doc/whatsnew/3.8.rst:881 msgid "The changes above have been backported to 3.7 maintenance releases." @@ -1436,6 +1439,8 @@ msgid "" "Add keywords to module name completion list. (Contributed by Terry J. Reedy " "in :issue:`37765`.)" msgstr "" +"Agrega palabras clave a la lista de finalización del nombre del módulo. " +"(Contribución de Terry J. Reedy en :issue:`37765`.)" #: ../Doc/whatsnew/3.8.rst:887 msgid "inspect" @@ -2986,7 +2991,6 @@ msgstr "" "estado rotas durante mucho tiempo." #: ../Doc/whatsnew/3.8.rst:1701 -#, fuzzy msgid "" "Function :func:`~gettext.bind_textdomain_codeset`, methods :meth:`~gettext." "NullTranslations.output_charset` and :meth:`~gettext.NullTranslations." @@ -2995,12 +2999,12 @@ msgid "" "since they are only used for the ``l*gettext()`` functions. (Contributed by " "Serhiy Storchaka in :issue:`33710`.)" msgstr "" -"La función :func:`~gettext.bind_textdomain_codeset`, los métodos :meth:" -"`~gettext.NullTranslations.output_charset` y :meth:`~gettext." -"NullTranslations.set_output_charset` y el parámetro *codeset* de las " -"funciones :func:`~gettext.translation` y :func:`~gettext.install` están " -"también obsoletos, dado que solo son usados para las funciones " -"``l*gettext()``. (Contribución de Serhiy Storchaka en :issue:`33710`.)" +"Función :func:`~gettext.bind_textdomain_codeset`, métodos :meth:`~gettext." +"NullTranslations.output_charset` y :meth:`~gettext.NullTranslations." +"set_output_charset`, y el parámetro *codeset* de las funciones :func:" +"`~gettext .translation` y :func:`~gettext.install` también están en desuso, " +"ya que solo se usan para las funciones ``l*gettext()``. (Contribución de " +"Serhiy Storchaka en :issue:`33710`.)" #: ../Doc/whatsnew/3.8.rst:1709 msgid "" @@ -3980,9 +3984,8 @@ msgstr "" "Pitrou y Yury Selivanov en :issue:`37228`.)" #: ../Doc/whatsnew/3.8.rst:2239 -#, fuzzy msgid "Notable changes in Python 3.8.8" -msgstr "Cambios notables en Python 3.8.3" +msgstr "Cambios notables en Python 3.8.8" #: ../Doc/whatsnew/3.8.rst:2241 msgid "" @@ -3995,6 +3998,15 @@ msgid "" "For more details, please see their respective documentation. (Contributed by " "Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr "" +"Las versiones anteriores de Python permitían usar tanto ``;`` como ``&`` " +"como separadores de parámetros de consulta en :func:`urllib.parse.parse_qs` " +"y :func:`urllib.parse.parse_qsl`. Debido a problemas de seguridad y para " +"cumplir con las recomendaciones más recientes del W3C, esto se ha cambiado " +"para permitir solo una clave separadora, con ``&`` como valor " +"predeterminado. Este cambio también afecta a :func:`cgi.parse` y :func:`cgi." +"parse_multipart` ya que utilizan las funciones afectadas internamente. Para " +"obtener más detalles, consulte su documentación respectiva. (Contribuido por " +"Adam Goldschmidt, Senthil Kumaran y Ken Jin en :issue:`42967`.)" #~ msgid "Python 3.8 was released on October 14th, 2019." #~ msgstr "Python 3.8 fue lanzado el 14 de octubre de 2019."