From b5444b5ee1560c55da54b063703fc93b3a1790bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sun, 24 Nov 2024 11:52:57 +0100 Subject: [PATCH] Translate whatsnew/3.6 Closes #3188 --- whatsnew/3.6.po | 467 +++++++++++++++++++++++++++++++----------------- 1 file changed, 307 insertions(+), 160 deletions(-) diff --git a/whatsnew/3.6.po b/whatsnew/3.6.po index 8c57e5fada..554ebf2ac4 100644 --- a/whatsnew/3.6.po +++ b/whatsnew/3.6.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2022-10-31 19:48-0300\n" -"Last-Translator: Sofía Denner \n" -"Language: es\n" +"PO-Revision-Date: 2024-11-24 11:47+0100\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.4.2\n" #: ../Doc/whatsnew/3.6.rst:3 msgid "What's New In Python 3.6" @@ -355,6 +356,14 @@ msgid "" ">>> f\"result: {value:{width}.{precision}}\" # nested fields\n" "'result: 12.35'" msgstr "" +">>> name = \"Fred\"\n" +">>> f\"He said his name is {name}.\"\n" +"'He said his name is Fred.'\n" +">>> width = 10\n" +">>> precision = 4\n" +">>> value = decimal.Decimal(\"12.34567\")\n" +">>> f\"result: {value:{width}.{precision}}\" # nested fields\n" +"'result: 12.35'" #: ../Doc/whatsnew/3.6.rst:204 msgid ":pep:`498` -- Literal String Interpolation." @@ -392,6 +401,12 @@ msgid "" "class Starship:\n" " stats: Dict[str, int] = {}" msgstr "" +"primes: List[int] = []\n" +"\n" +"captain: str # Note: no initial value!\n" +"\n" +"class Starship:\n" +" stats: Dict[str, int] = {}" #: ../Doc/whatsnew/3.6.rst:225 msgid "" @@ -429,12 +444,11 @@ msgstr "" "Guido van Rossum. Implementado por Ivan Levkivskyi." #: ../Doc/whatsnew/3.6.rst:240 -#, fuzzy msgid "" "Tools that use or will use the new syntax: `mypy `_, `pytype `_, PyCharm, etc." msgstr "" -"Herramientas que utilizan o utilizarán la nueva sintaxis: `mypy `_, `pytype `_, PyCharm, " "etc." @@ -457,6 +471,10 @@ msgid "" ">>> 0x_FF_FF_FF_FF\n" "4294967295" msgstr "" +">>> 1_000_000_000_000_000\n" +"1000000000000000\n" +">>> 0x_FF_FF_FF_FF\n" +"4294967295" #: ../Doc/whatsnew/3.6.rst:258 msgid "" @@ -468,7 +486,6 @@ msgstr "" "múltiples en una fila." #: ../Doc/whatsnew/3.6.rst:262 -#, fuzzy msgid "" "The :ref:`string formatting ` language also now has support for " "the ``'_'`` option to signal the use of an underscore for a thousands " @@ -476,12 +493,12 @@ msgid "" "type ``'d'``. For integer presentation types ``'b'``, ``'o'``, ``'x'``, and " "``'X'``, underscores will be inserted every 4 digits::" msgstr "" -"El lenguaje :ref:`string formatting ` ahora también tiene " -"soporte para la opción ``'_'`` para señalar el uso de un guión bajo para un " -"separador de miles para los tipos de presentación de punto flotante y para " -"el tipo de presentación de enteros ``'d'``. Para los tipos de presentación " -"de enteros ``'b'``, ``'o'``, ``'x'`` y ``'X'``, se insertarán guiones bajos " -"cada 4 dígitos:" +"El lenguaje :ref:`string formatting ` ahora también admite la " +"opción ``'_'`` para indicar el uso de un guión bajo como separador de miles " +"para los tipos de presentación de punto flotante y para el tipo de " +"presentación de enteros ``'d'``. Para los tipos de presentación de enteros " +"``'b'``, ``'o'``, ``'x'`` y ``'X'``, se insertarán guiones bajos cada 4 " +"dígitos:" #: ../Doc/whatsnew/3.6.rst:269 msgid "" @@ -490,6 +507,10 @@ msgid "" ">>> '{:_x}'.format(0xFFFFFFFF)\n" "'ffff_ffff'" msgstr "" +">>> '{:_}'.format(1000000)\n" +"'1_000_000'\n" +">>> '{:_x}'.format(0xFFFFFFFF)\n" +"'ffff_ffff'" #: ../Doc/whatsnew/3.6.rst:276 msgid ":pep:`515` -- Underscores in Numeric Literals" @@ -525,6 +546,11 @@ msgid "" " yield i\n" " await asyncio.sleep(delay)" msgstr "" +"async def ticker(delay, to):\n" +" \"\"\"Yield numbers from 0 to *to* every *delay* seconds.\"\"\"\n" +" for i in range(to):\n" +" yield i\n" +" await asyncio.sleep(delay)" #: ../Doc/whatsnew/3.6.rst:297 msgid "The new syntax allows for faster and more concise code." @@ -552,7 +578,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:313 msgid "result = [i async for i in aiter() if i % 2]" -msgstr "" +msgstr "result = [i async for i in aiter() if i % 2]" #: ../Doc/whatsnew/3.6.rst:315 msgid "" @@ -564,7 +590,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:318 msgid "result = [await fun() for fun in funcs if await condition()]" -msgstr "" +msgstr "result = [await fun() for fun in funcs if await condition()]" #: ../Doc/whatsnew/3.6.rst:322 msgid ":pep:`530` -- Asynchronous Comprehensions" @@ -599,6 +625,18 @@ msgid "" "class Plugin2(PluginBase):\n" " pass" msgstr "" +"class PluginBase:\n" +" subclasses = []\n" +"\n" +" def __init_subclass__(cls, **kwargs):\n" +" super().__init_subclass__(**kwargs)\n" +" cls.subclasses.append(cls)\n" +"\n" +"class Plugin1(PluginBase):\n" +" pass\n" +"\n" +"class Plugin2(PluginBase):\n" +" pass" #: ../Doc/whatsnew/3.6.rst:348 msgid "" @@ -665,6 +703,21 @@ msgid "" "class Model:\n" " int_field = IntField()" msgstr "" +"class IntField:\n" +" def __get__(self, instance, owner):\n" +" return instance.__dict__[self.name]\n" +"\n" +" def __set__(self, instance, value):\n" +" if not isinstance(value, int):\n" +" raise ValueError(f'expecting integer in {self.name}')\n" +" instance.__dict__[self.name] = value\n" +"\n" +" # this is the new initializer:\n" +" def __set_name__(self, owner, name):\n" +" self.name = name\n" +"\n" +"class Model:\n" +" int_field = IntField()" #: ../Doc/whatsnew/3.6.rst:396 msgid ":ref:`Feature documentation `" @@ -773,6 +826,18 @@ msgid "" ">>> os.fspath(pathlib.Path(\"some_file.txt\"))\n" "'some_file.txt'" msgstr "" +">>> import pathlib\n" +">>> with open(pathlib.Path(\"README\")) as f:\n" +"... contents = f.read()\n" +"...\n" +">>> import os.path\n" +">>> os.path.splitext(pathlib.Path(\"some_file.txt\"))\n" +"('some_file', '.txt')\n" +">>> os.path.join(\"/a/b\", pathlib.Path(\"c\"))\n" +"'/a/b/c'\n" +">>> import os\n" +">>> os.fspath(pathlib.Path(\"some_file.txt\"))\n" +"'some_file.txt'" #: ../Doc/whatsnew/3.6.rst:457 msgid "" @@ -832,6 +897,16 @@ msgid "" "06:00:00 UTC = 01:00:00 EST 1\n" "07:00:00 UTC = 02:00:00 EST 0" msgstr "" +">>> u0 = datetime(2016, 11, 6, 4, tzinfo=timezone.utc)\n" +">>> for i in range(4):\n" +"... u = u0 + i*HOUR\n" +"... t = u.astimezone(Eastern)\n" +"... print(u.time(), 'UTC =', t.time(), t.tzname(), t.fold)\n" +"...\n" +"04:00:00 UTC = 00:00:00 EDT 0\n" +"05:00:00 UTC = 01:00:00 EDT 0\n" +"06:00:00 UTC = 01:00:00 EST 1\n" +"07:00:00 UTC = 02:00:00 EST 0" #: ../Doc/whatsnew/3.6.rst:491 msgid "" @@ -871,21 +946,19 @@ msgstr "" "que el uso de bytes es suficiente y correcto." #: ../Doc/whatsnew/3.6.rst:511 -#, fuzzy msgid "" "Prior to Python 3.6, data loss could result when using bytes paths on " "Windows. With this change, using bytes to represent paths is now supported " "on Windows, provided those bytes are encoded with the encoding returned by :" "func:`sys.getfilesystemencoding`, which now defaults to ``'utf-8'``." msgstr "" -"Antes de Python 3.6, podía producirse una pérdida de datos al utilizar rutas " +"Antes de Python 3.6, se podían producir pérdidas de datos al utilizar rutas " "de bytes en Windows. Con este cambio, ahora se admite el uso de bytes para " "representar rutas en Windows, siempre que esos bytes estén codificados con " -"la codificación devuelta por :func:`sys.getfilesystemencoding()`, que ahora " +"la codificación devuelta por :func:`sys.getfilesystemencoding`, que ahora " "tiene como valor predeterminado ``'utf-8'``." #: ../Doc/whatsnew/3.6.rst:516 -#, fuzzy msgid "" "Applications that do not use str to represent paths should use :func:`os." "fsencode` and :func:`os.fsdecode` to ensure their bytes are correctly " @@ -893,8 +966,8 @@ msgid "" "`PYTHONLEGACYWINDOWSFSENCODING` or call :func:`sys." "_enablelegacywindowsfsencoding`." msgstr "" -"Las aplicaciones que no usan str para representar rutas deben usar :func:`os." -"fsencode()` y :func:`os.fsdecode()` para asegurarse de que sus bytes estén " +"Las aplicaciones que no utilizan str para representar rutas deben utilizar :" +"func:`os.fsencode` y :func:`os.fsdecode` para garantizar que sus bytes estén " "codificados correctamente. Para volver al comportamiento anterior, " "configure :envvar:`PYTHONLEGACYWINDOWSFSENCODING` o llame a :func:`sys." "_enablelegacywindowsfsencoding`." @@ -946,15 +1019,14 @@ msgid "PEP 520: Preserving Class Attribute Definition Order" msgstr "PEP 520: Conservación del orden de definición de atributos de clase" #: ../Doc/whatsnew/3.6.rst:550 -#, fuzzy msgid "" "Attributes in a class definition body have a natural ordering: the same " "order in which the names appear in the source. This order is now preserved " "in the new class's :attr:`~type.__dict__` attribute." msgstr "" -"Los atributos en el cuerpo de una definición de clase tienen un orden " -"natural: el mismo orden en el que aparecen los nombres en la fuente. Este " -"orden ahora se conserva en el atributo :attr:`~object.__dict__` de la nueva " +"Los atributos del cuerpo de una definición de clase tienen un orden natural: " +"el mismo orden en el que aparecen los nombres en el código fuente. Este " +"orden ahora se conserva en el atributo :attr:`~type.__dict__` de la nueva " "clase." #: ../Doc/whatsnew/3.6.rst:554 @@ -1147,17 +1219,16 @@ msgid "Detect writes after the end of a buffer (buffer overflows)" msgstr "Detectar escrituras después del final de un búfer (desbordes de búfer)" #: ../Doc/whatsnew/3.6.rst:652 -#, fuzzy msgid "" "Check that the :term:`GIL ` is held when allocator " "functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " "and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are " "called." msgstr "" -"Verifique que el :term:`GIL ` se mantenga cuando se " -"invoquen las funciones de asignación de los dominios :c:data:" -"`PYMEM_DOMAIN_OBJ` (ej .: :c:func:`PyObject_Malloc`) y :c:data:" -"`PYMEM_DOMAIN_MEM` (ej .: :c:func:`PyMem_Malloc`)." +"Verifique que :term:`GIL ` se mantenga cuando se " +"llamen las funciones de asignador de los dominios :c:macro:" +"`PYMEM_DOMAIN_OBJ` (por ejemplo: :c:func:`PyObject_Malloc`) y :c:macro:" +"`PYMEM_DOMAIN_MEM` (por ejemplo: :c:func:`PyMem_Malloc`)." #: ../Doc/whatsnew/3.6.rst:656 msgid "Checking if the GIL is held is also a new feature of Python 3.6." @@ -1239,6 +1310,40 @@ msgid "" " File \"unittest/suite.py\", line 84 in __call__\n" " ..." msgstr "" +"Debug memory block at address p=0x7fbcd41666f8: API 'o'\n" +" 4 bytes originally requested\n" +" The 7 pad bytes at p-7 are FORBIDDENBYTE, as expected.\n" +" The 8 pad bytes at tail=0x7fbcd41666fc are not all FORBIDDENBYTE " +"(0xfb):\n" +" at tail+0: 0x02 *** OUCH\n" +" at tail+1: 0xfb\n" +" at tail+2: 0xfb\n" +" at tail+3: 0xfb\n" +" at tail+4: 0xfb\n" +" at tail+5: 0xfb\n" +" at tail+6: 0xfb\n" +" at tail+7: 0xfb\n" +" The block was made by call #1233329 to debug malloc/realloc.\n" +" Data at p: 1a 2b 30 00\n" +"\n" +"Memory block allocated at (most recent call first):\n" +" File \"test/test_bytes.py\", line 323\n" +" File \"unittest/case.py\", line 600\n" +" File \"unittest/case.py\", line 648\n" +" File \"unittest/suite.py\", line 122\n" +" File \"unittest/suite.py\", line 84\n" +"\n" +"Fatal Python error: bad trailing pad byte\n" +"\n" +"Current thread 0x00007fbcdbd32700 (most recent call first):\n" +" File \"test/test_bytes.py\", line 323 in test_hex\n" +" File \"unittest/case.py\", line 600 in run\n" +" File \"unittest/case.py\", line 648 in __call__\n" +" File \"unittest/suite.py\", line 122 in run\n" +" File \"unittest/suite.py\", line 84 in __call__\n" +" File \"unittest/suite.py\", line 122 in run\n" +" File \"unittest/suite.py\", line 84 in __call__\n" +" ..." #: ../Doc/whatsnew/3.6.rst:707 msgid "(Contributed by Victor Stinner in :issue:`26516` and :issue:`26564`.)" @@ -1386,16 +1491,14 @@ msgstr "" "autenticación de cuentas, tokens y similares." #: ../Doc/whatsnew/3.6.rst:781 -#, fuzzy msgid "" "Note that the pseudo-random generators in the :mod:`random` module should " "*NOT* be used for security purposes. Use :mod:`secrets` on Python 3.6+ and :" "func:`os.urandom` on Python 3.5 and earlier." msgstr "" -"Tenga en cuenta que los generadores pseudoaleatorios en el módulo :mod:" -"`random` deben utilizarse *NOT* por motivos de seguridad. Utilice :mod:" -"`secrets` en Python 3.6+ y :func:`os.urandom()` en Python 3.5 y versiones " -"anteriores." +"Tenga en cuenta que los generadores pseudoaleatorios del módulo :mod:" +"`random` deben usarse con fines de seguridad. Use :mod:`secrets` en Python " +"3.6+ y :func:`os.urandom` en Python 3.5 y versiones anteriores." #: ../Doc/whatsnew/3.6.rst:787 msgid ":pep:`506` -- Adding A Secrets Module To The Standard Library" @@ -1709,7 +1812,6 @@ msgstr "" "issue:`28720`.)" #: ../Doc/whatsnew/3.6.rst:935 -#, fuzzy msgid "" "The :func:`~collections.namedtuple` function now accepts an optional keyword " "argument *module*, which, when specified, is used for the :attr:`~type." @@ -1718,8 +1820,8 @@ msgid "" msgstr "" "La función :func:`~collections.namedtuple` ahora acepta un argumento de " "palabra clave opcional *module*, que, cuando se especifica, se utiliza para " -"el atributo ``__module__`` de la clase de tupla con nombre devuelto. " -"(Contribuido por Raymond Hettinger en :issue:`17941`.)" +"el atributo :attr:`~type.__module__` de la clase de tupla nombrada que se " +"devuelve. (Contribuido por Raymond Hettinger en :issue:`17941`)." #: ../Doc/whatsnew/3.6.rst:940 ../Doc/whatsnew/3.6.rst:2295 msgid "" @@ -1740,7 +1842,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:949 msgid "concurrent.futures" -msgstr "Futuros concurrentes" +msgstr "concurrent.futures" #: ../Doc/whatsnew/3.6.rst:951 msgid "" @@ -1850,6 +1952,8 @@ msgid "" ">>> Decimal('-3.14').as_integer_ratio()\n" "(-157, 50)" msgstr "" +">>> Decimal('-3.14').as_integer_ratio()\n" +"(-157, 50)" #: ../Doc/whatsnew/3.6.rst:1007 msgid "(Contributed by Stefan Krah amd Mark Dickinson in :issue:`25928`.)" @@ -1860,7 +1964,6 @@ msgid "distutils" msgstr "distutils" #: ../Doc/whatsnew/3.6.rst:1014 -#, fuzzy msgid "" "The ``default_format`` attribute has been removed from ``distutils.command." "sdist.sdist`` and the ``formats`` attribute defaults to ``['gztar']``. " @@ -1868,15 +1971,15 @@ msgid "" "``default_format`` may need to be adapted. See :issue:`27819` for more " "details." msgstr "" -"El atributo ``default_format`` se ha eliminado de :class:`distutils.command." -"sdist.sdist` y el atributo ``formats`` se establece por defecto en " -"``['gztar']``. Aunque no está previsto, es posible que sea necesario adaptar " +"El atributo ``default_format`` se ha eliminado de ``distutils.command.sdist." +"sdist`` y el atributo ``formats`` tiene como valor predeterminado " +"``['gztar']``. Aunque no se prevé, es posible que sea necesario adaptar " "cualquier código que dependa de la presencia de ``default_format``. " "Consulte :issue:`27819` para obtener más detalles." #: ../Doc/whatsnew/3.6.rst:1022 msgid "email" -msgstr "Email" +msgstr "email" #: ../Doc/whatsnew/3.6.rst:1024 msgid "" @@ -1982,6 +2085,14 @@ msgid "" ">>> list(Color)\n" "[, , ]" msgstr "" +">>> from enum import Enum, auto\n" +">>> class Color(Enum):\n" +"... red = auto()\n" +"... blue = auto()\n" +"... green = auto()\n" +"...\n" +">>> list(Color)\n" +"[, , ]" #: ../Doc/whatsnew/3.6.rst:1076 msgid "faulthandler" @@ -2341,7 +2452,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:1243 msgid "logging" -msgstr "Inicio sesión" +msgstr "logging" #: ../Doc/whatsnew/3.6.rst:1245 msgid "" @@ -2357,7 +2468,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:1252 msgid "math" -msgstr "Matemáticas" +msgstr "math" #: ../Doc/whatsnew/3.6.rst:1254 msgid "" @@ -2427,7 +2538,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:1292 msgid "pathlib" -msgstr "Pathlib" +msgstr "pathlib" #: ../Doc/whatsnew/3.6.rst:1294 msgid "" @@ -2477,18 +2588,17 @@ msgid "pickletools" msgstr "pepinillos" #: ../Doc/whatsnew/3.6.rst:1319 -#, fuzzy msgid "" ":func:`pickletools.dis` now outputs the implicit memo index for the " "``MEMOIZE`` opcode. (Contributed by Serhiy Storchaka in :issue:`25382`.)" msgstr "" -":func:`pickletools.dis()` ahora genera el índice de memo implícito para el " +":func:`pickletools.dis` ahora genera el índice de memo implícito para el " "código de operación ``MEMOIZE``. (Contribuido por Serhiy Storchaka en :issue:" -"`25382`.)" +"`25382`)." #: ../Doc/whatsnew/3.6.rst:1325 msgid "pydoc" -msgstr "Pydoc" +msgstr "pydoc" #: ../Doc/whatsnew/3.6.rst:1327 msgid "" @@ -2610,16 +2720,14 @@ msgid "site" msgstr "sitio" #: ../Doc/whatsnew/3.6.rst:1391 -#, fuzzy msgid "" "When specifying paths to add to :data:`sys.path` in a ``.pth`` file, you may " "now specify file paths on top of directories (e.g. zip files). (Contributed " "by Wolfgang Langner in :issue:`26587`)." msgstr "" -"Al especificar rutas para agregar a :attr:`sys.path` en un archivo ``.pth``, " -"ahora puede especificar rutas de archivo en la parte superior de los " -"directorios (por ejemplo, archivos zip). (Contribuido por Wolfgang Langner " -"en :issue:`26587`)." +"Al especificar rutas para agregar a :data:`sys.path` en un archivo ``.pth``, " +"ahora puede especificar rutas de archivos sobre directorios (por ejemplo, " +"archivos zip). (Contribuido por Wolfgang Langner en :issue:`26587`)." #: ../Doc/whatsnew/3.6.rst:1397 msgid "sqlite3" @@ -2638,15 +2746,14 @@ msgid "socket" msgstr "enchufe" #: ../Doc/whatsnew/3.6.rst:1406 -#, fuzzy msgid "" "The :func:`~socket.socket.ioctl` function now supports the :const:`~socket." "SIO_LOOPBACK_FAST_PATH` control code. (Contributed by Daniel Stokes in :" "issue:`26536`.)" msgstr "" "La función :func:`~socket.socket.ioctl` ahora admite el código de control :" -"data:`~socket.SIO_LOOPBACK_FAST_PATH`. (Contribuido por Daniel Stokes en :" -"issue:`26536`.)" +"const:`~socket.SIO_LOOPBACK_FAST_PATH`. (Contribución de Daniel Stokes en :" +"issue:`26536`)." #: ../Doc/whatsnew/3.6.rst:1410 msgid "" @@ -2669,18 +2776,17 @@ msgstr "" "Christian Heimes en :issue:`27744`.)" #: ../Doc/whatsnew/3.6.rst:1418 -#, fuzzy msgid "" "The socket module now supports the address family :const:`~socket.AF_ALG` to " "interface with Linux Kernel crypto API. ``ALG_*``, ``SOL_ALG`` and :meth:" "`~socket.socket.sendmsg_afalg` were added. (Contributed by Christian Heimes " "in :issue:`27744` with support from Victor Stinner.)" msgstr "" -"El módulo de socket ahora admite la familia de direcciones :data:`~socket." +"El módulo de socket ahora admite la familia de direcciones :const:`~socket." "AF_ALG` para interactuar con la API de cifrado del kernel de Linux. Se " "agregaron ``ALG_*``, ``SOL_ALG`` y :meth:`~socket.socket.sendmsg_afalg`. " -"(Contribuido por Christian Heimes en :issue:`27744` con el apoyo de Victor " -"Stinner.)" +"(Contribución de Christian Heimes en :issue:`27744` con el apoyo de Victor " +"Stinner)." #: ../Doc/whatsnew/3.6.rst:1424 msgid "" @@ -2795,6 +2901,10 @@ msgid "" "SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " "authentication. (Contributed by Christian Heimes in :gh:`78851`.)" msgstr "" +"Se agregó :attr:`ssl.SSLContext.post_handshake_auth` para habilitar y :meth:" +"`ssl.SSLSocket.verify_client_post_handshake` para iniciar la autenticación " +"posterior al protocolo de enlace TLS 1.3. (Contribuido por Christian Heimes " +"en :gh:`78851`.)" #: ../Doc/whatsnew/3.6.rst:1481 msgid "statistics" @@ -2887,12 +2997,11 @@ msgid "telnetlib" msgstr "telnetlib" #: ../Doc/whatsnew/3.6.rst:1527 -#, fuzzy msgid "" ":class:`!telnetlib.Telnet` is now a context manager (contributed by Stéphane " "Wirtel in :issue:`25485`)." msgstr "" -":class:`~telnetlib.Telnet` es ahora un administrador de contexto " +":class:`!telnetlib.Telnet` es ahora un administrador de contexto " "(contribución de Stéphane Wirtel en :issue:`25485`)." #: ../Doc/whatsnew/3.6.rst:1532 @@ -2981,6 +3090,16 @@ msgid "" " [Previous line repeated 995 more times]\n" "RecursionError: maximum recursion depth exceeded" msgstr "" +">>> def f(): f()\n" +"...\n" +">>> f()\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" File \"\", line 1, in f\n" +" File \"\", line 1, in f\n" +" File \"\", line 1, in f\n" +" [Previous line repeated 995 more times]\n" +"RecursionError: maximum recursion depth exceeded" #: ../Doc/whatsnew/3.6.rst:1584 msgid "(Contributed by Emanuel Barry in :issue:`26823`.)" @@ -3098,6 +3217,10 @@ msgid "" "UserId = NewType('UserId', int)\n" "some_id = UserId(524313)" msgstr "" +"from typing import NewType\n" +"\n" +"UserId = NewType('UserId', int)\n" +"some_id = UserId(524313)" #: ../Doc/whatsnew/3.6.rst:1642 msgid "" @@ -3238,6 +3361,13 @@ msgid "" "f = func()\n" "f = None" msgstr "" +"import warnings\n" +"\n" +"def func():\n" +" return open(__file__)\n" +"\n" +"f = func()\n" +"f = None" #: ../Doc/whatsnew/3.6.rst:1720 msgid "Output of the command ``python3.6 -Wd -X tracemalloc=5 example.py``::" @@ -3254,6 +3384,14 @@ msgid "" " File \"example.py\", lineno 6\n" " f = func()" msgstr "" +"example.py:7: ResourceWarning: unclosed file <_io.TextIOWrapper " +"name='example.py' mode='r' encoding='UTF-8'>\n" +" f = None\n" +"Object allocated at (most recent call first):\n" +" File \"example.py\", lineno 4\n" +" return open(__file__)\n" +" File \"example.py\", lineno 6\n" +" f = func()" #: ../Doc/whatsnew/3.6.rst:1730 msgid "" @@ -3466,7 +3604,6 @@ msgstr "" "hasta un 80% más rápido. (Contribuido por Josh Snider en :issue:`26574`)." #: ../Doc/whatsnew/3.6.rst:1828 -#, fuzzy msgid "" "Allocator functions of the :c:func:`PyMem_Malloc` domain (:c:macro:" "`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc memory allocator ` " @@ -3475,12 +3612,13 @@ msgid "" "short lifetime, and use :c:func:`malloc` for larger memory blocks. " "(Contributed by Victor Stinner in :issue:`26249`)." msgstr "" -"Las funciones de asignación del dominio :c:func:`PyMem_Malloc` ( :c:data:" -"`PYMEM_DOMAIN_MEM`) ahora usan la función :ref:`pymalloc memory allocator " -"` en lugar de la función :c:func:`malloc` de la biblioteca C. El " -"asignador de pymalloc está optimizado para objetos menores o iguales a 512 " -"bytes con una vida útil corta y usa :c:func:`malloc` para bloques de memoria " -"más grandes. (Contribuido por Victor Stinner en :issue:`26249`)." +"Las funciones de asignación del dominio :c:func:`PyMem_Malloc` (:c:macro:" +"`PYMEM_DOMAIN_MEM`) ahora utilizan la función :ref:`pymalloc memory " +"allocator ` en lugar de la función :c:func:`malloc` de la " +"biblioteca C. El asignador pymalloc está optimizado para objetos más " +"pequeños o iguales a 512 bytes con una vida útil corta, y utiliza :c:func:" +"`malloc` para bloques de memoria más grandes. (Contribuido por Victor " +"Stinner en :issue:`26249`)." #: ../Doc/whatsnew/3.6.rst:1835 #, python-format @@ -3589,16 +3727,15 @@ msgstr "" "Alecsandru Patrascu de Intel en :issue:`26359`.)" #: ../Doc/whatsnew/3.6.rst:1880 -#, fuzzy msgid "" "The :term:`GIL ` must now be held when allocator " "functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " "and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are " "called." msgstr "" -"El :term:`GIL ` ahora debe mantenerse cuando se " -"llaman las funciones de asignación de los dominios :c:data:" -"`PYMEM_DOMAIN_OBJ` (por ejemplo: :c:func:`PyObject_Malloc`) y: :c:data:" +"Ahora se debe mantener :term:`GIL ` cuando se " +"llaman las funciones de asignador de los dominios :c:macro:" +"`PYMEM_DOMAIN_OBJ` (por ejemplo: :c:func:`PyObject_Malloc`) y :c:macro:" "`PYMEM_DOMAIN_MEM` (por ejemplo: :c:func:`PyMem_Malloc`)." #: ../Doc/whatsnew/3.6.rst:1884 @@ -3687,6 +3824,9 @@ msgid "" "Python 3.6.0b4+ (3.6:223967b49e49+, Nov 21 2016, 20:55:04)\n" "[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]" msgstr "" +"$ ./python -VV\n" +"Python 3.6.0b4+ (3.6:223967b49e49+, Nov 21 2016, 20:55:04)\n" +"[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]" #: ../Doc/whatsnew/3.6.rst:1927 msgid "Deprecated" @@ -3770,12 +3910,11 @@ msgid "asynchat" msgstr "asynchat" #: ../Doc/whatsnew/3.6.rst:1968 -#, fuzzy msgid "" "The :mod:`!asynchat` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" -"El :mod:`asynchat` ha quedado obsoleto en favor del :mod:`asyncio`. " +"El :mod:`!asynchat` ha quedado obsoleto en favor del :mod:`asyncio`. " "(Contribuido por Mariatta en :issue:`25002`.)" #: ../Doc/whatsnew/3.6.rst:1973 @@ -3783,12 +3922,11 @@ msgid "asyncore" msgstr "asyncore" #: ../Doc/whatsnew/3.6.rst:1975 -#, fuzzy msgid "" "The :mod:`!asyncore` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" -"El :mod:`asyncore` ha quedado obsoleto en favor del :mod:`asyncio`. " +"El :mod:`!asyncore` ha quedado obsoleto en favor del :mod:`asyncio`. " "(Contribuido por Mariatta en :issue:`25002`.)" #: ../Doc/whatsnew/3.6.rst:1980 @@ -3809,18 +3947,16 @@ msgstr "" "`21708`.)" #: ../Doc/whatsnew/3.6.rst:1992 -#, fuzzy msgid "" "The undocumented ``extra_path`` argument to the ``distutils.Distribution`` " "constructor is now considered deprecated and will raise a warning if set. " "Support for this parameter will be removed in a future Python release. See :" "issue:`27919` for details." msgstr "" -"El argumento ``extra_path`` sin documentar para el constructor :class:" -"`~distutils.Distribution` ahora se considera obsoleto y lanzará una " -"advertencia si se establece. La compatibilidad con este parámetro se " -"eliminará en una futura versión de Python. Consulte :issue:`27919` para " -"obtener más detalles." +"El argumento ``extra_path`` no documentado para el constructor ``distutils." +"Distribution`` ahora se considera obsoleto y generará una advertencia si se " +"configura. La compatibilidad con este parámetro se eliminará en una futura " +"versión de Python. Consulte :issue:`27919` para obtener más detalles." #: ../Doc/whatsnew/3.6.rst:1999 msgid "grp" @@ -3851,16 +3987,15 @@ msgstr "" "exec_module`." #: ../Doc/whatsnew/3.6.rst:2016 -#, fuzzy msgid "" "The :class:`importlib.machinery.WindowsRegistryFinder` class is now " "deprecated. As of 3.6.0, it is still added to :data:`sys.meta_path` by " "default (on Windows), but this may change in future releases." msgstr "" -"La clase :class:`importlib.machinery.WindowsRegistryFinder` ahora está en " -"desuso. A partir de 3.6.0, todavía se agrega a :attr:`sys.meta_path` de " -"forma predeterminada (en Windows), pero esto puede cambiar en versiones " -"futuras." +"La clase :class:`importlib.machinery.WindowsRegistryFinder` ya no se " +"utiliza. A partir de la versión 3.6.0, todavía se agrega a :data:`sys." +"meta_path` de manera predeterminada (en Windows), pero esto puede cambiar en " +"futuras versiones." #: ../Doc/whatsnew/3.6.rst:2023 msgid "" @@ -3920,12 +4055,11 @@ msgstr "" "(Contribuido por Christian Heimes en :issue:`28022` y :issue:`26470`.)" #: ../Doc/whatsnew/3.6.rst:2056 -#, fuzzy msgid "" "The :mod:`!tkinter.tix` module is now deprecated. :mod:`tkinter` users " "should use :mod:`tkinter.ttk` instead." msgstr "" -"El módulo :mod:`tkinter.tix` ahora está en desuso. Los usuarios de :mod:" +"El módulo :mod:`!tkinter.tix` ahora está en desuso. Los usuarios de :mod:" "`tkinter` deberían utilizar :mod:`tkinter.ttk` en su lugar." #: ../Doc/whatsnew/3.6.rst:2064 @@ -3943,7 +4077,7 @@ msgstr "" #: ../Doc/whatsnew/3.6.rst:2071 msgid "xml" -msgstr "" +msgstr "xml" #: ../Doc/whatsnew/3.6.rst:2073 msgid "" @@ -3951,23 +4085,26 @@ msgid "" "minidom` and :mod:`xml.sax` modules no longer process external entities by " "default. (Contributed by Christian Heimes in :gh:`61441`.)" msgstr "" +"Como medida de mitigación frente a la recuperación de DTD y entidades " +"externas, los módulos :mod:`xml.dom.minidom` y :mod:`xml.sax` ya no procesan " +"entidades externas de forma predeterminada. (Contribuido por Christian " +"Heimes en :gh:`61441`.)" #: ../Doc/whatsnew/3.6.rst:2080 msgid "Deprecated functions and types of the C API" msgstr "Funciones y tipos obsoletos de la API de C" #: ../Doc/whatsnew/3.6.rst:2082 -#, fuzzy msgid "" "Undocumented functions :c:func:`!PyUnicode_AsEncodedObject`, :c:func:`!" "PyUnicode_AsDecodedObject`, :c:func:`!PyUnicode_AsEncodedUnicode` and :c:" "func:`!PyUnicode_AsDecodedUnicode` are deprecated now. Use the :ref:`generic " "codec based API ` instead." msgstr "" -"Las funciones no documentadas :c:func:`PyUnicode_AsEncodedObject`, :c:func:" -"`PyUnicode_AsDecodedObject`, :c:func:`PyUnicode_AsEncodedUnicode` y :c:func:" -"`PyUnicode_AsDecodedUnicode` ahora están en desuso. En su lugar, utilice el :" -"ref:`generic codec based API `." +"Las funciones no documentadas :c:func:`!PyUnicode_AsEncodedObject`, :c:func:" +"`!PyUnicode_AsDecodedObject`, :c:func:`!PyUnicode_AsEncodedUnicode` y :c:" +"func:`!PyUnicode_AsDecodedUnicode` ya no se utilizan. Utilice :ref:`generic " +"codec based API ` en su lugar." #: ../Doc/whatsnew/3.6.rst:2089 msgid "Deprecated Build Options" @@ -4157,7 +4294,6 @@ msgstr "" "``NULL``." #: ../Doc/whatsnew/3.6.rst:2176 -#, fuzzy msgid "" "The format of the :attr:`~codeobject.co_lnotab` attribute of code objects " "changed to support a negative line number delta. By default, Python does not " @@ -4169,17 +4305,17 @@ msgid "" "delta. See ``Objects/lnotab_notes.txt`` for the :attr:`!co_lnotab` format " "and how to decode it, and see the :pep:`511` for the rationale." msgstr "" -"El formato del atributo ``co_lnotab`` de los objetos de código cambió para " -"admitir un delta de número de línea negativo. De forma predeterminada, " -"Python no emite un código de bytes con un delta de número de línea negativo. " -"Las funciones que utilizan ``frame.f_lineno``, ``PyFrame_GetLineNumber()`` o " -"``PyCode_Addr2Line()`` no se ven afectadas. Las funciones que decodifican " -"directamente ``co_lnotab`` deben actualizarse para usar un tipo entero de 8 " -"bits con signo para el delta del número de línea, pero esto solo es " -"necesario para admitir aplicaciones que usan un delta del número de línea " -"negativo. Consulte ``Objects/lnotab_notes.txt`` para conocer el formato " -"``co_lnotab`` y cómo decodificarlo, y consulte :pep:`511` para conocer la " -"justificación." +"El formato del atributo :attr:`~codeobject.co_lnotab` de los objetos de " +"código cambió para admitir un delta de número de línea negativo. De manera " +"predeterminada, Python no emite código de bytes con un delta de número de " +"línea negativo. Las funciones que usan :attr:`frame.f_lineno`, " +"``PyFrame_GetLineNumber()`` o ``PyCode_Addr2Line()`` no se ven afectadas. " +"Las funciones que decodifican directamente :attr:`!co_lnotab` deben " +"actualizarse para usar un tipo entero de 8 bits con signo para el delta de " +"número de línea, pero esto solo es necesario para admitir aplicaciones que " +"usen un delta de número de línea negativo. Consulte ``Objects/lnotab_notes." +"txt`` para conocer el formato :attr:`!co_lnotab` y cómo decodificarlo, y " +"consulte :pep:`511` para conocer la justificación." #: ../Doc/whatsnew/3.6.rst:2187 msgid "" @@ -4207,16 +4343,14 @@ msgstr "" "devolver :const:`None`. Ver :issue:`20059`." #: ../Doc/whatsnew/3.6.rst:2197 -#, fuzzy msgid "" "The :mod:`!imp` module now raises a :exc:`DeprecationWarning` instead of :" "exc:`PendingDeprecationWarning`." msgstr "" -"El módulo :mod:`imp` ahora lanza un :exc:`DeprecationWarning` en lugar de :" +"El módulo :mod:`!imp` ahora lanza un :exc:`DeprecationWarning` en lugar de :" "exc:`PendingDeprecationWarning`." #: ../Doc/whatsnew/3.6.rst:2200 -#, fuzzy msgid "" "The following modules have had missing APIs added to their :attr:`__all__` " "attributes to match the documented APIs: :mod:`calendar`, :mod:`!cgi`, :mod:" @@ -4227,14 +4361,14 @@ msgid "" "new symbols when ``import *`` is used. (Contributed by Joel Taddei and Jacek " "Kołodziej in :issue:`23883`.)" msgstr "" -"Los siguientes módulos han tenido API faltantes agregadas a sus atributos :" -"attr:`__all__` para que coincidan con las API documentadas: :mod:" -"`calendar`, :mod:`cgi`, :mod:`csv`, :mod:`~xml.etree.ElementTree`, :mod:" +"A los siguientes módulos se les han añadido las API faltantes a sus " +"atributos :attr:`__all__` para que coincidan con las API documentadas: :mod:" +"`calendar`, :mod:`!cgi`, :mod:`csv`, :mod:`~xml.etree.ElementTree`, :mod:" "`enum`, :mod:`fileinput`, :mod:`ftplib`, :mod:`logging`, :mod:`mailbox`, :" -"mod:`mimetypes`, :mod:`optparse`, :mod:`plistlib`, :mod:`smtpd`, :mod:" +"mod:`mimetypes`, :mod:`optparse`, :mod:`plistlib`, :mod:`!smtpd`, :mod:" "`subprocess`, :mod:`tarfile`, :mod:`threading` y :mod:`wave`. Esto significa " -"que exportarán nuevos símbolos cuando se utilice ``import *``. (Contribuido " -"por Joel Taddei y Jacek Kołodziej en :issue:`23883`.)" +"que exportarán nuevos símbolos cuando se utilice ``import *``. (Contribución " +"de Joel Taddei y Jacek Kołodziej en :issue:`23883`)." #: ../Doc/whatsnew/3.6.rst:2211 msgid "" @@ -4276,13 +4410,12 @@ msgstr "" "`23430`.)" #: ../Doc/whatsnew/3.6.rst:2228 -#, fuzzy msgid "" ":func:`!spwd.getspnam` now raises a :exc:`PermissionError` instead of :exc:" "`KeyError` if the user doesn't have privileges." msgstr "" -":func:`spwd.getspnam` ahora lanza un :exc:`PermissionError` en lugar de :exc:" -"`KeyError` si el usuario no tiene privilegios." +":func:`!spwd.getspnam` ahora lanza un :exc:`PermissionError` en lugar de :" +"exc:`KeyError` si el usuario no tiene privilegios." #: ../Doc/whatsnew/3.6.rst:2231 msgid "" @@ -4295,7 +4428,6 @@ msgstr "" "(Contribuido por Martin Panter en :issue:`26685`.)" #: ../Doc/whatsnew/3.6.rst:2235 -#, fuzzy msgid "" "The *decode_data* argument for the :class:`!smtpd.SMTPChannel` and :class:`!" "smtpd.SMTPServer` constructors is now ``False`` by default. This means that " @@ -4304,12 +4436,13 @@ msgid "" "that has already been updated in accordance with the deprecation warning " "generated by 3.5 will not be affected." msgstr "" -"El argumento *decode_data* para los constructores :class:`smtpd.SMTPChannel` " -"y :class:`smtpd.SMTPServer` ahora es ``False`` por defecto. Esto significa " -"que el argumento pasado a :meth:`~smtpd.SMTPServer.process_message` ahora es " -"un objeto de bytes por defecto, y ``process_message()`` se pasarán " -"argumentos de palabra clave. El código que ya se haya actualizado de acuerdo " -"con la advertencia de obsolescencia generada por 3.5 no se verá afectado." +"El argumento *decode_data* para los constructores :class:`!smtpd." +"SMTPChannel` y :class:`!smtpd.SMTPServer` ahora es ``False`` de manera " +"predeterminada. Esto significa que el argumento que se pasa a :meth:`!" +"process_message` ahora es un objeto bytes de manera predeterminada y a :meth:" +"`!process_message` se le pasarán argumentos de palabras clave. El código que " +"ya se haya actualizado de acuerdo con la advertencia de obsolescencia " +"generada por la versión 3.5 no se verá afectado." #: ../Doc/whatsnew/3.6.rst:2243 msgid "" @@ -4356,7 +4489,6 @@ msgstr "" "consecuencia." #: ../Doc/whatsnew/3.6.rst:2262 -#, fuzzy msgid "" "In ``distutils.command.sdist.sdist``, the ``default_format`` attribute has " "been removed and is no longer honored. Instead, the gzipped tarfile format " @@ -4365,11 +4497,11 @@ msgid "" "distributions are required, configure the project with a ``setup.cfg`` file " "containing the following:" msgstr "" -"En :class:`distutils.command.sdist.sdist`, el atributo ``default_format`` se " -"ha eliminado y ya no se respeta. En cambio, el formato de archivo tar " -"comprimido con gzip es el predeterminado en todas las plataformas y no se " -"realiza ninguna selección específica de la plataforma. En entornos donde las " -"distribuciones se construyen en Windows y se requieren distribuciones zip, " +"En ``distutils.command.sdist.sdist``, se ha eliminado el atributo " +"``default_format`` y ya no se respeta. En su lugar, el formato de archivo " +"tar comprimido con gzip es el predeterminado en todas las plataformas y no " +"se realiza ninguna selección específica de la plataforma. En entornos donde " +"las distribuciones se crean en Windows y se requieren distribuciones zip, " "configure el proyecto con un archivo ``setup.cfg`` que contenga lo siguiente:" #: ../Doc/whatsnew/3.6.rst:2270 @@ -4377,6 +4509,8 @@ msgid "" "[sdist]\n" "formats=zip" msgstr "" +"[sdist]\n" +"formats=zip" #: ../Doc/whatsnew/3.6.rst:2275 msgid "" @@ -4413,13 +4547,12 @@ msgstr "" "`~collections.OrderedDict`. (Contribuido por Steve Holden en :issue:`27842`.)" #: ../Doc/whatsnew/3.6.rst:2291 -#, fuzzy msgid "" "The :const:`!crypt.METHOD_CRYPT` will no longer be added to ``crypt." "methods`` if unsupported by the platform. (Contributed by Victor Stinner in :" "issue:`25287`.)" msgstr "" -"El :const:`crypt.METHOD_CRYPT` ya no se agregará a ``crypt.methods`` si la " +"El :const:`!crypt.METHOD_CRYPT` ya no se agregará a ``crypt.methods`` si la " "plataforma no lo admite. (Contribuido por Victor Stinner en :issue:`25287`.)" #: ../Doc/whatsnew/3.6.rst:2299 @@ -4510,7 +4643,6 @@ msgstr "" "`RuntimeError` en Python 3.8." #: ../Doc/whatsnew/3.6.rst:2336 -#, fuzzy msgid "" "With the introduction of :exc:`ModuleNotFoundError`, import system consumers " "may start expecting import system replacements to raise that more specific " @@ -4524,15 +4656,16 @@ msgid "" msgstr "" "Con la introducción de :exc:`ModuleNotFoundError`, los consumidores del " "sistema de importación pueden comenzar a esperar que los reemplazos del " -"sistema de importación generen esa excepción más específica cuando " -"corresponda, en lugar de que el :exc:`ImportError`. Para proveer " -"compatibilidad futura con dichos consumidores, los implementadores de un " -"sistema alternativo de importación que completamente reemplacen :func:" -"`__import__` necesitarán actualizar su implementación para lanzar la nueva " -"subclase cundo un módulo no puede ser encontrado.. Los implementadores de " -"complementos compatibles con el sistema de importación predeterminado no " -"deberían necesitar realizar ningún cambio, ya que el sistema de importación " -"predeterminado lanzará la nueva subclase cuando sea apropiado." +"sistema de importación generen esa excepción más específica cuando sea " +"apropiado, en lugar de la excepción menos específica :exc:`ImportError`. " +"Para proporcionar compatibilidad futura con dichos consumidores, los " +"implementadores de sistemas de importación alternativos que reemplacen " +"completamente a :func:`__import__` deberán actualizar sus implementaciones " +"para generar la nueva subclase cuando no se pueda encontrar un módulo. Los " +"implementadores de complementos compatibles con el sistema de importación " +"predeterminado no deberían necesitar realizar ningún cambio, ya que el " +"sistema de importación predeterminado generará la nueva subclase cuando sea " +"apropiado." #: ../Doc/whatsnew/3.6.rst:2348 msgid "Changes in the C API" @@ -4738,6 +4871,8 @@ msgid "" ":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " "entities by default. See also :gh:`61441`." msgstr "" +"Los módulos :mod:`xml.dom.minidom` y :mod:`xml.sax` ya no procesan entidades " +"externas de forma predeterminada. Consulte también :gh:`61441`." #: ../Doc/whatsnew/3.6.rst:2453 msgid "" @@ -4776,7 +4911,6 @@ msgid "Notable changes in Python 3.6.13" msgstr "Cambios notables en Python 3.6.13" #: ../Doc/whatsnew/3.6.rst:2471 -#, fuzzy msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." @@ -4787,20 +4921,19 @@ 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 el uso de ``;`` y ``&`` 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 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`.)" +"Las versiones anteriores de Python permitían utilizar tanto ``;`` como ``&`` " +"como separadores de parámetros de consulta en :func:`urllib.parse.parse_qs` " +"y :func:`urllib.parse.parse_qsl`. Por cuestiones de seguridad y para cumplir " +"con las recomendaciones más recientes del W3C, esto se ha modificado 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`)." #: ../Doc/whatsnew/3.6.rst:2482 -#, fuzzy msgid "Notable changes in Python 3.6.14" -msgstr "Cambios notables en Python 3.6.4" +msgstr "Cambios notables en Python 3.6.14" #: ../Doc/whatsnew/3.6.rst:2484 msgid "" @@ -4810,6 +4943,13 @@ msgid "" "old behavior, set a ``trust_server_pasv_ipv4_address`` attribute on your FTP " "instance to ``True``. (See :gh:`87451`)" msgstr "" +"Una corrección de seguridad modifica el comportamiento de :class:`ftplib." +"FTP` para que no confíe en la dirección IPv4 enviada desde el servidor " +"remoto al configurar un canal de datos pasivo. En su lugar, reutilizamos la " +"dirección IP del servidor FTP. Para el código inusual que requiere el " +"comportamiento anterior, configure un atributo " +"``trust_server_pasv_ipv4_address`` en su instancia FTP en ``True``. " +"(Consulte :gh:`87451`)" #: ../Doc/whatsnew/3.6.rst:2490 msgid "" @@ -4820,3 +4960,10 @@ msgid "" "removal characters are controlled by a new module level variable ``urllib." "parse._UNSAFE_URL_BYTES_TO_REMOVE``. (See :gh:`88048`)" msgstr "" +"La presencia de caracteres de nueva línea o de tabulación en partes de una " +"URL permite algunas formas de ataques. Siguiendo la especificación WHATWG " +"que actualiza RFC 3986, el analizador :func:`urllib.parse` elimina de la URL " +"los caracteres de nueva línea ASCII ``\\n``, ``\\r`` y de tabulación ``\\t`` " +"para evitar este tipo de ataques. Los caracteres eliminados se controlan " +"mediante una nueva variable de nivel de módulo ``urllib.parse." +"_UNSAFE_URL_BYTES_TO_REMOVE``. (Véase :gh:`88048`)"