diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..55d3a879a3 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,38 @@ +name: Test + +on: + push: + branches: + - 3.* + pull_request: + +jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Preparar Python v3.8 + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Sincronizar con CPython + run: | + git submodule sync + git submodule update --init --force cpython + - name: Instalar dependencias + run: | + sudo apt-get update + sudo apt-get install -y hunspell hunspell-es gettext + python -m pip install -r requirements.txt + pip list + pospell --version + powrap --version + - name: Powrap + run: powrap --check --quiet **/*.po + - name: Pospell + run: | + python scripts/create_dict.py + pospell -p dict.txt -l es_ES **/*.po + - name: Construir documentación + run: PYTHONWARNINGS=ignore::FutureWarning sphinx-build -j auto -W --keep-going -b html -d cpython/Doc/_build/doctree -D language=es . cpython/Doc/_build/html diff --git a/.overrides/CONTRIBUTING.rst b/.overrides/CONTRIBUTING.rst index 7a4ef683a4..2de4855091 100644 --- a/.overrides/CONTRIBUTING.rst +++ b/.overrides/CONTRIBUTING.rst @@ -57,14 +57,16 @@ Antes de comenzar Al tener instalado los requerimientos, podrás utilizas las herramientas ``powrap`` y ``pospell`` para poder verificar tus archivos traducidos, - y también contruir la documentación localmente. + y también construir la documentación localmente. ¡Comienza a traducir! --------------------- #. Selecciona un :ref:`archivo para traducir `. -#. Verifica que estás en la rama principal del repositorio, **3.8**:: +#. Verifica que estás en la rama principal del repositorio, **3.8** (esto es muy + importante para evitar crear una nueva rama a partir de una traducción + anterior):: git checkout 3.8 diff --git a/.overrides/faq.rst b/.overrides/faq.rst index 545a059701..78bb6e8acc 100644 --- a/.overrides/faq.rst +++ b/.overrides/faq.rst @@ -26,8 +26,8 @@ pospell. Pospell puede ser instalada en tu entorno de Python empleando pip Una vez instalado, para chequear el fichero .po sobre el que estás trabajando, ejecuta desde el directorio principal del repo:: - awk 1 dict dictionaries/*.txt > dict.txt - pospell -p dict.txt -l es_AR -l es_ES path/tu_fichero.po + python scripts/create_dict.py # para crear el archivo 'dict.txt' + pospell -p dict.txt -l es_ES path/tu_fichero.po pospell emplea la herramienta de diccionarios hunspell. Si pospell falla dando como error que no tiene hunspell instalado, lo puedes instalar así: @@ -193,12 +193,12 @@ Y luego accediendo a http://localhost:8000/ .. _mantener-actualizada: ¿Cómo actualizar mi copia local del repositorio? ---------------------------------------------------------- +------------------------------------------------ -Es recomendable mantener actualizada nuestra copia local para evitar -posibles conflictos entre los archivos que trabajamos y la última versión disponible -en el repositorio remoto. -Primero, necesitamos bajar los cambios de *upstream* (es el nombre que asignamos al +Es recomendable mantener actualizada nuestra copia local para evitar +posibles conflictos entre los archivos que trabajamos y la última versión disponible +en el repositorio remoto. +Primero, necesitamos bajar los cambios de *upstream* (es el nombre que asignamos al repositorio principal de la traducción). Se hace de la siguiente manera:: git fetch upstream @@ -207,11 +207,37 @@ Luego nos vamos a nuestra rama local, confirmamos e impactamos esos cambios:: git checkout 3.8 git merge upstream/3.8 - git push origin 3.8 + git push origin 3.8 ¡Eso es todo! +¿Son importantes los dobles espacios en el original? +---------------------------------------------------- + +No. + +En realidad, no tienen ningún efecto. Sphinx se da cuenta automáticamente de esto y simplemente +deja un solo espacio en la versión final. Así que, no te preocupes si ves dos espacios juntos. + +Si estás interesada en saber más sobré "¿Por qué se usan dobles espacios?" puedes leer este artículo: +`How Many Spaces Should Be After a Period? `_ + + +¿Puedo agregar "estilo de código" a los nombres de las funciones/métodos/clases/etc? +------------------------------------------------------------------------------------ + +No. + +Si aparece el nombre de una función (por ejemplo, "IncrementalParser") en el original y no tiene ningún estilo asociado +(no está en cursiva, ni en negrita ni en estilo de código), aunque sientas la tentación de ponerla como +``IncrementalParser``, no debes hacerlo. + +En principio, no debemos cambiar el formato de estas palabras. Si está con asteriscos, lo dejamos con asteriscos. +Si está con backticks, lo dejamos con los backticks, etc. Si realmente crees que es un error y debería +estar con un formato distinto, debes reportarlo en el repositorio de CPython. + + ¿Tienen una lista de correo? ---------------------------- diff --git a/.overrides/reviewers-guide.rst b/.overrides/reviewers-guide.rst index 1fc821ca9c..056eacdf09 100644 --- a/.overrides/reviewers-guide.rst +++ b/.overrides/reviewers-guide.rst @@ -33,11 +33,11 @@ Para esto, Github te ofrece opciones para afrontar una PR (ver botón *Review Ch * PRs de más de 1000 líneas: Te sugerimos hacer un comentario al principio del PR para indicar hasta qué línea haz hecho el review y qué hay que revisar hasta ese hito. También si tú mismo vas a continuar la review, pero no puedes hacerla de una sola vez, es útil para saber donde retomar tu trabajo. * El uso de la opción "Needs work" en poedit genera en la línea anterior al párrafo un comentario "#, fuzzy" para que el traductor revise esa línea. Se puede usar cuando la traducción necesita revisión y en ese momento no puedes sugerir una traducción alternativa. Ten en cuenta que los párrafos con esa marca no aparecerán traducidos en el build. Como revisor, también podrías incluir ese comentario tu mismo como sugerencia. -* Al igual que cuando uno traduce, en el proceso de revisión puedes consultar y emplear las herramientas que tenemos. Por ejemplo, si no estás seguro sobre la traducción de un término sobre el que puede que ya hayamos tomado una decisión consensuada, puedes consultar la memoria de traducción [,](https://github.com/python/python-docs-es/blob/3.8/.overrides/translation-memory.rst) usar `scripts/find_in_po.py` o incluso comentarlo en nuestro grupo de Telegram. +* Al igual que cuando uno traduce, en el proceso de revisión puedes consultar y emplear las herramientas que tenemos. Por ejemplo, si no estás seguro sobre la traducción de un término sobre el que puede que ya hayamos tomado una decisión consensuada, puedes consultar la :doc:`memoria de traducción ` usar `scripts/find_in_po.py` o incluso comentarlo en nuestro grupo de Telegram. El costado técnico ================== -Al revisar una traducción, deberás tener en cuenta ciertos aspectos propios de una traducción técnica de esta índole. Además de que debe entenderse el texto en español y que debes respetar el contenido de la documentación original (ver "A tener en cuenta" en la `Guía para contribuir en la traducción `_), contamos con herramientas en este proyecto que pueden fallar en ciertos casos, y que como revisor/a deberás tener en cuenta. +Al revisar una traducción, deberás tener en cuenta ciertos aspectos propios de una traducción técnica de esta índole. Además de que debe entenderse el texto en español y que debes respetar el contenido de la documentación original (ver "A tener en cuenta" en la :doc:`Guía para contribuir en la traducción `), contamos con herramientas en este proyecto que pueden fallar en ciertos casos, y que como revisor/a deberás tener en cuenta. Tres razones por las que puede fallar el *build* de Travis: diff --git a/.overrides/tools/templates/customsourcelink.html b/.overrides/tools/templates/customsourcelink.html index c88cec71f8..b4f4aa9e2e 100644 --- a/.overrides/tools/templates/customsourcelink.html +++ b/.overrides/tools/templates/customsourcelink.html @@ -4,9 +4,24 @@

{{ _('This Page') }}

diff --git a/.overrides/translation-memory.rst b/.overrides/translation-memory.rst index 530c15ccf3..8ee10c5799 100644 --- a/.overrides/translation-memory.rst +++ b/.overrides/translation-memory.rst @@ -52,7 +52,7 @@ Fuentes recomendadas https://www.linguee.es/ -Diccionario y traductor multilíngue con millones de traducciones indexadas. De los creadores + Diccionario y traductor multilíngue con millones de traducciones indexadas. De los creadores de DeepL :Fundéu BBVA - Fundación para el español urgente: @@ -77,154 +77,180 @@ Términos y bigramas Dividimos esta sección en dos partes, los términos que se traducen y los que mantenemos el original. Éstas son las palabras que hemos coordinado hasta el momento: - auditing event - evento de auditoría ``library/tempfile`` and many others - awaitable - aguardable ``glossary`` +.. glossary:: - slash and backslash - barra y barra invertida ``c-api``,``tutorial``,``library/functions.po`` + auditing event + evento de auditoría ``library/tempfile`` and many others - built-in - incorporada ``glossary.po`` + awaitable + aguardable ``glossary`` - built-in exceptions - excepciones predefinidas ``tutorial/errors.po`` + slash and backslash + barra y barra invertida ``c-api``, ``tutorial``, ``library/functions.po`` - bytecodes - queda igual ``glossary.po`` + built-in + incorporada ``glossary.po`` - callable - invocable ``glossary.po``, ``library/functions.po`` + built-in exceptions + excepciones predefinidas ``tutorial/errors.po`` - Nota: en ocasiones es mejora mantener callable, especialmente cuando se refiere directamente - a la anotación de typing Callable + bytecodes + queda igual ``glossary.po`` + + callable + invocable ``glossary.po``, ``library/functions.po`` - checksum - suma de comprobación ``howto/clinic.po`` + Nota: en ocasiones es mejora mantener callable, especialmente cuando se refiere directamente + a la anotación de typing Callable. - code object - objeto código ``c-api``, ``library/functions.po`` + checksum + suma de comprobación ``howto/clinic.po`` - context manager - gestor de contexto + code object + objeto código ``c-api``, ``library/functions.po`` - deallocated - desalojable ``glossary.po`` + context manager + gestor de contexto - docstring - docstring. ``library/idle.po`` + deallocated + desalojable ``glossary.po`` - key - clave + docstring + docstring. ``library/idle.po`` - keyword argument - argumento por palabra clave / argumento de palabra clave + key + clave - handler - gestor ``tutorial/errors.po`` + keyword argument + argumento por palabra clave / argumento de palabra clave + + host + host ``library/smtplib.po`` + Significado: máquina conectada a una red que provee de servicios - handle exception - gestionar [una] excepción. ``tutorial/inputoutput.po`` - gestionar excepciones + hostname + hostname ``library/smtplib.po`` + Significado: nombre de la máquina conectada a una red que provee de servicios i. e. en otras palabras. ``library/sqlite3.po`` + handler + gestor ``tutorial/errors.po`` - in-place, in place - in situ. Aunque estrictamente no es español, su uso es generalizado. - - library - biblioteca. ``library/sqlite3.po`` - - list comprehension / list comprehensions - lista por comprensión / listas por comprensión. - - locale - Configuración regional. ``library/functions.po`` and others + handle exception + gestionar [una] excepción. ``tutorial/inputoutput.po`` + gestionar excepciones - helper function - función auxiliar ``library/typing.po`` + i. e. + en otras palabras. ``library/sqlite3.po`` - loop - bucle ``tutorial/controlflow.po`` + in-place, in place + in situ. Aunque estrictamente no es español, su uso es generalizado. - mapping - mapeo ``glossary.po`` + library + biblioteca. ``library/sqlite3.po`` - named tuple. - tupla nombrada ``glossary.po`` + list comprehension / list comprehensions + lista por comprensión / listas por comprensión. - overload, overloading - sobrecargar, sobrecarga + locale + Configuración regional. ``library/functions.po`` and others - override, overriding - sobreescribir, sobreescritura + helper function + función auxiliar ``library/typing.po`` - path - ruta ``glossary.po`` + loop + bucle ``tutorial/controlflow.po`` - pythonic - *pythónico* + mapping + mapeo ``glossary.po`` - idiomático + named tuple. + tupla nombrada ``glossary.po`` - Estes dos términos son próximos en el contexto que se usan, utilizar complementariamente - según el contexto. Referencia: https://docs.python-guide.org/writing/style/ + overload, overloading + sobrecargar, sobrecarga - raise - lanzar, lanza. (referido a excepciones) ``library/functions.po``, ``c-api`` + override, overriding + sobreescribir, sobreescritura - release - version ``HOWTO`` + path + ruta ``glossary.po`` - return / returns - retorna / retornar ``library/sqlite3.po`` + pythonic + *pythónico* - return type - tipo de retorno ``library/typing.po`` - tipo retornado - tipo devuelto - Nota: en algunos contextos es mejor usar el participio (retornado/devuelto), se prefiere - retornado por semejanza con el original inglés "return". + idiomático - runtime - tiempo de ejecución ``tutorial/classes.po`` + Estes dos términos son próximos en el contexto que se usan, utilizar complementariamente + según el contexto. Referencia: https://docs.python-guide.org/writing/style/ - slice - segmento ``datamodel.po`` + raise + lanzar, lanza. (referido a excepciones) ``library/functions.po``, ``c-api`` - slicing - segmentación ``datamodel.po`` + release + version ``HOWTO`` + + return / returns + retorna / retornar ``library/sqlite3.po`` - static type checker - Validador estático de tipos - Notas: mantener la mayúscula, usar validación cuando se refiera a la acción y no al agente. + return type + tipo de retorno ``library/typing.po`` + tipo retornado + tipo devuelto + Nota: en algunos contextos es mejor usar el participio (retornado/devuelto), se prefiere + retornado por semejanza con el original inglés "return". - string - cadena de caracteres ``datamodel.po`` + runtime + tiempo de ejecución ``tutorial/classes.po`` + + slice + segmento ``datamodel.po`` - strings - cadenas de caracteres ``datamodel.po`` + slicing + segmentación ``datamodel.po`` + + statement + sentencia ``smtplib.po`` - third-party - de terceros ``library/typing.po`` + static type checker + Validador estático de tipos + Notas: mantener la mayúscula, usar validación cuando se refiera a la acción y no al agente. - type hint - indicador de tipo ``library/typing.po`` + static type checker + Validador estático de tipos + Notas: mantener la mayúscula, usar validación cuando se refiera a la acción y no al agente. - type annotation ``library/typing.po`` - anotación de tipo - Nota: úsese como sinónimo de *type hint*, aunque en el texto se sobreentiende que anotación - es algo accesorio, un comentario, y type hint implica que el Validador hará comprobaciones + string + cadena de caracteres ``datamodel.po`` - underscore - guión bajo ``glossary.po`` + strings + cadenas de caracteres ``datamodel.po`` - widget - widget ``library/tkinter`` + third-party + de terceros ``library/typing.po`` + + timeout + timeout ``library/smtplib.po`` + Significado: tiempo de espera para establecer/reintentar una conexión de red + + type hint + indicador de tipo ``library/typing.po`` + + type hint + indicador de tipo ``library/typing.po`` + type annotation + anotación de tipo ``library/typing.po`` + Nota: úsese como sinónimo de *type hint*, aunque en el texto se sobreentiende que anotación + es algo accesorio, un comentario, y type hint implica que el Validador hará comprobaciones + + underscore + guión bajo ``glossary.po`` + + widget + widget ``library/tkinter`` Términos que no se traducen diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e12a13d92f..72807d02b4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,11 +7,11 @@ repos: hooks: - id: merge-dicts name: merge-dicts - entry: ./scripts/merge-dicts.sh - language: script + 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 hooks: - id: pospell - args: ['--personal-dict', 'dict.txt', '--modified', '--language', 'es_ES', '--language', 'es_AR'] + args: ['--personal-dict', 'dict.txt', '--modified', '--language', 'es_ES'] diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d4b73e2897..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: python -dist: bionic -python: 3.8 -before_install: - - sudo apt-get update - - sudo apt-get install -y hunspell hunspell-es -install: - - make setup - - pospell --version - - powrap --version -script: - - powrap --check --quiet **/*.po - - awk 1 dict dictionaries/*.txt > dict.txt - - pospell -p dict.txt -l es_AR -l es_ES **/*.po - - pip install -q -r requirements.txt - - PYTHONWARNINGS=ignore::FutureWarning sphinx-build -j auto -W --keep-going -b html -d cpython/Doc/_build/doctree -D language=es . cpython/Doc/_build/html -branches: - only: - - /^3\.\d$/ diff --git a/Makefile b/Makefile index af4788b25f..beda468e0e 100644 --- a/Makefile +++ b/Makefile @@ -89,9 +89,7 @@ progress: venv .PHONY: spell spell: venv - # 'cat' tenia el problema que algunos archivos no tenían una nueva línea al final - # 'awk 1' agregará una nueva línea en caso que falte. - awk 1 dict dictionaries/*.txt > dict.txt + $(VENV)/bin/python scripts/create_dict.py $(VENV)/bin/pospell -p dict.txt -l es_ES **/*.po diff --git a/TRANSLATORS b/TRANSLATORS index 85bf7d0c44..46f1e73140 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -22,7 +22,10 @@ Carlos Joel Delgado Pizarro (@c0x6a) Sergio Delgado Quintero (@sdelquin) Nicolás Demarchi (@gilgamezh) Ignacio Dopazo (@ignaciodopazo) +Marcelo Elizeche Landó (@melizeche) +Natalia Elvira Astoreca (@nea23) Nahuel Espinosa (@nahueespinosa) +Nataya Soledad Flores (@natayafs) Xavi Francisco (@srxavi) Santiago E Fraire Willemoes (@Woile) Leonardo Gomez (@gomezgleonardob) @@ -50,6 +53,8 @@ Manuel Ramos (@manuelramos) Marco Moresi (@mrcmoresi) Federico Jurío (@FedericoJurio) Marco Richetta (@marcorichetta) +Silvina Tamburini (@silvinabt87) +Javier Daza (@javierdaza) Adolfo Hristo David Roque Gámez (@hristoroque) Elisabeth Ortega (@draentropia) Cristian Rengifo (@ingrengifo) @@ -87,6 +92,9 @@ Rodrigo Poblete Diaz (@rodpoblete) Elias Urios Alacreu (@Buzzeitor30) Santiago E Fraire Willemoes (@Woile) Gustavo Adolfo Huarcaya Delgado (@diavolo) +Rubén de Celis Hernández (@RDCH106) +Samantha Valdez A. (@samvaldez) +Adrian Carrillo (@oropher) Alfonso Reyes (@mxarc) Enrique Giménez (@fenriquegimenez) Rishabh Mishra (@rishabhmishra25) @@ -99,7 +107,39 @@ Willian Garcia (@wgarcia1309) Ana Medina Bernal (@ana-med) Juan Biondi (@yeyeto2788) Hugo Valencia Vargas(@psicobloc) -Iracema Cabllero (@iracaballero) +Azul Maia Vallejos Salgado (@bleucode) +Iracema Caballero (@iracaballero) +Andreu Vallbona Plazas (@avallbona) Javier Artiga Garijo (@jartigag) Ayose Figuera (@ayosefiguera) Alvaro Cárdenas (@alvaruz) +Daniel Vera Nieto (@dveni) +Beatriz Cabrero Saiz (@Xhiel23) +Andros Fenollosa Hurtado (@tanrax) +Marcos Moreno (@marcosmamg) +María Saiz Muñoz (@mariasm87) +Sofia Carballo (@sofiacarballo) +Alan Verdugo Muñoz (@alanverdugo) +Alcides Rivarola (@alcides29) +Juan Carlos Tello (@jctello) +Ricardo Rodríguez (@ricrogz) +Daniela Zuluaga Ocampo (@Nany262) +Ginés Salar Ibáñez (@Ibnmardanis24) +Ana (@popiula) +David Silva (@dvidsilva) +Ricardo Rodríguez (@ricrogz) +(@0-Arngerdur-1) +Melissa Escobar Gutiérrez (@MelissaEscobar) +Enrique Zárate (@enrique-zarate) +Jaume Montané (@jaumemy) +Endika Gil (@endikagil) +Federico Zuccolo (@fzuccolo) +Gibran Herrera (@gibranhl) +Ulises Alexander Argüelles Monjaraz (@UlisesAlexanderAM) +Juan Elias Rodriguez (@Juerodriguez) +Victor Carlos (@tuxtitlan) +Ignacio Sanz (@elnaquete) +Jaime Rodrigo González Rodríguez (@jairock282) +Martín Ramírez (@tinchoram) +Kevin Cajachuán (@Kajachuan) +Adolfo Villalobos (@AdolfoVillalobos) diff --git a/conf.py b/conf.py index 4b6fce0378..8956b12c0a 100644 --- a/conf.py +++ b/conf.py @@ -47,19 +47,15 @@ if not os.environ.get('SPHINX_GETTEXT') == 'True': # Override all the files from ``.overrides`` directory - import glob - for root, dirs, files in os.walk('.overrides'): - for fname in files: - if fname == 'README.rst' and root == '.overrides': - continue - destroot = root.replace('.overrides', '').lstrip('/') - outputdir = os.path.join( - 'cpython', - 'Doc', - destroot, - fname, - ) - os.system(f'ln -nfs `pwd`/{root}/{fname} {outputdir}') + from pathlib import Path + overrides_paths = Path('.overrides') + + for path in overrides_paths.glob('**/*.*'): + if path.name == 'README.rst' and path.parent == '.overrides': + continue + destroot = str(path.parent).replace('.overrides', '').lstrip('/') + outputdir = Path('cpython/Doc') / destroot / path.name + os.system(f'ln -nfs `pwd`/{path.parent}/{path.name} {outputdir}') gettext_compact = False locale_dirs = ['../locales', 'cpython/locales'] # relative to the sourcedir @@ -73,10 +69,16 @@ _stdauthor, 'manual'), ] -extensions.extend([ - 'sphinx_tabs.tabs', - 'sphinxemoji.sphinxemoji', -]) +try: + extensions.extend([ + 'sphinx_tabs.tabs', + 'sphinxemoji.sphinxemoji', + ]) +except NameError: + extensions = [ + 'sphinx_tabs.tabs', + 'sphinxemoji.sphinxemoji', + ] def setup(app): diff --git a/dict b/dict index a7c9fef7e8..34d0753ff4 100644 --- a/dict +++ b/dict @@ -1212,3 +1212,4 @@ Zope úa ı ſ +nº \ No newline at end of file diff --git a/dictionaries/commandref.txt b/dictionaries/commandref.txt new file mode 100644 index 0000000000..ec3cf8876a --- /dev/null +++ b/dictionaries/commandref.txt @@ -0,0 +1 @@ +manifest \ No newline at end of file diff --git a/dictionaries/distutils_apiref.txt b/dictionaries/distutils_apiref.txt new file mode 100644 index 0000000000..4c160e8075 --- /dev/null +++ b/dictionaries/distutils_apiref.txt @@ -0,0 +1,9 @@ +cygwin +vinculador +desactualizado +edítelo +únela +definirla +Preprocesa +configúralo +Redhat diff --git a/dictionaries/distutils_builtdist.txt b/dictionaries/distutils_builtdist.txt new file mode 100644 index 0000000000..8764ad03d1 --- /dev/null +++ b/dictionaries/distutils_builtdist.txt @@ -0,0 +1,4 @@ +autoextraíble +desinstalación +desinstale +UAC \ No newline at end of file diff --git a/dictionaries/howto_functional.txt b/dictionaries/howto_functional.txt new file mode 100644 index 0000000000..41854c76d2 --- /dev/null +++ b/dictionaries/howto_functional.txt @@ -0,0 +1,29 @@ +subcláusulas +multiparadigma +Demostrabilidad +evitación +correctitud +impráctico +Componibilidad +inorden +NxN +functools +acumulativamente +operator +multivía +Blake +Collin +Ian +Jussi +genexp +listcomp +Collin +Abelson +Gerald +Harold +Jay +Julie +Scheme +Sussman +Mertz +DeveloperWorks \ No newline at end of file diff --git a/dictionaries/howto_instrumentation.txt b/dictionaries/howto_instrumentation.txt new file mode 100644 index 0000000000..64da6404b9 --- /dev/null +++ b/dictionaries/howto_instrumentation.txt @@ -0,0 +1,3 @@ +SystemTap +tapset +estratégicamente \ No newline at end of file diff --git a/dictionaries/howto_pyporting.txt b/dictionaries/howto_pyporting.txt new file mode 100644 index 0000000000..2759816e25 --- /dev/null +++ b/dictionaries/howto_pyporting.txt @@ -0,0 +1,8 @@ +Nick +Futurize +backporting +descodificarlo +dicotomía +lintar +tox +comprobador diff --git a/dictionaries/howto_regex.txt b/dictionaries/howto_regex.txt new file mode 100644 index 0000000000..0ed84fe8d0 --- /dev/null +++ b/dictionaries/howto_regex.txt @@ -0,0 +1,16 @@ +metacarácteres +metacarácter +colocándolos +intentémoslo +reduccionista +enciérrelo +subexpresión +subgrupos +anidarlo +hexadecimales +colocándolas +reemplácelas +comprenderlas +precediéndolos +precederlos +uniéndolos \ No newline at end of file diff --git a/dictionaries/library_asyncio-llapi-index.txt b/dictionaries/library_asyncio-llapi-index.txt new file mode 100644 index 0000000000..50d2967bca --- /dev/null +++ b/dictionaries/library_asyncio-llapi-index.txt @@ -0,0 +1,2 @@ +streaming +monitoreo diff --git a/dictionaries/library_asyncio_subprocess.txt b/dictionaries/library_asyncio_subprocess.txt new file mode 100644 index 0000000000..dab11958ce --- /dev/null +++ b/dictionaries/library_asyncio_subprocess.txt @@ -0,0 +1,2 @@ +redireccionados +Process \ No newline at end of file diff --git a/dictionaries/library_cgi.txt b/dictionaries/library_cgi.txt new file mode 100644 index 0000000000..7d02d02319 --- /dev/null +++ b/dictionaries/library_cgi.txt @@ -0,0 +1,36 @@ +script +scripts +Python +host +shell +etc +manejador +bytes +recursiva +recursivamente +megabytes +usable +hackers +comandos +Unix +octal +cgi +bin +Desafortunadamente +críptico +addr +At +name +Joe +Blow +depurarlo +traceback +tracebacks +deshabilita +búfer +logs +userid +explícitamente +uid +query +string \ No newline at end of file diff --git a/dictionaries/library_collections.txt b/dictionaries/library_collections.txt new file mode 100644 index 0000000000..047041855e --- /dev/null +++ b/dictionaries/library_collections.txt @@ -0,0 +1,31 @@ +Algorítmicamente +autodocumentado +actualizable +appending +appends +bag +bags +Counter +Counters +deque +deques +Deques +Django +Enthought +Factory +factory +iteración +mapeados +mapping +mappings +multiconjunto +multiconjuntos +pickling +popping +pops +pushing +reordenamiento +subclasificaciones +typename +field +names diff --git a/dictionaries/library_compileall.txt b/dictionaries/library_compileall.txt new file mode 100644 index 0000000000..4e491858b4 --- /dev/null +++ b/dictionaries/library_compileall.txt @@ -0,0 +1,2 @@ +workers +pycs \ No newline at end of file diff --git a/dictionaries/library_contextvars.txt b/dictionaries/library_contextvars.txt new file mode 100644 index 0000000000..02c662e5ed --- /dev/null +++ b/dictionaries/library_contextvars.txt @@ -0,0 +1,3 @@ +tuplas +iterador +frameworks diff --git a/dictionaries/library_cursesascii.txt b/dictionaries/library_cursesascii.txt new file mode 100644 index 0000000000..9aaa6b9737 --- /dev/null +++ b/dictionaries/library_cursesascii.txt @@ -0,0 +1,2 @@ +mnemónicos +teleimpresora diff --git a/dictionaries/library_distutils.txt b/dictionaries/library_distutils.txt new file mode 100644 index 0000000000..f4f388c888 --- /dev/null +++ b/dictionaries/library_distutils.txt @@ -0,0 +1 @@ +plugins \ No newline at end of file diff --git a/dictionaries/library_dummy_threading.txt b/dictionaries/library_dummy_threading.txt new file mode 100644 index 0000000000..0bc952b5e4 --- /dev/null +++ b/dictionaries/library_dummy_threading.txt @@ -0,0 +1 @@ +threading diff --git a/dictionaries/library_email.compat32-message.txt b/dictionaries/library_email.compat32-message.txt new file mode 100644 index 0000000000..3c64751bd6 --- /dev/null +++ b/dictionaries/library_email.compat32-message.txt @@ -0,0 +1,6 @@ +submensajes +pseudodiccionario +recodificada +defect +subcontenido +multiparte \ No newline at end of file diff --git a/dictionaries/library_email.generator.txt b/dictionaries/library_email.generator.txt new file mode 100644 index 0000000000..a0eb3796fb --- /dev/null +++ b/dictionaries/library_email.generator.txt @@ -0,0 +1,3 @@ +recodificado +serializando +reenvuelve diff --git a/dictionaries/library_email.headerregistry.txt b/dictionaries/library_email.headerregistry.txt new file mode 100644 index 0000000000..3fa9a03115 --- /dev/null +++ b/dictionaries/library_email.headerregistry.txt @@ -0,0 +1,2 @@ +serialicen +preinicializada diff --git a/dictionaries/library_email.txt b/dictionaries/library_email.txt new file mode 100644 index 0000000000..64eab53877 --- /dev/null +++ b/dictionaries/library_email.txt @@ -0,0 +1,11 @@ +submódulo +subcomponentes +parser +serializada +serializado +instanciando +serializa +serializarlo +serializan +extensibilidad +Unicode diff --git a/dictionaries/library_email_utils.txt b/dictionaries/library_email_utils.txt new file mode 100644 index 0000000000..efc18292b8 --- /dev/null +++ b/dictionaries/library_email_utils.txt @@ -0,0 +1,3 @@ +hostname +Greenwich +msgid diff --git a/dictionaries/library_faulthandler.txt b/dictionaries/library_faulthandler.txt new file mode 100644 index 0000000000..54a4aec7cd --- /dev/null +++ b/dictionaries/library_faulthandler.txt @@ -0,0 +1 @@ +Apport \ No newline at end of file diff --git a/dictionaries/library_functions.txt b/dictionaries/library_functions.txt new file mode 100644 index 0000000000..10f83f3f8f --- /dev/null +++ b/dictionaries/library_functions.txt @@ -0,0 +1 @@ +testear diff --git a/dictionaries/library_hashlib.txt b/dictionaries/library_hashlib.txt new file mode 100644 index 0000000000..8cddd11b89 --- /dev/null +++ b/dictionaries/library_hashlib.txt @@ -0,0 +1,11 @@ +paralelización +configurables +indiferenciabilidad +remplazamiento +Hashlib +scrypt +Creative +Commons +Public +Domain +Dedication diff --git a/dictionaries/library_hmac.txt b/dictionaries/library_hmac.txt new file mode 100644 index 0000000000..3da1616170 --- /dev/null +++ b/dictionaries/library_hmac.txt @@ -0,0 +1 @@ +hmac \ No newline at end of file diff --git a/dictionaries/library_http_cookies.txt b/dictionaries/library_http_cookies.txt new file mode 100644 index 0000000000..bb86d09f6c --- /dev/null +++ b/dictionaries/library_http_cookies.txt @@ -0,0 +1,5 @@ +cookie +SimpleCookie +analícela +Morsel +Morsels diff --git a/dictionaries/library_http_server.txt b/dictionaries/library_http_server.txt new file mode 100644 index 0000000000..8f08c6d9b7 --- /dev/null +++ b/dictionaries/library_http_server.txt @@ -0,0 +1,6 @@ +Expectation +ip +localhost +only +interoperación +handler diff --git a/dictionaries/library_imghdr.txt b/dictionaries/library_imghdr.txt new file mode 100644 index 0000000000..0d43fc318a --- /dev/null +++ b/dictionaries/library_imghdr.txt @@ -0,0 +1,7 @@ +Exif +ImgLib +Bitmap +Graymap +Pixmap +Raster +Bitmap diff --git a/dictionaries/library_logging_handlers.txt b/dictionaries/library_logging_handlers.txt index c0ffa269ed..099b704686 100644 --- a/dictionaries/library_logging_handlers.txt +++ b/dictionaries/library_logging_handlers.txt @@ -3,3 +3,4 @@ serializado serializada deserializar datagrama +descripto diff --git a/dictionaries/library_marshal.txt b/dictionaries/library_marshal.txt new file mode 100644 index 0000000000..fbb043764f --- /dev/null +++ b/dictionaries/library_marshal.txt @@ -0,0 +1,2 @@ +pickle +marshalled diff --git a/dictionaries/library_math.txt b/dictionaries/library_math.txt new file mode 100644 index 0000000000..f07d81aeb7 --- /dev/null +++ b/dictionaries/library_math.txt @@ -0,0 +1,10 @@ +bidimensional +binomial +double +polinomial +even +Hart +half +not +number +radianes diff --git a/dictionaries/library_msilib.txt b/dictionaries/library_msilib.txt new file mode 100644 index 0000000000..63842add94 --- /dev/null +++ b/dictionaries/library_msilib.txt @@ -0,0 +1,6 @@ +Database +View +Summary +Information +Record +Directory diff --git a/dictionaries/library_pickletools.txt b/dictionaries/library_pickletools.txt new file mode 100644 index 0000000000..c684a6c22e --- /dev/null +++ b/dictionaries/library_pickletools.txt @@ -0,0 +1,2 @@ +pickle +pickles diff --git a/dictionaries/library_posix.txt b/dictionaries/library_posix.txt new file mode 100644 index 0000000000..d46901a43f --- /dev/null +++ b/dictionaries/library_posix.txt @@ -0,0 +1 @@ +Irix \ No newline at end of file diff --git a/dictionaries/library_pty.txt b/dictionaries/library_pty.txt new file mode 100644 index 0000000000..ad02223d2f --- /dev/null +++ b/dictionaries/library_pty.txt @@ -0,0 +1,2 @@ +io +typescript diff --git a/dictionaries/library_pyexpat.txt b/dictionaries/library_pyexpat.txt new file mode 100644 index 0000000000..0a2909b292 --- /dev/null +++ b/dictionaries/library_pyexpat.txt @@ -0,0 +1,5 @@ +child +Expat +ExpatError +ignorables +inicializándolo diff --git a/dictionaries/library_runpy.txt b/dictionaries/library_runpy.txt new file mode 100644 index 0000000000..3b60244bcb --- /dev/null +++ b/dictionaries/library_runpy.txt @@ -0,0 +1 @@ +serializarse diff --git a/dictionaries/library_smtpd.txt b/dictionaries/library_smtpd.txt new file mode 100644 index 0000000000..a7e38845c6 --- /dev/null +++ b/dictionaries/library_smtpd.txt @@ -0,0 +1,4 @@ +DebuggingServer +PureProxy +MailmanProxy +mailman diff --git a/dictionaries/library_smtplib.txt b/dictionaries/library_smtplib.txt new file mode 100644 index 0000000000..293986d100 --- /dev/null +++ b/dictionaries/library_smtplib.txt @@ -0,0 +1,5 @@ +timeout +host +hostname +millaje +Conéctese diff --git a/dictionaries/library_socketserver.txt b/dictionaries/library_socketserver.txt new file mode 100644 index 0000000000..fb0b9318f2 --- /dev/null +++ b/dictionaries/library_socketserver.txt @@ -0,0 +1,4 @@ +síncrona +forking +Forking +síncronos diff --git a/dictionaries/library_sqlite3.txt b/dictionaries/library_sqlite3.txt new file mode 100644 index 0000000000..154c06a26d --- /dev/null +++ b/dictionaries/library_sqlite3.txt @@ -0,0 +1,11 @@ +prototipar +Configurarla +autorizador +desconexión +commit +collation +backend +sobrecoste +arraysize +rowid +datetime diff --git a/dictionaries/library_statistics.txt b/dictionaries/library_statistics.txt new file mode 100644 index 0000000000..d3ce295ab3 --- /dev/null +++ b/dictionaries/library_statistics.txt @@ -0,0 +1,23 @@ +Behavioral +Bessel +cuantiles +for +Fraction +Frederick +Gnome +Gnumeric +Gravetter +Matlab +Minitab +muestral +muestreados +percentil +probabilísticos +ratios +Sciences +Statistics +the +Wallnau +ª +μ +σ diff --git a/dictionaries/library_string.txt b/dictionaries/library_string.txt new file mode 100644 index 0000000000..47d92f0916 --- /dev/null +++ b/dictionaries/library_string.txt @@ -0,0 +1 @@ +descriptas diff --git a/dictionaries/library_struct.txt b/dictionaries/library_struct.txt new file mode 100644 index 0000000000..73559ab2f0 --- /dev/null +++ b/dictionaries/library_struct.txt @@ -0,0 +1,4 @@ +middle +binary +precision +Struct diff --git a/dictionaries/library_tkinter.tix.txt b/dictionaries/library_tkinter.tix.txt new file mode 100644 index 0000000000..61bac1940d --- /dev/null +++ b/dictionaries/library_tkinter.tix.txt @@ -0,0 +1,5 @@ +subwidget +redimensionamiento +bitmap +sublista +xbm diff --git a/dictionaries/library_tracemalloc.txt b/dictionaries/library_tracemalloc.txt new file mode 100644 index 0000000000..f4e57d76ab --- /dev/null +++ b/dictionaries/library_tracemalloc.txt @@ -0,0 +1,3 @@ +desinstala + + diff --git a/dictionaries/library_tty.txt b/dictionaries/library_tty.txt new file mode 100644 index 0000000000..593cde1b59 --- /dev/null +++ b/dictionaries/library_tty.txt @@ -0,0 +1 @@ +tty diff --git a/dictionaries/library_turtle.txt b/dictionaries/library_turtle.txt new file mode 100644 index 0000000000..605d28be49 --- /dev/null +++ b/dictionaries/library_turtle.txt @@ -0,0 +1,76 @@ +Dijkstra +Edsger +Subsecuentemente +clickear +Logo +Wally +Feurzeig +Seymour +Papert +Cynthia +Solomon +pixeles +reimplementación +interface +TurtleScreen +Screen +innombrado +logo +antihorario +pensize +stamp +standard +world +resizemode +turtleshape +pensize +speed +stretchfactor +outline +tilt +colormode +intersectados +mouse +trio +False +gif +ej +redimensiona +re +mili +space +Turtle +x +Python +turtle +None +tupla +call +s +t +click +buffer +milisegundos +TKinter +script +subproceso +tuplas +p +z +eventollamando +n +maxval +mode +descriptos +etnomatemáticas +Hanoi +update +minimalista +wikipedia +Turtles +Hilbert +Koch +nim +docstringdict +aperiódico +gravitacional diff --git a/dictionaries/library_unittest.mock.txt b/dictionaries/library_unittest.mock.txt new file mode 100644 index 0000000000..04768a2701 --- /dev/null +++ b/dictionaries/library_unittest.mock.txt @@ -0,0 +1,27 @@ +adjuntarlos +Aserta +asertar +autospec +autoespecificación +Autoespecificación +backport +configurarlos +desparchear +django +introspeccionará +MagicMock +mock +parcheadores +Parcheadores +patch +Patch +preconfigurados +refactorizas +seal +Seal +settings +síncronas +sizeof +start +stop +stubs diff --git a/dictionaries/library_urllib.request.txt b/dictionaries/library_urllib.request.txt new file mode 100644 index 0000000000..ca988ebf1a --- /dev/null +++ b/dictionaries/library_urllib.request.txt @@ -0,0 +1,30 @@ +reinterpretada +hackear +redireccionadas +sobrescribible +reintentando +Redirecciona +definirlo +reintentará +encadenación +verificable +Firefox +Mozilla +urlretrieve +UnknownHandler +urlencode +DataHandler +FileHandler +ProxyBasicAuthHandler +AbstractDigestAuthHandler +ProxyDigestAuthHandler +BaseHandler +OpenerDirector +getter +Handler +Digest +BasicAuth +ProxyHandler +userinfo +msg +AbstractBasicAuthHandler \ No newline at end of file diff --git a/dictionaries/library_urllib_parse.txt b/dictionaries/library_urllib_parse.txt new file mode 100644 index 0000000000..ab7a3a7c4f --- /dev/null +++ b/dictionaries/library_urllib_parse.txt @@ -0,0 +1,7 @@ +mailto +netloc +porcentualmente +preprocesa +urlparse +urlencode +ParseResult diff --git a/dictionaries/library_uu.txt b/dictionaries/library_uu.txt new file mode 100644 index 0000000000..9bad441095 --- /dev/null +++ b/dictionaries/library_uu.txt @@ -0,0 +1,2 @@ +Ellinghouse +Jack diff --git a/dictionaries/library_webbrowser.txt b/dictionaries/library_webbrowser.txt new file mode 100644 index 0000000000..744c5ea557 --- /dev/null +++ b/dictionaries/library_webbrowser.txt @@ -0,0 +1 @@ +instanciaciones \ No newline at end of file diff --git a/dictionaries/library_winreg.txt b/dictionaries/library_winreg.txt new file mode 100644 index 0000000000..0f76ce43b7 --- /dev/null +++ b/dictionaries/library_winreg.txt @@ -0,0 +1,4 @@ +subclave +RegDeleteKeyEx +subclaves +SetValue diff --git a/dictionaries/library_xml.dom.minidom.txt b/dictionaries/library_xml.dom.minidom.txt new file mode 100644 index 0000000000..0ac37b8c22 --- /dev/null +++ b/dictionaries/library_xml.dom.minidom.txt @@ -0,0 +1,6 @@ +Document +minidom +Model +solucionador +subnodos + diff --git a/dictionaries/library_xml.sax.utils.txt b/dictionaries/library_xml.sax.utils.txt new file mode 100644 index 0000000000..3ab39b874a --- /dev/null +++ b/dictionaries/library_xml.sax.utils.txt @@ -0,0 +1 @@ +polimórfico \ No newline at end of file diff --git a/dictionaries/library_xml.txt b/dictionaries/library_xml.txt new file mode 100644 index 0000000000..157ff38600 --- /dev/null +++ b/dictionaries/library_xml.txt @@ -0,0 +1,6 @@ +malintencionadamente +firewalls +gigabytes +contramedidas +libexpat +DoS diff --git a/dictionaries/library_xml_dom_pulldom.txt b/dictionaries/library_xml_dom_pulldom.txt new file mode 100644 index 0000000000..3b3f56c564 --- /dev/null +++ b/dictionaries/library_xml_dom_pulldom.txt @@ -0,0 +1,3 @@ +pull +flat +tree diff --git a/dictionaries/library_xmlrpc_client.txt b/dictionaries/library_xmlrpc_client.txt new file mode 100644 index 0000000000..df35674f0d --- /dev/null +++ b/dictionaries/library_xmlrpc_client.txt @@ -0,0 +1,14 @@ +MultiCall +ProtocolError +Faults +singleton +Fault +facto +base64 +desagrupar +Apache +desarrollador +desagrupación +boxcar +Authorization +xmlrpc diff --git a/dictionaries/reference_expressions.txt b/dictionaries/reference_expressions.txt new file mode 100644 index 0000000000..e30dc370b0 --- /dev/null +++ b/dictionaries/reference_expressions.txt @@ -0,0 +1,9 @@ +Subgenerador +close +contraintuitiva +contraintuitivo +reflexibilidad +superconjuntos +superconjuntos +lexicográficamente +unarios \ No newline at end of file diff --git a/dictionaries/reference_toplevel_components.txt b/dictionaries/reference_toplevel_components.txt new file mode 100644 index 0000000000..d6ed7f90f2 --- /dev/null +++ b/dictionaries/reference_toplevel_components.txt @@ -0,0 +1 @@ +mínimamente \ No newline at end of file diff --git a/dictionaries/tutorial_classes.txt b/dictionaries/tutorial_classes.txt new file mode 100644 index 0000000000..b0b24ba265 --- /dev/null +++ b/dictionaries/tutorial_classes.txt @@ -0,0 +1,8 @@ +sorpresivo +necesitás +Notá +Hacé +Debés +Observá +Fijate +llamás diff --git a/dictionaries/tutorial_datastructures.txt b/dictionaries/tutorial_datastructures.txt new file mode 100644 index 0000000000..db9aa71b48 --- /dev/null +++ b/dictionaries/tutorial_datastructures.txt @@ -0,0 +1,2 @@ +Considerá +usás diff --git a/dictionaries/tutorial_floatingpoint.txt b/dictionaries/tutorial_floatingpoint.txt new file mode 100644 index 0000000000..f745df91c1 --- /dev/null +++ b/dictionaries/tutorial_floatingpoint.txt @@ -0,0 +1,7 @@ +ingresás +Frená +recordá +esperás +mostrás +redondeás +probá diff --git a/dictionaries/tutorial_inputoutput.txt b/dictionaries/tutorial_inputoutput.txt new file mode 100644 index 0000000000..92b8ed842d --- /dev/null +++ b/dictionaries/tutorial_inputoutput.txt @@ -0,0 +1,6 @@ +Mirá +mirá +querés +tenés +Asegurate +consultá diff --git a/dictionaries/using_windows.txt b/dictionaries/using_windows.txt new file mode 100644 index 0000000000..92c00c8c7e --- /dev/null +++ b/dictionaries/using_windows.txt @@ -0,0 +1,23 @@ +Console +Farrugia +Golden +InstallAllUsers +Library +Louis +Runtime +Sébastien +compiling +curl +extension +incrustable +instalable +nuget +precompilada +precompilados +runtime +scipy +separándolo +shebang +them +under +without diff --git a/dictionaries/whatsnew_2.7.txt b/dictionaries/whatsnew_2.7.txt new file mode 100644 index 0000000000..a8be8f3872 --- /dev/null +++ b/dictionaries/whatsnew_2.7.txt @@ -0,0 +1,5 @@ +argparse +Kuchling +subsistemas +syslogging +Travis diff --git a/dictionaries/whatsnew_3.1.txt b/dictionaries/whatsnew_3.1.txt new file mode 100644 index 0000000000..0d3a44f630 --- /dev/null +++ b/dictionaries/whatsnew_3.1.txt @@ -0,0 +1,46 @@ +Alexander +Alexandre +Amaury +Andi +Andy +Arc +Armin +Belopolsky +Bob +Brandl +Chu +Coghlan +could +Dalcrin +Derek +Diederich +Eby +for +Forgeot +found +Georg +Guilherme +handlers +icc +Ippolito +Jack +Jesse +Johansson +Laban +Lisandro +Mattias +McGuire +Morr +Nick +Noller +OrderedDict +Phillip +pickler +Roger +Ronacher +Ross +Serwy +TestResult +ttk +Vajda +Vassalotti diff --git a/dictionaries/whatsnew_3.8.txt b/dictionaries/whatsnew_3.8.txt new file mode 100644 index 0000000000..40f32a34c1 --- /dev/null +++ b/dictionaries/whatsnew_3.8.txt @@ -0,0 +1,187 @@ +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 +Antoine +Aprano +Araujo +Askar +Aviv +Barkhau +Barry +Batuhan +Bayles +Behnel +Belanger +Benjamin +Berker +Bo +Bolsterlee +Bronson +Bussonnier +Cannon +Carl +Cédric +Chapman +Cheryl +Christian +Ci +Coombs +Cuthbert +Davin +Demeyer +Dickinson +Dong +Dower +Eddie +Einat +Elizondo +Elvis +Emily +Éric +Eric +Ethan +Eunice +Euresti +Felt +Filip +Franz +Fuchs +Galindo +Ganssle +Gerlach +Giampaolo +Glaser +Glasner +Gregory +Grisel +Grönholm +Guo +Hastings +Heblikar +hee +Heimes +Heissler +Hettinger +Inada +Ivan +Jake +Janzen +Jason +Jeroen +Jevnik +Joannah +Joe +Jon +Jordan +Jörn +Josh +Juliette +Keller +Krier +Kyle +Lapeyre +Larry +Levkivskyi +Mark +Matveev +Max +Meily +Meyer +Michael +Michele +Monsel +Morehouse +Na +Nanjekye +Naoki +Neil +Olivier +Orrù +Palivoda +Peksag +Peterson +Petter +Pitrou +Potts +Pranskevichus +Price +Raymond +Reedy +Rémi +Roach +Rodola +Rodolà +Sabella +Saimadhav +Sajip +Sanderson +Schemenauer +Scott +Selik +Selivanov +Serhiy +Shannon +Smith +Snow +Sottile +Spytz +Stanley +Stefan +Steve +Steven +Stinner +Storchaka +Strandmark +Svetlov +Taskaya +Teo +Terry +Tesler +Victor +Vinay +Vladimir +Warsaw +Weipeng +Wouter +Xiang +Yash +Yury +Zackery +Zhang diff --git a/dictionaries/xml.sax.reader.txt b/dictionaries/xml.sax.reader.txt new file mode 100644 index 0000000000..8ee45f986a --- /dev/null +++ b/dictionaries/xml.sax.reader.txt @@ -0,0 +1,11 @@ +IncrementalParser +encapsulación +tuplas +manejador +propertynames +featurenames +feed +parse +reset +InputSource +getEncoding \ No newline at end of file diff --git a/distutils/_setuptools_disclaimer.po b/distutils/_setuptools_disclaimer.po index 48969b9ae2..25c4f487a4 100644 --- a/distutils/_setuptools_disclaimer.po +++ b/distutils/_setuptools_disclaimer.po @@ -4,19 +4,21 @@ # package. # FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Python en Español 3.7\n" +"Project-Id-Version: Python en Español 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" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2020-11-27 17:49-0600\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/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -24,3 +26,7 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Este documento se conserva únicamente hasta que la documentación de " +"``setuptools`` en https://setuptools.readthedocs.io/en/latest/setuptools." +"html cubra de forma independiente toda la información relevante incluida " +"actualmente aquí." diff --git a/distutils/apiref.po b/distutils/apiref.po index 3a6c299fd7..28408efa73 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.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: 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: 2020-09-13 20:10-0400\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" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: Samantha Valdez\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" #: ../Doc/distutils/apiref.rst:5 msgid "API Reference" -msgstr "" +msgstr "Referencia de la API" #: ../Doc/distutils/apiref.rst:11 msgid "`New and changed setup.py arguments in setuptools`_" -msgstr "" +msgstr "`Argumentos nuevos y cambiados de setup.py en setuptools`_" #: ../Doc/distutils/apiref.rst:10 msgid "" @@ -34,6 +36,9 @@ msgid "" "and other APIs, makes the API consistent across different Python versions, " "and is hence recommended over using ``distutils`` directly." msgstr "" +"El proyecto ``setuptools`` añade nuevas capacidades a la función ``setup`` y " +"otras API, hace que la API sea coherente en diferentes versiones de Python " +"y, por lo tanto, se recomienda usar ``distutils`` directamente." #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -41,10 +46,14 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Este documento se conserva únicamente hasta que la documentación de " +"``setuptools`` en https://setuptools.readthedocs.io/en/latest/setuptools." +"html cubra de forma independiente toda la información relevante que " +"actualmente se incluye aquí." #: ../Doc/distutils/apiref.rst:19 msgid ":mod:`distutils.core` --- Core Distutils functionality" -msgstr "" +msgstr ":mod:`distutils.core` --- Funcionalidad Core Distutils" #: ../Doc/distutils/apiref.rst:25 msgid "" @@ -53,39 +62,48 @@ msgid "" "called from the setup script). Indirectly provides the :class:`distutils." "dist.Distribution` and :class:`distutils.cmd.Command` class." msgstr "" +"El módulo :mod:`distutils.core` es el único módulo que necesita ser " +"instalado para utilizar *Distutils*. Proporciona el :func:`setup` (que es " +"llamado desde el script de configuración). Indirectamente proporciona la " +"clase :class:`distutils.dist.Distribution` y la clase :class:`distutils.cmd." +"Command`." #: ../Doc/distutils/apiref.rst:33 msgid "" "The basic do-everything function that does most everything you could ever " "ask for from a Distutils method." msgstr "" +"La función básica *do-everything* hace casi todo lo que podrías pedir de un " +"método *Distutils*." #: ../Doc/distutils/apiref.rst:36 msgid "" "The setup function takes a large number of arguments. These are laid out in " "the following table." msgstr "" +"La función de configuración toma un gran número de argumentos. Estos se " +"presentan en la siguiente tabla." #: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:185 msgid "argument name" -msgstr "" +msgstr "nombre del argumento" #: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:143 #: ../Doc/distutils/apiref.rst:185 msgid "value" -msgstr "" +msgstr "valor" #: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:185 msgid "type" -msgstr "" +msgstr "tipo" #: ../Doc/distutils/apiref.rst:44 ../Doc/distutils/apiref.rst:187 msgid "*name*" -msgstr "" +msgstr "*name*" #: ../Doc/distutils/apiref.rst:44 msgid "The name of the package" -msgstr "" +msgstr "El nombre del paquete" #: ../Doc/distutils/apiref.rst:44 ../Doc/distutils/apiref.rst:46 #: ../Doc/distutils/apiref.rst:50 ../Doc/distutils/apiref.rst:53 @@ -95,51 +113,51 @@ msgstr "" #: ../Doc/distutils/apiref.rst:96 ../Doc/distutils/apiref.rst:106 #: ../Doc/distutils/apiref.rst:187 ../Doc/distutils/apiref.rst:278 msgid "a string" -msgstr "" +msgstr "un string" #: ../Doc/distutils/apiref.rst:46 msgid "*version*" -msgstr "" +msgstr "*version*" #: ../Doc/distutils/apiref.rst:46 msgid "The version number of the package; see :mod:`distutils.version`" -msgstr "" +msgstr "El número de versión del paquete; ver :mod:`distutils.version`" #: ../Doc/distutils/apiref.rst:50 msgid "*description*" -msgstr "" +msgstr "*description*" #: ../Doc/distutils/apiref.rst:50 msgid "A single line describing the package" -msgstr "" +msgstr "Una sola línea describiendo el paquete" #: ../Doc/distutils/apiref.rst:53 msgid "*long_description*" -msgstr "" +msgstr "*long_description*" #: ../Doc/distutils/apiref.rst:53 msgid "Longer description of the package" -msgstr "" +msgstr "Descripción larga del paquete" #: ../Doc/distutils/apiref.rst:56 msgid "*author*" -msgstr "" +msgstr "*author*" #: ../Doc/distutils/apiref.rst:56 msgid "The name of the package author" -msgstr "" +msgstr "El nombre del autor del paquete" #: ../Doc/distutils/apiref.rst:58 msgid "*author_email*" -msgstr "" +msgstr "*author_email*" #: ../Doc/distutils/apiref.rst:58 msgid "The email address of the package author" -msgstr "" +msgstr "La dirección de correo electrónico del autor del paquete" #: ../Doc/distutils/apiref.rst:61 msgid "*maintainer*" -msgstr "" +msgstr "*maintainer*" #: ../Doc/distutils/apiref.rst:61 msgid "" @@ -147,39 +165,44 @@ msgid "" "if the maintainer is provided, distutils will use it as the author in :file:" "`PKG-INFO`" msgstr "" +"El nombre del mantenedor actual, si es diferente del autor. Ten en cuenta " +"que si se proporciona el mantenedor, *distuils* lo usará como el autor en :" +"file:`PKG-INFO`" #: ../Doc/distutils/apiref.rst:68 msgid "*maintainer_email*" -msgstr "" +msgstr "*maintainer_email*" #: ../Doc/distutils/apiref.rst:68 msgid "" "The email address of the current maintainer, if different from the author" msgstr "" +"La dirección de correo electrónico del mantenedor actual, si es diferente " +"del autor" #: ../Doc/distutils/apiref.rst:72 msgid "*url*" -msgstr "" +msgstr "*url*" #: ../Doc/distutils/apiref.rst:72 msgid "A URL for the package (homepage)" -msgstr "" +msgstr "Una URL para el paquete (página principal)" #: ../Doc/distutils/apiref.rst:75 msgid "*download_url*" -msgstr "" +msgstr "*download_url*" #: ../Doc/distutils/apiref.rst:75 msgid "A URL to download the package" -msgstr "" +msgstr "Una URL para descargar el paquete" #: ../Doc/distutils/apiref.rst:77 msgid "*packages*" -msgstr "" +msgstr "*packages*" #: ../Doc/distutils/apiref.rst:77 msgid "A list of Python packages that distutils will manipulate" -msgstr "" +msgstr "Una lista de paquetes Python que *distutils* podrá manipular" #: ../Doc/distutils/apiref.rst:77 ../Doc/distutils/apiref.rst:80 #: ../Doc/distutils/apiref.rst:83 ../Doc/distutils/apiref.rst:100 @@ -190,142 +213,148 @@ msgstr "" #: ../Doc/distutils/apiref.rst:258 ../Doc/distutils/apiref.rst:267 #: ../Doc/distutils/apiref.rst:275 msgid "a list of strings" -msgstr "" +msgstr "una lista de strings" #: ../Doc/distutils/apiref.rst:80 msgid "*py_modules*" -msgstr "" +msgstr "*py_modules*" #: ../Doc/distutils/apiref.rst:80 msgid "A list of Python modules that distutils will manipulate" -msgstr "" +msgstr "Una lista de módulos Python que *distutils* podrá manipular" #: ../Doc/distutils/apiref.rst:83 msgid "*scripts*" -msgstr "" +msgstr "*scripts*" #: ../Doc/distutils/apiref.rst:83 msgid "A list of standalone script files to be built and installed" -msgstr "" +msgstr "Una lista de archivos únicos de scripts que serán creados e instalados" #: ../Doc/distutils/apiref.rst:87 msgid "*ext_modules*" -msgstr "" +msgstr "*ext_modules*" #: ../Doc/distutils/apiref.rst:87 msgid "A list of Python extensions to be built" -msgstr "" +msgstr "Una lista de extensiones Python para ser creadas" #: ../Doc/distutils/apiref.rst:87 msgid "a list of instances of :class:`distutils.core.Extension`" msgstr "" +"una lista de las instancias de la clase :class:`distutils.core.Extension`" #: ../Doc/distutils/apiref.rst:90 msgid "*classifiers*" -msgstr "" +msgstr "*classifiers*" #: ../Doc/distutils/apiref.rst:90 msgid "A list of categories for the package" -msgstr "" +msgstr "Una lista de categorías para el paquete" #: ../Doc/distutils/apiref.rst:90 msgid "" "a list of strings; valid classifiers are listed on `PyPI `_." msgstr "" +"una lista de strings; los clasificadores válidos están listados en `PyPI " +"`_." #: ../Doc/distutils/apiref.rst:93 msgid "*distclass*" -msgstr "" +msgstr "*distclass*" #: ../Doc/distutils/apiref.rst:93 msgid "the :class:`Distribution` class to use" -msgstr "" +msgstr "la clase para usar la clase :class:`Distribution`" #: ../Doc/distutils/apiref.rst:93 msgid "a subclass of :class:`distutils.core.Distribution`" -msgstr "" +msgstr "una sub-clase de la clase :class:`distutils.core.Distribution`" #: ../Doc/distutils/apiref.rst:96 msgid "*script_name*" -msgstr "" +msgstr "*script_name*" #: ../Doc/distutils/apiref.rst:96 msgid "The name of the setup.py script - defaults to ``sys.argv[0]``" msgstr "" +"El nombre del script del setup.py - el predeterminado es ``sys.argv[0]``" #: ../Doc/distutils/apiref.rst:100 msgid "*script_args*" -msgstr "" +msgstr "*script_args*" #: ../Doc/distutils/apiref.rst:100 msgid "Arguments to supply to the setup script" -msgstr "" +msgstr "Argumentos para suministrar el script de configuración" #: ../Doc/distutils/apiref.rst:103 msgid "*options*" -msgstr "" +msgstr "*options*" #: ../Doc/distutils/apiref.rst:103 msgid "default options for the setup script" -msgstr "" +msgstr "opciones por defecto para el script de configuración" #: ../Doc/distutils/apiref.rst:103 ../Doc/distutils/apiref.rst:113 #: ../Doc/distutils/apiref.rst:119 msgid "a dictionary" -msgstr "" +msgstr "un diccionario" #: ../Doc/distutils/apiref.rst:106 msgid "*license*" -msgstr "" +msgstr "*license*" #: ../Doc/distutils/apiref.rst:106 msgid "The license for the package" -msgstr "" +msgstr "La licencia para el paquete" #: ../Doc/distutils/apiref.rst:108 msgid "*keywords*" -msgstr "" +msgstr "*keywords*" #: ../Doc/distutils/apiref.rst:108 msgid "Descriptive meta-data, see :pep:`314`" -msgstr "" +msgstr "Metadatos descriptivos, ver :pep:`314`" #: ../Doc/distutils/apiref.rst:108 ../Doc/distutils/apiref.rst:111 msgid "a list of strings or a comma-separated string" -msgstr "" +msgstr "una lista de strings o un string separado por comas" #: ../Doc/distutils/apiref.rst:111 msgid "*platforms*" -msgstr "" +msgstr "*platforms*" #: ../Doc/distutils/apiref.rst:113 msgid "*cmdclass*" -msgstr "" +msgstr "*cmdclass*" #: ../Doc/distutils/apiref.rst:113 msgid "A mapping of command names to :class:`Command` subclasses" msgstr "" +"Una asignación de los nombres de los comandos a las sub-clases de la clase :" +"class:`Command`" #: ../Doc/distutils/apiref.rst:116 msgid "*data_files*" -msgstr "" +msgstr "*data_files*" #: ../Doc/distutils/apiref.rst:116 msgid "A list of data files to install" -msgstr "" +msgstr "Una lista de archivos de datos para instalar" #: ../Doc/distutils/apiref.rst:116 msgid "a list" -msgstr "" +msgstr "una lista" #: ../Doc/distutils/apiref.rst:119 msgid "*package_dir*" -msgstr "" +msgstr "*package_dir*" #: ../Doc/distutils/apiref.rst:119 msgid "A mapping of package to directory names" -msgstr "" +msgstr "Una asignación de directorios a los nombres de los paquetes" #: ../Doc/distutils/apiref.rst:127 msgid "" @@ -335,6 +364,12 @@ msgid "" "keyword args from *script* to :func:`setup`), or the contents of the config " "files or command-line." msgstr "" +"Ejecuta un script de instalación en un entorno algo controlado y retorna la " +"instancia de la clase :class:`distutils.dist.Distribution` que maneja las " +"cosas. Esto es útil si se necesitan encontrar los metadatos de distribución " +"(pasados ​​como palabra clave *args* desde un script a la función :func:" +"`setup`), o el contenido de los archivos de configuración o la línea de " +"comandos." #: ../Doc/distutils/apiref.rst:133 msgid "" @@ -343,96 +378,128 @@ msgid "" "*script_args* is a list of strings; if supplied, ``sys.argv[1:]`` will be " "replaced by *script_args* for the duration of the call." msgstr "" +"*script_name* o nombre del script es un archivo que será leído y ejecutado " +"con la función :func:`exec`. ``sys.argv[0]`` será reemplazado con un script " +"durante la duración de la llamada. *script_args* es una lista de strings; si " +"se proporciona, ``sys.argv[1:]`` será reemplazado por *script_args* durante " +"la duración de la llamada." #: ../Doc/distutils/apiref.rst:138 msgid "" "*stop_after* tells :func:`setup` when to stop processing; possible values:" msgstr "" +"*stop_after* le dice a la función :func:`setup` cuando parar el " +"procesamiento; los valores posibles son:" #: ../Doc/distutils/apiref.rst:143 ../Doc/distutils/apiref.rst:562 #: ../Doc/distutils/apiref.rst:1583 msgid "description" -msgstr "" +msgstr "descripción" #: ../Doc/distutils/apiref.rst:145 msgid "*init*" -msgstr "" +msgstr "*init*" #: ../Doc/distutils/apiref.rst:145 msgid "" "Stop after the :class:`Distribution` instance has been created and " "populated with the keyword arguments to :func:`setup`" msgstr "" +"Detiene después de que la instancia de la clase :class:`Distribution` haya " +"sido creada y llenada con los argumentos de la palabra clave para la " +"función :func:`setup`" #: ../Doc/distutils/apiref.rst:149 msgid "*config*" -msgstr "" +msgstr "*config*" #: ../Doc/distutils/apiref.rst:149 msgid "" "Stop after config files have been parsed (and their data stored in the :" "class:`Distribution` instance)" msgstr "" +"Detiene después que los archivos de configuración hayan sido analizados (y " +"sus datos almacenados en la instancia de la clase :class:`Distribution`)" #: ../Doc/distutils/apiref.rst:153 msgid "*commandline*" -msgstr "" +msgstr "*commandline*" #: ../Doc/distutils/apiref.rst:153 msgid "" "Stop after the command-line (``sys.argv[1:]`` or *script_args*) have been " "parsed (and the data stored in the :class:`Distribution` instance.)" msgstr "" +"Detiene después de que la línea de comandos (``sys.argv[1:]`` o " +"*script_args*) se haya analizado (y los datos almacenados en la instancia de " +"la clase :class:`Distribution`.)" #: ../Doc/distutils/apiref.rst:158 msgid "*run*" -msgstr "" +msgstr "*run*" #: ../Doc/distutils/apiref.rst:158 msgid "" "Stop after all commands have been run (the same as if :func:`setup` had " "been called in the usual way). This is the default value." msgstr "" +"Detiene después de que todos los comandos hayan sido ejecutados (lo mismo " +"que si la función :func:`setup` haya sido llamada de forma habitual). Este " +"es el valor predeterminado." #: ../Doc/distutils/apiref.rst:164 msgid "" "In addition, the :mod:`distutils.core` module exposed a number of classes " "that live elsewhere." msgstr "" +"Además, el módulo :mod:`distutils.core` expuso una serie de clases que " +"residen en otros lugares." #: ../Doc/distutils/apiref.rst:167 msgid ":class:`~distutils.extension.Extension` from :mod:`distutils.extension`" msgstr "" +"la clase :class:`~distutils.extension.Extension` del módulo :mod:`distutils." +"extension`" #: ../Doc/distutils/apiref.rst:169 msgid ":class:`~distutils.cmd.Command` from :mod:`distutils.cmd`" msgstr "" +"la clase :class:`~distutils.cmd.Command` del módulo :mod:`distutils.cmd`" #: ../Doc/distutils/apiref.rst:171 msgid ":class:`~distutils.dist.Distribution` from :mod:`distutils.dist`" msgstr "" +"la clase :class:`~distutils.dist.Distribution` del módulo :mod:`distutils." +"dist`" #: ../Doc/distutils/apiref.rst:173 msgid "" "A short description of each of these follows, but see the relevant module " "for the full reference." msgstr "" +"A continuación una breve descripción de cada uno de estos, pero para una " +"referencia completa consulta el módulo correspondiente." #: ../Doc/distutils/apiref.rst:179 msgid "" "The Extension class describes a single C or C++ extension module in a setup " "script. It accepts the following keyword arguments in its constructor:" msgstr "" +"La clase *Extension* describe un solo módulo de extensión C o C++ en un " +"script de configuración. Acepta los siguientes argumentos de palabras clave " +"de su constructor:" #: ../Doc/distutils/apiref.rst:187 msgid "" "the full name of the extension, including any packages --- ie. *not* a " "filename or pathname, but Python dotted name" msgstr "" +"el nombre completo de la extensión, incluidos los paquetes --- es decir, no " +"un nombre de archivo o ruta, sino un nombre punteado Python" #: ../Doc/distutils/apiref.rst:193 msgid "*sources*" -msgstr "" +msgstr "*sources*" #: ../Doc/distutils/apiref.rst:193 msgid "" @@ -442,20 +509,28 @@ msgid "" "is recognized by the :command:`build_ext` command as source for a Python " "extension." msgstr "" +"lista de nombres de archivos de origen, en relación con la raíz de " +"distribución (donde reside el script de configuración), en forma Unix " +"(separados por barras) para su portabilidad. Los archivos fuente pueden ser " +"C, C ++, SWIG (.i), archivos de recursos específicos de la plataforma o " +"cualquier otra cosa que el comando :command:`build_ext` reconozca como " +"fuente para una extensión de Python." #: ../Doc/distutils/apiref.rst:207 msgid "*include_dirs*" -msgstr "" +msgstr "*include_dirs*" #: ../Doc/distutils/apiref.rst:207 msgid "" "list of directories to search for C/C++ header files (in Unix form for " "portability)" msgstr "" +"lista de los directorios para buscar archivos de encabezados de C/C++ (en " +"forma de Unix para portabilidad)" #: ../Doc/distutils/apiref.rst:211 msgid "*define_macros*" -msgstr "" +msgstr "*define_macros*" #: ../Doc/distutils/apiref.rst:211 msgid "" @@ -464,48 +539,57 @@ msgid "" "define it without a particular value (equivalent of ``#define FOO`` in " "source or :option:`!-DFOO` on Unix C compiler command line)" msgstr "" +"lista de macros para definir; cada macro se define usando una tupla de 2 " +"``(*name*, *value*)``, donde *value* es el string para definirla o ``None`` " +"para definirla sin un valor particular (equivalente a ``#define FOO`` en la " +"fuente o :option:`!-DFOO` en la línea de comandos de un compilador de Unix C)" #: ../Doc/distutils/apiref.rst:211 msgid "a list of tuples" -msgstr "" +msgstr "una lista de tuplas" #: ../Doc/distutils/apiref.rst:223 msgid "*undef_macros*" -msgstr "" +msgstr "*undef_macros*" #: ../Doc/distutils/apiref.rst:223 msgid "list of macros to undefine explicitly" -msgstr "" +msgstr "lista de macros para indefinir explícitamente" #: ../Doc/distutils/apiref.rst:226 msgid "*library_dirs*" -msgstr "" +msgstr "*library_dirs*" #: ../Doc/distutils/apiref.rst:226 msgid "list of directories to search for C/C++ libraries at link time" msgstr "" +"lista de directorios para buscar bibliotecas C/C++ en el momento del enlace" #: ../Doc/distutils/apiref.rst:230 msgid "*libraries*" -msgstr "" +msgstr "*libraries*" #: ../Doc/distutils/apiref.rst:230 msgid "list of library names (not filenames or paths) to link against" msgstr "" +"lista de nombres de bibliotecas para vincular (no nombres de archivos o " +"rutas)" #: ../Doc/distutils/apiref.rst:234 msgid "*runtime_library_dirs*" -msgstr "" +msgstr "*runtime_library_dirs*" #: ../Doc/distutils/apiref.rst:234 msgid "" "list of directories to search for C/C++ libraries at run time (for shared " "extensions, this is when the extension is loaded)" msgstr "" +"lista de directorios para buscar bibliotecas C/C++ en tiempo de ejecución " +"(para extensiones compartidas, esto es cuando se carga una extensión)" #: ../Doc/distutils/apiref.rst:240 msgid "*extra_objects*" -msgstr "" +msgstr "*extra_objects*" #: ../Doc/distutils/apiref.rst:240 msgid "" @@ -513,10 +597,13 @@ msgid "" "static library that must be explicitly specified, binary resource files, " "etc.)" msgstr "" +"lista de archivos adicionales para vincular (por ejemplo, archivos de objeto " +"no implícitos en `*sources*`, una biblioteca estática que debe especificarse " +"explicitamente, archivos de recursos binarios, etc.)" #: ../Doc/distutils/apiref.rst:247 msgid "*extra_compile_args*" -msgstr "" +msgstr "*extra_compile_args*" #: ../Doc/distutils/apiref.rst:247 msgid "" @@ -525,10 +612,15 @@ msgid "" "line makes sense, this is typically a list of command-line arguments, but " "for other platforms it could be anything." msgstr "" +"cualquier adicional específico de la plataforma y del compilador para usar " +"cuando compila los archivos fuente en `*sources*`. Para plataformas y " +"compiladores donde una línea de comando tiene sentido, esta es típicamente " +"una lista de argumentos de línea de comando pero para otras plataformas " +"podría ser cualquier cosa." #: ../Doc/distutils/apiref.rst:258 msgid "*extra_link_args*" -msgstr "" +msgstr "*extra_link_args*" #: ../Doc/distutils/apiref.rst:258 msgid "" @@ -536,10 +628,14 @@ msgid "" "object files together to create the extension (or to create a new static " "Python interpreter). Similar interpretation as for 'extra_compile_args'." msgstr "" +"cualquier adicional específico de la plataforma y del compilador para usar " +"al vincular archivos del tipo objeto para crear la extensión (o para crear " +"un nuevo intérprete de Python estático). Interpretación similar a la de " +"`*extra_compile_args*`." #: ../Doc/distutils/apiref.rst:267 msgid "*export_symbols*" -msgstr "" +msgstr "*export_symbols*" #: ../Doc/distutils/apiref.rst:267 msgid "" @@ -547,56 +643,71 @@ msgid "" "platforms, and not generally necessary for Python extensions, which " "typically export exactly one symbol: ``init`` + extension_name." msgstr "" +"lista de símbolos que se exportarán desde una extensión compartida. No se " +"usa en todas las plataformas y, en general, no es necesario para las " +"extensiones de Python, que normalmente exportan exactamente un símbolo: " +"``init`` + *extension_name*." #: ../Doc/distutils/apiref.rst:275 msgid "*depends*" -msgstr "" +msgstr "*depends*" #: ../Doc/distutils/apiref.rst:275 msgid "list of files that the extension depends on" -msgstr "" +msgstr "lista de archivos de los que depende la extensión" #: ../Doc/distutils/apiref.rst:278 msgid "*language*" -msgstr "" +msgstr "*language*" #: ../Doc/distutils/apiref.rst:278 msgid "" "extension language (i.e. ``'c'``, ``'c++'``, ``'objc'``). Will be detected " "from the source extensions if not provided." msgstr "" +"lenguaje de extensión (es decir, ``'c'``, ``'c++'``, ``'objc'``). Se " +"detectará en las extensiones de origen si no se proporcionan." #: ../Doc/distutils/apiref.rst:284 msgid "*optional*" -msgstr "" +msgstr "*optional*" #: ../Doc/distutils/apiref.rst:284 msgid "" "specifies that a build failure in the extension should not abort the build " "process, but simply skip the extension." msgstr "" +"especifica que una falla de compilación en la extensión no debe abortar el " +"proceso de compilación, sino simplemente omitir la extensión." #: ../Doc/distutils/apiref.rst:284 msgid "a boolean" -msgstr "" +msgstr "un booleano" #: ../Doc/distutils/apiref.rst:292 msgid "" "On Unix, C extensions are no longer linked to libpython except on Android " "and Cygwin." msgstr "" +"En Unix, las extensiones C ya no están vinculadas a libpython excepto en " +"Android y Cygwin." #: ../Doc/distutils/apiref.rst:298 msgid "" "A :class:`Distribution` describes how to build, install and package up a " "Python software package." msgstr "" +"Una clase :class:`Distribution` describe cómo construir, instalar y " +"empaquetar un paquete de software Python." #: ../Doc/distutils/apiref.rst:301 msgid "" "See the :func:`setup` function for a list of keyword arguments accepted by " "the Distribution constructor. :func:`setup` creates a Distribution instance." msgstr "" +"Consulta la función :func:`setup` para obtener una lista de argumentos de " +"palabras clave aceptados por el constructor de distribución. La función :" +"func:`setup` crea una instancia de distribución." #: ../Doc/distutils/apiref.rst:304 msgid "" @@ -604,16 +715,21 @@ msgid "" "``keywords`` and ``platforms`` fields are not specified as a list or a " "string." msgstr "" +"La clase :class:`~distutils.core.Distribution` ahora advierte si los campos " +"``*classifiers*``, ``*keywords*`` y ``*platforms*`` no se especifican como " +"una lista o un string." #: ../Doc/distutils/apiref.rst:311 msgid "" "A :class:`Command` class (or rather, an instance of one of its subclasses) " "implement a single distutils command." msgstr "" +"Una clase :class:`Command` (o más bien, una instancia de una de sus " +"subclases) implementa un solo comando distutils." #: ../Doc/distutils/apiref.rst:316 msgid ":mod:`distutils.ccompiler` --- CCompiler base class" -msgstr "" +msgstr ":mod:`distutils.ccompiler` --- Clase base CCompiler" #: ../Doc/distutils/apiref.rst:322 msgid "" @@ -623,10 +739,16 @@ msgid "" "options for the compiler --- macro definitions, include directories, link " "path, libraries and the like." msgstr "" +"Este módulo proporciona la clase base abstracta para las clases :class:" +"`CCompiler`. Una instancia de la clase :class:`CCompiler` se puede usar para " +"todos los pasos de compilación y enlace necesarios para construir un solo " +"proyecto. Se proporcionan métodos para establecer opciones para el " +"compilador --- definiciones de macros, que incluyen directorios, ruta de " +"enlace, bibliotecas y similares." #: ../Doc/distutils/apiref.rst:328 msgid "This module provides the following functions." -msgstr "" +msgstr "Este módulo proporciona las siguientes funciones." #: ../Doc/distutils/apiref.rst:333 msgid "" @@ -636,6 +758,12 @@ msgid "" "command-line options suitable for use with some compiler (depending on the " "two format strings passed in)." msgstr "" +"Genera opciones de vinculador para buscar directorios de bibliotecas y " +"vincular con bibliotecas específicas. *libraries* y * library_dirs* son, " +"respectivamente, listas de nombres de bibliotecas (no nombres de archivos!) " +"y directorios de búsqueda. Retorna una lista de opciones de línea de " +"comandos adecuadas para su uso con algún compilador (dependiendo de los dos " +"strings de formato suministrados)." #: ../Doc/distutils/apiref.rst:342 msgid "" @@ -648,10 +776,21 @@ msgid "" "file search path (:option:`!-I`). Returns a list of command-line options " "suitable for either Unix compilers or Visual C++." msgstr "" +"Genera opciones de preprocesador de C (:option:`!-D`, :option:`!-U`, :option:" +"`!-I`) tal como lo utilizan al menos dos tipos de compiladores: el " +"compilador típico de Unix y el Visual C++. *macros* es lo habitual, una " +"lista de 1 o 2 tuplas, donde ``(*name*,)`` significa indefinir (:option:`!-" +"U`) macro *name*, y ``(*name*, *value*)`` significa definir (:option:`!-D`) " +"macro de *name* a *value*. *include_dirs* es solo una lista de nombres de " +"directorio que se agregarán a la ruta de búsqueda del archivo de encabezado " +"(:option:`!-I`). Retorna una lista de opciones de línea de comandos " +"adecuadas para compiladores de Unix o Visual C++." #: ../Doc/distutils/apiref.rst:354 msgid "Determine the default compiler to use for the given platform." msgstr "" +"Determina el compilador predeterminado que se utilizará para la plataforma " +"dada." #: ../Doc/distutils/apiref.rst:356 msgid "" @@ -659,12 +798,17 @@ msgid "" "returned by ``os.name``) and *platform* the common value returned by ``sys." "platform`` for the platform in question." msgstr "" +"*osname* debe ser uno de los nombres estándar de Python OS (es decir, los " +"retornados por ``os.name``) y *platform* el valor común retornado por ``sys." +"platform`` para la plataforma en cuestión." #: ../Doc/distutils/apiref.rst:360 msgid "" "The default values are ``os.name`` and ``sys.platform`` in case the " "parameters are not given." msgstr "" +"Los valores predeterminados son ``os.name`` y ``sys.platform`` en caso de " +"que no se proporcionen los parámetros." #: ../Doc/distutils/apiref.rst:366 msgid "" @@ -678,12 +822,25 @@ msgid "" "Windows, and a Microsoft compiler object under Unix---if you supply a value " "for *compiler*, *plat* is ignored." msgstr "" +"Función de fábrica para generar una instancia de alguna subclase *CCompiler* " +"para la combinación de plataforma/compilador proporcionada. *plat* por " +"defecto es ``os.name`` (por ejemplo, ``'posix'``, ``'nt'``), y *compiler* " +"por defecto es el compilador por defecto para esa plataforma. Actualmente " +"solo se admiten ``'posix'`` y ``'nt'``, y los compiladores predeterminados " +"son la \"interfaz Unix tradicional\" (clase :class:`UnixCCompiler`) y Visual " +"C++ (clase :class:`MSVCCompiler`). Tenga en cuenta que es perfectamente " +"posible solicitar un objeto de compilador de Unix en Windows y un objeto de " +"compilador de Microsoft en Unix --- si proporciona un valor para *compiler*, " +"*plat* es ignorado." #: ../Doc/distutils/apiref.rst:382 msgid "" "Print list of available compilers (used by the :option:`!--help-compiler` " "options to :command:`build`, :command:`build_ext`, :command:`build_clib`)." msgstr "" +"Imprime la lista de compiladores disponibles (usado por las opciones :option:" +"`! - help-compiler` para :command:`build`, :command: `build_ext`, :command:" +"`build_clib`)." #: ../Doc/distutils/apiref.rst:388 msgid "" @@ -691,6 +848,9 @@ msgid "" "be implemented by real compiler classes. The class also has some utility " "methods used by several compiler classes." msgstr "" +"La clase base abstracta :class:`CCompiler` define la interfaz que deben " +"implementar las clases de compiladores reales. La clase también tiene " +"algunos métodos de utilidad utilizados por varias clases de compiladores." #: ../Doc/distutils/apiref.rst:392 msgid "" @@ -702,6 +862,14 @@ msgid "" "individual files are treated, most of those attributes may be varied on a " "per-compilation or per-link basis." msgstr "" +"La idea básica detrás de una clase de abstracción de compilador es que cada " +"instancia se puede usar para todos los pasos de compilación/enlace en la " +"construcción de un solo proyecto. Por lo tanto, los atributos comunes a " +"todos esos pasos de compilación y enlace --- incluyen directorios, macros " +"para definir, bibliotecas para enlazar, etc. --- son atributos de la " +"instancia del compilador. Para permitir la variabilidad en la forma en que " +"se tratan los archivos individuales, la mayoría de esos atributos se pueden " +"variar por compilación o por enlace." #: ../Doc/distutils/apiref.rst:400 msgid "" @@ -713,12 +881,22 @@ msgid "" "subclasses directly - use the :func:`distutils.CCompiler.new_compiler` " "factory function instead." msgstr "" +"El constructor de cada subclase crea una instancia del objeto *Compiler*. " +"Los indicadores son *verbose* (muestra un resultado detallado), *dry_run* " +"(en realidad no ejecuta los pasos) y *force* (reconstruye todo, " +"independientemente de las dependencias). Todos estos indicadores están " +"predeterminados en ``0`` (desactivado). Ten en cuenta que probablemente no " +"desees crear una instancia de :class:`CCompiler` o una de sus subclases " +"directamente; usa la función de fábrica :func:`distutils.CCompiler." +"new_compiler` en su lugar." #: ../Doc/distutils/apiref.rst:407 msgid "" "The following methods allow you to manually alter compiler options for the " "instance of the Compiler class." msgstr "" +"Los siguientes métodos te permiten modificar manualmente las opciones del " +"compilador para la instancia de la clase *Compiler*." #: ../Doc/distutils/apiref.rst:413 msgid "" @@ -726,6 +904,9 @@ msgid "" "The compiler is instructed to search directories in the order in which they " "are supplied by successive calls to :meth:`add_include_dir`." msgstr "" +"Agrega *dir* a la lista de directorios en los que se buscarán archivos de " +"encabezado. Se le indica al compilador que busque directorios en el orden en " +"que son proporcionados por llamadas sucesivas a :meth:`add_include_dir`." #: ../Doc/distutils/apiref.rst:420 msgid "" @@ -735,6 +916,11 @@ msgid "" "`set_include_dirs`. This does not affect any list of standard include " "directories that the compiler may search by default." msgstr "" +"Establece la lista de directorios que se buscarán en *dirs* (una lista de " +"strings). Anula cualquier llamada anterior a :meth:`add_include_dir`; " +"llamadas posteriores a :meth:`add_include_dir` agrega a la lista pasada a :" +"meth:`set_include_dirs`. Esto no afecta a ninguna lista de directorios de " +"inclusión estándar que el compilador pueda buscar de forma predeterminada." #: ../Doc/distutils/apiref.rst:429 msgid "" @@ -744,6 +930,11 @@ msgid "" "actual filename will be inferred by the linker, the compiler, or the " "compiler class (depending on the platform)." msgstr "" +"Agrega *libname* a la lista de bibliotecas que se incluirán en todos los " +"enlaces manejados por este compilador de objeto. Ten en cuenta que *libname* " +"debería no ser el nombre de un archivo que contenga una biblioteca, sino el " +"nombre de la biblioteca en sí: el enlazador, el compilador o la clase del " +"compilador deducirán el nombre del archivo actual (según el plataforma)." #: ../Doc/distutils/apiref.rst:435 msgid "" @@ -752,6 +943,10 @@ msgid "" "perfectly valid to duplicate library names; the linker will be instructed to " "link against libraries as many times as they are mentioned." msgstr "" +"Se le indicará al enlazador que se vincule con las bibliotecas en el orden " +"en que se proporcionaron :meth:`add_library` y/o :meth:`set_libraries`. Es " +"perfectamente válido duplicar nombres de bibliotecas; se le indicará al " +"enlazador que se vincule con las bibliotecas tantas veces como se mencionen." #: ../Doc/distutils/apiref.rst:443 msgid "" @@ -759,6 +954,10 @@ msgid "" "compiler object to *libnames* (a list of strings). This does not affect any " "standard system libraries that the linker may include by default." msgstr "" +"Establece la lista de bibliotecas que se incluirán en todos los enlaces " +"manejados ​​por este compilador de objeto en *libnames* (una lista de " +"strings). Esto no afecta a las bibliotecas del sistema estándar que el " +"vinculador pueda incluir de forma predeterminada." #: ../Doc/distutils/apiref.rst:450 msgid "" @@ -767,6 +966,10 @@ msgid "" "be instructed to search for libraries in the order they are supplied to :" "meth:`add_library_dir` and/or :meth:`set_library_dirs`." msgstr "" +"Agrega *dir* a la lista de directorios en los que se buscarán las " +"bibliotecas especificadas para :meth:`add_library` y :meth:`set_libraries`. " +"Se le indicará al enlazador que busque bibliotecas en el orden en que se " +"suministran a :meth:`add_library_dir` y/o :meth:`set_library_dirs`." #: ../Doc/distutils/apiref.rst:458 msgid "" @@ -774,12 +977,17 @@ msgid "" "This does not affect any standard library search path that the linker may " "search by default." msgstr "" +"Establece la lista de directorios de búsqueda de bibliotecas en *dirs* (una " +"lista de strings). Esto no afecta a ninguna ruta de búsqueda de biblioteca " +"estándar que el enlazador pueda buscar de forma predeterminada." #: ../Doc/distutils/apiref.rst:465 msgid "" "Add *dir* to the list of directories that will be searched for shared " "libraries at runtime." msgstr "" +"Agrega *dir* a la lista de directorios en los que se buscarán bibliotecas " +"compartidas en tiempo de ejecución." #: ../Doc/distutils/apiref.rst:471 msgid "" @@ -787,6 +995,10 @@ msgid "" "*dirs* (a list of strings). This does not affect any standard search path " "that the runtime linker may search by default." msgstr "" +"Establece la lista de directorios para buscar bibliotecas compartidas en " +"tiempo de ejecución en *dirs* (una lista de strings). Esto no afecta a " +"ninguna ruta de búsqueda estándar que el enlazador en tiempo de ejecución " +"pueda buscar de forma predeterminada." #: ../Doc/distutils/apiref.rst:478 msgid "" @@ -795,6 +1007,10 @@ msgid "" "supplied, then the macro will be defined without an explicit value and the " "exact outcome depends on the compiler used." msgstr "" +"Define una macro de preprocesador para todas las compilaciones impulsadas " +"por este objeto compilador. El parámetro opcional *value* debe ser un " +"string; si no se proporciona, la macro se definirá sin un valor explícito y " +"el resultado exacto depende del compilador utilizado." #: ../Doc/distutils/apiref.rst:488 msgid "" @@ -805,6 +1021,13 @@ msgid "" "per-compilation basis (ie. in the call to :meth:`compile`), then that takes " "precedence." msgstr "" +"Anula la definición de una macro de preprocesador para todas las " +"compilaciones impulsadas por este compilador de objeto. Si la misma macro " +"está definida por :meth:`define_macro` y la indefinida por :meth:" +"`undefine_macro`, la última llamada tiene prioridad (incluidas varias " +"redefiniciones o indefiniciones). Si la macro está redefinida/indefinida por " +"compilación (es decir, en la llamada a :meth:`compile`), entonces eso tiene " +"prioridad." #: ../Doc/distutils/apiref.rst:498 msgid "" @@ -812,6 +1035,10 @@ msgid "" "named library files or the output of \"resource compilers\") to be included " "in every link driven by this compiler object." msgstr "" +"Agrega *object* a la lista de archivos de objeto (o análogos, como archivos " +"de biblioteca nombrados explícitamente o la salida de \"*resource compilers*" +"\" o compiladores de recursos) para que se incluyan en cada enlace impulsado " +"por este objeto de compilador." #: ../Doc/distutils/apiref.rst:505 msgid "" @@ -819,12 +1046,19 @@ msgid "" "*objects*. This does not affect any standard object files that the linker " "may include by default (such as system libraries)." msgstr "" +"Establece la lista de archivos de objetos (o análogos) que se incluirán en " +"cada enlace a *objects*. Esto no afecta a ningún archivo de objeto estándar " +"que el enlazador pueda incluir de forma predeterminada (como las bibliotecas " +"del sistema)." #: ../Doc/distutils/apiref.rst:509 msgid "" "The following methods implement methods for autodetection of compiler " "options, providing some functionality similar to GNU :program:`autoconf`." msgstr "" +"Los siguientes métodos implementan métodos para la detección automática de " +"opciones del compilador, proporcionando alguna funcionalidad similar a GNU :" +"program: `autoconf`." #: ../Doc/distutils/apiref.rst:515 msgid "" @@ -832,6 +1066,9 @@ msgid "" "attributes :attr:`language_map` (a dictionary), and :attr:`language_order` " "(a list) to do the job." msgstr "" +"Detecta el idioma de un archivo determinado o una lista de archivos. Utiliza " +"los atributos de instancia :attr:`language_map` (un diccionario) y :attr:" +"`language_order` (una lista) para hacer el trabajo." #: ../Doc/distutils/apiref.rst:522 msgid "" @@ -840,6 +1077,11 @@ msgid "" "debugging version (if that makes sense on the current platform). Return " "``None`` if *lib* wasn't found in any of the specified directories." msgstr "" +"Busca en la lista especificada de directorios un archivo de biblioteca " +"estático o compartido y retorna la ruta completa a ese archive *lib*. Si " +"*debug* es verdadero, busca una versión de depuración (si tiene sentido en " +"la plataforma actual). Retorna ``None`` si *lib* no se encontró en ninguno " +"de los directorios especificados." #: ../Doc/distutils/apiref.rst:530 msgid "" @@ -848,24 +1090,34 @@ msgid "" "environment by providing additional include files and paths and libraries " "and paths." msgstr "" +"Retorna un valor booleano que indica si *funcname* es compatible con la " +"plataforma actual. Los argumentos opcionales se pueden utilizar para " +"aumentar el entorno de compilación proporcionando archivos y rutas de " +"inclusión adicionales y bibliotecas y rutas." #: ../Doc/distutils/apiref.rst:538 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for libraries." msgstr "" +"Retorna la opción del compilador para agregar *dir* a la lista de " +"directorios buscados por bibliotecas." #: ../Doc/distutils/apiref.rst:544 msgid "" "Return the compiler option to add *lib* to the list of libraries linked into " "the shared library or executable." msgstr "" +"Retorna la opción del compilador para agregar *lib* a la lista de " +"bibliotecas vinculadas a la biblioteca compartida o ejecutable." #: ../Doc/distutils/apiref.rst:550 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for runtime libraries." msgstr "" +"Retorna la opción del compilador para agregar *dir* a la lista de " +"directorios buscados por bibliotecas en tiempo de ejecución." #: ../Doc/distutils/apiref.rst:556 msgid "" @@ -874,42 +1126,47 @@ msgid "" "specified here depends on the compiler class (via the 'executables' class " "attribute), but most will have:" msgstr "" +"Define los ejecutables (y las opciones para ellos) que se ejecutarán para " +"realizar las distintas etapas de compilación. El conjunto exacto de " +"ejecutables que se pueden especificar aquí depende de la clase del " +"compilador (a través del atributo de clase '*executables*'), pero la mayoría " +"tendrá:" #: ../Doc/distutils/apiref.rst:562 msgid "attribute" -msgstr "" +msgstr "atributo" #: ../Doc/distutils/apiref.rst:564 msgid "*compiler*" -msgstr "" +msgstr "*compiler*" #: ../Doc/distutils/apiref.rst:564 msgid "the C/C++ compiler" -msgstr "" +msgstr "el compilador C/C++" #: ../Doc/distutils/apiref.rst:566 msgid "*linker_so*" -msgstr "" +msgstr "*linker_so*" #: ../Doc/distutils/apiref.rst:566 msgid "linker used to create shared objects and libraries" -msgstr "" +msgstr "enlazador utilizado para crear bibliotecas y objetos compartidos" #: ../Doc/distutils/apiref.rst:569 msgid "*linker_exe*" -msgstr "" +msgstr "*linker_exe*" #: ../Doc/distutils/apiref.rst:569 msgid "linker used to create binary executables" -msgstr "" +msgstr "enlazador utilizado para crear ejecutables binarios" #: ../Doc/distutils/apiref.rst:571 msgid "*archiver*" -msgstr "" +msgstr "*archiver*" #: ../Doc/distutils/apiref.rst:571 msgid "static library creator" -msgstr "" +msgstr "creador de biblioteca estática" #: ../Doc/distutils/apiref.rst:574 msgid "" @@ -919,16 +1176,24 @@ msgid "" "operate: words are delimited by spaces, but quotes and backslashes can " "override this. See :func:`distutils.util.split_quoted`.)" msgstr "" +"En plataformas con una línea de comandos (Unix, DOS/Windows), cada uno de " +"estos es un string que se dividirá en un nombre ejecutable y una lista de " +"argumentos (opcional). (La división de la cadena se realiza de manera " +"similar a como funcionan los *shells* de Unix: las palabras están " +"delimitadas por espacios, pero las comillas y las barras invertidas pueden " +"anular esto. Ver :func:`distutils.util.split_quoted`.)" #: ../Doc/distutils/apiref.rst:580 msgid "The following methods invoke stages in the build process." -msgstr "" +msgstr "Los siguientes métodos invocan etapas en el proceso de construcción." #: ../Doc/distutils/apiref.rst:585 msgid "" "Compile one or more source files. Generates object files (e.g. transforms " "a :file:`.c` file to a :file:`.o` file.)" msgstr "" +"Compila uno o más archivos fuente. Genera archivos de objeto (por ejemplo, " +"transforma un archivo :file:`.c` en un archivo :file:`.o`)." #: ../Doc/distutils/apiref.rst:588 msgid "" @@ -939,6 +1204,14 @@ msgid "" "Depending on the implementation, not all source files will necessarily be " "compiled, but all corresponding object filenames will be returned." msgstr "" +"*sources* debe ser una lista de nombres de archivo, probablemente archivos C/" +"C ++, pero en realidad cualquier cosa que pueda ser manejada por un " +"compilador particular y un compilador de clase (por ejemplo :class:" +"`MSVCCompiler` puede manejar archivos de recursos en *source*). Retorna una " +"lista de nombres de archivos de objetos, uno por nombre de archivo fuente en " +"*sources*. Dependiendo de la implementación, no se compilarán necesariamente " +"todos los archivos fuente, pero se retornarán todos los nombres de archivo " +"de objeto correspondientes." #: ../Doc/distutils/apiref.rst:595 msgid "" @@ -947,6 +1220,11 @@ msgid "" "to :file:`foo/bar.o` (for a Unix implementation); if *output_dir* is " "*build*, then it would compile to :file:`build/foo/bar.o`." msgstr "" +"Si se indica el *output_dir*, los objeto de archivos se colocarán debajo de " +"él, conservando su componente de ruta original. Es decir, :file:`foo/bar.c` " +"normalmente se compila en :file:`foo/bar.o` (para una implementación de " +"Unix); si *output_dir* es *build*, entonces se compilaría en :file:`build/" +"foo/bar.o`." #: ../Doc/distutils/apiref.rst:600 msgid "" @@ -956,18 +1234,29 @@ msgid "" "explicit value. The 1-tuple case undefines a macro. Later definitions/" "redefinitions/undefinitions take precedence." msgstr "" +"*macros*, si se proporciona, debe ser una lista de definiciones de una " +"macro. Una definición de una macro es un ``(*name*, *value*)`` 2-tupla o un " +"``(*name*,)`` 1-tupla. El primero define una macro; si el valor es ``None``, " +"la macro se define sin un valor explícito. El caso de 1 tupla no define una " +"macro. Las definiciones/redefiniciones/indefiniciones posteriores tienen " +"prioridad." #: ../Doc/distutils/apiref.rst:606 msgid "" "*include_dirs*, if given, must be a list of strings, the directories to add " "to the default include file search path for this compilation only." msgstr "" +"*include_dirs*, si se proporciona, debe ser una lista de strings, para esta " +"compilación solo se agregarán a la ruta de búsqueda de archivos los " +"directorios de inclusión predeterminada." #: ../Doc/distutils/apiref.rst:609 msgid "" "*debug* is a boolean; if true, the compiler will be instructed to output " "debug symbols in (or alongside) the object file(s)." msgstr "" +"*debug* es un booleano; si es verdadero, se le indicará al compilador que " +"genere símbolos de depuración en (o junto a) los archivos de objetos." #: ../Doc/distutils/apiref.rst:612 msgid "" @@ -979,6 +1268,14 @@ msgid "" "an escape hatch for those occasions when the abstract compiler framework " "doesn't cut the mustard." msgstr "" +"*extra_preargs* y *extra_postargs* dependen de la implementación. En " +"plataformas que tienen la noción de línea de comandos (por ejemplo, Unix, " +"DOS/Windows), lo más probable es que sean listas de strings: argumentos de " +"línea de comandos adicionales para anteponer/agregar a la línea de comandos " +"del compilador. En otras plataformas, consulta la documentación de la clase " +"de implementación. En cualquier caso, están pensados ​​como una vía de escape " +"para aquellas ocasiones en las que la marco del compilador abstracto no es " +"suficiente." #: ../Doc/distutils/apiref.rst:619 msgid "" @@ -987,10 +1284,15 @@ msgid "" "be recompiled. This supports dependency tracking, but only at a coarse " "granularity." msgstr "" +"*depends*, si se proporciona, es una lista de nombres de archivos de los que " +"dependen todos los destinos. Si un archivo de origen es más antiguo que " +"cualquier archivo en *depends*, se volverá a compilar el archivo de origen. " +"Esto admite el seguimiento de dependencias, pero solo con una granularidad " +"aproximada." #: ../Doc/distutils/apiref.rst:624 msgid "Raises :exc:`CompileError` on failure." -msgstr "" +msgstr "Lanza :exc:`CompileError` en caso de falla." #: ../Doc/distutils/apiref.rst:629 msgid "" @@ -1000,6 +1302,12 @@ msgid "" "`set_link_objects`, the libraries supplied to :meth:`add_library` and/or :" "meth:`set_libraries`, and the libraries supplied as *libraries* (if any)." msgstr "" +"Enlaza un montón de cosas para crear un archivo de biblioteca estático. El " +"\"montón de cosas\" o \"*bunch of stuff*\" consiste en la lista de archivos " +"de objeto suministrados como *objects*, los archivos de objeto adicionales " +"suministrados a :meth:`add_link_object` y/o :meth:`set_link_objects`, las " +"bibliotecas suministradas a :meth:`add_library` y/o :meth:`set_libraries`, y " +"las bibliotecas proporcionadas como *libraries* (si las hay)." #: ../Doc/distutils/apiref.rst:635 msgid "" @@ -1007,6 +1315,9 @@ msgid "" "be inferred from the library name. *output_dir* is the directory where the " "library file will be put." msgstr "" +"*output_libname* debe ser un nombre de biblioteca, no un nombre de archivo; " +"el nombre del archivo se deducirá del nombre de la biblioteca. *output_dir* " +"es el directorio donde se colocará el archivo de la biblioteca." #: ../Doc/distutils/apiref.rst:641 msgid "" @@ -1014,22 +1325,31 @@ msgid "" "library (note that on most platforms, it is the compile step where this " "matters: the *debug* flag is included here just for consistency)." msgstr "" +"*debug* es un booleano; si es verdadero, la depuración se incluirá en la " +"biblioteca (ten en cuenta que en la mayoría de las plataformas, es el paso " +"de compilación donde esto es importante: el indicador *debug* se incluye " +"aquí solo por coherencia)." #: ../Doc/distutils/apiref.rst:645 ../Doc/distutils/apiref.rst:687 msgid "" "*target_lang* is the target language for which the given objects are being " "compiled. This allows specific linkage time treatment of certain languages." msgstr "" +"*target_lang* es el idioma de destino para el que se compilan los objetos " +"dados. Esto permite un tratamiento específico del tiempo de vinculación de " +"ciertos idiomas." #: ../Doc/distutils/apiref.rst:648 msgid "Raises :exc:`LibError` on failure." -msgstr "" +msgstr "Lanza :exc:`LibError` en caso de falla." #: ../Doc/distutils/apiref.rst:653 msgid "" "Link a bunch of stuff together to create an executable or shared library " "file." msgstr "" +"Enlaza un montón de cosas (o *bunch of stuff*) juntos para crear un archivo " +"de biblioteca ejecutable o compartido." #: ../Doc/distutils/apiref.rst:655 msgid "" @@ -1038,6 +1358,11 @@ msgid "" "supplied, *output_filename* is relative to it (i.e. *output_filename* can " "provide directory components if needed)." msgstr "" +"El \"montón de cosas\" o (*bunch of stuff*) consiste en la lista de archivos " +"de objeto suministrados como *objects *. *output_filename* debe ser un " +"nombre del archivo. Si se proporciona *output_dir*, *output_filename* es " +"relativo a él (es decir, *output_filename* puede proporcionar componentes de " +"directorio si es necesario)." #: ../Doc/distutils/apiref.rst:660 msgid "" @@ -1048,6 +1373,13 @@ msgid "" "means the linker will look in that specific directory rather than searching " "all the normal locations." msgstr "" +"*libraries* es una lista de bibliotecas para enlazar. Estos son nombres de " +"bibliotecas, no nombres de archivos, ya que se traducen a nombres de " +"archivos de una manera específica de la plataforma (por ejemplo, *foo* se " +"convierte en :file:`libfoo.a` en Unix y :file:`foo.lib` en DOS/Windows). Sin " +"embargo, pueden incluir un componente de directorio, lo que significa que el " +"enlazador buscará en ese directorio específico en lugar de buscar en todas " +"las ubicaciones normales." #: ../Doc/distutils/apiref.rst:667 msgid "" @@ -1059,12 +1391,22 @@ msgid "" "the shared library and used to search for other shared libraries that \\*it" "\\* depends on at run-time. (This may only be relevant on Unix.)" msgstr "" +"*library_dirs*, si se proporciona, debe ser una lista de directorios para " +"buscar bibliotecas que se especificaron como nombres de bibliotecas " +"descubiertos (es decir, sin componentes de directorio). Estos están en la " +"parte superior del sistema predeterminado y los suministrados a :meth:" +"`add_library_dir` y/o :meth:`set_library_dirs`. *runtime_library_dirs* es " +"una lista de directorios que se incrustarán en la biblioteca compartida y se " +"usarán para buscar otras bibliotecas compartidas de las que depende en " +"tiempo de ejecución. (Esto solo puede ser relevante en Unix)." #: ../Doc/distutils/apiref.rst:675 msgid "" "*export_symbols* is a list of symbols that the shared library will export. " "(This appears to be relevant only on Windows.)" msgstr "" +"*export_symbols* es una lista de símbolos que exportará la biblioteca " +"compartida. (Esto parece ser relevante solo en Windows)." #: ../Doc/distutils/apiref.rst:678 msgid "" @@ -1073,6 +1415,10 @@ msgid "" "to :meth:`create_static_lib`, which includes a *debug* flag mostly for " "form's sake)." msgstr "" +"*debug* es para métodos como :meth:`compile` y :meth:`create_static_lib`, " +"con la ligera distinción de que en realidad es relevante en la mayoría de " +"las plataformas (a diferencia de :meth:`create_static_lib`, que incluye un " +"indicador *debug* principalmente por el bien de la forma)." #: ../Doc/distutils/apiref.rst:683 msgid "" @@ -1080,10 +1426,13 @@ msgid "" "course that they supply command-line arguments for the particular linker " "being used)." msgstr "" +"*extra_preargs* y *extra_postargs* son para métodos como :meth:`compile` " +"(excepto, por supuesto, que proporcionan argumentos de línea de comandos " +"para el enlazador particular que se está utilizando)." #: ../Doc/distutils/apiref.rst:690 msgid "Raises :exc:`LinkError` on failure." -msgstr "" +msgstr "Lanza :exc:`LinkError` en caso de falla." #: ../Doc/distutils/apiref.rst:695 msgid "" @@ -1091,6 +1440,9 @@ msgid "" "while *objects* are a list of object filenames to link in. Other arguments " "are as for the :meth:`link` method." msgstr "" +"Enlaza un ejecutable. *output_progname* es el nombre del archivo ejecutable, " +"mientras que *objects* son una lista de nombres de archivos de objetos para " +"vincular. Otros argumentos son para métodos como :meth:`link`." #: ../Doc/distutils/apiref.rst:702 msgid "" @@ -1098,6 +1450,10 @@ msgid "" "while *objects* is a list of object filenames to link in. Other arguments " "are as for the :meth:`link` method." msgstr "" +"Enlaza una biblioteca compartida. *output_libname* es el nombre de la " +"biblioteca de salida, mientras que *objects* es una lista de nombres de " +"archivos de objetos para vincular. Otros argumentos son para métodos como :" +"meth:`link`." #: ../Doc/distutils/apiref.rst:709 msgid "" @@ -1105,6 +1461,10 @@ msgid "" "that will be created, while *objects* is a list of object filenames to link " "in. Other arguments are as for the :meth:`link` method." msgstr "" +"Enlaza un objeto compartido. *output_filename* es el nombre del objeto " +"compartido que se creará, mientras que *objects* es una lista de nombres de " +"archivos de objetos para vincular. Otros argumentos son para métodos como :" +"meth:`link`." #: ../Doc/distutils/apiref.rst:716 msgid "" @@ -1115,16 +1475,25 @@ msgid "" "`undefine_macro`. *include_dirs* is a list of directory names that will be " "added to the default list, in the same way as :meth:`add_include_dir`." msgstr "" +"Preprocesa un solo archivo fuente C/C ++, nombrado en *source*. La salida se " +"escribirá en el archivo llamado *output_file*, o *stdout* si *output_file* " +"no se proporciona. *macros* es una lista de definiciones de macros para " +"métodos como :meth:`compile`, que aumentará el conjunto de macros con :meth:" +"`define_macro` y :meth:`undefine_macro`. *include_dirs* es una lista de " +"nombres de directorio que se agregarán a la lista predeterminada, de la " +"misma manera que :meth:`add_include_dir`." #: ../Doc/distutils/apiref.rst:723 msgid "Raises :exc:`PreprocessError` on failure." -msgstr "" +msgstr "Lanza :exc:`PreprocessError` en caso de falla." #: ../Doc/distutils/apiref.rst:725 msgid "" "The following utility methods are defined by the :class:`CCompiler` class, " "for use by the various concrete subclasses." msgstr "" +"Los siguientes métodos de utilidad están definidos por la clase :class:" +"`CCompiler`, para uso de las distintas subclases concretas." #: ../Doc/distutils/apiref.rst:731 msgid "" @@ -1132,6 +1501,9 @@ msgid "" "for non-Windows platforms this is the same as the basename, while Windows " "will get a :file:`.exe` added." msgstr "" +"Retorna el nombre de archivo del ejecutable para el *basename* dado. Por lo " +"general, para las plataformas que no son de Windows, este es el mismo que el " +"nombre base, mientras que Windows obtendrá un archivo :file:`.exe` agregado." #: ../Doc/distutils/apiref.rst:738 msgid "" @@ -1140,17 +1512,25 @@ msgid "" "form :file:`liblibname.a`, while a *lib_type* of ``'dynamic'`` will be of " "the form :file:`liblibname.so`." msgstr "" +"Retorna el nombre de archivo para el nombre de biblioteca dado en la " +"plataforma actual. En Unix, una biblioteca con *lib_type* de ``'static'`` " +"normalmente tendrá la forma :file:`liblibname.a`, mientras que *lib_type* de " +"``'dynamic'`` tendrá la forma :file:`liblibname.so`." #: ../Doc/distutils/apiref.rst:746 msgid "" "Returns the name of the object files for the given source files. " "*source_filenames* should be a list of filenames." msgstr "" +"Retorna el nombre de los archivos de objeto para los archivos de origen " +"dados. *source_filenames* debe ser una lista de nombres de archivo." #: ../Doc/distutils/apiref.rst:752 msgid "" "Returns the name of a shared object file for the given file name *basename*." msgstr "" +"Retorna el nombre de un archivo de objeto compartido para el nombre de " +"archivo *basename*." #: ../Doc/distutils/apiref.rst:757 msgid "" @@ -1158,86 +1538,107 @@ msgid "" "function *func* with the given arguments *args*, after logging and taking " "into account the *dry_run* flag." msgstr "" +"Invoca el método :func:`distutils.util.execute`. Este método invoca una " +"función de Python *func* con los argumentos *args* dados, después de iniciar " +"sesión y teniendo en cuenta el indicador *dry_run*." #: ../Doc/distutils/apiref.rst:764 msgid "" "Invokes :func:`distutils.util.spawn`. This invokes an external process to " "run the given command." msgstr "" +"Invoca :func:`distutils.util.spawn`. Esto invoca un proceso externo para " +"ejecutar el comando dado." #: ../Doc/distutils/apiref.rst:770 msgid "" "Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any " "missing ancestor directories." msgstr "" +"Invoca :func:`distutils.dir_util.mkpath`. Esto crea un directorio y los " +"directorios ancestros que faltan." #: ../Doc/distutils/apiref.rst:776 msgid "Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*." msgstr "" +"Invoca :meth:`distutils.file_util.move_file`. Cambia el nombre de *src* a " +"*dst*." #: ../Doc/distutils/apiref.rst:781 msgid "Write a message using :func:`distutils.log.debug`." -msgstr "" +msgstr "Escribe un mensaje usando :func:`distutils.log.debug`." #: ../Doc/distutils/apiref.rst:786 msgid "Write a warning message *msg* to standard error." -msgstr "" +msgstr "Escribe un mensaje de advertencia *msg* al error estándar." #: ../Doc/distutils/apiref.rst:791 msgid "" "If the *debug* flag is set on this :class:`CCompiler` instance, print *msg* " "to standard output, otherwise do nothing." msgstr "" +"Si el indicador *debug* está configurado en la instancia de la clase :class:" +"`CCompiler`, imprime *msg* en la salida estándar; de lo contrario, no hace " +"nada." #: ../Doc/distutils/apiref.rst:803 msgid ":mod:`distutils.unixccompiler` --- Unix C Compiler" -msgstr "" +msgstr ":mod:`distutils.unixccompiler` --- Unix CCompiler" #: ../Doc/distutils/apiref.rst:809 msgid "" "This module provides the :class:`UnixCCompiler` class, a subclass of :class:" "`CCompiler` that handles the typical Unix-style command-line C compiler:" msgstr "" +"Este módulo proporciona la clase :class:`UnixCCompiler`, una subclase de :" +"class:`CCompiler` que maneja el típico compilador C de línea de comandos " +"estilo Unix:" #: ../Doc/distutils/apiref.rst:812 msgid "macros defined with :option:`!-Dname[=value]`" -msgstr "" +msgstr "macros definidas con :option:`!-Dname[= value]`" #: ../Doc/distutils/apiref.rst:814 msgid "macros undefined with :option:`!-Uname`" -msgstr "" +msgstr "macros definidas con :option:`!-Uname`" #: ../Doc/distutils/apiref.rst:816 msgid "include search directories specified with :option:`!-Idir`" -msgstr "" +msgstr "incluye directorios de búsqueda especificados con :option:`!-Idir`" #: ../Doc/distutils/apiref.rst:818 msgid "libraries specified with :option:`!-llib`" -msgstr "" +msgstr "bibliotecas especificadas con :option:`!-llib`" #: ../Doc/distutils/apiref.rst:820 msgid "library search directories specified with :option:`!-Ldir`" msgstr "" +"directorios de búsqueda de bibliotecas especificados con :option:`!-Ldir`" #: ../Doc/distutils/apiref.rst:822 msgid "" "compile handled by :program:`cc` (or similar) executable with :option:`!-c` " "option: compiles :file:`.c` to :file:`.o`" msgstr "" +"compilación manejada por :program:`cc` (o similar) ejecutable con :option:`!-" +"c` opción: compilar :file:`.c` a :file:`.o`" #: ../Doc/distutils/apiref.rst:825 msgid "" "link static library handled by :program:`ar` command (possibly with :program:" "`ranlib`)" msgstr "" +"enlaza la biblioteca estática manejada por el comando :program:`ar` " +"(posiblemente con :program:`ranlib`)" #: ../Doc/distutils/apiref.rst:828 msgid "link shared library handled by :program:`cc` :option:`!-shared`" msgstr "" +"enlaza la biblioteca compartida manejada por :program:`cc` :option:`!-shared`" #: ../Doc/distutils/apiref.rst:832 msgid ":mod:`distutils.msvccompiler` --- Microsoft Compiler" -msgstr "" +msgstr ":mod:`distutils.msvccompiler` --- Compilador de Microsoft" #: ../Doc/distutils/apiref.rst:839 msgid "" @@ -1247,6 +1648,12 @@ msgid "" "to compile Python. For Python 2.3 and earlier, the compiler was Visual " "Studio 6. For Python 2.4 and 2.5, the compiler is Visual Studio .NET 2003." msgstr "" +"Este módulo proporciona :class:`MSVCCompiler`, una implementación de la " +"clase abstracta :class:`CCompiler` para Microsoft Visual Studio. Por lo " +"general, los módulos de extensión deben compilarse con el mismo compilador " +"Python que se utilizó para compilar. Para Python 2.3 y versiones anteriores, " +"el compilador fue Visual Studio 6. Para Python 2.4 y 2.5, el compilador es " +"Visual Studio .NET 2003." #: ../Doc/distutils/apiref.rst:845 msgid "" @@ -1258,20 +1665,30 @@ msgid "" "installed; *DISTUTILS_USE_SDK* indicates that the distutils user has made an " "explicit choice to override the compiler selection by :class:`MSVCCompiler`." msgstr "" +":class:`MSVCCompiler` normalmente elegirá el compilador, enlazador, etc. " +"correcto por sí solo. Para anular esta opción, las variables de entorno " +"*DISTUTILS_USE_SDK* y *MSSdk* deben estar configuradas. *MSSdk* indica que " +"el entorno actual ha sido configurado por el script ``SetEnv.Cmd`` del SDK, " +"o que las variables de entorno se habían registrado cuando se instaló el " +"SDK; *DISTUTILS_USE_SDK* indica que el usuario de *distutils* ha hecho una " +"elección explícita para anular la selección del compilador por :class:" +"`MSVCCompiler`." #: ../Doc/distutils/apiref.rst:855 msgid ":mod:`distutils.bcppcompiler` --- Borland Compiler" -msgstr "" +msgstr ":mod:`distutils.bcppcompiler` --- Compilador Borland" #: ../Doc/distutils/apiref.rst:860 msgid "" "This module provides :class:`BorlandCCompiler`, a subclass of the abstract :" "class:`CCompiler` class for the Borland C++ compiler." msgstr "" +"Este módulo proporciona :class:`BorlandCCompiler`, una subclase de la clase " +"abstracta :class:`CCompiler` para el compilador Borland C++." #: ../Doc/distutils/apiref.rst:865 msgid ":mod:`distutils.cygwincompiler` --- Cygwin Compiler" -msgstr "" +msgstr ":mod:`distutils.cygwincompiler` --- Compilador Cygwin" #: ../Doc/distutils/apiref.rst:870 msgid "" @@ -1280,16 +1697,22 @@ msgid "" "Windows. It also contains the Mingw32CCompiler class which handles the " "mingw32 port of GCC (same as cygwin in no-cygwin mode)." msgstr "" +"Este módulo proporciona la clase :class:`CygwinCCompiler`, una subclase de :" +"class:`UnixCCompiler` que maneja el puerto Cygwin del compilador GNU C a " +"Windows. También contiene la clase Mingw32CCompiler que maneja el puerto " +"mingw32 de GCC (igual que cygwin en modo no-cygwin)." #: ../Doc/distutils/apiref.rst:877 msgid ":mod:`distutils.archive_util` --- Archiving utilities" -msgstr "" +msgstr ":mod:`distutils.archive_util` --- Utilidades de archivo" #: ../Doc/distutils/apiref.rst:883 msgid "" "This module provides a few functions for creating archive files, such as " "tarballs or zipfiles." msgstr "" +"Este módulo proporciona algunas funciones para crear archivos de " +"almacenamiento, como *tarballs* o *zipfiles*." #: ../Doc/distutils/apiref.rst:889 msgid "" @@ -1303,10 +1726,20 @@ msgid "" "archive. *root_dir* and *base_dir* both default to the current directory. " "Returns the name of the archive file." msgstr "" +"Crea un archivo de almacenamiento (por ejemplo, ``zip`` o ``tar``). " +"*base_name* es el nombre del archivo a crear, menos cualquier extensión " +"específica del formato; *format* es el formato de archivo: como ``zip``, " +"``tar``, ``gztar``, ``bztar``, ``xztar`` o ``ztar``. *root_dir* es un " +"directorio que será el directorio raíz del archivo; es decir, normalmente " +"``chdir`` en *root_dir* antes de crear el archivo. *base_dir* es el " +"directorio desde donde comenzamos a archivar; es decir, *base_dir* será el " +"prefijo común de todos los archivos y directorios del archivo. *root_dir* y " +"*base_dir* ambos predeterminados al directorio actual. Retorna el nombre del " +"archivo de almacenamiento." #: ../Doc/distutils/apiref.rst:899 msgid "Added support for the ``xztar`` format." -msgstr "" +msgstr "Se agregó soporte para el formato ``xztar``." #: ../Doc/distutils/apiref.rst:905 msgid "" @@ -1319,10 +1752,19 @@ msgid "" "compression extension (``.gz``, ``.bz2``, ``.xz`` or ``.Z``). Return the " "output filename." msgstr "" +"Crea un archivo (opcionalmente comprimido) como un archivo ``tar`` de todos " +"los archivos en y bajo *base_dir*. *compress* debe ser ``'gzip'`` (el valor " +"predeterminado), ``'bzip2'``, ``'xz'``, ``'compress``' o ``None``. Para el " +"método ``'compress'``, la utilidad de compresión nombrada por :program:" +"`compress` debe estar en la ruta de búsqueda del programa predeterminada, " +"por lo que probablemente sea específica de Unix. El archivo ``tar`` de " +"salida se llamará :file:`base_dir.tar`, posiblemente más la extensión de " +"compresión apropiada (``.gz``,``.bz2``,``.xz`` o ``.Z``). Retorna el nombre " +"del archivo de salida." #: ../Doc/distutils/apiref.rst:914 msgid "Added support for the ``xz`` compression." -msgstr "" +msgstr "Se agregó soporte para la compresión ``xz``." #: ../Doc/distutils/apiref.rst:920 msgid "" @@ -1333,10 +1775,17 @@ msgid "" "available, raises :exc:`DistutilsExecError`. Returns the name of the " "output zip file." msgstr "" +"Crea un archivo *zip* a partir de todos los archivos incluidos en " +"*base_dir*. El archivo *zip* de salida se llamará *base_name* + :file:`." +"zip`. Utiliza el módulo Python :mod:`zipfile` (si está disponible) o la " +"utilidad InfoZIP :file:`zip` (si está instalada y se encuentra en la ruta de " +"búsqueda predeterminada). Si ninguna de las herramientas está disponible, " +"lanza :exc:`DistutilsExecError`. Retorna el nombre del archivo *zip* de " +"salida." #: ../Doc/distutils/apiref.rst:928 msgid ":mod:`distutils.dep_util` --- Dependency checking" -msgstr "" +msgstr ":mod:`distutils.dep_util` --- Comprobación de dependencias" #: ../Doc/distutils/apiref.rst:934 msgid "" @@ -1344,6 +1793,10 @@ msgid "" "dependency of files and groups of files; also, functions based entirely on " "such timestamp dependency analysis." msgstr "" +"Este módulo proporciona funciones para realizar una dependencia simple " +"basada en marcas de tiempo de archivos y grupos de archivos; también, " +"funciones basadas completamente en dicho análisis de dependencia de marca de " +"tiempo." #: ../Doc/distutils/apiref.rst:941 msgid "" @@ -1352,6 +1805,10 @@ msgid "" "*target* is the same age or newer than *source*. Raise :exc:" "`DistutilsFileError` if *source* does not exist." msgstr "" +"Retorna verdadero si *source* existe y se ha modificado más recientemente " +"que *target*, o si *source* existe y *target* no. Retorna falso si ambos " +"existen y si *target* tiene el mismo tiempo o es más reciente que *source*. " +"Lanza :exc:`DistutilsFileError` si *source* no existe." #: ../Doc/distutils/apiref.rst:949 msgid "" @@ -1360,6 +1817,10 @@ msgid "" "where source is newer than target, according to the semantics of :func:" "`newer`." msgstr "" +"Recorre dos listas de nombres de archivos en paralelo, probando si cada " +"fuente es más nueva que su correspondiente destino. Retorna un par de listas " +"(*sources*, *target*) donde la fuente es más nueva que el destino, de " +"acuerdo con la semántica de :func:`newer`." #: ../Doc/distutils/apiref.rst:958 msgid "" @@ -1374,16 +1835,30 @@ msgid "" "work because inputs are missing, but that doesn't matter because you're not " "actually going to run the commands)." msgstr "" +"Retorna verdadero si *target* no está actualizado con respecto a cualquier " +"archivo listado en *sources*. En otras palabras, si *target* existe y es más " +"reciente que todos los archivos en *sources*, retorna falso; de lo " +"contrario, retorna verdadero. *missing* controla lo que hacemos cuando falta " +"un archivo fuente; el valor predeterminado (``'error'``) explota con un :exc:" +"`OSError` desde :func:`os.stat`; si es ``'ignore'``, eliminamos " +"silenciosamente cualquier archivo fuente faltante; si es ``'newer'``, " +"cualquier archivo fuente que falte nos hace suponer que *target* está " +"desactualizado (esto es útil en el modo de \"*dry-run*\" (o ejecución en " +"seco): que hará que pretenda ejecutar comandos que no funcionaría porque " +"faltan entradas, pero no importa porque en realidad no va a ejecutar los " +"comandos)." #: ../Doc/distutils/apiref.rst:971 msgid ":mod:`distutils.dir_util` --- Directory tree operations" -msgstr "" +msgstr ":mod:`distutils.dir_util` --- Operaciones del árbol de directorios" #: ../Doc/distutils/apiref.rst:977 msgid "" "This module provides functions for operating on directories and trees of " "directories." msgstr "" +"Este módulo proporciona funciones para operar en directorios y árboles de " +"directorios." #: ../Doc/distutils/apiref.rst:983 msgid "" @@ -1395,6 +1870,13 @@ msgid "" "is true, print a one-line summary of each mkdir to stdout. Return the list " "of directories actually created." msgstr "" +"Crea un directorio y cualquier directorio ancestro que falte. Si el " +"directorio ya existe (o si *name* es el string vacío, significa que el " +"directorio actual, por supuesto existe), no hace nada. Lanza :exc:" +"`DistutilsFileError` si no puede crear algún directorio en el camino (por " +"ejemplo, existe alguna subruta, pero es un archivo en lugar de un " +"directorio). Si *verbose* es verdadero, imprime un resumen de una línea de " +"cada *mkdir* en *stdout*. Retorna la lista de directorios realmente creados." #: ../Doc/distutils/apiref.rst:994 msgid "" @@ -1405,6 +1887,13 @@ msgid "" "be created if it doesn't already exist. *mode*, *verbose* and *dry_run* " "flags are as for :func:`mkpath`." msgstr "" +"Crea todos los directorios vacíos en *base_dir* necesarios para colocar " +"*files* allí. *base_dir* es solo el nombre de un directorio que no existe " +"necesariamente todavía; *files* es una lista de nombres de archivos que se " +"interpretarán en relación con *base_dir*. *base_dir* + la parte del " +"directorio de cada archivo en *files* se creará si aún no existe. Los " +"indicadores *mode*, *verbose* y *dry_run* son para funciones como :func:" +"`mkpath`." #: ../Doc/distutils/apiref.rst:1004 msgid "" @@ -1418,6 +1907,15 @@ msgid "" "it is simply the list of all files under *src*, with the names changed to be " "under *dst*." msgstr "" +"Copia un árbol de directorio completo *src* en una nueva ubicación *dst*. " +"Tanto *src* como *dst* deben ser nombres de directorio. Si *src* no es un " +"directorio, lanza :exc:`DistutilsFileError`. Si *dst* no existe, se crea " +"con :func:`mkpath`. El resultado final de la copia es que todos los archivos " +"de *src* se copian en *dst*, y los directorios de *src* se copian de forma " +"recursiva en *dst*. Retorna la lista de archivos que se copiaron o que " +"podrían haberse copiado, utilizando su nombre de salida. El valor de retorno " +"no se ve afectado por *update* o *dry_run*: es simplemente la lista de todos " +"los archivos bajo *src *, con los nombres cambiados para estar bajo *dst*." #: ../Doc/distutils/apiref.rst:1014 msgid "" @@ -1428,6 +1926,12 @@ msgid "" "destination of the symlink will be copied. *update* and *verbose* are the " "same as for :func:`copy_file`." msgstr "" +"*preserve_mode* y *preserve_times* son los mismos que para :func:`distutils." +"file_util.copy_file`; ten en cuenta que solo se aplican a archivos normales, " +"no a directorios. Si *preserve_symlinks* es verdadero, los enlaces " +"simbólicos se copiarán como enlaces simbólicos (en plataformas que los " +"admitan!); de lo contrario (por defecto), se copiará el destino del enlace " +"simbólico. *update* y *verbose* son los mismos que para :func:`copy_file`." #: ../Doc/distutils/apiref.rst:1022 msgid "" @@ -1435,10 +1939,13 @@ msgid "" "these files is available in answer D2 of the `NFS FAQ page `_)." msgstr "" +"Los archivos en *src* que comienzan con :file:`.nfs` se omiten (hay más " +"sobre estos archivos disponible en la respuesta D2 de la página de preguntas " +"frecuentes de`NFS `_ )." #: ../Doc/distutils/apiref.rst:1026 msgid "NFS files are ignored." -msgstr "" +msgstr "Se ignoran los archivos NFS." #: ../Doc/distutils/apiref.rst:1031 msgid "" @@ -1446,16 +1953,21 @@ msgid "" "Any errors are ignored (apart from being reported to ``sys.stdout`` if " "*verbose* is true)." msgstr "" +"Elimina de forma recursiva *directory* y todos los archivos y directorios " +"que se encuentran debajo. Cualquier error se ignora (aparte de ser informado " +"a ``sys.stdout`` si *verbose* es verdadero)." #: ../Doc/distutils/apiref.rst:1037 msgid ":mod:`distutils.file_util` --- Single file operations" -msgstr "" +msgstr ":mod:`distutils.file_util` --- Operaciones de un solo archivo" #: ../Doc/distutils/apiref.rst:1043 msgid "" "This module contains some utility functions for operating on individual " "files." msgstr "" +"Este módulo contiene algunas funciones de utilidad para operar en archivos " +"individuales." #: ../Doc/distutils/apiref.rst:1048 msgid "" @@ -1468,6 +1980,15 @@ msgid "" "If *update* is true, *src* will only be copied if *dst* does not exist, or " "if *dst* does exist but is older than *src*." msgstr "" +"Copia el archivo desde *src* a *dst*. Si *dst* es un directorio, entonces " +"*src* se copia allí con el mismo nombre; de lo contrario, debe ser un nombre " +"de archivo. (Si el archivo existe, será atacado). Si *preserve_mode* es " +"verdadero (el valor predeterminado), se copia el modo del archivo (*bits* de " +"tipo y permiso, o lo que sea análogo en la plataforma actual). Si " +"*preserve_times* es verdadero (el valor predeterminado), también se copian " +"las horas de última modificación y de último acceso. Si *update* es " +"verdadero, *src* solo se copiará si *dst* no existe, o si *dst* existe pero " +"es anterior a *src*." #: ../Doc/distutils/apiref.rst:1057 msgid "" @@ -1478,6 +1999,13 @@ msgid "" "hard or symbolic linking is available. It uses :func:`_copy_file_contents` " "to copy file contents." msgstr "" +"*link* te permite crear enlaces físicos (usando :func:`os.link`) o enlaces " +"simbólicos (usando :func:`os.symlink`) en lugar de copiar: configúralo en " +"``'hard'`` o ``'sym'``; si es ``None`` (el predeterminado), los archivos se " +"copian. No establezcas *link* en sistemas que no lo admitan: :func:" +"`copy_file` pues no comprueba si hay enlaces físicos o simbólicos " +"disponibles. Utiliza :func:`_copy_file_contents` para copiar el contenido " +"del archivo." #: ../Doc/distutils/apiref.rst:1064 msgid "" @@ -1485,6 +2013,9 @@ msgid "" "the output file, and *copied* is true if the file was copied (or would have " "been copied, if *dry_run* true)." msgstr "" +"Retorna una tupla ``(dest_name, copied)``: *dest_name* es el nombre real del " +"archivo de salida, y *copied* es verdadero si el archivo fue copiado (o se " +"habría copiado, si *dry_run* es verdadero)." #: ../Doc/distutils/apiref.rst:1078 msgid "" @@ -1492,28 +2023,37 @@ msgid "" "into it with the same name; otherwise, *src* is just renamed to *dst*. " "Returns the new full name of the file." msgstr "" +"Mueve el archivo *src* a *dst*. Si *dst* es un directorio, el archivo se " +"moverá a el con el mismo nombre; de lo contrario, *src* simplemente se " +"renombra a *dst*. Retorna el nuevo nombre completo del archivo." #: ../Doc/distutils/apiref.rst:1084 msgid "" "Handles cross-device moves on Unix using :func:`copy_file`. What about " "other systems?" msgstr "" +"Maneja movimientos entre dispositivos en Unix usando :func:`copy_file`. ¿Qué " +"pasa con otros sistemas?" #: ../Doc/distutils/apiref.rst:1090 msgid "" "Create a file called *filename* and write *contents* (a sequence of strings " "without line terminators) to it." msgstr "" +"Crea un archivo llamado *filename* y escribe *contents* (una secuencia de " +"strings sin terminadores de línea) en el." #: ../Doc/distutils/apiref.rst:1095 msgid ":mod:`distutils.util` --- Miscellaneous other utility functions" -msgstr "" +msgstr ":mod:`distutils.util` --- Otras funciones de utilidad varias" #: ../Doc/distutils/apiref.rst:1101 msgid "" "This module contains other assorted bits and pieces that don't fit into any " "other utility module." msgstr "" +"Este módulo contiene otras partes y piezas variadas que no encajan en ningún " +"otro módulo de utilidad." #: ../Doc/distutils/apiref.rst:1107 msgid "" @@ -1524,26 +2064,35 @@ msgid "" "included depends on the OS; e.g., on Linux, the kernel version isn't " "particularly important." msgstr "" +"Retorna un string que identifica la plataforma actual. Se utiliza " +"principalmente para distinguir los directorios de compilación específicos de " +"la plataforma y las distribuciones compiladas específicas de la plataforma. " +"Por lo general, incluye el nombre y la versión del sistema operativo y la " +"arquitectura (como lo proporciona 'os.uname ()'), aunque incluir la exacta " +"depende del sistema operativo; por ejemplo, en Linux, la versión del kernel " +"no es particularmente importante." #: ../Doc/distutils/apiref.rst:1114 msgid "Examples of returned values:" -msgstr "" +msgstr "Ejemplos de valores retornados:" #: ../Doc/distutils/apiref.rst:1116 msgid "``linux-i586``" -msgstr "" +msgstr "``linux-i586``" #: ../Doc/distutils/apiref.rst:1117 msgid "``linux-alpha``" -msgstr "" +msgstr "``linux-alpha``" #: ../Doc/distutils/apiref.rst:1118 msgid "``solaris-2.6-sun4u``" -msgstr "" +msgstr "``solaris-2.6-sun4u``" #: ../Doc/distutils/apiref.rst:1120 msgid "For non-POSIX platforms, currently just returns ``sys.platform``." msgstr "" +"Para las plataformas que no son POSIX, actualmente solo retorna ``sys." +"platform``." #: ../Doc/distutils/apiref.rst:1122 msgid "" @@ -1551,6 +2100,10 @@ msgid "" "binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET`` during " "the build of Python), not the OS version of the current system." msgstr "" +"Para los sistemas Mac OS X, la versión del SO refleja la versión mínima en " +"la que se ejecutarán los binarios (es decir, el valor de " +"``MACOSX_DEPLOYMENT_TARGET`` durante la compilación de Python), no la " +"versión del SO del sistema actual." #: ../Doc/distutils/apiref.rst:1126 msgid "" @@ -1563,26 +2116,35 @@ msgid "" "build (ppc, i386, x86_64) and ``intel`` is used for a universal build with " "the i386 and x86_64 architectures" msgstr "" +"Para las compilaciones binarias universales en Mac OS X, el valor de la " +"arquitectura refleja el estado binario universal en lugar de la arquitectura " +"del procesador actual. Para los binarios universales de 32 bits, la " +"arquitectura es ``fat``, para los binarios universales de 64 bits la " +"arquitectura es ``fat64`` y para los binarios universales de 4 vías la " +"arquitectura es ``universal``. A partir de Python 2.7 y Python 3.2, la " +"arquitectura ``fat3`` se usa para una compilación universal de 3 vías (ppc, " +"i386, x86_64) e ``intel`` se usa para una compilación universal con las " +"arquitecturas i386 y x86_64" #: ../Doc/distutils/apiref.rst:1135 msgid "Examples of returned values on Mac OS X:" -msgstr "" +msgstr "Ejemplos de valores retornados en Mac OS X:" #: ../Doc/distutils/apiref.rst:1137 msgid "``macosx-10.3-ppc``" -msgstr "" +msgstr "``macosx-10.3-ppc``" #: ../Doc/distutils/apiref.rst:1139 msgid "``macosx-10.3-fat``" -msgstr "" +msgstr "``macosx-10.3-fat``" #: ../Doc/distutils/apiref.rst:1141 msgid "``macosx-10.5-universal``" -msgstr "" +msgstr "``macosx-10.5-universal``" #: ../Doc/distutils/apiref.rst:1143 msgid "``macosx-10.6-intel``" -msgstr "" +msgstr "``macosx-10.6-intel``" #: ../Doc/distutils/apiref.rst:1148 msgid "" @@ -1593,6 +2155,13 @@ msgid "" "can actually use them in the filesystem. Raises :exc:`ValueError` on non-" "Unix-ish systems if *pathname* either starts or ends with a slash." msgstr "" +"Retorna '*pathname*' (o nombre de ruta), como un nombre que funcionará en el " +"sistema de archivos nativo, es decir, divídelo con '/' y vuelve a armarlo " +"usando el separador de directorio actual. Necesario porque los nombres de " +"archivo en el script de configuración siempre se proporcionan en estilo Unix " +"y deben convertirse a la convención local antes de que podamos usarlos en el " +"sistema de archivos. Lanza :exc:`ValueError` en sistemas que no son Unix-ish " +"si *pathname* comienza o termina con una barra." #: ../Doc/distutils/apiref.rst:1158 msgid "" @@ -1601,6 +2170,10 @@ msgid "" "requires making *pathname* relative and then joining the two, which is " "tricky on DOS/Windows." msgstr "" +"Retorna *pathname* con *new_root* precedido. Si *pathname* es relativo, esto " +"es equivalente a ``os.path.join (new_root, pathname)``. De lo contrario, " +"requiere hacer que *pathname* sea relativo y luego unir los dos, lo cual es " +"complicado en DOS/Windows." #: ../Doc/distutils/apiref.rst:1165 msgid "" @@ -1608,16 +2181,21 @@ msgid "" "users can use in config files, command-line options, etc. Currently this " "includes:" msgstr "" +"Asegúrate de que '*os.environ*' tenga todas las variables de entorno " +"garantizamos que los usuarios pueden usar en archivos de configuración, " +"opciones de línea de comandos, etc. Actualmente, esto incluye:" #: ../Doc/distutils/apiref.rst:1169 msgid ":envvar:`HOME` - user's home directory (Unix only)" -msgstr "" +msgstr ":envvar:`HOME` - directorio de inicio del usuario (solo Unix)" #: ../Doc/distutils/apiref.rst:1170 msgid "" ":envvar:`PLAT` - description of the current platform, including hardware and " "OS (see :func:`get_platform`)" msgstr "" +":envvar:`PLAT` - descripción de la plataforma actual, incluido el hardware y " +"el sistema operativo (consulta :func:`get_platform`)" #: ../Doc/distutils/apiref.rst:1176 msgid "" @@ -1629,6 +2207,13 @@ msgid "" "`check_environ`. Raise :exc:`ValueError` for any variables not found in " "either *local_vars* or ``os.environ``." msgstr "" +"Realiza la sustitución de variables de estilo shell/Perl en *s*. Cada " +"aparición de ``$`` seguido de un nombre se considera una variable, y la " +"variable se sustituye por el valor que se encuentra en el diccionario " +"*local_vars*, o en ``os.environ`` si no está en *local_vars*. *os.environ* " +"primero se comprueba/aumenta para garantizar que contiene ciertos valores: " +"ver :func:`check_environ`. Lanza :exc:`ValueError` para cualquier variable " +"que no se encuentre en *local_vars* u ``os.environ``." #: ../Doc/distutils/apiref.rst:1183 msgid "" @@ -1636,6 +2221,10 @@ msgid "" "``$variable`` can consist only of upper and lower case letters, numbers and " "an underscore. No { } or ( ) style quoting is available." msgstr "" +"Ten en cuenta que esta no es una función de interpolación de string " +"completa. Una ``$ variable`` válida que puede constar solo de letras " +"mayúsculas y minúsculas, números y un guión bajo. No hay citas de estilo {} " +"o () disponibles." #: ../Doc/distutils/apiref.rst:1190 msgid "" @@ -1647,6 +2236,15 @@ msgid "" "leaving only the escaped character. The quote characters are stripped from " "any quoted string. Returns a list of words." msgstr "" +"Divide un string de acuerdo con las reglas de tipo *shell* de Unix para " +"comillas y barras invertidas. En resumen: las palabras están delimitadas por " +"espacios, siempre que esos espacios no se escapen con una barra invertida o " +"dentro de un string entre comillas. Las comillas simples y dobles son " +"equivalentes, y los caracteres de las comillas pueden tener un escape de " +"barra invertida. La barra invertida se elimina de cualquier secuencia de " +"escape de dos caracteres, dejando solo el carácter de escape. Los caracteres " +"de comillas se eliminan de cualquier string entre comillas. Retorna una " +"lista de palabras." #: ../Doc/distutils/apiref.rst:1203 msgid "" @@ -1657,10 +2255,18 @@ msgid "" "it (to embody the \"external action\" being performed), and an optional " "message to print." msgstr "" +"Realiza alguna acción que afecta al mundo exterior (por ejemplo, escribir en " +"el sistema de archivos). Tales acciones son especiales porque están " +"deshabilitadas por el indicador *dry_run*. Este método se encarga de toda " +"esa burocracia por ti; todo lo que tienes que hacer es proporcionar la " +"función a llamar y una tupla de argumentos para esta (para incorporar la " +"\"acción externa\" que se está realizando), y un mensaje opcional para " +"imprimir." #: ../Doc/distutils/apiref.rst:1212 msgid "Convert a string representation of truth to true (1) or false (0)." msgstr "" +"Convierte una representación real de un string a verdadero (1) o falso (0)." #: ../Doc/distutils/apiref.rst:1214 msgid "" @@ -1668,6 +2274,9 @@ msgid "" "values are ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. Raises :exc:" "`ValueError` if *val* is anything else." msgstr "" +"Los valores verdaderos son ``y``, ``yes``, ``t``, ``true``, ``on`` y ``1``; " +"los valores falsos son ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. " +"Lanza :exc:`ValueError` si *val* es cualquier otra cosa." #: ../Doc/distutils/apiref.rst:1221 msgid "" @@ -1676,22 +2285,29 @@ msgid "" "is a list of files to compile; any files that don't end in :file:`.py` are " "silently skipped. *optimize* must be one of the following:" msgstr "" +"*Byte-compile* es una colección de archivos fuente de Python de :file:`.pyc` " +"en un subdirectorio :file:`__pycache__` (ver :pep:`3147` y :pep:`488`). " +"*py_files* es una lista de archivos para compilar; cualquier archivo que no " +"termine en :file:`.py` se omite silenciosamente. *optimize* debe ser uno de " +"los siguientes:" #: ../Doc/distutils/apiref.rst:1226 msgid "``0`` - don't optimize" -msgstr "" +msgstr "``0`` - no optimizar" #: ../Doc/distutils/apiref.rst:1227 msgid "``1`` - normal optimization (like ``python -O``)" -msgstr "" +msgstr "``1`` - optimización normal (como ``python -O``)" #: ../Doc/distutils/apiref.rst:1228 msgid "``2`` - extra optimization (like ``python -OO``)" -msgstr "" +msgstr "``2`` - extra optimización (como ``python -OO``)" #: ../Doc/distutils/apiref.rst:1230 msgid "If *force* is true, all files are recompiled regardless of timestamps." msgstr "" +"Si *force* es verdadero, todos los archivos se vuelven a compilar " +"independientemente de las marcas de tiempo." #: ../Doc/distutils/apiref.rst:1232 msgid "" @@ -1702,12 +2318,20 @@ msgid "" "*prefix* is stripped). You can supply either or both (or neither) of " "*prefix* and *base_dir*, as you wish." msgstr "" +"El nombre del archivo de origen codificado en cada archivo :term:`bytecode` " +"tiene por defecto los nombres de archivo listados en *py_files*; puede " +"modificarlos con *prefix* y *basedir*. *prefix* es un string que se " +"eliminará de cada nombre de archivo de origen, y *base_dir* es un nombre de " +"directorio que se antepondrá (después de eliminar *prefix*). Puedes " +"proporcionar uno o ambos (o ninguno) de *prefix* y * base_dir*, como desees." #: ../Doc/distutils/apiref.rst:1239 msgid "" "If *dry_run* is true, doesn't actually do anything that would affect the " "filesystem." msgstr "" +"Si *dry_run* es verdadero, actualmente no hace nada que pueda afectar el " +"sistema de archivos." #: ../Doc/distutils/apiref.rst:1242 msgid "" @@ -1718,6 +2342,13 @@ msgid "" "The *direct* flag is used by the script generated in indirect mode; unless " "you know what you're doing, leave it set to ``None``." msgstr "" +"La compilación de *bytes* se realiza directamente en este proceso de " +"interpretación con el módulo estándar :mod:`py_compile`, o indirectamente " +"escribiendo un script temporal y ejecutándolo. Normalmente, debería dejar " +"que :func:`byte_compile` se dé cuenta de si usar la compilación directa o no " +"(consulta la fuente para obtener más detalles). El indicador *direct* es " +"utilizado por el script generado en modo indirecto; a menos que sepa lo que " +"está haciendo, se deja configurado en ``None``." #: ../Doc/distutils/apiref.rst:1249 msgid "" @@ -1725,10 +2356,13 @@ msgid "" "their name, in a :file:`__pycache__` subdirectory instead of files without " "tag in the current directory." msgstr "" +"Crea archivos ``.pyc`` con una etiqueta mágica :func:`import ` " +"en su nombre, en un subdirectorio :file:`__pycache__` en lugar de archivos " +"sin etiqueta en el directorio actual." #: ../Doc/distutils/apiref.rst:1254 msgid "Create ``.pyc`` files according to :pep:`488`." -msgstr "" +msgstr "Crea archivos ``.pyc`` de acuerdo a :pep:`488`." #: ../Doc/distutils/apiref.rst:1260 msgid "" @@ -1736,38 +2370,46 @@ msgid "" "by ensuring there are 8 spaces space after each newline. Note that it does " "no other modification of the string." msgstr "" +"Retorna una versión de *header* para su inclusión en un encabezado :rfc:" +"`822`, asegurándose de que haya 8 espacios después de cada nueva línea. Ten " +"en cuenta que no hace ninguna otra modificación del string." #: ../Doc/distutils/apiref.rst:1270 msgid ":mod:`distutils.dist` --- The Distribution class" -msgstr "" +msgstr ":mod:`distutils.dist` --- La clase *Distribution*" #: ../Doc/distutils/apiref.rst:1277 msgid "" "This module provides the :class:`~distutils.core.Distribution` class, which " "represents the module distribution being built/installed/distributed." msgstr "" +"Este módulo proporciona la clase :class:`~ distutils.core.Distribution`, que " +"representa la distribución del módulo que se está construyendo/instalando/" +"distribuyendo." #: ../Doc/distutils/apiref.rst:1282 msgid ":mod:`distutils.extension` --- The Extension class" -msgstr "" +msgstr ":mod:`distutils.extension` --- La clase *Extension*" #: ../Doc/distutils/apiref.rst:1289 msgid "" "This module provides the :class:`Extension` class, used to describe C/C++ " "extension modules in setup scripts." msgstr "" +"Este módulo proporciona la clase :class:`Extension`, que se utiliza para " +"describir los módulos de extensión C/C ++ en los scripts de configuración." #: ../Doc/distutils/apiref.rst:1297 msgid ":mod:`distutils.debug` --- Distutils debug mode" -msgstr "" +msgstr ":mod:`distutils.debug` --- modo de depuración *Distutils*" #: ../Doc/distutils/apiref.rst:1303 msgid "This module provides the DEBUG flag." -msgstr "" +msgstr "Este módulo proporciona el indicador *DEBUG*." #: ../Doc/distutils/apiref.rst:1307 msgid ":mod:`distutils.errors` --- Distutils exceptions" -msgstr "" +msgstr ":mod:`distutils.errors` --- excepciones *Distutils*" #: ../Doc/distutils/apiref.rst:1313 msgid "" @@ -1776,37 +2418,50 @@ msgid "" "raised for errors that are obviously the end-user's fault (eg. bad command-" "line arguments)." msgstr "" +"Proporciona excepciones utilizadas por los módulos *Distutils*. Ten en " +"cuenta que los módulos de Distutils pueden lanzar excepciones estándar; en " +"particular, *SystemExit* generalmente se lanza por errores que obviamente " +"son culpa del usuario final (por ejemplo, argumentos incorrectos en la línea " +"de comandos)." #: ../Doc/distutils/apiref.rst:1317 msgid "" "This module is safe to use in ``from ... import *`` mode; it only exports " "symbols whose names start with ``Distutils`` and end with ``Error``." msgstr "" +"Este módulo es seguro de usar en el modo ``from ... import*``; solo exporta " +"símbolos cuyos nombres comienzan con ``Distutils`` y terminan con ``Error``." #: ../Doc/distutils/apiref.rst:1322 msgid "" ":mod:`distutils.fancy_getopt` --- Wrapper around the standard getopt module" msgstr "" +":mod:`distutils.fancy_getopt` --- *Wrapper* alrededor del módulo estándar " +"*getopt*" #: ../Doc/distutils/apiref.rst:1328 msgid "" "This module provides a wrapper around the standard :mod:`getopt` module " "that provides the following additional features:" msgstr "" +"Este módulo proporciona una envoltura alrededor del modulo estándar :mod:" +"`getopt` que proporciona las siguientes características adicionales:" #: ../Doc/distutils/apiref.rst:1331 msgid "short and long options are tied together" -msgstr "" +msgstr "las opciones cortas y largas están unidas" #: ../Doc/distutils/apiref.rst:1333 msgid "" "options have help strings, so :func:`fancy_getopt` could potentially create " "a complete usage summary" msgstr "" +"las opciones tienen strings de ayuda, por lo que :func:`fancy_getopt` podría " +"potencialmente crear un resumen de uso completo" #: ../Doc/distutils/apiref.rst:1336 msgid "options set attributes of a passed-in object" -msgstr "" +msgstr "las opciones establecen atributos de un objeto pasado" #: ../Doc/distutils/apiref.rst:1338 msgid "" @@ -1814,6 +2469,9 @@ msgid "" "is the \"negative alias\" of :option:`!--verbose`, then :option:`!--quiet` " "on the command line sets *verbose* to false." msgstr "" +"las opciones booleanas pueden tener \"alias negativos\" --- p. ej. si :" +"option:`!-quiet` es el \"alias negativo\" de :option:`!-verbose`, entonces: " +"option:`!-quiet` en la línea de comando establece falso a *verbose*." #: ../Doc/distutils/apiref.rst:1344 msgid "" @@ -1825,16 +2483,26 @@ msgid "" "`getopt` method of the :class:`FancyGetopt` class). *args* is the argument " "list. Will use ``sys.argv[1:]`` if you pass ``None`` as *args*." msgstr "" +"Función *Wrapper*. *options* es una lista de ``(*long_option*, " +"*short_option*, *help_string*)`` 3-tuplas como se describe en el constructor " +"para :class:`FancyGetopt`. *negative_opt* debe ser un diccionario de mapeo " +"de nombres de opciones a nombres de opciones, tanto la clave como el valor " +"deben estar en la lista de *options*. *object* es un objeto que se usará " +"para almacenar valores (ver el método :meth:`getopt` de la clase :class:" +"`FancyGetopt`). *args* es la lista de argumentos. Usará ``sys.argv [1:]`` si " +"pasa ``None`` como *args*." #: ../Doc/distutils/apiref.rst:1355 msgid "Wraps *text* to less than *width* wide." -msgstr "" +msgstr "Envuelve *text* a menos de *width* ancho." #: ../Doc/distutils/apiref.rst:1360 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)``" #: ../Doc/distutils/apiref.rst:1363 msgid "" @@ -1843,14 +2511,21 @@ msgid "" "any case. *short_option* should be ``None`` if a *long_option* doesn't have " "a corresponding *short_option*. All option tuples must have long options." msgstr "" +"Si una opción toma un argumento, su *long_option* debería tener `` '=' `` " +"anexado; *short_option* debe ser solo un carácter, sin `` ':' `` en " +"cualquier caso. *short_option* debe ser ``None`` si *long_option* no tiene " +"una *short_option* correspondiente. Todas las tuplas de opciones deben tener " +"opciones largas." #: ../Doc/distutils/apiref.rst:1368 msgid "The :class:`FancyGetopt` class provides the following methods:" -msgstr "" +msgstr "La clase :class:`FancyGetopt` proporciona los siguientes métodos:" #: ../Doc/distutils/apiref.rst:1373 msgid "Parse command-line options in args. Store as attributes on *object*." msgstr "" +"Analiza las opciones de la línea de comandos en *args*. Almacena como " +"atributos en *object*." #: ../Doc/distutils/apiref.rst:1375 msgid "" @@ -1861,6 +2536,13 @@ msgid "" "returns *args*; in both cases, the returned *args* is a modified copy of the " "passed-in *args* list, which is left untouched." msgstr "" +"Si *args* es ``None`` o no se proporciona, utiliza ``sys.argv [1:]``. Si " +"*object* es ``None`` o no se proporciona, crea una nueva instancia :class:" +"`OptionDummy`, que allí almacena valores de opción y retorna una tupla " +"``(args, object)``. Si se proporciona *object*, se modifica en su lugar y :" +"func:`getopt` simplemente retorna *args*; en ambos casos, el *args* " +"retornado es una copia modificada de la lista *args* pasada, que se deja " +"intacta." #: ../Doc/distutils/apiref.rst:1387 msgid "" @@ -1868,34 +2550,43 @@ msgid "" "of :meth:`getopt` Raises :exc:`RuntimeError` if :meth:`getopt` hasn't been " "called yet." msgstr "" +"Retorna la lista de tuplas ``(*option*, *value*)`` procesadas por la " +"ejecución anterior de :meth:`getopt` Lanza :exc:`RuntimeError` si :meth:" +"`getopt` aún no se ha llamado." #: ../Doc/distutils/apiref.rst:1394 msgid "" "Generate help text (a list of strings, one per suggested line of output) " "from the option table for this :class:`FancyGetopt` object." msgstr "" +"Genera un texto de ayuda (una lista de strings, una por cada línea de salida " +"sugerida) de la tabla de opciones para este objeto :class:`FancyGetopt`." #: ../Doc/distutils/apiref.rst:1397 msgid "If supplied, prints the supplied *header* at the top of the help." msgstr "" +"Si se suministra, imprime el *header* suministrado en la parte superior de " +"la ayuda." #: ../Doc/distutils/apiref.rst:1401 msgid ":mod:`distutils.filelist` --- The FileList class" -msgstr "" +msgstr ":mod:`distutils.filelist` --- La clase *FileList*" #: ../Doc/distutils/apiref.rst:1408 msgid "" "This module provides the :class:`FileList` class, used for poking about the " "filesystem and building lists of files." msgstr "" +"Este módulo proporciona la clase :class:`FileList`, utilizada para hurgar en " +"el sistema de archivos y crear listas de archivos." #: ../Doc/distutils/apiref.rst:1413 msgid ":mod:`distutils.log` --- Simple :pep:`282`-style logging" -msgstr "" +msgstr ":mod:`distutils.log` --- Simple :pep:`282`-registro de estilo" #: ../Doc/distutils/apiref.rst:1420 msgid ":mod:`distutils.spawn` --- Spawn a sub-process" -msgstr "" +msgstr ":mod:`distutils.spawn` --- Genera un subproceso" #: ../Doc/distutils/apiref.rst:1426 msgid "" @@ -1904,10 +2595,15 @@ msgid "" "Also provides :func:`find_executable` to search the path for a given " "executable name." msgstr "" +"Este módulo proporciona la función :func:`spawn`, un *front-end* para varias " +"funciones específicas de la plataforma para iniciar otro programa en un " +"subproceso. También proporciona :func:`find_executable` para buscar en la " +"ruta un nombre ejecutable determinado." #: ../Doc/distutils/apiref.rst:1433 msgid ":mod:`distutils.sysconfig` --- System configuration information" msgstr "" +":mod:`distutils.sysconfig` --- Información de configuración del sistema" #: ../Doc/distutils/apiref.rst:1442 msgid "" @@ -1920,26 +2616,39 @@ msgid "" "header is called :file:`pyconfig.h` for Python versions starting with 2.2, " "and :file:`config.h` for earlier versions of Python." msgstr "" +"El modulo :mod:`distutils.sysconfig` proporciona acceso a la configuración " +"de bajo nivel de Python. Las variables de configuración específicas " +"disponibles dependen en gran medida de la plataforma y la configuración. Las " +"variables específicas dependen del proceso de compilación de la versión " +"específica de Python que se está ejecutando; las variables son las que se " +"encuentran en el archivo :file:`Makefile` y el encabezado de configuración " +"que se instalan con Python en sistemas Unix. El encabezado de configuración " +"se llama :file:`pyconfig.h` para las versiones de Python que comienzan con " +"2.2, y :file:`config.h` para versiones anteriores de Python." #: ../Doc/distutils/apiref.rst:1451 msgid "" "Some additional functions are provided which perform some useful " "manipulations for other parts of the :mod:`distutils` package." msgstr "" +"Se proporcionan algunas funciones adicionales que realizan algunas " +"manipulaciones útiles para otras partes del paquete :mod:`distutils`." #: ../Doc/distutils/apiref.rst:1457 msgid "The result of ``os.path.normpath(sys.prefix)``." -msgstr "" +msgstr "El resultado de ``os.path.normpath(sys.prefix)``." #: ../Doc/distutils/apiref.rst:1462 msgid "The result of ``os.path.normpath(sys.exec_prefix)``." -msgstr "" +msgstr "El resultado de ``os.path.normpath(sys.exec_prefix)``." #: ../Doc/distutils/apiref.rst:1467 msgid "" "Return the value of a single variable. This is equivalent to " "``get_config_vars().get(name)``." msgstr "" +"Retorna el valor de una sola variable. Esto es equivalente a " +"``get_config_vars ().get(name)``." #: ../Doc/distutils/apiref.rst:1473 msgid "" @@ -1949,6 +2658,12 @@ msgid "" "a sequence giving the associated values. If a given name does not have a " "corresponding value, ``None`` will be included for that variable." msgstr "" +"Retorna un conjunto de definiciones de variables. Si no hay argumentos, esto " +"retorna un diccionario que asigna los nombres de las variables de " +"configuración a los valores. Si se proporcionan argumentos, deben ser " +"strings y el valor de retorno será una secuencia que proporcione los valores " +"asociados. Si un nombre de pila no tiene un valor correspondiente, se " +"incluirá ``None`` para esa variable." #: ../Doc/distutils/apiref.rst:1482 msgid "" @@ -1957,6 +2672,11 @@ msgid "" "platforms the header will have been supplied directly by the Python source " "distribution. The file is a platform-specific text file." msgstr "" +"Retorna el nombre completo de la ruta del encabezado de configuración. Para " +"Unix, este será el encabezado generado por el script :program:`configure`; " +"para otras plataformas, el encabezado habrá sido proporcionado directamente " +"por la distribución fuente de Python. El archivo es un archivo de texto " +"específico de la plataforma." #: ../Doc/distutils/apiref.rst:1490 msgid "" @@ -1965,6 +2685,11 @@ msgid "" "meaning for other platforms will vary. The file is a platform-specific text " "file, if it exists. This function is only useful on POSIX platforms." msgstr "" +"Retorna el nombre completo de la ruta del archivo :file:`Makefile` usado " +"para construir Python. Para Unix, este será un archivo generado por el " +"script :program:`configure`; el significado para otras plataformas variará. " +"El archivo es un archivo de texto específico de la plataforma, si existe. " +"Esta función solo es útil en plataformas POSIX." #: ../Doc/distutils/apiref.rst:1498 msgid "" @@ -1975,6 +2700,13 @@ msgid "" "const:`PREFIX`, or as the exec-prefix instead of :const:`EXEC_PREFIX` if " "*plat_specific* is true." msgstr "" +"Retorna el directorio para los archivos de inclusión de C generales o " +"dependientes de la plataforma. Si *plat_specific* es verdadero, se retorna " +"el directorio de inclusión dependiente de la plataforma; si es falso o se " +"omite, se retorna el directorio independiente de la plataforma. Si se " +"proporciona *prefix*, se usa como prefijo en lugar de :const:`PREFIX`, o " +"como *exec-prefix* en lugar de :const:`EXEC_PREFIX` si *plat_specific* es " +"verdadero." #: ../Doc/distutils/apiref.rst:1508 msgid "" @@ -1987,18 +2719,31 @@ msgid "" "directory for the standard library is returned rather than the directory for " "the installation of third-party extensions." msgstr "" +"Retorna el directorio para la instalación de la biblioteca general o " +"dependiente de la plataforma. Si *plat_specific* es verdadero, se retorna el " +"directorio de inclusión dependiente de la plataforma; si es falso o se " +"omite, se retorna el directorio independiente de la plataforma. Si se " +"proporciona *prefix*, se usa como prefijo en lugar de :const:`PREFIX`, o " +"como *exec-prefix* en lugar de :const:`EXEC_PREFIX` si *plat_specific* es " +"verdadero. Si *standard_lib* es verdadero, se retorna el directorio de la " +"biblioteca estándar en lugar del directorio para la instalación de " +"extensiones de terceros." #: ../Doc/distutils/apiref.rst:1517 msgid "" "The following function is only intended for use within the :mod:`distutils` " "package." msgstr "" +"La siguiente función solo está pensada para su uso dentro del paquete :mod:" +"`distutils`." #: ../Doc/distutils/apiref.rst:1523 msgid "" "Do any platform-specific customization of a :class:`distutils.ccompiler." "CCompiler` instance." msgstr "" +"Realiza cualquier personalización específica de la plataforma de una " +"instancia :class:`distutils.ccompiler.CCompiler`." #: ../Doc/distutils/apiref.rst:1526 msgid "" @@ -2008,12 +2753,20 @@ msgid "" "This information includes the selected compiler, compiler and linker " "options, and the extension used by the linker for shared objects." msgstr "" +"Esta función solo es necesaria en Unix en este momento, pero se debe llamar " +"de manera consistente para admitir la compatibilidad con versiones " +"posteriores. Inserta la información que varía según los tipos de Unix y se " +"almacena en el archivo de Python :file:`Makefile`. Esta incluye el " +"compilador seleccionado, las opciones del compilador y del enlazador, y la " +"extensión utilizada por el enlazador para los objetos compartidos." #: ../Doc/distutils/apiref.rst:1532 msgid "" "This function is even more special-purpose, and should only be used from " "Python's own build procedures." msgstr "" +"Esta función tiene un propósito aún más especial y solo debe usarse desde " +"los propios procedimientos de compilación de Python." #: ../Doc/distutils/apiref.rst:1538 msgid "" @@ -2022,10 +2775,14 @@ msgid "" "for files, allowing them to be located in the build area rather than in an " "installed Python." msgstr "" +"Informa al módulo :mod:`distutils.sysconfig` que se está utilizando como " +"parte del proceso de compilación de Python. Esto cambia muchas ubicaciones " +"relativas de los archivos, lo que les permite ubicarse en el área de " +"compilación en lugar de en un Python instalado." #: ../Doc/distutils/apiref.rst:1545 msgid ":mod:`distutils.text_file` --- The TextFile class" -msgstr "" +msgstr ":mod:`distutils.text_file` --- La clase *TextFile*" #: ../Doc/distutils/apiref.rst:1551 msgid "" @@ -2033,6 +2790,10 @@ msgid "" "to text files that (optionally) takes care of stripping comments, ignoring " "blank lines, and joining lines with backslashes." msgstr "" +"Este módulo proporciona la clase :class:`TextFile`, que proporciona una " +"interfaz a los archivos de texto que (opcionalmente) se encarga de eliminar " +"los comentarios, ignorar las líneas en blanco y unir líneas con barras " +"invertidas." #: ../Doc/distutils/apiref.rst:1558 msgid "" @@ -2043,6 +2804,13 @@ msgid "" "at end of line), strip leading and/or trailing whitespace. All of these are " "optional and independently controllable." msgstr "" +"Esta clase proporciona un objeto similar a un archivo que se encarga de " +"todas las cosas que comúnmente desea hacer al procesar un archivo de texto " +"que tiene alguna sintaxis línea por línea: elimina comentarios (siempre que " +"``#`` sea su carácter de comentario), omite líneas en blanco, une líneas " +"adyacentes escapando de la nueva línea (es decir, barra invertida al final " +"de la línea), elimina los espacios en blanco iniciales o finales. Todos " +"estos son opcionales y controlables de forma independiente." #: ../Doc/distutils/apiref.rst:1565 msgid "" @@ -2051,6 +2819,10 @@ msgid "" "question spans multiple physical lines. Also provides :meth:`unreadline` " "for implementing line-at-a-time lookahead." msgstr "" +"La clase proporciona un método :meth:`warn` para que pueda generar mensajes " +"de advertencia que informen el número de línea física, incluso si la línea " +"lógica en cuestión abarca varias líneas físicas. También proporciona :meth:" +"`unreadline` para implementar una búsqueda anticipada de línea a la vez." #: ../Doc/distutils/apiref.rst:1570 msgid "" @@ -2062,62 +2834,77 @@ msgid "" "messages. If *file* is not supplied, :class:`TextFile` creates its own " "using the :func:`open` built-in function." msgstr "" +"Las instancias de :class:`TextFile` se crean con *filename*, *file* o " +"ambos. :exc:`RuntimeError` se lanza si ambos son ``None``. *filename* debe " +"ser un string, y *file* un archive de objeto (o algo que proporcione los " +"métodos :meth:`readline` y :meth:`close`). Se recomienda que proporcione al " +"menos *filename*, para que :class:`TextFile` pueda incluirlo en mensajes de " +"advertencia. Si no se proporciona *file*, :class:`TextFile` crea uno propio " +"usando la función incorporada :func:`open`." #: ../Doc/distutils/apiref.rst:1578 msgid "" "The options are all boolean, and affect the values returned by :meth:" "`readline`" msgstr "" +"Todas las opciones son booleanas y afectan los valores retornados por :meth:" +"`readline`" #: ../Doc/distutils/apiref.rst:1583 msgid "option name" -msgstr "" +msgstr "nombre de la opción" #: ../Doc/distutils/apiref.rst:1583 msgid "default" -msgstr "" +msgstr "predeterminado" #: ../Doc/distutils/apiref.rst:1585 msgid "*strip_comments*" -msgstr "" +msgstr "*strip_comments*" #: ../Doc/distutils/apiref.rst:1585 msgid "" "strip from ``'#'`` to end-of-line, as well as any whitespace leading up to " "the ``'#'``\\ ---unless it is escaped by a backslash" msgstr "" +"elimina desde ``'#'`` hasta el final de la línea, así como cualquier espacio " +"en blanco que conduzca al ``'#'`` \\ --- a menos que se escape por una barra " +"invertida" #: ../Doc/distutils/apiref.rst:1585 ../Doc/distutils/apiref.rst:1594 #: ../Doc/distutils/apiref.rst:1599 msgid "true" -msgstr "" +msgstr "verdadero" #: ../Doc/distutils/apiref.rst:1591 msgid "*lstrip_ws*" -msgstr "" +msgstr "*lstrip_ws*" #: ../Doc/distutils/apiref.rst:1591 msgid "strip leading whitespace from each line before returning it" msgstr "" +"elimina los espacios en blanco iniciales de cada línea antes de retornarlo" #: ../Doc/distutils/apiref.rst:1591 ../Doc/distutils/apiref.rst:1609 #: ../Doc/distutils/apiref.rst:1620 msgid "false" -msgstr "" +msgstr "falso" #: ../Doc/distutils/apiref.rst:1594 msgid "*rstrip_ws*" -msgstr "" +msgstr "*rstrip_ws*" #: ../Doc/distutils/apiref.rst:1594 msgid "" "strip trailing whitespace (including line terminator!) from each line before " "returning it." msgstr "" +"elimina los espacios en blanco finales (incluido el terminador de línea!) de " +"cada línea antes de retornarlo." #: ../Doc/distutils/apiref.rst:1599 msgid "*skip_blanks*" -msgstr "" +msgstr "*skip_blanks*" #: ../Doc/distutils/apiref.rst:1599 msgid "" @@ -2126,10 +2913,14 @@ msgid "" "solely whitespace: these will \\*not\\* be skipped, even if *skip_blanks* is " "true.)" msgstr "" +"omite las líneas que están vacías \\* después de\\* elimina los comentarios " +"y los espacios en blanco. (Si tanto *lstrip_ws* como *rstrip_ws* son falsos, " +"algunas líneas pueden consistir únicamente en espacios en blanco: estos no " +"se omitirán, incluso si *skip_blanks* es verdadero)." #: ../Doc/distutils/apiref.rst:1609 msgid "*join_lines*" -msgstr "" +msgstr "*join_lines*" #: ../Doc/distutils/apiref.rst:1609 msgid "" @@ -2138,16 +2929,23 @@ msgid "" "line; if N consecutive lines end with a backslash, then N+1 physical lines " "will be joined to form one logical line." msgstr "" +"si una barra invertida es el último carácter que no es una nueva línea en " +"una línea después de eliminar los comentarios y los espacios en blanco, " +"únela a la siguiente línea para formar una línea lógica; si N líneas " +"consecutivas terminan con una barra invertida, entonces N + 1 líneas físicas " +"se unirán para formar una línea lógica." #: ../Doc/distutils/apiref.rst:1620 msgid "*collapse_join*" -msgstr "" +msgstr "*collapse_join*" #: ../Doc/distutils/apiref.rst:1620 msgid "" "strip leading whitespace from lines that are joined to their predecessor; " "only matters if ``(join_lines and not lstrip_ws)``" msgstr "" +"elimina los espacios en blanco iniciales de las líneas que están unidas a su " +"predecesor; solo importa si ``(*join_lines* y no *lstrip_ws*)``" #: ../Doc/distutils/apiref.rst:1627 msgid "" @@ -2157,18 +2955,28 @@ msgid "" "for end-of-file: an empty string might just be a blank line (or an all-" "whitespace line), if *rstrip_ws* is true but *skip_blanks* is not." msgstr "" +"Ten en cuenta que, dado que *rstrip_ws* puede eliminar la nueva línea final, " +"la semántica de :meth:`readline` debe diferir de las del método :meth:" +"`readline` del objeto de archivo integrado. En particular, :meth:`readline` " +"retorna ``None`` para el final del archivo: un string vacío puede ser solo " +"una línea en blanco (o una línea con espacios en blanco), si *rstrip_ws* es " +"verdadero pero *skip_blanks* no es." #: ../Doc/distutils/apiref.rst:1636 msgid "" "Open a new file *filename*. This overrides any *file* or *filename* " "constructor arguments." msgstr "" +"Abre un nuevo archivo *filename*. Esto anula cualquier *file* o *filename* " +"argumentado del constructor." #: ../Doc/distutils/apiref.rst:1642 msgid "" "Close the current file and forget everything we know about it (including the " "filename and the current line number)." msgstr "" +"Cierra el archivo actual y olvida todo lo que sabemos sobre él (incluido el " +"nombre del archivo y el número de línea actual)." #: ../Doc/distutils/apiref.rst:1648 msgid "" @@ -2179,6 +2987,12 @@ msgid "" "may be a list or tuple to indicate a range of physical lines, or an integer " "for a single physical line." msgstr "" +"Imprime (a *stderr*) un mensaje de advertencia vinculado a la línea lógica " +"actual en el archivo actual. Si la línea lógica actual en el archivo abarca " +"varias líneas físicas, la advertencia se refiere a todo el rango, como ``" +"\"lines 3-5\"``. Si se proporciona *line*, anula el número de línea actual; " +"puede ser una lista o tupla para indicar un rango de líneas físicas, o un " +"número entero para una sola línea física." #: ../Doc/distutils/apiref.rst:1658 msgid "" @@ -2191,12 +3005,23 @@ msgid "" "end-of-file, since the empty string can occur if *rstrip_ws* is true but " "*strip_blanks* is not." msgstr "" +"Lee y retorna una sola línea lógica del archivo actual (o de un búfer " +"interno si las líneas han sido \"no leídas\" previamente con :meth:" +"`unreadline`). Si la opción *join_lines* es verdadera, esto puede implicar " +"la lectura de varias líneas físicas concatenadas en una sola cadena. " +"Actualiza el número de línea actual, por lo que llamar a :meth:`warn` " +"después :meth:`readline` emite una advertencia sobre las líneas físicas que " +"acaba de leer. Retorna ``None`` al final del archivo, ya que un string vacío " +"puede aparecer si *rstrip_ws* es verdadero pero *strip_blanks* no lo es." #: ../Doc/distutils/apiref.rst:1669 msgid "" "Read and return the list of all logical lines remaining in the current file. " "This updates the current line number to the last line of the file." msgstr "" +"Lee y retorna la lista de todas las líneas lógicas restantes en el archivo " +"actual. Esto actualiza el número de línea actual a la última línea del " +"archivo." #: ../Doc/distutils/apiref.rst:1675 msgid "" @@ -2208,18 +3033,27 @@ msgid "" "meth:`unreadline` before a call to :meth:`readline`, the lines will be " "returned most in most recent first order." msgstr "" +"Empuja *line* (un string) en un búfer interno que será verificado por " +"futuras llamadas a :meth:`readline`. Útil para implementar un analizador con " +"búsqueda anticipada de línea a la vez. Tenga en cuenta que las líneas que " +"están \"no leídas\" con :meth:`unreadline` no se vuelven a limpiar " +"posteriormente (se eliminan los espacios en blanco o lo que sea) cuando se " +"leen con :meth:`readline`. Si se realizan varias llamadas a :meth:" +"`unreadline` antes de una llamada a :meth:`readline`, la mayoría de las " +"líneas se retornarán en el primer orden más reciente." #: ../Doc/distutils/apiref.rst:1684 msgid ":mod:`distutils.version` --- Version number classes" -msgstr "" +msgstr ":mod:`distutils.version` --- Clases de número de versión" #: ../Doc/distutils/apiref.rst:1699 msgid ":mod:`distutils.cmd` --- Abstract base class for Distutils commands" msgstr "" +":mod:`distutils.cmd` --- Clase base abstracta para comandos *Distutils*" #: ../Doc/distutils/apiref.rst:1706 msgid "This module supplies the abstract base class :class:`Command`." -msgstr "" +msgstr "Este módulo proporciona la clase base abstracta :class:`Command`." #: ../Doc/distutils/apiref.rst:1711 msgid "" @@ -2236,20 +3070,36 @@ msgid "" "options, is the :meth:`run` method, which must also be implemented by every " "command class." msgstr "" +"La clase base abstracta para definir clases de comando, las \"*worker bees*" +"\" de *Distutils*. Una analogía útil para las clases de comando es pensar en " +"ellas como subrutinas con variables locales llamadas *options*. Las opciones " +"se declaran en :meth:`initialize_options` y se definen (dados sus valores " +"finales) en :meth:`finalize_options`, los cuales deben ser definidos por " +"cada clase de comando. La distinción entre los dos es necesaria porque los " +"valores de las opciones pueden provenir del mundo exterior (línea de " +"comando, archivo de configuración, ...), y cualquier opción que dependa de " +"otras opciones debe calcularse después de que se hayan procesado estas " +"influencias externas --- por lo tanto :meth:`finalize_options`. El cuerpo de " +"la subrutina, donde hace todo su trabajo basado en los valores de sus " +"opciones, es el método :meth:`run`, que también debe ser implementado por " +"cada clase de comando." #: ../Doc/distutils/apiref.rst:1724 msgid "" "The class constructor takes a single argument *dist*, a :class:`~distutils." "core.Distribution` instance." msgstr "" +"El constructor de la clase toma un solo argumento *dist*, una instancia :" +"class:`~ distutils.core.Distribution`." #: ../Doc/distutils/apiref.rst:1729 msgid "Creating a new Distutils command" -msgstr "" +msgstr "Creando un nuevo comando *Distutils*" #: ../Doc/distutils/apiref.rst:1731 msgid "This section outlines the steps to create a new Distutils command." msgstr "" +"Esta sección describe los pasos para crear un nuevo comando *Distutils*." #: ../Doc/distutils/apiref.rst:1733 msgid "" @@ -2263,10 +3113,21 @@ msgid "" "command/peel_banana.py`, then edit it so that it's implementing the class :" "class:`peel_banana`, a subclass of :class:`distutils.cmd.Command`." msgstr "" +"Un nuevo comando reside en un módulo en el paquete :mod:`distutils.command`. " +"Hay una plantilla de muestra en ese directorio llamada :file:" +"`command_template`. Copia este archivo en un nuevo módulo con el mismo " +"nombre que el nuevo comando que está implementando. Este módulo debe " +"implementar una clase con el mismo nombre que el módulo (y el comando). " +"Entonces, por ejemplo, para crear el comando ``peel_banana`` (para que los " +"usuarios puedan ejecutar ``setup.py peel_banana``), deben copiar :file:" +"`command_template` a :file:`distutils/command/peel_banana.py`, luego edítelo " +"para que implemente la clase :class:`peel_banana`, una subclase de :class:" +"`distutils.cmd.Command`." #: ../Doc/distutils/apiref.rst:1743 msgid "Subclasses of :class:`Command` must define the following methods." msgstr "" +"Las subclases de :class:`Command` deben definir los siguientes métodos." #: ../Doc/distutils/apiref.rst:1747 msgid "" @@ -2277,6 +3138,13 @@ msgid "" "`initialize_options` implementations are just a bunch of ``self.foo = None`` " "assignments." msgstr "" +"Establece valores predeterminados para todas las opciones que admite este " +"comando. Ten en cuenta que estos valores predeterminados pueden ser anulados " +"por otros comandos, por el script de configuración, por los archivos de " +"configuración o por la línea de comandos. Por tanto, este no es el lugar " +"para codificar dependencias entre opciones; generalmente, las " +"implementaciones de :meth:`initialize_options` son solo un montón de " +"asignaciones ``self.fo = None`` ." #: ../Doc/distutils/apiref.rst:1756 msgid "" @@ -2287,6 +3155,13 @@ msgid "" "safe to set *foo* from *bar* as long as *foo* still has the same value it " "was assigned in :meth:`initialize_options`." msgstr "" +"Establece valores finales para todas las opciones que admite este comando. " +"Esto siempre se llama lo más tarde posible, es decir. después de que se " +"hayan realizado las asignaciones de opciones desde la línea de comandos o " +"desde otros comandos. Por lo tanto, este es el lugar para codificar las " +"dependencias de opciones: si *foo* depende de *bar*, entonces es seguro " +"establecer *foo* desde *bar* siempre que *foo* todavía tenga el mismo valor " +"que se asignó en :meth:`initialize_options`." #: ../Doc/distutils/apiref.rst:1766 msgid "" @@ -2296,6 +3171,12 @@ msgid "" "files, and finalized in :meth:`finalize_options`. All terminal output and " "filesystem interaction should be done by :meth:`run`." msgstr "" +"La razón de ser de un comando: llevar a cabo la acción que debe realizar, " +"controlada por las opciones inicializadas en :meth:`initialize_options`, " +"personalizadas por otros comandos, el script de configuración, la línea de " +"comandos y los archivos de configuración, y finalizadas en :meth:" +"`finalize_options`. Toda la salida de la terminal y la interacción del " +"sistema de archivos debe realizarse mediante :meth:`run`." #: ../Doc/distutils/apiref.rst:1775 msgid "" @@ -2310,6 +3191,15 @@ msgid "" "have any C header files to install.) If *predicate* is ``None``, that " "command is always applicable." msgstr "" +"*sub_commands* formaliza la noción de una \"familia\" de comandos, p. ej. " +"``install`` como padre con subcomandos ``install_lib``, ``install_headers``, " +"etc. El padre de una familia de comandos define *sub_commands* como un " +"atributo de clase; es una lista de 2 tuplas ``(command_name, predicate)``, " +"con *command_name* un string y *predicate* una función, un string o " +"``None``. *predicate* es un método del comando padre que determina si el " +"comando correspondiente es aplicable en la situación actual. (Por ejemplo, " +"``install_headers`` solo es aplicable si tenemos archivos de encabezado C " +"para instalar). Si *predicate* es ``None``, ese comando siempre es aplicable." #: ../Doc/distutils/apiref.rst:1786 msgid "" @@ -2317,33 +3207,41 @@ msgid "" "predicates can be methods of the class, so they must already have been " "defined. The canonical example is the :command:`install` command." msgstr "" +"*sub_commands* generalmente se define al *end* de una clase, porque los " +"predicados pueden ser métodos de la clase, por lo que ya deben haber sido " +"definidos. El ejemplo canónico es el comando :command:`install`." #: ../Doc/distutils/apiref.rst:1792 msgid ":mod:`distutils.command` --- Individual Distutils commands" -msgstr "" +msgstr ":mod:`distutils.command` --- Comandos individuales de *Distutils*" #: ../Doc/distutils/apiref.rst:1803 msgid ":mod:`distutils.command.bdist` --- Build a binary installer" -msgstr "" +msgstr ":mod:`distutils.command.bdist` --- Construye un instalador binario" #: ../Doc/distutils/apiref.rst:1813 msgid "" ":mod:`distutils.command.bdist_packager` --- Abstract base class for packagers" msgstr "" +":mod:`distutils.command.bdist_packager` --- Clase base abstracta para " +"empaquetadores" #: ../Doc/distutils/apiref.rst:1823 msgid ":mod:`distutils.command.bdist_dumb` --- Build a \"dumb\" installer" msgstr "" +":mod:`distutils.command.bdist_dumb` --- Construye un instalador \"*dump*\"" #: ../Doc/distutils/apiref.rst:1833 msgid "" ":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary " "package" msgstr "" +":mod:`distutils.command.bdist_msi` --- Construye un paquete binario " +"instalador de Microsoft" #: ../Doc/distutils/apiref.rst:1840 msgid "Builds a `Windows Installer`_ (.msi) binary package." -msgstr "" +msgstr "Construye un paquete binario `Windows Installer`_ (.msi)" #: ../Doc/distutils/apiref.rst:1844 msgid "" @@ -2352,43 +3250,59 @@ msgid "" "platforms, allows administrators to perform non-interactive installations, " "and allows installation through group policies." msgstr "" +"En la mayoría de los casos, el instalador ``bdist_msi`` es una mejor opción " +"que el instalador ``bdist_wininst``, porque proporciona un mejor soporte " +"para plataformas Win64, permite a los administradores realizar instalaciones " +"no interactivas y permite la instalación a través de políticas de grupo." #: ../Doc/distutils/apiref.rst:1851 msgid "" ":mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a " "Redhat RPM and SRPM" msgstr "" +":mod:`distutils.command.bdist_rpm` --- Construye una distribución binaria " +"como RedHat RPM y SRPM" #: ../Doc/distutils/apiref.rst:1861 msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer" msgstr "" +":mod:`distutils.command.bdist_wininst` --- Construye un instalador de Windows" #: ../Doc/distutils/apiref.rst:1866 msgid "Use bdist_wheel (wheel packages) instead." -msgstr "" +msgstr "Utiliza *bdist_wheel* (paquetes *wheel*) en su lugar." #: ../Doc/distutils/apiref.rst:1874 msgid ":mod:`distutils.command.sdist` --- Build a source distribution" msgstr "" +":mod:`distutils.command.sdist` --- Construye una distribución de código " +"fuente" #: ../Doc/distutils/apiref.rst:1884 msgid ":mod:`distutils.command.build` --- Build all files of a package" msgstr "" +":mod:`distutils.command.build` --- Construye todos los archivos de un paquete" #: ../Doc/distutils/apiref.rst:1894 msgid "" ":mod:`distutils.command.build_clib` --- Build any C libraries in a package" msgstr "" +":mod:`distutils.command.build_clib` --- Construye cualquier biblioteca C en " +"un paquete" #: ../Doc/distutils/apiref.rst:1904 msgid "" ":mod:`distutils.command.build_ext` --- Build any extensions in a package" msgstr "" +":mod:`distutils.command.build_ext` --- Construye cualquier extensión en un " +"paquete" #: ../Doc/distutils/apiref.rst:1914 msgid "" ":mod:`distutils.command.build_py` --- Build the .py/.pyc files of a package" msgstr "" +":mod:`distutils.command.build_py` --- Construye los archivos .py/.pyc de un " +"paquete" #: ../Doc/distutils/apiref.rst:1924 msgid "" @@ -2397,23 +3311,31 @@ msgid "" "setup.py file for a distribution that is designed to run with both Python 2." "x and 3.x, add::" msgstr "" +"Implementación alternativa de *build_py* que también ejecuta la biblioteca " +"de conversión *2to3* en cada archivo .py que se va a instalar. Para usar " +"esto en un archivo *setup.py* de una distribución que está diseñada para " +"ejecutarse con Python 2.x y 3.x, agrega:" #: ../Doc/distutils/apiref.rst:1934 msgid "to your setup.py, and later::" -msgstr "" +msgstr "a su *setup.py*, y posteriormente:" #: ../Doc/distutils/apiref.rst:1938 msgid "to the invocation of setup()." -msgstr "" +msgstr "a la invocación de configuración setup()." #: ../Doc/distutils/apiref.rst:1942 msgid "" ":mod:`distutils.command.build_scripts` --- Build the scripts of a package" msgstr "" +":mod:`distutils.command.build_scripts` --- Construye los scripts de un " +"paquete" #: ../Doc/distutils/apiref.rst:1952 msgid ":mod:`distutils.command.clean` --- Clean a package build area" msgstr "" +":mod:`distutils.command.clean` --- Limpia el área de construcción de un " +"paquete" #: ../Doc/distutils/apiref.rst:1957 msgid "" @@ -2421,58 +3343,78 @@ msgid "" "subcommands, like intermediary compiled object files. With the ``--all`` " "option, the complete build directory will be removed." msgstr "" +"Este comando elimina los archivos temporales creados por el comando :command:" +"`build` y sus subcomandos, como archivos de objeto compilados " +"intermediarios. Con la opción ``--all``, se eliminará el directorio de " +"compilación completo." #: ../Doc/distutils/apiref.rst:1961 msgid "" "Extension modules built :ref:`in place ` will " "not be cleaned, as they are not in the build directory." msgstr "" +"Los módulos de extensión construidos :ref:`in place ` no se limpiarán, ya que no están en el directorio de construcción." #: ../Doc/distutils/apiref.rst:1966 msgid ":mod:`distutils.command.config` --- Perform package configuration" msgstr "" +":mod:`distutils.command.config` --- Realiza la configuración de un paquete" #: ../Doc/distutils/apiref.rst:1976 msgid ":mod:`distutils.command.install` --- Install a package" -msgstr "" +msgstr ":mod:`distutils.command.install` --- Instala un paquete" #: ../Doc/distutils/apiref.rst:1986 msgid "" ":mod:`distutils.command.install_data` --- Install data files from a package" msgstr "" +":mod:`distutils.command.install_data` --- Instala archivos de datos de un " +"paquete" #: ../Doc/distutils/apiref.rst:1996 msgid "" ":mod:`distutils.command.install_headers` --- Install C/C++ header files from " "a package" msgstr "" +":mod:`distutils.command.install_headers` --- Instala archivos de encabezado " +"C/C++ desde un paquete" #: ../Doc/distutils/apiref.rst:2006 msgid "" ":mod:`distutils.command.install_lib` --- Install library files from a package" msgstr "" +":mod:`distutils.command.install_lib` --- Instala archivos de biblioteca " +"desde un paquete" #: ../Doc/distutils/apiref.rst:2016 msgid "" ":mod:`distutils.command.install_scripts` --- Install script files from a " "package" msgstr "" +":mod:`distutils.command.install_scripts` --- Instala archivos de script " +"desde un paquete" #: ../Doc/distutils/apiref.rst:2026 msgid "" ":mod:`distutils.command.register` --- Register a module with the Python " "Package Index" msgstr "" +":mod:`distutils.command.register` --- Registra un módulo con el índice de " +"paquetes de Python" #: ../Doc/distutils/apiref.rst:2032 msgid "" "The ``register`` command registers the package with the Python Package " "Index. This is described in more detail in :pep:`301`." msgstr "" +"El comando ``register`` registra el paquete con el índice de paquetes de " +"Python. Esto se describe con más detalle en :pep:`301`." #: ../Doc/distutils/apiref.rst:2039 msgid ":mod:`distutils.command.check` --- Check the meta-data of a package" msgstr "" +":mod:`distutils.command.check` --- Verificar los metadatos de un paquete" #: ../Doc/distutils/apiref.rst:2045 msgid "" @@ -2480,3 +3422,6 @@ msgid "" "example, it verifies that all required meta-data are provided as the " "arguments passed to the :func:`setup` function." msgstr "" +"El comando ``check`` realiza algunas pruebas en los metadatos de un paquete. " +"Por ejemplo, verifica que todos los metadatos requeridos se proporcionen " +"como argumentos pasados ​​a la función :func:`setup`." diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 2c6022c17a..cc12a29cac 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -6,23 +6,25 @@ # 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: 2020-10-15 16:05+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: \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/distutils/builtdist.rst:5 msgid "Creating Built Distributions" -msgstr "" +msgstr "Crear distribuciones compiladas" #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -30,6 +32,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Este documento se conserva únicamente hasta que la documentación de " +"``setuptools`` en https://setuptools.readthedocs.io/en/latest/setuptools." +"html cubra de forma independiente toda la información relevante que se " +"incluye actualmente aquí." #: ../Doc/distutils/builtdist.rst:9 msgid "" @@ -40,6 +46,12 @@ msgid "" "word is already spoken for in Python. (And \"installer\" is a term specific " "to the world of mainstream desktop systems.)" msgstr "" +"Una \"distribución compilada\" es lo que probablemente conoce como un " +"\"paquete binario\" o un \"instalador\" (dependiendo de sus antecedentes). " +"No es necesariamente binario, sin embargo, porque podría contener sólo " +"código fuente de Python o código de bytes; y no lo llamamos paquete, porque " +"esa palabra ya existe en Python. (E \"instalador\" es un término específico " +"para el mundo de los sistemas de escritorio convencionales.)" #: ../Doc/distutils/builtdist.rst:16 msgid "" @@ -54,6 +66,17 @@ msgid "" "to turn source distributions into built distributions for as many platforms " "as there are packagers." msgstr "" +"Una distribución compilada es la forma de hacer la vida lo más fácil posible " +"para los instaladores de la distribución de módulos: para los usuarios de " +"sistemas Linux basados en RPM, es un RPM binario; para los usuarios de " +"Windows, es un instalador ejecutable; para los usuarios de Linux basados en " +"Debian, es un paquete Debian; y así sucesivamente. Obviamente, ninguna " +"persona podrá crear distribuciones compiladas para cada plataforma " +"existente, por lo que los Distutils están diseñados para permitir que los " +"desarrolladores de módulos se concentren en su especialidad---escribir " +"código y crear distribuciones de fuentes---mientras una especie intermedia " +"llamada empaquetadores surge para convertir las distribuciones de fuentes en " +"distribuciones compiladas para tantas plataformas como empaquetadores." #: ../Doc/distutils/builtdist.rst:26 msgid "" @@ -65,12 +88,22 @@ msgid "" "are, a packager uses the setup script and the :command:`bdist` command " "family to generate built distributions." msgstr "" +"Por supuesto, el desarrollador del módulo podría ser su propio empaquetador; " +"o el empaquetador podría ser un voluntario \"por ahí\" en algún lugar que " +"tenga acceso a una plataforma a la que el desarrollador original no tiene; o " +"podría ser software que periódicamente obtiene nuevas distribuciones de " +"fuentes y las convierte en distribuciones compiladas para tantas plataformas " +"como el software tenga acceso. Independientemente de quiénes sean, un " +"empaquetador utiliza el script de configuración y la familia de comandos :" +"command:`bdist` para generar distribuciones compiladas." #: ../Doc/distutils/builtdist.rst:34 msgid "" "As a simple example, if I run the following command in the Distutils source " "tree::" msgstr "" +"Como un ejemplo sencillo, si ejecuto el siguiente comando en el árbol de " +"código de Distutils::" #: ../Doc/distutils/builtdist.rst:39 msgid "" @@ -82,6 +115,14 @@ msgid "" "considered \"dumb\" because it has to be unpacked in a specific location to " "work.)" msgstr "" +"a continuación, Distutils crea mi distribución de módulos (el propio " +"Distutils en este caso), realiza una instalación \"falsa\" (también en el " +"directorio :file:`build`) y crea el tipo predeterminado de distribución " +"compilada para mi plataforma. El formato predeterminado para las " +"distribuciones compiladas es un archivo tar \"dumb\" en Unix, y un simple " +"instalador ejecutable en Windows. (Ese archivo tar se considera \"dumb\" " +"porque tiene que ser desempaquetado en una ubicación específica para " +"funcionar.)" #: ../Doc/distutils/builtdist.rst:46 msgid "" @@ -93,6 +134,13 @@ msgid "" "given to the :command:`bdist_dumb` command; the default is to make dumb " "distributions relative to :file:`{prefix}`.)" msgstr "" +"Por lo tanto, el comando anterior en un sistema Unix crea :file:" +"`Distutils-1.0.{plat}.tar.gz`; desempaquetar este tarball desde el lugar " +"correcto instala el Distutils como si hubiera descargado la distribución de " +"fuentes y ejecutado ``python setup.py install``. (El \"lugar correcto\" es " +"la raíz del sistema de ficheros o del directorio :file:`{prefix}` de Python, " +"dependiendo de las opciones dadas al comando :command:`bdist_dumb`; por " +"defecto se realizan distribuciones *dumb* relativas a :file:`{prefix}`.)" #: ../Doc/distutils/builtdist.rst:54 msgid "" @@ -104,6 +152,13 @@ msgid "" "executable installer for Windows, is far more convenient for users even if " "your distribution doesn't include any extensions." msgstr "" +"Obviamente, para distribuciones puras de Python, esto es tan simple como " +"ejecutar ``python setup.py install``\\ ---pero para distribuciones no puras, " +"que incluyen extensiones que tendrían que ser compiladas, puede significar " +"la diferencia entre alguien que puede usar sus extensiones o no. Y crear " +"distribuciones compiladas \"inteligentes\", como un paquete RPM o un " +"instalador ejecutable para Windows, es mucho más conveniente para los " +"usuarios, incluso si su distribución no incluye ninguna extensión." #: ../Doc/distutils/builtdist.rst:62 msgid "" @@ -111,6 +166,9 @@ msgid "" "the :command:`sdist` command, which you can use to select the types of built " "distribution to generate: for example, ::" msgstr "" +"El comando :command:`bdist` tiene una opción :option:`!--formats` , similar " +"al comando :command:`sdist`, que puede utilizar para seleccionar los tipos " +"de distribución compilada a generar: por ejemplo, ::" #: ../Doc/distutils/builtdist.rst:68 msgid "" @@ -118,162 +176,169 @@ msgid "" "---again, this archive would be unpacked from the root directory to install " "the Distutils." msgstr "" +"cuando se ejecuta en un sistema *Unix*, crearía :file:`Distutils-1.0.{plat}." +"zip`\\ ---de nuevo, este archivo sería desempaquetado desde el directorio " +"raíz para instalar *Distutils*." #: ../Doc/distutils/builtdist.rst:72 msgid "The available formats for built distributions are:" -msgstr "" +msgstr "Los formatos disponibles para distribuciones compiladas son:" #: ../Doc/distutils/builtdist.rst:75 msgid "Format" -msgstr "" +msgstr "Formato" #: ../Doc/distutils/builtdist.rst:75 msgid "Description" -msgstr "" +msgstr "Descripción" #: ../Doc/distutils/builtdist.rst:75 msgid "Notes" -msgstr "" +msgstr "Notas" #: ../Doc/distutils/builtdist.rst:77 msgid "``gztar``" -msgstr "" +msgstr "``gztar``" #: ../Doc/distutils/builtdist.rst:77 msgid "gzipped tar file (:file:`.tar.gz`)" -msgstr "" +msgstr "archivo *gzipped tar* (:file:`.tar.gz`)" #: ../Doc/distutils/builtdist.rst:77 msgid "\\(1)" -msgstr "" +msgstr "\\(1)" #: ../Doc/distutils/builtdist.rst:80 msgid "``bztar``" -msgstr "" +msgstr "``bztar``" #: ../Doc/distutils/builtdist.rst:80 msgid "bzipped tar file (:file:`.tar.bz2`)" -msgstr "" +msgstr "archivo *bzipped tar* (:file:`.tar.bz2`)" #: ../Doc/distutils/builtdist.rst:83 msgid "``xztar``" -msgstr "" +msgstr "``xztar``" #: ../Doc/distutils/builtdist.rst:83 msgid "xzipped tar file (:file:`.tar.xz`)" -msgstr "" +msgstr "archivo *xzipped tar* (:file:`.tar.xz`)" #: ../Doc/distutils/builtdist.rst:86 msgid "``ztar``" -msgstr "" +msgstr "``ztar``" #: ../Doc/distutils/builtdist.rst:86 msgid "compressed tar file (:file:`.tar.Z`)" -msgstr "" +msgstr "archivo *tar* comprimido (:file:`.tar.Z`)" #: ../Doc/distutils/builtdist.rst:86 msgid "\\(3)" -msgstr "" +msgstr "\\(3)" #: ../Doc/distutils/builtdist.rst:89 msgid "``tar``" -msgstr "" +msgstr "``tar``" #: ../Doc/distutils/builtdist.rst:89 msgid "tar file (:file:`.tar`)" -msgstr "" +msgstr "archivo *tar* (:file:`.tar`)" #: ../Doc/distutils/builtdist.rst:91 msgid "``zip``" -msgstr "" +msgstr "``zip``" #: ../Doc/distutils/builtdist.rst:91 msgid "zip file (:file:`.zip`)" -msgstr "" +msgstr "archivo *zip* (:file:`.zip`)" #: ../Doc/distutils/builtdist.rst:91 msgid "(2),(4)" -msgstr "" +msgstr "(2),(4)" #: ../Doc/distutils/builtdist.rst:93 msgid "``rpm``" -msgstr "" +msgstr "``rpm``" #: ../Doc/distutils/builtdist.rst:93 msgid "RPM" -msgstr "" +msgstr "*RPM*" #: ../Doc/distutils/builtdist.rst:93 msgid "\\(5)" -msgstr "" +msgstr "\\(5)" #: ../Doc/distutils/builtdist.rst:95 msgid "``pkgtool``" -msgstr "" +msgstr "``pkgtool``" #: ../Doc/distutils/builtdist.rst:95 msgid "Solaris :program:`pkgtool`" -msgstr "" +msgstr "Solaris :program:`pkgtool`" #: ../Doc/distutils/builtdist.rst:97 msgid "``sdux``" -msgstr "" +msgstr "``sdux``" #: ../Doc/distutils/builtdist.rst:97 msgid "HP-UX :program:`swinstall`" -msgstr "" +msgstr "HP-UX :program:`swinstall`" #: ../Doc/distutils/builtdist.rst:99 msgid "``wininst``" -msgstr "" +msgstr "``wininst``" #: ../Doc/distutils/builtdist.rst:99 msgid "self-extracting ZIP file for Windows" -msgstr "" +msgstr "archivo *ZIP* autoextraíble para Windows" #: ../Doc/distutils/builtdist.rst:99 msgid "\\(4)" -msgstr "" +msgstr "\\(4)" #: ../Doc/distutils/builtdist.rst:102 msgid "``msi``" -msgstr "" +msgstr "``msi``" #: ../Doc/distutils/builtdist.rst:102 msgid "Microsoft Installer." -msgstr "" +msgstr "Instalador Microsoft." #: ../Doc/distutils/builtdist.rst:105 msgid "Added support for the ``xztar`` format." -msgstr "" +msgstr "Añadido soporte para el formato ``xztar``." #: ../Doc/distutils/builtdist.rst:109 msgid "Notes:" -msgstr "" +msgstr "Notas:" #: ../Doc/distutils/builtdist.rst:112 msgid "default on Unix" -msgstr "" +msgstr "predeterminado en *Unix*" #: ../Doc/distutils/builtdist.rst:115 msgid "default on Windows" -msgstr "" +msgstr "predeterminado en Windows" #: ../Doc/distutils/builtdist.rst:118 msgid "requires external :program:`compress` utility." -msgstr "" +msgstr "requiere utilidad externa :program:`compress` ." #: ../Doc/distutils/builtdist.rst:121 msgid "" "requires either external :program:`zip` utility or :mod:`zipfile` module " "(part of the standard Python library since Python 1.6)" msgstr "" +"requiere o bien la utilidad externa :program:`zip` o bien el módulo :mod:" +"`zipfile` (parte de la librería estándar de Python desde Python 1.6)" #: ../Doc/distutils/builtdist.rst:125 msgid "" "requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm " "--version`` to find out which version you have)" msgstr "" +"requiere la utilidad externa :program:`rpm`, versión 3.0.4 o mejor (usar " +"``rpm --version`` para descubrir que versión tiene)" #: ../Doc/distutils/builtdist.rst:128 msgid "" @@ -286,61 +351,71 @@ msgid "" "`bdist_rpm` generates both binary and source RPMs. The :command:`bdist` sub-" "commands, and the formats generated by each, are:" 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" +"\" (``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:" #: ../Doc/distutils/builtdist.rst:138 msgid "Command" -msgstr "" +msgstr "Comando" #: ../Doc/distutils/builtdist.rst:138 msgid "Formats" -msgstr "" +msgstr "Formatos" #: ../Doc/distutils/builtdist.rst:140 msgid ":command:`bdist_dumb`" -msgstr "" +msgstr ":command:`bdist_dumb`" #: ../Doc/distutils/builtdist.rst:140 msgid "tar, gztar, bztar, xztar, ztar, zip" -msgstr "" +msgstr "*tar*, *gztar*, *bztar*, *xztar*, *ztar*, *zip*" #: ../Doc/distutils/builtdist.rst:142 msgid ":command:`bdist_rpm`" -msgstr "" +msgstr ":command:`bdist_rpm`" #: ../Doc/distutils/builtdist.rst:142 msgid "rpm, srpm" -msgstr "" +msgstr "*rpm*,* srpm*" #: ../Doc/distutils/builtdist.rst:144 msgid ":command:`bdist_wininst`" -msgstr "" +msgstr ":command:`bdist_wininst`" #: ../Doc/distutils/builtdist.rst:144 msgid "wininst" -msgstr "" +msgstr "*wininst*" #: ../Doc/distutils/builtdist.rst:146 msgid ":command:`bdist_msi`" -msgstr "" +msgstr ":command:`bdist_msi`" #: ../Doc/distutils/builtdist.rst:146 msgid "msi" -msgstr "" +msgstr "*msi*" #: ../Doc/distutils/builtdist.rst:150 ../Doc/distutils/builtdist.rst:305 #: ../Doc/distutils/builtdist.rst:470 msgid "bdist_wininst is deprecated since Python 3.8." -msgstr "" +msgstr "*bdist_wininst* se encuentra obsoleto desde Python 3.8." #: ../Doc/distutils/builtdist.rst:152 msgid "" "The following sections give details on the individual :command:`bdist_\\*` " "commands." msgstr "" +"Las siguientes secciones proporcionan detalles sobre los comandos " +"individuales de :command:`bdist_\\*` ." #: ../Doc/distutils/builtdist.rst:168 msgid "Creating RPM packages" -msgstr "" +msgstr "Creando paquetes *RPM*" #: ../Doc/distutils/builtdist.rst:170 msgid "" @@ -352,16 +427,25 @@ msgid "" "distributions, you may also be able to create RPMs that work on different " "RPM-based distributions." msgstr "" +"El formato *RPM* se usa en muchas distribuciones de Linux populares, " +"incluyendo *Red Hat*, *SuSE*, y *Mandrake*. Si alguna de éstas (o cualquier " +"otra distribución de Linux basada en *RPM*) es su entorno habitual, crear " +"paquetes *RPM* para otros usuarios de la misma distribución es trivial. " +"Dependiendo de la complejidad de su módulo de distribución y las diferencias " +"entre distribuciones Linux, también podrá crear *RPMs* que funcionen en " +"distribuciones diferentes basadas en *RPM*." #: ../Doc/distutils/builtdist.rst:177 msgid "" "The usual way to create an RPM of your module distribution is to run the :" "command:`bdist_rpm` command::" msgstr "" +"El forma más común de crear un *RPM* de su distribución de módulo es " +"ejecutar el comando :command:`bdist_rpm` ::" #: ../Doc/distutils/builtdist.rst:182 msgid "or the :command:`bdist` command with the :option:`!--format` option::" -msgstr "" +msgstr "o el comando :command:`bdist` con la opción :option:`!--format` ::" #: ../Doc/distutils/builtdist.rst:186 msgid "" @@ -370,6 +454,10 @@ msgid "" "you can explicitly specify multiple :command:`bdist_\\*` commands and their " "options::" msgstr "" +"El primero permite especificar las opciones específicas de *RPM*; el segundo " +"permite especificar fácilmente varios formatos en una ejecución. Si necesita " +"hacer los dos, se pueden especificar explícitamente múltiples comandos :" +"command:`bdist_\\*` y sus opciones::" #: ../Doc/distutils/builtdist.rst:193 msgid "" @@ -380,73 +468,82 @@ msgid "" "any Distutils configuration files. Various options and sections in the :" "file:`.spec` file are derived from options in the setup script as follows:" msgstr "" +"La creación de paquetes *RPM* es impulsada por un archivo :file:`.spec`, al " +"igual que el uso de *Distutils* es impulsado por el script de configuración. " +"Para hacer su vida más fácil, el comando :command:`bdist_rpm` normalmente " +"crea un archivo :file:`.spec` basado en la información que usted " +"proporciona en el script de configuración, en la línea de comandos y en " +"cualquier archivo de configuración de *Distutils*. Varias opciones y " +"secciones en el archivo :file:`.spec` se derivan de las opciones del script " +"de configuración de la siguiente manera:" #: ../Doc/distutils/builtdist.rst:201 ../Doc/distutils/builtdist.rst:225 msgid "RPM :file:`.spec` file option or section" -msgstr "" +msgstr "Opción de archivo *RPM* :file:`.spec` o sección" #: ../Doc/distutils/builtdist.rst:201 msgid "Distutils setup script option" -msgstr "" +msgstr "Opción del script de instalación de *Distutils*" #: ../Doc/distutils/builtdist.rst:203 msgid "Name" -msgstr "" +msgstr "Nombre" #: ../Doc/distutils/builtdist.rst:203 msgid "``name``" -msgstr "" +msgstr "``name``" #: ../Doc/distutils/builtdist.rst:205 msgid "Summary (in preamble)" -msgstr "" +msgstr "Resumen (en el preámbulo)" #: ../Doc/distutils/builtdist.rst:205 msgid "``description``" -msgstr "" +msgstr "``description``" #: ../Doc/distutils/builtdist.rst:207 msgid "Version" -msgstr "" +msgstr "Versión" #: ../Doc/distutils/builtdist.rst:207 msgid "``version``" -msgstr "" +msgstr "``version``" #: ../Doc/distutils/builtdist.rst:209 ../Doc/distutils/builtdist.rst:232 msgid "Vendor" -msgstr "" +msgstr "Vendedor" #: ../Doc/distutils/builtdist.rst:209 msgid "" "``author`` and ``author_email``, or --- & ``maintainer`` and " "``maintainer_email``" msgstr "" +"``author`` y ``author_email``, o --- & ``maintainer`` y ``maintainer_email``" #: ../Doc/distutils/builtdist.rst:213 msgid "Copyright" -msgstr "" +msgstr "Copyright" #: ../Doc/distutils/builtdist.rst:213 msgid "``license``" -msgstr "" +msgstr "``license``" #: ../Doc/distutils/builtdist.rst:215 msgid "Url" -msgstr "" +msgstr "Url" #: ../Doc/distutils/builtdist.rst:215 msgid "``url``" -msgstr "" +msgstr "``url``" #: ../Doc/distutils/builtdist.rst:217 #, python-format msgid "%description (section)" -msgstr "" +msgstr "%description (sección)" #: ../Doc/distutils/builtdist.rst:217 msgid "``long_description``" -msgstr "" +msgstr "``long_description``" #: ../Doc/distutils/builtdist.rst:220 msgid "" @@ -454,117 +551,121 @@ msgid "" "corresponding options in the setup script. Most of these are handled " "through options to the :command:`bdist_rpm` command as follows:" msgstr "" +"Adicionalmente, hay muchas opciones en los archivos :file:`.spec` que no se " +"corresponden a opciones en el script de configuración. La mayoría de éstas " +"están manejadas a través de opciones al comando :command:`bdist_rpm` como " +"sigue:" #: ../Doc/distutils/builtdist.rst:225 msgid ":command:`bdist_rpm` option" -msgstr "" +msgstr "Opción :command:`bdist_rpm`" #: ../Doc/distutils/builtdist.rst:225 msgid "default value" -msgstr "" +msgstr "valor predefinido" #: ../Doc/distutils/builtdist.rst:228 msgid "Release" -msgstr "" +msgstr "*Release*" #: ../Doc/distutils/builtdist.rst:228 msgid "``release``" -msgstr "" +msgstr "``release``" #: ../Doc/distutils/builtdist.rst:228 msgid "\"1\"" -msgstr "" +msgstr "\"1\"" #: ../Doc/distutils/builtdist.rst:230 msgid "Group" -msgstr "" +msgstr "Grupo" #: ../Doc/distutils/builtdist.rst:230 msgid "``group``" -msgstr "" +msgstr "``group``" #: ../Doc/distutils/builtdist.rst:230 msgid "\"Development/Libraries\"" -msgstr "" +msgstr "\"Desarrollo/Librerías\"" #: ../Doc/distutils/builtdist.rst:232 msgid "``vendor``" -msgstr "" +msgstr "``vendor``" #: ../Doc/distutils/builtdist.rst:232 msgid "(see above)" -msgstr "" +msgstr "(ver arriba)" #: ../Doc/distutils/builtdist.rst:234 msgid "Packager" -msgstr "" +msgstr "Empaquetador" #: ../Doc/distutils/builtdist.rst:234 msgid "``packager``" -msgstr "" +msgstr "``packager``" #: ../Doc/distutils/builtdist.rst:234 ../Doc/distutils/builtdist.rst:236 #: ../Doc/distutils/builtdist.rst:238 ../Doc/distutils/builtdist.rst:240 #: ../Doc/distutils/builtdist.rst:242 ../Doc/distutils/builtdist.rst:244 #: ../Doc/distutils/builtdist.rst:246 ../Doc/distutils/builtdist.rst:248 msgid "(none)" -msgstr "" +msgstr "(ninguno)" #: ../Doc/distutils/builtdist.rst:236 msgid "Provides" -msgstr "" +msgstr "Proporciona" #: ../Doc/distutils/builtdist.rst:236 msgid "``provides``" -msgstr "" +msgstr "``provides``" #: ../Doc/distutils/builtdist.rst:238 msgid "Requires" -msgstr "" +msgstr "Requiere" #: ../Doc/distutils/builtdist.rst:238 msgid "``requires``" -msgstr "" +msgstr "``requires``" #: ../Doc/distutils/builtdist.rst:240 msgid "Conflicts" -msgstr "" +msgstr "Conflictos" #: ../Doc/distutils/builtdist.rst:240 msgid "``conflicts``" -msgstr "" +msgstr "``conflicts``" #: ../Doc/distutils/builtdist.rst:242 msgid "Obsoletes" -msgstr "" +msgstr "Obsolescencias" #: ../Doc/distutils/builtdist.rst:242 msgid "``obsoletes``" -msgstr "" +msgstr "``obsoletes``" #: ../Doc/distutils/builtdist.rst:244 msgid "Distribution" -msgstr "" +msgstr "Distribución" #: ../Doc/distutils/builtdist.rst:244 msgid "``distribution_name``" -msgstr "" +msgstr "``distribution_name``" #: ../Doc/distutils/builtdist.rst:246 msgid "BuildRequires" -msgstr "" +msgstr "Requisitos de compilación" #: ../Doc/distutils/builtdist.rst:246 msgid "``build_requires``" -msgstr "" +msgstr "``build_requires``" #: ../Doc/distutils/builtdist.rst:248 msgid "Icon" -msgstr "" +msgstr "Icono" #: ../Doc/distutils/builtdist.rst:248 msgid "``icon``" -msgstr "" +msgstr "``icon``" #: ../Doc/distutils/builtdist.rst:251 msgid "" @@ -577,12 +678,23 @@ msgid "" "disable this file, you can pass the :option:`!--no-user-cfg` option to :file:" "`setup.py`." msgstr "" +"Obviamente, proporcionar incluso algunas de estas opciones en la línea de " +"comandos sería tedioso y propenso a errores, por lo que generalmente es " +"mejor ponerlas en el archivo de configuración de instalación,:file:`setup." +"cfg`\\ --- ver sección :ref:`setup-config`. Si distribuye o empaqueta muchas " +"distribuciones de módulos de Python, es posible que desee incluir opciones " +"que se apliquen a todas ellas en su archivo de configuración personal de " +"*Distutils* (:file:`~/.pydistutils.cfg`). Si desea deshabilitar " +"temporalmente este archivo, puede pasar la opción :option:`!--no-user-cfg` " +"a :file:`setup.py`." #: ../Doc/distutils/builtdist.rst:259 msgid "" "There are three steps to building a binary RPM package, all of which are " "handled automatically by the Distutils:" msgstr "" +"Hay tres pasos para construir un paquete *RPM* binario, los cuales son " +"manejados automáticamente por *Distutils*:" #: ../Doc/distutils/builtdist.rst:262 msgid "" @@ -590,22 +702,29 @@ msgid "" "Distutils setup script; in fact, much of the information in the setup " "script winds up in the :file:`.spec` file)" msgstr "" +"crear un archivo :file:`.spec`. que describe el paquete (análogo al script " +"de configuración de Distutils; de hecho, gran parte de la información en el " +"script de configuración termina en el fichero :file:`.spec` )" #: ../Doc/distutils/builtdist.rst:266 msgid "create the source RPM" -msgstr "" +msgstr "crear el fuente RPM" #: ../Doc/distutils/builtdist.rst:268 msgid "" "create the \"binary\" RPM (which may or may not contain binary code, " "depending on whether your module distribution contains Python extensions)" msgstr "" +"crear el \"binario\" RPM (que puede o no contener código binario, " +"dependiendo de si la distribución de su módulo contiene extensiones Python)" #: ../Doc/distutils/builtdist.rst:271 msgid "" "Normally, RPM bundles the last two steps together; when you use the " "Distutils, all three steps are typically bundled together." msgstr "" +"Normalmente, *RPM* agrupa los dos últimos pasos; cuando usa las *Distutils*, " +"los tres pasos generalmente están agrupados." #: ../Doc/distutils/builtdist.rst:274 msgid "" @@ -617,10 +736,17 @@ msgid "" "winds up deep in the \"build tree,\" in a temporary directory created by :" "command:`bdist_rpm`.)" msgstr "" +"Si lo desea, puede separar estos tres pasos. Puede usar la opción :option:" +"`!--spec-only` para hacer :command:`bdist_rpm` simplemente cree el archivo :" +"file:`.spec` y salga; en este caso, el archivo :file:`.spec` se escribirá en " +"el \"directorio de distribución\"--- normalmente :file:`dist/`, pero se " +"puede personalizar con la opción :option:`!--dist-dir`. (Normalmente, el " +"archivo :file:`.spec` termina en lo más profundo del \"árbol de compilación" +"\", en un directorio temporal creado por :command:`bdist_rpm`.)" #: ../Doc/distutils/builtdist.rst:302 msgid "Creating Windows Installers" -msgstr "" +msgstr "Crear instaladores de Windows" #: ../Doc/distutils/builtdist.rst:307 msgid "" @@ -630,16 +756,23 @@ msgid "" "metadata in the setup script, let the user select a few options, and start " "or cancel the installation." msgstr "" +"Los instaladores ejecutables son el formato natural para distribuciones " +"binarias en Windows. Muestran una agradable interfaz gráfica de usuario, con " +"información sobre la distribución del módulo que se instalará extraída de " +"los metadatos en el script de configuración, permiten al usuario seleccionar " +"algunas opciones e iniciar o cancelar la instalación." #: ../Doc/distutils/builtdist.rst:313 msgid "" "Since the metadata is taken from the setup script, creating Windows " "installers is usually as easy as running::" msgstr "" +"Dado que los metadatos se toman del script de configuración, crear " +"instaladores de Windows suele ser tan fácil como ejecutar::" #: ../Doc/distutils/builtdist.rst:318 msgid "or the :command:`bdist` command with the :option:`!--formats` option::" -msgstr "" +msgstr "o el comando :command:`bdist` con la opción :option:`!--formats` ::" #: ../Doc/distutils/builtdist.rst:322 msgid "" @@ -648,6 +781,11 @@ msgid "" "a name like :file:`foo-1.0.win32.exe`. Note that creating ``wininst`` binary " "distributions in only supported on Windows systems." msgstr "" +"Si tiene una distribución de módulo pura (sólo conteniendo módulos de Python " +"puros y paquetes), el instalador resultante será independiente de la versión " +"y tendrá un nombre similar a :file:`foo-1.0.win32.exe`. Tenga en cuenta que " +"crear distribuciones binarias ``wininst`` sólo se soporta en sistemas " +"Windows." #: ../Doc/distutils/builtdist.rst:327 msgid "" @@ -657,6 +795,11 @@ msgid "" "exe`. You have to create a separate installer for every Python version you " "want to support." msgstr "" +"Si tiene distribuciones no puras, las extensiones sólo se pueden crear en " +"una plataforma Windows, y serán dependientes de la versión de Python. El " +"nombre de archivo del instalador reflejará esto y ahora tiene la forma :file:" +"`foo-1.0.win32-py2.0.exe`. Debe crear un instalador separado para cada " +"versión de Python que se quiera soportar." #: ../Doc/distutils/builtdist.rst:333 msgid "" @@ -666,6 +809,11 @@ msgid "" "`bdist_wininst` command with the :option:`!--no-target-compile` and/or the :" "option:`!--no-target-optimize` option." msgstr "" +"El instalador intentará compilar módulos puros en :term:`bytecode` después " +"de la instalación en el sistema de destino en modo normal y optimizado. Si " +"no desea que esto suceda por alguna razón, puede ejecutar el comando :" +"command:`bdist_wininst` con la opción :option:`!--no-target-compile` o la " +"opción :option:`!--no-target-optimize`." #: ../Doc/distutils/builtdist.rst:339 msgid "" @@ -673,6 +821,10 @@ msgid "" "it is run, but you can also supply your own 152x261 bitmap which must be a " "Windows :file:`.bmp` file with the :option:`!--bitmap` option." msgstr "" +"Por defecto, el instalador mostrará el genial logo \"Python Powered\" cuando " +"se ejecute, pero puede también proporcionar su propio mapa de bits de " +"152x261 que debe ser un archivo Windows :file:`.bmp` con la opción :option:" +"`!--bitmap`." #: ../Doc/distutils/builtdist.rst:343 msgid "" @@ -681,6 +833,10 @@ msgid "" "distribution and the version number. This can be changed to another text by " "using the :option:`!--title` option." msgstr "" +"El instalador también mostrará un título grande en la pantalla de fondo del " +"escritorio cuando se ejecute, que se construye a partir del nombre de su " +"distribución y el número de versión. Esto se puede cambiar a otro texto " +"usando la opción :option:`!--title`." #: ../Doc/distutils/builtdist.rst:348 msgid "" @@ -688,10 +844,13 @@ msgid "" "normally :file:`dist/`, but customizable with the :option:`!--dist-dir` " "option." msgstr "" +"El archivo de instalación se escribirá en el \"directorio de distribución\" " +"--- normalmente :file:`dist/`, pero se puede personalizar con la opción :" +"option:`!--dist-dir`." #: ../Doc/distutils/builtdist.rst:354 msgid "Cross-compiling on Windows" -msgstr "" +msgstr "Compilación cruzada en Windows" #: ../Doc/distutils/builtdist.rst:356 msgid "" @@ -700,6 +859,10 @@ msgid "" "installed, you can use a 32bit version of Windows to create 64bit extensions " "and vice-versa." msgstr "" +"A partir de Python 2.6, distutils es capaz de realizar una compilación " +"cruzada entre plataformas Windows. En la práctica, esto significa que con " +"las herramientas correctas instaladas, puede usar una versión de Windows de " +"32bit para crear extensiones de 64bit y viceversa." #: ../Doc/distutils/builtdist.rst:361 msgid "" @@ -707,18 +870,26 @@ msgid "" "option to the build command. Valid values are currently 'win32', and 'win-" "amd64'. For example, on a 32bit version of Windows, you could execute::" msgstr "" +"Para compilar para una plataforma alternativa, especifique la opción :option:" +"`!--plat-name` del comando de compilación. Los valores válidos son " +"actualmente 'win32', y 'win-amd64'. Por ejemplo, en una versión de Windows " +"de 32bit, puede ejecutar::" #: ../Doc/distutils/builtdist.rst:367 msgid "" "to build a 64bit version of your extension. The Windows Installers also " "support this option, so the command::" msgstr "" +"para crear una versión de 64bit de su extensión. Los instaladores de Windows " +"también admiten esta opción, por lo que el comando::" #: ../Doc/distutils/builtdist.rst:372 msgid "" "would create a 64bit installation executable on your 32bit version of " "Windows." msgstr "" +"crearía un ejecutable de instalación de 64bit en su versión de 32bit de " +"Windows." #: ../Doc/distutils/builtdist.rst:374 msgid "" @@ -731,6 +902,14 @@ msgid "" "configuration of the 'pythoncore' project before cross-compiling extensions " "is possible." msgstr "" +"Para realizar una compilación cruzada, debe descargar el código fuente de " +"Python y compilar el propio Python para la plataforma a la que se dirige; no " +"es posible desde una instalación binaria de Python (ya que el archivo *.lib* " +"etc para otras plataformas no está incluido). En la práctica, esto significa " +"que el usuario de un sistema operativo de 32bit necesitará usar Visual " +"Studio 2008 para abrir la solución :file:`PCbuild/PCbuild.sln` en el árbol " +"de código de Python y construir la configuración \" x64 \" del proyecto " +"'pythoncore' antes de que sea posible la compilación cruzada de extensiones." #: ../Doc/distutils/builtdist.rst:383 msgid "" @@ -739,10 +918,15 @@ msgid "" "these tools (using Control Panel->[Add/Remove] Programs is a convenient way " "to check or modify your existing install.)" msgstr "" +"Tenga en cuenta que, de forma predeterminada, Visual Studio 2008 no instala " +"compiladores o herramientas de 64bit. Es posible que deba volver a ejecutar " +"el proceso de instalación de Visual Studio y seleccionar estas herramientas " +"(usar Panel de control -> [Agregar/Quitar] Programas es una forma " +"conveniente de verificar o modificar su instalación existente)." #: ../Doc/distutils/builtdist.rst:391 msgid "The Postinstallation script" -msgstr "" +msgstr "El script posterior a la instalación" #: ../Doc/distutils/builtdist.rst:393 msgid "" @@ -751,6 +935,10 @@ msgid "" "specified, and the script filename must also be listed in the scripts " "argument to the setup function." msgstr "" +"A partir de Python 2.3, se puede especificar un script posterior a la " +"instalación con la opción :option:`!--install-script` . Se debe especificar " +"el nombre base del script y el nombre del archivo del *script* también se " +"debe incluir en el argumento de los scripts de la función de configuración." #: ../Doc/distutils/builtdist.rst:398 msgid "" @@ -759,6 +947,11 @@ msgid "" "again at uninstallation time before the files are removed with ``argv[1]`` " "set to :option:`!-remove`." msgstr "" +"Este script se ejecutará en el momento de la instalación en el sistema de " +"destino después de que se hayan copiado todos los archivos, con ``argv[1]`` " +"establecido en :option:`!-install`, y nuevamente en el momento de la " +"desinstalación antes de que se eliminen los archivos con ``argv[1]`` " +"establecido en :option:`!-remove`." #: ../Doc/distutils/builtdist.rst:403 msgid "" @@ -766,12 +959,17 @@ msgid "" "(``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be " "displayed in the GUI after the script has finished." msgstr "" +"El script de instalación se ejecuta incrustado en el instalador de Windows, " +"cada salida (``sys.stdout``, ``sys.stderr``) se redirige a un búfer y se " +"mostrará en la GUI una vez finalizado el *script*." #: ../Doc/distutils/builtdist.rst:407 msgid "" "Some functions especially useful in this context are available as additional " "built-in functions in the installation script." msgstr "" +"Algunas funciones especialmente útiles en este contexto están disponibles " +"como funciones integradas adicionales en el script de instalación." #: ../Doc/distutils/builtdist.rst:414 msgid "" @@ -780,6 +978,11 @@ msgid "" "uninstaller, so that it will be removed when the distribution is " "uninstalled. To be safe, directories are only removed if they are empty." msgstr "" +"Estas funciones deben llamarse cuando el script posterior a la instalación " +"crea un directorio o archivo en el momento de la instalación. Registrará " +"*path* con el des-instalador, de modo que se eliminará cuando se desinstale " +"la distribución. Para mayor seguridad, los directorios solo se eliminan si " +"están vacíos." #: ../Doc/distutils/builtdist.rst:422 msgid "" @@ -787,10 +990,14 @@ msgid "" "like the Start Menu or the Desktop. It returns the full path to the folder. " "*csidl_string* must be one of the following strings::" msgstr "" +"Esta función se puede utilizar para recuperar ubicaciones de directorios " +"especiales en Windows como el menú Inicio o el escritorio. Retorna la ruta " +"completa al directorio. *csidl_string* debe ser una de las siguientes " +"cadenas::" #: ../Doc/distutils/builtdist.rst:442 msgid "If the folder cannot be retrieved, :exc:`OSError` is raised." -msgstr "" +msgstr "Si no se puede recuperar el directorio, se lanza :exc:`OSError`." #: ../Doc/distutils/builtdist.rst:444 msgid "" @@ -798,6 +1005,10 @@ msgid "" "probably also the configuration. For details refer to Microsoft's " "documentation of the :c:func:`SHGetSpecialFolderPath` function." msgstr "" +"Los directorios disponibles dependen de la versión exacta de Windows y " +"probablemente también de la configuración. Para obtener más información, " +"consulte la documentación de Microsoft de la función :c:func:" +"`SHGetSpecialFolderPath` ." #: ../Doc/distutils/builtdist.rst:451 msgid "" @@ -810,10 +1021,18 @@ msgid "" "*iconpath*. Again, for details consult the Microsoft documentation for the :" "class:`IShellLink` interface." msgstr "" +"Esta función crea un atajo. *target* es la ruta al programa que se iniciará " +"con el acceso directo. *description* es la descripción del atajo. *filename* " +"es el título del acceso directo que verá el usuario. *arguments* especifica " +"los argumentos de la línea de comandos, si los hay. *workdir* es el " +"directorio de trabajo del programa. *iconpath* es el archivo que contiene el " +"icono del acceso directo, y *iconindex* es el índice del icono en el archivo " +"*iconpath*. Nuevamente, para obtener más detalles, consulte la documentación " +"de Microsoft para la interfaz :class:`IShellLink`." #: ../Doc/distutils/builtdist.rst:462 msgid "Vista User Access Control (UAC)" -msgstr "" +msgstr "*Vista User Access Control (UAC)*" #: ../Doc/distutils/builtdist.rst:464 msgid "" @@ -823,3 +1042,9 @@ msgid "" "Python was installed for all users) and 'force' (meaning always prompt for " "elevation)." msgstr "" +"A partir de Python 2.6, *bdist_wininst* admite una opción :option:`!--user-" +"access-control`. El valor predeterminado es 'none' (lo que significa que no " +"se realiza ningún gestión de UAC), y otros valores válidos son 'auto' (lo " +"que significa que se solicita la elevación de UAC si Python se instaló para " +"todos los usuarios) y 'force' (que significa que siempre se solicita la " +"elevación)." diff --git a/distutils/commandref.po b/distutils/commandref.po index 051f6629d7..f98eb63151 100644 --- a/distutils/commandref.po +++ b/distutils/commandref.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: 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: 2020-10-22 02:33-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" +"Last-Translator: José Luis Salgado Banda\n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/distutils/commandref.rst:5 msgid "Command Reference" @@ -56,98 +57,112 @@ msgstr ":command:`install_data`" #: ../Doc/distutils/commandref.rst:39 msgid "This command installs all data files provided with the distribution." msgstr "" +"Este comando instala todos los archivos de datos proporcionados con la " +"distribución." #: ../Doc/distutils/commandref.rst:45 msgid ":command:`install_scripts`" -msgstr "" +msgstr ":command:`install_scripts`" #: ../Doc/distutils/commandref.rst:47 msgid "This command installs all (Python) scripts in the distribution." -msgstr "" +msgstr "Este comando instala todos los scripts (Python) en la distribución." #: ../Doc/distutils/commandref.rst:56 msgid "Creating a source distribution: the :command:`sdist` command" -msgstr "" +msgstr "Creando una distribución de origen: el comando :command:`sdist`" #: ../Doc/distutils/commandref.rst:60 msgid "The manifest template commands are:" -msgstr "" +msgstr "Los comandos de la plantilla manifest son:" #: ../Doc/distutils/commandref.rst:63 msgid "Command" -msgstr "" +msgstr "Comando" #: ../Doc/distutils/commandref.rst:63 msgid "Description" -msgstr "" +msgstr "Descripción" #: ../Doc/distutils/commandref.rst:65 msgid ":command:`include pat1 pat2 ...`" -msgstr "" +msgstr ":command:`include pat1 pat2 ...`" #: ../Doc/distutils/commandref.rst:65 msgid "include all files matching any of the listed patterns" msgstr "" +"incluye todos los archivos que coincidan con cualquiera de los patrones " +"enumerados" #: ../Doc/distutils/commandref.rst:68 msgid ":command:`exclude pat1 pat2 ...`" -msgstr "" +msgstr ":command:`exclude pat1 pat2 ...`" #: ../Doc/distutils/commandref.rst:68 msgid "exclude all files matching any of the listed patterns" msgstr "" +"excluye todos los archivos que coincidan con cualquiera de los patrones " +"enumerados" #: ../Doc/distutils/commandref.rst:71 msgid ":command:`recursive-include dir pat1 pat2 ...`" -msgstr "" +msgstr ":command:`recursive-include dir pat1 pat2 ...`" #: ../Doc/distutils/commandref.rst:71 msgid "include all files under *dir* matching any of the listed patterns" msgstr "" +"incluye todos los archivos *dir* que coincidan con cualquiera de los " +"patrones enumerados" #: ../Doc/distutils/commandref.rst:74 msgid ":command:`recursive-exclude dir pat1 pat2 ...`" -msgstr "" +msgstr ":command:`recursive-exclude dir pat1 pat2 ...`" #: ../Doc/distutils/commandref.rst:74 msgid "exclude all files under *dir* matching any of the listed patterns" msgstr "" +"excluye todos los archivos *dir* que coincidan con cualquiera de los " +"patrones enumerados" #: ../Doc/distutils/commandref.rst:77 msgid ":command:`global-include pat1 pat2 ...`" -msgstr "" +msgstr ":command:`global-include pat1 pat2 ...`" #: ../Doc/distutils/commandref.rst:77 msgid "" "include all files anywhere in the source tree matching --- & any of the " "listed patterns" msgstr "" +"incluye todos los archivos de cualquier lugar en el árbol fuente que " +"coincidan --- y cualquiera de los patrones enumerados" #: ../Doc/distutils/commandref.rst:80 msgid ":command:`global-exclude pat1 pat2 ...`" -msgstr "" +msgstr ":command:`global-exclude pat1 pat2 ...`" #: ../Doc/distutils/commandref.rst:80 msgid "" "exclude all files anywhere in the source tree matching --- & any of the " "listed patterns" msgstr "" +"excluye todos los archivos de cualquier lugar en el árbol fuente que " +"coincidan --- y cualquiera de los patrones enumerados" #: ../Doc/distutils/commandref.rst:83 msgid ":command:`prune dir`" -msgstr "" +msgstr ":command:`prune dir`" #: ../Doc/distutils/commandref.rst:83 msgid "exclude all files under *dir*" -msgstr "" +msgstr "excluye todos los archivos *dir*" #: ../Doc/distutils/commandref.rst:85 msgid ":command:`graft dir`" -msgstr "" +msgstr ":command:`graft dir`" #: ../Doc/distutils/commandref.rst:85 msgid "include all files under *dir*" -msgstr "" +msgstr "incluye todos los archivos *dir*" #: ../Doc/distutils/commandref.rst:88 msgid "" @@ -158,3 +173,10 @@ msgid "" "filename character\" is platform-specific: on Unix it is anything except " "slash; on Windows anything except backslash or colon." msgstr "" +"Los patrones aquí son patrones \"glob\" de estilo Unix: ``*`` coincide con " +"cualquier secuencia de caracteres de nombre de archivo habitual, ``?`` " +"coincide con cualquier caracter de nombre de archivo habitual, y ``[range]`` " +"coincide con cualquiera de los caracteres en *range* (p. ej., ``a-z``, ``a-" +"zA-Z``, ``a-f0-9_.``). La definición de \"caracter de nombre de archivo " +"habitual\" es específica de la plataforma: en Unix es cualquier cosa excepto " +"barra; en Windows cualquier cosa excepto barra invertida o dos puntos." diff --git a/distutils/extending.po b/distutils/extending.po index 1526ec8187..d65c251aa3 100644 --- a/distutils/extending.po +++ b/distutils/extending.po @@ -6,23 +6,25 @@ # 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: 2020-10-13 19: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" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es_AR\n" #: ../Doc/distutils/extending.rst:5 msgid "Extending Distutils" -msgstr "" +msgstr "Extendiendo Distutils" #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -30,6 +32,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Este documento se conserva únicamente hasta que la documentación de " +"``setuptools`` en https://setuptools.readthedocs.io/en/latest/setuptools." +"html cubra de manera independiente toda la información relevante incluida " +"aquí actualmente." #: ../Doc/distutils/extending.rst:9 msgid "" @@ -39,6 +45,12 @@ msgid "" "while replacements for existing commands may be made to modify details of " "how the command operates on a package." msgstr "" +"Distutils se puede extender de diversas maneras. La mayoría de las " +"extensiones toman la forma de nuevos comandos o reemplazos de comandos ya " +"existentes. Se pueden escribir nuevos comandos para soportar nuevos tipos de " +"paquetes específicos de la plataforma, por ejemplo, mientras que se pueden " +"reemplazar comandos existentes para modificar los detalles de cómo funciona " +"dicho comando en un paquete." #: ../Doc/distutils/extending.rst:15 msgid "" @@ -47,6 +59,11 @@ msgid "" "that should be copied into packages in addition to :file:`.py` files as a " "convenience." msgstr "" +"La mayoría de las extensiones de distutils están hechas dentro de los " +"scripts :file:`setup.py` donde se desea modificar los comandos existentes. " +"Muchos simplemente añaden algunas extensiones de archivo que deben copiarse " +"dentro de los paquetes, además de los archivos :file:`.py`, para mayor " +"comodidad." #: ../Doc/distutils/extending.rst:20 msgid "" @@ -56,10 +73,16 @@ msgid "" "indirectly, directly subclassing the command they are replacing. Commands " "are required to derive from :class:`Command`." msgstr "" +"La mayoría de las implementaciones de comandos distutils son subclases de la " +"clase :class:`distutils.cmd.Command`. Los nuevos comandos pueden heredar " +"directamente de :class:`Command`. Mientras que los comandos de reemplazo a " +"menudo derivan de la clase :class:`Command` de manera indirecta, " +"subclasificando directamente el comando que están reemplazando. Se requiere " +"que los comandos deriven de :class:`Command`." #: ../Doc/distutils/extending.rst:35 msgid "Integrating new commands" -msgstr "" +msgstr "Integrando nuevos comandos" #: ../Doc/distutils/extending.rst:37 msgid "" @@ -68,6 +91,10 @@ msgid "" "features in distutils itself, and wait for (and require) a version of Python " "that provides that support. This is really hard for many reasons." msgstr "" +"Existen diferentes formas de integrar nuevas implementaciones de comandos en " +"distutils. La más difícil es forzar la inclusión de nuevas funciones en " +"distutils y esperar (y requerir) una versión de Python que brinde ese " +"soporte. Esto es realmente complicado por muchas razones." #: ../Doc/distutils/extending.rst:42 msgid "" @@ -75,6 +102,9 @@ msgid "" "include the new implementations with your :file:`setup.py` script, and cause " "the :func:`distutils.core.setup` function use them::" msgstr "" +"La más común, y posiblemente la más lógica para casi todas las necesidades, " +"es incluir las nuevas implementaciones con su *script* :file:`setup.py` y " +"hacer que la función :func:`distutils.core.setup` las utilice::" #: ../Doc/distutils/extending.rst:57 msgid "" @@ -82,6 +112,9 @@ msgid "" "use a particular package, as everyone interested in the package will need to " "have the new command implementation." msgstr "" +"Este enfoque es más valioso sí las nuevas implementaciones deben utilizarse " +"para hacer uso de un paquete en particular, ya que todos los interesados en " +"el paquete deberán tener la implementación del nuevo comando." #: ../Doc/distutils/extending.rst:61 msgid "" @@ -100,6 +133,24 @@ msgid "" "it to an empty string on the command line causes the default to be used. " "This should never be set in a configuration file provided with a package." msgstr "" +"A partir de Python 2.4, hay una tercera opción disponible, destinada a " +"permitir agregar nuevos comandos que sean compatibles con los scripts :file:" +"`setup.py` existentes, sin requerir modificaciones en la instalación de " +"Python. Se espera que esto permita que las extensiones de terceros brinden " +"soporte para sistemas de empaquetado adicionales, pero los comandos pueden " +"ser usados en los mismos casos en los que los comandos de distutils son " +"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 " +"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 " +"establece en un archivo de configuración, se puede sobrescribir desde la " +"línea de comandos. Establecer una cadena de caracteres vacía como valor de " +"esta opción en la línea de comandos forzará el uso del valor predeterminado. " +"Esto nunca debería ser establecido en un archivo de configuración " +"proporcionado con un paquete." #: ../Doc/distutils/extending.rst:76 msgid "" @@ -115,10 +166,23 @@ msgid "" "could be implemented by the class :class:`distcmds.bdist_openpkg." "bdist_openpkg` or :class:`buildcmds.bdist_openpkg.bdist_openpkg`." msgstr "" +"Esta nueva opción puede ser usada para añadir cualquier cantidad de número " +"de paquetes a la lista de paquetes buscados para las implementaciones de " +"comandos; los nombres múltiples de paquetes deben ser separados por comas. " +"Cuando no se especifica, la búsqueda sólo se realiza en el paquete :mod:" +"`distutils.command`. Sin embargo, cuando :file:`setup.py` se ejecuta con la " +"opción ``--command-packages distcmds,buildcmds``, se buscarán los paquetes :" +"mod:`distutils.command`, :mod:`distcmds` y :mod:`buildcmds` en ese orden. Se " +"espera que los nuevos comandos se implementen en módulos con idéntico nombre " +"que el comando mediante clases que comparten el mismo nombre. Dado el " +"ejemplo anterior de la opción de línea de comandos, el comando :command:" +"`bdist_openpkg` podría ser implementado por la clase :class:`distcmds." +"bdist_openpkg.bdist_openpkg` o por la clase :class:`buildcmds.bdist_openpkg." +"bdist_openpkg`." #: ../Doc/distutils/extending.rst:90 msgid "Adding new distribution types" -msgstr "" +msgstr "Añadiendo nuevos tipos de distribución" #: ../Doc/distutils/extending.rst:92 msgid "" @@ -129,3 +193,9 @@ msgid "" "file itself. In dry-run mode, pairs should still be added to represent what " "would have been created." msgstr "" +"Los comandos que crean distribuciones (archivos en el directorio :file:`dist/" +"`) necesitan añadir el par ``(command, filename)`` a ``self.distribution." +"dist_files`` para que de este modo :command:`upload` pueda subirlo a PyPI. " +"El elemento *filename* en el par no contiene información de la ruta, solo el " +"nombre del archive en sí. En el modo ensayo, los pares aún deben ser " +"añadidos para representar lo que se habría creado." diff --git a/distutils/index.po b/distutils/index.po index 2248f18619..5cbb71d1e2 100644 --- a/distutils/index.po +++ b/distutils/index.po @@ -6,47 +6,49 @@ # 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: 2020-11-21 17:08-0500\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.1\n" #: ../Doc/distutils/index.rst:5 msgid "Distributing Python Modules (Legacy version)" -msgstr "" +msgstr "Distribución de módulos de Python (versión heredada)" #: ../Doc/distutils/index.rst msgid "Authors" -msgstr "" +msgstr "Autores" #: ../Doc/distutils/index.rst:7 msgid "Greg Ward, Anthony Baxter" -msgstr "" +msgstr "Greg Ward, Anthony Baxter" #: ../Doc/distutils/index.rst msgid "Email" -msgstr "" +msgstr "Email" #: ../Doc/distutils/index.rst:8 msgid "distutils-sig@python.org" -msgstr "" +msgstr "distutils-sig@python.org" #: ../Doc/distutils/index.rst:12 msgid ":ref:`distributing-index`" -msgstr "" +msgstr ":ref:`distributing-index`" #: ../Doc/distutils/index.rst:13 msgid "The up to date module distribution documentations" -msgstr "" +msgstr "La documentación de distribución de módulos actualizada" #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -54,6 +56,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Este documento se conserva únicamente hasta que la documentación de " +"``setuptools`` en https://setuptools.readthedocs.io/en/latest/setuptools." +"html cubra de forma independiente toda la información relevante que se " +"incluye actualmente aquí." #: ../Doc/distutils/index.rst:19 msgid "" @@ -63,6 +69,12 @@ msgid "" "recommendations section `__ in the Python Packaging User Guide for more information." msgstr "" +"Esta guía solo cubre las herramientas básicas para compilar y distribuir " +"extensiones que se proporcionan como parte de esta versión de Python. Las " +"herramientas de terceros ofrecen alternativas más seguras y más fáciles de " +"usar. Consulte la `sección de recomendaciones rápidas `__ en la Guía del usuario de Python " +"Packaging para obtener más información." #: ../Doc/distutils/index.rst:25 msgid "" @@ -71,3 +83,8 @@ msgid "" "capabilities that ``setuptools`` builds on to allow Python developers to " "make Python modules and extensions readily available to a wider audience." msgstr "" +"Este documento describe las utilidades de distribución de Python (\"Distutils" +"\") desde el punto de vista del desarrollador del módulo, describiendo las " +"capacidades subyacentes sobre las que se basan las ``setuptools`` para " +"permitir que los desarrolladores de Python hagan que los módulos y " +"extensiones de Python estén disponibles para una audiencia más amplia." diff --git a/distutils/uploading.po b/distutils/uploading.po index 459e3c2533..cafb9d0d0a 100644 --- a/distutils/uploading.po +++ b/distutils/uploading.po @@ -6,26 +6,30 @@ # 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: 2020-12-06 20:23-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/distutils/uploading.rst:5 msgid "Uploading Packages to the Package Index" -msgstr "" +msgstr "Subir paquetes al índice de paquetes" #: ../Doc/distutils/uploading.rst:7 msgid "" "References to up to date PyPI documentation can be found at :ref:`publishing-" "python-packages`." msgstr "" +"Referencias a la documentación actualizada de PyPI pueden encontrarse en :" +"ref:`publishing-python-packages`." diff --git a/errores.txt b/errores.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/howto/functional.po b/howto/functional.po index dd4003071c..033eac2a3a 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -6,39 +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-03-18 13:21-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: Kevin Cajachuán \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/howto/functional.rst:3 msgid "Functional Programming HOWTO" -msgstr "" +msgstr "HOWTO - Programación funcional" #: ../Doc/howto/functional.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/howto/functional.rst:5 msgid "A. M. Kuchling" -msgstr "" +msgstr "A. M. Kuchling" #: ../Doc/howto/functional.rst msgid "Release" -msgstr "" +msgstr "Publicación" #: ../Doc/howto/functional.rst:6 msgid "0.32" -msgstr "" +msgstr "0.32" #: ../Doc/howto/functional.rst:8 msgid "" @@ -48,10 +50,16 @@ msgid "" "term:`iterator`\\s and :term:`generator`\\s and relevant library modules " "such as :mod:`itertools` and :mod:`functools`." msgstr "" +"En este documento, haremos un recorrido de las características de Python " +"adecuadas para implementar programas en un estilo funcional. Después de una " +"introducción de los conceptos de programación funcional, veremos las " +"características del lenguaje como :term:`iterador `\\es y :term:" +"`generador `\\es y módulos de librería relevantes como :mod:" +"`itertools` y :mod:`functools`." #: ../Doc/howto/functional.rst:16 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/howto/functional.rst:18 msgid "" @@ -59,11 +67,17 @@ msgid "" "just interested in learning about Python language features, skip to the next " "section on :ref:`functional-howto-iterators`." msgstr "" +"Esta sección explica el concepto básico de programación funcional; si solo " +"está interesado en aprender acerca de las características del lenguaje " +"Python, pase a la siguiente sección en :ref:`iteradores `." #: ../Doc/howto/functional.rst:22 msgid "" "Programming languages support decomposing problems in several different ways:" msgstr "" +"Los lenguajes de programación soportan la descomposición de problemas en " +"muchas formas diferentes:" #: ../Doc/howto/functional.rst:24 msgid "" @@ -71,6 +85,10 @@ msgid "" "instructions that tell the computer what to do with the program's input. C, " "Pascal, and even Unix shells are procedural languages." msgstr "" +"La mayoría de los lenguajes de programación son **procedimentales**: los " +"programas son listas de instrucciones que le dicen a la computadora qué " +"hacer con la entrada del programa. C, Pascal e incluso las terminales Unix " +"son lenguajes procedimentales." #: ../Doc/howto/functional.rst:28 msgid "" @@ -81,6 +99,13 @@ msgid "" "to retrieve, and the SQL engine decides whether to scan tables or use " "indexes, which subclauses should be performed first, etc." msgstr "" +"En los lenguajes **declarativos**, se escribe una especificación que " +"describe el problema que se resolverá, y la implementación del lenguaje " +"averigua como realizar el cálculo de forma eficiente. SQL es el lenguaje " +"declarativo con el que probablemente esté más familiarizado; una consulta " +"SQL describe el conjunto de datos que quiere recuperar, y el motor SQL " +"decide si escanear tablas o usar índices, qué subcláusulas deben ejecutarse " +"primero, etc." #: ../Doc/howto/functional.rst:35 msgid "" @@ -90,6 +115,12 @@ msgid "" "and Python are languages that support object-oriented programming, but don't " "force the use of object-oriented features." msgstr "" +"Los programas **orientados a objetos** manipulan colecciones de objetos. Los " +"objetos tienen estado interno y soportan métodos que consultan o modifican " +"su estado interno de alguna manera. Smalltalk y Java son lenguajes " +"orientados a objetos. C++ y Python son lenguajes que soportan la " +"programación orientada a objetos, pero no fuerzan el uso de las " +"características orientadas a objetos." #: ../Doc/howto/functional.rst:41 msgid "" @@ -99,6 +130,11 @@ msgid "" "known functional languages include the ML family (Standard ML, OCaml, and " "other variants) and Haskell." msgstr "" +"La programación **funcional** descompone un problema en un conjunto de " +"funciones. Idealmente, las funciones solo reciben entradas y producen " +"salidas, y no tienen ningún estado interno que afecte la salida producida " +"para una entrada dada. Los lenguajes funcionales bien conocidos incluyen la " +"familia ML (Standard ML, OCaml, y otras variantes) y Haskell." #: ../Doc/howto/functional.rst:47 msgid "" @@ -112,6 +148,16 @@ msgid "" "GUI might be object-oriented while the processing logic is procedural or " "functional, for example." msgstr "" +"Los diseñadores de algunos lenguajes de computadora eligen enfatizar en un " +"enfoque particular para programar. Esto a menudo hace difícil escribir " +"programas que usen un enfoque diferente. Otros lenguajes son lenguajes " +"multiparadigma que soportan varios enfoques diferentes. Lisp, C++ y Python " +"son multiparadigma; puede escribir programas o librerías que son en gran " +"parte procedimentales, orientados a objetos o funcionales en todos estos " +"lenguajes. En un programa grande, las diferentes secciones podrían " +"escribirse usando diferentes enfoques; la GUI podría ser orientada a objetos " +"mientras la lógica de procesamiento es procedimental o funcional, por " +"ejemplo." #: ../Doc/howto/functional.rst:58 msgid "" @@ -123,6 +169,15 @@ msgid "" "side effects means not using data structures that get updated as a program " "runs; every function's output must only depend on its input." msgstr "" +"En un programa funcional, la entrada fluye a través de un conjunto de " +"funciones. Cada función opera sobre su entrada y produce alguna salida. El " +"estilo funcional desalienta las funciones con efectos secundarios que " +"modifican el estado interno o hacen otros cambios que no son visibles en el " +"valor de retorno de la función. Las funciones que no tienen ningún efecto " +"secundario se llaman **puramente funcionales**. Evitar los efectos " +"secundarios significa no usar estructuras de datos que se actualicen " +"mientras se ejecuta un programa; cada salida de la función debe depender " +"solo de su entrada." #: ../Doc/howto/functional.rst:66 msgid "" @@ -134,6 +189,13 @@ msgid "" "called for their side effects of sending some text to the screen or pausing " "execution for a second." msgstr "" +"Algunos lenguajes son muy estrictos sobre la pureza y ni siquiera tienen " +"sentencias de asignación como ``a=3`` o ``c = a + b``, pero es difícil " +"evitar todos los efectos secundarios. Imprimir en la pantalla o escribir en " +"un archivo en disco son efectos secundarios. Por ejemplo, en Python una " +"llamada a la función :func:`print` o :func:`time.sleep` retorna un valor " +"inútil; solo se llaman por sus efectos secundarios de enviar algún texto a " +"la pantalla o pausar la ejecución por un segundo." #: ../Doc/howto/functional.rst:74 msgid "" @@ -144,6 +206,12 @@ msgid "" "assignments to local variables, but won't modify global variables or have " "other side effects." msgstr "" +"Los programas de Python escritos en estilo funcional usualmente no irán al " +"extremo de evitar todas las E/S o todas las asignaciones; en cambio, " +"proveerán una interfaz aparentemente funcional pero internamente usará " +"características no funcionales. Por ejemplo, la implementación de una " +"función todavía usará asignaciones a variables locales, pero no modificará " +"variables globales ni tendrá otros efectos secundarios." #: ../Doc/howto/functional.rst:80 msgid "" @@ -156,6 +224,15 @@ msgid "" "approaches by writing functions that take and return instances representing " "objects in your application (e-mail messages, transactions, etc.)." msgstr "" +"La programación funcional se puede considerar lo opuesto a la programación " +"orientada a objetos. Los objetos son pequeñas capsulas que contienen algún " +"estado interno junto con una colección de llamadas a métodos que le permiten " +"modificar este estado, y los programas consisten en realizar el conjunto " +"correcto de cambios de estado. La programación funcional quiere evitar " +"cambios de estado tanto como sea posible y trabaja con flujos de datos entre " +"funciones. En Python podría combinar los dos enfoques para escribir " +"funciones que reciban y retornen instancias que representen objetos en su " +"aplicación (mensajes de e-mail, transacciones, etc.)." #: ../Doc/howto/functional.rst:89 msgid "" @@ -163,32 +240,37 @@ msgid "" "you avoid objects and side effects? There are theoretical and practical " "advantages to the functional style:" msgstr "" +"El diseño funcional puede parecer una restricción extraña bajo la cuál " +"trabajar. ¿Por qué evitaría objetos y efectos secundarios? Hay ventajas " +"teóricas y prácticas para el estilo funcional:" #: ../Doc/howto/functional.rst:93 msgid "Formal provability." -msgstr "" +msgstr "Demostrabilidad formal." #: ../Doc/howto/functional.rst:94 msgid "Modularity." -msgstr "" +msgstr "Modularidad." #: ../Doc/howto/functional.rst:95 msgid "Composability." -msgstr "" +msgstr "Componibilidad." #: ../Doc/howto/functional.rst:96 msgid "Ease of debugging and testing." -msgstr "" +msgstr "Facilidad de depurar y probar." #: ../Doc/howto/functional.rst:100 msgid "Formal provability" -msgstr "" +msgstr "Demostrabilidad formal" #: ../Doc/howto/functional.rst:102 msgid "" "A theoretical benefit is that it's easier to construct a mathematical proof " "that a functional program is correct." msgstr "" +"Un beneficio teórico es que es más fácil construir una demostración " +"matemática de que un programa funcional es correcto." #: ../Doc/howto/functional.rst:105 msgid "" @@ -199,6 +281,13 @@ msgid "" "looks right; the goal is instead a rigorous proof that a program produces " "the right result for all possible inputs." msgstr "" +"Por un largo tiempo los investigadores se han interesado en buscar formas de " +"demostrar matemáticamente que los programas son correctos. Esto es diferente " +"de probar un programa sobre numerosas entradas y concluir que su salida es " +"usualmente correcta, o leer el código fuente de un programa y concluir que " +"el código se ve bien; en lugar de eso el objetivo es una demostración " +"rigurosa de que un programa produce el resultado correcto para todas las " +"entradas posibles." #: ../Doc/howto/functional.rst:112 msgid "" @@ -210,6 +299,14 @@ msgid "" "This continues until you reach the end of the program, at which point the " "invariants should match the desired conditions on the program's output." msgstr "" +"La técnica utilizada para demostrar que los programas son correctos es " +"anotar **invariantes**, propiedades de los datos de entrada y de las " +"variables del programa que siempre son verdaderas. Por cada línea de código, " +"debe mostrar que si las invariantes X e Y son verdaderas **antes** que la " +"línea sea ejecutada, las invariantes ligeramente diferentes X' e Y' son " +"verdaderas **después** que la línea se ejecutó. Esto continúa hasta que " +"alcance el fin del programa, punto en el cuál las invariantes deben " +"coincidir con las condiciones deseadas en la salida del programa." #: ../Doc/howto/functional.rst:120 msgid "" @@ -218,6 +315,10 @@ msgid "" "invariants that were true before the assignment without producing any new " "invariants that can be propagated onward." msgstr "" +"La evitación de las asignaciones de la programación funcional surge porque " +"las asignaciones son difíciles de manejar con esta técnica; las asignaciones " +"pueden romper invariantes que eran verdaderas antes de la asignación sin " +"producir nuevas invariantes que se puedan propagar hacia adelante." #: ../Doc/howto/functional.rst:125 msgid "" @@ -230,10 +331,20 @@ msgid "" "the question of verifying the proof; maybe there's an error in it, and you " "wrongly believe you've proved the program correct." msgstr "" +"Desafortunadamente, demostrar que los programas son correctos es en gran " +"parte impráctico y no relevante al software de Python. Incluso los programas " +"triviales requieren demostraciones que tienen varias páginas; la " +"demostración de correctitud para un programa moderadamente complicado sería " +"enorme, y pocos o ninguno de los programas que usa diariamente (el " +"interprete de Python, su analizador XML, su navegador web) se podrían " +"demostrar que son correctos. Aún si anotó o generó una demostración, " +"entonces estaría la cuestión de verificar la demostración; quizás hay un " +"error en ella, y equivocadamente cree que demostró que el programa es " +"correcto." #: ../Doc/howto/functional.rst:136 msgid "Modularity" -msgstr "" +msgstr "Modularidad" #: ../Doc/howto/functional.rst:138 msgid "" @@ -243,14 +354,20 @@ msgid "" "thing than a large function that performs a complicated transformation. " "Small functions are also easier to read and to check for errors." msgstr "" +"Un beneficio más práctico de la programación funcional es que fuerza a " +"romper su problema en pequeñas piezas. Como resultado los programas son más " +"modulares. Es más fácil especificar y escribir una función pequeña que hace " +"una cosa que una función grande que realiza una transformación complicada. " +"Las funciones pequeñas también son más fáciles de leer y comprobar si hay " +"errores." #: ../Doc/howto/functional.rst:146 msgid "Ease of debugging and testing" -msgstr "" +msgstr "Facilidad de depurar y probar" #: ../Doc/howto/functional.rst:148 msgid "Testing and debugging a functional-style program is easier." -msgstr "" +msgstr "Probar y depurar un programa en estilo funcional es más fácil." #: ../Doc/howto/functional.rst:150 msgid "" @@ -260,6 +377,11 @@ msgid "" "intermediate inputs and outputs to quickly isolate the function that's " "responsible for a bug." msgstr "" +"La depuración se simplifica porque las funciones generalmente son pequeñas y " +"claramente especificadas. Cuando un programa no funciona, cada función es un " +"punto de interfaz donde puede comprobar si los datos son correctos. Puede " +"ver las entradas y salidas intermedias para aislar rápidamente la función " +"que es responsable de un error." #: ../Doc/howto/functional.rst:155 msgid "" @@ -268,10 +390,15 @@ msgid "" "before running a test; instead you only have to synthesize the right input " "and then check that the output matches expectations." msgstr "" +"Las pruebas son más fáciles porque cada función es un sujeto potencial para " +"una prueba unitaria. Las funciones no dependen de un estado del sistema que " +"necesite ser replicado antes de correr una prueba; en lugar de eso solo " +"tiene que sintetizar la entrada correcta y comprobar que la salida coincida " +"con las expectativas." #: ../Doc/howto/functional.rst:162 msgid "Composability" -msgstr "" +msgstr "Componibilidad" #: ../Doc/howto/functional.rst:164 msgid "" @@ -283,6 +410,13 @@ msgid "" "that takes a filename and returns its contents, can be applied to many " "different situations." msgstr "" +"Mientras trabaja en un programa en estilo funcional, escribirá un número de " +"funciones con diferentes entradas y salidas. Algunas de estas funciones " +"inevitablemente estarán especializadas en una aplicación en particular, pero " +"otras serán útiles en una amplia variedad de programas. Por ejemplo, una " +"función que recibe la ruta de un directorio y retorna todos los archivos XML " +"en el directorio, o una función que recibe el nombre de un archivo y retorna " +"su contenido, se puede aplicar a muchas situaciones diferentes." #: ../Doc/howto/functional.rst:171 msgid "" @@ -290,16 +424,22 @@ msgid "" "assemble new programs by arranging existing functions in a new configuration " "and writing a few functions specialized for the current task." msgstr "" +"Con el tiempo formará una librería personal de utilidades. A menudo " +"ensamblará nuevos programas organizando funciones existentes en una nueva " +"configuración y escribiendo unas pocas funciones especializadas para la " +"tarea actual." #: ../Doc/howto/functional.rst:179 msgid "Iterators" -msgstr "" +msgstr "Iteradores" #: ../Doc/howto/functional.rst:181 msgid "" "I'll start by looking at a Python language feature that's an important " "foundation for writing functional-style programs: iterators." msgstr "" +"Comenzaré viendo una característica del lenguaje Python que es una base " +"importante para escribir programas en estilo funcional: iteradores." #: ../Doc/howto/functional.rst:184 msgid "" @@ -311,6 +451,14 @@ msgid "" "exception. Iterators don't have to be finite, though; it's perfectly " "reasonable to write an iterator that produces an infinite stream of data." msgstr "" +"Un iterador es un objeto que representa un flujo de datos; este objeto " +"retorna los datos de a un elemento a la vez. Un iterador de Python debe " +"soportar un método llamado :meth:`~iterator.__next__` que no recibe " +"argumentos y siempre retorna el siguiente elemento en el flujo. Si no hay " +"más elementos en el flujo, :meth:`~iterator.__next__` debe lanzar la " +"excepción :exc:`StopIteration`. Los iteradores no tienen que ser finitos; es " +"perfectamente razonable escribir un iterador que produce un flujo de datos " +"infinito." #: ../Doc/howto/functional.rst:192 msgid "" @@ -321,10 +469,16 @@ msgid "" "lists and dictionaries. An object is called :term:`iterable` if you can get " "an iterator for it." msgstr "" +"La función incorporada :func:`iter` recibe un objeto arbitrario e intenta " +"retornar un iterador que retornará los contenidos o elementos del objeto, " +"lanzando :exc:`TypeError` si el objeto no soporta iteración. Muchos tipos de " +"datos integrados de Python soportan iteración, siendo los más comunes las " +"listas y los diccionarios. Un objeto se llama :term:`iterable` si puede " +"obtener un iterador para él." #: ../Doc/howto/functional.rst:199 msgid "You can experiment with the iteration interface manually:" -msgstr "" +msgstr "Puede experimentar con la interfaz de iteración manualmente:" #: ../Doc/howto/functional.rst:217 msgid "" @@ -333,18 +487,26 @@ msgid "" "Y``, Y must be an iterator or some object for which :func:`iter` can create " "an iterator. These two statements are equivalent::" msgstr "" +"Python espera objetos iterables en muchos contextos diferentes, siendo el " +"más importante la sentencia :keyword:`for`. En la sentencia ``for X in Y``, " +"Y debe ser un iterador o algún objeto para el que :func:`iter` puede crear " +"un iterador. Estas dos sentencias son equivalentes::" #: ../Doc/howto/functional.rst:229 msgid "" "Iterators can be materialized as lists or tuples by using the :func:`list` " "or :func:`tuple` constructor functions:" msgstr "" +"Los iteradores se pueden materializar como listas o tuplas utilizando las " +"funciones constructoras :func:`list` o :func:`tuple`:" #: ../Doc/howto/functional.rst:238 msgid "" "Sequence unpacking also supports iterators: if you know an iterator will " "return N elements, you can unpack them into an N-tuple:" msgstr "" +"El desempaquetado de secuencias también soporta iteradores: si sabe que un " +"iterador retornará N elementos, puede desempaquetarlos en una N-tupla:" #: ../Doc/howto/functional.rst:247 msgid "" @@ -356,6 +518,14 @@ msgid "" "func:`min` will never return, and if the element X never appears in the " "stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either." msgstr "" +"Las funciones incorporadas como :func:`max` y :func:`min` pueden recibir un " +"solo iterador como argumento y retornarán el elemento más grande o más " +"pequeño. Los operadores ``\"in\"`` y ``\"not in\"`` también soportan " +"iteradores: ``X in iterator`` es verdadero si X se encuentra en el flujo que " +"retornó el iterador. Se encontrará con problemas obvios si el iterador es " +"infinito; :func:`max`, :func:`min` nunca retornarán, y si el elemento X " +"nunca aparece en el flujo, los operadores ``\"in\"`` y ``\"not in\"`` " +"tampoco retornarán." #: ../Doc/howto/functional.rst:255 msgid "" @@ -367,10 +537,17 @@ msgid "" "need to do something different with the same stream, you'll have to create a " "new iterator." msgstr "" +"Note que solo puede ir hacia adelante en un iterador; no hay forma de " +"obtener el elemento anterior, reiniciar el iterador o hacer una copia de él. " +"Los objetos iteradores opcionalmente pueden proveer estas capacidades " +"adicionales, pero el protocolo del iterador solo especifica el método :meth:" +"`~iterator.__next__`. Por lo tanto las funciones pueden consumir toda la " +"salida del iterador, y si necesita hacer algo diferente con el mismo flujo, " +"tendrá que crear un nuevo iterador." #: ../Doc/howto/functional.rst:265 msgid "Data Types That Support Iterators" -msgstr "" +msgstr "Tipos de datos que soportan iteradores" #: ../Doc/howto/functional.rst:267 msgid "" @@ -378,12 +555,17 @@ msgid "" "Python sequence type, such as strings, will automatically support creation " "of an iterator." msgstr "" +"Ya hemos visto cómo las listas y tuplas soportan iteradores. De hecho, " +"cualquier tipo de secuencia de Python, como cadenas de caracteres, " +"automáticamente soportará la creación de un iterador." #: ../Doc/howto/functional.rst:271 msgid "" "Calling :func:`iter` on a dictionary returns an iterator that will loop over " "the dictionary's keys::" msgstr "" +"Llamar a :func:`iter` en un diccionario retornará un iterador que recorrerá " +"sobre las claves del diccionario::" #: ../Doc/howto/functional.rst:291 msgid "" @@ -391,6 +573,10 @@ msgid "" "to be the same as the insertion order. In earlier versions, the behaviour " "was unspecified and could vary between implementations." msgstr "" +"Note que a partir de Python 3.7, se garantiza que el orden de iteración del " +"diccionario es el mismo que el orden de inserción. En versiones anteriores, " +"el comportamiento no estaba especificado y podía variar entre " +"implementaciones." #: ../Doc/howto/functional.rst:295 msgid "" @@ -399,12 +585,19 @@ msgid "" "iterate over values or key/value pairs, you can explicitly call the :meth:" "`~dict.values` or :meth:`~dict.items` methods to get an appropriate iterator." msgstr "" +"Aplicar :func:`iter` a un diccionario siempre recorre sobre las claves, pero " +"los diccionarios tienen métodos que retornan otros iteradores. Si quiere " +"iterar sobre valores o pares clave/valor, puede explícitamente llamar a los " +"métodos :meth:`~dict.values` o :meth:`~dict.items` para obtener un iterador " +"apropiado." #: ../Doc/howto/functional.rst:301 msgid "" "The :func:`dict` constructor can accept an iterator that returns a finite " "stream of ``(key, value)`` tuples:" msgstr "" +"El constructor :func:`dict` puede aceptar un iterador que retorna un flujo " +"finito de tuplas ``(key, value)``:" #: ../Doc/howto/functional.rst:308 msgid "" @@ -412,16 +605,21 @@ msgid "" "method until there are no more lines in the file. This means you can read " "each line of a file like this::" msgstr "" +"Los archivos también soportan iteración llamando al método :meth:`~io." +"TextIOBase.readline` hasta que no haya más líneas en el archivo. Esto " +"significa que puede leer cada línea de un archivo de esta forma::" #: ../Doc/howto/functional.rst:316 msgid "" "Sets can take their contents from an iterable and let you iterate over the " "set's elements::" msgstr "" +"Los conjuntos pueden recibir sus contenidos de un iterable y le permiten " +"iterar sobre los elementos del conjunto::" #: ../Doc/howto/functional.rst:326 msgid "Generator expressions and list comprehensions" -msgstr "" +msgstr "Expresiones generadoras y listas por comprensión" #: ../Doc/howto/functional.rst:328 msgid "" @@ -431,6 +629,12 @@ msgid "" "strip off trailing whitespace from each line or extract all the strings " "containing a given substring." msgstr "" +"Dos operaciones comunes en la salida de un iterador son 1) realizar alguna " +"operación para cada elemento, 2) elegir un subconjunto de elementos que " +"reúnen alguna condición. Por ejemplo, dada una lista de cadena de " +"caracteres, podría querer remover los espacios finales de cada línea o " +"extraer todas las cadenas de caracteres que contienen una subcadena de " +"caracteres dada." #: ../Doc/howto/functional.rst:334 msgid "" @@ -439,11 +643,17 @@ msgid "" "functional programming language Haskell (https://www.haskell.org/). You can " "strip all the whitespace from a stream of strings with the following code::" msgstr "" +"Las listas por comprensión y las expresiones generadoras (forma abreviada: " +"\"listcomps\" y \"genexps\") son una notación concisa para tales " +"operaciones, prestadas del lenguaje de programación funcional Haskell " +"(https://www.haskell.org/). Puede remover todos los espacios de un flujo de " +"cadena de caracteres con el siguiente código::" #: ../Doc/howto/functional.rst:347 msgid "" "You can select only certain elements by adding an ``\"if\"`` condition::" msgstr "" +"Puede seleccionar solo ciertos elementos agregando una condición ``\"if\"``::" #: ../Doc/howto/functional.rst:352 msgid "" @@ -455,6 +665,13 @@ msgid "" "infinite stream or a very large amount of data. Generator expressions are " "preferable in these situations." msgstr "" +"Con una lista por comprensión, obtiene una lista de Python; " +"``stripped_list`` es una lista que contiene las líneas resultantes, no un " +"iterador. Las expresiones generadoras retornan un iterador que calcula los " +"valores cuando es necesario, sin necesidad de materializar todos los valores " +"a la vez. Esto significa que las listas por comprensión son inútiles si está " +"trabajando con iteradores que retornan un flujo infinito o una gran cantidad " +"de datos. En estas situaciones son preferibles las expresiones generadoras." #: ../Doc/howto/functional.rst:359 msgid "" @@ -462,12 +679,17 @@ msgid "" "comprehensions are surrounded by square brackets (\"[]\"). Generator " "expressions have the form::" msgstr "" +"Las expresiones generadoras están rodeadas por paréntesis (\"()\") y las " +"listas por comprensión están rodeadas por corchetes (\"[]\"). Las " +"expresiones generadoras tienen la forma::" #: ../Doc/howto/functional.rst:372 msgid "" "Again, for a list comprehension only the outside brackets are different " "(square brackets instead of parentheses)." msgstr "" +"Nuevamente, para una lista por comprensión solo los corchetes exteriores son " +"diferentes (corchetes en lugar de paréntesis)." #: ../Doc/howto/functional.rst:375 msgid "" @@ -476,6 +698,10 @@ msgid "" "``expression`` is only evaluated and added to the result when ``condition`` " "is true." msgstr "" +"Los elementos de la salida generada serán valores sucesivos de " +"``expression``. Las cláusulas ``if`` son todas opcionales; si está presente, " +"``expression`` es solo evaluado y añadido al resultado cuando ``condition`` " +"es verdadero." #: ../Doc/howto/functional.rst:379 msgid "" @@ -483,6 +709,10 @@ msgid "" "parentheses signalling a function call also count. If you want to create an " "iterator that will be immediately passed to a function you can write::" msgstr "" +"Las expresiones generadoras siempre se tienen que escribir dentro de " +"paréntesis, pero los paréntesis que indican la llamada a una función también " +"cuentan. Si quiere crear un iterador que se pase inmediatamente a una " +"función puede escribir::" #: ../Doc/howto/functional.rst:385 msgid "" @@ -493,12 +723,19 @@ msgid "" "looped over for each resulting pair of elements from ``sequence1`` and " "``sequence2``." msgstr "" +"Las cláusulas ``for...in`` contienen las secuencias sobre las que se itera. " +"Las secuencias no tienen que tener la misma longitud, porque son iteradas de " +"izquierda a derecha, **no** en paralelo. Por cada elemento en ``sequence1``, " +"se recorre ``sequence2`` desde el inicio. Luego se recorre ``sequence3`` por " +"cada par de elementos resultante de ``sequence1`` y ``sequence2``." #: ../Doc/howto/functional.rst:391 msgid "" "To put it another way, a list comprehension or generator expression is " "equivalent to the following Python code::" msgstr "" +"Para ponerlo en otra forma, una lista por comprensión o expresión generadora " +"es equivalente al siguiente código Python::" #: ../Doc/howto/functional.rst:408 msgid "" @@ -507,6 +744,10 @@ msgid "" "the lengths of 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 ``for...in`` pero no " +"cláusulas ``if``, la longitud de la salida 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/howto/functional.rst:420 msgid "" @@ -514,10 +755,14 @@ msgid "" "is 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 " +"``expression`` está creando una tupla, debe estar rodeada de paréntesis. La " +"primera lista por comprensión de abajo tiene un error de sintaxis, mientras " +"que la segunda es correcta::" #: ../Doc/howto/functional.rst:431 msgid "Generators" -msgstr "" +msgstr "Generadores" #: ../Doc/howto/functional.rst:433 msgid "" @@ -525,6 +770,10 @@ msgid "" "writing iterators. Regular functions compute a value and return it, but " "generators return an iterator that returns a stream of values." msgstr "" +"Los generadores son una clase especial de funciones que simplifican la tarea " +"de escribir iteradores. Las funciones regulares calculan un valor y lo " +"devuelven, pero los generadores retornan un iterador que retorna un flujo de " +"valores." #: ../Doc/howto/functional.rst:437 msgid "" @@ -538,10 +787,20 @@ msgid "" "function where it left off? This is what generators provide; they can be " "thought of as resumable functions." msgstr "" +"Sin duda está relacionado con cómo funcionan las llamadas a funciones " +"regulares en Python o C. Cuando llama a una función, esta obtiene su espacio " +"de nombres privado donde se crean sus variables locales. Cuando la función " +"alcanza una sentencia ``return``, las variables locales son destruidas y el " +"valor se retorna al llamador. Una llamada posterior a la misma función crea " +"un nuevo espacio de nombres privado y un conjunto limpio de variables " +"locales. Pero, ¿qué pasa si las variables locales no fueron desechadas en la " +"salida de una función? ¿Qué pasa si más tarde podría reanudar la función " +"desde donde quedó? Esto es lo que proveen los generadores; se pueden pensar " +"como funciones que se reanudan." #: ../Doc/howto/functional.rst:446 msgid "Here's the simplest example of a generator function:" -msgstr "" +msgstr "Este es el ejemplo más simple de una función generadora:" #: ../Doc/howto/functional.rst:452 msgid "" @@ -549,6 +808,9 @@ msgid "" "this is detected by Python's :term:`bytecode` compiler which compiles the " "function specially as a result." msgstr "" +"Cualquier función que contiene una palabra clave :keyword:`yield` es una " +"función generadora; esto es detectado por el compilador :term:`bytecode` de " +"Python que compila la función de forma especial como resultado." #: ../Doc/howto/functional.rst:456 msgid "" @@ -561,16 +823,26 @@ msgid "" "preserved. On the next call to the generator's :meth:`~generator.__next__` " "method, the function will resume executing." msgstr "" +"Cuando llama a una función generadora, no retorna un solo valor; en lugar de " +"eso retorna un objeto generador que soporta el protocolo iterador. Al " +"ejecutar la expresión ``yield``, el generador produce el valor de ``i``, de " +"forma similar a una sentencia ``return``. La gran diferencia entre una " +"sentencia ``yield`` y un ``return`` es que al alcanzar un ``yield`` se " +"suspende el estado de ejecución del generador y se preservan las variables " +"locales. En la próxima llamada al método :meth:`~generator.__next__` del " +"generador, la función reanudará la ejecución." #: ../Doc/howto/functional.rst:465 msgid "Here's a sample usage of the ``generate_ints()`` generator:" -msgstr "" +msgstr "Este es un ejemplo de uso del generador ``generate_ints()``:" #: ../Doc/howto/functional.rst:482 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " "generate_ints(3)``." msgstr "" +"De igual forma podría escribir ``for i in generate_ints(5)``, o ``a, b, c = " +"generate_ints(3)``." #: ../Doc/howto/functional.rst:485 msgid "" @@ -579,6 +851,10 @@ msgid "" "method. Once this happens, or the bottom of the function is reached, the " "procession of values ends and the generator cannot yield any further values." msgstr "" +"Dentro de una función generadora, ``return value`` causa que se lance " +"``StopIteration(value)`` del método :meth:`~generator.__next__`\\. Una vez " +"que esto pase, o que se alcance el final de la función, termina la procesión " +"de valores y el generador no puede producir más valores." #: ../Doc/howto/functional.rst:490 msgid "" @@ -589,6 +865,13 @@ msgid "" "method increment ``self.count`` and return it. However, for a moderately " "complicated generator, writing a corresponding class can be much messier." 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 " +"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 " +"ser mucho más confuso." #: ../Doc/howto/functional.rst:498 msgid "" @@ -597,6 +880,10 @@ msgid "" "one generator that implements an in-order traversal of a tree using " "generators recursively. ::" msgstr "" +"El banco de pruebas incluido con la librería de Python, :source:`Lib/test/" +"test_generators.py`, contiene un número de ejemplos más interesantes. Este " +"es un generador que implementa un recorrido inorden de un árbol usando " +"generadores recursivamente. ::" #: ../Doc/howto/functional.rst:514 msgid "" @@ -606,10 +893,15 @@ msgid "" "knight to every square of an NxN chessboard without visiting any square " "twice)." msgstr "" +"Otros dos ejemplos en ``test_generators.py`` producen soluciones al problema " +"de N-reinas (ubicar N reinas en un tablero de ajedrez de NxN de forma que " +"ninguna reina amenace a otra) y el problema del caballo (encontrar una ruta " +"que lleve a un caballo a cada cuadro de un tablero de ajedrez de NxN sin " +"visitar ningún cuadro dos veces)." #: ../Doc/howto/functional.rst:522 msgid "Passing values into a generator" -msgstr "" +msgstr "Pasar valores a un generador" #: ../Doc/howto/functional.rst:524 msgid "" @@ -620,6 +912,12 @@ msgid "" "variable or by passing in some mutable object that callers then modify, but " "these approaches are messy." msgstr "" +"En Python 2.4 y anteriores, los generadores solo producían salida. Una vez " +"que el código de un generador era invocado para crear un iterador, no había " +"forma de pasar ninguna información nueva a la función cuando se reanuda su " +"ejecución. Podría lograr esta habilidad haciendo que el generador mire una " +"variable global o pasando en algún objeto mutable que el llamador luego " +"modifica, pero estos enfoques son confusos." #: ../Doc/howto/functional.rst:531 msgid "" @@ -627,6 +925,9 @@ msgid "" "`yield` became an expression, returning a value that can be assigned to a " "variable or otherwise operated on::" msgstr "" +"En Python 2.5 hay una forma más simple de pasar valores a un generador. :" +"keyword:`yield` se convirtió en una expresión, retornando un valor que se " +"puede asignar a una variable o sobre el que se puede operar::" #: ../Doc/howto/functional.rst:537 msgid "" @@ -635,6 +936,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 "" +"Recomiendo que **siempre** ponga paréntesis alrededor de una expresión " +"``yield`` cuando esté haciendo algo con el valor retornado, como en el " +"ejemplo de arriba. Los paréntesis no siempre son necesarios, pero siempre es " +"más fácil agregarlos en lugar de tener que recordar cuándo son necesarios." #: ../Doc/howto/functional.rst:542 msgid "" @@ -644,6 +949,11 @@ msgid "" "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 son que una expresión ``yield`` " +"siempre debe estar entre paréntesis excepto cuando se encuentra en la " +"expresión de primer nivel en el lado derecho de una asignación. Esto " +"significa que puede escribir ``val = yield i`` pero tiene que usar " +"paréntesis cuando hay una operación, como en ``val = (yield i) + 12``.)" #: ../Doc/howto/functional.rst:548 msgid "" @@ -652,16 +962,22 @@ msgid "" "``yield`` expression returns the specified value. If the regular :meth:" "`~generator.__next__` method is called, the ``yield`` returns ``None``." msgstr "" +"Los valores son enviados a un generador llamando a su método :meth:" +"`send(value) `. Este método reanuda el código del generador " +"y la expresión ``yield`` retorna el valor especificado. Si se llama al " +"método regular :meth:`~generator.__next__`, ``yield`` retorna ``None``." #: ../Doc/howto/functional.rst:553 msgid "" "Here's a simple counter that increments by 1 and allows changing the value " "of the internal counter." msgstr "" +"Este es un simple contador que incrementa por 1 y permite cambiar los " +"valores del contador interno." #: ../Doc/howto/functional.rst:568 msgid "And here's an example of changing the counter:" -msgstr "" +msgstr "Y este es un ejemplo del cambio del contador:" #: ../Doc/howto/functional.rst:585 msgid "" @@ -670,12 +986,18 @@ msgid "" "that the :meth:`~generator.send` method will be the only method used to " "resume your generator function." msgstr "" +"Como ``yield`` a menudo retornará ``None``, siempre debería comprobar este " +"caso. No use simplemente su valor en expresiones a menos que esté seguro que " +"el método :meth:`~generator.send` será el único método utilizado para " +"reanudar su función generadora." #: ../Doc/howto/functional.rst:590 msgid "" "In addition to :meth:`~generator.send`, there are two other methods on " "generators:" msgstr "" +"Además del método :meth:`~generator.send`, hay otros dos métodos para " +"generadores:" #: ../Doc/howto/functional.rst:593 msgid "" @@ -683,6 +1005,9 @@ msgid "" "raise an exception inside the generator; the exception is raised by the " "``yield`` expression where the generator's execution is paused." msgstr "" +":meth:`throw(type, value=None, traceback=None) ` se usa " +"para lanzar una excepción dentro del generador; la excepción se lanza en la " +"expresión ``yield`` donde se pausa la ejecución del generador." #: ../Doc/howto/functional.rst:597 msgid "" @@ -694,6 +1019,12 @@ msgid "" "be called by Python's garbage collector when the generator is garbage-" "collected." msgstr "" +":meth:`~generator.close` lanza una 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 y hacer cualquier otra cosa es ilegal y disparará un :" +"exc:`RuntimeError`. :meth:`~generator.close` también se llamará por el " +"recolector de basura de Python cuando se recolecte el generador." #: ../Doc/howto/functional.rst:605 msgid "" @@ -701,12 +1032,17 @@ msgid "" "suggest using a ``try: ... finally:`` suite instead of catching :exc:" "`GeneratorExit`." msgstr "" +"Si necesita ejecutar un código de limpieza cuando ocurre un :exc:" +"`GeneratorExit`, sugiero usar un ``try: ... finally:`` en lugar de capturar :" +"exc:`GeneratorExit`." #: ../Doc/howto/functional.rst:608 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 convertir a los generadores de " +"productores de información unidireccionales en productores y consumidores." #: ../Doc/howto/functional.rst:611 msgid "" @@ -716,35 +1052,48 @@ msgid "" "can be entered, exited, and resumed at many different points (the ``yield`` " "statements)." msgstr "" +"Los generadores también se convierten en **corrutinas**, una forma más " +"generalizada de subrutinas. Las subrutinas inician en un punto y salen en " +"otro punto (el inicio de la función, y la sentencia ``return``), pero las " +"corrutinas pueden iniciar, salir, y reanudarse en muchos puntos diferentes " +"(las sentencias ``yield``)." #: ../Doc/howto/functional.rst:618 msgid "Built-in functions" -msgstr "" +msgstr "Funciones incorporadas" #: ../Doc/howto/functional.rst:620 msgid "" "Let's look in more detail at built-in functions often used with iterators." msgstr "" +"Veamos con más detalle las funciones incorporadas usadas a menudo con " +"iteradores." #: ../Doc/howto/functional.rst:622 msgid "" "Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " "the features of generator expressions:" msgstr "" +"Dos de las funciones incorporadas de Python, :func:`map` y :func:`filter` " +"duplican las características de las expresiones generadoras:" #: ../Doc/howto/functional.rst:634 msgid "" ":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" msgstr "" +":func:`map(f, iterA, iterB, ...) ` retorna un iterador sobre la " +"secuencia" #: ../Doc/howto/functional.rst:626 msgid "" "``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." msgstr "" +"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." #: ../Doc/howto/functional.rst:636 msgid "You can of course achieve the same effect with a list comprehension." msgstr "" +"Por supuesto puede lograr el mismo efecto con una lista por comprensión." #: ../Doc/howto/functional.rst:638 msgid "" @@ -754,10 +1103,15 @@ msgid "" "truth value of some condition; for use with :func:`filter`, the predicate " "must take a single value." msgstr "" +":func:`filter(predicate, iter) ` retorna un iterador sobre todos los " +"elementos de la secuencia que reúnen cierta condición, y de forma similar " +"está duplicado por las listas por comprensión. Un **predicado** es una " +"función que retorna un valor de verdad de alguna condición; para usarlo con :" +"func:`filter`, el predicado debe recibir un solo valor." #: ../Doc/howto/functional.rst:651 msgid "This can also be written as a list comprehension:" -msgstr "" +msgstr "Esto también se puede escribir como una lista por comprensión:" #: ../Doc/howto/functional.rst:657 msgid "" @@ -765,12 +1119,17 @@ msgid "" "iterable returning 2-tuples containing the count (from *start*) and each " "element. ::" msgstr "" +":func:`enumerate(iter, start=0) ` enumera los elementos en el " +"iterable retornando 2-tuplas que contienen la enumeración (desde *start*) y " +"cada elemento. ::" #: ../Doc/howto/functional.rst:667 msgid "" ":func:`enumerate` is often used when looping through a list and recording " "the indexes at which certain conditions are met::" msgstr "" +":func:`enumerate` a menudo se usa cuando se recorre una lista y se registran " +"los índices en los que se reúnen una cierta condición::" #: ../Doc/howto/functional.rst:675 msgid "" @@ -779,11 +1138,17 @@ msgid "" "result. The *key* and *reverse* arguments are passed through to the " "constructed list's :meth:`~list.sort` method. ::" msgstr "" +":func:`sorted(iterable, key=None, reverse=False) ` reúne todos los " +"elementos de un iterable en una lista, ordena la lista, y retorna el " +"resultado ordenado. Los argumentos *key* y *reverse* se pasan a través del " +"método :meth:`~list.sort` de la lista construida. ::" #: ../Doc/howto/functional.rst:690 msgid "" "(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" msgstr "" +"(Para un tratamiento más detallado del ordenamiento, ver :ref:" +"`sortinghowto`.)" #: ../Doc/howto/functional.rst:693 msgid "" @@ -792,12 +1157,18 @@ msgid "" "any element in the iterable is a true value, and :func:`all` returns " "``True`` if all of the elements are true values:" msgstr "" +"Las funciones incorporadas :func:`any(iter) ` y :func:`all(iter) ` " +"ven los valores de verdad de los contenidos de un iterable. :func:`any` " +"retorna ``True`` si algún elemento en el iterable es un valor verdadero, y :" +"func:`all` retorna ``True`` si todos los elementos son valores verdaderos:" #: ../Doc/howto/functional.rst:712 msgid "" ":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " "and returns them in a tuple::" msgstr "" +":func:`zip(iterA, iterB, ...) ` toma un elemento de cada iterable y los " +"retorna en una tupla::" #: ../Doc/howto/functional.rst:718 msgid "" @@ -806,6 +1177,11 @@ msgid "" "they're requested. (The technical term for this behaviour is `lazy " "evaluation `__.)" msgstr "" +"Esto no construye una lista en memoria y consume todos los iteradores de " +"entrada antes de ejecutar; en lugar de eso, las tuplas se construyen y " +"retornan solo si son requeridas. (El término técnico para este " +"comportamiento es `evaluación perezosa `__.)" #: ../Doc/howto/functional.rst:723 msgid "" @@ -813,6 +1189,9 @@ msgid "" "length. If the iterables are of different lengths, the resulting stream " "will be the same length as the shortest iterable. ::" msgstr "" +"Se pretende que el iterador se use con iterables que tengan todos la misma " +"longitud. Si los iterables son de diferentes longitudes, el flujo resultante " +"tendrá la misma longitud que el iterable más corto. ::" #: ../Doc/howto/functional.rst:730 msgid "" @@ -820,10 +1199,14 @@ msgid "" "the longer iterators and discarded. This means you can't go on to use the " "iterators further because you risk skipping a discarded element." msgstr "" +"Sin embargo, debería evitar hacer esto, porque se puede tomar un elemento de " +"los iteradores más largos y descartarlo. Esto significa que ya no puede " +"seguir usando los iteradores porque corre el riesgo de saltarse un elemento " +"descartado." #: ../Doc/howto/functional.rst:736 msgid "The itertools module" -msgstr "" +msgstr "El módulo itertools" #: ../Doc/howto/functional.rst:738 msgid "" @@ -831,30 +1214,35 @@ msgid "" "well as functions for combining several iterators. This section will " "introduce the module's contents by showing small examples." msgstr "" +"El módulo :mod:`itertools` contiene un número de iteradores comúnmente " +"usados así como funciones para combinar varios iteradores. Esta sección " +"presentará los contenidos del módulo mostrando pequeños ejemplos." #: ../Doc/howto/functional.rst:742 msgid "The module's functions fall into a few broad classes:" -msgstr "" +msgstr "Las funciones del módulo caen en unas pocas clases generales:" #: ../Doc/howto/functional.rst:744 msgid "Functions that create a new iterator based on an existing iterator." -msgstr "" +msgstr "Funciones que crean un nuevo iterador basado en un iterador existente." #: ../Doc/howto/functional.rst:745 msgid "Functions for treating an iterator's elements as function arguments." msgstr "" +"Funciones para tratar los elementos de un iterador como argumentos de " +"función." #: ../Doc/howto/functional.rst:746 msgid "Functions for selecting portions of an iterator's output." -msgstr "" +msgstr "Funciones para seleccionar porciones de la salida de un iterador." #: ../Doc/howto/functional.rst:747 msgid "A function for grouping an iterator's output." -msgstr "" +msgstr "Una función para agrupar la salida de un iterador." #: ../Doc/howto/functional.rst:750 msgid "Creating new iterators" -msgstr "" +msgstr "Crear nuevos iteradores" #: ../Doc/howto/functional.rst:752 msgid "" @@ -863,6 +1251,10 @@ msgid "" "number, which defaults to 0, and the interval between numbers, which " "defaults to 1::" msgstr "" +":func:`itertools.count(start, step) ` retorna un flujo " +"infinito de valores equiespaciados. Opcionalmente puede suministrar el " +"número de inicio, que por defecto es 0, y el intervalo entre números, que " +"por defecto es 1::" #: ../Doc/howto/functional.rst:763 msgid "" @@ -871,6 +1263,10 @@ msgid "" "from first to last. The new iterator will repeat these elements " "infinitely. ::" msgstr "" +":func:`itertools.cycle(iter) ` guarda una copia de los " +"contenidos de un iterable provisto y retorna un nuevo iterador que retorna " +"sus elementos del primero al último. El nuevo iterador repetirá estos " +"elementos infinitamente. ::" #: ../Doc/howto/functional.rst:770 msgid "" @@ -878,6 +1274,9 @@ msgid "" "element *n* times, or returns the element endlessly if *n* is not " "provided. ::" msgstr "" +":func:`itertools.repeat(elem, [n]) ` retorna el elemento " +"provisto *n* veces, o retorna el elemento indefinidamente si no se provee " +"*n*. ::" #: ../Doc/howto/functional.rst:778 msgid "" @@ -886,6 +1285,10 @@ msgid "" "first iterator, then all the elements of the second, and so on, until all of " "the iterables have been exhausted. ::" msgstr "" +":func:`itertools.chain(iterA, iterB, ...) ` recibe un " +"número arbitrario de iterables como entrada, y retorna todos los elementos " +"del primer iterador, luego todos los elementos del segundo, y así " +"sucesivamente, hasta que hayan sido agotados todos los iterables. ::" #: ../Doc/howto/functional.rst:786 msgid "" @@ -897,6 +1300,13 @@ msgid "" "and list slicing, you can't use negative values for *start*, *stop*, or " "*step*. ::" msgstr "" +":func:`itertools.islice(iter, [start], stop, [step]) ` " +"retorna un flujo que es un segmento del iterador. Con solo un argumento " +"*stop*, retornará los primeros *stop* elementos. Si suministra un índice de " +"inicio, obtendrá los elementos *stop-start*, y si suministra un valor para " +"*step*, los elementos se saltarán en consecuencia. A diferencia de la " +"segmentación de listas y cadenas de caracteres de Python, no puede usar " +"valores negativos para *start*, *stop* o *step*. ::" #: ../Doc/howto/functional.rst:800 msgid "" @@ -907,10 +1317,16 @@ msgid "" "iterator, so this can consume significant memory if the iterator is large " "and one of the new iterators is consumed more than the others. ::" msgstr "" +":func:`itertools.tee(iter, [n]) ` replica un iterador; " +"retorna *n* iteradores independientes que retornarán los contenidos del " +"iterador fuente. Si no suministra un valor para *n*, por defecto es 2. " +"Replicar iteradores requiere guardar algunos de los contenidos del iterador " +"fuente, esto puede consumir memoria significativa si el iterador es grande y " +"uno de los nuevos iteradores se consume más que los otros. ::" #: ../Doc/howto/functional.rst:819 msgid "Calling functions on elements" -msgstr "" +msgstr "Aplicar funciones a los elementos" #: ../Doc/howto/functional.rst:821 msgid "" @@ -920,6 +1336,11 @@ msgid "" "``a != b``), and :func:`operator.attrgetter('id') ` " "(returns a callable that fetches the ``.id`` attribute)." msgstr "" +"El módulo :mod:`operator` contiene un conjunto de funciones correspondientes " +"a los operadores de Python. Algunos ejemplos son :func:`operator.add(a, b) " +"` (suma dos valores), :func:`operator.ne(a, b) ` " +"(lo mismo que ``a != b``) y :func:`operator.attrgetter('id') ` (retorna un invocable que obtiene el atributo ``.id``)." #: ../Doc/howto/functional.rst:827 msgid "" @@ -927,16 +1348,21 @@ msgid "" "iterable will return a stream of tuples, and calls *func* using these tuples " "as the arguments::" msgstr "" +":func:`itertools.starmap(func, iter) ` asume que el " +"iterable retornará un flujo de tuplas, y llama a *func* usando estas tuplas " +"como los argumentos::" #: ../Doc/howto/functional.rst:839 msgid "Selecting elements" -msgstr "" +msgstr "Seleccionar elementos" #: ../Doc/howto/functional.rst:841 msgid "" "Another group of functions chooses a subset of an iterator's elements based " "on a predicate." msgstr "" +"Otro grupo de funciones elige un subconjunto de elementos de un iterador " +"basado en un predicado dado." #: ../Doc/howto/functional.rst:844 msgid "" @@ -944,6 +1370,9 @@ msgid "" "the opposite of :func:`filter`, returning all elements for which the " "predicate returns false::" msgstr "" +":func:`itertools.filterfalse(predicate, iter) ` es el " +"opuesto de :func:`filter`, retornando todos los elementos para los que el " +"predicado retorna falso::" #: ../Doc/howto/functional.rst:851 msgid "" @@ -951,6 +1380,9 @@ msgid "" "elements for as long as the predicate returns true. Once the predicate " "returns false, the iterator will signal the end of its results. ::" msgstr "" +":func:`itertools.takewhile(predicate, iter) ` retorna " +"los elementos mientras el predicado retorne verdadero. Una vez que el " +"predicado retorna falso, el iterador indicará el final de sus resultados. ::" #: ../Doc/howto/functional.rst:864 msgid "" @@ -958,6 +1390,9 @@ msgid "" "elements while the predicate returns true, and then returns the rest of the " "iterable's results. ::" msgstr "" +":func:`itertools.dropwhile(predicate, iter) ` descarta " +"los elementos mientras el predicado retorne verdadero, y luego retorna el " +"resto de los resultados del iterable. ::" #: ../Doc/howto/functional.rst:874 msgid "" @@ -966,10 +1401,14 @@ msgid "" "corresponding element of *selectors* is true, stopping whenever either one " "is exhausted::" msgstr "" +":func:`itertools.compress(data, selectors) ` recibe dos " +"iteradores y retorna solo aquellos elementos de *data* para los cuales el " +"elemento correspondiente de *selectors* es verdadero, deteniéndose cuando " +"alguno se termine::" #: ../Doc/howto/functional.rst:883 msgid "Combinatoric functions" -msgstr "" +msgstr "Funciones combinatorias" #: ../Doc/howto/functional.rst:885 msgid "" @@ -977,6 +1416,9 @@ msgid "" "returns an iterator giving all possible *r*-tuple combinations of the " "elements contained in *iterable*. ::" msgstr "" +"La función :func:`itertools.combinations(iterable, r) ` retorna un iterador proporcionando todas las combinaciones de " +"*r*-tuplas de los elementos contenidos en *iterable*. ::" #: ../Doc/howto/functional.rst:900 msgid "" @@ -986,24 +1428,36 @@ msgid "" "permutations(iterable, r=None) `, removes this " "constraint on the order, returning all possible arrangements of length *r*::" msgstr "" +"Los elementos dentro de cada tupla permanecen en el mismo orden en el que " +"*iterable* los retornó. Por ejemplo, el número 1 siempre está antes que 2, " +"3, 4 o 5 en los ejemplos de arriba. Una función similar, :func:`itertools." +"permutations(iterable, r=None) `, remueve esta " +"restricción en el orden, retornando todas las disposiciones posibles de " +"longitud *r*::" #: ../Doc/howto/functional.rst:919 msgid "" "If you don't supply a value for *r* the length of the iterable is used, " "meaning that all the elements are permuted." msgstr "" +"Si no suministra un valor para *r* se usa la longitud del iterable, lo que " +"significa que se permutan todos los elementos." #: ../Doc/howto/functional.rst:922 msgid "" "Note that these functions produce all of the possible combinations by " "position and don't require that the contents of *iterable* are unique::" msgstr "" +"Note que estas funciones producen todas las combinaciones posibles por " +"posición y no requieren que los contenidos de *iterable* sean únicos::" #: ../Doc/howto/functional.rst:929 msgid "" "The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " "strings came from different positions." msgstr "" +"La tupla idéntica ``('a', 'a', 'b')`` aparece dos veces, pero las dos " +"cadenas de caracteres 'a' provienen de diferentes posiciones." #: ../Doc/howto/functional.rst:932 msgid "" @@ -1013,10 +1467,15 @@ msgid "" "selected for the first position of each tuple and then is replaced before " "the second element is selected. ::" msgstr "" +"La función :func:`itertools.combinations_with_replacement(iterable, r) " +"` relaja una restricción diferente: " +"los elementos se pueden repetir dentro de una misma tupla. Conceptualmente " +"un elemento se elige para la primera posición de cada tupla y luego se " +"reemplaza antes de que se elija el segundo elemento. ::" #: ../Doc/howto/functional.rst:947 msgid "Grouping elements" -msgstr "" +msgstr "Agrupar elementos" #: ../Doc/howto/functional.rst:949 msgid "" @@ -1026,6 +1485,11 @@ msgid "" "element returned by the iterable. If you don't supply a key function, the " "key is simply each element itself." msgstr "" +"La última función que trataré, :func:`itertools.groupby(iter, key_func=None) " +"`, es la más complicada. ``key_func(elem)`` es una " +"función que calcula un valor clave para cada elemento retornado por el " +"iterable. Si no suministra una función de clave, la clave será simplemente " +"el elemento mismo." #: ../Doc/howto/functional.rst:954 msgid "" @@ -1033,6 +1497,10 @@ msgid "" "underlying iterable that have the same key value, and returns a stream of 2-" "tuples containing a key value and an iterator for the elements with that key." msgstr "" +":func:`~itertools.groupby` reúne todos los elementos consecutivos del " +"iterable subyacente que tienen el mismo valor clave, y retorna un flujo de 2-" +"tuplas que contienen un valor clave y un iterador para los elementos con esa " +"clave." #: ../Doc/howto/functional.rst:982 msgid "" @@ -1041,10 +1509,14 @@ msgid "" "also use the underlying iterable, so you have to consume the results of " "iterator-1 before requesting iterator-2 and its corresponding key." 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." #: ../Doc/howto/functional.rst:989 msgid "The functools module" -msgstr "" +msgstr "El módulo functools" #: ../Doc/howto/functional.rst:991 msgid "" @@ -1053,6 +1525,10 @@ msgid "" "and returns a new function. The most useful tool in this module is the :" "func:`functools.partial` function." msgstr "" +"El módulo :mod:`functools` en Python 2.5 contiene algunas funciones de orden " +"superior. Una **función de orden superior** recibe una o más funciones como " +"entrada y retorna una nueva función. La herramienta más útil en este módulo " +"es la función :func:`functools.partial`." #: ../Doc/howto/functional.rst:996 msgid "" @@ -1063,6 +1539,12 @@ msgid "" "filling in a value for one of ``f()``'s parameters. This is called " "\"partial function application\"." msgstr "" +"Para programas escritos en un estilo funcional, a veces querrá construir " +"variantes de funciones existentes que tienen algunos de los parámetros " +"predefinidos. Considere una función de Python ``f(a, b, c)``; puede querer " +"crear una nueva función ``g(b, c)`` que sea equivalente a ``f(1, b, c)``; " +"está completando un valor para uno de los parámetros de ``f()``. Esto se " +"llama \"aplicación parcial de funciones\"." #: ../Doc/howto/functional.rst:1002 msgid "" @@ -1071,10 +1553,14 @@ msgid "" "resulting object is callable, so you can just call it to invoke ``function`` " "with the filled-in arguments." msgstr "" +"El constructor para :func:`~functools.partial` recibe los argumentos " +"``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. El objeto " +"resultante es invocable, por lo que puede invocar a ``function`` con los " +"argumentos rellenados." #: ../Doc/howto/functional.rst:1007 msgid "Here's a small but realistic example::" -msgstr "" +msgstr "Aquí hay un ejemplo pequeño pero realista::" #: ../Doc/howto/functional.rst:1019 msgid "" @@ -1090,6 +1576,17 @@ msgid "" "If the initial value is supplied, it's used as a starting point and " "``func(initial_value, A)`` is the first calculation. ::" msgstr "" +":func:`functools.reduce(func, iter, [initial_value]) ` " +"realiza acumulativamente una operación en todos los elementos del iterable " +"y, por lo tanto, no se puede aplicar a infinitos iterables. *func* debe ser " +"una función que recibe dos elementos y retorna un solo valor. :func:" +"`functools.reduce` recibe los primeros dos elementos A y B retornados por el " +"iterador y calcula ``func(A, B)``. Luego pide el tercer elemento, C, calcula " +"``func(func(A, B), C)``, combina este resultado con el cuarto elemento " +"retornado, y continua hasta que se agote el iterable. Si el iterable no " +"retorna ningún valor, se lanza una excepción :exc:`TypeError`. Si se " +"suministra el valor inicial, se usa como punto inicial y " +"``func(initial_value, A)`` es el primer cálculo. ::" #: ../Doc/howto/functional.rst:1043 msgid "" @@ -1097,12 +1594,17 @@ msgid "" "all the elements of the iterable. This case is so common that there's a " "special built-in called :func:`sum` to compute it:" msgstr "" +"Si usa :func:`operator.add` con :func:`functools.reduce`, sumará todos los " +"elementos del iterable. Este caso es tan común que hay una función " +"incorporada especial llamada :func:`sum` para calcularla:" #: ../Doc/howto/functional.rst:1055 msgid "" "For many uses of :func:`functools.reduce`, though, it can be clearer to just " "write the obvious :keyword:`for` loop::" msgstr "" +"Sin embargo, para muchos usos de :func:`functools.reduce` puede ser mas " +"claro simplemente escribir el ciclo :keyword:`for`::" #: ../Doc/howto/functional.rst:1067 msgid "" @@ -1111,10 +1613,14 @@ msgid "" "of returning only the final result, :func:`accumulate` returns an iterator " "that also yields each partial result::" msgstr "" +"Una función relacionada es :func:`itertools.accumulate(iterable, " +"func=operator.add) `. Realiza el mismo cálculo, pero " +"en lugar de retornar solo el resultado final, :func:`accumulate` retorna un " +"iterador que también produce cada resultado parcial::" #: ../Doc/howto/functional.rst:1080 msgid "The operator module" -msgstr "" +msgstr "El módulo operator" #: ../Doc/howto/functional.rst:1082 msgid "" @@ -1123,53 +1629,65 @@ msgid "" "useful in functional-style code because they save you from writing trivial " "functions that perform a single operation." msgstr "" +"El módulo :mod:`operator` se mencionó anteriormente. Contiene un conjunto de " +"funciones que corresponden a los operadores de Python. Estas funciones a " +"menudo son útiles en código en estilo funcional porque le salvan de escribir " +"funciones triviales que realizan una sola operación." #: ../Doc/howto/functional.rst:1087 msgid "Some of the functions in this module are:" -msgstr "" +msgstr "Algunas de las funciones en este módulo son:" #: ../Doc/howto/functional.rst:1089 msgid "" "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "``abs()``, ..." msgstr "" +"Operaciones matemáticas: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " +"``abs()``, ..." #: ../Doc/howto/functional.rst:1090 msgid "Logical operations: ``not_()``, ``truth()``." -msgstr "" +msgstr "Operaciones lógicas: ``not_()``, ``truth()``." #: ../Doc/howto/functional.rst:1091 msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." -msgstr "" +msgstr "Operaciones bit a bit: ``and_()``, ``or_()``, ``invert()``." #: ../Doc/howto/functional.rst:1092 msgid "" "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." msgstr "" +"Comparaciones: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()`` y ``ge()``." #: ../Doc/howto/functional.rst:1093 msgid "Object identity: ``is_()``, ``is_not()``." -msgstr "" +msgstr "Identidad de objeto: ``is_()``, ``is_not()``." #: ../Doc/howto/functional.rst:1095 msgid "Consult the operator module's documentation for a complete list." -msgstr "" +msgstr "Consulte la documentación del módulo operator para una lista completa." #: ../Doc/howto/functional.rst:1099 msgid "Small functions and the lambda expression" -msgstr "" +msgstr "Funciones pequeñas y la expresión lambda" #: ../Doc/howto/functional.rst:1101 msgid "" "When writing functional-style programs, you'll often need little functions " "that act as predicates or that combine elements in some way." msgstr "" +"Cuando se escriben programas en estilo funcional, a menudo necesitará " +"pequeñas funciones que actúen como predicados o que combinen elementos de " +"alguna manera." #: ../Doc/howto/functional.rst:1104 msgid "" "If there's a Python built-in or a module function that's suitable, you don't " "need to define a new function at all::" msgstr "" +"Si hay una función incorporada o un módulo de Python, no necesita definir " +"una nueva función en absoluto::" #: ../Doc/howto/functional.rst:1110 msgid "" @@ -1179,18 +1697,26 @@ msgid "" "parameters, and creates an anonymous function that returns the value of the " "expression::" msgstr "" +"Si la función que necesita no existe, necesita escribirla. Una forma de " +"escribir funciones pequeñas es usar la expresión :keyword:`lambda`. " +"``lambda`` recibe un número de parámetros y una expresión que combina estos " +"parámetros, y crea una función anónima que retorna el valor de la expresión::" #: ../Doc/howto/functional.rst:1119 msgid "" "An alternative is to just use the ``def`` statement and define a function in " "the usual way::" msgstr "" +"Una alternativa es simplemente usar la sentencia ``def`` y definir una " +"función en la forma usual::" #: ../Doc/howto/functional.rst:1128 msgid "" "Which alternative is preferable? That's a style question; my usual course " "is to avoid using ``lambda``." msgstr "" +"¿Qué alternativa es preferible? Esa es una pregunta de estilo; mi rumbo " +"usual es evitar usar ``lambda``." #: ../Doc/howto/functional.rst:1131 msgid "" @@ -1201,6 +1727,12 @@ msgid "" "``lambda`` statement, you'll end up with an overly complicated expression " "that's hard to read. Quick, what's the following code doing? ::" msgstr "" +"Una razón para mi preferencia es que ``lambda`` es muy limitado en las " +"funciones que puede definir. El resultado tiene que ser calculable como una " +"sola expresión, que significa que no tiene comparaciones multivía ``if... " +"elif... else`` o sentencias ``try... except``. Si intenta hacer mucho en una " +"sentencia ``lambda``, terminará con una expresión demasiado complicada que " +"es difícil de leer. Rápido, ¿qué hace el siguiente código? ::" #: ../Doc/howto/functional.rst:1141 msgid "" @@ -1208,58 +1740,70 @@ msgid "" "figure out what's going on. Using a short nested ``def`` statements makes " "things a little bit better::" msgstr "" +"Puede averiguarlo, pero toma tiempo desenredar la expresión para averiguar " +"que está pasando. Usar una corta sentencia ``def`` anidada hace las cosas un " +"poco mejor::" #: ../Doc/howto/functional.rst:1151 msgid "But it would be best of all if I had simply used a ``for`` loop::" msgstr "" +"Pero lo mejor de todo sería si simplemente hubiese usado un ciclo ``for``::" #: ../Doc/howto/functional.rst:1157 msgid "Or the :func:`sum` built-in and a generator expression::" -msgstr "" +msgstr "O la función incorporada :func:`sum` y una expresión generadora::" #: ../Doc/howto/functional.rst:1161 msgid "" "Many uses of :func:`functools.reduce` are clearer when written as ``for`` " "loops." msgstr "" +"Muchos usos de :func:`functools.reduce` son más claros cuando se escriben " +"como ciclos ``for``." #: ../Doc/howto/functional.rst:1163 msgid "" "Fredrik Lundh once suggested the following set of rules for refactoring uses " "of ``lambda``:" msgstr "" +"Fredrik Lundh una vez sugirió el siguiente conjunto de reglas para " +"refactorizar los usos de ``lambda``:" #: ../Doc/howto/functional.rst:1166 msgid "Write a lambda function." -msgstr "" +msgstr "Escribir una función lambda." #: ../Doc/howto/functional.rst:1167 msgid "Write a comment explaining what the heck that lambda does." -msgstr "" +msgstr "Escribir un comentario explicando qué demonios hace esa lambda." #: ../Doc/howto/functional.rst:1168 msgid "" "Study the comment for a while, and think of a name that captures the essence " "of the comment." msgstr "" +"Estudiar el comentario por un momento, y pensar en un nombre que capture la " +"esencia del comentario." #: ../Doc/howto/functional.rst:1170 msgid "Convert the lambda to a def statement, using that name." -msgstr "" +msgstr "Convertir la lambda a una sentencia def, usando ese nombre." #: ../Doc/howto/functional.rst:1171 msgid "Remove the comment." -msgstr "" +msgstr "Remover el comentario." #: ../Doc/howto/functional.rst:1173 msgid "" "I really like these rules, but you're free to disagree about whether this " "lambda-free style is better." msgstr "" +"Me gustan mucho estas reglas, pero es libre de disentir acerca de si este " +"estilo libre de lambda es mejor." #: ../Doc/howto/functional.rst:1178 msgid "Revision History and Acknowledgements" -msgstr "" +msgstr "Historia de revisiones y reconocimientos" #: ../Doc/howto/functional.rst:1180 msgid "" @@ -1268,39 +1812,53 @@ msgid "" "Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " "Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." msgstr "" +"Al autor le gustaría agradecer a las siguientes personar por ofrecer " +"sugerencias, correcciones y asistencia con varios borradores de este " +"articulo: Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim " +"Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " +"Winton." #: ../Doc/howto/functional.rst:1185 msgid "Version 0.1: posted June 30 2006." -msgstr "" +msgstr "Versión 0.1: publicada el 30 de junio de 2006." #: ../Doc/howto/functional.rst:1187 msgid "Version 0.11: posted July 1 2006. Typo fixes." msgstr "" +"Versión 0.11: publicada el 1 de julio de 2006. Errores tipográficos " +"arreglados." #: ../Doc/howto/functional.rst:1189 msgid "" "Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " "one. Typo fixes." msgstr "" +"Versión 0.2: publicada el 10 de julio de 2006. Secciones genexp y listcomp " +"unidas en una sola. Errores tipográficos arreglados." #: ../Doc/howto/functional.rst:1192 msgid "" "Version 0.21: Added more references suggested on the tutor mailing list." msgstr "" +"Versión 0.21: Agregadas mas referencias sugeridas en la lista de correos " +"tutor." #: ../Doc/howto/functional.rst:1194 msgid "" "Version 0.30: Adds a section on the ``functional`` module written by Collin " "Winter; adds short section on the operator module; a few other edits." msgstr "" +"Versión 0.30: Agrega una sección sobre el módulo ``functional`` escrito por " +"Collin Winter; agrega una sección corta sobre el módulo operator; y unas " +"pocas otras ediciones." #: ../Doc/howto/functional.rst:1199 msgid "References" -msgstr "" +msgstr "Referencias" #: ../Doc/howto/functional.rst:1202 msgid "General" -msgstr "" +msgstr "Generales" #: ../Doc/howto/functional.rst:1204 msgid "" @@ -1312,6 +1870,13 @@ msgid "" "approaches described in these chapters are applicable to functional-style " "Python code." msgstr "" +"**Estructura e interpretación de programas de computadora**, por Harold " +"Abelson y Gerald Jay Sussman con Julie Sussman. Texto completo en https://" +"mitpress.mit.edu/sicp/. En este libro clásico de ciencia de computación, los " +"capítulos 2 y 3 tratan el uso de secuencias y flujos para organizar el flujo " +"de datos dentro de un programa. El libro usa Scheme para sus ejemplos, pero " +"muchos de los enfoques de diseño descritos en estos capítulos son aplicables " +"al código de Python en estilo funcional." #: ../Doc/howto/functional.rst:1212 msgid "" @@ -1319,25 +1884,32 @@ msgid "" "functional programming that uses Java examples and has a lengthy historical " "introduction." msgstr "" +"http://www.defmacro.org/ramblings/fp.html: Una introducción general a la " +"programación funcional que usa ejemplos en Java y tiene una introducción " +"histórica extensa." #: ../Doc/howto/functional.rst:1215 msgid "" "https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " "entry describing functional programming." msgstr "" +"https://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional: Entrada general " +"de Wikipedia que describe la programación funcional." #: ../Doc/howto/functional.rst:1218 msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." -msgstr "" +msgstr "https://es.wikipedia.org/wiki/Corrutina: Entrada para corrutinas." #: ../Doc/howto/functional.rst:1220 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" +"https://es.wikipedia.org/wiki/Currificaci%C3%B3n: Entrada para el concepto " +"de currificación." #: ../Doc/howto/functional.rst:1223 msgid "Python-specific" -msgstr "" +msgstr "Específicas de Python" #: ../Doc/howto/functional.rst:1225 msgid "" @@ -1346,6 +1918,10 @@ msgid "" "text processing, in the section titled \"Utilizing Higher-Order Functions in " "Text Processing\"." msgstr "" +"http://gnosis.cx/TPiP/: El primer capítulo del libro de David Mertz :title-" +"reference:`Text Processing in Python` trata la programación funcional para " +"procesamiento de texto, en la sección titulada \"Utilizando funciones de " +"orden superior en procesamiento de texto\"." #: ../Doc/howto/functional.rst:1230 msgid "" @@ -1354,29 +1930,36 @@ msgid "" "prog/>`__, `part 2 `__, and " "`part 3 `__," msgstr "" +"Mertz también escribió una serie de artículos de 3 partes sobre programación " +"funcional para el sitio DeveloperWorks de IBM; ver `parte 1 `__, `parte 2 `__, y `parte 3 `__," #: ../Doc/howto/functional.rst:1238 msgid "Python documentation" -msgstr "" +msgstr "Documentación de Python" #: ../Doc/howto/functional.rst:1240 msgid "Documentation for the :mod:`itertools` module." -msgstr "" +msgstr "Documentación del módulo :mod:`itertools`." #: ../Doc/howto/functional.rst:1242 msgid "Documentation for the :mod:`functools` module." -msgstr "" +msgstr "Documentación del módulo :mod:`functools`." #: ../Doc/howto/functional.rst:1244 msgid "Documentation for the :mod:`operator` module." -msgstr "" +msgstr "Documentación del módulo :mod:`operator`." #: ../Doc/howto/functional.rst:1246 msgid ":pep:`289`: \"Generator Expressions\"" -msgstr "" +msgstr ":pep:`289`: \"Expresiones generadoras\"" #: ../Doc/howto/functional.rst:1248 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." msgstr "" +":pep:`342`: \"Corrutinas a través de generadores mejorados\" describe las " +"características del nuevo generador en Python 2.5." diff --git a/howto/instrumentation.po b/howto/instrumentation.po index d215ead246..d0fbeca152 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.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: 2020-10-09 13:37-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.1\n" #: ../Doc/howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" -msgstr "" +msgstr "Instrumentación de CPython con DTrace y SystemTap" #: ../Doc/howto/instrumentation.rst msgid "author" -msgstr "" +msgstr "autor" #: ../Doc/howto/instrumentation.rst:9 msgid "David Malcolm" -msgstr "" +msgstr "David Malcolm" #: ../Doc/howto/instrumentation.rst:10 msgid "Łukasz Langa" -msgstr "" +msgstr "Łukasz Langa" #: ../Doc/howto/instrumentation.rst:12 msgid "" @@ -42,18 +44,22 @@ msgid "" "what the processes on a computer system are doing. They both use domain-" "specific languages allowing a user to write scripts which:" msgstr "" +"DTrace y SystemTap son herramientas de monitoreo, cada una de las cuales " +"proporciona una forma de inspeccionar lo que están haciendo los procesos en " +"un sistema informático. Ambos usan lenguajes específicos de dominio que " +"permiten al usuario escribir scripts que:" #: ../Doc/howto/instrumentation.rst:16 msgid "filter which processes are to be observed" -msgstr "" +msgstr "filtrar qué procesos deben observarse" #: ../Doc/howto/instrumentation.rst:17 msgid "gather data from the processes of interest" -msgstr "" +msgstr "recopilar datos de los procesos de interés" #: ../Doc/howto/instrumentation.rst:18 msgid "generate reports on the data" -msgstr "" +msgstr "generar reportes sobre los datos" #: ../Doc/howto/instrumentation.rst:20 msgid "" @@ -61,6 +67,10 @@ msgid "" "as \"probes\", that can be observed by a DTrace or SystemTap script, making " "it easier to monitor what the CPython processes on a system are doing." msgstr "" +"A partir de Python 3.6, CPython se puede construir con \"marcadores\" " +"incrustados, también conocidos como \"sondas\", que se pueden observar " +"mediante un script de DTrace o SystemTap, lo que facilita la supervisión de " +"lo que hacen los procesos de CPython en un sistema." #: ../Doc/howto/instrumentation.rst:27 msgid "" @@ -69,10 +79,15 @@ msgid "" "DTrace scripts can stop working or work incorrectly without warning when " "changing CPython versions." msgstr "" +"Los marcadores de DTrace son detalles de implementación del intérprete " +"CPython. No se ofrecen garantías sobre la compatibilidad de la sonda entre " +"versiones de CPython. Los scripts de DTrace pueden dejar de funcionar o " +"funcionar incorrectamente sin previo aviso al cambiar las versiones de " +"CPython." #: ../Doc/howto/instrumentation.rst:34 msgid "Enabling the static markers" -msgstr "" +msgstr "Habilitando los marcadores estáticos" #: ../Doc/howto/instrumentation.rst:36 msgid "" @@ -80,18 +95,21 @@ msgid "" "CPython with the embedded markers for SystemTap, the SystemTap development " "tools must be installed." msgstr "" +"macOS viene con soporte integrado para DTrace. En Linux, para construir " +"CPython con los marcadores incrustados para SystemTap, se deben instalar las " +"herramientas de desarrollo de SystemTap." #: ../Doc/howto/instrumentation.rst:40 msgid "On a Linux machine, this can be done via::" -msgstr "" +msgstr "En una máquina Linux, esto se puede hacer a través de::" #: ../Doc/howto/instrumentation.rst:44 msgid "or::" -msgstr "" +msgstr "o::" #: ../Doc/howto/instrumentation.rst:49 msgid "CPython must then be configured ``--with-dtrace``:" -msgstr "" +msgstr "Luego, CPython debe configurarse ``--with-dtrace``:" #: ../Doc/howto/instrumentation.rst:55 msgid "" @@ -99,22 +117,32 @@ msgid "" "in the background and listing all probes made available by the Python " "provider::" msgstr "" +"En macOS, puede enumerar las sondas disponibles de DTrace ejecutando un " +"proceso de Python en segundo plano y listando todas las sondas disponibles " +"por el proveedor de Python::" #: ../Doc/howto/instrumentation.rst:72 msgid "" "On Linux, you can verify if the SystemTap static markers are present in the " "built binary by seeing if it contains a \".note.stapsdt\" section." msgstr "" +"En Linux, puede verificar si los marcadores estáticos SystemTap están " +"presentes en el binario construido al ver si contiene una sección \".note." +"stapsdt\"." #: ../Doc/howto/instrumentation.rst:80 msgid "" "If you've built Python as a shared library (with --enable-shared), you need " "to look instead within the shared library. For example::" msgstr "" +"Si ha creado Python como una biblioteca compartida (con --enable-shared), " +"debe buscar en la biblioteca compartida. Por ejemplo::" #: ../Doc/howto/instrumentation.rst:86 msgid "Sufficiently modern readelf can print the metadata::" msgstr "" +"Un lector de formato ELF suficientemente moderno puede imprimir los " +"metadatos::" #: ../Doc/howto/instrumentation.rst:123 msgid "" @@ -122,10 +150,14 @@ msgid "" "patch strategically-placed machine code instructions to enable the tracing " "hooks used by a SystemTap script." msgstr "" +"Los metadatos anteriores contienen información para SystemTap que describe " +"cómo puede parchear instrucciones de código de máquina ubicadas " +"estratégicamente para habilitar los *hooks* de rastreo utilizados por un " +"script de SystemTap." #: ../Doc/howto/instrumentation.rst:129 msgid "Static DTrace probes" -msgstr "" +msgstr "Sondas estáticas DTrace" #: ../Doc/howto/instrumentation.rst:131 msgid "" @@ -134,18 +166,22 @@ msgid "" "function called \"start\". In other words, import-time function invocations " "are not going to be listed:" msgstr "" +"El siguiente ejemplo de script DTrace se puede utilizar para mostrar la " +"jerarquía de llamada/retorno de un script de Python, solo rastreando dentro " +"de la invocación de una función llamada \"start\". En otras palabras, las " +"llamadas a funciones durante la importación aparecerán en la lista:" #: ../Doc/howto/instrumentation.rst:170 ../Doc/howto/instrumentation.rst:228 msgid "It can be invoked like this::" -msgstr "" +msgstr "Se puede invocar así::" #: ../Doc/howto/instrumentation.rst:174 ../Doc/howto/instrumentation.rst:234 msgid "The output looks like this:" -msgstr "" +msgstr "La salida se verá así:" #: ../Doc/howto/instrumentation.rst:199 msgid "Static SystemTap markers" -msgstr "" +msgstr "Marcadores estáticos SystemTap" #: ../Doc/howto/instrumentation.rst:201 msgid "" @@ -153,33 +189,40 @@ msgid "" "markers directly. This requires you to explicitly state the binary file " "containing them." msgstr "" +"La forma de bajo nivel para utilizar la integración de SystemTap es utilizar " +"los marcadores estáticos directamente. Esto requiere que indique " +"explícitamente el archivo binario que los contiene." #: ../Doc/howto/instrumentation.rst:205 msgid "" "For example, this SystemTap script can be used to show the call/return " "hierarchy of a Python script:" msgstr "" +"Por ejemplo, este script SystemTap se puede utilizar para mostrar la " +"jerarquía de llamada/retorno de un script de Python:" #: ../Doc/howto/instrumentation.rst:245 msgid "where the columns are:" -msgstr "" +msgstr "donde las columnas son:" #: ../Doc/howto/instrumentation.rst:247 msgid "time in microseconds since start of script" -msgstr "" +msgstr "tiempo en microsegundos desde el inicio del script" #: ../Doc/howto/instrumentation.rst:249 msgid "name of executable" -msgstr "" +msgstr "nombre del ejecutable" #: ../Doc/howto/instrumentation.rst:251 msgid "PID of process" -msgstr "" +msgstr "PID de proceso" #: ../Doc/howto/instrumentation.rst:253 msgid "" "and the remainder indicates the call/return hierarchy as the script executes." msgstr "" +"y el resto indica la jerarquía de llamada/retorno a medida que se ejecuta el " +"script." #: ../Doc/howto/instrumentation.rst:255 msgid "" @@ -187,24 +230,29 @@ msgid "" "the libpython shared library, and the probe's dotted path needs to reflect " "this. For example, this line from the above example:" msgstr "" +"Para una compilación `--enable-shared` de CPython, los marcadores están " +"contenidos dentro de la biblioteca compartida libpython, y la ruta de puntos " +"de la sonda debe reflejar esto. Por ejemplo, esta línea del ejemplo anterior:" #: ../Doc/howto/instrumentation.rst:263 msgid "should instead read:" -msgstr "" +msgstr "en su lugar debería leer:" #: ../Doc/howto/instrumentation.rst:269 msgid "(assuming a debug build of CPython 3.6)" -msgstr "" +msgstr "(asumiendo una compilación de depuración de CPython 3.6)" #: ../Doc/howto/instrumentation.rst:273 msgid "Available static markers" -msgstr "" +msgstr "Marcadores estáticos disponibles" #: ../Doc/howto/instrumentation.rst:279 msgid "" "This marker indicates that execution of a Python function has begun. It is " "only triggered for pure-Python (bytecode) functions." msgstr "" +"Este marcador indica que ha comenzado la ejecución de una función de Python. " +"Solo se activa para funciones de Python puro (código de bytes)." #: ../Doc/howto/instrumentation.rst:282 msgid "" @@ -212,22 +260,29 @@ msgid "" "tracing script as positional arguments, which must be accessed using ``" "$arg1``, ``$arg2``, ``$arg3``:" msgstr "" +"El nombre del archivo, el nombre de la función y el número de línea se " +"devuelven al script de rastreo como argumentos posicionales, a los que se " +"debe acceder usando ``$arg1``, ``$arg2``, ``$arg3``:" #: ../Doc/howto/instrumentation.rst:286 msgid "" "``$arg1`` : ``(const char *)`` filename, accessible using " "``user_string($arg1)``" msgstr "" +"``$arg1`` : ``(const char *)`` nombre del archivo, accesible usando " +"``user_string($arg1)``" #: ../Doc/howto/instrumentation.rst:288 msgid "" "``$arg2`` : ``(const char *)`` function name, accessible using " "``user_string($arg2)``" msgstr "" +"``$arg2`` : ``(const char *)`` nombre de la función, accesible usando " +"``user_string($arg2)``" #: ../Doc/howto/instrumentation.rst:291 msgid "``$arg3`` : ``int`` line number" -msgstr "" +msgstr "``$arg3`` : ``int`` número de linea" #: ../Doc/howto/instrumentation.rst:295 msgid "" @@ -235,10 +290,14 @@ msgid "" "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 marcador es el inverso de :c:func:`function__entry`, e indica que la " +"ejecución de una función de Python ha finalizado (ya sea mediante ``return`` " +"o vía una excepción). Solo se activa para funciones de Python puro (código " +"de bytes)." #: ../Doc/howto/instrumentation.rst:299 msgid "The arguments are the same as for :c:func:`function__entry`" -msgstr "" +msgstr "Los argumentos son los mismos que para :c:func:`function__entry`" #: ../Doc/howto/instrumentation.rst:303 msgid "" @@ -246,34 +305,46 @@ msgid "" "equivalent of line-by-line tracing with a Python profiler. It is not " "triggered within C functions." msgstr "" +"Este marcador indica que una línea de Python está a punto de ejecutarse. Es " +"el equivalente al rastreo línea por línea con un generador de perfiles de " +"Python. No se activa con las funciones de C." #: ../Doc/howto/instrumentation.rst:307 msgid "The arguments are the same as for :c:func:`function__entry`." -msgstr "" +msgstr "Los argumentos son los mismos que para :c:func:`function__entry`." #: ../Doc/howto/instrumentation.rst:311 msgid "" "Fires when the Python interpreter starts a garbage collection cycle. " "``arg0`` is the generation to scan, like :func:`gc.collect()`." msgstr "" +"Se activa cuando el intérprete de Python inicia un ciclo de recolección de " +"basura. ``arg0`` es la generación a escanear, como :func:`gc.collect()`." #: ../Doc/howto/instrumentation.rst:316 msgid "" "Fires when the Python interpreter finishes a garbage collection cycle. " "``arg0`` is the number of collected objects." msgstr "" +"Se activa cuando el intérprete de Python finaliza un ciclo de recolección de " +"basura. ``arg0`` es el número de objetos recopilados." #: ../Doc/howto/instrumentation.rst:321 msgid "" "Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " "is the module name." msgstr "" +"Se activa antes :mod:`importlib` e intenta encontrar y cargar el módulo. " +"``arg0`` es el nombre del módulo." #: ../Doc/howto/instrumentation.rst:328 msgid "" "Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " "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 " +"cargó correctamente." #: ../Doc/howto/instrumentation.rst:337 msgid "" @@ -281,10 +352,13 @@ msgid "" "the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a " "tuple object." msgstr "" +"Se activa cuando se llama :func:`sys.audit` o :c:func:`PySys_Audit`. " +"``arg0`` es el nombre del evento como cadena C, ``arg1`` es un puntero :c:" +"type:`PyObject` a un objeto tupla." #: ../Doc/howto/instrumentation.rst:345 msgid "SystemTap Tapsets" -msgstr "" +msgstr "SystemTap Tapsets" #: ../Doc/howto/instrumentation.rst:347 msgid "" @@ -292,22 +366,32 @@ msgid "" "\": SystemTap's equivalent of a library, which hides some of the lower-level " "details of the static markers." msgstr "" +"La forma de nivel superior de utilizar la integración de SystemTap es " +"utilizar un \"tapset\": el equivalente de SystemTap a una biblioteca, que " +"oculta algunos de los detalles de bajo nivel de los marcadores estáticos." #: ../Doc/howto/instrumentation.rst:351 msgid "Here is a tapset file, based on a non-shared build of CPython:" msgstr "" +"A continuación un archivo de tapset, basado en una compilación no compartida " +"de CPython:" #: ../Doc/howto/instrumentation.rst:374 msgid "" "If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" "systemtap/tapset``), then these additional probepoints become available:" msgstr "" +"Si este archivo está instalado en el directorio de tapset de SystemTap (por " +"ejemplo, ``/usr/share/systemtap/tapset``), estos puntos de sonda adicionales " +"estarán disponibles:" #: ../Doc/howto/instrumentation.rst:380 msgid "" "This probe point indicates that execution of a Python function has begun. It " "is only triggered for pure-Python (bytecode) functions." msgstr "" +"Este punto de sonda indica que ha comenzado la ejecución de una función de " +"Python. Solo se activa para funciones de Python puro (código de bytes)." #: ../Doc/howto/instrumentation.rst:385 msgid "" @@ -316,10 +400,14 @@ msgid "" "``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)." #: ../Doc/howto/instrumentation.rst:392 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/howto/instrumentation.rst:393 msgid "" @@ -327,6 +415,10 @@ msgid "" "example given above of tracing the Python function-call hierarchy, without " "needing to directly name the static markers:" msgstr "" +"Este script de SystemTap utiliza el tapset anterior para implementar de " +"manera más limpia el ejemplo de rastrear la jerarquía de llamadas a " +"funciones de Python, sin necesidad de nombrar directamente los marcadores " +"estáticos:" #: ../Doc/howto/instrumentation.rst:412 msgid "" @@ -334,3 +426,7 @@ msgid "" "running CPython code, showing the top 20 most frequently-entered bytecode " "frames, each second, across the whole system:" msgstr "" +"El siguiente script utiliza el tapset de arriba para proporcionar una vista " +"superior de todo el código CPython en ejecución, mostrando los 20 marcos de " +"código de bytes que se ingresan con más frecuencia, cada segundo, en todo el " +"sistema:" diff --git a/howto/pyporting.po b/howto/pyporting.po index d43d572316..9a533e0361 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -6,34 +6,36 @@ # 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: 2020-12-27 11:58+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: Juan Biondi \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" -msgstr "" +msgstr "Portando código de Python 2 a Python 3" #: ../Doc/howto/pyporting.rst msgid "author" -msgstr "" +msgstr "autor" #: ../Doc/howto/pyporting.rst:7 msgid "Brett Cannon" -msgstr "" +msgstr "Brett Cannon" msgid "Abstract" -msgstr "" +msgstr "Resumen" #: ../Doc/howto/pyporting.rst:11 msgid "" @@ -42,12 +44,18 @@ msgid "" "Python. This guide is meant to help you figure out how best to support both " "Python 2 & 3 simultaneously." msgstr "" +"Dado que Python 3 es el futuro de Python mientras Python 2 todavía está en " +"uso activo, es bueno tener su proyecto disponible para ambas versiones " +"principales de Python. Esta guía está diseñada para ayudarle a averiguar la " +"mejor manera de admitir Python 2 y 3 simultáneamente." #: ../Doc/howto/pyporting.rst:16 msgid "" "If you are looking to port an extension module instead of pure Python code, " "please see :ref:`cporting-howto`." msgstr "" +"Si está buscando portar un módulo de extensión en lugar de código Python " +"puro, consulte :ref:`cporting-howto`." #: ../Doc/howto/pyporting.rst:19 msgid "" @@ -55,54 +63,69 @@ 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" #: ../Doc/howto/pyporting.rst:23 msgid "" "For help with porting, you can email the python-porting_ mailing list with " "questions." msgstr "" +"Para obtener ayuda con la migración, puede enviar un correo electrónico a la " +"lista de correo de python-porting_ con preguntas." #: ../Doc/howto/pyporting.rst:27 msgid "The Short Explanation" -msgstr "" +msgstr "La breve explicación" #: ../Doc/howto/pyporting.rst:29 msgid "" "To make your project be single-source Python 2/3 compatible, the basic steps " "are:" msgstr "" +"Para que su proyecto sea compatible con Python 2/3 de una sola fuente, los " +"pasos básicos son:" #: ../Doc/howto/pyporting.rst:32 msgid "Only worry about supporting Python 2.7" -msgstr "" +msgstr "Sólo preocúpate por admitir Python 2.7" #: ../Doc/howto/pyporting.rst:33 msgid "" "Make sure you have good test coverage (coverage.py_ can help; ``pip install " "coverage``)" msgstr "" +"Asegúrese de tener una buena cobertura de prueba (coverage.py_ puede ayudar; " +"``pip install coverage``)" #: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:116 msgid "Learn the differences between Python 2 & 3" -msgstr "" +msgstr "Aprende las diferencias entre Python 2 & 3" #: ../Doc/howto/pyporting.rst:36 msgid "" "Use Futurize_ (or Modernize_) to update your code (e.g. ``pip install " "future``)" msgstr "" +"Utilice Futurize_ (o Modernize_) para actualizar el código (por ejemplo, " +"``pip install future``)" #: ../Doc/howto/pyporting.rst:37 msgid "" "Use Pylint_ to help make sure you don't regress on your Python 3 support " "(``pip install pylint``)" msgstr "" +"Utilice Pylint_ para asegurarse de que no retrocede en la compatibilidad con " +"Python 3 (``pip install pylint``)" #: ../Doc/howto/pyporting.rst:39 msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``pip install caniusepython3``)" msgstr "" +"Utilice caniusepython3_ para averiguar cuáles de sus dependencias están " +"bloqueando el uso de Python 3 (``pip install caniusepython3``)" #: ../Doc/howto/pyporting.rst:41 msgid "" @@ -110,6 +133,10 @@ msgid "" "integration to make sure you stay compatible with Python 2 & 3 (tox_ can " "help test against multiple versions of Python; ``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``)" #: ../Doc/howto/pyporting.rst:44 msgid "" @@ -117,10 +144,14 @@ msgid "" "works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " "Python 2 & Python 3)." 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)." #: ../Doc/howto/pyporting.rst:50 msgid "Details" -msgstr "" +msgstr "Detalles" #: ../Doc/howto/pyporting.rst:52 msgid "" @@ -130,6 +161,12 @@ msgid "" "3. Most changes required to support Python 3 lead to cleaner code using " "newer practices even in Python 2 code." msgstr "" +"Un punto clave sobre el soporte de Python 2 & 3 simultáneamente es que se " +"puede empezar **hoy**! Incluso si sus dependencias no son compatibles con " +"Python 3 todavía eso no significa que no puede modernizar el código " +"**ahora** para admitir Python 3. La mayoría de los cambios necesarios para " +"admitir Python 3 conducen a código más limpio utilizando prácticas más " +"recientes incluso en código Python 2." #: ../Doc/howto/pyporting.rst:58 msgid "" @@ -139,16 +176,24 @@ msgid "" "lower-level work is now mostly done for you and thus can at least benefit " "from the automated changes immediately." msgstr "" +"Otro punto clave es que la modernización del código de Python 2 para que " +"también admita Python 3 está en gran medida automatizada para usted. Si bien " +"es posible que tenga que tomar algunas decisiones de API gracias a python 3 " +"aclarando los datos de texto frente a los datos binarios, el trabajo de " +"nivel inferior ahora se realiza principalmente por usted y, por lo tanto, al " +"menos puede beneficiarse de los cambios automatizados inmediatamente." #: ../Doc/howto/pyporting.rst:64 msgid "" "Keep those key points in mind while you read on about the details of porting " "your code to support Python 2 & 3 simultaneously." msgstr "" +"Tenga en cuenta esos puntos clave mientras lee sobre los detalles de la " +"migración del código para admitir Python 2 & 3 simultáneamente." #: ../Doc/howto/pyporting.rst:69 msgid "Drop support for Python 2.6 and older" -msgstr "" +msgstr "Compatibilidad con Python 2.6 y versiones anteriores" #: ../Doc/howto/pyporting.rst:71 msgid "" @@ -158,6 +203,12 @@ msgid "" "simultaneously (``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." #: ../Doc/howto/pyporting.rst:77 msgid "" @@ -167,6 +218,11 @@ msgid "" "or have to import a function instead of using a built-in one, but otherwise " "the overall transformation should not feel foreign to you." msgstr "" +"Si puede omitir Python 2.5 y versiones anteriores, los cambios necesarios en " +"el código deben seguir pareciendo código Python idiomático. En el peor de " +"los casos tendrá que utilizar una función en lugar de un método en algunos " +"casos o tendrá que importar una función en lugar de usar una integrada, pero " +"de lo contrario la transformación general no debería sentirse ajena a usted." #: ../Doc/howto/pyporting.rst:83 msgid "" @@ -178,11 +234,21 @@ msgid "" "simply be easier for you if you only support the versions of Python that you " "have to support." msgstr "" +"Pero usted debe apuntar a sólo apoyar Python 2.7. Python 2.6 ya no se admite " +"libremente y, por lo tanto, no recibe correcciones de errores. Esto " +"significa que **usted** tendrá que solucionar cualquier problema que " +"encuentre con Python 2.6. También hay algunas herramientas mencionadas en " +"este HOWTO que no son compatibles con Python 2.6 (por ejemplo, Pylint_), y " +"esto se volverá más común a medida que pasa el tiempo. Simplemente será más " +"fácil para usted si sólo admite las versiones de Python que tiene que " +"admitir." #: ../Doc/howto/pyporting.rst:92 msgid "" "Make sure you specify the proper version support in your ``setup.py`` file" msgstr "" +"Asegúrese de especificar el soporte de versión adecuado en su archivo " +"``setup.py``" #: ../Doc/howto/pyporting.rst:94 msgid "" @@ -193,10 +259,16 @@ msgid "" "minor version of Python that you do support, e.g. ``Programming Language :: " "Python :: 2.7``." msgstr "" +"En su archivo ``setup.py`` debe tener el `trove classifier`_ adecuado " +"especificando qué versiones de Python admite. Como su proyecto no es " +"compatible con Python 3, al menos debe tener ``Programming Language :: " +"Python :: 2 :: Only`` especificado. Idealmente también debe especificar cada " +"versión principal/menor de Python que admita, por ejemplo, ``Programming " +"Language :: Python :: 2.7``." #: ../Doc/howto/pyporting.rst:103 msgid "Have good test coverage" -msgstr "" +msgstr "Tener una buena cobertura de prueba" #: ../Doc/howto/pyporting.rst:105 #, python-format @@ -210,6 +282,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 " +"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_." #: ../Doc/howto/pyporting.rst:118 msgid "" @@ -221,10 +302,18 @@ msgid "" "each release of Python 3 and the `Porting to Python 3`_ book (which is free " "online). There is also a handy `cheat sheet`_ from the Python-Future project." msgstr "" +"Una vez que tenga su código bien probado, ¡está listo para comenzar a migrar " +"su código a Python 3! Pero para comprender completamente cómo va a cambiar " +"el código y qué desea tener en cuenta mientras codifica, querrá aprender qué " +"cambios produce Python 3 en términos de Python 2. Típicamente las dos " +"mejores maneras de hacer eso es leer la documentación :ref:`\"What's New\" " +"` para cada versión de Python 3 y el libro `Porting to " +"Python 3`_ (que es gratis en línea). También hay una práctica `cheat sheet`_ " +"del proyecto Python-Future.." #: ../Doc/howto/pyporting.rst:128 msgid "Update your code" -msgstr "" +msgstr "Actualiza tu código" #: ../Doc/howto/pyporting.rst:130 msgid "" @@ -240,6 +329,18 @@ msgid "" "future, it might be best to consider Futurize to begin adjusting to any new " "practices that Python 3 introduces which you are not accustomed to yet." msgstr "" +"Una vez que sientas que sabes lo que es diferente en Python 3 en comparación " +"con Python 2, ¡es hora de actualizar tu código! Puede elegir entre dos " +"herramientas para migrar el código automáticamente: Futurize_ y Modernize_. " +"La herramienta que elija dependerá de la cantidad similar a Python 3 que " +"desea que sea el código. Futurize_ hace todo lo posible para que Python 3 " +"modismos y prácticas existan en Python 2, por ejemplo, backporting el tipo " +"``bytes`` de Python 3 para que tenga paridad semántica entre las versiones " +"principales de Python. Modernize_, por otro lado, es más conservador y se " +"dirige a un subconjunto de Python 2/3 de Python, basándose directamente en " +"six_ para ayudar a proporcionar compatibilidad. Como Python 3 es el futuro, " +"podría ser mejor considerar Futurize para comenzar a adaptarse a cualquier " +"nueva práctica que Python 3 introduce a la que aún no está acostumbrado." #: ../Doc/howto/pyporting.rst:142 msgid "" @@ -252,6 +353,15 @@ msgid "" "transform your application code knowing that any tests which fail is a " "translation failure." msgstr "" +"Independientemente de la herramienta que elija, actualizarán el código para " +"que se ejecute en Python 3 mientras se mantienen compatibles con la versión " +"de Python 2 con la que comenzó. Dependiendo de lo conservador que desee ser, " +"es posible que desee ejecutar la herramienta sobre el conjunto de pruebas " +"primero e inspeccionar visualmente la diferencia para asegurarse de que la " +"transformación es precisa. Después de transformar el conjunto de pruebas y " +"comprobar que todas las pruebas siguen pasando según lo esperado, puede " +"transformar el código de la aplicación sabiendo que cualquier prueba que " +"falle es un error de traducción." #: ../Doc/howto/pyporting.rst:150 msgid "" @@ -266,10 +376,22 @@ msgid "" "watch out for which can be considered large issues that may be hard to debug " "if not watched for." msgstr "" +"Desafortunadamente, las herramientas no pueden automatizar todo para que su " +"código funcione bajo Python 3 y por lo que hay un puñado de cosas que tendrá " +"que actualizar manualmente para obtener soporte completo de Python 3 (cuáles " +"de estos pasos son necesarios varían entre las herramientas). Lea la " +"documentación de la herramienta que elige utilizar para ver lo que corrige " +"de forma predeterminada y lo que puede hacer opcionalmente para saber lo que " +"(no) se fijará para usted y lo que puede tener que corregir por su cuenta " +"(por ejemplo, usando ``io.open()`` sobre la función incorporada ``open()`` " +"está desactivada por defecto en Modernizar). Afortunadamente, sin embargo, " +"sólo hay un par de cosas a tener en cuenta por las cuales se pueden " +"considerar grandes problemas que pueden ser difíciles de depurar si no se " +"observan." #: ../Doc/howto/pyporting.rst:162 msgid "Division" -msgstr "" +msgstr "División" #: ../Doc/howto/pyporting.rst:164 msgid "" @@ -281,16 +403,26 @@ msgid "" "Q`` flag. If you have not been doing this then you will need to go through " "your code and do two things:" msgstr "" +"En Python 3, ``5 / 2 == 2.5`` y no ``2``; toda división entre los valores " +"``int`` da lugar a un ``float``. Este cambio ha sido planeado desde Python " +"2.2, que fue lanzado en 2002. Desde entonces, se ha alentado a los usuarios " +"a añadir ``from __future__ import division`` a todos y cada uno de los " +"archivos que utilizan los operadores ``/`` y ``//`` o que ejecuten el " +"intérprete con el indicador ``-Q``. Si no ha estado haciendo esto, entonces " +"tendrá que ir a través de su código y hacer dos cosas:" #: ../Doc/howto/pyporting.rst:172 msgid "Add ``from __future__ import division`` to your files" -msgstr "" +msgstr "Añadir ``from __future__ import division`` a sus archivos" #: ../Doc/howto/pyporting.rst:173 msgid "" "Update any division operator as necessary to either use ``//`` to use floor " "division or continue using ``/`` and expect a float" msgstr "" +"Actualice cualquier operador de división según sea necesario para utilizar " +"``//`` para usar la división de suelo o continuar usando ``/`` y esperar un " +"número flotante" #: ../Doc/howto/pyporting.rst:176 msgid "" @@ -299,10 +431,15 @@ msgid "" "then your code would begin to fail (e.g. a user-defined class that uses ``/" "`` to signify some operation but not ``//`` for the same thing or at all)." msgstr "" +"La razón por la que ``/`` no se traduce simplemente a ``//`` automáticamente " +"es que si un objeto define un método ``__truediv__`` pero no " +"``__floordiv__`` entonces su código comenzaría a fallar (por ejemplo, una " +"clase definida por el usuario que utiliza ``/`` para significar alguna " +"operación pero no ``//`` para la misma cosa o en absoluto)." #: ../Doc/howto/pyporting.rst:183 msgid "Text versus binary data" -msgstr "" +msgstr "Texto frente a datos binarios" #: ../Doc/howto/pyporting.rst:185 msgid "" @@ -315,6 +452,15 @@ msgid "" "supporting multiple languages as APIs wouldn't bother explicitly supporting " "``unicode`` when they claimed text data support." msgstr "" +"En Python 2 puede usar el tipo ``str`` tanto para texto como para datos " +"binarios. Desafortunadamente, esta confluencia de dos conceptos diferentes " +"podría conducir a código frágil que a veces funcionaba para cualquier tipo " +"de datos, a veces no. También podría dar lugar a API confusas si las " +"personas no declaraban explícitamente que algo que aceptaba ``str`` aceptaba " +"datos binarios o de texto en lugar de un tipo específico. Esto complicó la " +"situación especialmente para cualquier persona que admita varios idiomas, ya " +"que las API no se molestarían explícitamente en admitir explícitamente " +"``Unicode`` cuando reclamaban compatibilidad con datos de texto." #: ../Doc/howto/pyporting.rst:194 msgid "" @@ -327,6 +473,15 @@ msgid "" "it does mean you might have to now care about when you are using text " "compared to binary data, which is why this cannot be entirely automated." msgstr "" +"Para hacer la distinción entre texto y datos binarios más claros y " +"pronunciados, Python 3 hizo lo que la mayoría de los lenguajes creados en la " +"era de Internet han hecho y ha hecho texto y datos binarios distintos tipos " +"que no se pueden mezclar ciegamente (Python es anterior al acceso " +"generalizado a Internet). Para cualquier código que se ocupe solo de texto o " +"solo de datos binarios, esta separación no plantea un problema. Pero para el " +"código que tiene que lidiar con ambos, significa que es posible que tenga " +"que preocuparse ahora cuando está utilizando texto en comparación con los " +"datos binarios, por lo que esto no se puede automatizar por completo." #: ../Doc/howto/pyporting.rst:203 msgid "" @@ -347,38 +502,55 @@ msgid "" "Python 3 doesn't have the method). Do note that as of Python 3.5 the " "``__mod__`` method was added to the bytes type." msgstr "" +"Para empezar, tendrá que decidir qué API toman texto y cuáles toman binario " +"(es **altamente** recomendado no diseñar API que pueden tomar ambos debido a " +"la dificultad de mantener el código funcionando; como se indicó " +"anteriormente es difícil hacerlo bien). En Python 2 esto significa " +"asegurarse de que las API que toman texto pueden trabajar con ``unicode`` y " +"las que funcionan con datos binarios funcionan con el tipo ``bytes`` de " +"Python 3 (que es un subconjunto de ``str`` en Python 2 y actúa como un alias " +"para ``bytes`` tipo en Python 2). Por lo general, el mayor problema es darse " +"cuenta de qué métodos existen en qué tipos en Python 2 y 3 simultáneamente " +"(para el texto que es ``Unicode`` en Python 2 y ``str`` en Python 3, para " +"binario que es ``str``/``bytes`` en Python 2 y ``bytes`` en Python 3). En la " +"tabla siguiente se enumeran los métodos **unicos** de cada tipo de datos en " +"Python 2 y 3 (por ejemplo, el método ``decode()`` se puede utilizar en el " +"tipo de datos binarios equivalente en Python 2 o 3, pero no puede ser " +"utilizado por el tipo de datos textuales consistentemente entre Python 2 y 3 " +"porque ``str`` en Python 3 no tiene el método). Tenga en cuenta que a partir " +"de Python 3.5 se agregó el método ``__mod__`` al tipo bytes." #: ../Doc/howto/pyporting.rst:220 msgid "**Text data**" -msgstr "" +msgstr "**Datos de texto**" #: ../Doc/howto/pyporting.rst:220 msgid "**Binary data**" -msgstr "" +msgstr "**Datos binarios**" #: ../Doc/howto/pyporting.rst:222 msgid "\\" -msgstr "" +msgstr "\\" #: ../Doc/howto/pyporting.rst:222 msgid "decode" -msgstr "" +msgstr "decode" #: ../Doc/howto/pyporting.rst:224 msgid "encode" -msgstr "" +msgstr "encode" #: ../Doc/howto/pyporting.rst:226 msgid "format" -msgstr "" +msgstr "format" #: ../Doc/howto/pyporting.rst:228 msgid "isdecimal" -msgstr "" +msgstr "isdecimal" #: ../Doc/howto/pyporting.rst:230 msgid "isnumeric" -msgstr "" +msgstr "isnumeric" #: ../Doc/howto/pyporting.rst:233 msgid "" @@ -389,6 +561,14 @@ msgid "" "possible. This allows your code to work with only text internally and thus " "eliminates having to keep track of what type of data you are working with." msgstr "" +"La creación de la distinción más fácil de controlar se puede realizar " +"mediante la codificación y descodificación entre datos binarios y texto en " +"el borde del código. Esto significa que cuando reciba texto en datos " +"binarios, debe descodificarlo inmediatamente. Y si el código necesita enviar " +"texto como datos binarios, codificarlo lo más tarde posible. Esto permite " +"que el código funcione solo con texto internamente y, por lo tanto, elimina " +"tener que realizar un seguimiento del tipo de datos con los que está " +"trabajando." #: ../Doc/howto/pyporting.rst:240 msgid "" @@ -399,6 +579,13 @@ msgid "" "unspecified literals to be Unicode, but usage has shown it isn't as " "effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" msgstr "" +"El siguiente problema es asegurarse de saber si los literales de cadena en " +"el código representan texto o datos binarios. Debe agregar un prefijo ``b`` " +"a cualquier literal que presente datos binarios. Para el texto debe agregar " +"un prefijo ``u`` al literal de texto. (hay una importación :mod:`__future__` " +"para forzar que todos los literales no especificados sean Unicode, pero el " +"uso ha demostrado que no es tan eficaz como agregar un prefijo ``b`` o ``u`` " +"a todos los literales explícitamente)" #: ../Doc/howto/pyporting.rst:247 msgid "" @@ -417,6 +604,21 @@ msgid "" "`codecs.open` as that's only necessary for keeping compatibility with Python " "2.5." msgstr "" +"Como parte de esta dicotomía también hay que tener cuidado con la apertura " +"de archivos. A menos que haya estado trabajando en Windows, existe la " +"posibilidad de que no siempre se haya molestado en agregar el modo ``b`` al " +"abrir un archivo binario (por ejemplo, ``rb`` para la lectura binaria). En " +"Python 3, los archivos binarios y los archivos de texto son claramente " +"distintos y mutuamente incompatibles; ver el módulo :mod:`io` para más " +"detalles. Por lo tanto, **debe** tomar una decisión de si un archivo se " +"utilizará para el acceso binario (permitiendo que los datos binarios se lean " +"y/o escriban) o el acceso textual (permitiendo que los datos de texto sean " +"leídos y/o escritos). También debe utilizar :func:`io.open` para abrir " +"archivos en lugar de la función incorporada :func:`open` como el módulo :mod:" +"`io` es consistente de Python 2 a 3, mientras que la función incorporada :" +"func:`open` no es (en Python 3 es en realidad :func:`io.open`). No se " +"moleste con la práctica obsoleta de usar :func:`codecs.open` ya que sólo es " +"necesario para mantener la compatibilidad con Python 2.5." #: ../Doc/howto/pyporting.rst:261 msgid "" @@ -430,6 +632,16 @@ msgid "" "back: ``str(b'3') == b'3'``. But in Python 3 you get the string " "representation of the bytes object: ``str(b'3') == \"b'3'\"``." msgstr "" +"Los constructores de ``str`` y ``bytes`` tienen una semántica diferente para " +"los mismos argumentos entre Python 2 y 3. Pasar un entero a ``bytes`` en " +"Python 2 le dará la representación de cadena de texto del entero: ``bytes(3) " +"== '3'``. Pero en Python 3, un argumento entero para ''bytes'' le dará un " +"objeto bytes siempre y cuando el entero especificado, lleno de bytes nulos: " +"``bytes(3) == b'\\x00\\x00\\x00'``. Una preocupación similar es necesaria " +"cuando se pasa un objeto bytes a ``str``. En Python 2, solo se obtiene el " +"objeto bytes: ``str(b'3') == b'3'``. Pero en Python 3 se obtiene la " +"representación de cadena de texto del objeto bytes: ``str(b'3') == " +"\"b'3'\"``." #: ../Doc/howto/pyporting.rst:271 msgid "" @@ -442,14 +654,22 @@ msgid "" "``six.indexbytes()`` which will return an integer like in Python 3: ``six." "indexbytes(b'123', 1)``." msgstr "" +"Por último, la indexación de datos binarios requiere un control cuidadoso " +"(el corte **no** requiere ningún control especial). En Python 2, ``b'123'[1] " +"== b'2'`` mientras que en Python 3 ``b'123'[1] == 50``. Dado que los datos " +"binarios son simplemente una colección de números binarios, Python 3 " +"devuelve el valor entero para el byte en el que indexa. Pero en Python 2, ya " +"que ``bytes == str``, la indexación devuelve un segmento de bytes de un solo " +"elemento. El proyecto six_ tiene una función denominada ``six.indexbytes()`` " +"que devolverá un entero como en Python 3: ``six.indexbytes(b'123', 1)``." #: ../Doc/howto/pyporting.rst:280 msgid "To summarize:" -msgstr "" +msgstr "Para resumir:" #: ../Doc/howto/pyporting.rst:282 msgid "Decide which of your APIs take text and which take binary data" -msgstr "" +msgstr "Decida cuál de sus API toma texto y cuáles toman datos binarios" #: ../Doc/howto/pyporting.rst:283 msgid "" @@ -457,32 +677,43 @@ msgid "" "and code for binary data works with ``bytes`` in Python 2 (see the table " "above for what methods you cannot use for each type)" msgstr "" +"Asegúrese de que el código que funciona con texto también funciona con " +"``unicode`` y el código para datos binarios funciona con ``bytes`` en Python " +"2 (consulte la tabla anterior para los métodos que no puede usar para cada " +"tipo)" #: ../Doc/howto/pyporting.rst:286 msgid "" "Mark all binary literals with a ``b`` prefix, textual literals with a ``u`` " "prefix" msgstr "" +"Marque todos los literales binarios con un prefijo ``b``, literales " +"textuales con un prefijo ``u``" #: ../Doc/howto/pyporting.rst:288 msgid "" "Decode binary data to text as soon as possible, encode text as binary data " "as late as possible" msgstr "" +"Descodificar datos binarios en texto tan pronto como sea posible, codificar " +"texto como datos binarios tan tarde como sea posible" #: ../Doc/howto/pyporting.rst:290 msgid "" "Open files using :func:`io.open` and make sure to specify the ``b`` mode " "when appropriate" msgstr "" +"Abra los archivos con :func:`io.open` y asegúrese de especificar el modo " +"``b`` cuando sea apropiado" #: ../Doc/howto/pyporting.rst:292 msgid "Be careful when indexing into binary data" -msgstr "" +msgstr "Tenga cuidado al indexar en datos binarios" #: ../Doc/howto/pyporting.rst:296 msgid "Use feature detection instead of version detection" msgstr "" +"Utilice la detección de funciones en lugar de la detección de versiones" #: ../Doc/howto/pyporting.rst:298 msgid "" @@ -493,6 +724,13 @@ msgid "" "version check be against Python 2 and not Python 3. To help explain this, " "let's look at an example." msgstr "" +"Inevitablemente tendrá código que tiene que elegir qué hacer en función de " +"qué versión de Python se está ejecutando. La mejor manera de hacerlo es con " +"la detección de características de si la versión de Python en la que se " +"ejecuta es compatible con lo que necesita. Si por alguna razón eso no " +"funciona, entonces usted debe hacer que la comprobación de la versión sea " +"contra Python 2 y no Python 3. Para ayudar a explicar esto, veamos un " +"ejemplo." #: ../Doc/howto/pyporting.rst:305 msgid "" @@ -501,6 +739,11 @@ msgid "" "Python 2 through importlib2_ on PyPI. You might be tempted to write code to " "access e.g. the :mod:`importlib.abc` module by doing the following::" msgstr "" +"Supongamos que necesita acceso a una característica de :mod:`importlib` que " +"está disponible en la biblioteca estándar de Python desde Python 3.3 y " +"disponible para Python 2 a través de importlib2_ en PyPI. Es posible que " +"tenga la tentación de escribir código para acceder, por ejemplo, al módulo :" +"mod:`importlib.abc` haciendo lo siguiente:" #: ../Doc/howto/pyporting.rst:317 msgid "" @@ -509,6 +752,10 @@ msgid "" "assume that future Python versions will be more compatible with Python 3 " "than Python 2::" msgstr "" +"El problema con este código es ¿qué sucede cuando sale Python 4? Sería mejor " +"tratar Python 2 como el caso excepcional en lugar de Python 3 y asumir que " +"las futuras versiones de Python serán más compatibles con Python 3 que " +"Python 2::" #: ../Doc/howto/pyporting.rst:329 msgid "" @@ -516,10 +763,14 @@ msgid "" "rely on feature detection. That avoids any potential issues of getting the " "version detection wrong and helps keep you future-compatible::" msgstr "" +"La mejor solución, sin embargo, es no hacer ninguna detección de versiones " +"en absoluto y en su lugar confiar en la detección de características. Esto " +"evita cualquier problema potencial de conseguir la detección de la versión " +"incorrecta y le ayuda a mantenerse compatible con el futuro:" #: ../Doc/howto/pyporting.rst:340 msgid "Prevent compatibility regressions" -msgstr "" +msgstr "Evitar regresiones de compatibilidad" #: ../Doc/howto/pyporting.rst:342 msgid "" @@ -528,12 +779,19 @@ msgid "" "Python 3. This is especially true if you have a dependency which is blocking " "you from actually running under Python 3 at the moment." msgstr "" +"Una vez que haya traducido completamente el código para que sea compatible " +"con Python 3, querrá asegurarse de que el código no retroceda y deje de " +"funcionar bajo Python 3. Esto es especialmente cierto si tiene una " +"dependencia que le está bloqueando para que no se ejecute realmente en " +"Python 3 en este momento." #: ../Doc/howto/pyporting.rst:347 msgid "" "To help with staying compatible, any new modules you create should have at " "least the following block of code at the top of it::" msgstr "" +"Para ayudar a mantenerse compatible, los módulos nuevos que cree deben tener " +"al menos el siguiente bloque de código en la parte superior del misma::" #: ../Doc/howto/pyporting.rst:354 msgid "" @@ -542,6 +800,11 @@ msgid "" "warnings into errors with ``-Werror`` then you can make sure that you don't " "accidentally miss a warning." msgstr "" +"También puede ejecutar Python 2 con el indicador ``-3`` para recibir una " +"advertencia sobre varios problemas de compatibilidad que el código " +"desencadena durante la ejecución. Si convierte las advertencias en errores " +"con ``-Werror``, puede asegurarse de que no se pierda accidentalmente una " +"advertencia." #: ../Doc/howto/pyporting.rst:359 msgid "" @@ -552,10 +815,17 @@ msgid "" "does require you only support Python 2.7 and Python 3.4 or newer as that is " "Pylint's minimum Python version support." msgstr "" +"También puede usar el proyecto de Pylint_ y su indicador ``--py3k`` para " +"lintar el código para recibir advertencias cuando el código comienza a " +"desviarse de la compatibilidad con Python 3. Esto también evita que tenga " +"que ejecutar Modernize_ o Futurize_ sobre el código con regularidad para " +"detectar las regresiones de compatibilidad. Esto requiere que solo admita " +"Python 2.7 y Python 3.4 o posterior, ya que es la compatibilidad mínima de " +"la versión mínima de Python de Pylint." #: ../Doc/howto/pyporting.rst:368 msgid "Check which dependencies block your transition" -msgstr "" +msgstr "Compruebe qué dependencias bloquean la transición" #: ../Doc/howto/pyporting.rst:370 msgid "" @@ -566,6 +836,12 @@ msgid "" "is both a command-line tool as well as a web interface at https://" "caniusepython3.com." msgstr "" +"**Después** de que haya hecho que su código sea compatible con Python 3, " +"debe empezar a preocuparse por si sus dependencias también se han portado. " +"El proyecto caniusepython3_ se creó para ayudarle a determinar qué proyectos " +"-- directa o indirectamente -- le impiden admitir Python 3. Hay una " +"herramienta de línea de comandos, así como una interfaz web en https://" +"caniusepython3.com." #: ../Doc/howto/pyporting.rst:377 msgid "" @@ -575,10 +851,16 @@ msgid "" "manually check your dependencies and to be notified quickly when you can " "start running on Python 3." msgstr "" +"El proyecto también proporciona código que puede integrar en el conjunto de " +"pruebas para que tenga una prueba con errores cuando ya no tenga " +"dependencias que le impidan usar Python 3. Esto le permite evitar tener que " +"comprobar manualmente sus dependencias y recibir notificaciones rápidamente " +"cuando puede empezar a ejecutarse en Python 3." #: ../Doc/howto/pyporting.rst:384 msgid "Update your ``setup.py`` file to denote Python 3 compatibility" msgstr "" +"Actualice su archivo ``setup.py`` para denotar compatibilidad con Python 3" #: ../Doc/howto/pyporting.rst:386 msgid "" @@ -588,10 +870,16 @@ msgid "" "that you support Python 2 **and** 3. Ideally you will also want to add " "classifiers for each major/minor version of Python you now support." msgstr "" +"Una vez que el código funciona en Python 3, debe actualizar los " +"clasificadores en su ``setup.py`` para que contenga ``Programming " +"Language :: Python :: 3`` y no especificar solo compatibilidad con Python 2. " +"Esto le dirá a cualquier persona que use su código que admite Python 2 **y** " +"3. Lo ideal es que también desee agregar clasificadores para cada versión " +"principal/menor de Python que ahora admita." #: ../Doc/howto/pyporting.rst:394 msgid "Use continuous integration to stay compatible" -msgstr "" +msgstr "Utilice la integración continua para seguir siendo compatible" #: ../Doc/howto/pyporting.rst:396 msgid "" @@ -601,6 +889,12 @@ msgid "" "integrate tox with your continuous integration system so that you never " "accidentally break Python 2 or 3 support." msgstr "" +"Una vez que pueda ejecutar completamente bajo Python 3, querrá asegurarse de " +"que el código siempre funciona en Python 2 y 3. Probablemente la mejor " +"herramienta para ejecutar las pruebas en varios intérpretes de Python es " +"tox_. A continuación, puede integrar tox con su sistema de integración " +"continua para que nunca interrumpa accidentalmente la compatibilidad con " +"Python 2 o 3." #: ../Doc/howto/pyporting.rst:402 msgid "" @@ -613,6 +907,15 @@ msgid "" "these kinds of comparisons occur, making the mistake much easier to track " "down." msgstr "" +"También es posible que desee utilizar el indicador ``-bb`` con el intérprete " +"de Python 3 para desencadenar una excepción cuando se comparan bytes con " +"cadenas o bytes con un int (este último está disponible a partir de Python " +"3.5). De forma predeterminada, las comparaciones de tipos diferentes " +"simplemente devuelven ``False``, pero si cometió un error en la separación " +"del control de datos de texto/binario o la indexación en bytes, no " +"encontraría fácilmente el error. Esta marca generará una excepción cuando se " +"produzcan este tipo de comparaciones, lo que hace que el error sea mucho más " +"fácil de rastrear." #: ../Doc/howto/pyporting.rst:410 msgid "" @@ -621,10 +924,17 @@ msgid "" "don't accidentally break Python 2 or 3 compatibility regardless of which " "version you typically run your tests under while developing." msgstr "" +"¡Y eso es sobre todo! En este punto, la base de código es compatible con " +"Python 2 y 3 simultáneamente. Las pruebas también se configurarán para que " +"no interrumpa accidentalmente la compatibilidad de Python 2 o 3, " +"independientemente de la versión en la que ejecute normalmente las pruebas " +"durante el desarrollo." #: ../Doc/howto/pyporting.rst:417 msgid "Consider using optional static type checking" msgstr "" +"Considere la posibilidad de usar la comprobación de tipos estáticos " +"opcionales" #: ../Doc/howto/pyporting.rst:419 msgid "" @@ -638,3 +948,14 @@ msgid "" "binary data, helping to make sure everything functions as expected in both " "versions of Python." msgstr "" +"Otra forma de ayudar a transferir el código es usar un comprobador de tipos " +"estáticos como mypy_ o pytype_ en el código. Estas herramientas se pueden " +"utilizar para analizar el código como si se estuviera ejecutando en Python " +"2, puede ejecutar la herramienta por segunda vez como si el código se " +"ejecutara en Python 3. Al ejecutar un comprobador de tipos estáticos dos " +"veces como este, puede descubrir si, por ejemplo, está usando " +"incorrectamente el tipo de datos binarios en una versión de Python en " +"comparación con otra. Si agrega sugerencias de tipo opcionales al código, " +"también puede indicar explícitamente si las API usan datos textuales o " +"binarios, lo que ayuda a asegurarse de que todo funciona según lo esperado " +"en ambas versiones de Python." diff --git a/howto/regex.po b/howto/regex.po index 77d17b2d48..942851ac1a 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -6,34 +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: 2020-10-28 22:57+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.3.1\n" +"X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/howto/regex.rst:5 msgid "Regular Expression HOWTO" -msgstr "" +msgstr "Expresiones regulares COMOS (*HOWTO*)" #: ../Doc/howto/regex.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/howto/regex.rst:7 msgid "A.M. Kuchling " -msgstr "" +msgstr "*A.M. Kuchling *" msgid "Abstract" -msgstr "" +msgstr "Resumen" #: ../Doc/howto/regex.rst:18 msgid "" @@ -41,10 +44,14 @@ msgid "" "Python with the :mod:`re` module. It provides a gentler introduction than " "the corresponding section in the Library Reference." msgstr "" +"Este documento es un tutorial de introducción al uso de expresiones " +"regulares en Python con el módulo :mod:`re`. Proporciona una introducción " +"más apacible que la sección correspondiente en la Referencia de la " +"Biblioteca." #: ../Doc/howto/regex.rst:24 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/howto/regex.rst:26 msgid "" @@ -58,6 +65,17 @@ msgid "" "match for the pattern anywhere in this string?\". You can also use REs to " "modify a string or to split it apart in various ways." msgstr "" +"Las expresiones regulares (llamadas RE, o regex, o patrones de regex) son " +"esencialmente en un lenguaje de programación diminuto y altamente " +"especializado incrustado dentro de Python y disponible a través del módulo :" +"mod:`re`. Usando este pequeño lenguaje, especificas las reglas para el " +"conjunto de cadenas de caracteres posibles que deseas hacer coincidir; este " +"conjunto puede contener frases en inglés, o direcciones de correo " +"electrónico, o comandos TeX, o cualquier cosa que desee. A continuación, " +"puede hacer preguntas como \"¿Coincide esta cadena con el patrón?\" o \"¿Hay " +"alguna coincidencia con el patrón en alguna parte de esta cadena?\". También " +"puede utilizar RE para modificar una cadena de caracteres o dividirla de " +"varias formas." #: ../Doc/howto/regex.rst:35 msgid "" @@ -69,6 +87,13 @@ msgid "" "requires that you have a good understanding of the matching engine's " "internals." msgstr "" +"Los patrones de expresiones regulares se compilan en una serie de códigos de " +"bytes que luego son ejecutados por un motor de coincidencia escrito en C. " +"Para un uso avanzado, puede ser necesario prestar mucha atención a cómo el " +"motor ejecutará una RE dado y escribir la RE en un de cierta manera para " +"producir un código de bytes que se ejecute más rápido. La optimización no se " +"trata en este documento, porque requiere que tenga un buen conocimiento de " +"los componentes internos del motor de coincidencia." #: ../Doc/howto/regex.rst:42 msgid "" @@ -80,10 +105,18 @@ msgid "" "be slower than an elaborate regular expression, it will also probably be " "more understandable." msgstr "" +"El lenguaje de expresiones regulares es relativamente pequeño y restringido, " +"por lo que no todas las posibles tareas de procesamiento de cadenas de " +"caracteres se pueden realizar utilizando expresiones regulares. También hay " +"tareas que *se pueden* hacer con expresiones regulares, pero las expresiones " +"resultan ser muy complicadas. En estos casos, es mejor que escriba código " +"Python para realizar el procesamiento; Si bien el código Python será más " +"lento que una expresión regular elaborada, probablemente también será más " +"comprensible." #: ../Doc/howto/regex.rst:51 msgid "Simple Patterns" -msgstr "" +msgstr "Patrones simples" #: ../Doc/howto/regex.rst:53 msgid "" @@ -91,6 +124,10 @@ msgid "" "Since regular expressions are used to operate on strings, we'll begin with " "the most common task: matching characters." msgstr "" +"Comenzaremos aprendiendo sobre las expresiones regulares más simples " +"posibles. Dado que las expresiones regulares se utilizan para operar en " +"cadenas de caracteres, comenzaremos con la tarea más común: hacer coincidir " +"caracteres." #: ../Doc/howto/regex.rst:57 msgid "" @@ -98,10 +135,14 @@ msgid "" "expressions (deterministic and non-deterministic finite automata), you can " "refer to almost any textbook on writing compilers." msgstr "" +"Para obtener una explicación detallada de la informática que subyace a las " +"expresiones regulares (autómatas finitos deterministas y no deterministas), " +"puede consultar casi cualquier libro de texto sobre la escritura de " +"compiladores." #: ../Doc/howto/regex.rst:63 msgid "Matching Characters" -msgstr "" +msgstr "Coincidencia de Caracteres (*Matching Characters*)" #: ../Doc/howto/regex.rst:65 msgid "" @@ -110,6 +151,11 @@ msgid "" "can enable a case-insensitive mode that would let this RE match ``Test`` or " "``TEST`` as well; more about this later.)" msgstr "" +"La mayoría de letras y caracteres simplemente coincidirán. Por ejemplo, la " +"expresión regular ``test`` coincidirá exactamente con la cadena ``test``. " +"(Puede habilitar un modo que no distinga entre mayúsculas y minúsculas que " +"permitiría que este RE coincida con ``test`` o ``TEST`` también; más sobre " +"esto más adelante.)" #: ../Doc/howto/regex.rst:70 msgid "" @@ -120,12 +166,19 @@ msgid "" "this document is devoted to discussing various metacharacters and what they " "do." msgstr "" +"Hay excepciones a esta regla; algunos caracteres son especiales :dfn:" +"`metacharacters`, y no coinciden. En cambio, señalan que debe coincidir con " +"algo fuera de lo común, o afectan otras partes de la RE repitiéndolos o " +"cambiando su significado. Gran parte de este documento está dedicado a " +"discutir varios metacarácteres y lo que hacen." #: ../Doc/howto/regex.rst:76 msgid "" "Here's a complete list of the metacharacters; their meanings will be " "discussed in the rest of this HOWTO." msgstr "" +"Aquí hay una lista completa de los metacarácteres; sus significados se " +"discutirán en el resto de este COMO (*HOWTO*)." #: ../Doc/howto/regex.rst:83 msgid "" @@ -138,6 +191,14 @@ msgid "" "characters. If you wanted to match only lowercase letters, your RE would be " "``[a-z]``." msgstr "" +"Los primeros metacarácteres que veremos son ``[`` and ``]``. Se utilizan " +"para especificar una clase de carácter, que es un conjunto de caracteres que " +"desea hacer coincidir. Los caracteres se pueden enumerar individualmente, o " +"se puede indicar un rango de caracteres dando dos caracteres y separándolos " +"con un ``'-'``. Por ejemplo, ``[abc]`` coincidirá con cualquiera de los " +"caracteres ``a``, ``b`` o ``c``; esto es lo mismo que ``[a-c]``, que usa un " +"rango para expresar el mismo conjunto de caracteres. Si quisiera hacer " +"coincidir solo letras minúsculas, su RE sería ``[a-c]``." #: ../Doc/howto/regex.rst:92 msgid "" @@ -146,6 +207,10 @@ msgid "" "is usually a metacharacter, but inside a character class it's stripped of " "its special nature." msgstr "" +"Los metacarácteres no están activos dentro de las clases. Por ejemplo, ``[akm" +"$]`` coincidirá con cualquiera de los caracteres ``'a'``, ``'k'``, ``'m'``, " +"or ``'$'``; ``'$'`` suele ser un metacarácter, pero dentro de una clase de " +"carácter se le quita su naturaleza especial." #: ../Doc/howto/regex.rst:97 msgid "" @@ -156,6 +221,12 @@ msgid "" "does not have special meaning. For example: ``[5^]`` will match either a " "``'5'`` or a ``'^'``." msgstr "" +"Puede hacer coincidir los caracteres que no figuran en la clase mediante el " +"conjunto :dfn:`complementing`. Esto se indica mediante la inclusión de un " +"``'^'`` como primer carácter de la clase. Por ejemplo, ``[^5]`` coincidirá " +"con cualquier carácter excepto con ``'5'``. Si el símbolo de intercalación " +"aparece en otra parte de una clase de caracter, no tiene un significado " +"especial. Por ejemplo: ``[5^] `` coincidirá con un ``'5'`` o un ``'^'``." #: ../Doc/howto/regex.rst:103 msgid "" @@ -166,6 +237,13 @@ msgid "" "need to match a ``[`` or ``\\``, you can precede them with a backslash to " "remove their special meaning: ``\\[`` or ``\\\\``." msgstr "" +"Quizás el metacarácter más importante es la barra invertida, ``\\``. Al " +"igual que en los literales de cadena de Python, la barra invertida puede ir " +"seguida de varios caracteres para señalar varias secuencias especiales. " +"También se usa para escapar de todos los metacarácteres, de modo que aún " +"pueda emparejarlos en patrones; por ejemplo, si necesita hacer coincidir un " +"``[`` o ``\\``, puede precederlos con una barra invertida para eliminar su " +"significado especial: ``\\[`` o ``\\\\``." #: ../Doc/howto/regex.rst:110 msgid "" @@ -173,6 +251,10 @@ msgid "" "sets of characters that are often useful, such as the set of digits, the set " "of letters, or the set of anything that isn't whitespace." msgstr "" +"Algunas de las secuencias especiales que comienzan con ``'\\'`` representan " +"conjuntos predefinidos de caracteres que a menudo son útiles, como el " +"conjunto de dígitos, el conjunto de letras o el conjunto de cualquier cosa " +"que no sea un espacio en blanco." #: ../Doc/howto/regex.rst:115 msgid "" @@ -184,6 +266,14 @@ msgid "" "in a string pattern by supplying the :const:`re.ASCII` flag when compiling " "the regular expression." msgstr "" +"Tomemos un ejemplo: ``\\w`` coincide con cualquier carácter alfanumérico. Si " +"el patrón de expresiones regulares se expresa en bytes, esto es equivalente " +"a la clase ``[a-zA-Z0-9_]``. Si el patrón de expresiones regulares es una " +"cadena de caracteres, ``\\w`` coincidirá con todos los caracteres marcados " +"como letras en la base de datos Unicode proporcionada por el módulo :mod:" +"`unicodedata`. Puede usar la definición más restringida de ``\\w`` en un " +"patrón de cadena proporcionando el indicador :const:`re.ASCII` al compilar " +"la expresión regular." #: ../Doc/howto/regex.rst:123 msgid "" @@ -193,63 +283,81 @@ msgid "" "Standard Library reference. In general, the Unicode versions match any " "character that's in the appropriate category in the Unicode database." msgstr "" +"La siguiente lista de secuencias especiales no está completa. Para obtener " +"una lista completa de secuencias y definiciones de clases expandidas para " +"patrones de cadenas Unicode, consulte la última parte de :ref:`Regular " +"Expression Syntax ` en la referencia de la biblioteca estándar. " +"En general, las versiones Unicode coinciden con cualquier carácter que esté " +"en la categoría apropiada en la base de datos Unicode." #: ../Doc/howto/regex.rst:131 msgid "``\\d``" -msgstr "" +msgstr "``\\d``" #: ../Doc/howto/regex.rst:131 msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." msgstr "" +"Coincide con cualquier dígito decimal; esto es equivalente a la clase " +"``[0-9]``." #: ../Doc/howto/regex.rst:134 msgid "``\\D``" -msgstr "" +msgstr "``\\D``" #: ../Doc/howto/regex.rst:134 msgid "" "Matches any non-digit character; this is equivalent to the class ``[^0-9]``." msgstr "" +"Coincide con cualquier carácter que no sea un dígito; esto es equivalente a " +"la clase ``[^0-9]``." #: ../Doc/howto/regex.rst:138 msgid "``\\s``" -msgstr "" +msgstr "``\\s``" #: ../Doc/howto/regex.rst:137 msgid "" "Matches any whitespace character; this is equivalent to the class ``[ \\t\\n" "\\r\\f\\v]``." msgstr "" +"Coincide con cualquier carácter de espacio en blanco; esto es equivalente a " +"la clase ``[ \\t\\n\\r\\f\\v]``." #: ../Doc/howto/regex.rst:142 msgid "``\\S``" -msgstr "" +msgstr "``\\S``" #: ../Doc/howto/regex.rst:141 msgid "" "Matches any non-whitespace character; this is equivalent to the class ``[^ " "\\t\\n\\r\\f\\v]``." msgstr "" +"Coincide con cualquier carácter que no sea un espacio en blanco; esto es " +"equivalente a la clase ``[^ \\t\\n\\r\\f\\v]``." #: ../Doc/howto/regex.rst:146 msgid "``\\w``" -msgstr "" +msgstr "``\\w``" #: ../Doc/howto/regex.rst:145 msgid "" "Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" "Z0-9_]``." msgstr "" +"Coincide con cualquier carácter alfanumérico; esto es equivalente a la clase " +"``[a-zA-Z0-9_]``." #: ../Doc/howto/regex.rst:150 msgid "``\\W``" -msgstr "" +msgstr "``\\W``" #: ../Doc/howto/regex.rst:149 msgid "" "Matches any non-alphanumeric character; this is equivalent to the class " "``[^a-zA-Z0-9_]``." msgstr "" +"Coincide con cualquier carácter no alfanumérico; esto es equivalente a la " +"clase ``[^a-zA-Z0-9_]``." #: ../Doc/howto/regex.rst:152 msgid "" @@ -257,6 +365,9 @@ msgid "" "``[\\s,.]`` is a character class that will match any whitespace character, " "or ``','`` or ``'.'``." msgstr "" +"Estas secuencias se pueden incluir dentro de una clase de carácter. Por " +"ejemplo, ``[\\s,.]`` es una clase de carácter que coincidirá con cualquier " +"carácter de espacio en blanco, o ``','`` o ``'.'``." #: ../Doc/howto/regex.rst:156 msgid "" @@ -265,10 +376,14 @@ msgid "" "DOTALL`) where it will match even a newline. ``.`` is often used where you " "want to match \"any character\"." msgstr "" +"El metacarácter final en esta sección es ``.``. Coincide con cualquier cosa " +"excepto un carácter de nueva línea, y hay un modo alternativo (:const:`re." +"DOTALL`) donde coincidirá incluso con una nueva línea. ``.`` se usa a menudo " +"cuando se desea hacer coincidir \"cualquier carácter\"." #: ../Doc/howto/regex.rst:163 msgid "Repeating Things" -msgstr "" +msgstr "Repitiendo cosas" #: ../Doc/howto/regex.rst:165 msgid "" @@ -278,6 +393,12 @@ msgid "" "they wouldn't be much of an advance. Another capability is that you can " "specify that portions of the RE must be repeated a certain number of times." msgstr "" +"Ser capaz de hacer coincidir diferentes conjuntos de caracteres es lo " +"primero que pueden hacer las expresiones regulares que ya no es posible con " +"los métodos disponibles en cadenas de caracteres. Sin embargo, si esa fuera " +"la única capacidad adicional de las expresiones regulares, no serían un gran " +"avance. Otra capacidad es que puede especificar que partes de la RE deben " +"repetirse un cierto número de veces." #: ../Doc/howto/regex.rst:171 msgid "" @@ -286,12 +407,18 @@ msgid "" "that the previous character can be matched zero or more times, instead of " "exactly once." msgstr "" +"El primer metacarácter para repetir cosas que veremos es ``*``. ``*`` no " +"coincide con el carácter literal ``'*'``; en cambio, especifica que el " +"carácter anterior puede coincidir cero o más veces, en lugar de exactamente " +"una vez." #: ../Doc/howto/regex.rst:175 msgid "" "For example, ``ca*t`` will match ``'ct'`` (0 ``'a'`` characters), ``'cat'`` " "(1 ``'a'``), ``'caaat'`` (3 ``'a'`` characters), and so forth." msgstr "" +"Por ejemplo, ``ca*t`` coincidirá con ``'ct'`` (0 ``'a'`` caracteres), " +"``'cat'`` (1 ``'a'``), ``'caaat'`` (3 ``'a'`` caracteres), etc." #: ../Doc/howto/regex.rst:178 msgid "" @@ -300,6 +427,10 @@ msgid "" "portions of the pattern don't match, the matching engine will then back up " "and try again with fewer repetitions." msgstr "" +"Las repeticiones como ``*`` son :dfn:`greedy`; al repetir una RE, el motor " +"de emparejamiento intentará repetirlo tantas veces como sea posible. Si las " +"partes posteriores del patrón no coinciden, el motor de coincidencia hará " +"una copia de seguridad y volverá a intentarlo con menos repeticiones." #: ../Doc/howto/regex.rst:183 msgid "" @@ -308,98 +439,114 @@ msgid "" "letters from the class ``[bcd]``, and finally ends with a ``'b'``. Now " "imagine matching this RE against the string ``'abcbd'``." msgstr "" +"Un ejemplo paso a paso hará que esto sea más obvio. Consideremos la " +"expresión ``a[bcd]*b``. Esto coincide con la letra ``'a'``, cero o más " +"letras de la clase ``[bcd]``, y finalmente termina con una ``'b'``. Ahora " +"imagina hacer coincidir este RE con la cadena de caracteres ``'abcbd'``." #: ../Doc/howto/regex.rst:189 msgid "Step" -msgstr "" +msgstr "Pasos" #: ../Doc/howto/regex.rst:189 msgid "Matched" -msgstr "" +msgstr "Coincidencias" #: ../Doc/howto/regex.rst:189 msgid "Explanation" -msgstr "" +msgstr "Explicación" #: ../Doc/howto/regex.rst:191 msgid "1" -msgstr "" +msgstr "1" #: ../Doc/howto/regex.rst:191 msgid "``a``" -msgstr "" +msgstr "``a``" #: ../Doc/howto/regex.rst:191 msgid "The ``a`` in the RE matches." -msgstr "" +msgstr "La ``a`` en las RE coincide." #: ../Doc/howto/regex.rst:193 msgid "2" -msgstr "" +msgstr "2" #: ../Doc/howto/regex.rst:193 msgid "``abcbd``" -msgstr "" +msgstr "``abcbd``" #: ../Doc/howto/regex.rst:193 msgid "" "The engine matches ``[bcd]*``, going as far as it can, which is to the end " "of the string." msgstr "" +"El motor coincide con ``[bcd]*``, yendo tan lejos como puede, que es hasta " +"el final de la cadena de caracteres." #: ../Doc/howto/regex.rst:197 msgid "3" -msgstr "" +msgstr "3" #: ../Doc/howto/regex.rst:197 ../Doc/howto/regex.rst:205 msgid "*Failure*" -msgstr "" +msgstr "*Failure*" #: ../Doc/howto/regex.rst:197 msgid "" "The engine tries to match ``b``, but the current position is at the end of " "the string, so it fails." msgstr "" +"El motor intenta hacer coincidir ``b``, pero la posición actual está al " +"final de la cadena de caracteres, por lo que falla." #: ../Doc/howto/regex.rst:202 msgid "4" -msgstr "" +msgstr "4" #: ../Doc/howto/regex.rst:202 ../Doc/howto/regex.rst:213 msgid "``abcb``" -msgstr "" +msgstr "``abcb``" #: ../Doc/howto/regex.rst:202 msgid "Back up, so that ``[bcd]*`` matches one less character." msgstr "" +"Hace una copia de seguridad para que ``[bcd]*`` coincida con un carácter " +"menos." #: ../Doc/howto/regex.rst:205 msgid "5" -msgstr "" +msgstr "5" #: ../Doc/howto/regex.rst:205 msgid "" "Try ``b`` again, but the current position is at the last character, which is " "a ``'d'``." msgstr "" +"Intente ``b`` de nuevo, pero la posición actual está en el último caracter, " +"que es un ``'d'``." #: ../Doc/howto/regex.rst:209 ../Doc/howto/regex.rst:213 msgid "6" -msgstr "" +msgstr "6" #: ../Doc/howto/regex.rst:209 msgid "``abc``" -msgstr "" +msgstr "``abc``" #: ../Doc/howto/regex.rst:209 msgid "Back up again, so that ``[bcd]*`` is only matching ``bc``." msgstr "" +"Haga una copia de seguridad de nuevo, de modo que ``[bcd]*`` solo coincida " +"con ``bc``." #: ../Doc/howto/regex.rst:213 msgid "" "Try ``b`` again. This time the character at the current position is " "``'b'``, so it succeeds." msgstr "" +"Intente ``b`` de nuevo. Esta vez, el carácter en la posición actual es " +"``'b'``, por lo que tiene éxito." #: ../Doc/howto/regex.rst:219 msgid "" @@ -410,6 +557,13 @@ msgid "" "``[bcd]*``, and if that subsequently fails, the engine will conclude that " "the string doesn't match the RE at all." msgstr "" +"Se ha alcanzado el final de la RE y ha coincidido con ``'abcb'``. Esto " +"demuestra cómo el motor de coincidencias llega tan lejos como puede al " +"principio, y si no se encuentra ninguna coincidencia, retrocederá " +"progresivamente y volverá a intentar de la RE una y otra vez. Hará una copia " +"de seguridad hasta que haya probado cero coincidencias para ``[bcd]*``, y si " +"eso falla posteriormente, el motor concluirá que la cadena no coincide con " +"la RE en absoluto." #: ../Doc/howto/regex.rst:226 msgid "" @@ -420,6 +574,12 @@ msgid "" "similar example, ``ca+t`` will match ``'cat'`` (1 ``'a'``), ``'caaat'`` (3 " "``'a'``\\ s), but won't match ``'ct'``." msgstr "" +"Otro metacarácter que se repite es ``+``, que coincide una o más veces. " +"Preste especial atención a la diferencia entre ``*`` and ``+``; coincide con " +"*cero* o más veces, por lo que cualquier cosa que se repita puede no estar " +"presente en absoluto, mientras que ``+`` requiere al menos *one* aparición. " +"Para usar un ejemplo similar, ``'cat'`` (1 ``'a'``), ``'caaat'`` (3 ``'a'``" +"\\ s), pero no coincidirá con ``'ct'``." #: ../Doc/howto/regex.rst:233 msgid "" @@ -428,6 +588,10 @@ msgid "" "something as being optional. For example, ``home-?brew`` matches either " "``'homebrew'`` or ``'home-brew'``." msgstr "" +"Hay dos calificadores más que se repiten. El carácter de signo de " +"interrogación, ``?``, Coincide una vez o cero veces; puede pensar en ello " +"como si marcara algo como opcional. Por ejemplo, ``home-?brew`` coincide con " +"``'homebrew'`` o ``'home-brew'``." #: ../Doc/howto/regex.rst:238 msgid "" @@ -437,6 +601,11 @@ msgid "" "b'``, ``'a//b'``, and ``'a///b'``. It won't match ``'ab'``, which has no " "slashes, or ``'a////b'``, which has four." msgstr "" +"El calificador repetido más complicado es ``{m,n}``, donde *m* y *n* son " +"enteros decimales. Este calificador significa que debe haber al menos *m* " +"repeticiones y como máximo *n*. Por ejemplo, ``a/{1,3}b`` coincidirá con``'a/" +"b'``, ``'a//b'``, and ``'a///b'``. No coincidirá con `` 'ab' ', que no tiene " +"barras, ni con ``'a////b'``, que tiene cuatro." #: ../Doc/howto/regex.rst:244 msgid "" @@ -444,6 +613,9 @@ msgid "" "for the missing value. Omitting *m* is interpreted as a lower limit of 0, " "while omitting *n* results in an upper bound of infinity." msgstr "" +"Puede omitir *m* o *n*; en ese caso, se asume un valor razonable para el " +"valor faltante. Omitir *m* se interpreta como un límite inferior de 0, " +"mientras que omitir *n* da como resultado un límite superior de infinito." #: ../Doc/howto/regex.rst:248 msgid "" @@ -453,10 +625,15 @@ msgid "" "better to use ``*``, ``+``, or ``?`` when you can, simply because they're " "shorter and easier to read." msgstr "" +"Los lectores de una inclinación reduccionista pueden notar que los otros " +"tres calificativos pueden expresarse usando esta notación. ``{0,}`` es lo " +"mismo que ``*``, ``{1,}`` es equivalente a ``+``, y ``{0,1}`` es lo mismo " +"que ``?``. Es mejor usar ``*``, ``+``, o ``?`` cuando pueda, simplemente " +"porque son más cortos y fáciles de leer." #: ../Doc/howto/regex.rst:256 msgid "Using Regular Expressions" -msgstr "" +msgstr "Usando Expresiones Regulares" #: ../Doc/howto/regex.rst:258 msgid "" @@ -465,17 +642,25 @@ msgid "" "regular expression engine, allowing you to compile REs into objects and then " "perform matches with them." msgstr "" +"Ahora que hemos visto algunas expresiones regulares simples, ¿cómo las " +"usamos realmente en Python? El módulo :mod:`re` proporciona una interfaz " +"para el motor de expresiones regulares, lo que le permite compilar RE en " +"objetos y luego realizar coincidencias con ellos." #: ../Doc/howto/regex.rst:265 msgid "Compiling Regular Expressions" -msgstr "" +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 " "string substitutions. ::" msgstr "" +"Las expresiones regulares se compilan en objetos de patrón, que tienen " +"métodos para diversas operaciones, como buscar coincidencias de patrones o " +"realizar sustituciones de cadenas de caracteres. ::" #: ../Doc/howto/regex.rst:276 msgid "" @@ -483,6 +668,10 @@ msgid "" "various special features and syntax variations. We'll go over the available " "settings later, but for now a single example will do::" msgstr "" +":func:`re.compile` también acepta un argumento opcional *flags*, usado para " +"habilitar varias características especiales y variaciones de sintaxis. " +"Repasaremos las configuraciones disponibles más adelante, pero por ahora un " +"solo ejemplo servirá:" #: ../Doc/howto/regex.rst:282 msgid "" @@ -494,16 +683,25 @@ msgid "" "simply a C extension module included with Python, just like the :mod:" "`socket` or :mod:`zlib` modules." msgstr "" +"La RE se pasa a :func:`re.compile` como una cadena de caracteres. Las RE se " +"manejan como cadenas de caracteres porque las expresiones regulares no son " +"parte del lenguaje central de Python y no se creó una sintaxis especial para " +"expresarlas. (Hay aplicaciones que no necesitan RE en absoluto, por lo que " +"no hay necesidad de aumentar la especificación del lenguaje incluyéndolas). " +"En cambio, el módulo :mod:`re` es simplemente un módulo de extensión C " +"incluido en Python, al igual que los módulos :mod:`socket` o :mod:`zlib`." #: ../Doc/howto/regex.rst:289 msgid "" "Putting REs in strings keeps the Python language simpler, but has one " "disadvantage which is the topic of the next section." msgstr "" +"Poner RE en cadenas de caracteres mantiene el lenguaje Python más simple, " +"pero tiene una desventaja que es el tema de la siguiente sección." #: ../Doc/howto/regex.rst:296 msgid "The Backslash Plague" -msgstr "" +msgstr "La plaga de la barra invertida (*The Backslash Plague*)" #: ../Doc/howto/regex.rst:298 msgid "" @@ -512,6 +710,11 @@ msgid "" "used without invoking their special meaning. This conflicts with Python's " "usage of the same character for the same purpose in string literals." msgstr "" +"Como se indicó anteriormente, las expresiones regulares usan el carácter de " +"barra invertida (``'\\'``) para indicar formas especiales o para permitir " +"que se usen caracteres especiales sin invocar su significado especial. Esto " +"entra en conflicto con el uso de Python del mismo carácter para el mismo " +"propósito en cadenas literales." #: ../Doc/howto/regex.rst:303 msgid "" @@ -524,38 +727,47 @@ msgid "" "to express this as a Python string literal, both backslashes must be escaped " "*again*." msgstr "" +"Supongamos que desea escribir una RE que coincida con la cadena de " +"caracteres ``\\section``, que podría encontrarse en un archivo LaTeX. Para " +"averiguar qué escribir en el código del programa, comience con la cadena " +"deseada para que coincida. A continuación, debe escapar de las barras " +"invertidas y otros metacarácteres precediéndolos con una barra invertida, lo " +"que da como resultado la cadena ``\\\\section``. La cadena resultante que " +"debe pasarse a :func:`re.compile` debe ser ``\\\\section``. Sin embargo, " +"para expresar esto como una cadena literal de Python, ambas barras " +"invertidas deben escaparse *nuevamente*." #: ../Doc/howto/regex.rst:312 msgid "Characters" -msgstr "" +msgstr "Caracteres" #: ../Doc/howto/regex.rst:312 msgid "Stage" -msgstr "" +msgstr "Explicación" #: ../Doc/howto/regex.rst:314 msgid "``\\section``" -msgstr "" +msgstr "``\\section``" #: ../Doc/howto/regex.rst:314 msgid "Text string to be matched" -msgstr "" +msgstr "Cadena de texto que debe coincidir" #: ../Doc/howto/regex.rst:316 msgid "``\\\\section``" -msgstr "" +msgstr "``\\\\section``" #: ../Doc/howto/regex.rst:316 msgid "Escaped backslash for :func:`re.compile`" -msgstr "" +msgstr "Barra invertida de escape para :func:`re.compile`" #: ../Doc/howto/regex.rst:318 ../Doc/howto/regex.rst:345 msgid "``\"\\\\\\\\section\"``" -msgstr "" +msgstr "``\"\\\\\\\\section\"``" #: ../Doc/howto/regex.rst:318 msgid "Escaped backslashes for a string literal" -msgstr "" +msgstr "Barra invertida de escape para un literal de cadena de caracteres" #: ../Doc/howto/regex.rst:321 msgid "" @@ -565,6 +777,12 @@ msgid "" "literal. In REs that feature backslashes repeatedly, this leads to lots of " "repeated backslashes and makes the resulting strings difficult to understand." msgstr "" +"En resumen, para hacer coincidir una barra invertida literal, uno tiene que " +"escribir ``'\\\\\\\\'`` como la cadena RE, porque la expresión regular debe " +"ser ``\\\\``, y cada barra invertida debe expresarse como ``\\\\`` dentro de " +"un literal de cadena Python normal. En las RE que presentan barras " +"invertidas repetidamente, esto genera muchas barras invertidas repetidas y " +"dificulta la comprensión de las cadenas resultantes." #: ../Doc/howto/regex.rst:327 msgid "" @@ -575,6 +793,13 @@ msgid "" "newline. Regular expressions will often be written in Python code using this " "raw string notation." msgstr "" +"La solución es utilizar la notación de cadena de caracteres sin formato de " +"Python para expresiones regulares; las barras invertidas no se manejan de " +"ninguna manera especial en una cadena literal con el prefijo ``'r'``, por lo " +"que ``r\"\\n\"`` es una cadena de dos caracteres que contiene ``'\\'`` y " +"``'n'``, mientras que ``\"\\n\"`` es una cadena de un carácter que contiene " +"una nueva línea. Las expresiones regulares a menudo se escribirán en código " +"Python utilizando esta notación de cadena sin formato." #: ../Doc/howto/regex.rst:333 msgid "" @@ -584,38 +809,44 @@ msgid "" "means the sequences will be invalid if raw string notation or escaping the " "backslashes isn't used." msgstr "" +"Además, las secuencias de escape especiales que son válidas en expresiones " +"regulares, pero no válidas como literales de cadena de Python, ahora dan " +"como resultado :exc:`DeprecationWarning` y eventualmente se convertirán en :" +"exc:`SyntaxError`, lo que significa que las secuencias no serán válidas. si " +"no se utiliza la notación de cadena sin formato o el escape de las barras " +"invertidas." #: ../Doc/howto/regex.rst:341 msgid "Regular String" -msgstr "" +msgstr "Cadena de caracteres regulares" #: ../Doc/howto/regex.rst:341 msgid "Raw string" -msgstr "" +msgstr "Cadena de caracteres crudas (*Raw string*)" #: ../Doc/howto/regex.rst:343 msgid "``\"ab*\"``" -msgstr "" +msgstr "``\"ab*\"``" #: ../Doc/howto/regex.rst:343 msgid "``r\"ab*\"``" -msgstr "" +msgstr "``r\"ab*\"``" #: ../Doc/howto/regex.rst:345 msgid "``r\"\\\\section\"``" -msgstr "" +msgstr "``r\"\\\\section\"``" #: ../Doc/howto/regex.rst:347 msgid "``\"\\\\w+\\\\s+\\\\1\"``" -msgstr "" +msgstr "``\"\\\\w+\\\\s+\\\\1\"``" #: ../Doc/howto/regex.rst:347 msgid "``r\"\\w+\\s+\\1\"``" -msgstr "" +msgstr "``r\"\\w+\\s+\\1\"``" #: ../Doc/howto/regex.rst:352 msgid "Performing Matches" -msgstr "" +msgstr "Realizando coincidencias" #: ../Doc/howto/regex.rst:354 msgid "" @@ -624,50 +855,60 @@ msgid "" "the most significant ones will be covered here; consult the :mod:`re` docs " "for a complete listing." msgstr "" +"Una vez que tiene un objeto que representa una expresión regular compilada, " +"¿qué hace con él? Los objetos de patrón tienen varios métodos y atributos. " +"Aquí solo se cubrirán los más importantes; consulte los documentos :mod:`re` " +"para obtener una lista completa." #: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 #: ../Doc/howto/regex.rst:1064 msgid "Method/Attribute" -msgstr "" +msgstr "Método/atributo" #: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 #: ../Doc/howto/regex.rst:1064 msgid "Purpose" -msgstr "" +msgstr "Objetivo" #: ../Doc/howto/regex.rst:362 msgid "``match()``" -msgstr "" +msgstr "``match()``" #: ../Doc/howto/regex.rst:362 msgid "Determine if the RE matches at the beginning of the string." msgstr "" +"Determina si la RE coincide con el comienzo de la cadena de caracteres." #: ../Doc/howto/regex.rst:365 msgid "``search()``" -msgstr "" +msgstr "``search()``" #: ../Doc/howto/regex.rst:365 msgid "Scan through a string, looking for any location where this RE matches." msgstr "" +"Escanea una cadena, buscando cualquier ubicación donde coincida este RE." #: ../Doc/howto/regex.rst:368 msgid "``findall()``" -msgstr "" +msgstr "``findall()``" #: ../Doc/howto/regex.rst:368 msgid "Find all substrings where the RE matches, and returns them as a list." msgstr "" +"Encuentra todas las subcadenas de caracteres donde coincide la RE y las " +"retorna como una lista." #: ../Doc/howto/regex.rst:371 msgid "``finditer()``" -msgstr "" +msgstr "``finditer()``" #: ../Doc/howto/regex.rst:371 msgid "" "Find all substrings where the RE matches, and returns them as an :term:" "`iterator`." msgstr "" +"Encuentra todas las subcadenas donde la RE coincide y las retorna como un " +"término iterado :term:`iterator`." #: ../Doc/howto/regex.rst:375 msgid "" @@ -676,6 +917,11 @@ msgid "" "objects>` instance is returned, containing information about the match: " "where it starts and ends, the substring it matched, and more." msgstr "" +":meth:`~re.Pattern.match` y :meth:`~re.Pattern.search` retornan ``None`` si " +"la coincidencia no puede ser encontrada. Si tienen éxito, se retorna una " +"instancia :ref:`match object `, que contiene información " +"sobre la coincidencia: dónde comienza y termina, la subcadena de caracteres " +"con la que coincidió, y más." #: ../Doc/howto/regex.rst:380 msgid "" @@ -686,12 +932,21 @@ msgid "" "whether the RE matches or fails. :file:`redemo.py` can be quite useful when " "trying to debug a complicated RE." msgstr "" +"Puede aprender sobre esto experimentando interactivamente con el módulo :mod:" +"`re`. Si tiene :mod:`tkinter` disponible, también puede consultar :source:" +"`Tools/demo/redemo.py`, un programa de demostración incluido con la " +"distribución de Python. Le permite ingresar RE y cadenas de caracteres, y " +"muestra si la RE coincide o falla. :file:`redemo.py` puede ser bastante útil " +"cuando se intenta depurar una RE complicado." #: ../Doc/howto/regex.rst:387 msgid "" "This HOWTO uses the standard Python interpreter for its examples. First, run " "the Python interpreter, import the :mod:`re` module, and compile a RE::" msgstr "" +"Este CÓMO (*HOWTO*) utiliza el intérprete estándar de Python para sus " +"ejemplos. Primero, ejecute el intérprete de Python, importe el módulo :mod:" +"`re` y compile en RE::" #: ../Doc/howto/regex.rst:395 msgid "" @@ -701,6 +956,12 @@ msgid "" "which will cause the interpreter to print no output. You can explicitly " "print the result of :meth:`!match` to make this clear. ::" msgstr "" +"Ahora, puede intentar hacer coincidir varias cadenas con la RE ``[a-z]+``. " +"Una cadena de caracteres vacía no debería coincidir en absoluto, ya que ``" +"+`` significa que 'una o más repeticiones'. :meth:`~re.Pattern.match` " +"debería retornar ``None`` en este caso, lo que hará que el intérprete no " +"imprima ningún resultado. Puede imprimir explícitamente el resultado de :" +"meth:`!match` para aclarar esto. ::" #: ../Doc/howto/regex.rst:405 msgid "" @@ -708,6 +969,10 @@ msgid "" "this case, :meth:`~re.Pattern.match` will return a :ref:`match object `, so you should store the result in a variable for later use. ::" msgstr "" +"Ahora, intentémoslo en una cadena de caracteres que debería coincidir, como " +"``tempo``.En este caso , :meth:`~re.Pattern.match` retornará un :ref:`match " +"object `, por lo que debe almacenar el resultado en una " +"variable para su posterior uso. ::" #: ../Doc/howto/regex.rst:413 msgid "" @@ -715,42 +980,47 @@ msgid "" "about the matching string. Match object instances also have several methods " "and attributes; the most important ones are:" msgstr "" +"Ahora puede consultar :ref:`match object ` para obtener " +"información sobre la cadena coincidente. Las instancias de objetos " +"coincidentes también tienen varios métodos y atributos; los más importantes " +"son:" #: ../Doc/howto/regex.rst:420 msgid "``group()``" -msgstr "" +msgstr "``group()``" #: ../Doc/howto/regex.rst:420 msgid "Return the string matched by the RE" -msgstr "" +msgstr "Retorna la cadena de caracteres que coincide con la RE" #: ../Doc/howto/regex.rst:422 msgid "``start()``" -msgstr "" +msgstr "``start()``" #: ../Doc/howto/regex.rst:422 msgid "Return the starting position of the match" -msgstr "" +msgstr "Retorna la posición de inicio de la coincidencia" #: ../Doc/howto/regex.rst:424 msgid "``end()``" -msgstr "" +msgstr "``end()``" #: ../Doc/howto/regex.rst:424 msgid "Return the ending position of the match" -msgstr "" +msgstr "Retorna la posición final de la coincidencia" #: ../Doc/howto/regex.rst:426 msgid "``span()``" -msgstr "" +msgstr "``span()``" #: ../Doc/howto/regex.rst:426 msgid "Return a tuple containing the (start, end) positions of the match" msgstr "" +"Retorna una tupla que contiene (inicio, final) las posiciones de coincidencia" #: ../Doc/howto/regex.rst:430 msgid "Trying these methods will soon clarify their meaning::" -msgstr "" +msgstr "Probando estos métodos pronto aclarará sus significados::" #: ../Doc/howto/regex.rst:439 msgid "" @@ -763,6 +1033,15 @@ msgid "" "scans through the string, so the match may not start at zero in that " "case. ::" msgstr "" +":meth:`~re.Match.group` retorna la subcadena de caracteres que coincide con " +"la RE. :meth:`~re.Match.start` y :meth:`~re.Match.end` retornan el índice " +"inicial y final de la coincidencia. :meth:`~re.Match.span` retorna el índice " +"inicial y final en una única tupla. Dado que el método :meth:`~re.Pattern." +"match` solo verifica si la RE coincide al comienzo de una cadena de " +"caracteres, :meth:`!start` siempre será cero. Sin embargo, el método de " +"patrones :meth:`~re.Pattern.search` escanea a través de la cadena de " +"caracteres, por lo que es posible que la coincidencia no comience en cero en " +"ese caso. ::" #: ../Doc/howto/regex.rst:456 msgid "" @@ -770,12 +1049,18 @@ msgid "" "` in a variable, and then check if it was ``None``. This " "usually looks like::" msgstr "" +"En programas reales, el estilo más común es almacenar :ref:`match object " +"` en una variable, y luego verificar si era ``None``. Esto " +"generalmente se ve así::" #: ../Doc/howto/regex.rst:467 msgid "" "Two pattern methods return all of the matches for a pattern. :meth:`~re." "Pattern.findall` returns a list of matching strings::" msgstr "" +"Dos métodos de patrón retornan todas las coincidencias de un patrón. :meth:" +"`~re.Pattern.findall` retorna una lista de cadenas de caracteres " +"coincidentes::" #: ../Doc/howto/regex.rst:474 msgid "" @@ -785,6 +1070,12 @@ msgid "" "in a :exc:`DeprecationWarning` and will eventually become a :exc:" "`SyntaxError`. See :ref:`the-backslash-plague`." msgstr "" +"El prefijo ``r``, que convierte al literal en una cadena de caracteres " +"literal sin formato, es necesario en este ejemplo porque las secuencias de " +"escape en un cadena de caracteres literal \"cocinado\" normal que no son " +"reconocidas por Python, a diferencia de las expresiones regulares, ahora dan " +"como resultado :exc:`DeprecationWarning` y eventualmente se convertirá en :" +"exc:`SyntaxError`. Ver :ref:`the-backslash-plague`." #: ../Doc/howto/regex.rst:480 msgid "" @@ -793,10 +1084,14 @@ msgid "" "sequence of :ref:`match object ` instances as an :term:" "`iterator`::" msgstr "" +":meth:`~re.Pattern.findall` tiene que crear la lista completa antes de que " +"pueda retornarse como resultado. El método :meth:`~re.Pattern.finditer` " +"retorna una secuencia de :ref:`match object ` instancias como " +"iterados :term:`iterator`::" #: ../Doc/howto/regex.rst:496 msgid "Module-Level Functions" -msgstr "" +msgstr "Funciones a nivel de módulo" #: ../Doc/howto/regex.rst:498 msgid "" @@ -807,6 +1102,13 @@ msgid "" "with the RE string added as the first argument, and still return either " "``None`` or a :ref:`match object ` instance. ::" msgstr "" +"No es necesario crear un objeto patrón y llamar a sus métodos; el módulo :" +"mod:`re` también proporciona funciones de nivel superior llamadas :func:`~re." +"match` , :func:`~re.search` , :func:`~re.findall` , :func:`~re.sub`, y así " +"sucesivamente. Estas funciones toman los mismos argumentos que el método de " +"patrón correspondiente con la cadena de RE agregada como primer argumento, y " +"aún así retornan una instancia de ``None`` o :ref:`match object `. ::" #: ../Doc/howto/regex.rst:510 msgid "" @@ -815,6 +1117,10 @@ msgid "" "cache, so future calls using the same RE won't need to parse the pattern " "again and again." msgstr "" +"Bajo el capó (*hood*), estas funciones simplemente crean un objeto patrón " +"para usted y llaman al método apropiado en él. También almacenan el objeto " +"compilado en un caché, por lo que las futuras llamadas que usen el mismo RE " +"no necesitarán analizar el patrón una y otra vez." #: ../Doc/howto/regex.rst:515 msgid "" @@ -823,10 +1129,15 @@ msgid "" "pre-compiling it will save a few function calls. Outside of loops, there's " "not much difference thanks to the internal cache." msgstr "" +"¿Debería utilizar estas funciones a nivel de módulo o debería obtener el " +"patrón y llamar a sus métodos usted mismo? Si está accediendo a una " +"expresión regular dentro de un bucle, la compilación previa guardará algunas " +"llamadas a funciones. Fuera de los bucles, no hay mucha diferencia gracias " +"al caché interno." #: ../Doc/howto/regex.rst:523 msgid "Compilation Flags" -msgstr "" +msgstr "Los Flags de compilación" #: ../Doc/howto/regex.rst:525 msgid "" @@ -839,71 +1150,86 @@ msgid "" "them; ``re.I | re.M`` sets both the :const:`I` and :const:`M` flags, for " "example." msgstr "" +"Las flags de compilación le permiten modificar algunos aspectos de cómo " +"funcionan las expresiones regulares. Las flags están disponibles en el " +"módulo :mod:`re` con dos nombres, un nombre largo como :const:`IGNORECASE` y " +"una forma corta de una letra como :const:`I`. (Si está familiarizado con los " +"modificadores de patrones de Perl, las formas de una letra usan las mismas " +"letras; la forma corta de :const:`re.VERBOSE` es :const:`re.X`, por ejemplo)." +"Se pueden especificar varios indicadores uniéndolos con *OR* bit a bit; ``re." +"I | re.M`` establece los flags :const:`I` and :const:`M`, por ejemplo." #: ../Doc/howto/regex.rst:533 msgid "" "Here's a table of the available flags, followed by a more detailed " "explanation of each one." msgstr "" +"Aquí hay una tabla de las flags disponibles, seguida de una explicación más " +"detallada de cada una." #: ../Doc/howto/regex.rst:537 msgid "Flag" -msgstr "" +msgstr "Flag" #: ../Doc/howto/regex.rst:537 msgid "Meaning" -msgstr "" +msgstr "Significado" #: ../Doc/howto/regex.rst:539 msgid ":const:`ASCII`, :const:`A`" -msgstr "" +msgstr ":const:`ASCII`, :const:`A`" #: ../Doc/howto/regex.rst:539 msgid "" "Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " "on ASCII characters with the respective property." msgstr "" +"Hace que varios escapes como ``\\w``, ``\\b``, ``\\s`` y ``\\d`` coincidan " +"solo en caracteres ASCII con la propiedad respectiva." #: ../Doc/howto/regex.rst:543 msgid ":const:`DOTALL`, :const:`S`" -msgstr "" +msgstr ":const:`DOTALL`, :const:`S`" #: ../Doc/howto/regex.rst:543 msgid "Make ``.`` match any character, including newlines." msgstr "" +"Hace que ``.`` coincida con cualquier caracter, incluidas las nuevas líneas." #: ../Doc/howto/regex.rst:546 msgid ":const:`IGNORECASE`, :const:`I`" -msgstr "" +msgstr ":const:`IGNORECASE`, :const:`I`" #: ../Doc/howto/regex.rst:546 msgid "Do case-insensitive matches." -msgstr "" +msgstr "Hace coincidencias que no distingan entre mayúsculas y minúsculas." #: ../Doc/howto/regex.rst:548 msgid ":const:`LOCALE`, :const:`L`" -msgstr "" +msgstr ":const:`LOCALE`, :const:`L`" #: ../Doc/howto/regex.rst:548 msgid "Do a locale-aware match." -msgstr "" +msgstr "Hace una coincidencia con reconocimiento de configuración regional." #: ../Doc/howto/regex.rst:550 msgid ":const:`MULTILINE`, :const:`M`" -msgstr "" +msgstr ":const:`MULTILINE`, :const:`M`" #: ../Doc/howto/regex.rst:550 msgid "Multi-line matching, affecting ``^`` and ``$``." -msgstr "" +msgstr "Coincidencia de varias líneas, que afecta a ``^`` y ``$``." #: ../Doc/howto/regex.rst:553 msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" -msgstr "" +msgstr ":const:`VERBOSE`, :const:`X` (for 'extended')" #: ../Doc/howto/regex.rst:553 msgid "" "Enable verbose REs, which can be organized more cleanly and understandably." msgstr "" +"Habilite RE detallados, que se pueden organizar de manera más limpia y " +"comprensible." #: ../Doc/howto/regex.rst:562 msgid "" @@ -920,12 +1246,30 @@ msgid "" "lowercasing doesn't take the current locale into account; it will if you " "also set the :const:`LOCALE` flag." msgstr "" +"Realiza una coincidencia que no distinga entre mayúsculas y minúsculas; la " +"clase de caracteres y las cadenas de caracteres literales coincidirán con " +"las letras ignorando las mayúsculas. Por ejemplo, ``[A-Z]`` también " +"coincidirá con letras minúsculas. La coincidencia completa de Unicode " +"también funciona a menos que se utilice la flag :const:`ASCII` para " +"deshabilitar las coincidencias que no sean ASCII. Cuando los patrones " +"Unicode ``[a-z]`` o ``[A-Z]`` se utilizan 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 un punto " +"arriba), 'ı' (U+0131, letra minúscula latina sin punto i),'ſ' (U+017F, letra " +"minúscula latina larga s) y 'K' (U+212A, signo de Kelvin). ``Spam`` " +"coincidirá ``'Spam'``, ``'spam'``, ``'spAM'``, o ``'ſpam'`` (este último " +"solo coincide en modo Unicode). Estas minúsculas no tiene en cuenta la " +"configuración regional actual; lo hará si también establece la flag :const:" +"`LOCALE` ." #: ../Doc/howto/regex.rst:580 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale instead of the Unicode database." msgstr "" +"Hace que ``\\w``, ``\\W``, ``\\b``, ``\\B`` y la coincidencia que no " +"distinga entre mayúsculas y minúsculas dependan de la configuración regional " +"actual en lugar de la base de datos Unicode." #: ../Doc/howto/regex.rst:583 msgid "" @@ -945,12 +1289,32 @@ msgid "" "matching is already enabled by default in Python 3 for Unicode (str) " "patterns, and it is able to handle different locales/languages." msgstr "" +"Las configuraciones regionales son una característica de la biblioteca C " +"destinada a ayudar a escribir programas que tengan en cuenta las diferencias " +"de idioma. Por ejemplo, si está procesando texto en francés codificado, " +"querrá poder escribir ``\\w+`` para que coincida con las palabras, pero ``" +"\\w`` solo coincide con la clase de caracteres ``[A-Za-z]`` en patrones de " +"bytes; no coincidirá con los bytes correspondientes a ``é`` or ``ç``. Si su " +"sistema está configurado correctamente y se selecciona una configuración " +"regional francesa, ciertas funciones de C le dirán al programa que el byte " +"correspondiente a ``é`` también debe considerarse una letra. Establecer el " +"indicador :const:`LOCALE` al compilar una expresión regular hará que el " +"objeto compilado resultante use estas funciones C para ``\\w``; esto es más " +"lento, pero también permite que ``\\w+`` coincida con las palabras en " +"francés como era de esperar. Se desaconseja el uso de esta flag en Python 3 " +"ya que el mecanismo de configuración regional es muy poco confiable, solo " +"maneja una \"cultura\" a la vez y solo funciona con configuraciones " +"regionales de 8 bits. La coincidencia Unicode ya está habilitada de forma " +"predeterminada en Python 3 para patrones Unicode (str), y puede manejar " +"diferentes configuraciones regionales/idiomas." #: ../Doc/howto/regex.rst:605 msgid "" "(``^`` and ``$`` haven't been explained yet; they'll be introduced in " "section :ref:`more-metacharacters`.)" msgstr "" +"(``^`` y ``$`` aún no se han explicado; se presentarán en la sección :ref:" +"`more-metacharacters`.)" #: ../Doc/howto/regex.rst:608 msgid "" @@ -962,12 +1326,23 @@ msgid "" "matches either at the end of the string and at the end of each line " "(immediately preceding each newline)." msgstr "" +"Por lo general, ``^`` coincide solo al principio de la cadena de caracteres, " +"y ``$`` solo coincide con el final de la cadena de caracteres e " +"inmediatamente antes del salto de línea (si existe) al final de la cadena de " +"caracteres. Cuando se especifica esta bandera, ``^`` coincide al principio " +"de la cadena y al comienzo de cada línea dentro de la cadena, inmediatamente " +"después de cada nueva línea. De manera similar, el metacarácter ``$`` " +"coincide al final de la cadena de caracteres y al final de cada línea " +"(inmediatamente antes de cada nueva línea)." #: ../Doc/howto/regex.rst:621 msgid "" "Makes the ``'.'`` special character match any character at all, including a " "newline; without this flag, ``'.'`` will match anything *except* a newline." msgstr "" +"Hace que el carácter especial ``'.'`` coincida con cualquier carácter, " +"incluida una nueva línea; sin esta bandera, ``'.'`` coincidirá con cualquier " +"cosa *except* una nueva línea." #: ../Doc/howto/regex.rst:629 msgid "" @@ -975,6 +1350,10 @@ msgid "" "only matching instead of full Unicode matching. This is only meaningful for " "Unicode patterns, and is ignored for byte patterns." msgstr "" +"Haga que ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` y ``\\S`` realicen una " +"coincidencia solo en ASCII en lugar de una coincidencia Unicode completa. " +"Esto solo es significativo para los patrones Unicode y se ignora para los " +"patrones de bytes." #: ../Doc/howto/regex.rst:638 msgid "" @@ -987,16 +1366,28 @@ msgid "" "comments are marked by a ``'#'`` that's neither in a character class or " "preceded by an unescaped backslash." msgstr "" +"Esta flag le permite escribir expresiones regulares que son más legibles al " +"otorgarle más flexibilidad en cómo puede formatearlas. Cuando se ha " +"especificado esta flag, los espacios en blanco dentro de la cadena de " +"caracteres de la RE se ignoran, excepto cuando el espacio en blanco está en " +"una clase de caracteres o está precedido por una barra invertida sin escape; " +"esto le permite organizar e indentar la RE más claramente. Esta flag también " +"le permite poner comentarios dentro de una RE que serán ignorados por el " +"motor (*engine*); los comentarios están marcados con un ``'#'`` que no está " +"en una clase de carácter ni está precedido por una barra invertida sin " +"escape." #: ../Doc/howto/regex.rst:647 msgid "" "For example, here's a RE that uses :const:`re.VERBOSE`; see how much easier " "it is to read? ::" msgstr "" +"Por ejemplo, aquí hay una RE que usa :const:`re.VERBOSE`; ¿Ves lo fácil que " +"es leer? ::" #: ../Doc/howto/regex.rst:660 msgid "Without the verbose setting, the RE would look like this::" -msgstr "" +msgstr "Sin la configuración detallada, la RE se vería así::" #: ../Doc/howto/regex.rst:666 msgid "" @@ -1004,10 +1395,14 @@ msgid "" "has been used to break up the RE into smaller pieces, but it's still more " "difficult to understand than the version using :const:`re.VERBOSE`." msgstr "" +"En el ejemplo anterior, la concatenación automática de cadenas de caracteres " +"literales de Python se ha utilizado para dividir la RE en partes más " +"pequeñas, pero aún es más difícil de entender que la versión que usa :const:" +"`re.VERBOSE`." #: ../Doc/howto/regex.rst:672 msgid "More Pattern Power" -msgstr "" +msgstr "Más poder de patrones" #: ../Doc/howto/regex.rst:674 msgid "" @@ -1015,16 +1410,21 @@ msgid "" "this section, we'll cover some new metacharacters, and how to use groups to " "retrieve portions of the text that was matched." msgstr "" +"Hasta ahora solo hemos cubierto una parte de las características de las " +"expresiones regulares. En esta sección, cubriremos algunos metacarácteres " +"nuevos y cómo usar grupos para recuperar partes del texto que coincidió." #: ../Doc/howto/regex.rst:682 msgid "More Metacharacters" -msgstr "" +msgstr "Más metacarácteres" #: ../Doc/howto/regex.rst:684 msgid "" "There are some metacharacters that we haven't covered yet. Most of them " "will be covered in this section." msgstr "" +"Hay algunos metacarácteres que aún no hemos cubierto. La mayoría de ellos se " +"tratarán en esta sección." #: ../Doc/howto/regex.rst:687 msgid "" @@ -1037,10 +1437,18 @@ msgid "" "once at a given location, they can obviously be matched an infinite number " "of times." msgstr "" +"Algunos de los metacarácteres restantes que se discutirán son :dfn:`zero-" +"width assertions`. No hacen que el motor avance a través de la cadena de " +"caracteres; en cambio, no consumen caracteres en absoluto y simplemente " +"tienen éxito o fracasan. Por ejemplo, ``\\b`` es una flag de que la posición " +"actual se encuentra en el límite de una palabra; la posición no cambia por " +"la ``\\b`` en absoluto. Esto significa que las aserciones de ancho cero " +"nunca deben repetirse, porque si coinciden una vez en una ubicación " +"determinada, obviamente pueden coincidir un número infinito de veces." #: ../Doc/howto/regex.rst:703 msgid "``|``" -msgstr "" +msgstr "``|``" #: ../Doc/howto/regex.rst:696 msgid "" @@ -1051,16 +1459,24 @@ msgid "" "``'Crow'`` or ``'Servo'``, not ``'Cro'``, a ``'w'`` or an ``'S'``, and " "``'ervo'``." msgstr "" +"Alternancia, o el operador \"or\". Si *A* y *B* son expresiones regulares, " +"``A|B`` coincidirá con cualquier cadena de caracteres que coincida con *A* o " +"*B*. ``|`` tiene una precedencia muy baja para que funcione razonablemente " +"cuando está alternando cadenas de varios caracteres. ``Crow|Servo`` " +"coincidirá con `'Crow'`` o ``'Servo'``, no ``'Cro'``, un ``'w'`` o un " +"``'S'``, y ``'ervo'``." #: ../Doc/howto/regex.rst:702 msgid "" "To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " "class, as in ``[|]``." msgstr "" +"Para hacer coincidir un literal ``'|'``, use ``\\|``, o enciérrelo dentro de " +"una clase de carácter, como en ``[|]``." #: ../Doc/howto/regex.rst:718 msgid "``^``" -msgstr "" +msgstr "``^``" #: ../Doc/howto/regex.rst:706 msgid "" @@ -1069,36 +1485,46 @@ msgid "" "`MULTILINE` mode, this also matches immediately after each newline within " "the string." msgstr "" +"Coincide con el comienzo de las líneas. A menos que se haya establecido la " +"flag :const:`MULTILINE` , esto solo coincidirá al principio de la cadena de " +"caracteres. En modo :const:`MULTILINE` , esto también coincide " +"inmediatamente después de cada nueva línea dentro de la cadena." #: ../Doc/howto/regex.rst:710 msgid "" "For example, if you wish to match the word ``From`` only at the beginning of " "a line, the RE to use is ``^From``. ::" msgstr "" +"Por ejemplo, si desea hacer coincidir la palabra ``From`` solo al principio " +"de una línea, la RE que debe usar es ``^From``. ::" #: ../Doc/howto/regex.rst:718 msgid "To match a literal ``'^'``, use ``\\^``." -msgstr "" +msgstr "Para una coincidencia literal ``'^'``, usar ``\\^``." #: ../Doc/howto/regex.rst:732 msgid "``$``" -msgstr "" +msgstr "``$``" #: ../Doc/howto/regex.rst:721 msgid "" "Matches at the end of a line, which is defined as either the end of the " "string, or any location followed by a newline character. ::" msgstr "" +"Coincide con el final de una línea, que se define como el final de la cadena " +"o cualquier ubicación seguida de un carácter de nueva línea. ::" #: ../Doc/howto/regex.rst:731 msgid "" "To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " "class, as in ``[$]``." msgstr "" +"Para hacer coincidir un literal ``'$'``, usar ``\\$`` o enciérrelo dentro de " +"una clase de carácter, como en ``[$]``." #: ../Doc/howto/regex.rst:738 msgid "``\\A``" -msgstr "" +msgstr "``\\A``" #: ../Doc/howto/regex.rst:735 msgid "" @@ -1108,18 +1534,23 @@ msgid "" "string, but ``^`` may match at any location inside the string that follows a " "newline character." msgstr "" +"Coincide solo al comienzo de la cadena de caracteres. Cuando no está en el " +"modo :const:`MULTILINE`,``\\A`` y ``^`` son efectivamente lo mismo. En el " +"modo :const:`MULTILINE`, son diferentes: ``\\A`` todavía coincide solo al " +"principio de la cadena, pero ``^`` puede coincidir en cualquier ubicación " +"dentro de la cadena de caracteres que sigue a un carácter de nueva línea." #: ../Doc/howto/regex.rst:741 msgid "``\\Z``" -msgstr "" +msgstr "``\\Z``" #: ../Doc/howto/regex.rst:741 msgid "Matches only at the end of the string." -msgstr "" +msgstr "Coincidencias solo al final de la cadena de caracteres." #: ../Doc/howto/regex.rst:776 msgid "``\\b``" -msgstr "" +msgstr "``\\b``" #: ../Doc/howto/regex.rst:744 msgid "" @@ -1128,12 +1559,18 @@ msgid "" "characters, so the end of a word is indicated by whitespace or a non-" "alphanumeric character." msgstr "" +"Límite de palabra. Esta es una aserción de ancho cero que coincide solo al " +"principio o al final de una palabra. Una palabra se define como una " +"secuencia de caracteres alfanuméricos, por lo que el final de una palabra se " +"indica mediante un espacio en blanco o un carácter no alfanumérico." #: ../Doc/howto/regex.rst:749 msgid "" "The following example matches ``class`` only when it's a complete word; it " "won't match when it's contained inside another word. ::" msgstr "" +"El siguiente ejemplo coincide con ``class`` solo cuando es una palabra " +"completa; no coincidirá cuando esté contenido dentro de otra palabra. ::" #: ../Doc/howto/regex.rst:760 msgid "" @@ -1145,6 +1582,15 @@ msgid "" "won't match as you expect it to. The following example looks the same as our " "previous RE, but omits the ``'r'`` in front of the RE string. ::" msgstr "" +"Hay dos sutilezas que debe recordar al usar esta secuencia especial. " +"Primero, esta es la peor colisión entre las cadenas literales de caracteres " +"de Python y las secuencias de expresiones regulares. En las cadenas de " +"caracteres literales de Python, ``\\b`` es el carácter de retroceso " +"(*backspace*), valor ASCII 8. Si no está utilizando cadenas de caracteres " +"sin procesar, Python convertirá la ``\\b`` en una linea de retroceso, y su " +"RE no lo hará coincidir como lo espera. El siguiente ejemplo tiene el mismo " +"aspecto que nuestra RE anterior, pero omite la ``'r'`` delante de la cadena " +"de caracteres de RE. ::" #: ../Doc/howto/regex.rst:774 msgid "" @@ -1152,20 +1598,25 @@ msgid "" "\\b`` represents the backspace character, for compatibility with Python's " "string literals." msgstr "" +"En segundo lugar, dentro de una clase de caracteres, donde no hay uso para " +"esta aserción, ``\\b`` representa el carácter de retroceso, por " +"compatibilidad con las cadenas de caracteres literales de Python." #: ../Doc/howto/regex.rst:781 msgid "``\\B``" -msgstr "" +msgstr "``\\B``" #: ../Doc/howto/regex.rst:779 msgid "" "Another zero-width assertion, this is the opposite of ``\\b``, only matching " "when the current position is not at a word boundary." msgstr "" +"Otra flag de ancho cero, esto es lo opuesto a ``\\b``, solo coincide cuando " +"la posición actual no está en el límite de una palabra." #: ../Doc/howto/regex.rst:784 msgid "Grouping" -msgstr "" +msgstr "Agrupando" #: ../Doc/howto/regex.rst:786 msgid "" @@ -1175,6 +1626,12 @@ msgid "" "of interest. For example, an RFC-822 header line is divided into a header " "name and a value, separated by a ``':'``, like this:" msgstr "" +"Con frecuencia, necesita obtener más información que solo si la RE coincide " +"o no. Las expresiones regulares se utilizan a menudo para diseccionar " +"cadenas de caracteres escribiendo una RE dividido en varios subgrupos que " +"coinciden con diferentes componentes de interés. Por ejemplo, una línea de " +"encabezado RFC-822 se divide en un nombre de encabezado y un valor, " +"separados por un ``':'``, así:" #: ../Doc/howto/regex.rst:799 msgid "" @@ -1182,6 +1639,9 @@ msgid "" "header line, and has one group which matches the header name, and another " "group which matches the header's value." msgstr "" +"Esto se puede manejar escribiendo una expresión regular que coincida con una " +"línea de encabezado completa y que tenga un grupo que coincida con el nombre " +"del encabezado y otro grupo que coincida con el valor del encabezado." #: ../Doc/howto/regex.rst:803 msgid "" @@ -1192,6 +1652,12 @@ msgid "" "+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " "repetitions of ``ab``. ::" msgstr "" +"Los grupos están marcados por los ``'('``, ``')'`` metacarácteres. ``'('`` y " +"``')'`` tienen el mismo significado que en las expresiones matemáticas; " +"agrupan las expresiones contenidas en ellos, y puedes repetir el contenido " +"de un grupo con un calificador repetitivo, como ``*``, ``+``, ``?``, o ``{m," +"n}``. Por ejemplo, ``(ab)*`` coincidirá con cero o más repeticiones de " +"``ab``. ::" #: ../Doc/howto/regex.rst:814 msgid "" @@ -1204,6 +1670,14 @@ msgid "" "we'll see how to express groups that don't capture the span of text that " "they match. ::" msgstr "" +"Los grupos indicados con ``'('``, ``')'`` también capturan el índice inicial " +"y final del texto que coinciden; esto se puede recuperar pasando un " +"argumento a :meth:`~re.Match.group`, :meth:`~re.Match.start`, :meth:`~re." +"Match.end`, y :meth:`~re.Match.span`. Los grupos se numeran empezando por 0. " +"El grupo 0 siempre está presente; es todo las RE, entonces todos los " +"métodos :ref:`match object ` tienen el grupo 0 como argumento " +"predeterminado. Más adelante veremos cómo expresar grupos que no capturan el " +"espacio de texto que coinciden. ::" #: ../Doc/howto/regex.rst:830 msgid "" @@ -1211,6 +1685,9 @@ msgid "" "nested; to determine the number, just count the opening parenthesis " "characters, going from left to right. ::" msgstr "" +"Los subgrupos están numerados de izquierda a derecha, de 1 en adelante. Los " +"grupos se pueden anidar; para determinar el número, simplemente cuente los " +"caracteres del paréntesis de apertura, de izquierda a derecha. ::" #: ../Doc/howto/regex.rst:843 msgid "" @@ -1218,12 +1695,18 @@ msgid "" "which case it will return a tuple containing the corresponding values for " "those groups. ::" msgstr "" +":meth:`~re.Match.group` se pueden pasar varios números de grupo a la vez, en " +"cuyo caso retornará una tupla que contiene los valores correspondientes para " +"esos grupos. ::" #: ../Doc/howto/regex.rst:849 msgid "" "The :meth:`~re.Match.groups` method returns a tuple containing the strings " "for all the subgroups, from 1 up to however many there are. ::" msgstr "" +"El método :meth:`~re.Match.groups` retorna una tupla que contiene las " +"cadenas de caracteres de todos los subgrupos, desde 1 hasta la cantidad que " +"haya. ::" #: ../Doc/howto/regex.rst:855 msgid "" @@ -1235,10 +1718,20 @@ msgid "" "including arbitrary characters in a string, so be sure to use a raw string " "when incorporating backreferences in a RE." msgstr "" +"Las referencias inversas en un patrón le permiten especificar que el " +"contenido de un grupo de captura anterior también debe encontrarse en la " +"ubicación actual en la cadena. Por ejemplo,``\\1`` tendrá éxito si el " +"contenido exacto del grupo 1 se puede encontrar en la posición actual y " +"falla en caso contrario. Recuerde que las cadenas de caracteres literales de " +"Python también usan una barra invertida seguida de números para permitir la " +"inclusión de caracteres arbitrarios en una cadena de caracteres, así que " +"asegúrese de usar una cadena de caracteres sin procesar al incorporar " +"referencias inversas en una RE." #: ../Doc/howto/regex.rst:863 msgid "For example, the following RE detects doubled words in a string. ::" msgstr "" +"Por ejemplo, la siguiente RE detecta palabras duplicadas en una cadena. ::" #: ../Doc/howto/regex.rst:869 msgid "" @@ -1247,10 +1740,14 @@ msgid "" "you'll soon find out that they're *very* useful when performing string " "substitutions." msgstr "" +"Las referencias inversas como esta no suelen ser útiles para buscar a través " +"de una cadena --- hay pocos formatos de texto que repiten datos de esta " +"manera --- pero pronto descubrirá que son *muy* útiles al realizar " +"sustituciones de cadenas de caracteres." #: ../Doc/howto/regex.rst:875 msgid "Non-capturing and Named Groups" -msgstr "" +msgstr "Grupos con nombre y sin captura" #: ../Doc/howto/regex.rst:877 msgid "" @@ -1260,6 +1757,12 @@ msgid "" "help with this problem. Both of them use a common syntax for regular " "expression extensions, so we'll look at that first." msgstr "" +"Las RE elaboradas pueden utilizar muchos grupos, tanto para capturar " +"subcadenas de caracteres de interés como para agrupar y estructurar la " +"propia RE. En las RE complejas, resulta difícil realizar un seguimiento de " +"los números de los grupos. Hay dos funciones que ayudan con este problema. " +"Ambos usan una sintaxis común para las extensiones de expresiones regulares, " +"así que veremos eso primero." #: ../Doc/howto/regex.rst:883 msgid "" @@ -1271,6 +1774,14 @@ msgid "" "expressions would be assuming that ``&`` was a regular character and " "wouldn't have escaped it by writing ``\\&`` or ``[&]``." msgstr "" +"Perl 5 es bien conocido por sus poderosas adiciones a las expresiones " +"regulares estándar. Para estas nuevas características, los desarrolladores " +"de Perl no podían elegir nuevos metacarácteres de una sola pulsación de " +"tecla o nuevas secuencias especiales que comienzan con ``\\`` sin hacer que " +"las expresiones regulares de Perl sean confusamente diferentes de las RE " +"estándar. Si eligieran ``&`` como un nuevo metacarácter, por ejemplo, las " +"expresiones antiguas supondrían que ``&`` era un carácter regular y no se " +"habría escapado escribiendo ``\\&`` o ``[&]``." #: ../Doc/howto/regex.rst:890 msgid "" @@ -1282,6 +1793,14 @@ msgid "" "positive lookahead assertion) and ``(?:foo)`` is something else (a non-" "capturing group containing the subexpression ``foo``)." msgstr "" +"La solución elegida por los desarrolladores de Perl fue utilizar ``(?...)`` " +"como sintaxis de extensión. ``?`` inmediatamente después de un paréntesis " +"había un error de sintaxis porque el ``?`` no tendría nada que repetir, por " +"lo que esto no introdujo ningún problema de compatibilidad. Los caracteres " +"inmediatamente después de ``?`` Indican qué extensión se está utilizando, " +"por lo que ``(?=foo)`` es una cosa (una flag de anticipación positiva) y " +"``(?:foo)`` es otra cosa (un grupo de no captura que contiene la " +"subexpresión ``foo``)." #: ../Doc/howto/regex.rst:898 msgid "" @@ -1289,12 +1808,18 @@ msgid "" "Perl's extension syntax. If the first character after the question mark is " "a ``P``, you know that it's an extension that's specific to Python." msgstr "" +"Python admite varias de las extensiones de Perl y agrega una sintaxis de " +"extensión a la sintaxis de extensión de Perl. Si el primer carácter después " +"del signo de interrogación es una ``P``, sabrá que es una extensión " +"específica de Python." #: ../Doc/howto/regex.rst:903 msgid "" "Now that we've looked at the general extension syntax, we can return to the " "features that simplify working with groups in complex REs." msgstr "" +"Ahora que hemos visto la sintaxis de la extensión general, podemos volver a " +"las características que simplifican el trabajo con grupos en RE complejos." #: ../Doc/howto/regex.rst:906 msgid "" @@ -1303,6 +1828,11 @@ msgid "" "can make this fact explicit by using a non-capturing group: ``(?:...)``, " "where you can replace the ``...`` with any other regular expression. ::" msgstr "" +"A veces querrá usar un grupo para denotar una parte de una expresión " +"regular, pero no está interesado en recuperar el contenido del grupo. Puede " +"hacer que este hecho sea explícito utilizando un grupo de no captura: " +"``(?:...)``, donde puede reemplazar el ``...`` con cualquier otra expresión " +"regular. ::" #: ../Doc/howto/regex.rst:918 msgid "" @@ -1316,12 +1846,24 @@ msgid "" "performance difference in searching between capturing and non-capturing " "groups; neither form is any faster than the other." msgstr "" +"Excepto por el hecho de que no puede recuperar el contenido de lo que " +"coincide con el grupo, un grupo que no captura se comporta exactamente igual " +"que un grupo que captura; puede poner cualquier cosa dentro de él, repetirlo " +"con un metacarácter de repetición como ``*`` y anidarlo dentro de otros " +"grupos (capturando o no capturando). ``(?:...)`` es particularmente útil " +"cuando se modifica un patrón existente, ya que puede agregar nuevos grupos " +"sin cambiar cómo se numeran todos los demás grupos. Cabe mencionar que no " +"hay diferencia de rendimiento en la búsqueda entre grupos de captura y no " +"captura; ninguna forma es más rápida que la otra." #: ../Doc/howto/regex.rst:927 msgid "" "A more significant feature is named groups: instead of referring to them by " "numbers, groups can be referenced by a name." msgstr "" +"Una característica más significativa son los grupos nombrados: en lugar de " +"referirse a ellos por números, los grupos pueden ser referenciados por un " +"nombre." #: ../Doc/howto/regex.rst:930 msgid "" @@ -1334,12 +1876,22 @@ msgid "" "still given numbers, so you can retrieve information about a group in two " "ways::" msgstr "" +"La sintaxis de un grupo con nombre es una de las extensiones específicas de " +"Python: ``(?P...)``. *name* es, obviamente, el nombre del grupo. Los " +"grupos con nombre se comportan exactamente como los grupos de captura y, " +"además, asocian un nombre con un grupo. Los métodos :ref:`match object " +"` que tratan con la captura de grupos aceptan enteros que se " +"refieren al grupo por número o cadenas de caracteres que contienen el nombre " +"del grupo deseado. Los grupos con nombre todavía reciben números, por lo que " +"puede recuperar información sobre un grupo de dos maneras:" #: ../Doc/howto/regex.rst:945 msgid "" "Additionally, you can retrieve named groups as a dictionary with :meth:`~re." "Match.groupdict`::" msgstr "" +"Además, puede recuperar grupos nombrados como un diccionario con :meth:`~re." +"Match.groupdict`::" #: ../Doc/howto/regex.rst:952 msgid "" @@ -1347,12 +1899,17 @@ msgid "" "instead of having to remember numbers. Here's an example RE from the :mod:" "`imaplib` module::" msgstr "" +"Los grupos con nombre son útiles porque le permiten usar nombres fáciles de " +"recordar, en lugar de tener que recordar números. Aquí hay un ejemplo de RE " +"del módulo :mod:`imaplib`::" #: ../Doc/howto/regex.rst:963 msgid "" "It's obviously much easier to retrieve ``m.group('zonem')``, instead of " "having to remember to retrieve group 9." msgstr "" +"Obviamente, es mucho más fácil recuperar ``m.group('zonem')``, en lugar de " +"tener que recordar recuperar el grupo 9." #: ../Doc/howto/regex.rst:966 msgid "" @@ -1364,10 +1921,17 @@ msgid "" "words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P\\w+)\\s" "+(?P=word)\\b``::" msgstr "" +"La sintaxis de las referencias inversas en una expresión como ``(...)\\1`` " +"se refiere al número del grupo. Naturalmente, existe una variante que usa el " +"nombre del grupo en lugar del número. Esta es otra extensión de Python: ``(?" +"P=name)`` indica que el contenido del grupo llamado *name* debe coincidir " +"nuevamente en el punto actual. La expresión regular para encontrar palabras " +"duplicadas, ``\\b(\\w+)\\s+\\1\\b`` también se puede escribir como ``\\b(?" +"P\\w+)\\s+(?P=word)\\b``::" #: ../Doc/howto/regex.rst:979 msgid "Lookahead Assertions" -msgstr "" +msgstr "Aserciones Anticipadas" #: ../Doc/howto/regex.rst:981 msgid "" @@ -1375,10 +1939,13 @@ msgid "" "assertions are available in both positive and negative form, and look like " "this:" msgstr "" +"Otra aserción de ancho cero es la aserción de anticipación. Las afirmaciones " +"anticipadas están disponibles tanto en forma positiva como negativa, y " +"tienen este aspecto:" #: ../Doc/howto/regex.rst:989 msgid "``(?=...)``" -msgstr "" +msgstr "``(?=...)``" #: ../Doc/howto/regex.rst:985 msgid "" @@ -1388,10 +1955,15 @@ msgid "" "tried, the matching engine doesn't advance at all; the rest of the pattern " "is tried right where the assertion started." msgstr "" +"Aserción de anticipación positiva. Esto tiene éxito si la expresión regular " +"contenida, representada aquí por ``...``, coincide con éxito en la ubicación " +"actual y falla en caso contrario. Pero, una vez que se ha probado la " +"expresión contenida, el motor de comparación no avanza en absoluto; el resto " +"del patrón se intenta justo donde comenzó la aserción." #: ../Doc/howto/regex.rst:994 msgid "``(?!...)``" -msgstr "" +msgstr "``(?!...)``" #: ../Doc/howto/regex.rst:992 msgid "" @@ -1399,6 +1971,9 @@ msgid "" "assertion; it succeeds if the contained expression *doesn't* match at the " "current position in the string." msgstr "" +"Aserción de anticipación negativa. Esto es lo opuesto a la flag positiva; " +"tiene éxito si la expresión contenida *no* coincide con la posición actual " +"en la cadena." #: ../Doc/howto/regex.rst:996 msgid "" @@ -1407,14 +1982,19 @@ msgid "" "name and an extension, separated by a ``.``. For example, in ``news.rc``, " "``news`` is the base name, and ``rc`` is the filename's extension." msgstr "" +"Para que esto sea concreto, veamos un caso en el que una búsqueda anticipada " +"es útil. Considere un patrón simple para hacer coincidir un nombre de " +"archivo y dividirlo en un nombre base y una extensión, separados por un ``." +"``. Por ejemplo, en ``news.rc``, ``news`` es el nombre base y ``rc`` es la " +"extensión del nombre del archivo." #: ../Doc/howto/regex.rst:1001 msgid "The pattern to match this is quite simple:" -msgstr "" +msgstr "El patrón para que coincida con esto es bastante simple:" #: ../Doc/howto/regex.rst:1003 msgid "``.*[.].*$``" -msgstr "" +msgstr "``.*[.].*$``" #: ../Doc/howto/regex.rst:1005 msgid "" @@ -1425,12 +2005,21 @@ msgid "" "expression matches ``foo.bar`` and ``autoexec.bat`` and ``sendmail.cf`` and " "``printers.conf``." msgstr "" +"Tenga en cuenta que el ``.`` Debe tratarse especialmente porque es un " +"metacarácter, por lo que está dentro de una clase de carácter para coincidir " +"solo con ese carácter específico. También observe el final ``$``; esto se " +"agrega para garantizar que todo el resto de la cadena deba incluirse en la " +"extensión. Esta expresión regular coincide con ``foo.bar`` y ``autoexec." +"bat`` y ``sendmail.cf`` y ``printers.conf``." #: ../Doc/howto/regex.rst:1012 msgid "" "Now, consider complicating the problem a bit; what if you want to match " "filenames where the extension is not ``bat``? Some incorrect attempts:" msgstr "" +"Ahora, considere complicar un poco el problema; ¿Qué sucede si desea hacer " +"coincidir los nombres de archivo donde la extensión no es ``bat``? Algunos " +"intentos incorrectos:" #: ../Doc/howto/regex.rst:1015 msgid "" @@ -1438,10 +2027,13 @@ msgid "" "requiring that the first character of the extension is not a ``b``. This is " "wrong, because the pattern also doesn't match ``foo.bar``." msgstr "" +"``.*[.][^b].*$`` El primer intento anterior intenta excluir ``bat`` " +"requiriendo que el primer carácter de la extensión no sea una ``b``. Esto " +"está mal, porque el patrón tampoco coincide ``foo.bar``." #: ../Doc/howto/regex.rst:1019 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" -msgstr "" +msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" #: ../Doc/howto/regex.rst:1021 msgid "" @@ -1453,10 +2045,17 @@ msgid "" "with a two-letter extension such as ``sendmail.cf``. We'll complicate the " "pattern again in an effort to fix it." msgstr "" +"La expresión se vuelve más desordenada cuando intenta parchear la primera " +"solución requiriendo que coincida uno de los siguientes casos: el primer " +"carácter de la extensión no es ``b``; el segundo carácter no es ``a``; o el " +"tercer carácter no es ``t``. Esto acepta ``foo.bar`` y rechaza ``autoexec." +"bat``, pero requiere una extensión de tres letras y no acepta un nombre de " +"archivo con una extensión de dos letras como ``sendmail.cf``. Complicaremos " +"el patrón nuevamente en un esfuerzo por arreglarlo." #: ../Doc/howto/regex.rst:1029 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" -msgstr "" +msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" #: ../Doc/howto/regex.rst:1031 msgid "" @@ -1464,6 +2063,9 @@ msgid "" "order to allow matching extensions shorter than three characters, such as " "``sendmail.cf``." msgstr "" +"En el tercer intento, la segunda y tercera letras se hacen opcionales para " +"permitir extensiones coincidentes de menos de tres caracteres, como " +"``sendmail.cf``." #: ../Doc/howto/regex.rst:1035 msgid "" @@ -1472,10 +2074,14 @@ msgid "" "``bat`` and ``exe`` as extensions, the pattern would get even more " "complicated and confusing." msgstr "" +"El patrón se está volviendo realmente complicado ahora, lo que dificulta su " +"lectura y comprensión. Peor aún, si el problema cambia y desea excluir tanto " +"``bat`` y ``exe`` como extensiones, el patrón se volvería aún más complicado " +"y confuso." #: ../Doc/howto/regex.rst:1040 msgid "A negative lookahead cuts through all this confusion:" -msgstr "" +msgstr "Una mirada anticipada negativa atraviesa toda esta confusión:" #: ../Doc/howto/regex.rst:1042 msgid "" @@ -1486,6 +2092,12 @@ msgid "" "starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that the " "pattern works when there are multiple dots in the filename." msgstr "" +"``.*[.](?!bat$)[^.]*$`` La búsqueda anticipada negativa significa: si la " +"expresión ``bat`` no coincide en este punto, pruebe el resto del patrón; si " +"``bat$`` coincide, todo el patrón fallará. El ``$`` final es necesario para " +"garantizar que se permita algo como ``sample.batch``, donde la extensión " +"solo comienza con ``bat``. El ``[^.]*`` asegura que el patrón funcione " +"cuando hay varios puntos en el nombre del archivo." #: ../Doc/howto/regex.rst:1049 msgid "" @@ -1493,14 +2105,17 @@ msgid "" "alternative inside the assertion. The following pattern excludes filenames " "that end in either ``bat`` or ``exe``:" msgstr "" +"Ahora es fácil excluir otra extensión de nombre de archivo; simplemente " +"agréguelo como una alternativa dentro de la aserción. El siguiente patrón " +"excluye los nombres de archivo que terminan en ``bat`` o ``exe``:" #: ../Doc/howto/regex.rst:1053 msgid "``.*[.](?!bat$|exe$)[^.]*$``" -msgstr "" +msgstr "``.*[.](?!bat$|exe$)[^.]*$``" #: ../Doc/howto/regex.rst:1057 msgid "Modifying Strings" -msgstr "" +msgstr "Modificando cadenas de caracteres" #: ../Doc/howto/regex.rst:1059 msgid "" @@ -1508,38 +2123,48 @@ msgid "" "Regular expressions are also commonly used to modify strings in various " "ways, using the following pattern methods:" msgstr "" +"Hasta este punto, simplemente hemos realizado búsquedas en una cadena de " +"caracteres estática. Las expresiones regulares también se utilizan " +"comúnmente para modificar cadenas de varias formas, utilizando los " +"siguientes métodos de patrón:" #: ../Doc/howto/regex.rst:1066 msgid "``split()``" -msgstr "" +msgstr "``split()``" #: ../Doc/howto/regex.rst:1066 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" +"Divida la cadena de caracteres en una lista, dividiéndola donde coincida la " +"RE" #: ../Doc/howto/regex.rst:1069 msgid "``sub()``" -msgstr "" +msgstr "``sub()``" #: ../Doc/howto/regex.rst:1069 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" msgstr "" +"Encuentra todas las subcadenas de caracteres donde coincida la RE y las " +"reemplaza con una cadena de caracteres diferente" #: ../Doc/howto/regex.rst:1072 msgid "``subn()``" -msgstr "" +msgstr "``subn()``" #: ../Doc/howto/regex.rst:1072 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" msgstr "" +"Hace lo mismo que :meth:`!sub`, pero retorna la nueva cadena de caracteres y " +"el número de reemplazos" #: ../Doc/howto/regex.rst:1079 msgid "Splitting Strings" -msgstr "" +msgstr "Separando cadenas de caracteres" #: ../Doc/howto/regex.rst:1081 msgid "" @@ -1550,6 +2175,13 @@ msgid "" "splitting by whitespace or by a fixed string. As you'd expect, there's a " "module-level :func:`re.split` function, too." msgstr "" +"El método :meth:`~re.Pattern.split` de un patrón que divide una cadena de " +"caracteres donde la RE coincide, retornando una lista de las piezas. Es " +"similar al método de cadenas de caracteres :meth:`~str.split` pero " +"proporciona mucha más generalidad en los delimitadores por los que puede " +"dividir; cadena de caracteres :meth:`!split` solo admite la división por " +"espacios en blanco o por una cadena fija. Como era de esperar, también hay " +"una función a nivel de módulo :func:`re.split`." #: ../Doc/howto/regex.rst:1092 msgid "" @@ -1558,6 +2190,10 @@ msgid "" "part of the resulting list. If *maxsplit* is nonzero, at most *maxsplit* " "splits are performed." msgstr "" +"Dividir *string* por las coincidencias de la expresión regular. Si se " +"utilizan paréntesis de captura en la RE, su contenido también se retornará " +"como parte de la lista resultante. Si *maxsplit* es distinto de cero, se " +"realizan como máximo divisiones *maxsplit* ." #: ../Doc/howto/regex.rst:1097 msgid "" @@ -1567,6 +2203,11 @@ msgid "" "the following example, the delimiter is any sequence of non-alphanumeric " "characters. ::" msgstr "" +"Puede limitar el número de divisiones realizadas, pasando un valor para " +"*maxsplit*. Cuando *maxsplit* es distinto de cero, se realizarán como máximo " +"*maxsplit* divisiones, y el resto de la cadena de caracteres se retorna como " +"el elemento final de la lista. En el siguiente ejemplo, el delimitador es " +"cualquier secuencia de caracteres no alfanuméricos. ::" #: ../Doc/howto/regex.rst:1109 msgid "" @@ -1575,16 +2216,22 @@ msgid "" "used in the RE, then their values are also returned as part of the list. " "Compare the following calls::" msgstr "" +"A veces, no solo le interesa cuál es el texto entre delimitadores, sino que " +"también necesita saber cuál era el delimitador. Si se utilizan paréntesis de " +"captura en la RE, sus valores también se retornan como parte de la lista. " +"Compare las siguientes llamadas:" #: ../Doc/howto/regex.rst:1121 msgid "" "The module-level function :func:`re.split` adds the RE to be used as the " "first argument, but is otherwise the same. ::" msgstr "" +"La función de nivel de módulo :func:`re.split` agrega la RE que se usará " +"como primer argumento, pero por lo demás es el mismo. ::" #: ../Doc/howto/regex.rst:1133 msgid "Search and Replace" -msgstr "" +msgstr "Búsqueda y Remplazo" #: ../Doc/howto/regex.rst:1135 msgid "" @@ -1593,6 +2240,10 @@ msgid "" "replacement value, which can be either a string or a function, and the " "string to be processed." msgstr "" +"Otra tarea común es encontrar todas las coincidencias para un patrón y " +"reemplazarlas con una cadena de caracteres diferente. El método :meth:`~re." +"Pattern.sub` toma un valor de reemplazo, que puede ser una cadena de " +"caracteres o una función, y la cadena de caracteres a procesar." #: ../Doc/howto/regex.rst:1142 msgid "" @@ -1600,6 +2251,10 @@ msgid "" "occurrences of the RE in *string* by the replacement *replacement*. If the " "pattern isn't found, *string* is returned unchanged." msgstr "" +"Retorna la cadena de caracteres obtenida al reemplazar las apariciones no " +"superpuestas del extremo izquierdo de la RE en *string* por el remplazo " +"*replacement*. Si no se encuentra el patrón, el *string* se retorna sin " +"cambios." #: ../Doc/howto/regex.rst:1146 msgid "" @@ -1607,12 +2262,17 @@ msgid "" "to be replaced; *count* must be a non-negative integer. The default value " "of 0 means to replace all occurrences." msgstr "" +"El argumento opcional *count* es el número máximo de ocurrencias de patrones " +"que se reemplazarán; *count* debe ser un número entero no negativo. El valor " +"predeterminado de 0 significa reemplazar todas las ocurrencias." #: ../Doc/howto/regex.rst:1150 msgid "" "Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " "replaces colour names with the word ``colour``::" msgstr "" +"Aquí hay un ejemplo simple del uso del método :meth:`~re.Pattern.sub`. " +"Reemplaza los nombres de los colores con la palabra ``colour``::" #: ../Doc/howto/regex.rst:1159 msgid "" @@ -1620,12 +2280,17 @@ msgid "" "tuple containing the new string value and the number of replacements that " "were performed::" msgstr "" +"El método :meth:`~re.Pattern.subn` hace el mismo trabajo, pero retorna una " +"tupla de 2 que contiene el nuevo valor de cadena de caracteres y el número " +"de reemplazos que se realizaron::" #: ../Doc/howto/regex.rst:1168 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "empty match. ::" msgstr "" +"Las coincidencias vacías se reemplazan solo cuando no son adyacentes a una " +"coincidencia vacía anterior. ::" #: ../Doc/howto/regex.rst:1175 msgid "" @@ -1637,12 +2302,21 @@ msgid "" "incorporate portions of the original text in the resulting replacement " "string." msgstr "" +"Si *replacement* es una cadena, se procesan los escapes de barra invertida " +"que contenga. Es decir, ``\\n`` se convierte en un solo carácter de nueva " +"línea, ``\\r`` se convierte en una REtorno de carro, y así sucesivamente. " +"Los escapes desconocidos como ``\\&`` se dejan en paz. Las referencias " +"inversas, como ``\\6``, se reemplazan con la subcadena de caracteres que " +"coincide con el grupo correspondiente a la RE. Esto le permite incorporar " +"partes del texto original en la cadena de reemplazo resultante." #: ../Doc/howto/regex.rst:1182 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" msgstr "" +"Este ejemplo hace coincidir la palabra ``section`` seguida de una cadena " +"encerrada entre ``{``, ``}``, y cambia ``section`` a ``subsection``::" #: ../Doc/howto/regex.rst:1189 msgid "" @@ -1655,6 +2329,15 @@ msgid "" "literal character ``'0'``.) The following substitutions are all equivalent, " "but use all three variations of the replacement string. ::" msgstr "" +"También hay una sintaxis para hacer referencia a grupos con nombre según lo " +"definido por la sintaxis ``(?P…)``syntax. ``\\g`` usará la " +"subcadena de caracteres que coincide con el grupo llamado ``name``, y ``" +"\\g`` usa el número de grupo correspondiente. ``\\g<2>`` es " +"equivalente a ``\\2``, pero no es ambiguo en una cadena de reemplazo como ``" +"\\g<2>0``. (``\\20`` se interpretaría como una referencia al grupo 20, no " +"como una referencia al grupo 2 seguido del carácter literal ``'0'``.) Las " +"siguientes sustituciones son todas equivalentes, pero use las tres " +"variaciones de la cadena de reemplazo. ::" #: ../Doc/howto/regex.rst:1206 msgid "" @@ -1664,12 +2347,20 @@ msgid "" "a :ref:`match object ` argument for the match and can use " "this information to compute the desired replacement string and return it." msgstr "" +"*replacement* también puede ser una función, lo que le brinda aún más " +"control. Si *replacement* es una función, la función se llama para cada " +"ocurrencia no superpuesta de *pattern*. En cada llamada, a la función se le " +"pasa un argumento :ref:`match object ` para la coincidencia y " +"puede usar esta información para calcular la cadena de reemplazo deseada y " +"retornarla." #: ../Doc/howto/regex.rst:1212 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" msgstr "" +"En el siguiente ejemplo, la función de reemplazo traduce decimales a " +"hexadecimales::" #: ../Doc/howto/regex.rst:1224 msgid "" @@ -1680,10 +2371,16 @@ msgid "" "pattern string, e.g. ``sub(\"(?i)b+\", \"x\", \"bbbb BBBB\")`` returns ``'x " "x'``." msgstr "" +"Cuando se usa la función *module-level* :func:`re.sub`, el patrón se pasa " +"como primer argumento. El patrón puede proporcionarse como un objeto o como " +"una cuerda; Si necesita especificar marcas de expresión regular, debe usar " +"un objeto de patrón como primer parámetro o usar modificadores incrustados " +"en la cadena de patrón, por ejemplo ``sub(\"(?i)b+\", \"x\", \"bbbb BBBB" +"\")`` retorna ``'x x'``." #: ../Doc/howto/regex.rst:1232 msgid "Common Problems" -msgstr "" +msgstr "Problemas comunes" #: ../Doc/howto/regex.rst:1234 msgid "" @@ -1692,10 +2389,14 @@ msgid "" "you may expect them to. This section will point out some of the most common " "pitfalls." msgstr "" +"Las expresiones regulares son una herramienta poderosa para algunas " +"aplicaciones, pero de alguna manera su comportamiento no es intuitivo y, a " +"veces, no se comportan de la forma esperada. Esta sección señalará algunos " +"de los errores más comunes." #: ../Doc/howto/regex.rst:1240 msgid "Use String Methods" -msgstr "" +msgstr "Uso de métodos de cadenas de caracteres" #: ../Doc/howto/regex.rst:1242 msgid "" @@ -1708,6 +2409,15 @@ msgid "" "for the purpose, instead of the large, more generalized regular expression " "engine." msgstr "" +"A veces, usar el módulo :mod:`re` es un error. Si está haciendo coincidir " +"una cadena de caracteres fija, o una clase de un solo caracter, y no está " +"usando ninguna característica :mod:`re` como la marca :const:`~re." +"IGNORECASE`, entonces todo el poder de las expresiones regulares puede que " +"no sea necesario. Las cadenas tienen varios métodos para realizar " +"operaciones con cadenas fijas y, por lo general, son mucho más rápidas, " +"porque la implementación es un único bucle C pequeño que se ha optimizado " +"para este propósito, en lugar del motor de expresión regular más grande y " +"generalizado." #: ../Doc/howto/regex.rst:1250 msgid "" @@ -1721,6 +2431,15 @@ msgid "" "``word`` have a word boundary on either side. This takes the job beyond :" "meth:`!replace`'s abilities.)" msgstr "" +"Un ejemplo podría ser reemplazar una sola cadena fija por otra; por ejemplo, " +"puede reemplazar ``word`` por ``deed``. :func:`re.sub` parece la función a " +"utilizar para esto, pero considere el método :meth:`~str.replace`. Tenga en " +"cuenta que :meth:`!replace` también reemplazará ``word`` dentro de las " +"palabras, convirtiendo ``swordfish`` en ``sdeedfish``, pero la RE naíf " +"``word`` también lo habría hecho. (Para evitar realizar la sustitución en " +"partes de palabras, el patrón tendría que ser ``\\bword\\b``, para requerir " +"que ``word`` tenga un límite de palabra en cada lado. Esto lleva el trabajo " +"más allá de las habilidades de :meth:`!replace`.)" #: ../Doc/howto/regex.rst:1259 msgid "" @@ -1730,16 +2449,23 @@ msgid "" "capable of doing both tasks and will be faster than any regular expression " "operation can be." msgstr "" +"Otra tarea común es eliminar cada aparición de un solo carácter de una " +"cadena o reemplazarlo con otro solo carácter. Puede hacer esto con algo como " +"``re.sub('\\n', ' ', S)``, pero :meth:`~str.translate` es capaz de realizar " +"ambas tareas y será más rápido que cualquier expresión regular la operación " +"puede ser." #: ../Doc/howto/regex.rst:1265 msgid "" "In short, before turning to the :mod:`re` module, consider whether your " "problem can be solved with a faster and simpler string method." msgstr "" +"En resumen, antes de pasar al módulo :mod:`re`, considere si su problema " +"puede resolverse con un método de cadena de caracteres más rápido y simple." #: ../Doc/howto/regex.rst:1270 msgid "match() versus search()" -msgstr "" +msgstr "*match() versus search()*" #: ../Doc/howto/regex.rst:1272 msgid "" @@ -1750,12 +2476,20 @@ msgid "" "start at 0; if the match wouldn't start at zero, :func:`!match` will *not* " "report it. ::" msgstr "" +"La función :func:`~re.match` solo verifica si la RE coincide con el comienzo " +"de la cadena de caracteres, mientras que :func:`~re.search` buscará una " +"coincidencia en la cadena de caracteres. Es importante tener en cuenta esta " +"distinción. Recuerde :func:`!match` solo informará una coincidencia exitosa " +"que comenzará en 0; si la coincidencia no comienza en cero, :func:`!match` " +"*no* lo informará. ::" #: ../Doc/howto/regex.rst:1283 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" msgstr "" +"Por otro lado, :func:`~re.search` escaneará hacia adelante a través de la " +"cadena de caracteres, informando la primera coincidencia que encuentre. ::" #: ../Doc/howto/regex.rst:1291 msgid "" @@ -1768,6 +2502,15 @@ msgid "" "analysis lets the engine quickly scan through the string looking for the " "starting character, only trying the full match if a ``'C'`` is found." msgstr "" +"A veces, tendrá la tentación de seguir usando :func:`re.match`, y " +"simplemente agregar ``.*`` al frente de su RE. Resista esta tentación y use :" +"func:`re.search` en su lugar. El compilador de expresiones regulares realiza " +"un análisis de las RE para acelerar el proceso de búsqueda de coincidencias. " +"Uno de esos análisis determina cuál debe ser el primer carácter de una " +"coincidencia; por ejemplo, un patrón que comienza con ``Crow`` debe " +"coincidir con una ``'C'``.El análisis permite que el motor escanee " +"rápidamente a través de la cadena en busca del carácter inicial, solo " +"probando la coincidencia completa si se encuentra una ``'C'``." #: ../Doc/howto/regex.rst:1300 msgid "" @@ -1775,10 +2518,13 @@ msgid "" "the string and then backtracking to find a match for the rest of the RE. " "Use :func:`re.search` instead." msgstr "" +"Agregar ``.*`` anula esta optimización, lo que requiere escanear hasta el " +"final de la cadena y luego retroceder para encontrar una coincidencia para " +"el resto de la RE. Utilice :func:`re.search` en su lugar." #: ../Doc/howto/regex.rst:1306 msgid "Greedy versus Non-Greedy" -msgstr "" +msgstr "Codiciosa versus no codiciosa (*Greedy versus Non-Greedy*)" #: ../Doc/howto/regex.rst:1308 msgid "" @@ -1788,6 +2534,12 @@ msgid "" "brackets surrounding an HTML tag. The naive pattern for matching a single " "HTML tag doesn't work because of the greedy nature of ``.*``. ::" msgstr "" +"Al repetir una expresión regular, como en ``a*``, la acción resultante es " +"consumir la mayor cantidad posible del patrón. Este hecho suele molestarle " +"cuando intenta hacer coincidir un par de delimitadores equilibrados, como " +"los corchetes angulares que rodean una etiqueta HTML. El patrón ingenuo para " +"hacer coincidir una sola etiqueta HTML no funciona debido a la naturaleza " +"codiciosa de ``.*``. ::" #: ../Doc/howto/regex.rst:1322 msgid "" @@ -1798,6 +2550,13 @@ msgid "" "The final match extends from the ``'<'`` in ``''`` to the ``'>'`` in " "``''``, which isn't what you want." msgstr "" +"La RE coincide con el ``'<'`` en ``''``, y el ``.*`` consume el resto " +"de la cadena de caracteres. Sin embargo, aún queda más en la RE y el ``>`` " +"no puede coincidir al final de la cadena de caracteres, por lo que el motor " +"de la expresión regular tiene que retroceder carácter por carácter hasta que " +"encuentre una coincidencia para el ``>``. La coincidencia final se extiende " +"desde el `'<'`` en ``''`` al ``'>'`` en ``''``, que no es lo " +"que queremos." #: ../Doc/howto/regex.rst:1329 msgid "" @@ -1807,6 +2566,12 @@ msgid "" "matches, and when it fails, the engine advances a character at a time, " "retrying the ``'>'`` at every step. This produces just the right result::" msgstr "" +"En este caso, la solución es utilizar los calificadores no codiciosos ``*?" +"``, ``+?``, ``??``, o ``{m,n}?``, Que coinciden como *poco* texto como sea " +"posible. En el ejemplo anterior, el ``'>'`` se prueba inmediatamente después " +"de las primeras coincidencias ``'<'``, y cuando falla, el motor avanza un " +"carácter a la vez, volviendo a intentar el ``'>'`` en cada paso. Esto " +"produce el resultado correcto:" #: ../Doc/howto/regex.rst:1338 msgid "" @@ -1817,10 +2582,16 @@ msgid "" "patterns will be *very* complicated. Use an HTML or XML parser module for " "such tasks.)" msgstr "" +"(Tenga en cuenta que analizar HTML o XML con expresiones regulares es " +"doloroso. Los patrones rápidos y sucios manejarán casos comunes, pero HTML y " +"XML tienen casos especiales que romperán la expresión regular obvia; para " +"cuando haya escrito una expresión regular que maneja todos los casos " +"posibles, los patrones serán *muy* complicados. Utilice un módulo analizador " +"HTML o XML para tales tareas.)" #: ../Doc/howto/regex.rst:1346 msgid "Using re.VERBOSE" -msgstr "" +msgstr "Usando re.VERBOSE" #: ../Doc/howto/regex.rst:1348 msgid "" @@ -1829,6 +2600,10 @@ msgid "" "become lengthy collections of backslashes, parentheses, and metacharacters, " "making them difficult to read and understand." msgstr "" +"Probablemente ya haya notado que las expresiones regulares son una notación " +"muy compacta, pero no son muy legibles. Las RE de complejidad moderada " +"pueden convertirse en largas colecciones de barras invertidas, paréntesis y " +"metacarácteres, lo que dificulta su lectura y comprensión." #: ../Doc/howto/regex.rst:1353 msgid "" @@ -1836,6 +2611,9 @@ msgid "" "regular expression can be helpful, because it allows you to format the " "regular expression more clearly." msgstr "" +"Para tales RE, especificar el flag :const:`re.VERBOSE` al compilar la " +"expresión regular puede ser útil, porque le permite formatear la expresión " +"regular con mayor claridad." #: ../Doc/howto/regex.rst:1357 msgid "" @@ -1847,14 +2625,24 @@ msgid "" "extend from a ``#`` character to the next newline. When used with triple-" "quoted strings, this enables REs to be formatted more neatly::" msgstr "" +"La flag ``re.VERBOSE`` tiene varios efectos. Los espacios en blanco en la " +"expresión regular que *no están* dentro de una clase de caracteres se " +"ignoran. Esto significa que una expresión como ``dog | cat`` es equivalente " +"al menos legible ``dog | cat``, pero ``[a b]`` seguirá coincidiendo con los " +"caracteres ``'a'``, ``'b'`` o un espacio. Además, también puede poner " +"comentarios dentro de una RE; los comentarios se extienden desde un carácter " +"``#`` hasta la siguiente línea nueva. Cuando se usa con cadenas entre " +"comillas triples, esto permite que las REs sean formateados de manera más " +"ordenada:" #: ../Doc/howto/regex.rst:1374 msgid "This is far more readable than::" -msgstr "" +msgstr "Esto es mas legible que::" #: ../Doc/howto/regex.rst:1380 +#, fuzzy msgid "Feedback" -msgstr "" +msgstr "Sus comentarios" #: ../Doc/howto/regex.rst:1382 msgid "" @@ -1863,6 +2651,9 @@ msgid "" "encountered that weren't covered here? If so, please send suggestions for " "improvements to the author." msgstr "" +"Las expresiones regulares son un tema complicado. ¿Le ayudó este documento a " +"comprenderlas? ¿Hubo partes que no estaban claras o problemas que encontró " +"que no se trataron aquí? Si es así, envíe sugerencias de mejora al autor." #: ../Doc/howto/regex.rst:1387 msgid "" @@ -1874,3 +2665,10 @@ msgid "" "edition covered Python's now-removed :mod:`!regex` module, which won't help " "you much.) Consider checking it out from your library." msgstr "" +"El libro más completo sobre expresiones regulares es casi con certeza " +"*Mastering Regular Expressions de Jeffrey Friedl*, publicado por *O'Reilly*. " +"Desafortunadamente, se concentra exclusivamente en los tipos de expresiones " +"regulares de Perl y Java, y no contiene ningún material de Python, por lo " +"que no será útil como referencia para la programación en Python. (La primera " +"edición cubría el módulo :mod:`!regex` de Python, ahora eliminado, que no le " +"ayudará mucho.) Considere sacarlo de su biblioteca." diff --git a/library/__main__.po b/library/__main__.po index dfe1fcaa0b..c99f0e5503 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -1,25 +1,27 @@ # 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-01-08 10:21-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/__main__.rst:3 msgid ":mod:`__main__` --- Top-level script environment" -msgstr "" +msgstr ":mod:`__main__` --- Entorno de script del nivel superior" #: ../Doc/library/__main__.rst:10 msgid "" @@ -27,6 +29,10 @@ msgid "" "module's __name__ is set equal to ``'__main__'`` when read from standard " "input, a script, or from an interactive prompt." msgstr "" +"``'__main__'`` es el nombre del ámbito en el que se ejecuta el código de " +"nivel superior. El atributo __name__ de un módulo se establece igual a " +"``'__main__'`` cuando se lee desde una entrada estándar, un script o un " +"prompt interactivo." #: ../Doc/library/__main__.rst:14 msgid "" @@ -35,6 +41,10 @@ msgid "" "executing code in a module when it is run as a script or with ``python -m`` " "but not when it is imported::" msgstr "" +"Un módulo puede descubrir si se está ejecutando o no en el ámbito principal " +"al verificar su propio ``__name__``, lo cual permite un idioma común para " +"ejecutar código condicionalmente en un modulo cuando este se ejecuta como un " +"script o con ``python -m`` pero no cuando este es importado::" #: ../Doc/library/__main__.rst:23 msgid "" @@ -42,3 +52,6 @@ msgid "" "py`` module, the contents of which will be executed when the module is run " "with ``-m``." msgstr "" +"Para un paquete, se puede lograr el mismo efecto incluyendo un modulo " +"``__main__.py``, cuyo contenido se ejecutara cuando el modulo se ejecute con " +"``-m``." diff --git a/library/_dummy_thread.po b/library/_dummy_thread.po index ab9b8ec3a1..c7c7f69d84 100644 --- a/library/_dummy_thread.po +++ b/library/_dummy_thread.po @@ -1,36 +1,40 @@ # 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: 2020-10-19 13:19-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: José Luis Salgado Banda\n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/_dummy_thread.rst:2 msgid "" ":mod:`_dummy_thread` --- Drop-in replacement for the :mod:`_thread` module" -msgstr "" +msgstr ":mod:`_dummy_thread`--- Remplazo directo para el módulo :mod:`_thread`" #: ../Doc/library/_dummy_thread.rst:7 msgid "**Source code:** :source:`Lib/_dummy_thread.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/_dummy_thread.py`" #: ../Doc/library/_dummy_thread.rst:9 msgid "" "Python now always has threading enabled. Please use :mod:`_thread` (or, " "better, :mod:`threading`) instead." msgstr "" +"Ahora Python siempre tiene el hilado (*threading*) activado. Por favor, " +"utilice en su lugar :mod:`_thread` (o, mejor, :mod:`threading`)." #: ../Doc/library/_dummy_thread.rst:15 msgid "" @@ -38,6 +42,9 @@ msgid "" "was meant to be imported when the :mod:`_thread` module was not provided on " "a platform." msgstr "" +"Este módulo proporciona una interfaz duplicada al módulo :mod:`_thread`. " +"Estaba destinado a ser importado cuando el módulo :mod:`_thread` no fuera " +"proporcionado en una plataforma." #: ../Doc/library/_dummy_thread.rst:19 msgid "" @@ -45,3 +52,6 @@ msgid "" "being created that blocks waiting for another thread to be created. This " "often occurs with blocking I/O." msgstr "" +"Tenga cuidado de no usar este módulo donde pueda ocurrir un bloqueo mutuo " +"debido a la creación de un hilo que bloquee la espera de crear otro hilo. " +"Esto sucede a menudo con el bloqueo de E/S." diff --git a/library/aifc.po b/library/aifc.po index 75c51519e1..b6742a43e8 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -1,29 +1,31 @@ # 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: 2020-12-20 21:43-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/aifc.rst:2 msgid ":mod:`aifc` --- Read and write AIFF and AIFC files" -msgstr "" +msgstr ":mod:`aifc` — Lee y escribe archivos AIFF y AIFC" #: ../Doc/library/aifc.rst:7 msgid "**Source code:** :source:`Lib/aifc.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/aifc.py`" #: ../Doc/library/aifc.rst:16 msgid "" @@ -32,6 +34,11 @@ msgid "" "samples in a file. AIFF-C is a newer version of the format that includes " "the ability to compress the audio data." msgstr "" +"Este módulo provee soporte para la lectura y escritura de archivos AIFF y " +"AIFF-C. AIFF son las siglas de Formato de Intercambio de Archivos de Audio " +"(*Audio Interchange File Format*), un formato para almacenar muestras de " +"audio digital en un archivo. AIFF-C es una nueva versión del formato que " +"incluye la habilidad de comprimir los datos de audio." #: ../Doc/library/aifc.rst:21 msgid "" @@ -43,6 +50,14 @@ msgid "" "samplesize`` bytes, and a second's worth of audio consists of ``nchannels * " "samplesize * framerate`` bytes." msgstr "" +"Los archivos de audio tienen una serie de parámetros que describen los datos " +"de audio. La tasa de muestreo o tasa de fotogramas se refiere a la cantidad " +"de veces por segundo que se toman muestras del sonido. El número de canales " +"indica si el audio es mono, estéreo o cuadrafónico. Cada fotograma está " +"compuesto de una muestra por canal. El tamaño de la muestra es el tamaño en " +"bytes de cada muestra. De esta manera, un fotograma está formado por " +"``nchannels * samplesize`` bytes, y un segundo de audio está formado por " +"``nchannels * samplesize * framerate`` bytes." #: ../Doc/library/aifc.rst:29 msgid "" @@ -51,10 +66,15 @@ msgid "" "gives a frame size of 4 bytes (2\\*2), and a second's worth occupies " "2\\*2\\*44100 bytes (176,400 bytes)." msgstr "" +"Por ejemplo, el audio de calidad de CD tiene un tamaño de muestreo de 2 " +"bytes (16 bits), usa dos canales (estéreo) y tiene una tasa de fotogramas de " +"44.100 fotogramas/segundo. Esto da como resultado un tamaño del fotograma de " +"4 bytes (2\\*2), y un segundo de audio en esta calidad ocupa 2\\*2\\*44.100 " +"bytes (176.400 bytes)." #: ../Doc/library/aifc.rst:34 msgid "Module :mod:`aifc` defines the following function:" -msgstr "" +msgstr "El módulo :mod:`aifc` define a la siguiente función:" #: ../Doc/library/aifc.rst:39 msgid "" @@ -69,38 +89,56 @@ msgid "" "func:`.open` function may be used in a :keyword:`with` statement. When the :" "keyword:`!with` block completes, the :meth:`~aifc.close` method is called." msgstr "" +"Abre un archivo AIFF o AIFF-C y retorna una instancia de objeto con los " +"métodos descriptos más abajo. El argumento *file* puede ser tanto una cadena " +"de caracteres nombrando a un archivo como un :term:`file object`. *mode* " +"debe ser ``'r'`` o ``'rb'`` cuando el archivo sea abierto para lectura, o " +"``'w'`` o ``'wb'`` cuando lo sea para escritura. Si este argumento se omite, " +"se usará ``file.mode`` si es que existe; en caso contrario se usará " +"``'rb'`` . Cuando se use para escribir el objeto archivo deberá ser " +"\"buscable\" (*seekable*), a menos que se sepa por adelantado cuántas " +"muestras se escribirán en total y use :meth:`writeframesraw` and :meth:" +"`setnframes`. La función :func:`.open` se puede usar dentro de una " +"sentencia :keyword:`with`. Cuando el bloque :keyword:`!with` se complete, se " +"invocará al método :meth:`~aifc.close`." #: ../Doc/library/aifc.rst:50 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "Se agregó soporte para las sentencias :keyword:`with`." #: ../Doc/library/aifc.rst:53 msgid "" "Objects returned by :func:`.open` when a file is opened for reading have the " "following methods:" msgstr "" +"Los objetos que retorna :func:`.open` cuando un archivo es abierto para " +"lectura contienen los siguientes métodos:" #: ../Doc/library/aifc.rst:59 msgid "Return the number of audio channels (1 for mono, 2 for stereo)." -msgstr "" +msgstr "Retorna el número de canales de audio (1 para mono, 2 para estéreo)." #: ../Doc/library/aifc.rst:64 msgid "Return the size in bytes of individual samples." -msgstr "" +msgstr "Retorna el tamaño en bytes de cada muestra." #: ../Doc/library/aifc.rst:69 msgid "Return the sampling rate (number of audio frames per second)." msgstr "" +"Retorna la tasa de muestreo (cantidad de fotogramas de audio por segundo)." #: ../Doc/library/aifc.rst:74 msgid "Return the number of audio frames in the file." -msgstr "" +msgstr "Retorna el número de fotogramas de audio en el archivo." #: ../Doc/library/aifc.rst:79 msgid "" "Return a bytes array of length 4 describing the type of compression used in " "the audio file. For AIFF files, the returned value is ``b'NONE'``." msgstr "" +"Retorna un arreglo de bytes de longitud 4 que describe el tipo de compresión " +"usada en el archivo de audio. Para archivos AIFF, el valor que retorna es " +"``b’NONE’``." #: ../Doc/library/aifc.rst:86 msgid "" @@ -108,13 +146,20 @@ msgid "" "of compression used in the audio file. For AIFF files, the returned value " "is ``b'not compressed'``." msgstr "" +"Retorna un arreglo de bytes con una descripción legible para humanos del " +"tipo de compresión usada en el archivo de audio. Para archivos AIFF, el " +"valor que retorna es ``b’not compressed’`` (no comprimido)." +# ‘output’ lo traduje como ‘salida’. O corresponde usar ‘retorno’? #: ../Doc/library/aifc.rst:93 msgid "" "Returns a :func:`~collections.namedtuple` ``(nchannels, sampwidth, " "framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" "`get\\*` methods." msgstr "" +"Retorna una tupla nombrada :func:`~collections.namedtuple` ``(nchannels, " +"sampwidth, framerate, nframes, comptype, compname)``, equivalente a la " +"salida de los métodos :meth:`get\\*`." #: ../Doc/library/aifc.rst:100 msgid "" @@ -123,12 +168,19 @@ msgid "" "mark position in frames from the beginning of the data (an integer), the " "third is the name of the mark (a string)." msgstr "" +"Retorna una lista de los marcadores en el archivo de audio. Un marcador " +"consiste de una tupla de tres elementos. El primero es el identificador de " +"marca (*mark ID*, un número entero); el segundo es la posición de la marca, " +"en fotogramas, desde el comienzo de los datos (un número entero); el tercero " +"es el nombre de la marca (una cadena de caracteres)." #: ../Doc/library/aifc.rst:108 msgid "" "Return the tuple as described in :meth:`getmarkers` for the mark with the " "given *id*." msgstr "" +"Retorna una tupla tal como se describe en :meth:`getmarkers` para la marca " +"con el *id* dado." #: ../Doc/library/aifc.rst:114 msgid "" @@ -136,26 +188,33 @@ msgid "" "data is a string containing for each frame the uncompressed samples of all " "channels." msgstr "" +"Lee y retorna los *nframes* fotogramas siguientes del archivo de audio. Los " +"datos los retorna como una cadena de caracteres que contiene, por cada " +"fotograma, las muestras sin comprimir de todos los canales." #: ../Doc/library/aifc.rst:121 msgid "" "Rewind the read pointer. The next :meth:`readframes` will start from the " "beginning." msgstr "" +"Rebobina el puntero de lectura. La próxima ejecución de :meth:`readframes` " +"comenzará desde el comienzo del archivo." #: ../Doc/library/aifc.rst:127 msgid "Seek to the specified frame number." -msgstr "" +msgstr "Busca el número de fotograma especificado." #: ../Doc/library/aifc.rst:132 msgid "Return the current frame number." -msgstr "" +msgstr "Retorna el número de fotograma actual." #: ../Doc/library/aifc.rst:137 msgid "" "Close the AIFF file. After calling this method, the object can no longer be " "used." msgstr "" +"Cierra el archivo AIFF. Después de invocar este método, el objeto no puede " +"usarse más." #: ../Doc/library/aifc.rst:140 msgid "" @@ -166,6 +225,13 @@ msgid "" "Before the first :meth:`writeframes` or :meth:`writeframesraw`, all " "parameters except for the number of frames must be filled in." msgstr "" +"Cuando un archivo se abre para escritura, los objetos que retorna :func:`." +"open` poseen todos los métodos mencionados más arriba, excepto :meth:" +"`readframes` y :meth:`setpos`. Adicionalmente se incluyen los métodos abajo " +"descriptos. Los métodos :meth:`get\\*` sólo pueden ser invocados después de " +"haber invocado su correspondiente método :meth:`set\\*`. Antes de invocar " +"por primera vez :meth:`writeframes` o :meth:`writeframesraw`, todos los " +"parámetros -excepto el número de fotogramas- deben estar completos." #: ../Doc/library/aifc.rst:150 msgid "" @@ -173,6 +239,9 @@ msgid "" "the name of the file ends in ``'.aiff'`` in which case the default is an " "AIFF file." msgstr "" +"Crea un archivo AIFF. Por defecto se crea un archivo AIFF-C, excepto que el " +"nombre del archivo termine en ``'.aiff'``, en cuyo caso se creará un archivo " +"AIFF." #: ../Doc/library/aifc.rst:156 msgid "" @@ -180,18 +249,21 @@ msgid "" "unless the name of the file ends in ``'.aiff'`` in which case the default is " "an AIFF file." msgstr "" +"Crea un archivo AIFF-C. La acción por defecto es que cree un archivo AIFF-C, " +"excepto que el nombre del archivo termine en ``'.aiff'``, en cuyo caso se " +"crea por defecto un archivo AIFF." #: ../Doc/library/aifc.rst:163 msgid "Specify the number of channels in the audio file." -msgstr "" +msgstr "Especifica el número de canales en el archivo de audio." #: ../Doc/library/aifc.rst:168 msgid "Specify the size in bytes of audio samples." -msgstr "" +msgstr "Especifica el tamaño en bytes de las muestras de audio." #: ../Doc/library/aifc.rst:173 msgid "Specify the sampling frequency in frames per second." -msgstr "" +msgstr "Especifica la frecuencia de muestreo en fotogramas por segundo." #: ../Doc/library/aifc.rst:178 msgid "" @@ -199,6 +271,9 @@ msgid "" "this parameter is not set, or not set correctly, the file needs to support " "seeking." msgstr "" +"Especifica el número de fotogramas que se escribirán en el archivo de audio. " +"Si este parámetro no es definido, o si no se lo define correctamente, el " +"archivo necesitará soporte de búsqueda (*seeking*)." #: ../Doc/library/aifc.rst:189 msgid "" @@ -209,6 +284,13 @@ msgid "" "the following compression types are supported: ``b'NONE'``, ``b'ULAW'``, " "``b'ALAW'``, ``b'G722'``." msgstr "" +"Especifica el tipo de compresión. Si no es especificada, los datos de audio " +"no serán comprimidos. En los archivos AIFF la compresión no está disponible. " +"El parámetro de nombre *name* deberá ser una descripción del tipo de " +"compresión legible por humanos, en forma de un arreglo de bytes. El " +"parámetro de tipo *type* deberá ser un arreglo de bytes de longitud 4. " +"Actualmente se soportan los siguientes tipos de compresión: ``b'NONE'``, " +"``b'ULAW'``, ``b'ALAW'``, ``b'G722'``." #: ../Doc/library/aifc.rst:199 msgid "" @@ -216,34 +298,47 @@ msgid "" "the various parameters. This means that it is possible to use the result of " "a :meth:`getparams` call as argument to :meth:`setparams`." msgstr "" +"Establece de una vez todos los parámetros mostrados arriba. El argumento es " +"una tupla compuesta por estos parámetros. Esto quiere decir que es posible " +"usar el resultado de una llamada :meth:`getparams` como argumento para :meth:" +"`setparams`." #: ../Doc/library/aifc.rst:206 msgid "" "Add a mark with the given id (larger than 0), and the given name at the " "given position. This method can be called at any time before :meth:`close`." msgstr "" +"Agrega una marca con el identificador *id* dado (mayor a 0) y el nombre " +"*name* dado, en la posición *pos* dada. Este método se puede invocar en " +"cualquier momento antes de :meth:`close`." #: ../Doc/library/aifc.rst:212 msgid "" "Return the current write position in the output file. Useful in combination " "with :meth:`setmark`." msgstr "" +"Retorna la posición de escritura actual en el archivo de salida. Es útil en " +"combinación con :meth:`setmark`." #: ../Doc/library/aifc.rst:218 msgid "" "Write data to the output file. This method can only be called after the " "audio file parameters have been set." msgstr "" +"Escribe los datos al archivo de salida. Este método sólo se puede invocar " +"una vez establecidos los parámetros del archivo de audio." #: ../Doc/library/aifc.rst:221 ../Doc/library/aifc.rst:230 msgid "Any :term:`bytes-like object` is now accepted." -msgstr "" +msgstr "Acepta cualquier :term:`bytes-like object`." #: ../Doc/library/aifc.rst:227 msgid "" "Like :meth:`writeframes`, except that the header of the audio file is not " "updated." msgstr "" +"Funciona igual que :meth:`writeframes`, excepto que el encabezado del " +"archivo de audio no es actualizado." #: ../Doc/library/aifc.rst:236 msgid "" @@ -251,3 +346,6 @@ msgid "" "actual size of the audio data. After calling this method, the object can no " "longer be used." msgstr "" +"Cierra el archivo AIFF. El encabezado del archivo se actualiza para reflejar " +"el tamaño real de los datos de audio. Después de invocar a este método, el " +"objeto no puede usarse más." diff --git a/library/argparse.po b/library/argparse.po index 7663463d69..08feaa3d7d 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -1405,7 +1405,7 @@ msgid "" msgstr "" "Cuando :class:`ArgumentParser` genera mensajes de ayuda, necesita alguna " "forma de referirse a cada argumento esperado. Por defecto, los objetos " -"*ArgumentParser* utilizan el valor dest_ como \"nombre” de cada objeto. Por " +"*ArgumentParser* utilizan el valor dest_ como \"nombre\" de cada objeto. Por " "defecto, para las acciones de argumento posicional, el valor dest_ se " "utiliza directamente, y para las acciones de argumento opcional, el valor " "dest_ está en mayúsculas. Así, un único argumento posicional con " @@ -2034,8 +2034,8 @@ msgid "" "`add_argument_group` method::" msgstr "" "Por defecto, :class:`ArgumentParser` agrupa los argumentos de la línea de " -"comandos en “argumentos de posición” y “argumentos opcionales” al mostrar " -"los mensajes de ayuda. Cuando hay una mejor agrupación conceptual de " +"comandos en \"argumentos de posición\" y \"argumentos opcionales\" al " +"mostrar los mensajes de ayuda. Cuando hay una mejor agrupación conceptual de " "argumentos que esta predeterminada, se pueden crear grupos apropiados usando " "el método :meth:`add_argument_group`::" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po index 1f224ee55b..291996f2ba 100644 --- a/library/asyncio-exceptions.po +++ b/library/asyncio-exceptions.po @@ -6,98 +6,109 @@ # 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: 2020-10-09 05:04-0500\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_EC\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/asyncio-exceptions.rst:8 msgid "Exceptions" -msgstr "" +msgstr "Excepciones" #: ../Doc/library/asyncio-exceptions.rst:10 msgid "**Source code:** :source:`Lib/asyncio/exceptions.py`" -msgstr "" +msgstr "**Código Fuente** :source:`Lib/asyncio/exceptions.py`" #: ../Doc/library/asyncio-exceptions.rst:16 msgid "The operation has exceeded the given deadline." -msgstr "" +msgstr "La operación ha excedido el tiempo límite." #: ../Doc/library/asyncio-exceptions.rst:19 msgid "" "This exception is different from the builtin :exc:`TimeoutError` exception." msgstr "" +"Esta excepción es diferente a la excepción incorporada :exc:`TimeoutError`." #: ../Doc/library/asyncio-exceptions.rst:25 msgid "The operation has been cancelled." -msgstr "" +msgstr "La operación ha sido cancelada." #: ../Doc/library/asyncio-exceptions.rst:27 msgid "" "This exception can be caught to perform custom operations when asyncio Tasks " "are cancelled. In almost all situations the exception must be re-raised." msgstr "" +"Esta excepción se puede capturar para realizar operaciones personalizadas " +"cuando se cancelan las tareas de asyncio. En casi todas las situaciones, la " +"excepción debe volver a lanzarse." #: ../Doc/library/asyncio-exceptions.rst:33 msgid ":exc:`CancelledError` is now a subclass of :class:`BaseException`." -msgstr "" +msgstr ":exc:`CancelledError` es ahora una subclase de :class:`BaseException`." #: ../Doc/library/asyncio-exceptions.rst:38 msgid "Invalid internal state of :class:`Task` or :class:`Future`." -msgstr "" +msgstr "Estado Interno no válido de :class:`Task` o :class:`Future`." #: ../Doc/library/asyncio-exceptions.rst:40 msgid "" "Can be raised in situations like setting a result value for a *Future* " "object that already has a result value set." msgstr "" +"Se puede lanzar en situaciones como establecer un valor de resultado para un " +"objeto *Future* que ya tiene un valor de resultado establecido." #: ../Doc/library/asyncio-exceptions.rst:46 msgid "" "The \"sendfile\" syscall is not available for the given socket or file type." msgstr "" +"La llamada al sistema \"sendfile\" no esta disponible desde el *socket* o " +"tipo de archivo dado." #: ../Doc/library/asyncio-exceptions.rst:49 msgid "A subclass of :exc:`RuntimeError`." -msgstr "" +msgstr "Una subclase de :exc:`RuntimeError`." #: ../Doc/library/asyncio-exceptions.rst:54 msgid "The requested read operation did not complete fully." -msgstr "" +msgstr "La operación de lectura solicitada no se completó completamente." #: ../Doc/library/asyncio-exceptions.rst:56 msgid "Raised by the :ref:`asyncio stream APIs`." -msgstr "" +msgstr "Lanzado por la :ref:`asyncio stream APIs`." #: ../Doc/library/asyncio-exceptions.rst:58 msgid "This exception is a subclass of :exc:`EOFError`." -msgstr "" +msgstr "La excepción es una subclase de :exc:`EOFError`." #: ../Doc/library/asyncio-exceptions.rst:62 msgid "The total number (:class:`int`) of expected bytes." -msgstr "" +msgstr "El número total (:class:`int`) de bytes esperados." #: ../Doc/library/asyncio-exceptions.rst:66 msgid "A string of :class:`bytes` read before the end of stream was reached." msgstr "" +"Un cadena de :class:`bytes` leída antes de que alcance al final del flujo." #: ../Doc/library/asyncio-exceptions.rst:71 msgid "Reached the buffer size limit while looking for a separator." -msgstr "" +msgstr "Alcanzó el límite de tamaño del búfer mientras buscaba un separador." #: ../Doc/library/asyncio-exceptions.rst:73 msgid "Raised by the :ref:`asyncio stream APIs `." -msgstr "" +msgstr "Lanzado por :ref:`asyncio stream APIs `." #: ../Doc/library/asyncio-exceptions.rst:77 msgid "The total number of to be consumed bytes." -msgstr "" +msgstr "El número total de bytes que se consumirán." diff --git a/library/asyncio-future.po b/library/asyncio-future.po index 913cb49fab..ab3b79453f 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -306,7 +306,6 @@ msgid "Cancel the Future and schedule callbacks." msgstr "Cancela el Future y programa retrollamadas (*callbacks*)." #: ../Doc/library/asyncio-future.rst:177 -#, fuzzy msgid "" "If the Future is already *done* or *cancelled*, return ``False``. Otherwise, " "change the Future's state to *cancelled*, schedule the callbacks, and return " diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index a4552662b5..d3136c610f 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -1,610 +1,647 @@ # 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: 2020-10-17 21:32-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/asyncio-llapi-index.rst:6 msgid "Low-level API Index" -msgstr "" +msgstr "Índice de API de bajo nivel" #: ../Doc/library/asyncio-llapi-index.rst:8 msgid "This page lists all low-level asyncio APIs." -msgstr "" +msgstr "Esta página enumera todas las APIs de asyncio de bajo nivel." #: ../Doc/library/asyncio-llapi-index.rst:12 msgid "Obtaining the Event Loop" -msgstr "" +msgstr "Obtención del bucle de eventos" #: ../Doc/library/asyncio-llapi-index.rst:18 msgid ":func:`asyncio.get_running_loop`" -msgstr "" +msgstr ":func:`asyncio.get_running_loop`" #: ../Doc/library/asyncio-llapi-index.rst:19 msgid "The **preferred** function to get the running event loop." msgstr "" +"La función **preferida** para obtener el bucle de eventos en ejecución." #: ../Doc/library/asyncio-llapi-index.rst:21 msgid ":func:`asyncio.get_event_loop`" -msgstr "" +msgstr ":func:`asyncio.get_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:22 msgid "Get an event loop instance (current or via the policy)." msgstr "" +"Obtiene una instancia del bucle de eventos (actual o mediante la política " +"del bucle)." #: ../Doc/library/asyncio-llapi-index.rst:24 msgid ":func:`asyncio.set_event_loop`" -msgstr "" +msgstr ":func:`asyncio.set_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:25 msgid "Set the event loop as current via the current policy." msgstr "" +"Establece el bucle de eventos como actual a través de la política del bucle." #: ../Doc/library/asyncio-llapi-index.rst:27 msgid ":func:`asyncio.new_event_loop`" -msgstr "" +msgstr ":func:`asyncio.new_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:28 msgid "Create a new event loop." -msgstr "" +msgstr "Crea un nuevo bucle de eventos." #: ../Doc/library/asyncio-llapi-index.rst:32 #: ../Doc/library/asyncio-llapi-index.rst:260 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/asyncio-llapi-index.rst:33 msgid ":ref:`Using asyncio.get_running_loop() `." -msgstr "" +msgstr ":ref:`Usando asyncio.get_running_loop() `." #: ../Doc/library/asyncio-llapi-index.rst:37 msgid "Event Loop Methods" -msgstr "" +msgstr "Métodos del bucle de eventos" #: ../Doc/library/asyncio-llapi-index.rst:39 msgid "" "See also the main documentation section about the :ref:`event loop methods " "`." msgstr "" +"Consulte también la sección de la documentación principal sobre los :ref:" +"`métodos del bucle de eventos `." #: ../Doc/library/asyncio-llapi-index.rst:42 msgid "Lifecycle" -msgstr "" +msgstr "Ciclo de vida" #: ../Doc/library/asyncio-llapi-index.rst:47 msgid ":meth:`loop.run_until_complete`" -msgstr "" +msgstr ":meth:`loop.run_until_complete`" #: ../Doc/library/asyncio-llapi-index.rst:48 msgid "Run a Future/Task/awaitable until complete." msgstr "" +"Ejecuta un Future/Tarea/aguardable (*awaitable*) hasta que se complete." #: ../Doc/library/asyncio-llapi-index.rst:50 msgid ":meth:`loop.run_forever`" -msgstr "" +msgstr ":meth:`loop.run_forever`" #: ../Doc/library/asyncio-llapi-index.rst:51 msgid "Run the event loop forever." -msgstr "" +msgstr "Ejecuta el bucle de eventos para siempre." #: ../Doc/library/asyncio-llapi-index.rst:53 msgid ":meth:`loop.stop`" -msgstr "" +msgstr ":meth:`loop.stop`" #: ../Doc/library/asyncio-llapi-index.rst:54 msgid "Stop the event loop." -msgstr "" +msgstr "Detiene el bucle de eventos." #: ../Doc/library/asyncio-llapi-index.rst:56 msgid ":meth:`loop.close`" -msgstr "" +msgstr ":meth:`loop.close`" #: ../Doc/library/asyncio-llapi-index.rst:57 msgid "Close the event loop." -msgstr "" +msgstr "Cierra el bucle de eventos." #: ../Doc/library/asyncio-llapi-index.rst:59 msgid ":meth:`loop.is_running()`" -msgstr "" +msgstr ":meth:`loop.is_running()`" #: ../Doc/library/asyncio-llapi-index.rst:60 msgid "Return ``True`` if the event loop is running." -msgstr "" +msgstr "Retorna ``True`` si el bucle de eventos se está ejecutando." #: ../Doc/library/asyncio-llapi-index.rst:62 msgid ":meth:`loop.is_closed()`" -msgstr "" +msgstr ":meth:`loop.is_closed()`" #: ../Doc/library/asyncio-llapi-index.rst:63 msgid "Return ``True`` if the event loop is closed." -msgstr "" +msgstr "Retorna ``True`` si el bucle de eventos está cerrado." #: ../Doc/library/asyncio-llapi-index.rst:65 msgid "``await`` :meth:`loop.shutdown_asyncgens`" -msgstr "" +msgstr "``await`` :meth:`loop.shutdown_asyncgens`" #: ../Doc/library/asyncio-llapi-index.rst:66 msgid "Close asynchronous generators." -msgstr "" +msgstr "Cierra generadores asincrónicos." #: ../Doc/library/asyncio-llapi-index.rst:69 msgid "Debugging" -msgstr "" +msgstr "Depuración" #: ../Doc/library/asyncio-llapi-index.rst:74 msgid ":meth:`loop.set_debug`" -msgstr "" +msgstr ":meth:`loop.set_debug`" #: ../Doc/library/asyncio-llapi-index.rst:75 msgid "Enable or disable the debug mode." -msgstr "" +msgstr "Habilita o deshabilita el modo de depuración." #: ../Doc/library/asyncio-llapi-index.rst:77 msgid ":meth:`loop.get_debug`" -msgstr "" +msgstr ":meth:`loop.get_debug`" #: ../Doc/library/asyncio-llapi-index.rst:78 msgid "Get the current debug mode." -msgstr "" +msgstr "Obtiene el modo de depuración actual." #: ../Doc/library/asyncio-llapi-index.rst:81 msgid "Scheduling Callbacks" -msgstr "" +msgstr "Programación de devoluciones de llamada" #: ../Doc/library/asyncio-llapi-index.rst:86 msgid ":meth:`loop.call_soon`" -msgstr "" +msgstr ":meth:`loop.call_soon`" #: ../Doc/library/asyncio-llapi-index.rst:87 msgid "Invoke a callback soon." -msgstr "" +msgstr "Invoca una devolución de llamada *soon*." #: ../Doc/library/asyncio-llapi-index.rst:89 msgid ":meth:`loop.call_soon_threadsafe`" -msgstr "" +msgstr ":meth:`loop.call_soon_threadsafe`" #: ../Doc/library/asyncio-llapi-index.rst:90 msgid "A thread-safe variant of :meth:`loop.call_soon`." -msgstr "" +msgstr "Una variante segura para subprocesos de :meth:`loop.call_soon`." #: ../Doc/library/asyncio-llapi-index.rst:92 msgid ":meth:`loop.call_later`" -msgstr "" +msgstr ":meth:`loop.call_later`" #: ../Doc/library/asyncio-llapi-index.rst:93 msgid "Invoke a callback *after* the given time." -msgstr "" +msgstr "Invoca una devolución de llamada *después* del tiempo especificado." #: ../Doc/library/asyncio-llapi-index.rst:95 msgid ":meth:`loop.call_at`" -msgstr "" +msgstr ":meth:`loop.call_at`" #: ../Doc/library/asyncio-llapi-index.rst:96 msgid "Invoke a callback *at* the given time." -msgstr "" +msgstr "Invoca una devolución de llamada *en* el tiempo especificado." #: ../Doc/library/asyncio-llapi-index.rst:99 msgid "Thread/Process Pool" -msgstr "" +msgstr "Hilo/Grupo de procesos" #: ../Doc/library/asyncio-llapi-index.rst:104 msgid "``await`` :meth:`loop.run_in_executor`" -msgstr "" +msgstr "``await`` :meth:`loop.run_in_executor`" #: ../Doc/library/asyncio-llapi-index.rst:105 msgid "" "Run a CPU-bound or other blocking function in a :mod:`concurrent.futures` " "executor." msgstr "" +"Ejecuta una función de bloqueo vinculada a la CPU o de otro tipo en un " +"ejecutor :mod:`concurrent.futures`." #: ../Doc/library/asyncio-llapi-index.rst:108 msgid ":meth:`loop.set_default_executor`" -msgstr "" +msgstr ":meth:`loop.set_default_executor`" #: ../Doc/library/asyncio-llapi-index.rst:109 msgid "Set the default executor for :meth:`loop.run_in_executor`." msgstr "" +"Establece el ejecutor predeterminado para :meth:`loop.run_in_executor`." #: ../Doc/library/asyncio-llapi-index.rst:112 msgid "Tasks and Futures" -msgstr "" +msgstr "Tareas y Futures" #: ../Doc/library/asyncio-llapi-index.rst:117 msgid ":meth:`loop.create_future`" -msgstr "" +msgstr ":meth:`loop.create_future`" #: ../Doc/library/asyncio-llapi-index.rst:118 msgid "Create a :class:`Future` object." -msgstr "" +msgstr "Crea un objeto :class:`Future`." #: ../Doc/library/asyncio-llapi-index.rst:120 msgid ":meth:`loop.create_task`" -msgstr "" +msgstr ":meth:`loop.create_task`" #: ../Doc/library/asyncio-llapi-index.rst:121 msgid "Schedule coroutine as a :class:`Task`." -msgstr "" +msgstr "Programa una corrutina como :class:`Task`." #: ../Doc/library/asyncio-llapi-index.rst:123 msgid ":meth:`loop.set_task_factory`" -msgstr "" +msgstr ":meth:`loop.set_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:124 msgid "" "Set a factory used by :meth:`loop.create_task` to create :class:`Tasks " "`." msgstr "" +"Establece una fábrica utilizada por :meth:`loop.create_task` para crear :" +"class:`Tareas `." #: ../Doc/library/asyncio-llapi-index.rst:127 msgid ":meth:`loop.get_task_factory`" -msgstr "" +msgstr ":meth:`loop.get_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:128 msgid "" "Get the factory :meth:`loop.create_task` uses to create :class:`Tasks " "`." msgstr "" +"Obtiene la fábrica :meth:`loop.create_task` que se usa para crear :class:" +"`Tareas `." #: ../Doc/library/asyncio-llapi-index.rst:132 msgid "DNS" -msgstr "" +msgstr "DNS" #: ../Doc/library/asyncio-llapi-index.rst:137 msgid "``await`` :meth:`loop.getaddrinfo`" -msgstr "" +msgstr "``await`` :meth:`loop.getaddrinfo`" #: ../Doc/library/asyncio-llapi-index.rst:138 msgid "Asynchronous version of :meth:`socket.getaddrinfo`." -msgstr "" +msgstr "Versión asincrónica de :meth:`socket.getaddrinfo`." #: ../Doc/library/asyncio-llapi-index.rst:140 msgid "``await`` :meth:`loop.getnameinfo`" -msgstr "" +msgstr "``await`` :meth:`loop.getnameinfo`" #: ../Doc/library/asyncio-llapi-index.rst:141 msgid "Asynchronous version of :meth:`socket.getnameinfo`." -msgstr "" +msgstr "Versión asincrónica de :meth:`socket.getnameinfo`." #: ../Doc/library/asyncio-llapi-index.rst:144 msgid "Networking and IPC" -msgstr "" +msgstr "Redes e IPC" #: ../Doc/library/asyncio-llapi-index.rst:149 msgid "``await`` :meth:`loop.create_connection`" -msgstr "" +msgstr "``await`` :meth:`loop.create_connection`" #: ../Doc/library/asyncio-llapi-index.rst:150 msgid "Open a TCP connection." -msgstr "" +msgstr "Abre una conexión TCP." #: ../Doc/library/asyncio-llapi-index.rst:152 msgid "``await`` :meth:`loop.create_server`" -msgstr "" +msgstr "``await`` :meth:`loop.create_server`" #: ../Doc/library/asyncio-llapi-index.rst:153 msgid "Create a TCP server." -msgstr "" +msgstr "Crea un servidor TCP." #: ../Doc/library/asyncio-llapi-index.rst:155 msgid "``await`` :meth:`loop.create_unix_connection`" -msgstr "" +msgstr "``await`` :meth:`loop.create_unix_connection`" #: ../Doc/library/asyncio-llapi-index.rst:156 msgid "Open a Unix socket connection." -msgstr "" +msgstr "Abre una conexión de socket Unix." #: ../Doc/library/asyncio-llapi-index.rst:158 msgid "``await`` :meth:`loop.create_unix_server`" -msgstr "" +msgstr "``await`` :meth:`loop.create_unix_server`" #: ../Doc/library/asyncio-llapi-index.rst:159 msgid "Create a Unix socket server." -msgstr "" +msgstr "Crea un servidor socket de Unix." #: ../Doc/library/asyncio-llapi-index.rst:161 msgid "``await`` :meth:`loop.connect_accepted_socket`" -msgstr "" +msgstr "``await`` :meth:`loop.connect_accepted_socket`" #: ../Doc/library/asyncio-llapi-index.rst:162 msgid "Wrap a :class:`~socket.socket` into a ``(transport, protocol)`` pair." msgstr "" +"Envuelve un :class:`~socket.socket` en un par ``(transport, protocol)``." #: ../Doc/library/asyncio-llapi-index.rst:165 msgid "``await`` :meth:`loop.create_datagram_endpoint`" -msgstr "" +msgstr "``await`` :meth:`loop.create_datagram_endpoint`" #: ../Doc/library/asyncio-llapi-index.rst:166 msgid "Open a datagram (UDP) connection." -msgstr "" +msgstr "Abre una conexión de datagramas (UDP)." #: ../Doc/library/asyncio-llapi-index.rst:168 msgid "``await`` :meth:`loop.sendfile`" -msgstr "" +msgstr "``await`` :meth:`loop.sendfile`" #: ../Doc/library/asyncio-llapi-index.rst:169 msgid "Send a file over a transport." -msgstr "" +msgstr "Envía un archivo a través del transporte." #: ../Doc/library/asyncio-llapi-index.rst:171 msgid "``await`` :meth:`loop.start_tls`" -msgstr "" +msgstr "``await`` :meth:`loop.start_tls`" #: ../Doc/library/asyncio-llapi-index.rst:172 msgid "Upgrade an existing connection to TLS." -msgstr "" +msgstr "Actualiza una conexión existente a TLS." #: ../Doc/library/asyncio-llapi-index.rst:174 msgid "``await`` :meth:`loop.connect_read_pipe`" -msgstr "" +msgstr "``await`` :meth:`loop.connect_read_pipe`" #: ../Doc/library/asyncio-llapi-index.rst:175 msgid "Wrap a read end of a pipe into a ``(transport, protocol)`` pair." msgstr "" +"Envuelve el fin de lectura de *pipe* en un par ``(transport, protocol)``." #: ../Doc/library/asyncio-llapi-index.rst:177 msgid "``await`` :meth:`loop.connect_write_pipe`" -msgstr "" +msgstr "``await`` :meth:`loop.connect_write_pipe`" #: ../Doc/library/asyncio-llapi-index.rst:178 msgid "Wrap a write end of a pipe into a ``(transport, protocol)`` pair." msgstr "" +"Envuelve el fin de escritura de *pipe* en un par ``(transport, protocol)``." #: ../Doc/library/asyncio-llapi-index.rst:181 msgid "Sockets" -msgstr "" +msgstr "Sockets" #: ../Doc/library/asyncio-llapi-index.rst:186 msgid "``await`` :meth:`loop.sock_recv`" -msgstr "" +msgstr "``await`` :meth:`loop.sock_recv`" #: ../Doc/library/asyncio-llapi-index.rst:187 msgid "Receive data from the :class:`~socket.socket`." -msgstr "" +msgstr "Recibe datos de :class:`~socket.socket`." #: ../Doc/library/asyncio-llapi-index.rst:189 msgid "``await`` :meth:`loop.sock_recv_into`" -msgstr "" +msgstr "``await`` :meth:`loop.sock_recv_into`" #: ../Doc/library/asyncio-llapi-index.rst:190 msgid "Receive data from the :class:`~socket.socket` into a buffer." -msgstr "" +msgstr "Recibe datos de :class:`~socket.socket` en un buffer." #: ../Doc/library/asyncio-llapi-index.rst:192 msgid "``await`` :meth:`loop.sock_sendall`" -msgstr "" +msgstr "``await`` :meth:`loop.sock_sendall`" #: ../Doc/library/asyncio-llapi-index.rst:193 msgid "Send data to the :class:`~socket.socket`." -msgstr "" +msgstr "Envía datos a :class:`~socket.socket`." #: ../Doc/library/asyncio-llapi-index.rst:195 msgid "``await`` :meth:`loop.sock_connect`" -msgstr "" +msgstr "``await`` :meth:`loop.sock_connect`" #: ../Doc/library/asyncio-llapi-index.rst:196 msgid "Connect the :class:`~socket.socket`." -msgstr "" +msgstr "Conecta con :class:`~socket.socket`." #: ../Doc/library/asyncio-llapi-index.rst:198 msgid "``await`` :meth:`loop.sock_accept`" -msgstr "" +msgstr "``await`` :meth:`loop.sock_accept`" #: ../Doc/library/asyncio-llapi-index.rst:199 msgid "Accept a :class:`~socket.socket` connection." -msgstr "" +msgstr "Acepta una conexión :class:`~socket.socket`." #: ../Doc/library/asyncio-llapi-index.rst:201 msgid "``await`` :meth:`loop.sock_sendfile`" -msgstr "" +msgstr "``await`` :meth:`loop.sock_sendfile`" #: ../Doc/library/asyncio-llapi-index.rst:202 msgid "Send a file over the :class:`~socket.socket`." -msgstr "" +msgstr "Envía un archivo a través de :class:`~socket.socket`." #: ../Doc/library/asyncio-llapi-index.rst:204 msgid ":meth:`loop.add_reader`" -msgstr "" +msgstr ":meth:`loop.add_reader`" #: ../Doc/library/asyncio-llapi-index.rst:205 msgid "Start watching a file descriptor for read availability." msgstr "" +"Comienza a monitorear un descriptor de archivo para ver la disponibilidad de " +"lectura." #: ../Doc/library/asyncio-llapi-index.rst:207 msgid ":meth:`loop.remove_reader`" -msgstr "" +msgstr ":meth:`loop.remove_reader`" #: ../Doc/library/asyncio-llapi-index.rst:208 msgid "Stop watching a file descriptor for read availability." msgstr "" +"Detiene el monitoreo del descriptor de archivo para ver la disponibilidad de " +"lectura." #: ../Doc/library/asyncio-llapi-index.rst:210 msgid ":meth:`loop.add_writer`" -msgstr "" +msgstr ":meth:`loop.add_writer`" #: ../Doc/library/asyncio-llapi-index.rst:211 msgid "Start watching a file descriptor for write availability." msgstr "" +"Comienza a monitorear un descriptor de archivo para ver la disponibilidad de " +"escritura." #: ../Doc/library/asyncio-llapi-index.rst:213 msgid ":meth:`loop.remove_writer`" -msgstr "" +msgstr ":meth:`loop.remove_writer`" #: ../Doc/library/asyncio-llapi-index.rst:214 msgid "Stop watching a file descriptor for write availability." msgstr "" +"Detiene el monitoreo del descriptor de archivo para ver la disponibilidad de " +"escritura." #: ../Doc/library/asyncio-llapi-index.rst:217 msgid "Unix Signals" -msgstr "" +msgstr "Señales Unix" #: ../Doc/library/asyncio-llapi-index.rst:222 msgid ":meth:`loop.add_signal_handler`" -msgstr "" +msgstr ":meth:`loop.add_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:223 msgid "Add a handler for a :mod:`signal`." -msgstr "" +msgstr "Añade un gestor para :mod:`signal`." #: ../Doc/library/asyncio-llapi-index.rst:225 msgid ":meth:`loop.remove_signal_handler`" -msgstr "" +msgstr ":meth:`loop.remove_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:226 msgid "Remove a handler for a :mod:`signal`." -msgstr "" +msgstr "Elimina un gestor para :mod:`signal`." #: ../Doc/library/asyncio-llapi-index.rst:229 msgid "Subprocesses" -msgstr "" +msgstr "Subprocesos" #: ../Doc/library/asyncio-llapi-index.rst:234 msgid ":meth:`loop.subprocess_exec`" -msgstr "" +msgstr ":meth:`loop.subprocess_exec`" #: ../Doc/library/asyncio-llapi-index.rst:235 msgid "Spawn a subprocess." -msgstr "" +msgstr "Genera un subproceso." #: ../Doc/library/asyncio-llapi-index.rst:237 msgid ":meth:`loop.subprocess_shell`" -msgstr "" +msgstr ":meth:`loop.subprocess_shell`" #: ../Doc/library/asyncio-llapi-index.rst:238 msgid "Spawn a subprocess from a shell command." -msgstr "" +msgstr "Genera un subproceso desde un comando de shell." #: ../Doc/library/asyncio-llapi-index.rst:241 msgid "Error Handling" -msgstr "" +msgstr "Gestor de errores" #: ../Doc/library/asyncio-llapi-index.rst:246 msgid ":meth:`loop.call_exception_handler`" -msgstr "" +msgstr ":meth:`loop.call_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:247 msgid "Call the exception handler." -msgstr "" +msgstr "Invoca al gestor de excepciones." #: ../Doc/library/asyncio-llapi-index.rst:249 msgid ":meth:`loop.set_exception_handler`" -msgstr "" +msgstr ":meth:`loop.set_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:250 msgid "Set a new exception handler." -msgstr "" +msgstr "Establece un nuevo gestor de excepciones." #: ../Doc/library/asyncio-llapi-index.rst:252 msgid ":meth:`loop.get_exception_handler`" -msgstr "" +msgstr ":meth:`loop.get_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:253 msgid "Get the current exception handler." -msgstr "" +msgstr "Obtiene el gestor de excepciones actual." #: ../Doc/library/asyncio-llapi-index.rst:255 msgid ":meth:`loop.default_exception_handler`" -msgstr "" +msgstr ":meth:`loop.default_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:256 msgid "The default exception handler implementation." -msgstr "" +msgstr "La implementación predetermina del gestor de excepciones." #: ../Doc/library/asyncio-llapi-index.rst:261 msgid "" ":ref:`Using asyncio.get_event_loop() and loop.run_forever() " "`." msgstr "" +":ref:`Usando asyncio.get_event_loop() y loop.run_forever() " +"`." #: ../Doc/library/asyncio-llapi-index.rst:264 msgid ":ref:`Using loop.call_later() `." -msgstr "" +msgstr ":ref:`Usando loop.call_later() `." #: ../Doc/library/asyncio-llapi-index.rst:266 msgid "" "Using ``loop.create_connection()`` to implement :ref:`an echo-client " "`." msgstr "" +"Usando ``loop.create_connection()`` para implementar :ref:`un cliente de eco " +"`." #: ../Doc/library/asyncio-llapi-index.rst:269 msgid "" "Using ``loop.create_connection()`` to :ref:`connect a socket " "`." msgstr "" +"Usando ``loop.create_connection()`` para :ref:`conectar a un socket " +"`." #: ../Doc/library/asyncio-llapi-index.rst:272 msgid "" ":ref:`Using add_reader() to watch an FD for read events " "`." msgstr "" +":ref:`Usando add_reader() para mirar un FD y leer eventos " +"`." #: ../Doc/library/asyncio-llapi-index.rst:275 msgid ":ref:`Using loop.add_signal_handler() `." msgstr "" +":ref:`Usando loop.add_signal_handler() `." #: ../Doc/library/asyncio-llapi-index.rst:277 msgid ":ref:`Using loop.subprocess_exec() `." msgstr "" +":ref:`Usando loop.subprocess_exec() `." #: ../Doc/library/asyncio-llapi-index.rst:281 msgid "Transports" -msgstr "" +msgstr "Transportes" #: ../Doc/library/asyncio-llapi-index.rst:283 msgid "All transports implement the following methods:" -msgstr "" +msgstr "Todos los transportes implementan los siguientes métodos:" #: ../Doc/library/asyncio-llapi-index.rst:289 msgid ":meth:`transport.close() `" -msgstr "" +msgstr ":meth:`transport.close() `" #: ../Doc/library/asyncio-llapi-index.rst:290 msgid "Close the transport." -msgstr "" +msgstr "Cierra el transporte." #: ../Doc/library/asyncio-llapi-index.rst:292 msgid ":meth:`transport.is_closing() `" -msgstr "" +msgstr ":meth:`transport.is_closing() `" #: ../Doc/library/asyncio-llapi-index.rst:293 msgid "Return ``True`` if the transport is closing or is closed." -msgstr "" +msgstr "Retorna ``True`` si el transporte está cerrado o se está cerrando." #: ../Doc/library/asyncio-llapi-index.rst:295 msgid ":meth:`transport.get_extra_info() `" -msgstr "" +msgstr ":meth:`transport.get_extra_info() `" #: ../Doc/library/asyncio-llapi-index.rst:296 msgid "Request for information about the transport." -msgstr "" +msgstr "Solicita información sobre el transporte." #: ../Doc/library/asyncio-llapi-index.rst:298 msgid ":meth:`transport.set_protocol() `" -msgstr "" +msgstr ":meth:`transport.set_protocol() `" #: ../Doc/library/asyncio-llapi-index.rst:299 msgid "Set a new protocol." -msgstr "" +msgstr "Establece un nuevo protocolo." #: ../Doc/library/asyncio-llapi-index.rst:301 msgid ":meth:`transport.get_protocol() `" -msgstr "" +msgstr ":meth:`transport.get_protocol() `" #: ../Doc/library/asyncio-llapi-index.rst:302 msgid "Return the current protocol." -msgstr "" +msgstr "Retorna el protocolo actual." #: ../Doc/library/asyncio-llapi-index.rst:305 msgid "" @@ -612,34 +649,37 @@ msgid "" "Returned from methods like :meth:`loop.create_connection`, :meth:`loop." "create_unix_connection`, :meth:`loop.connect_read_pipe`, etc:" msgstr "" +"Transportes que pueden recibir datos (conexiones TCP y Unix, *pipes*, etc). " +"Retornan de métodos como :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_read`, etc:" #: ../Doc/library/asyncio-llapi-index.rst:310 msgid "Read Transports" -msgstr "" +msgstr "Leer transportes" #: ../Doc/library/asyncio-llapi-index.rst:315 msgid ":meth:`transport.is_reading() `" -msgstr "" +msgstr ":meth:`transport.is_reading() `" #: ../Doc/library/asyncio-llapi-index.rst:316 msgid "Return ``True`` if the transport is receiving." -msgstr "" +msgstr "Retorna ``True`` si el transporte está recibiendo." #: ../Doc/library/asyncio-llapi-index.rst:318 msgid ":meth:`transport.pause_reading() `" -msgstr "" +msgstr ":meth:`transport.pause_reading() `" #: ../Doc/library/asyncio-llapi-index.rst:319 msgid "Pause receiving." -msgstr "" +msgstr "Pausa la recepción." #: ../Doc/library/asyncio-llapi-index.rst:321 msgid ":meth:`transport.resume_reading() `" -msgstr "" +msgstr ":meth:`transport.resume_reading() `" #: ../Doc/library/asyncio-llapi-index.rst:322 msgid "Resume receiving." -msgstr "" +msgstr "Reanuda la recepción." #: ../Doc/library/asyncio-llapi-index.rst:325 msgid "" @@ -647,307 +687,343 @@ msgid "" "Returned from methods like :meth:`loop.create_connection`, :meth:`loop." "create_unix_connection`, :meth:`loop.connect_write_pipe`, etc:" msgstr "" +"Transportes que pueden enviar datos (conexiones TCP y Unix, *pipes*, etc). " +"Retornan de métodos como :meth:`loop.create_connection`, :meth:`loop." +"create_unix_connection`, :meth:`loop.connect_write_pipe`, etc:" #: ../Doc/library/asyncio-llapi-index.rst:330 msgid "Write Transports" -msgstr "" +msgstr "Escribir transportes" #: ../Doc/library/asyncio-llapi-index.rst:335 msgid ":meth:`transport.write() `" -msgstr "" +msgstr ":meth:`transport.write() `" #: ../Doc/library/asyncio-llapi-index.rst:336 msgid "Write data to the transport." -msgstr "" +msgstr "Escribe datos en el transporte." #: ../Doc/library/asyncio-llapi-index.rst:338 msgid ":meth:`transport.writelines() `" -msgstr "" +msgstr ":meth:`transport.writelines() `" #: ../Doc/library/asyncio-llapi-index.rst:339 msgid "Write buffers to the transport." -msgstr "" +msgstr "Escribe búferes en el transporte." #: ../Doc/library/asyncio-llapi-index.rst:341 msgid ":meth:`transport.can_write_eof() `" -msgstr "" +msgstr ":meth:`transport.can_write_eof() `" #: ../Doc/library/asyncio-llapi-index.rst:342 msgid "Return :const:`True` if the transport supports sending EOF." -msgstr "" +msgstr "Retorna :const:`True` si el transporte admite el envío de EOF." #: ../Doc/library/asyncio-llapi-index.rst:344 msgid ":meth:`transport.write_eof() `" -msgstr "" +msgstr ":meth:`transport.write_eof() `" #: ../Doc/library/asyncio-llapi-index.rst:345 msgid "Close and send EOF after flushing buffered data." -msgstr "" +msgstr "Cierra y envía EOF después de vaciar los datos almacenados en búfer." #: ../Doc/library/asyncio-llapi-index.rst:347 msgid ":meth:`transport.abort() `" -msgstr "" +msgstr ":meth:`transport.abort() `" #: ../Doc/library/asyncio-llapi-index.rst:348 #: ../Doc/library/asyncio-llapi-index.rst:370 msgid "Close the transport immediately." -msgstr "" +msgstr "Cierra el transporte inmediatamente." #: ../Doc/library/asyncio-llapi-index.rst:350 msgid "" ":meth:`transport.get_write_buffer_size() `" msgstr "" +":meth:`transport.get_write_buffer_size() `" +# water marks estrá traducido como "límite" en las páginas a la que apunta este archivo. Mantuve el mismo criterio. En caso de corregir deberíamos cambiar todo junto. +# Ver: https://docs.python.org/es/3.8/library/asyncio-protocol.html#asyncio.BaseProtocol.resume_writing #: ../Doc/library/asyncio-llapi-index.rst:352 msgid "Return high and low water marks for write flow control." msgstr "" +"Retorna los límites superior e inferior para controlar el flujo de escritura." #: ../Doc/library/asyncio-llapi-index.rst:354 msgid "" ":meth:`transport.set_write_buffer_limits() `" msgstr "" +":meth:`transport.set_write_buffer_limits() `" #: ../Doc/library/asyncio-llapi-index.rst:356 msgid "Set new high and low water marks for write flow control." msgstr "" +"Establece nuevos límites superior e inferior para el control del flujo de " +"escritura." #: ../Doc/library/asyncio-llapi-index.rst:359 msgid "Transports returned by :meth:`loop.create_datagram_endpoint`:" -msgstr "" +msgstr "Transportes retornados por :meth:`loop.create_datagram_endpoint`:" #: ../Doc/library/asyncio-llapi-index.rst:361 msgid "Datagram Transports" -msgstr "" +msgstr "Transportes de datagramas" #: ../Doc/library/asyncio-llapi-index.rst:366 msgid ":meth:`transport.sendto() `" -msgstr "" +msgstr ":meth:`transport.sendto() `" #: ../Doc/library/asyncio-llapi-index.rst:367 msgid "Send data to the remote peer." -msgstr "" +msgstr "Envía datos al par remoto." #: ../Doc/library/asyncio-llapi-index.rst:369 msgid ":meth:`transport.abort() `" -msgstr "" +msgstr ":meth:`transport.abort() `" #: ../Doc/library/asyncio-llapi-index.rst:373 msgid "" "Low-level transport abstraction over subprocesses. Returned by :meth:`loop." "subprocess_exec` and :meth:`loop.subprocess_shell`:" msgstr "" +"Abstracción de transporte de bajo nivel sobre subprocesos. Retornado por :" +"meth:`loop.subprocess_exec` y :meth:`loop.subprocess_shell`:" #: ../Doc/library/asyncio-llapi-index.rst:377 msgid "Subprocess Transports" -msgstr "" +msgstr "Transportes de subprocesos" #: ../Doc/library/asyncio-llapi-index.rst:382 msgid ":meth:`transport.get_pid() `" -msgstr "" +msgstr ":meth:`transport.get_pid() `" #: ../Doc/library/asyncio-llapi-index.rst:383 msgid "Return the subprocess process id." -msgstr "" +msgstr "Retorna el id de proceso del subproceso." #: ../Doc/library/asyncio-llapi-index.rst:385 msgid "" ":meth:`transport.get_pipe_transport() `" msgstr "" +":meth:`transport.get_pipe_transport() `" #: ../Doc/library/asyncio-llapi-index.rst:387 msgid "" "Return the transport for the requested communication pipe (*stdin*, " "*stdout*, or *stderr*)." msgstr "" +"Retorna el transporte para la *pipe* de comunicación solicitada (*stdin*, " +"*stdout* o *stderr*)." #: ../Doc/library/asyncio-llapi-index.rst:390 msgid ":meth:`transport.get_returncode() `" msgstr "" +":meth:`transport.get_returncode() `" #: ../Doc/library/asyncio-llapi-index.rst:391 msgid "Return the subprocess return code." -msgstr "" +msgstr "Retorna el código de retorno del subproceso." #: ../Doc/library/asyncio-llapi-index.rst:393 msgid ":meth:`transport.kill() `" -msgstr "" +msgstr ":meth:`transport.kill() `" #: ../Doc/library/asyncio-llapi-index.rst:394 msgid "Kill the subprocess." -msgstr "" +msgstr "Mata el subproceso." #: ../Doc/library/asyncio-llapi-index.rst:396 msgid ":meth:`transport.send_signal() `" -msgstr "" +msgstr ":meth:`transport.send_signal() `" #: ../Doc/library/asyncio-llapi-index.rst:397 msgid "Send a signal to the subprocess." -msgstr "" +msgstr "Envía una señal al subproceso." #: ../Doc/library/asyncio-llapi-index.rst:399 msgid ":meth:`transport.terminate() `" -msgstr "" +msgstr ":meth:`transport.terminate() `" #: ../Doc/library/asyncio-llapi-index.rst:400 msgid "Stop the subprocess." -msgstr "" +msgstr "Detiene el subproceso." #: ../Doc/library/asyncio-llapi-index.rst:402 msgid ":meth:`transport.close() `" -msgstr "" +msgstr ":meth:`transport.close() `" #: ../Doc/library/asyncio-llapi-index.rst:403 msgid "Kill the subprocess and close all pipes." -msgstr "" +msgstr "Mata el subproceso y cierra todas las *pipes*." #: ../Doc/library/asyncio-llapi-index.rst:407 msgid "Protocols" -msgstr "" +msgstr "Protocolos" #: ../Doc/library/asyncio-llapi-index.rst:409 msgid "Protocol classes can implement the following **callback methods**:" msgstr "" +"Las clases de protocolo pueden implementar los siguientes **métodos de " +"devolución de llamada**:" #: ../Doc/library/asyncio-llapi-index.rst:415 msgid "``callback`` :meth:`connection_made() `" -msgstr "" +msgstr "``callback`` :meth:`connection_made() `" #: ../Doc/library/asyncio-llapi-index.rst:416 msgid "Called when a connection is made." -msgstr "" +msgstr "Se llama cuando se establece una conexión." #: ../Doc/library/asyncio-llapi-index.rst:418 msgid "``callback`` :meth:`connection_lost() `" -msgstr "" +msgstr "``callback`` :meth:`connection_lost() `" #: ../Doc/library/asyncio-llapi-index.rst:419 msgid "Called when the connection is lost or closed." -msgstr "" +msgstr "Se llama cuando la conexión se pierde o cierra." #: ../Doc/library/asyncio-llapi-index.rst:421 msgid "``callback`` :meth:`pause_writing() `" -msgstr "" +msgstr "``callback`` :meth:`pause_writing() `" #: ../Doc/library/asyncio-llapi-index.rst:422 msgid "Called when the transport's buffer goes over the high water mark." -msgstr "" +msgstr "Se llama cuando el búfer del transporte excede el límite superior." #: ../Doc/library/asyncio-llapi-index.rst:424 msgid "``callback`` :meth:`resume_writing() `" -msgstr "" +msgstr "``callback`` :meth:`resume_writing() `" #: ../Doc/library/asyncio-llapi-index.rst:425 msgid "Called when the transport's buffer drains below the low water mark." msgstr "" +"Se llama cuando el búfer del transporte se vacía por debajo del límite " +"inferior." #: ../Doc/library/asyncio-llapi-index.rst:428 msgid "Streaming Protocols (TCP, Unix Sockets, Pipes)" -msgstr "" +msgstr "Protocolos de streaming (TCP, Unix Sockets, Pipes)" #: ../Doc/library/asyncio-llapi-index.rst:433 msgid "``callback`` :meth:`data_received() `" -msgstr "" +msgstr "``callback`` :meth:`data_received() `" #: ../Doc/library/asyncio-llapi-index.rst:434 msgid "Called when some data is received." -msgstr "" +msgstr "Se llama cuando se reciben algunos datos." #: ../Doc/library/asyncio-llapi-index.rst:436 msgid "``callback`` :meth:`eof_received() `" -msgstr "" +msgstr "``callback`` :meth:`eof_received() `" #: ../Doc/library/asyncio-llapi-index.rst:437 #: ../Doc/library/asyncio-llapi-index.rst:452 msgid "Called when an EOF is received." -msgstr "" +msgstr "Se llama cuando se recibe un EOF." #: ../Doc/library/asyncio-llapi-index.rst:440 msgid "Buffered Streaming Protocols" -msgstr "" +msgstr "Protocolos de streaming en búfer" #: ../Doc/library/asyncio-llapi-index.rst:445 msgid "``callback`` :meth:`get_buffer() `" -msgstr "" +msgstr "``callback`` :meth:`get_buffer() `" #: ../Doc/library/asyncio-llapi-index.rst:446 msgid "Called to allocate a new receive buffer." -msgstr "" +msgstr "Se llama para asignar un nuevo búfer de recepción." #: ../Doc/library/asyncio-llapi-index.rst:448 msgid "``callback`` :meth:`buffer_updated() `" msgstr "" +"``callback`` :meth:`buffer_updated() `" #: ../Doc/library/asyncio-llapi-index.rst:449 msgid "Called when the buffer was updated with the received data." -msgstr "" +msgstr "Se llama cuando el búfer se actualizó con los datos recibidos." #: ../Doc/library/asyncio-llapi-index.rst:451 msgid "``callback`` :meth:`eof_received() `" -msgstr "" +msgstr "``callback`` :meth:`eof_received() `" #: ../Doc/library/asyncio-llapi-index.rst:455 msgid "Datagram Protocols" -msgstr "" +msgstr "Protocolos de datagramas" #: ../Doc/library/asyncio-llapi-index.rst:460 msgid "" "``callback`` :meth:`datagram_received() `" msgstr "" +"``callback`` :meth:`datagram_received() `" #: ../Doc/library/asyncio-llapi-index.rst:462 msgid "Called when a datagram is received." -msgstr "" +msgstr "Se llama cuando se recibe un datagrama." #: ../Doc/library/asyncio-llapi-index.rst:464 msgid "``callback`` :meth:`error_received() `" msgstr "" +"``callback`` :meth:`error_received() `" #: ../Doc/library/asyncio-llapi-index.rst:465 msgid "" "Called when a previous send or receive operation raises an :class:`OSError`." msgstr "" +"Se llama cuando una operación de envío o recepción anterior genera un :class:" +"`OSError`." #: ../Doc/library/asyncio-llapi-index.rst:469 msgid "Subprocess Protocols" -msgstr "" +msgstr "Protocolos de subprocesos" #: ../Doc/library/asyncio-llapi-index.rst:474 msgid "" "``callback`` :meth:`pipe_data_received() `" msgstr "" +"``callback`` :meth:`pipe_data_received() `" #: ../Doc/library/asyncio-llapi-index.rst:476 msgid "" "Called when the child process writes data into its *stdout* or *stderr* pipe." msgstr "" +"Se llama cuando el proceso hijo escribe datos en su *pipe* *stdout* o " +"*stderr*." #: ../Doc/library/asyncio-llapi-index.rst:479 msgid "" "``callback`` :meth:`pipe_connection_lost() `" msgstr "" +"``callback`` :meth:`pipe_connection_lost() `" #: ../Doc/library/asyncio-llapi-index.rst:481 msgid "" "Called when one of the pipes communicating with the child process is closed." msgstr "" +"Se llama cuando se cierra un *pipe* que se comunica con el proceso hijo." #: ../Doc/library/asyncio-llapi-index.rst:484 msgid "" "``callback`` :meth:`process_exited() `" msgstr "" +"``callback`` :meth:`process_exited() `" #: ../Doc/library/asyncio-llapi-index.rst:486 msgid "Called when the child process has exited." -msgstr "" +msgstr "Se llama cuando el proceso hijo ha finalizado." #: ../Doc/library/asyncio-llapi-index.rst:490 msgid "Event Loop Policies" -msgstr "" +msgstr "Políticas de bucle de eventos" #: ../Doc/library/asyncio-llapi-index.rst:492 msgid "" @@ -955,31 +1031,34 @@ msgid "" "func:`asyncio.get_event_loop`. See also the main :ref:`policies section " "` for more details." msgstr "" +"Las políticas son un mecanismo de bajo nivel para alterar el comportamiento " +"de funciones como :func:`asyncio.get_event_loop`. Vea también la sección " +"principal :ref:`políticas ` para más detalles." #: ../Doc/library/asyncio-llapi-index.rst:498 msgid "Accessing Policies" -msgstr "" +msgstr "Acceso a políticas" #: ../Doc/library/asyncio-llapi-index.rst:503 msgid ":meth:`asyncio.get_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.get_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:504 msgid "Return the current process-wide policy." -msgstr "" +msgstr "Retorna la política actual en todo el proceso." #: ../Doc/library/asyncio-llapi-index.rst:506 msgid ":meth:`asyncio.set_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.set_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:507 msgid "Set a new process-wide policy." -msgstr "" +msgstr "Establece una nueva política para todo el proceso." #: ../Doc/library/asyncio-llapi-index.rst:509 msgid ":class:`AbstractEventLoopPolicy`" -msgstr "" +msgstr ":class:`AbstractEventLoopPolicy`" #: ../Doc/library/asyncio-llapi-index.rst:510 msgid "Base class for policy objects." -msgstr "" +msgstr "Clase base para objetos de política." diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po index 79c1c4dbb9..b443721d7f 100644 --- a/library/asyncio-platforms.po +++ b/library/asyncio-platforms.po @@ -6,23 +6,25 @@ # 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: 2020-10-18 13:28+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: \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/asyncio-platforms.rst:9 msgid "Platform Support" -msgstr "" +msgstr "Soporte de plataforma" #: ../Doc/library/asyncio-platforms.rst:11 msgid "" @@ -30,68 +32,90 @@ msgid "" "have subtle differences and limitations due to the platforms' underlying " "architecture and capabilities." msgstr "" +"El módulo :mod:`asyncio` está diseñado para ser portátil, pero algunas " +"plataformas tienen diferencias y limitaciones sutiles debido a la " +"arquitectura y las capacidades subyacentes de las plataformas." #: ../Doc/library/asyncio-platforms.rst:17 msgid "All Platforms" -msgstr "" +msgstr "Todas las Plataformas" #: ../Doc/library/asyncio-platforms.rst:19 msgid "" ":meth:`loop.add_reader` and :meth:`loop.add_writer` cannot be used to " "monitor file I/O." msgstr "" +":meth:`loop.add_reader` y :meth:`loop.add_writer` no se pueden utilizar para " +"supervisar la E/S del archivo." #: ../Doc/library/asyncio-platforms.rst:24 msgid "Windows" -msgstr "" +msgstr "Windows" #: ../Doc/library/asyncio-platforms.rst:26 msgid "" "**Source code:** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/" "asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`" msgstr "" +"**Código fuente:** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/" +"asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`" #: ../Doc/library/asyncio-platforms.rst:34 msgid "On Windows, :class:`ProactorEventLoop` is now the default event loop." msgstr "" +"En Windows, :class:`ProactorEventLoop` es ahora el bucle de eventos " +"predeterminado." #: ../Doc/library/asyncio-platforms.rst:36 msgid "All event loops on Windows do not support the following methods:" msgstr "" +"Todos los bucles de eventos en Windows no admiten los métodos siguientes:" #: ../Doc/library/asyncio-platforms.rst:38 msgid "" ":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are " "not supported. The :data:`socket.AF_UNIX` socket family is specific to Unix." msgstr "" +":meth:`loop.create_unix_connection` y :meth:`loop.create_unix_server` no son " +"compatibles. La familia de sockets :data:`socket.AF_UNIX` es específica de " +"Unix." #: ../Doc/library/asyncio-platforms.rst:42 msgid "" ":meth:`loop.add_signal_handler` and :meth:`loop.remove_signal_handler` are " "not supported." msgstr "" +":meth:`loop.add_signal_handler` y :meth:`loop.remove_signal_handler` no son " +"compatibles." #: ../Doc/library/asyncio-platforms.rst:45 msgid ":class:`SelectorEventLoop` has the following limitations:" -msgstr "" +msgstr ":class:`SelectorEventLoop` tiene las siguientes limitaciones:" #: ../Doc/library/asyncio-platforms.rst:47 msgid "" ":class:`~selectors.SelectSelector` is used to wait on socket events: it " "supports sockets and is limited to 512 sockets." msgstr "" +":class:`~selectors.SelectSelector` se utiliza para esperar los eventos de " +"los sockets: soporta los sockets y está limitado a 512 sockets." #: ../Doc/library/asyncio-platforms.rst:50 msgid "" ":meth:`loop.add_reader` and :meth:`loop.add_writer` only accept socket " "handles (e.g. pipe file descriptors are not supported)." msgstr "" +":meth:`loop.add_reader` y :meth:`loop.add_writer` sólo aceptan manejadores " +"de sockets (por ejemplo, los descriptores de archivos de tuberías no están " +"soportados)." #: ../Doc/library/asyncio-platforms.rst:53 msgid "" "Pipes are not supported, so the :meth:`loop.connect_read_pipe` and :meth:" "`loop.connect_write_pipe` methods are not implemented." msgstr "" +"Las tuberías no están soportadas, por lo que los métodos :meth:`loop." +"connect_read_pipe` y :meth:`loop.connect_write_pipe` no están implementados." #: ../Doc/library/asyncio-platforms.rst:56 msgid "" @@ -99,16 +123,21 @@ msgid "" "subprocess_exec` and :meth:`loop.subprocess_shell` methods are not " "implemented." msgstr "" +":ref:`Subprocesos ` no están soportados, es decir, los " +"métodos :meth:`loop.subprocess_exec` y :meth:`loop.subprocess_shell` no " +"están implementados." #: ../Doc/library/asyncio-platforms.rst:60 msgid ":class:`ProactorEventLoop` has the following limitations:" -msgstr "" +msgstr ":class:`ProactorEventLoop` tiene las siguientes limitaciones:" #: ../Doc/library/asyncio-platforms.rst:62 msgid "" "The :meth:`loop.add_reader` and :meth:`loop.add_writer` methods are not " "supported." msgstr "" +"Los métodos :meth:`loop.add_reader` y :meth:`loop.add_writer` no están " +"soportados." #: ../Doc/library/asyncio-platforms.rst:65 msgid "" @@ -117,16 +146,22 @@ msgid "" "hardware (availability of `HPET `_) and on the Windows configuration." msgstr "" +"La resolución del reloj monótono de Windows suele ser de unos 15,6 mseg. La " +"mejor resolución es de 0,5 mseg. La resolución depende del hardware " +"(disponibilidad de `HPET `_) y de la configuración de Windows." #: ../Doc/library/asyncio-platforms.rst:75 msgid "Subprocess Support on Windows" -msgstr "" +msgstr "Soporte de sub-procesos en Windows" #: ../Doc/library/asyncio-platforms.rst:77 msgid "" "On Windows, the default event loop :class:`ProactorEventLoop` supports " "subprocesses, whereas :class:`SelectorEventLoop` does not." msgstr "" +"En Windows, el bucle de eventos por defecto :class:`ProactorEventLoop` " +"soporta subprocesos, mientras que :class:`SelectorEventLoop` no lo hace." #: ../Doc/library/asyncio-platforms.rst:80 msgid "" @@ -134,18 +169,22 @@ msgid "" "set_child_watcher>` function is also not supported, as :class:" "`ProactorEventLoop` has a different mechanism to watch child processes." msgstr "" +"La función :meth:`policy.set_child_watcher() ` tampoco está soportada, ya que :class:" +"`ProactorEventLoop` tiene un mecanismo diferente para vigilar los procesos " +"hijos." #: ../Doc/library/asyncio-platforms.rst:87 msgid "macOS" -msgstr "" +msgstr "macOS" #: ../Doc/library/asyncio-platforms.rst:89 msgid "Modern macOS versions are fully supported." -msgstr "" +msgstr "Las versiones modernas de MacOS son totalmente compatibles." #: ../Doc/library/asyncio-platforms.rst:92 msgid "macOS <= 10.8" -msgstr "" +msgstr "macOS <= 10.8" #: ../Doc/library/asyncio-platforms.rst:93 msgid "" @@ -155,3 +194,9 @@ msgid "" "class:`~selectors.SelectSelector` or :class:`~selectors.PollSelector` to " "support character devices on these older versions of macOS. Example::" msgstr "" +"En macOS 10.6, 10.7 y 10.8, el bucle de eventos por defecto utiliza :class:" +"`selectors.KqueueSelector`, que no soporta dispositivos de caracteres en " +"estas versiones. El :class:`SelectorEventLoop` puede ser configurado " +"manualmente para usar :class:`~selectors.SelectSelector` o :class:" +"`~selectors.PollSelector` para soportar dispositivos de caracteres en estas " +"versiones antiguas de macOS. Ejemplo::" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index a934bb2409..48f2b863f9 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.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: 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: 2020-10-08 11:54+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/asyncio-queue.rst:7 msgid "Queues" -msgstr "" +msgstr "Colas" #: ../Doc/library/asyncio-queue.rst:9 msgid "**Source code:** :source:`Lib/asyncio/queues.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/asyncio/queue.py`" #: ../Doc/library/asyncio-queue.rst:13 msgid "" @@ -34,24 +36,31 @@ msgid "" "module. Although asyncio queues are not thread-safe, they are designed to " "be used specifically in async/await code." 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." #: ../Doc/library/asyncio-queue.rst:17 msgid "" "Note that methods of asyncio queues don't have a *timeout* parameter; use :" "func:`asyncio.wait_for` function to do queue operations with a timeout." msgstr "" +"Nota que los métodos de colas de asyncio no tienen un parámetro *timeout*; " +"usa la función :func:`asyncio.wait_for` para hacer operaciones de cola con " +"un tiempo de espera." #: ../Doc/library/asyncio-queue.rst:21 msgid "See also the `Examples`_ section below." -msgstr "" +msgstr "Ver también la sección `Examples`_ a continuación." #: ../Doc/library/asyncio-queue.rst:24 msgid "Queue" -msgstr "" +msgstr "Cola" #: ../Doc/library/asyncio-queue.rst:28 msgid "A first in, first out (FIFO) queue." msgstr "" +"Una cola primero en entrar, primero en salir (PEPS, o *FIFO* en inglés)." #: ../Doc/library/asyncio-queue.rst:30 msgid "" @@ -59,53 +68,68 @@ msgid "" "it is an integer greater than ``0``, then ``await put()`` blocks when the " "queue reaches *maxsize* until an item is removed by :meth:`get`." msgstr "" +"Si *maxsize* es menor que o igual a cero, el tamaño de la cola es infinito. " +"Si es un entero mayor a ``0``, entonces ``await put()`` se bloquea cuando " +"una cola alcanza su *maxsize* hasta que un elemento es removido por :meth:" +"`get`." #: ../Doc/library/asyncio-queue.rst:35 msgid "" "Unlike the standard library threading :mod:`queue`, the size of the queue is " "always known and can be returned by calling the :meth:`qsize` method." msgstr "" +"Diferente de los subprocesos de la biblioteca estándar :mod:`queue`, el " +"tamaño de la cola siempre es conocido y puede ser retornado llamando el " +"método :meth:`qsize`." #: ../Doc/library/asyncio-queue.rst:42 msgid "The *loop* parameter." -msgstr "" +msgstr "El parámetro *loop*." #: ../Doc/library/asyncio-queue.rst:43 msgid "This class is :ref:`not thread safe `." -msgstr "" +msgstr "Esta clase es :ref:`no segura para hilos `." #: ../Doc/library/asyncio-queue.rst:47 msgid "Number of items allowed in the queue." -msgstr "" +msgstr "Número de ítems permitidos en la cola." #: ../Doc/library/asyncio-queue.rst:51 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." -msgstr "" +msgstr "Retorna ``True`` si la cola es vacía, o ``False`` en caso contrario." #: ../Doc/library/asyncio-queue.rst:55 msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." -msgstr "" +msgstr "Retorna ``True`` si hay :attr:`maxsize` ítems en la cola." #: ../Doc/library/asyncio-queue.rst:57 msgid "" "If the queue was initialized with ``maxsize=0`` (the default), then :meth:" "`full()` never returns ``True``." msgstr "" +"Si la cola fue inicializada con ``maxsize=0`` (el predeterminado), entonces :" +"meth:`fill()` nunca retorna ``True``." #: ../Doc/library/asyncio-queue.rst:62 msgid "" "Remove and return an item from the queue. If queue is empty, wait until an " "item is available." msgstr "" +"Remueve y retorna un ítem de la cola. Si la cola es vacía, espera hasta que " +"un ítem esté disponible." #: ../Doc/library/asyncio-queue.rst:67 msgid "" "Return an item if one is immediately available, else raise :exc:`QueueEmpty`." msgstr "" +"Retorna un ítem si uno está inmediatamente disponible, de otra manera " +"levanta :exc:`QueueEmpty`." #: ../Doc/library/asyncio-queue.rst:72 msgid "Block until all items in the queue have been received and processed." msgstr "" +"Se bloquea hasta que todos los ítems en la cola han sido recibidos y " +"procesados." #: ../Doc/library/asyncio-queue.rst:74 msgid "" @@ -115,28 +139,36 @@ msgid "" "complete. When the count of unfinished tasks drops to zero, :meth:`join` " "unblocks." msgstr "" +"El conteo de tareas no terminadas sube siempre que un ítem es agregado a la " +"cola. El conteo baja siempre que la ejecución de una corrutina :meth:" +"`task_done` para indicar que el ítem fue recuperado y todo el trabajo en él " +"está completo. Cuando el conteo de tareas inacabadas llega a cero, :meth:" +"`join` se desbloquea." #: ../Doc/library/asyncio-queue.rst:82 msgid "" "Put an item into the queue. If the queue is full, wait until a free slot is " "available before adding the item." msgstr "" +"Pone un ítem en la cola. Si la cola está completa, espera hasta que una " +"entrada vacía esté disponible antes de agregar el ítem." #: ../Doc/library/asyncio-queue.rst:87 msgid "Put an item into the queue without blocking." -msgstr "" +msgstr "Pone un ítem en la cola sin bloquearse." #: ../Doc/library/asyncio-queue.rst:89 msgid "If no free slot is immediately available, raise :exc:`QueueFull`." msgstr "" +"Si no hay inmediatamente disponibles entradas vacías, lanza :exc:`QueueFull`." #: ../Doc/library/asyncio-queue.rst:93 msgid "Return the number of items in the queue." -msgstr "" +msgstr "Retorna el número de ítems en la cola." #: ../Doc/library/asyncio-queue.rst:97 msgid "Indicate that a formerly enqueued task is complete." -msgstr "" +msgstr "Indica que una tarea formalmente en cola está completa." #: ../Doc/library/asyncio-queue.rst:99 msgid "" @@ -144,6 +176,9 @@ msgid "" "subsequent call to :meth:`task_done` tells the queue that the processing on " "the task is complete." msgstr "" +"Usada por consumidores de la cola. Para cada :meth:`~Queue.get` usado para " +"buscar una tarea, una ejecución subsecuente a :meth:`task_done` dice a la " +"cola que el procesamiento de la tarea está completo." #: ../Doc/library/asyncio-queue.rst:103 msgid "" @@ -151,58 +186,74 @@ msgid "" "been processed (meaning that a :meth:`task_done` call was received for every " "item that had been :meth:`~Queue.put` into the queue)." msgstr "" +"Si un :meth:`join` está actualmente bloqueando, éste se resumirá cuando " +"todos los ítems han sido procesados (implicado que un método :meth:" +"`task_done` fue recibido por cada ítem que ha sido :meth:`~Queue.put` en la " +"cola." #: ../Doc/library/asyncio-queue.rst:108 msgid "" "Raises :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" +"Lanza :exc:`ValueError` si fue llamado más veces que los ítems en la cola." #: ../Doc/library/asyncio-queue.rst:113 msgid "Priority Queue" -msgstr "" +msgstr "Cola de prioridad" #: ../Doc/library/asyncio-queue.rst:117 msgid "" "A variant of :class:`Queue`; retrieves entries in priority order (lowest " "first)." msgstr "" +"Una variante de :class:`Queue`; recupera entradas en su orden de prioridad " +"(el más bajo primero)." #: ../Doc/library/asyncio-queue.rst:120 msgid "Entries are typically tuples of the form ``(priority_number, data)``." msgstr "" +"Las entradas son típicamente tuplas de la forma ``(priority_number, data)``." #: ../Doc/library/asyncio-queue.rst:125 msgid "LIFO Queue" -msgstr "" +msgstr "Cola UEPA (o *LIFO* en inglés)" #: ../Doc/library/asyncio-queue.rst:129 msgid "" "A variant of :class:`Queue` that retrieves most recently added entries first " "(last in, first out)." msgstr "" +"Una variante de una :class:`Queue` que recupera primero el elemento agregado " +"más reciente (último en entrar, primero en salir)." #: ../Doc/library/asyncio-queue.rst:134 msgid "Exceptions" -msgstr "" +msgstr "Excepciones" #: ../Doc/library/asyncio-queue.rst:138 msgid "" "This exception is raised when the :meth:`~Queue.get_nowait` method is called " "on an empty queue." msgstr "" +"Esta excepción es lanzada cuando el método :meth:`~Queue.get_nowait` es " +"ejecutado en una cola vacía." #: ../Doc/library/asyncio-queue.rst:144 msgid "" "Exception raised when the :meth:`~Queue.put_nowait` method is called on a " "queue that has reached its *maxsize*." msgstr "" +"Las excepciones son lanzadas cuando el método :meth:`~Queue.put_nowait` es " +"lanzado en una cola que ha alcanzado su *maxsize*." #: ../Doc/library/asyncio-queue.rst:149 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/asyncio-queue.rst:153 msgid "" "Queues can be used to distribute workload between several concurrent tasks::" msgstr "" +"Las colas pueden ser usadas para distribuir cargas de trabajo entre " +"múltiples tareas concurrentes::" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index d7f13c9241..72a738063b 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -6,45 +6,53 @@ # 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: 2020-10-30 20:40-0500\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: Adolfo Hristo David Roque Gámez \n" +"Language: es\n" +"X-Generator: Poedit 2.4\n" #: ../Doc/library/asyncio-subprocess.rst:7 msgid "Subprocesses" -msgstr "" +msgstr "Sub-procesos" #: ../Doc/library/asyncio-subprocess.rst:9 msgid "" "**Source code:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" "base_subprocess.py`" msgstr "" +"**Código fuente:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" +"base_subprocess.py`" #: ../Doc/library/asyncio-subprocess.rst:14 msgid "" "This section describes high-level async/await asyncio APIs to create and " "manage subprocesses." msgstr "" +"Esta sección describe APIs de alto nivel de *async/await* de asyncio para " +"crear y gestionar sub-procesos." #: ../Doc/library/asyncio-subprocess.rst:19 msgid "" "Here's an example of how asyncio can run a shell command and obtain its " "result::" msgstr "" +"Aquí podemos encontrar un ejemplo de cómo asyncio puede ejecutar un comando " +"de *shell* y obtener su resultado::" #: ../Doc/library/asyncio-subprocess.rst:40 msgid "will print::" -msgstr "" +msgstr "mostrará en pantalla:" #: ../Doc/library/asyncio-subprocess.rst:46 msgid "" @@ -53,18 +61,23 @@ msgid "" "monitor multiple subprocesses in parallel. It is indeed trivial to modify " "the above example to run several commands simultaneously::" msgstr "" +"Ya que todos las funciones de sub-procesos de asyncio son asíncronas y " +"asyncio proporciona herramientas para trabajar con tales funciones, es fácil " +"ejecutar y monitorear múltiples subprocesos en paralelo. De hecho es " +"trivial modificar los ejemplos de arriba para ejecutar varios comandos " +"simultáneamente::" #: ../Doc/library/asyncio-subprocess.rst:58 msgid "See also the `Examples`_ subsection." -msgstr "" +msgstr "Véase también la subsección `Examples`_." #: ../Doc/library/asyncio-subprocess.rst:62 msgid "Creating Subprocesses" -msgstr "" +msgstr "Creando sub-procesos" #: ../Doc/library/asyncio-subprocess.rst:68 msgid "Create a subprocess." -msgstr "" +msgstr "Crea un sub-proceso." #: ../Doc/library/asyncio-subprocess.rst:70 #: ../Doc/library/asyncio-subprocess.rst:89 @@ -73,30 +86,37 @@ msgid "" "wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:" "`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)." msgstr "" +"El argumento *limit* establece el límite del buffer para los envoltorios :" +"class:`StreamReader` para :attr:`Process.stdout` y :attr:`Process.stderr` " +"(si se pasa :attr:`subprocess.PIPE` a los argumentos *stdout* y *stderr*)." #: ../Doc/library/asyncio-subprocess.rst:74 #: ../Doc/library/asyncio-subprocess.rst:93 msgid "Return a :class:`~asyncio.subprocess.Process` instance." -msgstr "" +msgstr "Retorna una instancia de :class:`~asyncio.subprocess.Process`." #: ../Doc/library/asyncio-subprocess.rst:76 msgid "" "See the documentation of :meth:`loop.subprocess_exec` for other parameters." msgstr "" +"Véase la documentación de :meth:`loop.subprocess_exec` para los otros " +"parámetros." #: ../Doc/library/asyncio-subprocess.rst:81 #: ../Doc/library/asyncio-subprocess.rst:109 msgid "The *loop* parameter." -msgstr "" +msgstr "El parámetro *loop*." #: ../Doc/library/asyncio-subprocess.rst:87 msgid "Run the *cmd* shell command." -msgstr "" +msgstr "Ejecuta el comando de shell *cmd*." #: ../Doc/library/asyncio-subprocess.rst:95 msgid "" "See the documentation of :meth:`loop.subprocess_shell` for other parameters." msgstr "" +"Véase la documentación de :meth:`loop.subprocess_shell` para los otros " +"parámetros." #: ../Doc/library/asyncio-subprocess.rst:100 msgid "" @@ -107,6 +127,13 @@ msgid "" "escape whitespace and special shell characters in strings that are going to " "be used to construct shell commands." msgstr "" +"Es la responsabilidad de la aplicación asegurarse que todos los espacios en " +"blanco y caracteres especiales estén citados apropiadamente para evitar " +"vulnerabilidades de `inyección de instrucciones `_. La " +"función :func:`shlex.quote` puede ser usada para escapar caracteres en " +"blanco y caracteres especiales de *shell* en cadenas de caracteres a ser " +"usadas para construir comandos de *shell*." #: ../Doc/library/asyncio-subprocess.rst:113 msgid "" @@ -115,6 +142,10 @@ msgid "" "`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." #: ../Doc/library/asyncio-subprocess.rst:121 msgid "" @@ -124,14 +155,20 @@ msgid "" "`Subprocess Transports ` and :ref:`Subprocess " "Protocols `." msgstr "" +"asyncio también tiene las siguientes APIs de *bajo nivel* para trabajar con " +"sub-procesos: :meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :" +"meth:`loop.connect_read_pipe`, :meth:`loop.connect_write_pipe`, así como " +"también los :ref:`Sub-procesos de Transportes ` y los :ref:`Sub-procesos de Protocolos `." #: ../Doc/library/asyncio-subprocess.rst:129 msgid "Constants" -msgstr "" +msgstr "Constantes" #: ../Doc/library/asyncio-subprocess.rst:133 msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." -msgstr "" +msgstr "Se le puede pasar a los parámetros *stding*, *stdout* o *stderr*." #: ../Doc/library/asyncio-subprocess.rst:135 msgid "" @@ -139,6 +176,9 @@ msgid "" "subprocess.Process.stdin>` attribute will point to a :class:`StreamWriter` " "instance." msgstr "" +"Si se le pasa *PIPE* al argumento *stdin*, el atributo :attr:`Process.stdin " +"` apuntará a la instancia :class:" +"`StreamWriter`." #: ../Doc/library/asyncio-subprocess.rst:139 msgid "" @@ -147,12 +187,18 @@ msgid "" "` attributes will point to :class:" "`StreamReader` instances." msgstr "" +"Si se pasa *PIPE* a los argumentos *stdout* o *stderr*, los atributos :attr:" +"`Process.stdout ` y :attr:`Process.stderr " +"` apuntarán a las instancias :class:" +"`StreamReader`." #: ../Doc/library/asyncio-subprocess.rst:146 msgid "" "Special value that can be used as the *stderr* argument and indicates that " "standard error should be redirected into standard output." msgstr "" +"Un valor especial que puede ser usado como el argumento de *stderr* e indica " +"que los errores estándar deben ser redireccionados en la salida estándar." #: ../Doc/library/asyncio-subprocess.rst:151 msgid "" @@ -160,10 +206,14 @@ msgid "" "to process creation functions. It indicates that the special file :data:`os." "devnull` will be used for the corresponding subprocess stream." msgstr "" +"Un valor especial que puede ser usado como el argumento de *stdin*, " +"*stdout*, *stderr* para procesar funciones de creación. Indica que el " +"archivo especial :data:`os.devnull` será usado para la correspondiente " +"transmisión del sub-proceso." #: ../Doc/library/asyncio-subprocess.rst:157 msgid "Interacting with Subprocesses" -msgstr "" +msgstr "Interactuando con Subprocesos" #: ../Doc/library/asyncio-subprocess.rst:159 msgid "" @@ -172,24 +222,34 @@ msgid "" "level wrapper that allows communicating with subprocesses and watching for " "their completion." msgstr "" +"Las dos funciones :func:`create_subprocess_exec` y :func:" +"`create_subprocess_shell` retornan instancias de la clase *Process*. " +"*Process* es un envoltorio de alto nivel que permite comunicarse con los " +"subprocesos y estar atento a sus términos." #: ../Doc/library/asyncio-subprocess.rst:166 msgid "" "An object that wraps OS processes created by the :func:" "`create_subprocess_exec` and :func:`create_subprocess_shell` functions." msgstr "" +"Un objeto que envuelve procesos del SO creados por las funciones :func:" +"`create_subprocess_exec` y :func:`create_subprocess_shell`." #: ../Doc/library/asyncio-subprocess.rst:170 msgid "" "This class is designed to have a similar API to the :class:`subprocess." "Popen` class, but there are some notable differences:" msgstr "" +"Esta clase está diseñada para tener un API similar a la clase :class:" +"`subprocess.Popen`, pero hay algunas diferencias notables:" #: ../Doc/library/asyncio-subprocess.rst:174 msgid "" "unlike Popen, Process instances do not have an equivalent to the :meth:" "`~subprocess.Popen.poll` method;" msgstr "" +"a diferencia de Popen, las instancias de Process no tiene un equivalente del " +"método :meth:`~subprocess.Popen.poll`;" #: ../Doc/library/asyncio-subprocess.rst:177 msgid "" @@ -197,6 +257,9 @@ msgid "" "subprocess.Process.wait` methods don't have a *timeout* parameter: use the :" "func:`wait_for` function;" msgstr "" +"los métodos :meth:`~asyncio.subprocess.Process.communicate` y :meth:" +"`~asyncio.subprocess.Process.wait` no tienen un parámetro *timeout*: use la " +"función :func:`wait_for`;" #: ../Doc/library/asyncio-subprocess.rst:181 msgid "" @@ -204,28 +267,35 @@ msgid "" "asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " "a blocking busy loop;" msgstr "" +"el método :meth:`Process.wait() ` es " +"asíncrono, mientras que el método :meth:`subprocess.Popen.wait` es " +"implementado como un bucle de espera activa;" #: ../Doc/library/asyncio-subprocess.rst:185 msgid "the *universal_newlines* parameter is not supported." -msgstr "" +msgstr "el parámetro *universal_newlines* no es compatible." #: ../Doc/library/asyncio-subprocess.rst:187 msgid "This class is :ref:`not thread safe `." msgstr "" +"Esta clase no es segura para subprocesos (:ref:`not thread safe `)." #: ../Doc/library/asyncio-subprocess.rst:189 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." msgstr "" +"Véase también la sección :ref:`Subprocesos e Hilos `." #: ../Doc/library/asyncio-subprocess.rst:194 msgid "Wait for the child process to terminate." -msgstr "" +msgstr "Espera a que el proceso hijo termine." #: ../Doc/library/asyncio-subprocess.rst:196 msgid "Set and return the :attr:`returncode` attribute." -msgstr "" +msgstr "Define y retorna el atributo :attr:`returncode`." #: ../Doc/library/asyncio-subprocess.rst:200 msgid "" @@ -234,32 +304,38 @@ msgid "" "pipe buffer to accept more data. Use the :meth:`communicate` method when " "using pipes to avoid this condition." msgstr "" +"Este método puede bloquearse cuando usa ``stdout=PIPE`` o ``stderr=PIPE`` y " +"el proceso hijo genera tanta salida que se bloquea esperando a que la " +"tubería de búfer del SO acepte más datos. Use el método :meth:`communicate` " +"cuando use tuberías para evitar esta condición." #: ../Doc/library/asyncio-subprocess.rst:208 msgid "Interact with process:" -msgstr "" +msgstr "Interactuar con el proceso:" #: ../Doc/library/asyncio-subprocess.rst:210 msgid "send data to *stdin* (if *input* is not ``None``);" -msgstr "" +msgstr "envía datos a *stdin* (si *input* no es ``None``);" #: ../Doc/library/asyncio-subprocess.rst:211 msgid "read data from *stdout* and *stderr*, until EOF is reached;" -msgstr "" +msgstr "lee datos desde *stdout* y *stderr*, hasta que el llegue al EOF;" #: ../Doc/library/asyncio-subprocess.rst:212 msgid "wait for process to terminate." -msgstr "" +msgstr "espera a que el proceso termine." #: ../Doc/library/asyncio-subprocess.rst:214 msgid "" "The optional *input* argument is the data (:class:`bytes` object) that will " "be sent to the child process." msgstr "" +"El argumento opcional *input* son los datos (objetos :class:`bytes`) que " +"serán enviados a los procesos hijos." #: ../Doc/library/asyncio-subprocess.rst:217 msgid "Return a tuple ``(stdout_data, stderr_data)``." -msgstr "" +msgstr "Retorna una tupla ``(stdout_data, stderr_data)``." #: ../Doc/library/asyncio-subprocess.rst:219 msgid "" @@ -268,6 +344,10 @@ msgid "" "condition occurs when the process exits before all data are written into " "*stdin*." msgstr "" +"Si se levanta la excepción :exc:`BrokenPipeError` o :exc:" +"`ConnectionResetError` cuando se escribe *input* en *stdin*, la excepción es " +"ignorada. Esta condición ocurre cuando el proceso finaliza antes de que " +"todos los datos sean escritos en *stdin*." #: ../Doc/library/asyncio-subprocess.rst:224 msgid "" @@ -276,16 +356,22 @@ msgid "" "``None`` in the result tuple, the process has to be created with " "``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." msgstr "" +"Si se desea enviar datos al *stdin* del proceso, el proceso necesita ser " +"creado con ``stdin=PIPE``. De manera similar, para obtener cualquier cosa " +"excepto ``None`` en la tupla del resultado, el proceso tiene que ser creado " +"con los argumentos ``stdout=PIPE`` y/o ``stderr=PIPE``." #: ../Doc/library/asyncio-subprocess.rst:230 msgid "" "Note, that the data read is buffered in memory, so do not use this method if " "the data size is large or unlimited." msgstr "" +"Tenga en cuenta que los datos leídos son almacenados en memoria, por lo que " +"no utilice este método si el tamaño de los datos es más grande o ilimitado." #: ../Doc/library/asyncio-subprocess.rst:235 msgid "Sends the signal *signal* to the child process." -msgstr "" +msgstr "Envíe la señal *signal* al proceso hijo." #: ../Doc/library/asyncio-subprocess.rst:239 msgid "" @@ -293,53 +379,67 @@ msgid "" "``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " "with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." msgstr "" +"En Windows, :py:data:`SIGTERM` es un alias para :meth:`terminate`. Se puede " +"enviar ``CTRL_C_EVENT`` y ``CTRL_BREAK_EVENT`` a procesos iniciados con un " +"parámetro *creationflags* que incluye ``CREATE_NEW_PROCESS_GROUP``." #: ../Doc/library/asyncio-subprocess.rst:246 msgid "Stop the child process." -msgstr "" +msgstr "Para al proceso hijo." #: ../Doc/library/asyncio-subprocess.rst:248 msgid "" "On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child " "process." msgstr "" +"En sistemas POSIX este método envía :py:data:`signal.SIGNTERM` al proceso " +"hijo." #: ../Doc/library/asyncio-subprocess.rst:251 msgid "" "On Windows the Win32 API function :c:func:`TerminateProcess` is called to " "stop the child process." msgstr "" +"En Windows, la función de la API de Win32 :c:func:`TerminateProcess` es " +"llamado para parar a los procesos hijos." #: ../Doc/library/asyncio-subprocess.rst:256 msgid "Kill the child." -msgstr "" +msgstr "Termina el proceso hijo." #: ../Doc/library/asyncio-subprocess.rst:258 msgid "" "On POSIX systems this method sends :py:data:`SIGKILL` to the child process." msgstr "" +"En sistemas POSIX, este método envía :py:data:`SIGKILL` al proceso hijo." #: ../Doc/library/asyncio-subprocess.rst:261 msgid "On Windows this method is an alias for :meth:`terminate`." -msgstr "" +msgstr "En Windows este método es un alias para :meth:`terminate`." #: ../Doc/library/asyncio-subprocess.rst:265 msgid "" "Standard input stream (:class:`StreamWriter`) or ``None`` if the process was " "created with ``stdin=None``." msgstr "" +"Flujo de entrada estándar (:class:`StreamWriter`) o ``None`` si el proceso " +"fue creado con ``stdin=None``." #: ../Doc/library/asyncio-subprocess.rst:270 msgid "" "Standard output stream (:class:`StreamReader`) or ``None`` if the process " "was created with ``stdout=None``." msgstr "" +"Flujo de salida estándar (:class:`SreamReader`) o ``None`` si el proceso fue " +"creado con ``stdout=None``." #: ../Doc/library/asyncio-subprocess.rst:275 msgid "" "Standard error stream (:class:`StreamReader`) or ``None`` if the process was " "created with ``stderr=None``." msgstr "" +"Flujo de salida estándar (:class:`StreamReader`) o ``None`` si el proceso " +"fue creado con ``stderr=None``." #: ../Doc/library/asyncio-subprocess.rst:280 msgid "" @@ -348,80 +448,103 @@ msgid "" "process.stderr.read `. This avoids deadlocks due to streams pausing " "reading or writing and blocking the child process." msgstr "" +"Utilice el método :meth:`communicate` en vez de :attr:`process.stdin.write() " +"`, :attr:`await process.stdout.read() ` o :attr:`await " +"process.stderr.read `. Esto evita bloqueos debido a que los flujos " +"pausan la lectura o escritura y bloqueando al proceso hijo." #: ../Doc/library/asyncio-subprocess.rst:289 msgid "Process identification number (PID)." -msgstr "" +msgstr "Número de identificación del Proceso (PID por sus siglas en inglés)." #: ../Doc/library/asyncio-subprocess.rst:291 msgid "" "Note that for processes created by the :func:`create_subprocess_shell` " "function, this attribute is the PID of the spawned shell." msgstr "" +"Tenga en cuenta que para procesos creados por la función :func:`create­" +"_subprocess_shell`, este atributo es el PID del shell generado." #: ../Doc/library/asyncio-subprocess.rst:296 msgid "Return code of the process when it exits." -msgstr "" +msgstr "Código de retorno del proceso cuando finaliza." #: ../Doc/library/asyncio-subprocess.rst:298 msgid "A ``None`` value indicates that the process has not terminated yet." -msgstr "" +msgstr "Un valor ``None`` indica que el proceso todavía no ha finalizado." #: ../Doc/library/asyncio-subprocess.rst:300 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." msgstr "" +"Un valor negativo ``-N`` indica que el hijo ha finalizado por la señal ``N`` " +"(sólo para POSIX)." #: ../Doc/library/asyncio-subprocess.rst:307 msgid "Subprocess and Threads" -msgstr "" +msgstr "Subprocesos y Hilos" #: ../Doc/library/asyncio-subprocess.rst:309 msgid "" "Standard asyncio event loop supports running subprocesses from different " "threads by default." msgstr "" +"Por defecto el bucle de eventos de asyncio estándar permite correr " +"subprocesos desde hilos diferentes." #: ../Doc/library/asyncio-subprocess.rst:312 msgid "" "On Windows subprocesses are provided by :class:`ProactorEventLoop` only " "(default), :class:`SelectorEventLoop` has no subprocess support." msgstr "" +"En Windows, sólo :class:`ProactorEventLoop` proporciona subprocesos (por " +"defecto), :class:`SelectorEventLoop` no es compatible con subprocesos." #: ../Doc/library/asyncio-subprocess.rst:315 msgid "" "On UNIX *child watchers* are used for subprocess finish waiting, see :ref:" "`asyncio-watchers` for more info." msgstr "" +"En UNIX, los *observadores de hijos* son usados para la espera de " +"finalización de subprocesos, véase :ref:`asyncio-watchers` para más " +"información." #: ../Doc/library/asyncio-subprocess.rst:321 msgid "" "UNIX switched to use :class:`ThreadedChildWatcher` for spawning subprocesses " "from different threads without any limitation." msgstr "" +"UNIX cambió para usar :class:`ThreadedChildWatcher` para generar subprocesos " +"de hilos diferentes sin ninguna limitación." #: ../Doc/library/asyncio-subprocess.rst:324 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" +"Crear un subproceso con el observador del hijo *inactivo* lanza un :exc:" +"`RuntimeError`." #: ../Doc/library/asyncio-subprocess.rst:327 msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." msgstr "" +"Tenga en cuenta que implementaciones alternativas del bucle de eventos " +"pueden tener limitaciones propias; por favor consulte su documentación." #: ../Doc/library/asyncio-subprocess.rst:332 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" +"La sección :ref:`Concurrencia y multihilos en asyncio `." #: ../Doc/library/asyncio-subprocess.rst:337 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/asyncio-subprocess.rst:339 msgid "" @@ -429,14 +552,20 @@ msgid "" "subprocess and the :class:`StreamReader` class to read from its standard " "output." msgstr "" +"Un ejemplo usando la clase :class:`~asyncio.subprocess.Process` para " +"controlar un subproceso y la clase :class:`StreamReader` para leer de su " +"salida estándar." #: ../Doc/library/asyncio-subprocess.rst:345 msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" +"El subproceso es creado por la función :func:`create_subprocess_exec`::" #: ../Doc/library/asyncio-subprocess.rst:372 msgid "" "See also the :ref:`same example ` written " "using low-level APIs." msgstr "" +"Véase también los :ref:`ejemplos de prueba " +"` escritos usando APIs de bajo nivel." diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 53005f0816..211025f6b8 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -6,33 +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: 2020-12-12 14:25-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: Emmanuel Arias \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/asyncio-task.rst:6 msgid "Coroutines and Tasks" -msgstr "" +msgstr "Corrutinas y Tareas" #: ../Doc/library/asyncio-task.rst:8 msgid "" "This section outlines high-level asyncio APIs to work with coroutines and " "Tasks." msgstr "" +"Esta sección describe las API de asyncio de alto nivel para trabajar con " +"corrutinas y tareas." #: ../Doc/library/asyncio-task.rst:19 ../Doc/library/asyncio-task.rst:121 msgid "Coroutines" -msgstr "" +msgstr "Corrutinas" #: ../Doc/library/asyncio-task.rst:21 msgid "" @@ -41,21 +45,31 @@ msgid "" "snippet of code (requires Python 3.7+) prints \"hello\", waits 1 second, and " "then prints \"world\"::" msgstr "" +":term:`Coroutines ` declarado con la sintaxis async/await es la " +"forma preferida de escribir aplicaciones asyncio. Por ejemplo, el siguiente " +"fragmento de código (requiere Python 3.7+) imprime \"hola\", espera 1 " +"segundo y, a continuación, imprime \"mundo\"::" #: ../Doc/library/asyncio-task.rst:37 msgid "" "Note that simply calling a coroutine will not schedule it to be executed::" msgstr "" +"Tenga en cuenta que simplemente llamando a una corrutina no programará para " +"que se ejecute::" #: ../Doc/library/asyncio-task.rst:43 msgid "To actually run a coroutine, asyncio provides three main mechanisms:" msgstr "" +"Para ejecutar realmente una corrutina, asyncio proporciona tres mecanismos " +"principales:" #: ../Doc/library/asyncio-task.rst:45 msgid "" "The :func:`asyncio.run` function to run the top-level entry point \"main()\" " "function (see the above example.)" msgstr "" +"La función :func:`asyncio.run` para ejecutar la función de punto de entrada " +"de nivel superior \"main()\" (consulte el ejemplo anterior.)" #: ../Doc/library/asyncio-task.rst:48 msgid "" @@ -63,32 +77,41 @@ msgid "" "after waiting for 1 second, and then print \"world\" after waiting for " "*another* 2 seconds::" msgstr "" +"Esperando en una corrutina. El siguiente fragmento de código imprimirá \"hola" +"\" después de esperar 1 segundo y luego imprimirá \"mundo\" después de " +"esperar *otros* 2 segundos::" #: ../Doc/library/asyncio-task.rst:69 msgid "Expected output::" -msgstr "" +msgstr "Salida esperada::" #: ../Doc/library/asyncio-task.rst:76 msgid "" "The :func:`asyncio.create_task` function to run coroutines concurrently as " "asyncio :class:`Tasks `." msgstr "" +"La función :func:`asyncio.create_task` para ejecutar corrutinas " +"concurrentemente como asyncio :class:`Tasks `." #: ../Doc/library/asyncio-task.rst:79 msgid "" "Let's modify the above example and run two ``say_after`` coroutines " "*concurrently*::" msgstr "" +"Modifiquemos el ejemplo anterior y ejecutemos dos corrutinas ``say_after`` " +"*concurrentemente*::" #: ../Doc/library/asyncio-task.rst:98 msgid "" "Note that expected output now shows that the snippet runs 1 second faster " "than before::" msgstr "" +"Tenga en cuenta que la salida esperada ahora muestra que el fragmento de " +"código se ejecuta 1 segundo más rápido que antes::" #: ../Doc/library/asyncio-task.rst:110 msgid "Awaitables" -msgstr "" +msgstr "Esperables" #: ../Doc/library/asyncio-task.rst:112 msgid "" @@ -96,117 +119,150 @@ msgid "" "keyword:`await` expression. Many asyncio APIs are designed to accept " "awaitables." msgstr "" +"Decimos que un objeto es un objeto **esperable** si se puede utilizar en una " +"expresión :keyword:`await`. Muchas API de asyncio están diseñadas para " +"aceptar los valores esperables." #: ../Doc/library/asyncio-task.rst:116 msgid "" "There are three main types of *awaitable* objects: **coroutines**, " "**Tasks**, and **Futures**." msgstr "" +"Hay tres tipos principales de objetos *esperables*: **corrutinas**, " +"**Tareas** y **Futuros**." #: ../Doc/library/asyncio-task.rst:122 msgid "" "Python coroutines are *awaitables* and therefore can be awaited from other " "coroutines::" msgstr "" +"Las corrutinas de Python son *esperables* y por lo tanto se pueden esperar " +"de otras corrutinas::" #: ../Doc/library/asyncio-task.rst:143 msgid "" "In this documentation the term \"coroutine\" can be used for two closely " "related concepts:" msgstr "" +"En esta documentación se puede utilizar el término \"corrutina\" para dos " +"conceptos estrechamente relacionados:" #: ../Doc/library/asyncio-task.rst:146 msgid "a *coroutine function*: an :keyword:`async def` function;" -msgstr "" +msgstr "una *función corrutina*: una función :keyword:`async def`;" #: ../Doc/library/asyncio-task.rst:148 msgid "" "a *coroutine object*: an object returned by calling a *coroutine function*." msgstr "" +"un *objeto corrutina*: un objeto retornado llamando a una *función " +"corrutina*." #: ../Doc/library/asyncio-task.rst:151 msgid "" "asyncio also supports legacy :ref:`generator-based " "` coroutines." msgstr "" +"asyncio también es compatible con corrutinas heredadas :ref:`generator-based " +"`." #: ../Doc/library/asyncio-task.rst:156 msgid "Tasks" -msgstr "" +msgstr "Tareas" #: ../Doc/library/asyncio-task.rst:157 msgid "*Tasks* are used to schedule coroutines *concurrently*." -msgstr "" +msgstr "*Las tareas* se utilizan para programar corrutinas *concurrentemente*." #: ../Doc/library/asyncio-task.rst:159 msgid "" "When a coroutine is wrapped into a *Task* with functions like :func:`asyncio." "create_task` the coroutine is automatically scheduled to run soon::" msgstr "" +"Cuando una corrutina se envuelve en una *Tarea* con funciones como :func:" +"`asyncio.create_task` la corrutina se programa automáticamente para " +"ejecutarse pronto::" #: ../Doc/library/asyncio-task.rst:181 msgid "Futures" -msgstr "" +msgstr "Futuros" #: ../Doc/library/asyncio-task.rst:182 msgid "" "A :class:`Future` is a special **low-level** awaitable object that " "represents an **eventual result** of an asynchronous operation." msgstr "" +"Un :class:`Future` es un objeto esperable especial de **bajo-nivel** que " +"representa un **resultado eventual** de una operación asíncrona." #: ../Doc/library/asyncio-task.rst:185 msgid "" "When a Future object is *awaited* it means that the coroutine will wait " "until the Future is resolved in some other place." msgstr "" +"Cuando un objeto Future es *esperado* significa que la corrutina esperará " +"hasta que el Future se resuelva en algún otro lugar." #: ../Doc/library/asyncio-task.rst:188 msgid "" "Future objects in asyncio are needed to allow callback-based code to be used " "with async/await." msgstr "" +"Los objetos Future de asyncio son necesarios para permitir que el código " +"basado en retro llamada se use con async/await." #: ../Doc/library/asyncio-task.rst:191 msgid "" "Normally **there is no need** to create Future objects at the application " "level code." msgstr "" +"Normalmente , **no es necesario** crear objetos Future en el código de nivel " +"de aplicación." #: ../Doc/library/asyncio-task.rst:194 msgid "" "Future objects, sometimes exposed by libraries and some asyncio APIs, can be " "awaited::" msgstr "" +"Los objetos Future, a veces expuestos por bibliotecas y algunas API de " +"asyncio, pueden ser esperados::" #: ../Doc/library/asyncio-task.rst:206 msgid "" "A good example of a low-level function that returns a Future object is :meth:" "`loop.run_in_executor`." msgstr "" +"Un buen ejemplo de una función de bajo nivel que retorna un objeto Future " +"es :meth:`loop.run_in_executor`." #: ../Doc/library/asyncio-task.rst:211 msgid "Running an asyncio Program" -msgstr "" +msgstr "Ejecutando un programa asyncio" #: ../Doc/library/asyncio-task.rst:215 msgid "Execute the :term:`coroutine` *coro* and return the result." -msgstr "" +msgstr "Ejecuta la :term:`coroutine` *coro* y retornando el resultado." #: ../Doc/library/asyncio-task.rst:217 msgid "" "This function runs the passed coroutine, taking care of managing the asyncio " "event loop and *finalizing asynchronous generators*." msgstr "" +"Esta función ejecuta la corrutina pasada, encargándose de administrar el " +"bucle de eventos asyncio y *finalizar los generadores asíncronos*." #: ../Doc/library/asyncio-task.rst:221 msgid "" "This function cannot be called when another asyncio event loop is running in " "the same thread." msgstr "" +"Esta función no se puede llamar cuando otro bucle de eventos asyncio se está " +"ejecutando en el mismo hilo." #: ../Doc/library/asyncio-task.rst:224 msgid "If *debug* is ``True``, the event loop will be run in debug mode." msgstr "" +"Si *debug* es ``True``, el bucle de eventos se ejecutará en modo debug." #: ../Doc/library/asyncio-task.rst:226 msgid "" @@ -214,96 +270,121 @@ msgid "" "should be used as a main entry point for asyncio programs, and should " "ideally only be called once." msgstr "" +"Esta función siempre crea un nuevo ciclo de eventos y lo cierra al final. " +"Debe usarse como un punto de entrada principal para los programas asyncio, e " +"idealmente solo debe llamarse una vez." #: ../Doc/library/asyncio-task.rst:230 ../Doc/library/asyncio-task.rst:354 #: ../Doc/library/asyncio-task.rst:463 ../Doc/library/asyncio-task.rst:593 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/library/asyncio-task.rst:242 msgid "" "The source code for ``asyncio.run()`` can be found in :source:`Lib/asyncio/" "runners.py`." msgstr "" +"El código fuente para ``asyncio.run()`` se puede encontrar en :source:`Lib/" +"asyncio/runners.py`." #: ../Doc/library/asyncio-task.rst:246 msgid "Creating Tasks" -msgstr "" +msgstr "Creando Tareas" #: ../Doc/library/asyncio-task.rst:250 msgid "" "Wrap the *coro* :ref:`coroutine ` into a :class:`Task` and " "schedule its execution. Return the Task object." msgstr "" +"Envuelve una :ref:`coroutine ` *coro* en una :class:`Task` y " +"programa su ejecución. Retorna el objeto Tarea." #: ../Doc/library/asyncio-task.rst:253 msgid "" "If *name* is not ``None``, it is set as the name of the task using :meth:" "`Task.set_name`." msgstr "" +"Si *name* no es ``None``, se establece como el nombre de la tarea mediante :" +"meth:`Task.set_name`." #: ../Doc/library/asyncio-task.rst:256 msgid "" "The task is executed in the loop returned by :func:`get_running_loop`, :exc:" "`RuntimeError` is raised if there is no running loop in current thread." msgstr "" +"La tarea se ejecuta en el bucle retornado por :func:`get_running_loop`, :exc:" +"`RuntimeError` se genera si no hay ningún bucle en ejecución en el " +"subproceso actual." #: ../Doc/library/asyncio-task.rst:260 msgid "" "This function has been **added in Python 3.7**. Prior to Python 3.7, the " "low-level :func:`asyncio.ensure_future` function can be used instead::" msgstr "" +"Esta función se ha **añadido en Python 3.7**. Antes de Python 3.7, la " +"función de bajo nivel :func:`asyncio.ensure_future` se puede utilizar en su " +"lugar::" #: ../Doc/library/asyncio-task.rst:277 ../Doc/library/asyncio-task.rst:716 msgid "Added the ``name`` parameter." -msgstr "" +msgstr "Se ha añadido el parámetro ``name``." #: ../Doc/library/asyncio-task.rst:282 msgid "Sleeping" -msgstr "" +msgstr "Durmiendo" #: ../Doc/library/asyncio-task.rst:286 msgid "Block for *delay* seconds." -msgstr "" +msgstr "Bloquea por *delay* segundos." #: ../Doc/library/asyncio-task.rst:288 msgid "" "If *result* is provided, it is returned to the caller when the coroutine " "completes." msgstr "" +"Si se proporciona *result*, se retorna al autor de la llamada cuando se " +"completa la corrutina." #: ../Doc/library/asyncio-task.rst:291 msgid "" "``sleep()`` always suspends the current task, allowing other tasks to run." msgstr "" +"``sleep()`` siempre suspende la tarea actual, permitiendo que se ejecuten " +"otras tareas." #: ../Doc/library/asyncio-task.rst:296 ../Doc/library/asyncio-task.rst:351 #: ../Doc/library/asyncio-task.rst:430 ../Doc/library/asyncio-task.rst:460 #: ../Doc/library/asyncio-task.rst:545 ../Doc/library/asyncio-task.rst:592 #: ../Doc/library/asyncio-task.rst:721 msgid "The *loop* parameter." -msgstr "" +msgstr "El parámetro *loop*." #: ../Doc/library/asyncio-task.rst:299 msgid "" "Example of coroutine displaying the current date every second for 5 seconds::" msgstr "" +"Ejemplo de una rutina que muestra la fecha actual cada segundo durante 5 " +"segundos::" #: ../Doc/library/asyncio-task.rst:318 msgid "Running Tasks Concurrently" -msgstr "" +msgstr "Ejecutando Tareas Concurrentemente" #: ../Doc/library/asyncio-task.rst:322 msgid "" "Run :ref:`awaitable objects ` in the *aws* sequence " "*concurrently*." msgstr "" +"Ejecute :ref:`objetos esperables ` en la secuencia *aws* " +"de forma *concurrently*." #: ../Doc/library/asyncio-task.rst:325 msgid "" "If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " "Task." msgstr "" +"Si cualquier esperable en *aws* es una corrutina, se programa " +"automáticamente como una Tarea." #: ../Doc/library/asyncio-task.rst:328 msgid "" @@ -311,6 +392,9 @@ msgid "" "list of returned values. The order of result values corresponds to the " "order of awaitables in *aws*." msgstr "" +"Si todos los esperables se completan correctamente, el resultado es una " +"lista agregada de valores retornados. El orden de los valores de resultado " +"corresponde al orden de esperables en *aws*." #: ../Doc/library/asyncio-task.rst:332 msgid "" @@ -319,18 +403,26 @@ msgid "" "awaitables in the *aws* sequence **won't be cancelled** and will continue to " "run." msgstr "" +"Si *return_exceptions* es ``False`` (valor predeterminado), la primera " +"excepción provocada se propaga inmediatamente a la tarea que espera en " +"``gather()``. Otros esperables en la secuencia *aws* **no se cancelarán** y " +"continuarán ejecutándose." #: ../Doc/library/asyncio-task.rst:337 msgid "" "If *return_exceptions* is ``True``, exceptions are treated the same as " "successful results, and aggregated in the result list." msgstr "" +"Si *return_exceptions* es ``True``, las excepciones se tratan igual que los " +"resultados correctos y se agregan en la lista de resultados." #: ../Doc/library/asyncio-task.rst:340 msgid "" "If ``gather()`` is *cancelled*, all submitted awaitables (that have not " "completed yet) are also *cancelled*." msgstr "" +"Si ``gather()`` es *cancelado*, todos los esperables enviados (que aún no se " +"han completado) también se *cancelan*." #: ../Doc/library/asyncio-task.rst:343 msgid "" @@ -339,34 +431,42 @@ msgid "" "cancelled in this case. This is to prevent the cancellation of one " "submitted Task/Future to cause other Tasks/Futures to be cancelled." msgstr "" +"Si alguna Tarea o Futuro de la secuencia *aws* se *cancela*, se trata como " +"si se lanzara :exc:`CancelledError` -- la llamada ``gather()`` **no** se " +"cancela en este caso. Esto es para evitar la cancelación de una Tarea/Futuro " +"enviada para hacer que otras Tareas/Futuros sean canceladas." #: ../Doc/library/asyncio-task.rst:388 msgid "" "If the *gather* itself is cancelled, the cancellation is propagated " "regardless of *return_exceptions*." msgstr "" +"Si se cancela el propio *gather*, la cancelación se propaga " +"independientemente de *return_exceptions*." #: ../Doc/library/asyncio-task.rst:394 msgid "Shielding From Cancellation" -msgstr "" +msgstr "Protección contra Cancelación" #: ../Doc/library/asyncio-task.rst:398 msgid "" "Protect an :ref:`awaitable object ` from being :meth:" "`cancelled `." msgstr "" +"Protege un :ref:`objeto esperable ` de ser :meth:" +"`cancelado `." #: ../Doc/library/asyncio-task.rst:401 ../Doc/library/asyncio-task.rst:441 msgid "If *aw* is a coroutine it is automatically scheduled as a Task." -msgstr "" +msgstr "Si *aw* es una corrutina, se programa automáticamente como una Tarea." #: ../Doc/library/asyncio-task.rst:403 msgid "The statement::" -msgstr "" +msgstr "La declaración::" #: ../Doc/library/asyncio-task.rst:407 msgid "is equivalent to::" -msgstr "" +msgstr "es equivalente a::" #: ../Doc/library/asyncio-task.rst:411 msgid "" @@ -376,12 +476,19 @@ msgid "" "still cancelled, so the \"await\" expression still raises a :exc:" "`CancelledError`." msgstr "" +"*excepto* que si la corrutina que lo contiene se cancela, la tarea que se " +"ejecuta en ``something()`` no se cancela. Desde el punto de vista de " +"``something()``, la cancelación no ocurrió. Aunque su invocador siga " +"cancelado, por lo que la expresión \"await\" sigue generando un :exc:" +"`CancelledError`." #: ../Doc/library/asyncio-task.rst:417 msgid "" "If ``something()`` is cancelled by other means (i.e. from within itself) " "that would also cancel ``shield()``." msgstr "" +"Si ``something()`` se cancela por otros medios (es decir, desde dentro de sí " +"mismo) eso también cancelaría ``shield()``." #: ../Doc/library/asyncio-task.rst:420 msgid "" @@ -389,74 +496,96 @@ msgid "" "``shield()`` function should be combined with a try/except clause, as " "follows::" msgstr "" +"Si se desea ignorar por completo la cancelación (no se recomienda) la " +"función ``shield()`` debe combinarse con una cláusula try/except, como se " +"indica a continuación::" #: ../Doc/library/asyncio-task.rst:434 msgid "Timeouts" -msgstr "" +msgstr "Tiempo agotado" #: ../Doc/library/asyncio-task.rst:438 msgid "" "Wait for the *aw* :ref:`awaitable ` to complete with a " "timeout." msgstr "" +"Espere a que el *aw* :ref:`esperable ` se complete con " +"un tiempo agotado." #: ../Doc/library/asyncio-task.rst:443 msgid "" "*timeout* can either be ``None`` or a float or int number of seconds to wait " "for. If *timeout* is ``None``, block until the future completes." msgstr "" +"*timeout* puede ser ``None`` o punto flotante o un número entero de segundos " +"a esperar. Si *timeout* es ``None``, se bloquea hasta que futuro se complete." #: ../Doc/library/asyncio-task.rst:447 msgid "" "If a timeout occurs, it cancels the task and raises :exc:`asyncio." "TimeoutError`." msgstr "" +"Si se produce un agotamiento de tiempo, cancela la tarea y genera :exc:" +"`asyncio.TimeoutError`." #: ../Doc/library/asyncio-task.rst:450 msgid "" "To avoid the task :meth:`cancellation `, wrap it in :func:" "`shield`." msgstr "" +"Para evitar la :meth:`cancelación ` de la tarea , envuélvala " +"en :func:`shield`." #: ../Doc/library/asyncio-task.rst:453 msgid "" "The function will wait until the future is actually cancelled, so the total " "wait time may exceed the *timeout*." msgstr "" +"La función esperará hasta que el futuro este cancelado, por lo que el tiempo " +"de espera total puede superar el *timeout*." #: ../Doc/library/asyncio-task.rst:456 msgid "If the wait is cancelled, the future *aw* is also cancelled." -msgstr "" +msgstr "Si se cancela la espera, el futuro *aw* también se cancela." #: ../Doc/library/asyncio-task.rst:483 msgid "" "When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " "cancelled. Previously, it raised :exc:`asyncio.TimeoutError` immediately." msgstr "" +"Cuando *aw* se cancela debido a un agotamiento de tiempo, ``wait_for`` " +"espera a que se cancele *aw*. Anteriormente, se lanzó inmediatamente :exc:" +"`asyncio.TimeoutError`." #: ../Doc/library/asyncio-task.rst:490 msgid "Waiting Primitives" -msgstr "" +msgstr "Esperando Primitivas" #: ../Doc/library/asyncio-task.rst:495 msgid "" "Run :ref:`awaitable objects ` in the *aws* set " "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*." #: ../Doc/library/asyncio-task.rst:499 msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." -msgstr "" +msgstr "Retorna dos conjuntos de Tareas/Futuros: ``(done, pending)``." #: ../Doc/library/asyncio-task.rst:501 msgid "Usage::" -msgstr "" +msgstr "Uso::" #: ../Doc/library/asyncio-task.rst:505 msgid "" "*timeout* (a float or int), if specified, can be used to control the maximum " "number of seconds to wait before returning." msgstr "" +"*timeout* (un punto flotante o int), si se especifica, se puede utilizar " +"para controlar el número máximo de segundos que hay que esperar antes de " +"retornar." #: ../Doc/library/asyncio-task.rst:508 msgid "" @@ -464,32 +593,37 @@ msgid "" "or Tasks that aren't done when the timeout occurs are simply returned in the " "second set." msgstr "" +"Tenga en cuenta que esta función no lanza :exc:`asyncio.TimeoutError`. Los " +"Futuros o Tareas que no terminan cuando se agota el tiempo simplemente se " +"retornan en el segundo conjunto." #: ../Doc/library/asyncio-task.rst:512 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" msgstr "" +"*return_when* indica cuándo debe retornar esta función. Debe ser una de las " +"siguientes constantes:" #: ../Doc/library/asyncio-task.rst:518 msgid "Constant" -msgstr "" +msgstr "Constante" #: ../Doc/library/asyncio-task.rst:518 msgid "Description" -msgstr "" +msgstr "Descripción" #: ../Doc/library/asyncio-task.rst:520 msgid ":const:`FIRST_COMPLETED`" -msgstr "" +msgstr ":const:`FIRST_COMPLETED`" #: ../Doc/library/asyncio-task.rst:520 msgid "The function will return when any future finishes or is cancelled." -msgstr "" +msgstr "La función retornará cuando cualquier Futuro termine o se cancele." #: ../Doc/library/asyncio-task.rst:523 msgid ":const:`FIRST_EXCEPTION`" -msgstr "" +msgstr ":const:`FIRST_EXCEPTION`" #: ../Doc/library/asyncio-task.rst:523 msgid "" @@ -497,20 +631,25 @@ msgid "" "If no future raises an exception then it is equivalent to :const:" "`ALL_COMPLETED`." msgstr "" +"La función retornará cuando cualquier Futuro finalice lanzando una " +"excepción. Si ningún Futuro lanza una excepción, entonces es equivalente a :" +"const:`ALL_COMPLETED`." #: ../Doc/library/asyncio-task.rst:529 msgid ":const:`ALL_COMPLETED`" -msgstr "" +msgstr ":const:`ALL_COMPLETED`" #: ../Doc/library/asyncio-task.rst:529 msgid "The function will return when all futures finish or are cancelled." -msgstr "" +msgstr "La función retornará cuando todos los Futuros terminen o se cancelen." #: ../Doc/library/asyncio-task.rst:533 msgid "" "Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " "when a timeout occurs." msgstr "" +"A diferencia de :func:`~asyncio.wait_for`, ``wait()`` no cancela los Futuros " +"cuando se produce un agotamiento de tiempo." #: ../Doc/library/asyncio-task.rst:538 msgid "" @@ -518,6 +657,10 @@ msgid "" "Task. Passing coroutines objects to ``wait()`` directly is deprecated as it " "leads to :ref:`confusing behavior `." msgstr "" +"Si cualquier aguardable en *aws* es una corrutina, se programa " +"automáticamente como una Tarea. El paso de objetos corrutinas a ``wait()`` " +"directamente está en desuso, ya que conduce a :ref:`comportamiento confuso " +"`." #: ../Doc/library/asyncio-task.rst:550 msgid "" @@ -525,14 +668,18 @@ msgid "" "those implicitly created Task objects in ``(done, pending)`` sets. " "Therefore the following code won't work as expected::" msgstr "" +"``wait()`` programa las corrutinas como Tareas automáticamente y " +"posteriormente retorna los objetos Tarea creados implícitamente en conjuntos " +"``(done, pending)``. Por lo tanto, el código siguiente no funcionará como se " +"esperaba::" #: ../Doc/library/asyncio-task.rst:563 msgid "Here is how the above snippet can be fixed::" -msgstr "" +msgstr "Aquí es cómo se puede arreglar el fragmento de código anterior::" #: ../Doc/library/asyncio-task.rst:576 msgid "Passing coroutine objects to ``wait()`` directly is deprecated." -msgstr "" +msgstr "El paso de objetos corrutina a ``wait()`` directamente está en desuso." #: ../Doc/library/asyncio-task.rst:582 msgid "" @@ -541,86 +688,113 @@ msgid "" "object returned represents the earliest result from the set of the remaining " "awaitables." msgstr "" +"Ejecute :ref:`objetos aguardables ` en el conjunto *aws* " +"simultáneamente. Devuelve un iterador de objetos :class:`Future`. Cada " +"objeto Future devuelto representa el resultado más antiguo del conjunto de " +"los aguardables restantes." #: ../Doc/library/asyncio-task.rst:587 msgid "" "Raises :exc:`asyncio.TimeoutError` if the timeout occurs before all Futures " "are done." msgstr "" +"Lanza :exc:`asyncio.TimeoutError` si el agotamiento de tiempo ocurre antes " +"que todos los Futuros terminen." #: ../Doc/library/asyncio-task.rst:601 msgid "Scheduling From Other Threads" -msgstr "" +msgstr "Planificación Desde Otros Hilos" #: ../Doc/library/asyncio-task.rst:605 msgid "Submit a coroutine to the given event loop. Thread-safe." msgstr "" +"Envía una corrutina al bucle de eventos especificado. Seguro para Hilos." #: ../Doc/library/asyncio-task.rst:607 msgid "" "Return a :class:`concurrent.futures.Future` to wait for the result from " "another OS thread." msgstr "" +"Retorna :class:`concurrent.futures.Future` para esperar el resultado de otro " +"hilo del SO (Sistema Operativo)." #: ../Doc/library/asyncio-task.rst:610 msgid "" "This function is meant to be called from a different OS thread than the one " "where the event loop is running. Example::" msgstr "" +"Esta función está pensada para llamarse desde un hilo del SO diferente al " +"que se ejecuta el bucle de eventos. Ejemplo::" #: ../Doc/library/asyncio-task.rst:622 msgid "" "If an exception is raised in the coroutine, the returned Future will be " "notified. It can also be used to cancel the task in the event loop::" msgstr "" +"Si se lanza una excepción en la corrutina, el Futuro retornado será " +"notificado. También se puede utilizar para cancelar la tarea en el bucle de " +"eventos::" #: ../Doc/library/asyncio-task.rst:636 msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." msgstr "" +"Consulte la sección de la documentación :ref:`Concurrencia y multi hilos " +"`." #: ../Doc/library/asyncio-task.rst:639 msgid "" "Unlike other asyncio functions this function requires the *loop* argument to " "be passed explicitly." msgstr "" +"A diferencia de otras funciones asyncio, esta función requiere que el " +"argumento *loop* se pase explícitamente." #: ../Doc/library/asyncio-task.rst:646 msgid "Introspection" -msgstr "" +msgstr "Introspección" #: ../Doc/library/asyncio-task.rst:651 msgid "" "Return the currently running :class:`Task` instance, or ``None`` if no task " "is running." msgstr "" +"Retorna la instancia :class:`Task` actualmente en ejecución o ``None`` si no " +"se está ejecutando ninguna tarea." #: ../Doc/library/asyncio-task.rst:654 msgid "" "If *loop* is ``None`` :func:`get_running_loop` is used to get the current " "loop." msgstr "" +"Si *loop* es ``None`` :func:`get_running_loop` se utiliza para obtener el " +"bucle actual." #: ../Doc/library/asyncio-task.rst:662 msgid "Return a set of not yet finished :class:`Task` objects run by the loop." msgstr "" +"Retorna un conjunto de objetos :class:`Task` que se ejecutan por el bucle." #: ../Doc/library/asyncio-task.rst:665 msgid "" "If *loop* is ``None``, :func:`get_running_loop` is used for getting current " "loop." msgstr "" +"Si *loop* es ``None``, :func:`get_running_loop` se utiliza para obtener el " +"bucle actual." #: ../Doc/library/asyncio-task.rst:672 msgid "Task Object" -msgstr "" +msgstr "Objeto Task" #: ../Doc/library/asyncio-task.rst:676 msgid "" "A :class:`Future-like ` object that runs a Python :ref:`coroutine " "`. Not thread-safe." msgstr "" +"Un objeto :class:`similar a Futuro ` que ejecuta Python :ref:" +"`coroutine `. No es seguro hilos." #: ../Doc/library/asyncio-task.rst:679 msgid "" @@ -629,6 +803,10 @@ msgid "" "completion of the Future. When the Future is *done*, the execution of the " "wrapped coroutine resumes." msgstr "" +"Las tareas se utilizan para ejecutar corrutinas en bucles de eventos. Si una " +"corrutina aguarda en un Futuro, la Tarea suspende la ejecución de la " +"corrutina y espera la finalización del Futuro. Cuando el Futuro *termina*, " +"se reanuda la ejecución de la corrutina envuelta." #: ../Doc/library/asyncio-task.rst:685 msgid "" @@ -636,6 +814,10 @@ msgid "" "time. While a Task awaits for the completion of a Future, the event loop " "runs other Tasks, callbacks, or performs IO operations." msgstr "" +"Los bucles de eventos usan la programación cooperativa: un bucle de eventos " +"ejecuta una tarea a la vez. Mientras una Tarea espera para la finalización " +"de un Futuro, el bucle de eventos ejecuta otras tareas, retorno de llamada o " +"realiza operaciones de E/S." #: ../Doc/library/asyncio-task.rst:690 msgid "" @@ -643,6 +825,9 @@ msgid "" "the low-level :meth:`loop.create_task` or :func:`ensure_future` functions. " "Manual instantiation of Tasks is discouraged." msgstr "" +"Utilice la función de alto nivel :func:`asyncio.create_task` para crear " +"Tareas, o las funciones de bajo nivel :meth:`loop.create_task` o :func:" +"`ensure_future`. Se desaconseja la creación de instancias manuales de Tareas." #: ../Doc/library/asyncio-task.rst:695 msgid "" @@ -651,6 +836,10 @@ msgid "" "coroutine. If a coroutine is awaiting on a Future object during " "cancellation, the Future object will be cancelled." msgstr "" +"Para cancelar una Tarea en ejecución, utilice el método :meth:`cancel`. " +"Llamarlo hará que la tarea lance una excepción :exc:`CancelledError` en la " +"corrutina contenida. Si una corrutina está esperando en un objeto Futuro " +"durante la cancelación, se cancelará el objeto Futuro." #: ../Doc/library/asyncio-task.rst:700 msgid "" @@ -658,12 +847,17 @@ msgid "" "returns ``True`` if the wrapped coroutine did not suppress the :exc:" "`CancelledError` exception and was actually cancelled." msgstr "" +":meth:`cancelled` se puede utilizar para comprobar si la Tarea fue " +"cancelada. El método devuelve ``True`` si la corrutina contenida no suprimió " +"la excepción :exc:`CancelledError` y se canceló realmente." #: ../Doc/library/asyncio-task.rst:705 msgid "" ":class:`asyncio.Task` inherits from :class:`Future` all of its APIs except :" "meth:`Future.set_result` and :meth:`Future.set_exception`." msgstr "" +":class:`asyncio.Task` hereda de :class:`Future` todas sus API excepto :meth:" +"`Future.set_result` y :meth:`Future.set_exception`." #: ../Doc/library/asyncio-task.rst:709 msgid "" @@ -671,20 +865,25 @@ msgid "" "copies the current context and later runs its coroutine in the copied " "context." msgstr "" +"Las tareas admiten el módulo :mod:`contextvars`. Cuando se crea una Tarea, " +"copia el contexto actual y, posteriormente, ejecuta su corrutina en el " +"contexto copiado." #: ../Doc/library/asyncio-task.rst:713 msgid "Added support for the :mod:`contextvars` module." -msgstr "" +msgstr "Agregado soporte para el módulo :mod:`contextvars`." #: ../Doc/library/asyncio-task.rst:724 msgid "Request the Task to be cancelled." -msgstr "" +msgstr "Solicita que se cancele la Tarea." #: ../Doc/library/asyncio-task.rst:726 msgid "" "This arranges for a :exc:`CancelledError` exception to be thrown into the " "wrapped coroutine on the next cycle of the event loop." msgstr "" +"Esto hace que una excepción :exc:`CancelledError` sea lanzada a la corrutina " +"contenida en el próximo ciclo del bucle de eventos." #: ../Doc/library/asyncio-task.rst:729 msgid "" @@ -695,16 +894,24 @@ msgid "" "be cancelled, although suppressing cancellation completely is not common and " "is actively discouraged." msgstr "" +"La corrutina entonces tiene la oportunidad de limpiar o incluso denegar la " +"solicitud suprimiendo la excepción con un bloque :keyword:`try` ... ..." +"``except CancelledError`` ... :keyword:`finally`. Por lo tanto, a diferencia " +"de :meth:`Future.cancel`, :meth:`Task.cancel` no garantiza que la tarea será " +"cancelada, aunque suprimir la cancelación por completo no es común y se " +"desalienta activamente." #: ../Doc/library/asyncio-task.rst:739 msgid "" "The following example illustrates how coroutines can intercept the " "cancellation request::" msgstr "" +"En el ejemplo siguiente se muestra cómo las corrutinas pueden interceptar la " +"solicitud de cancelación::" #: ../Doc/library/asyncio-task.rst:778 msgid "Return ``True`` if the Task is *cancelled*." -msgstr "" +msgstr "Retorna ``True`` si la Tarea se *cancela*." #: ../Doc/library/asyncio-task.rst:780 msgid "" @@ -712,81 +919,103 @@ msgid "" "`cancel` and the wrapped coroutine propagated the :exc:`CancelledError` " "exception thrown into it." msgstr "" +"La tarea se *cancela* cuando se solicitó la cancelación con :meth:`cancel` y " +"la corrutina contenida propagó la excepción :exc:`CancelledError` que se le " +"ha lanzado." #: ../Doc/library/asyncio-task.rst:786 msgid "Return ``True`` if the Task is *done*." -msgstr "" +msgstr "Retorna ``True`` si la Tarea está *finalizada*." #: ../Doc/library/asyncio-task.rst:788 msgid "" "A Task is *done* when the wrapped coroutine either returned a value, raised " "an exception, or the Task was cancelled." msgstr "" +"Una tarea está *finalizada* cuando la corrutina contenida retornó un valor, " +"lanzó una excepción, o se canceló la Tarea." #: ../Doc/library/asyncio-task.rst:793 msgid "Return the result of the Task." -msgstr "" +msgstr "Retorna el resultado de la Tarea." #: ../Doc/library/asyncio-task.rst:795 msgid "" "If the Task is *done*, the result of the wrapped coroutine is returned (or " "if the coroutine raised an exception, that exception is re-raised.)" msgstr "" +"Si la tarea está *terminada*, se devuelve el resultado de la corrutina " +"contenida (o si la corrutina lanzó una excepción, esa excepción se vuelve a " +"relanzar.)" #: ../Doc/library/asyncio-task.rst:799 ../Doc/library/asyncio-task.rst:813 msgid "" "If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " "exception." msgstr "" +"Si la Tarea ha sido *cancelada*, este método lanza una excepción :exc:" +"`CancelledError`." #: ../Doc/library/asyncio-task.rst:802 msgid "" "If the Task's result isn't yet available, this method raises a :exc:" "`InvalidStateError` exception." msgstr "" +"Si el resultado de la Tarea aún no está disponible, este método lanza una " +"excepción :exc:`InvalidStateError`." #: ../Doc/library/asyncio-task.rst:807 msgid "Return the exception of the Task." -msgstr "" +msgstr "Retorna la excepción de la Tarea." #: ../Doc/library/asyncio-task.rst:809 msgid "" "If the wrapped coroutine raised an exception that exception is returned. If " "the wrapped coroutine returned normally this method returns ``None``." msgstr "" +"Si la corrutina contenida lanzó una excepción, esa excepción es retornada. " +"Si la corrutina contenida retorna normalmente, este método retorna ``None``." #: ../Doc/library/asyncio-task.rst:816 msgid "" "If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " "exception." msgstr "" +"Si la Tarea aún no está *terminada*, este método lanza una excepción :exc:" +"`InvalidStateError`." #: ../Doc/library/asyncio-task.rst:821 msgid "Add a callback to be run when the Task is *done*." msgstr "" +"Agrega una retro llamada que se ejecutará cuando la Tarea esté *terminada*." #: ../Doc/library/asyncio-task.rst:823 ../Doc/library/asyncio-task.rst:832 msgid "This method should only be used in low-level callback-based code." msgstr "" +"Este método solo se debe usar en código basado en retrollamada de bajo nivel." #: ../Doc/library/asyncio-task.rst:825 msgid "" "See the documentation of :meth:`Future.add_done_callback` for more details." msgstr "" +"Consulte la documentación de :meth:`Future.add_done_callback` para obtener " +"más detalles." #: ../Doc/library/asyncio-task.rst:830 msgid "Remove *callback* from the callbacks list." -msgstr "" +msgstr "Remueve la *retrollamada* de la lista de retrollamadas." #: ../Doc/library/asyncio-task.rst:834 msgid "" "See the documentation of :meth:`Future.remove_done_callback` for more " "details." msgstr "" +"Consulte la documentación de :meth:`Future.remove_done_callback` para " +"obtener más detalles." #: ../Doc/library/asyncio-task.rst:839 msgid "Return the list of stack frames for this Task." -msgstr "" +msgstr "Retorna la lista de marcos de pila para esta tarea." #: ../Doc/library/asyncio-task.rst:841 msgid "" @@ -795,14 +1024,18 @@ msgid "" "this returns an empty list. If the coroutine was terminated by an exception, " "this returns the list of traceback frames." msgstr "" +"Si la corrutina contenida no se termina, esto retorna la pila donde se " +"suspende. Si la corrutina se ha completado correctamente o se ha cancelado, " +"retorna una lista vacía. Si la corrutina terminó por una excepción, esto " +"retorna la lista de marcos de seguimiento." #: ../Doc/library/asyncio-task.rst:847 msgid "The frames are always ordered from oldest to newest." -msgstr "" +msgstr "Los marcos siempre se ordenan de más antiguo a más nuevo." #: ../Doc/library/asyncio-task.rst:849 msgid "Only one stack frame is returned for a suspended coroutine." -msgstr "" +msgstr "Solo se retorna un marco de pila para una corrutina suspendida." #: ../Doc/library/asyncio-task.rst:851 msgid "" @@ -812,59 +1045,76 @@ msgid "" "newest frames of a stack are returned, but the oldest frames of a traceback " "are returned. (This matches the behavior of the traceback module.)" msgstr "" +"El argumento opcional *limit* establece el número máximo de marcos que se " +"retornarán; de forma predeterminada se retornan todos los marcos " +"disponibles. El orden de la lista devuelta varía en función de si se retorna " +"una pila o un *traceback*: se devuelven los marcos más recientes de una " +"pila, pero se devuelven los marcos más antiguos de un *traceback*. (Esto " +"coincide con el comportamiento del módulo traceback.)ss" #: ../Doc/library/asyncio-task.rst:860 msgid "Print the stack or traceback for this Task." -msgstr "" +msgstr "Imprime la pila o el seguimiento de esta tarea." #: ../Doc/library/asyncio-task.rst:862 msgid "" "This produces output similar to that of the traceback module for the frames " "retrieved by :meth:`get_stack`." msgstr "" +"Esto produce una salida similar a la del módulo traceback para los marcos " +"recuperados por :meth:`get_stack`." #: ../Doc/library/asyncio-task.rst:865 msgid "The *limit* argument is passed to :meth:`get_stack` directly." -msgstr "" +msgstr "El argumento *limit* se pasa directamente a :meth:`get_stack`." #: ../Doc/library/asyncio-task.rst:867 msgid "" "The *file* argument is an I/O stream to which the output is written; by " "default output is written to :data:`sys.stderr`." msgstr "" +"El argumento *file* es un flujo de E/S en el que se escribe la salida; por " +"defecto, la salida se escribe en :data:`sys.stderr`." #: ../Doc/library/asyncio-task.rst:872 msgid "Return the coroutine object wrapped by the :class:`Task`." -msgstr "" +msgstr "Retorna el objeto corrutina contenido por :class:`Task`." #: ../Doc/library/asyncio-task.rst:878 msgid "Return the name of the Task." -msgstr "" +msgstr "Retorna el nombre de la Tarea." #: ../Doc/library/asyncio-task.rst:880 msgid "" "If no name has been explicitly assigned to the Task, the default asyncio " "Task implementation generates a default name during instantiation." msgstr "" +"Si no se ha asignado explícitamente ningún nombre a la Tarea, la " +"implementación de Tarea asyncio predeterminada genera un nombre " +"predeterminado durante la creación de instancias." #: ../Doc/library/asyncio-task.rst:888 msgid "Set the name of the Task." -msgstr "" +msgstr "Establece el nombre de la Tarea." #: ../Doc/library/asyncio-task.rst:890 msgid "" "The *value* argument can be any object, which is then converted to a string." msgstr "" +"El argumento *value* puede ser cualquier objeto, que luego se convierte en " +"una cadena." #: ../Doc/library/asyncio-task.rst:893 msgid "" "In the default Task implementation, the name will be visible in the :func:" "`repr` output of a task object." msgstr "" +"En la implementación de Task predeterminada, el nombre será visible en la " +"salida :func:`repr` de un objeto de tarea." #: ../Doc/library/asyncio-task.rst:900 msgid "Return a set of all tasks for an event loop." -msgstr "" +msgstr "Retorna un conjunto de todas las tareas para un bucle de eventos." #: ../Doc/library/asyncio-task.rst:902 msgid "" @@ -872,38 +1122,49 @@ msgid "" "``None``, the :func:`get_event_loop` function is used to get the current " "loop." msgstr "" +"De forma predeterminada, se retornan todas las tareas del bucle de eventos " +"actual. Si *loop* es ``None``, la función :func:`get_event_loop` se utiliza " +"para obtener el bucle actual." #: ../Doc/library/asyncio-task.rst:908 msgid "" "Do not call this as a task method. Use the :func:`asyncio.all_tasks` " "function instead." msgstr "" +"No llame a esto como un método de tarea. Utilice la función :func:`asyncio." +"all_tasks` en su lugar." #: ../Doc/library/asyncio-task.rst:913 msgid "Return the currently running task or ``None``." -msgstr "" +msgstr "Retorna la tarea que se está ejecutando actualmente o ``None``." #: ../Doc/library/asyncio-task.rst:915 msgid "" "If *loop* is ``None``, the :func:`get_event_loop` function is used to get " "the current loop." msgstr "" +"Si *bucle* es ``None``, la función :func:`get_event_loop` se utiliza para " +"obtener el bucle actual." #: ../Doc/library/asyncio-task.rst:920 msgid "" "Do not call this as a task method. Use the :func:`asyncio.current_task` " "function instead." msgstr "" +"No llame a esto como un método de tarea. Utilice la función :func:`asyncio." +"current_task` en su lugar." #: ../Doc/library/asyncio-task.rst:927 msgid "Generator-based Coroutines" -msgstr "" +msgstr "Corrutinas basadas en generadores" #: ../Doc/library/asyncio-task.rst:931 msgid "" "Support for generator-based coroutines is **deprecated** and is scheduled " "for removal in Python 3.10." msgstr "" +"La compatibilidad con corrutinas basadas en generadores está **en desuso** y " +"está programada para su eliminación en Python 3.10." #: ../Doc/library/asyncio-task.rst:934 msgid "" @@ -911,44 +1172,55 @@ msgid "" "generators that use ``yield from`` expressions to await on Futures and other " "coroutines." msgstr "" +"Las corrutinas basadas en generadores son anteriores a la sintaxis async/" +"await. Son generadores de Python que utilizan expresiones ``yield from`` " +"para esperar en Futuros y otras corrutinas." #: ../Doc/library/asyncio-task.rst:938 msgid "" "Generator-based coroutines should be decorated with :func:`@asyncio." "coroutine `, although this is not enforced." msgstr "" +"Las corrutinas basadas en generadores deben estar decoradas con :func:" +"`@asyncio.coroutine `, aunque esto no se aplica." #: ../Doc/library/asyncio-task.rst:945 msgid "Decorator to mark generator-based coroutines." -msgstr "" +msgstr "Decorador para marcar corrutinas basadas en generadores." #: ../Doc/library/asyncio-task.rst:947 msgid "" "This decorator enables legacy generator-based coroutines to be compatible " "with async/await code::" msgstr "" +"Este decorador permite que las corrutinas basadas en generadores de " +"versiones anteriores (*legacy*) sean compatibles con el código async/await::" #: ../Doc/library/asyncio-task.rst:957 msgid "This decorator should not be used for :keyword:`async def` coroutines." msgstr "" +"Este decorador no debe utilizarse para corrutinas :keyword:`async def`." #: ../Doc/library/asyncio-task.rst:962 msgid "Use :keyword:`async def` instead." -msgstr "" +msgstr "Usar :keyword:`async def` en su lugar." #: ../Doc/library/asyncio-task.rst:966 msgid "Return ``True`` if *obj* is a :ref:`coroutine object `." -msgstr "" +msgstr "Retorna ``True`` si *obj* es un :ref:`coroutine object `." #: ../Doc/library/asyncio-task.rst:968 msgid "" "This method is different from :func:`inspect.iscoroutine` because it returns " "``True`` for generator-based coroutines." msgstr "" +"Este método es diferente de :func:`inspect.iscoroutine` porque retorna " +"``True`` para corrutinas basadas en generadores." #: ../Doc/library/asyncio-task.rst:973 msgid "Return ``True`` if *func* is a :ref:`coroutine function `." msgstr "" +"Retorna ``True`` si *func* es una :ref:`coroutine function `." #: ../Doc/library/asyncio-task.rst:976 msgid "" @@ -956,3 +1228,6 @@ msgid "" "returns ``True`` for generator-based coroutine functions decorated with :" "func:`@coroutine `." msgstr "" +"Este método es diferente de :func:`inspect.iscoroutinefunction` porque " +"retorna ``True`` para funciones de corrutinas basadas en generadores " +"decoradas con :func:`@coroutine `." diff --git a/library/binary.po b/library/binary.po index fe09b17137..03112dc3d8 100644 --- a/library/binary.po +++ b/library/binary.po @@ -1,25 +1,27 @@ # 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: 2020-10-27 07:04-0400\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/binary.rst:5 msgid "Binary Data Services" -msgstr "" +msgstr "Servicios de datos binarios" #: ../Doc/library/binary.rst:7 msgid "" @@ -28,6 +30,10 @@ msgid "" "specifically in relation to file formats and network protocols, are " "described in the relevant sections." msgstr "" +"Los módulos descritos en este capítulo proporcionan algunas operaciones " +"básicas de servicios para la manipulación de datos binarios. Otras " +"operaciones sobre datos binarios específicamente relacionadas con formatos " +"de archivo y protocolos de red están descritas en las secciones relevantes." #: ../Doc/library/binary.rst:12 msgid "" @@ -35,9 +41,14 @@ msgid "" "ASCII-compatible binary formats (for example, :mod:`re`) or all binary data " "(for example, :mod:`difflib`)." msgstr "" +"Algunas bibliotecas descritas bajo :ref:`textservices` también funcionan o " +"bien sobre formatos binarios compatibles con ASCII (por ejemplo :mod:`re`), " +"o bien sobre todos los datos binarios (por ejemplo :mod:`difflib`)." #: ../Doc/library/binary.rst:16 msgid "" "In addition, see the documentation for Python's built-in binary data types " "in :ref:`binaryseq`." msgstr "" +"Adicionalmente, véase la documentación para los tipos de datos binarios " +"incorporados en Python en :ref:`binaryseq`." diff --git a/library/builtins.po b/library/builtins.po index 55c4b604c5..79ce4d410d 100644 --- a/library/builtins.po +++ b/library/builtins.po @@ -1,25 +1,27 @@ # 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: 2020-10-09 14:57-0400\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.3.1\n" #: ../Doc/library/builtins.rst:2 msgid ":mod:`builtins` --- Built-in objects" -msgstr "" +msgstr ":mod:`builtins` --- Objetos incorporados" #: ../Doc/library/builtins.rst:9 msgid "" @@ -28,6 +30,10 @@ msgid "" "func:`open`. See :ref:`built-in-funcs` and :ref:`built-in-consts` for " "documentation." msgstr "" +"Este módulo proporciona acceso directo a todos los identificadores " +"'incorporados' de Python. Por ejemplo, ``builtins.open`` es el nombre " +"completo de la función incorporada :func:`open`. Vea :ref:`built-in-funcs` " +"y :ref:`built-in-consts` para documentación." #: ../Doc/library/builtins.rst:15 msgid "" @@ -37,6 +43,12 @@ msgid "" "example, in a module that wants to implement an :func:`open` function that " "wraps the built-in :func:`open`, this module can be used directly::" msgstr "" +"Este módulo normalmente no es accedido explícitamente por la mayoría de las " +"aplicaciones, pero puede ser útil en módulos que provean objetos con el " +"mismo nombre que un valor incorporado, pero que sea necesario también el " +"incorporado con ese nombre. Por ejemplo, en un módulo que quiera implementar " +"una función :func:`open` que envuelva la integrada :func:`open`, este módulo " +"puede se usado directamente::" #: ../Doc/library/builtins.rst:38 msgid "" @@ -46,3 +58,9 @@ msgid "" "__dict__` attribute. Since this is an implementation detail, it may not be " "used by alternate implementations of Python." msgstr "" +"Como un detalle de implementación, la mayoría de los módulos tienen el " +"nombre ``__builtins__`` disponible como parte de sus globales. El valor de " +"``__builtins__`` es normalmente o este módulo o el valor del atributo :attr:" +"`~object.__dict__` de este módulo. Como este es un detalle de " +"implementación, puede que no sea usado por implementaciones alternativas de " +"Python." diff --git a/library/cgi.po b/library/cgi.po index 72251c9edd..90fb2828ab 100644 --- a/library/cgi.po +++ b/library/cgi.po @@ -11,35 +11,34 @@ 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-29 11:19+0200\n" +"PO-Revision-Date: 2020-10-22 15:27-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" "Last-Translator: \n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.4.1\n" "Language: es\n" #: ../Doc/library/cgi.rst:2 msgid ":mod:`cgi` --- Common Gateway Interface support" -msgstr ":mod:`cgi` --- Soporte de Interfaz de Entrada Común (*CGI*)" +msgstr ":mod:`cgi` --- Soporte de Interfaz de Entrada Común (CGI)" #: ../Doc/library/cgi.rst:7 msgid "**Source code:** :source:`Lib/cgi.py`" -msgstr "**Source code:** :source:`Lib/cgi.py`" +msgstr "**Código fuente:** :source:`Lib/cgi.py`" #: ../Doc/library/cgi.rst:19 msgid "Support module for Common Gateway Interface (CGI) scripts." -msgstr "" -"Módulo de soporte para *scripts* de la Interfaz de Entrada Común (*CGI*)" +msgstr "Módulo de soporte para scripts de la Interfaz de Entrada Común (CGI)" #: ../Doc/library/cgi.rst:21 msgid "" "This module defines a number of utilities for use by CGI scripts written in " "Python." msgstr "" -"Este módulo define una serie de utilidades para el uso de *scripts* CGI " +"Este módulo define una serie de utilidades para el uso de scripts CGI " "escritos en Python." #: ../Doc/library/cgi.rst:26 @@ -51,7 +50,7 @@ msgid "" "A CGI script is invoked by an HTTP server, usually to process user input " "submitted through an HTML ``
`` or ```` element." msgstr "" -"Un *script* de CGI es invocado por un servidor HTTP, generalmente para " +"Un script de CGI es invocado por un servidor HTTP, generalmente para " "procesar entradas de usuario entregadas mediante un elemento HTML ```` " "o ````." @@ -63,6 +62,12 @@ msgid "" "lots of other goodies) in the script's shell environment, executes the " "script, and sends the script's output back to the client." msgstr "" +"Muy a menudo, los scripts CGI viven en el directorio especial :file:`cgi-" +"bin` del servidor. El servidor HTTP coloca todo tipo de información sobre la " +"solicitud (como el nombre de host del cliente, la dirección URL solicitada, " +"la cadena de búsqueda (query string) y muchas otras consultas) en el entorno " +"de shell del script, ejecuta el script y envía la salida del script al " +"cliente." #: ../Doc/library/cgi.rst:39 msgid "" @@ -74,6 +79,14 @@ msgid "" "the latest addition is support for file uploads from a form (if your browser " "supports it)." msgstr "" +"La entrada del script también está conectada al cliente, y a veces los datos " +"del formulario se leen de esta manera; en otras ocasiones los datos del " +"formulario se pasan a través de la parte \"cadena de caracteres de búsqueda " +"(query string)\" de la dirección URL. Este módulo está diseñado para " +"ocuparse de los diferentes casos y proporcionar una interfaz más simple al " +"script de Python. También proporciona una serie de utilidades que ayudan en " +"la depuración de scripts, y la última adición es la compatibilidad con " +"cargas de archivos desde un formulario (si el navegador lo admite)." #: ../Doc/library/cgi.rst:46 msgid "" @@ -82,6 +95,10 @@ msgid "" "client what kind of data is following. Python code to generate a minimal " "header section looks like this::" msgstr "" +"La salida de un script CGI debe constar de dos secciones, separadas por una " +"línea en blanco. La primera sección contiene una serie de encabezados, " +"indicando al cliente qué tipo de datos sigue. El código de Python para " +"generar una sección de encabezado mínima tiene este aspecto::" #: ../Doc/library/cgi.rst:54 msgid "" @@ -89,6 +106,9 @@ msgid "" "display nicely formatted text with header, in-line images, etc. Here's " "Python code that prints a simple piece of HTML::" msgstr "" +"La segunda sección suele ser HTML, lo que permite al software cliente " +"mostrar texto bien formateado con encabezado, imágenes en línea, etc. Aquí " +"está el código Python que imprime una simple pieza de HTML::" #: ../Doc/library/cgi.rst:66 msgid "Using the cgi module" @@ -100,7 +120,7 @@ msgstr "Empieza escribiendo ``import cgi``." #: ../Doc/library/cgi.rst:70 msgid "When you write a new script, consider adding these lines::" -msgstr "Cuando escribas un nuevo *script*, considera añadir estas líneas::" +msgstr "Cuando escribas un nuevo script, considera añadir estas líneas::" #: ../Doc/library/cgi.rst:75 msgid "" @@ -109,6 +129,10 @@ msgid "" "the guts of your program to users of your script, you can have the reports " "saved to files instead, with code like this::" msgstr "" +"Esto activa un manejador de excepciones especial que mostrará informes " +"detallados en el explorador Web si se produce algún error. Si prefiere no " +"mostrar en detalle su programa a los usuarios de su script, puede tener los " +"informes guardados en archivos en su lugar, con código como este::" #: ../Doc/library/cgi.rst:83 msgid "" @@ -117,6 +141,11 @@ msgid "" "in tracking down bugs. You can always remove the ``cgitb`` line later when " "you have tested your script and are confident that it works correctly." msgstr "" +"Es muy útil usar esta característica durante el desarrollo de scripts. Los " +"informes producidos por :mod:`cgitb` proporcionan información que puede " +"ahorrarle mucho tiempo en el seguimiento de errores. Siempre puede eliminar " +"la línea ``cgitb`` más adelante cuando haya probado su script y esté seguro " +"de que funciona correctamente." #: ../Doc/library/cgi.rst:88 msgid "" @@ -129,6 +158,15 @@ msgid "" "environment variables set according to the CGI standard). Since it may " "consume standard input, it should be instantiated only once." msgstr "" +"Para obtener los datos del formulario enviado, utilice la clase :class:" +"`FieldStorage`. Si el formulario contiene caracteres no ASCII, utilice el " +"parámetro de palabra clave *encoding* establecido en el valor de la " +"codificación definida para el documento. Normalmente se encuentra en la " +"etiqueta META en la sección HEAD del documento HTML o en el encabezado :" +"mailheader:`Content-Type`). Esto lee el contenido del formulario de la " +"entrada estándar o del entorno (dependiendo del valor de varias variables de " +"entorno establecidas de acuerdo con el estándar CGI). Dado que puede " +"consumir entrada estándar, se debe crear la instancia solo una vez." #: ../Doc/library/cgi.rst:97 msgid "" @@ -140,6 +178,14 @@ msgid "" "for the optional *keep_blank_values* keyword parameter when creating the :" "class:`FieldStorage` instance." msgstr "" +"La instancia :class:`FieldStorage` puede ser indexada como un diccionario " +"Python. Permite las pruebas de afiliación con el operador :keyword:`in`, y " +"también es compatible con el método de diccionario estándar :meth:`~dict." +"keys` y la función incorporada :func:`len`. Los campos de formulario que " +"contienen cadenas de caracteres vacías son ignoradas y no aparecen en el " +"diccionario; para mantener estos valores, proporciona un valor verdadero " +"para el parámetro de palabra clave opcional *keep_blank_values* al crear la " +"instancia :class:`FieldStorage`." #: ../Doc/library/cgi.rst:105 msgid "" @@ -147,6 +193,10 @@ msgid "" "`Content-Type` header and blank line have already been printed) checks that " "the fields ``name`` and ``addr`` are both set to a non-empty string::" msgstr "" +"Por ejemplo, el código siguiente (que supone que el encabezado :mailheader:" +"`Content-Type` y la línea en blanco ya se han impreso) comprueba que los " +"campos ``name`` y ``addr`` son ambos establecidos a una cadena de caracteres " +"no vacía::" #: ../Doc/library/cgi.rst:119 msgid "" @@ -157,6 +207,14 @@ msgid "" "method returns this string value directly; it also accepts an optional " "second argument as a default to return if the requested key is not present." msgstr "" +"Aquí los campos, a los que se accede a través de ``form[key]``, son por sí " +"mismos las instancias de :class:`FieldStorage` (o :class:`MiniFieldStorage`, " +"dependiendo de la codificación del formulario). El atributo :attr:" +"`~FieldStorage.value` de la instancia produce el valor de cadena de " +"caracteres del campo. El método :meth:`~FieldStorage.getvalue` retorna este " +"valor de cadena de caracteres directamente; también acepta un segundo " +"argumento opcional como valor predeterminado para retornar si la clave " +"solicitada no está presente." #: ../Doc/library/cgi.rst:126 msgid "" @@ -170,6 +228,16 @@ msgid "" "single item case). For example, this code concatenates any number of " "username fields, separated by commas::" msgstr "" +"Si los datos del formulario enviados contienen más de un campo con el mismo " +"nombre, el objeto recuperado por ``form[key]`` no es una instancia :class:" +"`FieldStorage` o :class:`MiniFieldStorage`, sino una lista de dichas " +"instancias. De forma similar, en esta situación, ``form.getvalue(key)`` " +"retornaría una lista de cadenas de caracteres. Si espera esta posibilidad " +"(cuando su formulario HTML contiene múltiples campos con el mismo nombre), " +"utilice el método :meth:`~FieldStorage.getlist`, que siempre retorna una " +"lista de valores (para que no sea necesario poner en mayúsculas y minúsculas " +"en el caso de un solo elemento). Por ejemplo, este código concatena " +"cualquier número de campos de nombre de usuario, separados por comas::" #: ../Doc/library/cgi.rst:139 msgid "" @@ -183,6 +251,15 @@ msgid "" "`FieldStorage` instance (the :func:`~io.RawIOBase.read` and :func:`~io." "IOBase.readline` methods will return bytes)::" msgstr "" +"Si un campo representa un archivo cargado, el acceso al valor a través del " +"atributo :attr:`~FieldStorage.value` o el método :meth:`~FieldStorage." +"getvalue` lee todo el archivo en memoria como bytes. Puede que esto no sea " +"lo que quiera que ocurra. Puede probar un archivo cargado probando el " +"atributo :attr:`~FieldStorage.filename` o el atributo :attr:`~FieldStorage." +"file`. Después, puede leer los datos del atributo :attr:`!file` antes de " +"que se cierre automáticamente como parte de la recolección de elementos no " +"utilizados de la instancia :class:`FieldStorage` (los métodos :func:`~io." +"RawIOBase.read` y :func:`~io.IOBase.readline` retornarán bytes)::" #: ../Doc/library/cgi.rst:159 msgid "" @@ -200,6 +277,10 @@ msgid "" "Back or Cancel button) the :attr:`~FieldStorage.done` attribute of the " "object for the field will be set to the value -1." msgstr "" +"Si un error es encontrado al obtener el contenido de un archivo cargado (por " +"ejemplo, cuando el usuario interrumpe el envío del formulario haciendo clic " +"en un botón Atrás o Cancelar), el atributo :attr:`~FieldStorage.done` del " +"objeto para el campo se establecerá en el valor -1." #: ../Doc/library/cgi.rst:167 msgid "" @@ -211,6 +292,14 @@ msgid "" "another MIME type matching :mimetype:`multipart/\\*`). In this case, it can " "be iterated over recursively just like the top-level form object." msgstr "" +"El borrador de archivo de carga estándar presenta la posibilidad de cargar " +"varios archivos desde un campo (utilizando una codificación recursiva :" +"mimetype:`multipart/\\*`). Cuando esto ocurre, el elemento será un elemento " +"similar a un diccionario :class:`FieldStorage`. Esto se puede determinar " +"probando su atributo :attr:`!type`, que debe ser :mimetype:`multipart/form-" +"data` (o tal vez otro tipo MIME que coincida :mimetype:`multipart/\\*`). En " +"este caso, se puede iterar recursivamente al igual que el objeto de " +"formulario de nivel superior." #: ../Doc/library/cgi.rst:175 msgid "" @@ -220,12 +309,21 @@ msgid "" "this case, the :attr:`!list`, :attr:`!file`, and :attr:`filename` attributes " "are always ``None``." msgstr "" +"Cuando se envía un formulario en el formato \"antiguo\" (como la cadena de " +"caracteres de consulta (query string) o como una sola parte de datos de " +"tipo :mimetype:`application/x-www-form-urlencoded`), los elementos serán " +"realmente instancias de la clase :class:`MiniFieldStorage`. En este caso, " +"los atributos :attr:`!list`, :attr:`!file` y :attr:`filename` siempre son " +"``None``." #: ../Doc/library/cgi.rst:180 msgid "" "A form submitted via POST that also has a query string will contain both :" "class:`FieldStorage` and :class:`MiniFieldStorage` items." msgstr "" +"Un formulario enviado a través de POST que también tiene una cadena de " +"caracteres de consulta (query string) contendrá los elementos :class:" +"`FieldStorage` y :class:`MiniFieldStorage`." #: ../Doc/library/cgi.rst:183 msgid "" @@ -240,6 +338,8 @@ msgid "" "Added support for the context management protocol to the :class:" "`FieldStorage` class." msgstr "" +"Agregado soporte para el protocolo de administrador de contexto a la clase :" +"class:`FieldStorage` ." #: ../Doc/library/cgi.rst:193 msgid "Higher Level Interface" @@ -285,7 +385,7 @@ msgid "" "multiple checkboxes with the same name::" msgstr "" "Esta situación es común, por ejemplo, cuando un formulario contiene un grupo " -"de múltiples casillas de verificación (*checkbox*) con el mismo nombre::" +"de múltiples casillas de verificación (checkboxes) con el mismo nombre::" #: ../Doc/library/cgi.rst:223 msgid "" @@ -293,6 +393,10 @@ msgid "" "name in a form and then you expect and need only one value associated with " "this name. So you write a script containing for example this code::" msgstr "" +"En la mayoría de las situaciones, sin embargo, solo hay un control de " +"formulario con un nombre determinado en un formulario y así, espera y solo " +"necesita un valor asociado con este nombre. Así que escribe un script que " +"contiene, por ejemplo, este código::" #: ../Doc/library/cgi.rst:229 msgid "" @@ -304,6 +408,14 @@ msgid "" "is not valid (since lists do not have a method of this name) and results in " "an :exc:`AttributeError` exception." msgstr "" +"El problema con el código es que nunca debe esperar que un cliente " +"proporcione una entrada válida a los scripts. Por ejemplo, si un usuario " +"curioso anexa otro par ``user=foo`` a la cadena de caracteres de consulta " +"(query string), el script se bloquearía, porque en esta situación la llamada " +"al método ``getvalue(\"user\")`` retorna una lista en lugar de una cadena de " +"caracteres. Llamar al método :meth:`~str.upper` en una lista no es válido " +"(ya que las listas no tienen un método con este nombre) y se produce una " +"excepción :exc:`AttributeError`." #: ../Doc/library/cgi.rst:237 msgid "" @@ -311,6 +423,10 @@ msgid "" "the code which checks whether the obtained value is a single value or a list " "of values. That's annoying and leads to less readable scripts." msgstr "" +"Por lo tanto, la forma adecuada de leer los valores de datos de formulario " +"era usar siempre el código que comprueba si el valor obtenido es un valor " +"único o una lista de valores. Eso es molesto y conduce a scripts menos " +"legibles." #: ../Doc/library/cgi.rst:241 msgid "" @@ -318,6 +434,9 @@ msgid "" "getfirst` and :meth:`~FieldStorage.getlist` provided by this higher level " "interface." msgstr "" +"Un enfoque más conveniente es utilizar los métodos :meth:`~FieldStorage." +"getfirst` y :meth:`~FieldStorage.getlist` proporcionados por esta interfaz " +"de nivel superior." #: ../Doc/library/cgi.rst:247 msgid "" @@ -329,6 +448,13 @@ msgid "" "value specified by the optional parameter *default*. This parameter " "defaults to ``None`` if not specified." msgstr "" +"Este método siempre retorna solo un valor asociado con el campo de " +"formulario *name*. El método retorna solo el primer valor en caso de que se " +"registraran más valores con dicho nombre. Tenga en cuenta que el orden en " +"que se reciben los valores puede variar de un navegador a otro y no debe " +"darse por sentado. [#]_ Si no existe ningún campo o valor de formulario, el " +"método retorna el valor especificado por el parámetro opcional *default*. " +"Este parámetro tiene como valor predeterminado ``None`` si no se especifica." #: ../Doc/library/cgi.rst:258 msgid "" @@ -337,10 +463,14 @@ msgid "" "exists for *name*. It returns a list consisting of one item if only one " "such value exists." msgstr "" +"Este método siempre retorna una lista de valores asociados con el campo de " +"formulario *name*. El método retorna una lista vacía si no existe tal campo " +"o valor de formulario para *name*. Retorna una lista que consta de un " +"elemento si solo existe un valor de este tipo." #: ../Doc/library/cgi.rst:262 msgid "Using these methods you can write nice compact code::" -msgstr "" +msgstr "Usando estos métodos puede escribir código compacto agradable::" #: ../Doc/library/cgi.rst:274 msgid "Functions" @@ -351,6 +481,8 @@ msgid "" "These are useful if you want more control, or if you want to employ some of " "the algorithms implemented in this module in other circumstances." msgstr "" +"Estas son útiles si desea más control, o si desea emplear algunos de los " +"algoritmos implementados en este módulo en otras circunstancias." #: ../Doc/library/cgi.rst:282 msgid "" @@ -358,6 +490,9 @@ msgid "" "stdin``). The *keep_blank_values* and *strict_parsing* 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." #: ../Doc/library/cgi.rst:289 msgid "" @@ -366,6 +501,10 @@ msgid "" "other parameters in the :mailheader:`Content-Type` header, and *encoding*, " "the request encoding." msgstr "" +"Analiza la entrada de tipo :mimetype:`multipart/form-data` (para cargas de " +"archivos). Los argumentos son *fp* para el archivo de entrada, *pdict* para " +"un diccionario que contiene otros parámetros en el encabezado :mailheader:" +"`Content-Type` y *encoding*, la codificación de la solicitud." #: ../Doc/library/cgi.rst:294 msgid "" @@ -373,6 +512,10 @@ msgid "" "field names, each value is a list of values for that field. For non-file " "fields, the value is a list of strings." msgstr "" +"Retorna un diccionario al igual que :func:`urllib.parse.parse_qs`: las " +"claves son los nombres de campo, cada valor es una lista de valores para ese " +"campo. Para los campos que no son de archivo, el valor es una lista de " +"cadenas de caracteres." #: ../Doc/library/cgi.rst:298 msgid "" @@ -380,29 +523,39 @@ msgid "" "uploaded --- in that case, use the :class:`FieldStorage` class instead which " "is much more flexible." msgstr "" +"Esto es fácil de usar pero no muy bueno si espera que se carguen megabytes " +"--- en ese caso, utilice la clase :class:`FieldStorage` en su lugar, que es " +"mucho más flexible." #: ../Doc/library/cgi.rst:302 msgid "" "Added the *encoding* and *errors* parameters. For non-file fields, the " "value is now a list of strings, not bytes." msgstr "" +"Se agregaron los parámetros *encoding* y *errors*. Para los campos que no " +"son de archivo, el valor es ahora una lista de cadenas de caracteres, no " +"bytes." #: ../Doc/library/cgi.rst:309 msgid "" "Parse a MIME header (such as :mailheader:`Content-Type`) into a main value " "and a dictionary of parameters." msgstr "" +"Analiza un encabezado MIME (como :mailheader:`Content-Type`) en un valor " +"principal y un diccionario de parámetros." #: ../Doc/library/cgi.rst:315 msgid "" "Robust test CGI script, usable as main program. Writes minimal HTTP headers " "and formats all information provided to the script in HTML form." msgstr "" +"Script CGI de prueba robusto, usable como programa principal. Escribe " +"encabezados HTTP mínimos y formatea toda la información proporcionada al " +"script en formato HTML." #: ../Doc/library/cgi.rst:321 -#, fuzzy msgid "Format the shell environment in HTML." -msgstr "Da formato al entorno *shell* en HTML." +msgstr "Da formato al entorno del shell en HTML." #: ../Doc/library/cgi.rst:326 msgid "Format a form in HTML." @@ -432,6 +585,14 @@ msgid "" "invoke arbitrary shell commands. Even parts of the URL or field names " "cannot be trusted, since the request doesn't have to come from your form!" msgstr "" +"Hay una regla importante: si invoca un programa externo (a través de las " +"funciones :func:`os.system` o :func:`os.popen` u otras con una funcionalidad " +"similar), asegúrese de no pasar cadenas de caracteres arbitrarias recibidas " +"del cliente al shell. Este es una brecha de seguridad muy conocida por la " +"que los hackers inteligentes en cualquier lugar de la Web pueden explotar un " +"inocente script CGI para invocar comandos de shell arbitrarios. Incluso " +"partes de la URL o nombres de campo pueden no ser confiables, ya que la " +"solicitud no tiene que venir de su formulario!" #: ../Doc/library/cgi.rst:354 msgid "" @@ -439,10 +600,14 @@ msgid "" "shell command, you should make sure the string contains only alphanumeric " "characters, dashes, underscores, and periods." msgstr "" +"Para estar en el lado seguro, si debe pasar una cadena de caracteres de un " +"formulario a un comando de shell, debe asegurarse de que la cadena de " +"caracteres contiene solo caracteres alfanuméricos, guiones, guiones bajos y " +"puntos." #: ../Doc/library/cgi.rst:360 msgid "Installing your CGI script on a Unix system" -msgstr "Instalando su *script* de CGI en un sistema Unix" +msgstr "Instalando su script de CGI en un sistema Unix" #: ../Doc/library/cgi.rst:362 msgid "" @@ -450,6 +615,10 @@ msgid "" "administrator to find the directory where CGI scripts should be installed; " "usually this is in a directory :file:`cgi-bin` in the server tree." msgstr "" +"Lea la documentación del servidor HTTP y consulte con el administrador del " +"sistema local para encontrar el directorio donde se deben instalar los " +"scripts CGI; por lo general, esto se encuentra en un directorio :file:`cgi-" +"bin` en el árbol del servidor." #: ../Doc/library/cgi.rst:366 msgid "" @@ -458,11 +627,16 @@ msgid "" "Make sure that the first line of the script contains ``#!`` starting in " "column 1 followed by the pathname of the Python interpreter, for instance::" msgstr "" +"Asegúrese de que el script es legible y ejecutable por \"otros\"; el modo de " +"archivo Unix debe ser octal ``0o755`` (utilice ``chmod 0755 filename``). " +"Asegúrese de que la primera línea del script contiene ``#!`` a partir de la " +"columna 1 seguida del nombre de ruta del intérprete de Python, por ejemplo::" #: ../Doc/library/cgi.rst:373 msgid "" "Make sure the Python interpreter exists and is executable by \"others\"." msgstr "" +"Asegúrese que el intérprete de Python exista y sea ejecutable por \"otros\"." #: ../Doc/library/cgi.rst:375 msgid "" @@ -478,6 +652,18 @@ msgid "" "`PATH`) or the Python module search path (:envvar:`PYTHONPATH`) to be set to " "anything interesting." msgstr "" +"Asegúrese de que cualquier archivo que su script necesite leer o escribir " +"sea legible o tenga permiso de escritura, respectivamente, por \"otros\" --- " +"su modo debe ser ``0o644`` para legible y ``0o666`` para escribir. Esto se " +"debe a que, por razones de seguridad, el servidor HTTP ejecuta el script " +"como usuario \"nadie\", sin ningún privilegio especial. Sólo puede leer " +"(escribir, ejecutar) archivos que todo el mundo puede leer (escribir, " +"ejecutar). El directorio actual en tiempo de ejecución también es diferente " +"(normalmente es el directorio cgi-bin del servidor) y el conjunto de " +"variables de entorno también es diferente de lo que se obtiene al iniciar " +"sesión. En particular, no cuente con la ruta de búsqueda del shell para " +"ejecutables (:envvar:`PATH`) o la ruta de búsqueda del módulo Python (:" +"envvar:`PYTHONPATH`) que se establecerá en cualquier cosa interesante." #: ../Doc/library/cgi.rst:386 msgid "" @@ -485,6 +671,9 @@ msgid "" "default module search path, you can change the path in your script, before " "importing other modules. For example::" msgstr "" +"Si necesita cargar módulos desde un directorio el cual no está en la ruta de " +"búsqueda de módulos predeterminada de Python, puede cambiar la ruta en su " +"script, antes de importar otros módulos. Por ejemplo::" #: ../Doc/library/cgi.rst:394 msgid "(This way, the directory inserted last will be searched first!)" @@ -496,10 +685,13 @@ msgid "" "Instructions for non-Unix systems will vary; check your HTTP server's " "documentation (it will usually have a section on CGI scripts)." msgstr "" +"Las instrucciones para sistemas que no son Unix pueden variar; consulte la " +"documentación de su servidor HTTP (usualmente tendrá una sección sobre " +"scripts CGI)." #: ../Doc/library/cgi.rst:401 msgid "Testing your CGI script" -msgstr "Probando su *script* de CGI" +msgstr "Probando su script de CGI" #: ../Doc/library/cgi.rst:403 msgid "" @@ -510,16 +702,25 @@ msgid "" "error, the Python interpreter won't execute it at all, and the HTTP server " "will most likely send a cryptic error to the client." msgstr "" +"Desafortunadamente, un script CGI generalmente no se ejecutará cuando lo " +"pruebe desde la línea de comandos, y un script que funcione perfectamente " +"desde la línea de comandos puede fallar misteriosamente cuando se ejecuta " +"desde el servidor. Hay una razón por la que debe probar el script desde la " +"línea de comandos: si contiene un error de sintaxis, el intérprete de Python " +"no lo ejecutará en absoluto y lo más probable es que el servidor HTTP envíe " +"un error críptico al cliente." #: ../Doc/library/cgi.rst:410 msgid "" "Assuming your script has no syntax errors, yet it does not work, you have no " "choice but to read the next section." msgstr "" +"Asumiendo que su script no tiene errores de sintaxis, pero este no funciona, " +"no tiene más opción que leer la siguiente sección." #: ../Doc/library/cgi.rst:415 msgid "Debugging CGI scripts" -msgstr "Depurando *scripts* de CGI" +msgstr "Depurando scripts de CGI" #: ../Doc/library/cgi.rst:419 msgid "" @@ -533,6 +734,15 @@ msgid "" "directory, it should be possible to send it a request by entering a URL into " "your browser of the form:" msgstr "" +"En primer lugar, compruebe si hay errores de instalación triviales --- leer " +"la sección anterior sobre la instalación cuidadosa de su script CGI puede " +"ahorrarle mucho tiempo. Si se pregunta si ha entendido correctamente el " +"procedimiento de instalación, intente instalar una copia de este archivo de " +"módulo (:file:`cgi.py`) como un script CGI. Cuando se invoca como un " +"script, el archivo volcará su entorno y el contenido del formulario en " +"formato HTML. Dele el modo correcto, etc., y envíe una solicitud. Si está " +"instalado en el directorio estándar :file:`cgi-bin`, debería ser posible " +"enviarle una solicitud introduciendo una URL en su navegador de la forma:" #: ../Doc/library/cgi.rst:432 msgid "" @@ -545,14 +755,14 @@ msgid "" "the :file:`cgi.py` script has been installed correctly. If you follow the " "same procedure for your own script, you should now be able to debug it." msgstr "" -"Si esto da un error de tipo 404, el servidor no puede encontrar el *script* " -"-- quizás necesite instalarlo en un directorio diferente. Si este da otro " +"Si esto da un error de tipo 404, el servidor no puede encontrar el script -- " +"quizás necesite instalarlo en un directorio diferente. Si este da otro " "error, hay un problema con la instalación que debería intentar solucionar " "antes de continuar. Si obtiene una lista bien formateada del entorno y el " "contenido del formulario (en este ejemplo, los campos deberían estar " "listados como \"addr\" con el valor \"At Home\" y \"name\" con el valor " -"\"Joe Blow\"), el *script* :file:`cgi.py` ha sido instalado correctamente. " -"Si sigue el mismo procedimiento para su propio *scipt*, ya debería poder " +"\"Joe Blow\"), el script :file:`cgi.py` ha sido instalado correctamente. Si " +"sigue el mismo procedimiento para su propio script, ya debería poder " "depurarlo." #: ../Doc/library/cgi.rst:441 @@ -560,6 +770,9 @@ msgid "" "The next step could be to call the :mod:`cgi` module's :func:`test` function " "from your script: replace its main code with the single statement ::" msgstr "" +"El siguiente paso podría ser llamar a la función :func:`test` del módulo :" +"mod:`cgi` de su script: reemplace su código principal con la declaración " +"única ::" #: ../Doc/library/cgi.rst:446 msgid "" @@ -578,6 +791,13 @@ msgid "" "most likely the traceback will end up in one of the HTTP server's log files, " "or be discarded altogether." msgstr "" +"Cuando un script de Python normal lanza una excepción no controlada (por " +"cualquier razón: de un error tipográfico en un nombre de módulo, un archivo " +"que no se puede abrir, etc.), el intérprete de Python imprime un traceback " +"sutil y sale. Aunque el intérprete de Python seguirá haciendo esto cuando " +"el script CGI lance una excepción, lo más probable es que el traceback " +"termine en uno de los archivos de registro del servidor HTTP o se descarte " +"por completo." #: ../Doc/library/cgi.rst:456 msgid "" @@ -585,6 +805,9 @@ msgid "" "code, you can easily send tracebacks to the Web browser using the :mod:" "`cgitb` module. If you haven't done so already, just add the lines::" msgstr "" +"Afortunadamente, una vez que haya logrado que su script ejecute *algún* " +"código, puede enviar fácilmente tracebacks al navegador web utilizando el " +"módulo :mod:`cgitb`. Si aún no lo ha hecho, solo añada las líneas::" #: ../Doc/library/cgi.rst:463 msgid "" @@ -592,7 +815,7 @@ msgid "" "occurs, you should see a detailed report that will likely make apparent the " "cause of the crash." msgstr "" -"al principio de su *script*. Luego intente ejecutarlo de nuevo; cuando un " +"al principio de su script. Luego intente ejecutarlo de nuevo; cuando un " "problema ocurra, debería ver un informe detallado que probablemente muestre " "la causa del error." @@ -602,6 +825,8 @@ msgid "" "module, you can use an even more robust approach (which only uses built-in " "modules)::" msgstr "" +"Si sospecha que puede haber un problema al importar el módulo :mod:`cgitb`, " +"puede usar un enfoque aún más robusto (que solo usa módulos integrados)::" #: ../Doc/library/cgi.rst:476 msgid "" @@ -612,6 +837,13 @@ msgid "" "have been printed, a traceback will be displayed. Because no HTML " "interpretation is going on, the traceback will be readable." msgstr "" +"Esto se basa en el intérprete de Python para imprimir el traceback. El tipo " +"de contenido de la salida se establece en texto plano, lo que deshabilita " +"todo el procesamiento HTML. Si el script funciona, el cliente mostrará el " +"código HTML sin formato. Si lanza una excepción, lo más probable es que " +"después que se hayan impreso las dos primeras líneas, se mostrará un " +"traceback. Dado que no se está realizando ninguna interpretación HTML, el " +"traceback será legible." #: ../Doc/library/cgi.rst:485 msgid "Common problems and solutions" @@ -623,10 +855,10 @@ msgid "" "completed. This means that it is not possible to display a progress report " "on the client's display while the script is running." msgstr "" -"La mayoría de servidores HTTP almacenan en búfer la salida de los *scripts* " -"CGI hasta que el *script* esté completado. Esto significa que no es posible " +"La mayoría de servidores HTTP almacenan en búfer la salida de los scripts " +"CGI hasta que el script esté completado. Esto significa que no es posible " "mostrar un reporte del progreso en la parte del cliente mientras que el " -"*script* se esté ejecutando." +"script se esté ejecutando." #: ../Doc/library/cgi.rst:491 msgid "Check the installation instructions above." @@ -637,15 +869,15 @@ msgid "" "Check the HTTP server's log files. (``tail -f logfile`` in a separate " "window may be useful!)" msgstr "" -"Verifique los archivos de registro (*logs*) del servidor HTTP. (¡Usar ``tail " -"-f logfile`` en una ventana separada puede ser útil!)" +"Verifique los archivos de registro (logs) del servidor HTTP. (¡Usar ``tail -" +"f logfile`` en una ventana separada puede ser útil!)" #: ../Doc/library/cgi.rst:496 msgid "" "Always check a script for syntax errors first, by doing something like " "``python script.py``." msgstr "" -"Siempre verifique un *script* para encontrar errores de sintaxis primero, " +"Siempre verifique un script para encontrar errores de sintaxis primero, " "haciendo algo como ``python script.py``." #: ../Doc/library/cgi.rst:499 @@ -664,8 +896,7 @@ msgid "" msgstr "" "Cuando se invoquen programas externos, asegúrese de que pueden ser " "encontrados. Generalmente esto significa usar nombres de ruta absolutos --- :" -"envvar:`PATH` generalmente no se establece en un valor útil en un *script* " -"CGI." +"envvar:`PATH` generalmente no se establece en un valor útil en un script CGI." #: ../Doc/library/cgi.rst:506 msgid "" @@ -675,17 +906,17 @@ msgid "" "explicitly specified userid for a web server's ``suexec`` feature." msgstr "" "Al leer o escribir archivos externos, asegúrese de que puedan ser leídas o " -"escritas por el *userid* por el que su *script* CGI se va a ejecutar: es " -"típico que esto sea el *userid* bajo el que el servidor web se está " -"ejecutando, o algún *userid* especificado explícitamente por la función " -"``suexec`` del servidor web." +"escritas por el userid por el que su script CGI se va a ejecutar: es típico " +"que esto sea el userid bajo el que el servidor web se está ejecutando, o " +"algún userid especificado explícitamente por la función ``suexec`` del " +"servidor web." #: ../Doc/library/cgi.rst:511 msgid "" "Don't try to give a CGI script a set-uid mode. This doesn't work on most " "systems, and is a security liability as well." msgstr "" -"No intente darle un modo *set-uid* a un *script* CGI. Esto no funciona en la " +"No intente darle un modo set-uid a un script CGI. Esto no funciona en la " "mayoría de sistemas, además de ser un riesgo de seguridad." #: ../Doc/library/cgi.rst:515 diff --git a/library/chunk.po b/library/chunk.po index c2420c010d..4cd6c72685 100644 --- a/library/chunk.po +++ b/library/chunk.po @@ -1,29 +1,30 @@ # 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: 2020-10-10 09:21+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.4.1\n" +"Language: es\n" #: ../Doc/library/chunk.rst:2 msgid ":mod:`chunk` --- Read IFF chunked data" -msgstr "" +msgstr ":mod:`chunk` --- Lee los datos de los trozos de IFF" #: ../Doc/library/chunk.rst:10 msgid "**Source code:** :source:`Lib/chunk.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/chunk.py`" #: ../Doc/library/chunk.rst:21 msgid "" @@ -32,72 +33,84 @@ msgid "" "Format (AIFF/AIFF-C) and the Real Media File Format (RMFF). The WAVE audio " "file format is closely related and can also be read using this module." msgstr "" +"Este módulo proporciona una interfaz para leer archivos que usan trozos de " +"EA IFF 85. [#]_ Este formato se utiliza al menos en el formato *Audio " +"Interchange File Format (AIFF/AIFF-C)* y en el formato *Real Media File " +"Format (RMFF)*. El formato de archivo de audio WAVE está estrechamente " +"relacionado y también puede ser leído usando este módulo." #: ../Doc/library/chunk.rst:26 msgid "A chunk has the following structure:" -msgstr "" +msgstr "Un trozo tiene la siguiente estructura:" #: ../Doc/library/chunk.rst:29 msgid "Offset" -msgstr "" +msgstr "Desplazamiento" #: ../Doc/library/chunk.rst:29 msgid "Length" -msgstr "" +msgstr "Longitud" #: ../Doc/library/chunk.rst:29 msgid "Contents" -msgstr "" +msgstr "Contenido" #: ../Doc/library/chunk.rst:31 msgid "0" -msgstr "" +msgstr "0" #: ../Doc/library/chunk.rst:31 ../Doc/library/chunk.rst:33 msgid "4" -msgstr "" +msgstr "4" #: ../Doc/library/chunk.rst:31 msgid "Chunk ID" -msgstr "" +msgstr "ID del trozo" #: ../Doc/library/chunk.rst:33 msgid "Size of chunk in big-endian byte order, not including the header" msgstr "" +"El tamaño del trozo en el orden de bytes big-endian, sin incluir el " +"encabezado" #: ../Doc/library/chunk.rst:37 msgid "8" -msgstr "" +msgstr "8" #: ../Doc/library/chunk.rst:37 msgid "*n*" -msgstr "" +msgstr "*n*" #: ../Doc/library/chunk.rst:37 msgid "Data bytes, where *n* is the size given in the preceding field" -msgstr "" +msgstr "Bytes de datos, donde *n* es el tamaño dado en el campo anterior" #: ../Doc/library/chunk.rst:41 msgid "8 + *n*" -msgstr "" +msgstr "8 + *n*" #: ../Doc/library/chunk.rst:41 msgid "0 or 1" -msgstr "" +msgstr "0 o 1" #: ../Doc/library/chunk.rst:41 msgid "Pad byte needed if *n* is odd and chunk alignment is used" msgstr "" +"Se necesita un byte de relleno si *n* es impar y se utiliza la alineación de " +"trozos" #: ../Doc/library/chunk.rst:45 msgid "The ID is a 4-byte string which identifies the type of chunk." -msgstr "" +msgstr "La ID es una cadena de 4 bytes que identifica el tipo de trozo." #: ../Doc/library/chunk.rst:47 msgid "" "The size field (a 32-bit value, encoded using big-endian byte order) gives " "the size of the chunk data, not including the 8-byte header." msgstr "" +"El campo de tamaño (un valor de 32 bits, codificado utilizando el orden de " +"bytes big-endian) da el tamaño de los datos de los trozos, sin incluir el " +"encabezamiento de 8 bytes." #: ../Doc/library/chunk.rst:50 msgid "" @@ -107,6 +120,12 @@ msgid "" "after which a new instance can be instantiated. At the end of the file, " "creating a new instance will fail with an :exc:`EOFError` exception." msgstr "" +"Normalmente un archivo de tipo IFF consiste en uno o más trozos. El uso " +"propuesto de la clase :class:`Chunk` definido aquí es declarar una instancia " +"al principio de cada trozo y leer de la instancia hasta que llegue al final, " +"después de lo cual se puede declarar una nueva instancia. Al final del " +"archivo, la creación de una nueva instancia fallará con una excepción :exc:" +"`EOFError`." #: ../Doc/library/chunk.rst:59 msgid "" @@ -124,25 +143,41 @@ msgid "" "true, the size given in the chunk header includes the size of the header. " "The default value is false." msgstr "" +"Clase que representa un trozo. Se espera que el argumento *file* sea un " +"objeto parecido a un archivo. Una instancia de esta clase está " +"específicamente permitida. El único método que se necesita es :meth:`~io." +"IOBase.read`. Si los métodos :meth:`~io.IOBase.seek` y :meth:`~io.IOBase." +"tell` están presentes y no plantean una excepción, también se utilizan. Si " +"estos métodos están presentes y hacen una excepción, se espera que no hayan " +"alterado el objeto. Si el argumento opcional *align* es cierto, se supone " +"que los trozos están alineados en los límites de 2 bytes. Si *align* es " +"falso, se asume que no hay alineación. El valor por defecto es true. Si el " +"argumento opcional *bigendian* es falso, se asume que el tamaño de los " +"trozos está en orden little-endian. Esto es necesario para los archivos de " +"audio WAVE. El valor por defecto es true. Si el argumento opcional " +"*inclheader* es true, el tamaño dado en la cabecera del trozo incluye el " +"tamaño de la cabecera. El valor por defecto es false." #: ../Doc/library/chunk.rst:73 msgid "A :class:`Chunk` object supports the following methods:" -msgstr "" +msgstr "Un objeto :class:`Chunk` soporta los siguientes métodos:" #: ../Doc/library/chunk.rst:78 msgid "" "Returns the name (ID) of the chunk. This is the first 4 bytes of the chunk." msgstr "" +"Retorna el nombre (ID) del trozo. Estos son los primeros 4 bytes del trozo." #: ../Doc/library/chunk.rst:84 msgid "Returns the size of the chunk." -msgstr "" +msgstr "Retorna el tamaño del trozo." #: ../Doc/library/chunk.rst:89 msgid "" "Close and skip to the end of the chunk. This does not close the underlying " "file." msgstr "" +"Cierra y salta al final del trozo. Esto no cierra el archivo subyacente." #: ../Doc/library/chunk.rst:92 msgid "" @@ -150,10 +185,13 @@ msgid "" "`close` method has been called. Before Python 3.3, they used to raise :exc:" "`IOError`, now an alias of :exc:`OSError`." msgstr "" +"El resto de los métodos se levantarán :exc:`OsError` si se llama después de " +"que el método :meth:`close` haya sido llamado. Antes de *Python* 3.3, " +"solían levantar :exc:`IOError`, ahora un alias de :exc:`OSError`." #: ../Doc/library/chunk.rst:99 msgid "Returns ``False``." -msgstr "" +msgstr "Retorna ``False``." #: ../Doc/library/chunk.rst:104 msgid "" @@ -163,10 +201,16 @@ msgid "" "end). There is no return value. If the underlying file does not allow seek, " "only forward seeks are allowed." msgstr "" +"Establece la posición actual del trozo. El argumento *whence* es opcional y " +"por defecto es ``0`` (posicionamiento absoluto del archivo); otros valores " +"son ``1`` (búsqueda relativa a la posición actual) y ``2`` (búsqueda " +"relativa al final del archivo). No hay ningún valor de retorno. Si el " +"archivo subyacente no permite la búsqueda, sólo se permiten las búsquedas " +"hacia adelante." #: ../Doc/library/chunk.rst:113 msgid "Return the current position into the chunk." -msgstr "" +msgstr "Retorna la posición actual en el trozo." #: ../Doc/library/chunk.rst:118 msgid "" @@ -176,6 +220,11 @@ msgid "" "bytes object is returned when the end of the chunk is encountered " "immediately." msgstr "" +"Leer como máximo *size* bytes del trozo (menos si la lectura llega al final " +"del trozo antes de obtener *size* bytes). Si el argumento *size* es " +"negativo u omitido, lee todos los datos hasta el final del trozo. Un objeto " +"de bytes vacío se retorna cuando el final del trozo se encuentra " +"inmediatamente." #: ../Doc/library/chunk.rst:127 msgid "" @@ -184,13 +233,19 @@ msgid "" "chunk, this method should be called so that the file points to the start of " "the next chunk." msgstr "" +"Salta al final del trozo. Todas las llamadas posteriores a :meth:`read` " +"para el trozo retorna ``b''``. Si no estás interesado en el contenido del " +"trozo, este método debe ser llamado para que el archivo apunte al comienzo " +"del siguiente trozo." #: ../Doc/library/chunk.rst:134 msgid "Footnotes" -msgstr "" +msgstr "Notas a pie de página" #: ../Doc/library/chunk.rst:135 msgid "" "\"EA IFF 85\" Standard for Interchange Format Files, Jerry Morrison, " "Electronic Arts, January 1985." msgstr "" +"\"EA IFF 85\" *Standard for Interchange Format Files*, *Jerry Morrison*, " +"*Electronic Arts*, enero 1985." diff --git a/library/collections.po b/library/collections.po index 36bc29bd56..5c414930bf 100644 --- a/library/collections.po +++ b/library/collections.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: 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: 2020-11-20 10:41-0500\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: Javier Daza C\n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/collections.rst:2 msgid ":mod:`collections` --- Container datatypes" -msgstr "" +msgstr ":mod:`collections` --- Tipos de datos contenedor" #: ../Doc/library/collections.rst:10 msgid "**Source code:** :source:`Lib/collections/__init__.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/collections/__init__.py`" #: ../Doc/library/collections.rst:20 msgid "" @@ -34,78 +36,94 @@ msgid "" "alternatives to Python's general purpose built-in containers, :class:" "`dict`, :class:`list`, :class:`set`, and :class:`tuple`." msgstr "" +"Este módulo implementa tipos de datos de contenedores especializados que " +"proporcionan alternativas a los contenedores integrados de uso general de " +"Python, :class:`dict`, :class:`list`, :class:`set`, and :class:`tuple`." #: ../Doc/library/collections.rst:25 msgid ":func:`namedtuple`" -msgstr "" +msgstr ":func:`namedtuple`" #: ../Doc/library/collections.rst:25 msgid "factory function for creating tuple subclasses with named fields" msgstr "" +"función *factory* para crear subclases de *tuplas* con campos con nombre" #: ../Doc/library/collections.rst:26 msgid ":class:`deque`" -msgstr "" +msgstr ":class:`deque`" #: ../Doc/library/collections.rst:26 msgid "list-like container with fast appends and pops on either end" msgstr "" +"contenedor similar a una lista con *appends* y *pops* rápidos en ambos " +"extremos" #: ../Doc/library/collections.rst:27 msgid ":class:`ChainMap`" -msgstr "" +msgstr ":class:`ChainMap`" #: ../Doc/library/collections.rst:27 msgid "dict-like class for creating a single view of multiple mappings" msgstr "" +"clase similar a *dict* para crear una vista única de múltiples *mapeados*" #: ../Doc/library/collections.rst:28 msgid ":class:`Counter`" -msgstr "" +msgstr ":class:`Counter`" #: ../Doc/library/collections.rst:28 msgid "dict subclass for counting hashable objects" -msgstr "" +msgstr "subclase de *dict* para contar objetos *hashables*" #: ../Doc/library/collections.rst:29 msgid ":class:`OrderedDict`" -msgstr "" +msgstr ":class:`OrderedDict`" #: ../Doc/library/collections.rst:29 msgid "dict subclass that remembers the order entries were added" msgstr "" +"subclase de *dict* que recuerda las entradas de la orden que se agregaron" #: ../Doc/library/collections.rst:30 msgid ":class:`defaultdict`" -msgstr "" +msgstr ":class:`defaultdict`" #: ../Doc/library/collections.rst:30 msgid "dict subclass that calls a factory function to supply missing values" msgstr "" +"subclase de *dict* que llama a una función de *factory* para suministrar " +"valores faltantes" #: ../Doc/library/collections.rst:31 msgid ":class:`UserDict`" -msgstr "" +msgstr ":class:`UserDict`" #: ../Doc/library/collections.rst:31 msgid "wrapper around dictionary objects for easier dict subclassing" msgstr "" +"envoltura alrededor de los objetos de diccionario para facilitar " +"subclasificaciones *dict*" #: ../Doc/library/collections.rst:32 msgid ":class:`UserList`" -msgstr "" +msgstr ":class:`UserList`" #: ../Doc/library/collections.rst:32 msgid "wrapper around list objects for easier list subclassing" msgstr "" +"envoltura alrededor de los objetos de lista para facilitar la " +"subclasificación de un *list*" #: ../Doc/library/collections.rst:33 msgid ":class:`UserString`" -msgstr "" +msgstr ":class:`UserString`" #: ../Doc/library/collections.rst:33 msgid "wrapper around string objects for easier string subclassing" msgstr "" +"envoltura alrededor de objetos de cadena para facilitar la subclasificación " +"de *string*" #: ../Doc/library/collections.rst:41 msgid "" @@ -113,10 +131,13 @@ msgid "" "module. For backwards compatibility, they continue to be visible in this " "module through Python 3.9." msgstr "" +"Trasladado :ref:`collections-abstract-base-classes` al modulo :mod:" +"`collections.abc`. Para compatibilidad hacia atrás, continúan siendo " +"visibles en este módulo a través de Python 3.9." #: ../Doc/library/collections.rst:43 msgid ":class:`ChainMap` objects" -msgstr "" +msgstr "Objetos :class:`ChainMap`" #: ../Doc/library/collections.rst:47 msgid "" @@ -125,11 +146,17 @@ msgid "" "than creating a new dictionary and running multiple :meth:`~dict.update` " "calls." msgstr "" +"Una clase :class:`ChainMap` se proporciona para vincular rápidamente una " +"serie de *mappings* de modo que puedan tratarse como una sola unidad. Suele " +"ser mucho más rápido que crear un diccionario nuevo y ejecutar varias " +"llamadas a :meth:`~dict.update`." #: ../Doc/library/collections.rst:51 msgid "" "The class can be used to simulate nested scopes and is useful in templating." msgstr "" +"La clase se puede utilizar para simular ámbitos anidados y es útil para " +"crear plantillas." #: ../Doc/library/collections.rst:55 msgid "" @@ -138,12 +165,19 @@ msgid "" "empty dictionary is provided so that a new chain always has at least one " "mapping." msgstr "" +"Un :class:`ChainMap` agrupa varios diccionarios u otros *mappings* para " +"crear una vista única y actualizable. Si no se especifican *maps*, se " +"proporciona un solo diccionario vacío para que una nueva cadena siempre " +"tenga al menos un *mapeo*." #: ../Doc/library/collections.rst:59 msgid "" "The underlying mappings are stored in a list. That list is public and can " "be accessed or updated using the *maps* attribute. There is no other state." msgstr "" +"Las asignaciones subyacentes se almacenan en una lista. Esa lista es pública " +"y se puede acceder a ella o actualizarla usando el atributo *maps*. No hay " +"otro estado." #: ../Doc/library/collections.rst:62 msgid "" @@ -151,6 +185,9 @@ msgid "" "In contrast, writes, updates, and deletions only operate on the first " "mapping." msgstr "" +"Las búsquedas buscan los mapeos subyacentes sucesivamente hasta que se " +"encuentra una clave. Por el contrario, las escrituras, actualizaciones y " +"eliminaciones solo operan en el primer *mapeo*." #: ../Doc/library/collections.rst:65 msgid "" @@ -158,6 +195,9 @@ msgid "" "if one of the underlying mappings gets updated, those changes will be " "reflected in :class:`ChainMap`." msgstr "" +"Un :class:`ChainMap` incorpora los mapeos subyacentes por referencia. " +"Entonces, si una de los mapeos subyacentes se actualiza, esos cambios se " +"reflejarán en :class:`ChainMap`." #: ../Doc/library/collections.rst:69 msgid "" @@ -165,6 +205,9 @@ msgid "" "*maps* attribute, a method for creating new subcontexts, and a property for " "accessing all but the first mapping:" msgstr "" +"Se admiten todos los métodos habituales de un diccionario. Además, hay un " +"atributo *maps*, un método para crear nuevos sub contextos y una propiedad " +"para acceder a todos menos al primer mapeo:" #: ../Doc/library/collections.rst:75 msgid "" @@ -173,6 +216,10 @@ msgid "" "which mappings are searched. The list should always contain at least one " "mapping." msgstr "" +"Una lista de mapeos actualizable por el usuario. La lista está ordenada " +"desde la primera búsqueda hasta la última búsqueda. Es el único estado " +"almacenado y se puede modificar para cambiar los mapeos que se buscan. La " +"lista siempre debe contener al menos un mapeo." #: ../Doc/library/collections.rst:82 msgid "" @@ -183,10 +230,17 @@ msgid "" "*d.maps)``. This method is used for creating subcontexts that can be " "updated without altering values in any of the parent mappings." msgstr "" +"Retorna un nuevo :class:`ChainMap` conteniendo un nuevo mapa seguido de " +"todos los mapas de la instancia actual. Si se especifica ``m``, se " +"convierte en el nuevo mapa al principio de la lista de asignaciones; si no " +"se especifica, se usa un dict vacío, de modo que una llamada a ``d." +"new_child()`` es equivalente a: ``ChainMap({}, *d.maps)``. Este método se " +"utiliza para crear sub contextos que se pueden actualizar sin alterar los " +"valores en ninguna de los mapeos padre." #: ../Doc/library/collections.rst:90 msgid "The optional ``m`` parameter was added." -msgstr "" +msgstr "Se agregó el parámetro opcional ``m`` ." #: ../Doc/library/collections.rst:95 msgid "" @@ -197,18 +251,29 @@ msgid "" "cases also parallel those for the built-in :func:`super` function. A " "reference to ``d.parents`` is equivalent to: ``ChainMap(*d.maps[1:])``." msgstr "" +"Propiedad que retorna un nuevo :class:`ChainMap` conteniendo todos los mapas " +"de la instancia actual excepto el primero. Esto es útil para omitir el " +"primer mapa en la búsqueda. Los casos de uso son similares a los de :" +"keyword:`nonlocal` la palabra clave usada en :term:`alcances anidados " +"`. Los casos de uso también son paralelos a los de la función " +"incorporada :func:`super`. Una referencia a ``d.parents`` es equivalente a: " +"``ChainMap(*d.maps[1:])``." #: ../Doc/library/collections.rst:103 msgid "" "Note, the iteration order of a :class:`ChainMap()` is determined by scanning " "the mappings last to first::" msgstr "" +"Tenga en cuenta que el orden de iteración de a :class:`ChainMap()` se " +"determina escaneando los mapeos del último al primero::" #: ../Doc/library/collections.rst:111 msgid "" "This gives the same ordering as a series of :meth:`dict.update` calls " "starting with the last mapping::" msgstr "" +"Esto da el mismo orden que una serie de llamadas a :meth:`dict.update` " +"comenzando con el último mapeo::" #: ../Doc/library/collections.rst:121 msgid "" @@ -217,6 +282,10 @@ msgid "" "`_ has options to support writing to " "any mapping in the chain." msgstr "" +"La `clase MultiContext `_ en el paquete de Enthought llamado " +"`CodeTools `_ tiene opciones para " +"admitir la escritura en cualquier mapeo de la cadena." #: ../Doc/library/collections.rst:127 msgid "" @@ -226,6 +295,11 @@ msgid "" "`~collections.ChainMap.new_child` method and the :attr:`~collections." "ChainMap.parents` property." 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 " +"contextos similar al método :meth:`~collections.ChainMap.new_child` y a la " +"propiedad :attr:`~collections.ChainMap.parents` ." #: ../Doc/library/collections.rst:134 msgid "" @@ -233,24 +307,30 @@ msgid "" "has options to control whether writes and other mutations apply only to the " "first mapping or to any mapping in the chain." msgstr "" +"La `receta de Contextos Anidados `_ tiene opciones para controlar si las escrituras y otras " +"mutaciones se aplican solo al primer mapeo o a cualquier mapeo en la cadena." #: ../Doc/library/collections.rst:139 msgid "" "A `greatly simplified read-only version of Chainmap `_." msgstr "" +"Una `versión de solo lectura muy simplificada de Chainmap `_." #: ../Doc/library/collections.rst:144 msgid ":class:`ChainMap` Examples and Recipes" -msgstr "" +msgstr "Ejemplos y recetas :class:`ChainMap`" #: ../Doc/library/collections.rst:146 msgid "This section shows various approaches to working with chained maps." msgstr "" +"Esta sección muestra varios enfoques para trabajar con mapas encadenados." #: ../Doc/library/collections.rst:149 msgid "Example of simulating Python's internal lookup chain::" -msgstr "" +msgstr "Ejemplo de simulación de la cadena de búsqueda interna de Python:" #: ../Doc/library/collections.rst:154 msgid "" @@ -258,12 +338,17 @@ msgid "" "over environment variables which in turn take precedence over default " "values::" msgstr "" +"Ejemplo de dejar que los argumentos de la línea de comandos especificados " +"por el usuario tengan prioridad sobre las variables de entorno que, a su " +"vez, tienen prioridad sobre los valores predeterminados::" #: ../Doc/library/collections.rst:171 msgid "" "Example patterns for using the :class:`ChainMap` class to simulate nested " "contexts::" msgstr "" +"Patrones de ejemplo para usar la clase :class:`ChainMap` para simular " +"contextos anidados::" #: ../Doc/library/collections.rst:190 msgid "" @@ -272,16 +357,23 @@ msgid "" "However, if deep writes and deletions are desired, it is easy to make a " "subclass that updates keys found deeper in the chain::" msgstr "" +"La clase :class:`ChainMap` solo realiza actualizaciones (escrituras y " +"eliminaciones) en el primer mapeo de la cadena, mientras que las búsquedas " +"buscarán en la cadena completa. Sin embargo, si se desean escrituras y " +"eliminaciones profundas, es fácil crear una subclase que actualice las " +"llaves que se encuentran más profundas en la cadena::" #: ../Doc/library/collections.rst:221 msgid ":class:`Counter` objects" -msgstr "" +msgstr "Objetos :class:`Counter`" #: ../Doc/library/collections.rst:223 msgid "" "A counter tool is provided to support convenient and rapid tallies. For " "example::" msgstr "" +"Se proporciona una herramienta de contador para respaldar recuentos rápidos " +"y convenientes. Por ejemplo::" #: ../Doc/library/collections.rst:242 msgid "" @@ -291,24 +383,37 @@ msgid "" "integer value including zero or negative counts. The :class:`Counter` class " "is similar to bags or multisets in other languages." msgstr "" +"Una clase :class:`Counter` es una subclase :class:`dict` para contar objetos " +"hashables. Es una colección donde los elementos se almacenan como llaves de " +"diccionario y sus conteos se almacenan como valores de diccionario. Se " +"permite que los conteos sean cualquier valor entero, incluidos los conteos " +"de cero o negativos. La clase :class:`Counter` es similar a los *bags* o " +"multiconjuntos en otros idiomas." #: ../Doc/library/collections.rst:248 msgid "" "Elements are counted from an *iterable* or initialized from another " "*mapping* (or counter):" msgstr "" +"Los elementos se cuentan desde un *iterable* o se inicializan desde otro " +"*mapeo* (o contador):" #: ../Doc/library/collections.rst:256 msgid "" "Counter objects have a dictionary interface except that they return a zero " "count for missing items instead of raising a :exc:`KeyError`:" msgstr "" +"Los objetos Counter tienen una interfaz de diccionario, excepto que retornan " +"un conteo de cero para los elementos faltantes en lugar de levantar una :exc:" +"`KeyError`:" #: ../Doc/library/collections.rst:263 msgid "" "Setting a count to zero does not remove an element from a counter. Use " "``del`` to remove it entirely:" msgstr "" +"Establecer un conteo en cero no elimina un elemento de un contador. Utilice " +"``del`` para eliminarlo por completo:" #: ../Doc/library/collections.rst:271 msgid "" @@ -318,12 +423,19 @@ msgid "" "encountered in the left operand and then by the order encountered in the " "right operand." msgstr "" +"Como subclase de :class:`dict` , :class:`Counter` heredó la capacidad de " +"recordar el orden de inserción. Las operaciones matemáticas en objetos " +"*Counter* también preserva el orden. Los resultados se ordenan cuando se " +"encuentra un elemento por primera vez en el operando izquierdo y luego según " +"el orden encontrado en el operando derecho." #: ../Doc/library/collections.rst:277 msgid "" "Counter objects support three methods beyond those available for all " "dictionaries:" msgstr "" +"Los objetos Counter admiten tres métodos más allá de los disponibles para " +"todos los diccionarios:" #: ../Doc/library/collections.rst:282 msgid "" @@ -331,6 +443,10 @@ msgid "" "Elements are returned in the order first encountered. If an element's count " "is less than one, :meth:`elements` will ignore it." msgstr "" +"Retorna un iterador sobre los elementos que se repiten tantas veces como su " +"conteo. Los elementos se retornan en el orden en que se encontraron por " +"primera vez. Si el conteo de un elemento es menor que uno, :meth:`elements` " +"lo ignorará." #: ../Doc/library/collections.rst:292 msgid "" @@ -339,6 +455,10 @@ msgid "" "returns *all* elements in the counter. Elements with equal counts are " "ordered in the order first encountered:" msgstr "" +"Retorna una lista de los *n* elementos mas comunes y sus conteos, del mas " +"común al menos común. Si se omite *n* o ``None``, :meth:`most_common` " +"retorna *todos* los elementos del contador. Los elementos con conteos " +"iguales se ordenan en el orden en que se encontraron por primera vez:" #: ../Doc/library/collections.rst:302 msgid "" @@ -346,16 +466,22 @@ msgid "" "counter). Like :meth:`dict.update` but subtracts counts instead of " "replacing them. Both inputs and outputs may be zero or negative." msgstr "" +"Los elementos se restan de un *iterable* o de otro *mapeo* (o contador). " +"Como :meth:`dict.update` pero resta los conteos en lugar de reemplazarlos. " +"Tanto las entradas como las salidas pueden ser cero o negativas." #: ../Doc/library/collections.rst:314 msgid "" "The usual dictionary methods are available for :class:`Counter` objects " "except for two which work differently for counters." msgstr "" +"Los métodos de diccionario habituales están disponibles para objetos :class:" +"`Counter` excepto dos que funcionan de manera diferente para los contadores." #: ../Doc/library/collections.rst:319 msgid "This class method is not implemented for :class:`Counter` objects." msgstr "" +"Este método de clase no está implementado para objetos :class:`Counter` ." #: ../Doc/library/collections.rst:323 msgid "" @@ -364,10 +490,14 @@ msgid "" "them. Also, the *iterable* is expected to be a sequence of elements, not a " "sequence of ``(key, value)`` pairs." msgstr "" +"Los elementos se cuentan desde un *iterable* o agregados desde otro *mapeo* " +"(o contador). Como :meth:`dict.update` pero agrega conteos en lugar de " +"reemplazarlos. Además, se espera que el *iterable* sea una secuencia de " +"elementos, no una secuencia de parejas ``(llave, valor)`` ." #: ../Doc/library/collections.rst:328 msgid "Common patterns for working with :class:`Counter` objects::" -msgstr "" +msgstr "Patrones comunes para trabajar con objetos :class:`Counter`::" #: ../Doc/library/collections.rst:340 msgid "" @@ -379,17 +509,28 @@ msgid "" "signed counts, but the output will exclude results with counts of zero or " "less." msgstr "" +"Se proporcionan varias operaciones matemáticas para combinar objetos :class:" +"`Counter` para producir multiconjuntos (contadores que tienen conteos " +"mayores que cero). La suma y la resta combinan contadores sumando o restando " +"los conteos de los elementos correspondientes. La Intersección y unión " +"retornan el mínimo y el máximo de conteos correspondientes. Cada operación " +"puede aceptar entradas con conteos con signo, pero la salida excluirá los " +"resultados con conteos de cero o menos." #: ../Doc/library/collections.rst:358 msgid "" "Unary addition and subtraction are shortcuts for adding an empty counter or " "subtracting from an empty counter." msgstr "" +"La suma y resta unaria son atajos para agregar un contador vacío o restar de " +"un contador vacío." #: ../Doc/library/collections.rst:367 msgid "" "Added support for unary plus, unary minus, and in-place multiset operations." msgstr "" +"Se agregó soporte para operaciones unarias de adición, resta y multiconjunto " +"en su lugar (*in-place*)." #: ../Doc/library/collections.rst:372 msgid "" @@ -398,6 +539,11 @@ msgid "" "cases needing other types or negative values. To help with those use cases, " "this section documents the minimum range and type restrictions." msgstr "" +"Los Counters se diseñaron principalmente para trabajar con números enteros " +"positivos para representar conteos continuos; sin embargo, se tuvo cuidado " +"de no excluir innecesariamente los casos de uso que necesitan otros tipos o " +"valores negativos. Para ayudar con esos casos de uso, esta sección documenta " +"el rango mínimo y las restricciones de tipo." #: ../Doc/library/collections.rst:377 msgid "" @@ -405,12 +551,18 @@ msgid "" "restrictions on its keys and values. The values are intended to be numbers " "representing counts, but you *could* store anything in the value field." msgstr "" +"La clase :class:`Counter` en sí misma es una subclase de diccionario sin " +"restricciones en sus llaves y valores. Los valores están pensados para ser " +"números que representan conteos, pero *podría* almacenar cualquier cosa en " +"el campo de valor." #: ../Doc/library/collections.rst:381 msgid "" "The :meth:`~Counter.most_common` method requires only that the values be " "orderable." msgstr "" +"El método :meth:`~Counter.most_common` solo requiere que los valores se " +"puedan ordenar." #: ../Doc/library/collections.rst:383 msgid "" @@ -420,6 +572,11 @@ msgid "" "`~Counter.update` and :meth:`~Counter.subtract` which allow negative and " "zero values for both inputs and outputs." msgstr "" +"Para operaciones en su lugar (*in-place*) como ``c[key] += 1``, el tipo de " +"valor solo necesita admitir la suma y la resta. Por lo tanto, las " +"fracciones, flotantes y decimales funcionarían y se admiten valores " +"negativos. Lo mismo ocurre con :meth:`~Counter.update` y :meth:`~Counter." +"subtract` que permiten valores negativos y cero para las entradas y salidas." #: ../Doc/library/collections.rst:389 msgid "" @@ -428,29 +585,41 @@ msgid "" "are created. There are no type restrictions, but the value type needs to " "support addition, subtraction, and comparison." msgstr "" +"Los métodos de multiconjuntos están diseñados solo para casos de uso con " +"valores positivos. Las entradas pueden ser negativas o cero, pero solo se " +"crean salidas con valores positivos. No hay restricciones de tipo, pero el " +"tipo de valor debe admitir la suma, la resta y la comparación." #: ../Doc/library/collections.rst:394 msgid "" "The :meth:`~Counter.elements` method requires integer counts. It ignores " "zero and negative counts." msgstr "" +"El método :meth:`~Counter.elements` requiere conteos enteros. Ignora los " +"conteos de cero y negativos." #: ../Doc/library/collections.rst:399 msgid "" "`Bag class `_ in Smalltalk." msgstr "" +"`Clase Bag `_ en Smalltalk." #: ../Doc/library/collections.rst:402 msgid "" "Wikipedia entry for `Multisets `_." msgstr "" +"Entrada de Wikipedia para `Multiconjuntos `_." #: ../Doc/library/collections.rst:404 msgid "" "`C++ multisets `_ tutorial with examples." msgstr "" +"Tutorial de `multiconjuntos de C++ `_ con ejemplos." #: ../Doc/library/collections.rst:407 msgid "" @@ -458,16 +627,22 @@ msgid "" "Donald. The Art of Computer Programming Volume II, Section 4.6.3, Exercise " "19*." msgstr "" +"Para operaciones matemáticas en multiconjuntos y sus casos de uso, consulte " +"*Knuth, Donald. The Art of Computer Programming Volume II, Sección 4.6.3, " +"Ejercicio 19*." #: ../Doc/library/collections.rst:411 msgid "" "To enumerate all distinct multisets of a given size over a given set of " "elements, see :func:`itertools.combinations_with_replacement`::" msgstr "" +"Para enumerar todos los distintos multiconjuntos de un tamaño dado sobre un " +"conjunto dado de elementos, consulte :func:`itertools." +"combinations_with_replacement`::" #: ../Doc/library/collections.rst:418 msgid ":class:`deque` objects" -msgstr "" +msgstr "Objetos :class:`deque`" #: ../Doc/library/collections.rst:422 msgid "" @@ -475,6 +650,9 @@ msgid "" "with data from *iterable*. If *iterable* is not specified, the new deque is " "empty." msgstr "" +"Retorna un nuevo objeto deque inicializado de izquierda a derecha (usando :" +"meth:`append`) con datos de *iterable*. Si no se especifica *iterable*, el " +"nuevo deque estará vacío." #: ../Doc/library/collections.rst:425 msgid "" @@ -483,6 +661,11 @@ msgid "" "safe, memory efficient appends and pops from either side of the deque with " "approximately the same O(1) performance in either direction." msgstr "" +"Los deques son una generalización de pilas y colas (el nombre se pronuncia " +"“baraja”, *deck* en inglés, y es la abreviatura de “cola de dos extremos”, " +"*double-ended queue* en inglés). Los Deques admiten hilos seguros, appends y " +"pops eficientes en memoria desde cualquier lado del deque con " +"aproximadamente el mismo rendimiento O(1) en cualquier dirección." #: ../Doc/library/collections.rst:430 msgid "" @@ -491,6 +674,11 @@ msgid "" "``pop(0)`` and ``insert(0, v)`` operations which change both the size and " "position of the underlying data representation." msgstr "" +"Aunque los objetos :class:`list` admiten operaciones similares, están " +"optimizados para operaciones rápidas de longitud fija e incurren en costos " +"de movimiento de memoria O(n) para operaciones ``pop(0)`` y ``insert(0, v)`` " +"que cambian tanto el tamaño como la posición de la representación de datos " +"subyacente." #: ../Doc/library/collections.rst:436 msgid "" @@ -502,36 +690,46 @@ msgid "" "They are also useful for tracking transactions and other pools of data where " "only the most recent activity is of interest." msgstr "" +"Si no se especifica *maxlen* o es ``None``, los deques pueden crecer hasta " +"una longitud arbitraria. De lo contrario, el deque está limitado a la " +"longitud máxima especificada. Una vez que un deque de longitud limitada esta " +"lleno, cuando se agregan nuevos elementos, se descarta el número " +"correspondiente de elementos del extremo opuesto. Los deques de longitud " +"limitada proporcionan una funcionalidad similar al filtro ``tail`` en Unix. " +"También son útiles para rastrear transacciones y otros grupos de datos donde " +"solo la actividad más reciente es de interés." #: ../Doc/library/collections.rst:445 msgid "Deque objects support the following methods:" -msgstr "" +msgstr "Los objetos deque admiten los siguientes métodos:" #: ../Doc/library/collections.rst:449 msgid "Add *x* to the right side of the deque." -msgstr "" +msgstr "Agregue *x* al lado derecho del deque." #: ../Doc/library/collections.rst:454 msgid "Add *x* to the left side of the deque." -msgstr "" +msgstr "Agregue *x* al lado izquierdo del deque." #: ../Doc/library/collections.rst:459 msgid "Remove all elements from the deque leaving it with length 0." -msgstr "" +msgstr "Retire todos los elementos del deque dejándolo con longitud 0." #: ../Doc/library/collections.rst:464 msgid "Create a shallow copy of the deque." -msgstr "" +msgstr "Crea una copia superficial del deque." #: ../Doc/library/collections.rst:471 msgid "Count the number of deque elements equal to *x*." -msgstr "" +msgstr "Cuente el número de elementos deque igual a *x*." #: ../Doc/library/collections.rst:478 msgid "" "Extend the right side of the deque by appending elements from the iterable " "argument." msgstr "" +"Extienda el lado derecho del deque agregando elementos del argumento " +"iterable." #: ../Doc/library/collections.rst:484 msgid "" @@ -539,6 +737,9 @@ msgid "" "Note, the series of left appends results in reversing the order of elements " "in the iterable argument." msgstr "" +"Extienda el lado izquierdo del deque agregando elementos de *iterable*. " +"Tenga en cuenta que la serie de appends a la izquierda da como resultado la " +"inversión del orden de los elementos en el argumento iterable." #: ../Doc/library/collections.rst:491 msgid "" @@ -546,44 +747,59 @@ msgid "" "before index *stop*). Returns the first match or raises :exc:`ValueError` " "if not found." msgstr "" +"Retorna la posición de *x* en el deque (en o después del índice *start* y " +"antes del índice *stop*). Retorna la primera coincidencia o lanza :exc:" +"`ValueError` si no se encuentra." #: ../Doc/library/collections.rst:500 msgid "Insert *x* into the deque at position *i*." -msgstr "" +msgstr "Ingrese *x* en el dique en la posición *i*." #: ../Doc/library/collections.rst:502 msgid "" "If the insertion would cause a bounded deque to grow beyond *maxlen*, an :" "exc:`IndexError` is raised." msgstr "" +"Si la inserción causara que un deque limitado crezca más allá de *maxlen*, " +"se lanza un :exc:`IndexError`." #: ../Doc/library/collections.rst:510 msgid "" "Remove and return an element from the right side of the deque. If no " "elements are present, raises an :exc:`IndexError`." msgstr "" +"Elimina y retorna un elemento del lado derecho del deque. Si no hay " +"elementos presentes, lanza un :exc:`IndexError`." #: ../Doc/library/collections.rst:516 msgid "" "Remove and return an element from the left side of the deque. If no elements " "are present, raises an :exc:`IndexError`." msgstr "" +"Elimina y retorna un elemento del lado izquierdo del deque. Si no hay " +"elementos presentes, lanza un :exc:`IndexError`." #: ../Doc/library/collections.rst:522 msgid "" "Remove the first occurrence of *value*. If not found, raises a :exc:" "`ValueError`." msgstr "" +"Elimina la primera aparición de *value*. Si no se encuentra, lanza un :exc:" +"`ValueError`." #: ../Doc/library/collections.rst:528 msgid "Reverse the elements of the deque in-place and then return ``None``." msgstr "" +"Invierte los elementos del deque en su lugar (*in-place*) y luego retorna " +"``None``." #: ../Doc/library/collections.rst:535 msgid "" "Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " "left." msgstr "" +"Gira el deque *n* pasos a la derecha. Si *n* es negativo, lo gira hacia la " +"izquierda." #: ../Doc/library/collections.rst:538 msgid "" @@ -591,14 +807,17 @@ msgid "" "``d.appendleft(d.pop())``, and rotating one step to the left is equivalent " "to ``d.append(d.popleft())``." msgstr "" +"Cuando el deque no está vacío, girar un paso hacia la derecha equivale a ``d." +"appendleft(d.pop())``, y girar un paso hacia la izquierda equivale a ``d." +"append(d.popleft())``." #: ../Doc/library/collections.rst:543 msgid "Deque objects also provide one read-only attribute:" -msgstr "" +msgstr "Los objetos deque también proporcionan un atributo de solo lectura:" #: ../Doc/library/collections.rst:547 msgid "Maximum size of a deque or ``None`` if unbounded." -msgstr "" +msgstr "Tamaño máximo de un deque o ``None`` si no está limitado." #: ../Doc/library/collections.rst:552 msgid "" @@ -608,36 +827,49 @@ msgid "" "to access the first element. Indexed access is O(1) at both ends but slows " "to O(n) in the middle. For fast random access, use lists instead." msgstr "" +"Además de lo anterior, los deques admiten iteración, pickling, ``len(d)``, " +"``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, prueba de " +"pertenencia con el operador :keyword:`in` , y referencias de subíndices como " +"``d[0]`` para acceder al primer elemento. El acceso indexado es O(1) en " +"ambos extremos, pero se ralentiza hasta O(n) en el medio. Para un acceso " +"aleatorio rápido, use listas en su lugar." #: ../Doc/library/collections.rst:558 msgid "" "Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " "``__imul__()``." msgstr "" +"A partir de la versión 3.5, los deques admiten ``__add__()``, ``__mul__()``, " +"y ``__imul__()``." #: ../Doc/library/collections.rst:561 msgid "Example:" -msgstr "" +msgstr "Ejemplo:" #: ../Doc/library/collections.rst:618 msgid ":class:`deque` Recipes" -msgstr "" +msgstr "Recetas :class:`deque`" #: ../Doc/library/collections.rst:620 msgid "This section shows various approaches to working with deques." -msgstr "" +msgstr "Esta sección muestra varios enfoques para trabajar con deques." #: ../Doc/library/collections.rst:622 msgid "" "Bounded length deques provide functionality similar to the ``tail`` filter " "in Unix::" msgstr "" +"Los deques de longitud limitada proporcionan una funcionalidad similar al " +"filtro ``tail`` en Unix::" #: ../Doc/library/collections.rst:630 msgid "" "Another approach to using deques is to maintain a sequence of recently added " "elements by appending to the right and popping to the left::" msgstr "" +"Otro enfoque para usar deques es mantener una secuencia de elementos " +"agregados recientemente haciendo appending a la derecha y popping a la " +"izquierda:" #: ../Doc/library/collections.rst:645 msgid "" @@ -648,6 +880,12 @@ msgid "" "popleft`; otherwise, it can be cycled back to the end with the :meth:`~deque." "rotate` method::" msgstr "" +"Un `scheduler round-robin `_ se puede implementar con iteradores de entrada " +"almacenados en :class:`deque`. Los valores son producidos del iterador " +"activo en la posición cero. Si ese iterador está agotado, se puede eliminar " +"con :meth:`~deque.popleft`; de lo contrario, se puede volver en ciclos al " +"final con el método :meth:`~deque.rotate` ::" #: ../Doc/library/collections.rst:664 msgid "" @@ -655,6 +893,10 @@ msgid "" "slicing and deletion. For example, a pure Python implementation of ``del " "d[n]`` relies on the ``rotate()`` method to position elements to be popped::" msgstr "" +"El método :meth:`~deque.rotate` proporciona una forma de implementar " +"eliminación y rebanado de :class:`deque`. Por ejemplo, una implementación " +"pura de Python de ``del d[n]`` se basa en el método ``rotate()`` para " +"colocar los elementos que se van a extraer::" #: ../Doc/library/collections.rst:673 msgid "" @@ -665,10 +907,17 @@ msgid "" "that approach, it is easy to implement Forth style stack manipulations such " "as ``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot``, and ``roll``." msgstr "" +"Para implementar el rebanado de un :class:`deque`, use un enfoque similar " +"aplicando :meth:`~deque.rotate` para traer un elemento objetivo al lado " +"izquierdo del deque. Elimine las entradas antiguas con :meth:`~deque." +"popleft`, agregue nuevas entradas con :meth:`~deque.extend`, y luego " +"invierta la rotación. Con variaciones menores en ese enfoque, es fácil " +"implementar manipulaciones de pila de estilo hacia adelante como ``dup``, " +"``drop``, ``swap``, ``over``, ``pick``, ``rot``, y ``roll``." #: ../Doc/library/collections.rst:683 msgid ":class:`defaultdict` objects" -msgstr "" +msgstr "Objetos :class:`defaultdict`" #: ../Doc/library/collections.rst:687 msgid "" @@ -677,6 +926,10 @@ msgid "" "writable instance variable. The remaining functionality is the same as for " "the :class:`dict` class and is not documented here." msgstr "" +"Retorna un nuevo objeto similar a un diccionario. :class:`defaultdict` es " +"una subclase de la clase incorporada :class:`dict`. Anula un método y agrega " +"una variable de instancia de escritura. La funcionalidad restante es la " +"misma que para la clase :class:`dict` y no está documentada aquí." #: ../Doc/library/collections.rst:692 msgid "" @@ -685,18 +938,26 @@ msgid "" "arguments are treated the same as if they were passed to the :class:`dict` " "constructor, including keyword arguments." msgstr "" +"El primer argumento proporciona el valor inicial para el atributo :attr:" +"`default_factory`; por defecto es ``None``. Todos los argumentos restantes " +"se tratan de la misma forma que si se pasaran al constructor :class:`dict`, " +"incluidos los argumentos de palabras clave." #: ../Doc/library/collections.rst:698 msgid "" ":class:`defaultdict` objects support the following method in addition to the " "standard :class:`dict` operations:" msgstr "" +"Los objetos :class:`defaultdict` admiten el siguiente método además de las " +"operaciones estándar de :class:`dict`:" #: ../Doc/library/collections.rst:703 msgid "" "If the :attr:`default_factory` attribute is ``None``, this raises a :exc:" "`KeyError` exception with the *key* as argument." msgstr "" +"Si el atributo :attr:`default_factory` es ``None``, lanza una excepción :exc:" +"`KeyError` con la *llave* como argumento." #: ../Doc/library/collections.rst:706 msgid "" @@ -704,12 +965,17 @@ msgid "" "to provide a default value for the given *key*, this value is inserted in " "the dictionary for the *key*, and returned." msgstr "" +"Si :attr:`default_factory` no es ``None``, se llama sin argumentos para " +"proporcionar un valor predeterminado para la *llave* dada, este valor se " +"inserta en el diccionario para la *llave* y se retorna." #: ../Doc/library/collections.rst:710 msgid "" "If calling :attr:`default_factory` raises an exception this exception is " "propagated unchanged." msgstr "" +"Si llamar a :attr:`default_factory` lanza una excepción, esta excepción se " +"propaga sin cambios." #: ../Doc/library/collections.rst:713 msgid "" @@ -717,6 +983,9 @@ msgid "" "class when the requested key is not found; whatever it returns or raises is " "then returned or raised by :meth:`__getitem__`." msgstr "" +"Este método es llamado por el método :meth:`__getitem__` de la clase :class:" +"`dict` cuando no se encuentra la llave solicitada; todo lo que retorna o " +"lanza es retornado o lanzado por :meth:`__getitem__`." #: ../Doc/library/collections.rst:717 msgid "" @@ -725,10 +994,15 @@ msgid "" "dictionaries, return ``None`` as a default rather than using :attr:" "`default_factory`." msgstr "" +"Tenga en cuenta que :meth:`__missing__` *no* se llama para ninguna operación " +"aparte de :meth:`__getitem__`. Esto significa que :meth:`get`, como los " +"diccionarios normales, retornará ``None`` por defecto en lugar de usar :attr:" +"`default_factory`." #: ../Doc/library/collections.rst:723 msgid ":class:`defaultdict` objects support the following instance variable:" msgstr "" +"los objetos :class:`defaultdict` admiten la siguiente variable de instancia:" #: ../Doc/library/collections.rst:728 msgid "" @@ -736,16 +1010,21 @@ msgid "" "from the first argument to the constructor, if present, or to ``None``, if " "absent." msgstr "" +"Este atributo es utilizado por el método :meth:`__missing__` ; se inicializa " +"desde el primer argumento al constructor, si está presente, o en ``None``, " +"si está ausente." #: ../Doc/library/collections.rst:734 msgid ":class:`defaultdict` Examples" -msgstr "" +msgstr "Ejemplos :class:`defaultdict`" #: ../Doc/library/collections.rst:736 msgid "" "Using :class:`list` as the :attr:`~defaultdict.default_factory`, it is easy " "to group a sequence of key-value pairs into a dictionary of lists:" msgstr "" +"Usando :class:`list` como :attr:`~defaultdict.default_factory`, es fácil " +"agrupar una secuencia de pares llave-valor en un diccionario de listas:" #: ../Doc/library/collections.rst:747 msgid "" @@ -758,6 +1037,14 @@ msgid "" "list. This technique is simpler and faster than an equivalent technique " "using :meth:`dict.setdefault`:" msgstr "" +"Cuando se encuentra cada llave por primera vez, no está ya en el mapping; " +"por lo que una entrada se crea automáticamente usando la función :attr:" +"`~defaultdict.default_factory` que retorna una :class:`list` vacía. La " +"operación :meth:`list.append` luego adjunta el valor a la nueva lista. " +"Cuando se vuelven a encontrar llaves, la búsqueda procede normalmente " +"(retornando la lista para esa llave) y la operación :meth:`list.append` " +"agrega otro valor a la lista. Esta técnica es más simple y rápida que una " +"técnica equivalente usando :meth:`dict.setdefault`:" #: ../Doc/library/collections.rst:762 msgid "" @@ -765,6 +1052,9 @@ msgid "" "class:`defaultdict` useful for counting (like a bag or multiset in other " "languages):" msgstr "" +"Establecer :attr:`~defaultdict.default_factory` en :class:`int` hace que :" +"class:`defaultdict` sea útil para contar (como un bag o multiconjunto en " +"otros idiomas):" #: ../Doc/library/collections.rst:774 msgid "" @@ -773,6 +1063,10 @@ msgid "" "default count of zero. The increment operation then builds up the count for " "each letter." msgstr "" +"Cuando se encuentra una letra por primera vez, falta en el mapping, por lo " +"que la función :attr:`~defaultdict.default_factory` llama a :func:`int` para " +"proporcionar una cuenta predeterminada de cero. La operación de incremento " +"luego acumula el conteo de cada letra." #: ../Doc/library/collections.rst:778 msgid "" @@ -781,16 +1075,23 @@ msgid "" "functions is to use a lambda function which can supply any constant value " "(not just zero):" msgstr "" +"La función :func:`int` que siempre retorna cero es solo un caso especial de " +"funciones constantes. Una forma más rápida y flexible de crear funciones " +"constantes es utilizar una función lambda que pueda proporcionar cualquier " +"valor constante (no solo cero):" #: ../Doc/library/collections.rst:790 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes the :" "class:`defaultdict` useful for building a dictionary of sets:" msgstr "" +"Establecer :attr:`~defaultdict.default_factory` en :class:`set` hace que :" +"class:`defaultdict` sea útil para construir un diccionario de conjuntos:" #: ../Doc/library/collections.rst:803 msgid ":func:`namedtuple` Factory Function for Tuples with Named Fields" msgstr "" +":func:`namedtuple` Funciones *Factory* para Tuplas y Campos con Nombres" #: ../Doc/library/collections.rst:805 msgid "" @@ -799,6 +1100,10 @@ msgid "" "are used, and they add the ability to access fields by name instead of " "position index." msgstr "" +"Las tuplas con nombre asignan significado a cada posición en una tupla y " +"permiten un código más legible y autodocumentado. Se pueden usar donde se " +"usen tuplas regulares y agregan la capacidad de acceder a los campos por " +"nombre en lugar del índice de posición." #: ../Doc/library/collections.rst:811 msgid "" @@ -808,6 +1113,12 @@ msgid "" "helpful docstring (with typename and field_names) and a helpful :meth:" "`__repr__` method which lists the tuple contents in a ``name=value`` format." msgstr "" +"Retorna una nueva subclase de tupla llamada *typename*. La nueva subclase se " +"utiliza para crear objetos tipo tupla que tienen campos accesibles mediante " +"búsqueda de atributos, además de ser indexables e iterables. Las instancias " +"de la subclase también tienen un docstring útil (con typename y field_names) " +"y un método útil :meth:`__repr__` que lista el contenido de la tupla en un " +"formato de ``nombre=valor``." #: ../Doc/library/collections.rst:817 msgid "" @@ -815,6 +1126,10 @@ msgid "" "Alternatively, *field_names* can be a single string with each fieldname " "separated by whitespace and/or commas, for example ``'x y'`` or ``'x, y'``." msgstr "" +"Los *nombres de campo* son una secuencia de cadenas como ``[‘x’, ‘y’]``. " +"Alternativamente, *nombres de campo* puede ser una sola cadena con cada " +"nombre de campo separado por espacios en blanco y/o comas, por ejemplo ``’x " +"y’`` or ``’x, y’``." #: ../Doc/library/collections.rst:821 msgid "" @@ -823,6 +1138,11 @@ msgid "" "and underscores but do not start with a digit or underscore and cannot be a :" "mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, or *raise*." msgstr "" +"Se puede usar cualquier identificador de Python válido para un *fieldname*, " +"excepto para los nombres que comienzan con un guión bajo. Los " +"identificadores válidos constan de letras, dígitos y guiones bajos, pero no " +"comienzan con un dígito o guion bajo y no pueden ser :mod:`keyword` como " +"*class*, *for*, *return*, *global*, *pass*, o *raise*." #: ../Doc/library/collections.rst:827 msgid "" @@ -831,6 +1151,10 @@ msgid "" "converted to ``['abc', '_1', 'ghi', '_3']``, eliminating the keyword ``def`` " "and the duplicate fieldname ``abc``." msgstr "" +"Si *rename* es verdadero, los nombres de campo no válidos se reemplazan " +"automáticamente con nombres posicionales. Por ejemplo, ``[‘abc’, ‘def’, " +"‘ghi’, ‘abc’]`` se convierte en ``[‘abc’, ‘_1’, ‘ghi’, ‘_3’]``, eliminando " +"la palabra clave ``def`` y el nombre de campo duplicado ``abc``." #: ../Doc/library/collections.rst:832 msgid "" @@ -841,47 +1165,64 @@ msgid "" "``x`` will be a required argument, ``y`` will default to ``1``, and ``z`` " "will default to ``2``." msgstr "" +"*defaults* pueden ser ``None`` o un :term:`iterable` de los valores " +"predeterminados. Dado que los campos con un valor predeterminado deben venir " +"después de cualquier campo sin un valor predeterminado, los *defaults* se " +"aplican a los parámetros situados más a la derecha. Por ejemplo, si los " +"nombres de campo son ``[‘x’, ‘y’, ‘z’]``y los valores predeterminados son " +"``(1, 2)``, entonces ``x`` será un argumento obligatorio, ``y`` tendrá el " +"valor predeterminado de ``1``, y ``z`` el valor predeterminado de ``2``." #: ../Doc/library/collections.rst:839 msgid "" "If *module* is defined, the ``__module__`` attribute of the named tuple is " "set to that value." msgstr "" +"Si se define *module*, el atributo ``__module__`` de la tupla nombrada se " +"establece en ese valor." #: ../Doc/library/collections.rst:842 msgid "" "Named tuple instances do not have per-instance dictionaries, so they are " "lightweight and require no more memory than regular tuples." msgstr "" +"Las instancias de tuplas con nombre no tienen diccionarios por instancia, " +"por lo que son livianas y no requieren más memoria que las tuplas normales." #: ../Doc/library/collections.rst:845 msgid "Added support for *rename*." -msgstr "" +msgstr "Se agregó soporte para *rename*." #: ../Doc/library/collections.rst:848 msgid "" "The *verbose* and *rename* parameters became :ref:`keyword-only arguments " "`." msgstr "" +"Los parámetros *verbose* y *rename* se convirtieron en :ref:`argumentos de " +"solo palabra clave `." #: ../Doc/library/collections.rst:852 msgid "Added the *module* parameter." -msgstr "" +msgstr "Se agregó el parámetro *module*." #: ../Doc/library/collections.rst:855 msgid "Removed the *verbose* parameter and the :attr:`_source` attribute." -msgstr "" +msgstr "Se eliminaron el parámetro *verbose* y el atributo :attr:`_source`." #: ../Doc/library/collections.rst:858 msgid "" "Added the *defaults* parameter and the :attr:`_field_defaults` attribute." msgstr "" +"Se agregaron el parámetro *defaults* y él atributo :attr:`_field_defaults`." #: ../Doc/library/collections.rst:878 msgid "" "Named tuples are especially useful for assigning field names to result " "tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" msgstr "" +"Las tuplas con nombre son especialmente útiles para asignar nombres de campo " +"a las tuplas de resultado retornadas por los módulos :mod:`csv` o :mod:" +"`sqlite3`::" #: ../Doc/library/collections.rst:894 msgid "" @@ -889,21 +1230,29 @@ msgid "" "additional methods and two attributes. To prevent conflicts with field " "names, the method and attribute names start with an underscore." msgstr "" +"Además de los métodos heredados de las tuplas, las tuplas con nombre admiten " +"tres métodos adicionales y dos atributos. Para evitar conflictos con los " +"nombres de campo, los nombres de método y atributo comienzan con un guión " +"bajo." #: ../Doc/library/collections.rst:900 msgid "" "Class method that makes a new instance from an existing sequence or iterable." msgstr "" +"Método de clase que crea una nueva instancia a partir de una secuencia " +"existente o iterable." #: ../Doc/library/collections.rst:910 msgid "" "Return a new :class:`dict` which maps field names to their corresponding " "values:" msgstr "" +"Retorna un nuevo :class:`dict` que asigna los nombres de los campos a sus " +"valores correspondientes:" #: ../Doc/library/collections.rst:919 msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." -msgstr "" +msgstr "Retorna un :class:`OrderedDict` en lugar de un :class:`dict` regular." #: ../Doc/library/collections.rst:922 msgid "" @@ -912,34 +1261,48 @@ msgid "" "features of :class:`OrderedDict` are required, the suggested remediation is " "to cast the result to the desired type: ``OrderedDict(nt._asdict())``." msgstr "" +"Retorna un :class:`dict` normal en lugar de un :class:`OrderedDict`. A " +"partir de Python 3.7, se garantiza el orden de los diccionarios normales. Si " +"se requieren las características adicionales de :class:`OrderedDict` , la " +"corrección sugerida es emitir el resultado al tipo deseado: ``OrderedDict(nt." +"_asdict())``." #: ../Doc/library/collections.rst:931 msgid "" "Return a new instance of the named tuple replacing specified fields with new " "values::" msgstr "" +"Retorna una nueva instancia de la tupla nombrada reemplazando los campos " +"especificados con nuevos valores::" #: ../Doc/library/collections.rst:943 msgid "" "Tuple of strings listing the field names. Useful for introspection and for " "creating new named tuple types from existing named tuples." msgstr "" +"Tupla de cadenas que lista los nombres de los campos. Útil para la " +"introspección y para crear nuevos tipos de tuplas con nombre a partir de " +"tuplas con nombre existentes." #: ../Doc/library/collections.rst:958 msgid "Dictionary mapping field names to default values." -msgstr "" +msgstr "Diccionario de nombres de campos mapeados a valores predeterminados." #: ../Doc/library/collections.rst:968 msgid "" "To retrieve a field whose name is stored in a string, use the :func:" "`getattr` function:" msgstr "" +"Para recuperar un campo cuyo nombre está almacenado en una cadena, use la " +"función :func:`getattr`:" #: ../Doc/library/collections.rst:974 msgid "" "To convert a dictionary to a named tuple, use the double-star-operator (as " "described in :ref:`tut-unpacking-arguments`):" msgstr "" +"Para convertir un diccionario en una tupla con nombre, use el operador de " +"doble estrella (como se describe en :ref:`tut-unpacking-arguments`):" #: ../Doc/library/collections.rst:981 msgid "" @@ -947,6 +1310,9 @@ msgid "" "functionality with a subclass. Here is how to add a calculated field and a " "fixed-width print format:" msgstr "" +"Dado que una tupla con nombre es una clase Python normal, es fácil agregar o " +"cambiar la funcionalidad con una subclase. A continuación, se explica cómo " +"agregar un campo calculado y un formato de impresión de ancho fijo:" #: ../Doc/library/collections.rst:1000 msgid "" @@ -954,6 +1320,9 @@ msgid "" "keep memory requirements low by preventing the creation of instance " "dictionaries." msgstr "" +"La subclase que se muestra arriba establece ``__slots__`` a una tupla vacía. " +"Esto ayuda a mantener bajos los requisitos de memoria al evitar la creación " +"de diccionarios de instancia." #: ../Doc/library/collections.rst:1003 msgid "" @@ -961,16 +1330,21 @@ msgid "" "create a new named tuple type from the :attr:`~somenamedtuple._fields` " "attribute:" msgstr "" +"La subclasificación no es útil para agregar campos nuevos almacenados. En su " +"lugar, simplemente cree un nuevo tipo de tupla con nombre a partir del " +"atributo :attr:`~somenamedtuple._fields`:" #: ../Doc/library/collections.rst:1008 msgid "" "Docstrings can be customized by making direct assignments to the ``__doc__`` " "fields:" msgstr "" +"Los docstrings se pueden personalizar realizando asignaciones directas a los " +"campos ``__doc__`` :" #: ../Doc/library/collections.rst:1017 msgid "Property docstrings became writeable." -msgstr "" +msgstr "Los docstrings de propiedad se pueden escribir." #: ../Doc/library/collections.rst:1022 msgid "" @@ -978,22 +1352,30 @@ msgid "" "tuples. It also provides an elegant notation using the :keyword:`class` " "keyword::" msgstr "" +"Consulte :class:`typing.NamedTuple` para ver una forma de agregar " +"sugerencias de tipo para tuplas con nombre. También proporciona una notación " +"elegante usando la palabra clave :keyword:`class`::" #: ../Doc/library/collections.rst:1031 msgid "" "See :meth:`types.SimpleNamespace` for a mutable namespace based on an " "underlying dictionary instead of a tuple." msgstr "" +"Vea :meth:`types.SimpleNamespace` para un espacio de nombres mutable basado " +"en un diccionario subyacente en lugar de una tupla." #: ../Doc/library/collections.rst:1034 msgid "" "The :mod:`dataclasses` module provides a decorator and functions for " "automatically adding generated special methods to user-defined classes." msgstr "" +"El módulo :mod:`dataclasses` proporciona un decorador y funciones para " +"agregar automáticamente métodos especiales generados a clases definidas por " +"el usuario." #: ../Doc/library/collections.rst:1039 msgid ":class:`OrderedDict` objects" -msgstr "" +msgstr "Objetos :class:`OrderedDict`" #: ../Doc/library/collections.rst:1041 msgid "" @@ -1002,16 +1384,23 @@ msgid "" "important now that the built-in :class:`dict` class gained the ability to " "remember insertion order (this new behavior became guaranteed in Python 3.7)." msgstr "" +"Los diccionarios ordenados son como los diccionarios normales, pero tienen " +"algunas capacidades adicionales relacionadas con las operaciones de " +"ordenado. Se han vuelto menos importantes ahora que la clase incorporada :" +"class:`dict` ganó la capacidad de recordar el orden de inserción (este nuevo " +"comportamiento quedó garantizado en Python 3.7)." #: ../Doc/library/collections.rst:1047 msgid "Some differences from :class:`dict` still remain:" -msgstr "" +msgstr "Aún quedan algunas diferencias con :class:`dict` :" #: ../Doc/library/collections.rst:1049 msgid "" "The regular :class:`dict` was designed to be very good at mapping " "operations. Tracking insertion order was secondary." msgstr "" +"El :class:`dict` normal fue diseñado para ser muy bueno en operaciones de " +"mapeo. El seguimiento del pedido de inserción era secundario." #: ../Doc/library/collections.rst:1052 msgid "" @@ -1019,6 +1408,9 @@ msgid "" "Space efficiency, iteration speed, and the performance of update operations " "were secondary." msgstr "" +"La :class:`OrderedDict` fue diseñada para ser buena para reordenar " +"operaciones. La eficiencia del espacio, la velocidad de iteración y el " +"rendimiento de las operaciones de actualización fueron secundarios." #: ../Doc/library/collections.rst:1056 msgid "" @@ -1027,33 +1419,46 @@ msgid "" "recent accesses (for example in an `LRU cache `_)." msgstr "" +"Algorítmicamente, :class:`OrderedDict` puede manejar operaciones frecuentes " +"de reordenamiento mejor que :class:`dict`. Esto lo hace adecuado para " +"rastrear accesos recientes (por ejemplo, en un `cache LRU `_)." #: ../Doc/library/collections.rst:1061 msgid "" "The equality operation for :class:`OrderedDict` checks for matching order." msgstr "" +"La operación de igualdad para :class:`OrderedDict` comprueba el orden " +"coincidente." #: ../Doc/library/collections.rst:1063 msgid "" "The :meth:`popitem` method of :class:`OrderedDict` has a different " "signature. It accepts an optional argument to specify which item is popped." msgstr "" +"El método :meth:`popitem` de :class:`OrderedDict` tiene una firma diferente. " +"Acepta un argumento opcional para especificar qué elemento es *popped*." #: ../Doc/library/collections.rst:1066 msgid "" ":class:`OrderedDict` has a :meth:`move_to_end` method to efficiently " "reposition an element to an endpoint." msgstr "" +":class:`OrderedDict` tiene un método :meth:`move_to_end` para reposiciones " +"eficientemente un elemento a un punto final." #: ../Doc/library/collections.rst:1069 msgid "Until Python 3.8, :class:`dict` lacked a :meth:`__reversed__` method." msgstr "" +"Hasta Python 3.8, :class:`dict` carecía de un método :meth:`__reversed__`." #: ../Doc/library/collections.rst:1074 msgid "" "Return an instance of a :class:`dict` subclass that has methods specialized " "for rearranging dictionary order." msgstr "" +"Retorna una instancia de una subclase :class:`dict` que tiene métodos " +"especializados para reorganizar el orden del diccionario." #: ../Doc/library/collections.rst:1081 msgid "" @@ -1062,6 +1467,10 @@ msgid "" "out)` order if *last* is true or :abbr:`FIFO (first-in, first-out)` order if " "false." msgstr "" +"El método :meth:`popitem` para diccionarios ordenados retorna y elimina un " +"par (llave, valor). Los pares se retornan en orden :abbr:`LIFO (last-in, " +"first-out)` si el *último* es verdadero o en orden :abbr:`FIFO (first-in, " +"first-out)` si es falso." #: ../Doc/library/collections.rst:1088 msgid "" @@ -1069,12 +1478,18 @@ msgid "" "moved to the right end if *last* is true (the default) or to the beginning " "if *last* is false. Raises :exc:`KeyError` if the *key* does not exist::" msgstr "" +"Mueva una *llave* existente a cualquier extremo de un diccionario ordenado. " +"El elemento se mueve al final de la derecha si el *último* es verdadero (el " +"valor predeterminado) o al principio si el *último* es falso. Lanza :exc:" +"`KeyError` si la *llave* no existe::" #: ../Doc/library/collections.rst:1103 msgid "" "In addition to the usual mapping methods, ordered dictionaries also support " "reverse iteration using :func:`reversed`." msgstr "" +"Además de los métodos de mapeo habituales, los diccionarios ordenados " +"también admiten la iteración inversa usando :func:`reversed`." #: ../Doc/library/collections.rst:1106 msgid "" @@ -1085,22 +1500,33 @@ msgid "" "allows :class:`OrderedDict` objects to be substituted anywhere a regular " "dictionary is used." msgstr "" +"Las pruebas de igualdad entre los objetos :class:`OrderedDict` son sensibles " +"al orden y se implementan como ``list(od1.items())==list(od2.items())``. Las " +"pruebas de igualdad entre los objetos :class:`OrderedDict` y otros objetos :" +"class:`~collections.abc.Mapping` son insensibles al orden como los " +"diccionarios normales. Esto permite que los objetos :class:`OrderedDict` " +"sean sustituidos en cualquier lugar donde se utilice un diccionario normal." #: ../Doc/library/collections.rst:1113 msgid "" "The items, keys, and values :term:`views ` of :class:" "`OrderedDict` now support reverse iteration using :func:`reversed`." msgstr "" +"Los elementos, llaves y valores :term:`vistas ` de :class:" +"`OrderedDict` ahora admiten la iteración inversa usando :func:`reversed`." #: ../Doc/library/collections.rst:1117 msgid "" "With the acceptance of :pep:`468`, order is retained for keyword arguments " "passed to the :class:`OrderedDict` constructor and its :meth:`update` method." msgstr "" +"Con la aceptación de :pep:`468`, el orden se mantiene para los argumentos de " +"palabras clave pasados al constructor :class:`OrderedDict` y su método :meth:" +"`update`." #: ../Doc/library/collections.rst:1123 msgid ":class:`OrderedDict` Examples and Recipes" -msgstr "" +msgstr "Ejemplos y Recetas :class:`OrderedDict`" #: ../Doc/library/collections.rst:1125 msgid "" @@ -1109,16 +1535,22 @@ msgid "" "existing entry, the original insertion position is changed and moved to the " "end::" msgstr "" +"Es sencillo crear una variante de diccionario ordenado que recuerde el orden " +"en que las llaves se insertaron por *última vez*. Si una nueva entrada " +"sobrescribe una entrada existente, la posición de inserción original se " +"cambia y se mueve al final::" #: ../Doc/library/collections.rst:1137 msgid "" "An :class:`OrderedDict` would also be useful for implementing variants of :" "func:`functools.lru_cache`::" msgstr "" +"U :class:`OrderedDict` también sería útil para implementar variantes de :" +"func:`functools.lru_cache`::" #: ../Doc/library/collections.rst:1160 msgid ":class:`UserDict` objects" -msgstr "" +msgstr "Objetos :class:`UserDict`" #: ../Doc/library/collections.rst:1162 msgid "" @@ -1127,6 +1559,11 @@ msgid "" "subclass directly from :class:`dict`; however, this class can be easier to " "work with because the underlying dictionary is accessible as an attribute." msgstr "" +"La clase, :class:`UserDict` actúa como un contenedor alrededor de los " +"objetos del diccionario. La necesidad de esta clase ha sido parcialmente " +"suplantada por la capacidad de crear subclases directamente desde :class:" +"`dict`; sin embargo, es más fácil trabajar con esta clase porque se puede " +"acceder al diccionario subyacente como un atributo." #: ../Doc/library/collections.rst:1170 msgid "" @@ -1136,21 +1573,31 @@ msgid "" "initialized with its contents; note that a reference to *initialdata* will " "not be kept, allowing it be used for other purposes." msgstr "" +"Clase que simula un diccionario. El contenido de la instancia se guarda en " +"un diccionario normal, al que se puede acceder mediante el atributo :attr:" +"`data` de las instancias :class:`UserDict`. Si se proporciona " +"*initialdata*, :attr:`data` se inicializa con su contenido; tenga en cuenta " +"que no se mantendrá una referencia a *initialdata*, lo que permite que se " +"utilice para otros fines." #: ../Doc/library/collections.rst:1176 msgid "" "In addition to supporting the methods and operations of mappings, :class:" "`UserDict` instances provide the following attribute:" msgstr "" +"Además de admitir los métodos y operaciones de los mappings, las instancias :" +"class:`UserDict` proporcionan el siguiente atributo:" #: ../Doc/library/collections.rst:1181 msgid "" "A real dictionary used to store the contents of the :class:`UserDict` class." msgstr "" +"Un diccionario real utilizado para almacenar el contenido de la clase :class:" +"`UserDict` ." #: ../Doc/library/collections.rst:1187 msgid ":class:`UserList` objects" -msgstr "" +msgstr "Objetos :class:`UserList`" #: ../Doc/library/collections.rst:1189 msgid "" @@ -1159,6 +1606,10 @@ msgid "" "existing methods or add new ones. In this way, one can add new behaviors to " "lists." msgstr "" +"Esta clase actúa como un contenedor alrededor de los objetos de lista. Es " +"una clase base útil para tus propias clases tipo lista que pueden heredar de " +"ellas y anular métodos existentes o agregar nuevos. De esta forma, se pueden " +"agregar nuevos comportamientos a las listas." #: ../Doc/library/collections.rst:1194 msgid "" @@ -1166,6 +1617,10 @@ msgid "" "subclass directly from :class:`list`; however, this class can be easier to " "work with because the underlying list is accessible as an attribute." msgstr "" +"La necesidad de esta clase ha sido parcialmente suplantada por la capacidad " +"de crear subclases directamente desde :class:`list`; sin embargo, es más " +"fácil trabajar con esta clase porque se puede acceder a la lista subyacente " +"como atributo." #: ../Doc/library/collections.rst:1200 msgid "" @@ -1175,20 +1630,31 @@ msgid "" "of *list*, defaulting to the empty list ``[]``. *list* can be any iterable, " "for example a real Python list or a :class:`UserList` object." msgstr "" +"Clase que simula una lista. El contenido de la instancia se mantiene en una " +"lista normal, a la que se puede acceder mediante el atributo :attr:`data` de " +"las instancias :class:`UserList`. El contenido de la instancia se establece " +"inicialmente en una copia de *list*, por defecto a la lista vacía ``[]``. " +"*list* puede ser cualquier iterable, por ejemplo, una lista de Python real o " +"un objeto :class:`UserList`." #: ../Doc/library/collections.rst:1206 msgid "" "In addition to supporting the methods and operations of mutable sequences, :" "class:`UserList` instances provide the following attribute:" msgstr "" +"Además de admitir los métodos y operaciones de secuencias mutables, las " +"instancias :class:`UserList` proporcionan el siguiente atributo:" #: ../Doc/library/collections.rst:1211 msgid "" "A real :class:`list` object used to store the contents of the :class:" "`UserList` class." msgstr "" +"Un objeto real :class:`list` usado para almacenar el contenido de la clase :" +"class:`UserList` ." #: ../Doc/library/collections.rst:1214 +#, fuzzy msgid "" "**Subclassing requirements:** Subclasses of :class:`UserList` are expected " "to offer a constructor which can be called with either no arguments or one " @@ -1197,6 +1663,12 @@ msgid "" "constructor can be called with a single parameter, which is a sequence " "object used as a data source." msgstr "" +"**Requisitos de subclases:** Se espera que las subclases de :class:" +"`UserList` ofrezcan un constructor al que se pueda llamar sin argumentos o " +"con un solo argumento. Las operaciones de lista que retornan una nueva " +"secuencia intentan crear una instancia de la clase de implementación real. " +"Para hacerlo, asume que se puede llamar al constructor con un solo " +"parámetro, que es un objeto de secuencia utilizado como fuente de datos." #: ../Doc/library/collections.rst:1221 msgid "" @@ -1205,10 +1677,14 @@ msgid "" "consult the sources for information about the methods which need to be " "provided in that case." msgstr "" +"Si una clase derivada no desea cumplir con este requisito, todos los métodos " +"especiales admitidos por esta clase deberán de anularse; consulte las " +"fuentes para obtener información sobre los métodos que deben proporcionarse " +"en ese caso." #: ../Doc/library/collections.rst:1227 msgid ":class:`UserString` objects" -msgstr "" +msgstr "Objetos :class:`UserString`" #: ../Doc/library/collections.rst:1229 msgid "" @@ -1217,6 +1693,11 @@ msgid "" "directly from :class:`str`; however, this class can be easier to work with " "because the underlying string is accessible as an attribute." msgstr "" +"La clase, :class:`UserString` actúa como un envoltorio alrededor de los " +"objetos de cadena. La necesidad de esta clase ha sido parcialmente " +"suplantada por la capacidad de crear subclases directamente de :class:`str`; " +"sin embargo, es más fácil trabajar con esta clase porque se puede acceder a " +"la cadena subyacente como atributo." #: ../Doc/library/collections.rst:1237 msgid "" @@ -1226,21 +1707,33 @@ msgid "" "to a copy of *seq*. The *seq* argument can be any object which can be " "converted into a string using the built-in :func:`str` function." msgstr "" +"Clase que simula un objeto de cadena. El contenido de la instancia se " +"mantiene en un objeto de cadena normal, al que se puede acceder a través del " +"atributo :attr:`data` de las instancias :class:`UserString`. El contenido de " +"la instancia se establece inicialmente en una copia de *seq*. El argumento " +"*seq* puede ser cualquier objeto que se pueda convertir en una cadena usando " +"la función incorporada :func:`str`." #: ../Doc/library/collections.rst:1244 msgid "" "In addition to supporting the methods and operations of strings, :class:" "`UserString` instances provide the following attribute:" msgstr "" +"Además de admitir los métodos y operaciones de cadenas, las instancias :" +"class:`UserString` proporcionan el siguiente atributo:" #: ../Doc/library/collections.rst:1249 msgid "" "A real :class:`str` object used to store the contents of the :class:" "`UserString` class." msgstr "" +"Un objeto real :class:`str` usado para almacenar el contenido de la clase :" +"class:`UserString`." #: ../Doc/library/collections.rst:1252 msgid "" "New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " "``isprintable``, and ``maketrans``." msgstr "" +"Nuevos métodos ``__getnewargs__``, ``__rmod__``, ``casefold``, " +"``format_map``, ``isprintable``, y ``maketrans``." diff --git a/library/compileall.po b/library/compileall.po index 54ce3f4eb0..4a78110f0a 100644 --- a/library/compileall.po +++ b/library/compileall.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: 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: 2020-08-31 22:48-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.1\n" #: ../Doc/library/compileall.rst:2 msgid ":mod:`compileall` --- Byte-compile Python libraries" -msgstr "" +msgstr ":mod:`compileall` --- Bibliotecas de Python de compilación de bytes" #: ../Doc/library/compileall.rst:7 msgid "**Source code:** :source:`Lib/compileall.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/compileall.py`" #: ../Doc/library/compileall.rst:11 msgid "" @@ -36,16 +38,25 @@ msgid "" "installation time, which makes them available for use even by users who " "don't have write permission to the library directories." msgstr "" +"Este módulo proporciona algunas funciones de utilidad para admitir la " +"instalación de bibliotecas Python. Estas funciones compilan archivos fuente " +"de Python en un árbol de directorios. Este módulo se puede usar para crear " +"los archivos de código de bytes almacenados en caché en el momento de la " +"instalación de la biblioteca, que los hace disponibles para su uso incluso " +"por usuarios que no tienen permiso de escritura en los directorios de la " +"biblioteca." #: ../Doc/library/compileall.rst:19 msgid "Command-line use" -msgstr "" +msgstr "Uso de la línea de comandos" #: ../Doc/library/compileall.rst:21 msgid "" "This module can work as a script (using :program:`python -m compileall`) to " "compile Python sources." msgstr "" +"Este módulo puede funcionar como un *script* (usando :program:`python -m " +"compileall`) para compilar fuentes de Python." #: ../Doc/library/compileall.rst:29 msgid "" @@ -53,22 +64,32 @@ msgid "" "files, traversed recursively. If no argument is given, behave as if the " "command line was ``-l ``." msgstr "" +"Los argumentos posicionales son archivos para compilar o directorios que " +"contienen archivos fuente, recorridos recursivamente. Si no se proporciona " +"ningún argumento, se comporta como si la línea de comando fuera ``-l " +"``." #: ../Doc/library/compileall.rst:35 msgid "" "Do not recurse into subdirectories, only compile source code files directly " "contained in the named or implied directories." msgstr "" +"No se recurre en subdirectorios, solo compila archivos de código fuente " +"contenidos en directorios nombrados o implícitos." #: ../Doc/library/compileall.rst:40 msgid "Force rebuild even if timestamps are up-to-date." msgstr "" +"Forzar la reconstrucción incluso si las marcas de tiempo están actualizadas." #: ../Doc/library/compileall.rst:44 msgid "" "Do not print the list of files compiled. If passed once, error messages will " "still be printed. If passed twice (``-qq``), all output is suppressed." msgstr "" +"No imprimir la lista de archivos compilados. Si se pasa una vez, los " +"mensajes de error se imprimirán. Si se pasa dos veces, (``-qq``), se suprime " +"toda la salida." #: ../Doc/library/compileall.rst:49 msgid "" @@ -78,12 +99,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Directorio antepuesto a la ruta de cada archivo que está siendo compilado. " +"Esto aparecerá en las devoluciones de tiempo de compilación, y también se " +"compila en el archivo de código de bytes, donde se usará en las devoluciones " +"de seguimiento y otros mensajes en casos donde el archivo fuente no existe " +"al momento en que el archivo de código de bytes se ejecuta." #: ../Doc/library/compileall.rst:57 msgid "" "regex is used to search the full path to each file considered for " "compilation, and if the regex produces a match, the file is skipped." msgstr "" +"regex se usa para buscar la ruta completa a cada archivo considerado para " +"compilación, y si la regex produce una coincidencia, se omite el archivo." #: ../Doc/library/compileall.rst:62 msgid "" @@ -91,6 +119,8 @@ msgid "" "files and directories to compile. If ``list`` is ``-``, read lines from " "``stdin``." msgstr "" +"Leer el archivo ``list`` y cada línea que contiene la lista de archivos y " +"directorios a compilar. Si ``list`` es ``-``, leer líneas desde ``stdin``." #: ../Doc/library/compileall.rst:68 msgid "" @@ -99,6 +129,11 @@ msgid "" "is to write files to their :pep:`3147` locations and names, which allows " "byte-code files from multiple versions of Python to coexist." msgstr "" +"Escribir los archivos de código de byte en las locaciones y nombres de " +"herencia, que pueden sobreescribir los archivos de código de bytes creado " +"para otra versión de Python. El comportamiento por defecto es escribir " +"archivos en sus locaciones y nombres :pep:`3147`, lo cual permite que " +"archivos de código de byte de versiones múltiples de Python coexistan." #: ../Doc/library/compileall.rst:75 msgid "" @@ -107,12 +142,18 @@ msgid "" "compileall -r 0` is equivalent to :program:`python -m compileall " " -l`." msgstr "" +"Controlar el nivel máximo de recurrencia para subdirectorios. Si esto está " +"dado, la opción ``-l`` no se tendrá en cuenta. :program:`python -m " +"compileall -r 0` es equivalente a :program:`python -m compileall " +" -l`." #: ../Doc/library/compileall.rst:82 msgid "" "Use *N* workers to compile the files within the given directory. If ``0`` is " "used, then the result of :func:`os.cpu_count()` will be used." msgstr "" +"Usar *workers* *N* para compilar los archivos dentro del directorio dado. Si " +"```0`` se usa, entonces se usa el resultado de :func:`os.cpu_count()`." #: ../Doc/library/compileall.rst:88 msgid "" @@ -126,10 +167,21 @@ msgid "" "`SOURCE_DATE_EPOCH` environment variable is not set, and ``checked-hash`` if " "the ``SOURCE_DATE_EPOCH`` environment variable is set." msgstr "" +"Controlar cómo los archivos de código de byte generados se invalidan al " +"momento de ejecución. El valor ``timestamp`` significa que se generarán los " +"archivos ``.pyc`` con la marca de tiempo fuente y el tamaño insertados. Los " +"valores ``checked-hash`` y ``unchecked-hash`` generan *pycs* basados en " +"hash. Los *pycs* basados en hash del archivo insertan un hash de los " +"contenidos del archivo fuente, en lugar de una marca de tiempo. Véase :ref:" +"`pyc-invalidation` para mayor información sobre cómo Python valida archivos " +"de cache de código de bytes. El valor por defecto es ``timestamp`` si la " +"variable de entorno :envvar:`SOURCE_DATE_EPOCH` no está definida, y " +"``checked-hash`` si la variable de entorno `SOURCE_DATE_EPOCH`` está " +"definida." #: ../Doc/library/compileall.rst:99 msgid "Added the ``-i``, ``-b`` and ``-h`` options." -msgstr "" +msgstr "Se agregaron las opciones ``-i``, ``-b`` y ``-h``." #: ../Doc/library/compileall.rst:102 msgid "" @@ -137,10 +189,13 @@ msgid "" "to a multilevel value. ``-b`` will always produce a byte-code file ending " "in ``.pyc``, never ``.pyo``." msgstr "" +"Se agregaron las opciones ``-j``, ``-r``, and ``-qq``. La opción ``-q`` se " +"cambió a un valor multinivel. ``-b`` siempre producirá un archivo de código " +"de byte que termina en ``.pyc``, nunca ``.pyo``." #: ../Doc/library/compileall.rst:107 msgid "Added the ``--invalidation-mode`` option." -msgstr "" +msgstr "Se agregó la opción ``--invalidation-mode``." #: ../Doc/library/compileall.rst:111 msgid "" @@ -148,6 +203,9 @@ msgid "" "the :func:`compile` function, because the Python interpreter itself already " "provides the option: :program:`python -O -m compileall`." msgstr "" +"No hay opción de línea de comando para controlar el nivel de optimización " +"que usa la función :func:`compile` porque el intérprete de Python en sí " +"mismo ya proporciona la opción: :program:`python -O -m compileall`." #: ../Doc/library/compileall.rst:115 msgid "" @@ -156,10 +214,14 @@ msgid "" "if :func:`compile` is run with the same :attr:`sys.pycache_prefix` (if any) " "that will be used at runtime." msgstr "" +"De manera similar, la función :func:`compile` respeta la configuración :attr:" +"`sys.pycache_prefix`. El cache de código de byte generado sólo será útil si :" +"func:`compile` se ejecuta con el mismo :attr:`sys.pycache_prefix` (si es que " +"existe alguno) que se utilizará en el momento de ejecución." #: ../Doc/library/compileall.rst:121 msgid "Public functions" -msgstr "" +msgstr "Funciones públicas" #: ../Doc/library/compileall.rst:125 msgid "" @@ -167,12 +229,18 @@ msgid "" "py` files along the way. Return a true value if all the files compiled " "successfully, and a false value otherwise." msgstr "" +"Descender recursivamente el árbol de directorio invocado por *dir*, " +"compilando todos los archivos :file:`.py` que encuentra en el camino. " +"Devolver un valor verdadero si todos los archivos se compilan exitosamente, " +"y un valor falso en el caso contrario." #: ../Doc/library/compileall.rst:129 msgid "" "The *maxlevels* parameter is used to limit the depth of the recursion; it " "defaults to ``10``." msgstr "" +"El parámetro *maxlevels* se usar para limitar la profundidad de la " +"recursión; toma como valor predeterminado ``10``." #: ../Doc/library/compileall.rst:132 msgid "" @@ -182,12 +250,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* está dado, se antepone a la ruta de cada archivo que se compila " +"para usar en los rastreos de tiempo de compilación, y también se compilar en " +"el archivo código de byte, donde se usarán en trazas y otros mensajes en " +"casos donde el archivo fuente no existe en el momento cuando el archivo de " +"código de byte se ejecuta." #: ../Doc/library/compileall.rst:138 msgid "" "If *force* is true, modules are re-compiled even if the timestamps are up to " "date." msgstr "" +"Si *force* es verdadero, los módulos se re-compilan aun cuando las marcas de " +"tiempo están actualizadas." #: ../Doc/library/compileall.rst:141 msgid "" @@ -195,6 +270,9 @@ msgid "" "file considered for compilation, and if it returns a true value, the file is " "skipped." msgstr "" +"Si *rx* está dado, su método de búsqueda en la ruta completa de cada archivo " +"considerado para compilación, y si devuelve un valor verdadero, el archivo " +"se saltea." #: ../Doc/library/compileall.rst:145 ../Doc/library/compileall.rst:209 msgid "" @@ -202,6 +280,10 @@ msgid "" "information are printed to standard out. Set to ``1``, only errors are " "printed. Set to ``2``, all output is suppressed." msgstr "" +"Si *quiet* es ``False`` o ``0`` (el valor predeterminado), los nombres de " +"archivo y otra información se imprimen en salida estándar. Si se configura " +"en ``1``, solo se imprimen los errores. Si se configura en ``2``, se suprime " +"toda la salida." #: ../Doc/library/compileall.rst:149 ../Doc/library/compileall.rst:213 msgid "" @@ -211,12 +293,20 @@ msgid "" "names, which allows byte-code files from multiple versions of Python to " "coexist." msgstr "" +"Si *legacy* es verdadero, los archivos de código de byte se escriben en sus " +"locaciones y nombres de herencia, que pueden sobreescribir los archivos de " +"código de byte creado por otra versión de Python. El comportamiento por " +"defecto es escribir archivos en sus locaciones y nombres :pep:`3147`, lo " +"cual permite que archivos de código de byte de múltiples versiones de Python " +"coexistan." #: ../Doc/library/compileall.rst:155 ../Doc/library/compileall.rst:219 msgid "" "*optimize* specifies the optimization level for the compiler. It is passed " "to the built-in :func:`compile` function." msgstr "" +"*optimize* especifica el nivel de optimización para el compilador. Se pasa a " +"una función incorporada :func:`compile`." #: ../Doc/library/compileall.rst:158 msgid "" @@ -227,6 +317,12 @@ msgid "" "cores in the system is used. If *workers* is lower than ``0``, a :exc:" "`ValueError` will be raised." msgstr "" +"El argumento *workers* especifica cuántos workers se usan para compilar " +"archivos en paralelo. El comportamiento por defecto es no usar múltiples " +"workers. Si la plataforma no puede usar workers múltiples y el argumento " +"*workers* está dado, la compilación secuencial se usará como *fallback*. Si " +"*workers* es 0, el número de núcleos se usa en el sistema. Si *workers* es " +"menor que ``0``, se genera un :exc:`ValueError`." #: ../Doc/library/compileall.rst:165 ../Doc/library/compileall.rst:222 msgid "" @@ -234,19 +330,22 @@ msgid "" "PycInvalidationMode` enum and controls how the generated pycs are " "invalidated at runtime." msgstr "" +"*invalidation_mode* debería ser un miembro de la enumeración :class:" +"`py_compile.PycInvalidationMode` y controla cómo se invalidan los pycs " +"generados en el momento de ejecución." #: ../Doc/library/compileall.rst:169 ../Doc/library/compileall.rst:251 msgid "Added the *legacy* and *optimize* parameter." -msgstr "" +msgstr "Se agregó el parámetro *legacy* y *optimize*." #: ../Doc/library/compileall.rst:172 msgid "Added the *workers* parameter." -msgstr "" +msgstr "Se agregó el parámetro *workers*." #: ../Doc/library/compileall.rst:175 ../Doc/library/compileall.rst:228 #: ../Doc/library/compileall.rst:254 msgid "*quiet* parameter was changed to a multilevel value." -msgstr "" +msgstr "El parámetro *quiet* se cambió a un valor multinivel." #: ../Doc/library/compileall.rst:178 ../Doc/library/compileall.rst:231 #: ../Doc/library/compileall.rst:257 @@ -254,30 +353,36 @@ msgid "" "The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " "matter what the value of *optimize* is." msgstr "" +"El parámetro *legacy* solo escribe archivos ``.pyc``, no archivos ``.pyo``, " +"no import cuál sea el valor de *optimize*." #: ../Doc/library/compileall.rst:182 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Acepta un :term:`path-like object`." #: ../Doc/library/compileall.rst:185 ../Doc/library/compileall.rst:235 #: ../Doc/library/compileall.rst:261 msgid "The *invalidation_mode* parameter was added." -msgstr "" +msgstr "Se agregó el parámetro *invalidation_mode*." #: ../Doc/library/compileall.rst:188 ../Doc/library/compileall.rst:238 #: ../Doc/library/compileall.rst:264 msgid "The *invalidation_mode* parameter's default value is updated to None." msgstr "" +"El valor predeterminado del parámetro *invalidation_mode* se actualiza a " +"*None*." #: ../Doc/library/compileall.rst:191 msgid "Setting *workers* to 0 now chooses the optimal number of cores." -msgstr "" +msgstr "Configurar *workers* a 0 ahora elige el número óptimo de núcleos." #: ../Doc/library/compileall.rst:196 msgid "" "Compile the file with path *fullname*. Return a true value if the file " "compiled successfully, and a false value otherwise." msgstr "" +"Compilar el archivo con ruta *fullname*. Retorna un valor verdadero si el " +"archivo se compila exitosamente, y uno falso en el caso contrario." #: ../Doc/library/compileall.rst:199 msgid "" @@ -287,6 +392,11 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* está dado, se antepone a la ruta del archivo que está siendo " +"compilado para su uso en las trazas de tiempo de compilación, y también se " +"compilar en el archivo de código de bytes, donde será utilizado en trazas y " +"otros mensajes en casos donde el archivo fuente no existe en el momento en " +"que el archivo de código de bytes es ejecutado." #: ../Doc/library/compileall.rst:205 msgid "" @@ -294,6 +404,9 @@ msgid "" "being compiled, and if it returns a true value, the file is not compiled and " "``True`` is returned." msgstr "" +"Si *rx* está dado, su método de búsqueda recibe el nombre de ruta completo " +"hacia el archivo que está siendo compilado, y si devuelve un valor " +"verdadero, el archivo no se compila y retorna ``True``." #: ../Doc/library/compileall.rst:243 msgid "" @@ -301,6 +414,9 @@ msgid "" "true value if all the files compiled successfully, and a false value " "otherwise." msgstr "" +"Compila en bytes todos los archivos :file:`.py` a lo largo de ``sys.path``. " +"Retorna un valor verdadero si todos los archivos se compilan exitosamente, y " +"uno falso en el caso contrario." #: ../Doc/library/compileall.rst:246 msgid "" @@ -309,17 +425,16 @@ msgid "" "`compile_dir` function. Note that unlike the other compile functions, " "``maxlevels`` defaults to ``0``." msgstr "" +"Si *skip_curdir* es verdadero (el valor predeterminado), el directorio " +"actual no está incluido en la búsqueda. Todos los otros parámetros se pasan " +"a la función :func:`compile_dir`. Nótese que, al contrario de las otras " +"funciones de compilación, ``maxlevels`` tomar ``0`` como valor " +"predeterminado." #: ../Doc/library/compileall.rst:267 msgid "" "To force a recompile of all the :file:`.py` files in the :file:`Lib/` " "subdirectory and all its subdirectories::" msgstr "" - -#: ../Doc/library/compileall.rst:284 -msgid "Module :mod:`py_compile`" -msgstr "" - -#: ../Doc/library/compileall.rst:285 -msgid "Byte-compile a single source file." -msgstr "" +"Para forzar la re-compilación del los archivos :file:`.py` en el " +"subdirectorio :file:`Lib/` y todos sus subdirectorios::" diff --git a/library/concurrency.po b/library/concurrency.po index 620eb1f147..20a237b8f2 100644 --- a/library/concurrency.po +++ b/library/concurrency.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/concurrency.rst:5 msgid "Concurrent Execution" -msgstr "" +msgstr "Ejecución concurrente" #: ../Doc/library/concurrency.rst:7 msgid "" @@ -29,7 +29,12 @@ msgid "" "(event driven cooperative multitasking vs preemptive multitasking). Here's " "an overview:" msgstr "" +"Los módulos descritos en este capítulo proveen soporte para la ejecución " +"concurrente de código. La elección de qué herramienta utilizar depende de la " +"tarea a ejecutar (vinculada a CPU o vinculada a E/S) y del estilo preferido " +"de desarrollo (multi-tarea cooperativa o multi-tarea apropiativa). A " +"continuación se muestra un resumen:" #: ../Doc/library/concurrency.rst:25 msgid "The following are support modules for some of the above services:" -msgstr "" +msgstr "He aquí módulos de apoyo para algunos de los servicios mencionados:" diff --git a/library/concurrent.po b/library/concurrent.po index 17b31da7d6..1da572d404 100644 --- a/library/concurrent.po +++ b/library/concurrent.po @@ -1,30 +1,32 @@ # 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: 2020-11-30 12:18-0600\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/concurrent.rst:2 msgid "The :mod:`concurrent` package" -msgstr "" +msgstr "El paquete :mod:`concurrent`" #: ../Doc/library/concurrent.rst:4 msgid "Currently, there is only one module in this package:" -msgstr "" +msgstr "Actualmente solo existe un módulo en este paquete:" #: ../Doc/library/concurrent.rst:6 msgid ":mod:`concurrent.futures` -- Launching parallel tasks" -msgstr "" +msgstr ":mod:`concurrent.futures` -- Lanzamiento de tareas paralelas" diff --git a/library/contextvars.po b/library/contextvars.po index 8f4dba1cd6..d67e148770 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -1,25 +1,27 @@ # 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: 2020-10-09 10:52+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/contextvars.rst:2 msgid ":mod:`contextvars` --- Context Variables" -msgstr "" +msgstr ":mod:`contextvars` --- Variables de Contexto" #: ../Doc/library/contextvars.rst:11 msgid "" @@ -29,6 +31,12 @@ msgid "" "the :class:`~contextvars.Context` class should be used to manage the current " "context in asynchronous frameworks." msgstr "" +"Este módulo proporciona APIs para gestionar, almacenar y acceder a estados " +"en el contexto local. La clase :class:`~contextvars.ContextVar` se utiliza " +"para declarar y trabajar con Variables de Contexto (*Context Variables*). La " +"función :func:`~contextvars.copy_context` y la clase :class:`~contextvars." +"Context` deberían ser utilizadas para gestionar el contexto actual en " +"frameworks asíncronos." #: ../Doc/library/contextvars.rst:17 msgid "" @@ -36,23 +44,30 @@ msgid "" "func:`threading.local()` to prevent their state from bleeding to other code " "unexpectedly, when used in concurrent code." msgstr "" +"Los gestores de contexto que tienen un estado establecido deberían utilizar " +"Variables de Contexto en lugar de :func:`threading.local()`, para así evitar " +"que este estado se inyecte inesperadamente a otro código, cuando se utilice " +"en código concurrente." #: ../Doc/library/contextvars.rst:21 msgid "See also :pep:`567` for additional details." -msgstr "" +msgstr "Ver :pep:`567` para más detalles." #: ../Doc/library/contextvars.rst:27 msgid "Context Variables" -msgstr "" +msgstr "Variables de Contexto" #: ../Doc/library/contextvars.rst:31 msgid "This class is used to declare a new Context Variable, e.g.::" msgstr "" +"Esta clase se utiliza para declarar una nueva Variable de Contexto, por " +"ejemplo::" #: ../Doc/library/contextvars.rst:35 msgid "" "The required *name* parameter is used for introspection and debug purposes." msgstr "" +"El parámetro obligatorio *name* se utiliza para introspección y depuración." #: ../Doc/library/contextvars.rst:38 msgid "" @@ -60,6 +75,9 @@ msgid "" "`ContextVar.get` when no value for the variable is found in the current " "context." msgstr "" +"El parámetro opcional de sólo palabra clave *default* es utilizado por :meth:" +"`ContextVar.get`, cuando en el contexto actual no se encuentra ningún valor " +"para la variable." #: ../Doc/library/contextvars.rst:42 msgid "" @@ -68,61 +86,76 @@ msgid "" "context variables which prevents context variables from being properly " "garbage collected." msgstr "" +"**Importante:** las Variables de Contexto deberían ser creadas en lo más " +"alto a nivel de módulo y nunca en clausura. Los objetos :class:`Context` " +"mantienen referencias a variables de contexto, lo cual no permitiría que " +"estas variables de contexto sean limpiadas por el recolector de basura." #: ../Doc/library/contextvars.rst:49 msgid "The name of the variable. This is a read-only property." -msgstr "" +msgstr "El nombre de la variable. Propiedad de sólo lectura." #: ../Doc/library/contextvars.rst:55 msgid "Return a value for the context variable for the current context." -msgstr "" +msgstr "Retorna un valor para la variable de contexto en el contexto actual." #: ../Doc/library/contextvars.rst:57 msgid "" "If there is no value for the variable in the current context, the method " "will:" -msgstr "" +msgstr "Si la variable no tiene ningún valor en el contexto actual, el método:" #: ../Doc/library/contextvars.rst:60 msgid "" "return the value of the *default* argument of the method, if provided; or" msgstr "" +"retornará el valor del argumento *default* del método, si alguno fue dado; o" #: ../Doc/library/contextvars.rst:63 msgid "" "return the default value for the context variable, if it was created with " "one; or" msgstr "" +"retornará el valor por defecto de la variable de contexto, si ésta fue " +"creada con alguno; o" #: ../Doc/library/contextvars.rst:66 msgid "raise a :exc:`LookupError`." -msgstr "" +msgstr "lanzará :exc:`LookupError`." #: ../Doc/library/contextvars.rst:70 msgid "" "Call to set a new value for the context variable in the current context." msgstr "" +"Establece un nuevo valor para la variable de contexto en el contexto actual." #: ../Doc/library/contextvars.rst:73 msgid "" "The required *value* argument is the new value for the context variable." msgstr "" +"El argumento obligatorio *value* es el nuevo valor de la variable de " +"contexto." #: ../Doc/library/contextvars.rst:76 msgid "" "Returns a :class:`~contextvars.Token` object that can be used to restore the " "variable to its previous value via the :meth:`ContextVar.reset` method." msgstr "" +"Retorna un objeto :class:`~contextvars.Token` que puede utilizarse para " +"restaurar la variable a su valor anterior, utilizando el método :meth:" +"`ContextVar.reset`." #: ../Doc/library/contextvars.rst:82 msgid "" "Reset the context variable to the value it had before the :meth:`ContextVar." "set` that created the *token* was used." msgstr "" +"Restablece la variable de contexto al valor que tenía antes de llamar al " +"método :meth:`ContextVar.set`, que creó el *token* utilizado." #: ../Doc/library/contextvars.rst:85 msgid "For example::" -msgstr "" +msgstr "Por ejemplo::" #: ../Doc/library/contextvars.rst:99 msgid "" @@ -130,12 +163,17 @@ msgid "" "be passed to the :meth:`ContextVar.reset` method to revert the value of the " "variable to what it was before the corresponding *set*." msgstr "" +"Los objetos *token* son retornados por el método :meth:`ContextVar.set`. Se " +"le pueden dar al método :meth:`ContextVar.reset` para restablecer el valor " +"de la variable al que estuviese dado antes del *set* correspondiente." #: ../Doc/library/contextvars.rst:106 msgid "" "A read-only property. Points to the :class:`ContextVar` object that created " "the token." msgstr "" +"Propiedad de sólo lectura. Apunta al objeto :class:`ContextVar` que creó el " +"*token*." #: ../Doc/library/contextvars.rst:111 msgid "" @@ -143,44 +181,54 @@ msgid "" "`ContextVar.set` method call that created the token. It points to :attr:" "`Token.MISSING` is the variable was not set before the call." msgstr "" +"Propiedad de sólo lectura. Es el valor que la variable tenía antes de llamar " +"al método :meth:`ContextVar.set` que creó el *token*. Apunta a :attr:`Token." +"MISSING` si la variable no estaba establecida antes de la llamada." #: ../Doc/library/contextvars.rst:118 msgid "A marker object used by :attr:`Token.old_value`." -msgstr "" +msgstr "Marcador utilizado por :attr:`Token.old_value`." #: ../Doc/library/contextvars.rst:122 msgid "Manual Context Management" -msgstr "" +msgstr "Gestión de Contexto Manual" #: ../Doc/library/contextvars.rst:126 msgid "Returns a copy of the current :class:`~contextvars.Context` object." -msgstr "" +msgstr "Retorna una copia del objeto :class:`~contextvars.Context` actual." #: ../Doc/library/contextvars.rst:128 msgid "" "The following snippet gets a copy of the current context and prints all " "variables and their values that are set in it::" msgstr "" +"El siguiente código obtiene una copia del contexto actual e imprime todas " +"las variables y sus valores establecidos en el contexto::" #: ../Doc/library/contextvars.rst:134 msgid "" "The function has an O(1) complexity, i.e. works equally fast for contexts " "with a few context variables and for contexts that have a lot of them." msgstr "" +"La función tiene una complejidad de O(1); es decir, trabaja a la misma " +"velocidad en contextos con pocas o con muchas variables de contexto." #: ../Doc/library/contextvars.rst:141 msgid "A mapping of :class:`ContextVars ` to their values." -msgstr "" +msgstr "Mapeo de :class:`ContextVars ` con sus valores." #: ../Doc/library/contextvars.rst:143 msgid "" "``Context()`` creates an empty context with no values in it. To get a copy " "of the current context use the :func:`~contextvars.copy_context` function." msgstr "" +"``Context()`` crea un contexto vacío sin valores. Para obtener una copia del " +"contexto actual, se puede utilizar la función :func:`~contextvars." +"copy_context`." #: ../Doc/library/contextvars.rst:147 msgid "Context implements the :class:`collections.abc.Mapping` interface." -msgstr "" +msgstr "*Context* implementa la interfaz :class:`collections.abc.Mapping`." #: ../Doc/library/contextvars.rst:151 msgid "" @@ -188,66 +236,89 @@ msgid "" "method is called on. Return the result of the execution or propagate an " "exception if one occurred." msgstr "" +"Ejecuta el código de ``callable(*args, **kwargs)`` en el objeto de contexto " +"del cual se llama al método *run*. Retorna el resultado de la ejecución, o " +"propaga una excepción si alguna ocurre." #: ../Doc/library/contextvars.rst:155 msgid "" "Any changes to any context variables that *callable* makes will be contained " "in the context object::" msgstr "" +"Cualquier cambio realizado por *callable* sobre cualquier variable de " +"contexto será contenido en el objeto de contexto::" #: ../Doc/library/contextvars.rst:184 msgid "" "The method raises a :exc:`RuntimeError` when called on the same context " "object from more than one OS thread, or when called recursively." msgstr "" +"El método lanzará :exc:`RuntimeError` cuando es llamado desde el mismo " +"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 "" +msgstr "Retorna una copia superficial (*shallow copy*) del objeto de contexto." #: ../Doc/library/contextvars.rst:194 msgid "" "Return ``True`` if the *context* has a value for *var* set; return ``False`` " "otherwise." msgstr "" +"Retorna ``True`` si *context* tiene un valor establecido para *var*; de lo " +"contrario, retorna ``False``." #: ../Doc/library/contextvars.rst:199 msgid "" "Return the value of the *var* :class:`ContextVar` variable. If the variable " "is not set in the context object, a :exc:`KeyError` is raised." msgstr "" +"Retorna el valor de la variable :class:`ContextVar` *var*. Si la variable no " +"está establecida en el contexto actual, se lanzará :exc:`KeyError`." #: ../Doc/library/contextvars.rst:205 msgid "" "Return the value for *var* if *var* has the value in the context object. " "Return *default* otherwise. If *default* is not given, return ``None``." msgstr "" +"Retorna el valor de *var*, si *var* tiene el valor en el objeto de contexto; " +"de lo contrario, retorna *default*. Si *default* no es dado, retorna " +"``None``." #: ../Doc/library/contextvars.rst:211 msgid "Return an iterator over the variables stored in the context object." msgstr "" +"Retorna un iterador de las variables almacenadas en el objeto de contexto." #: ../Doc/library/contextvars.rst:216 msgid "Return the number of variables set in the context object." -msgstr "" +msgstr "Retorna el número de variables establecidas en el objeto de contexto." #: ../Doc/library/contextvars.rst:220 msgid "Return a list of all variables in the context object." -msgstr "" +msgstr "Retorna un listado de todas las variables en el objeto de contexto." #: ../Doc/library/contextvars.rst:224 msgid "Return a list of all variables' values in the context object." msgstr "" +"Retorna un listado de los valores de todas las variables en el objeto de " +"contexto." #: ../Doc/library/contextvars.rst:229 msgid "" "Return a list of 2-tuples containing all variables and their values in the " "context object." msgstr "" +"Retorna un listado de dos tuplas que contienen todas las variables y sus " +"variables en el contexto actual." #: ../Doc/library/contextvars.rst:234 msgid "asyncio support" -msgstr "" +msgstr "Soporte *asyncio*" #: ../Doc/library/contextvars.rst:236 msgid "" @@ -256,3 +327,8 @@ msgid "" "server, that uses a context variable to make the address of a remote client " "available in the Task that handles that client::" msgstr "" +"Las variables de contexto están soportadas de forma nativa en :mod:`asyncio` " +"y se pueden utilizar sin ninguna configuración adicional. Por ejemplo, el " +"siguiente código crea un servidor simple de respuesta, que utiliza una " +"variable de contexto que hace que la dirección del cliente remoto esté " +"disponible en la *Task* que gestiona al cliente::" diff --git a/library/copyreg.po b/library/copyreg.po index 962bd9aad4..cdb2f0c99c 100644 --- a/library/copyreg.po +++ b/library/copyreg.po @@ -1,29 +1,31 @@ # 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" -"Language-Team: python-doc-es\n" +"PO-Revision-Date: 2020-11-02 23:07-0500\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/library/copyreg.rst:2 msgid ":mod:`copyreg` --- Register :mod:`pickle` support functions" -msgstr "" +msgstr ":mod:`copyreg` --- Registrar funciones de soporte de :mod:`pickle`" #: ../Doc/library/copyreg.rst:7 msgid "**Source code:** :source:`Lib/copyreg.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/copyreg.py`" #: ../Doc/library/copyreg.rst:15 msgid "" @@ -33,12 +35,22 @@ msgid "" "configuration information about object constructors which are not classes. " "Such constructors may be factory functions or class instances." msgstr "" +"El módulo :mod:`copyreg` ofrece una manera de definir funciones usada cuando " +"se serializan (*pickling*) objectos específicos.Los módulos :mod:`pickle` y :" +"mod:`copy` utilizan estas funciones cuando se realizan acciones de " +"serializado/copiado en esos objetos. El módulo provee información de " +"configuración acerca de los objetos constructores, los cuales no son clases. " +"Estos objetos constructores pueden ser funciones de fábrica o instancias de " +"clase." #: ../Doc/library/copyreg.rst:24 msgid "" "Declares *object* to be a valid constructor. If *object* is not callable " "(and hence not valid as a constructor), raises :exc:`TypeError`." msgstr "" +"Declara que el *object* debe ser un constructor válido. Si el *object* no es " +"invocable (y por lo tanto, no es válido como constructor), lanza una " +"excepción :exc:`TypeError`." #: ../Doc/library/copyreg.rst:30 msgid "" @@ -46,6 +58,9 @@ msgid "" "objects of type *type*. *function* should return either a string or a tuple " "containing two or three elements." msgstr "" +"Declara que la *function* deber ser usada como una función de \"reducción\" " +"para objetos de tipo *type*. La *function* debe retornar ya sea una cadena " +"de caracteres o una tupla que contenga dos o tres elementos." #: ../Doc/library/copyreg.rst:34 msgid "" @@ -54,6 +69,11 @@ msgid "" "arguments returned by *function* at pickling time. :exc:`TypeError` will be " "raised if *object* is a class or *constructor* is not callable." msgstr "" +"El parámetro opcional *constructor*, si se proporciona, es un objeto " +"invocable el cual, que puede ser usado para reconstruir el objeto cuando se " +"llama con la tupla de argumentos retornados por la *function* en el momento " +"de pickling. La excepción :exc:`TypeError` se lanzará si el *objeto* es " +"una clase o si el *constructor* no es invocable." #: ../Doc/library/copyreg.rst:39 msgid "" @@ -62,13 +82,19 @@ msgid "" "dispatch_table` attribute of a pickler object or subclass of :class:`pickle." "Pickler` can also be used for declaring reduction functions." msgstr "" +"Consulte el módulo :mod:`pickle` para más detalles sobre la interfaz " +"esperada de *function* y *constructor*. Note que el atributo :attr:`~pickle." +"Pickler.dispatch_table` de un objeto pickler o subclase de :class:`pickle." +"Pickler` puede también ser utilizado para declarar funciones de reducción." #: ../Doc/library/copyreg.rst:46 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/copyreg.rst:48 msgid "" "The example below would like to show how to register a pickle function and " "how it will be used:" msgstr "" +"El siguiente ejemplo pretende mostrar cómo registrar una función pickle y " +"cómo se utilizará:" diff --git a/library/crypto.po b/library/crypto.po index d7415ec2d4..d83c962b64 100644 --- a/library/crypto.po +++ b/library/crypto.po @@ -1,25 +1,28 @@ # 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-01-13 13:31-0300\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: Francisco Mora \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" +"X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/library/crypto.rst:5 msgid "Cryptographic Services" -msgstr "" +msgstr "Servicios Criptográficos" #: ../Doc/library/crypto.rst:9 msgid "" @@ -28,3 +31,7 @@ msgid "" "installation. On Unix systems, the :mod:`crypt` module may also be " "available. Here's an overview:" msgstr "" +"Los módulos descritos en este capítulo implementan varios algoritmos de " +"naturaleza criptográfica. Están disponibles a discreción de la instalación. " +"En sistema Unix, el módulo :mod:`crypt` también puede estar disponible. Aquí " +"una descripción:" diff --git a/library/curses.ascii.po b/library/curses.ascii.po index 6a1469d371..92b4c240ae 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -1,25 +1,27 @@ # 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: 2020-10-19 08:39-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/curses.ascii.rst:2 msgid ":mod:`curses.ascii` --- Utilities for ASCII characters" -msgstr "" +msgstr ":mod:`curses.ascii` --- Utilidades para los caracteres ASCII" #: ../Doc/library/curses.ascii.rst:12 msgid "" @@ -27,298 +29,302 @@ msgid "" "and functions to test membership in various ASCII character classes. The " "constants supplied are names for control characters as follows:" msgstr "" +"El módulo :mod:`curses.ascii` proporciona constantes de nombre para " +"caracteres ASCII y funciones para probar la pertenencia a varias clases de " +"los caracteres ASCII. Las constantes proporcionadas son nombres para " +"caracteres de control de la siguiente manera:" #: ../Doc/library/curses.ascii.rst:17 msgid "Name" -msgstr "" +msgstr "Nombre" #: ../Doc/library/curses.ascii.rst:17 msgid "Meaning" -msgstr "" +msgstr "Significado" #: ../Doc/library/curses.ascii.rst:19 msgid ":const:`NUL`" -msgstr "" +msgstr " :const:`NUL`" #: ../Doc/library/curses.ascii.rst:21 msgid ":const:`SOH`" -msgstr "" +msgstr ":const:`SOH`" #: ../Doc/library/curses.ascii.rst:21 msgid "Start of heading, console interrupt" -msgstr "" +msgstr "Inicio del encabezado, interrupción de la consola" #: ../Doc/library/curses.ascii.rst:23 msgid ":const:`STX`" -msgstr "" +msgstr ":const:`STX`" #: ../Doc/library/curses.ascii.rst:23 msgid "Start of text" -msgstr "" +msgstr "Inicio del texto" #: ../Doc/library/curses.ascii.rst:25 msgid ":const:`ETX`" -msgstr "" +msgstr ":const:`ETX`" #: ../Doc/library/curses.ascii.rst:25 msgid "End of text" -msgstr "" +msgstr "Final del texto" #: ../Doc/library/curses.ascii.rst:27 msgid ":const:`EOT`" -msgstr "" +msgstr ":const:`EOT`" #: ../Doc/library/curses.ascii.rst:27 msgid "End of transmission" -msgstr "" +msgstr "Fin de la transmisión" #: ../Doc/library/curses.ascii.rst:29 msgid ":const:`ENQ`" -msgstr "" +msgstr ":const:`ENQ`" #: ../Doc/library/curses.ascii.rst:29 msgid "Enquiry, goes with :const:`ACK` flow control" -msgstr "" +msgstr "Consulta, va con el control de flujo :const:`ACK`" #: ../Doc/library/curses.ascii.rst:31 msgid ":const:`ACK`" -msgstr "" +msgstr ":const:`ACK`" #: ../Doc/library/curses.ascii.rst:31 msgid "Acknowledgement" -msgstr "" +msgstr "Reconocimiento" #: ../Doc/library/curses.ascii.rst:33 msgid ":const:`BEL`" -msgstr "" +msgstr ":const:`BEL`" #: ../Doc/library/curses.ascii.rst:33 msgid "Bell" -msgstr "" +msgstr "Campana" #: ../Doc/library/curses.ascii.rst:35 msgid ":const:`BS`" -msgstr "" +msgstr ":const:`BS`" #: ../Doc/library/curses.ascii.rst:35 msgid "Backspace" -msgstr "" +msgstr "Retroceso" #: ../Doc/library/curses.ascii.rst:37 msgid ":const:`TAB`" -msgstr "" +msgstr ":const:`TAB`" #: ../Doc/library/curses.ascii.rst:37 msgid "Tab" -msgstr "" +msgstr "Tabulación" #: ../Doc/library/curses.ascii.rst:39 msgid ":const:`HT`" -msgstr "" +msgstr ":const:`HT`" #: ../Doc/library/curses.ascii.rst:39 msgid "Alias for :const:`TAB`: \"Horizontal tab\"" -msgstr "" +msgstr "Alias para :const:`TAB`: \"Tabulación horizontal\"" #: ../Doc/library/curses.ascii.rst:41 msgid ":const:`LF`" -msgstr "" +msgstr ":const:`LF`" #: ../Doc/library/curses.ascii.rst:41 msgid "Line feed" -msgstr "" +msgstr "Línea de alimentación" #: ../Doc/library/curses.ascii.rst:43 msgid ":const:`NL`" -msgstr "" +msgstr ":const:`NL`" #: ../Doc/library/curses.ascii.rst:43 msgid "Alias for :const:`LF`: \"New line\"" -msgstr "" +msgstr "Alias para :const:`LF`: \"Nueva línea\"" #: ../Doc/library/curses.ascii.rst:45 msgid ":const:`VT`" -msgstr "" +msgstr ":const:`VT`" #: ../Doc/library/curses.ascii.rst:45 msgid "Vertical tab" -msgstr "" +msgstr "Tabulación vertical" #: ../Doc/library/curses.ascii.rst:47 msgid ":const:`FF`" -msgstr "" +msgstr ":const:`FF`" #: ../Doc/library/curses.ascii.rst:47 msgid "Form feed" -msgstr "" +msgstr "Alimentación de formulario" #: ../Doc/library/curses.ascii.rst:49 msgid ":const:`CR`" -msgstr "" +msgstr ":const:`CR`" #: ../Doc/library/curses.ascii.rst:49 msgid "Carriage return" -msgstr "" +msgstr "Retorno de carro (*Carriage return* en inglés)" #: ../Doc/library/curses.ascii.rst:51 msgid ":const:`SO`" -msgstr "" +msgstr ":const:`SO`" #: ../Doc/library/curses.ascii.rst:51 msgid "Shift-out, begin alternate character set" -msgstr "" +msgstr "*Shift-out*, comenzar un conjunto de caracteres alternativo" #: ../Doc/library/curses.ascii.rst:53 msgid ":const:`SI`" -msgstr "" +msgstr ":const:`SI`" #: ../Doc/library/curses.ascii.rst:53 msgid "Shift-in, resume default character set" -msgstr "" +msgstr "*Shift-in*, reanudar el conjunto de caracteres predeterminado" #: ../Doc/library/curses.ascii.rst:55 msgid ":const:`DLE`" -msgstr "" +msgstr ":const:`DLE`" #: ../Doc/library/curses.ascii.rst:55 msgid "Data-link escape" -msgstr "" +msgstr "Escape de enlace de datos" #: ../Doc/library/curses.ascii.rst:57 msgid ":const:`DC1`" -msgstr "" +msgstr ":const:`DC1`" #: ../Doc/library/curses.ascii.rst:57 msgid "XON, for flow control" -msgstr "" +msgstr "XON, para control de flujo" #: ../Doc/library/curses.ascii.rst:59 msgid ":const:`DC2`" -msgstr "" +msgstr ":const:`DC2`" #: ../Doc/library/curses.ascii.rst:59 msgid "Device control 2, block-mode flow control" -msgstr "" +msgstr "Control de dispositivo 2, control de flujo en modo bloque" #: ../Doc/library/curses.ascii.rst:61 msgid ":const:`DC3`" -msgstr "" +msgstr ":const:`DC3`" #: ../Doc/library/curses.ascii.rst:61 msgid "XOFF, for flow control" -msgstr "" +msgstr "XOFF, para control de flujo" #: ../Doc/library/curses.ascii.rst:63 msgid ":const:`DC4`" -msgstr "" +msgstr ":const:`DC4`" #: ../Doc/library/curses.ascii.rst:63 msgid "Device control 4" -msgstr "" +msgstr "Control de dispositivo 4" #: ../Doc/library/curses.ascii.rst:65 msgid ":const:`NAK`" -msgstr "" +msgstr ":const:`NAK`" #: ../Doc/library/curses.ascii.rst:65 msgid "Negative acknowledgement" -msgstr "" +msgstr "Reconocimiento negativo" #: ../Doc/library/curses.ascii.rst:67 msgid ":const:`SYN`" -msgstr "" +msgstr ":const:`SYN`" #: ../Doc/library/curses.ascii.rst:67 msgid "Synchronous idle" -msgstr "" +msgstr "Inactivo sincrónico" #: ../Doc/library/curses.ascii.rst:69 msgid ":const:`ETB`" -msgstr "" +msgstr ":const:`ETB`" #: ../Doc/library/curses.ascii.rst:69 msgid "End transmission block" -msgstr "" +msgstr "Bloque de transmisión final" #: ../Doc/library/curses.ascii.rst:71 msgid ":const:`CAN`" -msgstr "" +msgstr ":const:`CAN`" #: ../Doc/library/curses.ascii.rst:71 msgid "Cancel" -msgstr "" +msgstr "Cancelar" #: ../Doc/library/curses.ascii.rst:73 msgid ":const:`EM`" -msgstr "" +msgstr ":const:`EM`" #: ../Doc/library/curses.ascii.rst:73 msgid "End of medium" -msgstr "" +msgstr "Fin del medio" #: ../Doc/library/curses.ascii.rst:75 msgid ":const:`SUB`" -msgstr "" +msgstr ":const:`SUB`" #: ../Doc/library/curses.ascii.rst:75 msgid "Substitute" -msgstr "" +msgstr "Sustituir" #: ../Doc/library/curses.ascii.rst:77 msgid ":const:`ESC`" -msgstr "" +msgstr ":const:`ESC`" #: ../Doc/library/curses.ascii.rst:77 msgid "Escape" -msgstr "" +msgstr "Escapar" #: ../Doc/library/curses.ascii.rst:79 msgid ":const:`FS`" -msgstr "" +msgstr ":const:`FS`" #: ../Doc/library/curses.ascii.rst:79 msgid "File separator" -msgstr "" +msgstr "Separador de archivos" #: ../Doc/library/curses.ascii.rst:81 msgid ":const:`GS`" -msgstr "" +msgstr ":const:`GS`" #: ../Doc/library/curses.ascii.rst:81 msgid "Group separator" -msgstr "" +msgstr "Separador de grupos" #: ../Doc/library/curses.ascii.rst:83 msgid ":const:`RS`" -msgstr "" +msgstr ":const:`RS`" #: ../Doc/library/curses.ascii.rst:83 msgid "Record separator, block-mode terminator" -msgstr "" +msgstr "Separador de registros, finalizador en modo bloque" #: ../Doc/library/curses.ascii.rst:85 msgid ":const:`US`" -msgstr "" +msgstr ":const:`US`" #: ../Doc/library/curses.ascii.rst:85 msgid "Unit separator" -msgstr "" +msgstr "Separador de unidades" #: ../Doc/library/curses.ascii.rst:87 msgid ":const:`SP`" -msgstr "" +msgstr ":const:`SP`" #: ../Doc/library/curses.ascii.rst:87 msgid "Space" -msgstr "" +msgstr "Espacio" #: ../Doc/library/curses.ascii.rst:89 msgid ":const:`DEL`" -msgstr "" +msgstr ":const:`DEL`" #: ../Doc/library/curses.ascii.rst:89 msgid "Delete" -msgstr "" +msgstr "Eliminar" #: ../Doc/library/curses.ascii.rst:92 msgid "" @@ -326,85 +332,108 @@ msgid "" "The mnemonics derive from teleprinter conventions that predate digital " "computers." msgstr "" +"Tenga en cuenta que muchos de estos tienen poca importancia práctica en el " +"uso moderno. Los mnemónicos se derivan de las convenciones de la " +"teleimpresora que son anteriores a las computadoras digitales." #: ../Doc/library/curses.ascii.rst:95 msgid "" "The module supplies the following functions, patterned on those in the " "standard C library:" msgstr "" +"El módulo proporciona las siguientes funciones, siguiendo el patrón de las " +"de la biblioteca C estándar:" #: ../Doc/library/curses.ascii.rst:101 msgid "" "Checks for an ASCII alphanumeric character; it is equivalent to ``isalpha(c) " "or isdigit(c)``." msgstr "" +"Comprueba un carácter alfanumérico ASCII; esto es equivalente a ``isalpha(c) " +"or isdigit(c)``." #: ../Doc/library/curses.ascii.rst:107 msgid "" "Checks for an ASCII alphabetic character; it is equivalent to ``isupper(c) " "or islower(c)``." msgstr "" +"Comprueba si hay un carácter alfabético ASCII; es equivalente a ``isupper(c) " +"or islower(c)``." #: ../Doc/library/curses.ascii.rst:113 msgid "Checks for a character value that fits in the 7-bit ASCII set." msgstr "" +"Comprueba un valor de carácter que se ajuste al conjunto ASCII de 7 bits." #: ../Doc/library/curses.ascii.rst:118 msgid "Checks for an ASCII whitespace character; space or horizontal tab." msgstr "" +"Comprueba si hay un carácter de espacio en blanco ASCII; espacio o " +"tabulación horizontal." #: ../Doc/library/curses.ascii.rst:123 msgid "" "Checks for an ASCII control character (in the range 0x00 to 0x1f or 0x7f)." msgstr "" +"Comprueba un carácter de control ASCII (en el rango de 0x00 a 0x1f o 0x7f)." #: ../Doc/library/curses.ascii.rst:128 msgid "" "Checks for an ASCII decimal digit, ``'0'`` through ``'9'``. This is " "equivalent to ``c in string.digits``." msgstr "" +"Comprueba si hay un dígito decimal ASCII, desde ``'0'`` hasta ``'9'``. Esto " +"es equivalente a ``c in string.digits``." #: ../Doc/library/curses.ascii.rst:134 msgid "Checks for ASCII any printable character except space." -msgstr "" +msgstr "Comprueba en ASCII cualquier carácter imprimible excepto el espacio." #: ../Doc/library/curses.ascii.rst:139 msgid "Checks for an ASCII lower-case character." -msgstr "" +msgstr "Comprueba un carácter ASCII en minúscula." #: ../Doc/library/curses.ascii.rst:144 msgid "Checks for any ASCII printable character including space." -msgstr "" +msgstr "Comprueba cualquier carácter imprimible ASCII, incluido el espacio." #: ../Doc/library/curses.ascii.rst:149 msgid "" "Checks for any printable ASCII character which is not a space or an " "alphanumeric character." msgstr "" +"Comprueba si hay algún carácter ASCII imprimible que no sea un espacio o un " +"carácter alfanumérico." #: ../Doc/library/curses.ascii.rst:155 msgid "" "Checks for ASCII white-space characters; space, line feed, carriage return, " "form feed, horizontal tab, vertical tab." msgstr "" +"Comprueba los caracteres de espacio en blanco ASCII; espacio, línea de " +"alimentación, retorno de carro, formulario de alimentación, tabulación " +"horizontal, tabulación vertical." #: ../Doc/library/curses.ascii.rst:161 msgid "Checks for an ASCII uppercase letter." -msgstr "" +msgstr "Comprueba una letra mayúscula ASCII." #: ../Doc/library/curses.ascii.rst:166 msgid "" "Checks for an ASCII hexadecimal digit. This is equivalent to ``c in string." "hexdigits``." msgstr "" +"Comprueba si hay un dígito hexadecimal ASCII. Esto es equivalente a ``c in " +"string.hexdigits``." #: ../Doc/library/curses.ascii.rst:172 msgid "Checks for an ASCII control character (ordinal values 0 to 31)." -msgstr "" +msgstr "Comprueba un carácter de control ASCII (valores ordinales de 0 a 31)" #: ../Doc/library/curses.ascii.rst:177 msgid "Checks for a non-ASCII character (ordinal values 0x80 and above)." msgstr "" +"Comprueba si hay un carácter no ASCII (valores ordinales 0x80 y superiores)." #: ../Doc/library/curses.ascii.rst:179 msgid "" @@ -412,6 +441,9 @@ msgid "" "argument is a string, it is first converted using the built-in function :" "func:`ord`." msgstr "" +"Estas funciones aceptan enteros o cadenas de un solo carácter; cuando el " +"argumento es una cadena de caracteres, primero se convierte utilizando la " +"función *built-in* :func:`ord`." #: ../Doc/library/curses.ascii.rst:182 msgid "" @@ -419,34 +451,45 @@ msgid "" "character of the string you pass in; they do not actually know anything " "about the host machine's character encoding." msgstr "" +"Tenga en cuenta que todas estas funciones verifican los valores de bits " +"ordinales derivados del carácter de la cadena que ingresa; en realidad, no " +"saben nada sobre la codificación de caracteres de la máquina host." #: ../Doc/library/curses.ascii.rst:186 msgid "" "The following two functions take either a single-character string or integer " "byte value; they return a value of the same type." msgstr "" +"Las siguientes dos funciones toman una cadena de un solo carácter o un valor " +"de byte entero; devuelven un valor del mismo tipo." #: ../Doc/library/curses.ascii.rst:192 msgid "Return the ASCII value corresponding to the low 7 bits of *c*." -msgstr "" +msgstr "Retorna el valor ASCII correspondiente a los 7 bits bajos de *c*." #: ../Doc/library/curses.ascii.rst:197 msgid "" "Return the control character corresponding to the given character (the " "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)." #: ../Doc/library/curses.ascii.rst:203 msgid "" "Return the 8-bit character corresponding to the given ASCII character (the " "character bit value is bitwise-ored with 0x80)." msgstr "" +"Retorna el carácter de 8 bits correspondiente al carácter ASCII dado (el " +"valor del bit de carácter se escribe bit a bit (*bitwise-ored*) con 0x80)." #: ../Doc/library/curses.ascii.rst:206 msgid "" "The following function takes either a single-character string or integer " "value; it returns a string." msgstr "" +"La siguiente función toma una cadena de un solo carácter o un valor entero; " +"devuelve una cadena." #: ../Doc/library/curses.ascii.rst:216 msgid "" @@ -458,6 +501,13 @@ msgid "" "(0x80) set, the meta bit is stripped, the preceding rules applied, and " "``'!'`` prepended to the result." msgstr "" +"Retorna una representación de cadena del carácter ASCII *c*. Si *c* es " +"imprimible, esta cadena es el propio carácter. Si el carácter es un carácter " +"de control (0x00--0x1f) la cadena consta de un signo de intercalación " +"(``'^'``) seguido de la letra mayúscula correspondiente. Si el carácter es " +"una eliminación ASCII (0x7f), la cadena es ``'^?'``. Si el carácter tiene su " +"meta bit establecido (0x80), el meta bit se elimina, se aplican las reglas " +"anteriores y se antepone ``'!'`` al resultado." #: ../Doc/library/curses.ascii.rst:226 msgid "" @@ -465,3 +515,7 @@ msgid "" "two ASCII control characters from 0 (NUL) to 0x1f (US), in order, plus the " "mnemonic ``SP`` for the space character." msgstr "" +"Una matriz de cadena de caracteres de 33 elementos que contiene los " +"mnemónicos ASCII para los treinta y dos caracteres de control ASCII desde 0 " +"(NUL) a 0x1f (US), en orden, más el mnemónico``SP`` para el carácter de " +"espacio." diff --git a/library/curses.panel.po b/library/curses.panel.po index bbdd6c9223..02c71e2b1e 100644 --- a/library/curses.panel.po +++ b/library/curses.panel.po @@ -1,25 +1,27 @@ # 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: 2020-10-18 10:02-0300\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: Alcides Rivarola\n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/curses.panel.rst:2 msgid ":mod:`curses.panel` --- A panel stack extension for curses" -msgstr "" +msgstr ":mod:`curses.panel` --- Una extensión de pila de panel para curses" #: ../Doc/library/curses.panel.rst:11 msgid "" @@ -27,18 +29,22 @@ msgid "" "on top of each other, and only the visible portions of each window will be " "displayed. Panels can be added, moved up or down in the stack, and removed." msgstr "" +"Los paneles son ventanas con la característica de profundidad añadida, por " +"lo que se pueden apilar una encima de la otra, y solo se mostrarán las " +"partes visibles de cada ventana. Los paneles se pueden agregar, mover hacia " +"arriba o hacia abajo en la pila y eliminarse." #: ../Doc/library/curses.panel.rst:19 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/curses.panel.rst:21 msgid "The module :mod:`curses.panel` defines the following functions:" -msgstr "" +msgstr "El módulo :mod:`curses.panel` define las siguientes funciones:" #: ../Doc/library/curses.panel.rst:26 msgid "Returns the bottom panel in the panel stack." -msgstr "" +msgstr "Retorna el panel inferior en la pila del panel." #: ../Doc/library/curses.panel.rst:31 msgid "" @@ -47,20 +53,27 @@ msgid "" "you don't, the panel object is garbage collected and removed from the panel " "stack." msgstr "" +"Retorna un objeto de panel, asociándolo con la ventana dada *win*. Tenga en " +"cuenta que debe mantener explícitamente el objeto de panel retornado al que " +"se hace referencia. Si no lo hace, el objeto de panel se recoge como basura " +"y elimina de la pila del panel." #: ../Doc/library/curses.panel.rst:38 msgid "Returns the top panel in the panel stack." -msgstr "" +msgstr "Retorna el panel superior de la pila de paneles." #: ../Doc/library/curses.panel.rst:43 msgid "" "Updates the virtual screen after changes in the panel stack. This does not " "call :func:`curses.doupdate`, so you'll have to do this yourself." msgstr "" +"Actualiza la pantalla virtual después de los cambios en la pila del panel. " +"Esto no llama a :func:`curses.doupdate`, por lo que tendrás que hacerlo tú " +"mismo." #: ../Doc/library/curses.panel.rst:50 msgid "Panel Objects" -msgstr "" +msgstr "Objetos de Panel" #: ../Doc/library/curses.panel.rst:52 msgid "" @@ -69,61 +82,73 @@ msgid "" "determines the content, while the panel methods are responsible for the " "window's depth in the panel stack." msgstr "" +"Los objetos panel, retornados por :func:`new_panel` arriba, son ventanas con " +"un orden de apilamiento. Siempre hay una ventana asociada a un panel que " +"determina el contenido, mientras que los métodos del panel son responsables " +"de la profundidad de la ventana en la pila del panel." #: ../Doc/library/curses.panel.rst:57 msgid "Panel objects have the following methods:" -msgstr "" +msgstr "Los objetos de panel tienen los siguientes métodos:" #: ../Doc/library/curses.panel.rst:62 msgid "Returns the panel above the current panel." -msgstr "" +msgstr "Retorna el panel situado encima del panel actual." #: ../Doc/library/curses.panel.rst:67 msgid "Returns the panel below the current panel." -msgstr "" +msgstr "Retorna el panel debajo del panel actual." #: ../Doc/library/curses.panel.rst:72 msgid "Push the panel to the bottom of the stack." -msgstr "" +msgstr "Empuja el panel hasta la parte inferior de la pila." #: ../Doc/library/curses.panel.rst:77 msgid "" "Returns ``True`` if the panel is hidden (not visible), ``False`` otherwise." msgstr "" +"Retorna ``True`` si el panel está oculto (no visible), ``False`` en caso " +"contrario." #: ../Doc/library/curses.panel.rst:82 msgid "" "Hide the panel. This does not delete the object, it just makes the window on " "screen invisible." msgstr "" +"Ocultar el panel. Esto no elimina el objeto, solo hace que la ventana en la " +"pantalla sea invisible." #: ../Doc/library/curses.panel.rst:88 msgid "Move the panel to the screen coordinates ``(y, x)``." -msgstr "" +msgstr "Mueve el panel a las coordenadas de pantalla``(y, x)``." #: ../Doc/library/curses.panel.rst:93 msgid "Change the window associated with the panel to the window *win*." -msgstr "" +msgstr "Cambia la ventana asociada con el panel a la ventana *win*." #: ../Doc/library/curses.panel.rst:98 msgid "" "Set the panel's user pointer to *obj*. This is used to associate an " "arbitrary piece of data with the panel, and can be any Python object." msgstr "" +"Establece el puntero de usuario del panel en *obj*. Esto se usa para asociar " +"un dato arbitrario con el panel y puede ser cualquier objeto de Python." #: ../Doc/library/curses.panel.rst:104 msgid "Display the panel (which might have been hidden)." -msgstr "" +msgstr "Muestra el panel (que podría haber estado oculto)." #: ../Doc/library/curses.panel.rst:109 msgid "Push panel to the top of the stack." -msgstr "" +msgstr "Empuja el panel hacia la parte superior de la pila." #: ../Doc/library/curses.panel.rst:114 msgid "" "Returns the user pointer for the panel. This might be any Python object." msgstr "" +"Retorna el puntero del usuario para el panel. Puede ser cualquier objeto de " +"Python." #: ../Doc/library/curses.panel.rst:119 msgid "Returns the window object associated with the panel." -msgstr "" +msgstr "Retorna el objeto de ventana asociado con el panel." diff --git a/library/custominterp.po b/library/custominterp.po index b933a09ab9..9583fe13e2 100644 --- a/library/custominterp.po +++ b/library/custominterp.po @@ -1,25 +1,27 @@ # 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: 2020-10-30 12:17-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_CO\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/custominterp.rst:5 msgid "Custom Python Interpreters" -msgstr "" +msgstr "Intérpretes de Python personalizados" #: ../Doc/library/custominterp.rst:7 msgid "" @@ -29,7 +31,13 @@ msgid "" "look at the :mod:`code` module. (The :mod:`codeop` module is lower-level, " "used to support compiling a possibly-incomplete chunk of Python code.)" msgstr "" +"Los módulos descritos en este capítulo permiten escribir interfaces " +"similares al intérprete interactivo de Python. Si desea un intérprete de " +"Python que admita alguna característica especial además del lenguaje Python, " +"debe mirar el módulo :mod:`code`. (El módulo :mod:`codeop` es de más bajo " +"nivel y se utiliza para soportar la compilación de un fragmento posiblemente " +"incompleto de código Python)." #: ../Doc/library/custominterp.rst:13 msgid "The full list of modules described in this chapter is:" -msgstr "" +msgstr "La lista completa de módulos descritos en este capítulo es:" diff --git a/library/datatypes.po b/library/datatypes.po index 7110b784e3..0a89006471 100644 --- a/library/datatypes.po +++ b/library/datatypes.po @@ -6,23 +6,25 @@ # 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: 2020-10-09 18:21+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/datatypes.rst:5 msgid "Data Types" -msgstr "" +msgstr "Tipos de datos" #: ../Doc/library/datatypes.rst:7 msgid "" @@ -30,6 +32,10 @@ msgid "" "types such as dates and times, fixed-type arrays, heap queues, double-ended " "queues, and enumerations." msgstr "" +"Los módulos descritos en este capítulo proporcionan una variedad de tipos de " +"datos especializados, como fechas y horas, matrices de tipo fijo (*fixed-" +"type arrays*), colas de montículos (*heap queues*), colas de doble extremo " +"(*double-ended queues*) y enumeraciones." #: ../Doc/library/datatypes.rst:11 msgid "" @@ -38,7 +44,12 @@ msgid "" "`tuple`. The :class:`str` class is used to hold Unicode strings, and the :" "class:`bytes` and :class:`bytearray` classes are used to hold binary data." msgstr "" +"Python también proporciona algunos tipos de datos integrados, concretamente :" +"class:`dict`, :class:`list`, :class:`set` y :class:`frozenset`, y :class:" +"`tuple`. La clase :class:`str` se utiliza para contener cadenas de " +"caracteres Unicode, y las clases :class:`bytes` y :class:`bytearray` se " +"utilizan para contener datos binarios." #: ../Doc/library/datatypes.rst:17 msgid "The following modules are documented in this chapter:" -msgstr "" +msgstr "En este capítulo se documentan los siguientes módulos:" diff --git a/library/debug.po b/library/debug.po index 926dabd1d4..1d50b1c53c 100644 --- a/library/debug.po +++ b/library/debug.po @@ -6,23 +6,24 @@ # 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: 2020-12-02 01:34-0600\n" +"Last-Translator: Victor Carlos \n" "Language-Team: python-doc-es\n" +"Language: 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" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/debug.rst:3 msgid "Debugging and Profiling" -msgstr "" +msgstr "Depuración y perfilado" #: ../Doc/library/debug.rst:5 msgid "" @@ -33,3 +34,10 @@ msgid "" "provide visibility into runtime behaviors that would otherwise require " "intrusive debugging or patching." msgstr "" +"Estas bibliotecas le ayudan con el desarrollo de Python: el depurador le " +"permite recorrer paso a paso el código, analizar marcos de pila y establecer " +"puntos de interrupción, etc., y los perfiladores ejecutan código y le " +"proporcionan un desglose detallado de los tiempos de ejecución, lo que le " +"permite identificar cuellos de botella en sus programas. Los eventos de " +"auditoría proporcionan visibilidad de los comportamientos en tiempo de " +"ejecución que, de lo contrario, requerirían depuración o parches intrusivos." diff --git a/library/distutils.po b/library/distutils.po index feefe09c17..482eb27863 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -1,25 +1,27 @@ # 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: 2020-10-11 12:05-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_MX\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/distutils.rst:2 msgid ":mod:`distutils` --- Building and installing Python modules" -msgstr "" +msgstr ":mod:`distutils` --- Creación e instalación de módulos Python" #: ../Doc/library/distutils.rst:12 msgid "" @@ -29,6 +31,11 @@ msgid "" "collections of Python packages which include modules coded in both Python " "and C." msgstr "" +"El paquete :mod:`distutils` proporciona soporte para crear e instalar " +"módulos adicionales en una instalación de Python. Los nuevos módulos pueden " +"ser 100% Python puro, o pueden ser módulos de extensión escritos en C, o " +"pueden ser colecciones de paquetes de Python que incluyen módulos " +"programados en Python y C." #: ../Doc/library/distutils.rst:17 msgid "" @@ -37,32 +44,45 @@ msgid "" "particular, `setuptools `__ is " "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:" #: ../Doc/library/distutils.rst:23 msgid "support for declaring project dependencies" -msgstr "" +msgstr "soporte para declarar dependencias del proyecto" #: ../Doc/library/distutils.rst:24 msgid "" "additional mechanisms for configuring which files to include in source " "releases (including plugins for integration with version control systems)" msgstr "" +"mecanismos adicionales para configurar cuáles archivos incluir en " +"lanzamientos de código fuente (incluyendo plugins para la integración con " +"sistemas de control de versiones)" #: ../Doc/library/distutils.rst:26 msgid "" "the ability to declare project \"entry points\", which can be used as the " "basis for application plugin systems" msgstr "" +"la capacidad de declarar \"puntos de entrada\" del proyecto, los cuales " +"pueden ser utilizados como base para los sistemas de plugins de aplicaciones" #: ../Doc/library/distutils.rst:28 msgid "" "the ability to automatically generate Windows command line executables at " "installation time rather than needing to prebuild them" msgstr "" +"la capacidad de generar, automáticamente, ejecutables de línea de comandos " +"de Windows en el momento de la instalación, en lugar de tener que " +"compilarlos previamente" #: ../Doc/library/distutils.rst:30 msgid "consistent behaviour across all supported Python versions" -msgstr "" +msgstr "comportamiento consistente en todas las versiones de Python soportadas" #: ../Doc/library/distutils.rst:32 msgid "" @@ -71,6 +91,10 @@ msgid "" "``distutils``. Refer to the `Python Packaging User Guide `_ for more information." msgstr "" +"El instalador `pip `__ recomendado ejecuta todos los " +"scripts ``setup.py`` con ``setuptools``, incluso si el propio script sólo " +"importa ``distutils``. Consulte la `Python Packaging User Guide `_ para más información." #: ../Doc/library/distutils.rst:38 msgid "" @@ -79,11 +103,15 @@ msgid "" "system, the legacy :mod:`distutils` based user documentation and API " "reference remain available:" msgstr "" +"Para beneficio de los autores de herramientas de empaquetado y los usuarios " +"que buscan una comprensión más profunda de los detalles del sistema actual " +"de empaquetado y distribución, la documentación de usuario heredada basada " +"en :mod:`distutils` y la referencia de la API permanecen disponibles:" #: ../Doc/library/distutils.rst:43 msgid ":ref:`install-index`" -msgstr "" +msgstr ":ref:`install-index`" #: ../Doc/library/distutils.rst:44 msgid ":ref:`distutils-index`" -msgstr "" +msgstr ":ref:`distutils-index`" diff --git a/library/dummy_threading.po b/library/dummy_threading.po index 70bb713517..6a888ed535 100644 --- a/library/dummy_threading.po +++ b/library/dummy_threading.po @@ -1,37 +1,42 @@ # 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: 2020-11-21 14:29-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/dummy_threading.rst:2 msgid "" ":mod:`dummy_threading` --- Drop-in replacement for the :mod:`threading` " "module" msgstr "" +":mod:`dummy_threading` --- Reemplazo directo para el modulo :mod:`threading`" #: ../Doc/library/dummy_threading.rst:7 msgid "**Source code:** :source:`Lib/dummy_threading.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/dummy_threading.py`" #: ../Doc/library/dummy_threading.rst:9 msgid "" "Python now always has threading enabled. Please use :mod:`threading` " "instead." msgstr "" +"Ahora Python siempre tiene threading habilitado. Por favor utilice en su " +"lugar :mod:`threading`." #: ../Doc/library/dummy_threading.rst:14 msgid "" @@ -39,6 +44,9 @@ msgid "" "It was meant to be imported when the :mod:`_thread` module was not provided " "on a platform." msgstr "" +"Este módulo proporciona una interfaz duplicada al modulo :mod:`threading`. " +"Estaba destinado a ser importado cuando el modulo :mod:`_thread` no fuera " +"proporcionado por una plataforma." #: ../Doc/library/dummy_threading.rst:18 msgid "" @@ -46,3 +54,6 @@ msgid "" "being created that blocks waiting for another thread to be created. This " "often occurs with blocking I/O." msgstr "" +"Tenga cuidado de no usar este módulo donde pueda ocurrir un bloqueo mutuo " +"debido a la creación de un hilo que bloquee la espera de crear otro hilo. " +"Esto sucede a menudo con el bloqueo de E/S." diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po index 197a033a0a..ee7215bc04 100644 --- a/library/email.compat32-message.po +++ b/library/email.compat32-message.po @@ -6,25 +6,28 @@ # 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: 2020-11-09 21:18+0100\n" +"Last-Translator: Álvaro Mondéjar \n" "Language-Team: python-doc-es\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/email.compat32-message.rst:4 msgid "" ":mod:`email.message.Message`: Representing an email message using the :data:" "`~email.policy.compat32` API" msgstr "" +":mod:`email.message.Message`: Representar un mensaje de correo electrónico " +"usando la API :data:`~email.policy.compat32`" #: ../Doc/library/email.compat32-message.rst:12 msgid "" @@ -35,10 +38,16 @@ msgid "" "message.EmailMessage` class, are not recommended unless you are dealing with " "legacy code." msgstr "" +"La clase :class:`Message` es muy similar a la clase :class:`~email.message." +"EmailMessage`, sin los métodos añadidos por esa clase y con el " +"comportamiento predeterminado de algunos otros métodos siendo ligeramente " +"diferente. También documentamos aquí algunos métodos que, aun siendo " +"soportados por :class:`~email.message.EmailMessage`, no están recomendados a " +"no ser que estés lidiando con código heredado." #: ../Doc/library/email.compat32-message.rst:19 msgid "The philosophy and structure of the two classes is otherwise the same." -msgstr "" +msgstr "Por lo demás, la filosofía y estructura de las dos clases es la misma." #: ../Doc/library/email.compat32-message.rst:21 msgid "" @@ -47,6 +56,10 @@ msgid "" "another policy, you should be using the :class:`~email.message.EmailMessage` " "class instead." msgstr "" +"Este documento describe el comportamiento bajo la política por defecto " +"(para :class:`Message`) :attr:`~email.policy.Compat32`. Si vas a usar otra " +"política, deberías estar usando la clase :class:`~email.message." +"EmailMessage` en su lugar." #: ../Doc/library/email.compat32-message.rst:25 msgid "" @@ -59,6 +72,15 @@ msgid "" "message having a MIME type such as :mimetype:`multipart/\\*` or :mimetype:" "`message/rfc822`." msgstr "" +"Un mensaje de correo electrónico consiste en encabezados (*headers*) y una " +"carga (*payload*). Los encabezados deben seguir el estilo de nombres y " +"valores :rfc:`5233`, donde el nombre del campo y el valor son separados por " +"dos puntos. El carácter de doble punto no es parte ni del nombre del campo " +"ni del valor. La carga puede ser un simple mensaje de texto, un objeto " +"binario o una secuencia de submensajes estructurada, cada uno con su propio " +"conjunto de encabezados y su propia carga. El último tipo de carga se indica " +"por el mensaje teniendo un tipo MIME tal como :mimetype:`multipart/\\*` o :" +"mimetype:`message/rfc822`." #: ../Doc/library/email.compat32-message.rst:34 msgid "" @@ -69,6 +91,13 @@ msgid "" "over the object tree. Note that duplicate headers are supported but special " "methods must be used to access them." msgstr "" +"El modelo conceptual proporcionado por un objeto :class:`Message` es el de " +"un diccionario ordenado de encabezados con métodos adicionales para acceder " +"a información especializada de los encabezados, para acceder a la carga, " +"para generar una versión serializada del mensaje y para recorrer " +"recursivamente el árbol del objeto. Ten en cuenta que son soportados " +"encabezados duplicados pero deben ser usados métodos especiales para acceder " +"a ellos." #: ../Doc/library/email.compat32-message.rst:41 msgid "" @@ -83,10 +112,22 @@ msgid "" "list of :class:`Message` objects, for MIME container documents (e.g. :" "mimetype:`multipart/\\*` and :mimetype:`message/rfc822`)." msgstr "" +"El pseudodiccionario :class:`Message` es indexado por los nombres de " +"encabezados, los cuales deben ser valores ASCII. Los valores del diccionario " +"son cadenas que se supone que contienen sólo caracteres ASCII; hay algún " +"manejo especial para la entrada no ASCII, pero esta no siempre produce los " +"resultados correctos. Los encabezados son almacenados y retornados " +"preservando mayúsculas y minúsculas, pero los nombres de campos son " +"emparejados sin distinción entre mayúsculas y minúsculas. También puede " +"haber sólo un encabezado de envoltura, también conocido como el encabezado " +"*Unix-From* o el encabezado ``From_``. La carga (*payload*) es una cadena o " +"bytes, en el caso de objetos de mensajes simples, o una lista de objetos :" +"class:`Message`, para contenedores de documentos MIME (ej. :mimetype:" +"`multipart/\\*` y :mimetype:`message/rfc822`)." #: ../Doc/library/email.compat32-message.rst:52 msgid "Here are the methods of the :class:`Message` class:" -msgstr "" +msgstr "Aquí están los métodos de la clase :class:`Message`:" #: ../Doc/library/email.compat32-message.rst:57 msgid "" @@ -97,10 +138,16 @@ msgid "" "Python 3.2 version of the email package. For more information see the :mod:" "`~email.policy` documentation." msgstr "" +"Si se especifica *policy* (debe ser una instancia de una clase :mod:`~email." +"policy`) utiliza las reglas que especifica para actualizar y serializar la " +"representación del mensaje. Si no se define *policy*, utiliza la política :" +"class:`compat32 `, la cual mantiene compatibilidad " +"con la versión de Python 3.2 del paquete email. Para más información " +"consulta la documentación de :mod:`~email.policy`." #: ../Doc/library/email.compat32-message.rst:64 msgid "The *policy* keyword argument was added." -msgstr "" +msgstr "El argumento de palabra clave *policy* fue añadido." #: ../Doc/library/email.compat32-message.rst:69 msgid "" @@ -114,6 +161,17 @@ msgid "" "control some of the formatting produced by the method, since the specified " "*policy* will be passed to the ``Generator``." msgstr "" +"Retorna el mensaje completo aplanado como una cadena. Cuando el parámetro " +"opcional *unixfrom* es verdadero, el encabezado de envoltura se incluye en " +"la cadena retornada. *unixfrom* es por defecto ``False``. Por razones de " +"compatibilidad con versiones anteriores, *maxheaderlen* es ``0`` por " +"defecto, por lo que si quieres un valor diferente debes debes " +"sobreescribirlo explícitamente (el valor especificado por *max_line_length* " +"en la política será ignorado por este método). El argumento *policy* puede " +"ser usado para sobrescribir la política por defecto obtenida de la instancia " +"del mensaje. Esto puede ser usado para controlar algo del formato producido " +"por el método, ya que la *policy* especificada puede ser pasada al " +"``Generator``." #: ../Doc/library/email.compat32-message.rst:79 #: ../Doc/library/email.compat32-message.rst:121 @@ -122,6 +180,9 @@ msgid "" "defaults need to be filled in to complete the transformation to a string " "(for example, MIME boundaries may be generated or modified)." msgstr "" +"Aplanar el mensaje puede desencadenar cambios en :class:`Message` si por " +"defecto necesita ser rellenado para completar la transformación a una cadena " +"(por ejemplo, límites MIME pueden ser generados o modificados)." #: ../Doc/library/email.compat32-message.rst:83 msgid "" @@ -132,6 +193,12 @@ msgid "" "Generator` instance and use its :meth:`~email.generator.Generator.flatten` " "method directly. For example::" msgstr "" +"Ten en cuenta que este método es proporcionado como conveniencia y puede no " +"siempre formatear el mensaje de la forma que quieres. Por ejemplo, de forma " +"predeterminada no realiza la mutilación de líneas que comienzan con ``From`` " +"que es requerida por el formato unix mbox. Para mayor flexibilidad, " +"instancia un :class:`~email.generator.Generator` y utiliza su método :meth:" +"`~email.generator.Generator.flatten` directamente. Por ejemplo::" #: ../Doc/library/email.compat32-message.rst:97 msgid "" @@ -140,16 +207,22 @@ msgid "" "character\" code points. (See also :meth:`.as_bytes` and :class:`~email." "generator.BytesGenerator`.)" msgstr "" +"Si el objeto de mensaje contiene datos binarios que no están codificados de " +"acuerdo a los estándares RFC, los datos no compatibles serán reemplazados " +"por puntos de código Unicode de \"carácter desconocido\". (Consulta también :" +"meth:`.as_bytes` y :class:`~email.generator.BytesGenerator`.)" #: ../Doc/library/email.compat32-message.rst:102 msgid "the *policy* keyword argument was added." -msgstr "" +msgstr "el argumento de palabra clave *policy* fue añadido." #: ../Doc/library/email.compat32-message.rst:107 msgid "" "Equivalent to :meth:`.as_string()`. Allows ``str(msg)`` to produce a string " "containing the formatted message." msgstr "" +"Equivalente a :meth:`.as_string()`. Permite a ``str(msg)`` producir una " +"cadena conteniendo el mensaje formateado." #: ../Doc/library/email.compat32-message.rst:113 msgid "" @@ -160,6 +233,13 @@ msgid "" "used to control some of the formatting produced by the method, since the " "specified *policy* will be passed to the ``BytesGenerator``." msgstr "" +"Retorna el mensaje completo aplanado como un objeto de bytes. Cuando el " +"argumento opcional *unixfrom* es verdadero, el encabezado de envoltura se " +"incluye en la cadena retornada. *unixfrom* es por defecto ``False``. El " +"argumento *policy* puede ser usado para sobrescribir la política por defecto " +"obtenida desde la instancia del mensaje. Esto puede ser usado para controlar " +"algo del formato producido por el método, ya que el *policy* especificado " +"será pasado al ``BytesGenerator``." #: ../Doc/library/email.compat32-message.rst:125 msgid "" @@ -170,12 +250,20 @@ msgid "" "BytesGenerator` instance and use its :meth:`~email.generator.BytesGenerator." "flatten` method directly. For example::" msgstr "" +"Nota que este método es proporcionado como conveniencia y puede no siempre " +"formatear el mensaje de la forma que quieres. Por ejemplo, por defecto no " +"realiza la mutilación de línea que comienzan con ``From`` que es requerida " +"por el formato unix mbox. Para mayor flexibilidad, instancia un :class:" +"`~email.generator.BytesGenerator` y utiliza su método :meth:`~email." +"generator.BytesGenerator.flatten` directamente. Por ejemplo::" #: ../Doc/library/email.compat32-message.rst:145 msgid "" "Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a bytes " "object containing the formatted message." msgstr "" +"Equivalente a :meth:`.as_bytes()`. Permite a ``bytes(msg)`` producir un " +"objeto de bytes conteniendo el mensaje formateado." #: ../Doc/library/email.compat32-message.rst:153 msgid "" @@ -187,17 +275,29 @@ msgid "" "'multipart'\" will return the ``True``. For example, ``is_multipart`` will " "return ``True`` when the :class:`Message` is of type ``message/rfc822``.)" msgstr "" +"Retorna ``True`` si la carga del mensaje es una lista de objetos heredados " +"de :class:`Message`, si no retorna ``False``. Cuando :meth:`is_multipart` " +"retorna ``False``, la carga debe ser un objeto de cadena (el cual puede ser " +"una carga CTE codificada en binario). (Ten en cuenta que :meth:" +"`is_multipart` retornando ``True`` no significa necesariamente que \"msg." +"get_content_maintype() == 'multipart'\" retornará ``True``. Por ejemplo, " +"``is_multipart`` retornará ``True`` cuando el :class:`Message` es de tipo " +"``message/rfc822``.)" #: ../Doc/library/email.compat32-message.rst:165 msgid "" "Set the message's envelope header to *unixfrom*, which should be a string." msgstr "" +"Establece el mensaje del encabezado de envoltura a *unixfrom*, el cual debe " +"ser una cadena." #: ../Doc/library/email.compat32-message.rst:170 msgid "" "Return the message's envelope header. Defaults to ``None`` if the envelope " "header was never set." msgstr "" +"Retorna el mensaje del encabezado de envoltura. Por defecto a ``None`` si el " +"encabezado de envoltura nunca fue definido." #: ../Doc/library/email.compat32-message.rst:176 msgid "" @@ -207,6 +307,11 @@ msgid "" "set the payload to a scalar object (e.g. a string), use :meth:`set_payload` " "instead." msgstr "" +"Añade el *payload* dado a la carga actual, la cual debe ser ``None`` o una " +"lista de objetos :class:`Message` antes de la invocación. Después de la " +"invocación, la carga siempre será una lista de objetos :class:`Message`. Si " +"quieres definir la carga a un objeto escalar (ej. una cadena), usa :meth:" +"`set_payload` en su lugar." #: ../Doc/library/email.compat32-message.rst:182 msgid "" @@ -214,6 +319,9 @@ msgid "" "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content` and the related ``make`` and ``add`` methods." msgstr "" +"Este es un método heredado. En la clase :class:`~email.emailmessage." +"EmailMessage` su funcionalidad es remplazada por :meth:`~email.message." +"EmailMessage.set_content` y los métodos relacionados ``make`` y ``add``." #: ../Doc/library/email.compat32-message.rst:190 msgid "" @@ -222,6 +330,10 @@ msgid "" "is ``False``. If the payload is a list and you mutate the list object, you " "modify the message's payload in place." msgstr "" +"Retorna la carga (*payload*) actual, la cual será una lista de objetos :" +"class:`Message` cuando :meth:`is_multipart` es ``True``, o una cadena " +"cuando :meth:`is_multipart` es ``False``. Si la carga es una lista y mutas " +"el objeto de lista, modificarás la carga del mensaje." #: ../Doc/library/email.compat32-message.rst:195 msgid "" @@ -232,6 +344,12 @@ msgid "" "is a string (i.e. :meth:`is_multipart` is ``False``) and *i* is given, a :" "exc:`TypeError` is raised." msgstr "" +"Con el argumento opcional *i*, :meth:`get_payload` retornará el elemento " +"número *i* de la carga (*payload*), contando desde cero, si :meth:" +"`is_multipart` es ``True``. Un :exc:`IndexError` será generado si *i* es " +"menor que 0 ó mayor o igual que el número de elementos en la carga. Si la " +"carga es una cadena (ej. :meth:`is_multipart` es ``False``) y se define *i*, " +"se genera un :exc:`TypeError`." #: ../Doc/library/email.compat32-message.rst:202 msgid "" @@ -248,6 +366,19 @@ msgid "" "message's defect property (:class:`~email.errors.InvalidBase64PaddingDefect` " "or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." msgstr "" +"El argumento opcional *decode* es un indicador que determina si una carga " +"debería ser decodificada o no, de acuerdo al encabezado :mailheader:`Content-" +"Transfer-Encoding`. Cuando es ``True`` y el mensaje no es multiparte, la " +"carga será decodificada si el valor de su encabezado es ``quoted-printable`` " +"o ``base64``. Si se usa alguna otra codificación o falta el encabezado :" +"mailheader:`Content-Transfer-Encoding`, la carga es retornada tal cual (sin " +"decodificar). En todos los casos el valor retornado son datos binarios. Si " +"el mensaje es multiparte y el indicador *decode* es ``True``, entonces se " +"retorna ``None``. Si la carga es base64 y no fue perfectamente formada " +"(falta relleno, tiene caracteres fuera del alfabeto base64), entonces un " +"defecto apropiado será añadido a la propiedad defect del mensaje (:class:" +"`~email.errors.InvalidBase64PaddingDefect` o :class:`~email.errors." +"InvalidBase64CharactersDefect`, respectivamente)." #: ../Doc/library/email.compat32-message.rst:216 msgid "" @@ -259,6 +390,14 @@ msgid "" "``charset`` is specified, or if the ``charset`` given is not recognized by " "the email package, the body is decoded using the default ASCII charset." msgstr "" +"Cuando *decode* es ``False`` (por defecto) el cuerpo es retornado como una " +"cadena sin decodificar el :mailheader:`Content-Transfer-Encoding`. Sin " +"embargo, para un :mailheader:`Content-Transfer-Encoding` de 8bit, se realiza " +"un intento para decodificar los bytes originales usando el ``charset`` " +"especificado por el encabezado :mailheader:`Content-Type`, usando el " +"manejador de error ``replace``. Si ningún ``charset`` es especificado o si " +"el ``charset`` dado no es reconocido por el paquete email, el cuerpo es " +"decodificado usando el conjunto de caracteres ASCII por defecto." #: ../Doc/library/email.compat32-message.rst:225 msgid "" @@ -266,6 +405,9 @@ msgid "" "class its functionality is replaced by :meth:`~email.message.EmailMessage." "get_content` and :meth:`~email.message.EmailMessage.iter_parts`." msgstr "" +"Este es un método heredado. En la clase :class:`~email.emailmessage." +"EmailMessage` su funcionalidad es remplazada por :meth:`~email.message." +"EmailMessage.get_content` y :meth:`~email.message.EmailMessage.iter_parts`." #: ../Doc/library/email.compat32-message.rst:233 msgid "" @@ -273,6 +415,10 @@ msgid "" "responsibility to ensure the payload invariants. Optional *charset* sets " "the message's default character set; see :meth:`set_charset` for details." msgstr "" +"Define la carga completa del objeto mensaje a *payload*. Es responsabilidad " +"del cliente asegurar invariantes de carga. El argumento opcional *charset* " +"define el conjunto de caracteres por defecto del mensaje; consulta :meth:" +"`set_charset` para más detalles." #: ../Doc/library/email.compat32-message.rst:237 msgid "" @@ -280,6 +426,9 @@ msgid "" "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content`." msgstr "" +"Este es un método heredado. En la clase :class:`~email.emailmessage." +"EmailMessage` su funcionalidad es remplazada por :meth:`~email.message." +"EmailMessage.set_content`." #: ../Doc/library/email.compat32-message.rst:244 msgid "" @@ -291,6 +440,13 @@ msgid "" "`Content-Type` header (the message will not be otherwise modified). " "Anything else will generate a :exc:`TypeError`." msgstr "" +"Define el junto de caracteres de la carga a *charset*, el cual puede ser " +"tanto una instancia :class:`~email.charset.Charset` (ver :mod:`email." +"charset`), una cadena denominando un conjunto de caracteres, o ``None``. Si " +"es una cadena, será convertida a una instancia :class:`~email.charset." +"Charset`. Si *charset* es ``None``, el parámetro ``charset`` será eliminado " +"del encabezado :mailheader:`Content-Type` (el mensaje no será modificado de " +"otra manera). Cualquier otro valor generará un :exc:`TypeError`." #: ../Doc/library/email.compat32-message.rst:252 msgid "" @@ -308,6 +464,19 @@ msgid "" "correctly encoded using that :mailheader:`Content-Transfer-Encoding` and is " "not modified." msgstr "" +"Si no hay un encabezado existente :mailheader:`MIME-Version`, será añadido " +"uno. Si no hay un encabezado existente :mailheader:`Content-Type`, será " +"añadido uno con valor :mimetype:`text/plain`. Tanto como si el encabezado :" +"mailheader:`Content-Type` existe actualmente como si no, su parámetro " +"``charset`` será establecido a *charset.output_charset*. Si *charset." +"input_charset* y *charset.output_charset* difieren, la carga será " +"recodificada al *output_charset*. Si no hay un encabezado existente :" +"mailheader:`Content-Transfer-Encoding`, entonces la carga será codificada " +"por transferencia, si es necesario, usando el :class:`~email.charset." +"Charset` especificado y un encabezado con el valor apropiado será añadido. " +"Si ya existe un encabezado :mailheader:`Content-Transfer-Encoding`, la carga " +"se asume que ya está correctamente codificada usando ese :mailheader:" +"`Content-Transfer-Encoding` y no es modificada." #: ../Doc/library/email.compat32-message.rst:266 msgid "" @@ -315,18 +484,25 @@ msgid "" "class its functionality is replaced by the *charset* parameter of the :meth:" "`email.emailmessage.EmailMessage.set_content` method." msgstr "" +"Este es un método heredado. En la clase :class:`~email.emailmessage." +"EmailMessage` su funcionalidad es remplazada por el parámetro *charset* del " +"método :meth:`email.emailmessage.EmailMessage.set_content`." #: ../Doc/library/email.compat32-message.rst:274 msgid "" "Return the :class:`~email.charset.Charset` instance associated with the " "message's payload." msgstr "" +"Retorna la instancia :class:`~email.charset.Charset` asociada con la carga " +"del mensaje." #: ../Doc/library/email.compat32-message.rst:277 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class it always returns ``None``." msgstr "" +"Este es un método heredado. En la clase :class:`~email.emailmessage." +"EmailMessage` siempre retorna ``None``." #: ../Doc/library/email.compat32-message.rst:282 msgid "" @@ -340,18 +516,33 @@ msgid "" "the original message, or were added to the message later. Any header " "deleted and then re-added are always appended to the end of the header list." msgstr "" +"Los siguientes métodos implementan una interfaz parecida a un mapeo para " +"acceder a los encabezados :rfc:`2822` del mensaje. Ten en cuenta que hay " +"algunas diferencias semánticas entre esos métodos y una interfaz de mapeo " +"normal (ej. diccionario). Por ejemplo, en un diccionario no hay claves " +"duplicadas, pero aquí pueden haber encabezados de mensaje duplicados. " +"También, en diccionarios no hay un orden garantizado de las claves " +"retornadas por :meth:`keys`, pero en un objeto :class:`Message`, los " +"encabezados siempre son retornados en el orden que aparecieron en el mensaje " +"original, o en el que fueron añadidos al mensaje más tarde. Cualquier " +"encabezado eliminado y vuelto a adicionar siempre es añadido al final de la " +"lista de encabezados." #: ../Doc/library/email.compat32-message.rst:292 msgid "" "These semantic differences are intentional and are biased toward maximal " "convenience." msgstr "" +"Esas diferencias semánticas son intencionales y están sesgadas hacia la " +"máxima comodidad." #: ../Doc/library/email.compat32-message.rst:295 msgid "" "Note that in all cases, any envelope header present in the message is not " "included in the mapping interface." msgstr "" +"Ten en cuenta que en todos los casos, cualquier encabezado de envoltura " +"presente en el mensaje no está incluido en la interfaz de mapeo." #: ../Doc/library/email.compat32-message.rst:298 msgid "" @@ -360,10 +551,14 @@ msgid "" "interface, be represented as :class:`~email.header.Header` objects with a " "charset of `unknown-8bit`." msgstr "" +"En un modelo generado desde bytes, cualesquiera valores de encabezado que " +"(en contravención de los RFCs) contienen bytes ASCII serán representados, " +"cuando sean obtenidos mediante esta interfaz, como objetos :class:`~email." +"header.Header` con un conjunto de caracteres `unknown-8bit`." #: ../Doc/library/email.compat32-message.rst:306 msgid "Return the total number of headers, including duplicates." -msgstr "" +msgstr "Retorna el número total de encabezados, incluyendo duplicados." #: ../Doc/library/email.compat32-message.rst:311 msgid "" @@ -371,6 +566,10 @@ msgid "" "done case-insensitively and *name* should not include the trailing colon. " "Used for the ``in`` operator, e.g.::" msgstr "" +"Retorna ``True`` si el objeto mensaje tiene un campo llamado *name*. La " +"concordancia se realiza sin distinguir mayúsculas de minúsculas y *name* no " +"debería incluir el caracter de doble punto final. Usado para el operador " +"``in``, ej::" #: ../Doc/library/email.compat32-message.rst:321 msgid "" @@ -378,6 +577,9 @@ msgid "" "colon field separator. If the header is missing, ``None`` is returned; a :" "exc:`KeyError` is never raised." msgstr "" +"Retorna el valor del campo del encabezado nombrado. *name* no debe incluir " +"el separador de campo de doble punto. Si falta un encabezado, se retorna " +"``None``; nunca se genera un error :exc:`KeyError`." #: ../Doc/library/email.compat32-message.rst:325 msgid "" @@ -386,12 +588,18 @@ msgid "" "Use the :meth:`get_all` method to get the values of all the extant named " "headers." msgstr "" +"Ten en cuenta que si el campo nombrado aparece más de una vez en los " +"encabezados del mensaje, no se define cuales serán exactamente aquellos " +"valores de campos retornados. Usa el método :meth:`get_all` para obtener los " +"valores de todos los encabezados nombrados existentes." #: ../Doc/library/email.compat32-message.rst:333 msgid "" "Add a header to the message with field name *name* and value *val*. The " "field is appended to the end of the message's existing fields." msgstr "" +"Añade un encabezado al mensaje con el nombre de campo *name* y el valor " +"*val*. El campo es añadido al final de los campos existentes del mensaje." #: ../Doc/library/email.compat32-message.rst:336 msgid "" @@ -399,6 +607,10 @@ msgid "" "same name. If you want to ensure that the new header is the only one " "present in the message with field name *name*, delete the field first, e.g.::" msgstr "" +"Ten en cuenta que esto no sobreescribe ni elimina ningún encabezado " +"existente con el mismo nombre. Si quieres asegurar que el nuevo encabezado " +"es el único presente en el mensaje con el nombre de campo *name*, elimina el " +"campo primero, ej::" #: ../Doc/library/email.compat32-message.rst:346 msgid "" @@ -406,20 +618,26 @@ msgid "" "headers. No exception is raised if the named field isn't present in the " "headers." msgstr "" +"Elimina todas las ocurrencias de un campo con el nombre *name* de los " +"encabezados del mensaje. No se genera ninguna excepción si el encabezado " +"nombrado no está presente en los encabezados." #: ../Doc/library/email.compat32-message.rst:353 msgid "Return a list of all the message's header field names." msgstr "" +"Retorna una lista de todos los nombres de campos de encabezados del mensaje." #: ../Doc/library/email.compat32-message.rst:358 msgid "Return a list of all the message's field values." -msgstr "" +msgstr "Retorna una lista de todos los valores de campos del mensaje." #: ../Doc/library/email.compat32-message.rst:363 msgid "" "Return a list of 2-tuples containing all the message's field headers and " "values." msgstr "" +"Retorna una lista de tuplas de dos elementos conteniendo todos los campos y " +"valores de encabezados del mensaje." #: ../Doc/library/email.compat32-message.rst:369 msgid "" @@ -427,10 +645,13 @@ msgid "" "`__getitem__` except that optional *failobj* is returned if the named header " "is missing (defaults to ``None``)." msgstr "" +"Retorna el valor del campo de encabezado nombrado. Esto es idéntico a :meth:" +"`__getitem__` excepto que el argumento *failobj* es retornado si falta el " +"encabezado nombrado (por defecto a ``None``)." #: ../Doc/library/email.compat32-message.rst:373 msgid "Here are some additional useful methods:" -msgstr "" +msgstr "Aquí hay algunos métodos útiles adicionales:" #: ../Doc/library/email.compat32-message.rst:378 msgid "" @@ -438,6 +659,9 @@ msgid "" "such named headers in the message, *failobj* is returned (defaults to " "``None``)." msgstr "" +"Retorna una lista de todos los valores para el campo denominado *name*. Si " +"no hay tales encabezados nombrados en el mensaje, retorna *failobj* (por " +"defecto ``None``)." #: ../Doc/library/email.compat32-message.rst:385 msgid "" @@ -446,6 +670,10 @@ msgid "" "arguments. *_name* is the header field to add and *_value* is the *primary* " "value for the header." msgstr "" +"Configuración de encabezado extendida. Este método es similar a :meth:" +"`__setitem__` excepto que pueden ser provistos parámetros adicionales de " +"encabezado como argumentos de palabra clave. *_name* es el campo de " +"encabezado a añadir y *_value* es el valor *primario* para el encabezado." #: ../Doc/library/email.compat32-message.rst:390 msgid "" @@ -463,22 +691,36 @@ msgid "" "`2231` format using a ``CHARSET`` of ``utf-8`` and a ``LANGUAGE`` of " "``None``." msgstr "" +"Para cada elemento en el diccionario de argumentos de palabra clave " +"*_params*, la clave se toma como el nombre del parámetro con guiones bajos " +"convertidos a guiones medios (ya que los guiones medios son ilegales como " +"identificadores en Python). Normalmente, el parámetro será añadido como " +"``key=\"value\"`` a no ser que el valor sea ``None``, en cuyo caso sólo la " +"clave será añadida. Si el valor contiene caracteres no ASCII, puede ser " +"especificado como una tupla de tres elementos en el formato ``(CHARSET, " +"LANGUAGE, VALUE)``, donde ``CHARSET`` es una cadena que nombra el conjunto " +"de caracteres a ser usado al codificar el valor, ``LANGUAGE`` puede " +"normalmente ser definido a ``None`` o una cadena vacía (ver :rfc:`2231` para " +"otras posibilidades) y ``VALUE`` es la cadena del valor conteniendo puntos " +"de caracteres no ASCII. Si no se pasa una tupla de tres elementos y el valor " +"contiene caracteres no ASCII, se codifica automáticamente en formato :rfc:" +"`2231` usando ``CHARSET`` como ``utf-8`` y ``LANGUAGE`` como ``None``." #: ../Doc/library/email.compat32-message.rst:404 msgid "Here's an example::" -msgstr "" +msgstr "Aquí hay un ejemplo::" #: ../Doc/library/email.compat32-message.rst:408 msgid "This will add a header that looks like ::" -msgstr "" +msgstr "Esto añadirá un encabezado que se verá como ::" #: ../Doc/library/email.compat32-message.rst:412 msgid "An example with non-ASCII characters::" -msgstr "" +msgstr "Un ejemplo con caracteres no ASCII::" #: ../Doc/library/email.compat32-message.rst:417 msgid "Which produces ::" -msgstr "" +msgstr "Lo que produce ::" #: ../Doc/library/email.compat32-message.rst:424 msgid "" @@ -486,6 +728,10 @@ msgid "" "matches *_name*, retaining header order and field name case. If no matching " "header was found, a :exc:`KeyError` is raised." msgstr "" +"Reemplaza un encabezado. Reemplaza el primer encabezado encontrado en el " +"mensaje que concuerda con *_name*, conservando el orden del encabezado y el " +"nombre del campo. Si no se encuentra ningún encabezado que concuerde, se " +"genera un error :exc:`KeyError`." #: ../Doc/library/email.compat32-message.rst:431 msgid "" @@ -496,6 +742,12 @@ msgid "" "messages always have a default type, :meth:`get_content_type` will always " "return a value." msgstr "" +"Retorna el tipo de contenido del mensaje. La cadena retornada se fuerza a " +"letras minúsculas de la forma :mimetype:`maintype/subtype`. Si no hay ningún " +"encabezado :mailheader:`Content-Type` en el mensaje será retornado el tipo " +"por defecto como es dado por :meth:`get_default_type`. Dado que según :rfc:" +"`2045`, los mensajes tienen siempre un tipo predeterminado, :meth:" +"`get_content_type` siempre retornará un valor." #: ../Doc/library/email.compat32-message.rst:438 msgid "" @@ -505,18 +757,27 @@ msgid "" "Type` header has an invalid type specification, :rfc:`2045` mandates that " "the default type be :mimetype:`text/plain`." msgstr "" +":rfc:`2045` define el tipo predeterminado del mensaje a :mimetype:`text/" +"plain` a no ser que aparezca dentro de un contenedor :mimetype:`multipart/" +"digest`, en cuyo caso sería :mimetype:`message/rfc822`. Si el encabezado :" +"mailheader:`Content-Type` tiene una especificación de tipo inválido, :rfc:" +"`2045` ordena que el tipo por defecto sea :mimetype:`text/plain`." #: ../Doc/library/email.compat32-message.rst:447 msgid "" "Return the message's main content type. This is the :mimetype:`maintype` " "part of the string returned by :meth:`get_content_type`." msgstr "" +"Retorna el tipo de contenido principal del mensaje. Esta es la parte :" +"mimetype:`maintype` de la cadena retornada por :meth:`get_content_type`." #: ../Doc/library/email.compat32-message.rst:453 msgid "" "Return the message's sub-content type. This is the :mimetype:`subtype` part " "of the string returned by :meth:`get_content_type`." msgstr "" +"Retorna el tipo del subcontenido del mensaje. Esta es la parte :mimetype:" +"`subtype` de la cadena retornada por :meth:`get_content_type`." #: ../Doc/library/email.compat32-message.rst:459 msgid "" @@ -525,6 +786,11 @@ msgid "" "mimetype:`multipart/digest` containers. Such subparts have a default " "content type of :mimetype:`message/rfc822`." msgstr "" +"Retorna el tipo del contenido por defecto. La mayoría de mensajes tienen un " +"tipo de contenido por defecto de :mimetype:`text/plain`, excepto para " +"mensajes que son subpartes de contenedores :mimetype:`multipart/digest`. " +"Tales subpartes tienen como tipo de contenido predeterminado :mimetype:" +"`message/rfc822`." #: ../Doc/library/email.compat32-message.rst:467 msgid "" @@ -532,6 +798,10 @@ msgid "" "plain` or :mimetype:`message/rfc822`, although this is not enforced. The " "default content type is not stored in the :mailheader:`Content-Type` header." msgstr "" +"Establece el tipo de contenido por defecto. *ctype* debería ser :mimetype:" +"`text/plain` o :mimetype:`message/rfc822`, aunque esto no es obligatorio. El " +"tipo de contenido predeterminado no se almacena en el encabezado :mailheader:" +"`Content-Type`." #: ../Doc/library/email.compat32-message.rst:475 msgid "" @@ -542,6 +812,13 @@ msgid "" "the value is the empty string, otherwise the value is as described in :meth:" "`get_param` and is unquoted if optional *unquote* is ``True`` (the default)." msgstr "" +"Retorna los parámetros del :mailheader:`Content-Type` del mensaje como una " +"lista. Los elementos de la lista retornada son tuplas de dos elementos de " +"pares clave/valor, tal y como son partidas por el signo ``'='``. El lado " +"izquierdo del ``'='`` es la clave, mientras el lado derecho es el valor. Si " +"no hay signo ``'='`` en el parámetro, el valor es la cadena vacía, en caso " +"contrario el valor es como se describe en :meth:`get_param` y no está citado " +"si el parámetro opcional *unquote* es ``True`` (por defecto)." #: ../Doc/library/email.compat32-message.rst:483 msgid "" @@ -549,6 +826,9 @@ msgid "" "`Content-Type` header. Optional *header* is the header to search instead " "of :mailheader:`Content-Type`." msgstr "" +"El parámetro opcional *failobj* es el objeto a retornar si no hay " +"encabezado :mailheader:`Content-Type`. El parámetro opcional *header* es el " +"encabezado a buscar en lugar de :mailheader:`Content-Type`." #: ../Doc/library/email.compat32-message.rst:487 #: ../Doc/library/email.compat32-message.rst:525 @@ -557,6 +837,10 @@ msgid "" "class its functionality is replaced by the *params* property of the " "individual header objects returned by the header access methods." msgstr "" +"Este es un método heredado. En la clase :class:`~email.emailmessage." +"EmailMessage` su funcionalidad es remplazada por la propiedad *params* de " +"los objetos individuales de encabezado retornados por los métodos de acceso " +"del encabezado." #: ../Doc/library/email.compat32-message.rst:495 msgid "" @@ -565,12 +849,18 @@ msgid "" "header or if there is no such parameter, then *failobj* is returned " "(defaults to ``None``)." msgstr "" +"Retorna el valor del parámetro *param* del encabezado :mailheader:`Content-" +"Type` como una cadena. Si el mensaje no tiene encabezado :mailheader:" +"`Content-Type` o si no existe tal parámetro, entonces se retorna *failobj* " +"(por defecto es ``None``)." #: ../Doc/library/email.compat32-message.rst:500 msgid "" "Optional *header* if given, specifies the message header to use instead of :" "mailheader:`Content-Type`." msgstr "" +"El parámetro opcional *header*, si es definido, especifica el encabezado del " +"mensaje a usar en lugar de :mailheader:`Content-Type`." #: ../Doc/library/email.compat32-message.rst:503 msgid "" @@ -581,6 +871,14 @@ msgid "" "``None``, in which case you should consider ``VALUE`` to be encoded in the " "``us-ascii`` charset. You can usually ignore ``LANGUAGE``." msgstr "" +"Las claves de parámetros siempre son comparadas distinguiendo entre " +"mayúsculas y minúsculas. El valor de retorno puede ser una cadena, una tupla " +"de 3 elementos si el parámetro fue codificado según :rfc:`2231`. Cuando es " +"una tupla de 3 elementos, los elementos del valor tienen la forma " +"``(CHARSET, LANGUAGE, VALUE)``. Ten en cuenta que ``CHARSET`` y ``LANGUAGE`` " +"pueden ser ``None``, en cuyo caso debes considerar ``VALUE`` como codificado " +"en el conjunto de caracteres ``us-ascii``. Generalmente puedes ignorar " +"``LANGUAGE``." #: ../Doc/library/email.compat32-message.rst:511 msgid "" @@ -590,6 +888,12 @@ msgid "" "`get_param`. This will return a suitably decoded Unicode string when the " "value is a tuple, or the original string unquoted if it isn't. For example::" msgstr "" +"Si a tu aplicación no le importa si el parámetro fue codificado según :rfc:" +"`2231`, puedes contraer el valor del parámetro invocando :func:`email.utils." +"collapse_rfc2231_value`, pasando el valor de retorno desde :meth:" +"`get_param`. Esto retornará una cadena Unicode convenientemente decodificada " +"cuando el valor es una tupla o la cadena original sin entrecomillar si no lo " +"es. Por ejemplo::" #: ../Doc/library/email.compat32-message.rst:521 msgid "" @@ -597,6 +901,9 @@ msgid "" "``VALUE`` item in the 3-tuple) is always unquoted, unless *unquote* is set " "to ``False``." msgstr "" +"En cualquier caso, el valor del parámetro (tanto la cadena retornada o el " +"elemento ``VALUE`` en la tupla de 3 elementos) siempre está sin " +"entrecomillar, a no ser que *unquote* está establecido a ``False``." #: ../Doc/library/email.compat32-message.rst:534 msgid "" @@ -606,6 +913,11 @@ msgid "" "message, it will be set to :mimetype:`text/plain` and the new parameter " "value will be appended as per :rfc:`2045`." msgstr "" +"Establece un parámetro en el encabezado :mailheader:`Content-Type`. Si el " +"parámetro ya existe en el encabezado, su valor será remplazado con *value*. " +"Si el encabezado :mailheader:`Content-Type` no ha sido definido todavía para " +"este mensaje, será establecido a :mimetype:`text/plain` y el nuevo valor del " +"parámetro será añadido según :rfc:`2045`." #: ../Doc/library/email.compat32-message.rst:540 msgid "" @@ -613,6 +925,10 @@ msgid "" "Type`, and all parameters will be quoted as necessary unless optional " "*requote* is ``False`` (the default is ``True``)." msgstr "" +"El parámetro opcional *header* especifica una alternativa a :mailheader:" +"`Content-Type` y todos los parámetros serán entrecomillados si es necesario " +"a no ser que el parámetro opcional *requote* sea ``False`` (por defecto es " +"``True``)." #: ../Doc/library/email.compat32-message.rst:544 msgid "" @@ -621,6 +937,10 @@ msgid "" "defaulting to the empty string. Both *charset* and *language* should be " "strings." msgstr "" +"Si se especifica el parámetro opcional *charset*, el parámetro será " +"codificado de acuerdo a :rfc:`2231`. El parámetro opcional *language* " +"especifica el lenguaje RFC 2231, por defecto una cadena vacía. Tanto " +"*charset* como *language* deberían ser cadenas." #: ../Doc/library/email.compat32-message.rst:549 msgid "" @@ -628,10 +948,13 @@ msgid "" "the list of headers. If *replace* is ``True``, the header will be updated " "in place." msgstr "" +"Si *replace* es ``False`` (por defecto) el encabezado será movido al final " +"de la lista de encabezados. Si *replace* es ``True``, el encabezado será " +"actualizado." #: ../Doc/library/email.compat32-message.rst:553 msgid "``replace`` keyword was added." -msgstr "" +msgstr "el parámetro de palabra clave ``replace`` fue añadido." #: ../Doc/library/email.compat32-message.rst:558 msgid "" @@ -641,6 +964,11 @@ msgid "" "(the default is ``True``). Optional *header* specifies an alternative to :" "mailheader:`Content-Type`." msgstr "" +"Elimina el parámetro dado completamente del encabezado :mailheader:`Content-" +"Type`. El encabezado será reescrito en sí mismo sin el parámetro o su valor. " +"Todos los valores serán entrecomillados si es necesario a no ser que " +"*requote* sea ``False`` (por defecto es ``True``). El parámetro opcional " +"*header* especifica una alternativa a :mailheader:`Content-Type`." #: ../Doc/library/email.compat32-message.rst:567 msgid "" @@ -648,6 +976,9 @@ msgid "" "*type* must be a string in the form :mimetype:`maintype/subtype`, otherwise " "a :exc:`ValueError` is raised." msgstr "" +"Establece el tipo y subtipo principal para el encabezado :mailheader:" +"`Content-Type`. *type* debe ser una cadena de la forma :mimetype:`maintype/" +"subtype`, si no será generado un :exc:`ValueError`." #: ../Doc/library/email.compat32-message.rst:571 msgid "" @@ -656,6 +987,10 @@ msgid "" "header's quoting as is, otherwise the parameters will be quoted (the " "default)." msgstr "" +"Este método remplaza el encabezado :mailheader:`Content-Type`, manteniendo " +"todos los parámetros en su lugar. Si *requote* es ``False``, este dejará el " +"encabezado existente tal como está, en caso contrario los parámetros serán " +"entrecomillados (por defecto)." #: ../Doc/library/email.compat32-message.rst:576 msgid "" @@ -663,12 +998,18 @@ msgid "" "mailheader:`Content-Type` header is set a :mailheader:`MIME-Version` header " "is also added." msgstr "" +"Un encabezado alternativo puede ser especificado en el argumento *header*. " +"Cuando el encabezado :mailheader:`Content-Type` es definido, un encabezado :" +"mailheader:`MIME-Version` también es añadido." #: ../Doc/library/email.compat32-message.rst:580 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the ``make_`` and ``add_`` methods." msgstr "" +"Este es un método heredado. En la clase :class:`~email.emailmessage." +"EmailMessage` su funcionalidad es remplazada por los métodos ``make_`` y " +"``add_``." #: ../Doc/library/email.compat32-message.rst:587 msgid "" @@ -679,6 +1020,12 @@ msgid "" "the header is missing, then *failobj* is returned. The returned string will " "always be unquoted as per :func:`email.utils.unquote`." msgstr "" +"Retorna el valor del parámetro ``filename`` del encabezado :mailheader:" +"`Content-Disposition` del mensaje. Si el encabezado no tiene un parámetro " +"``filename``, este método recurre a buscar el parámetro ``name`` en el " +"encabezado :mailheader:`Content-Type`. Si tampoco se encuentra o falta el " +"encabezado, entonces retorna *failobj*. La cadena retornada siempre será sin " +"entrecomillar según :func:`email.utils.unquote`." #: ../Doc/library/email.compat32-message.rst:598 msgid "" @@ -687,6 +1034,10 @@ msgid "" "or has no ``boundary`` parameter. The returned string will always be " "unquoted as per :func:`email.utils.unquote`." msgstr "" +"Retorna el valor del parámetro ``boundary`` del encabezado :mailheader:" +"`Content-Type` del mensaje o *failobj* tanto si falta el encabezado como si " +"no tiene parámetro ``boundary``. La cadena retornada siempre será sin " +"entrecomillar según :func:`email.utils.unquote`." #: ../Doc/library/email.compat32-message.rst:606 msgid "" @@ -695,6 +1046,10 @@ msgid "" "necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " "object has no :mailheader:`Content-Type` header." msgstr "" +"Establece el parámetro ``boundary`` del encabezado :mailheader:`Content-" +"Type` a *boundary*. :meth:`set_boundary` siempre entrecomillará *boundary* " +"si es necesario. Se genera :exc:`~email.errors.HeaderParseError` si el " +"objeto de mensaje no tiene encabezado :mailheader:`Content-Type`." #: ../Doc/library/email.compat32-message.rst:611 msgid "" @@ -705,6 +1060,13 @@ msgid "" "does *not* preserve any continuation lines which may have been present in " "the original :mailheader:`Content-Type` header." msgstr "" +"Ten en cuenta que usar este método es sutilmente diferente a borrar el " +"antiguo encabezado :mailheader:`Content-Type` y añadir uno nuevo con el " +"nuevo límite mediante :meth:`add_header` porque :meth:`set_boundary` " +"preserva el orden del encabezado :mailheader:`Content-Type` en la lista de " +"encabezados. Sin embargo, no conserva ninguna línea de continuación que " +"pueden haber estado presentes en el encabezado original :mailheader:`Content-" +"Type`." #: ../Doc/library/email.compat32-message.rst:621 msgid "" @@ -712,6 +1074,10 @@ msgid "" "coerced to lower case. If there is no :mailheader:`Content-Type` header, or " "if that header has no ``charset`` parameter, *failobj* is returned." msgstr "" +"Retorna el parámetro ``charset`` del encabezado :mailheader:`Content-Type`, " +"forzado a letras minúsculas. Si no hay un encabezado :mailheader:`Content-" +"Type` o si ese encabezado no tiene parámetro ``charset``, se retorna " +"*failobj*." #: ../Doc/library/email.compat32-message.rst:625 msgid "" @@ -719,6 +1085,9 @@ msgid "" "class:`~email.charset.Charset` instance for the default encoding of the " "message body." msgstr "" +"Ten en cuenta que este método difiere de :meth:`get_charset`, el cual " +"retorna la instancia :class:`~email.charset.Charset` para la codificación " +"por defecto del cuerpo del mensaje." #: ../Doc/library/email.compat32-message.rst:631 msgid "" @@ -726,6 +1095,10 @@ msgid "" "message is a :mimetype:`multipart`, then the list will contain one element " "for each subpart in the payload, otherwise, it will be a list of length 1." msgstr "" +"Retorna una lista conteniendo los nombres de los conjuntos de caracteres en " +"el mensaje. Si el mensaje es :mimetype:`multipart`, entonces la lista " +"contendrá un elemento para cada subparte en la carga (*payload*), en caso " +"contrario será una lista de un elemento." #: ../Doc/library/email.compat32-message.rst:635 msgid "" @@ -735,6 +1108,12 @@ msgid "" "no ``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " "then that item in the returned list will be *failobj*." msgstr "" +"Cada elemento en la lista será una cadena la cual es el valor del parámetro " +"``charset`` en el encabezado :mailheader:`Content-Type` para la subparte " +"representada. Sin embargo, si la subparte no tiene encabezado :mailheader:" +"`Content-Type`, no tiene parámetro ``charset`` o no es del tipo MIME :" +"mimetype:`text` principal, entonces ese elemento en la lista retornada será " +"*failobj*." #: ../Doc/library/email.compat32-message.rst:645 msgid "" @@ -743,6 +1122,10 @@ msgid "" "possible values for this method are *inline*, *attachment* or ``None`` if " "the message follows :rfc:`2183`." msgstr "" +"Retorna el valor en minúsculas (sin parámetros) del encabezado del mensaje :" +"mailheader:`Content-Disposition` si tiene uno o ``None``. Los valores " +"posibles para este método son *inline*, *attachment* o ``None`` si el " +"mensaje sigue el :rfc:`2183`." #: ../Doc/library/email.compat32-message.rst:654 msgid "" @@ -751,12 +1134,19 @@ msgid "" "first traversal order. You will typically use :meth:`walk` as the iterator " "in a ``for`` loop; each iteration returns the next subpart." msgstr "" +"El método :meth:`walk` es un generador de todo propósito el cual puede ser " +"usado para iterar sobre todas las partes y subpartes de árbol de objeto de " +"mensaje, en orden de recorrido de profundidad primero. Siempre usarás " +"típicamente :meth:`walk` como iterador en un bucle ``for``; cada iteración " +"retorna la siguiente subparte." #: ../Doc/library/email.compat32-message.rst:659 msgid "" "Here's an example that prints the MIME type of every part of a multipart " "message structure:" msgstr "" +"Aquí hay un ejemplo que imprime el tipo MIME de cada parte de una estructura " +"de mensaje multiparte:" #: ../Doc/library/email.compat32-message.rst:685 msgid "" @@ -765,6 +1155,10 @@ msgid "" "may return ``False``. We can see this in our example by making use of the " "``_structure`` debug helper function:" msgstr "" +"``walk`` itera sobre las subpartes de cualquier parte donde :meth:" +"`is_multipart` retorna ``True``, aunque ``msg.get_content_maintype() == " +"'multipart'`` puede retornar ``False``. Vemos esto en nuestro ejemplo " +"haciendo uso de la función de ayuda de depuración ``_structure``:" #: ../Doc/library/email.compat32-message.rst:712 msgid "" @@ -772,6 +1166,9 @@ msgid "" "subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " "subparts." msgstr "" +"Aquí las partes de ``message``no son ``multiparts``, pero contienen " +"subpartes. ``is_multipart()`` retorna ``True`` y ``walk`` desciende a las " +"subpartes." #: ../Doc/library/email.compat32-message.rst:717 msgid "" @@ -779,6 +1176,9 @@ msgid "" "attributes, which can be used when generating the plain text of a MIME " "message." msgstr "" +"Los objetos :class:`Message` pueden contener opcionalmente dos atributos de " +"instancia, los cuales pueden ser usados al generar el texto plano de un " +"mensaje MIME." #: ../Doc/library/email.compat32-message.rst:723 msgid "" @@ -789,6 +1189,12 @@ msgid "" "message, or when viewing the message in a non-MIME aware reader, this text " "can become visible." msgstr "" +"El formato de un documento MIME permite algo de texto entre la línea en " +"blanco que sigue a los encabezados y la primera cadena límite multiparte. " +"Normalmente, este texto nunca es visible en un lector de correo compatible " +"con MIME porque queda fuera de la armadura MIME estándar. Sin embargo, " +"viendo el texto del mensaje en crudo o viendo el mensaje en un lector no " +"compatible con MIME, este texto puede volverse visible." #: ../Doc/library/email.compat32-message.rst:730 msgid "" @@ -801,12 +1207,23 @@ msgid "" "in the area between the headers and the first boundary. See :mod:`email." "parser` and :mod:`email.generator` for details." msgstr "" +"El atributo *preamble* contiene este texto de refuerzo adicional para " +"documentos MIME. Cuando el :class:`~email.parser.Parser` descubre algo de " +"texto después de los encabezados pero antes de la primera cadena límite, " +"asigna este texto al atributo *preamble* del mensaje. Cuando el :class:" +"`~email.generator.Generator` está escribiendo la representación de texto sin " +"formato de un mensaje MIME y puede encontrar el mensaje como un atributo " +"*preamble*, escribirá este texto en el área entre los encabezados y el " +"primer límite. Consulta :mod:`email.parser` y :mod:`email.generator` para " +"más detalles." #: ../Doc/library/email.compat32-message.rst:740 msgid "" "Note that if the message object has no preamble, the *preamble* attribute " "will be ``None``." msgstr "" +"Ten en cuenta que si el objeto de mensaje no tiene preámbulo, el atributo " +"*preamble* será ``None``." #: ../Doc/library/email.compat32-message.rst:746 msgid "" @@ -814,12 +1231,18 @@ msgid "" "except that it contains text that appears between the last boundary and the " "end of the message." msgstr "" +"El atributo *epilogue* actúa de la misma manera que el atributo *preamble*, " +"excepto que contiene texto que aparece entre el último límite y el fin del " +"mensaje." #: ../Doc/library/email.compat32-message.rst:750 msgid "" "You do not need to set the epilogue to the empty string in order for the :" "class:`~email.generator.Generator` to print a newline at the end of the file." msgstr "" +"No necesitas establecer el epílogo de la cadena vacía en orden para el :" +"class:`~email.generator.Generator` para imprimir una nueva línea al final " +"del archivo." #: ../Doc/library/email.compat32-message.rst:757 msgid "" @@ -827,3 +1250,6 @@ msgid "" "parsing this message. See :mod:`email.errors` for a detailed description of " "the possible parsing defects." msgstr "" +"El atributo *defects* contiene una lista de todos los problemas encontrados " +"al analizar este mensaje. Consulta :mod:`email.errors` para una descripción " +"detallada de los posibles defectos de análisis." diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po index 37f54bb43d..a7dec96601 100644 --- a/library/email.contentmanager.po +++ b/library/email.contentmanager.po @@ -1,33 +1,35 @@ # 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: 2020-12-12 11:22-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/email.contentmanager.rst:2 msgid ":mod:`email.contentmanager`: Managing MIME Content" -msgstr "" +msgstr ":mod:`email.contentmanager`: Gestión de contenido MIME" #: ../Doc/library/email.contentmanager.rst:10 msgid "**Source code:** :source:`Lib/email/contentmanager.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/email/contentmanager.py`" #: ../Doc/library/email.contentmanager.rst:14 msgid "[1]_" -msgstr "" +msgstr "[1]_" #: ../Doc/library/email.contentmanager.rst:19 msgid "" @@ -35,6 +37,10 @@ msgid "" "to register converters between MIME content and other representations, as " "well as the ``get_content`` and ``set_content`` dispatch methods." msgstr "" +"Clase base para gestores de contenido. Proporciona los mecanismos de " +"registro estándar para registrar convertidores entre contenido MIME y otras " +"representaciones, así como los métodos de envío ``get_content`` y " +"``set_content``." #: ../Doc/library/email.contentmanager.rst:26 msgid "" @@ -43,30 +49,39 @@ msgid "" "the call. The expectation is that the handler will extract the payload from " "*msg* and return an object that encodes information about the extracted data." msgstr "" +"Busca una función de controlador basada en el ``mimetype`` de *msg* (ver el " +"siguiente párrafo), la llama, le pasa todos los argumentos y retorna el " +"resultado de la llamada. La expectativa es que el controlador extraiga la " +"carga útil de *msg* y retorne un objeto que codifica información sobre los " +"datos extraídos." #: ../Doc/library/email.contentmanager.rst:32 msgid "" "To find the handler, look for the following keys in the registry, stopping " "with the first one found:" msgstr "" +"Para encontrar el controlador, busca las siguientes llaves en el registro, " +"deteniéndose con la primera que encuentre:" #: ../Doc/library/email.contentmanager.rst:35 msgid "the string representing the full MIME type (``maintype/subtype``)" -msgstr "" +msgstr "la cadena que representa el tipo MIME completo (``maintype/subtype``)" #: ../Doc/library/email.contentmanager.rst:36 msgid "the string representing the ``maintype``" -msgstr "" +msgstr "la cadena de caracteres que representa el ``maintype``" #: ../Doc/library/email.contentmanager.rst:37 msgid "the empty string" -msgstr "" +msgstr "la cadena de caracteres vacía" #: ../Doc/library/email.contentmanager.rst:39 msgid "" "If none of these keys produce a handler, raise a :exc:`KeyError` for the " "full MIME type." msgstr "" +"Si ninguna de estas llaves produce un controlador, se lanza una excepción :" +"exc:`KeyError` para el tipo MIME completo." #: ../Doc/library/email.contentmanager.rst:45 msgid "" @@ -78,6 +93,14 @@ msgid "" "making other changes to *msg* as well, such as adding various MIME headers " "to encode information needed to interpret the stored data." msgstr "" +"Si el ``maintype`` es ``multipart``, se lanza un :exc:`TypeError`; de lo " +"contrario, busca una función de controlador basada en el tipo de *obj* (ver " +"el siguiente párrafo), llama a :meth:`~email.message.EmailMessage." +"clear_content` en el *msg* y llama a la función de controlador, pasando " +"todos los argumentos. La expectativa es que el controlador transforme y " +"almacene *obj* en *msg*, posiblemente realizando otros cambios a *msg* " +"también, como agregar varios encabezados MIME para codificar la información " +"necesaria para interpretar los datos almacenados." #: ../Doc/library/email.contentmanager.rst:54 msgid "" @@ -85,24 +108,29 @@ msgid "" "look for the following keys in the registry, stopping with the first one " "found:" msgstr "" +"Para encontrar el controlador, obtiene el tipo de *obj* (``typ = " +"type(obj)``), y busca las siguientes llaves en el registro, deteniéndose con " +"la primera encontrada:" #: ../Doc/library/email.contentmanager.rst:58 msgid "the type itself (``typ``)" -msgstr "" +msgstr "el tipo en sí (``typ``)" #: ../Doc/library/email.contentmanager.rst:59 msgid "" "the type's fully qualified name (``typ.__module__ + '.' + typ." "__qualname__``)." msgstr "" +"el nombre completo de calificación del tipo (``typ.__module__ + '.' + typ." +"__qualname__``)." #: ../Doc/library/email.contentmanager.rst:61 msgid "the type's qualname (``typ.__qualname__``)" -msgstr "" +msgstr "el nombre de calificación del tipo (``typ.__qualname__``)" #: ../Doc/library/email.contentmanager.rst:62 msgid "the type's name (``typ.__name__``)." -msgstr "" +msgstr "el nombre del tipo (``typ.__name__``)." #: ../Doc/library/email.contentmanager.rst:64 msgid "" @@ -112,18 +140,27 @@ msgid "" "for ``None``, raise a :exc:`KeyError` for the fully qualified name of the " "type." msgstr "" +"Si ninguno de los anteriores coincide, repite todas las comprobaciones " +"anteriores para cada uno de los tipos en el :term:`MRO` (``typ.__mro__``). " +"Finalmente, si ninguna otra llave produce un controlador, busca un " +"controlador para la llave ``None``. Si no hay un controlador para ``None``, " +"lanza un :exc:`KeyError` para el nombre completo de calificación del tipo." #: ../Doc/library/email.contentmanager.rst:70 msgid "" "Also add a :mailheader:`MIME-Version` header if one is not present (see " "also :class:`.MIMEPart`)." msgstr "" +"También agrega un encabezado :mailheader:`MIME-Version` si no hay uno " +"presente (vea también :class:`.MIMEPart`)." #: ../Doc/library/email.contentmanager.rst:76 msgid "" "Record the function *handler* as the handler for *key*. For the possible " "values of *key*, see :meth:`get_content`." msgstr "" +"Registra el *handler* de funciones como el manejador de *key*. Para los " +"posibles valores de *key*, consulte :meth:`get_content`." #: ../Doc/library/email.contentmanager.rst:82 msgid "" @@ -131,10 +168,13 @@ msgid "" "*typekey* is passed to :meth:`set_content`. For the possible values of " "*typekey*, see :meth:`set_content`." msgstr "" +"Registra el *handler* como la función a llamar cuando un objeto de un tipo " +"coincidente *typekey* se pasa a :meth:`set_content`. Para los posibles " +"valores de *typekey*, consulte :meth:`set_content`." #: ../Doc/library/email.contentmanager.rst:88 msgid "Content Manager Instances" -msgstr "" +msgstr "Instancias gestoras de contenido" #: ../Doc/library/email.contentmanager.rst:90 msgid "" @@ -143,6 +183,11 @@ msgid "" "`raw_data_manager` is the :attr:`~email.policy.EmailPolicy.content_manager` " "provided by :attr:`~email.policy.EmailPolicy` and its derivatives." msgstr "" +"Actualmente, el paquete de correo electrónico solo proporciona un " +"administrador de contenido concreto, :data:`raw_data_manager`, aunque en el " +"futuro se pueden agregar más. :data:`raw_data_manager` es el :attr:`~email." +"policy.EmailPolicy.content_manager` proporcionado por :attr:`~email.policy." +"EmailPolicy` y sus derivados." #: ../Doc/library/email.contentmanager.rst:99 msgid "" @@ -156,6 +201,16 @@ msgid "" "encoding, and it enables the use of the various ``add_`` methods, thereby " "simplifying the creation of multipart messages." msgstr "" +"Este administrador de contenido proporciona sólo una interfaz mínima más " +"allá de la proporcionada por :class:`~email.message.Message` en sí: trata " +"solo con texto, cadenas de bytes sin procesar, y objetos :class:`~email." +"message.Message`. Sin embargo, proporciona ventajas significativas en " +"comparación con la API base: ``get_content`` en una parte de texto retornará " +"una cadena de caracteres unicode sin que la aplicación tenga que " +"decodificarla manualmente, ``set_content`` proporciona un amplio conjunto de " +"opciones para controlar los encabezados añadidos a una parte y controlar la " +"codificación de transferencia de contenido, y permite el uso de los diversos " +"métodos ``add_``, simplificando así la creación de mensajes multiparte." #: ../Doc/library/email.contentmanager.rst:111 msgid "" @@ -166,27 +221,40 @@ msgid "" "*errors* is specified, use it as the error handler when decoding the payload " "to unicode. The default error handler is ``replace``." msgstr "" +"Retorna la carga útil de la parte como una cadena de caracteres (para partes " +"de ``text``), un objeto :class:`~email.message.EmailMessage` (para partes de " +"``message/rfc822``), o un objeto de ``bytes`` (para todos los demás tipos " +"que no son multiparte). Lanza un :exc:`KeyError` si se llama en un " +"``multipart``. Si la parte es una parte de ``text`` y se especifica " +"*errors*, se usa como el controlador de errores al decodificar la carga útil " +"a unicode. El controlador de errores predeterminado es ``replace``." #: ../Doc/library/email.contentmanager.rst:130 msgid "Add headers and payload to *msg*:" -msgstr "" +msgstr "Añade cabeceras y carga útil al *msg*:" #: ../Doc/library/email.contentmanager.rst:132 msgid "" "Add a :mailheader:`Content-Type` header with a ``maintype/subtype`` value." msgstr "" +"Añade un encabezado :mailheader:`Content-Type` con un valor ``maintype/" +"subtype``." #: ../Doc/library/email.contentmanager.rst:135 msgid "" "For ``str``, set the MIME ``maintype`` to ``text``, and set the subtype to " "*subtype* if it is specified, or ``plain`` if it is not." msgstr "" +"Para ``str``, establece el ``maintype`` de MIME en ``text``, y establece el " +"subtipo en *subtype* si se especifica, o ``plain`` si no está presente." #: ../Doc/library/email.contentmanager.rst:137 msgid "" "For ``bytes``, use the specified *maintype* and *subtype*, or raise a :exc:" "`TypeError` if they are not specified." msgstr "" +"Para ``bytes``, usa el *maintype* y *subtype* especificados, o lanza un :exc:" +"`TypeError` si no se especifican." #: ../Doc/library/email.contentmanager.rst:139 msgid "" @@ -195,6 +263,11 @@ msgid "" "``rfc822`` if it is not. If *subtype* is ``partial``, raise an error " "(``bytes`` objects must be used to construct ``message/partial`` parts)." msgstr "" +"Para objetos :class:`~email.message.EmailMessage`, establece el *maintype* " +"en ``message``, y establece el *subtype* en *subtype* si se especifica o " +"``rfc822`` si no se especifica. Si *subtype* es ``partial``, se lanza un " +"error (los objetos de ``bytes`` deben usarse para construir partes ``message/" +"partial``)." #: ../Doc/library/email.contentmanager.rst:145 msgid "" @@ -203,6 +276,11 @@ msgid "" "``utf-8``. If the specified *charset* is a known alias for a standard MIME " "charset name, use the standard charset instead." msgstr "" +"Si se proporciona *charset* (lo cual solo es válido para ``str``), codifica " +"la cadena de caracteres en bytes utilizando el conjunto de caracteres " +"especificado. El valor por defecto es ``utf-8``. Si el *charset* " +"especificado es un alias conocido del nombre de un conjunto de caracteres " +"del estándar MIME, utiliza el conjunto de caracteres estándar en su lugar." #: ../Doc/library/email.contentmanager.rst:150 msgid "" @@ -213,12 +291,21 @@ msgid "" "specified encoding (for example, specifying a *cte* of ``7bit`` for an input " "that contains non-ASCII values), raise a :exc:`ValueError`." msgstr "" +"Si se establece *cte*, codifica la carga útil mediante la codificación de " +"transferencia de contenido especificada y establece el encabezado :" +"mailheader:`Content-Transfer-Encoding` en ese valor. Los valores posibles " +"para *cte* son ``quoted-printable``, ``base64``, ``7bit``, ``8bit``, y " +"``binary``. Si la entrada no se puede codificar en la codificación " +"especificada (por ejemplo, especificando un *cte* de ``7bit`` para una " +"entrada que contiene valores no ASCII), se lanza un :exc:`ValueError`." #: ../Doc/library/email.contentmanager.rst:158 msgid "" "For ``str`` objects, if *cte* is not set use heuristics to determine the " "most compact encoding." msgstr "" +"Para objetos ``str``, si *cte* no está configurado, se usa la heurística " +"para determinar la codificación más compacta." #: ../Doc/library/email.contentmanager.rst:160 msgid "" @@ -228,6 +315,12 @@ msgid "" "body``. For ``message/rfc822``, use ``8bit`` if *cte* is not specified. " "For all other values of *subtype*, use ``7bit``." msgstr "" +"Para :class:`~email.message.EmailMessage`, según :rfc:`2046`, se lanza un " +"error si se solicita un *cte* de ``quoted-printable`` o ``base64`` para el " +"*subtype* ``rfc822``, y para cualquier *cte* que no sea ``7bit`` para el " +"*subtype* ``external-body``. Para ``message/rfc822``, se usa ``8bit`` si no " +"se especifica *cte*. Para todos los demás valores de *subtype*, se usa " +"``7bit``." #: ../Doc/library/email.contentmanager.rst:167 msgid "" @@ -235,6 +328,9 @@ msgid "" "``EmailMessage`` object as modified by ``set_content`` is correct, but :" "class:`~email.generator.BytesGenerator` does not serialize it correctly." msgstr "" +"Un *cte* de ``binary`` todavía no funciona correctamente. El objeto " +"``EmailMessage`` modificado por ``set_content`` es correcto, pero :class:" +"`~email.generator.BytesGenerator` no lo serializa correctamente." #: ../Doc/library/email.contentmanager.rst:172 msgid "" @@ -244,18 +340,28 @@ msgid "" "*filename* is also not specified, do not add the header. The only valid " "values for *disposition* are ``attachment`` and ``inline``." msgstr "" +"Si se establece *disposición*, se usa como valor del encabezado :mailheader:" +"`Content-Disposition`. Si no se especifica y se especifica *filename*, " +"agrega el encabezado con el valor ``attachment``. Si no se especifica " +"*disposition* y tampoco se especifica *filename*, no agrega el encabezado. " +"Los únicos valores válidos para *disposition* son ``attachment`` e " +"``inline``." #: ../Doc/library/email.contentmanager.rst:179 msgid "" "If *filename* is specified, use it as the value of the ``filename`` " "parameter of the :mailheader:`Content-Disposition` header." msgstr "" +"Si se especifica el *filename*, se usa como el valor del parámetro " +"``filename`` del encabezado :mailheader:`Content-Disposition`." #: ../Doc/library/email.contentmanager.rst:182 msgid "" "If *cid* is specified, add a :mailheader:`Content-ID` header with *cid* as " "its value." msgstr "" +"Si se especifica *cid*, agrega un encabezado :mailheader:`Content-ID` con " +"valor *cid*." #: ../Doc/library/email.contentmanager.rst:185 msgid "" @@ -263,6 +369,9 @@ msgid "" "``(key, value)`` pairs to set additional parameters on the :mailheader:" "`Content-Type` header." msgstr "" +"Si se especifica *params*, itera su método ``items`` y use los pares " +"resultantes ``(key, value)`` para establecer parámetros adicionales en el " +"encabezado :mailheader:`Content-Type`." #: ../Doc/library/email.contentmanager.rst:189 msgid "" @@ -270,12 +379,18 @@ msgid "" "headervalue`` or a list of ``header`` objects (distinguished from strings by " "having a ``name`` attribute), add the headers to *msg*." msgstr "" +"Si se especifica *headers* y es una lista de cadenas de caracteres de la " +"forma ``headername: headervalue`` o una lista de objetos ``header`` (que se " +"distinguen de las cadenas de caracteres por tener un atributo ``name``), " +"agrega los encabezados a *msg*." #: ../Doc/library/email.contentmanager.rst:196 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie de página" #: ../Doc/library/email.contentmanager.rst:197 msgid "" "Originally added in 3.4 as a :term:`provisional module `" msgstr "" +"Originalmente añadido en la versión 3.4 como un :term:`módulo provisional " +"`" diff --git a/library/email.encoders.po b/library/email.encoders.po index 42f02d4bca..855f10ba83 100644 --- a/library/email.encoders.po +++ b/library/email.encoders.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: 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: 2020-11-17 20:38+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" +"X-Generator: Poedit 2.4.2\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" #: ../Doc/library/email.encoders.rst:2 msgid ":mod:`email.encoders`: Encoders" -msgstr "" +msgstr ":mod:`email.encoders`: Codificadores" #: ../Doc/library/email.encoders.rst:7 msgid "**Source code:** :source:`Lib/email/encoders.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/email/encoders.py`" #: ../Doc/library/email.encoders.rst:11 msgid "" @@ -34,6 +36,9 @@ msgid "" "the functionality is provided by the *cte* parameter of the :meth:`~email." "message.EmailMessage.set_content` method." msgstr "" +"Este módulo forma parte de la anterior API de correo electrónico " +"(``Compat32``). En la nueva API, la funcionalidad la proporciona el " +"parámetro *cte* del método :meth:`~email.message.EmailMessage.set_content`." #: ../Doc/library/email.encoders.rst:15 msgid "" @@ -42,12 +47,19 @@ msgid "" "sets the content type and CTE header using the *_subtype* and *_charset* " "values passed during the instaniation 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." #: ../Doc/library/email.encoders.rst:20 msgid "" "The remaining text in this section is the original documentation of the " "module." msgstr "" +"El texto que viene a continuación corresponde a la documentación original " +"del módulo." #: ../Doc/library/email.encoders.rst:22 msgid "" @@ -56,6 +68,11 @@ msgid "" "servers. This is especially true for :mimetype:`image/\\*` and :mimetype:" "`text/\\*` type messages containing binary data." msgstr "" +"Cuando se crean objetos :class:`~email.message.Message` desde 0, a menudo se " +"necesita codificar el contenido del mensaje para transportarlo a través de " +"servidores de correo electrónico adecuados. Esto es así especialmente para " +"el tipo de mensajes :mimetype:`image/\\*` y :mimetype:`text/\\*` que " +"contienen datos binarios." #: ../Doc/library/email.encoders.rst:27 msgid "" @@ -68,6 +85,15 @@ msgid "" "They should also set the :mailheader:`Content-Transfer-Encoding` header as " "appropriate." msgstr "" +"El paquete :mod:`email` proporciona algunos codificadores adecuados en su " +"módulo :mod:`encoders`. Estos codificadores son en realidad utilizados por " +"los constructores de las clases :class:`~email.mime.audio.MIMEAudio` y :" +"class:`~email.mime.image.MIMEImage` para proporcionar codificadores por " +"defecto. Todas las funciones de codificación tienen exactamente un " +"argumento, el mensaje a codificar Normalmente extraen el contenido, lo " +"codifican y borran el contenido para introducir el nuevo contenido " +"codificado. También deberían marcar el encabezado :mailheader:`Content-" +"Transfer-Encoding` como apropiado." #: ../Doc/library/email.encoders.rst:35 msgid "" @@ -75,10 +101,15 @@ msgid "" "must be applied to individual subparts instead, and will raise a :exc:" "`TypeError` if passed a message whose type is multipart." msgstr "" +"Ten en cuenta que estas funciones no sirven para un mensaje con múltiples " +"partes. En lugar de aplicarlo al mensaje completo, las funciones deben " +"aplicarse a cada subparte individual. Si se pasa un mensaje de múltiples " +"partes como argumento se activara un mensaje de error :exc:`TypeError`." #: ../Doc/library/email.encoders.rst:39 msgid "Here are the encoding functions provided:" msgstr "" +"A continuación, una lista de las funciones de codificación facilitadas:" #: ../Doc/library/email.encoders.rst:44 msgid "" @@ -87,6 +118,11 @@ msgid "" "good encoding to use when most of your payload is normal printable data, but " "contains a few unprintable characters." msgstr "" +"Codifica el contenido en formularios entrecomillados e imprimibles y marca " +"el encabezado :mailheader:`Content-Transfer-Encoding` como ``quoted-" +"printable`` [#]_. Es un buen codificador para usar cuando la mayoría del " +"contenido son datos imprimibles normales pero hay algún dato que no es " +"imprimible." #: ../Doc/library/email.encoders.rst:52 msgid "" @@ -96,6 +132,11 @@ msgid "" "form than quoted-printable. The drawback of base64 encoding is that it " "renders the text non-human readable." msgstr "" +"Codifica el contenido en un formulario base64 y marca el encabezado :" +"mailheader:`Content-Transfer-Encoding` como ``base64``. Esta codificación es " +"buena cuando la mayoría del contenido son datos no imprimibles ya que es un " +"formulario más compacto que formularios entrecomillados e imprimibles. La " +"desventaja es que incluye el texto que no es leíble por los humanos." #: ../Doc/library/email.encoders.rst:61 msgid "" @@ -103,19 +144,26 @@ msgid "" "mailheader:`Content-Transfer-Encoding` header to either ``7bit`` or ``8bit`` " "as appropriate, based on the payload data." msgstr "" +"Esto, en realidad, no modifica el contenido del mensaje, pero fija el " +"encabezado :mailheader:`Content-Transfer-Encoding` a ``7bit`` u ``8bit``, lo " +"que considere más adecuado en función del contenido del mensaje." #: ../Doc/library/email.encoders.rst:68 msgid "" "This does nothing; it doesn't even set the :mailheader:`Content-Transfer-" "Encoding` header." msgstr "" +"Esto no hace nada; ni siquiera fija el encabezado :mailheader:`Content-" +"Transfer-Encoding`." #: ../Doc/library/email.encoders.rst:72 msgid "Footnotes" -msgstr "" +msgstr "Notas" #: ../Doc/library/email.encoders.rst:73 msgid "" "Note that encoding with :meth:`encode_quopri` also encodes all tabs and " "space characters in the data." msgstr "" +"El codificado con :meth:`encode_quopri` también codifica todas las " +"tabulaciones y caracteres de espacios en los datos." diff --git a/library/email.generator.po b/library/email.generator.po index 181d2b07de..8df003a22e 100644 --- a/library/email.generator.po +++ b/library/email.generator.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: 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: 2020-10-10 22:33-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" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es_AR\n" #: ../Doc/library/email.generator.rst:2 msgid ":mod:`email.generator`: Generating MIME documents" -msgstr "" +msgstr ":mod:`email.generator`: Generando documentos MIME" #: ../Doc/library/email.generator.rst:7 msgid "**Source code:** :source:`Lib/email/generator.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/email/generator.py`" #: ../Doc/library/email.generator.rst:11 msgid "" @@ -37,6 +39,12 @@ msgid "" "console. Taking a message object structure and producing a serialized " "representation is the job of the generator classes." msgstr "" +"Una de las tareas más comunes es generar la versión plana (serializada) del " +"mensaje de correo electrónico representado por una estructura de objeto de " +"mensaje. Se tendrá que hacer esto si se desea enviar un mensaje a través " +"de :meth:`smtplib.SMTP.sendmail`, o el módulo :mod:`nntplib`, o imprimir el " +"mensaje en la consola. Tomar una estructura de objeto de mensaje y producir " +"una representación serializada es el trabajo de las clases generadoras." #: ../Doc/library/email.generator.rst:18 msgid "" @@ -54,6 +62,21 @@ msgid "" "changes to the :class:`~email.message.EmailMessage` object as defaults are " "filled in.)" msgstr "" +"Al igual que con el módulo :mod:`email.parser`, no se limita a la " +"funcionalidad del generador incluido; se podría escribir uno desde cero. Sin " +"embargo, el generador incluido sabe cómo generar la mayoría del correo " +"electrónico de una manera compatible con los estándares, debería controlar " +"los mensajes de correo electrónico MIME y no MIME bien. Está diseñado para " +"que las operaciones de análisis y generación orientadas a bytes sean " +"inversas, asumiendo que se utilice la misma :mod:`~email.policy` de no " +"transformación para ambos. Es decir, analizar la secuencia de bytes " +"serializada a través de la clase :class:`~email.parser.BytesParser` y, a " +"continuación, regenerar la secuencia de bytes serializada mediante :class:" +"`BytesGenerator` debe producir una salida idéntica a la entrada [#]_. (Por " +"otro lado, el uso del generador en un :class:`~email.message.EmailMessage` " +"construido por el programa puede dar lugar a cambios en el objeto :class:" +"`~email.message.EmailMessage` a medida que se rellenan los valores " +"predeterminados.)" #: ../Doc/library/email.generator.rst:32 msgid "" @@ -64,6 +87,14 @@ msgid "" "Content Transfer Encoding techniques for encoding email messages for " "transport over channels that are not \"8 bit clean\"." msgstr "" +"La clase :class:`Generator` se puede utilizar para acoplar un mensaje en una " +"representación serializada de texto (a diferencia de la binaria). Sin " +"embargo, como Unicode no puede representar datos binarios directamente, el " +"mensaje es necesariamente transformado en algo que contiene sólo caracteres " +"ASCII. Se utiliza las técnicas de codificación de transferencia de contenido " +"RFC de correo electrónico estándar para codificar mensajes de correo " +"electrónico para el transporte a través de canales que no son \"8 bits " +"limpios\"." #: ../Doc/library/email.generator.rst:39 msgid "" @@ -71,6 +102,9 @@ msgid "" "`Generator` disables header folding for message parts of type ``multipart/" "signed`` and all subparts." msgstr "" +"Para adaptar procesamiento reproducible de mensajes firmados por SMIME, :" +"class:`Generator` deshabilita el encabezamiento para las partes del mensaje " +"de tipo ``multipart/signed`` y todas sus subpartes." #: ../Doc/library/email.generator.rst:47 msgid "" @@ -79,6 +113,10 @@ msgid "" "to the :meth:`write` method, to the :term:`file-like object` *outfp*. " "*outfp* must support a ``write`` method that accepts binary data." msgstr "" +"Retorna un objeto :class:`BytesGenerator` que escribirá cualquier mensaje " +"provisto por el método :meth:`flatten`, o cualquier texto de escape " +"sustituto cifrado con el método :meth:`write`, al :term:`file-like object` " +"*outfp*. *outfp* debe soportar un método``write`` que acepte datos binarios." #: ../Doc/library/email.generator.rst:52 ../Doc/library/email.generator.rst:153 msgid "" @@ -92,7 +130,17 @@ msgid "" "`WHY THE CONTENT-LENGTH FORMAT IS BAD `_)." msgstr "" - +"Si *mangle_from_* opcional es ``True``, se coloca un carácter ''>'' delante " +"de cualquier línea del cuerpo que comience con la cadena exacta ''\"From " +"\"'', es decir, ''From'' seguido de un espacio al principio de una línea. " +"*mangle_from_* vuelve de forma predeterminada al valor de la configuración :" +"attr:`~email.policy.Policy.mangle_from_` de la *norma* (que es ''True'' para " +"la norma :data:`~email.policy.compat32` y ''False'' para todas las demás). " +"*mangle_from_* está diseñado para su uso cuando los mensajes se almacenan en " +"formato unix mbox (consulte :mod:`mailbox` y `WHY THE CONTENT-LENGTH FORMAT " +"IS BAD `_)." + +# Aqui la palabra manheaderlen no se si es un error de la documentación en inglés... #: ../Doc/library/email.generator.rst:62 ../Doc/library/email.generator.rst:163 msgid "" "If *maxheaderlen* is not ``None``, refold any header lines that are longer " @@ -100,6 +148,10 @@ msgid "" "*manheaderlen* is ``None`` (the default), wrap headers and other message " "lines according to the *policy* settings." msgstr "" +"Si *maxheaderlen* no es ``None``, se repliega las líneas de encabezado que " +"son mayores que *maxheaderlen*, o si es ``0``, no se reenvuelve ningún " +"encabezado. Si *manheaderlen* es ``None`` (predeterminado), se envuelven los " +"encabezados y otras líneas de mensajes de acuerdo a los ajustes de *policy*." #: ../Doc/library/email.generator.rst:67 ../Doc/library/email.generator.rst:168 msgid "" @@ -109,16 +161,24 @@ msgid "" "object passed to ``flatten`` to control the message generation. See :mod:" "`email.policy` for details on what *policy* controls." msgstr "" +"Si la *norma* es especificada, se usa esa norma para controlar la generación " +"de mensajes. Si la *norma* es ``None`` (predeterminado), se usa la norma " +"asociada con el :class:`~email.message.Message` o el objeto :class:`~email." +"message.EmailMessage` pasado para ``flatten`` para controlar la generación " +"del mensaje. Se puede ver :mod:`email.policy` para detalles de que controla " +"la *norma*." #: ../Doc/library/email.generator.rst:75 ../Doc/library/email.generator.rst:174 msgid "Added the *policy* keyword." -msgstr "" +msgstr "Agregada la palabra clave *norma*." #: ../Doc/library/email.generator.rst:77 ../Doc/library/email.generator.rst:176 msgid "" "The default behavior of the *mangle_from_* and *maxheaderlen* parameters is " "to follow the policy." msgstr "" +"El comportamiento predeterminado de los parámetros *mangle_from_* y " +"*maxheaderlen* es para seguir la norma." #: ../Doc/library/email.generator.rst:83 msgid "" @@ -126,6 +186,9 @@ msgid "" "*msg* to the output file specified when the :class:`BytesGenerator` instance " "was created." msgstr "" +"Imprime la representación textual de la estructura del objeto de mensaje " +"originada en *msg* al archivo de salida especificado cuando se creó la " +"instancia :class:`BytesGenerator`." #: ../Doc/library/email.generator.rst:87 msgid "" @@ -142,6 +205,20 @@ msgid "" "bytes in headers using the MIME ``unknown-8bit`` character set, thus " "rendering them RFC-compliant." msgstr "" +"Si el tipo :attr:`~email.policy.Policy.cte_type` de la opción :mod:`~email." +"policy` :attr:''email.policy.Policy.cte_type' es ''8bit'' (valor " +"predeterminado), se copia los encabezados en el mensaje analizado original " +"que no se hayan modificado con ningún bytes a la salida con el conjunto de " +"bits altos, reproducido como en el original, y se conserva el :mailheader:" +"`Content-Transfer-Encoding` no ASCII de cualquier parte del cuerpo que los " +"tenga. Si ``cte_type`` es ``7bit``, se convierte los bytes con el conjunto " +"de bits altos según sea necesario utilizando un :mailheader:`Content-" +"Transfer-Encoding` compatible con ASCII . Es decir, se transforma partes " +"con :mailheader:`Content-Transfer-Encoding` no ASCII (:mailheader:`Content-" +"Transfer-Encoding: 8bit`) en un conjunto de caracteres compatible con ASCII :" +"mailheader:`Content-Transfer-Encoding`, y se codifica bytes inválidos RFC no " +"ASCII en encabezados mediante el conjunto de caracteres MIME " +"``unknown-8bit``, lo que los convierte en compatibles con RFC." #: ../Doc/library/email.generator.rst:104 #: ../Doc/library/email.generator.rst:197 @@ -152,6 +229,12 @@ msgid "" "header, craft a standard one. The default is ``False``. Note that for " "subparts, no envelope header is ever printed." msgstr "" +"Si *unixfrom* es ``True``, se imprime el delimitador de encabezado de sobre " +"utilizado por el formato de buzón de correo Unix (consulta :mod:`mailbox`) " +"antes del primero de los encabezados :rfc:`5322` del objeto de mensaje raíz. " +"Si el objeto raíz no tiene encabezado de sobre, se crea uno estándar. El " +"valor predeterminado es ``False``. Tener en cuenta que para las subpartes, " +"nunca se imprime ningún encabezado de sobre." #: ../Doc/library/email.generator.rst:110 #: ../Doc/library/email.generator.rst:203 @@ -160,12 +243,17 @@ msgid "" "the lines of the flattened message. If *linesep* is ``None`` (the default), " "use the value specified in the *policy*." msgstr "" +"Si *linesep* no es ``None``, se usa como caracter separador entre todas las " +"líneas del mensaje acoplado. Si *linesep* es ``None`` (predeterminado), se " +"usa el valor especificado en la *norma*." #: ../Doc/library/email.generator.rst:119 msgid "" "Return an independent clone of this :class:`BytesGenerator` instance with " "the exact same option settings, and *fp* as the new *outfp*." msgstr "" +"Retorna un clon independiente de esta instancia de :class:`BytesGenerator` " +"con las mismas configuraciones exactas, y *fp* como el nuevo *outfp*." #: ../Doc/library/email.generator.rst:125 msgid "" @@ -173,6 +261,9 @@ msgid "" "handler, and pass it to the *write* method of the *outfp* passed to the :" "class:`BytesGenerator`'s constructor." msgstr "" +"Codifica *s* usando el códec ``ASCII`` u el manipulador de error ``escape " +"sustituto``, y lo pasa al método *write* del *outfp* pasado al constructor " +"de la clase :class:`BytesGenerator`." #: ../Doc/library/email.generator.rst:130 msgid "" @@ -182,6 +273,11 @@ msgid "" "of a serialized binary representation of a message object. For more detail, " "see :mod:`email.message`." msgstr "" +"Como conveniencia, :class:`~email.message.EmailMessage` provee los métodos :" +"meth:`~email.message.EmailMessage.as_bytes` y ``bytes(aMessage)`` (también " +"conocido como :meth:`~email.message.EmailMessage.__bytes__`) que simplifican " +"la generación de la representación serializada binaria de un objeto mensaje. " +"Para más detalle, ver :mod:`email.message`." #: ../Doc/library/email.generator.rst:137 msgid "" @@ -193,6 +289,14 @@ msgid "" "not \"8 bit clean\". In other words, most applications will want to be " "using :class:`BytesGenerator`, and not :class:`Generator`." msgstr "" +"Dado que las cadenas de caracteres no pueden representar datos binarios, la " +"clase :class:`Generator` debe convertir los datos binarios en cualquier " +"mensaje que aplane a un formato compatible con ASCII, convirtiéndolos en un :" +"mailheader:`Content-Transfer_Encoding` compatible con ASCII. Usando la " +"terminología de RFC de correo electrónico, se puede pensar en esto como :" +"class:`Generator` serializando a una secuencia de E/S que no es *\"8 bit " +"clean\"*. En otras palabras, la mayoría de las aplicaciones querrán usar :" +"class:`BytesGenerator`, y no :class:`Generator`." #: ../Doc/library/email.generator.rst:148 msgid "" @@ -201,6 +305,10 @@ msgid "" "method, to the :term:`file-like object` *outfp*. *outfp* must support a " "``write`` method that accepts string data." msgstr "" +"Retorna un objeto :class:`Generator` que escribirá cualquier mensaje " +"provisto al método :meth:`flatten`, o cualquier texto provisto al método :" +"meth:`write`, al :term:`file-like object` *outfp*. *outfp* debe soportar un " +"método ``write`` que acepte datos de cadena de caracteres." #: ../Doc/library/email.generator.rst:182 msgid "" @@ -208,7 +316,11 @@ msgid "" "*msg* to the output file specified when the :class:`Generator` instance was " "created." msgstr "" +"Imprime la representación textual de la estructura del objeto de mensaje " +"originado en el *msg* al archivo especificado de salida cuando la instancia " +"de :class:`Generator` fue creada." +# Aqui creo que hay un error en el texto original ".)" creo que deberia ser ). #: ../Doc/library/email.generator.rst:186 msgid "" "If the :mod:`~email.policy` option :attr:`~email.policy.Policy.cte_type` is " @@ -221,18 +333,33 @@ msgid "" "Encoding`, and encode RFC-invalid non-ASCII bytes in headers using the MIME " "``unknown-8bit`` character set, thus rendering them RFC-compliant." msgstr "" +"Si la opción :mod:`~email.policy` :attr:`~email.policy.Policy.cte_type` es " +"``8bit``, se genera el mensaje como si la opción estuviera establecida en " +"``7bit``. (Esto es necesario porque las cadenas de caracteres no pueden " +"representar bytes que no sean ASCII). Convierte cualesquiera bytes con el " +"conjunto de bits alto según sea necesario utilizando un :mailheader:`Content-" +"Transfer-Encoding` compatible con ASCII. Es decir, transforma partes con :" +"mailheader:`Content-Transfer-Encoding` (:mailheader:`Content-Transfer-" +"Encoding: 8bit`) no ASCII en un conjunto de caracteres :mailheader:`Content-" +"Transfer-Encoding` compatible con ASCII. Y codifica bytes no ASCII RFC " +"inválidos ASCII en encabezados mediante el conjunto de caracteres MIME " +"``unknown-8bit``, lo que los convierte en compatibles con RFC." #: ../Doc/library/email.generator.rst:209 msgid "" "Added support for re-encoding ``8bit`` message bodies, and the *linesep* " "argument." msgstr "" +"Agrega soporte para el recodificado de cuerpos de mensajes ``8bit``, y el " +"argumento *linesep*." #: ../Doc/library/email.generator.rst:216 msgid "" "Return an independent clone of this :class:`Generator` instance with the " "exact same options, and *fp* as the new *outfp*." msgstr "" +"Retorna un clon independiente de esta instancia de :class:`Generator` con " +"las mismas opciones exactas y *fp* como la nueva *outfp*." #: ../Doc/library/email.generator.rst:222 msgid "" @@ -240,6 +367,9 @@ msgid "" "`Generator`'s constructor. This provides just enough file-like API for :" "class:`Generator` instances to be used in the :func:`print` function." msgstr "" +"Escribe *s* al método *write* del *outfp* pasado al constructor de la :class:" +"`Generator`. Esto provee justo la suficiente API de tipo archivo para " +"instancias de :class:`Generator` para ser usadas en la función :func:`print`." #: ../Doc/library/email.generator.rst:228 msgid "" @@ -249,6 +379,11 @@ msgid "" "of a formatted string representation of a message object. For more detail, " "see :mod:`email.message`." msgstr "" +"Para conveniencia, :class:`~email.message.EmailMessage` provee los " +"métodos :meth:`~email.message.EmailMessage.as_string` y ``str(aMessage)`` " +"(también conocido como :meth:`~email.message.EmailMessage.__str__`), que " +"simplifican la generación de una representación de una cadena de caracteres " +"formateada de un objeto mensaje. Para más detalles, ver :mod:`email.message`." #: ../Doc/library/email.generator.rst:235 msgid "" @@ -258,6 +393,11 @@ msgid "" "represented in the output stream by a string derived from a template filled " "in with information about the part." msgstr "" +"El módulo :mod:`email.generator` también provee una clase derivada, :class:" +"`DecodedGenerator`, la cual es como la clase base :class:`Generator`, " +"excepto que las partes no \\ :mimetype:`text` no están serializadas, sino " +"que en su lugar, están representadas en el flujo de salida por una cadena de " +"caracteres derivada de una plantilla llenada con información sobre la parte." #: ../Doc/library/email.generator.rst:244 msgid "" @@ -268,59 +408,74 @@ msgid "" "*fmt* using information from the part and print the resulting filled-in " "string." msgstr "" +"Se actúa como :class:`Generator`, excepto para cualquier subparte del " +"mensaje pasado a :meth:`Generator.flatten`, si la subparte es de tipo " +"principal :mimetype:`text`, se imprime la carga útil decodificada de la " +"subparte, y si el tipo principal no es :mimetype:`text`, en lugar de " +"imprimirlo se rellena la cadena de caracteres *fmt* utilizando la " +"información de la parte y se imprime la cadena de caracteres rellenada " +"resultante." #: ../Doc/library/email.generator.rst:251 msgid "" "To fill in *fmt*, execute ``fmt % part_info``, where ``part_info`` is a " "dictionary composed of the following keys and values:" msgstr "" +"Para llenar *fmt*, se ejecuta ``fmt % part_info``, donde ``part_info`` es un " +"diccionario compuesto por las siguientes claves y valores:" #: ../Doc/library/email.generator.rst:254 msgid "``type`` -- Full MIME type of the non-\\ :mimetype:`text` part" -msgstr "" +msgstr "``type`` -- Todo el tipo MIME de la parte no\\ :mimetype:`text`" #: ../Doc/library/email.generator.rst:256 msgid "``maintype`` -- Main MIME type of the non-\\ :mimetype:`text` part" -msgstr "" +msgstr "``maintype`` -- Principal tipo MIME de la parte no\\ :mimetype:`text`" #: ../Doc/library/email.generator.rst:258 msgid "``subtype`` -- Sub-MIME type of the non-\\ :mimetype:`text` part" -msgstr "" +msgstr "``subtype`` -- Tipo sub-MIME de la parte no-\\ :mimetype:`text`" #: ../Doc/library/email.generator.rst:260 msgid "``filename`` -- Filename of the non-\\ :mimetype:`text` part" -msgstr "" +msgstr "``filename`` -- Nombre de archivo de la parte no\\ :mimetype:`text`" #: ../Doc/library/email.generator.rst:262 msgid "" "``description`` -- Description associated with the non-\\ :mimetype:`text` " "part" msgstr "" +"``description`` -- Descripción asociada con la parte no\\ :mimetype:`text`" #: ../Doc/library/email.generator.rst:264 msgid "" "``encoding`` -- Content transfer encoding of the non-\\ :mimetype:`text` part" msgstr "" +"``encoding`` -- Codificado de la transferencia del contenido de la parte no-" +"\\ :mimetype:`text`" #: ../Doc/library/email.generator.rst:266 msgid "If *fmt* is ``None``, use the following default *fmt*:" -msgstr "" +msgstr "Si *fmt* es ``None``, se usa el siguiente *fmt* predeterminado:" #: ../Doc/library/email.generator.rst:268 #, python-format msgid "" "\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" msgstr "" +"\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" #: ../Doc/library/email.generator.rst:270 msgid "" "Optional *_mangle_from_* and *maxheaderlen* are as with the :class:" "`Generator` base class." msgstr "" +"Los opcionales *_mangle_from_* y *maxheaderlen* son como en la clase base :" +"class:`Generator`." #: ../Doc/library/email.generator.rst:275 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/library/email.generator.rst:276 msgid "" @@ -333,3 +488,11 @@ msgid "" "parsing error recovery. It is a goal to fix these latter edge cases when " "possible." msgstr "" +"Esta instrucción supone que se utiliza la configuración adecuada para " +"``unixfrom``, y que no hay ninguna configuración :mod:`policy` que llame a " +"ajustes automáticos (por ejemplo, :attr:`~email.policy.Policy.refold_source` " +"debe ser ``none``, que es *no* es el valor predeterminado). Esto tampoco es " +"100% verdadero, ya que si el mensaje no se ajusta a los estándares RFC " +"ocasionalmente la información sobre el texto original exacto se pierde " +"durante la el análisis de recuperación de errores. Es un objetivo fijar " +"estos últimos casos extremos cuando sea posible." diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po index 1a8ceeae6e..420952ddd3 100644 --- a/library/email.headerregistry.po +++ b/library/email.headerregistry.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: 2020-10-17 19:47+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.3.1\n" #: ../Doc/library/email.headerregistry.rst:2 msgid ":mod:`email.headerregistry`: Custom Header Objects" -msgstr "" +msgstr ":mod:`email.headerregistry`: Objetos de encabezado personalizados" #: ../Doc/library/email.headerregistry.rst:10 msgid "**Source code:** :source:`Lib/email/headerregistry.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/email/headerregistry.py`" #: ../Doc/library/email.headerregistry.rst:14 msgid "[1]_" -msgstr "" +msgstr "[1]_" #: ../Doc/library/email.headerregistry.rst:16 msgid "" @@ -43,6 +45,16 @@ msgid "" "for various header types, but also provides an extension mechanism for " "applications to add their own custom header types." msgstr "" +"Los encabezados están representados por subclases personalizadas de :class:" +"`str`. La clase particular utilizada para representar un encabezado dado " +"está determinada por :attr:`~email.policy.EmailPolicy.header_factory` del :" +"mod:`~email.policy` vigente cuando se crean los encabezados. Esta sección " +"documenta el ``header_factory`` particular implementado por el paquete de " +"correo electrónico para el manejo mensajes de correo electrónico compatibles " +"con :RFC:`5322`, que no solo proporciona objetos de encabezado " +"personalizados para varios tipos de encabezados, sino que también " +"proporciona un mecanismo de extensión para que las aplicaciones agreguen sus " +"propios tipos de encabezados personalizados." #: ../Doc/library/email.headerregistry.rst:25 msgid "" @@ -57,6 +69,18 @@ msgid "" "application program, but interfaces are provided for modifying the default " "behavior for use by more complex applications." msgstr "" +"Cuando se utiliza cualquiera de los objetos de política derivados de :data:" +"`~email.policy.EmailPolicy`, todos los encabezados son producidos por :class:" +"`.HeaderRegistry` y tienen :class:`.BaseHeader` como su última clase base. " +"Cada clase de encabezado tiene una clase base adicional que está determinada " +"por el tipo de encabezado. Por ejemplo, muchos encabezados tienen la clase :" +"class:`.UnstructuredHeader` como su otra clase base. La segunda clase " +"especializada para un encabezado está determinada por el nombre del " +"encabezado, utilizando una tabla de búsqueda almacenada en :class:`." +"HeaderRegistry`. Todo esto se gestiona de forma transparente para el " +"programa de aplicación típico, pero se proporcionan interfaces para " +"modificar el comportamiento predeterminado para su uso por aplicaciones más " +"complejas." #: ../Doc/library/email.headerregistry.rst:36 msgid "" @@ -65,6 +89,11 @@ msgid "" "HeaderRegistry`, and finally the support classes used to represent the data " "parsed from structured headers." msgstr "" +"Las secciones a continuación primero documentan las clases base de " +"encabezados y sus atributos, seguidas por la API para modificar el " +"comportamiento de :class:`.HeaderRegistry`, y finalmente las clases de " +"soporte utilizadas para representar los datos analizados a partir de " +"encabezados estructurados." #: ../Doc/library/email.headerregistry.rst:44 msgid "" @@ -72,10 +101,14 @@ msgid "" "policy.EmailPolicy.header_factory` call. The string value of any header " "object is the *value* fully decoded to unicode." msgstr "" +"*name* y *value* se pasan a ``BaseHeader`` desde la llamada :attr:`~email." +"policy.EmailPolicy.header_factory`. El valor de cadena de caracteres de " +"cualquier objeto de encabezado es el *value* completamente descodificado en " +"unicode." #: ../Doc/library/email.headerregistry.rst:48 msgid "This base class defines the following read-only properties:" -msgstr "" +msgstr "Esta clase base define las siguientes propiedades de solo lectura:" #: ../Doc/library/email.headerregistry.rst:53 msgid "" @@ -83,6 +116,9 @@ msgid "" "exactly the value passed in the :attr:`~email.policy.EmailPolicy." "header_factory` call for *name*; that is, case is preserved." msgstr "" +"El nombre del encabezado (la parte del campo antes del ':'). Este es " +"exactamente el valor pasado en :attr:`~email.policy.EmailPolicy." +"header_factory` llamada para *name*; es decir, se conserva el caso." #: ../Doc/library/email.headerregistry.rst:61 msgid "" @@ -91,6 +127,11 @@ msgid "" "complete about detecting compliance issues. See the :mod:`~email.errors` " "module for a discussion of the types of defects that may be reported." msgstr "" +"Una tupla de instancias :exc:`~email.errors.HeaderDefect` que informan sobre " +"cualquier problema de cumplimiento de RFC que se encuentre durante el " +"análisis. El paquete de correo electrónico intenta estar completo para " +"detectar problemas de cumplimiento. Vea el módulo :mod:`~email.errors` para " +"una discusión de los tipos de defectos que pueden ser reportados." #: ../Doc/library/email.headerregistry.rst:69 msgid "" @@ -99,6 +140,10 @@ msgid "" "attribute is ``None``; it is expected that specialized header classes will " "override this value as needed." msgstr "" +"El número máximo de encabezados de este tipo que pueden tener el mismo " +"``name``. Un valor de ``None`` significa ilimitado. El valor de " +"``BaseHeader`` para este atributo es ``None``; se espera que las clases de " +"encabezado especializadas anulen este valor según sea necesario." #: ../Doc/library/email.headerregistry.rst:74 msgid "" @@ -106,6 +151,9 @@ msgid "" "email library code and should not in general be called by application " "programs:" msgstr "" +"``BaseHeader`` también proporciona el siguiente método, que es llamado por " +"el código de la biblioteca de correo electrónico y, en general, no debe ser " +"llamado por programas de aplicación:" #: ../Doc/library/email.headerregistry.rst:80 msgid "" @@ -116,6 +164,12 @@ msgid "" "`~email.policy.EmailPolicy.utf8` is ``False``, non-ASCII data will be :rfc:" "`2047` encoded." msgstr "" +"Retorna una cadena que contenga :attr:`~email.policy.Policy.linesep` " +"caracteres según sea necesario para doblar correctamente el encabezado de " +"acuerdo con *policy*. Un atributo :attr:`~email.policy.Policy.cte_type` de` " +"`8bit`` se tratará como si fuera``7bit``, ya que los encabezados no pueden " +"contener datos binarios arbitrarios. Si :attr:`~email.policy.EmailPolicy." +"utf8` es ``False``, los datos no ASCII estarán codificados :rfc:`2047`." #: ../Doc/library/email.headerregistry.rst:88 msgid "" @@ -125,6 +179,11 @@ msgid "" "specialized class provide a :func:`classmethod` named ``parse``. This " "method is called as follows::" msgstr "" +"``BaseHeader`` por sí solo no se puede utilizar para crear un objeto de " +"encabezado. Define un protocolo con el que coopera cada encabezado " +"especializado para producir el objeto de encabezado. Específicamente, " +"``BaseHeader`` requiere que la clase especializada proporcione un :func:" +"`classmethod` llamado ``parse``. Este método se llama de la siguiente manera:" #: ../Doc/library/email.headerregistry.rst:96 msgid "" @@ -138,6 +197,16 @@ msgid "" "valid unicode characters as well so that it can parse un-encoded header " "values." msgstr "" +"``kwds`` es un diccionario que contiene una clave preinicializada, " +"``defects``. ``defects`` es una lista vacía. El método de análisis debe " +"agregar cualquier defecto detectado a esta lista. A la devolución, el " +"diccionario ``kwds`` *debe* (*must*) contener valores para al menos las " +"claves ``decoded` y ``defects``. ``decoded`` debe ser el valor de cadena " +"para el encabezado (es decir, el valor del encabezado completamente " +"decodificado a Unicode). El método de análisis debe asumir que *string* " +"puede contener partes codificadas por transferencia de contenido, pero " +"también debe manejar correctamente todos los caracteres Unicode válidos para " +"que pueda analizar valores de encabezado no codificados." #: ../Doc/library/email.headerregistry.rst:105 msgid "" @@ -146,6 +215,11 @@ msgid "" "method if it wishes to set additional attributes beyond those provided by " "``BaseHeader`` itself. Such an ``init`` method should look like this::" msgstr "" +"Entonces, el ``__new__`` de ``BaseHeader`` crea la instancia del encabezado " +"y llama a su método ``init``. La clase especializada solo necesita " +"proporcionar un método ``init`` si desea establecer atributos adicionales " +"más allá de los proporcionados por ``BaseHeader``. Tal método ``init`` " +"debería verse así::" #: ../Doc/library/email.headerregistry.rst:114 msgid "" @@ -153,6 +227,9 @@ msgid "" "dictionary should be removed and handled, and the remaining contents of " "``kw`` (and ``args``) passed to the ``BaseHeader`` ``init`` method." msgstr "" +"Es decir, cualquier cosa adicional que la clase especializada ponga en el " +"diccionario ``kwds`` debe eliminarse y manejarse, y el contenido restante de " +"``kw`` (y ``args``) debe pasar ``BaseHeader`` al método ``init``." #: ../Doc/library/email.headerregistry.rst:121 msgid "" @@ -161,6 +238,10 @@ msgid "" "The classic example of an unstructured header is the :mailheader:`Subject` " "header." msgstr "" +"Un encabezado \"sin estructura\" es el tipo predeterminado de encabezado en :" +"rfc:`5322`. Cualquier encabezado que no tenga una sintaxis especificada se " +"trata como no estructurado. El ejemplo clásico de un encabezado no " +"estructurado es el encabezado :mailheader:`Subject`." #: ../Doc/library/email.headerregistry.rst:126 msgid "" @@ -174,10 +255,21 @@ msgid "" "words. Defects are registered in such cases, as well as defects for issues " "such as invalid characters within the encoded words or the non-encoded text." msgstr "" +"En :rfc:`5322`, un encabezado no estructurado es una ejecución de texto " +"arbitrario en el conjunto de caracteres ASCII. :rfc:`2047`, sin embargo, " +"tiene un mecanismo compatible :rfc:`5322` para codificar texto no ASCII como " +"caracteres ASCII dentro de un valor de encabezado. Cuando un *value* que " +"contiene palabras codificadas se pasa al constructor, el analizador " +"``UnstructuredHeader`` convierte dichas palabras codificadas en unicode, " +"siguiendo las reglas :rfc:`2047` para texto no estructurado. El analizador " +"utiliza heurística para intentar decodificar ciertas palabras codificadas no " +"compatibles. Los defectos se registran en tales casos, así como defectos por " +"problemas como caracteres no válidos dentro de las palabras codificadas o el " +"texto no codificado." #: ../Doc/library/email.headerregistry.rst:136 msgid "This header type provides no additional attributes." -msgstr "" +msgstr "Este tipo de encabezado no proporciona atributos adicionales." #: ../Doc/library/email.headerregistry.rst:141 msgid "" @@ -186,11 +278,16 @@ msgid "" "recognizing a number of variant forms that are sometimes found \"in the wild" "\"." msgstr "" +":rfc:`5322` especifica un formato muy específico para las fechas dentro de " +"los encabezados de correo electrónico. El analizador ``DateHeader`` reconoce " +"ese formato de fecha, además de reconocer una serie de formas variantes que " +"a veces se encuentran \"en la naturaleza\" (*\"in the wild\"*)." #: ../Doc/library/email.headerregistry.rst:146 #: ../Doc/library/email.headerregistry.rst:188 msgid "This header type provides the following additional attributes:" msgstr "" +"Este tipo de encabezado proporciona los siguientes atributos adicionales:" #: ../Doc/library/email.headerregistry.rst:150 msgid "" @@ -203,12 +300,23 @@ msgid "" "then :attr:`.datetime` will contain an aware ``datetime`` that uses :class:" "`datetime.timezone` to record the timezone offset." msgstr "" +"Si el valor del encabezado puede reconocerse como una fecha válida de una " +"forma u otra, este atributo contendrá una instancia :class:`~datetime." +"datetime` que representa esa fecha. Si la zona horaria de la fecha de " +"entrada se especifica como ``-0000`` (lo que indica que está en UTC pero no " +"contiene información sobre la zona horaria de origen), entonces :attr:`." +"datetime` será un ingenuo :class:`~datetime.datetime`. Si se encuentra un " +"desplazamiento de zona horaria específico (incluido `+0000`), entonces :attr:" +"`.datetime` contendrá un ``datetime`` consciente que usa :class:`datetime." +"timezone` para registrar el desplazamiento de la zona horaria." #: ../Doc/library/email.headerregistry.rst:160 msgid "" "The ``decoded`` value of the header is determined by formatting the " "``datetime`` according to the :rfc:`5322` rules; that is, it is set to::" msgstr "" +"El valor ``decoded`` del encabezado se determina formateando la ``datetime`` " +"de acuerdo con las reglas :rfc:`5322`; es decir, esto se establece en:" #: ../Doc/library/email.headerregistry.rst:165 msgid "" @@ -216,6 +324,9 @@ msgid "" "instance. This means, for example, that the following code is valid and " "does what one would expect::" msgstr "" +"Al crear un ``DateHeader``, *value* puede ser :class:`~datetime.datetime` " +"instancia. Esto significa, por ejemplo, que el siguiente código es válido y " +"hace lo que cabría esperar:" #: ../Doc/library/email.headerregistry.rst:171 msgid "" @@ -224,18 +335,27 @@ msgid "" "more useful is to use the :func:`~email.utils.localtime` function from the :" "mod:`~email.utils` module::" msgstr "" +"Debido a que se trata de una ``datetime`` naif, se interpretará como una " +"marca de tiempo UTC, y el valor resultante tendrá una zona horaria de " +"``-0000``. Mucho más útil es usar la función :func:`~email.utils.localtime` " +"del módulo :mod:`~email.utils`::" #: ../Doc/library/email.headerregistry.rst:178 msgid "" "This example sets the date header to the current time and date using the " "current timezone offset." msgstr "" +"Este ejemplo establece el encabezado de la fecha en la hora y fecha actuales " +"utilizando el desplazamiento de zona horaria actual." #: ../Doc/library/email.headerregistry.rst:184 msgid "" "Address headers are one of the most complex structured header types. The " "``AddressHeader`` class provides a generic interface to any address header." msgstr "" +"Los encabezados de dirección son uno de los tipos de encabezados " +"estructurados más complejos. La clase ``AddressHeader`` proporciona una " +"interfaz genérica para cualquier encabezado de dirección." #: ../Doc/library/email.headerregistry.rst:193 msgid "" @@ -244,6 +364,10 @@ msgid "" "in this list as single-address ``Groups`` whose :attr:`~.Group.display_name` " "is ``None``." msgstr "" +"Una tupla de objetos :class:`.Group` que codifican las direcciones y los " +"grupos que se encuentran en el valor del encabezado. Las direcciones que no " +"forman parte de un grupo se representan en esta lista como ``Groups`` de una " +"sola dirección cuyo :attr:`~.Group.display_name` es ``None``." #: ../Doc/library/email.headerregistry.rst:201 msgid "" @@ -253,6 +377,11 @@ msgid "" "point where the group occurs in the value (that is, the list of addresses is " "\"flattened\" into a one dimensional list)." msgstr "" +"Una tupla de objetos :class:`.Address` que codifican todas las direcciones " +"individuales del valor del encabezado. Si el valor del encabezado contiene " +"algún grupo, las direcciones individuales del grupo se incluyen en la lista " +"en el punto donde el grupo aparece en el valor (es decir, la lista de " +"direcciones se \"aplana\" (*\"flattened\"*) en una lista unidimensional)." #: ../Doc/library/email.headerregistry.rst:207 msgid "" @@ -261,6 +390,11 @@ msgid "" "unicode. The ``decoded`` value is set by :attr:`~str.join`\\ ing the :class:" "`str` value of the elements of the ``groups`` attribute with ``', '``." msgstr "" +"El valor ``decoded`` del encabezado tendrá todas las palabras codificadas " +"decodificadas a Unicode. Los nombres de dominio codificados :class:" +"`~encodings.idna` también se decodifican en Unicode. El valor ``decoded`` se " +"establece mediante :attr:`~str.join` del valor :class:`str` de los elementos " +"del atributo ``groups`` con ``', '``." #: ../Doc/library/email.headerregistry.rst:213 msgid "" @@ -270,11 +404,18 @@ msgid "" "allows an address list to be copied with groups intact by using the list " "obtained from the ``groups`` attribute of the source header." msgstr "" +"Se puede utilizar una lista de objetos :class:`.Address` y :class:`.Group` " +"en cualquier combinación para establecer el valor de un encabezado de " +"dirección. Los objetos ``Group`` cuyo ``display_name`` sea ``None`` se " +"interpretarán como direcciones únicas, lo que permite copiar una lista de " +"direcciones con los grupos intactos utilizando la lista obtenida del " +"atributo ``groups`` de el encabezado de origen." #: ../Doc/library/email.headerregistry.rst:222 msgid "" "A subclass of :class:`.AddressHeader` that adds one additional attribute:" msgstr "" +"Una subclase de :class:`.AddressHeader` que agrega un atributo adicional:" #: ../Doc/library/email.headerregistry.rst:228 msgid "" @@ -283,6 +424,10 @@ msgid "" "RFC under the default :mod:`~email.policy`), accessing this attribute will " "result in a :exc:`ValueError`." msgstr "" +"La única dirección codificada por el valor del encabezado. Si el valor del " +"encabezado en realidad contiene más de una dirección (lo que sería una " +"violación del RFC bajo el valor predeterminado :mod:`~email.policy`), " +"acceder a este atributo resultará en un :exc:`ValueError`." #: ../Doc/library/email.headerregistry.rst:234 msgid "" @@ -290,6 +435,9 @@ msgid "" "``UniqueUnstructuredHeader``). The only difference is that in the " "``Unique`` variant, :attr:`~.BaseHeader.max_count` is set to 1." msgstr "" +"Muchas de las clases anteriores también tienen una variante ``Unique`` (por " +"ejemplo,``UniqueUnstructuredHeader``). La única diferencia es que en la " +"variante ``Unique``, :attr:`~.BaseHeader.max_count` se establece en 1." #: ../Doc/library/email.headerregistry.rst:241 msgid "" @@ -299,19 +447,26 @@ msgid "" "per :rfc:`2045`, then the header object will have non-``None`` values for " "the following attributes:" msgstr "" +"En realidad, solo hay un valor válido para el encabezado :mailheader:`MIME-" +"Version`, y ese es ``1.0``. Para pruebas futuras, esta clase de encabezado " +"admite otros números de versión válidos. Si un número de versión tiene un " +"valor válido por :rfc:`2045`, entonces el objeto de encabezado tendrá " +"valores distintos de ``None`` para los siguientes atributos:" #: ../Doc/library/email.headerregistry.rst:249 msgid "" "The version number as a string, with any whitespace and/or comments removed." msgstr "" +"El número de versión como una cadena de caracteres, con cualquier espacio en " +"blanco y/o comentarios eliminados." #: ../Doc/library/email.headerregistry.rst:254 msgid "The major version number as an integer" -msgstr "" +msgstr "El número de versión mayor como un entero" #: ../Doc/library/email.headerregistry.rst:258 msgid "The minor version number as an integer" -msgstr "" +msgstr "El número de versión menor como un entero" #: ../Doc/library/email.headerregistry.rst:263 msgid "" @@ -320,40 +475,55 @@ msgid "" "take a list of supplemental parameters, which have a common format. This " "class serves as a base for all the MIME headers that take parameters." msgstr "" +"Todos los encabezados *MIME* comienzan con el prefijo *'Content-'*. Cada " +"encabezado específico tiene un valor determinado, que se describe en la " +"clase de ese encabezado. Algunos también pueden tomar una lista de " +"parámetros complementarios, que tienen un formato común. Esta clase sirve " +"como base para todos los encabezados *MIME* que toman parámetros." #: ../Doc/library/email.headerregistry.rst:270 msgid "A dictionary mapping parameter names to parameter values." msgstr "" +"Un diccionario que asigna nombres de parámetros a valores de parámetros." #: ../Doc/library/email.headerregistry.rst:275 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Type` header." msgstr "" +"Una clase :class:`ParameterizedMIMEHeader` que maneja el encabezado :" +"mailheader:`Content-Type`." #: ../Doc/library/email.headerregistry.rst:280 msgid "The content type string, in the form ``maintype/subtype``." msgstr "" +"La cadena de caracteres de tipo de contenido, en la forma ``maintype/" +"subtype``." #: ../Doc/library/email.headerregistry.rst:289 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Disposition` header." msgstr "" +"Una clase :class:`ParameterizedMIMEHeader` que maneja el encabezado :" +"mailheader:`Content-Disposition`." #: ../Doc/library/email.headerregistry.rst:294 msgid "``inline`` and ``attachment`` are the only valid values in common use." msgstr "" +"``inline`` y ``attachment`` son los únicos valores válidos de uso común." #: ../Doc/library/email.headerregistry.rst:299 msgid "Handles the :mailheader:`Content-Transfer-Encoding` header." -msgstr "" +msgstr "Maneja el encabezado de :mailheader:`Content-Transfer-Encoding`." #: ../Doc/library/email.headerregistry.rst:303 msgid "" "Valid values are ``7bit``, ``8bit``, ``base64``, and ``quoted-printable``. " "See :rfc:`2045` for more information." msgstr "" +"Los valores válidos son ``7bit``, ``8bit``, ``base64``, y ``quoted-" +"printable``. Consulte :rfc:`2045` para obtener más información." #: ../Doc/library/email.headerregistry.rst:312 msgid "" @@ -367,59 +537,69 @@ msgid "" "initialization. *base_class* is always the last class in the generated " "class's ``__bases__`` list." msgstr "" +"Esta es la mecánica utilizada por :class:`~email.policy.EmailPolicy` por " +"defecto. ``HeaderRegistry`` construye la clase utilizada para crear una " +"instancia de encabezado dinámicamente, usando *base_class* y una clase " +"especializada recuperada de un registro que contiene. Cuando un nombre de " +"encabezado determinado no aparece en el registro, la clase especificada por " +"*default_class* se utiliza como clase especializada. Cuando " +"*use_default_map* es ``True`` (el valor predeterminado), la asignación " +"estándar de nombres de encabezado a clases se copia en el registro durante " +"la inicialización. *base_class* es siempre la última clase en la lista " +"``__bases__`` de la clase generada." #: ../Doc/library/email.headerregistry.rst:322 msgid "The default mappings are:" -msgstr "" +msgstr "Las asignaciones predeterminadas son:" #: ../Doc/library/email.headerregistry.rst msgid "subject" -msgstr "" +msgstr "subject" #: ../Doc/library/email.headerregistry.rst:324 msgid "UniqueUnstructuredHeader" -msgstr "" +msgstr "UniqueUnstructuredHeader" #: ../Doc/library/email.headerregistry.rst msgid "date" -msgstr "" +msgstr "date" #: ../Doc/library/email.headerregistry.rst:325 #: ../Doc/library/email.headerregistry.rst:327 msgid "UniqueDateHeader" -msgstr "" +msgstr "UniqueDateHeader" #: ../Doc/library/email.headerregistry.rst msgid "resent-date" -msgstr "" +msgstr "resent-date" #: ../Doc/library/email.headerregistry.rst:326 msgid "DateHeader" -msgstr "" +msgstr "DateHeader" #: ../Doc/library/email.headerregistry.rst msgid "orig-date" -msgstr "" +msgstr "orig-date" #: ../Doc/library/email.headerregistry.rst msgid "sender" -msgstr "" +msgstr "sender" #: ../Doc/library/email.headerregistry.rst:328 msgid "UniqueSingleAddressHeader" -msgstr "" +msgstr "UniqueSingleAddressHeader" #: ../Doc/library/email.headerregistry.rst msgid "resent-sender" -msgstr "" +msgstr "resent-sender" #: ../Doc/library/email.headerregistry.rst:329 msgid "SingleAddressHeader" -msgstr "" +msgstr "SingleAddressHeader" #: ../Doc/library/email.headerregistry.rst msgid "to" -msgstr "" +msgstr "to" #: ../Doc/library/email.headerregistry.rst:330 #: ../Doc/library/email.headerregistry.rst:332 @@ -427,90 +607,90 @@ msgstr "" #: ../Doc/library/email.headerregistry.rst:336 #: ../Doc/library/email.headerregistry.rst:338 msgid "UniqueAddressHeader" -msgstr "" +msgstr "UniqueAddressHeader" #: ../Doc/library/email.headerregistry.rst msgid "resent-to" -msgstr "" +msgstr "resent-to" #: ../Doc/library/email.headerregistry.rst:331 #: ../Doc/library/email.headerregistry.rst:333 #: ../Doc/library/email.headerregistry.rst:335 #: ../Doc/library/email.headerregistry.rst:337 msgid "AddressHeader" -msgstr "" +msgstr "AddressHeader" #: ../Doc/library/email.headerregistry.rst msgid "cc" -msgstr "" +msgstr "cc" #: ../Doc/library/email.headerregistry.rst msgid "resent-cc" -msgstr "" +msgstr "resent-cc" #: ../Doc/library/email.headerregistry.rst msgid "bcc" -msgstr "" +msgstr "bcc" #: ../Doc/library/email.headerregistry.rst msgid "resent-bcc" -msgstr "" +msgstr "resent-bcc" #: ../Doc/library/email.headerregistry.rst msgid "from" -msgstr "" +msgstr "from" #: ../Doc/library/email.headerregistry.rst msgid "resent-from" -msgstr "" +msgstr "resent-from" #: ../Doc/library/email.headerregistry.rst msgid "reply-to" -msgstr "" +msgstr "reply-to" #: ../Doc/library/email.headerregistry.rst msgid "mime-version" -msgstr "" +msgstr "mime-version" #: ../Doc/library/email.headerregistry.rst:339 msgid "MIMEVersionHeader" -msgstr "" +msgstr "MIMEVersionHeader" #: ../Doc/library/email.headerregistry.rst msgid "content-type" -msgstr "" +msgstr "content-type" #: ../Doc/library/email.headerregistry.rst:340 msgid "ContentTypeHeader" -msgstr "" +msgstr "ContentTypeHeader" #: ../Doc/library/email.headerregistry.rst msgid "content-disposition" -msgstr "" +msgstr "content-disposition" #: ../Doc/library/email.headerregistry.rst:341 msgid "ContentDispositionHeader" -msgstr "" +msgstr "ContentDispositionHeader" #: ../Doc/library/email.headerregistry.rst msgid "content-transfer-encoding" -msgstr "" +msgstr "content-transfer-encoding" #: ../Doc/library/email.headerregistry.rst:342 msgid "ContentTransferEncodingHeader" -msgstr "" +msgstr "ContentTransferEncodingHeader" #: ../Doc/library/email.headerregistry.rst msgid "message-id" -msgstr "" +msgstr "message-id" #: ../Doc/library/email.headerregistry.rst:343 msgid "MessageIDHeader" -msgstr "" +msgstr "MessageIDHeader" #: ../Doc/library/email.headerregistry.rst:345 msgid "``HeaderRegistry`` has the following methods:" -msgstr "" +msgstr "``HeaderRegistry`` tiene los siguientes métodos:" #: ../Doc/library/email.headerregistry.rst:350 msgid "" @@ -519,10 +699,16 @@ msgid "" "along with *base_class*, to create the class used to instantiate headers " "that match *name*." msgstr "" +"*name* es el nombre del encabezado que se asignará. Se convertirá a " +"minúsculas en el registro. *cls* es la clase especializada que se utilizará, " +"junto con *base_class*, para crear la clase utilizada para instanciar " +"encabezados que coincidan con *name*." #: ../Doc/library/email.headerregistry.rst:358 msgid "Construct and return a class to handle creating a *name* header." msgstr "" +"Construye y retorna una clase para manejar la creación de un encabezado " +"*nombre*." #: ../Doc/library/email.headerregistry.rst:363 msgid "" @@ -532,6 +718,11 @@ msgid "" "class's constructor, passing it the same argument list, and finally returns " "the class instance created thereby." msgstr "" +"Recupera el encabezado especializado asociado con *name* del registro " +"(usando *default_class* si *name* no aparece en el registro) y lo compone " +"con *base_class* para producir una clase, llama al constructor de la clase " +"construida, pasándole el mismo lista de argumentos y, finalmente, retorna la " +"instancia de clase creada de ese modo." #: ../Doc/library/email.headerregistry.rst:370 msgid "" @@ -539,22 +730,30 @@ msgid "" "structured headers and can, in general, be used by an application program to " "construct structured values to assign to specific headers." msgstr "" +"Las siguientes clases son las clases que se utilizan para representar datos " +"analizados a partir de encabezados estructurados y, en general, pueden ser " +"utilizadas por un programa de aplicación para construir valores " +"estructurados para asignar a encabezados específicos." #: ../Doc/library/email.headerregistry.rst:377 msgid "" "The class used to represent an email address. The general form of an " "address is::" msgstr "" +"La clase utilizada para representar una dirección de correo electrónico. La " +"forma general de una dirección es::" #: ../Doc/library/email.headerregistry.rst:382 msgid "or::" -msgstr "" +msgstr "or::" #: ../Doc/library/email.headerregistry.rst:386 msgid "" "where each part must conform to specific syntax rules spelled out in :rfc:" "`5322`." msgstr "" +"donde cada parte debe ajustarse a reglas de sintaxis específicas explicadas " +"en :rfc:`5322`." #: ../Doc/library/email.headerregistry.rst:389 msgid "" @@ -565,6 +764,13 @@ msgid "" "will be property encoded when serialized. However, per the RFCs, unicode is " "*not* allowed in the username portion of the address." msgstr "" +"Para su comodidad, se puede especificar *addr_spec* en lugar de *username* y " +"*domain*, en cuyo caso *username* y *domain* se analizarán a partir de " +"*addr_spec*. Un *addr_spec* debe ser una cadena de caracteres entre comillas " +"RFC adecuada; si no es ``Address``, se generará un error. Se permiten " +"caracteres Unicode y se codificarán como propiedad cuando se serialicen. Sin " +"embargo, según las RFC, *no* se permite unicode en la parte del nombre de " +"usuario de la dirección." #: ../Doc/library/email.headerregistry.rst:398 msgid "" @@ -572,20 +778,27 @@ msgid "" "If the address does not have a display name, this attribute will be an empty " "string." msgstr "" +"La parte del nombre para mostrar de la dirección, si la hubiera, con todas " +"las citas eliminadas. Si la dirección no tiene un nombre para mostrar, este " +"atributo será una cadena vacía." #: ../Doc/library/email.headerregistry.rst:404 msgid "The ``username`` portion of the address, with all quoting removed." msgstr "" +"La parte del ``username`` de la dirección, con todas las citas eliminadas." #: ../Doc/library/email.headerregistry.rst:408 msgid "The ``domain`` portion of the address." -msgstr "" +msgstr "La parte de ``domain`` de la dirección." #: ../Doc/library/email.headerregistry.rst:412 msgid "" "The ``username@domain`` portion of the address, correctly quoted for use as " "a bare address (the second form shown above). This attribute is not mutable." msgstr "" +"La parte de la dirección ``username@domain``, citada correctamente para " +"usarla como dirección simple (el segundo formulario que se muestra arriba). " +"Este atributo no es mutable." #: ../Doc/library/email.headerregistry.rst:418 msgid "" @@ -593,6 +806,9 @@ msgid "" "`5322` rules, but with no Content Transfer Encoding of any non-ASCII " "characters." msgstr "" +"El valor ``str`` del objeto es la dirección citada de acuerdo con las " +"reglas :rfc:`5322`, pero sin codificación de transferencia de contenido de " +"ningún carácter que no sea ASCII." #: ../Doc/library/email.headerregistry.rst:422 msgid "" @@ -600,12 +816,17 @@ msgid "" "``username`` and ``domain`` are both the empty string (or ``None``), then " "the string value of the ``Address`` is ``<>``." msgstr "" +"Para admitir SMTP (:rfc:`5321`), ``Address`` maneja un caso especial: si " +"``username`` y ``domain`` son ambos la cadena de caracteres vacía (o " +"``None``), entonces el valor de cadena de caracteres ``Address`` es ``<>``." #: ../Doc/library/email.headerregistry.rst:429 msgid "" "The class used to represent an address group. The general form of an " "address group is::" msgstr "" +"La clase utilizada para representar un grupo de direcciones. La forma " +"general de un grupo de direcciones es::" #: ../Doc/library/email.headerregistry.rst:434 msgid "" @@ -614,6 +835,11 @@ msgid "" "single addresses that are not part of a group by setting *display_name* to " "``None`` and providing a list of the single address as *addresses*." msgstr "" +"Para facilitar el procesamiento de listas de direcciones que constan de una " +"mezcla de grupos y direcciones únicas, también se puede utilizar un " +"``Group`` para representar direcciones únicas que no forman parte de un " +"grupo al establecer *display_name* en ``None`` y proporcionando una lista de " +"direcciones únicas como *addresses*." #: ../Doc/library/email.headerregistry.rst:441 msgid "" @@ -621,12 +847,17 @@ msgid "" "one ``Address`` in ``addresses``, then the ``Group`` represents a single " "address that is not in a group." msgstr "" +"El ``display_name`` del grupo. Si es ``None`` y hay exactamente una " +"``Address`` en ``addresses``, entonces el ``Group`` representa una única " +"dirección que no está en un grupo." #: ../Doc/library/email.headerregistry.rst:447 msgid "" "A possibly empty tuple of :class:`.Address` objects representing the " "addresses in the group." msgstr "" +"Posiblemente una tupla vacía de :class:`.Address` que representan las " +"direcciones en el grupo." #: ../Doc/library/email.headerregistry.rst:452 msgid "" @@ -636,12 +867,19 @@ msgid "" "``addresses`` list, the ``str`` value will be the same as the ``str`` of " "that single ``Address``." msgstr "" +"El valor ``str`` de un ``Group`` se formatea de acuerdo con :rfc:`5322`, " +"pero sin codificación de transferencia de contenido de ningún carácter que " +"no sea ASCII. Si ``display_name`` no es ninguno y hay una sola ``Address`` " +"en la lista de ``addresses``, el valor de ``str`` será el mismo que el " +"``str`` de ese single ``Address``." #: ../Doc/library/email.headerregistry.rst:460 msgid "Footnotes" -msgstr "" +msgstr "Pie de notas" #: ../Doc/library/email.headerregistry.rst:461 msgid "" "Originally added in 3.3 as a :term:`provisional module `" msgstr "" +"Originalmente añadido en 3.3 como módulo provisional :term:`provisional " +"module `" diff --git a/library/email.mime.po b/library/email.mime.po index bdca34d79c..a9d9811d3b 100644 --- a/library/email.mime.po +++ b/library/email.mime.po @@ -1,29 +1,32 @@ # 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: 2020-10-12 10:25+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/email.mime.rst:2 msgid ":mod:`email.mime`: Creating email and MIME objects from scratch" msgstr "" +":mod:`email.mime`: Creación de correo electrónico y objetos MIME desde cero" #: ../Doc/library/email.mime.rst:7 msgid "**Source code:** :source:`Lib/email/mime/`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/email/mime/`" #: ../Doc/library/email.mime.rst:11 msgid "" @@ -32,6 +35,10 @@ msgid "" "the new API, but in certain applications these classes may still be useful, " "even in non-legacy code." msgstr "" +"Este módulo forma parte de la API heredada de correo electrónico " +"(``Compat32``). Su funcionalidad se sustituye parcialmente por el :mod:" +"`~email.contentmanager` en la nueva API, pero en ciertas aplicaciones estas " +"clases pueden seguir siendo útiles, incluso en código no heredado." #: ../Doc/library/email.mime.rst:16 msgid "" @@ -43,6 +50,14 @@ msgid "" "`~email.message.Message` objects, move them around, etc. This makes a very " "convenient interface for slicing-and-dicing MIME messages." msgstr "" +"Normalmente, se obtiene una estructura de objeto de mensaje pasando un " +"archivo o algún texto a un analizador, que analiza el texto y retorna el " +"objeto de mensaje principal. Sin embargo, también puede crear una estructura " +"de mensajes completa desde cero, o incluso objetos individuales :class:" +"`~email.message.Message` a mano. De hecho, también puede tomar una " +"estructura existente y agregar nuevos objetos :class:`~email.message." +"Message`, moverlos, etc. Esto compone una interfaz muy conveniente para " +"cortar y gestionar mensajes MIME." #: ../Doc/library/email.mime.rst:24 msgid "" @@ -51,14 +66,19 @@ msgid "" "manually. For MIME messages though, the :mod:`email` package provides some " "convenient subclasses to make things easier." msgstr "" +"Puede crear una nueva estructura de objeto mediante la creación de una " +"instancia de :class:`~email.message.Message`, añadiendo accesorios y todos " +"los encabezados necesarios manualmente. Para mensajes MIME sin embargo, el " +"paquete :mod:`email` proporciona subclases convenientes para facilitar las " +"cosas." #: ../Doc/library/email.mime.rst:29 msgid "Here are the classes:" -msgstr "" +msgstr "Descripción de las clases:" #: ../Doc/library/email.mime.rst:35 msgid "Module: :mod:`email.mime.base`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.base`" #: ../Doc/library/email.mime.rst:37 msgid "" @@ -68,6 +88,11 @@ msgid "" "provided primarily as a convenient base class for more specific MIME-aware " "subclasses." msgstr "" +"Esta es la clase básica para todas las subclases específicas :class:`~email." +"message.Message` para MIME. Normalmente no creará instancias específicas de " +"la :class:`MIMEBase`, aunque es posible. La :class:`MIMEBase` se proporciona " +"principalmente como una clase básica conveniente para subclases más " +"específicas, apropiadas para MIME." #: ../Doc/library/email.mime.rst:43 msgid "" @@ -77,12 +102,19 @@ msgid "" "a parameter key/value dictionary and is passed directly to :meth:`Message." "add_header `." msgstr "" +"*_maintype* es el tipo principal :mailheader:`Content-Type` (por ejemplo :" +"mimetype:`text` o :mimetype:`image`), y *_subtype* es el tipo menor :" +"mailheader:`Content-Type` (por ejemplo :mimetype:`plain` o :mimetype:`gif`). " +"*_params* es un diccionario de parámetro clave/valor y se pasa directamente " +"a :meth:`Message.add_header `." #: ../Doc/library/email.mime.rst:49 msgid "" "If *policy* is specified, (defaults to the :class:`compat32 ` policy) it will be passed to :class:`~email.message.Message`." msgstr "" +"Si se especifica *policy*, (por defecto, la directiva :class:`compat32 " +"`) se pasará a :class:`~email.message.Message`." #: ../Doc/library/email.mime.rst:53 msgid "" @@ -90,17 +122,20 @@ msgid "" "(based on *_maintype*, *_subtype*, and *_params*), and a :mailheader:`MIME-" "Version` header (always set to ``1.0``)." msgstr "" +"La clase :class:`MIMEBase` siempre agrega un encabezado :mailheader:`Content-" +"Type` (basado en *_maintype*, *_subtype* y *_params*), y un encabezado :" +"mailheader:`MIME-Versión` (siempre establecido en ``1.0``)." #: ../Doc/library/email.mime.rst:57 ../Doc/library/email.mime.rst:104 #: ../Doc/library/email.mime.rst:135 ../Doc/library/email.mime.rst:169 #: ../Doc/library/email.mime.rst:204 ../Doc/library/email.mime.rst:224 #: ../Doc/library/email.mime.rst:258 msgid "Added *policy* keyword-only parameter." -msgstr "" +msgstr "Se ha añadido el parámetro *policy* de solo palabra clave." #: ../Doc/library/email.mime.rst:65 msgid "Module: :mod:`email.mime.nonmultipart`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.nonmultipart`" #: ../Doc/library/email.mime.rst:67 msgid "" @@ -111,10 +146,16 @@ msgid "" "`multipart` messages. If :meth:`~email.message.Message.attach` is called, " "a :exc:`~email.errors.MultipartConversionError` exception is raised." msgstr "" +"Una subclase de :class:`~email.mime.base.MIMEBase`, es una clase base " +"intermedia para los mensajes MIME que no son :mimetype:`multipart`. El " +"propósito principal de esta clase es evitar el uso del método :meth:`~email." +"message.Message.attach`, que solo tiene sentido para los mensajes :mimetype:" +"`multipart`. Si se llama a :meth:`~email.message.message.attach`, se lanza " +"una excepción :exc:`~email.errors.MultipartConversionError`." #: ../Doc/library/email.mime.rst:80 msgid "Module: :mod:`email.mime.multipart`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.multipart`" #: ../Doc/library/email.mime.rst:82 msgid "" @@ -125,6 +166,13 @@ msgid "" "`multipart/_subtype` will be added to the message object. A :mailheader:" "`MIME-Version` header will also be added." msgstr "" +"Una subclase de :class:`~email.mime.base.MIMEBase`, se trata de una clase " +"base intermedia para los mensajes MIME que son :mimetype:`multipart`. El " +"valor predeterminado opcional de *_subtype* es :mimetype:`mixed`, pero se " +"puede utilizar para especificar el subtipo del mensaje. Se agregará un " +"encabezado :mailheader:`Content-Type` de :mimetype:`multipart/_subtype` al " +"objeto del mensaje. También se agregará un encabezado :mailheader:`MIME-" +"Version`." #: ../Doc/library/email.mime.rst:89 msgid "" @@ -132,6 +180,9 @@ msgid "" "default), the boundary is calculated when needed (for example, when the " "message is serialized)." msgstr "" +"El *boundary* opcional es la cadena de límite multiparte. Cuando ``None`` " +"(valor predeterminado), el límite se calcula cuando es necesario (por " +"ejemplo, cuando se serializa el mensaje)." #: ../Doc/library/email.mime.rst:93 msgid "" @@ -140,6 +191,10 @@ msgid "" "subparts to the message by using the :meth:`Message.attach ` method." msgstr "" +"*_subparts* es una secuencia de subpartes iniciales para la carga útil. Debe " +"ser posible convertir esta secuencia en una lista. Siempre puede adjuntar " +"nuevas subpartes al mensaje mediante el método :meth:`Message.attach `." #: ../Doc/library/email.mime.rst:98 ../Doc/library/email.mime.rst:131 #: ../Doc/library/email.mime.rst:165 ../Doc/library/email.mime.rst:199 @@ -148,6 +203,8 @@ msgid "" "Optional *policy* argument defaults to :class:`compat32 `." msgstr "" +"El valor predeterminado del argumento *policy* opcional es :class:`compat32 " +"`." #: ../Doc/library/email.mime.rst:100 msgid "" @@ -155,10 +212,13 @@ msgid "" "from the keyword arguments, or passed into the *_params* argument, which is " "a keyword dictionary." msgstr "" +"Los parámetros adicionales para el encabezado :mailheader:`Content-Type` se " +"toman de los argumentos de palabra clave, o se pasan al argumento *_params*, " +"que es un diccionario de palabras clave." #: ../Doc/library/email.mime.rst:113 msgid "Module: :mod:`email.mime.application`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.application`" #: ../Doc/library/email.mime.rst:115 msgid "" @@ -168,6 +228,12 @@ msgid "" "data. Optional *_subtype* specifies the MIME subtype and defaults to :" "mimetype:`octet-stream`." msgstr "" +"Una subclase de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " +"clase :class:`MIMEApplication` se utiliza para representar objetos de " +"mensaje MIME de tipo principal :mimetype:`application`. *_data* es una " +"cadena de caracteres que contiene los datos de bytes sin procesar. " +"*_subtype* opcional especifica el subtipo MIME y el valor predeterminado es :" +"mimetype:`octet-stream`." #: ../Doc/library/email.mime.rst:121 msgid "" @@ -180,14 +246,23 @@ msgid "" "object as necessary. The default encoding is base64. See the :mod:`email." "encoders` module for a list of the built-in encoders." msgstr "" +"*_encoder* opcional es una recurso invocable (es decir, una función) que " +"realizará la codificación real de los datos para el transporte. Este " +"invocable toma un argumento, que es la instancia :class:`MIMEApplication`. " +"Debe utilizar :meth:`~email.message.Message.get_payload` y :meth:`~email." +"message.Message.set_payload` para cambiar la carga útil a la forma " +"codificada. También debe agregar cualquier :mailheader:`Content-Transfer-" +"Encoding` u otros encabezados al objeto del mensaje según sea necesario. La " +"codificación predeterminada es base64. Consulte el módulo :mod:`email." +"encoders` para obtener una lista de los codificadores integrados." #: ../Doc/library/email.mime.rst:133 ../Doc/library/email.mime.rst:167 msgid "*_params* are passed straight through to the base class constructor." -msgstr "" +msgstr "*_params* se pasan directamente al constructor de la clase base." #: ../Doc/library/email.mime.rst:144 msgid "Module: :mod:`email.mime.audio`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.audio`" #: ../Doc/library/email.mime.rst:146 msgid "" @@ -200,6 +275,15 @@ msgid "" "*_subtype* argument. If the minor type could not be guessed and *_subtype* " "was not given, then :exc:`TypeError` is raised." msgstr "" +"Una subclase de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " +"clase :class:`MIMEAudio` se utiliza para crear objetos de mensaje MIME de " +"tipo principal :mimetype:`audio`. *_audiodata* es una cadena de caracteres " +"que contiene los datos de audio sin procesar. Si estos datos pueden ser " +"decodificados por el módulo estándar de Python :mod:`sndhdr`, entonces el " +"subtipo se incluirá automáticamente en el encabezado :mailheader:`Content-" +"Type`. De lo contrario, puede especificar explícitamente el subtipo de audio " +"mediante el argumento *_subtype*. Si no se pudo adivinar el tipo secundario " +"y no se ha proporcionado *_subtype*, se lanza :exc:`TypeError`." #: ../Doc/library/email.mime.rst:155 msgid "" @@ -212,10 +296,19 @@ msgid "" "object as necessary. The default encoding is base64. See the :mod:`email." "encoders` module for a list of the built-in encoders." msgstr "" +"*_encoder* opcional es un recurso invocable (es decir, una función) que " +"realizará la codificación real de los datos de audio para el transporte. " +"Este invocable toma un argumento, que es la instancia :class:`MIMEAudio`. " +"Debe utilizar :meth:`~email.message.Message.get_payload` y :meth:`~email." +"message.Message.set_payload` para cambiar la carga útil a la forma " +"codificada. También debe agregar cualquier :mailheader:`Content-Transfer-" +"Encoding` u otros encabezados al objeto del mensaje según sea necesario. La " +"codificación predeterminada es base64. Consulte el módulo :mod:`email." +"encoders` para obtener una lista de los codificadores integrados." #: ../Doc/library/email.mime.rst:178 msgid "Module: :mod:`email.mime.image`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.image`" #: ../Doc/library/email.mime.rst:180 msgid "" @@ -228,6 +321,15 @@ msgid "" "*_subtype* argument. If the minor type could not be guessed and *_subtype* " "was not given, then :exc:`TypeError` is raised." msgstr "" +"Una subclase de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " +"clase :class:`MIMEImage` se utiliza para crear objetos de mensaje MIME de " +"tipo principal :mimetype:`image`. *_imagedata* es una cadena de caracteres " +"que contiene los datos de imagen sin procesar. Si estos datos pueden ser " +"decodificados por el módulo estándar de Python :mod:`imghdr`, entonces el " +"subtipo se incluirá automáticamente en el encabezado :mailheader:`Content-" +"Type`. De lo contrario, puede especificar explícitamente el subtipo de " +"imagen mediante el argumento *_subtype*. Si no se pudo adivinar el tipo " +"secundario y no se ha proporcionado *_subtype*, se lanza :exc:`TypeError`." #: ../Doc/library/email.mime.rst:189 msgid "" @@ -240,16 +342,27 @@ msgid "" "object as necessary. The default encoding is base64. See the :mod:`email." "encoders` module for a list of the built-in encoders." msgstr "" +"*_encoder* opcional es un recurso invocable (es decir, una función) que " +"realizará la codificación real de los datos de imagen para el transporte. " +"Este invocable toma un argumento, que es la instancia :class:`MIMEImage`. " +"Debe utilizar :meth:`~email.message.Message.get_payload` y :meth:`~email." +"message.Message.set_payload` para cambiar la carga útil a la forma " +"codificada. También debe agregar cualquier :mailheader:`Content-Transfer-" +"Encoding` u otros encabezados al objeto del mensaje según sea necesario. La " +"codificación predeterminada es base64. Consulte el módulo :mod:`email." +"encoders` para obtener una lista de los codificadores integrados." #: ../Doc/library/email.mime.rst:201 msgid "" "*_params* are passed straight through to the :class:`~email.mime.base." "MIMEBase` constructor." msgstr "" +"*_params* se pasan directamente al constructor :class:`~email.mime.base." +"MIMEBase`." #: ../Doc/library/email.mime.rst:211 msgid "Module: :mod:`email.mime.message`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.message`" #: ../Doc/library/email.mime.rst:213 msgid "" @@ -259,16 +372,23 @@ msgid "" "class:`~email.message.Message` (or a subclass thereof), otherwise a :exc:" "`TypeError` is raised." msgstr "" +"Una subclase de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " +"clase :class:`MIMEMessage` se utiliza para crear objetos MIME de tipo " +"principal :mimetype:`message`. *_msg* se utiliza como la carga y debe ser " +"una instancia de la clase :class:`~email.message.Message` (o una subclase de " +"la misma), de lo contrario se lanza un :exc:`TypeError`." #: ../Doc/library/email.mime.rst:219 msgid "" "Optional *_subtype* sets the subtype of the message; it defaults to :" "mimetype:`rfc822`." msgstr "" +"*_subtype* opcional establece el subtipo del mensaje; por defecto es :" +"mimetype:`rfc822`." #: ../Doc/library/email.mime.rst:231 msgid "Module: :mod:`email.mime.text`" -msgstr "" +msgstr "Módulo: :mod:`email.mime.text`" #: ../Doc/library/email.mime.rst:233 msgid "" @@ -282,6 +402,15 @@ msgid "" "*_charset* parameter accepts either a string or a :class:`~email.charset." "Charset` instance." msgstr "" +"Una subclase de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " +"clase :class:`MIMEText` se utiliza para crear objetos MIME de tipo " +"principal :mimetype:`text`. *_text* es la cadena de caracteres de la carga " +"útil. *_subtype* es el tipo menor y el valor predeterminado es :mimetype:" +"`plain`. *_charset* es el paquete de caracteres del texto y se pasa como " +"argumento al constructor :class:`~email.mime.nonmultipart.MIMENonMultipart`; " +"el valor predeterminado es ``us-ascii`` si la cadena contiene sólo puntos de " +"código ``ascii``, y ``utf-8`` en caso contrario. El parámetro *_charset* " +"acepta una cadena o una instancia :class:`~email.charset.Charset`." #: ../Doc/library/email.mime.rst:243 msgid "" @@ -295,7 +424,17 @@ msgid "" "encode the new payload (and add a new :mailheader:`Content-Transfer-" "Encoding` header)." msgstr "" +"A menos que el argumento *_charset* se establezca explícitamente como " +"``None``, el objeto MIMEText creado tendrá a la vez un encabezado :" +"mailheader:`Content-Type` con un parámetro ``charset``, y un encabezado :" +"mailheader:`Content-Transfer-Encoding`. Esto significa que una llamada " +"posterior a ``set_payload`` no dará lugar a una carga codificada, incluso si " +"se pasa un conjunto de caracteres en el comando ``set_payload``. Puede " +"\"restablecer\" este comportamiento eliminando el encabezado ``Content-" +"Transfer-Encoding``, después de lo cual una llamada a ``set_payload`` " +"codificará automáticamente la nueva carga útil (y agregará un nuevo " +"encabezado :mailheader:`Content-Transfer-Encoding`)." #: ../Doc/library/email.mime.rst:255 msgid "*_charset* also accepts :class:`~email.charset.Charset` instances." -msgstr "" +msgstr "*_charset* también acepta instancias :class:`~email.charset.Charset`." diff --git a/library/email.po b/library/email.po index b706497a8f..cd8ebf42fb 100644 --- a/library/email.po +++ b/library/email.po @@ -1,29 +1,31 @@ # 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: 2020-10-16 11:13-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/email.rst:2 msgid ":mod:`email` --- An email and MIME handling package" -msgstr "" +msgstr ":mod:`email` --- Un paquete de manejo de correo electrónico y MIME" #: ../Doc/library/email.rst:11 msgid "**Source code:** :source:`Lib/email/__init__.py`" -msgstr "" +msgstr "**Código fuente** :source:`Lib/email/__init__.py`" #: ../Doc/library/email.rst:15 msgid "" @@ -35,6 +37,13 @@ msgid "" "well as such MIME-related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :" "rfc:`2183`, and :rfc:`2231`." msgstr "" +"El paquete :mod:`email` es una biblioteca para administrar mensajes de " +"correo electrónico. *No* esta diseñado específicamente para enviar mensajes " +"de correo electrónico SMTP (:rfc:`2821`), NNTP u otros servidores; esas son " +"funciones de módulos como :mod:`smtplib` y :mod:`nntplib`. El paquete :mod:" +"`email` intenta ser lo más compatible con RFC, admitiendo :rfc:`5233` y :rfc:" +"`6532`, así como RFC relacionados con MIME como :rfc:`2045`, :rfc:`2046`, :" +"rfc:`2047`, :rfc:`2183`, y :rfc:`2231`." #: ../Doc/library/email.rst:23 msgid "" @@ -42,6 +51,9 @@ msgid "" "components, plus a fourth component that controls the behavior of the other " "components." msgstr "" +"La estructura general del paquete de correo electrónico se puede dividir en " +"tres componentes principales, más un cuarto componente que controla el " +"comportamiento de los otros componentes." #: ../Doc/library/email.rst:27 msgid "" @@ -55,6 +67,17 @@ msgid "" "model is a tree structure of objects that all provide the :class:`~email." "message.EmailMessage` API." msgstr "" +"El componente central del paquete es un \"modelo de objetos\" que representa " +"los mensajes de correo electrónico. Una aplicación interactúa con el paquete " +"principalmente a través de la interfaz del modelo de objetos definida en el " +"submódulo :mod:`~email.message`. La aplicación puede usar esta API para " +"hacer preguntas sobre un correo electrónico existente, para construir un " +"nuevo correo electrónico o para agregar o eliminar subcomponentes de correo " +"electrónico que utilizan la misma interfaz de modelo de objetos. Es decir, " +"siguiendo la naturaleza de los mensajes de correo electrónico y sus " +"subcomponentes MIME, el modelo de objetos de correo electrónico es una " +"estructura de árbol de objetos que proporcionan la API :class:`~email." +"message.EmailMessage`." #: ../Doc/library/email.rst:37 msgid "" @@ -67,6 +90,14 @@ msgid "" "but this usage is discouraged as it is too easy to end up with messages that " "are not valid in one way or another.)" msgstr "" +"Los otros dos componentes principales del paquete son :mod:`~email.parser` " +"y :mod:`~email.generator`. El parser toma la versión serializada de un " +"mensaje de correo electrónico (una secuencia de bytes) Y la convierte en un " +"árbol de objetos :class:`~email.message.EmailMessage`. El generador toma un :" +"class:`~email.message.EmailMessage` y lo convierte de nuevo en un flujo de " +"bytes serializado. (El analizador y el generador también manejan flujos de " +"caracteres de texto, pero se desaconseja este uso ya que es demasiado fácil " +"terminar con mensajes que no son válidos de una forma u otra)." #: ../Doc/library/email.rst:46 msgid "" @@ -82,6 +113,18 @@ msgid "" "from disk, but to serialize it using standard SMTP settings when sending it " "to an email server." msgstr "" +"El componente de control es el módulo de :mod:`~email.policy`. Cada :class:" +"`~email.message.EmailMessage` cada :mod:`~email.generator`, y cada :mod:" +"`~email.parser` tiene un objeto de :mod:`~email.policy` asociado que " +"controla su comportamiento. Por lo general, una aplicación solo necesita " +"especificar la política cuando se crea un :class:`~email.message." +"EmailMessage` , ya sea instanciando directamente un :class:`~email.message." +"EmailMessage` para crear un nuevo correo electrónico o analizando un flujo " +"de entrada con un :mod:`~email.parser`. Pero la política se puede cambiar " +"cuando el mensaje se serializa mediante un :mod:`~email.generator`. Esto " +"permite, por ejemplo, analizar un mensaje de correo electrónico genérico " +"desde el disco, pero serializarlo utilizando la configuración estándar de " +"SMTP al enviarlo a un servidor de correo electrónico." #: ../Doc/library/email.rst:58 msgid "" @@ -99,6 +142,21 @@ msgid "" "modern internet software (not just email), this will be a familiar concept " "to many programmers." msgstr "" +"El paquete de correo electrónico hace todo lo posible para ocultar los " +"detalles de las diversas RFC que rigen de la aplicación. Conceptualmente, la " +"aplicación debería poder tratar el mensaje de correo electrónico como un " +"árbol estructurado de texto Unicode y archivos adjuntos binarios, sin tener " +"que preocuparse por cómo se representan estos cuando se serializan. En la " +"práctica, sin embargo, a menudo es necesario conocer al menos algunas de las " +"reglas que rigen los mensajes MIME y su estructura, específicamente los " +"nombres y la naturaleza de los «tipos de contenido» MIME y cómo identifican " +"los documentos de varias partes. En su mayor parte, este conocimiento solo " +"debería ser necesario para aplicaciones más complejas, e incluso entonces " +"debería ser solo la estructura de alto nivel en cuestión, y no los detalles " +"de cómo se representan esas estructuras. Dado que los tipos de contenido " +"MIME se utilizan ampliamente en el software moderno de Internet (no solo en " +"el correo electrónico), este será un concepto familiar para muchos " +"programadores." #: ../Doc/library/email.rst:71 msgid "" @@ -109,6 +167,12 @@ msgid "" "mod:`~email.policy` controls, which completes the treatment of the main " "components of the library." msgstr "" +"Las siguientes secciones describen la funcionalidad del paquete :mod:" +"`email`. Comenzamos con el modelo de objetos :mod:`~email.message`, que es " +"la interfaz principal que usará una aplicación, y lo seguimos con los " +"componentes del :mod:`~email.parser` y :mod:`~email.generator` . Luego " +"cubrimos los controles de la :mod:`~email.policy`, lo que completa el " +"tratamiento de los principales componentes de la biblioteca." #: ../Doc/library/email.rst:78 msgid "" @@ -121,12 +185,23 @@ msgid "" "messages, but also document their extensibility APIs, which will be of " "interest to advanced applications." msgstr "" +"Las siguientes tres secciones cubren las excepciones que puede generar el " +"paquete y los defectos (incumplimiento de las RFC) que el :mod:`~email." +"parser` puede detectar. Luego cubrimos los subcomponentes :mod:`~email." +"headerregistry` y :mod:`~email.contentmanager`, que proporcionan " +"herramientas para realizar una manipulación más detallada de los encabezados " +"y cargas útiles, respectivamente. Ambos componentes contienen " +"características relevantes para consumir y producir mensajes no triviales, " +"pero también documentan sus API de extensibilidad, que serán de interés para " +"aplicaciones avanzadas." #: ../Doc/library/email.rst:87 msgid "" "Following those is a set of examples of using the fundamental parts of the " "APIs covered in the preceding sections." msgstr "" +"A continuación, se muestra un conjunto de ejemplos del uso de las partes " +"fundamentales de las API cubiertas en las secciones anteriores." #: ../Doc/library/email.rst:90 msgid "" @@ -140,67 +215,81 @@ msgid "" "relevant for applications that are still using the :mod:`~email.policy." "compat32` API for backward compatibility reasons." msgstr "" +"Lo anterior representa la API moderna (compatible con Unicode) del paquete " +"de correo electrónico. Las secciones restantes, comenzando con la clase :" +"class:`~email.message.Message`, cubren la API :data:`~email.policy.compat32` " +"heredada que trata mucho más directamente con los detalles de cómo se " +"representan los mensajes de correo electrónico. La API :data:`~email.policy." +"compat32` no oculta los detalles de las RFC de la aplicación, pero para las " +"aplicaciones que necesitan operar a ese nivel, pueden ser herramientas " +"útiles. Esta documentación también es relevante para las aplicaciones que " +"todavía usan la API :mod:`~email.policy.compat32` por razones de " +"compatibilidad con versiones anteriores." #: ../Doc/library/email.rst:100 msgid "" "Docs reorganized and rewritten to promote the new :class:`~email.message." "EmailMessage`/:class:`~email.policy.EmailPolicy` API." msgstr "" +"Documentos reorganizados y reescritos para promover la nueva API :class:" +"`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy`." #: ../Doc/library/email.rst:105 msgid "Contents of the :mod:`email` package documentation:" -msgstr "" +msgstr "Contenido de la documentación del paquete :mod:`email`:" #: ../Doc/library/email.rst:120 msgid "Legacy API:" -msgstr "" +msgstr "API heredada:" #: ../Doc/library/email.rst:136 msgid "Module :mod:`smtplib`" -msgstr "" +msgstr "Módulo :mod:`smtplib`" #: ../Doc/library/email.rst:136 msgid "SMTP (Simple Mail Transport Protocol) client" -msgstr "" +msgstr "Cliente SMTP (Protocolo simple de transporte de correo)" #: ../Doc/library/email.rst:139 msgid "Module :mod:`poplib`" -msgstr "" +msgstr "Módulo :mod:`poplib`" #: ../Doc/library/email.rst:139 msgid "POP (Post Office Protocol) client" -msgstr "" +msgstr "Cliente POP (Protocolo de oficina postal)" #: ../Doc/library/email.rst:142 msgid "Module :mod:`imaplib`" -msgstr "" +msgstr "Módulo :mod:`imaplib`" #: ../Doc/library/email.rst:142 msgid "IMAP (Internet Message Access Protocol) client" -msgstr "" +msgstr "Cliente IMAP (Protocolo de acceso a mensajes de Internet)" #: ../Doc/library/email.rst:145 msgid "Module :mod:`nntplib`" -msgstr "" +msgstr "Módulo :mod:`nntplib`" #: ../Doc/library/email.rst:145 msgid "NNTP (Net News Transport Protocol) client" -msgstr "" +msgstr "Cliente NNTP (Protocolo de transporte de noticias de red)" #: ../Doc/library/email.rst:149 msgid "Module :mod:`mailbox`" -msgstr "" +msgstr "Módulo :mod:`mailbox`" #: ../Doc/library/email.rst:148 msgid "" "Tools for creating, reading, and managing collections of messages on disk " "using a variety standard formats." msgstr "" +"Herramientas para crear, leer y administrar colecciones de mensajes en disco " +"utilizando una variedad de formatos estándar." #: ../Doc/library/email.rst:151 msgid "Module :mod:`smtpd`" -msgstr "" +msgstr "Módulo :mod:`smtpd`" #: ../Doc/library/email.rst:152 msgid "SMTP server framework (primarily useful for testing)" -msgstr "" +msgstr "Marco del servidor SMTP (principalmente útil para pruebas)" diff --git a/library/email.utils.po b/library/email.utils.po index 7d900490cd..dd414903ff 100644 --- a/library/email.utils.po +++ b/library/email.utils.po @@ -6,33 +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: 2020-10-29 22:58+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: Juan C. Tello \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/email.utils.rst:2 msgid ":mod:`email.utils`: Miscellaneous utilities" -msgstr "" +msgstr ":mod:`email.utils`: Utilidades misceláneas" #: ../Doc/library/email.utils.rst:7 msgid "**Source code:** :source:`Lib/email/utils.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/email/utils.py`" #: ../Doc/library/email.utils.rst:11 msgid "" "There are a couple of useful utilities provided in the :mod:`email.utils` " "module:" msgstr "" +"Existen varias funciones útiles proporcionadas en el módulo :mod:`email." +"utils`:" #: ../Doc/library/email.utils.rst:16 msgid "" @@ -47,6 +51,16 @@ msgid "" "``localtime`` to attempt to divine whether summer time is in effect for the " "specified time." msgstr "" +"Retorna el tiempo local como un objecto datetime consciente. Si se llama sin " +"argumentos, retorna el tiempo actual. De lo contrario, el argumento *dt* " +"debe ser una instancia :class:`~datetime.datetime`, y es convertida a la " +"zona horaria local de acuerdo a la base de datos de zonas horarias del " +"sistema. Si *dt* es naíf (*naif*, es decir, ``dt.tzinfo`` es ``None``), se " +"asume que está en tiempo local. En este caso, un valor positivo o cero para " +"*isdst* hace que ``localtime`` asuma inicialmente que el horario de verano " +"está o no (respectivamente) en efecto para el tiempo especificado. Un valor " +"negativo para *isdst* hace que el ``localtime`` intente determinar si el " +"horario de verano está en efecto para el tiempo especificado." #: ../Doc/library/email.utils.rst:32 msgid "" @@ -58,10 +72,18 @@ msgid "" "useful certain cases, such as a constructing distributed system that uses a " "consistent domain name across multiple hosts." msgstr "" +"Retorna una cadena de caracteres apropiada para una cabecera :mailheader:" +"`Message-ID` que cumpla con :rfc:`2822`. Si se especifica un *idstring* " +"opcional, es una cadena de caracteres utilizada para reforzar la unicidad " +"del identificador del mensaje. Si se especifica un *domain* opcional provee " +"la porción del msgid después de '@'. El predeterminado es el hostname local. " +"Normalmente no es necesario especificar este valor, pero puede ser útil en " +"algunos casos, como cuando se está construyendo un sistema distribuido que " +"utiliza un nombre de dominio consistente a lo largo de varios ordenadores." #: ../Doc/library/email.utils.rst:40 msgid "Added the *domain* keyword." -msgstr "" +msgstr "Se añadió la palabra clave *domain*." #: ../Doc/library/email.utils.rst:44 msgid "" @@ -70,12 +92,20 @@ msgid "" "and formatting they provide is done automatically by the header parsing " "machinery of the new API." msgstr "" +"Las funciones que quedan son parte de la API de correo electrónico heredada " +"(``Compat32``) . No hay necesidad de utilizarlas directamente con el nuevo " +"API, dado que el análisis sintáctico y formateo que proporcionan es " +"realizado automáticamente por el mecanismo de análisis sintáctico de la " +"nueva API." #: ../Doc/library/email.utils.rst:52 msgid "" "Return a new string with backslashes in *str* replaced by two backslashes, " "and double quotes replaced by backslash-double quote." msgstr "" +"Retorna una nueva cadena de caracteres con barras invertidas (``\\``) en " +"*str* reemplazado por dos barras invertidas, y comillas dobles reemplazadas " +"por barra invertida seguido de comillas dobles." #: ../Doc/library/email.utils.rst:58 msgid "" @@ -83,6 +113,10 @@ msgid "" "and begins with double quotes, they are stripped off. Likewise if *str* " "ends and begins with angle brackets, they are stripped off." msgstr "" +"Retorna una nueva cadena de caracteres que es una versión *unquoted* de " +"*str*. Si *str* comienza y termina con comillas dobles, éstas son " +"eliminadas. De igual manera si *str* empieza y termina con comillas " +"angulares (``<`` y ``>``), éstas son eliminadas." #: ../Doc/library/email.utils.rst:65 msgid "" @@ -91,6 +125,11 @@ msgid "" "*realname* and *email address* parts. Returns a tuple of that information, " "unless the parse fails, in which case a 2-tuple of ``('', '')`` is returned." msgstr "" +"Interpreta *address* -- la cual debe ser el valor de un campo que contenga " +"un campo tal como :mailheader:`To` o :mailheader:`Cc` -- para separarlo en " +"sus componentes *realname* y *email address*. Retorna una tupla de " +"información, a menos que la interpretación falle, en cuyo caso una 2-tupla " +"de ``('','')`` es retornada." #: ../Doc/library/email.utils.rst:73 msgid "" @@ -99,6 +138,11 @@ msgid "" "mailheader:`To` or :mailheader:`Cc` header. If the first element of *pair* " "is false, then the second element is returned unmodified." msgstr "" +"El inverso de :meth:`parseaddr`, este toma una 2-tupla de la forma " +"``(realname,real, email_address)`` y retorna una cadena de caracteres válido " +"para una cabecera :mailheader:`To` o :mailheader:`Cc`. Si el primer elemento " +"de *pair* es falso, entonces el segundo elemento es retornado sin " +"modificación." #: ../Doc/library/email.utils.rst:78 msgid "" @@ -107,10 +151,14 @@ msgid "" "characters. Can be an instance of :class:`str` or a :class:`~email.charset." "Charset`. Defaults to ``utf-8``." msgstr "" +"El *charset* opcional es el conjunto de caracteres que será usado en la " +"codificación :rfc:`2047` del ``real_name`` si el ``real_name`` contiene " +"caracteres que no sean ASCII. Puede ser una instancia de :class:`str` o :" +"class:`~email.charset.Charset`. El valor predeterminado es ``utf-8``." #: ../Doc/library/email.utils.rst:83 msgid "Added the *charset* option." -msgstr "" +msgstr "Se añadió la opción *charset*." #: ../Doc/library/email.utils.rst:89 msgid "" @@ -119,6 +167,11 @@ msgid "" "be returned by :meth:`Message.get_all `. " "Here's a simple example that gets all the recipients of a message::" msgstr "" +"Este método retorna una lista de 2-tuplas de la forma retornada por " +"``parseaddr()``. *fieldvalues* es una secuencia de valores de campos de " +"cabecera como la que puede ser retornado por :meth:`Message.get_all `. Aquí hay un ejemplo sencillo que obtiene todos " +"los destinatarios de un mensaje::" #: ../Doc/library/email.utils.rst:105 msgid "" @@ -130,6 +183,15 @@ msgid "" "be passed directly to :func:`time.mktime`; otherwise ``None`` will be " "returned. Note that indexes 6, 7, and 8 of the result tuple are not usable." msgstr "" +"Intenta interpretar una fecha de acuerdo a las reglas en :rfc:`2822`. Sin " +"embargo, algunos clientes de correo no siguen ese formato como está " +"especificado, por lo cual :func:`parsedate` intenta adivinar correctamente " +"en esos casos. *date* es una secuencia de caracteres que contiene una fecha :" +"rfc:`2822` como ``\"Mon, 20 Nov 1995 19:12:08 -0500\"``. Si tiene éxito en " +"interpretar la fecha, :func:`parsedate` retorna una 9-tupla que puede ser " +"pasada directamente a :func:`time.mktime`; de lo contrario ``None`` es " +"retornado. Observar que los índices 6,7 y 8 de la tupla resultante no son " +"utilizables." #: ../Doc/library/email.utils.rst:116 msgid "" @@ -141,6 +203,14 @@ msgid "" "returned is ``0``, which represents UTC. Note that indexes 6, 7, and 8 of " "the result tuple are not usable." msgstr "" +"Realiza la misma función que :func:`parsedate`, pero retorna ``None`` o una " +"10-tupla; los primeros 9 elementos forman una tupla que puede ser pasada " +"directamente a :func:`time.mktime`, y el décimo es el desfase de la zona " +"horaria de la fecha con respecto a UTC (que es el término oficial para " +"Greenwich Mean Time) [#]_. Si la cadena de caracteres de entrada no tiene " +"zona horaria, el último elemento de la tupla retornada es ``0``, el cual " +"representa UTC. Nótese que los índices 6, 7 y 8 de la tupla resultante no " +"son utilizables." #: ../Doc/library/email.utils.rst:126 msgid "" @@ -153,6 +223,15 @@ msgid "" "offset, the ``datetime`` will be an aware ``datetime`` with the " "corresponding a :class:`~datetime.timezone` :class:`~datetime.tzinfo`." msgstr "" +"El inverso de :func:`format_datetime`. Realiza la misma función que :func:" +"`parsedate`, pero al tener éxito retorna un :mod:`~datetime.datetime`. Si la " +"fecha de entrada tiene una zona horaria de ``-0000``, el ``datetime`` será " +"un ``datetime`` naíf, y si la fecha cumple con los RFCs representará un " +"tiempo en UTC pero sin indicación de la zona horaria originaria actual del " +"mensaje de donde proviene la fecha. Si la fecha de entrada tiene cualquier " +"otro desfase de zona horaria válida, el ``datetime`` será un ``datetime`` " +"consiente con el correspondiente :class:`~datetime.timezone` :class:" +"`~datetime.tzinfo`." #: ../Doc/library/email.utils.rst:140 msgid "" @@ -160,10 +239,15 @@ msgid "" "(seconds since the Epoch). If the timezone item in the tuple is ``None``, " "assume local time." msgstr "" +"Cambia una 10-tupla, como la retornada por :func:`parsedate_tz` a una marca " +"de tiempo UTC (segundos desde la Época). Si la zona horaria en la tupla es " +"``None``, asume el tiempo local." #: ../Doc/library/email.utils.rst:147 msgid "Returns a date string as per :rfc:`2822`, e.g.::" msgstr "" +"Retorna una fecha como una cadena de caracteres de acuerdo a :rfc:`2822`, " +"por ejemplo::" #: ../Doc/library/email.utils.rst:151 msgid "" @@ -171,6 +255,9 @@ msgid "" "func:`time.gmtime` and :func:`time.localtime`, otherwise the current time is " "used." msgstr "" +"*timeval* opcional, es un valor de tiempo de punto flotante como el aceptado " +"por :func:`time.gmtime` y :func:`time.localtime`. Si no es dado, el tiempo " +"actual es usado." #: ../Doc/library/email.utils.rst:155 msgid "" @@ -179,6 +266,10 @@ msgid "" "taking daylight savings time into account. The default is ``False`` meaning " "UTC is used." msgstr "" +"*localtime* opcional, es una bandera que cuando es ``True``, interpreta " +"*timeval* y retorna una fecha relativa a la zona horaria local en lugar de " +"UTC, tomando apropiadamente en cuenta el horario de verano. El valor " +"predeterminado es ``False`` con lo cual UTC es utilizado." #: ../Doc/library/email.utils.rst:160 msgid "" @@ -187,6 +278,11 @@ msgid "" "This is needed for some protocols (such as HTTP). This only applies when " "*localtime* is ``False``. The default is ``False``." msgstr "" +"*usegmt* opcional, es una bandera que cuando es ``True`` retorna una fecha " +"como cadena de caracteres con la zona horaria como una cadena de caracteres " +"ascii ``GMT``, en lugar de un numérico ``-0000``. Esto es necesario para " +"algunos protocolos (como HTTP). Sólo aplica cuando *localtime* es ``False``. " +"El valor predeterminado es ``False``." #: ../Doc/library/email.utils.rst:168 msgid "" @@ -199,10 +295,19 @@ msgid "" "timezone offset. This provides a way to generate standards conformant HTTP " "date headers." msgstr "" +"Similar a ``formatdate``, pero la entrada es una instancia :mod:`datetime`. " +"Si es un datetime naíf, se asume ser \"UTC sin información sobre la zona " +"horaria de origen\", y el ``-0000`` convencional es usado para la zona " +"horaria. Si es un ``datetime`` consciente entonces el desfase numérico de la " +"zona horaria es utilizado. Si es una zona horaria consciente con un desfase " +"cero, entonces *usegmt* puede ser ``True``, en cuyo caso la cadena de " +"caracteres ``GMT`` es utilizada en lugar del desfase numérico de zona " +"horaria. Esto provee una manera de generar cabeceras de fecha HTTP conforme " +"estándares." #: ../Doc/library/email.utils.rst:182 msgid "Decode the string *s* according to :rfc:`2231`." -msgstr "" +msgstr "Decodifica la cadena de caracteres *s* de acuerdo a :rfc:`2231`." #: ../Doc/library/email.utils.rst:187 msgid "" @@ -212,6 +317,11 @@ msgid "" "*language* is not, the string is encoded using the empty string for " "*language*." msgstr "" +"Codifica la cadena de caracteres *s* de acuerdo a :rfc:`2231`. *charset* y " +"*language* opcionales, si son dados es el conjunto de caracteres y nombre " +"del lenguaje a utilizar. Si ninguno es dado, *s* es retornado sin modificar. " +"Si *charset* es dado pero *language* no, la cadena de caracteres es " +"codificada usando la cadena de caracteres vacía para *language*." #: ../Doc/library/email.utils.rst:195 msgid "" @@ -224,22 +334,36 @@ msgid "" "to use if the one in the :rfc:`2231` header is not known by Python; it " "defaults to ``'us-ascii'``." msgstr "" +"Cuando un parámetro de cabecera está codificado en formato :rfc:`2231`, :" +"meth:`Message.get_param ` puede retornar " +"una 3-tupla conteniendo el conjunto de caracteres, lenguaje y valor. :func:" +"`collapse_rfc2231_value` convierte esto en una cadena de caracteres unicode. " +"El parámetro opcional *errors* es pasado al argumento *errors* del método :" +"func:`~str.encode` de :class:`str`; de manera predeterminada recae en " +"``'replace'``. *fallback_charset* opcional, especifica el conjunto de " +"caracteres a utilizar si el especificado en la cabecera :rfc:`2231` no es " +"conocido por Python; su valor predeterminado es ``'us-ascii'``." #: ../Doc/library/email.utils.rst:204 msgid "" "For convenience, if the *value* passed to :func:`collapse_rfc2231_value` is " "not a tuple, it should be a string and it is returned unquoted." msgstr "" +"Por conveniencia, si el *value* pasado a :func:`collapse_rfc2231_value` no " +"es una tupla, debería ser una cadena de caracteres y se retorna sin citar." #: ../Doc/library/email.utils.rst:210 msgid "" "Decode parameters list according to :rfc:`2231`. *params* is a sequence of " "2-tuples containing elements of the form ``(content-type, string-value)``." msgstr "" +"Decodifica la lista de parámetros de acuerdo a :rfc:`2231`. *params* es una " +"secuencia de 2-tuplas conteniendo elementos de la forma ``(content-type, " +"string-value)``." #: ../Doc/library/email.utils.rst:215 msgid "Footnotes" -msgstr "" +msgstr "Notas a pie de página" #: ../Doc/library/email.utils.rst:216 msgid "" @@ -247,3 +371,6 @@ msgid "" "``time.timezone`` variable for the same timezone; the latter variable " "follows the POSIX standard while this module follows :rfc:`2822`." msgstr "" +"Nótese que el signo del desfase de la zona horaria es opuesto al signo de la " +"variable ``time.timezone`` para la misma zona horaria; este último sigue el " +"estándar POSIX mientras que este módulo sigue :rfc:`2822`." diff --git a/library/enum.po b/library/enum.po index 7e263a54eb..608b215fea 100644 --- a/library/enum.po +++ b/library/enum.po @@ -791,8 +791,8 @@ msgid "" "Giving a name to the \"no flags set\" condition does not change its boolean " "value::" msgstr "" -"Dar un nombre a la condición “sin banderas establecidas” no cambia su valor " -"booleano::" +"Dar un nombre a la condición \"sin banderas establecidas\" no cambia su " +"valor booleano::" #: ../Doc/library/enum.rst:704 msgid "" diff --git a/library/faulthandler.po b/library/faulthandler.po index 4b64cc791f..ed71013603 100644 --- a/library/faulthandler.po +++ b/library/faulthandler.po @@ -6,23 +6,25 @@ # 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-01-21 17:10-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" +"Last-Translator: \n" +"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" #: ../Doc/library/faulthandler.rst:2 msgid ":mod:`faulthandler` --- Dump the Python traceback" -msgstr "" +msgstr ":mod:`faulthandler` --- Volcar el rastreo de Python" #: ../Doc/library/faulthandler.rst:11 msgid "" @@ -34,6 +36,13 @@ msgid "" "`PYTHONFAULTHANDLER` environment variable or by using the :option:`-X` " "``faulthandler`` command line option." msgstr "" +"Este módulo contiene funciones para volcar los rastreos de Python " +"explícitamente, en un fallo, después de un tiempo de espera o en una señal " +"del usuario. Llame a :func:`faulthandler.enable` para instalar los gestores " +"de fallos para las señales :const:`SIGSEGV`, :const:`SIGFPE`, :const:" +"`SIGABRT`, :const:`SIGBUS`, y :const:`SIGILL`. También puede activarlos al " +"inicio estableciendo la variable de entorno :envvar:`PYTHONFAULTHANDLER` o " +"usando la opción de línea de comandos :option:`-X` ``faulthandler``." #: ../Doc/library/faulthandler.rst:18 msgid "" @@ -42,6 +51,11 @@ msgid "" "handlers if the :c:func:`sigaltstack` function is available. This allows it " "to dump the traceback even on a stack overflow." msgstr "" +"El gestor de fallos es compatible con el gestor de fallos del sistema como " +"Apport o el gestor de fallos de Windows. El módulo utiliza una pila " +"alternativa para los gestores de señales si la función :c:func:`sigaltstack` " +"está disponible. Esto le permite volcar el rastreo incluso en un " +"desbordamiento de pila." #: ../Doc/library/faulthandler.rst:23 msgid "" @@ -50,30 +64,38 @@ msgid "" "of this limitation traceback dumping is minimal compared to normal Python " "tracebacks:" msgstr "" +"El gestor de fallos se llama en casos catastróficos y, por lo tanto, solo " +"puede utilizar funciones seguras en señales (por ejemplo, no puede asignar " +"memoria en el *heap*). Debido a esta limitación, el volcado del rastreo es " +"mínimo comparado a los rastreos normales de Python:" #: ../Doc/library/faulthandler.rst:28 msgid "" "Only ASCII is supported. The ``backslashreplace`` error handler is used on " "encoding." msgstr "" +"Solo se soporta ASCII. El gestor de errores ``backslashreplace`` se utiliza " +"en la codificación." #: ../Doc/library/faulthandler.rst:30 msgid "Each string is limited to 500 characters." -msgstr "" +msgstr "Cada cadena de caracteres está limitada a 500 caracteres." #: ../Doc/library/faulthandler.rst:31 msgid "" "Only the filename, the function name and the line number are displayed. (no " "source code)" msgstr "" +"Solo se muestran el nombre de archivo, el nombre de la función y el número " +"de línea. (sin código fuente)" #: ../Doc/library/faulthandler.rst:33 msgid "It is limited to 100 frames and 100 threads." -msgstr "" +msgstr "Está limitado a 100 *frames* y 100 hilos." #: ../Doc/library/faulthandler.rst:34 msgid "The order is reversed: the most recent call is shown first." -msgstr "" +msgstr "El orden se invierte: la llamada más reciente se muestra primero." #: ../Doc/library/faulthandler.rst:36 msgid "" @@ -81,31 +103,39 @@ msgid "" "tracebacks, applications must be run in the terminal. A log file can " "alternatively be passed to :func:`faulthandler.enable`." msgstr "" +"Por defecto, el rastreo de Python se escribe en :data:`sys.stderr`. Para ver " +"los rastreos, las aplicaciones deben ejecutarse en la terminal. " +"Alternativamente se puede pasar un archivo de registro a :func:`faulthandler." +"enable`." #: ../Doc/library/faulthandler.rst:40 msgid "" "The module is implemented in C, so tracebacks can be dumped on a crash or " "when Python is deadlocked." msgstr "" +"El módulo está implementado en C, así los rastreos se pueden volcar en un " +"fallo o cuando Python está en bloqueo mutuo." #: ../Doc/library/faulthandler.rst:45 msgid "Dumping the traceback" -msgstr "" +msgstr "Volcar el rastreo" #: ../Doc/library/faulthandler.rst:49 msgid "" "Dump the tracebacks of all threads into *file*. If *all_threads* is " "``False``, dump only the current thread." msgstr "" +"Vuelca los rastreos de todos los hilos en el archivo *file*. Si " +"*all_threads* es ``False``, vuelca solo el hilo actual." #: ../Doc/library/faulthandler.rst:52 ../Doc/library/faulthandler.rst:70 #: ../Doc/library/faulthandler.rst:108 ../Doc/library/faulthandler.rst:130 msgid "Added support for passing file descriptor to this function." -msgstr "" +msgstr "Se añadió soporte para pasar el descriptor de archivo a esta función." #: ../Doc/library/faulthandler.rst:57 msgid "Fault handler state" -msgstr "" +msgstr "Estado del gestor de fallos" #: ../Doc/library/faulthandler.rst:61 msgid "" @@ -114,30 +144,39 @@ msgid "" "dump the Python traceback. If *all_threads* is ``True``, produce tracebacks " "for every running thread. Otherwise, dump only the current thread." msgstr "" +"Activa el gestor de fallos: instala gestores para las señales :const:" +"`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` y :const:" +"`SIGILL` para volcar el rastreo de Python. Si *all_threads* es ``True``, " +"produce rastreos por cada hilo activo. De lo contrario, vuelca solo el hilo " +"actual." #: ../Doc/library/faulthandler.rst:67 msgid "" "The *file* must be kept open until the fault handler is disabled: see :ref:" "`issue with file descriptors `." msgstr "" +"El archivo *file* se debe mantener abierto hasta que se desactive el gestor " +"de fallos: ver :ref:`problema con descriptores de archivo `." #: ../Doc/library/faulthandler.rst:73 msgid "On Windows, a handler for Windows exception is also installed." -msgstr "" +msgstr "En Windows, también se instaló un gestor para la excepción de Windows." #: ../Doc/library/faulthandler.rst:78 msgid "" "Disable the fault handler: uninstall the signal handlers installed by :func:" "`enable`." msgstr "" +"Desactiva el gestor de fallos: desinstala los gestores de señales instalados " +"por :func:`enable`." #: ../Doc/library/faulthandler.rst:83 msgid "Check if the fault handler is enabled." -msgstr "" +msgstr "Comprueba si el gestor de fallos está activado." #: ../Doc/library/faulthandler.rst:87 msgid "Dumping the tracebacks after a timeout" -msgstr "" +msgstr "Volcar los rastreos después de un tiempo de espera" #: ../Doc/library/faulthandler.rst:91 msgid "" @@ -149,6 +188,14 @@ msgid "" "new call replaces previous parameters and resets the timeout. The timer has " "a sub-second resolution." 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 " +"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 " +"parámetros previos y reinicia el tiempo de espera. El temporizador tiene una " +"resolución de menos de un segundo." #: ../Doc/library/faulthandler.rst:99 msgid "" @@ -156,22 +203,25 @@ msgid "" "`cancel_dump_traceback_later` is called: see :ref:`issue with file " "descriptors `." msgstr "" +"El archivo *file* se debe mantener abierto hasta que se vuelque el rastreo o " +"se llame a :func:`cancel_dump_traceback_later`: ver :ref:`problema con " +"descriptores de archivo `." #: ../Doc/library/faulthandler.rst:103 msgid "This function is implemented using a watchdog thread." -msgstr "" +msgstr "Esta función está implementada utilizando un hilo vigilante." #: ../Doc/library/faulthandler.rst:105 msgid "This function is now always available." -msgstr "" +msgstr "Ahora esta función está siempre disponible." #: ../Doc/library/faulthandler.rst:113 msgid "Cancel the last call to :func:`dump_traceback_later`." -msgstr "" +msgstr "Cancela la última llamada a :func:`dump_traceback_later`." #: ../Doc/library/faulthandler.rst:117 msgid "Dumping the traceback on a user signal" -msgstr "" +msgstr "Volcar el rastreo en una señal del usuario" #: ../Doc/library/faulthandler.rst:121 msgid "" @@ -179,16 +229,23 @@ msgid "" "the traceback of all threads, or of the current thread if *all_threads* is " "``False``, into *file*. Call the previous handler if chain is ``True``." msgstr "" +"Registra una señal del usuario: instala un gestor para la señal *signum* " +"para volcar el rastreo de todos los hilos, o del hilo actual si " +"*all_threads* es ``False``, en el archivo *file*. Llama al gestor previo si " +"*chain* es ``True``." #: ../Doc/library/faulthandler.rst:125 msgid "" "The *file* must be kept open until the signal is unregistered by :func:" "`unregister`: see :ref:`issue with file descriptors `." msgstr "" +"El archivo *file* se debe mantener abierto hasta que la señal sea anulada " +"por :func:`unregister`: ver :ref:`problema con descriptores de archivo " +"`." #: ../Doc/library/faulthandler.rst:128 ../Doc/library/faulthandler.rst:139 msgid "Not available on Windows." -msgstr "" +msgstr "No está disponible en Windows." #: ../Doc/library/faulthandler.rst:135 msgid "" @@ -196,10 +253,13 @@ msgid "" "installed by :func:`register`. Return ``True`` if the signal was registered, " "``False`` otherwise." msgstr "" +"Anula una señal del usuario: desinstala el gestor de la señal *signum* " +"instalada por :func:`register`. Retorna ``True`` si la señal fue registrada, " +"``False`` en otro caso." #: ../Doc/library/faulthandler.rst:145 msgid "Issue with file descriptors" -msgstr "" +msgstr "Problema con descriptores de archivo" #: ../Doc/library/faulthandler.rst:147 msgid "" @@ -209,13 +269,21 @@ msgid "" "the file descriptor, the traceback will be written into a different file. " "Call these functions again each time that the file is replaced." msgstr "" +":func:`enable`, :func:`dump_traceback_later` y :func:`register` guardan el " +"descriptor de archivo de su argumento *file*. Si se cierra el archivo y su " +"descriptor de archivo es reutilizado por un nuevo archivo, o si se usa :func:" +"`os.dup2` para reemplazar el descriptor de archivo, el rastreo se escribirá " +"en un archivo diferente. Llame a estas funciones nuevamente cada vez que se " +"reemplace el archivo." #: ../Doc/library/faulthandler.rst:155 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/faulthandler.rst:157 msgid "" "Example of a segmentation fault on Linux with and without enabling the fault " "handler:" msgstr "" +"Ejemplo de un fallo de segmentación en Linux con y sin activar el gestor de " +"fallos:" diff --git a/library/filesys.po b/library/filesys.po index 44471945f4..fbd5bec2ff 100644 --- a/library/filesys.po +++ b/library/filesys.po @@ -1,25 +1,27 @@ # 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-01-13 08:17+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: Juan Biondi \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/filesys.rst:5 msgid "File and Directory Access" -msgstr "" +msgstr "Acceso a archivos y directorios" #: ../Doc/library/filesys.rst:7 msgid "" @@ -28,31 +30,40 @@ msgid "" "manipulating paths in a portable way, and creating temporary files. The " "full list of modules in this chapter is:" msgstr "" +"Los módulos descritos en este capítulo tratan de archivos de disco y " +"directorios. Por ejemplo, hay módulos para leer las propiedades de los " +"archivos, manipular rutas de acceso de forma portátil y crear archivos " +"temporales. La lista completa de módulos en este capítulo es:" #: ../Doc/library/filesys.rst:32 msgid "Module :mod:`os`" -msgstr "" +msgstr "Módulo :mod:`os`" #: ../Doc/library/filesys.rst:31 msgid "" "Operating system interfaces, including functions to work with files at a " "lower level than Python :term:`file objects `." msgstr "" +"Interfaces del sistema operativo, incluidas las funciones para trabajar con " +"archivos en un nivel inferior al de Python :term:`file objects `." #: ../Doc/library/filesys.rst:36 msgid "Module :mod:`io`" -msgstr "" +msgstr "Módulo :mod:`io`" #: ../Doc/library/filesys.rst:35 msgid "" "Python's built-in I/O library, including both abstract classes and some " "concrete classes such as file I/O." msgstr "" +"La biblioteca de I/O integrada de Python, incluidas las clases abstractas y " +"algunas clases concretas, como la I/O de archivos." #: ../Doc/library/filesys.rst:38 msgid "Built-in function :func:`open`" -msgstr "" +msgstr "Función incorporada :func:`open`" #: ../Doc/library/filesys.rst:39 msgid "The standard way to open files for reading and writing with Python." -msgstr "" +msgstr "La forma estándar de abrir archivos para leer y escribir con Python." diff --git a/library/functions.po b/library/functions.po index f410891fbf..5993005501 100644 --- a/library/functions.po +++ b/library/functions.po @@ -80,7 +80,7 @@ msgstr ":func:`any`" #: ../Doc/library/functions.rst:15 msgid ":func:`dir`" -msgstr ":func:`any`" +msgstr ":func:`dir`" #: ../Doc/library/functions.rst:15 msgid ":func:`hex`" diff --git a/library/gzip.po b/library/gzip.po index 2728faeb20..9b2999a8c8 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -6,37 +6,42 @@ # 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: 2020-10-14 09:33-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: Alcides Rivarola\n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/gzip.rst:2 msgid ":mod:`gzip` --- Support for :program:`gzip` files" -msgstr "" +msgstr ":mod:`gzip` --- Soporte para archivos :program:`gzip`" #: ../Doc/library/gzip.rst:7 msgid "**Source code:** :source:`Lib/gzip.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/gzip.py`" #: ../Doc/library/gzip.rst:11 msgid "" "This module provides a simple interface to compress and decompress files " "just like the GNU programs :program:`gzip` and :program:`gunzip` would." msgstr "" +"Este módulo proporciona una interfaz simple para comprimir y descomprimir " +"archivos como lo harían los programas GNU :program:`gzip` y :program:" +"`gunzip`." #: ../Doc/library/gzip.rst:14 msgid "The data compression is provided by the :mod:`zlib` module." -msgstr "" +msgstr "La compresión de datos la proporciona el módulo :mod:`zlib`." #: ../Doc/library/gzip.rst:16 msgid "" @@ -46,6 +51,11 @@ msgid "" "files, automatically compressing or decompressing the data so that it looks " "like an ordinary :term:`file object`." msgstr "" +"El módulo :mod:`gzip` proporciona la clase :class:`GzipFile`, así como las " +"funciones de conveniencia :func:`.open`, :func:`compress` y :func:" +"`decompress`. La clase :class:`GzipFile` lee y escribe archivos de formato :" +"program:`gzip`, comprimiendo o descomprimiendo automáticamente los datos " +"para que parezcan un :term:`file object` ordinario." #: ../Doc/library/gzip.rst:22 msgid "" @@ -53,22 +63,31 @@ msgid "" "`gzip` and :program:`gunzip` programs, such as those produced by :program:" "`compress` and :program:`pack`, are not supported by this module." msgstr "" +"Tenga en cuenta que los formatos de archivo adicionales que pueden ser " +"descomprimidos por los programas :program:`gzip` y :program:`gunzip`, como " +"los producidos por :program:`compress` y :program:`pack`, no son compatibles " +"con este módulo." #: ../Doc/library/gzip.rst:26 msgid "The module defines the following items:" -msgstr "" +msgstr "El módulo define los siguientes elementos:" #: ../Doc/library/gzip.rst:31 msgid "" "Open a gzip-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" +"Abre un archivo comprimido gzip en modo binario o de texto, devolviendo un :" +"term:`file object`." #: ../Doc/library/gzip.rst:34 msgid "" "The *filename* argument can be an actual filename (a :class:`str` or :class:" "`bytes` object), or an existing file object to read from or write to." msgstr "" +"El argumento *filename* puede ser un nombre de archivo real (un objeto :" +"class:`str` o :class:`bytes`), o un objeto archivo existente para leer o " +"escribir." #: ../Doc/library/gzip.rst:37 msgid "" @@ -76,12 +95,18 @@ msgid "" "``'w'``, ``'wb'``, ``'x'`` or ``'xb'`` for binary mode, or ``'rt'``, " "``'at'``, ``'wt'``, or ``'xt'`` for text mode. The default is ``'rb'``." msgstr "" +"El argumento *mode* puede ser cualquiera de ``'r'``, ``'rb'``, ``'a'``, " +"``'ab'``, ``'w'``, ``'wb'``, ``'x'`` or ``'xb'`` para el modo binario, o " +"``'rt'``, ``'at'``, ``'wt'``, or ``'xt'`` para el modo texto. El valor " +"predeterminado es ``'rb'``." #: ../Doc/library/gzip.rst:41 msgid "" "The *compresslevel* argument is an integer from 0 to 9, as for the :class:" "`GzipFile` constructor." msgstr "" +"El argumento *compresslevel* es un número entero de 0 a 9, como para el " +"constructor :class:`GzipFile`." #: ../Doc/library/gzip.rst:44 msgid "" @@ -89,6 +114,9 @@ msgid "" "constructor: ``GzipFile(filename, mode, compresslevel)``. In this case, the " "*encoding*, *errors* and *newline* arguments must not be provided." msgstr "" +"Para el modo binario, esta función es equivalente al constructor :class:" +"`GzipFile`: ``GzipFile (filename, mode, compresslevel)``. En este caso, no " +"se deben proporcionar los argumentos *encoding*, *errors* y *newline*." #: ../Doc/library/gzip.rst:48 msgid "" @@ -96,20 +124,25 @@ msgid "" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" +"Para el modo texto, se crea un objeto :class:`GzipFile` y se envuelve en una " +"instancia :class:`io.TextIOWrapper` con la codificación especificada, " +"comportamiento de manejo de errores y terminación(es) de línea." #: ../Doc/library/gzip.rst:52 msgid "" "Added support for *filename* being a file object, support for text mode, and " "the *encoding*, *errors* and *newline* arguments." msgstr "" +"Se agregó soporte para que *filename* sea un objeto de archivo, soporte para " +"el modo de texto y los argumentos *encoding*, *errors* y *newline*." #: ../Doc/library/gzip.rst:56 msgid "Added support for the ``'x'``, ``'xb'`` and ``'xt'`` modes." -msgstr "" +msgstr "Se agregó soporte para los modos ``'x'``, ``'xb'`` y ``'xt'``." #: ../Doc/library/gzip.rst:59 ../Doc/library/gzip.rst:164 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Acepta un :term:`path-like object`." #: ../Doc/library/gzip.rst:64 msgid "" @@ -117,6 +150,9 @@ msgid "" "exc:`EOFError` and :exc:`zlib.error` can also be raised for invalid gzip " "files." msgstr "" +"Se lanzó una excepción para archivos gzip no válidos. Hereda :exc:" +"`OSError`. :exc:`OFError` y :exc:`zlib.error` también se pueden lanzar para " +"archivos gzip no válidos." #: ../Doc/library/gzip.rst:72 msgid "" @@ -125,6 +161,10 @@ msgid "" "method. At least one of *fileobj* and *filename* must be given a non-" "trivial value." msgstr "" +"Constructor para la clase :class:`GzipFile`, que simula la mayoría de los " +"métodos de :term:`file object`, con la excepción del método :meth:" +"`truncate`. Al menos uno de *fileobj* y *filename* debe recibir un valor no " +"trivial." #: ../Doc/library/gzip.rst:77 msgid "" @@ -133,7 +173,12 @@ msgid "" "It defaults to ``None``, in which case *filename* is opened to provide a " "file object." msgstr "" +"La nueva instancia de clase se basa en *fileobj*, que puede ser un archivo " +"normal, un objeto :class:`io.BytesIO`, o cualquier otro objeto que simule un " +"archivo. El valor predeterminado es ``None``, en cuyo caso se abre " +"*filename* para proporcionar un objeto de archivo." +# No estoy seguro si "It defaults to the filename of *fileobj*" lo traduje bien. #: ../Doc/library/gzip.rst:82 msgid "" "When *fileobj* is not ``None``, the *filename* argument is only used to be " @@ -142,6 +187,12 @@ msgid "" "*fileobj*, if discernible; otherwise, it defaults to the empty string, and " "in this case the original filename is not included in the header." msgstr "" +"Cuando *fileobj* no es ``None``, el argumento *filename* solo se usa para " +"ser incluido en el encabezado del archivo :program:`gzip`, que puede incluir " +"el nombre de archivo original del archivo sin comprimir. De forma " +"predeterminada, el nombre de archivo es de *fileobj*, si es discernible; de " +"lo contrario, el valor predeterminado es la cadena vacía, y en este caso el " +"nombre del archivo original no se incluye en el encabezado." #: ../Doc/library/gzip.rst:88 msgid "" @@ -150,6 +201,11 @@ msgid "" "be read or written. The default is the mode of *fileobj* if discernible; " "otherwise, the default is ``'rb'``." 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'``." #: ../Doc/library/gzip.rst:93 msgid "" @@ -157,6 +213,9 @@ msgid "" "file in text mode, use :func:`.open` (or wrap your :class:`GzipFile` with " "an :class:`io.TextIOWrapper`)." msgstr "" +"Tenga en cuenta que el archivo siempre se abre en modo binario. Para abrir " +"un archivo comprimido en modo de texto, utilice :func:`.open` (o ajuste su :" +"class:`GzipFile` con un :class:`io.TextIOWrapper`)." #: ../Doc/library/gzip.rst:97 msgid "" @@ -165,6 +224,10 @@ msgid "" "compression, and ``9`` is slowest and produces the most compression. ``0`` " "is no compression. The default is ``9``." msgstr "" +"El argumento *compresslevel* es un entero de ``0`` a ``9`` que controla el " +"nivel de compresión; ``1`` es más rápido y produce la menor compresión, y " +"``9`` es más lento y produce la mayor compresión. ``0`` no es una " +"compresión. El valor predeterminado es ``9``." #: ../Doc/library/gzip.rst:102 msgid "" @@ -173,6 +236,11 @@ msgid "" "be provided in compression mode. If omitted or ``None``, the current time " "is used. See the :attr:`mtime` attribute for more details." msgstr "" +"El argumento *mtime* es una marca de tiempo numérica opcional que se " +"escribirá en el campo de tiempo de última modificación de la secuencia al " +"comprimir. Sólo debe proporcionarse en modo de compresión. Si se omite o " +"``None``, se utiliza la hora actual. Consulte el atributo :attr:`mtime` para " +"obtener más detalles." #: ../Doc/library/gzip.rst:107 msgid "" @@ -182,17 +250,28 @@ msgid "" "writing as *fileobj*, and retrieve the resulting memory buffer using the :" "class:`io.BytesIO` object's :meth:`~io.BytesIO.getvalue` method." msgstr "" +"Al llamar en un objeto :class:`GzipFile` el método :meth:`close` no cierra " +"*fileobj*, ya que es posible que desee anexar más material después de los " +"datos comprimidos. Esto también le permite pasar un objeto :class:`io." +"BytesIO` que se abrió para escribir como *fileobj*, y recupera el búfer de " +"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:113 +#, 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." #: ../Doc/library/gzip.rst:117 msgid ":class:`GzipFile` also provides the following method and attribute:" -msgstr "" +msgstr ":class:`GzipFile` también proporciona el siguiente método y atributo:" #: ../Doc/library/gzip.rst:121 msgid "" @@ -200,6 +279,10 @@ msgid "" "single read on the compressed stream is done to satisfy the call. The " "number of bytes returned may be more or less than requested." msgstr "" +"Lee *n* bytes no comprimidos sin avanzar en la posición del archivo. A lo " +"sumo se realiza una sola lectura en la secuencia comprimida para satisfacer " +"la llamada. El número de bytes retornados puede ser mayor o menor de lo " +"solicitado." #: ../Doc/library/gzip.rst:126 msgid "" @@ -207,6 +290,9 @@ msgid "" "`GzipFile`, it may change the position of the underlying file object (e.g. " "if the :class:`GzipFile` was constructed with the *fileobj* parameter)." msgstr "" +"Al llamar a :meth:`peek` no cambia la posición del archivo :class:" +"`GzipFile`, puede cambiar la posición del objeto de archivo subyacente (por " +"ejemplo, si el :class:`GzipFile` se construyó con el parámetro *fileobj*)." #: ../Doc/library/gzip.rst:135 msgid "" @@ -214,6 +300,9 @@ msgid "" "most recently read header may be read from this attribute, as an integer. " "The initial value before reading any headers is ``None``." msgstr "" +"Al descomprimir, el valor de la última modificación del campo de tiempo en " +"el encabezado de lectura más reciente se puede leer de este atributo, como " +"un entero. El valor inicial antes de leer cualquier encabezado es ``None``." #: ../Doc/library/gzip.rst:139 msgid "" @@ -223,24 +312,33 @@ msgid "" "time` and the :attr:`~os.stat_result.st_mtime` attribute of the object " "returned by :func:`os.stat`." msgstr "" +"Todas las secuencias comprimidas :program:`gzip` deben contener este campo " +"de marca de tiempo. Algunos programas, como :program:`gunzip`\\, hacen uso " +"de la marca de tiempo. El formato es el mismo que el valor retornado de :" +"func:`time.time` y el atributo :attr:`~os.stat_result.st_mtime` del objeto " +"retornado por :func:`os.stat`." #: ../Doc/library/gzip.rst:145 msgid "" "Support for the :keyword:`with` statement was added, along with the *mtime* " "constructor argument and :attr:`mtime` attribute." msgstr "" +"Se ha agregado soporte para la declaración :keyword:`with`, junto con el " +"argumento del constructor *mtime* y el atributo :attr:`mtime`." #: ../Doc/library/gzip.rst:149 msgid "Support for zero-padded and unseekable files was added." msgstr "" +"Se agregó soporte para archivos con relleno de ceros y que no se pueden " +"buscar." #: ../Doc/library/gzip.rst:152 msgid "The :meth:`io.BufferedIOBase.read1` method is now implemented." -msgstr "" +msgstr "El método :meth:`io.BufferedIOBase.read1` ahora está implementado." #: ../Doc/library/gzip.rst:155 msgid "Added support for the ``'x'`` and ``'xb'`` modes." -msgstr "" +msgstr "Se agregó soporte para los modos ``'x'`` y ``'xb'``." #: ../Doc/library/gzip.rst:158 msgid "" @@ -248,6 +346,9 @@ msgid "" "object>`. The :meth:`~io.BufferedIOBase.read` method now accepts an argument " "of ``None``." msgstr "" +"Se ha añadido soporte para escribir objetos arbitrarios :term:`bytes-like " +"objects `. El método :meth:`~io.BufferedIOBase.read` " +"ahora acepta un argumento de ``None``." #: ../Doc/library/gzip.rst:170 msgid "" @@ -255,87 +356,100 @@ msgid "" "compressed data. *compresslevel* and *mtime* have the same meaning as in " "the :class:`GzipFile` constructor above." msgstr "" +"Comprima los *data*, devolviendo un objeto :class:`bytes` que contiene los " +"datos comprimidos. *compresslevel* y *mtime* tienen el mismo significado que " +"en el constructor :class:`GzipFile` anterior." #: ../Doc/library/gzip.rst:175 msgid "Added the *mtime* parameter for reproducible output." -msgstr "" +msgstr "Se agregó el parámetro *mtime* para una salida reproducible." #: ../Doc/library/gzip.rst:180 msgid "" "Decompress the *data*, returning a :class:`bytes` object containing the " "uncompressed data." msgstr "" +"Descomprime los *data*, devolviendo un objeto :class:`bytes` que contiene " +"los datos sin comprimir." #: ../Doc/library/gzip.rst:189 msgid "Examples of usage" -msgstr "" +msgstr "Ejemplos de uso" #: ../Doc/library/gzip.rst:191 msgid "Example of how to read a compressed file::" -msgstr "" +msgstr "Ejemplos de como leer un archivo comprimido::" #: ../Doc/library/gzip.rst:197 msgid "Example of how to create a compressed GZIP file::" -msgstr "" +msgstr "Ejemplos de como crear un archivo comprimido GZIP::" #: ../Doc/library/gzip.rst:204 msgid "Example of how to GZIP compress an existing file::" -msgstr "" +msgstr "Ejemplos de como GZIP comprime un archivo existente::" #: ../Doc/library/gzip.rst:212 msgid "Example of how to GZIP compress a binary string::" -msgstr "" +msgstr "Ejemplo de como GZIP comprime una cadena binaria::" #: ../Doc/library/gzip.rst:221 msgid "Module :mod:`zlib`" -msgstr "" +msgstr "Módulo :mod:`zlib`" #: ../Doc/library/gzip.rst:221 msgid "" "The basic data compression module needed to support the :program:`gzip` file " "format." msgstr "" +"El módulo básico de compresión de datos necesario para admitir el formato de " +"archivo :program:`gzip`." #: ../Doc/library/gzip.rst:228 msgid "Command Line Interface" -msgstr "" +msgstr "Interfaz de Línea de Comandos" #: ../Doc/library/gzip.rst:230 msgid "" "The :mod:`gzip` module provides a simple command line interface to compress " "or decompress files." msgstr "" +"El módulo :mod:`gzip` proporciona una interfaz de línea de comandos simple " +"para comprimir o descomprimir archivos." #: ../Doc/library/gzip.rst:233 msgid "Once executed the :mod:`gzip` module keeps the input file(s)." msgstr "" +"Una vez ejecutado el módulo :mod:`gzip` conserva los archivos de entrada." #: ../Doc/library/gzip.rst:237 msgid "" "Add a new command line interface with a usage. By default, when you will " "execute the CLI, the default compression level is 6." msgstr "" +"Agrega una nueva interfaz de línea de comandos con un uso. De forma " +"predeterminada, cuando ejecutará la CLI, el nivel de compresión " +"predeterminado es 6." #: ../Doc/library/gzip.rst:241 msgid "Command line options" -msgstr "" +msgstr "Opciones de línea de comandos" #: ../Doc/library/gzip.rst:245 msgid "If *file* is not specified, read from :attr:`sys.stdin`." -msgstr "" +msgstr "Si no se especifica *file*, lee de :attr:`sys.stdin`." #: ../Doc/library/gzip.rst:249 msgid "Indicates the fastest compression method (less compression)." -msgstr "" +msgstr "Indica el método de compresión más rápido (menos compresión)." #: ../Doc/library/gzip.rst:253 msgid "Indicates the slowest compression method (best compression)." -msgstr "" +msgstr "Indica el método de compresión más lento (mejor compresión)." #: ../Doc/library/gzip.rst:257 msgid "Decompress the given file." -msgstr "" +msgstr "Descomprime el archivo dado." #: ../Doc/library/gzip.rst:261 msgid "Show the help message." -msgstr "" +msgstr "Muestra el mensaje de ayuda." diff --git a/library/hashlib.po b/library/hashlib.po index fc1f1d3463..161979c1b2 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -1,29 +1,30 @@ # 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: 2020-10-29 14:39+0100\n" +"Last-Translator: Álvaro Mondéjar \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" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/hashlib.rst:2 msgid ":mod:`hashlib` --- Secure hashes and message digests" -msgstr "" +msgstr ":mod:`hashlib` --- Hashes seguros y resúmenes de mensajes" #: ../Doc/library/hashlib.rst:10 msgid "**Source code:** :source:`Lib/hashlib.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/hashlib.py`" #: ../Doc/library/hashlib.rst:23 msgid "" @@ -34,22 +35,33 @@ msgid "" "hash\" and \"message digest\" are interchangeable. Older algorithms were " "called message digests. The modern term is secure hash." msgstr "" +"Este módulo implementa una interfaz común a diferentes algoritmos de hash y " +"resúmenes de mensajes seguros. Están incluidos los algoritmos de hash FIPS " +"seguros SHA1, SHA224, SHA226, SHA384 y SHA512 (definidos en FIPS 180-2) " +"además del algoritmo MD5 de RSA (definido en Internet :rfc:`1321`). Los " +"términos \"hash seguro\" y \"resumen de mensaje\" son intercambiables. Los " +"algoritmos más antiguos fueron denominados resúmenes de mensajes. El término " +"moderno es hash seguro." #: ../Doc/library/hashlib.rst:32 msgid "" "If you want the adler32 or crc32 hash functions, they are available in the :" "mod:`zlib` module." msgstr "" +"Si quieres las funciones de hash adler32 o crc32, están disponibles en el " +"módulo :mod:`zlib`." #: ../Doc/library/hashlib.rst:37 msgid "" "Some algorithms have known hash collision weaknesses, refer to the \"See also" "\" section at the end." msgstr "" +"Algunos algoritmos tienen conocidas debilidades de colisión de hash, " +"consulte la sección \"Ver también\" al final." #: ../Doc/library/hashlib.rst:44 msgid "Hash algorithms" -msgstr "" +msgstr "Algoritmos de hash" #: ../Doc/library/hashlib.rst:46 msgid "" @@ -61,18 +73,29 @@ msgid "" "`digest` of the concatenation of the data fed to it so far using the :meth:" "`digest` or :meth:`hexdigest` methods." msgstr "" +"Hay un método constructor nombrado para cada tipo de :dfn:`hash`. Todos " +"retornan un objeto de hash con la misma interfaz simple. Por ejemplo, usa :" +"func:`sha256` para crear un objeto de hash SHA-256. Ahora puedes alimentar " +"este objeto con :term:`objetos como bytes ` (normalmente :" +"class:`bytes`) usando el método :meth:`update`. En cualquier punto puedes " +"pedir el resumen (:dfn:`digest`) de la concatenación de los datos " +"alimentados al mismo usando los métodos :meth:`digest` o :meth:`hexdigest`." #: ../Doc/library/hashlib.rst:56 msgid "" "For better multithreading performance, the Python :term:`GIL` is released " "for data larger than 2047 bytes at object creation or on update." msgstr "" +"Para un rendimiento multihilo mejor, el :term:`GIL` de Python es liberado " +"para datos superiores a 2047 bytes en la creación o actualización de objetos." #: ../Doc/library/hashlib.rst:61 msgid "" "Feeding string objects into :meth:`update` is not supported, as hashes work " "on bytes, not on characters." msgstr "" +"La alimentación de objetos de cadenas en :meth:`update` no está soportada, " +"ya que los hashes funcionan en bytes, no en caracteres." #: ../Doc/library/hashlib.rst:66 msgid "" @@ -85,26 +108,39 @@ msgid "" "most platforms the :func:`sha3_224`, :func:`sha3_256`, :func:`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." #: ../Doc/library/hashlib.rst:76 msgid "" "SHA3 (Keccak) and SHAKE constructors :func:`sha3_224`, :func:`sha3_256`, :" "func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." msgstr "" +"Constructores SHA3 (Keccak) y SHAKE :func:`sha3_224`, :func:`sha3_256`, :" +"func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." #: ../Doc/library/hashlib.rst:80 msgid ":func:`blake2b` and :func:`blake2s` were added." -msgstr "" +msgstr "Fueron añadidas :func:`blake2b` y :func:`blake2s`." #: ../Doc/library/hashlib.rst:83 msgid "" "For example, to obtain the digest of the byte string ``b'Nobody inspects the " "spammish repetition'``::" msgstr "" +"Por ejemplo, para obtener el resumen de la cadena de bytes ``b'Nobody " +"inspects the spammish repetition'``::" #: ../Doc/library/hashlib.rst:97 msgid "More condensed:" -msgstr "" +msgstr "Más resumido:" #: ../Doc/library/hashlib.rst:104 msgid "" @@ -114,14 +150,19 @@ msgid "" "library may offer. The named constructors are much faster than :func:`new` " "and should be preferred." msgstr "" +"Es un constructor genérico que toma la cadena *name* del algoritmo deseado " +"como su primer parámetro. También existe para permitir acceso a los hashes " +"arriba listados así como cualquiera de los otros algoritmos que tu " +"biblioteca OpenSSL puede ofrecer. Los constructores nombrados son mucho más " +"rápidos que :func:`new` y deberían preferirse." #: ../Doc/library/hashlib.rst:110 msgid "Using :func:`new` with an algorithm provided by OpenSSL:" -msgstr "" +msgstr "Usando :func:`new` con un algoritmo provisto por OpenSSL:" #: ../Doc/library/hashlib.rst:117 msgid "Hashlib provides the following constant attributes:" -msgstr "" +msgstr "Hashlib provee los siguientes atributos constantes:" #: ../Doc/library/hashlib.rst:121 msgid "" @@ -130,6 +171,10 @@ msgid "" "some upstream vendors offering an odd \"FIPS compliant\" Python build that " "excludes it." msgstr "" +"Un conjunto que contiene los nombres de los algoritmos garantizados a ser " +"soportados por este módulo en todas las plataformas. Ten en cuenta que 'md5' " +"se encuentra en esta lista a pesar de que algunos proveedores ofrecen una " +"extraña construcción Python \"compatible con FIPS\" que la excluye." #: ../Doc/library/hashlib.rst:130 msgid "" @@ -139,30 +184,39 @@ msgid "" "same algorithm may appear multiple times in this set under different names " "(thanks to OpenSSL)." msgstr "" +"Un conjunto que contiene los nombres de los algoritmos de hash que están " +"disponibles en el intérprete de Python en ejecución. Estos nombres serán " +"reconocidos cuando sean pasados a :func:`new`. :attr:`algorithms_guaranteed` " +"siempre será un subconjunto. El mismo algoritmo puede aparecer múltiples " +"veces en este conjunto bajo diferentes nombres (gracias a OpenSSL)." #: ../Doc/library/hashlib.rst:138 msgid "" "The following values are provided as constant attributes of the hash objects " "returned by the constructors:" msgstr "" +"Los siguientes valores son provistos como atributos constantes de los " +"objetos hash retornados por los constructores:" #: ../Doc/library/hashlib.rst:144 msgid "The size of the resulting hash in bytes." -msgstr "" +msgstr "El tamaño del hash resultante en bytes." #: ../Doc/library/hashlib.rst:148 msgid "The internal block size of the hash algorithm in bytes." -msgstr "" +msgstr "El tamaño del bloque interno del algoritmo de hash en bytes." #: ../Doc/library/hashlib.rst:150 msgid "A hash object has the following attributes:" -msgstr "" +msgstr "Un objeto hash tiene los siguientes atributos:" #: ../Doc/library/hashlib.rst:154 msgid "" "The canonical name of this hash, always lowercase and always suitable as a " "parameter to :func:`new` to create another hash of this type." msgstr "" +"El nombre canónico de este hash, siempre en minúsculas y siempre adecuado " +"como un parámetro a :func:`new` para crear otro hash de este tipo." #: ../Doc/library/hashlib.rst:157 msgid "" @@ -170,10 +224,13 @@ msgid "" "until Python 3.4 was not formally specified, so may not exist on some " "platforms." msgstr "" +"El atributo *name* ha estado presente en CPython desde su inicio, pero desde " +"Python 3.4 no fue especificado formalmente, por lo que puede no existir en " +"algunas plataformas." #: ../Doc/library/hashlib.rst:162 msgid "A hash object has the following methods:" -msgstr "" +msgstr "Un objeto hash tiene los siguientes métodos:" #: ../Doc/library/hashlib.rst:167 msgid "" @@ -181,6 +238,10 @@ msgid "" "are equivalent to a single call with the concatenation of all the arguments: " "``m.update(a); m.update(b)`` is equivalent to ``m.update(a+b)``." msgstr "" +"Actualiza el objeto de hash con el :term:`bytes-like object`. Invocaciones " +"repetidas son equivalentes a una única invocación con la concatenación de " +"todos los argumentos: ``m.update(a); m.update(b)`` es equivalente a ``m." +"update(a+b)``." #: ../Doc/library/hashlib.rst:172 msgid "" @@ -188,6 +249,9 @@ msgid "" "on data larger than 2047 bytes is taking place when using hash algorithms " "supplied by OpenSSL." msgstr "" +"El GIL de Python es liberado para permitir a otros hilos ejecutarse mientras " +"ocurren actualizaciones de hash en datos con tamaños superiores a 2047 bytes " +"cuando se usan algoritmos de hash suministrados por OpenSSL." #: ../Doc/library/hashlib.rst:180 msgid "" @@ -195,6 +259,9 @@ msgid "" "This is a bytes object of size :attr:`digest_size` which may contain bytes " "in the whole range from 0 to 255." msgstr "" +"Retorna el resumen de los datos pasados al método :meth:`update` hasta el " +"momento. Este es un objeto de bytes de tamaño :attr:`digest_size` el cual " +"puede contener bytes en el rango completo desde 0 a 255." #: ../Doc/library/hashlib.rst:187 ../Doc/library/hashlib.rst:215 msgid "" @@ -202,16 +269,23 @@ msgid "" "double length, containing only hexadecimal digits. This may be used to " "exchange the value safely in email or other non-binary environments." msgstr "" +"Como :meth:`digest` excepto que el resumen es retornado como un objeto de " +"cadena del doble de largo, conteniendo sólo dígitos hexadecimales. Este " +"puede ser usado para intercambiar el valor de forma segura en correos " +"electrónicos u otros entornos no binarios." #: ../Doc/library/hashlib.rst:194 msgid "" "Return a copy (\"clone\") of the hash object. This can be used to " "efficiently compute the digests of data sharing a common initial substring." msgstr "" +"Retorna una copia (\"clon\") del objeto hash. Este puede ser usado para " +"calcular eficientemente los resúmenes de datos compartiendo una subcadena " +"inicial común." #: ../Doc/library/hashlib.rst:199 msgid "SHAKE variable length digests" -msgstr "" +msgstr "Resúmenes SHAKE de largo variable" #: ../Doc/library/hashlib.rst:201 msgid "" @@ -220,6 +294,10 @@ msgid "" "such, their digest methods require a length. Maximum length is not limited " "by the SHAKE algorithm." msgstr "" +"Los algoritmos :func:`shake_128` y :func:`shake_256` proveen resúmenes de " +"largo variable con largo_en_bits//2 hasta 128 ó 256 bits de seguridad. Como " +"tales, sus métodos de resumen requieren un largo. El largo máximo no está " +"limitado por el algoritmo SHAKE." #: ../Doc/library/hashlib.rst:208 msgid "" @@ -227,10 +305,13 @@ msgid "" "This is a bytes object of size *length* which may contain bytes in the whole " "range from 0 to 255." msgstr "" +"Retorna el resumen de los datos pasados al método :meth:`update` hasta el " +"momento. Este es un objeto de bytes de tamaño *length* el cual puede " +"contener bytes en el rango completo desde 0 a 255." #: ../Doc/library/hashlib.rst:221 msgid "Key derivation" -msgstr "" +msgstr "Derivación de clave" #: ../Doc/library/hashlib.rst:223 msgid "" @@ -240,12 +321,19 @@ msgid "" "be tunable, slow, and include a `salt `_." msgstr "" +"Los algoritmos de derivación de clave y estiramiento de clave están " +"diseñados para el cifrado seguro de contraseña. Algoritmos ingenuos como " +"``sha1(password)`` no son resistentes contra ataques de fuerza bruta. Una " +"buena función hash de contraseña debe ser afinable, lenta e incluir una `sal " +"`_." #: ../Doc/library/hashlib.rst:231 msgid "" "The function provides PKCS#5 password-based key derivation function 2. It " "uses HMAC as pseudorandom function." msgstr "" +"La función provee contraseñas PKCS#5 basadas en función de derivación de " +"clave 2. Usa HMAC como función de pseudoaleatoriedad." #: ../Doc/library/hashlib.rst:234 msgid "" @@ -255,6 +343,11 @@ msgid "" "sensible length (e.g. 1024). *salt* should be about 16 or more bytes from a " "proper source, e.g. :func:`os.urandom`." msgstr "" +"La cadena *hash_name* es el nombre deseado del algoritmo de resumen de hash " +"para HMAC, ej. 'sha1' o 'sha256'. *password* y *salt* son interpretados como " +"búferes de bytes. Aplicaciones y bibliotecas deberían limitar *password* a " +"un largo razonable (ej. 1024). *salt* debería ser sobre 16 o más bytes desde " +"una fuente adecuada, ej. :func:`os.urandom`." #: ../Doc/library/hashlib.rst:240 msgid "" @@ -262,12 +355,18 @@ msgid "" "computing power. As of 2013, at least 100,000 iterations of SHA-256 are " "suggested." msgstr "" +"El número de *iterations* debería ser elegido basado en el algoritmo de hash " +"y el poder de cómputo. A partir del 2013, se sugiere al menos 100,000 " +"iteraciones de SHA-256." #: ../Doc/library/hashlib.rst:244 msgid "" "*dklen* is the length of the derived key. If *dklen* is ``None`` then the " "digest size of the hash algorithm *hash_name* is used, e.g. 64 for SHA-512." msgstr "" +"*dklen* es el largo de la clave derivada. Si *dklen* es ``None`` entonces el " +"tamaño de resumen del algoritmo de hash *hash_name* es usado, ej. 64 para " +"SHA-512." #: ../Doc/library/hashlib.rst:256 msgid "" @@ -275,12 +374,17 @@ msgid "" "Python implementation uses an inline version of :mod:`hmac`. It is about " "three times slower and doesn't release the GIL." msgstr "" +"Una implementación rápida de *pbkdf2_hmac* está disponible con OpenSSL. La " +"implementación Python usa una versión en línea de :mod:`hmac`. Es " +"aproximadamente tres veces más lenta y no libera el GIL." #: ../Doc/library/hashlib.rst:262 msgid "" "The function provides scrypt password-based key derivation function as " "defined in :rfc:`7914`." msgstr "" +"La función provee una contraseña scrypt basada en una función derivación de " +"clave como es definida en :rfc:`7914`." #: ../Doc/library/hashlib.rst:265 msgid "" @@ -289,6 +393,10 @@ msgid "" "length (e.g. 1024). *salt* should be about 16 or more bytes from a proper " "source, e.g. :func:`os.urandom`." msgstr "" +"*password* y *salt* deben ser :term:`objetos de bytes `. " +"Aplicaciones y bibliotecas deberían limitar *password* a un largo razonable " +"(ej. 1024). *salt* debería ser aproximadamente 16 o más bytes de una fuente " +"adecuada, ej. :func:`os.unrandom`." #: ../Doc/library/hashlib.rst:270 msgid "" @@ -296,134 +404,159 @@ msgid "" "factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " "*dklen* is the length of the derived key." msgstr "" +"*n* es el factor de coste de CPU/Memoria, *r* el tamaño de bloque, *p* el " +"factor de paralelización y *maxmem* limita la memoria (OpenSSL 1.1.0 por " +"defecto a 32 MiB). *dklen* es el largo de la clave derivada." #: ../Doc/library/hashlib.rst:275 msgid ":ref:`Availability `: OpenSSL 1.1+." -msgstr "" +msgstr ":ref:`Disponibilidad `: OpenSSL 1.1+." #: ../Doc/library/hashlib.rst:280 msgid "BLAKE2" -msgstr "" +msgstr "BLAKE2" #: ../Doc/library/hashlib.rst:287 msgid "" "BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " "in two flavors:" msgstr "" +"BLAKE2_ es una función de hash criptográfico definida en :rfc:`7693` que " +"viene en dos sabores:" #: ../Doc/library/hashlib.rst:290 msgid "" "**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " "between 1 and 64 bytes," msgstr "" +"**BLAKE2b**, optimizada para plataformas de 64 bits y produce resúmenes de " +"cualquier tamaño entre 1 y 64 bytes," #: ../Doc/library/hashlib.rst:293 msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." msgstr "" +"**BLAKE2s**, optimizada para plataformas de 8 a 32 bits y produce resúmenes " +"de cualquier tamaño entre 1 y 32 bytes." #: ../Doc/library/hashlib.rst:296 msgid "" "BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " "**salted hashing**, **personalization**, and **tree hashing**." msgstr "" +"BLAKE2 proporciona el **modo keyed** (un remplazamiento más simple rápido " +"para HMAC_), **cifrado salado** (*salted hashing*), **personalización** y " +"**cifrado de árbol**." #: ../Doc/library/hashlib.rst:299 msgid "" "Hash objects from this module follow the API of standard library's :mod:" "`hashlib` objects." msgstr "" +"Los objetos hash de este módulo siguen los estándares de los objetos de la " +"biblioteca :mod:`hashlib`." #: ../Doc/library/hashlib.rst:304 msgid "Creating hash objects" -msgstr "" +msgstr "Creando objetos hash" #: ../Doc/library/hashlib.rst:306 msgid "New hash objects are created by calling constructor functions:" -msgstr "" +msgstr "Se crean nuevos objetos hash invocando a las funciones de constructor:" #: ../Doc/library/hashlib.rst:318 msgid "" "These functions return the corresponding hash objects for calculating " "BLAKE2b or BLAKE2s. They optionally take these general parameters:" msgstr "" +"Estas funciones retornan los objetos hash correspondientes para calcular " +"BLAKE2b o BLAKE2s. Ellas toman opcionalmente estos parámetros generales:" #: ../Doc/library/hashlib.rst:321 msgid "" "*data*: initial chunk of data to hash, which must be :term:`bytes-like " "object`. It can be passed only as positional argument." msgstr "" +"*data*: trozo inicial de datos a cifrar, el cual debe ser un :term:`bytes-" +"like object`. Puede ser pasado sólo como argumento posicional." #: ../Doc/library/hashlib.rst:324 msgid "*digest_size*: size of output digest in bytes." -msgstr "" +msgstr "*digest_size*: tamaño del resumen de salida en bytes." #: ../Doc/library/hashlib.rst:326 msgid "" "*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " "BLAKE2s)." msgstr "" +"*key*: clave para el cifrado de clave (*keyed hashing*) (hasta 64 bytes para " +"BLAKE2b, hasta 32 bytes para BLAKE2s)." #: ../Doc/library/hashlib.rst:329 msgid "" "*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " "bytes for BLAKE2s)." msgstr "" +"*salt*: sal para el cifrado aleatorio (hasta 16 bytes para BLAKE2b, hasta 8 " +"bytes para BLAKE2s)." #: ../Doc/library/hashlib.rst:332 msgid "" "*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " "for BLAKE2s)." msgstr "" +"*person*: cadena de personalización (hasta 16 bytes para BLAKE2b, hasta 8 " +"bytes para BLAKE2s)." #: ../Doc/library/hashlib.rst:335 msgid "The following table shows limits for general parameters (in bytes):" msgstr "" +"La siguiente tabla muestra los límites para parámetros generales (en bytes):" #: ../Doc/library/hashlib.rst:338 msgid "Hash" -msgstr "" +msgstr "Cifrado" #: ../Doc/library/hashlib.rst:338 msgid "digest_size" -msgstr "" +msgstr "digest_size" #: ../Doc/library/hashlib.rst:338 msgid "len(key)" -msgstr "" +msgstr "len(key)" #: ../Doc/library/hashlib.rst:338 msgid "len(salt)" -msgstr "" +msgstr "len(salt)" #: ../Doc/library/hashlib.rst:338 msgid "len(person)" -msgstr "" +msgstr "len(person)" #: ../Doc/library/hashlib.rst:340 msgid "BLAKE2b" -msgstr "" +msgstr "BLAKE2b" #: ../Doc/library/hashlib.rst:340 msgid "64" -msgstr "" +msgstr "64" #: ../Doc/library/hashlib.rst:340 msgid "16" -msgstr "" +msgstr "16" #: ../Doc/library/hashlib.rst:341 msgid "BLAKE2s" -msgstr "" +msgstr "BLAKE2s" #: ../Doc/library/hashlib.rst:341 msgid "32" -msgstr "" +msgstr "32" #: ../Doc/library/hashlib.rst:341 msgid "8" -msgstr "" +msgstr "8" #: ../Doc/library/hashlib.rst:346 msgid "" @@ -434,89 +567,118 @@ msgid "" "example, ``b'salt'`` and ``b'salt\\x00'`` is the same value. (This is not " "the case for *key*.)" msgstr "" +"La especificación BLAKE2 define largos constantes para los parámetros de sal " +"y personalización, sin embargo, por conveniencia, esta implementación acepta " +"cadenas de bytes de cualquier tamaño hasta el largo especificado. Si el " +"largo del parámetro es menor que el especificado, es acolchado con ceros, " +"por lo tanto, por ejemplo, ``b'salt'`` y ``b'salt\\x00'`` es el mismo valor. " +"(Este no es el caso para *key*.)" #: ../Doc/library/hashlib.rst:353 msgid "These sizes are available as module `constants`_ described below." msgstr "" +"Estos tamaños están disponibles como `constantes`_ del módulo descritas " +"abajo." #: ../Doc/library/hashlib.rst:355 msgid "" "Constructor functions also accept the following tree hashing parameters:" msgstr "" +"Las funciones constructoras también aceptan los siguientes parámetros de " +"cifrado de árbol:" #: ../Doc/library/hashlib.rst:357 msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." msgstr "" +"*fanout*: despliegue en abanico (0 a 255, 0 si ilimitado, 1 en modo " +"secuencial)." #: ../Doc/library/hashlib.rst:359 msgid "" "*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " "mode)." msgstr "" +"*depth*: profundidad máxima del árbol (1 a 255, 255 si ilimitado, 1 en modo " +"secuencial)." #: ../Doc/library/hashlib.rst:362 msgid "" "*leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in " "sequential mode)." msgstr "" +"*leaf_size*: tamaño máximo en bytes de hoja (0 a 2**32-1, 0 si ilimitado o " +"en modo secuencial)." #: ../Doc/library/hashlib.rst:365 msgid "" "*node_offset*: node offset (0 to 2**64-1 for BLAKE2b, 0 to 2**48-1 for " "BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." msgstr "" +"*node_offset*: desplazamiento del nodo (0 a 2**64-1 para BLAKE2b, 0 a 2**48 " +"para BLAKE2s, 0 para la primera, la hoja más a la izquierda o en modo " +"secuencial)." #: ../Doc/library/hashlib.rst:368 msgid "" "*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." msgstr "" +"*node_depth*: profundidad de nodo (0 a 255, 0 para hojas o en modo " +"secuencial)." #: ../Doc/library/hashlib.rst:370 msgid "" "*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " "in sequential mode)." msgstr "" +"*inner_size*: tamaño interno del resumen (0 a 64 para BLAKE2b, 0 a 32 para " +"BLAKE2s, 0 en modo secuencial)." #: ../Doc/library/hashlib.rst:373 msgid "" "*last_node*: boolean indicating whether the processed node is the last one " "(`False` for sequential mode)." msgstr "" +"*last_node*: booleano indicando si el nodo procesado es el último (`False` " +"para modo secuencial)." #: ../Doc/library/hashlib.rst:379 msgid "" "See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." msgstr "" +"Consulta la sección 2.10 en la `especificación BLAKE2 ` para una revisión integral del cifrado en árbol." #: ../Doc/library/hashlib.rst:385 msgid "Constants" -msgstr "" +msgstr "Constantes" #: ../Doc/library/hashlib.rst:390 msgid "Salt length (maximum length accepted by constructors)." -msgstr "" +msgstr "Largo de sal (largo máximo aceptado por los constructores)." #: ../Doc/library/hashlib.rst:396 msgid "" "Personalization string length (maximum length accepted by constructors)." msgstr "" +"Largo de cadena de personalización (largo máximo aceptado por los " +"constructores)." #: ../Doc/library/hashlib.rst:402 msgid "Maximum key size." -msgstr "" +msgstr "Tamaño máximo de clave." #: ../Doc/library/hashlib.rst:408 msgid "Maximum digest size that the hash function can output." -msgstr "" +msgstr "Tamaño máximo de resumen que puede producir la función hash." #: ../Doc/library/hashlib.rst:412 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/hashlib.rst:415 msgid "Simple hashing" -msgstr "" +msgstr "Cifrado simple" #: ../Doc/library/hashlib.rst:417 msgid "" @@ -526,22 +688,32 @@ msgid "" "object, and, finally, get the digest out of the object by calling :meth:" "`digest` (or :meth:`hexdigest` for hex-encoded string)." msgstr "" +"Para calcular el hash de algunos datos, primero debes construir un objeto " +"hash invocando a la función del constructor apropiada (:func:`blake2b` o :" +"func:`blake2s`), entonces actualizarlo con los datos invocando :meth:" +"`update` en el objeto y, finalmente, obtener el resumen del objeto " +"invocando :meth:`digest` (o :meth:`hexdigest` para una cadena codificada en " +"hexadecimal)." #: ../Doc/library/hashlib.rst:430 msgid "" "As a shortcut, you can pass the first chunk of data to update directly to " "the constructor as the positional argument:" msgstr "" +"Como atajo, puedes pasar el primer trozo de datos para actualizar " +"directamente el constructor como el argumento posicional:" #: ../Doc/library/hashlib.rst:437 msgid "" "You can call :meth:`hash.update` as many times as you need to iteratively " "update the hash:" msgstr "" +"Puedes invocar :meth:`hash.update` tantas veces como necesites para " +"actualizar el hash iterativamente:" #: ../Doc/library/hashlib.rst:450 msgid "Using different digest sizes" -msgstr "" +msgstr "Usar diferentes tamaños de resumen" #: ../Doc/library/hashlib.rst:452 msgid "" @@ -549,6 +721,10 @@ msgid "" "32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " "changing the size of output, we can tell BLAKE2b to produce 20-byte digests:" msgstr "" +"BLAKE2 tiene tamaño de resúmenes configurables de hasta 64 bytes para " +"BLAKE2b y 32 bytes para BLAKE2s. Por ejemplo, para remplazar SHA-1 con " +"BLAKE2b sin cambiar el tamaño de la salida, puedes decirle a BLAKE2b que " +"produzca resúmenes de 20 bytes:" #: ../Doc/library/hashlib.rst:466 msgid "" @@ -556,10 +732,14 @@ msgid "" "(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " "produce different outputs even if the output length is the same:" msgstr "" +"Objetos hash con diferentes tamaños de resumen tienen salidas completamente " +"diferentes (hashes más cortos *no* son prefijos de hashes más largos); " +"BLAKE2b y BLAKE2s producen salidas diferentes incluso si el largo de salida " +"es el mismo:" #: ../Doc/library/hashlib.rst:482 msgid "Keyed hashing" -msgstr "" +msgstr "Cifrado de clave" #: ../Doc/library/hashlib.rst:484 msgid "" @@ -569,28 +749,41 @@ msgid "" "can be securely used in prefix-MAC mode thanks to the indifferentiability " "property inherited from BLAKE." msgstr "" +"El cifrado de clave puede ser usado para autentificación como remplazo más " +"rápido y simple para `Código de autentificación de mensajes en clave-hash " +"`_ (HMAC). BLAKE2 puede ser usado de " +"forma segura en modo de prefijo MAC gracias a la propiedad de " +"indiferenciabilidad heredada de BLAKE." #: ../Doc/library/hashlib.rst:490 msgid "" "This example shows how to get a (hex-encoded) 128-bit authentication code " "for message ``b'message data'`` with key ``b'pseudorandom key'``::" msgstr "" +"Este ejemplo muestra como obtener un código de autentificación (codificado " +"como hexadecimal) de 128 bits para el mensaje ``b'message data'`` con la " +"clave ``b'pseudorandom key'``::" #: ../Doc/library/hashlib.rst:500 msgid "" "As a practical example, a web application can symmetrically sign cookies " "sent to users and later verify them to make sure they weren't tampered with::" msgstr "" +"Como ejemplo práctico, una aplicación web puede firmar simétricamente " +"cookies enviadas a los usuarios y verificarlas más tarde para asegurar que " +"no fueron manipuladas con::" #: ../Doc/library/hashlib.rst:529 msgid "" "Even though there's a native keyed hashing mode, BLAKE2 can, of course, be " "used in HMAC construction with :mod:`hmac` module::" msgstr "" +"Incluso aunque hay un modo de cifrado de claves nativo, BLAKE2 puede, por " +"supuesto, ser usado en construcción de HMAC con el módulo :mod:`hmac`::" #: ../Doc/library/hashlib.rst:540 msgid "Randomized hashing" -msgstr "" +msgstr "Cifrado aleatorio" #: ../Doc/library/hashlib.rst:542 msgid "" @@ -598,6 +791,9 @@ msgid "" "function. Randomized hashing is useful for protecting against collision " "attacks on the hash function used in digital signatures." msgstr "" +"Definiendo el parámetro *salt* los usuarios pueden introducir aleatoriedad a " +"la función hash. El cifrado aleatorio es útil para proteger contra ataques " +"de colisión en la función hash usada en firmas digitales." #: ../Doc/library/hashlib.rst:546 msgid "" @@ -619,18 +815,42 @@ msgid "" "hashing may reduce the amount of security provided by a digital signature " "when all portions of the message are prepared by the signer." msgstr "" +"El cifrado aleatorio está diseñado para situaciones en las que una parte, el " +"preparador del mensaje, genera todo o parte de un mensaje para ser firmado " +"por una segunda parte, el firmante del mensaje. Si el preparador del mensaje " +"es capaz de encontrar colisiones de funciones hash criptográficas (ej., dos " +"mensajes produciendo el mismo valor de hash), entonces ellos pueden preparar " +"versiones significativas del mensaje que producirían el mismo valor de hash " +"y firma digital, pero con diferentes resultados (ej., transfiriendo " +"1,000,000 $ a una cuenta, en lugar de 10 $), Las funciones de hash " +"criptográfico han sido diseñadas con resistencia de colisión como objetivo " +"principal, pero la concentración actual en el ataque a las funciones hash " +"criptográficas puede resultar en una función hash criptográfica dada que " +"provea menor resistencia de colisión de la esperada. El cifrado aleatorio " +"ofrece al firmante protección adicional reduciendo la probabilidad de que un " +"preparador puede generar dos o más mensajes que en última instancia producen " +"el mismo valor hash durante el proceso de generación de la firma digital, " +"--- incluso si es práctico encontrar colisiones para la función hash. Sin " +"embargo, el uso de cifrado aleatorio puede reducir la cantidad de seguridad " +"provista por una firma digital cuando todas las porciones del mensaje son " +"preparadas por el firmante." #: ../Doc/library/hashlib.rst:565 msgid "" "(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_)" msgstr "" +"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_)" #: ../Doc/library/hashlib.rst:568 msgid "" "In BLAKE2 the salt is processed as a one-time input to the hash function " "during initialization, rather than as an input to each compression function." msgstr "" +"En BLAKE2 la sal es procesada como una entrada de una vez a la función hash " +"durante la inicialización, en lugar de como una entrada para cada función de " +"compresión." #: ../Doc/library/hashlib.rst:573 msgid "" @@ -638,10 +858,14 @@ msgid "" "cryptographic hash function, such as SHA-256, is not suitable for hashing " "passwords. See `BLAKE2 FAQ `_ for more information." msgstr "" +"El *cifrado salado* (o sólo cifrado) con BLAKE2 o cualquier otra función de " +"hash criptográfico de propósito general, como SHA-256, no son aptas para " +"cifrar contraseñas. Ver `BLAKE2 FAQ `_ para más " +"información." #: ../Doc/library/hashlib.rst:596 msgid "Personalization" -msgstr "" +msgstr "Personalización" #: ../Doc/library/hashlib.rst:598 msgid "" @@ -649,6 +873,9 @@ msgid "" "for the same input for different purposes. Quoting the authors of the Skein " "hash function:" msgstr "" +"A veces es útil forzar a la función hash para producir diferentes resúmenes " +"para la misma entrada para diferentes propósitos. Citando a los autores de " +"la función hash Skein:" #: ../Doc/library/hashlib.rst:602 msgid "" @@ -659,40 +886,53 @@ msgid "" "force the application to make the hash inputs the same. Personalizing each " "hash function used in the protocol summarily stops this type of attack." msgstr "" +"Recomendamos que todos los diseñadores de aplicaciones consideren seriamente " +"hacer esto; hemos visto muchos protocolos donde un hash que es calculado en " +"una parte del protocolo puede ser usado en una parte completamente diferente " +"porque dos cálculos hash fueron realizados en datos similares o " +"relacionados, y el atacante puede forzar a la aplicación a hacer las " +"entradas hash iguales. Personalizar cada función hash usada en el protocolo " +"resumidamente detiene este tipo de ataque." #: ../Doc/library/hashlib.rst:609 msgid "" "(`The Skein Hash Function Family `_, p. 21)" msgstr "" +"(`The Skein Hash Function Family `_, p. 21)" #: ../Doc/library/hashlib.rst:613 msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" -msgstr "" +msgstr "BLAKE2 puede ser personalizado pasando bytes al argumento *person*::" #: ../Doc/library/hashlib.rst:627 msgid "" "Personalization together with the keyed mode can also be used to derive " "different keys from a single one." msgstr "" +"Se puede usar también personalización en conjunto con el modo de clave para " +"derivar diferentes claves desde una sola." #: ../Doc/library/hashlib.rst:641 msgid "Tree mode" -msgstr "" +msgstr "Modo de árbol" #: ../Doc/library/hashlib.rst:643 msgid "Here's an example of hashing a minimal tree with two leaf nodes::" -msgstr "" +msgstr "Aquí hay un ejemplo de cifrar un árbol mínimo con dos nodos de hoja::" #: ../Doc/library/hashlib.rst:649 msgid "" "This example uses 64-byte internal digests, and returns the 32-byte final " "digest::" msgstr "" +"Este ejemplo usa resúmenes internos de 64 bytes, y retorna el resumen final " +"de 32 bytes::" #: ../Doc/library/hashlib.rst:679 msgid "Credits" -msgstr "" +msgstr "Créditos" #: ../Doc/library/hashlib.rst:681 msgid "" @@ -701,12 +941,18 @@ msgid "" "created by *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, and " "*Raphael C.-W. Phan*." msgstr "" +"BLAKE2_ fue diseñado por *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " +"Wilcox-O'Hearn* y *Christian Winnerlein* basado en el SHA-3_ finalista " +"BLAKE_ creado por *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier* y " +"*Raphael C.-W. Phan*." #: ../Doc/library/hashlib.rst:686 msgid "" "It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " "Bernstein*." msgstr "" +"Usa el algoritmo núcleo del cifrado ChaCha_ diseñado por *Daniel J. " +"Bernstein*." #: ../Doc/library/hashlib.rst:688 msgid "" @@ -714,16 +960,24 @@ msgid "" "*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " "documentation was copied from pyblake2_ and written by *Dmitry Chestnykh*." msgstr "" +"La implementación stdlib está basada en el módulo pyblake2_. Fue escrita por " +"*Dmitry Chestnykh* basada en la implementación C escrita por *Samuel Neves*. " +"La documentación fue copiada desde pyblake2_ y escrita por *Dmitry " +"Chestnykh*." #: ../Doc/library/hashlib.rst:692 msgid "The C code was partly rewritten for Python by *Christian Heimes*." msgstr "" +"El código C fue parcialmente reescrito para Python por *Christian Heimes*." #: ../Doc/library/hashlib.rst:694 msgid "" "The following public domain dedication applies for both C hash function " "implementation, extension code, and this documentation:" msgstr "" +"La siguiente dedicación de dominio público aplica tanto para la " +"implementación de la función hash C, el código de extensión y su " +"documentación:" #: ../Doc/library/hashlib.rst:697 msgid "" @@ -731,6 +985,9 @@ msgid "" "and related and neighboring rights to this software to the public domain " "worldwide. This software is distributed without any warranty." msgstr "" +"En la medida en que la ley lo permite, el/los autor/es han dedicado todos " +"los derechos de autor y los derechos relacionados y vecinos de este software " +"al dominio público mundial. Este software se distribuye sin ninguna garantía." #: ../Doc/library/hashlib.rst:701 msgid "" @@ -738,6 +995,9 @@ msgid "" "with this software. If not, see https://creativecommons.org/publicdomain/" "zero/1.0/." msgstr "" +"Deberías haber recibido una copia de la Dedicación CC0 de Dominio Público " +"junto a este software. Si no, consulta https://creativecommons.org/" +"publicdomain/zero/1.0/." #: ../Doc/library/hashlib.rst:705 msgid "" @@ -745,61 +1005,71 @@ msgid "" "changes to the project and the public domain according to the Creative " "Commons Public Domain Dedication 1.0 Universal:" msgstr "" +"Las siguientes personas han ayudado con el desarrollo o contribuyeron con " +"sus cambios al proyecto y el dominio público de acuerdo a Creative Commons " +"Public Domain Dedication 1.0 Universal:" #: ../Doc/library/hashlib.rst:709 msgid "*Alexandr Sokolovskiy*" -msgstr "" +msgstr "*Alexandr Sokolovskiy*" #: ../Doc/library/hashlib.rst:723 msgid "Module :mod:`hmac`" -msgstr "" +msgstr "Módulo :mod:`hmac`" #: ../Doc/library/hashlib.rst:723 msgid "A module to generate message authentication codes using hashes." msgstr "" +"Un módulo para generar mensajes de códigos de autentificación usando hashes." #: ../Doc/library/hashlib.rst:726 msgid "Module :mod:`base64`" -msgstr "" +msgstr "Módulo :mod:`base64`" #: ../Doc/library/hashlib.rst:726 msgid "Another way to encode binary hashes for non-binary environments." -msgstr "" +msgstr "Otra forma de codificar hashes binarios para entornos no binarios." #: ../Doc/library/hashlib.rst:729 msgid "https://blake2.net" -msgstr "" +msgstr "https://blake2.net" #: ../Doc/library/hashlib.rst:729 msgid "Official BLAKE2 website." -msgstr "" +msgstr "Sitio web oficial de BLAKE2." #: ../Doc/library/hashlib.rst:732 msgid "" "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" "documents/fips180-2.pdf" msgstr "" +"https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" +"documents/fips180-2.pdf" #: ../Doc/library/hashlib.rst:732 msgid "The FIPS 180-2 publication on Secure Hash Algorithms." -msgstr "" +msgstr "La publicación FIPS 180-2 sobre Algoritmos de Cifrado Seguros." #: ../Doc/library/hashlib.rst:736 msgid "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" msgstr "" +"https://en.wikipedia.org/wiki/" +"Cryptographic_hash_function#Cryptographic_hash_algorithms" #: ../Doc/library/hashlib.rst:735 msgid "" "Wikipedia article with information on which algorithms have known issues and " "what that means regarding their use." msgstr "" +"Artículo de Wikipedia con información sobre cuáles algoritmos tienen errores " +"conocidos y lo que eso significa con respecto a su uso." #: ../Doc/library/hashlib.rst:738 msgid "https://www.ietf.org/rfc/rfc2898.txt" -msgstr "" +msgstr "https://www.ietf.org/rfc/rfc2898.txt" #: ../Doc/library/hashlib.rst:739 msgid "PKCS #5: Password-Based Cryptography Specification Version 2.0" -msgstr "" +msgstr "PKCS #5: Password-Based Cryptography Specification Version 2.0" diff --git a/library/hmac.po b/library/hmac.po index 83041c7df9..9c2382b388 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -6,31 +6,34 @@ # 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-01-29 17:45-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" +"Last-Translator: \n" +"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" #: ../Doc/library/hmac.rst:2 msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication" -msgstr "" +msgstr ":mod:`hmac` --- *Hash* con clave para autenticación de mensajes" #: ../Doc/library/hmac.rst:10 msgid "**Source code:** :source:`Lib/hmac.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/hmac.py`" #: ../Doc/library/hmac.rst:14 msgid "This module implements the HMAC algorithm as described by :rfc:`2104`." msgstr "" +"Este módulo implementa el algoritmo HMAC como se describe en la :rfc:`2104`." #: ../Doc/library/hmac.rst:19 msgid "" @@ -40,6 +43,12 @@ msgid "" "object to use. It may be any name suitable to :func:`hashlib.new`. Despite " "its argument position, it is required." msgstr "" +"Retorna un nuevo objeto hmac. *key* es un objeto *bytes* o *bytearray* que " +"proporciona la clave secreta. Si *msg* está presente, se realiza la llamada " +"al método ``update(msg)``. *digestmod* es el nombre del resumen, constructor " +"o módulo del resumen para el objeto HMAC que se va a usar. Puede ser " +"cualquier nombre adecuado para :func:`hashlib.new`. Se requiere este " +"argumento a pesar de su posición." #: ../Doc/library/hmac.rst:25 msgid "" @@ -47,6 +56,9 @@ msgid "" "of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " "name of a hash algorithm." msgstr "" +"El parámetro *key* puede ser un objeto *bytes* o *bytearray*. El parámetro " +"*msg* puede ser de cualquier tipo soportado por :mod:`hashlib`. El parámetro " +"*digestmod* puede ser el nombre del algoritmo de *hash*." #: ../Doc/library/hmac.rst:33 msgid "" @@ -54,6 +66,9 @@ msgid "" "parameter is now required. Pass it as a keyword argument to avoid " "awkwardness when you do not have an initial msg." msgstr "" +"MD5 como resumen por defecto implícito para *digestmod* está obsoleto. Ahora " +"se requiere el parámetro digestmod. Páselo como un argumento de palabra " +"clave para evitar dificultades cuando no tiene un msg inicial." #: ../Doc/library/hmac.rst:38 msgid "" @@ -63,6 +78,11 @@ msgid "" "The parameters *key*, *msg*, and *digest* have the same meaning as in :func:" "`~hmac.new`." msgstr "" +"Retorna el resumen de *msg* para una clave *key* secreta y un resumen " +"*digest* dados. La función es equivalente a ``HMAC(key, msg, digest)." +"digest()``, pero utiliza una implementación optimizada en C o *inline*, que " +"es más rápida para mensajes que caben en memoria. Los parámetros *key*, " +"*msg* y *digest* tienen el mismo significado que en :func:`~hmac.new`." #: ../Doc/library/hmac.rst:44 msgid "" @@ -70,10 +90,13 @@ msgid "" "when *digest* is a string and name of a digest algorithm, which is supported " "by OpenSSL." msgstr "" +"Un detalle de la implementación de CPython: la implementación optimizada en " +"C solo se usa cuando *digest* es una cadena de caracteres y el nombre de un " +"algoritmo de resumen, que está soportado por OpenSSL." #: ../Doc/library/hmac.rst:51 msgid "An HMAC object has the following methods:" -msgstr "" +msgstr "Un objeto HMAC tiene los siguientes métodos:" #: ../Doc/library/hmac.rst:55 msgid "" @@ -81,10 +104,14 @@ msgid "" "single call with the concatenation of all the arguments: ``m.update(a); m." "update(b)`` is equivalent to ``m.update(a + b)``." msgstr "" +"Actualiza el objeto hmac con *msg*. Las llamadas repetidas equivalen a una " +"sola llamada con la concatenación de todos los argumentos: ``m.update(a); m." +"update(b)`` es equivalente a ``m.update(a + b)``." #: ../Doc/library/hmac.rst:59 msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." msgstr "" +"El parámetro *msg* puede ser de cualquier tipo soportado por :mod:`hashlib`." #: ../Doc/library/hmac.rst:65 msgid "" @@ -93,6 +120,10 @@ msgid "" "given to the constructor. It may contain non-ASCII bytes, including NUL " "bytes." msgstr "" +"Retorna el resumen de los *bytes* que se pasaron al método :meth:`update` " +"hasta el momento. Este objeto *bytes* será de la misma longitud que el " +"*digest_size* del resumen que se pasa al constructor. Puede contener *bytes* " +"no ASCII, incluyendo *bytes* NUL." #: ../Doc/library/hmac.rst:72 msgid "" @@ -101,6 +132,10 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Cuando se compara la salida de :meth:`digest` a un resumen provisto " +"externamente durante una rutina de verificación, se recomienda utilizar la " +"función :func:`compare_digest` en lugar del operador ``==`` para reducir la " +"vulnerabilidad a ataques de temporización." #: ../Doc/library/hmac.rst:80 msgid "" @@ -108,6 +143,10 @@ msgid "" "length containing only hexadecimal digits. This may be used to exchange the " "value safely in email or other non-binary environments." msgstr "" +"Como :meth:`digest` excepto que el resumen se retorna como una cadena de " +"caracteres de dos veces la longitud conteniendo solo dígitos hexadecimales. " +"Esto se puede utilizar para intercambiar el valor de forma segura en email u " +"otros entornos no binarios." #: ../Doc/library/hmac.rst:86 msgid "" @@ -116,6 +155,10 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Cuando se compara la salida de :meth:`hexdigest` a un resumen provisto " +"externamente durante una rutina de verificación, se recomienda utilizar la " +"función :func:`compare_digest` en lugar del operador ``==`` para reducir la " +"vulnerabilidad a ataques de temporización." #: ../Doc/library/hmac.rst:94 msgid "" @@ -123,26 +166,31 @@ msgid "" "efficiently compute the digests of strings that share a common initial " "substring." msgstr "" +"Retorna una copia (\"clon\") del objeto hmac. Esto se puede utilizar para " +"calcular de forma eficiente los resúmenes de las cadenas de caracteres que " +"comparten una subcadena de caracteres inicial común." #: ../Doc/library/hmac.rst:98 msgid "A hash object has the following attributes:" -msgstr "" +msgstr "Un objeto *hash* tiene los siguientes atributos:" #: ../Doc/library/hmac.rst:102 msgid "The size of the resulting HMAC digest in bytes." -msgstr "" +msgstr "El tamaño del resumen HMAC resultante en *bytes*." #: ../Doc/library/hmac.rst:106 msgid "The internal block size of the hash algorithm in bytes." -msgstr "" +msgstr "El tamaño de bloque interno del algoritmo de *hash* en *bytes*." #: ../Doc/library/hmac.rst:112 msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." msgstr "" +"El nombre canónico de este HMAC, siempre en minúsculas, por ejemplo ``hmac-" +"md5``." #: ../Doc/library/hmac.rst:117 msgid "This module also provides the following helper function:" -msgstr "" +msgstr "Este módulo también provee las siguiente funciones auxiliares:" #: ../Doc/library/hmac.rst:121 msgid "" @@ -152,6 +200,12 @@ msgid "" "either :class:`str` (ASCII only, as e.g. returned by :meth:`HMAC." "hexdigest`), or a :term:`bytes-like object`." msgstr "" +"Retorna ``a == b``. Esta función utiliza un enfoque diseñado para prevenir " +"el análisis de temporización evitando el comportamiento de cortocircuito " +"basado en contenido, haciéndolo adecuado para criptografía. *a* y *b* deben " +"ser del mismo tipo: ya sea :class:`str` (solo ASCII, como por ejemplo " +"retornado por :meth:`HMAC.hexdigest`), o un :term:`objeto tipo binario " +"`." #: ../Doc/library/hmac.rst:129 msgid "" @@ -159,11 +213,14 @@ msgid "" "attack could theoretically reveal information about the types and lengths of " "*a* and *b*—but not their values." msgstr "" +"Si *a* y *b* son de diferente longitud, o si ocurre un error, un ataque de " +"temporización teóricamente podría revelar información sobre los tipos y " +"longitudes de *a* y *b*—pero no sus valores." #: ../Doc/library/hmac.rst:138 msgid "Module :mod:`hashlib`" -msgstr "" +msgstr "Módulo :mod:`hashlib`" #: ../Doc/library/hmac.rst:139 msgid "The Python module providing secure hash functions." -msgstr "" +msgstr "El módulo de Python que provee funciones de *hash* seguras." diff --git a/library/http.cookies.po b/library/http.cookies.po index 2fea9f894b..c620d2c976 100644 --- a/library/http.cookies.po +++ b/library/http.cookies.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: 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: 2020-10-11 12:55-0500\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: Juan Alegría \n" +"Language: es_CO\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/http.cookies.rst:2 msgid ":mod:`http.cookies` --- HTTP state management" -msgstr "" +msgstr ":mod:`http.cookies` --- Gestión del estado HTTP" #: ../Doc/library/http.cookies.rst:10 msgid "**Source code:** :source:`Lib/http/cookies.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/http/cookies.py`" #: ../Doc/library/http.cookies.rst:14 msgid "" @@ -35,6 +37,10 @@ msgid "" "string-only cookies, and provides an abstraction for having any serializable " "data-type as cookie value." msgstr "" +"El módulo :mod:`http.cookies` define clases para abstraer el concepto de " +"cookies, un mecanismo de gestión de estado HTTP. Admite cookies simples de " +"solo cadenas de caracteres y proporciona una abstracción para tener " +"cualquier tipo de datos serializable como valor de cookie." #: ../Doc/library/http.cookies.rst:19 msgid "" @@ -45,6 +51,13 @@ msgid "" "comes to Cookie handling. As a result, the parsing rules used are a bit " "less strict." msgstr "" +"Anteriormente, el módulo aplicaba estrictamente las reglas de análisis " +"descritas en las especificaciones :rfc:`2109` y :rfc:`2068`. Desde entonces " +"se ha descubierto que MSIE 3.0x no sigue las reglas de caracteres descritas " +"en esas especificaciones y también muchos navegadores y servidores actuales " +"tienen reglas de análisis relajadas en lo que respecta al manejo de cookies. " +"Como resultado, las reglas de análisis utilizadas son un poco menos " +"estrictas." #: ../Doc/library/http.cookies.rst:25 msgid "" @@ -52,10 +65,14 @@ msgid "" "``!#$%&'*+-.^_`|~:`` denote the set of valid characters allowed by this " "module in Cookie name (as :attr:`~Morsel.key`)." msgstr "" +"El conjunto de caracteres, :data:`string.ascii_letters`, :data:`string." +"digits` y ``!#$%&'*+-.^_`|~:`` Denota el conjunto de caracteres válidos " +"permitidos por este módulo en el nombre de la cookie (como :attr:`~Morsel." +"key`)." #: ../Doc/library/http.cookies.rst:29 msgid "Allowed ':' as a valid Cookie name character." -msgstr "" +msgstr "Se permite ':' como un carácter de nombre de cookie válido." #: ../Doc/library/http.cookies.rst:35 msgid "" @@ -63,12 +80,17 @@ msgid "" "cookie data comes from a browser you should always prepare for invalid data " "and catch :exc:`CookieError` on parsing." msgstr "" +"Al encontrar una cookie no válida, se lanza :exc:`CookieError`, por lo que " +"si los datos de su cookie provienen de un navegador, siempre debe prepararse " +"para los datos no válidos y detectar :exc:`CookieError` en el análisis." #: ../Doc/library/http.cookies.rst:42 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." #: ../Doc/library/http.cookies.rst:48 msgid "" @@ -77,10 +99,14 @@ msgid "" "value, the value is first converted to a :class:`Morsel` containing the key " "and the value." msgstr "" +"Esta clase es un objeto similar a un diccionario cuyas claves son cadenas " +"de caracteres y cuyos valores son :class:`Morsel`. Tenga en cuenta que al " +"establecer una clave en un valor, el valor se convierte primero en :class:" +"`Morsel` que contiene la clave y el valor." #: ../Doc/library/http.cookies.rst:52 msgid "If *input* is given, it is passed to the :meth:`load` method." -msgstr "" +msgstr "Si se proporciona *input*, se pasa al método :meth:`load`." #: ../Doc/library/http.cookies.rst:57 msgid "" @@ -90,28 +116,36 @@ msgid "" "`str()` to convert the value to a string. Values received from HTTP are kept " "as strings." msgstr "" +"Esta clase se deriva de :class:`BaseCookie` y anula :meth:`value_decode` y :" +"meth:`value_encode`. SimpleCookie admite cadenas de caracteres como valores " +"de cookies. Al establecer el valor, SimpleCookie llama al incorporado :func:" +"`str()` para convertir el valor en una cadenas de caracteres. Los valores " +"recibidos de HTTP se mantienen como cadenas de caracteres." #: ../Doc/library/http.cookies.rst:66 msgid "Module :mod:`http.cookiejar`" -msgstr "" +msgstr "Módulo :mod:`http.cookiejar`" #: ../Doc/library/http.cookies.rst:65 msgid "" "HTTP cookie handling for web *clients*. The :mod:`http.cookiejar` and :mod:" "`http.cookies` modules do not depend on each other." msgstr "" +"Manejo de cookies HTTP para web *clients*. Los módulos :mod:`http.cookiejar` " +"and :mod:`http.cookies` no dependen el uno del otro." #: ../Doc/library/http.cookies.rst:68 msgid ":rfc:`2109` - HTTP State Management Mechanism" -msgstr "" +msgstr ":rfc:`2109` - Mecanismo de gestión de estado HTTP" #: ../Doc/library/http.cookies.rst:69 msgid "This is the state management specification implemented by this module." msgstr "" +"Esta es la especificación de gestión de estado implementada por este módulo." #: ../Doc/library/http.cookies.rst:75 msgid "Cookie Objects" -msgstr "" +msgstr "Objetos de cookie" #: ../Doc/library/http.cookies.rst:80 msgid "" @@ -119,6 +153,10 @@ msgid "" "``real_value`` can be any type. This method does no decoding in :class:" "`BaseCookie` --- it exists so it can be overridden." msgstr "" +"Retorna una tupla ``(real_value, coded_value)`` de una representación de " +"cadena de caracteres. ``real_value`` puede ser de cualquier tipo. Este " +"método no decodifica en :class:`BaseCookie` --- existe por lo que puede ser " +"anulado." #: ../Doc/library/http.cookies.rst:87 msgid "" @@ -126,12 +164,18 @@ msgid "" "``coded_value`` will always be converted to a string. This method does no " "encoding in :class:`BaseCookie` --- it exists so it can be overridden." msgstr "" +"Retorna una tupla ``(real_value, coded_value)``. *val* puede ser de " +"cualquier tipo, pero ``coded_value`` siempre se convertirá en una cadena de " +"caracteres. Este método no codifica en :class:`BaseCookie` --- existe por lo " +"que se puede anular." #: ../Doc/library/http.cookies.rst:92 msgid "" "In general, it should be the case that :meth:`value_encode` and :meth:" "`value_decode` are inverses on the range of *value_decode*." msgstr "" +"En general, debería darse el caso de que :meth:`value_encode` y :meth:" +"`value_decode` sean inversas en el rango de *value_decode*." #: ../Doc/library/http.cookies.rst:98 msgid "" @@ -140,17 +184,24 @@ msgid "" "is used to join the headers together, and is by default the combination " "``'\\r\\n'`` (CRLF)." msgstr "" +"Retorna una representación de cadena de caracteres adecuada para enviarse " +"como encabezados HTTP. *attrs* y *header* se envían a cada método :class:" +"`Morsel`'s :meth:`output`. *sep* se usa para unir los encabezados y es por " +"defecto la combinación ``'\\r\\n'`` (CRLF)." #: ../Doc/library/http.cookies.rst:106 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP headers was sent." msgstr "" +"Retorna un fragmento de código JavaScript que, si se ejecuta en un navegador " +"que admita JavaScript, actuará de la misma forma que si se enviaran los " +"encabezados HTTP." #: ../Doc/library/http.cookies.rst:109 ../Doc/library/http.cookies.rst:205 #: ../Doc/library/http.cookies.rst:213 msgid "The meaning for *attrs* is the same as in :meth:`output`." -msgstr "" +msgstr "El significado de *attrs* es el mismo que en :meth:`output`." #: ../Doc/library/http.cookies.rst:114 msgid "" @@ -158,56 +209,62 @@ msgid "" "found there as :class:`Morsel`\\ s. If it is a dictionary, it is equivalent " "to::" msgstr "" +"Si *rawdata* es una cadena de caracteres, analícela como un ``HTTP_COOKIE`` " +"y agregue los valores que se encuentran allí como :class:`Morsel`\\ s. Si es " +"un diccionario, equivale a::" #: ../Doc/library/http.cookies.rst:124 msgid "Morsel Objects" -msgstr "" +msgstr "Objetos Morsel" #: ../Doc/library/http.cookies.rst:129 msgid "Abstract a key/value pair, which has some :rfc:`2109` attributes." msgstr "" +"Resumen de un par clave/valor, que tiene algunos atributos :rfc:`2109`." #: ../Doc/library/http.cookies.rst:131 msgid "" "Morsels are dictionary-like objects, whose set of keys is constant --- the " "valid :rfc:`2109` attributes, which are" msgstr "" +"Los Morsels son objetos similares a diccionarios, cuyo conjunto de claves es " +"constante --- los atributos válidos :rfc:`2109`, que son" #: ../Doc/library/http.cookies.rst:134 msgid "``expires``" -msgstr "" +msgstr "``expires``" #: ../Doc/library/http.cookies.rst:135 msgid "``path``" -msgstr "" +msgstr "``path``" #: ../Doc/library/http.cookies.rst:136 msgid "``comment``" -msgstr "" +msgstr "``comment``" #: ../Doc/library/http.cookies.rst:137 msgid "``domain``" -msgstr "" +msgstr "``domain``" #: ../Doc/library/http.cookies.rst:138 msgid "``max-age``" -msgstr "" +msgstr "``max-age``" #: ../Doc/library/http.cookies.rst:139 msgid "``secure``" -msgstr "" +msgstr "``secure``" #: ../Doc/library/http.cookies.rst:140 msgid "``version``" -msgstr "" +msgstr "``version``" #: ../Doc/library/http.cookies.rst:141 msgid "``httponly``" -msgstr "" +msgstr "``httponly``" #: ../Doc/library/http.cookies.rst:142 msgid "``samesite``" -msgstr "" +msgstr "``samesite``" #: ../Doc/library/http.cookies.rst:144 msgid "" @@ -215,6 +272,9 @@ msgid "" "in HTTP requests, and is not accessible through JavaScript. This is intended " "to mitigate some forms of cross-site scripting." msgstr "" +"El atributo :attr:`httponly` especifica que la cookie solo se transfiere en " +"solicitudes HTTP y no es accesible a través de JavaScript. Esto tiene como " +"objetivo mitigar algunas formas de secuencias de comandos entre sitios." #: ../Doc/library/http.cookies.rst:148 msgid "" @@ -222,46 +282,56 @@ msgid "" "send the cookie along with cross-site requests. This helps to mitigate CSRF " "attacks. Valid values for this attribute are \"Strict\" and \"Lax\"." msgstr "" +"El atributo :attr:`samesite` especifica que el navegador no puede enviar la " +"cookie junto con solicitudes entre sitios. Esto ayuda a mitigar los ataques " +"CSRF. Los valores válidos para este atributo son \"Strict\" y \"Lax\"." #: ../Doc/library/http.cookies.rst:152 msgid "The keys are case-insensitive and their default value is ``''``." msgstr "" +"Las claves no distinguen entre mayúsculas y minúsculas y su valor " +"predeterminado es ``''``." #: ../Doc/library/http.cookies.rst:154 msgid "" ":meth:`~Morsel.__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel." "value` into account." msgstr "" +":meth:`~Morsel.__eq__` ahora toma :attr:`~Morsel.key` y :attr:`~Morsel." +"value` en cuenta." #: ../Doc/library/http.cookies.rst:158 msgid "" "Attributes :attr:`~Morsel.key`, :attr:`~Morsel.value` and :attr:`~Morsel." "coded_value` are read-only. Use :meth:`~Morsel.set` for setting them." msgstr "" +"Los atributos :attr:`~Morsel.key`, :attr:`~Morsel.value` y :attr:`~Morsel." +"coded_value` son de solo lectura. Utilice :meth:`~Morsel.set` para " +"configurarlos." #: ../Doc/library/http.cookies.rst:163 msgid "Added support for the :attr:`samesite` attribute." -msgstr "" +msgstr "Se agregó soporte para el atributo :attr:`samesite`." #: ../Doc/library/http.cookies.rst:169 msgid "The value of the cookie." -msgstr "" +msgstr "El valor de la cookie." #: ../Doc/library/http.cookies.rst:174 msgid "The encoded value of the cookie --- this is what should be sent." -msgstr "" +msgstr "El valor codificado de la cookie --- esto es lo que se debe enviar." #: ../Doc/library/http.cookies.rst:179 msgid "The name of the cookie." -msgstr "" +msgstr "El nombre de la cookie." #: ../Doc/library/http.cookies.rst:184 msgid "Set the *key*, *value* and *coded_value* attributes." -msgstr "" +msgstr "Establezca los atributos *key*, *value* y *coded_value*." #: ../Doc/library/http.cookies.rst:189 msgid "Whether *K* is a member of the set of keys of a :class:`Morsel`." -msgstr "" +msgstr "Si *K* es miembro del conjunto de claves de una :class:`Morsel`." #: ../Doc/library/http.cookies.rst:194 msgid "" @@ -270,18 +340,28 @@ msgid "" "given, in which case it should be a list of attributes to use. *header* is " "by default ``\"Set-Cookie:\"``." msgstr "" +"Retorna una representación de cadena de caracteres del Morsel, adecuada para " +"enviarse como un encabezado HTTP. De forma predeterminada, se incluyen todos " +"los atributos, a menos que se proporcione *attrs*, en cuyo caso debería ser " +"una lista de atributos a utilizar. *header* es por defecto ``\"Set-Cookie:" +"\"``." #: ../Doc/library/http.cookies.rst:202 msgid "" "Return an embeddable JavaScript snippet, which, if run on a browser which " "supports JavaScript, will act the same as if the HTTP header was sent." msgstr "" +"Retorna un fragmento de código JavaScript que, si se ejecuta en un navegador " +"que admita JavaScript, actuará de la misma forma que si se hubiera enviado " +"el encabezado HTTP." #: ../Doc/library/http.cookies.rst:210 msgid "" "Return a string representing the Morsel, without any surrounding HTTP or " "JavaScript." msgstr "" +"Retorna una cadena de caracteres que representa el Morsel, sin ningún HTTP o " +"JavaScript circundante." #: ../Doc/library/http.cookies.rst:218 msgid "" @@ -289,30 +369,36 @@ msgid "" "*values*. Raise an error if any of the keys in the *values* dict is not a " "valid :rfc:`2109` attribute." msgstr "" +"Actualice los valores en el diccionario Morsel con los valores en el " +"diccionario *values*. Lanza un error si alguna de las claves en el *values* " +"dict no es un atributo válido :rfc:`2109`." #: ../Doc/library/http.cookies.rst:222 msgid "an error is raised for invalid keys." -msgstr "" +msgstr "se lanza un error para claves no válidas." #: ../Doc/library/http.cookies.rst:228 msgid "Return a shallow copy of the Morsel object." -msgstr "" +msgstr "Retorna una copia superficial del objeto Morsel." #: ../Doc/library/http.cookies.rst:230 msgid "return a Morsel object instead of a dict." -msgstr "" +msgstr "retorna un objeto Morsel en lugar de un dict." #: ../Doc/library/http.cookies.rst:236 msgid "" "Raise an error if key is not a valid :rfc:`2109` attribute, otherwise behave " "the same as :meth:`dict.setdefault`." msgstr "" +"Lanza un error si la clave no es un atributo válido :rfc:`2109`; de lo " +"contrario, se comporta igual que :meth:`dict.setdefault`." #: ../Doc/library/http.cookies.rst:243 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/http.cookies.rst:245 msgid "" "The following example demonstrates how to use the :mod:`http.cookies` module." msgstr "" +"El siguiente ejemplo demuestra cómo utilizar el módulo :mod:`http.cookies`." diff --git a/library/http.server.po b/library/http.server.po index 260fbf1393..6731c0d1ee 100644 --- a/library/http.server.po +++ b/library/http.server.po @@ -6,38 +6,43 @@ # 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: 2020-08-18 02:10-0500\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.1\n" #: ../Doc/library/http.server.rst:2 msgid ":mod:`http.server` --- HTTP servers" -msgstr "" +msgstr ":mod:`http.server` --- Servidores HTTP" #: ../Doc/library/http.server.rst:7 msgid "**Source code:** :source:`Lib/http/server.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/http/server.py`" #: ../Doc/library/http.server.rst:17 msgid "" "This module defines classes for implementing HTTP servers (Web servers)." msgstr "" +"Este módulo define clases para implementar servidores HTTP (servidores Web)." #: ../Doc/library/http.server.rst:22 msgid "" ":mod:`http.server` is not recommended for production. It only implements " "basic security checks." msgstr "" +":mod:`http.server` no se recomienda para producción. Sólo implementa " +"controles de seguridad básicos." #: ../Doc/library/http.server.rst:25 msgid "" @@ -45,6 +50,9 @@ msgid "" "subclass. It creates and listens at the HTTP socket, dispatching the " "requests to a handler. Code to create and run the server looks like this::" msgstr "" +"Una clase, :class:`HTTPServer`, es una subclase :class:`socketserver." +"TCPServer`. Crea y escucha en el socket HTTP, enviando las peticiones a un " +"handler. El código para crear y ejecutar el servidor se ve así::" #: ../Doc/library/http.server.rst:37 msgid "" @@ -53,6 +61,11 @@ msgid "" "`server_port`. The server is accessible by the handler, typically through " "the handler's :attr:`server` instance variable." msgstr "" +"Esta clase se basa en la clase :class:`~socketserver.TCPServer` almacenando " +"la dirección del servidor como variables de instancia llamadas :attr:" +"`nombre_del_servidor` y :attr:`puerto_del_servidor`. El servidor es " +"accesible por el handler, típicamente a través de la variable de instancia :" +"attr:`servidor` del handler." #: ../Doc/library/http.server.rst:44 msgid "" @@ -61,6 +74,10 @@ msgid "" "web browsers pre-opening sockets, on which :class:`HTTPServer` would wait " "indefinitely." msgstr "" +"Esta clase es idéntica a HTTPServer, pero utiliza subprocesos para controlar " +"las solicitudes mediante el uso de :class:`~socketserver.ThreadingMixIn`. " +"Esto es útil para controlar los sockets de pre-apertura de los navegadores " +"web, en los que :class:`HTTPServer` esperaría indefinidamente." #: ../Doc/library/http.server.rst:52 msgid "" @@ -68,6 +85,9 @@ msgid "" "*RequestHandlerClass* on instantiation, of which this module provides three " "different variants:" msgstr "" +"El :class:`HTTPServer` y :class:`ThreadingHTTPServer` deben recibir un " +"*RequestHandlerClass* en la creación de instancias, de los cuales este " +"módulo proporciona tres variantes diferentes:" #: ../Doc/library/http.server.rst:58 msgid "" @@ -77,6 +97,11 @@ msgid "" "`BaseHTTPRequestHandler` provides a number of class and instance variables, " "and methods for use by subclasses." msgstr "" +"Esta clase se utiliza para controlar las solicitudes HTTP que llegan al " +"servidor. Por sí mismo, no puede responder a ninguna solicitud HTTP real; " +"debe ser subclase para manejar cada método de solicitud (por ejemplo, GET o " +"POST). :class:`BaseHTTPRequestHandler` proporciona una serie de variables de " +"clase e instancia, y métodos para su uso por subclases." #: ../Doc/library/http.server.rst:64 msgid "" @@ -87,20 +112,30 @@ msgid "" "stored in instance variables of the handler. Subclasses should not need to " "override or extend the :meth:`__init__` method." msgstr "" +"El controlador analizará la solicitud y los encabezados y, a continuación, " +"llamará a un método específico del tipo de solicitud. El nombre del método " +"se construye a partir de la solicitud. Por ejemplo, para el método de " +"solicitud ``SPAM``, se llamará al método :meth:`do_SPAM` sin argumentos. " +"Toda la información relevante se almacena en variables de instancia del " +"controlador. Las subclases no deben tener que reemplazar o extender el " +"método :meth:`__init__`." #: ../Doc/library/http.server.rst:71 msgid ":class:`BaseHTTPRequestHandler` has the following instance variables:" msgstr "" +":class:`BaseHTTPRequestHandler` tiene las siguientes variables de instancia:" #: ../Doc/library/http.server.rst:75 msgid "" "Contains a tuple of the form ``(host, port)`` referring to the client's " "address." msgstr "" +"Contiene una tupla con el formato ``(host, port)`` que hace referencia a la " +"dirección del cliente." #: ../Doc/library/http.server.rst:80 msgid "Contains the server instance." -msgstr "" +msgstr "Contiene la instancia del servidor." #: ../Doc/library/http.server.rst:84 msgid "" @@ -108,6 +143,8 @@ msgid "" "indicating if another request may be expected, or if the connection should " "be shut down." msgstr "" +"Booleano que se debe establecer antes de :meth:`handle_one_request` retorna, " +"que indica si se puede esperar otra solicitud o si la conexión debe cerrarse." #: ../Doc/library/http.server.rst:90 msgid "" @@ -116,19 +153,25 @@ msgid "" "`handle_one_request`. If no valid request line was processed, it should be " "set to the empty string." msgstr "" +"Contiene la representación de cadena de la línea de solicitud HTTP. Se " +"elimina el CRLF de terminación. Este atributo debe establecerse mediante :" +"meth:`handle_one_request`. Si no se ha procesado ninguna línea de solicitud " +"válida, debe establecerse en la cadena vacía." #: ../Doc/library/http.server.rst:97 msgid "Contains the command (request type). For example, ``'GET'``." -msgstr "" +msgstr "Contiene el comando (tipo de petición). Por ejemplo, ``'GET'``." #: ../Doc/library/http.server.rst:101 msgid "Contains the request path." -msgstr "" +msgstr "Contiene la ruta de la petición." #: ../Doc/library/http.server.rst:105 msgid "" "Contains the version string from the request. For example, ``'HTTP/1.0'``." msgstr "" +"Contiene la versión de la cadena de caracteres para la petición. Por " +"ejemplo, ``HTTP/1.0'``." #: ../Doc/library/http.server.rst:109 msgid "" @@ -138,12 +181,19 @@ msgid "" "used to parse the headers and it requires that the HTTP request provide a " "valid :rfc:`2822` style header." msgstr "" +"Contiene una instancia de la clase especificada por la variable de clase :" +"attr:`MessageClass`. Esta instancia analiza y gestiona las cabeceras de la " +"petición HTTP. La función :func:`~http.client.parse_headers` de :mod:`http." +"client` se usa para parsear las cabeceras y requiere que la petición HTTP " +"proporcione una cabecera válida de estilo :rfc:`2822`." #: ../Doc/library/http.server.rst:117 msgid "" "An :class:`io.BufferedIOBase` input stream, ready to read from the start of " "the optional input data." msgstr "" +"Un flujo de entrada :class:`io.BufferedIOBase`, listo para leer desde el " +"inicio de los datos de entrada opcionales." #: ../Doc/library/http.server.rst:122 msgid "" @@ -151,14 +201,17 @@ msgid "" "adherence to the HTTP protocol must be used when writing to this stream in " "order to achieve successful interoperation with HTTP clients." msgstr "" +"Contiene el flujo de salida para escribir una respuesta al cliente. Se debe " +"utilizar la adherencia apropiada al protocolo HTTP cuando se escribe en este " +"flujo para lograr una interoperación exitosa con los clientes HTTP." #: ../Doc/library/http.server.rst:127 msgid "This is an :class:`io.BufferedIOBase` stream." -msgstr "" +msgstr "Este es un flujo de :class:`io.BufferedIOBase`." #: ../Doc/library/http.server.rst:130 msgid ":class:`BaseHTTPRequestHandler` has the following attributes:" -msgstr "" +msgstr ":class:`BaseHTTPRequestHandler` tiene los siguientes atributos:" #: ../Doc/library/http.server.rst:134 msgid "" @@ -166,6 +219,10 @@ msgid "" "format is multiple whitespace-separated strings, where each string is of the " "form name[/version]. For example, ``'BaseHTTP/0.2'``." msgstr "" +"Especifica la versión del software del servidor. Es posible que desee anular " +"esto. El formato es de múltiples cadenas separadas por espacio en blanco, " +"donde cada cadena es de la forma nombre[/versión]. Por ejemplo, " +"``BaseHTTP/0.2'``." #: ../Doc/library/http.server.rst:140 msgid "" @@ -173,6 +230,9 @@ msgid "" "`version_string` method and the :attr:`server_version` class variable. For " "example, ``'Python/1.4'``." msgstr "" +"Contiene la versión del sistema Python, en una forma utilizable por el " +"método :attr:`version_string` y la variable de clase :attr:`server_version`. " +"Por ejemplo, ``Python/1.4'``." #: ../Doc/library/http.server.rst:146 msgid "" @@ -181,12 +241,18 @@ msgid "" "default with variables from :attr:`responses` based on the status code that " "passed to :meth:`send_error`." msgstr "" +"Especifica una cadena de formato que debe ser usada por el método :meth:" +"`send_error` para construir una respuesta de error al cliente. La cadena se " +"rellena por defecto con variables de :attr:`responses` basadas en el código " +"de estado que pasó a :meth:`send_error`." #: ../Doc/library/http.server.rst:153 msgid "" "Specifies the Content-Type HTTP header of error responses sent to the " "client. The default value is ``'text/html'``." msgstr "" +"Especifica el encabezado *HTTP Content-Type* de las respuestas de error " +"enviadas al cliente. El valor predeterminado es ``'text/html'``." #: ../Doc/library/http.server.rst:158 msgid "" @@ -196,6 +262,12 @@ msgid "" "(using :meth:`send_header`) in all of its responses to clients. For " "backwards compatibility, the setting defaults to ``'HTTP/1.0'``." msgstr "" +"Esto especifica la versión del protocolo HTTP utilizada en las respuestas. " +"Si se establece en ``'HTTP/1.1'``, el servidor permitirá conexiones " +"persistentes HTTP; sin embargo, el servidor *debe* incluir un encabezado " +"exacto ``Content-Length`` (usando :meth:`send_header`) en todas sus " +"respuestas a los clientes. Para la compatibilidad con versiones anteriores, " +"el valor predeterminado es ``'HTTP/1.0'``." #: ../Doc/library/http.server.rst:166 msgid "" @@ -203,6 +275,9 @@ msgid "" "headers. Typically, this is not overridden, and it defaults to :class:`http." "client.HTTPMessage`." msgstr "" +"Especifica una :class:`email.message.Message`\\ -como clase para analizar " +"los encabezados HTTP. Típicamente, esto no es anulado, y por defecto es :" +"class:`http.client.HTTPMessage`." #: ../Doc/library/http.server.rst:172 msgid "" @@ -212,10 +287,17 @@ msgid "" "*message* key in an error response, and *longmessage* as the *explain* key. " "It is used by :meth:`send_response_only` and :meth:`send_error` methods." msgstr "" +"Este atributo contiene una asignación de enteros de código de error a tuplas " +"de dos elementos que contienen un mensaje corto y largo. Por ejemplo, " +"``{code (shortmessage, longmessage)}``. El *shortmessage* se utiliza " +"normalmente como la clave *message* en una respuesta de error, y " +"*longmessage* como la clave *explain*. Es utilizado por :meth:" +"`send_response_only` y :meth:`send_error` métodos." #: ../Doc/library/http.server.rst:178 msgid "A :class:`BaseHTTPRequestHandler` instance has the following methods:" msgstr "" +"Una instancia :class:`BaseHTTPRequestHandler` tiene los siguientes métodos:" #: ../Doc/library/http.server.rst:182 msgid "" @@ -223,12 +305,18 @@ msgid "" "enabled, multiple times) to handle incoming HTTP requests. You should never " "need to override it; instead, implement appropriate :meth:`do_\\*` methods." msgstr "" +"Llama :meth:`handle_one_request` una vez (o, si las conexiones persistentes " +"están habilitadas, varias veces) para manejar las peticiones HTTP entrantes. " +"Nunca debería necesitar anularlo; en su lugar, implemente los métodos " +"apropiados de :meth:`do_\\*`." #: ../Doc/library/http.server.rst:189 msgid "" "This method will parse and dispatch the request to the appropriate :meth:`do_" "\\*` method. You should never need to override it." msgstr "" +"Este método analizará y enviará la solicitud al método apropiado :meth:`do_" +"\\*`. Nunca deberías necesitar anularlo." #: ../Doc/library/http.server.rst:194 msgid "" @@ -238,6 +326,12 @@ msgid "" "does not want the client to continue. For e.g. server can chose to send " "``417 Expectation Failed`` as a response header and ``return False``." msgstr "" +"Cuando un servidor compatible con HTTP/1.1 recibe un encabezado de solicitud " +"``Expect: 100-continue`` responde con un encabezado ``100 Continue`` seguido " +"de ``200 OK``. Este método puede ser anulado para generar un error si el " +"servidor no quiere que el cliente continúe. Por ejemplo, el servidor puede " +"elegir enviar ``417 Expectation Failed`` como encabezado de respuesta y " +"``return False``." #: ../Doc/library/http.server.rst:205 msgid "" @@ -253,12 +347,26 @@ msgid "" "response code is one of the following: ``1xx``, ``204 No Content``, ``205 " "Reset Content``, ``304 Not Modified``." msgstr "" +"Envía y registra una respuesta de error completa al cliente. El *code* " +"numérico especifica el código de error HTTP, con *message* como una " +"descripción opcional, corta y legible por el ser humano del error. El " +"argumento *explain* puede ser usado para proporcionar información más " +"detallada sobre el error; será formateado usando el atributo :attr:" +"`error_message_format` y emitido, después de un conjunto completo de " +"encabezados, como el cuerpo de la respuesta. El atributo :attr:`responses` " +"contiene los valores por defecto para *message* y *explain* que se usarán si " +"no se proporciona ningún valor; para los códigos desconocidos el valor por " +"defecto para ambos es la cadena ``???``. El cuerpo estará vacío si el método " +"es HEAD o el código de respuesta es uno de los siguientes: ``1xx``, ``204 No " +"Content``, ``205 Reset Content``, ``304 Not Modified``." #: ../Doc/library/http.server.rst:217 msgid "" "The error response includes a Content-Length header. Added the *explain* " "argument." msgstr "" +"La respuesta de error incluye un encabezado de longitud de contenido. " +"Añadido el argumento *explain*." #: ../Doc/library/http.server.rst:223 msgid "" @@ -270,12 +378,22 @@ msgid "" "the :meth:`send_header` method, then :meth:`send_response` should be " "followed by an :meth:`end_headers` call." msgstr "" +"Agrega un encabezado de respuesta al búfer de encabezados y registra la " +"solicitud aceptada. La línea de respuesta HTTP se escribe en el búfer " +"interno, seguido de los encabezados *Server* y *Date*. Los valores de estos " +"dos encabezados se recogen de los métodos :meth:`version_string` y :meth:" +"`date_time_string`, respectivamente. Si el servidor no tiene la intención de " +"enviar ningún otro encabezado utilizando el método :meth:`send_header`, " +"entonces :meth:`send_response` debe ir seguido de una llamada :meth:" +"`end_headers`." #: ../Doc/library/http.server.rst:232 msgid "" "Headers are stored to an internal buffer and :meth:`end_headers` needs to be " "called explicitly." msgstr "" +"Los encabezados se almacenan en un búfer interno y :meth:`end_headers` debe " +"llamarse explícitamente." #: ../Doc/library/http.server.rst:238 msgid "" @@ -285,10 +403,16 @@ msgid "" "specifying its value. Note that, after the send_header calls are done, :meth:" "`end_headers` MUST BE called in order to complete the operation." msgstr "" +"Agrega el encabezado HTTP a un búfer interno que se escribirá en la " +"secuencia de salida cuando se invoca :meth:`end_headers` o :meth:" +"`flush_headers`. *keyword* debe especificar la palabra clave *header*, con " +"*value* especificando su valor. Tenga en cuenta que, después de que se " +"realizan las llamadas *send_header*, :meth:`end_headers` DEBE llamarse para " +"completar la operación." #: ../Doc/library/http.server.rst:244 msgid "Headers are stored in an internal buffer." -msgstr "" +msgstr "Los encabezados se almacenan en un búfer interno." #: ../Doc/library/http.server.rst:249 msgid "" @@ -297,22 +421,31 @@ msgid "" "sent directly the output stream.If the *message* is not specified, the HTTP " "message corresponding the response *code* is sent." msgstr "" +"Envía el encabezado de respuesta solamente, usado para los propósitos cuando " +"la respuesta ``100 Continue`` es enviada por el servidor al cliente. Los " +"encabezados no se almacenan en el buffer y envían directamente el flujo de " +"salida. Si no se especifica el *message*, se envía el mensaje HTTP " +"correspondiente al *code* de respuesta." #: ../Doc/library/http.server.rst:258 msgid "" "Adds a blank line (indicating the end of the HTTP headers in the response) " "to the headers buffer and calls :meth:`flush_headers()`." msgstr "" +"Añade una línea en blanco (indicando el final de las cabeceras HTTP en la " +"respuesta) al buffer de cabeceras y llama a :meth:`flush_headers()`." #: ../Doc/library/http.server.rst:262 msgid "The buffered headers are written to the output stream." -msgstr "" +msgstr "Los encabezados del buffer se escriben en el flujo de salida." #: ../Doc/library/http.server.rst:267 msgid "" "Finally send the headers to the output stream and flush the internal headers " "buffer." msgstr "" +"Finalmente envía los encabezados al flujo de salida y limpia el buffer " +"interno de los cabezales." #: ../Doc/library/http.server.rst:274 msgid "" @@ -320,6 +453,9 @@ msgid "" "HTTP code associated with the response. If a size of the response is " "available, then it should be passed as the *size* parameter." msgstr "" +"Registra una solicitud aceptada (exitosa). El *code* debe especificar el " +"código numérico HTTP asociado a la respuesta. Si un tamaño de la respuesta " +"está disponible, entonces debe ser pasado como el parámetro *size*." #: ../Doc/library/http.server.rst:280 msgid "" @@ -327,6 +463,9 @@ msgid "" "message to :meth:`log_message`, so it takes the same arguments (*format* and " "additional values)." msgstr "" +"Registra un error cuando una solicitud no puede ser cumplida. Por defecto, " +"pasa el mensaje a :meth:`log_message`, por lo que toma los mismos argumentos " +"(*format* y valores adicionales)." #: ../Doc/library/http.server.rst:287 msgid "" @@ -336,12 +475,20 @@ msgid "" "`log_message` are applied as inputs to the formatting. The client ip address " "and current date and time are prefixed to every message logged." msgstr "" +"Registra un mensaje arbitrario en ``sys.stderr``. Normalmente se anula para " +"crear mecanismos personalizados de registro de errores. El argumento " +"*format* es una cadena de formato estándar de estilo de impresión, donde los " +"argumentos adicionales a :meth:`log_message` se aplican como entradas al " +"formato. La dirección ip del cliente y la fecha y hora actual son prefijadas " +"a cada mensaje registrado." #: ../Doc/library/http.server.rst:295 msgid "" "Returns the server software's version string. This is a combination of the :" "attr:`server_version` and :attr:`sys_version` attributes." msgstr "" +"Retorna la cadena de versiones del software del servidor. Esta es una " +"combinación de los atributos :attr:`server_version` y :attr:`sys_version`." #: ../Doc/library/http.server.rst:300 msgid "" @@ -349,30 +496,37 @@ msgid "" "the format returned by :func:`time.time`), formatted for a message header. " "If *timestamp* is omitted, it uses the current date and time." msgstr "" +"Retorna la fecha y la hora dadas por *timestamp* (que debe ser ``None`` o en " +"el formato retornado por :func:`time.time``), formateado para un encabezado " +"de mensaje. Si se omite *timestamp*, utiliza la fecha y la hora actuales." #: ../Doc/library/http.server.rst:304 msgid "The result looks like ``'Sun, 06 Nov 1994 08:49:37 GMT'``." -msgstr "" +msgstr "El resultado se muestra como ``Sun, 06 Nov 1994 08:49:37 GMT'``." #: ../Doc/library/http.server.rst:308 msgid "Returns the current date and time, formatted for logging." -msgstr "" +msgstr "Retorna la fecha y la hora actuales, formateadas para el registro." #: ../Doc/library/http.server.rst:312 msgid "Returns the client address." -msgstr "" +msgstr "Retorna la dirección del cliente." #: ../Doc/library/http.server.rst:314 msgid "" "Previously, a name lookup was performed. To avoid name resolution delays, it " "now always returns the IP address." msgstr "" +"Anteriormente, se realizó una búsqueda de nombres. Para evitar retrasos en " +"la resolución del nombre, ahora siempre retorna la dirección IP." #: ../Doc/library/http.server.rst:321 msgid "" "This class serves files from the current directory and below, directly " "mapping the directory structure to HTTP requests." msgstr "" +"Esta clase sirve a los archivos del directorio actual y los de abajo, " +"mapeando directamente la estructura del directorio a las peticiones HTTP." #: ../Doc/library/http.server.rst:324 msgid "" @@ -380,18 +534,25 @@ msgid "" "class:`BaseHTTPRequestHandler`. This class implements the :func:`do_GET` " "and :func:`do_HEAD` functions." msgstr "" +"La carga de trabajo, como el análisis de la solicitud, lo hace la clase " +"base :class:`BaseHTTPRequestHandler`. Esta clase implementa las funciones :" +"func:`do_GET` y :func:`do_HEAD`." #: ../Doc/library/http.server.rst:328 msgid "" "The following are defined as class-level attributes of :class:" "`SimpleHTTPRequestHandler`:" msgstr "" +"Los siguientes se definen como atributos de clase de :class:" +"`SimpleHTTPRequestHandler`:" #: ../Doc/library/http.server.rst:333 msgid "" "This will be ``\"SimpleHTTP/\" + __version__``, where ``__version__`` is " "defined at the module level." msgstr "" +"Esto sería ``\"SimpleHTTP/\" + __version__``, donde ``__version__`` se " +"define a nivel de módulo." #: ../Doc/library/http.server.rst:338 msgid "" @@ -400,16 +561,23 @@ msgid "" "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." #: ../Doc/library/http.server.rst:345 msgid "" "If not specified, the directory to serve is the current working directory." msgstr "" +"Si no se especifica, el directorio a servir es el directorio de trabajo " +"actual." #: ../Doc/library/http.server.rst:347 msgid "" "The :class:`SimpleHTTPRequestHandler` class defines the following methods:" msgstr "" +"Una instancia :class:`SimpleHTTPRequestHandler` tiene los siguientes métodos:" #: ../Doc/library/http.server.rst:351 msgid "" @@ -417,12 +585,17 @@ msgid "" "would send for the equivalent ``GET`` request. See the :meth:`do_GET` method " "for a more complete explanation of the possible headers." msgstr "" +"Este método sirve para el tipo de petición: ``'HEAD'`` envía los encabezados " +"que enviaría para la petición equivalente ``GET``. Ver el método :meth:" +"`do_GET` para una explicación más completa de los posibles encabezados." #: ../Doc/library/http.server.rst:357 msgid "" "The request is mapped to a local file by interpreting the request as a path " "relative to the current working directory." msgstr "" +"La solicitud se asigna a un archivo local interpretando la solicitud como " +"una ruta relativa al directorio de trabajo actual." #: ../Doc/library/http.server.rst:360 msgid "" @@ -433,6 +606,12 @@ msgid "" "listdir` to scan the directory, and returns a ``404`` error response if the :" "func:`~os.listdir` fails." msgstr "" +"Si la solicitud fue mapeada a un directorio, el directorio se comprueba para " +"un archivo llamado ``index.html`` or ``index.htm`` (en ese orden). Si se " +"encuentra, se retorna el contenido del archivo; de lo contrario, se genera " +"un listado del directorio llamando al método :meth:`list_directory`. Este " +"método utiliza :func:`os.listdir` para escanear el directorio, y retorna una " +"respuesta de error ``404`` si falla el :func:`~os.listdir`." #: ../Doc/library/http.server.rst:367 msgid "" @@ -444,6 +623,13 @@ msgid "" "calling the :meth:`guess_type` method, which in turn uses the " "*extensions_map* variable, and the file contents are returned." msgstr "" +"Si la solicitud fue asignada a un archivo, se abre. Cualquier excepción :exc:" +"`OSError` al abrir el archivo solicitado se asigna a un error ``404``, " +"``'File not found'``. Si había un encabezado ``'If-Modified-Since'`` en la " +"solicitud, y el archivo no fue modificado después de este tiempo, se envía " +"una respuesta ``304``, ``'Not Modified'``. De lo contrario, el tipo de " +"contenido se adivina llamando al método :meth:`guess_type`, que a su vez " +"utiliza la variable *extensions_map*, y se retorna el contenido del archivo." #: ../Doc/library/http.server.rst:375 msgid "" @@ -451,6 +637,10 @@ msgid "" "followed by a ``'Content-Length:'`` header with the file's size and a " "``'Last-Modified:'`` header with the file's modification time." msgstr "" +"Un encabezado de ``'Content-type:'`` con el tipo de contenido adivinado, " +"seguido de un encabezado de ``'Content-Length:'`` con el tamaño del archivo " +"y un encabezado de ``'Last-Modified:'`` con el tiempo de modificación del " +"archivo." #: ../Doc/library/http.server.rst:379 msgid "" @@ -458,16 +648,22 @@ msgid "" "contents of the file are output. If the file's MIME type starts with ``text/" "`` the file is opened in text mode; otherwise binary mode is used." msgstr "" +"Luego sigue una línea en blanco que significa el final de los encabezados, y " +"luego se imprime el contenido del archivo. Si el tipo MIME del archivo " +"comienza con ``text/`` el archivo se abre en modo de texto; en caso " +"contrario se utiliza el modo binario." #: ../Doc/library/http.server.rst:383 msgid "" "For example usage, see the implementation of the :func:`test` function " "invocation in the :mod:`http.server` module." msgstr "" +"Por ejemplo, ver la implementación de la invocación de la función :func:" +"`test` en el módulo :mod:`http.server`." #: ../Doc/library/http.server.rst:386 msgid "Support of the ``'If-Modified-Since'`` header." -msgstr "" +msgstr "Soporta la cabecera ``'If-Modified-Since'``." #: ../Doc/library/http.server.rst:389 msgid "" @@ -475,6 +671,9 @@ msgid "" "manner in order to create a very basic webserver serving files relative to " "the current directory::" msgstr "" +"La clase :class:`SimpleHTTPRequestHandler` puede ser usada de la siguiente " +"manera para crear un servidor web muy básico que sirva archivos relativos al " +"directorio actual::" #: ../Doc/library/http.server.rst:406 msgid "" @@ -482,6 +681,10 @@ msgid "" "switch of the interpreter with a ``port number`` argument. Similar to the " "previous example, this serves files relative to the current directory::" msgstr "" +":mod:`http.server` también puede ser invocado directamente usando el " +"interruptor :option:`-m` del intérprete con un argumento ``port number``. " +"Como en el ejemplo anterior, esto sirve a los archivos relativos al " +"directorio actual::" #: ../Doc/library/http.server.rst:412 msgid "" @@ -490,14 +693,18 @@ msgid "" "addresses are supported. For example, the following command causes the " "server to bind to localhost only::" msgstr "" +"Por defecto, el servidor se vincula a todas las interfaces. La opción ``-" +"b/--bind`` especifica una dirección específica a la que se debe vincular. " +"Tanto las direcciones IPv4 como las IPv6 están soportadas. Por ejemplo, el " +"siguiente comando hace que el servidor se vincule sólo al localhost::" #: ../Doc/library/http.server.rst:419 msgid "``--bind`` argument was introduced." -msgstr "" +msgstr "Se introdujo el argumento ``--bind`` ." #: ../Doc/library/http.server.rst:422 msgid "``--bind`` argument enhanced to support IPv6" -msgstr "" +msgstr "El argumento ``--bind`` se ha mejorado para soportar IPv6" #: ../Doc/library/http.server.rst:425 msgid "" @@ -505,10 +712,13 @@ msgid "" "specifies a directory to which it should serve the files. For example, the " "following command uses a specific directory::" msgstr "" +"Por defecto, el servidor utiliza el directorio actual. La opción ``-d/--" +"directory`` especifica un directorio al que debe servir los archivos. Por " +"ejemplo, el siguiente comando utiliza un directorio específico::" #: ../Doc/library/http.server.rst:431 msgid "``--directory`` specify alternate directory" -msgstr "" +msgstr "``--directory`` especificar directorio alternativo" #: ../Doc/library/http.server.rst:436 msgid "" @@ -516,6 +726,10 @@ msgid "" "current directory and below. Note that mapping HTTP hierarchic structure to " "local directory structure is exactly as in :class:`SimpleHTTPRequestHandler`." msgstr "" +"Esta clase se utiliza para servir tanto a los archivos como a la salida de " +"los scripts CGI del directorio actual y del siguiente. Note que el mapeo de " +"la estructura jerárquica de HTTP a la estructura del directorio local es " +"exactamente como en :class:`SimpleHTTPRequestHandler`." #: ../Doc/library/http.server.rst:442 msgid "" @@ -523,6 +737,10 @@ msgid "" "redirects (HTTP code 302), because code 200 (script output follows) is sent " "prior to execution of the CGI script. This pre-empts the status code." msgstr "" +"Los scripts CGI ejecutados por la clase :class:`CGIHTTPRequestHandler` no " +"pueden ejecutar redirecciones (código HTTP 302), porque el código 200 (la " +"salida del script sigue) se envía antes de la ejecución del script CGI. " +"Esto adelanta el código de estado." #: ../Doc/library/http.server.rst:447 msgid "" @@ -531,6 +749,10 @@ msgid "" "the other common server configuration is to treat special extensions as " "denoting CGI scripts." msgstr "" +"La clase, sin embargo, ejecutará el script CGI, en lugar de servirlo como un " +"archivo, si adivina que es un script CGI. Sólo se usan CGI basados en " +"directorios --- la otra configuración común del servidor es tratar las " +"extensiones especiales como denotando los scripts CGI." #: ../Doc/library/http.server.rst:452 msgid "" @@ -538,20 +760,26 @@ msgid "" "scripts and serve the output, instead of serving files, if the request leads " "to somewhere below the ``cgi_directories`` path." msgstr "" +"Las funciones :func:`do_GET` y :func:`do_HEAD` se modifican para ejecutar " +"scripts CGI y servir la salida, en lugar de servir archivos, si la petición " +"lleva a algún lugar por debajo de la ruta ``cgi_directories``." #: ../Doc/library/http.server.rst:456 msgid "The :class:`CGIHTTPRequestHandler` defines the following data member:" msgstr "" +"La :class:`CGIHTTPRequestHandler` define el siguiente miembro de datos:" #: ../Doc/library/http.server.rst:460 msgid "" "This defaults to ``['/cgi-bin', '/htbin']`` and describes directories to " "treat as containing CGI scripts." msgstr "" +"Esto por defecto es ``['/cgi-bin', '/htbin']`` y describe los directorios a " +"tratar como si contuvieran scripts CGI." #: ../Doc/library/http.server.rst:463 msgid "The :class:`CGIHTTPRequestHandler` defines the following method:" -msgstr "" +msgstr "La :class:`CGIHTTPRequestHandler` define el siguiente método:" #: ../Doc/library/http.server.rst:467 msgid "" @@ -559,15 +787,23 @@ msgid "" "scripts. Error 501, \"Can only POST to CGI scripts\", is output when trying " "to POST to a non-CGI url." msgstr "" +"Este método sirve para el tipo de petición ``'POST'``, sólo permitido para " +"scripts CGI. El error 501, \"Can only POST to CGI scripts\", se produce " +"cuando se intenta enviar a una url no CGI." #: ../Doc/library/http.server.rst:471 msgid "" "Note that CGI scripts will be run with UID of user nobody, for security " "reasons. Problems with the CGI script will be translated to error 403." msgstr "" +"Tenga en cuenta que los scripts CGI se ejecutarán con UID de usuario " +"*nobody*, por razones de seguridad. Los problemas con el script CGI serán " +"traducidos al error 403." #: ../Doc/library/http.server.rst:474 msgid "" ":class:`CGIHTTPRequestHandler` can be enabled in the command line by passing " "the ``--cgi`` option::" msgstr "" +":class:`CGIHTTPRequestHandler` puede ser activado en la línea de comandos " +"pasando la opción ``--cgi``::" diff --git a/library/imghdr.po b/library/imghdr.po index fa6e65c4e9..3830df094f 100644 --- a/library/imghdr.po +++ b/library/imghdr.po @@ -1,9 +1,11 @@ # 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 "" @@ -12,28 +14,35 @@ msgstr "" "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: 2020-10-08 17:55+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/imghdr.rst:2 msgid ":mod:`imghdr` --- Determine the type of an image" -msgstr "" +msgstr ":mod:'imghdr' --- Determinar el tipo de imagen" #: ../Doc/library/imghdr.rst:7 msgid "**Source code:** :source:`Lib/imghdr.py`" -msgstr "" +msgstr "**Código fuente:** :source:'Lib/imghdr.py'" #: ../Doc/library/imghdr.rst:11 msgid "" "The :mod:`imghdr` module determines the type of image contained in a file or " "byte stream." msgstr "" +"El módulo :mod:`imghdr` determina el tipo de imagen contenida en un archivo " +"o secuencia de bytes." #: ../Doc/library/imghdr.rst:14 msgid "The :mod:`imghdr` module defines the following function:" -msgstr "" +msgstr "El módulo :mod:`imghdr` define la siguiente función:" #: ../Doc/library/imghdr.rst:19 msgid "" @@ -41,138 +50,146 @@ msgid "" "a string describing the image type. If optional *h* is provided, the " "*filename* is ignored and *h* is assumed to contain the byte stream to test." msgstr "" +"Comprueba los datos de imagen contenidos en el archivo mencionado en " +"*filename* y retorna una cadena de caracteres que describe el tipo de " +"imagen. Si se proporciona el argumento opcional *h*, se ignora *filename* y " +"se supone que *h* contiene la secuencia de bytes que se va a analizar." #: ../Doc/library/imghdr.rst:23 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Acepta un :term:`path-like object`." #: ../Doc/library/imghdr.rst:26 msgid "" "The following image types are recognized, as listed below with the return " "value from :func:`what`:" msgstr "" +"Se reconocen los siguientes tipos de imagen, enumerados a continuación con " +"el valor devuelto de :func:`what`:" #: ../Doc/library/imghdr.rst:30 msgid "Value" -msgstr "" +msgstr "Valor" #: ../Doc/library/imghdr.rst:30 msgid "Image format" -msgstr "" +msgstr "Formato de imagen" #: ../Doc/library/imghdr.rst:32 msgid "``'rgb'``" -msgstr "" +msgstr "``'rgb'``" #: ../Doc/library/imghdr.rst:32 msgid "SGI ImgLib Files" -msgstr "" +msgstr "Archivos SGI ImgLib" #: ../Doc/library/imghdr.rst:34 msgid "``'gif'``" -msgstr "" +msgstr "``'gif'``" #: ../Doc/library/imghdr.rst:34 msgid "GIF 87a and 89a Files" -msgstr "" +msgstr "Archivos GIF 87a y 89a" #: ../Doc/library/imghdr.rst:36 msgid "``'pbm'``" -msgstr "" +msgstr "``'pbm'``" #: ../Doc/library/imghdr.rst:36 msgid "Portable Bitmap Files" -msgstr "" +msgstr "Archivos Portable Bitmap" #: ../Doc/library/imghdr.rst:38 msgid "``'pgm'``" -msgstr "" +msgstr "``'pgm'``" #: ../Doc/library/imghdr.rst:38 msgid "Portable Graymap Files" -msgstr "" +msgstr "Archivos Portable Graymap" #: ../Doc/library/imghdr.rst:40 msgid "``'ppm'``" -msgstr "" +msgstr "``'ppm'``" #: ../Doc/library/imghdr.rst:40 msgid "Portable Pixmap Files" -msgstr "" +msgstr "Archivos Portable Pixmap" #: ../Doc/library/imghdr.rst:42 msgid "``'tiff'``" -msgstr "" +msgstr "``'tiff'``" #: ../Doc/library/imghdr.rst:42 msgid "TIFF Files" -msgstr "" +msgstr "Archivos TIFF" #: ../Doc/library/imghdr.rst:44 msgid "``'rast'``" -msgstr "" +msgstr "``'rast'``" #: ../Doc/library/imghdr.rst:44 msgid "Sun Raster Files" -msgstr "" +msgstr "Archivos Sun Raster" #: ../Doc/library/imghdr.rst:46 msgid "``'xbm'``" -msgstr "" +msgstr "``'xbm'``" #: ../Doc/library/imghdr.rst:46 msgid "X Bitmap Files" -msgstr "" +msgstr "Archivos X Bitmap" #: ../Doc/library/imghdr.rst:48 msgid "``'jpeg'``" -msgstr "" +msgstr "``'jpeg'``" #: ../Doc/library/imghdr.rst:48 msgid "JPEG data in JFIF or Exif formats" -msgstr "" +msgstr "Datos JPEG en formatos JFIF o Exif" #: ../Doc/library/imghdr.rst:50 msgid "``'bmp'``" -msgstr "" +msgstr "``'bmp'``" #: ../Doc/library/imghdr.rst:50 msgid "BMP files" -msgstr "" +msgstr "Archivos BMP" #: ../Doc/library/imghdr.rst:52 msgid "``'png'``" -msgstr "" +msgstr "``'png'``" #: ../Doc/library/imghdr.rst:52 msgid "Portable Network Graphics" -msgstr "" +msgstr "Portable Network Graphics" #: ../Doc/library/imghdr.rst:54 msgid "``'webp'``" -msgstr "" +msgstr "``'webp'``" #: ../Doc/library/imghdr.rst:54 msgid "WebP files" -msgstr "" +msgstr "Archivos WebP" #: ../Doc/library/imghdr.rst:56 msgid "``'exr'``" -msgstr "" +msgstr "``'exr'``" #: ../Doc/library/imghdr.rst:56 msgid "OpenEXR Files" -msgstr "" +msgstr "Archivos OpenEXR" #: ../Doc/library/imghdr.rst:59 msgid "The *exr* and *webp* formats were added." -msgstr "" +msgstr "Se añadieron los formatos *exr* y *webp*." #: ../Doc/library/imghdr.rst:63 msgid "" "You can extend the list of file types :mod:`imghdr` can recognize by " "appending to this variable:" msgstr "" +"Puede ampliar la lista de tipos de archivo que :mod:`imghdr` puede reconocer " +"agregándolos a esta variable:" #: ../Doc/library/imghdr.rst:69 msgid "" @@ -180,13 +197,20 @@ msgid "" "two arguments: the byte-stream and an open file-like object. When :func:" "`what` is called with a byte-stream, the file-like object will be ``None``." msgstr "" +"Una lista de funciones que realizan las comprobaciones individuales. Cada " +"función toma dos argumentos: la secuencia de bytes y un objeto abierto de " +"tipo archivo. Cuando :func:`what` es llamada con una secuencia de bytes, el " +"objeto de tipo archivo será ``None``." #: ../Doc/library/imghdr.rst:73 msgid "" "The test function should return a string describing the image type if the " "test succeeded, or ``None`` if it failed." msgstr "" +"La función de comprobación debería retornar una cadena de caracteres que " +"describa el tipo de imagen si la comprobación se realizó correctamente o " +"''Ninguno'' si ha fallado." #: ../Doc/library/imghdr.rst:76 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" diff --git a/library/ipc.po b/library/ipc.po index 1fde60a6a4..830c93f9c0 100644 --- a/library/ipc.po +++ b/library/ipc.po @@ -1,31 +1,34 @@ # 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-02-21 14:50-0300\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.4.2\n" +"Language: es\n" #: ../Doc/library/ipc.rst:5 msgid "Networking and Interprocess Communication" -msgstr "" +msgstr "Comunicación en redes y entre procesos" #: ../Doc/library/ipc.rst:7 msgid "" "The modules described in this chapter provide mechanisms for networking and " "inter-processes communication." msgstr "" +"Los módulos descritos en este capítulo proveen los mecanismos para la " +"comunicación en red y entre procesos." #: ../Doc/library/ipc.rst:10 msgid "" @@ -33,7 +36,11 @@ msgid "" "mod:`signal` and :mod:`mmap`. Other modules support networking protocols " "that two or more processes can use to communicate across machines." msgstr "" +"Algunos módulos solo funcionan para dos procesos que están en una misma " +"máquina, e.g. :mod:`signal` y :mod:`mmap`. Otros módulos soportan protocolos " +"de red que dos o mas procesos pueden utilizar para comunicarse entre " +"máquinas." #: ../Doc/library/ipc.rst:14 msgid "The list of modules described in this chapter is:" -msgstr "" +msgstr "La lista de módulos descritos en este capítulo es:" diff --git a/library/itertools.po b/library/itertools.po index daaa7b7e00..94e4ab21fc 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -46,8 +46,8 @@ msgid "" msgstr "" "El módulo estandariza un conjunto base de herramientas rápidas y eficientes " "en memoria, útiles por sí mismas o en combinación con otras. Juntas, forman " -"un “álbegra de iteradores”, haciendo posible la construcción de herramientas " -"especializadas, sucintas y eficientes, en Python puro." +"un \"álgebra de iteradores\", haciendo posible la construcción de " +"herramientas especializadas, sucintas y eficientes, en Python puro." #: ../Doc/library/itertools.rst:25 msgid "" @@ -1008,5 +1008,5 @@ msgstr "" "procesar los elementos uno a uno, y no cargando el iterable entero en " "memoria. El volumen de código se mantiene bajo al enlazar las herramientas " "en estilo funcional, eliminando variables temporales. La alta velocidad se " -"retiene al preferir piezas “vectorizadas” sobre el uso de bucles `for` y :" +"retiene al preferir piezas \"vectorizadas\" sobre el uso de bucles `for` y :" "term:`generator`\\s que puedan incurrir en costos extra." diff --git a/library/keyword.po b/library/keyword.po index 00306cbd13..44abd33b38 100644 --- a/library/keyword.po +++ b/library/keyword.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: 2020-10-24 15:46-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: Enrique Giménez \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/keyword.rst:2 msgid ":mod:`keyword` --- Testing for Python keywords" -msgstr "" +msgstr ":mod:`keyword` --- Pruebas para palabras clave en Python" #: ../Doc/library/keyword.rst:7 msgid "**Source code:** :source:`Lib/keyword.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/keyword.py`" #: ../Doc/library/keyword.rst:11 msgid "" "This module allows a Python program to determine if a string is a :ref:" "`keyword `." msgstr "" +"Este módulo permite a un programa Python determinar si una cadena de " +"caracteres es una :ref:`palabra clave `." #: ../Doc/library/keyword.rst:17 msgid "Return ``True`` if *s* is a Python :ref:`keyword `." -msgstr "" +msgstr "Retorna ``True`` si *s* es una :ref:`palabra clave ` Python." #: ../Doc/library/keyword.rst:22 msgid "" @@ -44,3 +48,7 @@ msgid "" "interpreter. If any 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." diff --git a/library/language.po b/library/language.po index 7d846ee140..0eec442e17 100644 --- a/library/language.po +++ b/library/language.po @@ -1,25 +1,27 @@ # 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: 2020-10-10 12:20+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/language.rst:5 msgid "Python Language Services" -msgstr "" +msgstr "Servicios del lenguaje Python" #: ../Doc/library/language.rst:7 msgid "" @@ -27,7 +29,10 @@ msgid "" "language. These modules support tokenizing, parsing, syntax analysis, " "bytecode disassembly, and various other facilities." msgstr "" +"Python proporciona una serie de módulos para ayudar a trabajar con el " +"lenguaje Python. Estos módulos admiten tokenización, análisis, análisis " +"sintáctico, desensamblado de código de bytes, entre otras funciones." #: ../Doc/library/language.rst:11 msgid "These modules include:" -msgstr "" +msgstr "Estos módulos incluyen:" diff --git a/library/linecache.po b/library/linecache.po index b88d265f2e..0760921ed2 100644 --- a/library/linecache.po +++ b/library/linecache.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: 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: 2020-10-31 23:49+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/linecache.rst:2 msgid ":mod:`linecache` --- Random access to text lines" -msgstr "" +msgstr ":mod:`linecache` — Acceso aleatorio a líneas de texto" #: ../Doc/library/linecache.rst:9 msgid "**Source code:** :source:`Lib/linecache.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/linecache.py`" #: ../Doc/library/linecache.rst:13 msgid "" @@ -36,6 +38,11 @@ msgid "" "`traceback` module to retrieve source lines for inclusion in the formatted " "traceback." msgstr "" +"El módulo :mod:`linecache` permite obtener cualquier línea de un archivo " +"fuente Python, mientras se intenta optimizar internamente, usando una caché, " +"el caso común en el que se leen muchas líneas de un solo archivo. Esto es " +"utilizado por el módulo :mod:`traceback` para recuperar líneas de código " +"fuente para incluirlas en el seguimiento de pila formateado." #: ../Doc/library/linecache.rst:18 msgid "" @@ -43,10 +50,14 @@ msgid "" "uses :func:`tokenize.detect_encoding` to get the encoding of the file; in " "the absence of an encoding token, the file encoding defaults to UTF-8." msgstr "" +"La función :func:`tokenize.open` se utiliza para abrir archivos. Esta " +"función usa :func:`tokenize.detect_encoding` para obtener la codificación " +"del archivo; en la ausencia de un token de codificación, la codificación del " +"archivo es por defecto UTF-8." #: ../Doc/library/linecache.rst:22 msgid "The :mod:`linecache` module defines the following functions:" -msgstr "" +msgstr "El módulo :mod:`linecache` define las siguientes funciones:" #: ../Doc/library/linecache.rst:27 msgid "" @@ -54,6 +65,9 @@ msgid "" "an exception --- it will return ``''`` on errors (the terminating newline " "character will be included for lines that are found)." msgstr "" +"Obtiene la línea *lineno* del archivo llamado *filename*. Esta función nunca " +"lanzará una excepción --- retornará ``''`` en los errores (el carácter de la " +"nueva línea de terminación se incluirá para las líneas que se encuentren)." #: ../Doc/library/linecache.rst:33 msgid "" @@ -64,12 +78,21 @@ msgid "" "*filename* is a relative filename, it is looked up relative to the entries " "in the module search path, ``sys.path``." msgstr "" +"Si un archivo llamado *filename* no se encuentra, la función primero " +"verifica un ``__loader__`` en *module_globals* :pep:`302`. Si existe tal " +"cargador y define un método ``get_source``, entonces eso determina las " +"líneas de origen (si ``get_source()`` retorna ``None``, entonces se retorna " +"``''``). Finalmente, si *filename* es un nombre de fichero relativo, se " +"busca en relación a las entradas en la ruta de búsqueda del módulo, ``sys." +"path``." #: ../Doc/library/linecache.rst:44 msgid "" "Clear the cache. Use this function if you no longer need lines from files " "previously read using :func:`getline`." msgstr "" +"Borra el caché. Use esta función si ya no necesita las líneas de archivos " +"leídos previamente usando :func:`getline`." #: ../Doc/library/linecache.rst:50 msgid "" @@ -77,6 +100,9 @@ msgid "" "have changed on disk, and you require the updated version. If *filename* is " "omitted, it will check all the entries in the cache." msgstr "" +"Comprueba la validez de la caché. Use esta función si los archivos de la " +"caché pueden haber cambiado en disco y necesita la versión actualizada. Si " +"se omite *filename*, comprobará todas las entradas en la caché." #: ../Doc/library/linecache.rst:56 msgid "" @@ -85,7 +111,12 @@ msgid "" "later call. This avoids doing I/O until a line is actually needed, without " "having to carry the module globals around indefinitely." msgstr "" +"Captura suficientes detalles sobre un módulo no basado en archivos para " +"permitir obtener sus líneas más tarde a través de :func:`getline` incluso si " +"*module_globals* es ``None`` en la llamada posterior. Esto evita hacer E/S " +"hasta que una línea es realmente necesaria, sin tener que llevar los módulo " +"globales indefinidamente." #: ../Doc/library/linecache.rst:63 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" diff --git a/library/macpath.po b/library/macpath.po index 2bf398e1fd..d20e06ce8e 100644 --- a/library/macpath.po +++ b/library/macpath.po @@ -1,29 +1,31 @@ # 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-01-15 18:56-0600\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/macpath.rst:2 msgid ":mod:`macpath` --- Mac OS 9 path manipulation functions" -msgstr "" +msgstr ":mod:`macpath` --- Funciones de manipulación de ruta de Mac OS 9" #: ../Doc/library/macpath.rst:7 msgid "**Source code:** :source:`Lib/macpath.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/macpath.py`" #: ../Doc/library/macpath.rst:13 msgid "" @@ -31,6 +33,9 @@ msgid "" "path` module. It can be used to manipulate old-style Macintosh pathnames on " "Mac OS X (or any other platform)." msgstr "" +"Este módulo es la implementación de Mac OS 9 (y anteriores) del módulo :mod:" +"`os.path`. Puede ser usado para manipular nombres de rutas antiguos de " +"Macintosh en Mac OS X (o en cualquier otra plataforma)." #: ../Doc/library/macpath.rst:17 msgid "" @@ -39,3 +44,8 @@ msgid "" "func:`isfile`, :func:`walk`, :func:`exists`. For other functions available " "in :mod:`os.path` dummy counterparts are available." msgstr "" +"En este módulo se encuentran disponibles las siguientes funciones: :func:" +"`normcase`, :func:`normpath`, :func:`isabs`, :func:`join`, :func:`split`, :" +"func:`isdir`, :func:`isfile`, :func:`walk`, :func:`exists`. Para otras " +"funciones disponibles en :mod:`os.path`, hay contrapartes de prueba " +"disponibles." diff --git a/library/markup.po b/library/markup.po index 9764ab7301..969b220e7c 100644 --- a/library/markup.po +++ b/library/markup.po @@ -1,6 +1,6 @@ # 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 # @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/markup.rst:5 msgid "Structured Markup Processing Tools" -msgstr "" +msgstr "Herramientas Para Procesar Formatos de Marcado Estructurado" #: ../Doc/library/markup.rst:7 msgid "" @@ -28,3 +28,8 @@ msgid "" "Generalized Markup Language (SGML) and the Hypertext Markup Language (HTML), " "and several interfaces for working with the Extensible Markup Language (XML)." msgstr "" +"Python soporta una variedad de módulos para trabajar con varias formas de " +"almacenar datos de forma estructurada. Esto incluye módulos para trabajar " +"con el Lenguaje de Marcado Estructurado General (SGML) y el Lenguaje de de " +"Marcado de Hipertexto (HTML), y varias interfaces para trabajar con el " +"Lenguaje de Marcado Estructurado Extensible (XML)." diff --git a/library/marshal.po b/library/marshal.po index 16884226c2..f7f1ab3ffa 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -1,25 +1,27 @@ # 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: 2020-10-10 10:39-0400\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/marshal.rst:2 msgid ":mod:`marshal` --- Internal Python object serialization" -msgstr "" +msgstr ":mod:`marshal` --- Serialización interna de objetos Python" #: ../Doc/library/marshal.rst:10 msgid "" @@ -30,6 +32,13 @@ msgid "" "are undocumented on purpose; it may change between Python versions (although " "it rarely does). [#]_" msgstr "" +"Este módulo contiene funciones que pueden leer y escribir valores de Python " +"en un formato binario. El formato es específico de Python, pero " +"independiente de los problemas de arquitectura de la máquina (por ejemplo, " +"puede escribir un valor de Python en un archivo en un PC, transportar el " +"archivo a un Sun y leerlo allí). Los detalles del formato están " +"indocumentados a propósito; pueden cambiar entre las versiones de Python " +"(aunque rara vez lo hacen). [#]_" #: ../Doc/library/marshal.rst:21 msgid "" @@ -44,6 +53,17 @@ msgid "" "guaranteed, and pickle supports a substantially wider range of objects than " "marshal." msgstr "" +"Este no es un módulo general de \"persistencia\". Para la persistencia " +"general y la transferencia de objetos Python a través de llamadas RPC, " +"consulte los módulos :mod:`pickle` y :mod:`shelve`. El módulo :mod:" +"`marshal` existe principalmente para admitir la lectura y escritura del " +"código \"pseudocompilado\" para los módulos Python de archivos :file:`.pyc`. " +"Por lo tanto, los mantenedores de Python se reservan el derecho de modificar " +"el formato de cálculo de referencias de manera incompatible hacia atrás en " +"caso de necesidad. Si va a serializar y deserializar objetos Python, " +"utilice el módulo :mod:`pickle` en su lugar: el rendimiento es comparable, " +"la independencia de la versión está garantizada y pickle admite una gama " +"sustancialmente más amplia de objetos que marshal." #: ../Doc/library/marshal.rst:33 msgid "" @@ -51,6 +71,9 @@ msgid "" "maliciously constructed data. Never unmarshal data received from an " "untrusted or unauthenticated source." msgstr "" +"El módulo :mod:`marshal` no está destinado a ser seguro contra datos " +"erróneos o construidos maliciosamente. Nunca deserializar con marshal los " +"datos recibidos de una fuente no confiable o no autenticada." #: ../Doc/library/marshal.rst:39 msgid "" @@ -66,22 +89,39 @@ msgid "" "*version* lower than 3, recursive lists, sets and dictionaries cannot be " "written (see below)." msgstr "" +"No se admiten todos los tipos de objetos de Python; en general, este módulo " +"solo puede escribir y leer objetos cuyo valor es independiente de una " +"invocación concreta de Python. Se admiten los siguientes tipos: booleanos, " +"enteros, números de punto flotante, números complejos, cadenas de " +"caracteres, bytes, arrays de bytes (bytearray), tuplas, listas, conjuntos " +"(set y frozenset), diccionarios y objetos de código, donde se debe entender " +"que las tuplas, listas, conjuntos y diccionarios solo se admiten siempre que " +"se admitan los valores contenidos en ellos mismos. Los singletons :const:" +"`None`, :const:`Ellipsis` y :exc:`StopIteration` también pueden ser " +"marshalled y unmarshalled. Para el formato *versión* inferior a 3, no se " +"pueden escribir listas, conjuntos ni diccionarios recursivos (véase más " +"adelante)." #: ../Doc/library/marshal.rst:51 msgid "" "There are functions that read/write files as well as functions operating on " "bytes-like objects." msgstr "" +"Hay funciones que leen/escriben archivos, así como funciones que operan en " +"objetos similares a bytes." #: ../Doc/library/marshal.rst:54 msgid "The module defines these functions:" -msgstr "" +msgstr "El módulo define estas funciones:" #: ../Doc/library/marshal.rst:59 msgid "" "Write the value on the open file. The value must be a supported type. The " "file must be a writeable :term:`binary file`." msgstr "" +"Escribe el valor en el archivo abierto. El valor debe ser un tipo " +"admitido. El archivo debe ser un archivo :term:`binary file` en el que se " +"pueda escribir." #: ../Doc/library/marshal.rst:62 msgid "" @@ -90,12 +130,18 @@ msgid "" "written to the file. The object will not be properly read back by :func:" "`load`." msgstr "" +"Si el valor tiene (o contiene un objeto que tiene) un tipo no admitido, se " +"produce una excepción :exc:`ValueError` --- pero los datos no utilizados " +"también se escribirán en el archivo. El objeto no será leído correctamente " +"por :func:`load`." #: ../Doc/library/marshal.rst:66 msgid "" "The *version* argument indicates the data format that ``dump`` should use " "(see below)." msgstr "" +"El argumento *version* indica el formato de datos que ``dump`` debe usar " +"(véase más adelante)." #: ../Doc/library/marshal.rst:72 msgid "" @@ -104,12 +150,19 @@ msgid "" "format), raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. The " "file must be a readable :term:`binary file`." msgstr "" +"Lee un valor del archivo abierto y lo retorna. Si no se lee ningún valor " +"válido (por ejemplo, porque los datos tienen un formato de cálculo de " +"referencias incompatible de una versión de Python diferente), lanza una " +"excepción :exc:`EOFError`, :exc:`ValueError` o :exc:`TypeError`. El archivo " +"debe ser un :term:`binary file` habilitado para lectura." #: ../Doc/library/marshal.rst:79 msgid "" "If an object containing an unsupported type was marshalled with :func:" "`dump`, :func:`load` will substitute ``None`` for the unmarshallable type." msgstr "" +"Si un objeto que contiene un tipo no admitido se calcula con :func:`dump`, :" +"func:`load` sustituirá ``None`` por el tipo \"unmarshallable\"." #: ../Doc/library/marshal.rst:85 msgid "" @@ -117,12 +170,18 @@ msgid "" "file)``. The value must be a supported type. Raise a :exc:`ValueError` " "exception if value has (or contains an object that has) an unsupported type." msgstr "" +"Retorna el objeto bytes que se escribiría en un archivo mediante " +"``dump(value, file)``. El valor debe ser un tipo admitido. Lanza una " +"excepción :exc:`ValueError` si ``value`` tiene (o contiene un objeto que " +"tiene) un tipo no admitido." #: ../Doc/library/marshal.rst:89 msgid "" "The *version* argument indicates the data format that ``dumps`` should use " "(see below)." msgstr "" +"El argumento *version* indica el formato de datos que ``dumps`` debe usar " +"(véase más adelante)." #: ../Doc/library/marshal.rst:95 msgid "" @@ -130,10 +189,14 @@ msgid "" "found, raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. Extra " "bytes in the input are ignored." msgstr "" +"Convierte el objeto :term:`bytes-like object` en un valor. Si no se " +"encuentra ningún valor válido, lanza una excepción :exc:`EOFError`, :exc:" +"`ValueError` o :exc:`TypeError`. Se omiten los bytes adicionales de la " +"entrada." #: ../Doc/library/marshal.rst:100 msgid "In addition, the following constants are defined:" -msgstr "" +msgstr "Además, se definen las siguientes constantes:" #: ../Doc/library/marshal.rst:104 msgid "" @@ -142,10 +205,15 @@ msgid "" "for floating point numbers. Version 3 adds support for object instancing and " "recursion. The current version is 4." msgstr "" +"Indica el formato que utiliza el módulo. La versión 0 es el formato " +"histórico, la versión 1 comparte cadenas internadas y la versión 2 utiliza " +"un formato binario para los números de punto flotante. La versión 3 agrega " +"compatibilidad con la creación de instancias de objetos y la recursividad. " +"La versión actual es 4." #: ../Doc/library/marshal.rst:112 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/library/marshal.rst:113 msgid "" @@ -155,3 +223,9 @@ msgid "" "marshal\" means to convert some data from internal to external form (in an " "RPC buffer for instance) and \"unmarshalling\" for the reverse process." msgstr "" +"El nombre de este módulo proviene de algunos términos utilizados por los " +"diseñadores de Modula-3 (entre otros), que utilizan el término \"marshalling" +"\" para el envío de datos de forma auto-contenida. Estrictamente hablando " +"\"marshalling\", significa convertir algunos datos internos en un formato " +"externo (por ejemplo, en un búfer RPC) y \"unmarshalling\" es el proceso " +"inverso." diff --git a/library/math.po b/library/math.po index 6ce3473c0f..1706ac1cd6 100644 --- a/library/math.po +++ b/library/math.po @@ -6,29 +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: 2020-10-17 19:44+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: Francisco Jesús Sevilla García \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/math.rst:2 msgid ":mod:`math` --- Mathematical functions" -msgstr "" +msgstr ":mod:`math` --- Funciones matemáticas" #: ../Doc/library/math.rst:13 msgid "" "This module provides access to the mathematical functions defined by the C " "standard." msgstr "" +"Este módulo proporciona acceso a las funciones matemáticas definidas en el " +"estándar de C." #: ../Doc/library/math.rst:16 msgid "" @@ -41,16 +45,28 @@ msgid "" "of the unexpected complex number used as a parameter, so that the programmer " "can determine how and why it was generated in the first place." msgstr "" +"Estas funciones no pueden ser usadas con números complejos; usa las " +"funciones con el mismo nombre del módulo :mod:`cmath` si requieres soporte " +"para números complejos. La distinción entre las funciones que admiten " +"números complejos y las que no se hace debido a que la mayoría de los " +"usuarios no quieren aprender tantas matemáticas como se requiere para " +"comprender los números complejos. Recibir una excepción en lugar de un " +"resultado complejo permite la detección temprana del número complejo " +"inesperado utilizado como parámetro, de modo que el programador pueda " +"determinar cómo y porqué se generó en primer lugar." #: ../Doc/library/math.rst:25 msgid "" "The following functions are provided by this module. Except when explicitly " "noted otherwise, all return values are floats." msgstr "" +"Este módulo proporciona las funciones descritas a continuación. Excepto " +"cuando se indique lo contrario explícitamente, todos los valores retornados " +"son flotantes." #: ../Doc/library/math.rst:30 msgid "Number-theoretic and representation functions" -msgstr "" +msgstr "Teoría de números y funciones de representación" #: ../Doc/library/math.rst:34 msgid "" @@ -58,18 +74,25 @@ msgid "" "*x*. If *x* is not a float, delegates to ``x.__ceil__()``, which should " "return an :class:`~numbers.Integral` value." msgstr "" +"Retorna el \"techo\" de *x*, el número entero más pequeño que es mayor o " +"igual que *x*. Si *x* no es un flotante, delega en ``x.__ceil__()``, que " +"debería retornar un valor :class:`~numbers.Integral`." #: ../Doc/library/math.rst:41 msgid "" "Return the number of ways to choose *k* items from *n* items without " "repetition and without order." msgstr "" +"Retorna el número de formas posibles de elegir *k* elementos de *n*, de " +"forma ordenada y sin repetición." #: ../Doc/library/math.rst:44 msgid "" "Evaluates to ``n! / (k! * (n - k)!)`` when ``k <= n`` and evaluates to zero " "when ``k > n``." msgstr "" +"Se evalúa como ``n! / (k! * (n - k)!)`` cuando ``k <= n`` y como cero cuando " +"``k > n``." #: ../Doc/library/math.rst:47 msgid "" @@ -77,12 +100,18 @@ msgid "" "coefficient of k-th term in polynomial expansion of the expression ``(1 + x) " "** n``." msgstr "" +"También se llama coeficiente binomial porque es equivalente al coeficiente " +"del k-ésimo término en el desarrollo polinomial de la expresión ``(1 + x) ** " +"n``." #: ../Doc/library/math.rst:51 ../Doc/library/math.rst:224 msgid "" "Raises :exc:`TypeError` if either of the arguments are not integers. Raises :" "exc:`ValueError` if either of the arguments are negative." msgstr "" +"Lanza una excepción :exc:`TypeError` si alguno de los argumentos no es un " +"entero. Lanza una excepción :exc:`ValueError` si alguno de los argumentos es " +"negativo." #: ../Doc/library/math.rst:59 msgid "" @@ -90,16 +119,21 @@ msgid "" "*y*. On platforms that support signed zeros, ``copysign(1.0, -0.0)`` " "returns *-1.0*." msgstr "" +"Retorna un flotante con la magnitud (valor absoluto) de *x* pero el signo de " +"*y*. En plataformas que admiten ceros con signo, ``copysign(1.0, -0.0)`` " +"retorna *-1.0*." #: ../Doc/library/math.rst:66 msgid "Return the absolute value of *x*." -msgstr "" +msgstr "Retorna el valor absoluto de *x*." #: ../Doc/library/math.rst:71 msgid "" "Return *x* factorial as an integer. Raises :exc:`ValueError` if *x* is not " "integral or is negative." msgstr "" +"Retorna el factorial de *x* como un número entero. Lanza una excepción :exc:" +"`ValueError` si *x* no es un entero o es negativo." #: ../Doc/library/math.rst:77 msgid "" @@ -107,6 +141,9 @@ msgid "" "*x* is not a float, delegates to ``x.__floor__()``, which should return an :" "class:`~numbers.Integral` value." msgstr "" +"Retorna el \"suelo\" de *x*, el primer número entero mayor o igual que *x*. " +"Si *x* no es un flotante, delega en ``x .__floor__()``, que debería retornar " +"un valor :class:`~numbers.Integral`." #: ../Doc/library/math.rst:84 #, python-format @@ -124,6 +161,20 @@ msgid "" "generally preferred when working with floats, while Python's ``x % y`` is " "preferred when working with integers." msgstr "" +"Retorna ``fmod(x, y)``, tal como se define en la biblioteca de C de la " +"plataforma. Ten en cuenta que la expresión ``x % y`` de Python puede no " +"retornar el mismo resultado. La intención del estándar de C es que ``fmod(x, " +"y)`` sea exactamente (matemáticamente; con precisión infinita) igual a ``x - " +"n*y`` para algún número entero *n* tal que el resultado tenga el mismo signo " +"que *x* y magnitud menor que ``abs(y)``. La expresión ``x % y`` de Python " +"retorna un resultado con el signo de *y* en su lugar, y es posible que no " +"pueda calcularse con exactitud para argumentos flotantes. Por ejemplo, " +"``fmod(-1e-100, 1e100)`` es ``-1e-100``, pero el resultado de ``-1e-100 % " +"1e100`` en Python es ``1e100-1e-100``, que no se puede representar " +"exactamente como un flotante, y se redondea sorprendentemente a ``1e100``. " +"Por esta razón, generalmente se prefiere la función :func:`fmod` cuando se " +"trabaja con flotantes, mientras que se prefiere el uso de ``x % y`` de " +"Python cuando se trabaja con enteros." #: ../Doc/library/math.rst:99 msgid "" @@ -132,12 +183,20 @@ msgid "" "zero, returns ``(0.0, 0)``, otherwise ``0.5 <= abs(m) < 1``. This is used " "to \"pick apart\" the internal representation of a float in a portable way." msgstr "" +"Retorna la mantisa y el exponente de *x* como el par ``(m, e)``. *m* es un " +"flotante y *e* es un número entero tal que ``x == m * 2**e`` exactamente. Si " +"*x* es cero, retorna ``(0.0, 0)``, y retorna ``0.5 <= abs(m) < 1`` en caso " +"contrario. Se utiliza como una forma portable de \"extraer\" la " +"representación interna de un flotante." #: ../Doc/library/math.rst:107 msgid "" "Return an accurate floating point sum of values in the iterable. Avoids " "loss of precision by tracking multiple intermediate partial sums::" msgstr "" +"Retorna una suma precisa en coma flotante de los valores de un iterable. " +"Evita la pérdida de precisión mediante el seguimiento de múltiples sumas " +"parciales intermedias::" #: ../Doc/library/math.rst:115 msgid "" @@ -147,6 +206,12 @@ msgid "" "occasionally double-round an intermediate sum causing it to be off in its " "least significant bit." msgstr "" +"La precisión del algoritmo depende de las garantías aritméticas de IEEE-754 " +"y del caso típico en el que se usa el \"medio redondo a par\" (half-even) " +"como método de redondeo. En algunas compilaciones que no son de Windows, la " +"biblioteca de C subyacente utiliza la adición de precisión extendida y, " +"ocasionalmente, puede realizar un doble redondeo en una suma intermedia, " +"haciendo que el bit menos significativo tome el valor incorrecto." #: ../Doc/library/math.rst:121 msgid "" @@ -154,6 +219,9 @@ msgid "" "cookbook recipes for accurate floating point summation `_\\." msgstr "" +"Para una discusión más amplia y dos enfoques alternativos, consultar `ASPN " +"cookbook recipes for accurate floating point summation `_\\." #: ../Doc/library/math.rst:128 msgid "" @@ -161,18 +229,25 @@ msgid "" "*a* or *b* is nonzero, then the value of ``gcd(a, b)`` is the largest " "positive integer that divides both *a* and *b*. ``gcd(0, 0)`` returns ``0``." msgstr "" +"Retorna el máximo común divisor de los números enteros *a* y *b*. Si *a* o " +"*b* son distintos de cero, el valor de ``gcd(a, b)`` es el mayor entero " +"positivo que divide a ambos, *a* y *b*. ``gcd(0, 0)`` retorna ``0``." #: ../Doc/library/math.rst:138 msgid "" "Return ``True`` if the values *a* and *b* are close to each other and " "``False`` otherwise." msgstr "" +"Retorna ``True`` si los valores *a* y *b* están cerca el uno del otro y " +"``False`` en caso contrario." #: ../Doc/library/math.rst:141 msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances." msgstr "" +"Que dos valores se consideren cercanos o no, se determina de acuerdo con las " +"tolerancias absolutas y relativas dadas." #: ../Doc/library/math.rst:144 msgid "" @@ -182,18 +257,28 @@ msgid "" "tolerance is ``1e-09``, which assures that the two values are the same " "within about 9 decimal digits. *rel_tol* must be greater than zero." msgstr "" +"*rel_tol* es la tolerancia relativa: esta es la diferencia máxima permitida " +"entre *a* y *b*, en relación con el valor absoluto mayor de *a* o *b*. Por " +"ejemplo, para establecer una tolerancia del 5%, pasa ``rel_tol=0.05``. La " +"tolerancia predeterminada es ``1e-09``, lo que garantiza que los dos valores " +"sean iguales considerando 9 dígitos decimales aproximadamente. *rel_tol* " +"debe ser mayor que cero." #: ../Doc/library/math.rst:150 msgid "" "*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " "zero. *abs_tol* must be at least zero." msgstr "" +"*abs_tol* es la tolerancia absoluta mínima, útil para las comparaciones " +"cercanas a cero. *abs_tol* debe valer al menos cero." #: ../Doc/library/math.rst:153 msgid "" "If no errors occur, the result will be: ``abs(a-b) <= max(rel_tol * " "max(abs(a), abs(b)), abs_tol)``." msgstr "" +"Si no se encuentran errores, el resultado será: ``abs(a-b) <= max(rel_tol * " +"max(abs(a), abs(b)), abs_tol)``." #: ../Doc/library/math.rst:156 msgid "" @@ -202,27 +287,37 @@ msgid "" "close to any other value, including ``NaN``. ``inf`` and ``-inf`` are only " "considered close to themselves." msgstr "" +"Los valores especiales de IEEE 754 ``NaN``, ``inf`` e ``-inf`` se manejarán " +"de acuerdo con las reglas del IEEE. Concretamente, ``NaN`` no se considera " +"cercano a ningún otro valor, incluido ``NaN``. Por su parte, ``inf`` e ``-" +"inf`` solo se consideran cercanos a sí mismos." #: ../Doc/library/math.rst:165 msgid ":pep:`485` -- A function for testing approximate equality" -msgstr "" +msgstr ":pep:`485` -- Una función para comprobar la igualdad aproximada" #: ../Doc/library/math.rst:170 msgid "" "Return ``True`` if *x* is neither an infinity nor a NaN, and ``False`` " "otherwise. (Note that ``0.0`` *is* considered finite.)" msgstr "" +"Retorna ``True`` si *x* no es infinito ni NaN, o ``False`` en caso " +"contrario. (Ten en cuenta que ``0.0`` *es* considerado finito.)" #: ../Doc/library/math.rst:178 msgid "" "Return ``True`` if *x* is a positive or negative infinity, and ``False`` " "otherwise." msgstr "" +"Retorna ``True`` si *x* es infinito positivo o negativo, o ``False`` en caso " +"contrario." #: ../Doc/library/math.rst:184 msgid "" "Return ``True`` if *x* is a NaN (not a number), and ``False`` otherwise." msgstr "" +"Retorna ``True`` si *x* es NaN (not a number, en español: no es un número), " +"o ``False`` en caso contrario." #: ../Doc/library/math.rst:189 msgid "" @@ -230,6 +325,9 @@ msgid "" "floor of the exact square root of *n*, or equivalently the greatest integer " "*a* such that *a*\\ ² |nbsp| ≤ |nbsp| *n*." msgstr "" +"Retorna la raíz cuadrada del número entero no negativo *n*. Es el resultado " +"de aplicar la función suelo al valor exacto de la raíz cuadrada de *n*, o de " +"forma equivalente, el mayor entero *a* tal que *a*\\ ² |nbsp| ≤ |nbsp| *n*." #: ../Doc/library/math.rst:193 msgid "" @@ -238,42 +336,58 @@ msgid "" "the exact square root of *n*. For positive *n*, this can be computed using " "``a = 1 + isqrt(n - 1)``." msgstr "" +"Para algunas aplicaciones, puede ser más conveniente tener el menor número " +"entero *a* tal que *n* |nbsp| ≤ |nbsp| *a*\\ ², en otras palabras, el " +"resultado de aplicar la función techo a la raíz cuadrada exacta de *n*. Para " +"*n* positivo, esto se puede calcular usando ``a = 1 + isqrt(n - 1)``." #: ../Doc/library/math.rst:203 msgid "" "Return ``x * (2**i)``. This is essentially the inverse of function :func:" "`frexp`." msgstr "" +"Retorna ``x * (2**i)``. Esta es esencialmente la función inversa de :func:" +"`frexp`." #: ../Doc/library/math.rst:209 msgid "" "Return the fractional and integer parts of *x*. Both results carry the sign " "of *x* and are floats." msgstr "" +"Retorna la parte fraccionaria y entera de *x*. Ambos resultados son " +"flotantes y tienen el mismo signo que *x* ." #: ../Doc/library/math.rst:215 msgid "" "Return the number of ways to choose *k* items from *n* items without " "repetition and with order." msgstr "" +"Retorna el número de formas posibles de elegir *k* elementos de *n* " +"elementos, sin repetición y en orden." #: ../Doc/library/math.rst:218 msgid "" "Evaluates to ``n! / (n - k)!`` when ``k <= n`` and evaluates to zero when " "``k > n``." msgstr "" +"Se evalúa como ``n! / (n - k)!`` cuando ``k <= n`` y como cero cuando ``k > " +"n``." #: ../Doc/library/math.rst:221 msgid "" "If *k* is not specified or is None, then *k* defaults to *n* and the " "function returns ``n!``." msgstr "" +"Si *k* no se especifica o es None, *k* será igual a *n* por defecto y la " +"función retornará ``n!``." #: ../Doc/library/math.rst:232 msgid "" "Calculate the product of all the elements in the input *iterable*. The " "default *start* value for the product is ``1``." msgstr "" +"Calcula el producto de todos los elementos en la entrada *iterable*. El " +"valor *start* predeterminado para el producto es ``1``." #: ../Doc/library/math.rst:235 msgid "" @@ -281,6 +395,9 @@ msgid "" "intended specifically for use with numeric values and may reject non-numeric " "types." msgstr "" +"Cuando el iterable está vacío, retorna el valor inicial. Esta función está " +"diseñada específicamente para su uso con valores numéricos y puede rechazar " +"tipos no numéricos." #: ../Doc/library/math.rst:244 msgid "" @@ -291,6 +408,13 @@ msgid "" "*even* integer is used for ``n``. The remainder ``r = remainder(x, y)`` " "thus always satisfies ``abs(r) <= 0.5 * abs(y)``." msgstr "" +"Retorna el resto o residuo según la norma IEEE 754 de *x* con respecto a " +"*y*. Para un valor *x* finito y un valor *y* finito distinto de cero, es la " +"diferencia ``x - n * y``, donde ``n`` es el número entero más cercano al " +"valor exacto del cociente ``x / y``. Si ``x / y`` está exactamente en mitad " +"de dos enteros consecutivos, el entero *par* más cercano se utiliza para " +"``n``. Por lo tanto, el residuo ``r = remainder(x, y)`` siempre satisface " +"``abs(r) <= 0.5 * abs(y)``." #: ../Doc/library/math.rst:251 msgid "" @@ -299,12 +423,20 @@ msgid "" "x)`` raise :exc:`ValueError` for any non-NaN *x*. If the result of the " "remainder operation is zero, that zero will have the same sign as *x*." msgstr "" +"Los casos especiales siguen el estándar IEEE 754: en particular, " +"``remainder(x, math.inf)`` es *x* para todo *x* finito, y ``remainder(x, " +"0)`` junto a ``remainder(math.inf, x)`` lanzan una excepción :exc:" +"`ValueError` para todo *x* que no sea NaN. Si el resultado de la operación " +"residuo es cero, este cero tendrá el mismo signo que *x*." #: ../Doc/library/math.rst:257 msgid "" "On platforms using IEEE 754 binary floating-point, the result of this " "operation is always exactly representable: no rounding error is introduced." msgstr "" +"En plataformas que utilizan la norma IEEE 754 para números en coma flotante " +"binarios, el resultado de esta operación siempre es exactamente " +"representable: no se introduce ningún error de redondeo." #: ../Doc/library/math.rst:265 msgid "" @@ -312,6 +444,9 @@ msgid "" "Integral` (usually an integer). Delegates to :meth:`x.__trunc__() `." msgstr "" +"Retorna el valor :class:`~numbers.Real` *x* truncado a un :class:`~numbers." +"Integral` (generalmente un entero). Delega en :meth:`x.__trunc__() `." #: ../Doc/library/math.rst:270 msgid "" @@ -320,6 +455,10 @@ msgid "" "pair of values, rather than returning their second return value through an " "'output parameter' (there is no such thing in Python)." msgstr "" +"Ten en cuenta que :func:`frexp` y :func:`modf` tienen un patrón de llamada/" +"retorno diferente al de sus equivalentes en C: toman un solo argumento y " +"retornan un par de valores, en lugar de retornar su segundo valor de retorno " +"a través de un `parámetro de salida` (no existe tal cosa en Python)." #: ../Doc/library/math.rst:275 msgid "" @@ -329,10 +468,16 @@ msgid "" "(the same as the platform C double type), in which case any float *x* with " "``abs(x) >= 2**52`` necessarily has no fractional bits." msgstr "" +"Para las funciones :func:`ceil`, :func:`floor` y :func:`modf`, ten en cuenta " +"que *todos* los números de coma flotante de magnitud suficientemente grande " +"son enteros exactos. Los flotantes de Python normalmente no tienen más de 53 " +"bits de precisión (lo mismo que el tipo double de C en la plataforma), en " +"cuyo caso cualquier flotante *x* con ``abs(x) >= 2**52`` no necesariamente " +"tiene bits fraccionarios." #: ../Doc/library/math.rst:283 msgid "Power and logarithmic functions" -msgstr "" +msgstr "Funciones logarítmicas y exponenciales" #: ../Doc/library/math.rst:287 msgid "" @@ -340,6 +485,9 @@ msgid "" "natural logarithms. This is usually more accurate than ``math.e ** x`` or " "``pow(math.e, x)``." msgstr "" +"Retorna *e* elevado a la *x* potencia, dónde *e* = 2.718281... es la base de " +"los logaritmos naturales. Esto generalmente es más preciso que ``math.e ** " +"x`` o ``pow(math.e, x)``." #: ../Doc/library/math.rst:294 msgid "" @@ -349,40 +497,55 @@ msgid "" "wiki/Loss_of_significance>`_\\; the :func:`expm1` function provides a way to " "compute this quantity to full precision::" msgstr "" +"Retorna *e* elevado a la *x* potencia, menos 1. Aquí *e* es la base de los " +"logaritmos naturales. Para flotantes *x* pequeños, la resta en ``exp(x) - " +"1`` puede resultar en una `pérdida significativa de precisión `_\\; la función :func:`expm1` " +"proporciona una forma de calcular este valor con una precisión total::" #: ../Doc/library/math.rst:311 msgid "With one argument, return the natural logarithm of *x* (to base *e*)." -msgstr "" +msgstr "Con un argumento, retorna el logaritmo natural de *x* (en base *e*)." #: ../Doc/library/math.rst:313 msgid "" "With two arguments, return the logarithm of *x* to the given *base*, " "calculated as ``log(x)/log(base)``." msgstr "" +"Con dos argumentos, retorna el logaritmo de *x* en la *base* dada, calculado " +"como ``log(x)/log(base)``." #: ../Doc/library/math.rst:319 msgid "" "Return the natural logarithm of *1+x* (base *e*). The result is calculated " "in a way which is accurate for *x* near zero." msgstr "" +"Retorna el logaritmo natural de *1+x* (base *e*). El resultado se calcula de " +"forma precisa para *x* cercano a cero." #: ../Doc/library/math.rst:325 msgid "" "Return the base-2 logarithm of *x*. This is usually more accurate than " "``log(x, 2)``." msgstr "" +"Retorna el logaritmo en base 2 de *x*. Esto suele ser más preciso que " +"``log(x, 2)``." #: ../Doc/library/math.rst:332 msgid "" ":meth:`int.bit_length` returns the number of bits necessary to represent an " "integer in binary, excluding the sign and leading zeros." msgstr "" +":meth:`int.bit_length` retorna el número de bits necesarios para representar " +"un entero en binario, excluyendo el signo y los ceros iniciales." #: ../Doc/library/math.rst:338 msgid "" "Return the base-10 logarithm of *x*. This is usually more accurate than " "``log(x, 10)``." msgstr "" +"Retorna el logaritmo en base 10 de *x*. Esto suele ser más preciso que " +"``log(x, 10)``." #: ../Doc/library/math.rst:344 msgid "" @@ -392,6 +555,12 @@ msgid "" "If both ``x`` and ``y`` are finite, ``x`` is negative, and ``y`` is not an " "integer then ``pow(x, y)`` is undefined, and raises :exc:`ValueError`." msgstr "" +"Retorna ``x`` elevado a la potencia ``y``. Los casos excepcionales siguen el " +"Anexo 'F' del estándar C99 en la medida de lo posible. En particular, " +"``pow(1.0, x)`` y ``pow(x, 0.0)`` siempre retornan ``1.0``, incluso cuando " +"``x`` es cero o NaN. Si tanto ``x`` como ``y`` son finitos, ``x`` es " +"negativo e ``y`` no es un número entero, entonces ``pow(x, y)`` no está " +"definido y se lanza una excepción :exc:`ValueError`." #: ../Doc/library/math.rst:351 msgid "" @@ -399,26 +568,29 @@ msgid "" "arguments to type :class:`float`. Use ``**`` or the built-in :func:`pow` " "function for computing exact integer powers." msgstr "" +"A diferencia del operador incorporado ``**``, :func:`math.pow` convierte " +"ambos argumentos al tipo :class:`float`. Utiliza ``**`` o la función " +"incorporada :func:`pow` para calcular potencias enteras exactas." #: ../Doc/library/math.rst:358 msgid "Return the square root of *x*." -msgstr "" +msgstr "Retorna la raíz cuadrada de *x*." #: ../Doc/library/math.rst:362 msgid "Trigonometric functions" -msgstr "" +msgstr "Funciones trigonométricas" #: ../Doc/library/math.rst:366 msgid "Return the arc cosine of *x*, in radians." -msgstr "" +msgstr "Retorna el arcocoseno de *x*, en radianes." #: ../Doc/library/math.rst:371 msgid "Return the arc sine of *x*, in radians." -msgstr "" +msgstr "Retorna el arcoseno de *x*, en radianes." #: ../Doc/library/math.rst:376 msgid "Return the arc tangent of *x*, in radians." -msgstr "" +msgstr "Retorna la arcotangente de *x*, en radianes." #: ../Doc/library/math.rst:381 msgid "" @@ -429,10 +601,16 @@ msgid "" "for the angle. For example, ``atan(1)`` and ``atan2(1, 1)`` are both " "``pi/4``, but ``atan2(-1, -1)`` is ``-3*pi/4``." msgstr "" +"Retorna ``atan(y / x)``, en radianes. El resultado está entre ``-pi`` y " +"``pi``. El vector del plano que va del origen al punto ``(x, y)``, forma " +"este ángulo con el eje X positivo. La ventaja de :func:`atan2` es que el " +"signo de ambas entradas es conocido, por lo que se puede calcular el " +"cuadrante correcto para el ángulo. Por ejemplo, ``atan(1)`` y ``atan2(1, " +"1)`` son ambas ``pi/4``, pero ``atan2(-1, -1)`` es ``-3*pi/4``." #: ../Doc/library/math.rst:391 msgid "Return the cosine of *x* radians." -msgstr "" +msgstr "Retorna el coseno de *x* radianes." #: ../Doc/library/math.rst:396 msgid "" @@ -440,10 +618,13 @@ msgid "" "a sequence (or iterable) of coordinates. The two points must have the same " "dimension." msgstr "" +"Retorna la distancia euclidiana entre dos puntos *p* y *q*, cada uno de " +"ellos dado como una secuencia (o iterable) de coordenadas. Los dos puntos " +"deben tener la misma dimensión." #: ../Doc/library/math.rst:400 msgid "Roughly equivalent to::" -msgstr "" +msgstr "Aproximadamente equivalente a::" #: ../Doc/library/math.rst:409 msgid "" @@ -451,6 +632,9 @@ msgid "" "the length of the vector from the origin to the point given by the " "coordinates." msgstr "" +"Retorna la norma euclidiana, ``sqrt(sum(x**2 for x in coordinates))``. Esta " +"es la longitud del vector que va desde el origen hasta el punto dado por las " +"coordenadas." #: ../Doc/library/math.rst:413 msgid "" @@ -458,36 +642,41 @@ msgid "" "hypotenuse of a right triangle using the Pythagorean theorem, ``sqrt(x*x + " "y*y)``." msgstr "" +"Para un punto bidimensional ``(x, y)``, esto equivale a calcular la " +"hipotenusa de un triángulo rectángulo usando el teorema de Pitágoras, " +"``sqrt(x*x + y*y)``." #: ../Doc/library/math.rst:417 msgid "" "Added support for n-dimensional points. Formerly, only the two dimensional " "case was supported." msgstr "" +"Agregado soporte para puntos n-dimensionales. Anteriormente, solo se admitía " +"el caso bidimensional." #: ../Doc/library/math.rst:424 msgid "Return the sine of *x* radians." -msgstr "" +msgstr "Retorna el seno de *x* radianes." #: ../Doc/library/math.rst:429 msgid "Return the tangent of *x* radians." -msgstr "" +msgstr "Retorna la tangente de *x* radianes." #: ../Doc/library/math.rst:433 msgid "Angular conversion" -msgstr "" +msgstr "Conversión angular" #: ../Doc/library/math.rst:437 msgid "Convert angle *x* from radians to degrees." -msgstr "" +msgstr "Convierte el ángulo *x* de radianes a grados." #: ../Doc/library/math.rst:442 msgid "Convert angle *x* from degrees to radians." -msgstr "" +msgstr "Convierte el ángulo *x* de grados a radianes." #: ../Doc/library/math.rst:446 msgid "Hyperbolic functions" -msgstr "" +msgstr "Funciones hiperbólicas" #: ../Doc/library/math.rst:448 msgid "" @@ -495,40 +684,45 @@ msgid "" "are analogs of trigonometric functions that are based on hyperbolas instead " "of circles." msgstr "" +"`Las funciones hiperbólicas `_ son análogas a las funciones trigonométricas " +"pero basadas en hipérbolas en lugar de en círculos." #: ../Doc/library/math.rst:454 msgid "Return the inverse hyperbolic cosine of *x*." -msgstr "" +msgstr "Retorna el coseno hiperbólico inverso de *x*." #: ../Doc/library/math.rst:459 msgid "Return the inverse hyperbolic sine of *x*." -msgstr "" +msgstr "Retorna el seno hiperbólico inverso de *x*." #: ../Doc/library/math.rst:464 msgid "Return the inverse hyperbolic tangent of *x*." -msgstr "" +msgstr "Retorna la tangente hiperbólica inversa de *x*." #: ../Doc/library/math.rst:469 msgid "Return the hyperbolic cosine of *x*." -msgstr "" +msgstr "Retorna el coseno hiperbólico de *x*." #: ../Doc/library/math.rst:474 msgid "Return the hyperbolic sine of *x*." -msgstr "" +msgstr "Retorna el seno hiperbólico de *x*." #: ../Doc/library/math.rst:479 msgid "Return the hyperbolic tangent of *x*." -msgstr "" +msgstr "Retorna la tangente hiperbólica de *x*." #: ../Doc/library/math.rst:483 msgid "Special functions" -msgstr "" +msgstr "Funciones especiales" #: ../Doc/library/math.rst:487 msgid "" "Return the `error function `_ " "at *x*." msgstr "" +"Retorna la `función error `_ en *x*." #: ../Doc/library/math.rst:490 msgid "" @@ -536,6 +730,10 @@ msgid "" "functions such as the `cumulative standard normal distribution `_::" msgstr "" +"La función :func:`erf` se puede utilizar para calcular funciones " +"estadísticas tradicionales como la `distribución normal estándar acumulativa " +"`_::" #: ../Doc/library/math.rst:503 msgid "" @@ -545,30 +743,40 @@ msgid "" "from one would cause a `loss of significance `_\\." msgstr "" +"Retorna la función error complementaria en *x*. La `función error " +"complementaria `_ se " +"define como ``1.0 - erf(x)``. Se usa para valores grandes de *x* donde una " +"resta de 1 causaría una `pérdida de presición `_\\." #: ../Doc/library/math.rst:514 msgid "" "Return the `Gamma function `_ " "at *x*." msgstr "" +"Retorna la `función gamma `_ en *x*." #: ../Doc/library/math.rst:522 msgid "" "Return the natural logarithm of the absolute value of the Gamma function at " "*x*." msgstr "" +"Retorna el logaritmo natural del valor absoluto de la función gamma en *x*." #: ../Doc/library/math.rst:529 msgid "Constants" -msgstr "" +msgstr "Constantes" #: ../Doc/library/math.rst:533 msgid "The mathematical constant *π* = 3.141592..., to available precision." msgstr "" +"La constante matemática *π* = 3.141592..., hasta la precisión disponible." #: ../Doc/library/math.rst:538 msgid "The mathematical constant *e* = 2.718281..., to available precision." msgstr "" +"La constante matemática *e* = 2.718281..., hasta la precisión disponible." #: ../Doc/library/math.rst:543 msgid "" @@ -578,18 +786,28 @@ msgid "" "(still) Wrong `_, and start " "celebrating `Tau day `_ by eating twice as much pie!" msgstr "" +"La constante matemática *τ* = 6.283185..., hasta la precisión disponible. " +"Tau es una constante del círculo igual a 2\\ *π*, la razón entre la " +"circunferencia de un círculo y su radio. Para obtener más información sobre " +"Tau, consulta el video de Vi Hart, `Pi is (still) Wrong `_, y comienza a celebrar el `el día de Tau `_ ¡comiendo el doble de tarta!" #: ../Doc/library/math.rst:554 msgid "" "A floating-point positive infinity. (For negative infinity, use ``-math." "inf``.) Equivalent to the output of ``float('inf')``." msgstr "" +"Un valor infinito positivo en punto flotante. (Para un valor infinito " +"negativo, usa ``-math.inf``.) Equivalente a la salida de ``float('inf')``." #: ../Doc/library/math.rst:562 msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to the output of " "``float('nan')``." msgstr "" +"Un valor de punto flotante que \"no es un número\" (NaN). Equivalente a la " +"salida de ``float('nan')``." #: ../Doc/library/math.rst:570 msgid "" @@ -605,6 +823,19 @@ msgid "" "are some exceptions to this rule, for example ``pow(float('nan'), 0.0)`` or " "``hypot(float('nan'), float('inf'))``." msgstr "" +"El módulo :mod:`math` consiste principalmente en delgados envoltorios " +"alrededor de las funciones matemáticas de la biblioteca de C de la " +"plataforma. El comportamiento en casos excepcionales sigue el Anexo F del " +"estándar C99 cuando corresponda. La implementación actual lanzará un :exc:" +"`ValueError` para operaciones no válidas como ``sqrt(-1.0)`` o ``log(0.0)`` " +"(donde el estándar C99 recomienda señalar que la operación no es válida o " +"que hay división entre cero), y un :exc:`OverflowError` para aquellos " +"resultados de desbordamiento (por ejemplo, ``exp(1000.0)``). No se retornará " +"NaN para ninguna de las funciones anteriores, a no ser que al menos uno de " +"los argumentos de la función sea NaN. En este caso, la mayoría de las " +"funciones retornan NaN, pero de nuevo (de acuerdo con el apéndice F del " +"estándar C99) hay algunas excepciones a esta regla, por ejemplo " +"``pow(float('nan'), 0.0)`` o ``hypot(float('nan'), float('inf'))``." #: ../Doc/library/math.rst:582 msgid "" @@ -612,11 +843,15 @@ msgid "" "NaNs, and behavior for signaling NaNs remains unspecified. Typical behavior " "is to treat all NaNs as though they were quiet." msgstr "" +"Ten en cuenta que Python no hace ningún esfuerzo por distinguir los NaN de " +"señalización de los NaN silenciosos, y el comportamiento de señalización de " +"los NaN permanece sin especificar. El comportamiento estándar es tratar a " +"todos los NaN como silenciosos." #: ../Doc/library/math.rst:589 msgid "Module :mod:`cmath`" -msgstr "" +msgstr "Módulo :mod:`cmath`" #: ../Doc/library/math.rst:590 msgid "Complex number versions of many of these functions." -msgstr "" +msgstr "Versiones de muchas de estas funciones para números complejos." diff --git a/library/mm.po b/library/mm.po index aba77039af..bd9dcf6c92 100644 --- a/library/mm.po +++ b/library/mm.po @@ -1,25 +1,27 @@ # 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: 2020-10-25 11:13-0400\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/mm.rst:5 msgid "Multimedia Services" -msgstr "" +msgstr "Servicios Multimedia" #: ../Doc/library/mm.rst:7 msgid "" @@ -27,3 +29,6 @@ msgid "" "interfaces that are mainly useful for multimedia applications. They are " "available at the discretion of the installation. Here's an overview:" msgstr "" +"Los módulos descritos en este capítulo implementan varios algoritmos o " +"interfaces que son útiles principalmente para aplicaciones multimedia. Su " +"disponibilidad depende de la instalación. He aquí una visión general:" diff --git a/library/modulefinder.po b/library/modulefinder.po index 3d5ff1ebb9..6c676bd364 100644 --- a/library/modulefinder.po +++ b/library/modulefinder.po @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/modulefinder.rst:2 msgid ":mod:`modulefinder` --- Find modules used by a script" -msgstr "" +msgstr ":mod:`modulefinder` --- Buscar módulos usados por un script" #: ../Doc/library/modulefinder.rst:9 msgid "**Source code:** :source:`Lib/modulefinder.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/modulefinder.py`" #: ../Doc/library/modulefinder.rst:13 msgid "" @@ -32,18 +32,27 @@ msgid "" "also be run as a script, giving the filename of a Python script as its " "argument, after which a report of the imported modules will be printed." msgstr "" +"Este módulo provee una clase :class:`ModuleFinder` que puede ser usada para " +"determinar el conjunto de módulos importados en un script. ``modulefinder." +"py`` puede también ejecutarse como un script, dando el nombre de un archivo " +"de Python como argumento, tras lo cual se imprimirá un reporte de los " +"módulos importados." #: ../Doc/library/modulefinder.rst:21 msgid "" "Record that the package named *pkg_name* can be found in the specified " "*path*." msgstr "" +"Registra que el paquete llamado *pkg_name* pueda ser encontrado en el *path* " +"especificado." #: ../Doc/library/modulefinder.rst:26 msgid "" "Allows specifying that the module named *oldname* is in fact the package " "named *newname*." msgstr "" +"Permite especificar que el módulo llamado *oldname* es de hecho el paquete " +"llamado *newname*." #: ../Doc/library/modulefinder.rst:32 msgid "" @@ -55,6 +64,14 @@ msgid "" "names to exclude from the analysis. *replace_paths* is a list of ``(oldpath, " "newpath)`` tuples that will be replaced in module paths." msgstr "" +"Esta clase provee los métodos :meth:`run_script` y :meth:`report` que " +"determinan el conjunto de módulos importados por un script. *path* puede ser " +"un listado de directorios a buscar por módulos; si no es especificado, se " +"usará ``sys.path``. *debug* define el nivel de depuración; valores más altos " +"hacen que la clase imprima mensajes de depuración acerca de lo que está " +"haciendo. *excludes* es una lista de nombres de módulos que serán excluidos " +"del análisis. *replace_paths* es una lista de tuplas ``(oldpath, newpath)`` " +"que serán remplazadas en las rutas de los módulos." #: ../Doc/library/modulefinder.rst:43 msgid "" @@ -62,30 +79,36 @@ msgid "" "script and their paths, as well as modules that are missing or seem to be " "missing." msgstr "" +"Imprime un reporte a la salida estándar que lista los módulos importados por " +"el script y sus rutas, así como los módulos que faltan o parecieran faltar." #: ../Doc/library/modulefinder.rst:49 msgid "" "Analyze the contents of the *pathname* file, which must contain Python code." msgstr "" +"Analiza los contenidos del archivo *pathname*, que debe contener código " +"Python." #: ../Doc/library/modulefinder.rst:54 msgid "" "A dictionary mapping module names to modules. See :ref:`modulefinder-" "example`." msgstr "" +"Un diccionario que mapea los nombres de los módulos a los módulos. Vea :ref:" +"`modulefinder-example`." #: ../Doc/library/modulefinder.rst:61 msgid "Example usage of :class:`ModuleFinder`" -msgstr "" +msgstr "Ejemplo de uso de :class:`ModuleFinder`" #: ../Doc/library/modulefinder.rst:63 msgid "The script that is going to get analyzed later on (bacon.py)::" -msgstr "" +msgstr "El script que será analizado más adelante (bacon.py)::" #: ../Doc/library/modulefinder.rst:78 msgid "The script that will output the report of bacon.py::" -msgstr "" +msgstr "El script que generará el reporte de bacon.py::" #: ../Doc/library/modulefinder.rst:94 msgid "Sample output (may vary depending on the architecture)::" -msgstr "" +msgstr "Resultado de ejemplo (puede variar dependiendo de la arquitectura)::" diff --git a/library/modules.po b/library/modules.po index 938e47748e..1f4d49847f 100644 --- a/library/modules.po +++ b/library/modules.po @@ -1,32 +1,37 @@ # 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: 2020-10-14 18:40+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/modules.rst:5 msgid "Importing Modules" -msgstr "" +msgstr "Importando módulos" #: ../Doc/library/modules.rst:7 msgid "" "The modules described in this chapter provide new ways to import other " "Python modules and hooks for customizing the import process." msgstr "" +"Los módulos descritos en este capítulo proporcionan nuevas formas de " +"importar otros módulos de Python y ganchos para personalizar los procesos de " +"importación." #: ../Doc/library/modules.rst:10 msgid "The full list of modules described in this chapter is:" -msgstr "" +msgstr "La lista completa de módulos descritos en este capítulo es:" diff --git a/library/msilib.po b/library/msilib.po index 7c5c95d44b..6e9967d3bf 100644 --- a/library/msilib.po +++ b/library/msilib.po @@ -1,30 +1,33 @@ # 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: 2020-11-21 22:54+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/msilib.rst:2 msgid ":mod:`msilib` --- Read and write Microsoft Installer files" -msgstr "" +msgstr ":mod:`msilib` --- Leer y escribir archivos *Microsoft Installer*" #: ../Doc/library/msilib.rst:11 msgid "**Source code:** :source:`Lib/msilib/__init__.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/msilib/__init__.py`" +# La última frase es rara #: ../Doc/library/msilib.rst:17 msgid "" "The :mod:`msilib` supports the creation of Microsoft Installer (``.msi``) " @@ -33,6 +36,11 @@ msgid "" "cab`` files is currently not implemented; read support for the ``.msi`` " "database is possible." msgstr "" +"El :mod:`msilib` soporta la creación de archivos *Microsoft Installer* (``." +"msi``). Como estos archivos a menudo contienen archivos *cabinet* (``.cab``) " +"embebidos, se expone también una API para crear archivos CAB. El soporte " +"para leer archivos ``.cab`` todavía no está implementado; el soporte a " +"lectura de base de datos ``.msi`` es posible." #: ../Doc/library/msilib.rst:22 msgid "" @@ -42,6 +50,11 @@ msgid "" "creation of Python installer package itself (although that currently uses a " "different version of ``msilib``)." msgstr "" +"Este paquete se centra en proveer acceso completo a todas las tablas de un " +"archivo ``.msi``, por lo que se puede considerar una API de bajo nivel. Dos " +"aplicaciones principales de este paquete son el comando ``bdist_msi`` de :" +"mod:`distutils`, y la creación del propio paquete instalador de Python " +"(aunque utiliza una versión diferente de ``msilib``)." #: ../Doc/library/msilib.rst:28 msgid "" @@ -49,6 +62,9 @@ msgid "" "routines, low-level MSI routines, higher-level MSI routines, and standard " "table structures." msgstr "" +"El contenido del paquete se puede dividir en cuatro partes: rutinas CAB de " +"bajo nivel, rutinas MSI de bajo nivel, rutinas MSI de alto nivel, y " +"estructuras de tabla estándar." #: ../Doc/library/msilib.rst:35 msgid "" @@ -56,6 +72,9 @@ msgid "" "each containing the name of the file on disk, and the name of the file " "inside the CAB file." msgstr "" +"Crea un nuevo archivo CAB llamado *cabname*. *files* debe ser una lista de " +"tuplas, donde cada una contiene el nombre del archivo en disco, y el nombre " +"del archivo dentro del archivo CAB." #: ../Doc/library/msilib.rst:39 msgid "" @@ -63,18 +82,26 @@ msgid "" "All files are added into a single CAB file, using the MSZIP compression " "algorithm." msgstr "" +"Los archivos son añadidos al archivo CAB en el orden en el cual aparecen en " +"la lista. Todos los archivos son añadidos a un solo archivo CAB, utilizando " +"el algoritmo de compresión MSZIP." #: ../Doc/library/msilib.rst:42 msgid "" "Callbacks to Python for the various steps of MSI creation are currently not " "exposed." msgstr "" +"Las retrollamadas a Python para los diferentes pasos de la creación de MSI " +"no están actualmente expuestas." #: ../Doc/library/msilib.rst:48 msgid "" "Return the string representation of a new unique identifier. This wraps the " "Windows API functions :c:func:`UuidCreate` and :c:func:`UuidToString`." msgstr "" +"Retorna la representación de un nuevo identificador único como cadena de " +"caracteres. Esto envuelve las funciones :c:func:`UuidCreate` y :c:func:" +"`UuidToString` de la API de Windows." #: ../Doc/library/msilib.rst:54 msgid "" @@ -86,12 +113,21 @@ msgid "" "these flags; depending on the flags, an existing database is opened, or a " "new one created." msgstr "" +"Retorna una nueva base de datos llamando a MsiOpenDatabase. *path* es el " +"nombre del archivo MSI; *persist* puede ser una de las constantes " +"``MSIDBOPEN_CREATEDIRECT``, ``MSIDBOPEN_CREATE``, ``MSIDBOPEN_DIRECT``, " +"``MSIDBOPEN_READONLY`` o ``MSIDBOPEN_TRANSACT``, y puede incluir la bandera " +"``MSIDBOPEN_PATCHFILE``. El significado de estas banderas se puede consultar " +"en la documentación de Microsoft; dependiendo de las banderas, se abrirá una " +"base de datos existente, o se creará una nueva." #: ../Doc/library/msilib.rst:65 msgid "" "Return a new record object by calling :c:func:`MSICreateRecord`. *count* is " "the number of fields of the record." msgstr "" +"Retorna un nuevo objeto de registro llamando a :c:func:`MSICreateRecord`. " +"*count* es el número de campos del registro." #: ../Doc/library/msilib.rst:71 msgid "" @@ -99,6 +135,9 @@ msgid "" "set the properties *ProductName*, *ProductCode*, *ProductVersion*, and " "*Manufacturer*." msgstr "" +"Crea y retorna una nueva base de datos *name*, la inicializa con *schema*, y " +"establece las propiedades *ProductName*, *ProductCode*, *ProductVersion* y " +"*Manufacturer*." #: ../Doc/library/msilib.rst:75 msgid "" @@ -106,16 +145,20 @@ msgid "" "``_Validation_records`` attributes; typically, :mod:`msilib.schema` should " "be used." msgstr "" +"*schema* debe ser un objeto módulo que contenga los atributos ``tables`` y " +"``_Validation_records``; normalmente se debería usar :mod:`msilib.schema`." #: ../Doc/library/msilib.rst:79 msgid "" "The database will contain just the schema and the validation records when " "this function returns." msgstr "" +"La base de datos contendrá únicamente el esquema y los registros de " +"validación cuando esta función retorne." #: ../Doc/library/msilib.rst:85 msgid "Add all *records* to the table named *table* in *database*." -msgstr "" +msgstr "Añade todos los *records* de la tabla llamada *table* a *database*." #: ../Doc/library/msilib.rst:87 msgid "" @@ -123,6 +166,9 @@ msgid "" "e.g. ``'Feature'``, ``'File'``, ``'Component'``, ``'Dialog'``, " "``'Control'``, etc." msgstr "" +"El argumento *table* debe ser una de las tablas predefinidas en el esquema " +"MSI, como ``'Feature'``, ``'File'``, ``'Component'``, ``'Dialog'``, " +"``'Control'``, etc." #: ../Doc/library/msilib.rst:91 msgid "" @@ -130,16 +176,23 @@ msgid "" "record according to the schema of the table. For optional fields, ``None`` " "can be passed." msgstr "" +"*records* debería ser una lista de tuplas, donde cada una contenga todos los " +"campos de un registro, acorde al esquema de la tabla. Para los campos " +"opcionales se puede asignar ``None``." #: ../Doc/library/msilib.rst:95 msgid "Field values can be ints, strings, or instances of the Binary class." msgstr "" +"Los valores de los campos pueden ser enteros, cadenas de caracteres o " +"instancias de la clase Binary." #: ../Doc/library/msilib.rst:100 msgid "" "Represents entries in the Binary table; inserting such an object using :func:" "`add_data` reads the file named *filename* into the table." msgstr "" +"Representa entradas en la tabla Binary; insertar un objeto así utilizando :" +"func:`add_data` lee el archivo llamado **filename** en la tabla." #: ../Doc/library/msilib.rst:106 msgid "" @@ -147,22 +200,30 @@ msgid "" "attribute *tables* listing all tables for which content should be added, and " "one attribute per table that has the actual content." msgstr "" +"Añade todos los contenidos de la tabla de *module* a *database*. *module* " +"debe contener un atributo *tables*, que liste todas las tablas cuyos " +"contenidos deban ser añadidos, y un atributo por tabla que contenga el " +"propio contenido." #: ../Doc/library/msilib.rst:110 msgid "This is typically used to install the sequence tables." -msgstr "" +msgstr "Esto suele utilizarse para instalar las tablas secuenciales." #: ../Doc/library/msilib.rst:115 msgid "" "Add the file *path* into the ``_Stream`` table of *database*, with the " "stream name *name*." msgstr "" +"Añade el archivo *path* en la tabla ``_Stream`` de *database*, con el nombre " +"del flujo *name*." #: ../Doc/library/msilib.rst:121 msgid "" "Return a new UUID, in the format that MSI typically requires (i.e. in curly " "braces, and with all hexdigits in upper-case)." msgstr "" +"Retorna un nuevo UUID, en el formato que MSI suele requerir (entre llaves, " +"con todos los dígitos hexadecimales en mayúsculas)." #: ../Doc/library/msilib.rst:127 msgid "" @@ -171,32 +232,43 @@ msgid "" "aa379205.aspx>`_ `UuidToString `_" msgstr "" +"`FCICreate `_ " +"`UuidCreate `_ `UuidToString `_" #: ../Doc/library/msilib.rst:134 msgid "Database Objects" -msgstr "" +msgstr "Objetos Database" #: ../Doc/library/msilib.rst:139 msgid "" "Return a view object, by calling :c:func:`MSIDatabaseOpenView`. *sql* is the " "SQL statement to execute." msgstr "" +"Retorna un objeto de vista, llamando a :c:func:`MSIDatabaseOpenView`. *sql* " +"es la sentencia SQL a ejecutar." #: ../Doc/library/msilib.rst:145 msgid "" "Commit the changes pending in the current transaction, by calling :c:func:" "`MSIDatabaseCommit`." msgstr "" +"Persiste (**commit**) los cambios pendientes en la transacción actual, " +"llamando a :c:func:`MSIDatabaseCommit`." #: ../Doc/library/msilib.rst:151 msgid "" "Return a new summary information object, by calling :c:func:" "`MsiGetSummaryInformation`. *count* is the maximum number of updated values." msgstr "" +"Retorna un nuevo objeto de información resumida, llamando a :c:func:" +"`MsiGetSummaryInformation`. *count* es el número máximo de valores " +"actualizados." #: ../Doc/library/msilib.rst:157 msgid "Close the database object, through :c:func:`MsiCloseHandle`." -msgstr "" +msgstr "Cierra el objeto de base de datos, mediante :c:func:`MsiCloseHandle`." #: ../Doc/library/msilib.rst:163 msgid "" @@ -207,10 +279,16 @@ msgid "" "`MsiCloseHandle `_" msgstr "" +"`MSIDatabaseOpenView `_ `MSIDatabaseCommit `_ `MSIGetSummaryInformation " +"`_ " +"`MsiCloseHandle `_" #: ../Doc/library/msilib.rst:171 msgid "View Objects" -msgstr "" +msgstr "Objetos View" #: ../Doc/library/msilib.rst:176 msgid "" @@ -218,6 +296,9 @@ msgid "" "*params* is not ``None``, it is a record describing actual values of the " "parameter tokens in the query." msgstr "" +"Ejecuta la consulta SQL de la vista, mediante :c:func:`MSIViewExecute`. Si " +"*params* no es ``None``, es un registro que describe los valores actuales de " +"los *tokens* del parámetro en la consulta." #: ../Doc/library/msilib.rst:183 msgid "" @@ -225,11 +306,16 @@ msgid "" "`MsiViewGetColumnInfo`. *kind* can be either ``MSICOLINFO_NAMES`` or " "``MSICOLINFO_TYPES``." msgstr "" +"Retorna un registro que describe las columnas de la vista, llamando a :c:" +"func:`MsiViewGetColumnInfo`. *kind* puede ser ``MSICOLINFO_NAMES`` o " +"``MSICOLINFO_TYPES``." #: ../Doc/library/msilib.rst:190 msgid "" "Return a result record of the query, through calling :c:func:`MsiViewFetch`." msgstr "" +"Retorna un registro de resultado de la consulta, llamando a :c:func:" +"`MsiViewFetch`." #: ../Doc/library/msilib.rst:195 msgid "" @@ -240,14 +326,20 @@ msgid "" "``MSIMODIFY_VALIDATE``, ``MSIMODIFY_VALIDATE_NEW``, " "``MSIMODIFY_VALIDATE_FIELD``, or ``MSIMODIFY_VALIDATE_DELETE``." msgstr "" +"Modifica la vista, llamando a :c:func:`MsiViewModify`. *kind* puede ser " +"``MSIMODIFY_SEEK``, ``MSIMODIFY_REFRESH``, ``MSIMODIFY_INSERT``, " +"``MSIMODIFY_UPDATE``, ``MSIMODIFY_ASSIGN``, ``MSIMODIFY_REPLACE``, " +"``MSIMODIFY_MERGE``, ``MSIMODIFY_DELETE``, ``MSIMODIFY_INSERT_TEMPORARY``, " +"``MSIMODIFY_VALIDATE``, ``MSIMODIFY_VALIDATE_NEW``, " +"``MSIMODIFY_VALIDATE_FIELD`` o ``MSIMODIFY_VALIDATE_DELETE``." #: ../Doc/library/msilib.rst:202 msgid "*data* must be a record describing the new data." -msgstr "" +msgstr "*data* debe ser un registro que describa los nuevos datos." #: ../Doc/library/msilib.rst:207 msgid "Close the view, through :c:func:`MsiViewClose`." -msgstr "" +msgstr "Cierra la vista, mediante :c:func:`MsiViewClose`." #: ../Doc/library/msilib.rst:212 msgid "" @@ -259,10 +351,17 @@ msgid "" "`MsiViewClose `_" msgstr "" +"`MsiViewExecute `_ `MSIViewGetColumnInfo `_ `MsiViewFetch `_ `MsiViewModify " +"`_ " +"`MsiViewClose `_" #: ../Doc/library/msilib.rst:221 msgid "Summary Information Objects" -msgstr "" +msgstr "Objetos Summary Information" #: ../Doc/library/msilib.rst:226 msgid "" @@ -274,12 +373,21 @@ msgid "" "``PID_CREATE_DTM``, ``PID_LASTSAVE_DTM``, ``PID_PAGECOUNT``, " "``PID_WORDCOUNT``, ``PID_CHARCOUNT``, ``PID_APPNAME``, or ``PID_SECURITY``." msgstr "" +"Retorna una propiedad del resumen, mediante :c:func:" +"`MsiSummaryInfoGetProperty`. *field* es el nombre de la propiedad, y puede " +"ser una de las constantes: ``PID_CODEPAGE``, ``PID_TITLE``, ``PID_SUBJECT``, " +"``PID_AUTHOR``, ``PID_KEYWORDS``, ``PID_COMMENTS``, ``PID_TEMPLATE``, " +"``PID_LASTAUTHOR``, ``PID_REVNUMBER``, ``PID_LASTPRINTED``, " +"``PID_CREATE_DTM``, ``PID_LASTSAVE_DTM``, ``PID_PAGECOUNT``, " +"``PID_WORDCOUNT``, ``PID_CHARCOUNT``, ``PID_APPNAME`` o ``PID_SECURITY``." #: ../Doc/library/msilib.rst:237 msgid "" "Return the number of summary properties, through :c:func:" "`MsiSummaryInfoGetPropertyCount`." msgstr "" +"Retorna el número de propiedades del resumen, mediante :c:func:" +"`MsiSummaryInfoGetPropertyCount`." #: ../Doc/library/msilib.rst:243 msgid "" @@ -287,12 +395,18 @@ msgid "" "the same values as in :meth:`GetProperty`, *value* is the new value of the " "property. Possible value types are integer and string." msgstr "" +"Establece una propiedad mediante :c:func:`MsiSummaryInfoSetProperty`. " +"*field* puede tener los mismos valores que en :meth:`GetProperty`; *value* " +"es el nuevo valor de la propiedad. Los tipos de los valores pueden ser " +"enteros o cadenas de caracteres." #: ../Doc/library/msilib.rst:250 msgid "" "Write the modified properties to the summary information stream, using :c:" "func:`MsiSummaryInfoPersist`." msgstr "" +"Escribe las propiedades modificadas al flujo de información resumida, " +"mediante :c:func:`MsiSummaryInfoPersist`." #: ../Doc/library/msilib.rst:256 msgid "" @@ -303,51 +417,72 @@ msgid "" "desktop/aa370491.aspx>`_ `MsiSummaryInfoPersist `_" msgstr "" +"`MsiSummaryInfoGetProperty `_ `MsiSummaryInfoGetPropertyCount `_ " +"`MsiSummaryInfoSetProperty `_ `MsiSummaryInfoPersist `_" #: ../Doc/library/msilib.rst:264 msgid "Record Objects" -msgstr "" +msgstr "Objetos Record" #: ../Doc/library/msilib.rst:269 msgid "" "Return the number of fields of the record, through :c:func:" "`MsiRecordGetFieldCount`." msgstr "" +"Retorna el número de campos del registro, mediante :c:func:" +"`MsiRecordGetFieldCount`." #: ../Doc/library/msilib.rst:275 msgid "" "Return the value of *field* as an integer where possible. *field* must be " "an integer." msgstr "" +"Retorna el valor de *field* como entero cuando sea posible. *field* debe ser " +"un entero." #: ../Doc/library/msilib.rst:281 msgid "" "Return the value of *field* as a string where possible. *field* must be an " "integer." msgstr "" +"Retorna el valor de *field* como una cadena de caracteres cuando sea " +"posible. *field* debe ser un entero." #: ../Doc/library/msilib.rst:287 msgid "" "Set *field* to *value* through :c:func:`MsiRecordSetString`. *field* must be " "an integer; *value* a string." msgstr "" +"Establece *field* a *value* mediante :c:func:`MsiRecordSetString`. *field* " +"debe ser un entero; *value* una cadena de caracteres." #: ../Doc/library/msilib.rst:293 msgid "" "Set *field* to the contents of the file named *value*, through :c:func:" "`MsiRecordSetStream`. *field* must be an integer; *value* a string." msgstr "" +"Establece *field* al contenido del archivo llamado *value*, mediante :c:func:" +"`MsiRecordSetStream`. *field* debe ser un entero; *value* una cadena de " +"caracteres." #: ../Doc/library/msilib.rst:299 msgid "" "Set *field* to *value* through :c:func:`MsiRecordSetInteger`. Both *field* " "and *value* must be an integer." msgstr "" +"Establece *field* a *value* mediante :c:func:`MsiRecordSetInteger`. *field* " +"y *value* deben ser enteros." #: ../Doc/library/msilib.rst:305 msgid "" "Set all fields of the record to 0, through :c:func:`MsiRecordClearData`." msgstr "" +"Establece todos los campos del registro a 0, mediante :c:func:" +"`MsiRecordClearData`." #: ../Doc/library/msilib.rst:310 msgid "" @@ -359,20 +494,29 @@ msgid "" "desktop/aa370371.aspx>`_ `MsiRecordClearData `_" msgstr "" +"`MsiRecordGetFieldCount `_ `MsiRecordSetString `_ `MsiRecordSetStream `_ " +"`MsiRecordSetInteger `_ `MsiRecordClearData `_" #: ../Doc/library/msilib.rst:319 msgid "Errors" -msgstr "" +msgstr "Errores" #: ../Doc/library/msilib.rst:321 msgid "" "All wrappers around MSI functions raise :exc:`MSIError`; the string inside " "the exception will contain more detail." msgstr "" +"Todos los *wrappers* sobre funciones MSI lanzan :exc:`MSIError`; la cadena " +"de caracteres dentro de la excepción contendrá más detalles." #: ../Doc/library/msilib.rst:328 msgid "CAB Objects" -msgstr "" +msgstr "Objetos CAB" #: ../Doc/library/msilib.rst:333 msgid "" @@ -381,10 +525,14 @@ msgid "" "Then, when all files have been added, the CAB file can be written, then " "added to the MSI file." msgstr "" +"La clase :class:`CAB` representa un archivo CAB. Durante la construcción del " +"MSI, los archivos se añadirán simultáneamente a la table ``Files``, y a un " +"archivo CAB. Después, cuando todos los archivos sean añadidos, el archivo " +"CAB puede ser sobreescrito, y finalmente añadido al archivo MSI." #: ../Doc/library/msilib.rst:338 msgid "*name* is the name of the CAB file in the MSI file." -msgstr "" +msgstr "*name* es el nombre del archivo CAB dentro del archivo MSI." #: ../Doc/library/msilib.rst:343 msgid "" @@ -392,22 +540,29 @@ msgid "" "*logical*. If there is already a file named *logical*, a new file name is " "created." msgstr "" +"Añade el archivo con la ruta *full* al archivo CAB, bajo el nombre " +"*logical*. Si ya existe algún archivo llamado *logical*, se creará un nuevo " +"archivo." #: ../Doc/library/msilib.rst:347 msgid "" "Return the index of the file in the CAB file, and the new name of the file " "inside the CAB file." msgstr "" +"Retorna el índice del archivo dentro del archivo CAB, y el nuevo nombre del " +"archivo dentro del archivo CAB." #: ../Doc/library/msilib.rst:353 msgid "" "Generate a CAB file, add it as a stream to the MSI file, put it into the " "``Media`` table, and remove the generated file from the disk." msgstr "" +"Genera un archivo CAB, lo añade como un flujo al archivo MSI, lo añade a la " +"tabla ``Media``, y elimina el archivo generado del disco." #: ../Doc/library/msilib.rst:360 msgid "Directory Objects" -msgstr "" +msgstr "Objetos Directory" #: ../Doc/library/msilib.rst:365 msgid "" @@ -420,6 +575,15 @@ msgid "" "directory name. *default* specifies the DefaultDir slot in the directory " "table. *componentflags* specifies the default flags that new components get." msgstr "" +"Crea un nuevo directorio en la tabla *Directory*. Hay un componente actual " +"en cada punto temporal para el directorio, el cual es, o bien explícitamente " +"creado mediante :meth:`start_component`, o bien implícito cuando los " +"archivos se añaden por primera vez. Los archivos son añadidos en el " +"componente actual, y al archivo CAB. Para crear un directorio, un objeto de " +"directorio base tiene que ser especificado (puede ser ``None``), la ruta al " +"directorio físico, y un nombre de directorio lógico. *default* especifica el " +"zócalo *DefaultDir* en la table de directorio. *componentflags* especifica " +"las banderas por defecto que obtendrán los nuevos componentes." #: ../Doc/library/msilib.rst:377 msgid "" @@ -429,6 +593,12 @@ msgid "" "*flags* are given, the directory's default flags are used. If no *keyfile* " "is given, the KeyPath is left null in the Component table." msgstr "" +"Añade una entrada a la tabla *Component*, y hace este componente el actual " +"componente para este directorio. Si no se especifica ningún nombre de " +"componente, se usará el nombre del directorio. Si no se especifica ninguna " +"*feature*, se usará la característica actual. Si no se especifican *flags*, " +"se usarán las banderas por defecto del directorio. Si no se especifica " +"ningún *keyfile*, el *KeyPath* quedará nulo en la tabla *Component*." #: ../Doc/library/msilib.rst:386 msgid "" @@ -438,16 +608,25 @@ msgid "" "interpreted relative to the current directory. Optionally, a *version* and a " "*language* can be specified for the entry in the File table." msgstr "" +"Añade el archivo al componente actual del directorio, inicializando uno " +"nuevo si no existe un componente actual. Por defecto, el nombre del archivo " +"en el origen y la tabla del archivo serán idénticos. Si se especifica el " +"archivo *src*, se interpretará como relativo al directorio actual. " +"Opcionalmente, se pueden especificar una *version* y un *language* para la " +"entrada en la tabla *File*." #: ../Doc/library/msilib.rst:395 msgid "" "Add a list of files to the current component as specified in the glob " "pattern. Individual files can be excluded in the *exclude* list." msgstr "" +"Añade una lista de archivos al componente actual, como se especifica en el " +"patrón *glob*. Se pueden excluir archivos individualmente en la lista " +"*exclude*." #: ../Doc/library/msilib.rst:401 msgid "Remove ``.pyc`` files on uninstall." -msgstr "" +msgstr "Elimina los archivos ``.pyc`` al desinstalar." #: ../Doc/library/msilib.rst:406 msgid "" @@ -457,10 +636,15 @@ msgid "" "com/en-us/library/windows/desktop/aa368007.aspx>`_ `FeatureComponents Table " "`_" msgstr "" +"`Directory Table `_ `File Table `_ `Component Table `_ `FeatureComponents Table " +"`_" #: ../Doc/library/msilib.rst:414 msgid "Features" -msgstr "" +msgstr "Features" #: ../Doc/library/msilib.rst:419 msgid "" @@ -469,6 +653,10 @@ msgid "" "resulting feature object can be passed to the :meth:`start_component` method " "of :class:`Directory`." msgstr "" +"Añade un nuevo registro a la tabla ``Feature``, usando los valores *id*, " +"*parent.id*, *title*, *desc*, *display*, *level*, *directory* y " +"*attributes*. El objeto de característica resultante se le puede dar al " +"método :meth:`start_component` de :class:`Directory`." #: ../Doc/library/msilib.rst:427 msgid "" @@ -476,16 +664,22 @@ msgid "" "automatically added to the default feature, unless a feature is explicitly " "specified." msgstr "" +"Establece esta característica como la actual característica de :mod:" +"`msilib`. Los nuevos componentes serán añadidos automáticamente a la " +"característica por defecto, a no ser que se especifique explícitamente una " +"característica." #: ../Doc/library/msilib.rst:434 msgid "" "`Feature Table `_" msgstr "" +"`Feature Table `_" #: ../Doc/library/msilib.rst:439 msgid "GUI classes" -msgstr "" +msgstr "Clases GUI" #: ../Doc/library/msilib.rst:441 msgid "" @@ -494,30 +688,39 @@ msgid "" "`~distutils.command.bdist_msi` to create MSI files with a user-interface for " "installing Python packages." msgstr "" +":mod:`msilib` dispone de varias clases que envuelven a las tablas GUI en una " +"base de datos MSI. Sin embargo, no se dispone de ninguna interfaz de usuario " +"estándar; se puede usar :mod:`~distutils.command.bdist_msi` para crear " +"archivos MSI con una interfaz de usuario para instalar paquetes Python." #: ../Doc/library/msilib.rst:449 msgid "" "Base class of the dialog controls. *dlg* is the dialog object the control " "belongs to, and *name* is the control's name." msgstr "" +"Clase base de los controles de diálogo. *dlg* es el objeto de diálogo al que " +"pertenece el control, y *name* es el nombre del control." #: ../Doc/library/msilib.rst:455 msgid "Make an entry into the ``ControlEvent`` table for this control." -msgstr "" +msgstr "Crea una entrada en la tabla ``ControlEvent`` para este control." #: ../Doc/library/msilib.rst:460 msgid "Make an entry into the ``EventMapping`` table for this control." -msgstr "" +msgstr "Crea una entrada en la tabla ``EventMapping`` para este control." #: ../Doc/library/msilib.rst:465 msgid "Make an entry into the ``ControlCondition`` table for this control." -msgstr "" +msgstr "Crea una entrada en la tabla ``ControlCondition`` para este control." #: ../Doc/library/msilib.rst:470 msgid "" "Create a radio button control named *name*. *property* is the installer " "property that gets set when a radio button is selected." msgstr "" +"Crea un control de botón de selección llamado *name*. *property* es la " +"propiedad del instalador que se establece cuando un botón de selección es " +"seleccionado." #: ../Doc/library/msilib.rst:476 msgid "" @@ -525,6 +728,9 @@ msgid "" "*width*, *height*, and with the label *text*. If *value* is ``None``, it " "defaults to *name*." msgstr "" +"Añade un botón de selección llamado *name* al grupo, en las coordenadas *x*, " +"*y*, *width*, *height*, con la etiqueta *text*. Si *value* es ``None``, se " +"establecerá por defecto a *name*." #: ../Doc/library/msilib.rst:483 msgid "" @@ -532,42 +738,50 @@ msgid "" "made, with the specified coordinates, dialog attributes, title, name of the " "first, default, and cancel controls." msgstr "" +"Retorna un nuevo objeto :class:`Dialog`. Se creará una entrada en la tabla " +"``Dialog`` con las coordenadas, atributos de diálogo y título especificados, " +"así como los nombres del primer control y los controles por defecto y de " +"cancelación." #: ../Doc/library/msilib.rst:490 msgid "" "Return a new :class:`Control` object. An entry in the ``Control`` table is " "made with the specified parameters." msgstr "" +"Retorna un nuevo objeto :class:`Control`. Se creará una entrada en la tabla " +"``Control`` con los parámetros especificados." #: ../Doc/library/msilib.rst:493 msgid "" "This is a generic method; for specific types, specialized methods are " "provided." msgstr "" +"Este es un método genérico; para tipos específicos hay métodos " +"especializados disponibles." #: ../Doc/library/msilib.rst:499 msgid "Add and return a ``Text`` control." -msgstr "" +msgstr "Añade y retorna un control ``Text``." #: ../Doc/library/msilib.rst:504 msgid "Add and return a ``Bitmap`` control." -msgstr "" +msgstr "Añade y retorna un control ``Bitmap``." #: ../Doc/library/msilib.rst:509 msgid "Add and return a ``Line`` control." -msgstr "" +msgstr "Añade y retorna un control ``Line``." #: ../Doc/library/msilib.rst:514 msgid "Add and return a ``PushButton`` control." -msgstr "" +msgstr "Añade y retorna un control ``PushButton``." #: ../Doc/library/msilib.rst:519 msgid "Add and return a ``RadioButtonGroup`` control." -msgstr "" +msgstr "Añade y retorna un control ``RadioButtonGroup``." #: ../Doc/library/msilib.rst:524 msgid "Add and return a ``CheckBox`` control." -msgstr "" +msgstr "Añade y retorna un control ``CheckBox``." #: ../Doc/library/msilib.rst:529 msgid "" @@ -581,16 +795,28 @@ msgid "" "us/library/windows/desktop/aa368559.aspx>`_ `RadioButton Table `_" msgstr "" +"`Dialog Table `_ `Control Table `_ `Control Types `_ `ControlCondition Table " +"`_ " +"`ControlEvent Table `_ `EventMapping Table `_ `RadioButton Table `_" #: ../Doc/library/msilib.rst:540 msgid "Precomputed tables" -msgstr "" +msgstr "Tablas pre-calculadas" #: ../Doc/library/msilib.rst:542 msgid "" ":mod:`msilib` provides a few subpackages that contain only schema and table " "definitions. Currently, these definitions are based on MSI version 2.0." msgstr "" +":mod:`msilib` proporciona algunos subpaquetes que contienen únicamente " +"definiciones de esquema y tabla. Actualmente, estas definiciones están " +"basadas en la versión 2.0 de MSI." #: ../Doc/library/msilib.rst:548 msgid "" @@ -598,6 +824,9 @@ msgid "" "providing a list of table definitions, and *_Validation_records* providing " "the data for MSI validation." msgstr "" +"Este es el esquema estándar MSI para MSI 2.0, con la variable *tables* " +"proporcionando una lista de definición de tablas, y *_Validation_records* " +"proporcionando la información para la validación MSI." #: ../Doc/library/msilib.rst:555 msgid "" @@ -605,9 +834,14 @@ msgid "" "*AdminExecuteSequence*, *AdminUISequence*, *AdvtExecuteSequence*, " "*InstallExecuteSequence*, and *InstallUISequence*." msgstr "" +"Este módulo alberga los contenidos de la tabla para las tablas de secuencia " +"estándar: *AdminExecuteSequence*, *AdminUISequence*, *AdvtExecuteSequence*, " +"*InstallExecuteSequence*, and *InstallUISequence*." #: ../Doc/library/msilib.rst:562 msgid "" "This module contains definitions for the UIText and ActionText tables, for " "the standard installer actions." msgstr "" +"Este módulo contiene definiciones para las tablas *UIText* y *ActionText*, " +"para las acciones estándar del instalador." diff --git a/library/msvcrt.po b/library/msvcrt.po index 02d8aa1305..8ae01fe62e 100644 --- a/library/msvcrt.po +++ b/library/msvcrt.po @@ -6,23 +6,25 @@ # 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: 2020-10-09 11:16+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: \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/msvcrt.rst:2 msgid ":mod:`msvcrt` --- Useful routines from the MS VC++ runtime" -msgstr "" +msgstr ":mod:`msvcrt` --- Rutinas útiles del entorno de ejecución MS VC++" #: ../Doc/library/msvcrt.rst:12 msgid "" @@ -31,12 +33,18 @@ msgid "" "Windows implementations of their services. For example, the :mod:`getpass` " "module uses this in the implementation of the :func:`getpass` function." msgstr "" +"Estas funciones dan acceso a ciertas capacidades útiles en plataformas " +"Windows. Algunos módulos de más alto nivel usan estas funciones para crear " +"las implementaciones en Windows de sus servicios. Por ejemplo, el módulo :" +"mod:`getpass` usa esto en la implementación de la función :func:`getpass`." #: ../Doc/library/msvcrt.rst:17 msgid "" "Further documentation on these functions can be found in the Platform API " "documentation." msgstr "" +"Más información sobre estas funciones se pueden encontrar en la " +"documentación de la API de la plataforma." #: ../Doc/library/msvcrt.rst:20 msgid "" @@ -45,16 +53,23 @@ msgid "" "use for internationalized applications. The wide char API should be used " "where ever possible." msgstr "" +"El módulo implementa las variantes tanto de caracteres normales como amplios " +"de la API E/S de la consola (se codifican en más de 8 bits, pudiendo llegar " +"hasta 32). La API normal se ocupa solamente de caracteres ASCII y es de uso " +"limitado a aplicaciones internacionales. La API para caracteres amplios se " +"recomienda usar siempre que sea posible." #: ../Doc/library/msvcrt.rst:25 msgid "" "Operations in this module now raise :exc:`OSError` where :exc:`IOError` was " "raised." msgstr "" +"Las operaciones en este módulo lanzan ahora :exc:`OSError` donde antes se " +"lanzaba :exc:`IOError`." #: ../Doc/library/msvcrt.rst:33 msgid "File Operations" -msgstr "" +msgstr "Operaciones con archivos" #: ../Doc/library/msvcrt.rst:38 msgid "" @@ -66,12 +81,22 @@ msgid "" "may not overlap. Adjacent regions are not merged; they must be unlocked " "individually." msgstr "" +"Bloquea parte de un archivo basado en el descriptor del archivo *fd* del " +"entorno de ejecución C. Lanza una excepción :exc:`OSError` si falla. La " +"región que ha sido bloqueada se extiende desde la posición del archivo " +"actual hasta *nbytes* bytes y puede que continúe aún habiendo llegado al " +"final del archivo. *mode* tiene que ser una de las constantes :const:`LK_" +"\\*` que están enumeradas más abajo. Se pueden bloquear varias regiones de " +"un mismo archivo pero no se pueden superponer. Las regiones adyacentes no se " +"combinan; tienen que ser desbloqueadas manualmente." #: ../Doc/library/msvcrt.rst:45 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.locking`` with arguments " "``fd``, ``mode``, ``nbytes``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``msvcrt.locking`` con los " +"argumentos ``fd``, ``mode``, ``nbytes``." #: ../Doc/library/msvcrt.rst:51 msgid "" @@ -79,16 +104,22 @@ msgid "" "immediately tries again after 1 second. If, after 10 attempts, the bytes " "cannot be locked, :exc:`OSError` is raised." msgstr "" +"Bloquea los bytes especificados. Si no se pueden bloquear, el programa lo " +"intenta de nuevo tras 1 segundo. Si, tras 10 intentos, no puede bloquear los " +"bytes, se lanza una excepción :exc:`OSError`." #: ../Doc/library/msvcrt.rst:59 msgid "" "Locks the specified bytes. If the bytes cannot be locked, :exc:`OSError` is " "raised." msgstr "" +"Bloquea los bytes especificados. Si no se pueden bloquear, lanza una " +"excepción :exc:`OSError`." #: ../Doc/library/msvcrt.rst:65 msgid "Unlocks the specified bytes, which must have been previously locked." msgstr "" +"Desbloquea los bytes especificados que han sido previamente bloqueados." #: ../Doc/library/msvcrt.rst:70 msgid "" @@ -96,6 +127,10 @@ msgid "" "text mode, *flags* should be :const:`os.O_TEXT`; for binary, it should be :" "const:`os.O_BINARY`." msgstr "" +"Establece el modo traducción del final de línea del descriptor de un archivo " +"*fd*. Si se establece como modo texto, *flags* debería ser :const:`os." +"O_TEXT`; para establecerlo como modo binario, debería ser :const:`os." +"O_BINARY`." #: ../Doc/library/msvcrt.rst:77 msgid "" @@ -104,32 +139,44 @@ msgid "" "O_RDONLY`, and :const:`os.O_TEXT`. The returned file descriptor may be used " "as a parameter to :func:`os.fdopen` to create a file object." msgstr "" +"Crea un descriptor de archivo en el entorno de ejecución de C desde el " +"manejador de archivo *handle*. El parámetro *flags* debe ser un OR bit a " +"bit de :const:`os.O_APPEND`, :const:`os.O_RDONLY`, y :const:`os.O_TEXT`. El " +"descriptor de archivo retornado se puede utilizar como parámetro para :func:" +"`os.fdopen` para crear un objeto archivo." #: ../Doc/library/msvcrt.rst:82 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.open_osfhandle`` with " "arguments ``handle``, ``flags``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``msvcrt.open_osfhandle`` con " +"los argumentos ``handle``, ``flags``." #: ../Doc/library/msvcrt.rst:87 msgid "" "Return the file handle for the file descriptor *fd*. Raises :exc:`OSError` " "if *fd* is not recognized." msgstr "" +"Retorna el manejador de archivo para un descriptor de archivo *fd*. Lanza " +"una excepción :exc:`OSError` si *fd* no se reconoce." #: ../Doc/library/msvcrt.rst:90 msgid "" "Raises an :ref:`auditing event ` ``msvcrt.get_osfhandle`` with " "argument ``fd``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``msvcrt.get_osfhandle`` con " +"el argumento ``fd``." #: ../Doc/library/msvcrt.rst:96 msgid "Console I/O" -msgstr "" +msgstr "Consola E/S" #: ../Doc/library/msvcrt.rst:101 msgid "Return ``True`` if a keypress is waiting to be read." msgstr "" +"Retorna ``True`` si hay una pulsación de tecla está esperando para ser leída." #: ../Doc/library/msvcrt.rst:106 msgid "" @@ -140,45 +187,66 @@ msgid "" "the next call will return the keycode. The :kbd:`Control-C` keypress cannot " "be read with this function." msgstr "" +"Lee una pulsación de la tecla y retorna el carácter resultante como una " +"cadena de caracteres de bytes. Nada se muestra en la consola. Esta llamada " +"se bloqueará si una pulsación de la tecla aún no está disponible, pero no " +"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." #: ../Doc/library/msvcrt.rst:116 msgid "Wide char variant of :func:`getch`, returning a Unicode value." msgstr "" +"Variante de carácter amplio de :func:`getch`, retornando un valor Unicode." #: ../Doc/library/msvcrt.rst:121 msgid "" "Similar to :func:`getch`, but the keypress will be echoed if it represents " "a printable character." msgstr "" +"Similar a la función :func:`getch`, pero la pulsación de la tecla se imprime " +"si representa un carácter imprimible." #: ../Doc/library/msvcrt.rst:127 msgid "Wide char variant of :func:`getche`, returning a Unicode value." msgstr "" +"Variante de carácter amplio de :func:`getche`, retornando un valor Unicode." #: ../Doc/library/msvcrt.rst:132 msgid "Print the byte string *char* to the console without buffering." msgstr "" +"Imprime la cadena de caracteres de bytes *char* a la consola sin " +"almacenamiento en buffer." #: ../Doc/library/msvcrt.rst:137 msgid "Wide char variant of :func:`putch`, accepting a Unicode value." msgstr "" +"Variante de carácter amplio de :func:`putch`, admitiendo un valor Unicode." #: ../Doc/library/msvcrt.rst:142 msgid "" "Cause the byte string *char* to be \"pushed back\" into the console buffer; " "it will be the next character read by :func:`getch` or :func:`getche`." msgstr "" +"Provoca que la cadena de caracteres de bytes *char* sea \"colocada de nuevo" +"\" en el buffer de la consola, será el siguiente carácter que lea la " +"función :func:`getch` o :func:`getche`." #: ../Doc/library/msvcrt.rst:148 msgid "Wide char variant of :func:`ungetch`, accepting a Unicode value." msgstr "" +"Variante de carácter amplio de :func:`ungetch`, admitiendo un valor Unicode." #: ../Doc/library/msvcrt.rst:154 msgid "Other Functions" -msgstr "" +msgstr "Otras funciones" #: ../Doc/library/msvcrt.rst:159 msgid "" "Force the :c:func:`malloc` heap to clean itself up and return unused blocks " "to the operating system. On failure, this raises :exc:`OSError`." msgstr "" +"Fuerza a la pila :c:func:`malloc` a que se limpie y retorne los bloques sin " +"usar al sistema operativo. En el caso de que ocurriera algún fallo, se " +"lanzaría una excepción :exc:`OSError`." diff --git a/library/multiprocessing.po b/library/multiprocessing.po index c7d42ade61..7d47cbfcdb 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -236,7 +236,7 @@ msgstr "" "programa. Cuando todos los procesos han salido, el rastreador de recursos " "desvincula cualquier objeto rastreado restante. Por lo general, no debería " "haber ninguno, pero si un proceso fue eliminado por una señal, puede haber " -"algunos recursos “filtrados”. (Ni los semáforos filtrados ni los segmentos " +"algunos recursos \"filtrados\". (Ni los semáforos filtrados ni los segmentos " "de memoria compartida se desvincularán automáticamente hasta el próximo " "reinicio. Esto es problemático para ambos objetos porque el sistema solo " "permite un número limitado de semáforos con nombre, y los segmentos de " diff --git a/library/netdata.po b/library/netdata.po index 31d6fbc95b..7234d43cbd 100644 --- a/library/netdata.po +++ b/library/netdata.po @@ -1,28 +1,32 @@ # 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: 2020-10-24 16:59-0300\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: Enrique Giménez \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/netdata.rst:6 msgid "Internet Data Handling" -msgstr "" +msgstr "Manejo de Datos de Internet" #: ../Doc/library/netdata.rst:8 msgid "" "This chapter describes modules which support handling data formats commonly " "used on the Internet." msgstr "" +"Este capítulo describe los módulos que admiten el manejo de formatos de " +"datos que se usan comúnmente en Internet." diff --git a/library/nntplib.po b/library/nntplib.po index 5d66a57d80..3c7c354836 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -6,51 +6,64 @@ # 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: 2020-11-26 08:46-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/library/nntplib.rst:2 msgid ":mod:`nntplib` --- NNTP protocol client" -msgstr "" +msgstr ":mod:`nntplib` — Protocolo de cliente NNTP" #: ../Doc/library/nntplib.rst:7 msgid "**Source code:** :source:`Lib/nntplib.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/nntplib.py`" #: ../Doc/library/nntplib.rst:15 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 " -"reader or poster, or automated news processors. It is compatible with :rfc:" -"`3977` as well as the older :rfc:`977` and :rfc:`2980`." +"side of the Network News Transfer Protocol. It can be used to implement a " +"news reader or poster, or automated news processors. It is compatible with :" +"rfc:`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`." #: ../Doc/library/nntplib.rst:20 msgid "" "Here are two small examples of how it can be used. To list some statistics " "about a newsgroup and print the subjects of the last 10 articles::" msgstr "" +"Aquí hay dos pequeños ejemplos de cómo se puede utilizar. Para enumerar " +"algunas estadísticas sobre un grupo de noticias e imprimir los temas de los " +"últimos 10 artículos::" #: ../Doc/library/nntplib.rst:44 msgid "" "To post an article from a binary file (this assumes that the article has " "valid headers, and that you have right to post on the particular newsgroup)::" msgstr "" +"Para publicar un artículo desde un archivo binario (esto supone que el " +"artículo tiene encabezados válidos y que tienes permitido publicar en el " +"grupo de noticias en particular)::" #: ../Doc/library/nntplib.rst:54 msgid "The module itself defines the following classes:" -msgstr "" +msgstr "El módulo en sí define las siguientes clases:" #: ../Doc/library/nntplib.rst:59 msgid "" @@ -69,17 +82,36 @@ msgid "" "`with` statement to unconditionally consume :exc:`OSError` exceptions and to " "close the NNTP connection when done, e.g.:" msgstr "" +"Retorna un nuevo objeto :class:`NNTP` que representa una conexión con el " +"servidor NNTP ejecutándose en el host *host*, escuchando en el puerto " +"*port*. Se puede especificar un *timeout* opcional para la conexión de " +"socket. Si se proporcionan las credenciales opcionales *user* y *password*, " +"o si hay credenciales adecuadas en :file:`/.netrc` y el indicador opcional " +"*usenetrc* es verdadero, los comandos ``AUTHINFO USER`` y ``AUTHINFO PASS`` " +"se utilizan para identificar y autenticar al usuario en el servidor. Si el " +"indicador opcional *readermode* es verdadero, se envía un comando ``mode " +"reader`` antes de que se realice la autenticación. El modo de lector a veces " +"es necesario si se conecta a un servidor NNTP en el equipo local y tiene la " +"intención de llamar a comandos específicos del lector, como ``group``. Si " +"obtienes un valor inesperado :exc:`NNTPPermanentError`, es posible que debas " +"establecer *readermode*. La clase :class:`NNTP` admite la instrucción :" +"keyword:`with` para consumir incondicionalmente las excepciones :exc:" +"`OSError` y para cerrar la conexión NNTP cuando haya terminado, e.g.:" #: ../Doc/library/nntplib.rst:83 ../Doc/library/nntplib.rst:111 msgid "" "Raises an :ref:`auditing event ` ``nntplib.connect`` with " "arguments ``self``, ``host``, ``port``." msgstr "" +"Genera un :ref:`evento de auditoría ` ``nntplib.connect`` con los " +"argumentos ``self``, ``host``, ``port``." msgid "" "Raises an :ref:`auditing event ` ``nntplib.putline`` with " "arguments ``self``, ``line``." msgstr "" +"Genera un :ref:`evento de auditoría ` ``nntplib.putline`` con los " +"argumentos ``self``, ``line``." #: ../Doc/library/nntplib.rst:86 ../Doc/library/nntplib.rst:114 msgid "" @@ -87,14 +119,17 @@ msgid "" "putline`` with arguments ``self`` and ``line``, where ``line`` is the bytes " "about to be sent to the remote host." msgstr "" +"Todos los comandos generarán un :ref:`evento de auditoría ` " +"``nntplib.putline`` con los argumentos ``self`` y ``line``, donde ``line`` " +"es los bytes a punto de ser enviados al host remoto." #: ../Doc/library/nntplib.rst:90 msgid "*usenetrc* is now ``False`` by default." -msgstr "" +msgstr "*usenetrc* es ahora ``False`` por defecto." #: ../Doc/library/nntplib.rst:93 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "El soporte para la declaración :keyword:`with` fue añadido." #: ../Doc/library/nntplib.rst:98 msgid "" @@ -106,18 +141,32 @@ msgid "" "for best practices. All other parameters behave the same as for :class:" "`NNTP`." msgstr "" +"Retorna un nuevo objeto :class:`NNTP_SSL`, que representa una conexión " +"cifrada con el servidor NNTP ejecutándose en el host *host*, escuchando en " +"el puerto *port*. Los objetos :class:`NNTP_SSL` tienen los mismos métodos " +"que los objetos :class:`NNTP`. Si se omite el *port* se utiliza el puerto " +"563 (NNTPS). *ssl_context* también es opcional, y también el objeto :class:" +"`~ssl.SSLContext`. Por favor, lea :ref:`ssl-security` para conocer las " +"buenas prácticas. Todos los demás parámetros se comportan igual que para :" +"class:`NNTP`." #: ../Doc/library/nntplib.rst:106 msgid "" "Note that SSL-on-563 is discouraged per :rfc:`4642`, in favor of STARTTLS as " "described below. However, some servers only support the former." msgstr "" +"Tenga en cuenta que SSL-on-563 no es recomendado por :rfc:`4642`, en favor " +"de STARTTLS como se describe abajo. Sin embargo, algunos servidores solo " +"admiten el primero." #: ../Doc/library/nntplib.rst:120 msgid "" "The class now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." msgstr "" +"La clase ahora admite la verificación del nombre de host con :attr:`ssl." +"SSLContext.check_hostname` e *Indicador del nombre del servidor* (SNI por " +"sus siglas en inglés, consulte :data:`ssl.HAS_SNI`)." #: ../Doc/library/nntplib.rst:127 msgid "" @@ -125,48 +174,62 @@ msgid "" "for all exceptions raised by the :mod:`nntplib` module. Instances of this " "class have the following attribute:" msgstr "" +"Derivado de la excepción estándar :exc:`Exception`, esta es la clase base " +"para todas las excepciones generadas por el módulo :mod:`nntplib`. Las " +"instancias de esta clase tienen el siguiente atributo:" #: ../Doc/library/nntplib.rst:133 msgid "The response of the server if available, as a :class:`str` object." msgstr "" +"La respuesta del servidor, si está disponible, como un objeto :class:`str`." #: ../Doc/library/nntplib.rst:138 msgid "Exception raised when an unexpected reply is received from the server." msgstr "" +"Excepción generada cuando se recibe una respuesta inesperada del servidor." #: ../Doc/library/nntplib.rst:143 msgid "" "Exception raised when a response code in the range 400--499 is received." msgstr "" +"Excepción generada cuando se recibe un código de respuesta dentro del rango " +"del 400--499." #: ../Doc/library/nntplib.rst:148 msgid "" "Exception raised when a response code in the range 500--599 is received." msgstr "" +"Excepción generada cuando se recibe un código de respuesta dentro del rango " +"del 500--599." #: ../Doc/library/nntplib.rst:153 msgid "" "Exception raised when a reply is received from the server that does not " "begin with a digit in the range 1--5." msgstr "" +"Excepción generada cuando se recibe una respuesta del servidor que no " +"comienza con un dígito dentro del rango 1--5." #: ../Doc/library/nntplib.rst:159 msgid "Exception raised when there is some error in the response data." msgstr "" +"Excepción generada cuando hay algún error en los datos de la respuesta." #: ../Doc/library/nntplib.rst:165 msgid "NNTP Objects" -msgstr "" +msgstr "Objetos NNTP" #: ../Doc/library/nntplib.rst:167 msgid "" "When connected, :class:`NNTP` and :class:`NNTP_SSL` objects support the " "following methods and attributes." msgstr "" +"Cuando están conectados, los objetos :class:`NNTP` y :class:`NNTP_SSL` " +"admiten los siguientes métodos y atributos." #: ../Doc/library/nntplib.rst:171 msgid "Attributes" -msgstr "" +msgstr "Atributos" #: ../Doc/library/nntplib.rst:175 msgid "" @@ -174,16 +237,21 @@ msgid "" "server. In practice, this should be ``2`` for servers advertising :rfc:" "`3977` compliance and ``1`` for others." msgstr "" +"Un entero que representa la versión del protocolo NNTP compatible con el " +"servidor. En la práctica, esto debería ser ``2`` para los servidores que " +"anuncian el cumplimiento :rfc:`3977` y ``1`` para otros." #: ../Doc/library/nntplib.rst:183 msgid "" "A string describing the software name and version of the NNTP server, or :" "const:`None` if not advertised by the server." msgstr "" +"Cadena que describe el nombre de software y la versión del servidor NNTP, o :" +"const:`None` si el servidor no lo anuncia." #: ../Doc/library/nntplib.rst:189 msgid "Methods" -msgstr "" +msgstr "Métodos" #: ../Doc/library/nntplib.rst:191 msgid "" @@ -192,6 +260,10 @@ msgid "" "digit code. If the server's response indicates an error, the method raises " "one of the above exceptions." msgstr "" +"La *response* que es retornada como el primer elemento de la tupla de " +"retorno de casi todos los métodos es la respuesta del servidor: una cadena " +"que comienza con un código de tres dígitos. Si la respuesta del servidor " +"indica un error, el método genera una de las excepciones anteriores." #: ../Doc/library/nntplib.rst:196 msgid "" @@ -202,18 +274,29 @@ msgid "" "(except for the response line and the terminating dot) to the file; any list " "of lines, tuples or objects that the method normally returns will be empty." msgstr "" +"Muchos de los métodos siguientes toman un argumento opcional de solamente " +"palabra clave *file*. Cuando se proporciona el argumento *file*, debe ser " +"un :term:`file object` abierto para la escritura binaria o el nombre de un " +"archivo en disco a ser escrito. El método escribirá los datos retornados por " +"el servidor (excepto la línea de respuesta y el punto de terminación) en el " +"archivo; cualquier lista de líneas, tuplas u objetos que el método retorna " +"normalmente estará vacía." #: ../Doc/library/nntplib.rst:203 msgid "" "Many of the following methods have been reworked and fixed, which makes them " "incompatible with their 3.1 counterparts." msgstr "" +"Muchos de los siguientes métodos se han rediseñado y corregido, lo que los " +"hace incompatibles con sus contrapartes 3.1." #: ../Doc/library/nntplib.rst:210 msgid "" "Send a ``QUIT`` command and close the connection. Once this method has been " "called, no other methods of the NNTP object should be called." msgstr "" +"Envía un comando ``QUIT`` y cierra la conexión. Una vez que se ha invocado " +"este método, no se debe invocar ningún otro método del objeto NNTP." #: ../Doc/library/nntplib.rst:216 msgid "" @@ -221,6 +304,9 @@ msgid "" "connection. (This message sometimes contains disclaimers or help " "information that may be relevant to the user.)" msgstr "" +"Retorna el mensaje de bienvenida enviado por el servidor en respuesta a la " +"conexión inicial. (Este mensaje a veces contiene aclaraciones o información " +"de ayuda que puede ser relevante para el usuario.)" #: ../Doc/library/nntplib.rst:223 msgid "" @@ -229,6 +315,10 @@ msgid "" "values. On legacy servers which don't understand the ``CAPABILITIES`` " "command, an empty dictionary is returned instead." msgstr "" +"Retorna las capacidades :rfc:`3977` anunciadas por el servidor, como una " +"instancia :class:`dict` mapeando nombres de capacidades a listas de valores " +"(posiblemente vacías). En los servidores heredados que no entienden el " +"comando ``CAPABILITIES``, se retorna un diccionario vacío en su lugar." #: ../Doc/library/nntplib.rst:237 msgid "" @@ -236,6 +326,9 @@ msgid "" "*password* are ``None`` and *usenetrc* is true, credentials from ``~/." "netrc`` will be used if possible." msgstr "" +"Envía comandos ``AUTHINFO`` con el nombre de usuario y la contraseña. Si " +"*user* y *password* son ``None`` y *usenetrc* es verdadero, se utilizarán " +"las credenciales de ``~/.netrc`` si su uso es posible." #: ../Doc/library/nntplib.rst:241 msgid "" @@ -244,6 +337,11 @@ msgid "" "unnecessary. To force authentication to be delayed, you must not set *user* " "or *password* when creating the object, and must set *usenetrc* to False." msgstr "" +"A menos que se retrase intencionalmente, el inicio de sesión se realiza " +"normalmente durante la inicialización del objeto :class:`NNTP` y no es " +"necesario invocar esta función por separado. Para forzar el retraso de la " +"autenticación, no debes establecer *user* o *password* al crear el objeto y " +"debes establecer *usenetrc* en *False*." #: ../Doc/library/nntplib.rst:252 msgid "" @@ -251,6 +349,10 @@ msgid "" "connection. The *context* argument is optional and should be a :class:`ssl." "SSLContext` object. Please read :ref:`ssl-security` for best practices." msgstr "" +"Envía un comando ``STARTTLS``. Esto habilitará el cifrado en la conexión " +"NNTP. El argumento *context* es opcional y debe ser el objeto :class:`ssl. " +"SSLContext`. Por favor lea :ref:`ssl-security` para conocer las buenas " +"prácticas." #: ../Doc/library/nntplib.rst:257 msgid "" @@ -259,12 +361,20 @@ msgid "" "class:`NNTP` object initialization. See :meth:`NNTP.login` for information " "on suppressing this behavior." msgstr "" +"Tenga en cuenta que esto no se puede hacer después de que se haya " +"transmitido la información de autenticación y la autenticación se produce de " +"forma predeterminada, si es posible, durante la inicialización de un objeto :" +"class:`NNTP`. Consulte :meth:`NNTP.login` para obtener información sobre " +"cómo suprimir este comportamiento." #: ../Doc/library/nntplib.rst:264 msgid "" "The method now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." msgstr "" +"El método ahora admite la comprobación del nombre de host con :attr:`ssl. " +"SSLContext.check_hostname` y *Indicador del nombre del servidor* (SNI por " +"sus siglas en inglés, consulte :data:`ssl.HAS_SNI`)." #: ../Doc/library/nntplib.rst:271 msgid "" @@ -274,6 +384,11 @@ msgid "" "are new since the given *date*. If *file* is supplied, though, then *groups* " "will be empty." msgstr "" +"Envía un comando ``NEWGROUPS``. El argumento *date* debe ser un objeto :" +"class:`datetime.date` o :class:`datetime.datetime`. Retorna un par " +"``(response, groups)`` donde *groups* es una lista que representa los grupos " +"que son nuevos desde la fecha determinada. Sin embargo, si se proporciona " +"*file*, entonces *groups* estará vacío." #: ../Doc/library/nntplib.rst:287 msgid "" @@ -281,10 +396,16 @@ msgid "" "*date* has the same meaning as for :meth:`newgroups`. Return a pair " "``(response, articles)`` where *articles* is a list of message ids." msgstr "" +"Envía un comando ``NEWNEWS``. Aquí, *group* es un nombre de grupo o ``'*'``, " +"y *date* tiene el mismo significado que para :meth:`newgroups`. Retorna un " +"par ``(response, articles)`` donde *articles* es una lista de " +"identificadores de mensaje." #: ../Doc/library/nntplib.rst:291 msgid "This command is frequently disabled by NNTP server administrators." msgstr "" +"Este comando es inhabilitado frecuentemente por los administradores del " +"servidor NNTP." #: ../Doc/library/nntplib.rst:296 msgid "" @@ -295,36 +416,49 @@ msgid "" "where *group* is a group name, *last* and *first* are the last and first " "article numbers, and *flag* usually takes one of these values:" msgstr "" +"Envía un comando ``LIST`` o ``LIST ACTIVE``. Retorna un par ``(response, " +"list)`` donde *list* es una lista de tuplas que representan todos los grupos " +"disponibles desde este servidor NNTP, opcionalmente coincidiendo con el " +"patrón de cadena *group_pattern*. Cada tupla tiene el formato ``(group, " +"last, first, flag)``, donde *group* es un nombre de grupo, *last* y *first* " +"son los últimos y primeros números de artículo, y *flag* suele tomar uno de " +"estos valores:" #: ../Doc/library/nntplib.rst:304 msgid "``y``: Local postings and articles from peers are allowed." -msgstr "" +msgstr "``y``: Se permiten publicaciones locales y artículos de pares." #: ../Doc/library/nntplib.rst:305 msgid "``m``: The group is moderated and all postings must be approved." msgstr "" +"``m``: El grupo está moderado y todas las publicaciones deben ser aprobadas." #: ../Doc/library/nntplib.rst:306 msgid "``n``: No local postings are allowed, only articles from peers." -msgstr "" +msgstr "``n``: No se permiten publicaciones locales, solo artículos de pares." #: ../Doc/library/nntplib.rst:307 msgid "``j``: Articles from peers are filed in the junk group instead." msgstr "" +"``j``: Los artículos de pares se archivan en el grupo de basura en su lugar." #: ../Doc/library/nntplib.rst:308 msgid "``x``: No local postings, and articles from peers are ignored." msgstr "" +"``x``: No hay publicaciones locales y los artículos de pares son ignorados." #: ../Doc/library/nntplib.rst:309 msgid "``=foo.bar``: Articles are filed in the ``foo.bar`` group instead." msgstr "" +"``=foo.bar``: Los artículos se archivan en el grupo ``foo.bar`` en su lugar." #: ../Doc/library/nntplib.rst:311 msgid "" "If *flag* has another value, then the status of the newsgroup should be " "considered unknown." msgstr "" +"Si *flag* tiene otro valor, el estado del grupo de noticias debe " +"considerarse como desconocido." #: ../Doc/library/nntplib.rst:314 msgid "" @@ -332,10 +466,13 @@ msgid "" "not specified. It is best to cache the results offline unless you really " "need to refresh them." msgstr "" +"Este comando puede devolver resultados muy grandes, especialmente si no se " +"especifica *group_pattern*. Es mejor almacenar en caché los resultados sin " +"conexión a menos que realmente necesite actualizarlos." #: ../Doc/library/nntplib.rst:318 msgid "*group_pattern* was added." -msgstr "" +msgstr "*group_pattern* fue añadido." #: ../Doc/library/nntplib.rst:324 msgid "" @@ -344,6 +481,11 @@ msgid "" "wildcard strings). Return a pair ``(response, descriptions)``, where " "*descriptions* is a dictionary mapping group names to textual descriptions." msgstr "" +"Envía un comando ``LIST NEWSGROUPS``, donde *grouppattern* es una cadena " +"comodín como se especifica en :rfc:`3977` (es esencialmente lo mismo que las " +"cadenas comodín de shell DOS o UNIX). Retorna un par ``(response, " +"descriptions)``, donde *descriptions* es un diccionario que asigna nombres " +"de grupos a descripciones textuales." #: ../Doc/library/nntplib.rst:338 msgid "" @@ -351,12 +493,17 @@ msgid "" "matches (if 'group' is a real wildmat string), return the first match. If " "no group matches, return an empty string." msgstr "" +"Obtiene una descripción para un único grupo *group*. Si más de un grupo " +"coincide (si *'group'* es una cadena comodín real), retorna la primera " +"coincidencia. Si ningún grupo coincide, retorna una cadena vacía." #: ../Doc/library/nntplib.rst:342 msgid "" "This elides the response code from the server. If the response code is " "needed, use :meth:`descriptions`." msgstr "" +"Esto elude el código de respuesta del servidor. Si necesita el código de " +"respuesta, use :meth:`descriptions`." #: ../Doc/library/nntplib.rst:348 msgid "" @@ -366,6 +513,12 @@ msgid "" "articles in the group, *first* is the first article number in the group, " "*last* is the last article number in the group, and *name* is the group name." msgstr "" +"Envía un comando ``GROUP``, donde *name* es el nombre del grupo. El grupo se " +"selecciona como el grupo actual, si este existe. Retorna una tupla " +"``(response, count, first, last, name)`` donde *count* es el número " +"(estimado) de artículos en el grupo, *first* es el primer número de artículo " +"del grupo, *last* es el último número de artículo en el grupo y *name* es el " +"nombre del grupo." #: ../Doc/library/nntplib.rst:358 msgid "" @@ -376,6 +529,13 @@ msgid "" "starting from *first* to the last article in the current group, or :const:" "`None` to select the current article in the current group." msgstr "" +"Envía un comando ``OVER`` o un comando ``XOVER`` en servidores heredados. " +"*message_spec* puede ser una cadena que represente un identificador de " +"mensaje o una tupla de números ``(first, None)`` que indique un rango de " +"artículos en el grupo actual, o una tupla ``(first, None)`` que indique un " +"rango de artículos comenzando desde *first* hasta el último artículo del " +"grupo actual, o :const:`None` para seleccionar el artículo actual en el " +"grupo actual." #: ../Doc/library/nntplib.rst:365 msgid "" @@ -387,39 +547,57 @@ msgid "" "items (the key is then the metadata name prepended with ``\":\"``). The " "following items are guaranteed to be present by the NNTP specification:" msgstr "" +"Retorna un par ``(response, overviews)``. *overviews* es una lista de tuplas " +"del tipo ``(article_number, overview)``, una para cada artículo seleccionado " +"por *message_spec*. Cada *overview* es un diccionario con el mismo número de " +"elementos, pero este número depende del servidor. Estos elementos son " +"encabezados de mensajes (la clave es entonces el nombre del encabezado en " +"minúsculas) o elementos de metadatos (la clave es entonces el nombre de los " +"metadatos precedido de ``\":\"``). Se garantiza la presencia de los " +"siguientes elementos por la especificación NNTP:" #: ../Doc/library/nntplib.rst:373 msgid "" "the ``subject``, ``from``, ``date``, ``message-id`` and ``references`` " "headers" msgstr "" +"los encabezados ``subject``, ``from``, ``date``, ``message-id`` y " +"``references``" #: ../Doc/library/nntplib.rst:375 msgid "" "the ``:bytes`` metadata: the number of bytes in the entire raw article " "(including headers and body)" msgstr "" +"los metadatos ``:bytes``: el número de bytes en todo el artículo sin " +"procesar (incluidos los encabezados y el cuerpo)" #: ../Doc/library/nntplib.rst:377 msgid "the ``:lines`` metadata: the number of lines in the article body" msgstr "" +"los metadatos ``:lines``: el número de líneas en el cuerpo del artículo" #: ../Doc/library/nntplib.rst:379 msgid "" "The value of each item is either a string, or :const:`None` if not present." msgstr "" +"El valor de cada elemento es una cadena o :const:`None` si no está presente." #: ../Doc/library/nntplib.rst:381 msgid "" "It is advisable to use the :func:`decode_header` function on header values " "when they may contain non-ASCII characters::" msgstr "" +"Es aconsejable utilizar la función :func:`decode_header` en los valores del " +"encabezado cuando pueden contener caracteres no-ASCII::" #: ../Doc/library/nntplib.rst:401 msgid "" "Send a ``HELP`` command. Return a pair ``(response, list)`` where *list* is " "a list of help strings." msgstr "" +"Envía un comando ``HELP``. Retorna un par ``(response, list)`` donde *list* " +"es una lista de cadenas de caracteres de ayuda." #: ../Doc/library/nntplib.rst:407 msgid "" @@ -429,14 +607,20 @@ msgid "" "current group is considered. Return a triple ``(response, number, id)`` " "where *number* is the article number and *id* is the message id." msgstr "" +"Envía un comando ``STAT``, donde *message_spec* es un identificador de " +"mensaje (incluido en ``'<'`` y ``'>'``) o un número de artículo en el grupo " +"actual. Si se omite *message_spec* o es :const:`None` se considera el " +"artículo actual del grupo actual. Retorna un triple ``(response, number, " +"id)`` donde *number* es el número de artículo e *id* es el identificador del " +"mensaje." #: ../Doc/library/nntplib.rst:421 msgid "Send a ``NEXT`` command. Return as for :meth:`.stat`." -msgstr "" +msgstr "Envía un comando ``NEXT``. Retorna como para :meth:`.stat`." #: ../Doc/library/nntplib.rst:426 msgid "Send a ``LAST`` command. Return as for :meth:`.stat`." -msgstr "" +msgstr "Envía un comando ``LAST``. Retorna como para :meth:`.stat`." #: ../Doc/library/nntplib.rst:431 msgid "" @@ -448,6 +632,14 @@ msgid "" "string, and *lines* a list of lines (without terminating newlines) " "comprising the raw message including headers and body." msgstr "" +"Envía un comando ``ARTICLE``, donde *message_spec* tiene el mismo " +"significado que para :meth:`.stat`. Retorna una tupla ``(response, info)`` " +"donde *info* es un :class:`~collections.namedtuple` con tres atributos " +"*number*, *message_id* y *lines* (en ese orden). *number* es el número de " +"artículo del grupo (o 0 si la información no está disponible), *message_id* " +"el identificador del mensaje como una cadena y *lines* una lista de líneas " +"(sin terminar líneas nuevas) que comprende el mensaje sin procesar, " +"incluidos los encabezados y el cuerpo." #: ../Doc/library/nntplib.rst:456 msgid "" @@ -455,6 +647,9 @@ msgid "" "returned (or written to *file*) will only contain the message headers, not " "the body." msgstr "" +"Igual que :meth:`article()`, pero envía un comando ``HEAD``. Las *lines* " +"retornadas (o escritas a *file*) solo contendrán los encabezados del " +"mensaje, no el cuerpo." #: ../Doc/library/nntplib.rst:463 msgid "" @@ -462,6 +657,9 @@ msgid "" "returned (or written to *file*) will only contain the message body, not the " "headers." msgstr "" +"Igual que :meth:`article()`, pero envía un comando ``BODY``. Las *lines* " +"retornadas (o escritas a *file*) solo contendrán los encabezados del " +"mensaje, no el cuerpo." #: ../Doc/library/nntplib.rst:470 msgid "" @@ -472,12 +670,21 @@ msgid "" "meth:`post` method automatically escapes lines beginning with ``.`` and " "appends the termination line." msgstr "" +"Publica un artículo utilizando el comando ``POST``. El argumento *data* es " +"un :term:`file object` abierto para la lectura binaria o cualquier iterable " +"de objetos bytes (que representa las líneas sin procesar del artículo que se " +"va a publicar). Debe representar un artículo de noticias bien formado, " +"incluidos los encabezados requeridos. El método :meth:`post` escapa " +"automáticamente las líneas que comienzan con ``.`` y añade la línea de " +"terminación." #: ../Doc/library/nntplib.rst:477 msgid "" "If the method succeeds, the server's response is returned. If the server " "refuses posting, a :class:`NNTPReplyError` is raised." msgstr "" +"Si el método tiene éxito, se retorna la respuesta del servidor. Si el " +"servidor se niega a publicarlo, se genera un :class:`NNTPReplyError`." #: ../Doc/library/nntplib.rst:483 msgid "" @@ -485,16 +692,21 @@ msgid "" "the server (enclosed in ``'<'`` and ``'>'``). The *data* parameter and the " "return value are the same as for :meth:`post()`." msgstr "" +"Envía un comando ``IHAVE``. *message_id* es el identificador del mensaje que " +"se enviará al servidor (incluido entre ``'<'`` y ``'>'``). El parámetro " +"*data* y el valor de retorno son los mismos que para :meth:`post()`." #: ../Doc/library/nntplib.rst:490 msgid "" "Return a pair ``(response, date)``. *date* is a :class:`~datetime.datetime` " "object containing the current date and time of the server." msgstr "" +"Devuelve un par ``(response, date)``. *date* es un objeto :class:`~datetime." +"datetime` que contiene la fecha y hora actuales del servidor." #: ../Doc/library/nntplib.rst:496 msgid "Send a ``SLAVE`` command. Return the server's *response*." -msgstr "" +msgstr "Envía un comando ``SLAVE``. Retorna la *response* del servidor." #: ../Doc/library/nntplib.rst:501 msgid "" @@ -505,12 +717,22 @@ msgid "" "maximum amount of debugging output, logging each line sent and received on " "the connection (including message text)." msgstr "" +"Establece el nivel de depuración de la instancia. Esto controla la cantidad " +"de salida de depuración impresa. El valor por defecto, ``0``, no produce " +"salida de depuración. Un valor de ``1`` produce una cantidad moderada de " +"salida de depuración, generalmente una sola línea por solicitud o por " +"respuesta. Un valor de ``2`` o superior produce la cantidad máxima de salida " +"de depuración, registrando cada línea enviada y recibida en la conexión " +"(incluyendo el texto del mensaje)." #: ../Doc/library/nntplib.rst:509 msgid "" "The following are optional NNTP extensions defined in :rfc:`2980`. Some of " "them have been superseded by newer commands in :rfc:`3977`." msgstr "" +"Las siguientes son extensiones NNTP opcionales definidas en :rfc:`2980`. " +"Algunas de ellas han sido reemplazados por comandos más nuevos en :rfc:" +"`3977`." #: ../Doc/library/nntplib.rst:515 msgid "" @@ -526,6 +748,18 @@ msgid "" "calling :meth:`write` on it to store the lines of the command output. If " "*file* is supplied, then the returned *list* is an empty list." msgstr "" +"Envía un comando ``XHDR``. El argumento *hdr* es una palabra clave de " +"encabezado, por ejemplo ``'subject'``. El argumento *str* debe tener la " +"forma ``'first-last'`` donde *first* y *last* son el primer y último número " +"de artículo para buscar. Retorna un par ``(response, list)``, donde *list* " +"es una lista de pares ``(id, text)``, donde *id* es un número de artículo " +"(como una cadena) y *text* es el texto del encabezado solicitado para ese " +"artículo. Si se proporciona el parámetro *file*, entonces la salida del " +"comando ``XHDR`` se almacena en un archivo. Si *file* es una cadena, " +"entonces el método abrirá un archivo con ese nombre, que escribirá en él y " +"luego lo cerrará. Si *file* es un :term:`file object`, entonces comenzará " +"invocando :meth:`write` en él para almacenar las líneas de la salida del " +"comando. Si se proporciona *file*, entonces retorna *list* o una lista vacía." #: ../Doc/library/nntplib.rst:530 msgid "" @@ -534,6 +768,11 @@ msgid "" "`over()`. It is recommended to use :meth:`over()` instead, since it will " "automatically use the newer ``OVER`` command if available." msgstr "" +"Envía un comando ``XOVER``. *start* and *end* son números de artículo que " +"delimitan el rango de artículos a seleccionar. El valor de retorno es el " +"mismo que para :meth:`over()`. Se recomienda usar :meth:`over()` en su " +"lugar, ya que se usará automáticamente el comando más nuevo ``OVER`` si está " +"disponible." #: ../Doc/library/nntplib.rst:539 msgid "" @@ -541,18 +780,21 @@ msgid "" "article with message ID *id*. Most of the time, this extension is not " "enabled by NNTP server administrators." msgstr "" +"Retorna un par ``(resp, path)``, donde *path* es la ruta del directorio al " +"artículo con un ID de mensaje *id*. La mayoría de las veces, los " +"administradores del servidor NNTP no habilitan esta extensión." #: ../Doc/library/nntplib.rst:543 msgid "The XPATH extension is not actively used." -msgstr "" +msgstr "La extensión XPATH no se utiliza activamente." #: ../Doc/library/nntplib.rst:565 msgid "Utility functions" -msgstr "" +msgstr "Funciones de utilidad" #: ../Doc/library/nntplib.rst:567 msgid "The module also defines the following utility function:" -msgstr "" +msgstr "El módulo también define la siguiente función de utilidad:" #: ../Doc/library/nntplib.rst:572 msgid "" @@ -561,3 +803,7 @@ msgid "" "returned. Using this function is recommended to display some headers in a " "human readable form::" msgstr "" +"Decodifica un valor de encabezado, eliminando los caracteres de escape que " +"no sean ASCII. *header_str* debe ser un objeto :class:`str`. Se retorna el " +"valor sin escape. Se recomienda utilizar esta función para mostrar algunos " +"encabezados en una forma legible por humanos::" diff --git a/library/numbers.po b/library/numbers.po index 13f34f466f..71ff1ddc6d 100644 --- a/library/numbers.po +++ b/library/numbers.po @@ -9,7 +9,7 @@ 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-16 18:08-0500\n" +"PO-Revision-Date: 2020-12-20 19:28-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,7 +17,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Last-Translator: Jhonatan Barrera \n" "Language: es\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/numbers.rst:2 msgid ":mod:`numbers` --- Numeric abstract base classes" @@ -184,10 +184,15 @@ msgid "" "there. For subtypes of :class:`Integral`, this means that :meth:`__add__` " "and :meth:`__radd__` should be defined as::" msgstr "" +"Queremos implementar las operaciones aritméticas tal que las operaciones de " +"modo mixto llamen a una implementación cuyo autor conocía los tipos de ambos " +"argumentos, o convertir ambos argumentos al tipo incorporado más cercano " +"antes de hacer la operación. Para subtipos de :class:`Integral`, esto " +"significa que :meth:`__add__` y :meth:`__radd__` tienen que ser definidos " +"como::" # boilerplate -> repetitivo --revisar en todo el archivo #: ../Doc/library/numbers.rst:152 -#, fuzzy msgid "" "There are 5 different cases for a mixed-type operation on subclasses of :" "class:`Complex`. I'll refer to all of the above code that doesn't refer to " @@ -196,7 +201,7 @@ msgid "" "Complex``), and ``b : B <: Complex``. I'll consider ``a + b``:" msgstr "" "Hay 5 casos diferentes para una operación de tipo mixto en subclases de :" -"class:`Complex`. Me referiré a todo el código anterior que no se refiere a " +"class:`Complex`. Se explicará todo el código anterior que no se refiere a " "``MyIntegral`` y ``OtherTypeIKnowAbout` como \"repetitivo\". ``a`` será una " "instancia de ``A``, que es un subtipo de :class:`Complex` (``a: A <: " "Complex`), y ``b : B <: Complex``. Consideraré ``a + b``:" diff --git a/library/ossaudiodev.po b/library/ossaudiodev.po index e395ce021c..37700910d6 100644 --- a/library/ossaudiodev.po +++ b/library/ossaudiodev.po @@ -426,7 +426,7 @@ msgstr "" "`getfmts` para obtener una lista. Retorna el formato de audio en el que se " "configuró el dispositivo, que puede no ser el formato solicitado. También se " "puede utilizar para retornar el formato de audio actual. Haga esto pasando " -"un “formato de audio” de :const:`AFMT_QUERY`." +"un \"formato de audio\" de :const:`AFMT_QUERY`." #: ../Doc/library/ossaudiodev.rst:241 msgid "" @@ -600,7 +600,8 @@ msgstr "Cadena que contiene el nombre del archivo del dispositivo." #: ../Doc/library/ossaudiodev.rst:347 msgid "The I/O mode for the file, either ``\"r\"``, ``\"rw\"``, or ``\"w\"``." -msgstr "El modo de E/S para el archivo, ya sea ``”r”``, ``”rw”``, o ``”w”``." +msgstr "" +"El modo de E/S para el archivo, ya sea ``\"r\"``, ``\"rw\"``, o ``\"w\"``." #: ../Doc/library/ossaudiodev.rst:353 msgid "Mixer Device Objects" @@ -643,12 +644,12 @@ msgid "" "mixer object supports a PCM mixer, use the following Python code::" msgstr "" "Este método retorna una máscara de bits que especifica los controles del " -"mezclador disponibles (“Control” es un “canal” mezclable específico, como :" -"const:`SOUND_MIXER_PCM` o :const:`SOUND_MIXER_SYNTH`). Esta máscara de bits " -"indica un subconjunto de todos los controles de mezclador disponibles --- " -"las constantes :const:`SOUND_MIXER_\\*` definidas a nivel de módulo. Para " -"determinar si, por ejemplo, el objeto mezclador actual admite un mezclador " -"PCM, utilice el siguiente código Python::" +"mezclador disponibles (\"Control\" es un \"canal\" mezclable específico, " +"como :const:`SOUND_MIXER_PCM` o :const:`SOUND_MIXER_SYNTH`). Esta máscara de " +"bits indica un subconjunto de todos los controles de mezclador disponibles " +"--- las constantes :const:`SOUND_MIXER_\\*` definidas a nivel de módulo. " +"Para determinar si, por ejemplo, el objeto mezclador actual admite un " +"mezclador PCM, utilice el siguiente código Python::" #: ../Doc/library/ossaudiodev.rst:389 msgid "" diff --git a/library/parser.po b/library/parser.po index c6ac832eac..7991084247 100644 --- a/library/parser.po +++ b/library/parser.po @@ -6,23 +6,25 @@ # 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: 2020-10-07 16:51+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: Francisco Jesús Sevilla García \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/parser.rst:2 msgid ":mod:`parser` --- Access Python parse trees" -msgstr "" +msgstr ":mod:`parser` --- Acceder a árboles de análisis sintáctico de Python" #: ../Doc/library/parser.rst:21 msgid "" @@ -34,6 +36,14 @@ msgid "" "in a manner identical to the code forming the application. It is also " "faster." msgstr "" +"El módulo :mod:`parser` proporciona una interfaz para el analizador " +"sintáctico interno de Python y para el compilador de código de bytes. El " +"propósito principal de esta interfaz es permitir que el código Python edite " +"el árbol de análisis sintáctico de una expresión Python y cree código " +"ejecutable a partir de este. Esto es mejor que intentar analizar y modificar " +"una cadena de caracteres que conforma un fragmento de código Python " +"arbitrario, porque el análisis se realiza de una manera idéntica al código " +"que construye la aplicación. También es más rápido." #: ../Doc/library/parser.rst:30 msgid "" @@ -41,6 +51,9 @@ msgid "" "Syntax Tree (AST) generation and compilation stage, using the :mod:`ast` " "module." msgstr "" +"A partir de Python 2.5, es más práctico realizar estas operaciones entre la " +"generación del árbol de sintaxis abstracta (AST) y la etapa de compilación, " +"utilizando para ello el módulo :mod:`ast`." #: ../Doc/library/parser.rst:34 msgid "" @@ -49,6 +62,11 @@ msgid "" "editing the parse trees for Python code, but some examples of using the :mod:" "`parser` module are presented." msgstr "" +"Hay algunas cosas a tener en cuenta sobre este módulo, que son importantes " +"para hacer un uso correcto de las estructuras de datos creadas. Este no es " +"un tutorial sobre cómo editar los árboles de análisis sintáctico para código " +"Python, no obstante, sí que se proporcionan algunos ejemplos de uso del " +"módulo :mod:`parser`." #: ../Doc/library/parser.rst:39 msgid "" @@ -70,6 +88,26 @@ msgid "" "from one version to another, though source code has usually been forward-" "compatible within a major release series." msgstr "" +"Lo más importante es que se requiere una buena comprensión de la gramática " +"de Python procesada por el analizador sintáctico interno. Para obtener " +"información completa sobre la sintaxis del lenguaje, consulta :ref:" +"`reference-index`. El analizador sintáctico en sí se crea a partir de una " +"especificación gramatical definida en el archivo :file:`Grammar/Grammar` en " +"la distribución estándar de Python. Los árboles de análisis sintáctico " +"almacenados en los objetos ST creados por este módulo son la salida real del " +"analizador interno cuando son creados por las funciones :func:`expr` o :func:" +"`suite`, descritas a continuación. Los objetos ST creados por :func:" +"`sequence2st` simulan fielmente esas estructuras. Ten en cuenta que los " +"valores de las secuencias que se consideran \"correctas\" variarán de una " +"versión de Python a otra, a medida que se revise la gramática formal del " +"lenguaje. Por el contrario, portar código fuente en forma de texto de una " +"versión de Python a otra siempre permitirá crear árboles de análisis " +"correctos en la versión de destino, con la única restricción de la migración " +"a una versión anterior del intérprete que no admita construcciones del " +"lenguaje más recientes. Los árboles de análisis sintáctico no suelen ser " +"compatibles de una versión a otra, aunque el código fuente suele ser " +"compatible con versiones posteriores dentro de una misma serie de versiones " +"principales." #: ../Doc/library/parser.rst:57 msgid "" @@ -91,6 +129,26 @@ msgid "" "requested, the same token might be represented as ``(1, 'if', 12)``, where " "the ``12`` represents the line number at which the terminal symbol was found." msgstr "" +"Cada elemento de las secuencias retornadas por :func:`st2list` o :func:" +"`st2tuple` tiene una forma simple. Las secuencias que representan elementos " +"no terminales en la gramática siempre tienen una longitud mayor que uno. El " +"primer elemento es un número entero que identifica una regla de producción " +"gramatical. Estos números enteros reciben nombres simbólicos en el archivo " +"de cabecera :file:`Include/graminit.h` de C y en el módulo :mod:`symbol` de " +"Python. Cada elemento adicional de la secuencia representa un componente de " +"la producción tal como se reconoce en la cadena de entrada: siempre son " +"secuencias que tienen la misma forma que la original. Un aspecto importante " +"de esta estructura que debe tenerse en cuenta es que las palabras clave " +"utilizadas para identificar el tipo de nodo principal, como la palabra " +"clave :keyword:`if` en una :const:`if_stmt`, se incluyen en el árbol de " +"nodos sin ningún tratamiento especial. Por ejemplo, la palabra clave :" +"keyword:`!if` está representada por la tupla ``(1, 'if')``, donde ``1`` es " +"el valor numérico asociado con todos los tokens :const:`NAME`, incluidos los " +"nombres de variables y funciones definidos por el usuario. En una forma " +"alternativa, que se retorna cuando se solicita información sobre el número " +"de línea, el mismo token podría representarse como ``(1, 'if', 12)``, donde " +"el ``12`` representa el número de línea en el que se encontró el símbolo " +"terminal." #: ../Doc/library/parser.rst:74 msgid "" @@ -100,6 +158,11 @@ msgid "" "various types of terminal symbols are defined in the C header file :file:" "`Include/token.h` and the Python module :mod:`token`." msgstr "" +"Los elementos terminales se representan de la misma manera, pero sin ningún " +"elemento secundario y sin la adición del texto fuente que se identificó. El " +"anterior ejemplo de la palabra clave :keyword:`if` es representativo de " +"esto. Los diversos tipos de símbolos terminales se definen en el archivo de " +"cabecera :file:`Include/token.h` de C y en el módulo :mod:`token` de Python." #: ../Doc/library/parser.rst:80 msgid "" @@ -111,6 +174,15 @@ msgid "" "which manipulate parse trees. A simple \"wrapper\" class may be created in " "Python to hide the use of ST objects." msgstr "" +"Los objetos ST no son necesarios para soportar la funcionalidad de este " +"módulo, pero se proporcionan para tres propósitos: para permitir que una " +"aplicación amortice el coste de procesar árboles de análisis sintáctico " +"complejos, para proporcionar una representación en forma de árbol de " +"análisis sintáctico que preserve espacio en memoria, en comparación con la " +"representación una lista o tupla de Python, y para facilitar la creación de " +"módulos adicionales en C que manipulen árboles de análisis sintáctico. Se " +"puede crear una simple clase \"contenedora\" en Python para ocultar el uso " +"de objetos ST." #: ../Doc/library/parser.rst:88 msgid "" @@ -120,28 +192,37 @@ msgid "" "there are also functions which serve to query the type of parse tree " "represented by an ST object." msgstr "" +"El módulo :mod:`parser` define funciones para varios propósitos distintos. " +"Los más importantes son crear objetos ST y convertir objetos ST en otras " +"representaciones, como árboles de análisis sintáctico y objetos de código " +"compilado. También existen funciones que sirven para consultar el tipo de " +"árbol de análisis sintáctico representado por un objeto ST." #: ../Doc/library/parser.rst:98 msgid "Module :mod:`symbol`" -msgstr "" +msgstr "Módulo :mod:`symbol`" #: ../Doc/library/parser.rst:98 msgid "Useful constants representing internal nodes of the parse tree." msgstr "" +"Constantes útiles que representan los nodos internos del árbol de análisis " +"sintáctico." #: ../Doc/library/parser.rst:101 msgid "Module :mod:`token`" -msgstr "" +msgstr "Módulo :mod:`token`" #: ../Doc/library/parser.rst:101 msgid "" "Useful constants representing leaf nodes of the parse tree and functions for " "testing node values." msgstr "" +"Constantes útiles que representan nodos hoja del árbol de análisis " +"sintáctico y funciones para probar valores de nodos." #: ../Doc/library/parser.rst:108 msgid "Creating ST Objects" -msgstr "" +msgstr "Crear objetos ST" #: ../Doc/library/parser.rst:110 msgid "" @@ -149,6 +230,9 @@ msgid "" "creating an ST object from source, different functions are used to create " "the ``'eval'`` and ``'exec'`` forms." msgstr "" +"Los objetos ST pueden crearse a partir del código fuente o de un árbol de " +"análisis sintáctico. Al crear un objeto ST a partir del código fuente, se " +"utilizan diferentes funciones para crear las formas ``'eval'`` y ``'exec'``." #: ../Doc/library/parser.rst:117 msgid "" @@ -157,6 +241,11 @@ msgid "" "ST object is created to hold the internal parse tree representation, " "otherwise an appropriate exception is raised." msgstr "" +"La función :func:`expr` analiza el parámetro *source* como si fuera una " +"entrada para ``compile(source, 'file.py', 'eval')``. Si el análisis " +"sintáctico tiene éxito, se crea un objeto ST para contener la representación " +"del árbol de análisis sintáctico interno; de lo contrario, se lanza una " +"excepción apropiada." #: ../Doc/library/parser.rst:125 msgid "" @@ -165,6 +254,11 @@ msgid "" "ST object is created to hold the internal parse tree representation, " "otherwise an appropriate exception is raised." msgstr "" +"La función :func:`suite` analiza el parámetro *source* como si fuera una " +"entrada válida para ``compile(source, 'file.py', 'exec')``. Si el análisis " +"sintáctico tiene éxito, se crea un objeto ST para contener la representación " +"del árbol de análisis sintáctico interno; de lo contrario, se lanza una " +"excepción apropiada." #: ../Doc/library/parser.rst:133 msgid "" @@ -182,6 +276,20 @@ msgid "" "``del f(0)``, which escapes the Python parser but is checked by the bytecode " "compiler." msgstr "" +"Esta función acepta un árbol de análisis sintáctico representado como una " +"secuencia y construye una representación interna si es posible. Si puede " +"validar que el árbol se ajusta a la gramática de Python y que todos los " +"nodos son tipos de nodo válidos en la versión anfitriona de Python, se crea " +"un objeto ST a partir de la representación interna y se retorna a quien la " +"invocó. Si hay un problema creando la representación interna, o si el árbol " +"no se puede validar, se lanza una excepción :exc:`ParserError`. No se debe " +"dar por supuesto que un objeto ST creado de esta manera se compila " +"correctamente; las excepciones normalmente generadas en el proceso de " +"compilación aún pueden iniciarse cuando el objeto ST se pasa a :func:" +"`compilest`. Esto puede indicar problemas no relacionados con la sintaxis " +"(como una excepción :exc:`MemoryError`), pero también puede deberse a " +"construcciones como el resultado de analizar ``del f(0)``, que escapa al " +"analizador de Python pero es verificado por el compilador de código de bytes." #: ../Doc/library/parser.rst:146 msgid "" @@ -191,16 +299,24 @@ msgid "" "be a valid line number. The line number may be specified for any subset of " "the terminal symbols in the input tree." msgstr "" +"Las secuencias que representan tokens terminales pueden representarse como " +"listas de dos elementos de la forma ``(1, 'nombre')`` o como listas de tres " +"elementos de la forma ``(1, 'nombre', 56)``. Si el tercer elemento está " +"presente, se supone que es un número de línea válido. El número de línea " +"puede especificarse para cualquier subconjunto de los símbolos terminales en " +"el árbol de entrada." #: ../Doc/library/parser.rst:155 msgid "" "This is the same function as :func:`sequence2st`. This entry point is " "maintained for backward compatibility." msgstr "" +"Esta es la misma función que :func:`sequence2st`. Este punto de entrada se " +"mantiene solo por compatibilidad con versiones anteriores." #: ../Doc/library/parser.rst:162 msgid "Converting ST Objects" -msgstr "" +msgstr "Convertir objetos ST" #: ../Doc/library/parser.rst:164 msgid "" @@ -209,6 +325,11 @@ msgid "" "executable code objects. Parse trees may be extracted with or without line " "numbering information." msgstr "" +"Los objetos ST, independientemente de la entrada utilizada para crearlos, " +"pueden convertirse en árboles de análisis sintáctico representados como " +"árboles de listas o tuplas, o pueden compilarse en objetos de código " +"ejecutable. Los árboles de análisis sintáctico se pueden extraer con o sin " +"información de numeración de línea." #: ../Doc/library/parser.rst:172 msgid "" @@ -222,6 +343,17 @@ msgid "" "required, this function is significantly faster than retrieving a tuple " "representation and converting that to nested lists." msgstr "" +"Esta función acepta un objeto ST de quien la invoca mediante el argumento " +"*st* y retorna una lista de Python que representa el árbol de análisis " +"sintáctico equivalente. La representación de la lista resultante se puede " +"utilizar para la inspección o la creación de un nuevo árbol de análisis " +"sintáctico en forma de lista. Esta función no falla mientras haya memoria " +"disponible para construir la representación de la lista. Si el árbol de " +"análisis sintáctico sólo va a ser usado con fines de inspección, se debe " +"usar :func:`st2tuple` en su lugar para reducir el consumo de memoria y la " +"fragmentación. Cuando se requiere la representación en forma de lista, esta " +"función es significativamente más rápida que recuperar una representación en " +"forma de tupla y convertirla posteriormente en listas anidadas." #: ../Doc/library/parser.rst:182 msgid "" @@ -230,6 +362,11 @@ msgid "" "that the line number provided specifies the line on which the token *ends*. " "This information is omitted if the flag is false or omitted." msgstr "" +"Si *line_info* es verdadero, la información del número de línea se incluirá " +"para todos los tokens terminales como un tercer elemento de la lista que " +"representa el token. Ten en cuenta que el número de línea proporcionado " +"especifica la línea en la que el token *termina*. Esta información se omite " +"si el indicador es falso o se omite." #: ../Doc/library/parser.rst:190 msgid "" @@ -237,6 +374,10 @@ msgid "" "Python tuple representing the equivalent parse tree. Other than returning a " "tuple instead of a list, this function is identical to :func:`st2list`." msgstr "" +"Esta función acepta un objeto ST de quien la llama mediante el argumento " +"*st* y retorna una tupla de Python que representa el árbol de análisis " +"sintáctico equivalente. Aparte de retornar una tupla en lugar de una lista, " +"esta función es idéntica a :func:`st2list`." #: ../Doc/library/parser.rst:194 msgid "" @@ -244,6 +385,10 @@ msgid "" "terminal tokens as a third element of the list representing the token. This " "information is omitted if the flag is false or omitted." msgstr "" +"Si *line_info* es verdadero, la información del número de línea se incluirá " +"para todos los tokens terminales como un tercer elemento de la lista que " +"representa el token. Esta información se omite si el indicador es falso o se " +"omite." #: ../Doc/library/parser.rst:205 msgid "" @@ -254,6 +399,14 @@ msgid "" "file name specified by the *filename* parameter. The default value supplied " "for *filename* indicates that the source was an ST object." msgstr "" +"El compilador de bytes de Python se puede invocar en un objeto ST para " +"producir objetos de código que se pueden usar como parte de una llamada a " +"las funciones incorporadas :func:`exec` o :func:`eval`. Esta función " +"proporciona la interfaz para el compilador, pasando el árbol de análisis " +"sintáctico interno de *st* al analizador sintáctico, utilizando el nombre " +"del archivo fuente especificado por el parámetro *filename*. El valor " +"predeterminado proporcionado para *filename* indica que la fuente era un " +"objeto ST." #: ../Doc/library/parser.rst:212 msgid "" @@ -266,10 +419,20 @@ msgid "" "module. Most causes of compilation failure can be diagnosed " "programmatically by inspection of the parse tree." msgstr "" +"La compilación de un objeto ST puede resultar en excepciones relacionadas " +"con la compilación. Un ejemplo sería la excepción :exc:`SyntaxError` causada " +"por el árbol de análisis sintáctico para ``del f(0)``: esta declaración se " +"considera legal dentro de la gramática formal de Python pero no es una " +"construcción del lenguaje legal. La excepción :exc:`SyntaxError` lanzada " +"para esta condición es realmente generada por el compilador de bytes de " +"Python, por lo que puede ser lanzada en este punto por el módulo :mod:" +"`parser`. La mayoría de las causas de errores de compilación se pueden " +"diagnosticar programáticamente mediante la inspección del árbol de análisis " +"sintáctico." #: ../Doc/library/parser.rst:225 msgid "Queries on ST Objects" -msgstr "" +msgstr "Consultas en objetos ST" #: ../Doc/library/parser.rst:227 msgid "" @@ -278,6 +441,11 @@ msgid "" "used to determine if an ST was created from source code via :func:`expr` or :" "func:`suite` or from a parse tree via :func:`sequence2st`." msgstr "" +"Se proporcionan dos funciones que permiten a una aplicación determinar si un " +"ST se creó como una expresión o una suite. Ninguna de estas funciones se " +"puede utilizar para determinar si un ST se creó a partir del código fuente a " +"través de :func:`expr` o :func:`suite`, o desde un árbol de análisis " +"mediante :func:`sequence2st`." #: ../Doc/library/parser.rst:237 msgid "" @@ -288,6 +456,12 @@ msgid "" "like this either, and are identical to those created by the built-in :func:" "`compile` function." msgstr "" +"Esta función retorna ``True`` cuando *st* representa una forma ``'eval'`` y " +"retorna ``False`` en caso contrario. Esto es útil, ya que los objetos de " +"código normalmente no se pueden consultar para esta información utilizando " +"las funciones incorporadas existentes. Ten en cuenta que los objetos de " +"código creados por :func:`compilest` tampoco pueden consultarse así, además, " +"son idénticos a los creados por la función incorporada :func:`compile`." #: ../Doc/library/parser.rst:246 msgid "" @@ -296,10 +470,15 @@ msgid "" "safe to assume that this function is equivalent to ``not isexpr(st)``, as " "additional syntactic fragments may be supported in the future." msgstr "" +"Esta función es un espejo de :func:`isexpr`, en el sentido de que informa si " +"un objeto ST representa una forma ``'exec'``, comúnmente conocida como " +"\"suite\". No es seguro asumir que esta función es equivalente a ``not " +"isexpr(st)``, ya que es posible que se admitan fragmentos sintácticos " +"adicionales en el futuro." #: ../Doc/library/parser.rst:255 msgid "Exceptions and Error Handling" -msgstr "" +msgstr "Manejo de errores y excepciones" #: ../Doc/library/parser.rst:257 msgid "" @@ -307,6 +486,10 @@ msgid "" "in exceptions from other portions of the Python runtime environment. See " "each function for information about the exceptions it can raise." msgstr "" +"El módulo parser define una única excepción, pero también puede lanzar otras " +"excepciones incorporadas en otras partes del entorno de ejecución de Python. " +"Consulta cada función para obtener información sobre las excepciones que " +"puede generar." #: ../Doc/library/parser.rst:264 msgid "" @@ -319,6 +502,15 @@ msgid "" "handle either type of exception, while calls to other functions in the " "module will only need to be aware of the simple string values." msgstr "" +"Excepción lanzada cuando se produce un fallo dentro del módulo parser. Esto " +"generalmente se produce ante fallos de validación, en lugar de la excepción " +"incorporada :exc:`SyntaxError`, lanzada durante el análisis normal. El " +"argumento de la excepción puede ser una cadena de caracteres que describa la " +"razón del error, o también una tupla que contenga la secuencia causante del " +"fallo en el árbol de análisis pasado a :func:`sequence2st` y una cadena " +"explicativa. Las llamadas a :func:`sequence2st` deben poder manejar ambos " +"tipos de excepciones, mientras que las llamadas a otras funciones en el " +"módulo solo necesitarán tener en cuenta los valores de cadena simples." #: ../Doc/library/parser.rst:273 msgid "" @@ -330,50 +522,61 @@ msgid "" "normally associated with them. Refer to the descriptions of each function " "for detailed information." msgstr "" +"Ten en cuenta que las funciones :func:`compilest`, :func:`expr` y :func:" +"`suite` pueden lanzar excepciones que normalmente son generadas por el " +"proceso de análisis y compilación. Estas incluyen las excepciones " +"incorporadas :exc:`MemoryError`, :exc:`OverflowError`, :exc:`SyntaxError` y :" +"exc:`SystemError`. En estos casos, estas excepciones tienen todo el " +"significado que normalmente se asocia a ellas. Consulta las descripciones de " +"cada función para obtener información detallada." #: ../Doc/library/parser.rst:284 msgid "ST Objects" -msgstr "" +msgstr "Objetos ST" #: ../Doc/library/parser.rst:286 msgid "" "Ordered and equality comparisons are supported between ST objects. Pickling " "of ST objects (using the :mod:`pickle` module) is also supported." msgstr "" +"Se admiten comparaciones de orden y de igualdad entre objetos ST. También se " +"admite la serialización de objetos ST (utilizando el módulo :mod:`pickle`)." #: ../Doc/library/parser.rst:292 msgid "" "The type of the objects returned by :func:`expr`, :func:`suite` and :func:" "`sequence2st`." msgstr "" +"El tipo de los objetos retornados por :func:`expr`, :func:`suite` y :func:" +"`sequence2st`." #: ../Doc/library/parser.rst:295 msgid "ST objects have the following methods:" -msgstr "" +msgstr "Los objetos ST tienen los siguientes métodos:" #: ../Doc/library/parser.rst:300 msgid "Same as ``compilest(st, filename)``." -msgstr "" +msgstr "Igual que ``compilest(st, filename)``." #: ../Doc/library/parser.rst:305 msgid "Same as ``isexpr(st)``." -msgstr "" +msgstr "Igual que ``isexpr(st)``." #: ../Doc/library/parser.rst:310 msgid "Same as ``issuite(st)``." -msgstr "" +msgstr "Igual que ``issuite(st)``." #: ../Doc/library/parser.rst:315 msgid "Same as ``st2list(st, line_info, col_info)``." -msgstr "" +msgstr "Igual que ``st2list(st, line_info, col_info)``." #: ../Doc/library/parser.rst:320 msgid "Same as ``st2tuple(st, line_info, col_info)``." -msgstr "" +msgstr "Igual que ``st2tuple(st, line_info, col_info)``." #: ../Doc/library/parser.rst:324 msgid "Example: Emulation of :func:`compile`" -msgstr "" +msgstr "Ejemplo: Emulación de :func:`compile`" #: ../Doc/library/parser.rst:326 msgid "" @@ -382,6 +585,10 @@ msgid "" "using the :mod:`parser` module to produce an intermediate data structure is " "equivalent to the code ::" msgstr "" +"Si bien muchas operaciones útiles pueden tener lugar entre el análisis y la " +"generación del códigos de bytes, la operación más simple es no hacer nada. " +"Para este propósito, usar el módulo :mod:`parser` para producir una " +"estructura de datos intermedia es equivalente al siguiente código::" #: ../Doc/library/parser.rst:336 msgid "" @@ -389,9 +596,14 @@ msgid "" "and allows the intermediate internal parse tree to be retained as an ST " "object::" msgstr "" +"La operación equivalente usando el módulo :mod:`parser` es algo más larga y " +"permite que el árbol de análisis sintáctico interno intermedio se conserve " +"como un objeto ST::" #: ../Doc/library/parser.rst:346 msgid "" "An application which needs both ST and code objects can package this code " "into readily available functions::" msgstr "" +"Una aplicación que necesita tanto ST como objetos de código puede empaquetar " +"este código en funciones fácilmente disponibles::" diff --git a/library/persistence.po b/library/persistence.po index b034e512f3..df738ec71d 100644 --- a/library/persistence.po +++ b/library/persistence.po @@ -1,25 +1,27 @@ # 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: 2020-10-28 15:17-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_CO\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/persistence.rst:5 msgid "Data Persistence" -msgstr "" +msgstr "Persistencia de datos" #: ../Doc/library/persistence.rst:7 msgid "" @@ -29,7 +31,13 @@ msgid "" "objects from the bytes. The various DBM-related modules support a family of " "hash-based file formats that store a mapping of strings to other strings." msgstr "" +"Los módulos descritos en este capítulo soportan el almacenamiento de datos " +"de Python de forma persistente en el disco. Los módulos :mod:`pickle` y :mod:" +"`marshal` pueden convertir muchos tipos de datos de Python en un flujo de " +"bytes y luego recrear los objetos a partir de los bytes. Los diversos " +"módulos relacionados con DBM admiten una familia de formatos de archivo " +"basados en hash que almacenan un mapeo de cadenas a otras cadenas." #: ../Doc/library/persistence.rst:13 msgid "The list of modules described in this chapter is:" -msgstr "" +msgstr "La lista de módulos descritos en este capítulo es:" diff --git a/library/pickletools.po b/library/pickletools.po index 0702cdd977..61179e4dff 100644 --- a/library/pickletools.po +++ b/library/pickletools.po @@ -1,29 +1,31 @@ # 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: 2020-10-10 10:26-0400\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/pickletools.rst:2 msgid ":mod:`pickletools` --- Tools for pickle developers" -msgstr "" +msgstr ":mod:`pickletools` --- Herramientas para desarrolladores pickle" #: ../Doc/library/pickletools.rst:8 msgid "**Source code:** :source:`Lib/pickletools.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/pickletools.py`" #: ../Doc/library/pickletools.rst:13 msgid "" @@ -34,10 +36,16 @@ msgid "" "`pickle`; ordinary users of the :mod:`pickle` module probably won't find " "the :mod:`pickletools` module relevant." msgstr "" +"Este módulo contiene varias constantes relacionadas con los detalles íntimos " +"del módulo :mod:`pickle`, algunos comentarios largos sobre la implementación " +"y algunas funciones útiles para analizar pickled data. El contenido de este " +"módulo es útil para los desarrolladores principales de Python que están " +"trabajando en el :mod:`pickle`; los usuarios ordinarios del módulo :mod:" +"`pickle` probablemente no encontrarán relevante el módulo :mod:`pickletools`." #: ../Doc/library/pickletools.rst:21 msgid "Command line usage" -msgstr "" +msgstr "Uso de la línea de comandos" #: ../Doc/library/pickletools.rst:25 msgid "" @@ -48,41 +56,55 @@ msgid "" "pickle file that you want to examine comes from an untrusted source, ``-m " "pickletools`` is a safer option because it does not execute pickle bytecode." msgstr "" +"Cuando se invoca desde la línea de comandos, ``python -m pickletools`` " +"desensamblará el contenido de uno o más archivos pickle. Tenga en cuenta " +"que si desea ver el objeto Python almacenado en el pickle en lugar de los " +"detalles del formato de pickle, es posible que desee utilizar ``-m pickle`` " +"en su lugar. Sin embargo, cuando el archivo de pickle que desea examinar " +"proviene de una fuente que no es de confianza, ``-m pickletools`` es una " +"opción más segura porque no ejecuta el código de bytes de pickle." #: ../Doc/library/pickletools.rst:33 msgid "For example, with a tuple ``(1, 2)`` pickled in file ``x.pickle``:" msgstr "" +"Por ejemplo, con una tupla ``(1, 2)`` pickled en el archivo ``x.pickle``:" #: ../Doc/library/pickletools.rst:50 msgid "Command line options" -msgstr "" +msgstr "Opciones de línea de comandos" #: ../Doc/library/pickletools.rst:56 msgid "Annotate each line with a short opcode description." -msgstr "" +msgstr "Anote cada línea con una breve descripción del código de operación." #: ../Doc/library/pickletools.rst:60 msgid "Name of a file where the output should be written." -msgstr "" +msgstr "Nombre de un archivo donde se debe escribir la salida." #: ../Doc/library/pickletools.rst:64 msgid "The number of blanks by which to indent a new MARK level." msgstr "" +"Número de espacios en blanco por los que se aplica una sangría a un nuevo " +"nivel de MARK." #: ../Doc/library/pickletools.rst:68 msgid "" "When multiple objects are disassembled, preserve memo between disassemblies." msgstr "" +"Cuando se desensamblan varios objetos, conserve la nota entre los " +"ensamblajes." #: ../Doc/library/pickletools.rst:73 msgid "" "When more than one pickle file are specified, print given preamble before " "each disassembly." msgstr "" +"Cuando se especifica más de un archivo pickle, imprima un preámbulo " +"determinado antes de cada desensamblado." #: ../Doc/library/pickletools.rst:79 msgid "Programmatic Interface" -msgstr "" +msgstr "Interfaz programática" #: ../Doc/library/pickletools.rst:84 msgid "" @@ -96,10 +118,20 @@ msgid "" "short description. The value of *annotate* is used as a hint for the column " "where annotation should start." msgstr "" +"Produce un desensamblado simbólico del pickle en el objeto similar a un " +"archivo *salida*, de forma predeterminada en ``sys.stdout``. *pickle* puede " +"ser una cadena o un objeto similar a un archivo. *memo* puede ser un " +"diccionario Python que se utilizará como nota del pickle; se puede utilizar " +"para realizar ensamblajes de desuso en varios pickles creados por el mismo " +"selector. Los niveles sucesivos, indicados por los códigos de operación " +"``MARK`` en la secuencia, son indentados por espacios *indentlevel*. Si se " +"da un valor distinto de cero a *anotar*, cada código de operación de la " +"salida se anota con una breve descripción. El valor de *anotar* se utiliza " +"como sugerencia para la columna donde debe comenzar la anotación." #: ../Doc/library/pickletools.rst:95 msgid "The *annotate* argument." -msgstr "" +msgstr "El argumento *anotar*." #: ../Doc/library/pickletools.rst:100 msgid "" @@ -109,6 +141,12 @@ msgid "" "object, of the opcode's argument; *pos* is the position at which this opcode " "is located. *pickle* can be a string or a file-like object." msgstr "" +"Proporciona un :term:`iterator` sobre todos los códigos de operación en un " +"pickle, retornando una secuencia de triples ``(opcode, arg, pos)``. " +"*opcode* es una instancia de una clase :class:`OpcodeInfo`; *arg* es el " +"valor descodificado, como un objeto Python, del argumento del código de " +"operación; *pos* es la posición en la que se encuentra este código de " +"operación. *pickle* puede ser una cadena o un objeto similar a un archivo." #: ../Doc/library/pickletools.rst:108 msgid "" @@ -116,3 +154,7 @@ msgid "" "opcodes. The optimized pickle is shorter, takes less transmission time, " "requires less storage space, and unpickles more efficiently." msgstr "" +"Retorna una nueva cadena pickle equivalente después de eliminar los códigos " +"de operación ``PUT`` no utilizados. El pickle optimizado es más corto, toma " +"menos tiempo de transmisión, requiere menos espacio de almacenamiento y se " +"restaura de manera más eficiente." diff --git a/library/pkgutil.po b/library/pkgutil.po index da7e000837..fd102d839d 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -12,8 +12,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: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-10-08 22:10+0200\n" +"Last-Translator: Andreu Vallbona Plazas \n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -22,27 +22,34 @@ msgstr "" #: ../Doc/library/pkgutil.rst:2 msgid ":mod:`pkgutil` --- Package extension utility" -msgstr "" +msgstr ":mod:`pkgutil` --- Utilidad de extensión de paquete" #: ../Doc/library/pkgutil.rst:7 msgid "**Source code:** :source:`Lib/pkgutil.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/pkgutil.py`" #: ../Doc/library/pkgutil.rst:11 msgid "" "This module provides utilities for the import system, in particular package " "support." msgstr "" +"Este módulo proporciona utilidades para el sistema de importación, en " +"particular soporte para paquetes." #: ../Doc/library/pkgutil.rst:16 msgid "A namedtuple that holds a brief summary of a module's info." msgstr "" +"Una tupla nombrada que contiene un breve resumen de la información del " +"módulo." #: ../Doc/library/pkgutil.rst:22 msgid "" "Extend the search path for the modules which comprise a package. Intended " "use is to place the following code in a package's :file:`__init__.py`::" msgstr "" +"Extiende la ruta de búsqueda de los módulos que componen un paquete. El uso " +"previsto es colocar el siguiente código en :file:`__init__.py`: de un " +"paquete:" #: ../Doc/library/pkgutil.rst:28 msgid "" @@ -51,6 +58,10 @@ msgid "" "wants to distribute different parts of a single logical package as multiple " "directories." msgstr "" +"Esto agregará al ``__path__`` del paquete todos los subdirectorios de " +"directorios en ``sys.path`` con el nombre del paquete. Esto es útil si se " +"desea distribuir diferentes partes de un único paquete lógico como varios " +"directorios." #: ../Doc/library/pkgutil.rst:33 msgid "" @@ -62,6 +73,14 @@ msgid "" "pkg` file are added to the path, regardless of whether they exist on the " "filesystem. (This is a feature.)" msgstr "" +"También busca archivos :file:`\\*.pkg` donde ``*`` coincide con el " +"argumento *name*. Esta característica es similar a archivos :file:`\\*.pth` " +"(vea el módulo :mod:`site` para más información) excepto que no incluye " +"líneas de casos especiales que comienzan con ``ìmport``. Un archivo :file:`" +"\\*.pkg` es confiable al pie de la letra: además de buscar duplicados, todas " +"las entradas encontradas en un :file:`\\*.pkg` se agregan a la ruta, " +"independientemente de si existen en el sistema de archivos. (Esto es una " +"funcionalidad)." #: ../Doc/library/pkgutil.rst:41 msgid "" @@ -69,6 +88,10 @@ msgid "" "returned unchanged. The input path is not modified; an extended copy is " "returned. Items are only appended to the copy at the end." msgstr "" +"Si la ruta de entrada no es una lista (como es el caso de los paquetes " +"congelados), se retorna sin cambios. La ruta de entrada no se modifica; se " +"retorna una copia ampliada. Los elementos solo se adjuntan a la copia al " +"final." #: ../Doc/library/pkgutil.rst:45 msgid "" @@ -78,10 +101,18 @@ msgid "" "may cause this function to raise an exception (in line with :func:`os.path." "isdir` behavior)." msgstr "" +"Se supone que :data:`sys.path` es una secuencia. Los elementos de :data:`sys." +"path` que no sean cadenas de caracteres que se refieran a directorios " +"existentes se ignoran. Los elementos Unicode en :data:`sys.path` que causan " +"errores cuando se utilizan como nombres de archivo pueden hacer que esta " +"función lance una excepción (en línea con el comportamiento de :func:`os." +"path.isdir`)." #: ../Doc/library/pkgutil.rst:54 msgid ":pep:`302` Finder that wraps Python's \"classic\" import algorithm." msgstr "" +"Buscador :pep:`302` que envuelve el algoritmo de importación \"clásico\" de " +"Python." #: ../Doc/library/pkgutil.rst:56 msgid "" @@ -90,26 +121,37 @@ msgid "" "searches the current :data:`sys.path`, plus any modules that are frozen or " "built-in." msgstr "" +"Si *dirname* es una cadena de caracteres, se crea un buscador :pep:`302` que " +"busca ese directorio. Si *dirname* es ``None``, se crea un buscador :pep:" +"`302` que busca en el actual :data:`sys.path`, más cualquier módulo que esté " +"congelado o incorporado." #: ../Doc/library/pkgutil.rst:61 msgid "" "Note that :class:`ImpImporter` does not currently support being used by " "placement on :data:`sys.meta_path`." msgstr "" +"Tenga en cuenta que :class:`ImpImporter` no admite actualmente el uso de " +"ubicación :data:`sys.meta_path`." #: ../Doc/library/pkgutil.rst:64 ../Doc/library/pkgutil.rst:73 msgid "" "This emulation is no longer needed, as the standard import mechanism is now " "fully :pep:`302` compliant and available in :mod:`importlib`." msgstr "" +"Esta emulación ya no es necesaria, ya que ahora lo es el mecanismo de " +"importación estándar totalmente compatible con :pep:`302` y disponible en :" +"mod:`importlib`." #: ../Doc/library/pkgutil.rst:71 msgid ":term:`Loader` that wraps Python's \"classic\" import algorithm." msgstr "" +":term:`Loader` que envuelve el algoritmo de importación \"clásico\" de " +"Python." #: ../Doc/library/pkgutil.rst:80 msgid "Retrieve a module :term:`loader` for the given *fullname*." -msgstr "" +msgstr "Recupera un módulo :term:`loader` para un *fullname* dado." #: ../Doc/library/pkgutil.rst:82 msgid "" @@ -117,6 +159,10 @@ msgid "" "find_spec` that converts most failures to :exc:`ImportError` and only " "returns the loader rather than the full :class:`ModuleSpec`." msgstr "" +"Este es un contenedor de compatibilidad con versiones anteriores de :func:" +"`importlib.util.find_spec` que convierte la mayoría de los errores en :exc:" +"`ImportError` y solo retorna el cargador en lugar del completo :class:" +"`ModuleSpec`." #: ../Doc/library/pkgutil.rst:87 ../Doc/library/pkgutil.rst:104 #: ../Doc/library/pkgutil.rst:119 ../Doc/library/pkgutil.rst:140 @@ -125,30 +171,36 @@ msgid "" "Updated to be based directly on :mod:`importlib` rather than relying on the " "package internal :pep:`302` import emulation." msgstr "" +"Actualizado para basarse directamente en :mod:`importlib` en lugar de " +"depender del paquete interno :pep:`302` emulación de importación." #: ../Doc/library/pkgutil.rst:91 ../Doc/library/pkgutil.rst:123 msgid "Updated to be based on :pep:`451`" -msgstr "" +msgstr "Actualizado basado en :pep:`451`" #: ../Doc/library/pkgutil.rst:96 msgid "Retrieve a :term:`finder` for the given *path_item*." -msgstr "" +msgstr "Recupera un :term:`finder` para el *path_item*." #: ../Doc/library/pkgutil.rst:98 msgid "" "The returned finder is cached in :data:`sys.path_importer_cache` if it was " "newly created by a path hook." msgstr "" +"El buscador retornado se almacena en caché en :data:`sys." +"path_importer_cache` si fue creado recientemente por un enlace de ruta." #: ../Doc/library/pkgutil.rst:101 msgid "" "The cache (or part of it) can be cleared manually if a rescan of :data:`sys." "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. " #: ../Doc/library/pkgutil.rst:111 msgid "Get a :term:`loader` object for *module_or_name*." -msgstr "" +msgstr "Obtiene un objeto :term:`loader` para *module_or_name*." #: ../Doc/library/pkgutil.rst:113 msgid "" @@ -158,10 +210,16 @@ msgid "" "not already imported, its containing package (if any) is imported, in order " "to establish the package ``__path__``." msgstr "" +"Si se puede acceder al módulo o paquete a través del mecanismo de " +"importación normal, se devuelve un contenedor alrededor de la parte " +"relevante de esa maquinaria. Retorna ``None`` si el módulo no se puede " +"encontrar o importar. Si el módulo nombrado aún no se ha importado, se " +"importa el paquete que lo contiene (si lo hay), para establecer el paquete " +"``__path__``." #: ../Doc/library/pkgutil.rst:129 msgid "Yield :term:`finder` objects for the given module name." -msgstr "" +msgstr "Cede (*yield*) objectos :term:`finder` para el nombre de módulo dado." #: ../Doc/library/pkgutil.rst:131 msgid "" @@ -169,32 +227,46 @@ msgid "" "fullname, otherwise they will be all registered top level finders (i.e. " "those on both sys.meta_path and sys.path_hooks)." msgstr "" +"Si el nombre completo contiene un '.', los buscadores serán para el paquete " +"que contiene el nombre completo; de lo contrario, serán todos los buscadores " +"de nivel superior registrados (es decir, los de sys.meta_path y sys." +"path_hooks)." #: ../Doc/library/pkgutil.rst:135 msgid "" "If the named module is in a package, that package is imported as a side " "effect of invoking this function." msgstr "" +"Si el módulo nombrado está en un paquete, ese paquete se importa como un " +"efecto secundario de invocar esta función." #: ../Doc/library/pkgutil.rst:138 msgid "If no module name is specified, all top level finders are produced." msgstr "" +"Si no se especifica ningún nombre de módulo, se generan todos los buscadores " +"de nivel superior." #: ../Doc/library/pkgutil.rst:147 msgid "" "Yields :class:`ModuleInfo` for all submodules on *path*, or, if *path* is " "``None``, all top-level modules on ``sys.path``." msgstr "" +"Cede (*yield*) :class:`ModuleInfo` para todos los submódulos en *path*, o, " +"si *path* es ``None``, todos los módulos de nivel superior en ``sys.path``." #: ../Doc/library/pkgutil.rst:150 ../Doc/library/pkgutil.rst:171 msgid "" "*path* should be either ``None`` or a list of paths to look for modules in." msgstr "" +"*path* tendría que ser ``None`` o una list de rutas en las que buscar " +"módulos." #: ../Doc/library/pkgutil.rst:152 ../Doc/library/pkgutil.rst:173 msgid "" "*prefix* is a string to output on the front of every module name on output." msgstr "" +"*prefix* es una cadena para mostrar delante de cada nombre de módulo en la " +"salida." #: ../Doc/library/pkgutil.rst:156 ../Doc/library/pkgutil.rst:195 msgid "" @@ -203,12 +275,18 @@ msgid "" "for :class:`importlib.machinery.FileFinder` and :class:`zipimport." "zipimporter`." msgstr "" +"Sólo funciona para un :term:`finder` que define un método " +"``iter_modules()``. Esta interfaz no es estándar, por lo que el módulo " +"también proporciona implementaciones para :class:`importlib.machinery." +"FileFinder` y :class:`zipimport.zipimporter`." #: ../Doc/library/pkgutil.rst:168 msgid "" "Yields :class:`ModuleInfo` for all modules recursively on *path*, or, if " "*path* is ``None``, all accessible modules." msgstr "" +"Cede (*yield*) :class:`ModuleInfo` para todos los módulos de forma recursiva " +"en *path*, o, si *path* es ``None``, todos los módulos accesibles." #: ../Doc/library/pkgutil.rst:175 msgid "" @@ -216,6 +294,9 @@ msgid "" "the given *path*, in order to access the ``__path__`` attribute to find " "submodules." msgstr "" +"Note que esta función debe importar todos los *packages* (¡*no* todos los " +"módulos!) en el *path* especificado, para acceder al atributo ``__path__`` " +"para encontrar submódulos." #: ../Doc/library/pkgutil.rst:179 msgid "" @@ -225,14 +306,19 @@ msgid "" "\\s are caught and ignored, while all other exceptions are propagated, " "terminating the search." msgstr "" +"*onerror* es una función que se llama con un argumento (el nombre del " +"paquete que se estaba importando) si se produce alguna excepción al intentar " +"importar un paquete. Si no se proporciona ninguna función *onerror*, los :" +"exc:`ImportError` se capturan e ignoran, mientras que todas las demás " +"excepciones se propagan, terminando la búsqueda." #: ../Doc/library/pkgutil.rst:185 msgid "Examples::" -msgstr "" +msgstr "Ejemplos::" #: ../Doc/library/pkgutil.rst:207 msgid "Get a resource from a package." -msgstr "" +msgstr "Obtiene un recurso de un paquete." #: ../Doc/library/pkgutil.rst:209 msgid "" @@ -243,18 +329,28 @@ msgid "" "separator. The parent directory name ``..`` is not allowed, and nor is a " "rooted name (starting with a ``/``)." msgstr "" +"Esto es un contenedor para la API :term:`loader` :meth:`get_data `. El argumento *package* debe ser el nombre de " +"un paquete, en formato de módulo estándar (``foo.bar``).El argumento " +"*resource* debe tener la forma de un nombre de archivo relativo, utilizando " +"``/`` como separador de ruta.El nombre del directorio principal ``..`` no " +"está permitido, ni tampoco un nombre raíz (empezando por ``/``)." #: ../Doc/library/pkgutil.rst:216 msgid "" "The function returns a binary string that is the contents of the specified " "resource." msgstr "" +"La función retorna una cadena de caracteres binaria que es el contenido del " +"recurso especificado." #: ../Doc/library/pkgutil.rst:219 msgid "" "For packages located in the filesystem, which have already been imported, " "this is the rough equivalent of::" msgstr "" +"Para los paquetes ubicados en el sistema de archivos, que ya se han " +"importado, este es el equivalente aproximado de::" #: ../Doc/library/pkgutil.rst:225 msgid "" @@ -264,3 +360,8 @@ msgid "" "for :term:`namespace packages ` does not support :meth:" "`get_data `." msgstr "" +"Si el paquete no puede ser localizado o cargado, o usa un :term:`loader` el " +"cuál no soporta :meth:`get_data `, " +"entonces retorna ``None``. En particular, el: término :term:`loader` para :" +"term:`namespace packages ` no soporta :meth:`get_data " +"`." diff --git a/library/posix.po b/library/posix.po index 419aab2456..aa985d3077 100644 --- a/library/posix.po +++ b/library/posix.po @@ -6,23 +6,25 @@ # 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-01-15 09:58+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: Juan Biondi \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/posix.rst:2 msgid ":mod:`posix` --- The most common POSIX system calls" -msgstr "" +msgstr ":mod:`posix` --- Las llamadas más comunes al sistema POSIX" #: ../Doc/library/posix.rst:10 msgid "" @@ -30,6 +32,9 @@ msgid "" "standardized by the C Standard and the POSIX standard (a thinly disguised " "Unix interface)." msgstr "" +"Este módulo proporciona acceso a la funcionalidad del sistema operativo que " +"está estandarizada por el estándar C y el estándar POSIX (una interfaz Unix " +"finamente disfrazada)." #: ../Doc/library/posix.rst:16 msgid "" @@ -43,16 +48,28 @@ msgid "" "such as automatically calling :func:`~os.putenv` when an entry in ``os." "environ`` is changed." msgstr "" +"**No importe este módulo directamente.** En su lugar, importe el módulo :mod:" +"`os`, que proporciona una versión *portable* de esta interfaz. En Unix, el " +"módulo :mod:`os` proporciona un superconjunto de la interfaz :mod:`posix`. " +"En sistemas operativos que no son Unix, el módulo :mod:`posix` no está " +"disponible, pero un subconjunto siempre está disponible a través de la " +"interfaz :mod:`os`. Una vez que se importa :mod:`os`, *no* hay penalización " +"de rendimiento en su uso en lugar de :mod:`posix`. Además, :mod:`os` " +"proporciona algunas funciones adicionales, como llamar automáticamente a :" +"func:`~os.putenv` cuando se cambia una entrada en ``os.environ``." #: ../Doc/library/posix.rst:25 msgid "" "Errors are reported as exceptions; the usual exceptions are given for type " "errors, while errors reported by the system calls raise :exc:`OSError`." msgstr "" +"Los errores se notifican como excepciones; las excepciones habituales se " +"proporcionan para los errores de tipo, mientras que los errores notificados " +"por las llamadas del sistema lanzan :exc:`OSError`." #: ../Doc/library/posix.rst:32 msgid "Large File Support" -msgstr "" +msgstr "Soporte de archivos grandes" #: ../Doc/library/posix.rst:40 msgid "" @@ -62,6 +79,12 @@ msgid "" "accomplished by defining the relevant size and offset types as 64-bit " "values. Such files are sometimes referred to as :dfn:`large files`." msgstr "" +"Varios sistemas operativos (incluidos AIX, HP-UX, Irix y Solaris) " +"proporcionan compatibilidad con archivos de más de 2 GiB de un modelo de " +"programación C donde :c:type:`int` y :c:type:`long` son valores de 32 bits. " +"Esto se logra normalmente definiendo el tamaño relevante y los tipos de " +"desplazamiento como valores de 64 bits. Tales archivos se conocen a veces " +"como :dfn:`large files`." #: ../Doc/library/posix.rst:46 msgid "" @@ -72,20 +95,31 @@ msgid "" "enabled by default with recent versions of Irix, but with Solaris 2.6 and " "2.7 you need to do something like::" msgstr "" +"La compatibilidad con archivos grandes está habilitada en Python cuando el " +"tamaño de un :c:type:`off_t` es mayor que un :c:type:`long` y :c:type:`long " +"long` es al menos tan grande como :c:type:`off_t`. Puede ser necesario " +"configurar y compilar Python con ciertos indicadores del compilador para " +"habilitar este modo. Por ejemplo, está habilitado de forma predeterminada " +"con las versiones recientes de Irix, pero con Solaris 2.6 y 2.7 debe hacer " +"algo como::" #: ../Doc/library/posix.rst:56 msgid "On large-file-capable Linux systems, this might work::" msgstr "" +"En sistemas Linux con capacidad para archivos grandes, esto podría " +"funcionar::" #: ../Doc/library/posix.rst:65 msgid "Notable Module Contents" -msgstr "" +msgstr "Contenido notable del módulo" #: ../Doc/library/posix.rst:67 msgid "" "In addition to many functions described in the :mod:`os` module " "documentation, :mod:`posix` defines the following data item:" msgstr "" +"Además de muchas funciones descritas en la documentación del módulo :mod:" +"`os`, :mod:`posix` define el siguiente elemento de datos:" #: ../Doc/library/posix.rst:72 msgid "" @@ -94,6 +128,11 @@ msgid "" "example, ``environ[b'HOME']`` (``environ['HOME']`` on Windows) is the " "pathname of your home directory, equivalent to ``getenv(\"HOME\")`` in C." msgstr "" +"Diccionario que representa el entorno de cadena en el momento en que se " +"inició el intérprete. Las claves y los valores son bytes en Unix y str en " +"Windows. Por ejemplo, ``environ[b'HOME']`` (``environ['HOME']`` en Windows) " +"es el nombre de ruta de acceso de su directorio principal, equivalente a " +"``getenv(\"HOME\")`` en C." #: ../Doc/library/posix.rst:77 msgid "" @@ -103,10 +142,15 @@ msgid "" "variable assignments and export statements to the command string for :func:" "`~os.system` or :func:`~os.popen`." msgstr "" +"La modificación de este diccionario no afecta al entorno de cadena que " +"transmite :func:`~os.execv`, :func:`~os.popen` o :func:`~os.system`; si " +"necesita cambiar el entorno, pase ``environ`` a :func:`~os.execve` o agregue " +"asignaciones variables y declaraciones de exportación a la cadena de " +"comandos para :func:`~os.system` o :func:`~os.popen`." #: ../Doc/library/posix.rst:83 msgid "On Unix, keys and values are bytes." -msgstr "" +msgstr "En Unix, las claves y los valores son bytes." #: ../Doc/library/posix.rst:88 msgid "" @@ -116,3 +160,8 @@ msgid "" "module version of this is recommended over direct access to the :mod:`posix` " "module." msgstr "" +"El módulo :mod:`os` proporciona una implementación alternativa de " +"``environ`` que actualiza el entorno en la modificación. Tenga en cuenta " +"también que la actualización :data:`os.environ` hará que este diccionario " +"sea obsoleto. El uso de la versión del módulo :mod:`os` de esto se " +"recomienda sobre el acceso directo al módulo :mod:`posix`." diff --git a/library/profile.po b/library/profile.po index bd5d6f4d92..0fffeacaa3 100644 --- a/library/profile.po +++ b/library/profile.po @@ -556,8 +556,8 @@ msgid "" "*filename* (or list of filenames) or from a :class:`Profile` instance. " "Output will be printed to the stream specified by *stream*." msgstr "" -"Este constructor de clase crea una instancia de un \\“objeto de estadísticas" -"\\” a partir de un *filename* (o una lista de nombres de archivo) o de una " +"Este constructor de clase crea una instancia de un \"objeto de estadísticas" +"\" a partir de un *filename* (o una lista de nombres de archivo) o de una " "instancia :class:`Profile`. La salida se imprimirá en la secuencia " "especificada por *stream*." diff --git a/library/pty.po b/library/pty.po index 06a5ccfaa0..dfeb8b5286 100644 --- a/library/pty.po +++ b/library/pty.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: 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: 2020-10-18 14:36-0500\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.1\n" #: ../Doc/library/pty.rst:2 msgid ":mod:`pty` --- Pseudo-terminal utilities" -msgstr "" +msgstr ":mod:`pty` --- Utilidades para Pseudo-terminal" #: ../Doc/library/pty.rst:11 msgid "**Source code:** :source:`Lib/pty.py`" -msgstr "" +msgstr "**Código Fuente:** :source:`Lib/pty.py`" #: ../Doc/library/pty.rst:15 msgid "" @@ -34,6 +36,9 @@ msgid "" "concept: starting another process and being able to write to and read from " "its controlling terminal programmatically." msgstr "" +"El módulo :mod:`pty` define las operaciones para manejar el concepto de " +"pseudo-terminal: iniciar otro proceso para poder escribir y leer desde su " +"propia terminal mediante programación." #: ../Doc/library/pty.rst:19 msgid "" @@ -41,10 +46,13 @@ msgid "" "to do it only for Linux. (The Linux code is supposed to work on other " "platforms, but hasn't been tested yet.)" msgstr "" +"Debido a que el manejo de una pseudo-terminal depende en gran medida de la " +"plataforma, este código es solo para Linux (se supone que el código de Linux " +"funciona para otras plataformas, pero este aún no se ha probado)" #: ../Doc/library/pty.rst:23 msgid "The :mod:`pty` module defines the following functions:" -msgstr "" +msgstr "El modulo :mod:`pty` define las siguientes funciones:" #: ../Doc/library/pty.rst:28 msgid "" @@ -54,6 +62,12 @@ msgid "" "a file descriptor connected to the child's controlling terminal (and also to " "the child's standard input and output)." msgstr "" +"Bifurcación. Conectar en su propia terminal (terminal hijo) una pseudo-" +"terminal. El valor de retorno es ``(pid, fd)``. Tener en cuenta que la " +"terminal hijo tiene como valor *pid* 0 y *fd* es *invalid*. El valor de " +"retorno del padre es el *pid* del hijo, y *fd* es un descriptor de archivo " +"conectado a la terminal hijo (también a la salida y entrada estándar de la " +"terminal hijo)" #: ../Doc/library/pty.rst:37 msgid "" @@ -61,6 +75,10 @@ msgid "" "emulation code for generic Unix systems. Return a pair of file descriptors " "``(master, slave)``, for the master and the slave end, respectively." msgstr "" +"Abre un nuevo par de pseudo-terminales, usando :func:`os.openpty`, o código " +"de emulación para sistemas genéricos de Unix. Retorna un par de descriptores " +"de archivo ``(master, slave)``, para el *master* y el *slave* " +"respectivamente." #: ../Doc/library/pty.rst:44 msgid "" @@ -70,6 +88,10 @@ msgid "" "spawned behind the pty will eventually terminate, and when it does *spawn* " "will return." msgstr "" +"Genera un proceso conectado a su terminal con el io estándar del proceso " +"actual. Esto se usa a frecuentemente para confundir programas que insisten " +"en leer desde la terminal de control. Se espera que el proceso generado " +"detrás de pty sea finalizado y cuando lo haga *spawn* se retornará." #: ../Doc/library/pty.rst:50 msgid "" @@ -78,6 +100,10 @@ msgid "" "order to force spawn to return before the child process exits an :exc:" "`OSError` should be thrown." msgstr "" +"Las funciones *master_read* y *stdin_read* se les envía como parámetro un " +"descriptor de archivo y siempre deben retornar una cadena de bytes. A fin de " +"que se obligue a *spawn* a retornar antes que el proceso hijo salga se debe " +"lanzar un :exc:`OSError`." #: ../Doc/library/pty.rst:55 msgid "" @@ -87,6 +113,11 @@ msgid "" "child process, and *stdin_read* is passed file descriptor 0, to read from " "the parent process's standard input." msgstr "" +"La implementación predeterminada para ambas funciones retornará hasta 1024 " +"bytes cada vez que se llamen. El dato retornado de *master_read* se pasa al " +"descriptor de archivo maestro para leer la salida del proceso hijo, y " +"*stdin_read* pasa el descriptor de archivo 0, para leer desde la entrada del " +"proceso padre." #: ../Doc/library/pty.rst:61 msgid "" @@ -97,6 +128,13 @@ msgid "" "quit without any input, *spawn* will then loop forever. If *master_read* " "signals EOF the same behavior results (on linux at least)." msgstr "" +"Retornando una cadena de bytes vacía de cualquier llamado es interpretado " +"como una condición de fin de archivo (EOF), y el llamado no se realizará " +"después de eso. Si *stdin_read* retorna EOF la terminal de control ya no " +"puede comunicarse con el proceso padre o el proceso hijo. A menos que el " +"proceso hijo se cierre sin ninguna entrada *spawn* se repetirá para siempre. " +"Si *master_read* retorna EOF se produce el mismo comportamiento (al menos en " +"Linux)" #: ../Doc/library/pty.rst:68 msgid "" @@ -105,22 +143,30 @@ msgid "" "This is a bug, documented in `issue 26228 `_." msgstr "" +"Si ambas retrollamadas retornan EOF entonces *spawn* probablemente nunca " +"retorne algo, a menos que *select* entregue un error en su plataforma cuando " +"pasan tres listas vacías. Esto es un error documentado en `issue 26228 " +"`_." #: ../Doc/library/pty.rst:73 msgid "" "Raises an :ref:`auditing event ` ``pty.spawn`` with argument " "``argv``." msgstr "" +"Lanza un :ref:`evento de auditoria ` ``pty.spawn`` con el " +"argumento ``argv``." #: ../Doc/library/pty.rst:74 msgid "" ":func:`spawn` now returns the 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." #: ../Doc/library/pty.rst:79 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/pty.rst:83 msgid "" @@ -128,3 +174,6 @@ msgid "" "a pseudo-terminal to record all input and output of a terminal session in a " "\"typescript\". ::" msgstr "" +"El siguiente programa actúa como el comando de Unix :manpage:`script(1)`, " +"usando una pseudo-terminal para registrar todas las entradas y salidas de " +"una sesión en \"typescript\". ::" diff --git a/library/pyexpat.po b/library/pyexpat.po index 923d7a0ad7..c75a0d207f 100644 --- a/library/pyexpat.po +++ b/library/pyexpat.po @@ -1,25 +1,28 @@ # 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: 2020-11-03 20:53-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.3.1\n" +"X-Poedit-Bookmarks: -1,2,-1,-1,-1,-1,-1,-1,-1,-1\n" #: ../Doc/library/pyexpat.rst:2 msgid ":mod:`xml.parsers.expat` --- Fast XML parsing using Expat" -msgstr "" +msgstr ":mod:`xml.parsers.expat` --- Análisis rápido XML usando Expat" #: ../Doc/library/pyexpat.rst:21 msgid "" @@ -27,6 +30,9 @@ msgid "" "data. If you need to parse untrusted or unauthenticated data see :ref:`xml-" "vulnerabilities`." msgstr "" +"El módulo :mod:`pyexpat` no es seguro contra datos construidos " +"maliciosamente. Si necesita analizar datos que no son de confianza o no " +"autenticados, consulte :ref:`xml-vulnerabilities`." #: ../Doc/library/pyexpat.rst:28 msgid "" @@ -38,38 +44,51 @@ msgid "" "parser, the handler functions are called for the character data and markup " "in the XML document." msgstr "" +"El módulo :mod:`xml.parsers.expat` es una interfaz de Python para el " +"analizador XML no validado de Expat. El módulo proporciona un único tipo de " +"extensión, :class:`xmlparser`, que representa el estado actual de un " +"analizador XML. Después de que se haya creado un objeto :class:`xmlparser`, " +"se pueden establecer varios atributos del objeto en funciones de " +"controlador. Cuando se envía un documento XML al analizador, se llaman a " +"las funciones del controlador para los datos de caracteres y el marcado en " +"el documento XML." #: ../Doc/library/pyexpat.rst:38 msgid "" "This module uses the :mod:`pyexpat` module to provide access to the Expat " "parser. Direct use of the :mod:`pyexpat` module is deprecated." msgstr "" +"Este módulo utiliza el módulo :mod:`pyexpat` para proporcionar acceso al " +"analizador Expat. El uso directo del módulo :mod:`pyexpat` está obsoleto." #: ../Doc/library/pyexpat.rst:41 msgid "This module provides one exception and one type object:" -msgstr "" +msgstr "Este módulo proporciona una excepción y un tipo de objeto:" #: ../Doc/library/pyexpat.rst:46 msgid "" "The exception raised when Expat reports an error. See section :ref:" "`expaterror-objects` for more information on interpreting Expat errors." msgstr "" +"La excepción que se lanza cuando Expat informa un error. Consulte la " +"sección :ref:`expaterror-objects` para obtener más información sobre cómo " +"interpretar los errores de Expat." #: ../Doc/library/pyexpat.rst:52 msgid "Alias for :exc:`ExpatError`." -msgstr "" +msgstr "Alias para :exc:`ExpatError`." #: ../Doc/library/pyexpat.rst:57 msgid "The type of the return values from the :func:`ParserCreate` function." -msgstr "" +msgstr "El tipo de los valores de retorno de la función :func:`ParserCreate`." #: ../Doc/library/pyexpat.rst:59 msgid "The :mod:`xml.parsers.expat` module contains two functions:" -msgstr "" +msgstr "El modulo :mod:`xml.parsers.expat` contiene dos funciones:" #: ../Doc/library/pyexpat.rst:64 msgid "Returns an explanatory string for a given error number *errno*." -msgstr "" +msgstr "Retorna una cadena explicativa para un número de error dado *errno*." #: ../Doc/library/pyexpat.rst:69 msgid "" @@ -80,6 +99,12 @@ msgid "" "(Latin1), and ASCII. If *encoding* [1]_ is given it will override the " "implicit or explicit encoding of the document." msgstr "" +"Crea y retorna un nuevo objeto :class:`xmlparser`. *encoding*, si se " +"especifica, debe ser una cadena que nombre la codificación utilizada por " +"los datos XML. Expat no admite tantas codificaciones como Python, y su " +"repertorio de codificaciones no se puede ampliar; es compatible con UTF-8, " +"UTF-16, ISO-8859-1 (Latin1) y ASCII. Si se proporciona *encoding* [1]_, " +"anulará la codificación implícita o explícita del documento." #: ../Doc/library/pyexpat.rst:76 msgid "" @@ -95,18 +120,35 @@ msgid "" "zero byte (``chr(0)``) then the namespace URI and the local part will be " "concatenated without any separator." msgstr "" +"Expat puede, opcionalmente, realizar el procesamiento del espacio de nombres " +"XML por usted, habilitado al proporcionar un valor para " +"*namespace_separator*. El valor debe ser una cadena de un carácter; a :exc:" +"`ValueError` se lanzará si la cadena tiene una longitud ilegal (``None`` se " +"considera lo mismo que una omisión). Cuando el procesamiento de espacios de " +"nombres está habilitado, se expandirán los nombres de tipos de elementos y " +"los nombres de atributos que pertenecen a un espacio de nombres. El nombre " +"del elemento pasado a los controladores de elementos :attr:" +"`StartElementHandler` y :attr:`EndElementHandler` será la concatenación del " +"URI del espacio de nombres, el carácter separador del espacio de nombres y " +"la parte local del nombre. Si el separador del espacio de nombres es un " +"byte cero (``chr(0)``), el URI del espacio de nombres y la parte local se " +"concatenarán sin ningún separador." #: ../Doc/library/pyexpat.rst:88 msgid "" "For example, if *namespace_separator* is set to a space character (``' '``) " "and the following document is parsed:" msgstr "" +"Por ejemplo, si *namespace_separator* se establece en un carácter de espacio " +"(``' '``) y se analiza el siguiente documento:" #: ../Doc/library/pyexpat.rst:100 msgid "" ":attr:`StartElementHandler` will receive the following strings for each " "element::" msgstr "" +":attr:`StartElementHandler` recibirá las siguientes cadenas para cada " +"elemento::" #: ../Doc/library/pyexpat.rst:107 msgid "" @@ -115,22 +157,26 @@ msgid "" "document. Call ``ParserCreate`` for each document to provide unique parser " "instances." msgstr "" +"Debido a las limitaciones en la biblioteca ``Expat`` utilizada por :mod:" +"`pyexpat`, la instancia :class:`xmlparser` retorna solo se puede usar para " +"analizar un solo documento XML. Llame a ``ParserCreate`` para cada " +"documento para proporcionar instancias de analizador únicas." #: ../Doc/library/pyexpat.rst:115 msgid "`The Expat XML Parser `_" -msgstr "" +msgstr "`El Expat XML Parser `_" #: ../Doc/library/pyexpat.rst:116 msgid "Home page of the Expat project." -msgstr "" +msgstr "Página de inicio del proyecto Expat." #: ../Doc/library/pyexpat.rst:122 msgid "XMLParser Objects" -msgstr "" +msgstr "Objetos XMLParser" #: ../Doc/library/pyexpat.rst:124 msgid ":class:`xmlparser` objects have the following methods:" -msgstr "" +msgstr "Los objetos :class:`xmlparser` tienen los siguientes métodos:" #: ../Doc/library/pyexpat.rst:129 msgid "" @@ -140,6 +186,11 @@ msgid "" "not the submission of multiple files. *data* can be the empty string at any " "time." msgstr "" +"Analiza el contenido de la cadena *data*, llamando a las funciones del " +"controlador apropiadas para procesar los datos analizados. *isfinal* debe " +"ser verdadero en la última llamada a este método; permite el análisis de un " +"solo archivo en fragmentos, no el envío de varios archivos. *data* puede ser " +"la cadena vacía en cualquier momento." #: ../Doc/library/pyexpat.rst:138 msgid "" @@ -147,6 +198,9 @@ msgid "" "the ``read(nbytes)`` method, returning the empty string when there's no more " "data." msgstr "" +"Analizar la lectura de datos XML del objeto *file*. *file* solo necesita " +"proporcionar el método ``read(nbytes)``, devolviendo la cadena vacía cuando " +"no hay más datos." #: ../Doc/library/pyexpat.rst:145 msgid "" @@ -156,12 +210,20 @@ msgid "" "`ExternalEntityRefHandler`, :func:`NotationDeclHandler`, and :func:" "`UnparsedEntityDeclHandler` functions." msgstr "" +"Establece la base que se utilizará para resolver URIs relativos en " +"identificadores de sistema en declaraciones. La resolución de los " +"identificadores relativos se deja en manos de la aplicación: este valor se " +"pasará como el argumento *base* a las funciones :func:" +"`ExternalEntityRefHandler`, :func:`NotationDeclHandler`, y :func:" +"`UnparsedEntityDeclHandler`." #: ../Doc/library/pyexpat.rst:154 msgid "" "Returns a string containing the base set by a previous call to :meth:" "`SetBase`, or ``None`` if :meth:`SetBase` hasn't been called." msgstr "" +"Retorna una cadena que contiene la base establecida por una llamada anterior " +"a :meth:`SetBase`, o ``None`` si no se ha llamado a :meth:`SetBase`." #: ../Doc/library/pyexpat.rst:160 msgid "" @@ -169,6 +231,10 @@ msgid "" "data is in the encoding of the entity which contains the text. When called " "while an event handler is not active, the return value is ``None``." msgstr "" +"Retorna los datos de entrada que generaron el evento actual como una cadena. " +"Los datos están en la codificación de la entidad que contiene el texto. " +"Cuando se llama mientras un controlador de eventos no está activo, el valor " +"de retorno es ``None``." #: ../Doc/library/pyexpat.rst:167 msgid "" @@ -179,6 +245,12 @@ msgid "" "parser is created with the :attr:`ordered_attributes` and :attr:" "`specified_attributes` set to the values of this parser." msgstr "" +"Cree un analizador \"child\" que se pueda utilizar para analizar una entidad " +"analizada externa a la que hace referencia el contenido analizado por el " +"analizador principal. El parámetro *context* debe ser la cadena pasada a la " +"función del controlador :meth:`ExternalEntityRefHandler`, que se describe a " +"continuación. El analizador secundario se crea con :attr:`order_attributes` " +"y :attr:`specific_attributes` establecidos en los valores de este analizador." #: ../Doc/library/pyexpat.rst:176 msgid "" @@ -188,6 +260,12 @@ msgid "" "`XML_PARAM_ENTITY_PARSING_ALWAYS`. Return true if setting the flag was " "successful." msgstr "" +"Controle el análisis de las entidades de parámetros (incluido el subconjunto " +"DTD externo). Los posibles valores de *flag* son :const:" +"`XML_PARAM_ENTITY_PARSING_NEVER`, :const:" +"`XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE` y :const:" +"`XML_PARAM_ENTITY_PARSING_ALWAYS`. Retorna verdadero si el establecimiento " +"de la bandera fue exitoso." #: ../Doc/library/pyexpat.rst:184 msgid "" @@ -198,12 +276,20 @@ msgid "" "will still be called, but the :attr:`StartDoctypeDeclHandler` and :attr:" "`EndDoctypeDeclHandler` will not be called." msgstr "" +"Llamar a esto con un valor verdadero para *flag* (el predeterminado) hará " +"que Expat llame a :attr:`ExternalEntityRefHandler` con :const:`None` para " +"todos los argumentos para permitir que se cargue una DTD alternativa. Si el " +"documento no contiene una declaración de tipo de documento, se seguirá " +"llamando a :attr:`ExternalEntityRefHandler`, pero no se llamará a :attr:" +"`StartDoctypeDeclHandler` y :attr:`EndDoctypeDeclHandler`." #: ../Doc/library/pyexpat.rst:191 msgid "" "Passing a false value for *flag* will cancel a previous call that passed a " "true value, but otherwise has no effect." msgstr "" +"Pasar un valor falso para *flag* cancelará una llamada anterior que pasó un " +"valor verdadero, pero por lo demás no tiene ningún efecto." #: ../Doc/library/pyexpat.rst:194 msgid "" @@ -212,10 +298,15 @@ msgid "" "causes :exc:`ExpatError` to be raised with the :attr:`code` attribute set to " "``errors.codes[errors.XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING]``." msgstr "" +"Este método sólo se puede llamar antes de que se llamen los métodos :meth:" +"`Parse` o :meth:`ParseFile`; llamarlo después de que cualquiera de ellos " +"haya sido llamado causa que :exc:`ExpatError` se lanza con el atributo :attr:" +"`code` establecido en ``errors.codes[errors." +"XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING]``." #: ../Doc/library/pyexpat.rst:199 msgid ":class:`xmlparser` objects have the following attributes:" -msgstr "" +msgstr ":class:`xmlparser` los objetos tienen los siguientes atributos:" #: ../Doc/library/pyexpat.rst:204 msgid "" @@ -223,6 +314,9 @@ msgid "" "size can be set by assigning a new integer value to this attribute. When the " "size is changed, the buffer will be flushed." msgstr "" +"El tamaño del búfer usado cuando :attr:`buffer_text` es verdadero. Se puede " +"establecer un nuevo tamaño de búfer asignando un nuevo valor entero a este " +"atributo. Cuando se cambia el tamaño, el búfer se vaciará." #: ../Doc/library/pyexpat.rst:212 msgid "" @@ -233,6 +327,12 @@ msgid "" "chunks at every line ending. This attribute is false by default, and may be " "changed at any time." msgstr "" +"Establecer esto en true hace que el objeto :class:`xmlparser` almacene el " +"contenido textual retornado por Expat para evitar múltiples llamadas a la " +"devolución de llamada :meth:`CharacterDataHandler` siempre que sea posible. " +"Esto puede mejorar sustancialmente el rendimiento ya que Expat normalmente " +"divide los datos de los caracteres en trozos al final de cada línea. Este " +"atributo es falso por defecto y se puede cambiar en cualquier momento." #: ../Doc/library/pyexpat.rst:222 msgid "" @@ -240,6 +340,9 @@ msgid "" "These bytes represent UTF-8 encoded text. This attribute has no meaningful " "interpretation when :attr:`buffer_text` is false." msgstr "" +"Si :attr:`buffer_text` está habilitado, el número de bytes almacenados en el " +"búfer. Estos bytes representan texto codificado en UTF-8. Este atributo no " +"tiene una interpretación significativa cuando :attr:`buffer_text` es falso." #: ../Doc/library/pyexpat.rst:229 msgid "" @@ -250,6 +353,13 @@ msgid "" "versions of this module also used this format.) By default, this attribute " "is false; it may be changed at any time." msgstr "" +"Establecer este atributo en un número entero distinto de cero hace que los " +"atributos se informen como una lista en lugar de un diccionario. Los " +"atributos se presentan en el orden que se encuentran en el texto del " +"documento. Para cada atributo, se presentan dos entradas de lista: el " +"nombre del atributo y el valor del atributo. (Las versiones anteriores de " +"este módulo también usaban este formato). De forma predeterminada, este " +"atributo es falso; se puede cambiar en cualquier momento." #: ../Doc/library/pyexpat.rst:239 msgid "" @@ -261,6 +371,14 @@ msgid "" "processors. By default, this attribute is false; it may be changed at any " "time." msgstr "" +"Si se establece en un número entero distinto de cero, el analizador " +"informará solo los atributos que se especificaron en la instancia del " +"documento y no los que se derivaron de declaraciones de atributos. Las " +"aplicaciones que establecen esto deben tener especial cuidado al utilizar la " +"información adicional disponible en las declaraciones según sea necesario " +"para cumplir con los estándares para el comportamiento de los procesadores " +"XML. De forma predeterminada, este atributo es falso; se puede cambiar en " +"cualquier momento." #: ../Doc/library/pyexpat.rst:247 msgid "" @@ -269,10 +387,14 @@ msgid "" "values once a call to :meth:`Parse` or :meth:`ParseFile` has raised an :exc:" "`xml.parsers.expat.ExpatError` exception." msgstr "" +"Los siguientes atributos contienen valores relacionados con el error más " +"reciente encontrado por un objeto :class:`xmlparser`, y solo tendrán los " +"valores correctos una vez que una llamada a :meth:`Parse` o :meth:" +"`ParseFile` haya lanzado una excepción :exc:`xml.parsers.expat.ExpatError`." #: ../Doc/library/pyexpat.rst:255 msgid "Byte index at which an error occurred." -msgstr "" +msgstr "Índice de bytes en el que se produjo un error." #: ../Doc/library/pyexpat.rst:260 msgid "" @@ -280,14 +402,17 @@ msgid "" "`ErrorString` function, or compared to one of the constants defined in the " "``errors`` object." msgstr "" +"Código numérico que especifica el problema. Este valor puede pasarse a la " +"función :func:`ErrorString`, o compararse con una de las constantes " +"definidas en el objeto ``errors``." #: ../Doc/library/pyexpat.rst:267 msgid "Column number at which an error occurred." -msgstr "" +msgstr "Número de columna en la que se produjo un error." #: ../Doc/library/pyexpat.rst:272 msgid "Line number at which an error occurred." -msgstr "" +msgstr "Número de línea en la que ocurrió un error." #: ../Doc/library/pyexpat.rst:274 msgid "" @@ -298,18 +423,25 @@ msgid "" "position indicated will be just past the last parse event (regardless of " "whether there was an associated callback)." msgstr "" +"Los siguientes atributos contienen valores relacionados con la ubicación " +"actual del análisis en un objeto :class:`xmlparser`. Durante una devolución " +"de llamada que informa un evento de análisis, indican la ubicación del " +"primero de la secuencia de caracteres que generó el evento. Cuando se llama " +"fuera de una devolución de llamada, la posición indicada estará justo " +"después del último evento de análisis (independientemente de si hubo una " +"devolución de llamada asociada)." #: ../Doc/library/pyexpat.rst:284 msgid "Current byte index in the parser input." -msgstr "" +msgstr "Índice de bytes actual en la entrada del analizador." #: ../Doc/library/pyexpat.rst:289 msgid "Current column number in the parser input." -msgstr "" +msgstr "Número de columna actual en la entrada del analizador." #: ../Doc/library/pyexpat.rst:294 msgid "Current line number in the parser input." -msgstr "" +msgstr "Número de línea actual en la entrada del analizador." #: ../Doc/library/pyexpat.rst:296 msgid "" @@ -319,6 +451,12 @@ msgid "" "accepting the correct number of arguments. The arguments are all strings, " "unless otherwise stated." msgstr "" +"Aquí está la lista de controladores que se pueden configurar. Para " +"configurar un controlador en un objeto :class:`xmlparser` *o*, use ``o." +"handlername = func``. *handlername* debe tomarse de la siguiente lista, y " +"*func* debe ser un objeto invocable que acepte el número correcto de " +"argumentos. Los argumentos son todos cadenas, a menos que se indique lo " +"contrario." #: ../Doc/library/pyexpat.rst:305 msgid "" @@ -330,6 +468,13 @@ msgid "" "to be standalone, or ``-1`` if the standalone clause was omitted. This is " "only available with Expat version 1.95.0 or newer." msgstr "" +"Se llama cuando se analiza la declaración XML. La declaración XML es la " +"declaración (opcional) de la versión aplicable de la recomendación XML, la " +"codificación del texto del documento y una declaración \"independiente\" " +"opcional. *version* y *encoding* serán cadenas, y *standalone* será ``1`` si " +"el documento se declara independiente, ``0`` si se declara no independiente " +"o ``-1`` si se omitió la cláusula independiente. Esto solo está disponible " +"con la versión Expat 1.95.0 o más reciente." #: ../Doc/library/pyexpat.rst:316 msgid "" @@ -340,18 +485,30 @@ msgid "" "the document contains and internal document declaration subset. This " "requires Expat version 1.2 or newer." msgstr "" +"Se llama cuando Expat comienza a analizar la declaración del tipo de " +"documento (``'``." msgstr "" +"Llamado para comentarios. *data* es el texto del comentario, excluyendo el " +"``''``." #: ../Doc/library/pyexpat.rst:430 msgid "" @@ -449,10 +656,13 @@ msgid "" "`EndCdataSectionHandler` are needed to be able to identify the syntactical " "start and end for CDATA sections." msgstr "" +"Llamado al comienzo de una sección CDATA. Esto y :attr:" +"`EndCdataSectionHandler` son necesarios para poder identificar el inicio " +"sintáctico y el final de las secciones CDATA." #: ../Doc/library/pyexpat.rst:437 msgid "Called at the end of a CDATA section." -msgstr "" +msgstr "Llamado al final de una sección CDATA." #: ../Doc/library/pyexpat.rst:442 msgid "" @@ -461,6 +671,10 @@ msgid "" "construct which could be reported, but for which no handler has been " "supplied." msgstr "" +"Se invoca por cualquier carácter del documento XML para el que no se ha " +"especificado ningún controlador aplicable. Esto significa caracteres que " +"forman parte de una construcción que se podría informar, pero para los que " +"no se ha proporcionado ningún controlador." #: ../Doc/library/pyexpat.rst:449 msgid "" @@ -468,6 +682,9 @@ msgid "" "expansion of internal entities. The entity reference will not be passed to " "the default handler." msgstr "" +"Es lo mismo que :func:`DefaultHandler`, pero no inhibe la expansión de " +"entidades internas. La referencia de la entidad no se pasará al controlador " +"predeterminado." #: ../Doc/library/pyexpat.rst:456 msgid "" @@ -478,6 +695,13 @@ msgid "" "raise an :const:`XML_ERROR_NOT_STANDALONE` error. If this handler is not " "set, no exception is raised by the parser for this condition." msgstr "" +"Se llama si el documento XML no se ha declarado como un documento " +"independiente. Esto sucede cuando hay un subconjunto externo o una " +"referencia a una entidad de parámetro, pero la declaración XML no establece " +"independiente en ``yes`` en una declaración XML. Si este controlador " +"retorna ``0``, el analizador lanzará un error :const:" +"`XML_ERROR_NOT_STANDALONE`. Si este controlador no está configurado, el " +"analizador no lanza ninguna excepción para esta condición." #: ../Doc/library/pyexpat.rst:466 msgid "" @@ -487,6 +711,12 @@ msgid "" "identifier is not given, *publicId* will be ``None``. The *context* value " "is opaque and should only be used as described below." msgstr "" +"Llamado para referencias a entidades externas. *base* es la base actual, " +"según lo establecido por una llamada anterior a :meth:`SetBase`. Los " +"identificadores público y del sistema, *systemId* y *publicId*, son cadenas " +"si se dan; si no se proporciona el identificador público, *publicId* será " +"``None``. El valor *context* es opaco y solo debe usarse como se describe a " +"continuación." #: ../Doc/library/pyexpat.rst:472 msgid "" @@ -497,20 +727,30 @@ msgid "" "an integer; if it returns ``0``, the parser will raise an :const:" "`XML_ERROR_EXTERNAL_ENTITY_HANDLING` error, otherwise parsing will continue." msgstr "" +"Para que se analicen las entidades externas, se debe implementar este " +"controlador. Es responsable de crear el sub-analizador usando " +"``ExternalEntityParserCreate(context)``, inicializándolo con las " +"devoluciones de llamada apropiadas y analizando la entidad. Este " +"controlador debería devolver un número entero; si retorna ``0``, el " +"analizador lanzará un error :const:`XML_ERROR_EXTERNAL_ENTITY_HANDLING`; de " +"lo contrario, el análisis continuará." #: ../Doc/library/pyexpat.rst:480 msgid "" "If this handler is not provided, external entities are reported by the :attr:" "`DefaultHandler` callback, if provided." msgstr "" +"Si no se proporciona este controlador, las entidades externas se informan " +"mediante la devolución de llamada :attr:`DefaultHandler`, si se proporciona." #: ../Doc/library/pyexpat.rst:487 msgid "ExpatError Exceptions" -msgstr "" +msgstr "Excepciones de ExpatError" #: ../Doc/library/pyexpat.rst:492 msgid ":exc:`ExpatError` exceptions have a number of interesting attributes:" msgstr "" +"Las excepciones :exc:`ExpatError` tienen una serie de atributos interesantes:" #: ../Doc/library/pyexpat.rst:497 msgid "" @@ -518,6 +758,10 @@ msgid "" "messages ` dictionary maps these error " "numbers to Expat's error messages. For example::" msgstr "" +"Número de error interno del expatriado para el error específico. El " +"diccionario :data:`errors.messages ` " +"asigna estos números de error a los mensajes de error de Expat. Por " +"ejemplo::" #: ../Doc/library/pyexpat.rst:509 msgid "" @@ -525,36 +769,45 @@ msgid "" "constants and a dictionary :data:`~xml.parsers.expat.errors.codes` mapping " "these messages back to the error codes, see below." msgstr "" +"El módulo :mod:`~xml.parsers.expat.errors` también proporciona constantes de " +"mensajes de error y un diccionario :data:`~xml.parsers.expat.errors.codes` " +"mapeando estos mensajes a los códigos de error, ver más abajo." #: ../Doc/library/pyexpat.rst:516 msgid "" "Line number on which the error was detected. The first line is numbered " "``1``." msgstr "" +"Número de línea en la que se detectó el error. La primera línea está " +"numerada como ``1``." #: ../Doc/library/pyexpat.rst:521 msgid "" "Character offset into the line where the error occurred. The first column " "is numbered ``0``." msgstr "" +"Carácter desplazado en la línea donde ocurrió el error. La primera columna " +"está numerada como ``0``." #: ../Doc/library/pyexpat.rst:528 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/pyexpat.rst:530 msgid "" "The following program defines three handlers that just print out their " "arguments. ::" msgstr "" +"El siguiente programa define tres controladores que simplemente imprimen sus " +"argumentos. ::" #: ../Doc/library/pyexpat.rst:554 msgid "The output from this program is::" -msgstr "" +msgstr "La salida de este programa es::" #: ../Doc/library/pyexpat.rst:571 msgid "Content Model Descriptions" -msgstr "" +msgstr "Descripciones del modelo de contenido" #: ../Doc/library/pyexpat.rst:577 msgid "" @@ -562,6 +815,10 @@ msgid "" "values: the type, the quantifier, the name, and a tuple of children. " "Children are simply additional content model descriptions." msgstr "" +"Los modelos de contenido se describen mediante tuplas anidadas. Cada tupla " +"contiene cuatro valores: el tipo, el cuantificador, el nombre y una tupla de " +"niños. Los niños son simplemente descripciones adicionales del modelo de " +"contenido." #: ../Doc/library/pyexpat.rst:581 msgid "" @@ -569,26 +826,33 @@ msgid "" "parsers.expat.model` module. These constants can be collected in two " "groups: the model type group and the quantifier group." msgstr "" +"Los valores de los dos primeros campos son constantes definidas en el " +"módulo :mod:`xml.parsers.expat.model`. Estas constantes se pueden recopilar " +"en dos grupos: el grupo de tipo de modelo y el grupo de cuantificador." #: ../Doc/library/pyexpat.rst:585 msgid "The constants in the model type group are:" -msgstr "" +msgstr "Las constantes en el grupo de tipos de modelo son:" #: ../Doc/library/pyexpat.rst:591 msgid "" "The element named by the model name was declared to have a content model of " "``ANY``." msgstr "" +"Se declaró que el elemento nombrado por el nombre del modelo tiene un modelo " +"de contenido de ``ANY``." #: ../Doc/library/pyexpat.rst:598 msgid "" "The named element allows a choice from a number of options; this is used for " "content models such as ``(A | B | C)``." msgstr "" +"El elemento nombrado permite elegir entre varias opciones; se utiliza para " +"modelos de contenido como ``(A | B | C)``." #: ../Doc/library/pyexpat.rst:605 msgid "Elements which are declared to be ``EMPTY`` have this model type." -msgstr "" +msgstr "Los elementos que se declaran ``EMPTY`` tienen este tipo de modelo." #: ../Doc/library/pyexpat.rst:619 msgid "" @@ -596,30 +860,36 @@ msgid "" "are indicated with this model type. This is used for models such as ``(A, " "B, C)``." msgstr "" +"Los modelos que representan una serie de modelos que siguen uno tras otro se " +"indican con este tipo de modelo. Se utiliza para modelos como ``(A, B, C)``." #: ../Doc/library/pyexpat.rst:622 msgid "The constants in the quantifier group are:" -msgstr "" +msgstr "Las constantes en el grupo cuantificador son:" #: ../Doc/library/pyexpat.rst:628 msgid "No modifier is given, so it can appear exactly once, as for ``A``." msgstr "" +"No se proporciona ningún modificador, por lo que puede aparecer exactamente " +"una vez, como para ``A``." #: ../Doc/library/pyexpat.rst:634 msgid "The model is optional: it can appear once or not at all, as for ``A?``." msgstr "" +"El modelo es opcional: puede aparecer una vez o no aparecer, como para ``A?" +"``." #: ../Doc/library/pyexpat.rst:640 msgid "The model must occur one or more times (like ``A+``)." -msgstr "" +msgstr "El modelo debe aparecer una o más veces (como ``A+``)." #: ../Doc/library/pyexpat.rst:646 msgid "The model must occur zero or more times, as for ``A*``." -msgstr "" +msgstr "El modelo debe aparecer cero o más veces, como en ``A*``." #: ../Doc/library/pyexpat.rst:652 msgid "Expat error constants" -msgstr "" +msgstr "Constantes de error de expansión" #: ../Doc/library/pyexpat.rst:656 msgid "" @@ -631,106 +901,137 @@ msgid "" "comparing its :attr:`code` attribute with :samp:`errors.codes[errors." "XML_ERROR_{CONSTANT_NAME}]`." msgstr "" +"Las siguientes constantes se proporcionan en el módulo :mod:`xml.parsers." +"expat.errors`. Estas constantes son útiles para interpretar algunos de los " +"atributos de los objetos de excepción :exc:`ExpatError` que se lanzaran " +"cuando se produce un error. Dado que, por razones de compatibilidad con " +"versiones anteriores, el valor de las constantes es el *message* de error y " +"no el *code* de error numérico, puede hacer esto comparando su atributo :" +"attr:`code` con :samp:`errors.codes[errors.XML_ERROR_{CONSTANT_NAME}]`." #: ../Doc/library/pyexpat.rst:664 msgid "The ``errors`` module has the following attributes:" -msgstr "" +msgstr "El módulo ``errors`` tiene los siguientes atributos:" #: ../Doc/library/pyexpat.rst:668 msgid "A dictionary mapping numeric error codes to their string descriptions." msgstr "" +"Un diccionario que asigna códigos de error numéricos a sus descripciones de " +"cadenas." #: ../Doc/library/pyexpat.rst:675 msgid "A dictionary mapping string descriptions to their error codes." msgstr "" +"Un diccionario que asigna descripciones de cadenas a sus códigos de error." #: ../Doc/library/pyexpat.rst:685 msgid "" "An entity reference in an attribute value referred to an external entity " "instead of an internal entity." msgstr "" +"Una referencia de entidad en un valor de atributo se refiere a una entidad " +"externa en lugar de una entidad interna." #: ../Doc/library/pyexpat.rst:691 msgid "" "A character reference referred to a character which is illegal in XML (for " "example, character ``0``, or '``�``')." msgstr "" +"Una referencia de carácter se refiere a un carácter que es ilegal en XML " +"(por ejemplo, carácter ``0``, o '``�``')." #: ../Doc/library/pyexpat.rst:697 msgid "" "An entity reference referred to an entity which was declared with a " "notation, so cannot be parsed." msgstr "" +"Una referencia de entidad se refería a una entidad que se declaró con una " +"notación, por lo que no se puede analizar." #: ../Doc/library/pyexpat.rst:703 msgid "An attribute was used more than once in a start tag." -msgstr "" +msgstr "Un atributo se utilizó más de una vez en una etiqueta de inicio." #: ../Doc/library/pyexpat.rst:711 msgid "" "Raised when an input byte could not properly be assigned to a character; for " "example, a NUL byte (value ``0``) in a UTF-8 input stream." msgstr "" +"Se lanza cuando un byte de entrada no se puede asignar correctamente a un " +"carácter; por ejemplo, un byte NUL (valor ``0``) en un flujo de entrada " +"UTF-8." #: ../Doc/library/pyexpat.rst:717 msgid "Something other than whitespace occurred after the document element." msgstr "" +"Se produjo algo diferente a los espacios en blanco después del elemento del " +"documento." #: ../Doc/library/pyexpat.rst:722 msgid "" "An XML declaration was found somewhere other than the start of the input " "data." msgstr "" +"Se encontró una declaración XML en algún lugar que no sea el comienzo de los " +"datos de entrada." #: ../Doc/library/pyexpat.rst:727 msgid "" "The document contains no elements (XML requires all documents to contain " "exactly one top-level element).." msgstr "" +"El documento no contiene elementos (XML requiere que todos los documentos " +"contengan exactamente un elemento de nivel superior).." #: ../Doc/library/pyexpat.rst:733 msgid "Expat was not able to allocate memory internally." -msgstr "" +msgstr "Expat no pudo asignar memoria internamente." #: ../Doc/library/pyexpat.rst:738 msgid "A parameter entity reference was found where it was not allowed." msgstr "" +"Se encontró una referencia de entidad de parámetro donde no estaba permitida." #: ../Doc/library/pyexpat.rst:743 msgid "An incomplete character was found in the input." -msgstr "" +msgstr "Se encontró un carácter incompleto en la entrada." #: ../Doc/library/pyexpat.rst:748 msgid "" "An entity reference contained another reference to the same entity; possibly " "via a different name, and possibly indirectly." msgstr "" +"Una referencia de entidad contenía otra referencia a la misma entidad; " +"posiblemente a través de un nombre diferente, y posiblemente indirectamente." #: ../Doc/library/pyexpat.rst:754 msgid "Some unspecified syntax error was encountered." -msgstr "" +msgstr "Se encontró algún error de sintaxis no especificado." #: ../Doc/library/pyexpat.rst:759 msgid "An end tag did not match the innermost open start tag." msgstr "" +"Una etiqueta final no coincidía con la etiqueta inicial abierta más interna." #: ../Doc/library/pyexpat.rst:764 msgid "" "Some token (such as a start tag) was not closed before the end of the stream " "or the next token was encountered." msgstr "" +"Algún token (como una etiqueta de inicio) no se cerró antes del final de la " +"transmisión o se encontró el siguiente token." #: ../Doc/library/pyexpat.rst:770 msgid "A reference was made to an entity which was not defined." -msgstr "" +msgstr "Se hizo referencia a una entidad que no estaba definida." #: ../Doc/library/pyexpat.rst:775 msgid "The document encoding is not supported by Expat." -msgstr "" +msgstr "La codificación del documento no es compatible con Expat." #: ../Doc/library/pyexpat.rst:780 msgid "A CDATA marked section was not closed." -msgstr "" +msgstr "No se cerró una sección marcada con CDATA." #: ../Doc/library/pyexpat.rst:788 msgid "" @@ -738,6 +1039,9 @@ msgid "" "declared itself to be in the XML declaration, and the :attr:" "`NotStandaloneHandler` was set and returned ``0``." msgstr "" +"El analizador determinó que el documento no era \"independiente\" aunque se " +"declaró en la declaración XML, y el :attr:`NotStandaloneHandler` se " +"estableció y devolvió ``0``." #: ../Doc/library/pyexpat.rst:801 msgid "" @@ -745,6 +1049,9 @@ msgid "" "Expat was configured without DTD support. This should never be reported by " "a standard build of the :mod:`xml.parsers.expat` module." msgstr "" +"Se solicitó una operación que requiere que se compile el soporte DTD, pero " +"Expat se configuró sin soporte DTD. Esto nunca debería ser informado por " +"una compilación estándar del módulo :mod:`xml.parsers.expat`." #: ../Doc/library/pyexpat.rst:808 msgid "" @@ -752,48 +1059,64 @@ msgid "" "changed before parsing has started. This is (currently) only raised by :" "meth:`UseForeignDTD`." msgstr "" +"Se solicitó un cambio de comportamiento después de que comenzó el análisis " +"que solo se puede cambiar antes de que haya comenzado el análisis. Esto " +"(actualmente) solo lanzado por :meth:`UseForeignDTD`." #: ../Doc/library/pyexpat.rst:815 msgid "An undeclared prefix was found when namespace processing was enabled." msgstr "" +"Se encontró un prefijo no declarado cuando se habilitó el procesamiento del " +"espacio de nombres." #: ../Doc/library/pyexpat.rst:820 msgid "" "The document attempted to remove the namespace declaration associated with a " "prefix." msgstr "" +"El documento intentó eliminar la declaración de espacio de nombres asociada " +"con un prefijo." #: ../Doc/library/pyexpat.rst:826 msgid "A parameter entity contained incomplete markup." -msgstr "" +msgstr "El documento no contenía ningún elemento de documento." #: ../Doc/library/pyexpat.rst:831 msgid "The document contained no document element at all." -msgstr "" +msgstr "El documento no contenía ningún elemento de documento." #: ../Doc/library/pyexpat.rst:836 msgid "There was an error parsing a text declaration in an external entity." msgstr "" +"Se produjo un error al analizar una declaración de texto en una entidad " +"externa." #: ../Doc/library/pyexpat.rst:841 msgid "Characters were found in the public id that are not allowed." msgstr "" +"Se encontraron caracteres en la identificación pública que no están " +"permitidos." #: ../Doc/library/pyexpat.rst:846 msgid "" "The requested operation was made on a suspended parser, but isn't allowed. " "This includes attempts to provide additional input or to stop the parser." msgstr "" +"La operación solicitada se realizó en un analizador suspendido, pero no está " +"permitida. Esto incluye intentos de proporcionar información adicional o " +"detener el analizador." #: ../Doc/library/pyexpat.rst:852 msgid "" "An attempt to resume the parser was made when the parser had not been " "suspended." msgstr "" +"Se realizó un intento de reanudar el analizador cuando no se había " +"suspendido." #: ../Doc/library/pyexpat.rst:857 msgid "This should not be reported to Python applications." -msgstr "" +msgstr "Esto no se debe informar a las aplicaciones Python." #: ../Doc/library/pyexpat.rst:862 msgid "" @@ -801,10 +1124,13 @@ msgid "" "input, but isn't allowed. This includes attempts to provide additional " "input or to stop the parser." msgstr "" +"La operación solicitada se realizó en un analizador que terminó de analizar " +"la entrada, pero no está permitido. Esto incluye intentos de proporcionar " +"información adicional o detener el analizador." #: ../Doc/library/pyexpat.rst:871 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/library/pyexpat.rst:872 msgid "" @@ -813,3 +1139,7 @@ msgid "" "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 codificación incluida en la salida XML debe cumplir con los " +"estándares apropiados. 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/python.po b/library/python.po index 2798dd405c..b9df4716db 100644 --- a/library/python.po +++ b/library/python.po @@ -1,25 +1,27 @@ # 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: 2020-11-21 18:23+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: \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/python.rst:5 msgid "Python Runtime Services" -msgstr "" +msgstr "Servicios en tiempo de ejecución de Python" #: ../Doc/library/python.rst:7 msgid "" @@ -27,3 +29,6 @@ msgid "" "related to the Python interpreter and its interaction with its environment. " "Here's an overview:" msgstr "" +"Los módulos descritos en este capítulo proporcionan una amplia gama de " +"servicios relacionados con el intérprete de Python y su interacción con su " +"entorno. Esta es una descripción general:" diff --git a/library/quopri.po b/library/quopri.po index a9a5ce3305..db773c0530 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -1,29 +1,33 @@ # 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: 2020-11-11 09:18+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: Juan Biondi \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/quopri.rst:2 msgid ":mod:`quopri` --- Encode and decode MIME quoted-printable data" msgstr "" +":mod:`quopri` --- Codificar y decodificar datos MIME imprimibles entre " +"comillas" #: ../Doc/library/quopri.rst:7 msgid "**Source code:** :source:`Lib/quopri.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/quopri.py`" #: ../Doc/library/quopri.rst:15 msgid "" @@ -35,6 +39,14 @@ msgid "" "via the :mod:`base64` module is more compact if there are many such " "characters, as when sending a graphics file." msgstr "" +"Este módulo realiza la codificación y descodificación de transporte " +"imprimible entre comillas, tal como se define en :rfc:`1521`: \"MIME " +"(Multipurpose Internet Mail Extensions) Parte Uno: Mecanismos para " +"especificar y describir el formato de los cuerpos de mensajes de Internet\". " +"La codificación imprimible entre comillas está diseñada para datos donde hay " +"relativamente pocos caracteres no imprimibles; el esquema de codificación " +"base64 disponible a través del módulo :mod:`base64` es más compacto si hay " +"muchos caracteres de este tipo, como cuando se envía un archivo gráfico." #: ../Doc/library/quopri.rst:25 msgid "" @@ -45,6 +57,14 @@ msgid "" "encoded headers as described in :rfc:`1522`: \"MIME (Multipurpose Internet " "Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text\"." msgstr "" +"Descodificar el contenido del archivo *input* y escribir los datos binarios " +"descodificados resultantes en el archivo *output*. *input* y *output* deben " +"ser :term:`objetos de archivo binario `. Si el argumento " +"opcional *header* está presente y true, el carácter de subrayado se " +"descodificará como espacio. Esto se utiliza para decodificar encabezados " +"codificados en \"Q\" como se describe en :rfc:`1522`: \"MIME (Multipurpose " +"Internet Mail Extensions) Parte dos: Extensiones de encabezado de mensaje " +"para texto no ASCII\"." #: ../Doc/library/quopri.rst:35 msgid "" @@ -57,12 +77,23 @@ msgid "" "rfc:`1521`. *header* is a flag which controls if spaces are encoded as " "underscores as per :rfc:`1522`." msgstr "" +"Codifique el contenido del archivo *input* y escriba los datos imprimibles " +"entre comillas resultantes en el archivo *output*. *input* y *output* deben " +"ser :term:`objetos de archivo binario `. *quotetabs*, un " +"indicador no opcional que controla si codificar espacios incrustados y " +"pestañas; cuando true codifica dicho espacio en blanco incrustado, y cuando " +"false los deja sin codificar. Tenga en cuenta que los espacios y pestañas " +"que aparecen al final de las líneas siempre están codificados, según :rfc:" +"`1521`. *header* es un indicador que controla si los espacios están " +"codificados como guiones bajos según :rfc:`1522`." #: ../Doc/library/quopri.rst:48 msgid "" "Like :func:`decode`, except that it accepts a source :class:`bytes` and " "returns the corresponding decoded :class:`bytes`." msgstr "" +"Como :func:`decode`, excepto que acepta una fuente :class:`bytes` y retorna " +"el correspondiente :class:`bytes` decodificado." #: ../Doc/library/quopri.rst:54 msgid "" @@ -70,11 +101,14 @@ msgid "" "returns the corresponding encoded :class:`bytes`. By default, it sends a " "``False`` value to *quotetabs* parameter of the :func:`encode` function." msgstr "" +"Como :func:`encode`, excepto que acepta un origen :class:`bytes` y retorna " +"el codificado correspondiente :class:`bytes`. De forma predeterminada, envía " +"un valor ``False`` al parámetro *quotetabs* de la función :func:`encode`." #: ../Doc/library/quopri.rst:62 msgid "Module :mod:`base64`" -msgstr "" +msgstr "Módulo :mod:`base64`" #: ../Doc/library/quopri.rst:63 msgid "Encode and decode MIME base64 data" -msgstr "" +msgstr "Codificar y decodificar datos MIME base64" diff --git a/library/reprlib.po b/library/reprlib.po index 02dcf8abbc..70b6565410 100644 --- a/library/reprlib.po +++ b/library/reprlib.po @@ -1,6 +1,6 @@ # 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 # @@ -19,11 +19,11 @@ msgstr "" #: ../Doc/library/reprlib.rst:2 msgid ":mod:`reprlib` --- Alternate :func:`repr` implementation" -msgstr "" +msgstr ":mod:`reprlib` --- Implementación :func:`repr` alternativa" #: ../Doc/library/reprlib.rst:9 msgid "**Source code:** :source:`Lib/reprlib.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/reprlib.py`" #: ../Doc/library/reprlib.rst:13 msgid "" @@ -31,10 +31,14 @@ msgid "" "representations with limits on the size of the resulting strings. This is " "used in the Python debugger and may be useful in other contexts as well." msgstr "" +"El módulo :mod:`reprlib` provee de los medios necesarios para producir " +"representaciones de objetos con límites en el tamaño de las cadenas " +"resultantes. Es usado en el depurador de Python y puede ser útil también en " +"otros contextos." #: ../Doc/library/reprlib.rst:17 msgid "This module provides a class, an instance, and a function:" -msgstr "" +msgstr "Este módulo provee una clase, una instancia y una función:" #: ../Doc/library/reprlib.rst:22 msgid "" @@ -43,6 +47,10 @@ msgid "" "types are added to avoid the generation of representations which are " "excessively long." msgstr "" +"Clase que provee de servicios de formateo útiles en la implementación de " +"funciones similar a la integrada :func:`repr`; los límites de tamaño para " +"diferentes tipos de objetos son añadidos para evitar la generación de " +"representaciones que son excesivamente largas." #: ../Doc/library/reprlib.rst:29 msgid "" @@ -50,6 +58,9 @@ msgid "" "repr` function described below. Changing the attributes of this object will " "affect the size limits used by :func:`.repr` and the Python debugger." msgstr "" +"Esta es una instancia de :class:`Repr` que es usada para proveer la función :" +"func:`.repr` descrita debajo. Cambiar los atributos de este objeto afectará " +"los límites de tamaño usados por :func:`.repr` y el depurador de Python." #: ../Doc/library/reprlib.rst:37 msgid "" @@ -57,6 +68,9 @@ msgid "" "similar to that returned by the built-in function of the same name, but with " "limits on most sizes." msgstr "" +"Este es el método :meth:`~Repr.repr` de ``aRepr``. Retorna una cadena " +"similar a la retornada por la función integrada del mismo nombre, pero con " +"límites en la mayoría de tamaños." #: ../Doc/library/reprlib.rst:41 msgid "" @@ -64,6 +78,9 @@ msgid "" "detecting recursive calls to :meth:`__repr__` and substituting a placeholder " "string instead." msgstr "" +"Además de las herramientas de limitación de tamaño, el módulo también provee " +"un decorador para detectar invocaciones recursivas a :meth:`__repr__` y " +"sustituyendo por un marcador de posición de cadena en su lugar." #: ../Doc/library/reprlib.rst:50 msgid "" @@ -71,10 +88,14 @@ msgid "" "same thread. If a recursive call is made, the *fillvalue* is returned, " "otherwise, the usual :meth:`__repr__` call is made. For example:" msgstr "" +"Decorador para métodos :meth:`__repr__` que detecta invocaciones recursivas " +"dentro del mismo hilo. Si se produce una invocación recursiva, el " +"*fillvalue* es retornado, si no, se produce la invocación :meth:`__repr__` " +"habitual. Por ejemplo:" #: ../Doc/library/reprlib.rst:72 msgid "Repr Objects" -msgstr "" +msgstr "Objetos Repr" #: ../Doc/library/reprlib.rst:74 msgid "" @@ -82,12 +103,17 @@ msgid "" "provide size limits for the representations of different object types, and " "methods which format specific object types." msgstr "" +"Las instancias :class:`Repr` proveen varios atributos que pueden ser usados " +"para proporcionar límites de tamaño para las representaciones de diferentes " +"tipos de objetos, y métodos que formatean tipos de objetos específicos." #: ../Doc/library/reprlib.rst:81 msgid "" "Depth limit on the creation of recursive representations. The default is " "``6``." msgstr "" +"Límite de profundidad en la creación de representaciones recursivas. El " +"valor por defecto es ``6``." #: ../Doc/library/reprlib.rst:92 msgid "" @@ -95,12 +121,17 @@ msgid "" "default is ``4`` for :attr:`maxdict`, ``5`` for :attr:`maxarray`, and ``6`` " "for the others." msgstr "" +"Límites en el número de entradas representadas por el tipo de objeto " +"nombrado. El valor por defecto es ``4`` para :attr:`maxdict`, ``5`` para :" +"attr:`maxarray`, y ``6`` para los otros." #: ../Doc/library/reprlib.rst:99 msgid "" "Maximum number of characters in the representation for an integer. Digits " "are dropped from the middle. The default is ``40``." msgstr "" +"Máximo número de caracteres en la representación para un entero. Los dígitos " +"son eliminados desde el medio. El valor por defecto es ``40``." #: ../Doc/library/reprlib.rst:105 msgid "" @@ -109,6 +140,11 @@ msgid "" "source: if escape sequences are needed in the representation, these may be " "mangled when the representation is shortened. The default is ``30``." msgstr "" +"Límite en el número de caracteres en la representación de la cadena. Fíjese " +"que la representación \"normal\" de la cadena es la usada como la fuente de " +"caracteres: si se necesitan secuencias de escape en la representación, estas " +"pueden ser desordenadas cuando la representación se ha acortado. El valor " +"por defecto es ``30``." #: ../Doc/library/reprlib.rst:113 msgid "" @@ -116,12 +152,18 @@ msgid "" "formatting method is available on the :class:`Repr` object. It is applied in " "a similar manner as :attr:`maxstring`. The default is ``20``." msgstr "" +"Este límite es usado para controlar el tamaño de los tipos de objetos para " +"los cuales no hay ningún método de formateo específico en el objeto :class:" +"`Repr`. Se aplica de una manera similar a :attr:`maxstring`. El valor por " +"defecto es ``20``." #: ../Doc/library/reprlib.rst:120 msgid "" "The equivalent to the built-in :func:`repr` that uses the formatting imposed " "by the instance." msgstr "" +"El equivalente a la función integrada :func:`repr` que usa el formateo " +"impuesto por la instancia." #: ../Doc/library/reprlib.rst:126 msgid "" @@ -131,6 +173,11 @@ msgid "" "formatting, with ``level - 1`` for the value of *level* in the recursive " "call." msgstr "" +"Implementación recursiva usada por :meth:`.repr`. Este usa el tipo de *obj* " +"para determinar qué método invocar, pasándole *obj* y *level*. Los métodos " +"de tipo específico deben invocar :meth:`repr1` para realizar formateo " +"recursivo, con ``level - 1`` para el valor de *level* en la invocación " +"recursiva." #: ../Doc/library/reprlib.rst:135 msgid "" @@ -140,10 +187,16 @@ msgid "" "meth:`repr1`. Type-specific methods which need to recursively format a value " "should call ``self.repr1(subobj, level - 1)``." msgstr "" +"Métodos de formateo para tipos específicos son implementados como métodos " +"con un nombre basado en el nombre del tipo. En el nombre del método, " +"**TYPE** es reemplazado por ``'_'.join(type(obj).__name__.split())``. El " +"envío a estos métodos es gestionado por :meth:`repr1`. Los métodos de tipo " +"específico que necesitan formatear recursivamente un valor deben invocar " +"``self.repr1(subobj, level - 1)``." #: ../Doc/library/reprlib.rst:145 msgid "Subclassing Repr Objects" -msgstr "" +msgstr "Subclasificando Objetos Repr" #: ../Doc/library/reprlib.rst:147 msgid "" @@ -152,3 +205,7 @@ msgid "" "modify the handling of types already supported. This example shows how " "special support for file objects could be added::" msgstr "" +"El uso de envíos dinámicos por :meth:`Repr.repr1` permite a las subclases " +"de :class:`Repr` añadir soporte para tipos adicionales de objetos integrados " +"o modificar el manejo de tipos ya soportados. Este ejemplo muestra como el " +"soporte especial para objetos de tipo archivo puede ser añadido." diff --git a/library/resource.po b/library/resource.po index 58f21ff529..d4fc090807 100644 --- a/library/resource.po +++ b/library/resource.po @@ -6,51 +6,60 @@ # 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: 2020-12-27 20:51-0600\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/library/resource.rst:2 msgid ":mod:`resource` --- Resource usage information" -msgstr "" +msgstr ":mod:`resource` --- Información sobre el uso de recursos" #: ../Doc/library/resource.rst:13 msgid "" "This module provides basic mechanisms for measuring and controlling system " "resources utilized by a program." msgstr "" +"Este módulo proporciona mecanismos básicos para medir y controlar los " +"recursos del sistema utilizados por un programa." #: ../Doc/library/resource.rst:16 msgid "" "Symbolic constants are used to specify particular system resources and to " "request usage information about either the current process or its children." msgstr "" +"Las constantes simbólicas se utilizan para especificar recursos concretos " +"del sistema y para solicitar información de uso sobre el proceso actual o " +"sus elementos secundarios." #: ../Doc/library/resource.rst:19 msgid "An :exc:`OSError` is raised on syscall failure." msgstr "" +"Se genera un :exc:`OSError` cuando la llamada al sistema (*syscall*) falla." #: ../Doc/library/resource.rst:24 msgid "A deprecated alias of :exc:`OSError`." -msgstr "" +msgstr "Un alias en desuso de :exc:`OSError`." #: ../Doc/library/resource.rst:26 msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." msgstr "" +"Tras :pep:`3151` esta clase se convirtió en un alias de :exc:`OSError`." #: ../Doc/library/resource.rst:31 msgid "Resource Limits" -msgstr "" +msgstr "Límites de recursos" #: ../Doc/library/resource.rst:33 msgid "" @@ -62,6 +71,14 @@ msgid "" "soft limit, but not raised. (Only processes with the effective UID of the " "super-user can raise a hard limit.)" msgstr "" +"El uso de recursos se puede limitar usando la función :func:`setrlimit` que " +"se describe a continuación. Cada recurso está controlado por un par de " +"límites: un límite flexible y un límite duro. El límite flexible es el " +"límite actual, y puede ser reducido o elevado con el tiempo mediante un " +"proceso. El límite flexible nunca puede exceder el límite duro. El límite " +"duro se puede reducir a cualquier valor mayor que el del límite flexible, " +"pero no se puede elevar. (Solo los procesos con el UID efectivo del " +"superusuario pueden aumentar un límite duro.)" #: ../Doc/library/resource.rst:41 msgid "" @@ -71,10 +88,16 @@ msgid "" "resources which cannot be checked or controlled by the operating system are " "not defined in this module for those platforms." msgstr "" +"Los recursos específicos que se pueden limitar dependen del sistema. Se " +"describen en la página de manual :manpage:`getrlimit(2)`. Los recursos " +"enumerados a continuación se admiten cuando el sistema operativo subyacente " +"los admite; los recursos que no pueden ser verificados o controlados por el " +"sistema operativo no se definen en este módulo para esas plataformas." #: ../Doc/library/resource.rst:50 msgid "Constant used to represent the limit for an unlimited resource." msgstr "" +"Constante utilizada para representar el límite de un recurso ilimitado." #: ../Doc/library/resource.rst:55 msgid "" @@ -82,6 +105,10 @@ msgid "" "*resource*. Raises :exc:`ValueError` if an invalid resource is specified, " "or :exc:`error` if the underlying system call fails unexpectedly." msgstr "" +"Retorna una tupla ``(soft, hard)`` con los límites flexible y duro actuales " +"de *resource*. Genera :exc:`ValueError` si se especifica un recurso no " +"válido o :exc:`error` si la llamada al sistema subyacente falla " +"inesperadamente." #: ../Doc/library/resource.rst:62 msgid "" @@ -90,6 +117,10 @@ msgid "" "of :data:`~resource.RLIM_INFINITY` can be used to request a limit that is " "unlimited." msgstr "" +"Establece nuevos límites para el consumo de *resource*. El argumento " +"*limits* debe ser una tupla de dos enteros ``(soft, hard)`` que describe los " +"nuevos límites. Un valor de :data:`~resource.RLIM_INFINITY` se puede " +"utilizar para solicitar un límite ilimitado." #: ../Doc/library/resource.rst:67 msgid "" @@ -101,22 +132,34 @@ msgid "" "any valid limit value, including unlimited, but :exc:`ValueError` will still " "be raised if the requested limit exceeds the system imposed limit." msgstr "" +"Genera :exc:`ValueError` si se especifica un recurso no válido, si el nuevo " +"límite flexible excede el límite duro, o si un proceso intenta aumentar el " +"límite duro. Si se especifica un límite de :data:`~resource.RLIM_INFINITY` " +"cuando el límite duro o el límite del sistema para ese recurso no son " +"ilimitados, se producirá un :exc:`ValueError`. Un proceso con el UID " +"efectivo de superusuario puede solicitar cualquier valor de límite válido, " +"incluso ilimitado, pero se generará un :exc:`ValueError` si el límite " +"solicitado excede el límite impuesto por el sistema." #: ../Doc/library/resource.rst:76 msgid "" "``setrlimit`` may also raise :exc:`error` if the underlying system call " "fails." msgstr "" +"``setrlimit`` también puede generar un :exc:`error` si falla la llamada al " +"sistema subyacente." #: ../Doc/library/resource.rst:79 msgid "VxWorks only supports setting :data:`RLIMIT_NOFILE`." -msgstr "" +msgstr "VxWorks solo admite configurar :data:`RLIMIT_NOFILE`." #: ../Doc/library/resource.rst:81 msgid "" "Raises an :ref:`auditing event ` ``resource.setrlimit`` with " "arguments ``resource``, ``limits``." msgstr "" +"Genera un :ref:`auditing event ` ``resource.setrlimit`` con los " +"argumentos ``resource``, ``limits``." #: ../Doc/library/resource.rst:86 msgid "" @@ -126,6 +169,11 @@ msgid "" "*limits* have the same meaning as in :func:`setrlimit`, except that *limits* " "is optional." msgstr "" +"Combina :func:`setrlimit` y :func:`getrlimit` en una sola función y admite " +"obtener y establecer los límites de recursos de un proceso arbitrario. Si " +"*pid* es 0, entonces la llamada se aplica al proceso actual. *resource* y " +"*limits* tienen el mismo significado que en :func:`setrlimit`, excepto por " +"que *limits* es opcional." #: ../Doc/library/resource.rst:92 msgid "" @@ -133,6 +181,9 @@ msgid "" "process *pid*. When *limits* is given the *resource* limit of the process is " "set and the former resource limit is returned." msgstr "" +"Cuando no se proporciona *limits* la función retorna el límite de *resource* " +"del proceso *pid*. Cuando se proporciona *limits*, se establece el límite de " +"*resource* del proceso y se retorna el límite de recursos anterior." #: ../Doc/library/resource.rst:96 msgid "" @@ -140,18 +191,25 @@ msgid "" "`PermissionError` when the user doesn't have ``CAP_SYS_RESOURCE`` for the " "process." msgstr "" +"Genera :exc:`ProcessLookupError` cuando no se encuentra *pid* y :exc:" +"`PermissionError` cuando el usuario no tiene ``CAP_SYS_RESOURCE`` para el " +"proceso." #: ../Doc/library/resource.rst:101 msgid "" "Raises an :ref:`auditing event ` ``resource.prlimit`` with " "arguments ``pid``, ``resource``, ``limits``." msgstr "" +"Genera un :ref:`evento de auditoría ` ``resource.prlimit`` con los " +"argumentos ``pid``, ``resource``, ``limits``." #: ../Doc/library/resource.rst:103 msgid "" ":ref:`Availability `: Linux 2.6.36 or later with glibc 2.13 or " "later." msgstr "" +":ref:`Disponibilidad `: Linux 2.6.36 o posterior con glibc " +"2.13 o posterior." #: ../Doc/library/resource.rst:107 msgid "" @@ -159,6 +217,10 @@ msgid "" "the :func:`setrlimit` and :func:`getrlimit` functions described below. The " "values of these symbols are exactly the constants used by C programs." msgstr "" +"Estos símbolos definen los recursos cuyo consumo se puede controlar usando " +"las funciones :func:`setrlimit` y :func:`getrlimit` que se describen más " +"abajo. Los valores de estos símbolos son exactamente las constantes " +"utilizadas por programas en C." #: ../Doc/library/resource.rst:111 msgid "" @@ -168,6 +230,12 @@ msgid "" "--- symbols not defined for a platform will not be available from this " "module on that platform." msgstr "" +"La página de manual de Unix para :manpage:`getrlimit(2)` detalla los " +"recursos disponibles. Tenga en cuenta que no todos los sistemas usan el " +"mismo símbolo o el mismo valor para referirse al mismo recurso. Este módulo " +"no pretende enmascarar las diferencias entre plataformas --- los símbolos no " +"definidos para una plataforma no estarán disponibles en este módulo en esa " +"plataforma." #: ../Doc/library/resource.rst:120 msgid "" @@ -175,6 +243,9 @@ msgid "" "create. This may result in the creation of a partial core file if a larger " "core would be required to contain the entire process image." msgstr "" +"El tamaño máximo (en bytes) de un archivo central que puede crear el proceso " +"actual. Esto podría resultar en la creación de un archivo central parcial si " +"se requiriera uno más grande para contener la imagen del proceso entera." #: ../Doc/library/resource.rst:127 msgid "" @@ -183,85 +254,101 @@ msgid "" "(See the :mod:`signal` module documentation for information about how to " "catch this signal and do something useful, e.g. flush open files to disk.)" msgstr "" +"La cantidad máxima de tiempo del procesador (en segundos) que puede utilizar " +"un proceso. Si se excede este límite se envía una señal :const:`SIGXCPU` al " +"proceso. (Vea la documentación del módulo :mod:`signal` para más información " +"sobre cómo detectar esta señal y hacer algo productivo, p. ej. descargar los " +"archivos abiertos al disco)." #: ../Doc/library/resource.rst:135 msgid "The maximum size of a file which the process may create." -msgstr "" +msgstr "El tamaño máximo de un archivo que pueda crear el proceso." #: ../Doc/library/resource.rst:140 msgid "The maximum size (in bytes) of the process's heap." -msgstr "" +msgstr "El tamaño máximo (en bytes) de la memoria *heap* del proceso." #: ../Doc/library/resource.rst:145 msgid "" "The maximum size (in bytes) of the call stack for the current process. This " "only affects the stack of the main thread in a multi-threaded process." msgstr "" +"El tamaño máximo (en bytes) de la pila de llamadas para el proceso actual. " +"Esto afecta únicamente a la pila del hilo principal en un proceso multi-hilo." #: ../Doc/library/resource.rst:151 msgid "" "The maximum resident set size that should be made available to the process." msgstr "" +"El tamaño máximo del conjunto residente (*RSS*) del que puede disponer el " +"proceso." #: ../Doc/library/resource.rst:156 msgid "The maximum number of processes the current process may create." -msgstr "" +msgstr "El número máximo de procesos que puede crear el proceso actual." #: ../Doc/library/resource.rst:161 msgid "The maximum number of open file descriptors for the current process." msgstr "" +"El número máximo de descriptores de archivo abierto para el proceso actual." #: ../Doc/library/resource.rst:166 msgid "The BSD name for :const:`RLIMIT_NOFILE`." -msgstr "" +msgstr "El nombre BDS para :const:`RLIMIT_NOFILE`." #: ../Doc/library/resource.rst:171 msgid "The maximum address space which may be locked in memory." -msgstr "" +msgstr "El espacio de direcciones máximo que se puede bloquear en la memoria." #: ../Doc/library/resource.rst:176 msgid "The largest area of mapped memory which the process may occupy." -msgstr "" +msgstr "El área de memoria mapeada más grande que puede ocupar el proceso." #: ../Doc/library/resource.rst:181 msgid "" "The maximum area (in bytes) of address space which may be taken by the " "process." msgstr "" +"El área máxima (en bytes) de espacio de direcciones que puede tomar el " +"proceso." #: ../Doc/library/resource.rst:186 msgid "The number of bytes that can be allocated for POSIX message queues." msgstr "" +"El número de bytes que se pueden asignar a las colas de mensajes POSIX." #: ../Doc/library/resource.rst:189 ../Doc/library/resource.rst:226 msgid ":ref:`Availability `: Linux 2.6.8 or later." -msgstr "" +msgstr ":ref:`Disponibilidad `: Linux 2.6.8 o posterior." #: ../Doc/library/resource.rst:195 msgid "The ceiling for the process's nice level (calculated as 20 - rlim_cur)." -msgstr "" +msgstr "El techo del nivel del proceso *nice* (calculado como 20 - rlim_cur)." #: ../Doc/library/resource.rst:198 ../Doc/library/resource.rst:207 msgid ":ref:`Availability `: Linux 2.6.12 or later." -msgstr "" +msgstr ":ref:`Disponibilidad `: Linux 2.6.12 o posterior." #: ../Doc/library/resource.rst:204 msgid "The ceiling of the real-time priority." -msgstr "" +msgstr "El techo de la prioridad en tiempo real." #: ../Doc/library/resource.rst:213 msgid "" "The time limit (in microseconds) on CPU time that a process can spend under " "real-time scheduling without making a blocking syscall." msgstr "" +"El límite de tiempo (en microsegundos) en tiempo de CPU que puede dedicar un " +"proceso de programación en tiempo real sin hacer una llamada al sistema de " +"bloqueo." #: ../Doc/library/resource.rst:217 msgid ":ref:`Availability `: Linux 2.6.25 or later." -msgstr "" +msgstr ":ref:`Disponibilidad `: Linux 2.6.25 o posterior." #: ../Doc/library/resource.rst:223 msgid "The number of signals which the process may queue." -msgstr "" +msgstr "El número de señales que el proceso puede poner en cola." #: ../Doc/library/resource.rst:231 msgid "" @@ -269,11 +356,14 @@ msgid "" "limits the amount of network memory, and hence the amount of mbufs, that " "this user may hold at any time." msgstr "" +"El tamaño máximo (en bytes) de uso del búfer del socket para este usuario. " +"Esto limita la cantidad de memoria de red, y por lo tanto la cantidad de " +"mbufs, que este usuario puede retener en todo momento." #: ../Doc/library/resource.rst:236 ../Doc/library/resource.rst:247 #: ../Doc/library/resource.rst:255 msgid ":ref:`Availability `: FreeBSD 9 or later." -msgstr "" +msgstr ":ref:`Disponibilidad `: FreeBSD 9 o posterior." #: ../Doc/library/resource.rst:241 msgid "" @@ -282,18 +372,26 @@ msgid "" "the vm.overcommit sysctl is set. Please see :manpage:`tuning(7)` for a " "complete description of this sysctl." msgstr "" +"El tamaño máximo (en bytes) de espacio de intercambio que puede ser " +"reservado o utilizado por todos los procesos de esta ID de usuario. Este " +"límite se impone únicamente si se establece el bit 1 del vm.overcommit " +"sysctl. Por favor, vea :manpage:`tuning(7)` para una descripción completa de " +"este sysctl." #: ../Doc/library/resource.rst:252 msgid "The maximum number of pseudo-terminals created by this user id." msgstr "" +"El número máximo de pseudo-terminales que puede crear esta ID de usuario." #: ../Doc/library/resource.rst:259 msgid "Resource Usage" -msgstr "" +msgstr "Utilización de recursos" #: ../Doc/library/resource.rst:261 msgid "These functions are used to retrieve resource usage information:" msgstr "" +"Estas funciones se usan para recuperar la información de utilización de " +"recursos:" #: ../Doc/library/resource.rst:266 msgid "" @@ -302,10 +400,14 @@ msgid "" "parameter. The *who* parameter should be specified using one of the :const:" "`RUSAGE_\\*` constants described below." msgstr "" +"Esta función retorna un objeto que describe los recursos consumidos por el " +"proceso actual o sus elementos secundarios, según como esté especificado en " +"el parámetro *who*. El parámetro *who* debe especificarse usando una de las " +"constantes :const:`RUSAGE_\\*` descritas más abajo." #: ../Doc/library/resource.rst:271 msgid "A simple example::" -msgstr "" +msgstr "Un ejemplo sencillo::" #: ../Doc/library/resource.rst:285 msgid "" @@ -315,12 +417,19 @@ msgid "" "dependent on the clock tick internal, e.g. the amount of memory the process " "is using." msgstr "" +"Los campos del valor retornado describen cómo se ha utilizado un recurso " +"específico, p. ej. la cantidad de tiempo dedicada a la ejecución en modo " +"usuario o el número de veces que el proceso ha sido intercambiado desde la " +"memoria principal. Algunos valores dependen del intervalo de tic del reloj, " +"p. ej. la cantidad de memoria que está usando el proceso." #: ../Doc/library/resource.rst:290 msgid "" "For backward compatibility, the return value is also accessible as a tuple " "of 16 elements." msgstr "" +"Por compatibilidad con versiones anteriores, el valor retornado es accesible " +"también como una tupla de 16 elementos." #: ../Doc/library/resource.rst:293 msgid "" @@ -331,210 +440,216 @@ msgid "" "`getrusage(2)` man page for detailed information about these values. A brief " "summary is presented here:" msgstr "" +"Los campos :attr:`ru_utime` y :attr:`ru_stime` del valor retornado son " +"valores de coma flotante que representan la cantidad de tiempo dedicada a la " +"ejecución en modo usuario y la cantidad de tiempo dedicada a la ejecución en " +"modo sistema respectivamente. Los valores restantes son enteros. Consulte la " +"página del manual :manpage:`getrusage(2)` para información detallada sobre " +"estos valores. A continuación se presenta un breve resumen:" #: ../Doc/library/resource.rst:300 msgid "Index" -msgstr "" +msgstr "Índice" #: ../Doc/library/resource.rst:300 msgid "Field" -msgstr "" +msgstr "Campo" #: ../Doc/library/resource.rst:300 msgid "Resource" -msgstr "" +msgstr "Recurso" #: ../Doc/library/resource.rst:302 msgid "``0``" -msgstr "" +msgstr "``0``" #: ../Doc/library/resource.rst:302 msgid ":attr:`ru_utime`" -msgstr "" +msgstr ":attr:`ru_utime`" #: ../Doc/library/resource.rst:302 msgid "time in user mode (float seconds)" -msgstr "" +msgstr "tiempo en modo usuario (flotante en segundos)" #: ../Doc/library/resource.rst:304 msgid "``1``" -msgstr "" +msgstr "``1``" #: ../Doc/library/resource.rst:304 msgid ":attr:`ru_stime`" -msgstr "" +msgstr ":attr:`ru_stime`" #: ../Doc/library/resource.rst:304 msgid "time in system mode (float seconds)" -msgstr "" +msgstr "tiempo en modo sistema (flotante en segundos)" #: ../Doc/library/resource.rst:306 msgid "``2``" -msgstr "" +msgstr "``2``" #: ../Doc/library/resource.rst:306 msgid ":attr:`ru_maxrss`" -msgstr "" +msgstr ":attr:`ru_maxrss`" #: ../Doc/library/resource.rst:306 msgid "maximum resident set size" -msgstr "" +msgstr "tamaño máximo del conjunto residente" #: ../Doc/library/resource.rst:308 msgid "``3``" -msgstr "" +msgstr "``3``" #: ../Doc/library/resource.rst:308 msgid ":attr:`ru_ixrss`" -msgstr "" +msgstr ":attr:`ru_ixrss`" #: ../Doc/library/resource.rst:308 msgid "shared memory size" -msgstr "" +msgstr "tamaño de memoria compartida" #: ../Doc/library/resource.rst:310 msgid "``4``" -msgstr "" +msgstr "``4``" #: ../Doc/library/resource.rst:310 msgid ":attr:`ru_idrss`" -msgstr "" +msgstr ":attr:`ru_idrss`" #: ../Doc/library/resource.rst:310 msgid "unshared memory size" -msgstr "" +msgstr "tamaño de memoria no compartida" #: ../Doc/library/resource.rst:312 msgid "``5``" -msgstr "" +msgstr "``5``" #: ../Doc/library/resource.rst:312 msgid ":attr:`ru_isrss`" -msgstr "" +msgstr ":attr:`ru_isrss`" #: ../Doc/library/resource.rst:312 msgid "unshared stack size" -msgstr "" +msgstr "tamaño de la pila no compartida" #: ../Doc/library/resource.rst:314 msgid "``6``" -msgstr "" +msgstr "``6``" #: ../Doc/library/resource.rst:314 msgid ":attr:`ru_minflt`" -msgstr "" +msgstr ":attr:`ru_minflt`" #: ../Doc/library/resource.rst:314 msgid "page faults not requiring I/O" -msgstr "" +msgstr "fallos de página que no requieran E/S" #: ../Doc/library/resource.rst:316 msgid "``7``" -msgstr "" +msgstr "``7``" #: ../Doc/library/resource.rst:316 msgid ":attr:`ru_majflt`" -msgstr "" +msgstr ":attr:`ru_majflt`" #: ../Doc/library/resource.rst:316 msgid "page faults requiring I/O" -msgstr "" +msgstr "fallos de página que requieran E/S" #: ../Doc/library/resource.rst:318 msgid "``8``" -msgstr "" +msgstr "``8``" #: ../Doc/library/resource.rst:318 msgid ":attr:`ru_nswap`" -msgstr "" +msgstr ":attr:`ru_nswap`" #: ../Doc/library/resource.rst:318 msgid "number of swap outs" -msgstr "" +msgstr "número de intercambios" #: ../Doc/library/resource.rst:320 msgid "``9``" -msgstr "" +msgstr "``9``" #: ../Doc/library/resource.rst:320 msgid ":attr:`ru_inblock`" -msgstr "" +msgstr ":attr:`ru_inblock`" #: ../Doc/library/resource.rst:320 msgid "block input operations" -msgstr "" +msgstr "bloque de operaciones de entrada" #: ../Doc/library/resource.rst:322 msgid "``10``" -msgstr "" +msgstr "``10``" #: ../Doc/library/resource.rst:322 msgid ":attr:`ru_oublock`" -msgstr "" +msgstr ":attr:`ru_oublock`" #: ../Doc/library/resource.rst:322 msgid "block output operations" -msgstr "" +msgstr "bloque de operaciones de salida" #: ../Doc/library/resource.rst:324 msgid "``11``" -msgstr "" +msgstr "``11``" #: ../Doc/library/resource.rst:324 msgid ":attr:`ru_msgsnd`" -msgstr "" +msgstr ":attr:`ru_msgsnd`" #: ../Doc/library/resource.rst:324 msgid "messages sent" -msgstr "" +msgstr "mensajes enviados" #: ../Doc/library/resource.rst:326 msgid "``12``" -msgstr "" +msgstr "``12``" #: ../Doc/library/resource.rst:326 msgid ":attr:`ru_msgrcv`" -msgstr "" +msgstr ":attr:`ru_msgrcv`" #: ../Doc/library/resource.rst:326 msgid "messages received" -msgstr "" +msgstr "mensajes recibidos" #: ../Doc/library/resource.rst:328 msgid "``13``" -msgstr "" +msgstr "``13``" #: ../Doc/library/resource.rst:328 msgid ":attr:`ru_nsignals`" -msgstr "" +msgstr ":attr:`ru_nsignals`" #: ../Doc/library/resource.rst:328 msgid "signals received" -msgstr "" +msgstr "señales recibidas" #: ../Doc/library/resource.rst:330 msgid "``14``" -msgstr "" +msgstr "``14``" #: ../Doc/library/resource.rst:330 msgid ":attr:`ru_nvcsw`" -msgstr "" +msgstr ":attr:`ru_nvcsw`" #: ../Doc/library/resource.rst:330 msgid "voluntary context switches" -msgstr "" +msgstr "intercambios de contexto voluntarios" #: ../Doc/library/resource.rst:332 msgid "``15``" -msgstr "" +msgstr "``15``" #: ../Doc/library/resource.rst:332 msgid ":attr:`ru_nivcsw`" -msgstr "" +msgstr ":attr:`ru_nivcsw`" #: ../Doc/library/resource.rst:332 msgid "involuntary context switches" -msgstr "" +msgstr "intercambios de contexto involuntarios" #: ../Doc/library/resource.rst:335 msgid "" @@ -542,12 +657,17 @@ msgid "" "is specified. It may also raise :exc:`error` exception in unusual " "circumstances." msgstr "" +"Esta función generará un :exc:`ValueError` si el parámetro *who* " +"especificado no es válido. También puede generar una excepción :exc:`error` " +"en circunstancias inusuales." #: ../Doc/library/resource.rst:341 msgid "" "Returns the number of bytes in a system page. (This need not be the same as " "the hardware page size.)" msgstr "" +"Retorna el número de bytes en una página de sistema. (Esta no es " +"necesariamente del mismo tamaño que la página de hardware)." #: ../Doc/library/resource.rst:344 msgid "" @@ -555,27 +675,41 @@ msgid "" "`getrusage` function to specify which processes information should be " "provided for." msgstr "" +"Los siguientes símbolos :const:`RUSAGE_\\*` se pasan a la función :func:" +"`getrusage` para especificar qué información de procesos se debería " +"proporcionar." #: ../Doc/library/resource.rst:350 msgid "" "Pass to :func:`getrusage` to request resources consumed by the calling " "process, which is the sum of resources used by all threads in the process." msgstr "" +"Pasar a :func:`getrusage` para solicitar recursos consumidos por el proceso " +"de llamada, que es la suma de recursos utilizados por todos los hilos en el " +"proceso." #: ../Doc/library/resource.rst:356 msgid "" "Pass to :func:`getrusage` to request resources consumed by child processes " "of the calling process which have been terminated and waited for." msgstr "" +"Pasar a :func:`getrusage` para solicitar recursos consumidos por procesos " +"secundarios del proceso de llamada que se han terminado o a los que se les " +"está esperando." #: ../Doc/library/resource.rst:362 msgid "" "Pass to :func:`getrusage` to request resources consumed by both the current " "process and child processes. May not be available on all systems." msgstr "" +"Pasar a :func:`getrusage` para solicitar recursos consumidos por el proceso " +"actual y sus procesos secundarios. Puede que no esté disponible en todos los " +"sistemas." #: ../Doc/library/resource.rst:368 msgid "" "Pass to :func:`getrusage` to request resources consumed by the current " "thread. May not be available on all systems." msgstr "" +"Pasa a :func:`getrusage` para solicitar recursos consumidos por el hilo " +"actual. Puede que no esté disponible en todos los sistemas." diff --git a/library/rlcompleter.po b/library/rlcompleter.po index ef4185a873..a8db6c5d46 100644 --- a/library/rlcompleter.po +++ b/library/rlcompleter.po @@ -1,29 +1,31 @@ # 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: 2020-11-11 13:07-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/rlcompleter.rst:2 msgid ":mod:`rlcompleter` --- Completion function for GNU readline" -msgstr "" +msgstr ":mod:`rlcompleter` --- Función de completado para GNU readline" #: ../Doc/library/rlcompleter.rst:9 msgid "**Source code:** :source:`Lib/rlcompleter.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/rlcompleter.py`" #: ../Doc/library/rlcompleter.rst:13 msgid "" @@ -31,6 +33,9 @@ msgid "" "the :mod:`readline` module by completing valid Python identifiers and " "keywords." msgstr "" +"El módulo :mod:`rlcompleter` define una función de completado adecuada para " +"el módulo :mod:`readline` completando los identificadores y las palabras " +"clave de Python válidas." #: ../Doc/library/rlcompleter.rst:16 msgid "" @@ -39,10 +44,14 @@ msgid "" "automatically created and its :meth:`complete` method is set as the :mod:" "`readline` completer." msgstr "" +"Cuando este módulo es importado en una plataforma Unix con el módulo :mod:" +"`readline` disponible, una instancia de la clase :class:`Completer` es " +"automáticamente creada y su método :meth:`complete` es fijado como el método " +"de completado de :mod:`readline`." #: ../Doc/library/rlcompleter.rst:20 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/library/rlcompleter.rst:31 msgid "" @@ -51,24 +60,30 @@ msgid "" "`-S` option, the module is automatically imported and configured (see :ref:" "`rlcompleter-config`)." msgstr "" +"El módulo :mod:`rlcompleter` está diseñado para usarse con el :ref:`modo " +"interactivo ` de Python. A menos que Python sea ejecutado " +"con la opción :option:`-S`, el módulo es automáticamente importado y " +"configurado (ver :ref:`rlcompleter-config`)." #: ../Doc/library/rlcompleter.rst:36 msgid "" "On platforms without :mod:`readline`, the :class:`Completer` class defined " "by this module can still be used for custom purposes." msgstr "" +"En plataformas sin :mod:`readline`, la clase :class:`Completer` definida por " +"este módulo puede ser usada igualmente para fines personalizados." #: ../Doc/library/rlcompleter.rst:43 msgid "Completer Objects" -msgstr "" +msgstr "Objetos de Completado" #: ../Doc/library/rlcompleter.rst:45 msgid "Completer objects have the following method:" -msgstr "" +msgstr "Los objetos de completado tienen el siguiente método:" #: ../Doc/library/rlcompleter.rst:50 msgid "Return the *state*\\ th completion for *text*." -msgstr "" +msgstr "Retorna el completado nº *state* para *text*." #: ../Doc/library/rlcompleter.rst:52 msgid "" @@ -76,6 +91,10 @@ msgid "" "will complete from names currently defined in :mod:`__main__`, :mod:" "`builtins` and keywords (as defined by the :mod:`keyword` module)." msgstr "" +"Si es invocado para *text* que no incluye un caracter de punto (``'.'``), " +"este completará con nombres actualmente definidos en :mod:`__main__`, :mod:" +"`builtins` y las palabras clave (tal y como están definidas en el módulo :" +"mod:`keyword`)." #: ../Doc/library/rlcompleter.rst:56 msgid "" @@ -86,3 +105,9 @@ msgid "" "evaluation of the expression is caught, silenced and :const:`None` is " "returned." msgstr "" +"Si es invocado para un nombre con punto, este tratará de evaluar cualquier " +"cosa sin efectos secundarios obvios (las funciones no serán evaluadas, pero " +"puede generar invocaciones a :meth:`__getattr__`) hasta la última parte, y " +"encontrar coincidencias para el resto mediante la función :func:`dir`, " +"Cualquier excepción ocurrida durante la evaluación de la expresión es " +"cazada, silenciada y se retorna :const:`None`." diff --git a/library/runpy.po b/library/runpy.po index 6d541b3f5f..6ae65649b9 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -1,29 +1,31 @@ # 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: 2020-10-08 06:30-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_EC\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/runpy.rst:2 msgid ":mod:`runpy` --- Locating and executing Python modules" -msgstr "" +msgstr ":mod:`runpy` --- Localización y ejecución de módulos *Python*" #: ../Doc/library/runpy.rst:9 msgid "**Source code:** :source:`Lib/runpy.py`" -msgstr "" +msgstr "**Código Fuente:** :source:`Lib/runpy.py`" #: ../Doc/library/runpy.rst:13 msgid "" @@ -32,6 +34,11 @@ msgid "" "line switch that allows scripts to be located using the Python module " "namespace rather than the filesystem." msgstr "" +"El modulo :mod:`runpy` es usado para localizar y correr módulos *Python* " +"sin importarlo primero. Su uso principal es implementar la opción :option:`-" +"m` cambiando la linea de comando que permite que los scripts se ubiquen " +"utilizando el espacio de nombres del módulo de Python en lugar del sistema " +"de archivos." #: ../Doc/library/runpy.rst:18 msgid "" @@ -39,6 +46,10 @@ msgid "" "current process, and any side effects (such as cached imports of other " "modules) will remain in place after the functions have returned." msgstr "" +"Tenga en cuenta que este *no* es un módulo de espacio aislado - Todo el " +"código es ejecutado en el proceso actual, y cualquier efecto secundario " +"(como las importaciones en cache de otros módulos) permanecerán en su lugar " +"después de que las funciones hayan retornado." #: ../Doc/library/runpy.rst:22 msgid "" @@ -47,10 +58,15 @@ msgid "" "that limitation is not acceptable for a given use case, :mod:`importlib` is " "likely to be a more suitable choice than this module." msgstr "" +"Además, no se garantiza que las funciones y clases definidas por el código " +"ejecutado funcionen correctamente después de que se haya devuelto la " +"función :mod:`runpy`. Si esa limitación no es aceptable para un caso de uso " +"determinado, es probable que :mod:`importlib` sea una opción más adecuada " +"que este módulo." #: ../Doc/library/runpy.rst:27 msgid "The :mod:`runpy` module provides two functions:" -msgstr "" +msgstr "El modulo :mod:`runpy` proporciona dos funciones:" #: ../Doc/library/runpy.rst:35 msgid "" @@ -59,6 +75,11 @@ msgid "" "import mechanism (refer to :pep:`302` for details) and then executed in a " "fresh module namespace." 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 " +"obtener más información) y, a continuación, se ejecuta en un espacio de " +"nombres de módulo nuevo." #: ../Doc/library/runpy.rst:40 msgid "" @@ -67,6 +88,10 @@ msgid "" "imported and the ``__main__`` submodule within that package is then executed " "and the resulting module globals dictionary returned." msgstr "" +"El argumento *mod_name* debe ser un nombre de módulo absoluto. Si el nombre " +"del paquete se refiere a un paquete en lugar de un módulo normal, entonces " +"ese paquete es importado y el submódulo ``__main__`` dentro de ese paquete " +"luego se ejecuta y se devuelve el diccionario global del módulo resultante." #: ../Doc/library/runpy.rst:46 msgid "" @@ -76,6 +101,11 @@ msgid "" "below are defined in the supplied dictionary, those definitions are " "overridden by :func:`run_module`." msgstr "" +"El argumento de diccionario opcional *init_globals* se puede utilizar para " +"rellenar previamente el diccionario global del módulo antes de ejecutar el " +"código. El diccionario suministrado no se modificará. Si alguna de las " +"variables globales especiales siguientes se define en el diccionario " +"proporcionado, esas definiciones se reemplazan por :func:`run_module`." #: ../Doc/library/runpy.rst:52 ../Doc/library/runpy.rst:121 msgid "" @@ -85,6 +115,12 @@ msgid "" "set of variables - other variables may be set implicitly as an interpreter " "implementation detail)." msgstr "" +"Las variables globales especiales ``__name__``, ``__spec__``, ``__file__``, " +"``__cached__``, ``__loader__`` y ``__package__`` se establecen en el " +"diccionario global antes del que el código del módulo sea ejecutado (tenga " +"en cuenta que esto es un conjunto mínimo de variables - otras variables " +"pueden establecerse implícitamente como un detalle de implementación del " +"intérprete)." #: ../Doc/library/runpy.rst:58 msgid "" @@ -92,6 +128,9 @@ msgid "" "`None`, to ``mod_name + '.__main__'`` if the named module is a package and " "to the *mod_name* argument otherwise." msgstr "" +"``__name__`` se establece en *run_name* si el argumento opcional no es :" +"const:`None`, para `mod_name + ‘.__main__’`` si módulo nombrado es un " +"paquete y al argumento *mod_name* en caso contrario." #: ../Doc/library/runpy.rst:62 msgid "" @@ -99,12 +138,17 @@ msgid "" "(that is, ``__spec__.name`` will always be *mod_name* or ``mod_name + '." "__main__``, never *run_name*)." msgstr "" +"``__spec__`` se configura apropiadamente para el modulo *realmente* " +"importado (es decir, ``__spec__.name`` siempre será un *mod_name* o " +"``mod_name + ‘.__main__``, jamas *run_name*)." #: ../Doc/library/runpy.rst:66 msgid "" "``__file__``, ``__cached__``, ``__loader__`` and ``__package__`` are :ref:" "`set as normal ` based on the module spec." msgstr "" +"``__file__``, ``__cached__``, ``__loader__`` y ``__package__`` son basados " +"en la especificación del modulo :ref:`set as normal `." #: ../Doc/library/runpy.rst:69 msgid "" @@ -114,6 +158,12 @@ msgid "" "being executed. Both ``sys.argv[0]`` and ``sys.modules[__name__]`` are " "restored to their original values before the function returns." msgstr "" +"Si el argumento *alter_sys* es proporcionado y evaluado a :const:`True`, " +"entonces ``sys.argv[0]`` es actualizado y el valor de ``__file__`` y ``sys." +"modules[__name__]`` es actualizado con un objeto de módulo temporal para el " +"módulo que se esta ejecutado. Ambas `sys.argv[0]`` y ``sys." +"modules[__name__]`` son restauradas a sus valores originales antes del " +"retorno de la función." #: ../Doc/library/runpy.rst:75 msgid "" @@ -122,21 +172,29 @@ msgid "" "arguments. It is recommended that the :mod:`sys` module be left alone when " "invoking this function from threaded code." msgstr "" +"Tenga en cuenta que esta manipulación de :mod:`sys` no es segura para " +"subprocesos. Otros subprocesos pueden ver el módulo parcialmente " +"inicializado, así como la lista alterada de argumentos. Se recomienda que el " +"módulo :mod:`sys` se deje solo al invocar esta función desde código roscado." #: ../Doc/library/runpy.rst:81 msgid "" "The :option:`-m` option offering equivalent functionality from the command " "line." msgstr "" +"La opción :option:`-m` ofrece una funcionalidad equivalente desde la linea " +"de comandos." #: ../Doc/library/runpy.rst:84 msgid "" "Added ability to execute packages by looking for a ``__main__`` submodule." msgstr "" +"Se agrego la capacidad de ejecutar paquetes buscando un submódulo " +"``__main__``." #: ../Doc/library/runpy.rst:87 msgid "Added ``__cached__`` global variable (see :pep:`3147`)." -msgstr "" +msgstr "Se agrego la variable global ``__cached__`` (consultar :pep:`3147`)." #: ../Doc/library/runpy.rst:90 msgid "" @@ -145,6 +203,11 @@ msgid "" "well as ensuring the real module name is always accessible as ``__spec__." "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 " +"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''." #: ../Doc/library/runpy.rst:101 msgid "" @@ -154,6 +217,13 @@ msgid "" "compiled bytecode file or a valid sys.path entry containing a ``__main__`` " "module (e.g. a zipfile containing a top-level ``__main__.py`` file)." msgstr "" +"Ejecute el código en la ubicación del sistema de archivos con nombre y " +"devuelva el diccionario de globales de módulo resultante. Al igual que con " +"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)." #: ../Doc/library/runpy.rst:107 msgid "" @@ -165,6 +235,14 @@ msgid "" "`__main__` entry located elsewhere on ``sys.path`` if there is no such " "module at the specified location." msgstr "" +"Para un *script* simple, el código especificado se ejecuta simplemente en un " +"espacio de nombres de un módulo nuevo. Para un entrada *sys.path* valida " +"(comúnmente es un archivo *zip* o un directorio), la entrada se agrega " +"primero al comienzo de ``sys.path``. La función busca y ejecuta un modulo :" +"mod:`__main__` usando la ruta actualizada. Tenga en cuenta que no existe una " +"protección especial contra la invocación de una entrada existente :mod:" +"`__main__` ubicada en otro lugar en ``sys.path`` si no hay tal módulo en la " +"ubicación especificada." #: ../Doc/library/runpy.rst:115 msgid "" @@ -174,12 +252,19 @@ msgid "" "below are defined in the supplied dictionary, those definitions are " "overridden by :func:`run_path`." msgstr "" +"El argumento de diccionario opcional *init_globals* se puede utilizar para " +"rellenar previamente el diccionario global del módulo antes de ejecutar el " +"código. El diccionario suministrado no se modificará. Si alguna de las " +"variables globales especiales siguientes se define en el diccionario " +"proporcionado, esas definiciones se reemplazan por :func:`run_path`." #: ../Doc/library/runpy.rst:127 msgid "" "``__name__`` is set to *run_name* if this optional argument is not :const:" "`None` and to ``''`` otherwise." msgstr "" +"``__name__`` se establece para *run_name* si el argumento opcional no es :" +"const:`None` y a ``''`` de lo contrario." #: ../Doc/library/runpy.rst:130 msgid "" @@ -188,6 +273,10 @@ msgid "" "path, and ``__spec__``, ``__cached__``, ``__loader__`` and ``__package__`` " "will all be set to :const:`None`." msgstr "" +"Si la ruta proporcionada hace referencia a un archivo *script* (ya sea como " +"fuente o un código de *byte* precompilado), entonces ``__file__`` se " +"establecerá en la ruta proporcionada, y ``__spec__``, ``__cached__``, " +"``__loader__`` y ``__package__`` se establecerán todos en :const:`None`." #: ../Doc/library/runpy.rst:135 msgid "" @@ -197,6 +286,12 @@ msgid "" "``__cached__``, ``__loader__`` and ``__package__`` will be :ref:`set as " "normal ` based on the module spec." msgstr "" +"Si la ruta proporciona es una referencia a una entrada *sys.path* valida, " +"entonces ``__spec__`` se establece apropiadamente para la importación del " +"modulo ``__main__``(es decir, ``__spec__.name`` siempre deberá ser " +"``__main__``). ``__file__``, ``__cached__``, ``__loader__`` y " +"``__package__`` estarán basadas en la especificación del modulo :ref:" +"`establecidas como normal `." #: ../Doc/library/runpy.rst:141 msgid "" @@ -207,6 +302,12 @@ msgid "" "modifications to items in :mod:`sys` are reverted before the function " "returns." msgstr "" +"También se realizan una serie de alteraciones en el módulo :mod:`sys`. En " +"primer lugar, ``sys.path`` puede ser alterado como se describió " +"anteriormente. ``sys.argv[0]`` se actualiza con el valor de ``file_path`` y " +"``sys.modules[__name__]`` se actualiza con un objeto de módulo temporal para " +"el módulo que se está ejecutando. Todas las modificaciones de los elementos " +"de :mod:`sys` se revierten antes de que se devuelva la función." #: ../Doc/library/runpy.rst:148 msgid "" @@ -216,12 +317,20 @@ msgid "" "apply, use of this function in threaded code should be either serialised " "with the import lock or delegated to a separate process." msgstr "" +"Tenga en cuenta que, diferente a :func:`run_module`, las alteraciones hecha " +"a :mod:`sys` no son opcionales en esta función ya que estos ajustes son " +"esenciales para permitir la ejecución de entradas *sys.path*. Como aún se " +"aplican las limitaciones de seguridad de los subprocesos, el uso de esta " +"función en un código procesado debe serializarse con el bloqueo de " +"importación o delegarse a un proceso separado." #: ../Doc/library/runpy.rst:155 msgid "" ":ref:`using-on-interface-options` for equivalent functionality on the " "command line (``python path/to/script``)." msgstr "" +":ref:`using-on-interface-options` para una funcionalidad equivalente en la " +"linea de comandos (``python path/to/script``)." #: ../Doc/library/runpy.rst:160 msgid "" @@ -230,31 +339,35 @@ msgid "" "``__main__`` is imported from a valid sys.path entry rather than being " "executed directly." msgstr "" +"Actualizado para aprovechar la función de especificación del módulo agregada " +"por :pep:`451`. Esto permite que ``__cached__`` se configure correctamente " +"en el caso de que ``__main__`` se importe de una entrada *sys.path* valida " +"en lugar de ejecutarse directamente." #: ../Doc/library/runpy.rst:169 msgid ":pep:`338` -- Executing modules as scripts" -msgstr "" +msgstr ":pep:`338` -- Ejecutando módulos como *scripts*" #: ../Doc/library/runpy.rst:169 ../Doc/library/runpy.rst:172 msgid "PEP written and implemented by Nick Coghlan." -msgstr "" +msgstr "*PEP* escrito y implementado por *Nick Coghlan*." #: ../Doc/library/runpy.rst:172 msgid ":pep:`366` -- Main module explicit relative imports" -msgstr "" +msgstr ":pep:`366` -- Importaciones relativas explícitas del módulo principal" #: ../Doc/library/runpy.rst:175 msgid ":pep:`451` -- A ModuleSpec Type for the Import System" -msgstr "" +msgstr ":pep:`451` — Un tipo *ModuleSpec* para el sistema de Importación" #: ../Doc/library/runpy.rst:175 msgid "PEP written and implemented by Eric Snow" -msgstr "" +msgstr "*PEP* escrito y implementado por *Eric Snow*" #: ../Doc/library/runpy.rst:177 msgid ":ref:`using-on-general` - CPython command line details" -msgstr "" +msgstr ":ref:`using-on-general` - Detalles de la linea de comandos *CPython*" #: ../Doc/library/runpy.rst:179 msgid "The :func:`importlib.import_module` function" -msgstr "" +msgstr "La función :func:`importlib.import_module`" diff --git a/library/shelve.po b/library/shelve.po index d37e337085..6d746edd44 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -1,29 +1,31 @@ # 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" -"Language-Team: python-doc-es\n" +"PO-Revision-Date: 2020-10-01 13:08-0400\n" +"Last-Translator: Alvaro Cárdenas \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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../Doc/library/shelve.rst:2 msgid ":mod:`shelve` --- Python object persistence" -msgstr "" +msgstr ":mod:`shelve` --- Persistencia de objetos de Python" #: ../Doc/library/shelve.rst:7 msgid "**Source code:** :source:`Lib/shelve.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/shelve.py`" #: ../Doc/library/shelve.rst:13 msgid "" @@ -34,6 +36,13 @@ msgid "" "and objects containing lots of shared sub-objects. The keys are ordinary " "strings." msgstr "" +"Un \"estante\" o *shelve*, es un objeto persistente similar a un " +"diccionario. La diferencia con las bases de datos \"dbm\" es que los " +"valores (¡no las claves!) en un estante pueden ser esencialmente objetos " +"Python arbitrarios --- cualquier cosa que el módulo :mod:`pickle` pueda " +"manejar. Esto incluye la mayoría de las instancias de clase, tipos de datos " +"recursivos y objetos que contienen muchos subobjetos compartidos. Las " +"claves son cadenas ordinarias." #: ../Doc/library/shelve.rst:22 msgid "" @@ -44,12 +53,21 @@ msgid "" "*flag* parameter has the same interpretation as the *flag* parameter of :" "func:`dbm.open`." msgstr "" +"Abre un diccionario persistente. El nombre de archivo especificado es el " +"nombre de archivo base para la base de datos subyacente. Como efecto " +"secundario, se puede agregar una extensión al nombre de archivo y se puede " +"crear más de un archivo. De forma predeterminada, el archivo de base de " +"datos subyacente se abre para leer y escribir. El parámetro opcional *flag* " +"tiene la misma interpretación que el parámetro *flag* de :func:`dbm.open`." #: ../Doc/library/shelve.rst:28 msgid "" "By default, version 3 pickles are used to serialize values. The version of " "the pickle protocol can be specified with the *protocol* parameter." msgstr "" +"De forma predeterminada, los *pickles* de la versión 3 se utilizan para " +"serializar valores. La versión del protocolo *pickle* se puede especificar " +"con el parámetro *protocol*." #: ../Doc/library/shelve.rst:31 msgid "" @@ -65,6 +83,19 @@ msgid "" "determine which accessed entries are mutable, nor which ones were actually " "mutated)." msgstr "" +"Debido a la semántica de Python, un estante no puede saber cuándo se " +"modifica una entrada de diccionario persistente mutable. De forma " +"predeterminada, los objetos modificados se escriben *sólo* cuando se asignan " +"al estante (consulte :ref:`shelve-example`). Si el parámetro opcional " +"*writeback* se establece en ``True``, todas las entradas a las que se accede " +"también se almacenan en caché en la memoria y se vuelven a escribir en :meth:" +"`~Shelf.sync` y :meth:`~Shelf.close`; esto puede hacer que sea más práctico " +"mutar entradas mutables en el diccionario persistente, pero, si se accede a " +"muchas entradas, puede consumir grandes cantidades de memoria para la " +"memoria caché, y puede hacer que la operación de cierre sea muy lenta ya que " +"todas las entradas a las que se accede se vuelven a escribir (no hay manera " +"de determinar qué entradas a las que se accede son mutables, ni cuáles se " +"mutaron realmente)." #: ../Doc/library/shelve.rst:45 msgid "" @@ -72,6 +103,9 @@ msgid "" "`~Shelf.close` explicitly when you don't need it any more, or use :func:" "`shelve.open` as a context manager::" msgstr "" +"No confíe en que el estante se cerrará automáticamente; siempre llame a :" +"meth:`~Shelf.close` explícitamente cuando ya no lo necesite, o use :func:" +"`shelve.open` como administrador de contexto::" #: ../Doc/library/shelve.rst:54 msgid "" @@ -79,6 +113,9 @@ msgid "" "to load a shelf from an untrusted source. Like with pickle, loading a shelf " "can execute arbitrary code." msgstr "" +"Debido a que el módulo :mod:`shelve` está respaldado por :mod:`pickle`, es " +"inseguro cargar un estante desde una fuente que no es de confianza. Al igual " +"que con el *pickle*, cargar un estante puede ejecutar código arbitrario." #: ../Doc/library/shelve.rst:58 msgid "" @@ -86,10 +123,13 @@ msgid "" "transition from dictionary based scripts to those requiring persistent " "storage." msgstr "" +"Los objetos de estante admiten todos los métodos admitidos por los " +"diccionarios. Esto facilita la transición de scripts basados en diccionarios " +"a aquellos que requieren almacenamiento persistente." #: ../Doc/library/shelve.rst:61 msgid "Two additional methods are supported:" -msgstr "" +msgstr "Se admiten dos métodos adicionales:" #: ../Doc/library/shelve.rst:65 msgid "" @@ -98,12 +138,18 @@ msgid "" "dictionary on disk, if feasible. This is called automatically when the " "shelf is closed with :meth:`close`." msgstr "" +"Escriba todas las entradas en la caché si el estante se abrió con " +"*writeback* establecido en :const:`True`. También vacíe la caché y " +"sincronice el diccionario persistente en el disco, si es posible. Esto se " +"llama automáticamente cuando el estante se cierra con :meth:`close`." #: ../Doc/library/shelve.rst:72 msgid "" "Synchronize and close the persistent *dict* object. Operations on a closed " "shelf will fail with a :exc:`ValueError`." msgstr "" +"Sincronice y cierre el objeto persistente *dict*. Las operaciones en un " +"estante cerrado fallarán con un :exc:`ValueError`." #: ../Doc/library/shelve.rst:78 msgid "" @@ -111,10 +157,13 @@ msgid "" ">`_ with widely supported storage formats and having the speed of native " "dictionaries." msgstr "" +"`Receta de diccionario persistente ` _ con formatos de almacenamiento ampliamente compatibles y " +"con la velocidad de los diccionarios nativos." #: ../Doc/library/shelve.rst:84 msgid "Restrictions" -msgstr "" +msgstr "Restricciones" #: ../Doc/library/shelve.rst:90 msgid "" @@ -126,6 +175,14 @@ msgid "" "the database should be fairly small, and in rare cases key collisions may " "cause the database to refuse updates." msgstr "" +"La elección de qué paquete de base de datos se utilizará (como :mod:`dbm." +"ndbm` o :mod:`dbm.gnu`) depende de la interfaz disponible. Por lo tanto, no " +"es seguro abrir la base de datos directamente usando :mod:`dbm`. La base de " +"datos también está (desafortunadamente) sujeta a las limitaciones de :mod:" +"`dbm`, si se usa --- esto significa que (la representación *pickle* de) los " +"objetos almacenados en la base de datos debe ser bastante pequeña, y en " +"casos raros las colisiones de claves pueden hacer que la base de datos " +"rechace las actualizaciones." #: ../Doc/library/shelve.rst:98 msgid "" @@ -136,12 +193,21 @@ msgid "" "this differs across Unix versions and requires knowledge about the database " "implementation used." msgstr "" +"El módulo :mod:`shelve` no admite el acceso *concurrent* de lectura/" +"escritura a los objetos almacenados. (Los accesos de lectura múltiples " +"simultáneos son seguros). Cuando un programa tiene un estante abierto para " +"escritura, ningún otro programa debe tenerlo abierto para lectura o " +"escritura. El bloqueo de archivos Unix se puede usar para resolver esto, " +"pero esto difiere entre las versiones de Unix y requiere conocimiento sobre " +"la implementación de la base de datos utilizada." #: ../Doc/library/shelve.rst:108 msgid "" "A subclass of :class:`collections.abc.MutableMapping` which stores pickled " "values in the *dict* object." msgstr "" +"Una subclase de :class:`collections.abc.MutableMapping` que almacena valores " +"*pickle* en el objeto *dict*." #: ../Doc/library/shelve.rst:111 msgid "" @@ -149,6 +215,10 @@ msgid "" "the pickle protocol can be specified with the *protocol* parameter. See the :" "mod:`pickle` documentation for a discussion of the pickle protocols." msgstr "" +"De forma predeterminada, los *pickles* de la versión 3 se utilizan para " +"serializar valores. La versión del protocolo *pickle* se puede especificar " +"con el parámetro *protocol*. Vea la documentación de :mod:`pickle` para una " +"discusión de los protocolos de *pickle*." #: ../Doc/library/shelve.rst:115 msgid "" @@ -157,30 +227,43 @@ msgid "" "times. This allows natural operations on mutable entries, but can consume " "much more memory and make sync and close take a long time." msgstr "" +"Si el parámetro *writeback* es ``True``, el objeto mantendrá un caché de " +"todas las entradas a las que se accedió y las volverá a escribir en el " +"*dict* en las horas de sincronización y cierre. Esto permite operaciones " +"naturales en entradas mutables, pero puede consumir mucha más memoria y " +"hacer que la sincronización y el cierre tomen mucho tiempo." #: ../Doc/library/shelve.rst:120 msgid "" "The *keyencoding* parameter is the encoding used to encode keys before they " "are used with the underlying dict." msgstr "" +"El parámetro *keyencoding* es la codificación utilizada para codificar las " +"claves antes de que se utilicen con el *dict* subyacente." #: ../Doc/library/shelve.rst:123 msgid "" "A :class:`Shelf` object can also be used as a context manager, in which case " "it will be automatically closed when the :keyword:`with` block ends." msgstr "" +"El objeto :class:`Shelf` también se puede utilizar como administrador de " +"contexto, en cuyo caso se cerrará automáticamente cuando finalice el bloque :" +"keyword:`with`." #: ../Doc/library/shelve.rst:126 msgid "" "Added the *keyencoding* parameter; previously, keys were always encoded in " "UTF-8." msgstr "" +"Se agregó el parámetro *keyencoding*; anteriormente, las claves siempre " +"estaban codificadas en UTF-8." #: ../Doc/library/shelve.rst:130 msgid "Added context manager support." -msgstr "" +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 " @@ -192,6 +275,15 @@ msgid "" "*writeback*, and *keyencoding* parameters have the same interpretation as " "for the :class:`Shelf` class." msgstr "" +"Una subclase de :class:`Shelf` que expone :meth:`first`, :meth:`!next`, :" +"meth:`previous`, :meth:`last` y :meth:`set_location` que están disponibles " +"en el módulo de terceros :mod:`bsddb` de `pybsddb `_ pero no en otros módulos de base de datos. El " +"objeto *dict* que se pasa al constructor debe admitir esos métodos. Esto se " +"logra generalmente llamando a uno de los siguientes :func:`bsddb.hashopen`, :" +"func:`bsddb.btopen` o :func:`bsddb.rnopen`. Los parámetros opcionales " +"*protocol*, *writeback* y *keyencoding* tienen la misma interpretación que " +"para la clase :class:`Shelf`." #: ../Doc/library/shelve.rst:149 msgid "" @@ -202,29 +294,39 @@ msgid "" "open` function. The optional *protocol* and *writeback* parameters have the " "same interpretation as for the :class:`Shelf` class." msgstr "" +"Una subclase de :class:`Shelf` que acepta un *filename* en lugar de un " +"objeto tipo diccionario (*dict*). El archivo subyacente se abrirá usando :" +"func:`dbm.open`. De forma predeterminada, el archivo se creará y se abrirá " +"tanto para lectura como para escritura. El parámetro opcional *flag* tiene " +"la misma interpretación que para la función :func:`.open`. Los parámetros " +"opcionales *protocol* y *writeback* tienen la misma interpretación que para " +"la clase :class:`Shelf`." #: ../Doc/library/shelve.rst:160 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/shelve.rst:162 +#, fuzzy msgid "" "To summarize the interface (``key`` is a string, ``data`` is an arbitrary " "object)::" msgstr "" +"Para resumir la interfaz (``key`` es una cadena de caracteres, ``data`` es " +"un objeto arbitrario)::" #: ../Doc/library/shelve.rst:199 msgid "Module :mod:`dbm`" -msgstr "" +msgstr "Módulo :mod:`dbm`" #: ../Doc/library/shelve.rst:199 msgid "Generic interface to ``dbm``-style databases." -msgstr "" +msgstr "Interfaz genérica para bases de datos estilo ``dbm``." #: ../Doc/library/shelve.rst:201 msgid "Module :mod:`pickle`" -msgstr "" +msgstr "Módulo :mod:`pickle`" #: ../Doc/library/shelve.rst:202 msgid "Object serialization used by :mod:`shelve`." -msgstr "" +msgstr "Serialización de objetos utilizada por :mod:`shelve`." diff --git a/library/smtpd.po b/library/smtpd.po index fa19ddd3aa..b6a4767a00 100644 --- a/library/smtpd.po +++ b/library/smtpd.po @@ -1,33 +1,36 @@ -# Copyright (C) 2001-2020, Python Software Foundation +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2019, Python Software Foundation # This file is distributed under the same license as the Python package. -# 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 +# FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Python 3.8\n" +"Project-Id-Version: Python 3.7\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" -"Language-Team: python-doc-es\n" +"PO-Revision-Date: 2020-10-08 22:47-0500\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: Juan Alegría \n" +"Language-Team: \n" +"Language: es_CO\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/smtpd.rst:2 msgid ":mod:`smtpd` --- SMTP Server" -msgstr "" +msgstr ":mod:`smtpd` --- Servidor SMTP" #: ../Doc/library/smtpd.rst:10 msgid "**Source code:** :source:`Lib/smtpd.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/smtpd.py`" #: ../Doc/library/smtpd.rst:14 msgid "This module offers several classes to implement SMTP (email) servers." msgstr "" +"Este módulo ofrece varias clases para implementar servidores SMTP (correo " +"electrónico)." #: ../Doc/library/smtpd.rst:18 msgid "" @@ -35,6 +38,9 @@ msgid "" "replacement for this module. It is based on :mod:`asyncio` and provides a " "more straightforward API. :mod:`smtpd` should be considered deprecated." msgstr "" +"El paquete `aiosmtpd `_ es un reemplazo " +"recomendado para este módulo. Se basa en :mod:`asyncio` y proporciona una " +"API más sencilla. :mod:`smtpd` debería considerarse obsoleto." #: ../Doc/library/smtpd.rst:22 msgid "" @@ -42,22 +48,30 @@ msgid "" "implementation, which can be overridden, while the other two offer specific " "mail-sending strategies." msgstr "" +"Este módulo ofrece varias implementaciones del servidor; una es una " +"implementación genérica de no hace nada, pero cuyos métodos pueden ser " +"sobrescritos para crear una implementación concreta, mientras que las otras " +"dos ofrecen estrategias específicas de envío de correo." #: ../Doc/library/smtpd.rst:26 msgid "" "Additionally the SMTPChannel may be extended to implement very specific " "interaction behaviour with SMTP clients." msgstr "" +"Además, SMTPChannel puede ampliarse para implementar un comportamiento de " +"interacción muy específico con clientes SMTP." #: ../Doc/library/smtpd.rst:29 msgid "" "The code supports :RFC:`5321`, plus the :rfc:`1870` SIZE and :rfc:`6531` " "SMTPUTF8 extensions." msgstr "" +"El código admite :RFC:`5321`, más las extensiones :rfc:`1870` SIZE y :rfc:" +"`6531` SMTPUTF8." #: ../Doc/library/smtpd.rst:34 msgid "SMTPServer Objects" -msgstr "" +msgstr "Objetos SMTPServer" #: ../Doc/library/smtpd.rst:40 msgid "" @@ -67,12 +81,20 @@ msgid "" "tuple. The object inherits from :class:`asyncore.dispatcher`, and so will " "insert itself into :mod:`asyncore`'s event loop on instantiation." msgstr "" +"Crea un nuevo objeto :class:`SMTPServer`, que se vincula a la dirección " +"local *localaddr*. Tratará *remoteaddr* como un transmisor SMTP ascendente. " +"Tanto *localaddr* como *remoteaddr* deben ser una tupla :ref:`(host, port) " +"`. El objeto hereda de :class:`asyncore.dispatcher`, por lo que " +"se insertará en el bucle de eventos de :mod:`asyncore` en la instanciación." #: ../Doc/library/smtpd.rst:46 ../Doc/library/smtpd.rst:168 msgid "" "*data_size_limit* specifies the maximum number of bytes that will be " "accepted in a ``DATA`` command. A value of ``None`` or ``0`` means no limit." msgstr "" +"*data_size_limit* especifica el número máximo de bytes que se aceptarán en " +"un comando ``DATA``. Un valor de ``None`` o ``0`` significa que no hay " +"límite." #: ../Doc/library/smtpd.rst:50 msgid "" @@ -80,6 +102,9 @@ msgid "" "dictionary is a suitable value). If not specified the :mod:`asyncore` " "global socket map is used." msgstr "" +"*map* es el mapa de conectores que se utilizará para las conexiones (un " +"diccionario inicialmente vacío es un valor adecuado). Si no se especifica, " +"se utiliza el mapa de socket global :mod:`asyncore`." #: ../Doc/library/smtpd.rst:54 msgid "" @@ -90,6 +115,12 @@ msgid "" "``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* cannot " "be set to ``True`` at the same time." msgstr "" +"*enable_SMTPUTF8* determina si la extensión ``SMTPUTF8`` (como se define en :" +"RFC:`6531`) debe estar habilitada. El valor predeterminado es ``False``. " +"Cuando es ``True``, ``SMTPUTF8`` se acepta como parámetro para el comando " +"``MAIL`` y cuando está presente se pasa a :meth:`process_message` en la " +"lista ``kwargs[‘mail_options’]`` . *decode_data* y *enable_SMTPUTF8* no se " +"pueden establecer en ``True`` al mismo tiempo." #: ../Doc/library/smtpd.rst:61 msgid "" @@ -101,6 +132,13 @@ msgid "" "``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* cannot " "be set to ``True`` at the same time." msgstr "" +"*decode_data* especifica si la porción de datos de la transacción SMTP debe " +"decodificarse usando UTF-8. Cuando *decode_data* es ``False`` (el valor " +"predeterminado), el servidor anuncia la extensión ``8BITMIME`` (:rfc:" +"`6152`), acepta el parámetro ``BODY=8BITMIME`` al comando ``MAIL``, y cuando " +"está presente lo pasa a :meth:`process_message` en la lista " +"``kwargs['mail_options']``. *decode_data* y *enable_SMTPUTF8* no se pueden " +"establecer en ``True`` al mismo tiempo." #: ../Doc/library/smtpd.rst:71 msgid "" @@ -112,6 +150,13 @@ msgid "" "containing the contents of the e-mail (which should be in :rfc:`5321` " "format)." msgstr "" +"Lanza una excepción :exc:`NotImplementedError`. Sobrescribe este método en " +"subclases para hacer algo útil con este mensaje. Todo lo que se haya pasado " +"en el constructor como *remoteaddr* estará disponible en el atributo :attr:" +"`_remoteaddr`. *peer* es la dirección del host remoto, *mailfrom* es el " +"creador del sobre, *rcpttos* son los destinatarios del sobre y *data* es una " +"cadena de caracteres que contiene el contenido del correo electrónico (que " +"debe estar en formato :rfc:`5321`)." #: ../Doc/library/smtpd.rst:79 msgid "" @@ -119,6 +164,9 @@ msgid "" "argument will be a unicode string. If it is set to ``False``, it will be a " "bytes object." msgstr "" +"Si la palabra clave del constructor *decode_data* se establece en ``True``, " +"el argumento *data* será una cadena Unicode. Si se establece en ``False``, " +"será un objeto de bytes." #: ../Doc/library/smtpd.rst:83 msgid "" @@ -126,26 +174,35 @@ msgid "" "``decode_data=True`` was given as an init argument, otherwise it contains " "the following keys:" msgstr "" +"*kwargs* es un diccionario que contiene información adicional. Está vacío si " +"se proporcionó ``decode_data=True`` como argumento de inicialización; de lo " +"contrario, contiene las siguientes claves:" #: ../Doc/library/smtpd.rst:90 msgid "*mail_options*:" -msgstr "" +msgstr "*mail_options*:" #: ../Doc/library/smtpd.rst:88 msgid "" "a list of all received parameters to the ``MAIL`` command (the elements are " "uppercase strings; example: ``['BODY=8BITMIME', 'SMTPUTF8']``)." msgstr "" +"una lista de todos los parámetros recibidos para el comando ``MAIL`` (los " +"elementos son cadenas en mayúsculas; ejemplo: ``['BODY=8BITMIME', " +"'SMTPUTF8']``)." #: ../Doc/library/smtpd.rst:95 msgid "*rcpt_options*:" -msgstr "" +msgstr "*rcpt_options*:" #: ../Doc/library/smtpd.rst:93 msgid "" "same as *mail_options* but for the ``RCPT`` command. Currently no ``RCPT " "TO`` options are supported, so for now this will always be an empty list." msgstr "" +"igual que *mail_options* pero para el comando ``RCPT``. Actualmente, no se " +"admiten las opciones ``RCPT TO``, por lo que, por ahora, siempre será una " +"lista vacía." #: ../Doc/library/smtpd.rst:97 msgid "" @@ -153,26 +210,33 @@ msgid "" "to accept arbitrary keyword arguments, since future feature enhancements may " "add keys to the kwargs dictionary." 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." #: ../Doc/library/smtpd.rst:101 msgid "" "Return ``None`` to request a normal ``250 Ok`` response; otherwise return " "the desired response string in :RFC:`5321` format." msgstr "" +"Retorne ``None`` para solicitar una respuesta normal de ``250 Ok``; de lo " +"contrario, retorne la cadena de respuesta deseada en formato :RFC:`5321`." #: ../Doc/library/smtpd.rst:106 msgid "" "Override this in subclasses to use a custom :class:`SMTPChannel` for " "managing SMTP clients." msgstr "" +"Sobrescriba este método en las subclases para usar una clase :class:" +"`SMTPChannel` personalizada para administrar clientes SMTP." #: ../Doc/library/smtpd.rst:109 msgid "The *map* constructor argument." -msgstr "" +msgstr "El argumento del constructor *map*." #: ../Doc/library/smtpd.rst:112 msgid "*localaddr* and *remoteaddr* may now contain IPv6 addresses." -msgstr "" +msgstr "*localaddr* y *remoteaddr* ahora pueden contener direcciones IPv6." #: ../Doc/library/smtpd.rst:115 msgid "" @@ -180,24 +244,30 @@ msgid "" "*kwargs* parameter to :meth:`process_message` when *decode_data* is " "``False``." msgstr "" +"Los parámetros del constructor *decode_data* y *enable_SMTPUTF8*, y el " +"parámetro *kwargs* para :meth:`process_message` cuando *decode_data* es " +"``False``." #: ../Doc/library/smtpd.rst:120 ../Doc/library/smtpd.rst:190 msgid "*decode_data* is now ``False`` by default." -msgstr "" +msgstr "*decode_data* ahora es ``False`` por defecto." #: ../Doc/library/smtpd.rst:125 msgid "DebuggingServer Objects" -msgstr "" +msgstr "Objetos DebuggingServer" #: ../Doc/library/smtpd.rst:130 msgid "" "Create a new debugging server. Arguments are as per :class:`SMTPServer`. " "Messages will be discarded, and printed on stdout." msgstr "" +"Crea un nuevo servidor de depuración. Los argumentos son iguales que en :" +"class:`SMTPServer`. Los mensajes se descartarán y se imprimirán en la salida " +"estándar." #: ../Doc/library/smtpd.rst:135 msgid "PureProxy Objects" -msgstr "" +msgstr "Objetos PureProxy" #: ../Doc/library/smtpd.rst:140 msgid "" @@ -205,10 +275,14 @@ msgid "" "Everything will be relayed to *remoteaddr*. Note that running this has a " "good chance to make you into an open relay, so please be careful." msgstr "" +"Crea un nuevo servidor proxy puro. Los argumentos son iguales que en :class:" +"`SMTPServer`. Todo se transmitirá a *remoteaddr*. Tenga en cuenta que " +"ejecutar esto implica una buena posibilidad de convertirlo en un relé " +"abierto, así que tenga cuidado." #: ../Doc/library/smtpd.rst:146 msgid "MailmanProxy Objects" -msgstr "" +msgstr "Objetos MailmanProxy" #: ../Doc/library/smtpd.rst:151 msgid "" @@ -218,20 +292,29 @@ msgid "" "mailman. Note that running this has a good chance to make you into an open " "relay, so please be careful." msgstr "" +"Crea un nuevo servidor proxy puro. Los argumentos son iguales que en :class:" +"`SMTPServer`. Todo se transmitirá a *remoteaddr*, a menos que las " +"configuraciones locales de mailman conozcan una dirección, en cuyo caso se " +"manejará a través de mailman. Tenga en cuenta que ejecutar esto implica una " +"buena posibilidad de convertirlo en un relé abierto, así que tenga cuidado." #: ../Doc/library/smtpd.rst:158 msgid "SMTPChannel Objects" -msgstr "" +msgstr "Objetos SMTPChannel" #: ../Doc/library/smtpd.rst:163 msgid "" "Create a new :class:`SMTPChannel` object which manages the communication " "between the server and a single SMTP client." msgstr "" +"Crea un nuevo objeto :class:`SMTPChannel` que gestiona la comunicación entre " +"el servidor y un único cliente SMTP." #: ../Doc/library/smtpd.rst:166 msgid "*conn* and *addr* are as per the instance variables described below." msgstr "" +"*conn* y *addr* son según las variables de instancia que se describen a " +"continuación." #: ../Doc/library/smtpd.rst:172 msgid "" @@ -239,11 +322,17 @@ msgid "" "in :RFC:`6531`) should be enabled. The default is ``False``. *decode_data* " "and *enable_SMTPUTF8* cannot be set to ``True`` at the same time." msgstr "" +"*enable_SMTPUTF8* determina si la extensión ``SMTPUTF8`` (como se define en :" +"RFC:`6531`) debe estar habilitada. El valor predeterminado es ``False``. " +"*decode_data* y *enable_SMTPUTF8* no se pueden establecer en ``True`` al " +"mismo tiempo." #: ../Doc/library/smtpd.rst:177 msgid "" "A dictionary can be specified in *map* to avoid using a global socket map." msgstr "" +"Se puede especificar un diccionario en *map* para evitar el uso de un mapa " +"de socket global." #: ../Doc/library/smtpd.rst:179 msgid "" @@ -251,34 +340,43 @@ msgid "" "should be decoded using UTF-8. The default is ``False``. *decode_data* and " "*enable_SMTPUTF8* cannot be set to ``True`` at the same time." msgstr "" +"*decode_data* especifica si la porción de datos de la transacción SMTP debe " +"decodificarse usando UTF-8. El valor predeterminado es ``False``. " +"*decode_data* y *enable_SMTPUTF8* no se pueden establecer en ``True`` al " +"mismo tiempo." #: ../Doc/library/smtpd.rst:184 msgid "" "To use a custom SMTPChannel implementation you need to override the :attr:" "`SMTPServer.channel_class` of your :class:`SMTPServer`." msgstr "" +"Para utilizar una implementación SMTPChannel personalizada, debe anular :" +"attr:`SMTPServer.channel_class` de su :class:`SMTPServer`." #: ../Doc/library/smtpd.rst:187 msgid "The *decode_data* and *enable_SMTPUTF8* parameters were added." -msgstr "" +msgstr "Se agregaron los parámetros *decode_data* y *enable_SMTPUTF8*." #: ../Doc/library/smtpd.rst:193 msgid "The :class:`SMTPChannel` has the following instance variables:" msgstr "" +"La clase :class:`SMTPChannel` tiene las siguientes variables de instancia:" #: ../Doc/library/smtpd.rst:197 msgid "Holds the :class:`SMTPServer` that spawned this channel." -msgstr "" +msgstr "Contiene el :class:`SMTPServer` que generó este canal." #: ../Doc/library/smtpd.rst:201 msgid "Holds the socket object connecting to the client." -msgstr "" +msgstr "Contiene el objeto de socket que se conecta al cliente." #: ../Doc/library/smtpd.rst:205 msgid "" "Holds the address of the client, the second value returned by :func:`socket." "accept `" msgstr "" +"Contiene la dirección del cliente, el segundo valor retornado por :func:" +"`socket.accept `" #: ../Doc/library/smtpd.rst:210 msgid "" @@ -286,47 +384,65 @@ msgid "" "client. The lines have their ``\"\\r\\n\"`` line ending translated to ``\"\\n" "\"``." msgstr "" +"Contiene una lista de las cadenas de línea (decodificadas mediante UTF-8) " +"recibidas del cliente. Las líneas tienen su final de línea ``\"\\r\\n\"`` " +"traducido a ``\"\\n\"``." #: ../Doc/library/smtpd.rst:216 msgid "" "Holds the current state of the channel. This will be either :attr:`COMMAND` " "initially and then :attr:`DATA` after the client sends a \"DATA\" line." msgstr "" +"Contiene el estado actual del canal. Será :attr:`COMMAND` inicialmente y " +"luego :attr:`DATA` después de que el cliente envíe una línea \"DATA\"." #: ../Doc/library/smtpd.rst:222 msgid "" "Holds a string containing the greeting sent by the client in its \"HELO\"." msgstr "" +"Contiene una cadena de caracteres que contiene el saludo enviado por el " +"cliente en su \"HELO\"." #: ../Doc/library/smtpd.rst:226 msgid "" "Holds a string containing the address identified in the \"MAIL FROM:\" line " "from the client." msgstr "" +"Contiene una cadena de caracteres que contiene la dirección identificada en " +"la línea \"MAIL FROM:\" del cliente." #: ../Doc/library/smtpd.rst:231 msgid "" "Holds a list of strings containing the addresses identified in the \"RCPT TO:" "\" lines from the client." msgstr "" +"Contiene una lista de cadenas de caracteres que contienen las direcciones " +"identificadas en las líneas \"RCPT TO:\" del cliente." #: ../Doc/library/smtpd.rst:236 msgid "" "Holds a string containing all of the data sent by the client during the DATA " "state, up to but not including the terminating ``\"\\r\\n.\\r\\n\"``." msgstr "" +"Contiene una cadena de caracteres que contiene todos los datos enviados por " +"el cliente durante el estado de DATA, hasta pero sin incluir la terminación " +"``\"\\r\\n.\\r\\n\"``." #: ../Doc/library/smtpd.rst:241 msgid "" "Holds the fully-qualified domain name of the server as returned by :func:" "`socket.getfqdn`." msgstr "" +"Contiene el nombre de dominio completo del servidor como lo retorna :func:" +"`socket.getfqdn`." #: ../Doc/library/smtpd.rst:246 msgid "" "Holds the name of the client peer as returned by ``conn.getpeername()`` " "where ``conn`` is :attr:`conn`." msgstr "" +"Contiene el nombre del par del cliente como lo retorna ``conn." +"getpeername()`` donde ``conn`` es :attr:`conn`." #: ../Doc/library/smtpd.rst:249 msgid "" @@ -335,54 +451,62 @@ msgid "" "into the base :class:`SMTPChannel` class are methods for handling the " "following commands (and responding to them appropriately):" msgstr "" +"La clase :class:`SMTPChannel` opera invocando métodos llamados " +"``smtp_`` al recibir una línea de comando del cliente. Construidos " +"en la clase base :class:`SMTPChannel`, son métodos para manejar los " +"siguientes comandos (y responder a ellos de manera apropiada):" #: ../Doc/library/smtpd.rst:255 msgid "Command" -msgstr "" +msgstr "Comando" #: ../Doc/library/smtpd.rst:255 msgid "Action taken" -msgstr "" +msgstr "Acción tomada" #: ../Doc/library/smtpd.rst:257 msgid "HELO" -msgstr "" +msgstr "HELO" #: ../Doc/library/smtpd.rst:257 msgid "" "Accepts the greeting from the client and stores it in :attr:" "`seen_greeting`. Sets server to base command mode." msgstr "" +"Acepta el saludo del cliente y lo almacena en :attr:`seen_greeting`. " +"Establece el servidor en el modo de comando base." #: ../Doc/library/smtpd.rst:259 msgid "EHLO" -msgstr "" +msgstr "EHLO" #: ../Doc/library/smtpd.rst:259 msgid "" "Accepts the greeting from the client and stores it in :attr:" "`seen_greeting`. Sets server to extended command mode." msgstr "" +"Acepta el saludo del cliente y lo almacena en :attr:`seen_greeting`. " +"Establece el servidor en el modo de comando extendido." #: ../Doc/library/smtpd.rst:261 msgid "NOOP" -msgstr "" +msgstr "NOOP" #: ../Doc/library/smtpd.rst:261 msgid "Takes no action." -msgstr "" +msgstr "No realiza ninguna acción." #: ../Doc/library/smtpd.rst:262 msgid "QUIT" -msgstr "" +msgstr "QUIT" #: ../Doc/library/smtpd.rst:262 msgid "Closes the connection cleanly." -msgstr "" +msgstr "Cierra la conexión limpiamente." #: ../Doc/library/smtpd.rst:263 msgid "MAIL" -msgstr "" +msgstr "MAIL" #: ../Doc/library/smtpd.rst:263 msgid "" @@ -390,30 +514,38 @@ msgid "" "`mailfrom`. In extended command mode, accepts the :rfc:`1870` SIZE " "attribute and responds appropriately based on the value of *data_size_limit*." msgstr "" +"Acepta la sintaxis \"MAIL FROM:\" y almacena la dirección proporcionada " +"como :attr:`mailfrom`. En el modo de comando extendido, acepta el atributo :" +"rfc:`1870` SIZE y responde apropiadamente según el valor de " +"*data_size_limit*." #: ../Doc/library/smtpd.rst:267 msgid "RCPT" -msgstr "" +msgstr "RCPT" #: ../Doc/library/smtpd.rst:267 msgid "" "Accepts the \"RCPT TO:\" syntax and stores the supplied addresses in the :" "attr:`rcpttos` list." msgstr "" +"Acepta la sintaxis \"RCPT TO:\" y almacena las direcciones proporcionadas en " +"la lista :attr:`rcpttos`." #: ../Doc/library/smtpd.rst:269 msgid "RSET" -msgstr "" +msgstr "RSET" #: ../Doc/library/smtpd.rst:269 msgid "" "Resets the :attr:`mailfrom`, :attr:`rcpttos`, and :attr:`received_data`, but " "not the greeting." msgstr "" +"Restablece :attr:`mailfrom`, :attr:`rcpttos` y :attr:`received_data`, pero " +"no el saludo." #: ../Doc/library/smtpd.rst:271 msgid "DATA" -msgstr "" +msgstr "DATA" #: ../Doc/library/smtpd.rst:271 msgid "" @@ -421,27 +553,30 @@ msgid "" "client in :attr:`received_data` until the terminator ``\"\\r\\n.\\r\\n\"`` " "is received." msgstr "" +"Establece el estado interno en :attr:`DATA` y almacena las líneas restantes " +"del cliente en :attr:`received_data` hasta que se recibe el terminador ``”\\r" +"\\n.\\r\\n”``." #: ../Doc/library/smtpd.rst:274 msgid "HELP" -msgstr "" +msgstr "HELP" #: ../Doc/library/smtpd.rst:274 msgid "Returns minimal information on command syntax" -msgstr "" +msgstr "Retorna información mínima sobre la sintaxis del comando" #: ../Doc/library/smtpd.rst:275 msgid "VRFY" -msgstr "" +msgstr "VRFY" #: ../Doc/library/smtpd.rst:275 msgid "Returns code 252 (the server doesn't know if the address is valid)" -msgstr "" +msgstr "Retorna el código 252 (el servidor no sabe si la dirección es válida)" #: ../Doc/library/smtpd.rst:276 msgid "EXPN" -msgstr "" +msgstr "EXPN" #: ../Doc/library/smtpd.rst:276 msgid "Reports that the command is not implemented." -msgstr "" +msgstr "Informa que el comando no está implementado." diff --git a/library/smtplib.po b/library/smtplib.po index bd79511cd8..41b7ef791e 100644 --- a/library/smtplib.po +++ b/library/smtplib.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: 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: 2020-12-21 19:42+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: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/smtplib.rst:2 msgid ":mod:`smtplib` --- SMTP protocol client" -msgstr "" +msgstr ":mod:`smtplib` --- Cliente de protocolo SMTP" #: ../Doc/library/smtplib.rst:9 msgid "**Source code:** :source:`Lib/smtplib.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/smtplib.py`" #: ../Doc/library/smtplib.rst:17 msgid "" @@ -35,6 +37,11 @@ msgid "" "daemon. For details of SMTP and ESMTP operation, consult :rfc:`821` (Simple " "Mail Transfer Protocol) and :rfc:`1869` (SMTP Service Extensions)." msgstr "" +"El módulo :mod:`smtplib` define un objeto de sesión de cliente SMTP que se " +"puede usar para mandar correo a cualquier máquina de Internet con un demonio " +"de escucha SMTP o ESMTP. Para detalles sobre el funcionamiento de SMTP o " +"ESMTP, consulta :rfc:`821` (**Simple Mail Transfer Protocol**) y :rfc:`1869` " +"(Extensiones de Servicio SMTP)." #: ../Doc/library/smtplib.rst:25 msgid "" @@ -55,12 +62,32 @@ msgid "" "bind to as its source address before connecting. If omitted (or if host or " "port are ``''`` and/or 0 respectively) the OS default behavior will be used." msgstr "" +"Una instancia :class:`SMTP` encapsula una conexión SMTP. Tiene métodos que " +"admiten un repertorio completo de operaciones SMTP y ESMTP. Si se " +"proporcionan los parámetros opcionales de host y puerto, el método :meth:" +"`connect` de SMTP se llama con esos parámetros durante la inicialización. " +"Si se especifica, *local_hostname* se usa como FQDN del host local in el " +"comando HELO/EHLO. De lo contrario, el hostname local se busca usando :func:" +"`socket.getfqdn`. Si la llamada a :meth:`connect` retorna cualquier cosa " +"que no sea un código de éxito, se lanza un :exc:`SMTPConnectError`. El " +"parámetro *timeout* opcional especifica un timeout en segundos para bloquear " +"operaciones como el intento de conexión (si no se especifica, se utilizará " +"la configuración global del timeout por defecto). Si el timeout de espera " +"expira, se lanza :exc:`socket.timeout`. El parámetro opcional " +"source_address permite el enlace a alguna dirección de origen específica en " +"una máquina con múltiples interfaces de red, y/o a algún puerto TCP de " +"origen específico. Se necesita una tupla de 2 (host, puerto), para que el " +"socket se enlace como su dirección de origen antes de conectarse. Si se " +"omite (os si el host o el puerto son ``''`` y/o 0 respectivamente) se " +"utilizara el comportamiento por defecto del SO." #: ../Doc/library/smtplib.rst:43 msgid "" "For normal use, you should only require the initialization/connect, :meth:" "`sendmail`, and :meth:`SMTP.quit` methods. An example is included below." msgstr "" +"Para un uso normal, solo debe requerir los métodos initialization/connect, :" +"meth:`sendmail` y :meth:`SMTP.quit`. A continuación se incluye un ejemplo." #: ../Doc/library/smtplib.rst:47 msgid "" @@ -68,11 +95,16 @@ msgid "" "like this, the SMTP ``QUIT`` command is issued automatically when the :" "keyword:`!with` statement exits. E.g.::" msgstr "" +"La clase :class:`SMTP` admite la instrucción :keyword:`with`. Cuando se usa " +"así, el comando SMTP ``QUIT`` se emite automáticamente cuando la :keyword:`!" +"with` sale de la instrucción. por ejemplo::" msgid "" "Raises an :ref:`auditing event ` ``smtplib.send`` with arguments " "``self``, ``data``." msgstr "" +"Genera un :ref:`auditing event ` ``smtplib.send`` con argumentos " +"``self``, ``data``." #: ../Doc/library/smtplib.rst:60 msgid "" @@ -80,18 +112,21 @@ msgid "" "send`` with arguments ``self`` and ``data``, where ``data`` is the bytes " "about to be sent to the remote host." msgstr "" +"Todos los comandos generarán un :ref:`evento de auditoría ` " +"``smtplib.SMTP.send`` con argumentos ``self`` y ``data``, donde ``data`` son " +"los bytes que están a punto de ser enviado al host remoto." #: ../Doc/library/smtplib.rst:64 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "Se agregó soporte para la sentencia :keyword:`with`." #: ../Doc/library/smtplib.rst:67 ../Doc/library/smtplib.rst:96 msgid "source_address argument was added." -msgstr "" +msgstr "se agrego el argumento source_address." #: ../Doc/library/smtplib.rst:70 msgid "The SMTPUTF8 extension (:rfc:`6531`) is now supported." -msgstr "" +msgstr "La extensión SMTPUTF8 (:rfc:`6531`) ahora es compatible." #: ../Doc/library/smtplib.rst:78 msgid "" @@ -106,6 +141,16 @@ msgid "" "aspects of the secure connection. Please read :ref:`ssl-security` for best " "practices." msgstr "" +"Una instancia de :class:`SMTP_SSL` se comporta exactamente igual que las " +"instancias de :class:`SMTP`. :class:`SMTP_SSL` debe usarse para situaciones " +"donde se requiere SSL desde el comienzo de la conexión y el uso :meth:" +"`starttls` no es apropiado. Si no se especifica *host*, se utiliza el host " +"local. Si *port* es cero, se utiliza el puerto estándar SMTP sobre SSL " +"(465). Los argumentos opcionales *local_hostname*, *timeout* y " +"*source_address* tienen el mismo significado que en la clase :class:`SMTP`. " +"*context*, también opcional, puede contener una :class:`~ssl.SSLContext` y " +"permite configurar varios aspectos de la conexión segura. Por favor lea :ref:" +"`ssl-security` para conocer las mejores prácticas." #: ../Doc/library/smtplib.rst:89 msgid "" @@ -113,16 +158,22 @@ msgid "" "point to a PEM formatted private key and certificate chain file for the SSL " "connection." msgstr "" +"*keyfile* y *certfile* son una alternativa heredada a *context* y pueden " +"apuntar a una clave privada con formato PEM y un archivo de cadena de " +"certificados para la conexión SSL." #: ../Doc/library/smtplib.rst:93 ../Doc/library/smtplib.rst:416 msgid "*context* was added." -msgstr "" +msgstr "se agregó *contexto*." #: ../Doc/library/smtplib.rst:99 msgid "" "The class now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." msgstr "" +"La clase ahora admite la verificación del nombre de host con :attr:`ssl." +"SSLContext.check_hostname` y *Server Name Indication* (ver :data:`ssl." +"HAS_SNI`)." #: ../Doc/library/smtplib.rst:106 ../Doc/library/smtplib.rst:402 msgid "" @@ -130,6 +181,10 @@ msgid "" "meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." "create_default_context` select the system's trusted CA certificates for you." msgstr "" +"*keyfile* y *certfile* están obsoletos en favor de *context*. Por favor use :" +"meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deje que :func:`ssl." +"create_default_context` seleccione los certificados CA confiables del " +"sistema para usted." #: ../Doc/library/smtplib.rst:114 msgid "" @@ -140,6 +195,13 @@ msgid "" "meaning as they do in the :class:`SMTP` class. To specify a Unix socket, you " "must use an absolute path for *host*, starting with a '/'." msgstr "" +"El protocolo LMTP, que es muy similar a ESMTP, se basa en gran medida en el " +"cliente SMTP estándar. Es común usar sockets Unix para LMTP, por lo que " +"nuestro método :meth:`connect` debe ser compatible con eso, así como con un " +"servidor host:puerto normal. Los argumentos opcionales local_hostname y " +"source_address tienen el mismo significado que en la clase :class:`SMTP`. " +"Para especificar un socket Unix, debe usar una ruta absoluta para *host*, " +"comenzando con '/'." #: ../Doc/library/smtplib.rst:121 msgid "" @@ -147,20 +209,25 @@ msgid "" "Unix socket, LMTP generally don't support or require any authentication, but " "your mileage might vary." msgstr "" +"Se admite la autenticación mediante el mecanismo SMTP habitual. Cuando se " +"usa un socket Unix, LMTP generalmente no admite ni requiere autenticación, " +"pero su millaje puede variar." #: ../Doc/library/smtplib.rst:126 msgid "A nice selection of exceptions is defined as well:" -msgstr "" +msgstr "También se define una buena selección de excepciones:" #: ../Doc/library/smtplib.rst:131 msgid "" "Subclass of :exc:`OSError` that is the base exception class for all the " "other exceptions provided by this module." msgstr "" +"Subclase de :exc:`OSError` que es la clase de excepción base para todas las " +"demás excepciones proporcionadas por este módulo." #: ../Doc/library/smtplib.rst:134 msgid "SMTPException became subclass of :exc:`OSError`" -msgstr "" +msgstr "SMTPException se convirtió en subclase de :exc:`OSError`" #: ../Doc/library/smtplib.rst:140 msgid "" @@ -168,6 +235,9 @@ msgid "" "an attempt is made to use the :class:`SMTP` instance before connecting it to " "a server." msgstr "" +"Esta excepción se genera cuando el servidor se desconecta inesperadamente o " +"cuando se intenta usar la instancia :class:`SMTP` antes de conectarlo a un " +"servidor." #: ../Doc/library/smtplib.rst:147 msgid "" @@ -176,6 +246,11 @@ msgid "" "error code. The error code is stored in the :attr:`smtp_code` attribute of " "the error, and the :attr:`smtp_error` attribute is set to the error message." msgstr "" +"Clase base para todas las excepciones que incluyen un código de error SMTP. " +"Estas excepciones se generan en algunos casos cuando el servidor SMTP " +"devuelve un código de error. El código de error se almacena en el atributo :" +"attr:`smtp_code` del error, y el atributo :attr:`smtp_error` se establece en " +"el mensaje de error." #: ../Doc/library/smtplib.rst:155 msgid "" @@ -183,6 +258,9 @@ msgid "" "`SMTPResponseException` exceptions, this sets 'sender' to the string that " "the SMTP server refused." msgstr "" +"Dirección del remitente rechazada. Además de los atributos establecidos por " +"todas las excepciones :exc:`SMTPResponseException`, éste establece " +"'remitente' para la cadena de caracteres que el servidor SMTP rechazó." #: ../Doc/library/smtplib.rst:162 msgid "" @@ -190,42 +268,50 @@ msgid "" "accessible through the attribute :attr:`recipients`, which is a dictionary " "of exactly the same sort as :meth:`SMTP.sendmail` returns." msgstr "" +"Se rechazaron todas las direcciones de destinatarios. Los errores para cada " +"destinatario son accesibles mediante el atributo :attr:`recipients`, el cual " +"es un diccionario del mismo tipo que el :meth:`SMTP.sendmail` retorna." #: ../Doc/library/smtplib.rst:169 msgid "The SMTP server refused to accept the message data." -msgstr "" +msgstr "El servidor SMTP se negó a aceptar los datos del mensaje." #: ../Doc/library/smtplib.rst:174 msgid "Error occurred during establishment of a connection with the server." msgstr "" +"Se produjo un error durante el establecimiento de conexión con el servidor." #: ../Doc/library/smtplib.rst:179 msgid "The server refused our ``HELO`` message." -msgstr "" +msgstr "El servidor rechazó nuestro mensaje ``HELO``." #: ../Doc/library/smtplib.rst:184 msgid "The command or option attempted is not supported by the server." -msgstr "" +msgstr "El servidor no admite el comando o la opción que se intentó." #: ../Doc/library/smtplib.rst:191 msgid "" "SMTP authentication went wrong. Most probably the server didn't accept the " "username/password combination provided." msgstr "" +"La autenticación SMTP salió mal. Lo más probable es que el servidor no " +"aceptó la combinación proporcionada de username/password." #: ../Doc/library/smtplib.rst:199 msgid ":rfc:`821` - Simple Mail Transfer Protocol" -msgstr "" +msgstr ":rfc:`821` - Simple Mail Transfer Protocol" #: ../Doc/library/smtplib.rst:198 msgid "" "Protocol definition for SMTP. This document covers the model, operating " "procedure, and protocol details for SMTP." msgstr "" +"Definición de protocolo para SMTP. Este documento cubre el modelo, el " +"procedimiento operativo y los detalles del protocolo para SMTP." #: ../Doc/library/smtplib.rst:203 msgid ":rfc:`1869` - SMTP Service Extensions" -msgstr "" +msgstr ":rfc:`1869` - Extensiones de Servicio SMTP" #: ../Doc/library/smtplib.rst:202 msgid "" @@ -233,14 +319,18 @@ msgid "" "extending SMTP with new commands, supporting dynamic discovery of the " "commands provided by the server, and defines a few additional commands." msgstr "" +"Definición de las extensiones ESMTP para SMTP. Esto describe un marco para " +"extender SMTP con nuevos comandos, que admite el descubrimiento dinámico de " +"los comandos proporcionados por el servidor y define algunos comandos " +"adicionales." #: ../Doc/library/smtplib.rst:210 msgid "SMTP Objects" -msgstr "" +msgstr "Objetos SMTP" #: ../Doc/library/smtplib.rst:212 msgid "An :class:`SMTP` instance has the following methods:" -msgstr "" +msgstr "Una instancia :class:`SMTP` tiene los siguientes métodos:" #: ../Doc/library/smtplib.rst:217 msgid "" @@ -249,22 +339,31 @@ msgid "" "the server. A value of 2 for *level* results in these messages being " "timestamped." msgstr "" +"Establezca el nivel de salida de depuración. Un valor de 1 o ``True`` para " +"*level* da como resultado mensajes de depuración para la conexión y para " +"todos los mensajes enviados y recibidos desde el servidor. Un valor de 2 " +"para *level* da como resultado que estos mensajes tengan una marca de tiempo." #: ../Doc/library/smtplib.rst:222 msgid "Added debuglevel 2." -msgstr "" +msgstr "Se agregó el nivel de depuración 2." #: ../Doc/library/smtplib.rst:227 msgid "" "Send a command *cmd* to the server. The optional argument *args* is simply " "concatenated to the command, separated by a space." msgstr "" +"Envíe un comando *cmd* al servidor. El argumento opcional *args* simplemente " +"se concatena al comando, separado por un espacio." #: ../Doc/library/smtplib.rst:230 msgid "" "This returns a 2-tuple composed of a numeric response code and the actual " "response line (multiline responses are joined into one long line.)" msgstr "" +"Esto devuelve una tupla de 2 compuestos por un código de respuesta numérico " +"y la línea de respuesta real (las respuestas de varias líneas se unen en una " +"línea larga)." #: ../Doc/library/smtplib.rst:233 msgid "" @@ -272,12 +371,17 @@ msgid "" "explicitly. It is used to implement other methods and may be useful for " "testing private extensions." msgstr "" +"En funcionamiento normal, no debería ser necesario llamar a este método " +"explícitamente. Se utiliza para implementar otros métodos y puede resultar " +"útil para probar extensiones privadas." #: ../Doc/library/smtplib.rst:237 msgid "" "If the connection to the server is lost while waiting for the reply, :exc:" "`SMTPServerDisconnected` will be raised." msgstr "" +"Si se pierde la conexión con el servidor mientras se espera la respuesta, se " +"activará :exc:`SMTPServerDisconnected`." #: ../Doc/library/smtplib.rst:243 msgid "" @@ -289,12 +393,21 @@ msgid "" "Returns a 2-tuple of the response code and message sent by the server in its " "connection response." msgstr "" +"Conéctese a un host en un puerto determinado. Los valores predeterminados " +"son para conectarse al host local en el puerto SMTP estándar (25). Si el " +"nombre de host termina con dos puntos (``':'``) seguido de un número, ese " +"sufijo se eliminará y el número se interpretará como el número de puerto a " +"utilizar. El constructor invoca automáticamente este método si se especifica " +"un host durante la instanciación. Devuelve una tupla de 2 del código de " +"respuesta y el mensaje enviado por el servidor en su respuesta de conexión." #: ../Doc/library/smtplib.rst:251 msgid "" "Raises an :ref:`auditing event ` ``smtplib.connect`` with " "arguments ``self``, ``host``, ``port``." msgstr "" +"Genera un :ref:`evento de auditoría ` ``smtplib.connect`` con " +"argumentos ``self``, ``host``, ``port``." #: ../Doc/library/smtplib.rst:256 msgid "" @@ -303,6 +416,10 @@ msgid "" "returned by the server is stored as the :attr:`helo_resp` attribute of the " "object." msgstr "" +"Identifíquese en el servidor SMTP usando ``HELO``. El argumento del nombre " +"de host tiene como valor predeterminado el nombre de dominio completo del " +"host local. El mensaje devuelto por el servidor se almacena como el " +"atributo :attr:`helo_resp` del objeto." #: ../Doc/library/smtplib.rst:261 msgid "" @@ -310,6 +427,9 @@ msgid "" "explicitly. It will be implicitly called by the :meth:`sendmail` when " "necessary." msgstr "" +"En funcionamiento normal, no debería ser necesario llamar a este método " +"explícitamente. Será llamado implícitamente por :meth:`sendmail` cuando sea " +"necesario." #: ../Doc/library/smtplib.rst:267 msgid "" @@ -322,6 +442,15 @@ msgid "" "`esmtp_features` will be a dictionary containing the names of the SMTP " "service extensions this server supports, and their parameters (if any)." msgstr "" +"Identifíquese en un servidor ESMTP usando ``EHLO``. El argumento del nombre " +"de host tiene como valor predeterminado el nombre de dominio completo del " +"host local. Examine la respuesta para la opción ESMTP y guárdelos para que " +"los use :meth:`has_extn`. También establece varios atributos informativos: " +"el mensaje devuelto por el servidor se almacena como el atributo :attr:" +"`ehlo_resp`, :attr:`does_esmtp` se establece en verdadero o falso " +"dependiendo de si el servidor admite ESMTP, y :attr:`esmtp_features` será un " +"diccionario que contiene los nombres de las extensiones de servicio SMTP que " +"admite este servidor, y sus parámetros (si los hay)." #: ../Doc/library/smtplib.rst:276 msgid "" @@ -329,6 +458,9 @@ msgid "" "be necessary to call this method explicitly. It will be implicitly called " "by :meth:`sendmail` when necessary." msgstr "" +"A menos que desee utilizar :meth:`has_extn` antes de enviar correo, no " +"debería ser necesario llamar a este método explícitamente. Se llamará " +"implícitamente por :meth:`sendmail` cuando sea necesario." #: ../Doc/library/smtplib.rst:282 msgid "" @@ -336,22 +468,28 @@ msgid "" "previous ``EHLO`` or ``HELO`` command this session. It tries ESMTP ``EHLO`` " "first." msgstr "" +"Este método llama a :meth:`ehlo` o :meth:`helo` si no ha habido ningún " +"comando ``EHLO`` o ``HELO`` anterior en esta sesión. Primero prueba ESMTP " +"``EHLO``." #: ../Doc/library/smtplib.rst:286 ../Doc/library/smtplib.rst:316 #: ../Doc/library/smtplib.rst:408 ../Doc/library/smtplib.rst:477 msgid ":exc:`SMTPHeloError`" -msgstr "" +msgstr ":exc:`SMTPHeloError`" #: ../Doc/library/smtplib.rst:287 ../Doc/library/smtplib.rst:316 #: ../Doc/library/smtplib.rst:408 ../Doc/library/smtplib.rst:477 msgid "The server didn't reply properly to the ``HELO`` greeting." -msgstr "" +msgstr "El servidor no respondió correctamente al saludo ``HELO``." #: ../Doc/library/smtplib.rst:291 msgid "" "Return :const:`True` if *name* is in the set of SMTP service extensions " "returned by the server, :const:`False` otherwise. Case is ignored." msgstr "" +"Retorna :const:`True` si *name* está en el conjunto de extensiones de " +"servicio SMTP devueltas por el servidor, :const:`False` en caso contrario. " +"El método es insensible a la presencia de mayúsculas en *name*." #: ../Doc/library/smtplib.rst:297 msgid "" @@ -360,10 +498,15 @@ msgid "" "human name) if the user address is valid. Otherwise returns an SMTP error " "code of 400 or greater and an error string." msgstr "" +"Verifique la validez de una dirección en este servidor usando SMTP ``VRFY``. " +"Retorna una tupla que consta del código 250 y una dirección completa :rfc:" +"`822` (incluido el nombre humano) si la dirección del usuario es válida. De " +"lo contrario, devuelve un código de error SMTP de 400 o más y una cadena de " +"error." #: ../Doc/library/smtplib.rst:304 msgid "Many sites disable SMTP ``VRFY`` in order to foil spammers." -msgstr "" +msgstr "Muchos sitios desactivan SMTP ``VRFY`` para frustrar a los spammers." #: ../Doc/library/smtplib.rst:309 msgid "" @@ -373,31 +516,36 @@ msgid "" "``EHLO`` first. This method will return normally if the authentication was " "successful, or may raise the following exceptions:" msgstr "" +"Inicie sesión en un servidor SMTP que requiera autenticación. Los argumentos " +"son el nombre de usuario y la contraseña para autenticarse. Si no ha habido " +"ningún comando ``EHLO`` o ``HELO`` anterior en esta sesión, este método " +"prueba primero ESMTP ``EHLO``. Este método regresará normalmente si la " +"autenticación fue exitosa o puede generar las siguientes excepciones:" #: ../Doc/library/smtplib.rst:319 msgid ":exc:`SMTPAuthenticationError`" -msgstr "" +msgstr ":exc:`SMTPAuthenticationError`" #: ../Doc/library/smtplib.rst:319 msgid "The server didn't accept the username/password combination." -msgstr "" +msgstr "El servidor no aceptó la combinación de nombre de username/password." #: ../Doc/library/smtplib.rst:322 ../Doc/library/smtplib.rst:411 #: ../Doc/library/smtplib.rst:488 msgid ":exc:`SMTPNotSupportedError`" -msgstr "" +msgstr ":exc:`SMTPNotSupportedError`" #: ../Doc/library/smtplib.rst:322 msgid "The ``AUTH`` command is not supported by the server." -msgstr "" +msgstr "El servidor no admite el comando ``AUTH``." #: ../Doc/library/smtplib.rst:325 msgid ":exc:`SMTPException`" -msgstr "" +msgstr ":exc:`SMTPException`" #: ../Doc/library/smtplib.rst:325 msgid "No suitable authentication method was found." -msgstr "" +msgstr "No se encontró ningún método de autenticación adecuado." #: ../Doc/library/smtplib.rst:327 msgid "" @@ -406,6 +554,10 @@ msgid "" "for a list of supported authentication methods. *initial_response_ok* is " "passed through to :meth:`auth`." msgstr "" +"Cada uno de los métodos de autenticación admitidos por :mod:`smtplib` se " +"prueban a su vez si se anuncian como admitidos por el servidor. Consulte :" +"meth:`auth` para obtener una lista de los métodos de autenticación " +"admitidos. *initial_response_ok* se pasa a :meth:`auth`." #: ../Doc/library/smtplib.rst:332 msgid "" @@ -414,18 +566,26 @@ msgid "" "in :rfc:`4954` can be sent along with the ``AUTH`` command, rather than " "requiring a challenge/response." msgstr "" +"El argumento de palabra clave opcional *initial_response_ok* especifica si, " +"para los métodos de autenticación que lo admiten, se puede enviar una " +"\"respuesta inicial\" como se especifica en :rfc:`4954` junto con el comando " +"``AUTH``, en lugar de requerir un desafío/respuesta ." #: ../Doc/library/smtplib.rst:337 msgid "" ":exc:`SMTPNotSupportedError` may be raised, and the *initial_response_ok* " "parameter was added." msgstr "" +":exc:`SMTPNotSupportedError` se puede generar y se agregó el parámetro " +"*initial_response_ok*." #: ../Doc/library/smtplib.rst:344 msgid "" "Issue an ``SMTP`` ``AUTH`` command for the specified authentication " "*mechanism*, and handle the challenge response via *authobject*." msgstr "" +"Emita un comando ``SMTP`` ``AUTH`` para el *mechanism* de autenticación " +"especificado y maneje la respuesta de desafío a través de *authobject*." #: ../Doc/library/smtplib.rst:347 msgid "" @@ -433,15 +593,20 @@ msgid "" "argument to the ``AUTH`` command; the valid values are those listed in the " "``auth`` element of :attr:`esmtp_features`." msgstr "" +"*mechanism* especifica qué mecanismo de autenticación se utilizará como " +"argumento para el comando ``AUTH``; los valores válidos son los enumerados " +"en el elemento ``auth`` de :attr:`esmtp_features`." #: ../Doc/library/smtplib.rst:351 msgid "" "*authobject* must be a callable object taking an optional single argument:" msgstr "" +"*authobject* debe ser un objeto invocable que tome un único argumento " +"opcional:" #: ../Doc/library/smtplib.rst:353 msgid "data = authobject(challenge=None)" -msgstr "" +msgstr "data = authobject(challenge=None)" #: ../Doc/library/smtplib.rst:355 msgid "" @@ -453,6 +618,11 @@ msgid "" "``None`` when called with ``challenge=None``. If *initial_response_ok* is " "false, then ``authobject()`` will not be called first with ``None``." msgstr "" +"Si la verificación de respuesta inicial devuelve ``None``, o si " +"*initial_response_ok* es falso, se llamará a ``authobject()`` para procesar " +"la respuesta de desafío del servidor; el argumento *challenge* que se pasa " +"será un ``bytes``. Debería devolver *data* ASCII ``str`` que serán " +"codificados en base64 y enviados al servidor." #: ../Doc/library/smtplib.rst:363 msgid "" @@ -462,6 +632,11 @@ msgid "" "should return ASCII ``str`` *data* that will be base64 encoded and sent to " "the server." msgstr "" +"Si la verificación de respuesta inicial devuelve ``None``, o si " +"*initial_response_ok* es falso, se llamará a ``authobject()`` para procesar " +"la respuesta de desafío del servidor; el argumento *challenge* que se pasa " +"será un ``bytes``. Debería devolver *data* ASCII ``str`` que serán " +"codificados en base64 y enviados al servidor." #: ../Doc/library/smtplib.rst:369 msgid "" @@ -471,6 +646,11 @@ msgid "" "the ``user`` and ``password`` properties of the ``SMTP`` instance are set to " "appropriate values." msgstr "" +"La clase ``SMTP`` proporciona ``authobjects`` para los mecanismos ``CRAM-" +"MD5``, ``PLAIN`` y ``LOGIN``; se denominan ``SMTP.auth_cram_md5``, ``SMTP." +"auth_plain`` y ``SMTP.auth_login`` respectivamente. Todos requieren que las " +"propiedades de ``user`` y ``password`` de la instancia ``SMTP`` se " +"establezcan en los valores adecuados." #: ../Doc/library/smtplib.rst:375 msgid "" @@ -480,6 +660,11 @@ msgid "" "implementation of authentication methods not (or not yet) supported directly " "by :mod:`smtplib`." msgstr "" +"El código de usuario normalmente no necesita llamar a ``auth`` directamente, " +"sino que puede llamar al método :meth:`login`, que probará cada uno de los " +"mecanismos anteriores a su vez, en el orden indicado. ``auth`` está expuesto " +"para facilitar la implementación de métodos de autenticación que no (o aún " +"no) son compatibles directamente con :mod:`smtplib`." #: ../Doc/library/smtplib.rst:386 msgid "" @@ -487,12 +672,17 @@ msgid "" "commands that follow will be encrypted. You should then call :meth:`ehlo` " "again." msgstr "" +"Ponga la conexión SMTP en modo TLS (Seguridad de la capa de transporte). " +"Todos los comandos SMTP que siguen se cifrarán. Entonces deberías llamar a :" +"meth:`ehlo` de nuevo." #: ../Doc/library/smtplib.rst:390 msgid "" "If *keyfile* and *certfile* are provided, they are used to create an :class:" "`ssl.SSLContext`." msgstr "" +"Si se proporcionan *keyfile* y *certfile*, se utilizan para crear una :class:" +"`ssl.SSLContext`." #: ../Doc/library/smtplib.rst:393 msgid "" @@ -500,36 +690,50 @@ msgid "" "an alternative to using a keyfile and a certfile and if specified both " "*keyfile* and *certfile* should be ``None``." msgstr "" +"El parámetro *context* opcional es un objeto :class:`ssl.SSLContext`; Esta " +"es una alternativa al uso de un archivo de claves y un archivo de " +"certificado y, si se especifica, tanto *keyfile* como *certfile* deben ser " +"``None``." #: ../Doc/library/smtplib.rst:397 msgid "" "If there has been no previous ``EHLO`` or ``HELO`` command this session, " "this method tries ESMTP ``EHLO`` first." msgstr "" +"Si no ha habido ningún comando ``EHLO`` o ``HELO`` anterior en esta sesión, " +"este método intenta ESMTP ``EHLO`` primero." #: ../Doc/library/smtplib.rst:411 msgid "The server does not support the STARTTLS extension." -msgstr "" +msgstr "El servidor no admite la extensión STARTTLS." #: ../Doc/library/smtplib.rst:414 msgid ":exc:`RuntimeError`" -msgstr "" +msgstr ":exc:`RuntimeError`" #: ../Doc/library/smtplib.rst:414 msgid "SSL/TLS support is not available to your Python interpreter." msgstr "" +"La compatibilidad con SSL/TLS no está disponible para su intérprete de " +"Python." #: ../Doc/library/smtplib.rst:419 msgid "" "The method now supports hostname check with :attr:`SSLContext." "check_hostname` and *Server Name Indicator* (see :data:`~ssl.HAS_SNI`)." msgstr "" +"El método ahora admite la verificación del nombre de host con :attr:" +"`SSLContext.check_hostname` y *Server Name Indicator* (ver :data:`~ssl." +"HAS_SNI`)." #: ../Doc/library/smtplib.rst:424 msgid "" "The error raised for lack of STARTTLS support is now the :exc:" "`SMTPNotSupportedError` subclass instead of the base :exc:`SMTPException`." msgstr "" +"El error generado por falta de compatibilidad con STARTTLS ahora es la " +"subclase :exc:`SMTPNotSupportedError` en lugar de la base :exc:" +"`SMTPException`." #: ../Doc/library/smtplib.rst:432 msgid "" @@ -543,6 +747,16 @@ msgid "" "level methods such as :meth:`mail`, :meth:`rcpt` and :meth:`data` to send " "the message.)" msgstr "" +"Enviar correo. Los argumentos requeridos son :rfc:`822` cadena de dirección " +"de origen, una lista de :rfc:`822` cadenas de dirección (una cadena simple " +"se tratará como una lista con 1 dirección) y una cadena de mensaje. La " +"persona que llama puede pasar una lista de opciones de ESMTP (como " +"``8bitmime``) para usar en los comandos ``MAIL FROM`` como *mail_options*. " +"Las opciones de ESMTP (como los comandos ``DSN``) que deben usarse con todos " +"los comandos ``RCPT`` se pueden pasar como *rcpt_options*. (Si necesita usar " +"diferentes opciones de ESMTP para diferentes destinatarios, debe usar los " +"métodos de bajo nivel como :meth:`mail`, :meth:`rcpt` y :meth:`data` para " +"enviar el mensaje)." #: ../Doc/library/smtplib.rst:443 msgid "" @@ -550,6 +764,9 @@ msgid "" "envelope used by the transport agents. ``sendmail`` does not modify the " "message headers in any way." msgstr "" +"Los parámetros *from_addr* y *to_addrs* se utilizan para construir el sobre " +"del mensaje utilizado por los agentes de transporte. ``sendmail`` no " +"modifica los encabezados de los mensajes de ninguna manera." #: ../Doc/library/smtplib.rst:447 msgid "" @@ -558,6 +775,10 @@ msgid "" "\\r`` and ``\\n`` characters are converted to ``\\r\\n`` characters. A byte " "string is not modified." msgstr "" +"*msg* puede ser una cadena que contenga caracteres en el rango ASCII o una " +"cadena de bytes. Una cadena se codifica en bytes utilizando el códec ascii, " +"y los caracteres ``\\r`` y ``\\n`` solitarios se convierten en caracteres ``" +"\\ r\\n``. Una cadena de bytes no se modifica." #: ../Doc/library/smtplib.rst:452 msgid "" @@ -567,6 +788,11 @@ msgid "" "is in the feature set the server advertises). If ``EHLO`` fails, ``HELO`` " "will be tried and ESMTP options suppressed." msgstr "" +"Si no ha habido ningún comando ``EHLO`` o ``HELO`` anterior en esta sesión, " +"este método prueba primero ESMTP ``EHLO``. Si el servidor utiliza ESMTP, se " +"le pasará el tamaño del mensaje y cada una de las opciones especificadas (si " +"la opción está en el conjunto de funciones que anuncia el servidor). Si " +"``EHLO`` falla, se probará ``HELO`` y se eliminarán las opciones de ESMTP." #: ../Doc/library/smtplib.rst:458 msgid "" @@ -577,20 +803,28 @@ msgid "" "for each recipient that was refused. Each entry contains a tuple of the " "SMTP error code and the accompanying error message sent by the server." msgstr "" +"Este método volverá normalmente si se acepta el correo para al menos un " +"destinatario. De lo contrario, generará una excepción. Es decir, si este " +"método no genera una excepción, alguien debería recibir su correo. Si este " +"método no genera una excepción, devuelve un diccionario, con una entrada " +"para cada destinatario rechazado. Cada entrada contiene una tupla del código " +"de error SMTP y el mensaje de error adjunto enviado por el servidor." #: ../Doc/library/smtplib.rst:465 msgid "" "If ``SMTPUTF8`` is included in *mail_options*, and the server supports it, " "*from_addr* and *to_addrs* may contain non-ASCII characters." msgstr "" +"Si se incluye ``SMTPUTF8``' en *mail_options * y el servidor lo admite, " +"*from_addr* y *to_addrs* pueden contener caracteres no ASCII." #: ../Doc/library/smtplib.rst:468 msgid "This method may raise the following exceptions:" -msgstr "" +msgstr "Este método puede lanzar las siguientes excepciones:" #: ../Doc/library/smtplib.rst:474 msgid ":exc:`SMTPRecipientsRefused`" -msgstr "" +msgstr ":exc:`SMTPRecipientsRefused`" #: ../Doc/library/smtplib.rst:471 msgid "" @@ -599,46 +833,57 @@ msgid "" "refused recipients (like the one returned when at least one recipient was " "accepted)." msgstr "" +"Todos los destinatarios fueron rechazados. Nadie recibió el correo. El " +"atributo :attr:`recipients` del objeto de excepción es un diccionario con " +"información sobre los destinatarios rechazados (como el que se retorna " +"cuando se aceptó al menos un destinatario)." #: ../Doc/library/smtplib.rst:480 msgid ":exc:`SMTPSenderRefused`" -msgstr "" +msgstr ":exc:`SMTPSenderRefused`" #: ../Doc/library/smtplib.rst:480 msgid "The server didn't accept the *from_addr*." -msgstr "" +msgstr "El servidor no aceptó el *from_addr*." #: ../Doc/library/smtplib.rst:484 msgid ":exc:`SMTPDataError`" -msgstr "" +msgstr ":exc:`SMTPDataError`" #: ../Doc/library/smtplib.rst:483 msgid "" "The server replied with an unexpected error code (other than a refusal of a " "recipient)." msgstr "" +"El servidor respondió con un código de error inesperado (que no sea el " +"rechazo de un destinatario)." #: ../Doc/library/smtplib.rst:487 msgid "" "``SMTPUTF8`` was given in the *mail_options* but is not supported by the " "server." msgstr "" +"Se proporcionó ``SMTPUTF8`` en *mail_options* pero el servidor no lo admite." #: ../Doc/library/smtplib.rst:490 msgid "" "Unless otherwise noted, the connection will be open even after an exception " "is raised." msgstr "" +"A menos que se indique lo contrario, la conexión estará abierta incluso " +"después de que se lance una excepción." #: ../Doc/library/smtplib.rst:493 msgid "*msg* may be a byte string." -msgstr "" +msgstr "*msg* puede ser una cadena de bytes." #: ../Doc/library/smtplib.rst:496 msgid "" "``SMTPUTF8`` support added, and :exc:`SMTPNotSupportedError` may be raised " "if ``SMTPUTF8`` is specified but the server does not support it." msgstr "" +"Se agregó compatibilidad con ``SMTPUTF8``, y :exc:`SMTPNotSupportedError` " +"puede aparecer si se especifica ``SMTPUTF8`` pero el servidor no lo admite." #: ../Doc/library/smtplib.rst:504 msgid "" @@ -647,6 +892,10 @@ msgid "" "the same meaning as for :meth:`sendmail`, except that *msg* is a ``Message`` " "object." msgstr "" +"Este es un método conveniente para llamar a :meth:`sendmail` con el mensaje " +"representado por un objeto :class:`email.message.Message`. Los argumentos " +"tienen el mismo significado que para :meth:`sendmail`, excepto que *msg* es " +"un objeto ``Mensaje``." #: ../Doc/library/smtplib.rst:509 msgid "" @@ -662,6 +911,18 @@ msgid "" "`ValueError` is raised, since there is no way to unambiguously detect the " "most recent set of :mailheader:`Resent-` headers." msgstr "" +"Si *from_addr* es ``None`` o *to_addrs* es ``None``, ``send_message`` llena " +"esos argumentos con direcciones extraídas de los encabezados de *msg* como " +"se especifica en :rfc:`5322`\\: *from_addr* se establece en el campo :" +"mailheader:`Sender` si está presente, y de lo contrario, en el campo :" +"mailheader:`From`. *to_addrs* combina los valores (si los hay) de los " +"campos :mailheader:`To`, :mailheader:`Cc` y :mailheader:`Bcc` de *msg*. Si " +"aparece exactamente un conjunto de encabezados :mailheader:`Resent-*` en el " +"mensaje, los encabezados normales se ignoran y en su lugar se utilizan los " +"encabezados :mailheader:`Resent- *`. Si el mensaje contiene más de un " +"conjunto de encabezados :mailheader:`Resent-*`, se lanza un :exc:" +"`ValueError`, ya que no hay forma de detectar sin ambigüedades el conjunto " +"más reciente de encabezados :mailheader:`Resent-`." #: ../Doc/library/smtplib.rst:521 msgid "" @@ -677,16 +938,29 @@ msgid "" "attribute set to ``True``, and ``SMTPUTF8`` and ``BODY=8BITMIME`` are added " "to *mail_options*." msgstr "" +"``send_message`` serializa *msg* usando :class:`~email.generator." +"BytesGenerator` con``\\ r \\ n`` como *linesep*, y llama a :meth:`sendmail` " +"para transmitir el mensaje resultante. Independientemente de los valores de " +"*from_addr* y *to_addrs*, ``send_message`` no transmite ningún encabezado :" +"mailheader:`Bcc` o :mailheader:`Resent-Bcc` que puedan aparecer en *msg*. " +"Si alguna de las direcciones en *from_addr* y *to_addrs* contiene caracteres " +"que no son ASCII y el servidor no anuncia la compatibilidad con " +"``SMTPUTF8``, se lanza un error :exc:`SMTPNotSupported`. De lo contrario, " +"el ``Message`` se serializa con un clon de su :mod:`~email.policy` con el " +"atributo :attr:`~email.policy.EmailPolicy.utf8` establecido en ``True`` y " +"``SMTPUTF8`` y ``BODY=8BITMIME`` se agregan a *mail_options*." #: ../Doc/library/smtplib.rst:535 msgid "Support for internationalized addresses (``SMTPUTF8``)." -msgstr "" +msgstr "Soporte para direcciones internacionalizadas (``SMTPUTF8``)." #: ../Doc/library/smtplib.rst:541 msgid "" "Terminate the SMTP session and close the connection. Return the result of " "the SMTP ``QUIT`` command." msgstr "" +"Termine la sesión SMTP y cierre la conexión. Retorna el resultado del " +"comando SMTP ``QUIT``." #: ../Doc/library/smtplib.rst:545 msgid "" @@ -695,10 +969,15 @@ msgid "" "supported. Normally these do not need to be called directly, so they are not " "documented here. For details, consult the module code." msgstr "" +"Los métodos de bajo nivel correspondientes a los comandos estándar SMTP/" +"ESMTP ```HELP``, ``RSET``, ``NOOP``, ``MAIL``, ``RCPT``, y ``DATA`` también " +"están soportados. Normalmente, no es necesario llamarlos directamente, por " +"lo que no se documentan aquí. Para más detalles, consulte el código del " +"módulo." #: ../Doc/library/smtplib.rst:554 msgid "SMTP Example" -msgstr "" +msgstr "Ejemplo SMTP" #: ../Doc/library/smtplib.rst:556 msgid "" @@ -709,6 +988,12 @@ msgid "" "In particular, the 'To' and 'From' addresses must be included in the message " "headers explicitly. ::" msgstr "" +"Este ejemplo solicita al usuario las direcciones necesarias en el sobre del " +"mensaje (direcciones 'To' y 'From' ) y el mensaje que se entregará. Tenga " +"en cuenta que los encabezados que se incluirán con el mensaje deben " +"incluirse en el mensaje tal y como se introdujeron; este ejemplo no procesa " +"los encabezados :rfc:`822` . En particular, las direcciones 'To' y 'From " +"deben incluirse explícitamente en los encabezados de los mensajes. ::" #: ../Doc/library/smtplib.rst:592 msgid "" @@ -716,3 +1001,6 @@ msgid "" "construct an email message, which you can then send via :meth:`~smtplib.SMTP." "send_message`; see :ref:`email-examples`." msgstr "" +"En general, querrá usar las características del paquete :mod:`email` para " +"construir un mensaje de correo electrónico, que luego puede enviar a través " +"de :meth:`~smtplib.SMTP.send_message`; ver :ref:`email-examples`." diff --git a/library/sndhdr.po b/library/sndhdr.po index 369dd16265..9c87f76257 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -1,29 +1,31 @@ # 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: 2020-11-14 11:58-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: en\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/sndhdr.rst:2 msgid ":mod:`sndhdr` --- Determine type of sound file" -msgstr "" +msgstr ":mod:`sndhdr` --- Determinar el tipo de archivo de sonido" #: ../Doc/library/sndhdr.rst:10 msgid "**Source code:** :source:`Lib/sndhdr.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/sndhdr.py`" #: ../Doc/library/sndhdr.rst:18 msgid "" @@ -42,6 +44,20 @@ msgid "" "the tuple, *bits_per_sample*, will either be the sample size in bits or " "``'A'`` for A-LAW or ``'U'`` for u-LAW." msgstr "" +"El :mod:`sndhdr` proporciona funciones de utilidad que intentan determinar " +"el tipo de datos de sonido que hay en un archivo. Cuando estas funciones son " +"capaces de determinar qué tipo de datos sonoros se almacenan en un archivo, " +"retornan un :func:`~collections.namedtuple`, que contiene cinco atributos: " +"(``filetype``, ``framerate``, ``nchannels``, ``nframes``, ``sampwidth``). El " +"valor de *type* indica el tipo de datos y será una de las cadenas siguientes " +"cadenas: ``'aifc'``, ``'aiff'``, ``'au'``, ``'hcom'``, ``'sndr'``, " +"``'sndt'``, ``'voc'``, ``'wav'``, ``'8svx'``, ``'sb'``, ``'ub'``, o " +"``'ul'``. El *sampling_rate* será el valor actual o ``0`` si es desconocido " +"o difícil de decodificar. De forma similar, *channels* será el número de " +"canales o ``0`` si no se puede determinar o si el valor es difícil de " +"decodificar. El valor de *frames* será el número de fotogramas o ``-1``. El " +"último elemento de la tupla, *bits_per_sample*, será el tamaño de la muestra " +"en bits, ``'A'`` para A-LAW o ``'U'`` para u-LAW." #: ../Doc/library/sndhdr.rst:35 msgid "" @@ -49,10 +65,13 @@ msgid "" "`whathdr`. If it succeeds, returns a namedtuple as described above, " "otherwise ``None`` is returned." msgstr "" +"Determina el tipo de datos de sonido almacenados en el archivo *filename* " +"usando :func:`whathdr`. Si se tiene éxito, retorna una namedtuple como se " +"describe arriba, de lo contrario retorna ``None``." #: ../Doc/library/sndhdr.rst:39 ../Doc/library/sndhdr.rst:49 msgid "Result changed from a tuple to a namedtuple." -msgstr "" +msgstr "El resultado cambió de una tupla a una *namedtuple*." #: ../Doc/library/sndhdr.rst:45 msgid "" @@ -60,3 +79,7 @@ msgid "" "header. The name of the file is given by *filename*. This function returns " "a namedtuple as described above on success, or ``None``." msgstr "" +"Determina el tipo de dato de sonido almacenado en un archivo basado en el " +"encabezado del archivo. El nombre del archivo viene dado por *filename*. " +"Esta función retorna una *namedtuple* como se ha descrito anteriormente en " +"caso de éxito o ``None``." diff --git a/library/socketserver.po b/library/socketserver.po index 2df5359580..addc745561 100644 --- a/library/socketserver.po +++ b/library/socketserver.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: 2020-10-20 03:19-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.3.1\n" #: ../Doc/library/socketserver.rst:2 msgid ":mod:`socketserver` --- A framework for network servers" -msgstr "" +msgstr ":mod:`socketserver` --- Un framework para servidores de red" #: ../Doc/library/socketserver.rst:7 msgid "**Source code:** :source:`Lib/socketserver.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/socketserver.py`" #: ../Doc/library/socketserver.rst:11 msgid "" "The :mod:`socketserver` module simplifies the task of writing network " "servers." msgstr "" +"El módulo :mod:`socketserver` simplifica la tarea de escribir servidores de " +"red." #: ../Doc/library/socketserver.rst:13 msgid "There are four basic concrete server classes:" -msgstr "" +msgstr "Hay cuatro clases básicas de servidores concretos:" #: ../Doc/library/socketserver.rst:18 msgid "" @@ -46,6 +50,11 @@ msgid "" "and :meth:`~BaseServer.server_activate`. The other parameters are passed to " "the :class:`BaseServer` base class." msgstr "" +"Utiliza el protocolo TCP de Internet, que proporciona flujos continuos de " +"datos entre el cliente y el servidor. Si *bind_and_activate* es verdadero, " +"el constructor automáticamente intenta invocar a :meth:`~BaseServer." +"server_bind` y :meth:`~BaseServer.server_activate`. Los otros parámetros se " +"pasan a la clase base :class:`BaseServer`." #: ../Doc/library/socketserver.rst:28 msgid "" @@ -53,6 +62,9 @@ msgid "" "arrive out of order or be lost while in transit. The parameters are the " "same as for :class:`TCPServer`." msgstr "" +"Esto utiliza datagramas, que son paquetes discretos de información que " +"pueden llegar fuera de servicio o perderse durante el tránsito. Los " +"parámetros son los mismos que para :class:`TCPServer`." #: ../Doc/library/socketserver.rst:36 msgid "" @@ -60,6 +72,10 @@ msgid "" "but use Unix domain sockets; they're not available on non-Unix platforms. " "The parameters are the same as for :class:`TCPServer`." msgstr "" +"Estas clases que se usan con menos frecuencia son similares a las clases TCP " +"y UDP, pero usan sockets de dominio Unix; no están disponibles en " +"plataformas que no sean Unix. Los parámetros son los mismos que para :class:" +"`TCPServer`." #: ../Doc/library/socketserver.rst:42 msgid "" @@ -71,6 +87,13 @@ msgid "" "each request; the :class:`ForkingMixIn` and :class:`ThreadingMixIn` mix-in " "classes can be used to support asynchronous behaviour." msgstr "" +"Estas cuatro clases procesan solicitudes :dfn:`sincrónicamente`; cada " +"solicitud debe completarse antes de que se pueda iniciar la siguiente. Esto " +"no es adecuado si cada solicitud tarda mucho en completarse, porque requiere " +"mucho cálculo o porque retorna muchos datos que el cliente tarda en " +"procesar. La solución es crear un proceso o hilo independiente para manejar " +"cada solicitud; las clases mixtas :class:`ForkingMixIn` y :class:" +"`ThreadingMixIn` pueden usarse para soportar el comportamiento asincrónico." #: ../Doc/library/socketserver.rst:50 msgid "" @@ -85,6 +108,17 @@ msgid "" "meth:`~BaseServer.server_close` to close the socket (unless you used a :" "keyword:`!with` statement)." msgstr "" +"La creación de un servidor requiere varios pasos. Primero, debes crear una " +"clase de controlador de solicitudes subclasificando la clase :class:" +"`BaseRequestHandler` y anulando su método :meth:`~BaseRequestHandler." +"handle`; este método procesará las solicitudes entrantes. En segundo lugar, " +"debe crear una instancia de una de las clases de servidor, pasándole la " +"dirección del servidor y la clase del controlador de solicitudes. Se " +"recomienda utilizar el servidor en una declaración :keyword:`with`. Luego " +"llame al método :meth:`~BaseServer.handle_request` o :meth:`~BaseServer." +"serve_forever` del objeto de servidor para procesar una o muchas " +"solicitudes. Finalmente, llame a :meth:`~BaseServer.server_close` para " +"cerrar el socket (a menos que haya usado una :keyword:`!with` declaración)." #: ../Doc/library/socketserver.rst:62 msgid "" @@ -97,22 +131,34 @@ msgid "" "meaning that Python will not exit until all threads created by :class:" "`ThreadingMixIn` have exited." msgstr "" +"Al heredar de :class:`ThreadingMixIn` para el comportamiento de la conexión " +"con subprocesos, debe declarar explícitamente cómo desea que se comporten " +"sus subprocesos en un cierre abrupto. La clase :class:`ThreadingMixIn` " +"define un atributo *daemon_threads*, que indica si el servidor debe esperar " +"o no la terminación del hilo. Debe establecer la bandera explícitamente si " +"desea que los subprocesos se comporten de forma autónoma; el valor " +"predeterminado es :const:`False`, lo que significa que Python no se cerrará " +"hasta que todos los hilos creados por :class:`ThreadingMixIn` hayan salido." #: ../Doc/library/socketserver.rst:71 msgid "" "Server classes have the same external methods and attributes, no matter what " "network protocol they use." msgstr "" +"Las clases de servidor tienen los mismos métodos y atributos externos, " +"independientemente del protocolo de red que utilicen." #: ../Doc/library/socketserver.rst:76 msgid "Server Creation Notes" -msgstr "" +msgstr "Notas de creación del servidor" #: ../Doc/library/socketserver.rst:78 msgid "" "There are five classes in an inheritance diagram, four of which represent " "synchronous servers of four types::" msgstr "" +"Hay cinco clases en un diagrama de herencia, cuatro de las cuales " +"representan servidores síncronos de cuatro tipos:" #: ../Doc/library/socketserver.rst:95 msgid "" @@ -121,6 +167,10 @@ msgid "" "Unix stream server is the address family, which is simply repeated in both " "Unix server classes." msgstr "" +"Tenga en cuenta que :class:`UnixDatagramServer` deriva de :class:" +"`UDPServer`, no de :class:`UnixStreamServer` --- la única diferencia entre " +"una IP y un servidor de flujo Unix es la familia de direcciones, que " +"simplemente se repite en ambos Clases de servidor Unix." #: ../Doc/library/socketserver.rst:104 msgid "" @@ -128,6 +178,9 @@ msgid "" "these mix-in classes. For instance, :class:`ThreadingUDPServer` is created " "as follows::" msgstr "" +"Se pueden crear versiones de Forking y threading de cada tipo de servidor " +"utilizando estas clases mixtas. Por ejemplo, :class:`ThreadingUDPServer` se " +"crea de la siguiente manera:" #: ../Doc/library/socketserver.rst:111 msgid "" @@ -135,12 +188,17 @@ msgid "" "`UDPServer`. Setting the various attributes also changes the behavior of " "the underlying server mechanism." msgstr "" +"La clase de mezcla es lo primero, ya que anula un método definido en :class:" +"`UDPServer`. La configuración de los distintos atributos también cambia el " +"comportamiento del mecanismo del servidor subyacente." #: ../Doc/library/socketserver.rst:115 msgid "" ":class:`ForkingMixIn` and the Forking classes mentioned below are only " "available on POSIX platforms that support :func:`~os.fork`." msgstr "" +":class:`ForkingMixIn` y las clases de Forking mencionadas a continuación " +"solo están disponibles en plataformas POSIX que admiten :func:`os.fork`." #: ../Doc/library/socketserver.rst:118 msgid "" @@ -148,6 +206,9 @@ msgid "" "processes complete, except if :attr:`socketserver.ForkingMixIn." "block_on_close` attribute is false." msgstr "" +":meth:`socketserver.ForkingMixIn.server_close` espera hasta que se completen " +"todos los procesos secundarios, excepto si :attr:`socketserver.ForkingMixIn." +"block_on_close` atributo es falso." #: ../Doc/library/socketserver.rst:122 msgid "" @@ -157,6 +218,11 @@ msgid "" "`ThreadingMixIn.daemon_threads` to ``True`` to not wait until threads " "complete." msgstr "" +":meth:`socketserver.ThreadingMixIn.server_close` espera hasta que se " +"completen todos los subprocesos que no son demonios, excepto si el atributo :" +"attr:`socketserver.ThreadingMixIn.block_on_close` es falso. Use subprocesos " +"demoníacos configurando :data:`ThreadingMixIn.daemon_threads` en " +"``Verdadero`` para no esperar hasta que se completen los subprocesos." #: ../Doc/library/socketserver.rst:131 msgid "" @@ -165,10 +231,15 @@ msgid "" "daemonic threads complete. Add a new :attr:`socketserver.ForkingMixIn." "block_on_close` class attribute to opt-in for the pre-3.7 behaviour." msgstr "" +":meth:`socketserver.ForkingMixIn.server_close` y :meth:`socketserver." +"ThreadingMixIn.server_close` ahora espera hasta que se completen todos los " +"procesos secundarios y los subprocesos no demoníacos. Agregue un nuevo " +"atributo de clase :attr:`socketserver.ForkingMixIn.block_on_close` para " +"optar por el comportamiento anterior a 3.7." #: ../Doc/library/socketserver.rst:143 msgid "These classes are pre-defined using the mix-in classes." -msgstr "" +msgstr "Estas clases están predefinidas utilizando las clases mixtas." #: ../Doc/library/socketserver.rst:146 msgid "" @@ -180,6 +251,13 @@ msgid "" "by using the handler subclasses :class:`StreamRequestHandler` or :class:" "`DatagramRequestHandler`." msgstr "" +"Para implementar un servicio, debes derivar una clase de :class:" +"`BaseRequestHandler` y redefinir su método :meth:`~BaseRequestHandler." +"handle`. Luego, puede ejecutar varias versiones del servicio combinando una " +"de las clases de servidor con su clase de controlador de solicitudes. La " +"clase del controlador de solicitudes debe ser diferente para los servicios " +"de datagramas o flujos. Esto se puede ocultar usando las subclases del " +"controlador :class:`StreamRequestHandler` o :class:`DatagramRequestHandler`." #: ../Doc/library/socketserver.rst:154 msgid "" @@ -190,6 +268,13 @@ msgid "" "each child. In this case, you can use a threading server, but you will " "probably have to use locks to protect the integrity of the shared data." msgstr "" +"Por supuesto, ¡todavía tienes que usar la cabeza! Por ejemplo, no tiene " +"sentido usar un servidor de bifurcación si el servicio contiene un estado en " +"la memoria que puede ser modificado por diferentes solicitudes, ya que las " +"modificaciones en el proceso hijo nunca alcanzarían el estado inicial que se " +"mantiene en el proceso padre y se pasa a cada hijo. En este caso, puede usar " +"un servidor de subprocesos, pero probablemente tendrá que usar bloqueos para " +"proteger la integridad de los datos compartidos." #: ../Doc/library/socketserver.rst:161 msgid "" @@ -200,6 +285,12 @@ msgid "" "all the data it has requested. Here a threading or forking server is " "appropriate." msgstr "" +"Por otro lado, si está creando un servidor HTTP donde todos los datos se " +"almacenan externamente (por ejemplo, en el sistema de archivos), una clase " +"síncrona esencialmente hará que el servicio sea \"sordo\" mientras se maneja " +"una solicitud, que puede ser durante mucho tiempo si un cliente tarda en " +"recibir todos los datos que ha solicitado. Aquí es apropiado un servidor de " +"enhebrado o bifurcación." #: ../Doc/library/socketserver.rst:167 msgid "" @@ -209,6 +300,11 @@ msgid "" "doing an explicit fork in the request handler class :meth:" "`~BaseRequestHandler.handle` method." msgstr "" +"En algunos casos, puede ser apropiado procesar parte de una solicitud de " +"forma síncrona, pero para finalizar el procesamiento en un hijo bifurcado " +"según los datos de la solicitud. Esto se puede implementar usando un " +"servidor sincrónico y haciendo un fork explicito en la clase del controlador " +"de solicitudes el método :meth:`~BaseRequestHandler.handle`." #: ../Doc/library/socketserver.rst:172 msgid "" @@ -222,10 +318,19 @@ msgid "" "subprocesses cannot be used). See :mod:`asyncore` for another way to manage " "this." msgstr "" +"Otro enfoque para manejar múltiples solicitudes simultáneas en un entorno " +"que no admite subprocesos ni :func:`~os.fork` (o donde estos son demasiado " +"costosos o inapropiados para el servicio) es mantener una tabla explícita de " +"solicitudes parcialmente terminadas y utilizar :mod:`selectors` para decidir " +"en qué solicitud trabajar a continuación (o si manejar una nueva solicitud " +"entrante). Esto es particularmente importante para los servicios de " +"transmisión en los que cada cliente puede potencialmente estar conectado " +"durante mucho tiempo (si no se pueden utilizar subprocesos o subprocesos). " +"Consulte :mod:`asyncore` para ver otra forma de gestionar esto." #: ../Doc/library/socketserver.rst:186 msgid "Server Objects" -msgstr "" +msgstr "Objetos de servidor" #: ../Doc/library/socketserver.rst:190 msgid "" @@ -234,6 +339,11 @@ msgid "" "done in subclasses. The two parameters are stored in the respective :attr:" "`server_address` and :attr:`RequestHandlerClass` attributes." msgstr "" +"Esta es la superclase de todos los objetos de servidor en el módulo. Define " +"la interfaz, que se indica a continuación, pero no implementa la mayoría de " +"los métodos, que se realiza en subclases. Los dos parámetros se almacenan en " +"los atributos respectivos :attr:`server_address` y :attr:" +"`RequestHandlerClass`." #: ../Doc/library/socketserver.rst:198 msgid "" @@ -241,6 +351,9 @@ msgid "" "listening. This function is most commonly passed to :mod:`selectors`, to " "allow monitoring multiple servers in the same process." msgstr "" +"Retorna un descriptor de archivo entero para el socket en el que escucha el " +"servidor. Esta función se pasa comúnmente a :mod:`selectors`, para permitir " +"monitorear múltiples servidores en el mismo proceso." #: ../Doc/library/socketserver.rst:205 msgid "" @@ -252,6 +365,13 @@ msgid "" "attr:`timeout` seconds, :meth:`handle_timeout` will be called and :meth:" "`handle_request` will return." msgstr "" +"Procese una sola solicitud. Esta función llama a los siguientes métodos en " +"orden: :meth:`get_request`, :meth:`verify_request`, y :meth:" +"`process_request`. Si el método proporcionado por el usuario :meth:" +"`~BaseRequestHandler.handle` de la clase del controlador lanza una " +"excepción, se llamará al método :meth:`handle_error` del servidor. Si no se " +"recibe ninguna solicitud en :attr:`timeout` segundos, se llamará a :meth:" +"`handle_timeout` y :meth:`handle_request` regresará." #: ../Doc/library/socketserver.rst:217 msgid "" @@ -262,10 +382,16 @@ msgid "" "example, the :class:`ForkingMixIn` class uses :meth:`service_actions` to " "clean up zombie child processes." msgstr "" +"Manejar solicitudes hasta una solicitud explícita :meth:`shutdown`. Sondeo " +"de apagado cada *poll_interval* segundos. Ignora el atributo :attr:" +"`timeout`. También llama :meth:`service_actions`, que puede ser utilizado " +"por una subclase o mixin para proporcionar acciones específicas para un " +"servicio dado. Por ejemplo, la clase :class:`ForkingMixIn` usa :meth:" +"`service_actions` para limpiar procesos secundarios zombies." #: ../Doc/library/socketserver.rst:225 msgid "Added ``service_actions`` call to the ``serve_forever`` method." -msgstr "" +msgstr "Se agregó la llamada ``service_actions`` al método ``serve_forever``." #: ../Doc/library/socketserver.rst:231 msgid "" @@ -273,6 +399,9 @@ msgid "" "overridden by subclasses or mixin classes to perform actions specific to a " "given service, such as cleanup actions." msgstr "" +"Esto se llama en el ciclo :meth:`serve_forever`. Este método puede ser " +"reemplazado por subclases o clases mixtas para realizar acciones específicas " +"para un servicio dado, como acciones de limpieza." #: ../Doc/library/socketserver.rst:239 msgid "" @@ -280,22 +409,29 @@ msgid "" "`shutdown` must be called while :meth:`serve_forever` is running in a " "different thread otherwise it will deadlock." msgstr "" +"Dile al bucle :meth:`serve_forever` que se detenga y espere hasta que lo " +"haga. :meth:`shutdown` debe llamarse mientras :meth:`serve_forever` se está " +"ejecutando en un hilo diferente, de lo contrario, se bloqueará." #: ../Doc/library/socketserver.rst:246 msgid "Clean up the server. May be overridden." -msgstr "" +msgstr "Limpiar el servidor. Puede ser sobrescrito." #: ../Doc/library/socketserver.rst:251 msgid "" "The family of protocols to which the server's socket belongs. Common " "examples are :const:`socket.AF_INET` and :const:`socket.AF_UNIX`." msgstr "" +"La familia de protocolos a la que pertenece el socket del servidor. Algunos " +"ejemplos comunes son :const:`socket.AF_INET` y :const:`socket.AF_UNIX`." #: ../Doc/library/socketserver.rst:257 msgid "" "The user-provided request handler class; an instance of this class is " "created for each request." msgstr "" +"La clase de controlador de solicitudes proporcionada por el usuario; se crea " +"una instancia de esta clase para cada solicitud." #: ../Doc/library/socketserver.rst:263 msgid "" @@ -305,21 +441,31 @@ msgid "" "containing a string giving the address, and an integer port number: " "``('127.0.0.1', 80)``, for example." msgstr "" +"La dirección en la que escucha el servidor. El formato de las direcciones " +"varía según la familia de protocolos; consulte la documentación del módulo :" +"mod:`socket` para obtener más detalles. Para los protocolos de Internet, " +"esta es una tupla que contiene una cadena que proporciona la dirección y un " +"número de puerto entero: ``('127.0.0.1', 80)``, por ejemplo." #: ../Doc/library/socketserver.rst:272 msgid "" "The socket object on which the server will listen for incoming requests." msgstr "" +"El objeto de socket en el que el servidor escuchará las solicitudes " +"entrantes." #: ../Doc/library/socketserver.rst:275 msgid "The server classes support the following class variables:" -msgstr "" +msgstr "Las clases de servidor admiten las siguientes variables de clase:" #: ../Doc/library/socketserver.rst:281 msgid "" "Whether the server will allow the reuse of an address. This defaults to :" "const:`False`, and can be set in subclasses to change the policy." msgstr "" +"Si el servidor permitirá la reutilización de una dirección. Este valor " +"predeterminado es :const:`False`, y se puede establecer en subclases para " +"cambiar la política." #: ../Doc/library/socketserver.rst:287 msgid "" @@ -329,12 +475,20 @@ msgid "" "further requests from clients will get a \"Connection denied\" error. The " "default value is usually 5, but this can be overridden by subclasses." msgstr "" +"El tamaño de la cola de solicitudes. Si toma mucho tiempo procesar una sola " +"solicitud, cualquier solicitud que llegue mientras el servidor está ocupado " +"se coloca en una cola, hasta :attr:`request_queue_size`. Una vez que la cola " +"está llena, más solicitudes de clientes obtendrán un error de \"Conexión " +"denegada\". El valor predeterminado suele ser 5, pero las subclases pueden " +"anularlo." #: ../Doc/library/socketserver.rst:296 msgid "" "The type of socket used by the server; :const:`socket.SOCK_STREAM` and :" "const:`socket.SOCK_DGRAM` are two common values." msgstr "" +"El tipo de socket utilizado por el servidor; :const:`socket.SOCK_STREAM` y :" +"const:`socket.SOCK_DGRAM` son dos valores comunes." #: ../Doc/library/socketserver.rst:302 msgid "" @@ -342,6 +496,10 @@ msgid "" "desired. If :meth:`handle_request` receives no incoming requests within the " "timeout period, the :meth:`handle_timeout` method is called." msgstr "" +"Duración del tiempo de espera, medida en segundos, o :const:`None` si no se " +"desea un tiempo de espera. Si :meth:`handle_request` no recibe solicitudes " +"entrantes dentro del período de tiempo de espera, se llama al método :meth:" +"`handle_timeout`." #: ../Doc/library/socketserver.rst:307 msgid "" @@ -349,12 +507,18 @@ msgid "" "base server classes like :class:`TCPServer`; these methods aren't useful to " "external users of the server object." msgstr "" +"Hay varios métodos de servidor que pueden ser anulados por subclases de " +"clases de servidor base como :class:`TCPServer`; estos métodos no son útiles " +"para los usuarios externos del objeto de servidor." #: ../Doc/library/socketserver.rst:316 msgid "" "Actually processes the request by instantiating :attr:`RequestHandlerClass` " "and calling its :meth:`~BaseRequestHandler.handle` method." msgstr "" +"En realidad, procesa la solicitud creando instancias :attr:" +"`RequestHandlerClass` y llamando a su método :meth:`~BaseRequestHandler." +"handle`." #: ../Doc/library/socketserver.rst:322 msgid "" @@ -362,6 +526,9 @@ msgid "" "*new* socket object to be used to communicate with the client, and the " "client's address." msgstr "" +"Debe aceptar una solicitud del socket y retornar una tupla de 2 que contenga " +"el objeto de socket *nuevo* que se utilizará para comunicarse con el cliente " +"y la dirección del cliente." #: ../Doc/library/socketserver.rst:329 msgid "" @@ -370,10 +537,15 @@ msgid "" "action is to print the traceback to standard error and continue handling " "further requests." msgstr "" +"Esta función se llama si el método :meth:`~BaseRequestHandler.handle` de una " +"instancia :attr:`RequestHandlerClass` lanza una excepción. La acción " +"predeterminada es imprimir el rastreo al error estándar y continuar " +"manejando más solicitudes." #: ../Doc/library/socketserver.rst:334 msgid "Now only called for exceptions derived from the :exc:`Exception` class." msgstr "" +"Ahora solo se solicitan excepciones derivadas de la clase :exc:`Exception`." #: ../Doc/library/socketserver.rst:341 msgid "" @@ -383,6 +555,11 @@ msgid "" "collect the status of any child processes that have exited, while in " "threading servers this method does nothing." msgstr "" +"Esta función se llama cuando el atributo :attr:`timeout` se ha establecido " +"en un valor distinto de :const:`None` y el tiempo de espera ha pasado sin " +"que se reciban solicitudes. La acción predeterminada para los servidores de " +"forking es recopilar el estado de cualquier proceso hijo que haya salido, " +"mientras que en los servidores de threading este método no hace nada." #: ../Doc/library/socketserver.rst:350 msgid "" @@ -391,6 +568,10 @@ msgid "" "or thread to handle the request; the :class:`ForkingMixIn` and :class:" "`ThreadingMixIn` classes do this." msgstr "" +"Llama a :meth:`finish_request` para crear una instancia de :attr:" +"`RequestHandlerClass`. Si lo desea, esta función puede crear un nuevo " +"proceso o hilo para manejar la solicitud; las clases :class:`ForkingMixIn` " +"y :class:`ThreadingMixIn` hacen esto." #: ../Doc/library/socketserver.rst:362 msgid "" @@ -398,12 +579,17 @@ msgid "" "behavior for a TCP server just invokes :meth:`~socket.socket.listen` on the " "server's socket. May be overridden." msgstr "" +"Lo llama el constructor del servidor para activar el servidor. El " +"comportamiento predeterminado para un servidor TCP simplemente invoca :meth:" +"`~socket.socket.listen` en el socket del servidor. Puede anularse." #: ../Doc/library/socketserver.rst:369 msgid "" "Called by the server's constructor to bind the socket to the desired " "address. May be overridden." msgstr "" +"Lo llama el constructor del servidor para vincular el socket a la dirección " +"deseada. Puede anularse." #: ../Doc/library/socketserver.rst:375 msgid "" @@ -412,16 +598,22 @@ msgid "" "function can be overridden to implement access controls for a server. The " "default implementation always returns :const:`True`." msgstr "" +"Debe retornar un valor booleano; si el valor es :const:`True`, la solicitud " +"se procesará, y si es :const:`False`, la solicitud será denegada. Esta " +"función se puede anular para implementar controles de acceso para un " +"servidor. La implementación predeterminada siempre retorna :const:`True`." #: ../Doc/library/socketserver.rst:381 msgid "" "Support for the :term:`context manager` protocol was added. Exiting the " "context manager is equivalent to calling :meth:`server_close`." msgstr "" +"Se agregó soporte para el protocolo :term:`context manager`. Salir del " +"administrador de contexto es equivalente a llamar a :meth:`server_close`." #: ../Doc/library/socketserver.rst:387 msgid "Request Handler Objects" -msgstr "" +msgstr "Solicitar objetos de controlador" #: ../Doc/library/socketserver.rst:391 msgid "" @@ -430,12 +622,19 @@ msgid "" "new :meth:`handle` method, and can override any of the other methods. A new " "instance of the subclass is created for each request." msgstr "" +"Esta es la superclase de todos los objetos de manejo de solicitudes. Define " +"la interfaz, que se muestra a continuación. Una subclase de controlador de " +"solicitudes concreta debe definir un nuevo método :meth:`handle` y puede " +"anular cualquiera de los otros métodos. Se crea una nueva instancia de la " +"subclase para cada solicitud." #: ../Doc/library/socketserver.rst:400 msgid "" "Called before the :meth:`handle` method to perform any initialization " "actions required. The default implementation does nothing." msgstr "" +"Se llama antes del método :meth:`handle` para realizar las acciones de " +"inicialización necesarias. La implementación predeterminada no hace nada." #: ../Doc/library/socketserver.rst:406 msgid "" @@ -445,6 +644,12 @@ msgid "" "client address as :attr:`self.client_address`; and the server instance as :" "attr:`self.server`, in case it needs access to per-server information." msgstr "" +"Esta función debe realizar todo el trabajo necesario para atender una " +"solicitud. La implementación predeterminada no hace nada. Dispone de varios " +"atributos de instancia; la solicitud está disponible como :attr:`self." +"request`; la dirección del cliente como :attr:`self.client_address`; y la " +"instancia del servidor como :attr:`self.server`, en caso de que necesite " +"acceder a la información por servidor." #: ../Doc/library/socketserver.rst:412 msgid "" @@ -452,6 +657,10 @@ msgid "" "services. For stream services, :attr:`self.request` is a socket object; for " "datagram services, :attr:`self.request` is a pair of string and socket." msgstr "" +"El tipo de :attr:`self.request` es diferente para datagramas o servicios de " +"flujo. Para los servicios de transmisión, :attr:`self.request` es un objeto " +"de socket; para servicios de datagramas, :attr:`self.request` es un par de " +"string y socket." #: ../Doc/library/socketserver.rst:419 msgid "" @@ -459,6 +668,9 @@ msgid "" "required. The default implementation does nothing. If :meth:`setup` raises " "an exception, this function will not be called." msgstr "" +"Se llama después del método :meth:`handle` para realizar las acciones de " +"limpieza necesarias. La implementación predeterminada no hace nada. Si :meth:" +"`setup` lanza una excepción, no se llamará a esta función." #: ../Doc/library/socketserver.rst:427 msgid "" @@ -468,6 +680,12 @@ msgid "" "`self.rfile` and :attr:`self.wfile` attributes can be read or written, " "respectively, to get the request data or return data to the client." msgstr "" +"Estas subclases :class:`BaseRequestHandler` anulan los métodos :meth:" +"`~BaseRequestHandler.setup` y :meth:`~BaseRequestHandler.finish`, y " +"proporcionan :attr:`self.rfile` y :attr:`self.wfile` atributos. Los " +"atributos :attr:`self.rfile` y :attr:`self.wfile` se pueden leer o escribir, " +"respectivamente, para obtener los datos de la solicitud o retornar los datos " +"al cliente." #: ../Doc/library/socketserver.rst:434 msgid "" @@ -475,24 +693,29 @@ msgid "" "BufferedIOBase` readable interface, and :attr:`DatagramRequestHandler.wfile` " "supports the :class:`io.BufferedIOBase` writable interface." msgstr "" +"Los atributos :attr:`rfile` de ambas clases admiten la interfaz legible :" +"class:`io.BufferedIOBase`, y :attr:`DatagramRequestHandler.wfile` admite la :" +"class:`io.BufferedIOBase` interfaz de escritura." #: ../Doc/library/socketserver.rst:439 msgid "" ":attr:`StreamRequestHandler.wfile` also supports the :class:`io." "BufferedIOBase` writable interface." msgstr "" +":attr:`StreamRequestHandler.wfile` también admite la interfaz de escritura :" +"class:`io.BufferedIOBase`." #: ../Doc/library/socketserver.rst:445 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/socketserver.rst:448 msgid ":class:`socketserver.TCPServer` Example" -msgstr "" +msgstr ":class:`socketserver.TCPServer` Ejemplo" #: ../Doc/library/socketserver.rst:450 ../Doc/library/socketserver.rst:549 msgid "This is the server side::" -msgstr "" +msgstr "Este es el lado del servidor:" #: ../Doc/library/socketserver.rst:480 msgid "" @@ -500,6 +723,9 @@ msgid "" "objects that simplify communication by providing the standard file " "interface)::" msgstr "" +"Una clase de controlador de solicitudes alternativa que hace uso de " +"secuencias (objetos similares a archivos que simplifican la comunicación al " +"proporcionar la interfaz de archivo estándar):" #: ../Doc/library/socketserver.rst:495 msgid "" @@ -508,46 +734,55 @@ msgid "" "while the single ``recv()`` call in the first handler will just return what " "has been sent from the client in one ``sendall()`` call." msgstr "" +"La diferencia es que la llamada ``readline()`` en el segundo controlador " +"llamará a ``recv()`` varias veces hasta que encuentre un carácter de nueva " +"línea, mientras que la llamada única ``recv()`` en el primer controlador " +"simplemente retornará lo que se ha enviado desde el cliente en una llamada " +"``sendall()`` ." #: ../Doc/library/socketserver.rst:501 ../Doc/library/socketserver.rst:573 msgid "This is the client side::" -msgstr "" +msgstr "Este es el lado del cliente:" #: ../Doc/library/socketserver.rst:522 ../Doc/library/socketserver.rst:648 msgid "The output of the example should look something like this:" -msgstr "" +msgstr "La salida del ejemplo debería verse así:" #: ../Doc/library/socketserver.rst:524 msgid "Server:" -msgstr "" +msgstr "Servidor:" #: ../Doc/library/socketserver.rst:534 msgid "Client:" -msgstr "" +msgstr "Cliente:" #: ../Doc/library/socketserver.rst:547 msgid ":class:`socketserver.UDPServer` Example" -msgstr "" +msgstr ":class:`socketserver.UDPServer` Ejemplo" #: ../Doc/library/socketserver.rst:592 msgid "" "The output of the example should look exactly like for the TCP server " "example." msgstr "" +"La salida del ejemplo debería verse exactamente como en el ejemplo del " +"servidor TCP." #: ../Doc/library/socketserver.rst:596 msgid "Asynchronous Mixins" -msgstr "" +msgstr "Mixins asincrónicos" #: ../Doc/library/socketserver.rst:598 msgid "" "To build asynchronous handlers, use the :class:`ThreadingMixIn` and :class:" "`ForkingMixIn` classes." msgstr "" +"Para construir controladores asincrónicos, use las clases :class:" +"`ThreadingMixIn` y :class:`ForkingMixIn`." #: ../Doc/library/socketserver.rst:601 msgid "An example for the :class:`ThreadingMixIn` class::" -msgstr "" +msgstr "Un ejemplo para la clase :class:`ThreadingMixIn` class ::" #: ../Doc/library/socketserver.rst:659 msgid "" @@ -555,3 +790,6 @@ msgid "" "server will spawn a new process for each request. Available only on POSIX " "platforms that support :func:`~os.fork`." msgstr "" +"La clase :class:`ForkingMixIn` se usa de la misma manera, excepto que el " +"servidor generará un nuevo proceso para cada solicitud. Disponible solo en " +"plataformas POSIX que admitan :func:`~os.fork`." diff --git a/library/spwd.po b/library/spwd.po index a05be6a33e..2085b2f4ff 100644 --- a/library/spwd.po +++ b/library/spwd.po @@ -1,21 +1,24 @@ # 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-01-13 12:45-0300\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: Francisco Mora \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" +"X-Poedit-SourceCharset: UTF-8\n" #: ../Doc/library/spwd.rst:2 msgid ":mod:`spwd` --- The shadow password database" @@ -62,11 +65,11 @@ msgstr "Significado" #: ../Doc/library/spwd.rst:23 msgid "0" -msgstr "" +msgstr "0" #: ../Doc/library/spwd.rst:23 msgid "``sp_namp``" -msgstr "" +msgstr "``sp_namp``" #: ../Doc/library/spwd.rst:23 msgid "Login name" @@ -74,11 +77,11 @@ msgstr "Nombre de inicio de sesión" #: ../Doc/library/spwd.rst:25 msgid "1" -msgstr "" +msgstr "1" #: ../Doc/library/spwd.rst:25 msgid "``sp_pwdp``" -msgstr "" +msgstr "``sp_pwdp``" #: ../Doc/library/spwd.rst:25 msgid "Encrypted password" @@ -86,11 +89,11 @@ msgstr "Contraseña encriptada" #: ../Doc/library/spwd.rst:27 msgid "2" -msgstr "" +msgstr "2" #: ../Doc/library/spwd.rst:27 msgid "``sp_lstchg``" -msgstr "" +msgstr "``sp_lstchg``" #: ../Doc/library/spwd.rst:27 msgid "Date of last change" @@ -98,11 +101,11 @@ msgstr "Fecha del último cambio" #: ../Doc/library/spwd.rst:29 msgid "3" -msgstr "" +msgstr "3" #: ../Doc/library/spwd.rst:29 msgid "``sp_min``" -msgstr "" +msgstr "``sp_min``" #: ../Doc/library/spwd.rst:29 msgid "Minimal number of days between changes" @@ -110,11 +113,11 @@ msgstr "Número mínimo de días entre cambios" #: ../Doc/library/spwd.rst:32 msgid "4" -msgstr "" +msgstr "4" #: ../Doc/library/spwd.rst:32 msgid "``sp_max``" -msgstr "" +msgstr "``sp_max``" #: ../Doc/library/spwd.rst:32 msgid "Maximum number of days between changes" @@ -122,11 +125,11 @@ msgstr "Número máximo de días entre cambios" #: ../Doc/library/spwd.rst:35 msgid "5" -msgstr "" +msgstr "5" #: ../Doc/library/spwd.rst:35 msgid "``sp_warn``" -msgstr "" +msgstr "``sp_warn``" #: ../Doc/library/spwd.rst:35 msgid "Number of days before password expires to warn user about it" @@ -136,11 +139,11 @@ msgstr "" #: ../Doc/library/spwd.rst:38 msgid "6" -msgstr "" +msgstr "6" #: ../Doc/library/spwd.rst:38 msgid "``sp_inact``" -msgstr "" +msgstr "``sp_inact``" #: ../Doc/library/spwd.rst:38 msgid "Number of days after password expires until account is disabled" @@ -150,11 +153,11 @@ msgstr "" #: ../Doc/library/spwd.rst:42 msgid "7" -msgstr "" +msgstr "7" #: ../Doc/library/spwd.rst:42 msgid "``sp_expire``" -msgstr "" +msgstr "``sp_expire``" #: ../Doc/library/spwd.rst:42 msgid "Number of days since 1970-01-01 when account expires" @@ -162,11 +165,11 @@ msgstr "Número de días desde 1970-01-01 cuando expira la cuenta" #: ../Doc/library/spwd.rst:45 msgid "8" -msgstr "" +msgstr "8" #: ../Doc/library/spwd.rst:45 msgid "``sp_flag``" -msgstr "" +msgstr "``sp_flag``" #: ../Doc/library/spwd.rst:45 msgid "Reserved" diff --git a/library/sqlite3.po b/library/sqlite3.po index 5c8b8ea002..90a5af7cbb 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.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: 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: 2020-10-29 22:31-0500\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: German David Ramírez Figueroa \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/sqlite3.rst:2 msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases" -msgstr "" +msgstr ":mod:`sqlite3` --- DB-API 2.0 interfaz para bases de datos SQLite" #: ../Doc/library/sqlite3.rst:9 msgid "**Source code:** :source:`Lib/sqlite3/`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/sqlite3/`" #: ../Doc/library/sqlite3.rst:13 msgid "" @@ -37,6 +39,12 @@ msgid "" "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" +"SQLite es una biblioteca de C que provee una base de datos ligera basada en " +"disco que no requiere un proceso de servidor separado y permite acceder a la " +"base de datos usando una variación no estándar del lenguaje de consulta SQL. " +"Algunas aplicaciones pueden usar SQLite para almacenamiento interno. También " +"es posible prototipar una aplicación usando SQLite y luego transferir el " +"código a una base de datos más grande como PostgreSQL u Oracle." #: ../Doc/library/sqlite3.rst:20 msgid "" @@ -44,6 +52,8 @@ msgid "" "interface compliant with the DB-API 2.0 specification described by :pep:" "`249`." msgstr "" +"El módulo sqlite3 fue escrito por *Gerhard Häring*. Provee una interfaz SQL " +"compatible con la especificación DB-API 2.0 descrita por :pep:`249`." #: ../Doc/library/sqlite3.rst:23 msgid "" @@ -51,23 +61,33 @@ msgid "" "represents the database. Here the data will be stored in the :file:`example." "db` file::" msgstr "" +"Para usar el módulo, primero se debe crear un objeto :class:`Connection` que " +"representa la base de datos. Aquí los datos serán almacenados en el archivo :" +"file:`example.db`:" #: ../Doc/library/sqlite3.rst:30 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" +"También se puede agregar el nombre especial ``:memory:`` para crear una base " +"de datos en memoria RAM." #: ../Doc/library/sqlite3.rst:32 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`~Cursor.execute` method to perform SQL commands::" msgstr "" +"Una vez se tenga una :class:`Connection`, se puede crear un objeto :class:" +"`Cursor` y llamar su método :meth:`~Cursor.execute` para ejecutar comandos " +"SQL:" #: ../Doc/library/sqlite3.rst:51 msgid "" "The data you've saved is persistent and is available in subsequent sessions::" msgstr "" +"Los datos guardados son persistidos y están disponibles en sesiones " +"posteriores::" #: ../Doc/library/sqlite3.rst:57 msgid "" @@ -76,6 +96,11 @@ msgid "" "doing so is insecure; it makes your program vulnerable to an SQL injection " "attack (see https://xkcd.com/327/ for humorous example of what can go wrong)." msgstr "" +"Usualmente, las operaciones SQL necesitarán usar valores de variables de " +"Python. No se debe ensamblar la consulta usando operaciones de cadena de " +"Python porque hacerlo es inseguro; vuelve el programa vulnerable a ataques " +"de inyección SQL (ver este divertido ejemplo de lo que puede salir mal: " +"https://xkcd.com/327/ )" #: ../Doc/library/sqlite3.rst:62 #, python-format @@ -86,6 +111,11 @@ msgid "" "method. (Other database modules may use a different placeholder, such as ``" "%s`` or ``:1``.) For example::" msgstr "" +"En cambio, se usan los parámetros de sustitución DB-API. Colocar ``?`` como " +"un marcador de posición en el lugar donde se usara un valor, y luego se " +"provee una tupla de valores como segundo argumento del método del cursor :" +"meth:`~Cursor.execute` (otros módulos de bases de datos pueden usar un " +"marcado de posición diferente, como ``%s`` o ``:1``). Por ejemplo:" #: ../Doc/library/sqlite3.rst:84 msgid "" @@ -94,77 +124,95 @@ msgid "" "fetchone` method to retrieve a single matching row, or call :meth:`~Cursor." "fetchall` to get a list of the matching rows." msgstr "" +"Para obtener los datos luego de ejecutar una sentencia SELECT, se puede " +"tratar el cursor como un :term:`iterator`, llamar el método del cursor :meth:" +"`~Cursor.fetchone` para obtener un solo registro, o llamar :meth:`~Cursor." +"fetchall` para obtener una lista de todos los registros." #: ../Doc/library/sqlite3.rst:89 msgid "This example uses the iterator form::" -msgstr "" +msgstr "Este ejemplo usa la forma con el iterador::" #: ../Doc/library/sqlite3.rst:104 msgid "https://github.com/ghaering/pysqlite" -msgstr "" +msgstr "https://github.com/ghaering/pysqlite" #: ../Doc/library/sqlite3.rst:103 msgid "" "The pysqlite web page -- sqlite3 is developed externally under the name " "\"pysqlite\"." msgstr "" +"La página web *pysqlite* -- sqlite3 se desarrolla externamente bajo el " +"nombre de \"pysqlite\"." #: ../Doc/library/sqlite3.rst:108 msgid "https://www.sqlite.org" -msgstr "" +msgstr "https://www.sqlite.org" #: ../Doc/library/sqlite3.rst:107 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 SQLite; la documentación describe la sintaxis y los tipos de " +"datos disponibles para el lenguaje SQL soportado." #: ../Doc/library/sqlite3.rst:111 msgid "https://www.w3schools.com/sql/" -msgstr "" +msgstr "https://www.w3schools.com/sql/" #: ../Doc/library/sqlite3.rst:111 msgid "Tutorial, reference and examples for learning SQL syntax." -msgstr "" +msgstr "Tutorial, referencia y ejemplos para aprender sintaxis SQL." #: ../Doc/library/sqlite3.rst:113 msgid ":pep:`249` - Database API Specification 2.0" -msgstr "" +msgstr ":pep:`249` - Especificación de la API 2.0 de base de datos" #: ../Doc/library/sqlite3.rst:114 msgid "PEP written by Marc-André Lemburg." -msgstr "" +msgstr "PEP escrito por Marc-André Lemburg." #: ../Doc/library/sqlite3.rst:120 msgid "Module functions and constants" -msgstr "" +msgstr "Funciones y constantes del módulo" #: ../Doc/library/sqlite3.rst:125 msgid "" "The version number of this module, as a string. This is not the version of " "the SQLite library." msgstr "" +"El número de versión de este módulo, como una cadena de caracteres. Este no " +"es la versión de la librería SQLite." #: ../Doc/library/sqlite3.rst:131 msgid "" "The version number of this module, as a tuple of integers. This is not the " "version of the SQLite library." msgstr "" +"El número de versión de este módulo, como una tupla de enteros. Este no es " +"la versión de la librería SQLite." #: ../Doc/library/sqlite3.rst:137 msgid "The version number of the run-time SQLite library, as a string." msgstr "" +"El número de versión de la librería SQLite en tiempo de ejecución, como una " +"cadena de caracteres." #: ../Doc/library/sqlite3.rst:142 msgid "" "The version number of the run-time SQLite library, as a tuple of integers." msgstr "" +"El número de versión de la librería SQLite en tiempo de ejecución, como una " +"tupla de enteros." #: ../Doc/library/sqlite3.rst:147 ../Doc/library/sqlite3.rst:160 msgid "" "This constant is meant to be used with the *detect_types* parameter of the :" "func:`connect` function." msgstr "" +"Esta constante se usa con el parámetro *detect_types* de la función :func:" +"`connect`." #: ../Doc/library/sqlite3.rst:150 msgid "" @@ -175,6 +223,12 @@ msgid "" "look into the converters dictionary and use the converter function " "registered for that type there." msgstr "" +"Configurarla hace que el módulo :mod:`sqlite3` analice el tipo declarado " +"para cada columna que retorna. Este convertirá la primera palabra del tipo " +"declarado, i. e. para *\"integer primary key\"*, será convertido a *\"integer" +"\"*, o para \"*number(10)*\" será convertido a \"*number*\". Entonces para " +"esa columna, revisará el diccionario de conversiones y usará la función de " +"conversión registrada para ese tipo." #: ../Doc/library/sqlite3.rst:163 msgid "" @@ -188,12 +242,25 @@ msgid "" "out everything until the first ``'['`` for the column name and strip the " "preceeding space: the column name would simply be \"Expiration date\"." msgstr "" +"Configurar esto hace que la interfaz de SQLite analice el nombre para cada " +"columna que retorna, buscara una cadena de caracteres [mytype], y decidirá " +"cual 'mytype' es el tipo de la columna. Tratará de encontrar una entrada " +"'mytype' en el diccionario de conversiones y luego usar la función de " +"conversión encontrada allí y retornar el valor. El nombre de la columna " +"encontrada en :attr:`Cursor.description` no incluye el tipo, en otras " +"palabras, si se usa algo como ``'as ''Expiration date [datetime]\"'`` en el " +"SQL, entonces analizará todo lo demás hasta el primer ``'['`` para el nombre " +"de la columna y eliminará el espacio anterior: el nombre de la columna " +"sería: \"Expiration date\"." #: ../Doc/library/sqlite3.rst:176 msgid "" "Opens a connection to the SQLite database file *database*. By default " "returns a :class:`Connection` object, unless a custom *factory* is given." msgstr "" +"Abre una conexión al archivo de base de datos SQLite *database*. Por defecto " +"retorna un objeto :class:`Connection`, a menos que se indique un *factory* " +"personalizado." #: ../Doc/library/sqlite3.rst:179 msgid "" @@ -202,6 +269,11 @@ msgid "" "opened. You can use ``\":memory:\"`` to open a database connection to a " "database that resides in RAM instead of on disk." msgstr "" +"*database* es un :term:`path-like object` indicando el nombre de ruta " +"(absoluta o relativa al directorio de trabajo actual) del archivo de base de " +"datos abierto. Se puede usar ``\":memory:\"`` para abrir una conexión de " +"base de datos a una base de datos que reside en memoria RAM en lugar que " +"disco." #: ../Doc/library/sqlite3.rst:184 msgid "" @@ -211,12 +283,19 @@ msgid "" "connection should wait for the lock to go away until raising an exception. " "The default for the timeout parameter is 5.0 (five seconds)." msgstr "" +"Cuando una base de datos es accedida por múltiples conexiones, y uno de los " +"procesos modifica la base de datos, la base de datos SQLite se bloquea hasta " +"que la transacción se confirme. El parámetro *timeout* especifica que tanto " +"debe esperar la conexión para que el bloqueo desaparezca antes de lanzar una " +"excepción. Por defecto el parámetro *timeout* es de 5.0 (cinco segundos)." #: ../Doc/library/sqlite3.rst:190 msgid "" "For the *isolation_level* parameter, please see the :attr:`~Connection." "isolation_level` property of :class:`Connection` objects." msgstr "" +"Para el parámetro *isolation_level*, por favor ver la propiedad :attr:" +"`~Connection.isolation_level` del objeto :class:`Connection`." #: ../Doc/library/sqlite3.rst:193 msgid "" @@ -226,6 +305,11 @@ msgid "" "the module-level :func:`register_converter` function allow you to easily do " "that." msgstr "" +"De forma nativa SQLite soporta solo los tipos *TEXT*, *INTEGER*,*REAL*," +"*BLOB* y *NULL*. Si se quiere usar otros tipos, debe soportarlos usted " +"mismo. El parámetro *detect_types* y el uso de **converters** personalizados " +"registrados con la función a nivel del módulo :func:`register_converter` " +"permite hacerlo fácilmente." #: ../Doc/library/sqlite3.rst:198 msgid "" @@ -233,6 +317,9 @@ msgid "" "to any combination of :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES` " "to turn type detection on." msgstr "" +"*detect_types* por defecto es 0 (por ejemplo *off*, no detección de tipo), " +"se puede configurar a cualquier combinación de :const:`PARSE_DECLTYPES` y :" +"const:`PARSE_COLNAMES` para encender la detección." #: ../Doc/library/sqlite3.rst:202 msgid "" @@ -242,6 +329,11 @@ msgid "" "threads with the same connection writing operations should be serialized by " "the user to avoid data corruption." msgstr "" +"Por defecto, *check_same_thread* es :const:`True` y únicamente el hilo " +"creado puede utilizar la conexión. Si se configura :const:`False`, la " +"conexión retornada podrá ser compartida con múltiples hilos. Cuando se " +"utilizan múltiples hilos con la misma conexión, las operaciones de escritura " +"deberán ser serializadas por el usuario para evitar corrupción de datos." #: ../Doc/library/sqlite3.rst:207 msgid "" @@ -250,10 +342,15 @@ msgid "" "and make :func:`connect` use your class instead by providing your class for " "the *factory* parameter." msgstr "" +"Por defecto el módulo :mod:`sqlite3` utiliza su propia clase :class:" +"`Connection` para la llamada de conexión. Sin embargo se puede crear una " +"subclase de :class:`Connection` y hacer que :func:`connect` use su clase en " +"lugar de proveer la suya en el parámetro *factory*." #: ../Doc/library/sqlite3.rst:212 msgid "Consult the section :ref:`sqlite3-types` of this manual for details." msgstr "" +"Consulte la sección :ref:`sqlite3-types` de este manual para más detalles." #: ../Doc/library/sqlite3.rst:214 msgid "" @@ -262,6 +359,11 @@ msgid "" "that are cached for the connection, you can set the *cached_statements* " "parameter. The currently implemented default is to cache 100 statements." msgstr "" +"El módulo :mod:`sqlite3` internamente usa cache de declaraciones para evitar " +"un análisis SQL costoso. Si se desea especificar el número de sentencias que " +"estarán en memoria caché para la conexión, se puede configurar el parámetro " +"*cached_statements*. Por defecto están configurado para 100 sentencias en " +"memoria caché." #: ../Doc/library/sqlite3.rst:219 msgid "" @@ -269,6 +371,9 @@ msgid "" "specify options. For example, to open a database in read-only mode you can " "use::" msgstr "" +"Si *uri* es verdadero, la *database* se interpreta como una *URI*. Esto " +"permite especificar opciones. Por ejemplo, para abrir la base de datos en " +"modo solo lectura puedes usar::" #: ../Doc/library/sqlite3.rst:225 msgid "" @@ -276,21 +381,28 @@ msgid "" "can be found in the `SQLite URI documentation `_." msgstr "" +"Más información sobre esta característica, incluyendo una lista de opciones " +"reconocidas, pueden encontrarse en `la documentación de SQLite URI `_." #: ../Doc/library/sqlite3.rst:229 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect`` with argument " "``database``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``sqlite3.connect`` con " +"argumento ``database``." #: ../Doc/library/sqlite3.rst:230 msgid "Added the *uri* parameter." -msgstr "" +msgstr "Agregado el parámetro *uri*." #: ../Doc/library/sqlite3.rst:233 msgid "" "*database* can now also be a :term:`path-like object`, not only a string." msgstr "" +"*database* ahora también puede ser un :term:`path-like object`, no solo una " +"cadena de caracteres." #: ../Doc/library/sqlite3.rst:239 msgid "" @@ -301,6 +413,13 @@ msgid "" "and the name of the type in your query are matched in case-insensitive " "manner." msgstr "" +"Registra un invocable para convertir un *bytestring* de la base de datos en " +"un tipo Python personalizado. El invocable será invocado por todos los " +"valores de la base de datos que son del tipo *typename*. Conceder el " +"parámetro *detect_types* de la función :func:`connect` para el " +"funcionamiento de la detección de tipo. Se debe notar que *typename* y el " +"nombre del tipo en la consulta son comparados insensiblemente a mayúsculas y " +"minúsculas." #: ../Doc/library/sqlite3.rst:248 msgid "" @@ -309,6 +428,10 @@ msgid "" "parameter the Python value, and must return a value of the following types: " "int, float, str or bytes." msgstr "" +"Registra un invocable para convertir el tipo Python personalizado *type* a " +"uno de los tipos soportados por SQLite's. El invocable *callable* acepta un " +"único parámetro de valor Python, y debe retornar un valor de los siguientes " +"tipos: *int*, *float*, *str* or *bytes*." #: ../Doc/library/sqlite3.rst:256 msgid "" @@ -317,11 +440,17 @@ msgid "" "syntactically correct, only that there are no unclosed string literals and " "the statement is terminated by a semicolon." msgstr "" +"Retorna :const:`True` si la cadena *sql* contiene una o más sentencias SQL " +"completas terminadas con punto y coma. No se verifica que la sentencia SQL " +"sea sintácticamente correcta, solo que no existan literales de cadenas no " +"cerradas y que la sentencia termine por un punto y coma." #: ../Doc/library/sqlite3.rst:261 msgid "" "This can be used to build a shell for SQLite, as in the following example:" msgstr "" +"Esto puede ser usado para construir un *shell* para SQLite, como en el " +"siguiente ejemplo:" #: ../Doc/library/sqlite3.rst:269 msgid "" @@ -331,14 +460,20 @@ msgid "" "get tracebacks from callbacks on ``sys.stderr``. Use :const:`False` to " "disable the feature again." msgstr "" +"Por defecto no se obtendrá ningún *tracebacks* en funciones definidas por el " +"usuario, agregaciones, *converters*, autorizador de *callbacks* etc. si se " +"quiere depurarlas, se puede llamar esta función con *flag* configurado a " +"``True``. Después se obtendrán *tracebacks* de los *callbacks* en ``sys." +"stderr``. Usar :const:`False` para deshabilitar la característica de nuevo." #: ../Doc/library/sqlite3.rst:279 msgid "Connection Objects" -msgstr "" +msgstr "Objetos de conexión" #: ../Doc/library/sqlite3.rst:283 msgid "A SQLite database connection has the following attributes and methods:" msgstr "" +"Una conexión a base de datos SQLite tiene los siguientes atributos y métodos:" #: ../Doc/library/sqlite3.rst:287 msgid "" @@ -346,12 +481,19 @@ msgid "" "mode or one of \"DEFERRED\", \"IMMEDIATE\" or \"EXCLUSIVE\". See section :" "ref:`sqlite3-controlling-transactions` for a more detailed explanation." msgstr "" +"Obtener o configurar el actual nivel de insolación. :const:`None` para modo " +"*autocommit* o uno de \"DEFERRED\", \"IMMEDIATE\" o \"EXCLUSIVO\". Ver " +"sección :ref:`sqlite3-controlling-transactions` para una explicación " +"detallada." #: ../Doc/library/sqlite3.rst:293 msgid "" ":const:`True` if a transaction is active (there are uncommitted changes), :" "const:`False` otherwise. Read-only attribute." msgstr "" +":const:`True` si una transacción está activa (existen cambios " +"*uncommitted*), :const:`False` en sentido contrario. Atributo de solo " +"lectura." #: ../Doc/library/sqlite3.rst:300 msgid "" @@ -359,6 +501,9 @@ msgid "" "supplied, this must be a callable returning an instance of :class:`Cursor` " "or its subclasses." msgstr "" +"El método cursor acepta un único parámetro opcional *factory*. Si es " +"agregado, éste debe ser un invocable que retorna una instancia de :class:" +"`Cursor` o sus subclases." #: ../Doc/library/sqlite3.rst:306 msgid "" @@ -367,12 +512,19 @@ msgid "" "other database connections. If you wonder why you don't see the data you've " "written to the database, please check you didn't forget to call this method." msgstr "" +"Este método asigna la transacción actual. Si no se llama este método, " +"cualquier cosa hecha desde la última llamada de ``commit()`` no es visible " +"para otras conexiones de bases de datos. Si se pregunta el porqué no se ven " +"los datos que escribiste, por favor verifica que no olvidaste llamar este " +"método." #: ../Doc/library/sqlite3.rst:313 msgid "" "This method rolls back any changes to the database since the last call to :" "meth:`commit`." msgstr "" +"Este método retrocede cualquier cambio en la base de datos desde la llamada " +"del último :meth:`commit`." #: ../Doc/library/sqlite3.rst:318 msgid "" @@ -380,6 +532,9 @@ msgid "" "call :meth:`commit`. If you just close your database connection without " "calling :meth:`commit` first, your changes will be lost!" msgstr "" +"Este método cierra la conexión a la base de datos. Nótese que éste no llama " +"automáticamente :meth:`commit`. Si se cierra la conexión a la base de datos " +"sin llamar primero :meth:`commit`, los cambios se perderán!" #: ../Doc/library/sqlite3.rst:324 msgid "" @@ -387,6 +542,9 @@ msgid "" "meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor.execute` " "method with the *parameters* given, and returns the cursor." msgstr "" +"Este es un atajo no estándar que crea un objeto cursor llamando el método :" +"meth:`~Connection.cursor`, llama su método :meth:`~Cursor.execute` con los " +"*parameters* dados, y retorna el cursor." #: ../Doc/library/sqlite3.rst:331 msgid "" @@ -394,6 +552,9 @@ msgid "" "meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor." "executemany` method with the *parameters* given, and returns the cursor." msgstr "" +"Este es un atajo no estándar que crea un objeto cursor llamando el método :" +"meth:`~Connection.cursor`, llama su método :meth:`~Cursor.executemany` con " +"los *parameters* dados, y retorna el cursor." #: ../Doc/library/sqlite3.rst:338 msgid "" @@ -401,6 +562,9 @@ msgid "" "meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor." "executescript` method with the given *sql_script*, and returns the cursor." msgstr "" +"Este es un atajo no estándar que crea un objeto cursor llamando el método :" +"meth:`~Connection.cursor`, llama su método :meth:`~Cursor.executescript` con " +"el *sql_script*, y retorna el cursor." #: ../Doc/library/sqlite3.rst:345 msgid "" @@ -414,25 +578,36 @@ msgid "" "SQLite 3.8.3 or higher, :exc:`NotSupportedError` will be raised if used with " "older versions." msgstr "" +"Crea un función definida de usuario que se puede usar después desde " +"declaraciones SQL con el nombre de función *name*. *num_params* es el número " +"de parámetros que la función acepta (si *num_params* is -1, la función puede " +"tomar cualquier número de argumentos), y *func* es un invocable de Python " +"que es llamado como la función SQL. Si *deterministic* es verdadero, la " +"función creada es marcada como `deterministic `_, lo cual permite a SQLite hacer optimizaciones " +"adicionales. Esta marca es soportada por SQLite 3.8.3 o superior, será " +"lanzado :exc:`NotSupportedError` si se usa con versiones antiguas." #: ../Doc/library/sqlite3.rst:355 msgid "" "The function can return any of the types supported by SQLite: bytes, str, " "int, float and ``None``." msgstr "" +"La función puede retornar cualquier tipo soportado por SQLite: bytes, str, " +"int, float y ``None``." #: ../Doc/library/sqlite3.rst:358 msgid "The *deterministic* parameter was added." -msgstr "" +msgstr "El parámetro *deterministic* fue agregado." #: ../Doc/library/sqlite3.rst:361 ../Doc/library/sqlite3.rst:378 #: ../Doc/library/sqlite3.rst:492 ../Doc/library/sqlite3.rst:649 msgid "Example:" -msgstr "" +msgstr "Ejemplo:" #: ../Doc/library/sqlite3.rst:368 msgid "Creates a user-defined aggregate function." -msgstr "" +msgstr "Crea una función agregada definida por el usuario." #: ../Doc/library/sqlite3.rst:370 msgid "" @@ -441,12 +616,18 @@ msgid "" "take any number of arguments), and a ``finalize`` method which will return " "the final result of the aggregate." msgstr "" +"La clase agregada debe implementar un método ``step``, el cual acepta el " +"número de parámetros *num_params* (si *num_params* es -1, la función puede " +"tomar cualquier número de argumentos), y un método ``finalize`` el cual " +"retornará el resultado final del agregado." #: ../Doc/library/sqlite3.rst:375 msgid "" "The ``finalize`` method can return any of the types supported by SQLite: " "bytes, str, int, float and ``None``." msgstr "" +"El método ``finalize`` puede retornar cualquiera de los tipos soportados por " +"SQLite: bytes, str, int, float and ``None``." #: ../Doc/library/sqlite3.rst:385 msgid "" @@ -456,22 +637,34 @@ msgid "" "first is ordered higher than the second. Note that this controls sorting " "(ORDER BY in SQL) so your comparisons don't affect other SQL operations." msgstr "" +"Crea una collation con el *name* y *callable* especificado. El invocable " +"será pasado con dos cadenas de texto como argumentos. Se retornará -1 si el " +"primero esta ordenado menor que el segundo, 0 si están ordenados igual y 1 " +"si el primero está ordenado mayor que el segundo. Nótese que esto controla " +"la ordenación (ORDER BY en SQL) por lo tanto sus comparaciones no afectan " +"otras comparaciones SQL." #: ../Doc/library/sqlite3.rst:391 msgid "" "Note that the callable will get its parameters as Python bytestrings, which " "will normally be encoded in UTF-8." msgstr "" +"Note que el invocable obtiene sus parámetros como Python bytestrings, lo " +"cual normalmente será codificado en UTF-8." #: ../Doc/library/sqlite3.rst:394 msgid "" "The following example shows a custom collation that sorts \"the wrong way\":" msgstr "" +"El siguiente ejemplo muestra una *collation* personalizada que ordena \"La " +"forma incorrecta\":" #: ../Doc/library/sqlite3.rst:398 msgid "" "To remove a collation, call ``create_collation`` with ``None`` as callable::" msgstr "" +"Para remover una collation, llama ``create_collation`` con ``None`` como " +"invocable::" #: ../Doc/library/sqlite3.rst:405 msgid "" @@ -479,6 +672,9 @@ msgid "" "might be executing on the connection. The query will then abort and the " "caller will get an exception." msgstr "" +"Se puede llamar este método desde un hilo diferente para abortar cualquier " +"consulta que pueda estar ejecutándose en la conexión. La consulta será " +"abortada y quien realiza la llamada obtendrá una excepción." #: ../Doc/library/sqlite3.rst:412 msgid "" @@ -489,6 +685,12 @@ msgid "" "the column should be treated as a NULL value. These constants are available " "in the :mod:`sqlite3` module." msgstr "" +"Esta rutina registra un callback. El callback es invocado para cada intento " +"de acceso a un columna de una tabla en la base de datos. El callback deberá " +"retornar :const:`SQLITE_OK` si el acceso esta permitido, :const:" +"`SQLITE_DENY` si la completa declaración SQL deberá ser abortada con un " +"error y :const:`SQLITE_IGNORE` si la columna deberá ser tratada como un " +"valor NULL. Estas constantes están disponibles en el módulo :mod:`sqlite3`." #: ../Doc/library/sqlite3.rst:419 msgid "" @@ -500,6 +702,13 @@ msgid "" "attempt or :const:`None` if this access attempt is directly from input SQL " "code." msgstr "" +"El primer argumento del callback significa que tipo de operación será " +"autorizada. El segundo y tercer argumento serán argumentos o :const:`None` " +"dependiendo del primer argumento. El cuarto argumento es el nombre de la " +"base de datos (\"main\", \"temp\", etc.) si aplica. El quinto argumento es " +"el nombre del disparador más interno o vista que es responsable por los " +"intentos de acceso o :const:`None` si este intento de acceso es directo " +"desde el código SQL de entrada." #: ../Doc/library/sqlite3.rst:426 msgid "" @@ -508,6 +717,10 @@ msgid "" "the first one. All necessary constants are available in the :mod:`sqlite3` " "module." msgstr "" +"Por favor consulte la documentación de SQLite sobre los posibles valores " +"para el primer argumento y el significado del segundo y tercer argumento " +"dependiendo del primero. Todas las constantes necesarias están disponibles " +"en el módulo :mod:`sqlite3`." #: ../Doc/library/sqlite3.rst:433 msgid "" @@ -516,12 +729,18 @@ msgid "" "get called from SQLite during long-running operations, for example to update " "a GUI." msgstr "" +"Esta rutina registra un *callback*. El *callback* es invocado para cada *n* " +"instrucciones de la máquina virtual SQLite. Esto es útil si se quiere tener " +"llamado a SQLite durante operaciones de larga duración, por ejemplo para " +"actualizar una GUI." #: ../Doc/library/sqlite3.rst:438 msgid "" "If you want to clear any previously installed progress handler, call the " "method with :const:`None` for *handler*." msgstr "" +"Si se desea limpiar cualquier *progress handler* instalado previamente, " +"llame el método con :const:`None` para *handler*." #: ../Doc/library/sqlite3.rst:441 msgid "" @@ -529,12 +748,16 @@ msgid "" "currently executing query and cause it to raise an :exc:`OperationalError` " "exception." msgstr "" +"Retornando un valor diferente a 0 de la función gestora terminará la actual " +"consulta en ejecución y causará lanzar una excepción :exc:`OperationalError`." #: ../Doc/library/sqlite3.rst:448 msgid "" "Registers *trace_callback* to be called for each SQL statement that is " "actually executed by the SQLite backend." msgstr "" +"Registra *trace_callback* para ser llamado por cada sentencia SQL que " +"realmente se ejecute por el *backend* de SQLite." #: ../Doc/library/sqlite3.rst:451 msgid "" @@ -544,11 +767,19 @@ msgid "" "execute` methods. Other sources include the transaction management of the " "Python module and the execution of triggers defined in the current database." msgstr "" +"El único argumento pasado al callback es la sentencia (como cadena de texto) " +"que se está ejecutando. El valor retornado del *callback* es ignorado. " +"Nótese que el backend no solo ejecuta la sentencia pasada a los métodos :" +"meth:`Cursor.execute`. Otras fuentes incluyen el gestión de la transacción " +"del módulo de Python y la ejecución de los disparadores definidos en la " +"actual base de datos." #: ../Doc/library/sqlite3.rst:457 msgid "" "Passing :const:`None` as *trace_callback* will disable the trace callback." msgstr "" +"Pasando :const:`None` como *trace_callback* deshabilitara el *trace " +"callback*." #: ../Doc/library/sqlite3.rst:464 msgid "" @@ -557,10 +788,16 @@ msgid "" "aggregates or whole new virtual table implementations. One well-known " "extension is the fulltext-search extension distributed with SQLite." msgstr "" +"Esta rutina habilita/deshabilita el motor de SQLite para cargar extensiones " +"SQLite desde bibliotecas compartidas. Las extensiones SQLite pueden definir " +"nuevas funciones, agregaciones o una completa nueva implementación de tablas " +"virtuales. Una bien conocida extensión es *fulltext-search* distribuida con " +"SQLite." #: ../Doc/library/sqlite3.rst:469 ../Doc/library/sqlite3.rst:481 msgid "Loadable extensions are disabled by default. See [#f1]_." msgstr "" +"Las extensiones cargables están deshabilitadas por defecto. Ver [#f1]_." #: ../Doc/library/sqlite3.rst:477 msgid "" @@ -568,6 +805,9 @@ msgid "" "enable extension loading with :meth:`enable_load_extension` before you can " "use this routine." msgstr "" +"Esta rutina carga una extensión SQLite de una biblioteca compartida. Se debe " +"habilitar la carga de extensiones con :meth:`enable_load_extension` antes de " +"usar esta rutina." #: ../Doc/library/sqlite3.rst:487 msgid "" @@ -576,6 +816,11 @@ msgid "" "can implement more advanced ways of returning results, such as returning an " "object that can also access columns by name." msgstr "" +"Se puede cambiar este atributo a un invocable que acepta el cursor y la fila " +"original como una tupla y retornará la fila con el resultado real. De esta " +"forma, se puede implementar más avanzadas formas de retornar resultados, " +"tales como retornar un objeto que puede también acceder a las columnas por " +"su nombre." #: ../Doc/library/sqlite3.rst:496 msgid "" @@ -586,6 +831,13 @@ msgid "" "overhead. It will probably be better than your own custom dictionary-based " "approach or even a db_row based solution." msgstr "" +"Si retornado una tupla no es suficiente y se quiere acceder a las columnas " +"basadas en nombre, se debe considerar configurar :attr:`row_factory` a la " +"altamente optimizada tipo :class:`sqlite3.Row`. :class:`Row` provee ambos " +"accesos a columnas basada en índice y tipado insensible con casi nada de " +"sobrecoste de memoria. Será probablemente mejor que tú propio enfoque de " +"basado en diccionario personalizado o incluso mejor que una solución basada " +"en *db_row*." #: ../Doc/library/sqlite3.rst:508 msgid "" @@ -594,22 +846,32 @@ msgid "" "the :mod:`sqlite3` module will return Unicode objects for ``TEXT``. If you " "want to return bytestrings instead, you can set it to :class:`bytes`." msgstr "" +"Usando este atributo se puede controlar que objetos son retornados por el " +"tipo de dato ``TEXT``. Por defecto, este atributo es configurado a :class:" +"`str` y el módulo :mod:`sqlite3` retornará objetos Unicode para ``TEXT``. Si " +"en cambio se quiere retornar *bytestrings*, se debe configurar a :class:" +"`bytes`." #: ../Doc/library/sqlite3.rst:513 msgid "" "You can also set it to any other callable that accepts a single bytestring " "parameter and returns the resulting object." msgstr "" +"También se puede configurar a cualquier otro *callable* que acepte un único " +"parámetro *bytestring* y retorne el objeto resultante." #: ../Doc/library/sqlite3.rst:516 msgid "See the following example code for illustration:" -msgstr "" +msgstr "Ver el siguiente ejemplo de código para ilustración:" #: ../Doc/library/sqlite3.rst:523 msgid "" "Returns the total number of database rows that have been modified, inserted, " "or deleted since the database connection was opened." msgstr "" +"Regresa el número total de filas de la base de datos que han sido " +"modificadas, insertadas o borradas desde que la conexión a la base de datos " +"fue abierta." #: ../Doc/library/sqlite3.rst:529 msgid "" @@ -618,10 +880,14 @@ msgid "" "the same capabilities as the :kbd:`.dump` command in the :program:`sqlite3` " "shell." msgstr "" +"Regresa un iterador para volcar la base de datos en un texto de formato SQL. " +"Es útil cuando guardamos una base de datos en memoria para posterior " +"restauración. Esta función provee las mismas capacidades que el comando :kbd:" +"`dump` en el *shell* :program:`sqlite3`." #: ../Doc/library/sqlite3.rst:534 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/library/sqlite3.rst:548 msgid "" @@ -630,6 +896,10 @@ msgid "" "will be written into the mandatory argument *target*, that must be another :" "class:`Connection` instance." msgstr "" +"Este método crea un respaldo de una base de datos SQLite incluso mientras " +"está siendo accedida por otros clientes, o concurrente por la misma " +"conexión. La copia será escrita dentro del argumento obligatorio *target*, " +"que deberá ser otra instancia de :class:`Connection`." #: ../Doc/library/sqlite3.rst:553 msgid "" @@ -637,6 +907,9 @@ msgid "" "entire database is copied in a single step; otherwise the method performs a " "loop copying up to *pages* pages at a time." msgstr "" +"Por defecto, o cuando *pages* es ``0`` o un entero negativo, la base de " +"datos completa es copiada en un solo paso; de otra forma el método realiza " +"un bucle copiando hasta el número de *pages* a la vez." #: ../Doc/library/sqlite3.rst:557 msgid "" @@ -645,6 +918,11 @@ msgid "" "respectively the *status* of the last iteration, the *remaining* number of " "pages still to be copied and the *total* number of pages." msgstr "" +"Si *progress* es especificado, deberá ser ``None`` o un objeto *callable* " +"que será ejecutado en cada iteración con los tres argumentos enteros, " +"respectivamente el estado *status* de la última iteración, el restante " +"*remaining* numero de páginas presentes para ser copiadas y el número total " +"*total* de páginas." #: ../Doc/library/sqlite3.rst:562 msgid "" @@ -654,6 +932,11 @@ msgid "" "specified after the ``AS`` keyword in an ``ATTACH DATABASE`` statement for " "an attached database." msgstr "" +"El argumento *name* especifica el nombre de la base de datos que será " +"copiada: deberá ser una cadena de texto que contenga el por defecto ``\"main" +"\"``, que indica la base de datos principal, ``\"temp\"`` que indica la base " +"de datos temporal o el nombre especificado después de la palabra clave " +"``AS`` en una sentencia ``ATTACH DATABASE`` para una base de datos adjunta." #: ../Doc/library/sqlite3.rst:568 msgid "" @@ -661,26 +944,31 @@ msgid "" "successive attempts to backup remaining pages, can be specified either as an " "integer or a floating point value." msgstr "" +"El argumento *sleep* especifica el número de segundos a dormir entre " +"sucesivos intentos de respaldar páginas restantes, puede ser especificado " +"como un entero o un valor de punto flotante." #: ../Doc/library/sqlite3.rst:572 msgid "Example 1, copy an existing database into another::" -msgstr "" +msgstr "Ejemplo 1, copiar una base de datos existente en otra::" #: ../Doc/library/sqlite3.rst:586 msgid "Example 2, copy an existing database into a transient copy::" msgstr "" +"Ejemplo 2: copiar una base de datos existente en una copia transitoria::" #: ../Doc/library/sqlite3.rst:594 msgid "Availability: SQLite 3.6.11 or higher" -msgstr "" +msgstr "Disponibilidad: SQLite 3.6.11 o superior" #: ../Doc/library/sqlite3.rst:602 msgid "Cursor Objects" -msgstr "" +msgstr "Objetos Cursor" #: ../Doc/library/sqlite3.rst:606 msgid "A :class:`Cursor` instance has the following attributes and methods." msgstr "" +"Una instancia de :class:`Cursor` tiene los siguientes atributos y métodos." #: ../Doc/library/sqlite3.rst:613 msgid "" @@ -689,10 +977,14 @@ msgid "" "two kinds of placeholders: question marks (qmark style) and named " "placeholders (named style)." msgstr "" +"Ejecuta una sentencia SQL. La sentencia SQL puede estar parametrizada (es " +"decir marcadores en lugar de literales SQL). El módulo :mod:`sqlite3` " +"soporta dos tipos de marcadores: signos de interrogación (estilo qmark) y " +"marcadores nombrados (estilo nombrado)." #: ../Doc/library/sqlite3.rst:618 msgid "Here's an example of both styles:" -msgstr "" +msgstr "Acá esta un ejemplo con los dos estilos:" #: ../Doc/library/sqlite3.rst:622 msgid "" @@ -701,6 +993,10 @@ msgid "" "Use :meth:`executescript` if you want to execute multiple SQL statements " "with one call." msgstr "" +":meth:`execute` solo ejecutará una única sentencia SQL. Si se trata de " +"ejecutar más de una sentencia con el, lanzará un :exc:`.Warning`. Usar :meth:" +"`executescript` si se quiere ejecutar múltiples sentencias SQL con una " +"llamada." #: ../Doc/library/sqlite3.rst:630 msgid "" @@ -708,10 +1004,14 @@ msgid "" "the sequence *seq_of_parameters*. The :mod:`sqlite3` module also allows " "using an :term:`iterator` yielding parameters instead of a sequence." msgstr "" +"Ejecuta un comando SQL contra todas las secuencias de parámetros o mapeos " +"encontrados en la secuencia *seq_of_parameters*. El módulo :mod:`sqlite3` " +"también permite usar un :term:`iterator` produciendo parámetros en lugar de " +"una secuencia." #: ../Doc/library/sqlite3.rst:636 msgid "Here's a shorter example using a :term:`generator`:" -msgstr "" +msgstr "Acá un corto ejemplo usando un :term:`generator`:" #: ../Doc/library/sqlite3.rst:643 msgid "" @@ -719,22 +1019,30 @@ msgid "" "statements at once. It issues a ``COMMIT`` statement first, then executes " "the SQL script it gets as a parameter." msgstr "" +"Este es un conveniente método no estándar para ejecutar múltiples sentencias " +"SQL de una vez. Emite una sentencia ``COMMIT`` primero, luego ejecuta el " +"script SQL obtenido como parámetro." #: ../Doc/library/sqlite3.rst:647 msgid "*sql_script* can be an instance of :class:`str`." -msgstr "" +msgstr "*sql_script* puede ser una instancia de :class:`str`." #: ../Doc/library/sqlite3.rst:656 msgid "" "Fetches the next row of a query result set, returning a single sequence, or :" "const:`None` when no more data is available." msgstr "" +"Obtiene la siguiente fila de un conjunto resultado, retorna una única " +"secuencia, o :const:`None` cuando no hay más datos disponibles." #: ../Doc/library/sqlite3.rst:662 msgid "" "Fetches the next set of rows of a query result, returning a list. An empty " "list is returned when no more rows are available." msgstr "" +"Obtiene el siguiente conjunto de filas del resultado de una consulta, " +"retornando una lista. Una lista vacía es retornada cuando no hay más filas " +"disponibles." #: ../Doc/library/sqlite3.rst:665 msgid "" @@ -744,6 +1052,12 @@ msgid "" "size parameter. If this is not possible due to the specified number of rows " "not being available, fewer rows may be returned." msgstr "" +"El número de filas a obtener por llamado es especificado por el parámetro " +"*size*. Si no es suministrado, el arraysize del cursor determina el número " +"de filas a obtener. El método debería intentar obtener tantas filas como las " +"indicadas por el parámetro size. Si esto no es posible debido a que el " +"número especificado de filas no está disponible, entonces menos filas " +"deberán ser retornadas." #: ../Doc/library/sqlite3.rst:671 msgid "" @@ -752,6 +1066,10 @@ msgid "" "attribute. If the *size* parameter is used, then it is best for it to retain " "the same value from one :meth:`fetchmany` call to the next." msgstr "" +"Nótese que hay consideraciones de desempeño involucradas con el parámetro " +"*size*. Para un optimo desempeño, es usualmente mejor usar el atributo " +"*arraysize*. Si el parámetro *size* es usado, entonces es mejor retener el " +"mismo valor de una llamada :meth:`fetchmany` a la siguiente." #: ../Doc/library/sqlite3.rst:678 msgid "" @@ -759,10 +1077,13 @@ msgid "" "the cursor's arraysize attribute can affect the performance of this " "operation. An empty list is returned when no rows are available." msgstr "" +"Obtiene todas las filas (restantes) del resultado de una consulta. Nótese " +"que el atributo arraysize del cursor puede afectar el desempeño de esta " +"operación. Una lista vacía será retornada cuando no hay filas disponibles." #: ../Doc/library/sqlite3.rst:684 msgid "Close the cursor now (rather than whenever ``__del__`` is called)." -msgstr "" +msgstr "Cierra el cursor ahora (en lugar que cuando ``__del__`` es llamado)" #: ../Doc/library/sqlite3.rst:686 msgid "" @@ -770,6 +1091,9 @@ msgid "" "`ProgrammingError` exception will be raised if any operation is attempted " "with the cursor." msgstr "" +"El cursor no será usable de este punto en adelante; una excepción :exc:" +"`ProgrammingError` será lanzada si se intenta cualquier operación con el " +"cursor." #: ../Doc/library/sqlite3.rst:691 msgid "" @@ -777,12 +1101,17 @@ msgid "" "this attribute, the database engine's own support for the determination of " "\"rows affected\"/\"rows selected\" is quirky." msgstr "" +"A pesar de que la clase :class:`Cursor` del módulo :mod:`sqlite3` implementa " +"este atributo, el propio soporte del motor de base de datos para la " +"determinación de \"filas afectadas\"/\"filas seleccionadas\" es raro." #: ../Doc/library/sqlite3.rst:695 msgid "" "For :meth:`executemany` statements, the number of modifications are summed " "up into :attr:`rowcount`." msgstr "" +"Para sentencias :meth:`executemany`, el número de modificaciones se resumen " +"en :attr:`rowcount`." #: ../Doc/library/sqlite3.rst:698 msgid "" @@ -792,12 +1121,20 @@ msgid "" "includes ``SELECT`` statements because we cannot determine the number of " "rows a query produced until all rows were fetched." msgstr "" +"Cómo lo requiere la especificación Python DB API, el atributo :attr:" +"`rowcount` \"es -1 en caso de que ``executeXX()`` no haya sido ejecutada en " +"el cursor o en el *rowcount* de la última operación no haya sido determinada " +"por la interface\". Esto incluye sentencias ``SELECT`` porque no podemos " +"determinar el número de filas que una consulta produce hasta que todas las " +"filas sean obtenidas." #: ../Doc/library/sqlite3.rst:704 msgid "" "With SQLite versions before 3.6.5, :attr:`rowcount` is set to 0 if you make " "a ``DELETE FROM table`` without any condition." msgstr "" +"Con versiones de SQLite anteriores a 3.6.5, :attr:`rowcount` es configurado " +"a 0 si se hace un ``DELETE FROM table`` sin ninguna condición." #: ../Doc/library/sqlite3.rst:709 msgid "" @@ -807,16 +1144,23 @@ msgid "" "or when :meth:`executemany` is called, :attr:`lastrowid` is set to :const:" "`None`." msgstr "" +"Este atributo de solo lectura provee el rowid de la última fila modificada. " +"Solo se configura si se emite una sentencia ``INSERT`` o ``REPLACE`` usando " +"el método :meth:`execute`. Para otras operaciones diferentes a ``INSERT`` o " +"``REPLACE`` o cuando :meth:`executemany` es llamado, :attr:`lastrowid` es " +"configurado a :const:`None`." #: ../Doc/library/sqlite3.rst:715 msgid "" "If the ``INSERT`` or ``REPLACE`` statement failed to insert the previous " "successful rowid is returned." msgstr "" +"Si la sentencia ``INSERT`` o ``REPLACE`` no se pudo insertar, se retorna el " +"anterior rowid exitoso." #: ../Doc/library/sqlite3.rst:718 msgid "Added support for the ``REPLACE`` statement." -msgstr "" +msgstr "Se agregó soporte para sentencias ``REPLACE``." #: ../Doc/library/sqlite3.rst:723 msgid "" @@ -824,6 +1168,9 @@ msgid "" "`fetchmany`. The default value is 1 which means a single row would be " "fetched per call." msgstr "" +"Atributo de lectura/escritura que controla el número de filas retornadas " +"por :meth:`fetchmany`. El valor por defecto es 1, lo cual significa que una " +"única fila será obtenida por llamada." #: ../Doc/library/sqlite3.rst:728 msgid "" @@ -831,10 +1178,15 @@ msgid "" "remain compatible with the Python DB API, it returns a 7-tuple for each " "column where the last six items of each tuple are :const:`None`." msgstr "" +"Este atributo de solo lectura provee el nombre de las columnas de la última " +"consulta. Para ser compatible con Python DB API, retorna una 7-tupla para " +"cada columna en donde los últimos seis ítems de cada tupla son :const:`None`." #: ../Doc/library/sqlite3.rst:732 msgid "It is set for ``SELECT`` statements without any matching rows as well." msgstr "" +"También es configurado para sentencias ``SELECT`` sin ninguna fila " +"coincidente." #: ../Doc/library/sqlite3.rst:736 msgid "" @@ -843,10 +1195,14 @@ msgid "" "calling :meth:`con.cursor() ` will have a :attr:" "`connection` attribute that refers to *con*::" msgstr "" +"Este atributo de solo lectura provee la :class:`Connection` de la base de " +"datos SQLite usada por el objeto :class:`Cursor`. Un objeto :class:`Cursor` " +"creado por la llamada de :meth:`con.cursor() ` tendrá un " +"atributo :attr:`connection` que se refiere a *con*::" #: ../Doc/library/sqlite3.rst:749 msgid "Row Objects" -msgstr "" +msgstr "Objetos Fila (*Row*)" #: ../Doc/library/sqlite3.rst:753 msgid "" @@ -854,60 +1210,76 @@ msgid "" "row_factory` for :class:`Connection` objects. It tries to mimic a tuple in " "most of its features." msgstr "" +"Una instancia :class:`Row` sirve como una altamente optimizada :attr:" +"`~Connection.row_factory` para objetos :class:`Connection`. Esta trata de " +"imitar una tupla en su mayoría de características." #: ../Doc/library/sqlite3.rst:757 msgid "" "It supports mapping access by column name and index, iteration, " "representation, equality testing and :func:`len`." msgstr "" +"Soporta acceso mapeado por nombre de columna e índice, iteración, " +"representación, pruebas de igualdad y :func:`len`." #: ../Doc/library/sqlite3.rst:760 msgid "" "If two :class:`Row` objects have exactly the same columns and their members " "are equal, they compare equal." msgstr "" +"Si dos objetos :class:`Row` tienen exactamente las mismas columnas y sus " +"miembros son iguales, entonces se comparan a igual." #: ../Doc/library/sqlite3.rst:765 msgid "" "This method returns a list of column names. Immediately after a query, it is " "the first member of each tuple in :attr:`Cursor.description`." msgstr "" +"Este método retorna una lista con los nombre de columnas. Inmediatamente " +"después de una consulta, es el primer miembro de cada tupla en :attr:`Cursor." +"description`." #: ../Doc/library/sqlite3.rst:768 msgid "Added support of slicing." -msgstr "" +msgstr "Agrega soporte de segmentación." #: ../Doc/library/sqlite3.rst:771 msgid "Let's assume we initialize a table as in the example given above::" -msgstr "" +msgstr "Vamos a asumir que se inicializa una tabla como en el ejemplo dado::" #: ../Doc/library/sqlite3.rst:783 msgid "Now we plug :class:`Row` in::" -msgstr "" +msgstr "Ahora conectamos :class:`Row` en::" #: ../Doc/library/sqlite3.rst:815 msgid "Exceptions" -msgstr "" +msgstr "Excepciones" #: ../Doc/library/sqlite3.rst:819 msgid "A subclass of :exc:`Exception`." -msgstr "" +msgstr "Una subclase de :exc:`Exception`." #: ../Doc/library/sqlite3.rst:823 msgid "" "The base class of the other exceptions in this module. It is a subclass of :" "exc:`Exception`." msgstr "" +"La clase base de otras excepciones en este módulo. Es una subclase de :exc:" +"`Exception`." #: ../Doc/library/sqlite3.rst:828 msgid "Exception raised for errors that are related to the database." msgstr "" +"Excepción lanzada para errores que están relacionados con la base de datos." #: ../Doc/library/sqlite3.rst:832 msgid "" "Exception raised when the relational integrity of the database is affected, " "e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`." msgstr "" +"Excepción lanzada cuando la integridad de la base de datos es afectada, por " +"ejemplo la comprobación de una llave foránea falla. Es una subclase de :exc:" +"`DatabaseError`." #: ../Doc/library/sqlite3.rst:837 msgid "" @@ -915,6 +1287,9 @@ msgid "" "exists, syntax error in the SQL statement, wrong number of parameters " "specified, etc. It is a subclass of :exc:`DatabaseError`." msgstr "" +"Excepción lanzada por errores de programación, e.g. tabla no encontrada o ya " +"existente, error de sintaxis en la sentencia SQL, número equivocado de " +"parámetros especificados, etc. Es una subclase de :exc:`DatabaseError`." #: ../Doc/library/sqlite3.rst:843 msgid "" @@ -923,6 +1298,11 @@ msgid "" "disconnect occurs, the data source name is not found, a transaction could " "not be processed, etc. It is a subclass of :exc:`DatabaseError`." msgstr "" +"Excepción lanzada por errores relacionados por la operación de la base de " +"datos y no necesariamente bajo el control del programador, por ejemplo " +"ocurre una desconexión inesperada, el nombre de la fuente de datos no es " +"encontrado, una transacción no pudo ser procesada, etc. Es una subclase de :" +"exc:`DatabaseError`." #: ../Doc/library/sqlite3.rst:850 msgid "" @@ -931,81 +1311,90 @@ msgid "" "method on a connection that does not support transaction or has transactions " "turned off. It is a subclass of :exc:`DatabaseError`." msgstr "" +"Excepción lanzada en caso de que un método o API de base de datos fuera " +"usada en una base de datos que no la soporta, e.g. llamando el método :meth:" +"`~Connection.rollback` en una conexión que no soporta la transacción o tiene " +"deshabilitada las transacciones. Es una subclase de :exc:`DatabaseError`." #: ../Doc/library/sqlite3.rst:859 msgid "SQLite and Python types" -msgstr "" +msgstr "SQLite y tipos de Python" #: ../Doc/library/sqlite3.rst:863 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/library/sqlite3.rst:865 msgid "" "SQLite natively supports the following types: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." msgstr "" +"SQLite soporta de forma nativa los siguientes tipos: ``NULL``, ``INTEGER``, " +"``REAL``, ``TEXT``, ``BLOB``." #: ../Doc/library/sqlite3.rst:868 msgid "" "The following Python types can thus be sent to SQLite without any problem:" msgstr "" +"Los siguientes tipos de Python se pueden enviar a SQLite sin problema alguno:" #: ../Doc/library/sqlite3.rst:871 ../Doc/library/sqlite3.rst:888 msgid "Python type" -msgstr "" +msgstr "Tipo de Python" #: ../Doc/library/sqlite3.rst:871 ../Doc/library/sqlite3.rst:888 msgid "SQLite type" -msgstr "" +msgstr "Tipo de SQLite" #: ../Doc/library/sqlite3.rst:873 ../Doc/library/sqlite3.rst:890 msgid ":const:`None`" -msgstr "" +msgstr ":const:`None`" #: ../Doc/library/sqlite3.rst:873 ../Doc/library/sqlite3.rst:890 msgid "``NULL``" -msgstr "" +msgstr "``NULL``" #: ../Doc/library/sqlite3.rst:875 ../Doc/library/sqlite3.rst:892 msgid ":class:`int`" -msgstr "" +msgstr ":class:`int`" #: ../Doc/library/sqlite3.rst:875 ../Doc/library/sqlite3.rst:892 msgid "``INTEGER``" -msgstr "" +msgstr "``INTEGER``" #: ../Doc/library/sqlite3.rst:877 ../Doc/library/sqlite3.rst:894 msgid ":class:`float`" -msgstr "" +msgstr ":class:`float`" #: ../Doc/library/sqlite3.rst:877 ../Doc/library/sqlite3.rst:894 msgid "``REAL``" -msgstr "" +msgstr "``REAL``" #: ../Doc/library/sqlite3.rst:879 msgid ":class:`str`" -msgstr "" +msgstr ":class:`str`" #: ../Doc/library/sqlite3.rst:879 ../Doc/library/sqlite3.rst:896 msgid "``TEXT``" -msgstr "" +msgstr "``TEXT``" #: ../Doc/library/sqlite3.rst:881 ../Doc/library/sqlite3.rst:899 msgid ":class:`bytes`" -msgstr "" +msgstr ":class:`bytes`" #: ../Doc/library/sqlite3.rst:881 ../Doc/library/sqlite3.rst:899 msgid "``BLOB``" -msgstr "" +msgstr "``BLOB``" #: ../Doc/library/sqlite3.rst:885 msgid "This is how SQLite types are converted to Python types by default:" msgstr "" +"De esta forma es como los tipos de SQLite son convertidos a tipos de Python " +"por defecto:" #: ../Doc/library/sqlite3.rst:896 msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" -msgstr "" +msgstr "depende de :attr:`~Connection.text_factory`, :class:`str` por defecto" #: ../Doc/library/sqlite3.rst:902 msgid "" @@ -1014,10 +1403,16 @@ msgid "" "adaptation, and you can let the :mod:`sqlite3` module convert SQLite types " "to different Python types via converters." msgstr "" +"El sistema de tipos del módulo :mod:`sqlite3` es extensible en dos formas: " +"se puede almacenar tipos de Python adicionales en una base de datos SQLite " +"vía adaptación de objetos, y se puede permitir que el módulo :mod:`sqlite3` " +"convierta tipos SQLite a diferentes tipos de Python vía convertidores." #: ../Doc/library/sqlite3.rst:909 msgid "Using adapters to store additional Python types in SQLite databases" msgstr "" +"Usando adaptadores para almacenar tipos adicionales de Python en bases de " +"datos SQLite" #: ../Doc/library/sqlite3.rst:911 msgid "" @@ -1026,22 +1421,30 @@ msgid "" "sqlite3 module's supported types for SQLite: one of NoneType, int, float, " "str, bytes." 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. " #: ../Doc/library/sqlite3.rst:916 msgid "" "There are two ways to enable the :mod:`sqlite3` module to adapt a custom " "Python type to one of the supported ones." msgstr "" +"Hay dos formas de habilitar el módulo :mod:`sqlite3` para adaptar un tipo " +"personalizado de Python a alguno de los admitidos." #: ../Doc/library/sqlite3.rst:921 msgid "Letting your object adapt itself" -msgstr "" +msgstr "Permitiéndole al objeto auto adaptarse" #: ../Doc/library/sqlite3.rst:923 msgid "" "This is a good approach if you write the class yourself. Let's suppose you " "have a class like this::" msgstr "" +"Este es un buen enfoque si uno mismo escribe la clase. Vamos a suponer que " +"se tiene una clase como esta::" #: ../Doc/library/sqlite3.rst:930 msgid "" @@ -1052,10 +1455,16 @@ msgid "" "protocol)`` 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`." #: ../Doc/library/sqlite3.rst:940 msgid "Registering an adapter callable" -msgstr "" +msgstr "Registrando un adaptador invocable" #: ../Doc/library/sqlite3.rst:942 msgid "" @@ -1063,6 +1472,9 @@ msgid "" "string representation and register the function with :meth:" "`register_adapter`." msgstr "" +"La otra posibilidad es crear una función que convierta el escrito a " +"representación de cadena de texto y registrar la función con :meth:" +"`register_adapter`." #: ../Doc/library/sqlite3.rst:947 msgid "" @@ -1071,10 +1483,15 @@ msgid "" "suppose we want to store :class:`datetime.datetime` objects not in ISO " "representation, but as a Unix timestamp." msgstr "" +"El módulo :mod:`sqlite3` tiene dos adaptadores por defecto para las " +"funciones integradas de Python :class:`datetime.date` y tipos :class:" +"`datetime.datetime`. Ahora vamos a suponer que queremos almacenar objetos :" +"class:`datetime.datetime` no en representación ISO, sino como una marca de " +"tiempo Unix." #: ../Doc/library/sqlite3.rst:956 msgid "Converting SQLite values to custom Python types" -msgstr "" +msgstr "Convertir valores SQLite a tipos de Python personalizados" #: ../Doc/library/sqlite3.rst:958 msgid "" @@ -1082,42 +1499,54 @@ msgid "" "it really useful we need to make the Python to SQLite to Python roundtrip " "work." msgstr "" +"Escribir un adaptador permite enviar escritos personalizados de Python a " +"SQLite. Pero para hacer esto realmente útil, tenemos que hace el flujo " +"Python a SQLite a Python." #: ../Doc/library/sqlite3.rst:961 msgid "Enter converters." -msgstr "" +msgstr "Ingresar convertidores." #: ../Doc/library/sqlite3.rst:963 msgid "" "Let's go back to the :class:`Point` class. We stored the x and y coordinates " "separated via semicolons as strings in SQLite." msgstr "" +"Regresemos a la clase :class:`Point`. Se almacena las coordenadas x e y de " +"forma separada por punto y coma como una cadena de texto en SQLite." #: ../Doc/library/sqlite3.rst:966 msgid "" "First, we'll define a converter function that accepts the string as a " "parameter and constructs a :class:`Point` object from it." msgstr "" +"Primero, se define una función de conversión que acepta la cadena de texto " +"como un parámetro y construye un objeto :class:`Point` de ahí." #: ../Doc/library/sqlite3.rst:971 msgid "" "Converter functions **always** get called with a :class:`bytes` object, no " "matter under which data type you sent the value to SQLite." msgstr "" +"Las funciones de conversión **siempre** son llamadas con un objeto :class:" +"`bytes`, no importa bajo qué tipo de dato se envió el valor a SQLite." #: ../Doc/library/sqlite3.rst:980 msgid "" "Now you need to make the :mod:`sqlite3` module know that what you select " "from the database is actually a point. There are two ways of doing this:" msgstr "" +"Ahora se necesita hacer que el módulo :mod:`sqlite3` conozca que lo que tu " +"seleccionaste de la base de datos es de hecho un punto. Hay dos formas de " +"hacer esto:" #: ../Doc/library/sqlite3.rst:983 msgid "Implicitly via the declared type" -msgstr "" +msgstr "Implícitamente vía el tipo declarado" #: ../Doc/library/sqlite3.rst:985 msgid "Explicitly via the column name" -msgstr "" +msgstr "Explícitamente vía el nombre de la columna" #: ../Doc/library/sqlite3.rst:987 msgid "" @@ -1125,20 +1554,25 @@ msgid "" "entries for the constants :const:`PARSE_DECLTYPES` and :const:" "`PARSE_COLNAMES`." msgstr "" +"Ambas formas están descritas en la sección :ref:`sqlite3-module-contents`, " +"en las entradas para las constantes :const:`PARSE_DECLTYPES` y :const:" +"`PARSE_COLNAMES`." #: ../Doc/library/sqlite3.rst:990 msgid "The following example illustrates both approaches." -msgstr "" +msgstr "El siguiente ejemplo ilustra ambos enfoques." #: ../Doc/library/sqlite3.rst:996 msgid "Default adapters and converters" -msgstr "" +msgstr "Adaptadores y convertidores por defecto" #: ../Doc/library/sqlite3.rst:998 msgid "" "There are default adapters for the date and datetime types in the datetime " "module. They will be sent as ISO dates/ISO timestamps to SQLite." msgstr "" +"Hay adaptadores por defecto para los tipos date y datetime en el módulo " +"datetime. Éstos serán enviados como fechas/marcas de tiempo ISO a SQLite." #: ../Doc/library/sqlite3.rst:1001 msgid "" @@ -1146,6 +1580,9 @@ msgid "" "`datetime.date` and under the name \"timestamp\" for :class:`datetime." "datetime`." msgstr "" +"Los convertidores por defecto están registrados bajo el nombre \"date\" " +"para :class:`datetime.date` y bajo el mismo nombre para \"timestamp\" para :" +"class:`datetime.datetime`." #: ../Doc/library/sqlite3.rst:1005 msgid "" @@ -1153,10 +1590,13 @@ msgid "" "fiddling in most cases. The format of the adapters is also compatible with " "the experimental SQLite date/time functions." msgstr "" +"De esta forma, se puede usar date/timestamps para Python sin ajuste " +"adicional en la mayoría de los casos. El formato de los adaptadores también " +"es compatible con las funciones experimentales de SQLite date/time." #: ../Doc/library/sqlite3.rst:1009 msgid "The following example demonstrates this." -msgstr "" +msgstr "El siguiente ejemplo demuestra esto." #: ../Doc/library/sqlite3.rst:1013 msgid "" @@ -1164,16 +1604,21 @@ msgid "" "its value will be truncated to microsecond precision by the timestamp " "converter." msgstr "" +"Si un *timestamp* almacenado en SQLite tiene una parte fraccional mayor a 6 " +"números, este valor será truncado a precisión de microsegundos por el " +"convertidor de *timestamp*." #: ../Doc/library/sqlite3.rst:1021 msgid "Controlling Transactions" -msgstr "" +msgstr "Controlando Transacciones" #: ../Doc/library/sqlite3.rst:1023 msgid "" "The underlying ``sqlite3`` library operates in ``autocommit`` mode by " "default, but the Python :mod:`sqlite3` module by default does not." msgstr "" +"La librería subyacente ``sqlite3`` opera en modo ``autocommit`` por defecto, " +"pero el módulo de Python :mod:`sqlite3` no." #: ../Doc/library/sqlite3.rst:1026 msgid "" @@ -1182,6 +1627,11 @@ msgid "" "``autocommit`` mode, and a ``COMMIT``, a ``ROLLBACK``, or a ``RELEASE`` that " "ends the outermost transaction, turns ``autocommit`` mode back on." msgstr "" +"El modo ``autocommit`` significa que la sentencias que modifican la base de " +"datos toman efecto de forma inmediata. Una sentencia ``BEGIN`` o " +"``SAVEPOINT`` deshabilitan el modo ``autocommit``, y un ``COMMIT``, un " +"``ROLLBACK``, o un ``RELEASE`` que terminan la transacción más externa, " +"habilitan de nuevo el modo ``autocommit``." #: ../Doc/library/sqlite3.rst:1031 msgid "" @@ -1189,6 +1639,9 @@ msgid "" "implicitly before a Data Modification Language (DML) statement (i.e. " "``INSERT``/``UPDATE``/``DELETE``/``REPLACE``)." msgstr "" +"El módulo de Python :mod:`sqlite3` emite por defecto una sentencia ``BEGIN`` " +"implícita antes de una sentencia tipo Lenguaje Manipulación de Datos (DML) " +"(es decir ``INSERT``/``UPDATE``/``DELETE``/``REPLACE``)." #: ../Doc/library/sqlite3.rst:1035 msgid "" @@ -1199,6 +1652,12 @@ msgid "" "specifying ``DEFERRED``. Other possible values are ``IMMEDIATE`` and " "``EXCLUSIVE``." msgstr "" +"Se puede controlar en qué tipo de sentencias ``BEGIN`` :mod:`sqlite3` " +"implícitamente ejecuta vía el parámetro *insolation_level* a la función de " +"llamada :func:`connect`, o vía las propiedades de conexión :attr:" +"`isolation_level`. Si no se especifica *isolation_level*, se usa un plano " +"``BEGIN``, el cuál es equivalente a especificar ``DEFERRED``. Otros posibles " +"valores son ``IMMEDIATE`` and ``EXCLUSIVE``." #: ../Doc/library/sqlite3.rst:1042 msgid "" @@ -1209,20 +1668,28 @@ msgid "" "``BEGIN``, ``ROLLBACK``, ``SAVEPOINT``, and ``RELEASE`` statements in your " "code." msgstr "" +"Se puede deshabilitar la gestión implícita de transacciones del módulo :mod:" +"`sqlite3` con la configuración :attr:`isolation_level` a ``None``. Esto " +"dejará la subyacente biblioteca operando en modo ``autocommit``. Se puede " +"controlar completamente el estado de la transacción emitiendo explícitamente " +"sentencias ``BEGIN``, ``ROLLBACK``, ``SAVEPOINT``, y ``RELEASE`` en el " +"código." #: ../Doc/library/sqlite3.rst:1048 msgid "" ":mod:`sqlite3` used to implicitly commit an open transaction before DDL " "statements. This is no longer the case." msgstr "" +":mod:`sqlite3` solía realizar commit en transacciones implícitamente antes " +"de sentencias DDL. Este ya no es el caso." #: ../Doc/library/sqlite3.rst:1054 msgid "Using :mod:`sqlite3` efficiently" -msgstr "" +msgstr "Usando :mod:`sqlite3` eficientemente" #: ../Doc/library/sqlite3.rst:1058 msgid "Using shortcut methods" -msgstr "" +msgstr "Usando métodos atajo" #: ../Doc/library/sqlite3.rst:1060 msgid "" @@ -1235,26 +1702,38 @@ msgid "" "iterate over it directly using only a single call on the :class:`Connection` " "object." msgstr "" +"Usando los métodos no estándar :meth:`execute`, :meth:`executemany` y :meth:" +"`executescript` del objeto :class:`Connection`, el código puede ser escrito " +"más consistentemente porque no se tienen que crear explícitamente los (a " +"menudo superfluos) objetos :class:`Cursor`. En cambio, los objetos de :class:" +"`Cursor` son creados implícitamente y estos métodos atajo retornan los " +"objetos cursor. De esta forma, se puede ejecutar una sentencia ``SELECT`` e " +"iterar directamente sobre él, solamente usando una única llamada al objeto :" +"class:`Connection`." #: ../Doc/library/sqlite3.rst:1072 msgid "Accessing columns by name instead of by index" -msgstr "" +msgstr "Accediendo a las columnas por el nombre en lugar del índice" #: ../Doc/library/sqlite3.rst:1074 msgid "" "One useful feature of the :mod:`sqlite3` module is the built-in :class:" "`sqlite3.Row` class designed to be used as a row factory." msgstr "" +"Una característica útil del módulo :mod:`sqlite3` es la clase incluida :" +"class:`sqlite3.Row` diseñada para ser usada como una fábrica de filas." #: ../Doc/library/sqlite3.rst:1077 msgid "" "Rows wrapped with this class can be accessed both by index (like tuples) and " "case-insensitively by name:" msgstr "" +"Filas envueltas con esta clase pueden ser accedidas tanto por índice (al " +"igual que tuplas) como por nombre insensible a mayúsculas o minúsculas:" #: ../Doc/library/sqlite3.rst:1084 msgid "Using the connection as a context manager" -msgstr "" +msgstr "Usando la conexión como un administrador de contexto" #: ../Doc/library/sqlite3.rst:1086 msgid "" @@ -1262,14 +1741,18 @@ msgid "" "or rollback transactions. In the event of an exception, the transaction is " "rolled back; otherwise, the transaction is committed:" msgstr "" +"Los objetos de conexión pueden ser usados como administradores de contexto " +"que automáticamente transacciones commit o rollback. En el evento de una " +"excepción, la transacción es retrocedida; de otra forma, la transacción es " +"confirmada:" #: ../Doc/library/sqlite3.rst:1095 msgid "Common issues" -msgstr "" +msgstr "Problemas comunes" #: ../Doc/library/sqlite3.rst:1098 msgid "Multithreading" -msgstr "" +msgstr "Multihilo" #: ../Doc/library/sqlite3.rst:1100 msgid "" @@ -1278,16 +1761,22 @@ msgid "" "between threads. If you still try to do so, you will get an exception at " "runtime." msgstr "" +"Versiones antiguas de SQLite tienen problemas compartiendo conexiones entre " +"hilos. Es por ello que el módulo de Python no permite compartir conexiones y " +"cursores entre hilos. Si se quiere intentar esto, se obtendrá una excepción " +"en tiempo de ejecución." #: ../Doc/library/sqlite3.rst:1104 msgid "" "The only exception is calling the :meth:`~Connection.interrupt` method, " "which only makes sense to call from a different thread." msgstr "" +"La única excepción es llamando el método :meth:`~Connection.interrupt`, el " +"cual solamente tiene sentido llamarlo desde un hilo diferente." #: ../Doc/library/sqlite3.rst:1108 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/library/sqlite3.rst:1109 msgid "" @@ -1296,3 +1785,8 @@ msgid "" "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." diff --git a/library/stat.po b/library/stat.po index 344eba9a7b..a323b4cb8b 100644 --- a/library/stat.po +++ b/library/stat.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: 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: 2020-10-28 08:29-0400\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.1\n" #: ../Doc/library/stat.rst:2 msgid ":mod:`stat` --- Interpreting :func:`~os.stat` results" -msgstr "" +msgstr ":mod:`stat` --- Interpretación de los resultados de :func:`~os.stat`" #: ../Doc/library/stat.rst:10 msgid "**Source code:** :source:`Lib/stat.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/stat.py`" #: ../Doc/library/stat.rst:14 msgid "" @@ -35,62 +37,76 @@ msgid "" "exist). For complete details about the :c:func:`stat`, :c:func:`fstat` and :" "c:func:`lstat` calls, consult the documentation for your system." msgstr "" +"El módulo :mod:`stat` define constantes y funciones para interpretar los " +"resultados de :func:`os.stat`, :func:`os.fstat` y :func:`os.lstat` (si " +"existen). Para obtener los detalles completos sobre las llamadas a :c:func:" +"`stat`, :c:func:`fstat` y :c:func:`lstat`, consulta la documentación de tu " +"sistema." #: ../Doc/library/stat.rst:19 msgid "The stat module is backed by a C implementation." -msgstr "" +msgstr "El módulo *stat* se apoya en una implementación en C." #: ../Doc/library/stat.rst:22 msgid "" "The :mod:`stat` module defines the following functions to test for specific " "file types:" msgstr "" +"El módulo :mod:`stat` define las siguientes funciones para comprobar tipos " +"de archivo específicos:" #: ../Doc/library/stat.rst:28 msgid "Return non-zero if the mode is from a directory." -msgstr "" +msgstr "Retorna un valor no nulo si el modo es de un directorio." #: ../Doc/library/stat.rst:33 msgid "Return non-zero if the mode is from a character special device file." msgstr "" +"Retorna un valor no nulo si el modo es de un archivo de un dispositivo " +"especial de caracteres." #: ../Doc/library/stat.rst:38 msgid "Return non-zero if the mode is from a block special device file." msgstr "" +"Retorna un valor no nulo si el modo es de un archivo de un dispositivo " +"especial de bloques." #: ../Doc/library/stat.rst:43 msgid "Return non-zero if the mode is from a regular file." -msgstr "" +msgstr "Retorna un valor no nulo si el modo es de un archivo normal." #: ../Doc/library/stat.rst:48 msgid "Return non-zero if the mode is from a FIFO (named pipe)." msgstr "" +"Retorna un valor no nulo si el modo es de un *FIFO* (tubería con nombre)." #: ../Doc/library/stat.rst:53 msgid "Return non-zero if the mode is from a symbolic link." -msgstr "" +msgstr "Retorna un valor no nulo si el modo es de un enlace simbólico." #: ../Doc/library/stat.rst:58 msgid "Return non-zero if the mode is from a socket." -msgstr "" +msgstr "Retorna un valor no nulo si el modo es de un socket." #: ../Doc/library/stat.rst:62 msgid "Return non-zero if the mode is from a door." -msgstr "" +msgstr "Retorna un valor no nulo si el modo es de un *door*." #: ../Doc/library/stat.rst:68 msgid "Return non-zero if the mode is from an event port." -msgstr "" +msgstr "Retorna un valor no nulo si el modo es de un *event port*." #: ../Doc/library/stat.rst:74 msgid "Return non-zero if the mode is from a whiteout." -msgstr "" +msgstr "Retorna un valor no nulo si el modo es de un *whiteout*." #: ../Doc/library/stat.rst:78 msgid "" "Two additional functions are defined for more general manipulation of the " "file's mode:" msgstr "" +"Se definen dos funciones adicionales para una manipulación más general del " +"modo del archivo:" #: ../Doc/library/stat.rst:84 msgid "" @@ -98,12 +114,18 @@ msgid "" "---that is, the file's permission bits, plus the sticky bit, set-group-id, " "and set-user-id bits (on systems that support them)." msgstr "" +"Retorna la porción del modo del archivo que puede ser establecida por :func:" +"`os.chmod`\\ --- esto es, los bits de los permisos del archivo más los bits " +"*sticky bit*, *set-group-id* y *set-user-id* (en los sistemas que lo " +"soporten)." #: ../Doc/library/stat.rst:91 msgid "" "Return the portion of the file's mode that describes the file type (used by " "the :func:`S_IS\\*` functions above)." msgstr "" +"Retorna la porción del modo del archivo que describe el tipo de archivo " +"(usado por las funciones :func:`S_IS\\*` de más arriba)." #: ../Doc/library/stat.rst:94 msgid "" @@ -114,68 +136,85 @@ msgid "" "information about a file that isn't handled by :mod:`os.path`, like the " "tests for block and character devices." msgstr "" +"Normalmente se usarían las funciones :func:`os.path.is\\*` para comprobar el " +"tipo de un archivo; estas funciones de aquí son útiles cuando se hacen " +"múltiples comprobaciones sobre el mismo archivo y se desea evitar la " +"sobrecarga causada por la llamada al sistema :c:func:`stat` en cada " +"comprobación. También son útiles cuando se comprueba información de un " +"archivo que no es gestionada por :mod:`os.path`, como buscar dispositivos de " +"bloques o caracteres." #: ../Doc/library/stat.rst:101 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/library/stat.rst:129 msgid "" "An additional utility function is provided to convert a file's mode in a " "human readable string:" msgstr "" +"Se proporciona una función de utilidad adicional para convertir el modo del " +"archivo en una cadena de caracteres legible por humanos:" #: ../Doc/library/stat.rst:134 msgid "Convert a file's mode to a string of the form '-rwxrwxrwx'." msgstr "" +"Convierte el modo del archivo a una cadena de caracteres de la forma '-" +"rwxrwxrwx'." #: ../Doc/library/stat.rst:138 msgid "" "The function supports :data:`S_IFDOOR`, :data:`S_IFPORT` and :data:`S_IFWHT`." msgstr "" +"La función soporta :data:`S_IFDOOR`, :data:`S_IFPORT` y :data:`S_IFWHT`." #: ../Doc/library/stat.rst:143 msgid "" "All the variables below are simply symbolic indexes into the 10-tuple " "returned by :func:`os.stat`, :func:`os.fstat` or :func:`os.lstat`." msgstr "" +"Todas las variables de debajo son simplemente índices simbólicos sobre la " +"tupla de 10 elementos retornada por :func:`os.stat`, :func:`os.fstat` o :" +"func:`os.lstat`." #: ../Doc/library/stat.rst:149 msgid "Inode protection mode." -msgstr "" +msgstr "Modo de protección del *inode*." #: ../Doc/library/stat.rst:154 msgid "Inode number." -msgstr "" +msgstr "Número del *inode*." #: ../Doc/library/stat.rst:159 msgid "Device inode resides on." -msgstr "" +msgstr "Dispositivo en el que reside el *inode*." #: ../Doc/library/stat.rst:164 msgid "Number of links to the inode." -msgstr "" +msgstr "Número de enlaces al *inode*." #: ../Doc/library/stat.rst:169 msgid "User id of the owner." -msgstr "" +msgstr "*Id* de usuario del propietario." #: ../Doc/library/stat.rst:174 msgid "Group id of the owner." -msgstr "" +msgstr "*Id* del grupo del propietario." #: ../Doc/library/stat.rst:179 msgid "" "Size in bytes of a plain file; amount of data waiting on some special files." msgstr "" +"Tamaño en bytes de un archivo normal; cantidad de datos esperando en algunos " +"archivos especiales." #: ../Doc/library/stat.rst:184 msgid "Time of last access." -msgstr "" +msgstr "Momento del último acceso." #: ../Doc/library/stat.rst:189 msgid "Time of last modification." -msgstr "" +msgstr "Momento de la última modificación." #: ../Doc/library/stat.rst:194 msgid "" @@ -183,6 +222,10 @@ msgid "" "Unix) is the time of the last metadata change, and, on others (like " "Windows), is the creation time (see platform documentation for details)." msgstr "" +"El \"ctime\" reportado por el sistema operativo. En algunos sistemas (como " +"Unix) es el momento del último cambio en los metadatos, y en otros (como " +"Windows), es el momento de creación (véase la documentación de la plataforma " +"para más detalles)." #: ../Doc/library/stat.rst:198 msgid "" @@ -195,72 +238,89 @@ msgid "" "open. The meaning of the size field for other character and block devices " "varies more, depending on the implementation of the underlying system call." msgstr "" +"La interpretación de \"tamaño de archivo\" cambia dependiendo del tipo de " +"archivo. Para archivos normales es el tamaño del archivo en bytes. En la " +"mayoría de sistemas Unix (incluyendo Linux en particular), para *FIFOs* y " +"sockets es el número de bytes que esperan ser leídos en el momento de la " +"llamada a :func:`os.stat`, :func:`os.fstat`, o :func:`os.lstat`; en " +"ocasiones, esto puede ser útil, especialmente para sondear uno de estos " +"archivos especiales después de una apertura no bloqueante. Para otros " +"dispositivos de caracteres y bloques el significado del campo *size* es más " +"variado, dependiendo de la implementación de la llamada al sistema " +"subyacente." #: ../Doc/library/stat.rst:207 msgid "The variables below define the flags used in the :data:`ST_MODE` field." msgstr "" +"Las variables de debajo definen los flags usados en el campo :data:`ST_MODE`." #: ../Doc/library/stat.rst:209 msgid "" "Use of the functions above is more portable than use of the first set of " "flags:" msgstr "" +"El uso de las funciones de arriba es más portable que el uso del primer " +"juego de flags:" #: ../Doc/library/stat.rst:213 msgid "Socket." -msgstr "" +msgstr "*Socket*." #: ../Doc/library/stat.rst:217 msgid "Symbolic link." -msgstr "" +msgstr "Enlace simbólico." #: ../Doc/library/stat.rst:221 msgid "Regular file." -msgstr "" +msgstr "Archivo normal." #: ../Doc/library/stat.rst:225 msgid "Block device." -msgstr "" +msgstr "Dispositivo de bloques." #: ../Doc/library/stat.rst:229 msgid "Directory." -msgstr "" +msgstr "Directorio." #: ../Doc/library/stat.rst:233 msgid "Character device." -msgstr "" +msgstr "Dispositivo de caracteres." #: ../Doc/library/stat.rst:237 msgid "FIFO." -msgstr "" +msgstr "*FIFO*." #: ../Doc/library/stat.rst:241 msgid "Door." -msgstr "" +msgstr "*Door*." #: ../Doc/library/stat.rst:247 msgid "Event port." -msgstr "" +msgstr "*Event port*." #: ../Doc/library/stat.rst:253 msgid "Whiteout." -msgstr "" +msgstr "*Whiteout*." #: ../Doc/library/stat.rst:259 msgid "" ":data:`S_IFDOOR`, :data:`S_IFPORT` or :data:`S_IFWHT` are defined as 0 when " "the platform does not have support for the file types." msgstr "" +":data:`S_IFDOOR`, :data:`S_IFPORT` o :data:`S_IFWHT` se definen como 0 " +"cuando la plataforma no soporta los tipos de archivo." #: ../Doc/library/stat.rst:262 msgid "" "The following flags can also be used in the *mode* argument of :func:`os." "chmod`:" msgstr "" +"Los siguientes flags también pueden usarse en el argumento *mode* de :func:" +"`os.chmod`:" #: ../Doc/library/stat.rst:266 msgid "Set UID bit." -msgstr "" +msgstr "Establecer el bit *UID*." #: ../Doc/library/stat.rst:270 msgid "" @@ -272,6 +332,14 @@ msgid "" "execution bit (:data:`S_IXGRP`) set, the set-group-ID bit indicates " "mandatory file/record locking (see also :data:`S_ENFMT`)." msgstr "" +"Bit *Set-group-ID*. Este bit tiene varios usos especiales. Para un " +"directorio indica que la semántica BSD debe usarse para ese directorio: los " +"archivos creados ahí heredan el *ID* de grupo del directorio, no del *ID* de " +"grupo efectivo del proceso que los crea, y los directorios creados ahí " +"también tendrán activado el bit :data:`S_ISGID`. Para un archivo que no " +"tiene activado el bit de ejecución de grupo (:data:`S_IXGRP`), el bit *Set-" +"group-ID* indica el bloqueo obligatorio del archivo/registro (véase también :" +"data:`S_ENFMT`)." #: ../Doc/library/stat.rst:281 msgid "" @@ -279,54 +347,58 @@ msgid "" "that directory can be renamed or deleted only by the owner of the file, by " "the owner of the directory, or by a privileged process." msgstr "" +"*Sticky bit*. Cuando este bit está activado en un directorio, significa que " +"un archivo dentro de ese directorio puede ser renombrado o borrado sólo por " +"el propietario del archivo, por el propietario del directorio, o por un " +"proceso con privilegios." #: ../Doc/library/stat.rst:287 msgid "Mask for file owner permissions." -msgstr "" +msgstr "Máscara para los permisos del propietario del archivo." #: ../Doc/library/stat.rst:291 msgid "Owner has read permission." -msgstr "" +msgstr "El propietario tiene permiso de lectura." #: ../Doc/library/stat.rst:295 msgid "Owner has write permission." -msgstr "" +msgstr "El propietario tiene permiso de escritura." #: ../Doc/library/stat.rst:299 msgid "Owner has execute permission." -msgstr "" +msgstr "El propietario tiene permiso de ejecución." #: ../Doc/library/stat.rst:303 msgid "Mask for group permissions." -msgstr "" +msgstr "Máscara para los permisos del grupo." #: ../Doc/library/stat.rst:307 msgid "Group has read permission." -msgstr "" +msgstr "El grupo tiene permiso de lectura." #: ../Doc/library/stat.rst:311 msgid "Group has write permission." -msgstr "" +msgstr "El grupo tiene permiso de escritura." #: ../Doc/library/stat.rst:315 msgid "Group has execute permission." -msgstr "" +msgstr "El grupo tiene permiso de ejecución." #: ../Doc/library/stat.rst:319 msgid "Mask for permissions for others (not in group)." -msgstr "" +msgstr "Máscara para permisos de los otros (no en el grupo)." #: ../Doc/library/stat.rst:323 msgid "Others have read permission." -msgstr "" +msgstr "Los otros tienen permiso de lectura." #: ../Doc/library/stat.rst:327 msgid "Others have write permission." -msgstr "" +msgstr "Los otros tienen permiso de escritura." #: ../Doc/library/stat.rst:331 msgid "Others have execute permission." -msgstr "" +msgstr "Los otros tienen permiso de ejecución." #: ../Doc/library/stat.rst:335 msgid "" @@ -334,66 +406,73 @@ msgid "" "`S_ISGID`: file/record locking is enforced on files that do not have the " "group execution bit (:data:`S_IXGRP`) set." msgstr "" +"Imposición del bloqueo de archivos de System V. Este flag se comparte con :" +"data:`S_ISGID`: se impone el bloqueo de archivos/registros en archivos que " +"no tengan activado el bit de ejecución por el grupo (:data:`S_IXGRP`)." #: ../Doc/library/stat.rst:341 msgid "Unix V7 synonym for :data:`S_IRUSR`." -msgstr "" +msgstr "Sinónimo de :data:`S_IRUSR` en Unix V7." #: ../Doc/library/stat.rst:345 msgid "Unix V7 synonym for :data:`S_IWUSR`." -msgstr "" +msgstr "Sinónimo de :data:`S_IWUSR` en Unix V7." #: ../Doc/library/stat.rst:349 msgid "Unix V7 synonym for :data:`S_IXUSR`." -msgstr "" +msgstr "Sinónimo de :data:`S_IXUSR` en Unix V7." #: ../Doc/library/stat.rst:351 msgid "" "The following flags can be used in the *flags* argument of :func:`os." "chflags`:" msgstr "" +"Los siguientes flags pueden usarse como argumento *flags* de :func:`os." +"chflags`:" #: ../Doc/library/stat.rst:355 msgid "Do not dump the file." -msgstr "" +msgstr "No volcar el archivo." #: ../Doc/library/stat.rst:359 ../Doc/library/stat.rst:387 msgid "The file may not be changed." -msgstr "" +msgstr "El archivo no puede ser modificado." #: ../Doc/library/stat.rst:363 ../Doc/library/stat.rst:391 msgid "The file may only be appended to." -msgstr "" +msgstr "Sólo se puede añadir al archivo." #: ../Doc/library/stat.rst:367 msgid "The directory is opaque when viewed through a union stack." -msgstr "" +msgstr "El directorio es opaco cuando se mira a través de un *union stack*." #: ../Doc/library/stat.rst:371 ../Doc/library/stat.rst:395 msgid "The file may not be renamed or deleted." -msgstr "" +msgstr "El archivo no puede ser renombrado o borrado." #: ../Doc/library/stat.rst:375 msgid "The file is stored compressed (Mac OS X 10.6+)." -msgstr "" +msgstr "El archivo se almacena comprimido (Mac OS X 10.6+)." #: ../Doc/library/stat.rst:379 msgid "The file should not be displayed in a GUI (Mac OS X 10.5+)." -msgstr "" +msgstr "El archivo no debe ser mostrado en una *GUI* (Mac OS X 10.5+)." #: ../Doc/library/stat.rst:383 msgid "The file may be archived." -msgstr "" +msgstr "El archivo puede ser archivado." #: ../Doc/library/stat.rst:399 msgid "The file is a snapshot file." -msgstr "" +msgstr "El archivo es una instantánea." #: ../Doc/library/stat.rst:401 msgid "" "See the \\*BSD or Mac OS systems man page :manpage:`chflags(2)` for more " "information." msgstr "" +"Véase la página de *man* :manpage:`chflags(2)` de los sistemas \\*BSD o Mac " +"OS para más información." #: ../Doc/library/stat.rst:403 msgid "" @@ -403,6 +482,11 @@ msgid "" "library/windows/desktop/gg258117.aspx>`_ for more detail on the meaning of " "these constants." msgstr "" +"En Windows, las siguientes constantes de atributos de fichero están " +"disponibles para ser usadas al comprobar los bits del miembro " +"``st_file_attributes`` retornado por :func:`os.stat`. Véase `Windows API " +"documentation `_ para más detalles sobre el significado de estas constantes." #: ../Doc/library/stat.rst:429 msgid "" @@ -410,3 +494,6 @@ msgid "" "``st_reparse_tag`` member returned by :func:`os.lstat`. These are well-known " "constants, but are not an exhaustive list." msgstr "" +"En Windows, las siguientes constantes están disponibles para la comparación " +"con el miembro ``st_reparse_tag`` retornado por :func:`os.lstat`. Estas " +"constantes son muy conocidas, pero no se trata de una lista exhaustiva." diff --git a/library/statistics.po b/library/statistics.po index 24366af2d2..10c1ac9122 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -6,33 +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: 2020-10-20 20:40+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: Francisco Jesús Sevilla García \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/statistics.rst:2 msgid ":mod:`statistics` --- Mathematical statistics functions" -msgstr "" +msgstr ":mod:`statistics` --- Funciones de estadística matemática" #: ../Doc/library/statistics.rst:12 msgid "**Source code:** :source:`Lib/statistics.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/statistics.py`" #: ../Doc/library/statistics.rst:21 msgid "" "This module provides functions for calculating mathematical statistics of " "numeric (:class:`~numbers.Real`-valued) data." msgstr "" +"Este módulo proporciona funciones para calcular estadísticas matemáticas de " +"datos numéricos (de tipo :class:`~numbers.Real`)." #: ../Doc/library/statistics.rst:24 msgid "" @@ -42,6 +46,11 @@ msgid "" "statisticians such as Minitab, SAS and Matlab. It is aimed at the level of " "graphing and scientific calculators." msgstr "" +"Este módulo no pretende ser competidor o sustituto de bibliotecas de " +"terceros como `NumPy `_ o `SciPy `_, ni de paquetes completos de software propietario para profesionales " +"como Minitab, SAS o Matlab. Este módulo se ubica a nivel de calculadoras " +"científicas gráficas." #: ../Doc/library/statistics.rst:30 msgid "" @@ -53,162 +62,180 @@ msgid "" "you may be able to use :func:`map` to ensure a consistent result, for " "example: ``map(float, input_data)``." msgstr "" +"A menos que se indique explícitamente lo contrario, las funciones de este " +"módulo manejan objetos :class:`int`, :class:`float`, :class:`~decimal." +"Decimal` y :class:`~fractions.Fraction`. No se garantiza un correcto " +"funcionamiento con otros tipos (numéricos o no). El comportamiento de estas " +"funciones con colecciones mixtas que contengan objetos de diferente tipo no " +"está definido y depende de la implementación. Si tus datos de entrada " +"consisten en una mezcla de varios tipos, puedes usar :func:`map` para " +"asegurarte de que el resultado sea consistente, por ejemplo: ``map(float, " +"input_data)``." #: ../Doc/library/statistics.rst:39 msgid "Averages and measures of central location" -msgstr "" +msgstr "Promedios y medidas de tendencia central" #: ../Doc/library/statistics.rst:41 msgid "" "These functions calculate an average or typical value from a population or " "sample." msgstr "" +"Estas funciones calculan el promedio o el valor típico de una población o " +"muestra." #: ../Doc/library/statistics.rst:45 msgid ":func:`mean`" -msgstr "" +msgstr ":func:`mean`" #: ../Doc/library/statistics.rst:45 msgid "Arithmetic mean (\"average\") of data." -msgstr "" +msgstr "Media aritmética (\"promedio\") de los datos." #: ../Doc/library/statistics.rst:46 msgid ":func:`fmean`" -msgstr "" +msgstr ":func:`fmean`" #: ../Doc/library/statistics.rst:46 msgid "Fast, floating point arithmetic mean." -msgstr "" +msgstr "Media aritmética usando coma flotante, más rápida." #: ../Doc/library/statistics.rst:47 msgid ":func:`geometric_mean`" -msgstr "" +msgstr ":func:`geometric_mean`" #: ../Doc/library/statistics.rst:47 msgid "Geometric mean of data." -msgstr "" +msgstr "Media geométrica de los datos." #: ../Doc/library/statistics.rst:48 msgid ":func:`harmonic_mean`" -msgstr "" +msgstr ":func:`harmonic_mean`" #: ../Doc/library/statistics.rst:48 msgid "Harmonic mean of data." -msgstr "" +msgstr "Media armónica de los datos." #: ../Doc/library/statistics.rst:49 msgid ":func:`median`" -msgstr "" +msgstr ":func:`median`" #: ../Doc/library/statistics.rst:49 msgid "Median (middle value) of data." -msgstr "" +msgstr "Mediana (valor central) de los datos." #: ../Doc/library/statistics.rst:50 msgid ":func:`median_low`" -msgstr "" +msgstr ":func:`median_low`" #: ../Doc/library/statistics.rst:50 msgid "Low median of data." -msgstr "" +msgstr "Mediana baja de los datos." #: ../Doc/library/statistics.rst:51 msgid ":func:`median_high`" -msgstr "" +msgstr ":func:`median_high`" #: ../Doc/library/statistics.rst:51 msgid "High median of data." -msgstr "" +msgstr "Mediana alta de los datos." #: ../Doc/library/statistics.rst:52 msgid ":func:`median_grouped`" -msgstr "" +msgstr ":func:`median_grouped`" #: ../Doc/library/statistics.rst:52 msgid "Median, or 50th percentile, of grouped data." -msgstr "" +msgstr "Mediana, o percentil 50, de los datos agrupados." #: ../Doc/library/statistics.rst:53 msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/statistics.rst:53 msgid "Single mode (most common value) of discrete or nominal data." -msgstr "" +msgstr "Moda única (valor más común) de datos discretos o nominales." #: ../Doc/library/statistics.rst:54 msgid ":func:`multimode`" -msgstr "" +msgstr ":func:`multimode`" #: ../Doc/library/statistics.rst:54 msgid "List of modes (most common values) of discrete or nomimal data." -msgstr "" +msgstr "Lista de modas (valores más comunes) de datos discretos o nominales." #: ../Doc/library/statistics.rst:55 msgid ":func:`quantiles`" -msgstr "" +msgstr ":func:`quantiles`" #: ../Doc/library/statistics.rst:55 msgid "Divide data into intervals with equal probability." -msgstr "" +msgstr "Divide los datos en intervalos equiprobables." #: ../Doc/library/statistics.rst:59 msgid "Measures of spread" -msgstr "" +msgstr "Medidas de dispersión" #: ../Doc/library/statistics.rst:61 msgid "" "These functions calculate a measure of how much the population or sample " "tends to deviate from the typical or average values." msgstr "" +"Estas funciones calculan una medida de cuánto tiende a desviarse la " +"población o muestra de los valores típicos o promedios." #: ../Doc/library/statistics.rst:65 msgid ":func:`pstdev`" -msgstr "" +msgstr ":func:`pstdev`" #: ../Doc/library/statistics.rst:65 msgid "Population standard deviation of data." -msgstr "" +msgstr "Desviación típica poblacional de los datos." #: ../Doc/library/statistics.rst:66 msgid ":func:`pvariance`" -msgstr "" +msgstr ":func:`pvariance`" #: ../Doc/library/statistics.rst:66 msgid "Population variance of data." -msgstr "" +msgstr "Varianza poblacional de los datos." #: ../Doc/library/statistics.rst:67 msgid ":func:`stdev`" -msgstr "" +msgstr ":func:`stdev`" #: ../Doc/library/statistics.rst:67 msgid "Sample standard deviation of data." -msgstr "" +msgstr "Desviación típica muestral de los datos." #: ../Doc/library/statistics.rst:68 msgid ":func:`variance`" -msgstr "" +msgstr ":func:`variance`" #: ../Doc/library/statistics.rst:68 msgid "Sample variance of data." -msgstr "" +msgstr "Varianza muestral de los datos." #: ../Doc/library/statistics.rst:73 msgid "Function details" -msgstr "" +msgstr "Detalles de las funciones" #: ../Doc/library/statistics.rst:75 msgid "" "Note: The functions do not require the data given to them to be sorted. " "However, for reading convenience, most of the examples show sorted sequences." msgstr "" +"Nota: Las funciones no requieren que se ordenen los datos que se les " +"proporcionan. Sin embargo, para facilitar la lectura, la mayoría de los " +"ejemplos muestran secuencias ordenadas." #: ../Doc/library/statistics.rst:80 msgid "" "Return the sample arithmetic mean of *data* which can be a sequence or " "iterable." msgstr "" +"Retorna la media aritmética muestral de *data*, que puede ser una secuencia " +"o un iterable." #: ../Doc/library/statistics.rst:82 msgid "" @@ -217,14 +244,18 @@ msgid "" "many different mathematical averages. It is a measure of the central " "location of the data." msgstr "" +"La media aritmética es la suma de los valores dividida entre el número de " +"observaciones. Es comúnmente denominada \"promedio\", aunque hay muchas " +"formas de definir el promedio matemáticamente. Es una medida de tendencia " +"central de los datos." #: ../Doc/library/statistics.rst:87 msgid "If *data* is empty, :exc:`StatisticsError` will be raised." -msgstr "" +msgstr "Se lanza una excepción :exc:`StatisticsError` si *data* está vacío." #: ../Doc/library/statistics.rst:89 msgid "Some examples of use:" -msgstr "" +msgstr "Algunos ejemplos de uso:" #: ../Doc/library/statistics.rst:108 msgid "" @@ -233,6 +264,11 @@ msgid "" "points. For more robust measures of central location, see :func:`median` " "and :func:`mode`." msgstr "" +"La media aritmética se ve fuertemente afectada por la presencia de valores " +"atípicos en la muestra y no es un estimador robusto de tendencia central: la " +"media no es necesariamente un ejemplo representativo de la muestra. " +"Consulta :func:`median` y :func:`mode` para obtener medidas más robustas de " +"tendencia central." #: ../Doc/library/statistics.rst:113 msgid "" @@ -242,10 +278,17 @@ msgid "" "the entire population rather than a sample, then ``mean(data)`` is " "equivalent to calculating the true population mean μ." msgstr "" +"La media muestral proporciona una estimación no sesgada de la media real de " +"la población. Por lo tanto, al calcular el promedio de todas las muestras " +"posibles, ``mean(sample)`` converge con el promedio real de toda la " +"población. Si *data* representa a una población completa, en lugar de a una " +"muestra, entonces ``mean(data)`` equivale a calcular la media poblacional " +"verdadera μ." #: ../Doc/library/statistics.rst:122 msgid "Convert *data* to floats and compute the arithmetic mean." msgstr "" +"Convierte los valores de *data* a flotantes y calcula la media aritmética." #: ../Doc/library/statistics.rst:124 msgid "" @@ -253,10 +296,15 @@ msgid "" "class:`float`. The *data* may be a sequence or iterable. If the input " "dataset is empty, raises a :exc:`StatisticsError`." msgstr "" +"Esta función se ejecuta más rápido que :func:`mean` y siempre retorna un :" +"class:`float`. *data* puede ser una secuencia o un iterable. Si el conjunto " +"de datos de entrada está vacío, se lanza una excepción :exc:" +"`StatisticsError`." #: ../Doc/library/statistics.rst:138 msgid "Convert *data* to floats and compute the geometric mean." msgstr "" +"Convierte los valores de *data* a flotantes y calcula la media geométrica." #: ../Doc/library/statistics.rst:140 msgid "" @@ -264,6 +312,9 @@ msgid "" "*data* using the product of the values (as opposed to the arithmetic mean " "which uses their sum)." msgstr "" +"La media geométrica indica la tendencia central o valor típico de *data* " +"utilizando el producto de los valores (en oposición a la media aritmética, " +"que utiliza su suma)." #: ../Doc/library/statistics.rst:144 msgid "" @@ -271,18 +322,26 @@ msgid "" "contains a zero, or if it contains a negative value. The *data* may be a " "sequence or iterable." msgstr "" +"Lanza una excepción :exc:`StatisticsError` si el conjunto de datos de " +"entrada está vacío, o si contiene un cero o un valor negativo. *data* puede " +"ser una secuencia o un iterable." #: ../Doc/library/statistics.rst:148 msgid "" "No special efforts are made to achieve exact results. (However, this may " "change in the future.)" msgstr "" +"No se toman medidas especiales para garantizar que el resultado sea " +"completamente preciso. (Sin embargo, esto puede cambiar en una versión " +"futura.)" #: ../Doc/library/statistics.rst:161 msgid "" "Return the harmonic mean of *data*, a sequence or iterable of real-valued " "numbers." msgstr "" +"Retorna la media armónica de *data*, que debe ser una secuencia o un " +"iterable de números que pertenezcan al conjunto de los números reales." #: ../Doc/library/statistics.rst:164 msgid "" @@ -291,6 +350,10 @@ msgid "" "the harmonic mean of three values *a*, *b* and *c* will be equivalent to ``3/" "(1/a + 1/b + 1/c)``. If one of the values is zero, the result will be zero." msgstr "" +"La media armónica es el inverso o recíproco de la media aritmética (:func:" +"`mean`) de los inversos multiplicativos de los datos. Por ejemplo, la media " +"armónica de tres valores *a*, *b* y *c* es ``3/(1/a + 1/b + 1/c)``. El " +"resultado es cero si uno de los valores es cero." #: ../Doc/library/statistics.rst:170 msgid "" @@ -298,12 +361,17 @@ msgid "" "the data. It is often appropriate when averaging rates or ratios, for " "example speeds." msgstr "" +"La media armónica es un tipo de promedio, una medida de la tendencia central " +"de los datos. Generalmente es adecuada para calcular promedios de tasas o " +"fracciones, por ejemplo, velocidades." #: ../Doc/library/statistics.rst:174 msgid "" "Suppose a car travels 10 km at 40 km/hr, then another 10 km at 60 km/hr. " "What is the average speed?" msgstr "" +"Supongamos que un automóvil viaja 10 km a 40 km/h, luego otros 10 km a 60 km/" +"h. ¿Cuál es su velocidad media?" #: ../Doc/library/statistics.rst:182 msgid "" @@ -311,12 +379,17 @@ msgid "" "companies, with P/E (price/earning) ratios of 2.5, 3 and 10. What is the " "average P/E ratio for the investor's portfolio?" msgstr "" +"Supongamos que un inversor compra la misma cantidad de acciones de tres " +"empresas diferentes, con unos PER (ratio precio-beneficio) de 2.5, 3 y 10. " +"¿Cuál es el PER promedio para la cartera del inversor?" #: ../Doc/library/statistics.rst:191 msgid "" ":exc:`StatisticsError` is raised if *data* is empty, or any element is less " "than zero." msgstr "" +"Una excepción :exc:`StatisticsError` es lanzada si *data* está vacío o algún " +"elemento es menor que cero." #: ../Doc/library/statistics.rst:194 msgid "" @@ -324,6 +397,9 @@ msgid "" "input. This means that the subsequent inputs are not tested for validity. " "(This behavior may change in the future.)" msgstr "" +"El algoritmo actual tiene una salida anticipada cuando encuentra un cero en " +"la entrada. Esto significa que no se comprueba la validez de las entradas " +"posteriores al cero. (Este comportamiento puede cambiar en el futuro.)" #: ../Doc/library/statistics.rst:203 msgid "" @@ -331,6 +407,10 @@ msgid "" "middle two\" method. If *data* is empty, :exc:`StatisticsError` is raised. " "*data* can be a sequence or iterable." msgstr "" +"Retorna la mediana (valor central) de los datos numéricos, utilizando el " +"método clásico de \"media de los dos del medio\". Si *data* está vacío, se " +"lanza una excepción :exc:`StatisticsError`. *data* puede ser una secuencia o " +"un iterable." #: ../Doc/library/statistics.rst:207 msgid "" @@ -338,18 +418,25 @@ msgid "" "the presence of outliers. When the number of data points is odd, the middle " "data point is returned:" msgstr "" +"La mediana es una medida de tendencia central robusta y es menos sensible a " +"la presencia de valores atípicos que la media. Cuando el número de casos es " +"impar, se retorna el valor central:" #: ../Doc/library/statistics.rst:216 msgid "" "When the number of data points is even, the median is interpolated by taking " "the average of the two middle values:" msgstr "" +"Cuando el número de observaciones es par, la mediana se interpola calculando " +"el promedio de los dos valores centrales:" #: ../Doc/library/statistics.rst:224 msgid "" "This is suited for when your data is discrete, and you don't mind that the " "median may not be an actual data point." msgstr "" +"Este enfoque es adecuado para datos discretos, siempre que se acepte que la " +"mediana no es necesariamente parte de las observaciones." #: ../Doc/library/statistics.rst:227 msgid "" @@ -357,12 +444,18 @@ msgid "" "support addition), consider using :func:`median_low` or :func:`median_high` " "instead." msgstr "" +"Si los datos son ordinales (se pueden ordenar) pero no numéricos (no se " +"pueden sumar), considera usar :func:`median_low` o :func:`median_high` en su " +"lugar." #: ../Doc/library/statistics.rst:233 msgid "" "Return the low median of numeric data. If *data* is empty, :exc:" "`StatisticsError` is raised. *data* can be a sequence or iterable." msgstr "" +"Retorna la mediana baja de los datos numéricos. Se lanza una excepción :exc:" +"`StatisticsError` si *data* está vacío. *data* puede ser una secuencia o un " +"iterable." #: ../Doc/library/statistics.rst:236 msgid "" @@ -370,18 +463,27 @@ msgid "" "points is odd, the middle value is returned. When it is even, the smaller " "of the two middle values is returned." msgstr "" +"La mediana baja es siempre un valor presente en el conjunto de datos. Cuando " +"el número de casos es impar, se retorna el valor central. Cuando el número " +"de casos es par, se retorna el menor de los dos valores centrales." #: ../Doc/library/statistics.rst:247 msgid "" "Use the low median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utiliza la mediana baja cuando tus datos sean discretos y prefieras que la " +"mediana sea un valor representado en tus observaciones, en lugar de ser el " +"resultado de una interpolación." #: ../Doc/library/statistics.rst:253 msgid "" "Return the high median of data. If *data* is empty, :exc:`StatisticsError` " "is raised. *data* can be a sequence or iterable." msgstr "" +"Retorna la mediana alta de los datos. Lanza una excepción :exc:" +"`StatisticsError` si *data* está vacío. *data* puede ser una secuencia o un " +"iterable." #: ../Doc/library/statistics.rst:256 msgid "" @@ -389,12 +491,18 @@ msgid "" "points is odd, the middle value is returned. When it is even, the larger of " "the two middle values is returned." msgstr "" +"La mediana alta es siempre un valor presente en el conjunto de datos. Cuando " +"el número de casos es impar, se retorna el valor central. Cuando el número " +"de casos es par, se retorna el mayor de los dos valores centrales." #: ../Doc/library/statistics.rst:267 msgid "" "Use the high median when your data are discrete and you prefer the median to " "be an actual data point rather than interpolated." msgstr "" +"Utiliza la mediana alta cuando tus datos sean discretos y prefieras que la " +"mediana sea un valor representado en tus observaciones, en lugar de ser el " +"resultado de una interpolación." #: ../Doc/library/statistics.rst:273 msgid "" @@ -402,6 +510,10 @@ msgid "" "percentile, using interpolation. If *data* is empty, :exc:`StatisticsError` " "is raised. *data* can be a sequence or iterable." msgstr "" +"Retorna la mediana de los datos continuos agrupados, calculada como el " +"percentil 50, usando interpolación. Se lanza una excepción :exc:" +"`StatisticsError` si *data* está vacío. *data* puede ser una secuencia o un " +"iterable." #: ../Doc/library/statistics.rst:282 msgid "" @@ -411,30 +523,45 @@ msgid "" "etc. With the data given, the middle value falls somewhere in the class " "3.5--4.5, and interpolation is used to estimate it:" msgstr "" +"En el siguiente ejemplo, los valores se redondean para que cada valor " +"represente la mitad de un grupo. Por ejemplo, 1 es la mitad del grupo " +"0.5--1.5, 2 es la mitad del grupo 1.5--2.5, 3 es la mitad de 2.5--3.5, etc. " +"En los datos proporcionados a continuación, el valor medio está en algún " +"lugar del grupo que va de 3,5 a 4,5 y se estima mediante interpolación:" #: ../Doc/library/statistics.rst:293 msgid "" "Optional argument *interval* represents the class interval, and defaults to " "1. Changing the class interval naturally will change the interpolation:" msgstr "" +"El argumento opcional *interval* representa el intervalo de clase y el valor " +"predeterminado es 1. Cambiar el intervalo de clase cambiará la " +"interpolación, como es natural:" #: ../Doc/library/statistics.rst:303 msgid "" "This function does not check whether the data points are at least *interval* " "apart." msgstr "" +"Esta función no comprueba si los valores están separados por al menos un " +"*interval*." #: ../Doc/library/statistics.rst:308 msgid "" "Under some circumstances, :func:`median_grouped` may coerce data points to " "floats. This behaviour is likely to change in the future." msgstr "" +"Bajo algunas circunstancias, :func:`median_grouped` puede convertir algunos " +"de los valores proporcionados en flotantes. Es probable que este " +"comportamiento cambie en el futuro." #: ../Doc/library/statistics.rst:313 msgid "" "\"Statistics for the Behavioral Sciences\", Frederick J Gravetter and Larry " "B Wallnau (8th Edition)." msgstr "" +"\"Statistics for the Behavioral Sciences\", Frederick J Gravetter y Larry B " +"Wallnau (8ª edición)." #: ../Doc/library/statistics.rst:316 msgid "" @@ -443,6 +570,10 @@ msgid "" "spreadsheet, including `this discussion `_." msgstr "" +"La función `SSMEDIAN `_ del programa de hojas de cálculo Gnumeric " +"de Gnome, incluyendo `esta discusión `_." #: ../Doc/library/statistics.rst:324 msgid "" @@ -450,6 +581,9 @@ msgid "" "The mode (when it exists) is the most typical value and serves as a measure " "of central location." msgstr "" +"Retorna el valor más común del conjunto de datos discretos o nominales " +"*data*.La moda (cuando existe) es el valor más representativo y sirve como " +"medida de tendencia central." #: ../Doc/library/statistics.rst:328 msgid "" @@ -458,24 +592,36 @@ msgid "" "instead, use ``min(multimode(data))`` or ``max(multimode(data))``. If the " "input *data* is empty, :exc:`StatisticsError` is raised." msgstr "" +"Si hay varias modas con la misma frecuencia, retorna la primera encontrada " +"en *data*. Si deseas la menor o la mayor de ellas, usa " +"``min(multimode(data))`` o ``max(multimode(data))``. Se lanza una excepción :" +"exc:`StatisticsError` si la entrada *data* está vacía." #: ../Doc/library/statistics.rst:333 msgid "" "``mode`` assumes discrete data and returns a single value. This is the " "standard treatment of the mode as commonly taught in schools:" msgstr "" +"``mode`` asume que los datos de entrada son discretos y retorna un solo " +"valor. Esta es la definición habitual de la moda que se enseña en las " +"escuelas:" #: ../Doc/library/statistics.rst:341 msgid "" "The mode is unique in that it is the only statistic in this package that " "also applies to nominal (non-numeric) data:" msgstr "" +"La moda tiene la particularidad de ser la única estadística de este módulo " +"que se puede calcular sobre datos nominales (no numéricos):" #: ../Doc/library/statistics.rst:349 msgid "" "Now handles multimodal datasets by returning the first mode encountered. " "Formerly, it raised :exc:`StatisticsError` when more than one mode was found." msgstr "" +"Ahora maneja conjuntos de datos multimodales, retornando la primera moda " +"encontrada. Anteriormente, se lanzaba una excepción :exc:`StatisticsError` " +"cuando se daba esta situación." #: ../Doc/library/statistics.rst:357 msgid "" @@ -483,12 +629,18 @@ msgid "" "first encountered in the *data*. Will return more than one result if there " "are multiple modes or an empty list if the *data* is empty:" msgstr "" +"Retorna una lista de los valores más frecuentes en el orden en que aparecen " +"en *data*. Retornará varios resultados en el caso de que existan varias " +"modas, o una lista vacía si *data* está vacío:" #: ../Doc/library/statistics.rst:373 msgid "" "Return the population standard deviation (the square root of the population " "variance). See :func:`pvariance` for arguments and other details." msgstr "" +"Retorna la desviación típica poblacional (la raíz cuadrada de la varianza " +"poblacional). Consultar :func:`pvariance` para los argumentos y otros " +"detalles." #: ../Doc/library/statistics.rst:384 msgid "" @@ -498,6 +650,11 @@ msgid "" "indicates that the data is spread out; a small variance indicates it is " "clustered closely around the mean." msgstr "" +"Retorna la varianza poblacional de *data*, que debe ser una secuencia no " +"vacía o un iterable de números reales. La varianza, o momento de segundo " +"orden respecto a la media, es una medida de la variabilidad (o dispersión) " +"de los datos. Una alta varianza indica una amplia dispersión de valores; una " +"varianza baja indica que los valores están agrupados alrededor de la media." #: ../Doc/library/statistics.rst:390 msgid "" @@ -506,6 +663,10 @@ msgid "" "that is not the mean. If it is missing or ``None`` (the default), the " "arithmetic mean is automatically calculated." msgstr "" +"El segundo argumento opcional *mu*, que normalmente será la media de *data*, " +"también se puede utilizar para calcular el momento de segundo orden " +"alrededor de un punto que no es la media. Si no se proporciona o es ``None`` " +"(el valor predeterminado), la media aritmética se calcula automáticamente." #: ../Doc/library/statistics.rst:395 msgid "" @@ -513,24 +674,29 @@ msgid "" "estimate the variance from a sample, the :func:`variance` function is " "usually a better choice." msgstr "" +"Utiliza esta función para calcular la varianza de toda la población. Para " +"estimar la varianza de una muestra, la función :func:`variance` suele ser " +"una opción mejor." #: ../Doc/library/statistics.rst:399 msgid "Raises :exc:`StatisticsError` if *data* is empty." -msgstr "" +msgstr "Lanza una excepción :exc:`StatisticsError` si *data* está vacío." #: ../Doc/library/statistics.rst:401 ../Doc/library/statistics.rst:471 msgid "Examples:" -msgstr "" +msgstr "Ejemplos:" #: ../Doc/library/statistics.rst:409 msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *mu* to avoid recalculation:" msgstr "" +"Si ya has calculado la media de tus datos, puedes pasarla como segundo " +"argumento opcional *mu* para evitar que se tenga que volver a calcular:" #: ../Doc/library/statistics.rst:418 msgid "Decimals and Fractions are supported:" -msgstr "" +msgstr "Se admiten decimales (Decimal) y fracciones (Fraction):" #: ../Doc/library/statistics.rst:432 msgid "" @@ -538,6 +704,9 @@ msgid "" "σ². When called on a sample instead, this is the biased sample variance s², " "also known as variance with N degrees of freedom." msgstr "" +"Esta función retorna la varianza poblacional σ² cuando se aplica a toda la " +"población. Si se aplica solo a una muestra, el resultado es la varianza " +"muestral s², conocida también como varianza con N grados de libertad." #: ../Doc/library/statistics.rst:436 msgid "" @@ -547,12 +716,19 @@ msgid "" "population, the result will be an unbiased estimate of the population " "variance." msgstr "" +"Si se conoce de antemano la verdadera media poblacional μ, se puede usar " +"esta función para calcular la varianza muestral, pasando la media " +"poblacional conocida como segundo argumento. Suponiendo que las " +"observaciones provienen de una selección aleatoria uniforme de la población, " +"el resultado será una estimación no sesgada de la varianza poblacional." #: ../Doc/library/statistics.rst:445 msgid "" "Return the sample standard deviation (the square root of the sample " "variance). See :func:`variance` for arguments and other details." msgstr "" +"Retorna la desviación típica muestral (la raíz cuadrada de la varianza " +"muestral). Consultar :func:`variance` para los argumentos y otros detalles." #: ../Doc/library/statistics.rst:456 msgid "" @@ -562,6 +738,12 @@ msgid "" "that the data is spread out; a small variance indicates it is clustered " "closely around the mean." msgstr "" +"Retorna la varianza muestral de *data*, que debe ser un iterable de al menos " +"dos números reales. La varianza, o momento de segundo orden respecto a la " +"media, es una medida de la variabilidad (difusión o dispersión) de los " +"datos. Una alta varianza indica que los datos están dispersos; una baja " +"varianza indica que los datos están agrupados estrechamente alrededor de la " +"media." #: ../Doc/library/statistics.rst:462 msgid "" @@ -569,22 +751,32 @@ msgid "" "*data*. If it is missing or ``None`` (the default), the mean is " "automatically calculated." msgstr "" +"Si se proporciona el segundo argumento opcional *xbar*, este debe ser la " +"media aritmética de *data*. Si no se proporciona o es ``None`` (el valor " +"predeterminado), la media aritmética se calcula automáticamente." #: ../Doc/library/statistics.rst:466 msgid "" "Use this function when your data is a sample from a population. To calculate " "the variance from the entire population, see :func:`pvariance`." msgstr "" +"Utiliza esta función cuando tus datos sean una muestra de una población. " +"Para calcular la varianza de toda la población, consulta :func:`pvariance`." #: ../Doc/library/statistics.rst:469 msgid "Raises :exc:`StatisticsError` if *data* has fewer than two values." msgstr "" +"Lanza una excepción :exc:`StatisticsError` si *data* tiene menos de dos " +"valores." #: ../Doc/library/statistics.rst:479 msgid "" "If you have already calculated the mean of your data, you can pass it as the " "optional second argument *xbar* to avoid recalculation:" msgstr "" +"Si previamente se ha calculado la media de los datos, puede pasarse como " +"segundo argumento opcional *xbar* para evitar que se tenga que volver a " +"calcular:" #: ../Doc/library/statistics.rst:488 msgid "" @@ -592,10 +784,13 @@ msgid "" "mean as *xbar*. Using arbitrary values for *xbar* can lead to invalid or " "impossible results." msgstr "" +"Esta función no comprueba si el valor pasado al argumento *xbar* corresponde " +"al promedio. El uso de valores arbitrarios para *xbar* produce resultados " +"imposibles o incorrectos." #: ../Doc/library/statistics.rst:492 msgid "Decimal and Fraction values are supported:" -msgstr "" +msgstr "La función maneja decimales (Decimal) y fracciones (Fraction):" #: ../Doc/library/statistics.rst:506 msgid "" @@ -604,6 +799,11 @@ msgid "" "representative (e.g. independent and identically distributed), the result " "should be an unbiased estimate of the true population variance." msgstr "" +"Esta es la varianza muestral s² con la corrección de Bessel, también " +"conocida como varianza con N-1 grados de libertad. Suponiendo que las " +"observaciones son representativas de la población (es decir, independientes " +"y distribuidas de forma idéntica), el resultado es una estimación no sesgada " +"de la varianza." #: ../Doc/library/statistics.rst:511 msgid "" @@ -611,12 +811,17 @@ msgid "" "func:`pvariance` function as the *mu* parameter to get the variance of a " "sample." msgstr "" +"Si conoces de antemano la verdadera media poblacional μ, debes pasarla a :" +"func:`pvariance` mediante el parámetro *mu* para obtener la varianza " +"muestral." #: ../Doc/library/statistics.rst:517 msgid "" "Divide *data* into *n* continuous intervals with equal probability. Returns " "a list of ``n - 1`` cut points separating the intervals." msgstr "" +"Divide *data* en *n* intervalos continuos equiprobables. Retorna una lista " +"de ``n - 1`` límites que delimitan los intervalos (cuantiles)." #: ../Doc/library/statistics.rst:520 msgid "" @@ -625,6 +830,10 @@ msgid "" "*data* into 100 equal sized groups. Raises :exc:`StatisticsError` if *n* is " "not least 1." msgstr "" +"Establece *n* en 4 para obtener los cuartiles (el valor predeterminado), en " +"10 para obtener los deciles y en 100 para obtener los percentiles (lo que " +"produce 99 valores que separan *data* en 100 grupos del mismo tamaño). Si " +"*n* es menor que 1, se lanza una excepción :exc:`StatisticsError`." #: ../Doc/library/statistics.rst:525 msgid "" @@ -632,6 +841,10 @@ msgid "" "results, the number of data points in *data* should be larger than *n*. " "Raises :exc:`StatisticsError` if there are not at least two data points." msgstr "" +"*data* puede ser cualquier iterable que contenga los valores de la muestra. " +"Para que los resultados sean significativos, el número de observaciones en " +"la muestra *data* debe ser mayor que *n*. Si no hay al menos dos " +"observaciones se lanza una excepción :exc:`StatisticsError`." #: ../Doc/library/statistics.rst:529 msgid "" @@ -639,6 +852,10 @@ msgid "" "For example, if a cut point falls one-third of the distance between two " "sample values, ``100`` and ``112``, the cut-point will evaluate to ``104``." msgstr "" +"Los límites de los intervalos se interpolan linealmente a partir de los dos " +"valores más cercanos de la muestra. Por ejemplo, si un límite es un tercio " +"de la distancia entre los valores 100 y 112 de la muestra, el límite será " +"104." #: ../Doc/library/statistics.rst:534 msgid "" @@ -646,6 +863,9 @@ msgid "" "*data* includes or excludes the lowest and highest possible values from the " "population." msgstr "" +"El argumento *method* indica el método que se utilizará para calcular los " +"cuantiles y se puede modificar para especificar si se deben incluir o " +"excluir valores de *data* extremos, altos y bajos, de la población." #: ../Doc/library/statistics.rst:538 msgid "" @@ -656,6 +876,13 @@ msgid "" "them and assigns the following percentiles: 10%, 20%, 30%, 40%, 50%, 60%, " "70%, 80%, 90%." msgstr "" +"El valor predeterminado para *method* es \"exclusive\" y es aplicable a los " +"datos muestreados de una población que puede tener valores más extremos que " +"los encontrados en las muestras. La proporción de la población que se " +"encuentra por debajo del *i-ésimo* valor de *m* valores ordenados se calcula " +"mediante la fórmula ``i / (m + 1)``. Por ejemplo, asumiendo que hay 9 " +"valores en la muestra, este método los ordena y los asocia con los " +"siguientes percentiles: 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%." #: ../Doc/library/statistics.rst:545 msgid "" @@ -668,22 +895,33 @@ msgid "" "assigns the following percentiles: 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, " "80%, 90%, 100%." msgstr "" +"Si se usa \"inclusive\" como valor para el parámetro *method*, se asume que " +"los datos corresponden a una población completa o que los valores extremos " +"de la población están representados en la muestra. El valor mínimo de *data* " +"se considera entonces como percentil 0 y el máximo como percentil 100. La " +"proporción de la población que se encuentra por debajo del *i-ésimo* valor " +"de *m* valores ordenados se calcula mediante la fórmula ``(i - 1) / (m - " +"1)``. Suponiendo que tenemos 11 valores en la muestra, este método los " +"ordena y los asocia con los siguientes percentiles: 0%, 10%, 20%, 30%, 40%, " +"50%, 60%, 70%, 80 %, 90%, 100%." #: ../Doc/library/statistics.rst:569 msgid "Exceptions" -msgstr "" +msgstr "Excepciones" #: ../Doc/library/statistics.rst:571 msgid "A single exception is defined:" -msgstr "" +msgstr "Se define una sola excepción:" #: ../Doc/library/statistics.rst:575 msgid "Subclass of :exc:`ValueError` for statistics-related exceptions." msgstr "" +"Subclase de :exc:`ValueError` para excepciones relacionadas con la " +"estadística." #: ../Doc/library/statistics.rst:579 msgid ":class:`NormalDist` objects" -msgstr "" +msgstr "Objetos :class:`NormalDist`" #: ../Doc/library/statistics.rst:581 msgid "" @@ -692,6 +930,10 @@ msgid "" "Courses/1997-98/101/ranvar.htm>`_. It is a class that treats the mean and " "standard deviation of data measurements as a single entity." msgstr "" +":class:`NormalDist` es una herramienta para crear y manipular distribuciones " +"normales de una `variable aleatoria `_. Esta clase gestiona la desviación típica " +"y la media de un conjunto de observaciones como una sola entidad." #: ../Doc/library/statistics.rst:587 msgid "" @@ -699,6 +941,9 @@ msgid "" "wikipedia.org/wiki/Central_limit_theorem>`_ and have a wide range of " "applications in statistics." msgstr "" +"Las distribuciones normales surgen del `Teorema del límite central `_ y tienen una amplia " +"gama de aplicaciones en estadística." #: ../Doc/library/statistics.rst:593 msgid "" @@ -706,34 +951,46 @@ msgid "" "`_ and *sigma* represents the " "`standard deviation `_." msgstr "" +"Retorna un nuevo objeto *NormalDist* donde *mu* representa la `media " +"aritmética `_ y *sigma* " +"representa la `desviación típica `_." #: ../Doc/library/statistics.rst:598 msgid "If *sigma* is negative, raises :exc:`StatisticsError`." -msgstr "" +msgstr "Se lanza una excepción :exc:`StatisticsError` si *sigma* es negativo." #: ../Doc/library/statistics.rst:602 msgid "" "A read-only property for the `arithmetic mean `_ of a normal distribution." msgstr "" +"Una propiedad de solo lectura para la `media aritmética `_ de una distribución normal." #: ../Doc/library/statistics.rst:608 msgid "" "A read-only property for the `median `_ of a normal distribution." msgstr "" +"Una propiedad de solo lectura para la `mediana `_ de una distribución normal." #: ../Doc/library/statistics.rst:614 msgid "" "A read-only property for the `mode `_ of a normal distribution." msgstr "" +"Una propiedad de solo lectura para la `moda `_ de una distribución normal." #: ../Doc/library/statistics.rst:620 msgid "" "A read-only property for the `standard deviation `_ of a normal distribution." msgstr "" +"Una propiedad de solo lectura para la `desviación típica `_ de una distribución normal." #: ../Doc/library/statistics.rst:626 msgid "" @@ -741,12 +998,17 @@ msgid "" "Variance>`_ of a normal distribution. Equal to the square of the standard " "deviation." msgstr "" +"Una propiedad de solo lectura para la `varianza `_ de una distribución normal. Es igual al cuadrado de la " +"desviación típica." #: ../Doc/library/statistics.rst:632 msgid "" "Makes a normal distribution instance with *mu* and *sigma* parameters " "estimated from the *data* using :func:`fmean` and :func:`stdev`." msgstr "" +"Crea una instancia de distribución normal con los parámetros *mu* y *sigma* " +"estimados a partir de *data* usando :func:`fmean` y :func:`stdev`." #: ../Doc/library/statistics.rst:635 msgid "" @@ -756,12 +1018,19 @@ msgid "" "point to estimate a central value and at least two points to estimate " "dispersion." msgstr "" +"*data* puede ser cualquier :term:`iterable` de valores que se puedan " +"convertir al tipo :class:`float`. Se lanza una excepción :exc:" +"`StatisticsError` si *data* no contiene al menos dos elementos, esto se debe " +"a que se necesita al menos un punto para estimar un valor central y al menos " +"dos puntos para estimar la dispersión." #: ../Doc/library/statistics.rst:643 msgid "" "Generates *n* random samples for a given mean and standard deviation. " "Returns a :class:`list` of :class:`float` values." msgstr "" +"Genera *n* muestras aleatorias para una media y una desviación típica " +"proporcionadas. Retorna un objeto :class:`list` de valores :class:`float`." #: ../Doc/library/statistics.rst:646 msgid "" @@ -769,6 +1038,10 @@ msgid "" "generator. This is useful for creating reproducible results, even in a " "multi-threading context." msgstr "" +"Si se proporciona *seed*, su valor se usa para inicializar una nueva " +"instancia del generador de números aleatorios subyacente. Esto permite " +"producir resultados reproducibles incluso en un contexto de paralelismo con " +"múltiples hilos." #: ../Doc/library/statistics.rst:652 msgid "" @@ -777,6 +1050,12 @@ msgid "" "random variable *X* will be near the given value *x*. Mathematically, it is " "the limit of the ratio ``P(x <= X < x+dx) / dx`` as *dx* approaches zero." msgstr "" +"Haciendo uso de una `función de densidad de probabilidad (FPD o PDF en " +"inglés) `_, calcula la verosimilitud relativa de " +"que una variable aleatoria *X* caiga en una región cercana al valor *x* " +"proporcionado. Matemáticamente, esto corresponde al límite de la razón ``P(x " +"<= X < x+dx) / dx`` cuando *dx* tiende a cero." #: ../Doc/library/statistics.rst:658 msgid "" @@ -785,6 +1064,10 @@ msgid "" "\"). Since the likelihood is relative to other points, its value can be " "greater than `1.0`." msgstr "" +"La verosimilitud relativa se calcula como la probabilidad de que una " +"observación pertenezca a un intervalo estrecho dividida entre el ancho del " +"intervalo (de ahí el término \"densidad\"). Como la verosimilitud es " +"relativa a los otros puntos, su valor puede ser mayor que `1.0`." #: ../Doc/library/statistics.rst:665 msgid "" @@ -793,6 +1076,10 @@ msgid "" "random variable *X* will be less than or equal to *x*. Mathematically, it " "is written ``P(X <= x)``." msgstr "" +"Usando una `función de distribución acumulada (FDA, CDF en inglés) `_, calcula la " +"probabilidad de que una variable aleatoria *X* sea menor o igual que *x*. " +"Matemáticamente, se escribe ``P(X <= x)``." #: ../Doc/library/statistics.rst:672 msgid "" @@ -802,6 +1089,11 @@ msgid "" "inverse-distribution-function/>`_ function. Mathematically, it is written " "``x : P(X <= x) = p``." msgstr "" +"Calcula la función de distribución acumulada inversa, también conocida como " +"`función cuantil `_ o " +"función `punto porcentual `_. Matemáticamente, se escribe ``x : P(X " +"<= x) = p``." #: ../Doc/library/statistics.rst:678 msgid "" @@ -809,6 +1101,9 @@ msgid "" "the variable being less than or equal to that value equals the given " "probability *p*." msgstr "" +"Calcula el valor *x* de la variable aleatoria *X* tal que la probabilidad de " +"que la variable sea menor o igual a este valor es igual a la probabilidad " +"*p* dada." #: ../Doc/library/statistics.rst:684 msgid "" @@ -816,12 +1111,18 @@ msgid "" "a value between 0.0 and 1.0 giving `the overlapping area for the two " "probability density functions `_." msgstr "" +"Mide la concordancia entre dos distribuciones de probabilidad normales. " +"Retorna un valor entre 0.0 y 1.0 que indica `el área de superposición de dos " +"funciones de densidad de probabilidad `_." #: ../Doc/library/statistics.rst:691 msgid "" "Divide the normal distribution into *n* continuous intervals with equal " "probability. Returns a list of (n - 1) cut points separating the intervals." msgstr "" +"Divide la distribución normal en *n* intervalos continuos equiprobables. " +"Retorna una lista de (n - 1) cuantiles que separan los intervalos." #: ../Doc/library/statistics.rst:695 msgid "" @@ -829,6 +1130,9 @@ msgid "" "*n* to 100 for percentiles which gives the 99 cuts points that separate the " "normal distribution into 100 equal sized groups." msgstr "" +"Establece *n* en 4 para obtener los cuartiles (el valor predeterminado), en " +"10 para obtener los deciles y en 100 para obtener los percentiles (lo que " +"produce 99 límites que separan los datos en 100 grupos del mismo tamaño)." #: ../Doc/library/statistics.rst:699 msgid "" @@ -836,12 +1140,17 @@ msgid "" "multiplication and division by a constant. These operations are used for " "translation and scaling. For example:" msgstr "" +"Las instancias de la clase :class:`NormalDist` soportan la suma, resta, " +"multiplicación y división por una constante. Estas operaciones se pueden " +"utilizar para traducir o escalar, por ejemplo:" #: ../Doc/library/statistics.rst:709 msgid "" "Dividing a constant by an instance of :class:`NormalDist` is not supported " "because the result wouldn't be normally distributed." msgstr "" +"No se admite la división de una constante entre una instancia de :class:" +"`NormalDist` debido a que el resultado no sería una distribución normal." #: ../Doc/library/statistics.rst:712 msgid "" @@ -851,14 +1160,21 @@ msgid "" "Sum_of_normally_distributed_random_variables>`_ represented as instances of :" "class:`NormalDist`. For example:" msgstr "" +"Dado que las distribuciones normales se derivan de las propiedades aditivas " +"de variables independientes, es posible `sumar o restar dos variables " +"independientes con distribución normal `_ representadas por instancias " +"de :class:`NormalDist`. Por ejemplo :" #: ../Doc/library/statistics.rst:732 msgid ":class:`NormalDist` Examples and Recipes" -msgstr "" +msgstr "Ejemplos de uso de :class:`NormalDist`" #: ../Doc/library/statistics.rst:734 msgid ":class:`NormalDist` readily solves classic probability problems." msgstr "" +":class:`NormalDist` permite resolver fácilmente problemas probabilísticos " +"clásicos." #: ../Doc/library/statistics.rst:736 msgid "" @@ -868,12 +1184,20 @@ msgid "" "determine the percentage of students with test scores between 1100 and 1200, " "after rounding to the nearest whole number:" msgstr "" +"Por ejemplo, sabiendo que `los datos históricos de los exámenes SAT `_ siguen una " +"distribución normal con una media de 1060 y una desviación típica de 195, " +"determinar el porcentaje de estudiantes con puntuaciones entre 1100 y 1200, " +"redondeado al número entero más cercano:" #: ../Doc/library/statistics.rst:749 msgid "" "Find the `quartiles `_ and `deciles " "`_ for the SAT scores:" msgstr "" +"Determinar los `cuartiles `_ y " +"`deciles `_ de las " +"puntuaciones del SAT:" #: ../Doc/library/statistics.rst:759 msgid "" @@ -881,6 +1205,10 @@ msgid "" "analytically, :class:`NormalDist` can generate input samples for a `Monte " "Carlo simulation `_:" msgstr "" +"Con la finalidad de estimar la distribución de un modelo que es difícil de " +"resolver analíticamente, :class:`NormalDist` puede generar muestras de " +"entrada para una `simulación utilizando el método Montecarlo `_:" #: ../Doc/library/statistics.rst:775 msgid "" @@ -888,6 +1216,10 @@ msgid "" "`_ when the sample " "size is large and when the probability of a successful trial is near 50%." msgstr "" +"Las distribuciones normales se pueden utilizar para aproximar " +"`distribuciones binomiales `_ cuando el tamaño de la muestra es grande y la " +"probabilidad de un ensayo exitoso es cercana al 50%." #: ../Doc/library/statistics.rst:780 #, python-format @@ -898,10 +1230,19 @@ msgid "" "talks. Assuming the population preferences haven't changed, what is the " "probability that the Python room will stay within its capacity limits?" msgstr "" +"Por ejemplo, 750 personas asisten a una conferencia sobre código abierto y " +"se dispone de dos salas con capacidad para 500 personas cada una. En la " +"primera sala hay una charla sobre Python, en la otra una sobre Ruby. En " +"conferencias pasadas, el 65% de las personas prefirieron escuchar las " +"charlas sobre Python. Suponiendo que las preferencias de la población no " +"hayan cambiado, ¿cuál es la probabilidad de que la sala de Python permanezca " +"por debajo de su capacidad máxima?" #: ../Doc/library/statistics.rst:811 msgid "Normal distributions commonly arise in machine learning problems." msgstr "" +"Las distribuciones normales a menudo están involucradas en el aprendizaje " +"automático." #: ../Doc/library/statistics.rst:813 msgid "" @@ -910,6 +1251,11 @@ msgid "" "challenge is to predict a person's gender from measurements of normally " "distributed features including height, weight, and foot size." msgstr "" +"Wikipedia detalla un buen ejemplo de un `clasificador bayesiano ingenuo " +"`_. El " +"objetivo es predecir el género de una persona a partir de características " +"físicas que siguen una distribución normal, como la altura, el peso y el " +"tamaño del pie." #: ../Doc/library/statistics.rst:818 msgid "" @@ -917,12 +1263,17 @@ msgid "" "measurements are assumed to be normally distributed, so we summarize the " "data with :class:`NormalDist`:" msgstr "" +"Disponemos de un conjunto de datos de entrenamiento que contiene las medidas " +"de ocho personas. Se supone que estas medidas siguen una distribución " +"normal, por lo que podemos sintetizar los datos usando :class:`NormalDist`:" #: ../Doc/library/statistics.rst:831 msgid "" "Next, we encounter a new person whose feature measurements are known but " "whose gender is unknown:" msgstr "" +"A continuación, nos encontramos con un nuevo individuo del que conocemos las " +"medidas de sus características pero no su género:" #: ../Doc/library/statistics.rst:840 msgid "" @@ -931,6 +1282,10 @@ msgid "" "the prior times the product of likelihoods for the feature measurements " "given the gender:" msgstr "" +"Partiendo de una `probabilidad a priori `_ del 50% de ser hombre o mujer, calculamos la " +"probabilidad a posteriori como el producto de la probabilidad a priori y la " +"verosimilitud de las diferentes medidas dado el género:" #: ../Doc/library/statistics.rst:855 msgid "" @@ -938,3 +1293,6 @@ msgid "" "`maximum a posteriori `_ or MAP:" msgstr "" +"La predicción final es la que tiene mayor probabilidad a posteriori. Este " +"enfoque se denomina `máximo a posteriori `_ o MAP:" diff --git a/library/stringprep.po b/library/stringprep.po index 06dc8e62c6..981eee7803 100644 --- a/library/stringprep.po +++ b/library/stringprep.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: 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: 2020-10-13 19:47+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/stringprep.rst:2 msgid ":mod:`stringprep` --- Internet String Preparation" -msgstr "" +msgstr ":mod:`stringprep` --- Preparación de cadenas de Internet" #: ../Doc/library/stringprep.rst:10 msgid "**Source code:** :source:`Lib/stringprep.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/stringprep.py`" #: ../Doc/library/stringprep.rst:14 msgid "" @@ -37,6 +39,13 @@ msgid "" "possible identifications, to allow only identifications consisting of " "\"printable\" characters." msgstr "" +"Cuando se quiere identificar cosas (como nombres de host) en internet, " +"generalmente es necesario comparar tales identificaciones para \"igualdad\". " +"La manera en la que esta comparación se ejecuta dependerá del dominio de la " +"aplicación, ej. si tiene o no tiene que distinguir entre mayúsculas y " +"minúsculas. Además, en algunos casos será necesario restringir las posibles " +"identificaciones, de tal manera que solo se permitan identificadores de " +"caracteres que se puedan \"imprimir\"." #: ../Doc/library/stringprep.rst:21 msgid "" @@ -49,6 +58,14 @@ msgid "" "``stringprep`` profile is ``nameprep``, which is used for internationalized " "domain names." msgstr "" +":rfc:`3454` define el proceso para la \"preparación\" de cadenas Unicode " +"para protocolos de internet. Antes de pasar cadenas a un cable, se procesan " +"con el proceso de preparación, después del cual tienen una forma " +"normalizada. El RFC define un conjunto de tablas, que pueden ser combinadas " +"en perfiles. Cada perfil debe definir qué tablas usa, y que partes " +"opcionales del proceso ``stringprep`` son parte del perfil. Un ejemplo de " +"perfil de ``stringprep`` es ``nameprep``, que se usa para nombres de " +"dominios internacionalizados." #: ../Doc/library/stringprep.rst:29 msgid "" @@ -57,6 +74,11 @@ msgid "" "the module uses the Unicode character database internally. The module source " "code itself was generated using the ``mkstringprep.py`` utility." msgstr "" +"El modulo :mod:`stringprep` solo expone las tablas de :rfc:`3454`. Como " +"estas tablas serían muy grandes para representarlas como diccionarios o " +"listas, el módulo usa la base de datos de los caracteres de Unicode de " +"manera interna. El código fuente del módulo en sí ha sido generado usando la " +"herramienta ``mkstringprep.py`` " #: ../Doc/library/stringprep.rst:34 msgid "" @@ -67,100 +89,130 @@ msgid "" "provides the mapping function: given the key, it returns the associated " "value. Below is a list of all functions available in the module." msgstr "" +"Como resultado, estas tablas son presentadas como funciones, no como " +"estructuras de datos. Hay dos tipos de tablas en el RFC: conjuntos y " +"mapeos. Para un conjunto, :mod:`stringprep` proporciona una \"función " +"característica\", es decir, la función retorna ``True`` si el parámetro es " +"parte del conjunto. Para los mapas, proporciona una función de mapeado: dada " +"una clave, retorna el valor asociado. Abajo se encuentra una lista con todas " +"las funciones disponibles para este módulo." #: ../Doc/library/stringprep.rst:44 msgid "" "Determine whether *code* is in tableA.1 (Unassigned code points in Unicode " "3.2)." msgstr "" +"Determina si *code* está en la tablaA.1 (Puntos de Código sin asignar en " +"Unicode 3.2)." #: ../Doc/library/stringprep.rst:49 msgid "Determine whether *code* is in tableB.1 (Commonly mapped to nothing)." -msgstr "" +msgstr "Determina si *code* está en la tablaB.1 (Generalmente mapeado a nada)." #: ../Doc/library/stringprep.rst:54 msgid "" "Return the mapped value for *code* according to tableB.2 (Mapping for case-" "folding used with NFKC)." msgstr "" +"Retorna el valor mapeado para *code* de acuerdo a la tablaB.2 (Mapeo para " +"*case-folding* usado con NFKC)." #: ../Doc/library/stringprep.rst:60 msgid "" "Return the mapped value for *code* according to tableB.3 (Mapping for case-" "folding used with no normalization)." msgstr "" +"Retorna el valor mapeado para *code* de acuerdo a tablaB.3 (Mapeo para *case-" +"folding* usado sin normalización)." #: ../Doc/library/stringprep.rst:66 msgid "Determine whether *code* is in tableC.1.1 (ASCII space characters)." msgstr "" +"Determina si *code* está en la tablaC.1.1 (Caracteres de espacio ASCII)." #: ../Doc/library/stringprep.rst:71 msgid "" "Determine whether *code* is in tableC.1.2 (Non-ASCII space characters)." msgstr "" +"Determina si *code* está en la tablaC.1.2 (Caracteres de espacio no-ASCII)." #: ../Doc/library/stringprep.rst:76 msgid "" "Determine whether *code* is in tableC.1 (Space characters, union of C.1.1 " "and C.1.2)." msgstr "" +"Determina si *code* está en la tablaC.1 (Caracteres de espacio, unión de " +"C.1.1 y C.1.2)." #: ../Doc/library/stringprep.rst:82 msgid "Determine whether *code* is in tableC.2.1 (ASCII control characters)." msgstr "" +"Determina si *code* está en la tablaC.2.1 (Caracteres de control ASCII)." #: ../Doc/library/stringprep.rst:87 msgid "" "Determine whether *code* is in tableC.2.2 (Non-ASCII control characters)." msgstr "" +"Determina si *code* está en la tablaC.2.2 (Caracteres de control no ASCII)." #: ../Doc/library/stringprep.rst:92 msgid "" "Determine whether *code* is in tableC.2 (Control characters, union of C.2.1 " "and C.2.2)." msgstr "" +"Determina si *code* está en la tablaC.2 (Caracteres de control, unión de " +"C.2.1 y C.2.2)." #: ../Doc/library/stringprep.rst:98 msgid "Determine whether *code* is in tableC.3 (Private use)." -msgstr "" +msgstr "Determina si *code* está en la tablaC.3 (Uso privado)." #: ../Doc/library/stringprep.rst:103 msgid "Determine whether *code* is in tableC.4 (Non-character code points)." msgstr "" +"Determina si *code* está en la tablaC.4 (Puntos de código sin caracteres)" #: ../Doc/library/stringprep.rst:108 msgid "Determine whether *code* is in tableC.5 (Surrogate codes)." -msgstr "" +msgstr "Determina si *code* está en la tablaC.5 (Códigos surrogados)." #: ../Doc/library/stringprep.rst:113 msgid "" "Determine whether *code* is in tableC.6 (Inappropriate for plain text)." -msgstr "" +msgstr "Determina si *code* está en la tablaC.6 (Inadecuado para texto plano)." #: ../Doc/library/stringprep.rst:118 msgid "" "Determine whether *code* is in tableC.7 (Inappropriate for canonical " "representation)." msgstr "" +"Determina si *code* está en la tablaC.7 (Inadecuado para la representación " +"canónica)." #: ../Doc/library/stringprep.rst:124 msgid "" "Determine whether *code* is in tableC.8 (Change display properties or are " "deprecated)." msgstr "" +"Determina si *code* está en la tablaC.8 (Cambia las propiedades de " +"apariencia o están obsoletas)." #: ../Doc/library/stringprep.rst:130 msgid "Determine whether *code* is in tableC.9 (Tagging characters)." -msgstr "" +msgstr "Determina si *code* está en la tablaC.9 (Caracteres de etiquetado)." #: ../Doc/library/stringprep.rst:135 msgid "" "Determine whether *code* is in tableD.1 (Characters with bidirectional " "property \"R\" or \"AL\")." msgstr "" +"Determina si *code* está en la tablaD.1 (Caracteres con propiedad " +"bidireccional \"R\" o \"AL\")." #: ../Doc/library/stringprep.rst:141 msgid "" "Determine whether *code* is in tableD.2 (Characters with bidirectional " "property \"L\")." msgstr "" +"Determina si *code* está en la tablaD.2 (Caracteres con propiedad " +"bidireccional \"L\")." diff --git a/library/struct.po b/library/struct.po index cc64c54645..05b61bc1a6 100644 --- a/library/struct.po +++ b/library/struct.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: 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: 2020-11-01 22:56+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: \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/library/struct.rst:2 msgid ":mod:`struct` --- Interpret bytes as packed binary data" -msgstr "" +msgstr ":mod:`struct` --- Interpreta bytes como paquetes de datos binarios" #: ../Doc/library/struct.rst:7 msgid "**Source code:** :source:`Lib/struct.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/struct.py`" #: ../Doc/library/struct.rst:15 msgid "" @@ -37,6 +39,12 @@ msgid "" "the layout of the C structs and the intended conversion to/from Python " "values." msgstr "" +"Este módulo realiza conversiones entre valores de Python y estructuras C " +"representadas como objetos :class:`bytes` de Python. Se puede utilizar para " +"el tratamiento de datos binarios almacenados en archivos o desde conexiones " +"de red, entre otras fuentes. Utiliza :ref:`struct-format-strings` como " +"descripciones compactas del diseño de las estructuras C y la conversión " +"prevista a/desde valores de Python." #: ../Doc/library/struct.rst:23 msgid "" @@ -48,6 +56,15 @@ msgid "" "or omit implicit pad bytes, use ``standard`` size and alignment instead of " "``native`` size and alignment: see :ref:`struct-alignment` for details." msgstr "" +"Por defecto, el resultado de empaquetar una estructura C determinada incluye " +"bytes de relleno para mantener la alineación adecuada para los tipos " +"correspondientes en C; del mismo modo, la alineación se tiene en cuenta al " +"desempaquetar. Este comportamiento se elige para que los bytes de una " +"estructura empaquetada se correspondan exactamente con el diseño en memoria " +"de la estructura C correspondiente. Para tratar formatos de datos que sean " +"independientes de la plataforma u omitir bytes de relleno implícitos, " +"utiliza el tamaño y la alineación ``estándar`` en lugar del ``nativo``: ver :" +"ref:`struct-alignment` para obtener más información." #: ../Doc/library/struct.rst:31 msgid "" @@ -59,20 +76,29 @@ msgid "" "implement the buffer protocol, so that they can be read/filled without " "additional copying from a :class:`bytes` object." msgstr "" +"Varias funciones :mod:`struct` (y métodos de :class:`Struct`) toman un " +"argumento *buffer*. Esto hace referencia a los objetos que implementan :ref:" +"`bufferobjects` y proporcionan un búfer de lectura o de lectura/escritura. " +"Los tipos más comunes utilizados para ese propósito son :class:`bytes` y :" +"class:`bytearray`, pero muchos otros tipos que se pueden ver como una lista " +"de bytes implementan el protocolo de búfer, para que se puedan leer/rellenar " +"sin necesidad de copiar a partir de un objeto :class:`bytes`." #: ../Doc/library/struct.rst:40 msgid "Functions and Exceptions" -msgstr "" +msgstr "Funciones y Excepciones" #: ../Doc/library/struct.rst:42 msgid "The module defines the following exception and functions:" -msgstr "" +msgstr "El módulo define la siguiente excepción y funciones:" #: ../Doc/library/struct.rst:47 msgid "" "Exception raised on various occasions; argument is a string describing what " "is wrong." msgstr "" +"Excepción lanzada en varias ocasiones; el argumento es una *string* que " +"describe lo que está mal." #: ../Doc/library/struct.rst:53 msgid "" @@ -80,6 +106,9 @@ msgid "" "to the format string *format*. The arguments must match the values required " "by the format exactly." msgstr "" +"Retorna un objeto bytes que contiene los valores *v1*, *v2*, ... empaquetado " +"de acuerdo con la cadena de formato *format*. Los argumentos deben " +"coincidir exactamente con los valores requeridos por el formato." #: ../Doc/library/struct.rst:60 msgid "" @@ -87,6 +116,10 @@ msgid "" "write the packed bytes into the writable buffer *buffer* starting at " "position *offset*. Note that *offset* is a required argument." msgstr "" +"Empaqueta los valores *v1*, *v2*, ... de acuerdo con la cadena de formato " +"*format* y escribe los bytes empaquetados en el búfer de escritura *buffer* " +"comenzando en la posición *offset*. Nota: *offset* es un argumento " +"obligatorio." #: ../Doc/library/struct.rst:67 msgid "" @@ -95,6 +128,11 @@ msgid "" "contains exactly one item. The buffer's size in bytes must match the size " "required by the format, as reflected by :func:`calcsize`." msgstr "" +"Desempaqueta del búfer *buffer* (normalmente empaquetado por " +"``pack(format, ...)``) según la cadena de formato *format*. El resultado es " +"una tupla incluso si contiene un solo elemento. El tamaño del búfer en " +"bytes debe coincidir con el tamaño requerido por el formato, como se refleja " +"en :func:`calcsize`." #: ../Doc/library/struct.rst:75 msgid "" @@ -103,6 +141,11 @@ msgid "" "item. The buffer's size in bytes, starting at position *offset*, must be at " "least the size required by the format, as reflected by :func:`calcsize`." msgstr "" +"Desempaqueta del *buffer* comenzando en la posición *offset*, según la " +"cadena de formato *format*. El resultado es una tupla incluso si contiene " +"un solo elemento. El tamaño del búfer en bytes, comenzando en la posición " +"*offset*, debe tener al menos el tamaño requerido por el formato, como se " +"refleja en :func:`calcsize`." #: ../Doc/library/struct.rst:83 msgid "" @@ -112,20 +155,30 @@ msgid "" "buffer's size in bytes must be a multiple of the size required by the " "format, as reflected by :func:`calcsize`." msgstr "" +"Desempaqueta de manera iterativa desde el búfer *buffer* según la cadena de " +"formato *format*. Esta función retorna un iterador que leerá fragmentos de " +"igual tamaño desde el búfer hasta que se haya consumido todo su contenido. " +"El tamaño del búfer en bytes debe ser un múltiplo del tamaño requerido por " +"el formato, como se refleja en :func:`calcsize`." #: ../Doc/library/struct.rst:89 msgid "Each iteration yields a tuple as specified by the format string." msgstr "" +"Cada iteración produce una tupla según lo especificado por la cadena de " +"formato." #: ../Doc/library/struct.rst:96 msgid "" "Return the size of the struct (and hence of the bytes object produced by " "``pack(format, ...)``) corresponding to the format string *format*." msgstr "" +"Retorna el tamaño de la estructura (y, por lo tanto, del objeto bytes " +"generado por ``pack(format, ...)``) correspondiente a la cadena de formato " +"*format*." #: ../Doc/library/struct.rst:103 msgid "Format Strings" -msgstr "" +msgstr "Cadenas de Formato" #: ../Doc/library/struct.rst:105 msgid "" @@ -135,10 +188,15 @@ msgid "" "addition, there are special characters for controlling the :ref:`struct-" "alignment`." msgstr "" +"Las cadenas de formato son el mecanismo utilizado para especificar el diseño " +"esperado al empaquetar y desempaquetar datos. Se crean a partir de :ref:" +"`format-characters`, que especifican el tipo de datos que se empaquetan/" +"desempaquetan. Además, hay caracteres especiales para controlar :ref:" +"`struct-alignment`." #: ../Doc/library/struct.rst:114 msgid "Byte Order, Size, and Alignment" -msgstr "" +msgstr "Orden de Bytes, Tamaño y Alineación" #: ../Doc/library/struct.rst:116 msgid "" @@ -146,6 +204,9 @@ msgid "" "order, and properly aligned by skipping pad bytes if necessary (according to " "the rules used by the C compiler)." msgstr "" +"Por defecto, los tipos C se representan en el formato nativo y el orden de " +"bytes de la máquina, y se alinean correctamente omitiendo bytes de relleno " +"si es necesario (según las reglas utilizadas por el compilador de C)." #: ../Doc/library/struct.rst:127 msgid "" @@ -153,72 +214,75 @@ msgid "" "indicate the byte order, size and alignment of the packed data, according to " "the following table:" msgstr "" +"Como alternativa, el primer carácter de la cadena de formato se puede " +"utilizar para indicar el orden de bytes, el tamaño y la alineación de los " +"datos empaquetados, según la tabla siguiente:" #: ../Doc/library/struct.rst:132 msgid "Character" -msgstr "" +msgstr "Caracter" #: ../Doc/library/struct.rst:132 msgid "Byte order" -msgstr "" +msgstr "Orden de Bytes" #: ../Doc/library/struct.rst:132 msgid "Size" -msgstr "" +msgstr "Tamaño" #: ../Doc/library/struct.rst:132 msgid "Alignment" -msgstr "" +msgstr "Alineamiento" #: ../Doc/library/struct.rst:134 msgid "``@``" -msgstr "" +msgstr "``@``" #: ../Doc/library/struct.rst:134 ../Doc/library/struct.rst:136 msgid "native" -msgstr "" +msgstr "nativo" #: ../Doc/library/struct.rst:136 msgid "``=``" -msgstr "" +msgstr "``=``" #: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 #: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 msgid "standard" -msgstr "" +msgstr "standard" #: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 #: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 msgid "none" -msgstr "" +msgstr "none" #: ../Doc/library/struct.rst:138 msgid "``<``" -msgstr "" +msgstr "``<``" #: ../Doc/library/struct.rst:138 msgid "little-endian" -msgstr "" +msgstr "little-endian" #: ../Doc/library/struct.rst:140 msgid "``>``" -msgstr "" +msgstr "``>``" #: ../Doc/library/struct.rst:140 msgid "big-endian" -msgstr "" +msgstr "big-endian" #: ../Doc/library/struct.rst:142 msgid "``!``" -msgstr "" +msgstr "``!``" #: ../Doc/library/struct.rst:142 msgid "network (= big-endian)" -msgstr "" +msgstr "red (= big-endian)" #: ../Doc/library/struct.rst:145 msgid "If the first character is not one of these, ``'@'`` is assumed." -msgstr "" +msgstr "Si el primer carácter no es uno de estos, se asume ``'@'``." #: ../Doc/library/struct.rst:147 msgid "" @@ -228,52 +292,74 @@ msgid "" "switchable endianness (bi-endian). Use ``sys.byteorder`` to check the " "endianness of your system." msgstr "" +"El orden de bytes nativo es big-endian o little-endian, dependiendo del " +"sistema host. Por ejemplo, Intel x86 y AMD64 (x86-64) son little-endian; " +"Motorola 68000 y PowerPC G5 son big-endian; ARM e Intel *Itanium* tienen la " +"propiedad de trabajar con ambos formatos (middle-endian). Utiliza ``sys." +"byteorder`` para comprobar la *endianness* (\"extremidad\") de su sistema." #: ../Doc/library/struct.rst:153 msgid "" "Native size and alignment are determined using the C compiler's ``sizeof`` " "expression. This is always combined with native byte order." msgstr "" +"El tamaño y la alineación nativos se determinan mediante la expresión " +"``sizeof`` del compilador de C. Esto siempre se combina con el orden de " +"bytes nativo." #: ../Doc/library/struct.rst:156 msgid "" "Standard size depends only on the format character; see the table in the :" "ref:`format-characters` section." msgstr "" +"El tamaño estándar depende únicamente del carácter de formato; ver la tabla " +"en la sección :ref:`format-characters`." #: ../Doc/library/struct.rst:159 msgid "" "Note the difference between ``'@'`` and ``'='``: both use native byte order, " "but the size and alignment of the latter is standardized." msgstr "" +"Nótese la diferencia entre ``'@'`` y ``'='`` : ambos utilizan el orden de " +"bytes nativo, pero el tamaño y la alineación de este último está " +"estandarizado." #: ../Doc/library/struct.rst:162 msgid "" "The form ``'!'`` is available for those poor souls who claim they can't " "remember whether network byte order is big-endian or little-endian." msgstr "" +"La forma ``'!'`` está disponible para aquellas pobres almas que afirman que " +"no pueden recordar si el orden de bytes de red es big-endian o little-endian." #: ../Doc/library/struct.rst:165 msgid "" "There is no way to indicate non-native byte order (force byte-swapping); use " "the appropriate choice of ``'<'`` or ``'>'``." msgstr "" +"No hay manera de indicar el orden de bytes no nativo (forzar el intercambio " +"de bytes); utiliza la elección adecuada de ``'<'`` o ``'>'``." #: ../Doc/library/struct.rst:168 ../Doc/library/struct.rst:247 msgid "Notes:" -msgstr "" +msgstr "Notas:" #: ../Doc/library/struct.rst:170 msgid "" "Padding is only automatically added between successive structure members. No " "padding is added at the beginning or the end of the encoded struct." msgstr "" +"El relleno solo se agrega automáticamente entre los miembros sucesivos de la " +"estructura. No se agrega ningún relleno al principio o al final de la " +"estructura codificada." #: ../Doc/library/struct.rst:173 msgid "" "No padding is added when using non-native size and alignment, e.g. with '<', " "'>', '=', and '!'." msgstr "" +"No se añade ningún relleno cuando se utiliza el tamaño y la alineación no " +"nativos, por ejemplo, con '<', '>', '=' y '!'." #: ../Doc/library/struct.rst:176 msgid "" @@ -281,10 +367,13 @@ msgid "" "type, end the format with the code for that type with a repeat count of " "zero. See :ref:`struct-examples`." msgstr "" +"Para alinear el final de una estructura con el requisito de alineación de un " +"tipo determinado, termina el formato con el código de ese tipo con un dos " +"ceros. Véase :ref:`struct-examples`." #: ../Doc/library/struct.rst:184 msgid "Format Characters" -msgstr "" +msgstr "Formato de caracteres" #: ../Doc/library/struct.rst:186 msgid "" @@ -295,63 +384,69 @@ msgid "" "``'!'`` or ``'='``. When using native size, the size of the packed value is " "platform-dependent." msgstr "" +"Los caracteres de formato tienen el siguiente significado; la conversión " +"entre los valores C y Python debe ser obvia dados sus tipos. La columna " +"'Tamaño estándar' hace referencia al tamaño del valor empaquetado en bytes " +"cuando se utiliza el tamaño estándar; es decir, cuando la cadena de formato " +"comienza con uno de ``'<'``, ``'>'``, ``'!'`` o ``'='``. Cuando se utiliza " +"el tamaño nativo, el tamaño del valor empaquetado depende de la plataforma." #: ../Doc/library/struct.rst:194 msgid "Format" -msgstr "" +msgstr "Formato" #: ../Doc/library/struct.rst:194 msgid "C Type" -msgstr "" +msgstr "Tipo C" #: ../Doc/library/struct.rst:194 msgid "Python type" -msgstr "" +msgstr "Tipo Python" #: ../Doc/library/struct.rst:194 msgid "Standard size" -msgstr "" +msgstr "Tamaño estándar" #: ../Doc/library/struct.rst:194 msgid "Notes" -msgstr "" +msgstr "Notas" #: ../Doc/library/struct.rst:196 msgid "``x``" -msgstr "" +msgstr "``x``" #: ../Doc/library/struct.rst:196 msgid "pad byte" -msgstr "" +msgstr "byte de relleno" #: ../Doc/library/struct.rst:196 msgid "no value" -msgstr "" +msgstr "sin valor" #: ../Doc/library/struct.rst:198 msgid "``c``" -msgstr "" +msgstr "``c``" #: ../Doc/library/struct.rst:198 msgid ":c:type:`char`" -msgstr "" +msgstr ":c:type:`char`" #: ../Doc/library/struct.rst:198 msgid "bytes of length 1" -msgstr "" +msgstr "bytes de longitud 1" #: ../Doc/library/struct.rst:198 ../Doc/library/struct.rst:200 #: ../Doc/library/struct.rst:202 ../Doc/library/struct.rst:204 msgid "1" -msgstr "" +msgstr "1" #: ../Doc/library/struct.rst:200 msgid "``b``" -msgstr "" +msgstr "``b``" #: ../Doc/library/struct.rst:200 msgid ":c:type:`signed char`" -msgstr "" +msgstr ":c:type:`signed char`" #: ../Doc/library/struct.rst:200 ../Doc/library/struct.rst:202 #: ../Doc/library/struct.rst:206 ../Doc/library/struct.rst:208 @@ -361,19 +456,19 @@ msgstr "" #: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 #: ../Doc/library/struct.rst:237 msgid "integer" -msgstr "" +msgstr "integer" #: ../Doc/library/struct.rst:200 msgid "\\(1), \\(2)" -msgstr "" +msgstr "\\(1), \\(2)" #: ../Doc/library/struct.rst:202 msgid "``B``" -msgstr "" +msgstr "``B``" #: ../Doc/library/struct.rst:202 msgid ":c:type:`unsigned char`" -msgstr "" +msgstr ":c:type:`unsigned char`" #: ../Doc/library/struct.rst:202 ../Doc/library/struct.rst:206 #: ../Doc/library/struct.rst:208 ../Doc/library/struct.rst:210 @@ -381,193 +476,193 @@ msgstr "" #: ../Doc/library/struct.rst:216 ../Doc/library/struct.rst:218 #: ../Doc/library/struct.rst:220 msgid "\\(2)" -msgstr "" +msgstr "\\(2)" #: ../Doc/library/struct.rst:204 msgid "``?``" -msgstr "" +msgstr "\\(2)" #: ../Doc/library/struct.rst:204 msgid ":c:type:`_Bool`" -msgstr "" +msgstr ":c:type:`_Bool`" #: ../Doc/library/struct.rst:204 msgid "bool" -msgstr "" +msgstr "bool" #: ../Doc/library/struct.rst:204 msgid "\\(1)" -msgstr "" +msgstr "\\(1)" #: ../Doc/library/struct.rst:206 msgid "``h``" -msgstr "" +msgstr "``h``" #: ../Doc/library/struct.rst:206 msgid ":c:type:`short`" -msgstr "" +msgstr ":c:type:`short`" #: ../Doc/library/struct.rst:206 ../Doc/library/struct.rst:208 #: ../Doc/library/struct.rst:227 msgid "2" -msgstr "" +msgstr "2" #: ../Doc/library/struct.rst:208 msgid "``H``" -msgstr "" +msgstr "``H``" #: ../Doc/library/struct.rst:208 msgid ":c:type:`unsigned short`" -msgstr "" +msgstr ":c:type:`unsigned short`" #: ../Doc/library/struct.rst:210 msgid "``i``" -msgstr "" +msgstr "``i``" #: ../Doc/library/struct.rst:210 msgid ":c:type:`int`" -msgstr "" +msgstr ":c:type:`int`" #: ../Doc/library/struct.rst:210 ../Doc/library/struct.rst:212 #: ../Doc/library/struct.rst:214 ../Doc/library/struct.rst:216 #: ../Doc/library/struct.rst:229 msgid "4" -msgstr "" +msgstr "4" #: ../Doc/library/struct.rst:212 msgid "``I``" -msgstr "" +msgstr "``I``" #: ../Doc/library/struct.rst:212 msgid ":c:type:`unsigned int`" -msgstr "" +msgstr ":c:type:`unsigned int`" #: ../Doc/library/struct.rst:214 msgid "``l``" -msgstr "" +msgstr "``l``" #: ../Doc/library/struct.rst:214 msgid ":c:type:`long`" -msgstr "" +msgstr ":c:type:`long`" #: ../Doc/library/struct.rst:216 msgid "``L``" -msgstr "" +msgstr "``L``" #: ../Doc/library/struct.rst:216 msgid ":c:type:`unsigned long`" -msgstr "" +msgstr ":c:type:`unsigned long`" #: ../Doc/library/struct.rst:218 msgid "``q``" -msgstr "" +msgstr "``q``" #: ../Doc/library/struct.rst:218 msgid ":c:type:`long long`" -msgstr "" +msgstr ":c:type:`long long`" #: ../Doc/library/struct.rst:218 ../Doc/library/struct.rst:220 #: ../Doc/library/struct.rst:231 msgid "8" -msgstr "" +msgstr "8" #: ../Doc/library/struct.rst:220 msgid "``Q``" -msgstr "" +msgstr "``Q``" #: ../Doc/library/struct.rst:220 msgid ":c:type:`unsigned long long`" -msgstr "" +msgstr ":c:type:`unsigned long long`" #: ../Doc/library/struct.rst:223 msgid "``n``" -msgstr "" +msgstr "``n``" #: ../Doc/library/struct.rst:223 msgid ":c:type:`ssize_t`" -msgstr "" +msgstr ":c:type:`ssize_t`" #: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 msgid "\\(3)" -msgstr "" +msgstr "\\(3)" #: ../Doc/library/struct.rst:225 msgid "``N``" -msgstr "" +msgstr "``N``" #: ../Doc/library/struct.rst:225 msgid ":c:type:`size_t`" -msgstr "" +msgstr ":c:type:`size_t`" #: ../Doc/library/struct.rst:227 msgid "``e``" -msgstr "" +msgstr "``e``" #: ../Doc/library/struct.rst:227 msgid "\\(6)" -msgstr "" +msgstr "\\(6)" #: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 #: ../Doc/library/struct.rst:231 msgid "float" -msgstr "" +msgstr "float" #: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 #: ../Doc/library/struct.rst:231 msgid "\\(4)" -msgstr "" +msgstr "\\(4)" #: ../Doc/library/struct.rst:229 msgid "``f``" -msgstr "" +msgstr "``f``" #: ../Doc/library/struct.rst:229 msgid ":c:type:`float`" -msgstr "" +msgstr ":c:type:`float`" #: ../Doc/library/struct.rst:231 msgid "``d``" -msgstr "" +msgstr "``d``" #: ../Doc/library/struct.rst:231 msgid ":c:type:`double`" -msgstr "" +msgstr ":c:type:`double`" #: ../Doc/library/struct.rst:233 msgid "``s``" -msgstr "" +msgstr "``s``" #: ../Doc/library/struct.rst:233 ../Doc/library/struct.rst:235 msgid ":c:type:`char[]`" -msgstr "" +msgstr ":c:type:`char[]`" #: ../Doc/library/struct.rst:233 ../Doc/library/struct.rst:235 msgid "bytes" -msgstr "" +msgstr "bytes" #: ../Doc/library/struct.rst:235 msgid "``p``" -msgstr "" +msgstr "``p``" #: ../Doc/library/struct.rst:237 msgid "``P``" -msgstr "" +msgstr "``P``" #: ../Doc/library/struct.rst:237 msgid ":c:type:`void \\*`" -msgstr "" +msgstr ":c:type:`void \\*`" #: ../Doc/library/struct.rst:237 msgid "\\(5)" -msgstr "" +msgstr "\\(5)" #: ../Doc/library/struct.rst:240 msgid "Added support for the ``'n'`` and ``'N'`` formats." -msgstr "" +msgstr "Soporte añadido para los formatos ``'n'`` y ``'N'``." #: ../Doc/library/struct.rst:243 msgid "Added support for the ``'e'`` format." -msgstr "" +msgstr "Soporte añadido para el formato ``'e'``." #: ../Doc/library/struct.rst:252 msgid "" @@ -575,6 +670,9 @@ msgid "" "by C99. If this type is not available, it is simulated using a :c:type:" "`char`. In standard mode, it is always represented by one byte." msgstr "" +"El código de conversión ``'?'`` corresponde al tipo :c:type:`_Bool` definido " +"por C99. Si este tipo no está disponible, se simula mediante un :c:type:" +"`char`. En el modo estándar, siempre se representa mediante un byte." #: ../Doc/library/struct.rst:257 msgid "" @@ -582,10 +680,15 @@ msgid "" "codes, if the non-integer has a :meth:`__index__` method then that method is " "called to convert the argument to an integer before packing." msgstr "" +"Al intentar empaquetar un no entero mediante cualquiera de los códigos de " +"conversión de enteros, si el no entero tiene un método :meth:`__index__`, se " +"llama a ese método para convertir el argumento en un entero antes de " +"empaquetar." #: ../Doc/library/struct.rst:261 msgid "Use of the :meth:`__index__` method for non-integers is new in 3.2." msgstr "" +"El uso del método :meth:`__index__` para los no enteros es nuevo en 3.2." #: ../Doc/library/struct.rst:265 msgid "" @@ -594,6 +697,10 @@ msgid "" "the standard size, you can use whichever of the other integer formats fits " "your application." msgstr "" +"Los códigos de conversión ``'n'`` y ``'N'`` solo están disponibles para el " +"tamaño nativo (seleccionado como predeterminado o con el carácter de orden " +"de bytes ``'@'``). Para el tamaño estándar, puedes usar cualquiera de los " +"otros formatos enteros que se ajusten a tu aplicación." #: ../Doc/library/struct.rst:271 msgid "" @@ -602,6 +709,10 @@ msgid "" "``'f'``, ``'d'`` or ``'e'`` respectively), regardless of the floating-point " "format used by the platform." msgstr "" +"Para los códigos de conversión ``'f'``, ``'d'`` y ``'e'``, la representación " +"empaquetada utiliza el formato IEEE 754 binary32, binary64 o binary16 (para " +"``'f'``, ``'d'`` o ``'e'`` respectivamente), independientemente del formato " +"de punto flotante utilizado por la plataforma." #: ../Doc/library/struct.rst:277 msgid "" @@ -611,6 +722,12 @@ msgid "" "on the host system. The struct module does not interpret this as native " "ordering, so the ``'P'`` format is not available." msgstr "" +"El carácter de formato ``'P'`` solo está disponible para el orden de bytes " +"nativo (seleccionado como predeterminado o con el carácter de orden de bytes " +"``'@'``). El carácter de orden de bytes ``'='`` elige utilizar el orden " +"little- o big-endian basado en el sistema host. El módulo *struct* no " +"interpreta esto como un orden nativo, por lo que el formato ``'P'`` no está " +"disponible." #: ../Doc/library/struct.rst:284 msgid "" @@ -623,18 +740,33 @@ msgid "" "operations. See the Wikipedia page on the `half-precision floating-point " "format `_ for more information." msgstr "" +"El tipo IEEE 754 binary16 \"half precision\" se introdujo en la revisión de " +"2008 del `IEEE 754 estándar `_. Tiene un bit de signo, " +"un exponente de 5 bits y una precisión de 11 bits (con 10 bits almacenados " +"explícitamente) y puede representar números entre aproximadamente " +"``6.1e-05`` y ``6.5e+04`` con total precisión. Este tipo no es ampliamente " +"compatible con los compiladores de C: en un equipo típico, un *unsigned* " +"short se puede usar para el almacenamiento, pero no para las operaciones " +"matemáticas. Consulte la página de Wikipedia en el `formato de punto " +"flotante de media precisión `_ para obtener más " +"información." #: ../Doc/library/struct.rst:294 msgid "" "A format character may be preceded by an integral repeat count. For " "example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." msgstr "" +"Un carácter de formato puede ir precedido de un número de recuento que " +"repite tantas veces el carácter. Por ejemplo, la cadena de formato ``'4h'`` " +"significa exactamente lo mismo que ``'hhhh'`` ." #: ../Doc/library/struct.rst:297 msgid "" "Whitespace characters between formats are ignored; a count and its format " "must not contain whitespace though." msgstr "" +"Se omiten los caracteres de espacio entre formatos; sin embargo, un recuento " +"y su formato no deben contener espacios en blanco." #: ../Doc/library/struct.rst:300 msgid "" @@ -647,6 +779,15 @@ msgid "" "number of bytes. As a special case, ``'0s'`` means a single, empty string " "(while ``'0c'`` means 0 characters)." msgstr "" +"Para el carácter de formato ``'s'``, el recuento se interpreta como la " +"longitud de los bytes, no un recuento de repetición como para los otros " +"caracteres de formato; por ejemplo, ``'10s'`` significa una sola cadena de " +"10 bytes, mientras que ``'10c'`` significa 10 caracteres. Si no se da un " +"recuento, el valor predeterminado es 1. Para el empaquetado, la cadena es " +"truncada o rellenada con bytes nulos según corresponda para que se ajuste. " +"Para desempaquetar, el objeto bytes resultante siempre tiene exactamente el " +"número especificado de bytes. Como caso especial, ``'0s'`` significa una " +"sola cadena vacía (mientras que ``'0c'`` significa 0 caracteres)." #: ../Doc/library/struct.rst:309 msgid "" @@ -655,12 +796,18 @@ msgid "" "``'Q'``), if ``x`` is outside the valid range for that format then :exc:" "`struct.error` is raised." msgstr "" +"Al empaquetar un valor ``x`` utilizando uno de los formatos enteros " +"(``'b'``, ``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, ``'L'``, " +"``'q'``, ``'Q'``), si ``x`` está fuera de un rango válido para ese formato, " +"entonces se lanza la excepción :exc:`struct.error`." #: ../Doc/library/struct.rst:314 msgid "" "In 3.0, some of the integer formats wrapped out-of-range values and raised :" "exc:`DeprecationWarning` instead of :exc:`struct.error`." msgstr "" +"En 3.0, algunos de los formatos enteros ajustaban los valores fuera de rango " +"y lanza :exc:`DeprecationWarning` en lugar de :exc:`struct.error`." #: ../Doc/library/struct.rst:318 msgid "" @@ -675,6 +822,17 @@ msgid "" "consumes ``count`` bytes, but that the string returned can never contain " "more than 255 bytes." msgstr "" +"El carácter de formato ``'p'`` codifica una \"cadena de Pascal\", lo que " +"significa una cadena de longitud variable corta almacenada en un número " +"*fijo de bytes*, dado por el recuento. El primer byte almacenado es el valor " +"mínimo entre la longitud de la cadena o 255. A continuación se encuentran " +"los bytes de la cadena. Si la cadena pasada a :func:`pack` es demasiado " +"larga (más larga que la cuenta menos 1), solo se almacenan los bytes " +"iniciales ``count-1`` de la cadena. Si la cadena es más corta que " +"``count-1``, se rellena con bytes nulos para que se utilicen exactamente los " +"bytes de recuento en total. Tenga en cuenta que para :func:`unpack`, el " +"carácter de formato ``'p'`` consume bytes ``count``, pero que la cadena " +"retornada nunca puede contener más de 255 bytes." #: ../Doc/library/struct.rst:331 msgid "" @@ -683,68 +841,83 @@ msgid "" "used. Either 0 or 1 in the native or standard bool representation will be " "packed, and any non-zero value will be ``True`` when unpacking." msgstr "" +"Para el carácter de formato ``'?'``, el valor retornado es :const:`True` o :" +"const:`False`. Al empaquetar, se utiliza el valor verdadero del objeto del " +"argumento. Se empaquetará 0 o 1 en la representación *bool* nativa o " +"estándar, y cualquier valor distinto de cero será ``True`` al desempaquetar." #: ../Doc/library/struct.rst:341 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/struct.rst:344 msgid "" "All examples assume a native byte order, size, and alignment with a big-" "endian machine." msgstr "" +"Todos los ejemplos asumen un orden de bytes tamaño y alineación nativos, con " +"una máquina big-endian." #: ../Doc/library/struct.rst:347 msgid "A basic example of packing/unpacking three integers::" -msgstr "" +msgstr "Un ejemplo básico de empaquetado/desempaquetado de tres enteros::" #: ../Doc/library/struct.rst:357 msgid "" "Unpacked fields can be named by assigning them to variables or by wrapping " "the result in a named tuple::" msgstr "" +"Los campos desempaquetados se pueden nombrar asignándolos a variables o " +"ajustando el resultado en una tupla con nombre::" #: ../Doc/library/struct.rst:368 msgid "" "The ordering of format characters may have an impact on size since the " "padding needed to satisfy alignment requirements is different::" msgstr "" +"El orden de los caracteres de formato puede tener un impacto en el tamaño ya " +"que el relleno necesario para satisfacer los requisitos de alineación es " +"diferente::" #: ../Doc/library/struct.rst:380 msgid "" "The following format ``'llh0l'`` specifies two pad bytes at the end, " "assuming longs are aligned on 4-byte boundaries::" msgstr "" +"El siguiente formato ``'llh0l'`` especifica dos bytes de relleno al final, " +"suponiendo que los tipos *longs* están alineados en los límites de 4 bytes::" #: ../Doc/library/struct.rst:386 msgid "" "This only works when native size and alignment are in effect; standard size " "and alignment does not enforce any alignment." msgstr "" +"Esto solo funciona cuando el tamaño y la alineación nativos tienen efecto; " +"el tamaño estándar y la alineación no imponen ninguna alineación." #: ../Doc/library/struct.rst:393 msgid "Module :mod:`array`" -msgstr "" +msgstr "Módulo :mod:`array`" #: ../Doc/library/struct.rst:393 msgid "Packed binary storage of homogeneous data." -msgstr "" +msgstr "Almacenamiento binario empaquetado de datos homogéneos." #: ../Doc/library/struct.rst:395 msgid "Module :mod:`xdrlib`" -msgstr "" +msgstr "Módulo :mod:`xdrlib`" #: ../Doc/library/struct.rst:396 msgid "Packing and unpacking of XDR data." -msgstr "" +msgstr "Empaquetar y desempaquetar datos XDR." #: ../Doc/library/struct.rst:402 msgid "Classes" -msgstr "" +msgstr "Clases" #: ../Doc/library/struct.rst:404 msgid "The :mod:`struct` module also defines the following type:" -msgstr "" +msgstr "El módulo :mod:`struct` también define el siguiente tipo:" #: ../Doc/library/struct.rst:409 msgid "" @@ -753,6 +926,10 @@ msgid "" "methods is more efficient than calling the :mod:`struct` functions with the " "same format since the format string only needs to be compiled once." msgstr "" +"Retorna un nuevo objeto Struct que escribe y lee datos binarios según la " +"cadena de formato *format*. Crear un objeto Struct una vez y llamar a sus " +"métodos es más eficaz que llamar a las funciones :mod:`struct` con el mismo " +"formato, ya que la cadena de formato solo se compila una vez en ese caso." #: ../Doc/library/struct.rst:416 msgid "" @@ -761,26 +938,36 @@ msgid "" "only a few format strings needn't worry about reusing a single :class:" "`Struct` instance." msgstr "" +"Las versiones compiladas de las cadenas de formato más recientes pasadas a :" +"class:`Struct` y las funciones de nivel de módulo se almacenan en caché, por " +"lo que los programas que utilizan solo unas pocas cadenas de formato no " +"necesitan preocuparse por volver a usar una sola instancia :class:`Struct`." #: ../Doc/library/struct.rst:421 msgid "Compiled Struct objects support the following methods and attributes:" msgstr "" +"Los objetos Struct compilados admiten los siguientes métodos y atributos:" #: ../Doc/library/struct.rst:425 msgid "" "Identical to the :func:`pack` function, using the compiled format. " "(``len(result)`` will equal :attr:`size`.)" msgstr "" +"Idéntico a la función :func:`pack`, utilizando el formato compilado. " +"(``len(result)`` será igual a :attr:`size`.)" #: ../Doc/library/struct.rst:431 msgid "Identical to the :func:`pack_into` function, using the compiled format." msgstr "" +"Idéntico a la función :func:`pack_into`, utilizando el formato compilado." #: ../Doc/library/struct.rst:436 msgid "" "Identical to the :func:`unpack` function, using the compiled format. The " "buffer's size in bytes must equal :attr:`size`." msgstr "" +"Idéntico a la función :func:`unpack`, utilizando el formato compilado. El " +"tamaño del búfer en bytes debe ser igual a :attr:`size`." #: ../Doc/library/struct.rst:442 msgid "" @@ -788,23 +975,32 @@ msgid "" "The buffer's size in bytes, starting at position *offset*, must be at least :" "attr:`size`." msgstr "" +"Idéntico a la función :func:`unpack_from`, utilizando el formato compilado. " +"El tamaño del búfer en bytes, comenzando en la posición *offset*, debe ser " +"al menos :attr:`size`." #: ../Doc/library/struct.rst:449 msgid "" "Identical to the :func:`iter_unpack` function, using the compiled format. " "The buffer's size in bytes must be a multiple of :attr:`size`." msgstr "" +"Idéntico a la función :func:`iter_unpack`, utilizando el formato compilado. " +"El tamaño del búfer en bytes debe ser un múltiplo de :attr:`size`." #: ../Doc/library/struct.rst:456 msgid "The format string used to construct this Struct object." -msgstr "" +msgstr "Cadena de formato utilizada para construir este objeto Struct." #: ../Doc/library/struct.rst:458 msgid "The format string type is now :class:`str` instead of :class:`bytes`." msgstr "" +"El tipo de cadena de formato es ahora :class:`str` en lugar de :class:" +"`bytes`." #: ../Doc/library/struct.rst:463 msgid "" "The calculated size of the struct (and hence of the bytes object produced by " "the :meth:`pack` method) corresponding to :attr:`format`." msgstr "" +"El tamaño calculado de la estructura (y, por lo tanto, del objeto bytes " +"generado por el método :meth:`pack`) correspondiente a :attr:`format`." diff --git a/library/superseded.po b/library/superseded.po index d7e71b3e61..9185de29f8 100644 --- a/library/superseded.po +++ b/library/superseded.po @@ -1,28 +1,33 @@ # 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: 2020-12-05 23:47-0600\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/superseded.rst:5 msgid "Superseded Modules" -msgstr "" +msgstr "Módulos Reemplazados" #: ../Doc/library/superseded.rst:7 msgid "" "The modules described in this chapter are deprecated and only kept for " "backwards compatibility. They have been superseded by other modules." msgstr "" +"Los módulos descritos en este capítulo se encuentran obsoletos, y sólo se " +"conservan por compatibilidad con versiones anteriores. Han sido reemplazados " +"por otros módulos." diff --git a/library/symbol.po b/library/symbol.po index 157dbc3876..da14a6f9f3 100644 --- a/library/symbol.po +++ b/library/symbol.po @@ -1,29 +1,30 @@ # 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: 2020-10-12 18:47-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" +"Last-Translator: \n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/symbol.rst:2 msgid ":mod:`symbol` --- Constants used with Python parse trees" msgstr "" +":mod:`symbol` --- Constantes utilizadas con árboles de análisis de Python" #: ../Doc/library/symbol.rst:9 msgid "**Source code:** :source:`Lib/symbol.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/symbol.py`" #: ../Doc/library/symbol.rst:13 msgid "" @@ -34,10 +35,17 @@ msgid "" "grammar. The specific numeric values which the names map to may change " "between Python versions." msgstr "" +"Este módulo proporciona constantes que representan los valores numéricos de " +"nodos internos del árbol de análisis. A diferencia de la mayoría de las " +"constantes de Python, estas utilizan nombres en minúsculas. Refiérase al " +"archivo :file:`Grammar/Grammar` en la distribución de Python para las " +"definiciones de los nombres en el contexto de la gramática del lenguaje. Los " +"valores numéricos específicos que corresponden a los nombres pueden variar " +"entre versiones de Python." #: ../Doc/library/symbol.rst:20 msgid "This module also provides one additional data object:" -msgstr "" +msgstr "Este módulo también proporciona un objecto de datos adicional:" #: ../Doc/library/symbol.rst:25 msgid "" @@ -45,3 +53,6 @@ msgid "" "module back to name strings, allowing more human-readable representation of " "parse trees to be generated." msgstr "" +"Diccionario que mapea los valores numéricos de las constantes definidas en " +"este módulo a cadenas de nombre, lo que permite generar una representación " +"más legible por humanos de árboles de análisis." diff --git a/library/sysconfig.po b/library/sysconfig.po index 92e004aa24..30ecbb817d 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -1,30 +1,33 @@ # 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: 2020-10-16 10:16-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" +"Last-Translator: Gustavo Huarcaya \n" +"Language: es\n" +"X-Generator: Poedit 1.8.12\n" #: ../Doc/library/sysconfig.rst:2 msgid "" ":mod:`sysconfig` --- Provide access to Python's configuration information" msgstr "" +":mod:`sysconfig` --- Proporciona acceso a la información de configuración de " +"Python" #: ../Doc/library/sysconfig.rst:12 msgid "**Source code:** :source:`Lib/sysconfig.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/sysconfig.py`" #: ../Doc/library/sysconfig.rst:19 msgid "" @@ -32,10 +35,13 @@ msgid "" "information like the list of installation paths and the configuration " "variables relevant for the current platform." msgstr "" +"El módulo :mod:`sysconfig` proporcionado acceso a la información de " +"configuración de Python, como la lista de rutas de instalación y las " +"variables de configuración relevantes para la plataforma actual." #: ../Doc/library/sysconfig.rst:24 msgid "Configuration variables" -msgstr "" +msgstr "Variables de configuración" #: ../Doc/library/sysconfig.rst:26 msgid "" @@ -43,50 +49,63 @@ msgid "" "header file that are necessary to build both the Python binary itself and " "third-party C extensions compiled using :mod:`distutils`." msgstr "" +"Una distribución de Python contiene un :file:`Makefile` y un archivo de " +"cabecera :file:`pyconfig.h` que son necesarios para construir tanto el " +"propio binario de Python como las extensiones C de terceros compiladas " +"usando :mod:`distutils`." #: ../Doc/library/sysconfig.rst:30 msgid "" ":mod:`sysconfig` puts all variables found in these files in a dictionary " "that can be accessed using :func:`get_config_vars` or :func:`get_config_var`." msgstr "" +":mod:`sysconfig` coloca todas las variables que se encuentran en estos " +"archivos un diccionario al que se puede acceder usando :func:" +"`get_config_vars` o :func:`get_config_var`." #: ../Doc/library/sysconfig.rst:33 msgid "Notice that on Windows, it's a much smaller set." -msgstr "" +msgstr "Tenga en cuenta que en Windows, es un conjunto mucho más pequeño." #: ../Doc/library/sysconfig.rst:37 msgid "" "With no arguments, return a dictionary of all configuration variables " "relevant for the current platform." msgstr "" +"Sin argumentos, retorna un diccionario de todas las variables de " +"configuración relevantes para la plataforma actual." #: ../Doc/library/sysconfig.rst:40 msgid "" "With arguments, return a list of values that result from looking up each " "argument in the configuration variable dictionary." msgstr "" +"Con argumentos, retorna un lista de valores que resultan de buscar cada " +"argumento en el diccionario de variables de configuración." #: ../Doc/library/sysconfig.rst:43 msgid "For each argument, if the value is not found, return ``None``." -msgstr "" +msgstr "Por cada argumento, si no se encuentra el valor, retorna ``None``." #: ../Doc/library/sysconfig.rst:48 msgid "" "Return the value of a single variable *name*. Equivalent to " "``get_config_vars().get(name)``." msgstr "" +"Retorna el valor de un solo nombre de variable (*name*). Equivalente a " +"``get_config_vars().get(name)``." #: ../Doc/library/sysconfig.rst:51 ../Doc/library/sysconfig.rst:141 msgid "If *name* is not found, return ``None``." -msgstr "" +msgstr "Si no se encuentra *name*, retorna ``None``." #: ../Doc/library/sysconfig.rst:53 msgid "Example of usage::" -msgstr "" +msgstr "Ejemplos de uso::" #: ../Doc/library/sysconfig.rst:65 msgid "Installation paths" -msgstr "" +msgstr "Rutas de instalación" #: ../Doc/library/sysconfig.rst:67 msgid "" @@ -95,6 +114,10 @@ msgid "" "`sysconfig` under unique identifiers based on the value returned by :const:" "`os.name`." msgstr "" +"Python usa un esquema de instalación que difiere según la plataforma y en " +"las opciones de instalación. Estos esquemas son almacenados en :mod:" +"`sysconfig` con identificadores únicos basados en el valor retornado por :" +"const:`os.name`." #: ../Doc/library/sysconfig.rst:71 msgid "" @@ -102,16 +125,22 @@ msgid "" "based system will follow the same scheme to copy its file in the right " "places." msgstr "" +"Cada nuevo componente que se instala usando :mod:`distutils` o un sistema " +"basado en *Distutils* seguirá el mismo esquema para copiar su archivo en los " +"lugares correctos." #: ../Doc/library/sysconfig.rst:75 msgid "Python currently supports seven schemes:" -msgstr "" +msgstr "Python actualmente admite siete esquemas:" #: ../Doc/library/sysconfig.rst:77 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." msgstr "" +"*posix_prefix*: esquema para plataformas POSIX como Linux o Mac OS X. Este " +"es el esquema predeterminado que se usa cuando se instala Python o un un " +"componente." #: ../Doc/library/sysconfig.rst:79 msgid "" @@ -119,6 +148,9 @@ msgid "" "upon installation. This scheme is used when a component is installed " "through Distutils with a specific home prefix." msgstr "" +"*posix_home*: esquema para plataformas POSIX usado cuando se usa una opción " +"*home* en la instalación. Este esquema se usa cuando se instala un " +"componente a través de *Disutils* con un prefijo de inicio específico." #: ../Doc/library/sysconfig.rst:82 msgid "" @@ -126,83 +158,109 @@ msgid "" "through Distutils and the *user* option is used. This scheme defines paths " "located under the user home directory." 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" #: ../Doc/library/sysconfig.rst:85 msgid "*nt*: scheme for NT platforms like Windows." -msgstr "" +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 "" +msgstr "*nt_user*: esquema para plataformas NT, cuando se usa la opción *user*" #: ../Doc/library/sysconfig.rst:88 msgid "" "Each scheme is itself composed of a series of paths and each path has a " "unique identifier. Python currently uses eight paths:" msgstr "" +"Cada esquema está compuesto por una serie de rutas y cada ruta tiene un " +"identificador único. Python actualmente usa ocho rutas:" #: ../Doc/library/sysconfig.rst:91 msgid "" "*stdlib*: directory containing the standard Python library files that are " "not platform-specific." msgstr "" +"*stdlib*: directorio que contiene los archivos de la biblioteca estándar de " +"Python que no son específicos de la plataforma." #: ../Doc/library/sysconfig.rst:93 msgid "" "*platstdlib*: directory containing the standard Python library files that " "are platform-specific." msgstr "" +"*platstdlib*: directorio que contiene los archivos de la biblioteca estándar " +"de Python que son específicos de la plataforma." #: ../Doc/library/sysconfig.rst:95 msgid "*platlib*: directory for site-specific, platform-specific files." msgstr "" +"*platlib*: directorio para archivos específicos del sitio, específicos de la " +"plataforma." #: ../Doc/library/sysconfig.rst:96 msgid "*purelib*: directory for site-specific, non-platform-specific files." msgstr "" +"*purelib*: directorio para archivos específicos del sitio, no específicos de " +"la plataforma." #: ../Doc/library/sysconfig.rst:97 msgid "*include*: directory for non-platform-specific header files." msgstr "" +"*include*: directorio para archivos de encabezado no específicos de " +"plataforma." #: ../Doc/library/sysconfig.rst:98 msgid "*platinclude*: directory for platform-specific header files." msgstr "" +"*platinclude*: directorio para archivos de encabezado específicos de la " +"plataforma." #: ../Doc/library/sysconfig.rst:99 msgid "*scripts*: directory for script files." -msgstr "" +msgstr "*scripts*: directorio para archivos de script." #: ../Doc/library/sysconfig.rst:100 msgid "*data*: directory for data files." -msgstr "" +msgstr "*data*: directorio para archivos de datos." #: ../Doc/library/sysconfig.rst:102 msgid ":mod:`sysconfig` provides some functions to determine these paths." msgstr "" +":mod:`sysconfig` proporciona algunas funciones para determinar estas rutas." #: ../Doc/library/sysconfig.rst:106 msgid "" "Return a tuple containing all schemes currently supported in :mod:" "`sysconfig`." msgstr "" +"Retorna una tupla que contiene todos los esquemas admitidos actualmente en :" +"mod:`sysconfig`." #: ../Doc/library/sysconfig.rst:112 msgid "" "Return a tuple containing all path names currently supported in :mod:" "`sysconfig`." msgstr "" +"Retorna una tupla que contiene todo los nombres de rutas admitidos " +"actualmente en :mod:`sysconfig`." #: ../Doc/library/sysconfig.rst:118 msgid "" "Return an installation path corresponding to the path *name*, from the " "install scheme named *scheme*." msgstr "" +"Retorna una ruta de instalación correspondiente a la ruta *name*, del " +"esquema de instalación denominado *scheme*." #: ../Doc/library/sysconfig.rst:121 msgid "" "*name* has to be a value from the list returned by :func:`get_path_names`." msgstr "" +"*name* tiene que ser un valor de la lista retornado por :func:" +"`get_path_names`." #: ../Doc/library/sysconfig.rst:123 msgid "" @@ -210,6 +268,9 @@ msgid "" "for each platform, with variables to be expanded. For instance the *stdlib* " "path for the *nt* scheme is: ``{base}/Lib``." msgstr "" +":mod:`sysconfig` almacena las rutas de instalación correspondientes a cada " +"nombre de ruta, para cada plataforma, con variables que se expandirán. Por " +"ejemplo, la ruta *stdlib* para el esquema *nt* es: ``{base}/Lib``." #: ../Doc/library/sysconfig.rst:127 msgid "" @@ -217,6 +278,10 @@ msgid "" "to expand the path. All variables have default values for each platform so " "one may call this function and get the default value." msgstr "" +":func:`get_path` utilizará las variables retornadas por :func:" +"`get_config_vars` para expandir la ruta. Todas las variables tienen valores " +"predeterminados para cada plataforma, por lo que se puede llamar a esta " +"función y obtener el valor predeterminado." #: ../Doc/library/sysconfig.rst:131 msgid "" @@ -224,60 +289,78 @@ msgid "" "`get_scheme_names`. Otherwise, the default scheme for the current platform " "is used." msgstr "" +"Si se proporciona el esquema (*scheme*), debe ser un valor de la lista " +"retornada por :func:`get_scheme_names`. De lo contrario, se utiliza el " +"esquema predeterminado para la plataforma actual." #: ../Doc/library/sysconfig.rst:135 msgid "" "If *vars* is provided, it must be a dictionary of variables that will update " "the dictionary return by :func:`get_config_vars`." msgstr "" +"Si se proporciona *vars*, debe ser un diccionario de variables que " +"actualizará el retorno del diccionario mediante :func:`get_config_vars`." #: ../Doc/library/sysconfig.rst:138 msgid "" "If *expand* is set to ``False``, the path will not be expanded using the " "variables." msgstr "" +"Si *expand* se establece en ``False``, la ruta no se expandirá usando las " +"variables." #: ../Doc/library/sysconfig.rst:146 msgid "" "Return a dictionary containing all installation paths corresponding to an " "installation scheme. See :func:`get_path` for more information." msgstr "" +"Retorna un diccionario de contiene todas las rutas de instalación " +"correspondientes a un esquema de instalación. Consulte :func:`get_path` para " +"obtener más información." #: ../Doc/library/sysconfig.rst:149 msgid "" "If *scheme* is not provided, will use the default scheme for the current " "platform." msgstr "" +"Si no se proporciona el esquema (*scheme*), utilizará el esquema " +"predeterminado para la plataforma actual." #: ../Doc/library/sysconfig.rst:152 msgid "" "If *vars* is provided, it must be a dictionary of variables that will update " "the dictionary used to expand the paths." msgstr "" +"Si se proporciona *vars*, debe ser un diccionario de variables que " +"actualizará el diccionario utilizado para expandir las rutas." #: ../Doc/library/sysconfig.rst:155 msgid "If *expand* is set to false, the paths will not be expanded." -msgstr "" +msgstr "Si *expand* se establece en falso, las rutas no se expandirán." #: ../Doc/library/sysconfig.rst:157 msgid "" "If *scheme* is not an existing scheme, :func:`get_paths` will raise a :exc:" "`KeyError`." msgstr "" +"Si *scheme* no es un esquema existente, :func:`get_paths` lanzará un :exc:" +"`KeyError`." #: ../Doc/library/sysconfig.rst:162 msgid "Other functions" -msgstr "" +msgstr "Otras funciones" #: ../Doc/library/sysconfig.rst:166 msgid "" "Return the ``MAJOR.MINOR`` Python version number as a string. Similar to " "``'%d.%d' % sys.version_info[:2]``." msgstr "" +"Retorna el número de versión versión ``MAJOR.MINOR`` de Python como una " +"cadena. Similar a ``'%d.%d' % sys.version_info[:2]``." #: ../Doc/library/sysconfig.rst:172 msgid "Return a string that identifies the current platform." -msgstr "" +msgstr "Retorna una cadena que identifica la plataforma actual." #: ../Doc/library/sysconfig.rst:174 msgid "" @@ -287,59 +370,69 @@ msgid "" "exact information included depends on the OS; e.g., on Linux, the kernel " "version isn't particularly important." msgstr "" +"Se utiliza principalmente para distinguir los directorios de compilación " +"específicos de la plataforma y las distribuciones compiladas específicas de " +"la plataforma. Por lo general se incluye el nombre y la versión del sistema " +"operativo y la arquitectura (como lo proporciona 'os.uname()'), aunque la " +"información exacta incluida depende del sistema operativo: por ejemplo, en " +"Linux, la versión del kernel no es particularmente importante." #: ../Doc/library/sysconfig.rst:180 msgid "Examples of returned values:" -msgstr "" +msgstr "Ejemplo de valores retornados:" #: ../Doc/library/sysconfig.rst:182 msgid "linux-i586" -msgstr "" +msgstr "linux-i586" #: ../Doc/library/sysconfig.rst:183 msgid "linux-alpha (?)" -msgstr "" +msgstr "linux-alpha (?)" #: ../Doc/library/sysconfig.rst:184 msgid "solaris-2.6-sun4u" -msgstr "" +msgstr "solaris-2.6-sun4u" #: ../Doc/library/sysconfig.rst:186 msgid "Windows will return one of:" -msgstr "" +msgstr "Windows retornará uno de:" #: ../Doc/library/sysconfig.rst:188 msgid "win-amd64 (64bit Windows on AMD64, aka x86_64, Intel64, and EM64T)" msgstr "" +"win-amd64 (Windows de 64 bits en AMD64, también conocido como x86_64, " +"Intel64 y EM64T)" #: ../Doc/library/sysconfig.rst:189 msgid "win32 (all others - specifically, sys.platform is returned)" -msgstr "" +msgstr "win32 (todos los demás - específicamente se retorna sys.plataform)" #: ../Doc/library/sysconfig.rst:191 msgid "Mac OS X can return:" -msgstr "" +msgstr "Mac OS X puede retornar:" #: ../Doc/library/sysconfig.rst:193 msgid "macosx-10.6-ppc" -msgstr "" +msgstr "macosx-10.6-ppc" #: ../Doc/library/sysconfig.rst:194 msgid "macosx-10.4-ppc64" -msgstr "" +msgstr "macosx-10.4-ppc64" #: ../Doc/library/sysconfig.rst:195 msgid "macosx-10.3-i386" -msgstr "" +msgstr "macosx-10.3-i386" #: ../Doc/library/sysconfig.rst:196 msgid "macosx-10.4-fat" -msgstr "" +msgstr "macosx-10.4-fat" #: ../Doc/library/sysconfig.rst:198 msgid "" "For other non-POSIX platforms, currently just returns :data:`sys.platform`." msgstr "" +"Para otras plataformas que no son POSIX, actualmente solo retorna :data:`sys." +"platform`." #: ../Doc/library/sysconfig.rst:203 msgid "" @@ -347,15 +440,21 @@ msgid "" "is being run from its built location, and not from a location resulting from " "e.g. running ``make install`` or installing via a binary installer." msgstr "" +"Retorna ``True`` si el intérprete de Python en ejecución se compiló a partir " +"de la fuente y se está ejecutando desde su ubicación compilada, y no desde " +"una ubicación resultante de por ejemplo ejecutando ``make install`` o " +"instalando a través de un instalador binario." #: ../Doc/library/sysconfig.rst:210 msgid "Parse a :file:`config.h`\\-style file." -msgstr "" +msgstr "Analiza un archivo de estilo :file:`config.h`." #: ../Doc/library/sysconfig.rst:212 msgid "" "*fp* is a file-like object pointing to the :file:`config.h`\\-like file." msgstr "" +"*fp* es un objeto similar a un archivo que apunta al archivo similar a :file:" +"`config.h`." #: ../Doc/library/sysconfig.rst:214 msgid "" @@ -363,22 +462,26 @@ msgid "" "dictionary is passed in as the second argument, it is used instead of a new " "dictionary, and updated with the values read in the file." msgstr "" +"Se retorna un diccionario que contiene pares de nombre/valor. Si se pasa un " +"diccionario opcional como un segundo argumento, se utiliza en lugar de un " +"nuevo diccionario y se actualiza con los valores leídos en el archivo." #: ../Doc/library/sysconfig.rst:221 msgid "Return the path of :file:`pyconfig.h`." -msgstr "" +msgstr "Retorna la ruta de :file:`pyconfig.h`." #: ../Doc/library/sysconfig.rst:225 msgid "Return the path of :file:`Makefile`." -msgstr "" +msgstr "Retorna la ruta de :file:`Makefile`." #: ../Doc/library/sysconfig.rst:228 msgid "Using :mod:`sysconfig` as a script" -msgstr "" +msgstr "Usando :mod:`sysconfig` como un script" #: ../Doc/library/sysconfig.rst:230 msgid "You can use :mod:`sysconfig` as a script with Python's *-m* option:" msgstr "" +"Puedes usar :mod:`sysconfig` como un script con la opción *-m* de Python:" #: ../Doc/library/sysconfig.rst:256 msgid "" @@ -386,3 +489,6 @@ msgid "" "func:`get_platform`, :func:`get_python_version`, :func:`get_path` and :func:" "`get_config_vars`." msgstr "" +"Esta llamada imprimirá en la salida estándar la información retornada por :" +"func:`get_platform`, :func:`get_python_version`, :func:`get_path` y :func:" +"`get_config_vars`." diff --git a/library/tabnanny.po b/library/tabnanny.po index 523fcaa464..6407962f71 100644 --- a/library/tabnanny.po +++ b/library/tabnanny.po @@ -1,29 +1,31 @@ # 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: 2020-10-15 16: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" +"Language: es_AR\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/tabnanny.rst:2 msgid ":mod:`tabnanny` --- Detection of ambiguous indentation" -msgstr "" +msgstr ":mod:`tabnanny` --- Detección de indentación ambigua" #: ../Doc/library/tabnanny.rst:13 msgid "**Source code:** :source:`Lib/tabnanny.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tabnanny.py`" #: ../Doc/library/tabnanny.rst:17 msgid "" @@ -31,12 +33,17 @@ msgid "" "it is possible to import it into an IDE and use the function :func:`check` " "described below." msgstr "" +"Por el momento, este módulo está pensado para ser llamado como un script. " +"Sin embargo, es posible importarlo en un IDE y usar la función :func:`check` " +"que se describe a continuación." #: ../Doc/library/tabnanny.rst:23 msgid "" "The API provided by this module is likely to change in future releases; such " "changes may not be backward compatible." msgstr "" +"Es probable que la API proporcionada por este módulo cambie en versiones " +"futuras; dichos cambios pueden no ser compatibles con versiones anteriores." #: ../Doc/library/tabnanny.rst:29 msgid "" @@ -46,12 +53,20 @@ msgid "" "is checked for whitespace related problems. The diagnostic messages are " "written to standard output using the :func:`print` function." msgstr "" +"Si *file_or_dir* es un directorio y no un enlace simbólico, desciende " +"recursivamente en el árbol de directorios nombrado por *file_or_dir*, " +"verificando todos los archivos :file:`.py` al mismo tiempo. Si *file_or_dir* " +"es un archivo fuente normal de Python, se comprueba si hay problemas " +"relacionados con los espacios en blanco. Los mensajes de diagnóstico se " +"escriben en la salida estándar mediante la función :func:`print`." #: ../Doc/library/tabnanny.rst:38 msgid "" "Flag indicating whether to print verbose messages. This is incremented by " "the ``-v`` option if called as a script." msgstr "" +"Marcador que indica si se deben imprimir mensajes detallados. Esto se " +"incrementa con la opción ``-v`` si se llama como un script. " #: ../Doc/library/tabnanny.rst:44 msgid "" @@ -59,23 +74,31 @@ msgid "" "whitespace related problems. This is set to true by the ``-q`` option if " "called as a script." msgstr "" +"Marcador que indica si se deben imprimir solo los nombres de archivo de los " +"archivos que contienen problemas relacionados con los espacios en blanco. " +"Esto se establece como verdadero con la opción ``-q`` si se llama como un " +"script." #: ../Doc/library/tabnanny.rst:51 msgid "" "Raised by :func:`process_tokens` if detecting an ambiguous indent. Captured " "and handled in :func:`check`." msgstr "" +"Invocada por :func:`process_tokens` sí detecta una indentación ambigua. " +"Capturada y gestionada en :func:`check`." #: ../Doc/library/tabnanny.rst:57 msgid "" "This function is used by :func:`check` to process tokens generated by the :" "mod:`tokenize` module." msgstr "" +"Esta función es utilizada por :func:`check` para procesar los tokens " +"generados por el módulo :mod:`tokenize`." #: ../Doc/library/tabnanny.rst:66 msgid "Module :mod:`tokenize`" -msgstr "" +msgstr "Módulo :mod:`tokenize`" #: ../Doc/library/tabnanny.rst:67 msgid "Lexical scanner for Python source code." -msgstr "" +msgstr "Escáner léxico para código fuente Python." diff --git a/library/termios.po b/library/termios.po index 0978ac791f..26f31d0711 100644 --- a/library/termios.po +++ b/library/termios.po @@ -1,25 +1,27 @@ # 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: 2020-10-27 19:25-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_CO\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/termios.rst:2 msgid ":mod:`termios` --- POSIX style tty control" -msgstr "" +msgstr ":mod:`termios` ---Control tty estilo POSIX" #: ../Doc/library/termios.rst:14 msgid "" @@ -28,6 +30,11 @@ msgid "" "manual page. It is only available for those Unix versions that support " "POSIX *termios* style tty I/O control configured during installation." msgstr "" +"Este módulo proporciona una interfaz para las llamadas POSIX para el control " +"de E/S (entrada/salida) tty. Para obtener una descripción completa de estas " +"llamadas, consulte :manpage:`termios (3)` Página de manual de Unix. Solo " +"está disponible para aquellas versiones de Unix que admitan el control de E/" +"S tty estilo POSIX *termios* configurado durante la instalación." #: ../Doc/library/termios.rst:19 msgid "" @@ -35,6 +42,10 @@ msgid "" "argument. This can be an integer file descriptor, such as returned by ``sys." "stdin.fileno()``, or a :term:`file object`, such as ``sys.stdin`` itself." msgstr "" +"Todas las funciones de este módulo toman un descriptor de archivo *fd* como " +"primer argumento. Puede ser un descriptor de archivo entero, como el que " +"retorna ``sys.stdin.fileno()``, o un :term:`file object`, como el propio " +"`sys.stdin``." #: ../Doc/library/termios.rst:23 msgid "" @@ -43,10 +54,14 @@ msgid "" "refer to your system documentation for more information on using these " "terminal control interfaces." msgstr "" +"Este módulo también define todas las constantes necesarias para trabajar con " +"las funciones proporcionadas aquí; tienen el mismo nombre que sus " +"contrapartes en C. Consulte la documentación de su sistema para obtener más " +"información sobre el uso de estas interfaces de control de terminal." #: ../Doc/library/termios.rst:28 msgid "The module defines the following functions:" -msgstr "" +msgstr "El módulo define las siguientes funciones:" #: ../Doc/library/termios.rst:33 msgid "" @@ -58,6 +73,14 @@ msgid "" "as well as the indexing in the *cc* array must be done using the symbolic " "constants defined in the :mod:`termios` module." msgstr "" +"Retorna una lista que contiene los atributos tty para el descriptor de " +"archivo *fd*, como se muestra a continuación: ``[iflag, oflag, cflag, lflag, " +"ispeed, ospeed, cc]`` donde *cc* es una lista de los caracteres especiales " +"tty (cada una es una cadena de longitud 1, excepto los elementos con " +"índices :const:`VMIN` and :const:`VTIME`, que son números enteros cuando se " +"definen estos campos). La interpretación de las banderas y las velocidades, " +"así como la indexación en el arreglo *cc*, debe realizarse utilizando las " +"constantes simbólicas definidas en el módulo :mod:`termios` ." #: ../Doc/library/termios.rst:44 msgid "" @@ -68,17 +91,28 @@ msgid "" "output, or :const:`TCSAFLUSH` to change after transmitting all queued output " "and discarding all queued input." msgstr "" +"Establezca los atributos tty para el descriptor de archivo *fd* de los " +"*atributos*, que es una lista como la retornada por :func:`tcgetattr`. El " +"argumento *when* determina cuándo se cambian los atributos: :const:`TCSANOW` " +"para cambiar inmediatamente, :const:`TCSADRAIN` para cambiar después de " +"transmitir toda la salida en cola, o :const:`TCSAFLUSH` para cambiar después " +"de transmitir toda la salida en cola y descartar toda la entrada en cola." #: ../Doc/library/termios.rst:54 msgid "" "Send a break on file descriptor *fd*. A zero *duration* sends a break for " "0.25--0.5 seconds; a nonzero *duration* has a system dependent meaning." msgstr "" +"Envíe una pausa en el descriptor de archivo *fd*. Una *duración* cero envía " +"una pausa de 0.25 a 0.5 segundos; una *duración* distinta de cero tiene un " +"significado dependiente del sistema." #: ../Doc/library/termios.rst:60 msgid "" "Wait until all output written to file descriptor *fd* has been transmitted." msgstr "" +"Espere hasta que se haya transmitido toda la salida escrita en el descriptor " +"de archivo *fd*." #: ../Doc/library/termios.rst:65 msgid "" @@ -86,6 +120,10 @@ msgid "" "which queue: :const:`TCIFLUSH` for the input queue, :const:`TCOFLUSH` for " "the output queue, or :const:`TCIOFLUSH` for both queues." msgstr "" +"Descartar datos en cola en el descriptor de archivo *fd*. El selector " +"*queue* especifica qué cola: :const:`TCIFLUSH` para la cola de entrada, :" +"const:`TCOFLUSH` para la cola de salida, o :const:`TCIOFLUSH` para ambas " +"colas." #: ../Doc/library/termios.rst:72 msgid "" @@ -93,18 +131,23 @@ msgid "" "argument can be :const:`TCOOFF` to suspend output, :const:`TCOON` to restart " "output, :const:`TCIOFF` to suspend input, or :const:`TCION` to restart input." msgstr "" +"Suspender o reanudar la entrada o salida en el descriptor de archivo *fd*. " +"El argumento *action* puede ser :const:`TCOOFF` para suspender la salida, :" +"const:`TCOON` para reiniciar la salida, :const:`TCIOFF` para suspender la " +"entrada, o :const:`TCION` para reiniciar la entrada." #: ../Doc/library/termios.rst:79 msgid "Module :mod:`tty`" -msgstr "" +msgstr "Módulo :mod:`tty`" #: ../Doc/library/termios.rst:80 msgid "Convenience functions for common terminal control operations." msgstr "" +"Funciones de conveniencia para operaciones comunes de control de terminal." #: ../Doc/library/termios.rst:86 msgid "Example" -msgstr "" +msgstr "Ejemplo" #: ../Doc/library/termios.rst:88 msgid "" @@ -113,3 +156,8 @@ msgid "" "`try` ... :keyword:`finally` statement to ensure that the old tty attributes " "are restored exactly no matter what happens::" msgstr "" +"Aquí hay una función que solicita una contraseña con el eco desactivado. " +"Tenga en cuenta la técnica utilizando una llamada separada :func:" +"`tcgetattr` y una sentencia :keyword:`try` ... :keyword:`finally` para " +"asegurarse de que los antiguos atributos tty se restauran exactamente sin " +"importar lo que suceda::" diff --git a/library/threading.po b/library/threading.po index 947deabbd3..47c6d90947 100644 --- a/library/threading.po +++ b/library/threading.po @@ -771,8 +771,8 @@ msgid "" "synchronization primitive available, implemented directly by the :mod:" "`_thread` extension module." msgstr "" -"Un *lock* primitivo es un primitivo de sincronización que no pertenece a " -"ningún hilo en particular cuando está cerrado. En Python, es el primitivo de " +"Una primitiva *lock*, es una primitiva de sincronización que no pertenece a " +"ningún hilo en particular cuando está cerrado. En Python, es la primitiva de " "sincronización de más bajo nivel actualmente disponible, implementado " "directamente por el módulo de extensión :mod:`_thread`." @@ -789,7 +789,7 @@ msgid "" "state to unlocked and returns immediately. If an attempt is made to release " "an unlocked lock, a :exc:`RuntimeError` will be raised." msgstr "" -"Un *lock* primitivo está en uno de dos estados, \"cerrado\" o \"abierto" +"Una primitiva *lock* está en uno de dos estados, \"cerrado\" o \"abierto" "\" (*locked*/*unlocked*). Se crea en estado abierto. Tiene dos métodos " "básicos, :meth:`~Lock.acquire` (adquirir) y :meth:`~Lock.release` (liberar). " "Cuando el estado es *abierto*, :meth:`~Lock.acquire` cambia el estado a " @@ -829,9 +829,9 @@ msgid "" "lock, subsequent attempts to acquire it block, until it is released; any " "thread may release it." msgstr "" -"La clase que implemente los objetos *lock* primitivos. Una vez que un hilo " -"ha adquirido un *lock*, intentos subsecuentes por adquirirlo bloquearán, " -"hasta que sea liberado; cualquier hilo puede liberarlo." +"La clase que implemente los objetos de la primitiva *lock*. Una vez que un " +"hilo ha adquirido un *lock*, intentos subsecuentes por adquirirlo " +"bloquearán, hasta que sea liberado; cualquier hilo puede liberarlo." #: ../Doc/library/threading.rst:445 msgid "" @@ -944,10 +944,10 @@ msgid "" "state used by primitive locks. In the locked state, some thread owns the " "lock; in the unlocked state, no thread owns it." msgstr "" -"Un *lock* reentrante es un primitivo de sincronización que puede ser " +"Un *lock* reentrante es una primitiva de sincronización que puede ser " "adquirido múltiples veces por el mismo hilo. Internamente, utiliza el " "concepto de \"hilo dueño\" y \"nivel de recursividad\" además del estado " -"abierto/cerrado utilizado por los *locks* primitivos. Si está en estado " +"abierto/cerrado utilizado por las primitivas *locks*. Si está en estado " "cerrado, algún hilo es dueño del *lock*; si está en estado abierto, ningún " "hilo es dueño." @@ -1402,7 +1402,7 @@ msgid "" "Dijkstra (he used the names ``P()`` and ``V()`` instead of :meth:`~Semaphore." "acquire` and :meth:`~Semaphore.release`)." msgstr "" -"Éste es uno de los primitivos de sincronización más antiguos en la historia " +"Éste es uno de las primitivas de sincronización más antiguos en la historia " "de las ciencias de la computación, inventado por el pionero en ciencias de " "la computación holandés Edsger W. Dijkstra (él utilizó los nombres ``P()`` y " "``V()`` en lugar de :meth:`~Semaphore.acquire` y :meth:`~Semaphore.release`)" @@ -1723,7 +1723,7 @@ msgid "" "will block until all of the threads have made their :meth:`~Barrier.wait` " "calls. At this point, the threads are released simultaneously." msgstr "" -"Esta clase provee un primitivo de sincronización simple para ser usado por " +"Esta clase provee una primitiva de sincronización simple para ser usado por " "un número fijo de hilos que necesitan esperarse entre ellos. Cada uno de los " "hilos intenta pasar la barrera llamando al método :meth:`~Barrier.wait` y " "bloqueará hasta que todos los hilos hayan hecho sus respectivas llamadas a :" diff --git a/library/time.po b/library/time.po index e541a8b197..253d9f5448 100644 --- a/library/time.po +++ b/library/time.po @@ -11,15 +11,15 @@ 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-06-22 21:24-0600\n" +"PO-Revision-Date: 2020-10-09 20:15+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" -"Last-Translator: \n" +"Last-Translator: Álvaro Mondéjar \n" "Language: es\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/time.rst:2 msgid ":mod:`time` --- Time access and conversions" @@ -547,6 +547,13 @@ msgid "" "requested by an arbitrary amount because of the scheduling of other activity " "in the system." msgstr "" +"Suspende la ejecución del hilo que lo invoca por el número de segundos dado. " +"El argumento puede ser un número de punto flotante para indicar un tiempo de " +"suspensión más preciso. El tiempo de suspensión real puede ser menor que el " +"solicitado porque cualquier señal detectada terminará la función :func:" +"`sleep` siguiendo la rutina de captura de la señal. El tiempo de suspensión " +"también puede ser más largo que el solicitado por una cantidad arbitraria " +"debido a la programación de otra actividad en el sistema." #: ../Doc/library/time.rst:338 msgid "" @@ -992,7 +999,7 @@ msgstr ":attr:`tm_mon`" #: ../Doc/library/time.rst:526 msgid "range [1, 12]" -msgstr "range [1, 12]" +msgstr "rango [1, 12]" #: ../Doc/library/time.rst:528 msgid "2" @@ -1004,7 +1011,7 @@ msgstr ":attr:`tm_mday`" #: ../Doc/library/time.rst:528 msgid "range [1, 31]" -msgstr "range [1, 31]" +msgstr "rango [1, 31]" #: ../Doc/library/time.rst:530 msgid "3" @@ -1016,75 +1023,75 @@ msgstr ":attr:`tm_hour`" #: ../Doc/library/time.rst:530 msgid "range [0, 23]" -msgstr "" +msgstr "rango [0, 23]" #: ../Doc/library/time.rst:532 msgid "4" -msgstr "" +msgstr "4" #: ../Doc/library/time.rst:532 msgid ":attr:`tm_min`" -msgstr "" +msgstr ":attr:`tm_min`" #: ../Doc/library/time.rst:532 msgid "range [0, 59]" -msgstr "" +msgstr "rango [0, 59]" #: ../Doc/library/time.rst:534 msgid "5" -msgstr "" +msgstr "5" #: ../Doc/library/time.rst:534 msgid ":attr:`tm_sec`" -msgstr "" +msgstr ":attr:`tm_sec`" #: ../Doc/library/time.rst:534 msgid "range [0, 61]; see **(2)** in :func:`strftime` description" -msgstr "range [0, 61]; ver **(2)** in :func:`strftime` descripción" +msgstr "rango [0, 61]; ver **(2)** in :func:`strftime` descripción" #: ../Doc/library/time.rst:537 msgid "6" -msgstr "" +msgstr "6" #: ../Doc/library/time.rst:537 msgid ":attr:`tm_wday`" -msgstr "" +msgstr ":attr:`tm_wday`" #: ../Doc/library/time.rst:537 msgid "range [0, 6], Monday is 0" -msgstr "range [0, 6], Lunes es 0" +msgstr "rango [0, 6], Lunes es 0" #: ../Doc/library/time.rst:539 msgid "7" -msgstr "" +msgstr "7" #: ../Doc/library/time.rst:539 msgid ":attr:`tm_yday`" -msgstr "" +msgstr ":attr:`tm_yday`" #: ../Doc/library/time.rst:539 msgid "range [1, 366]" -msgstr "" +msgstr "rango [1, 366]" #: ../Doc/library/time.rst:541 msgid "8" -msgstr "" +msgstr "8" #: ../Doc/library/time.rst:541 msgid ":attr:`tm_isdst`" -msgstr "" +msgstr ":attr:`tm_isdst`" #: ../Doc/library/time.rst:541 msgid "0, 1 or -1; see below" -msgstr "" +msgstr "0, 1 ó -1; ver abajo" #: ../Doc/library/time.rst:543 ../Doc/library/time.rst:545 msgid "N/A" -msgstr "" +msgstr "N/A" #: ../Doc/library/time.rst:543 msgid ":attr:`tm_zone`" -msgstr "" +msgstr ":attr:`tm_zone`" #: ../Doc/library/time.rst:543 msgid "abbreviation of timezone name" @@ -1092,11 +1099,11 @@ msgstr "abreviatura del nombre de la zona horaria" #: ../Doc/library/time.rst:545 msgid ":attr:`tm_gmtoff`" -msgstr "" +msgstr ":attr:`tm_gmtoff`" #: ../Doc/library/time.rst:545 msgid "offset east of UTC in seconds" -msgstr "" +msgstr "desplazamiento al este de UTC en segundos" #: ../Doc/library/time.rst:548 msgid "" @@ -1299,7 +1306,7 @@ msgstr "" #: ../Doc/library/time.rst:661 msgid ":samp:`J{n}`" -msgstr "" +msgstr ":samp:`J{n}`" #: ../Doc/library/time.rst:660 msgid "" @@ -1312,7 +1319,7 @@ msgstr "" #: ../Doc/library/time.rst:665 msgid ":samp:`{n}`" -msgstr "" +msgstr ":samp:`{n}`" #: ../Doc/library/time.rst:664 msgid "" @@ -1324,7 +1331,7 @@ msgstr "" #: ../Doc/library/time.rst:672 msgid ":samp:`M{m}.{n}.{d}`" -msgstr "" +msgstr ":samp:`M{m}.{n}.{d}`" #: ../Doc/library/time.rst:668 msgid "" diff --git a/library/tkinter.scrolledtext.po b/library/tkinter.scrolledtext.po index b310760ad9..2a294eff82 100644 --- a/library/tkinter.scrolledtext.po +++ b/library/tkinter.scrolledtext.po @@ -1,29 +1,31 @@ # 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: 2020-10-26 10:44-0600\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/tkinter.scrolledtext.rst:2 msgid ":mod:`tkinter.scrolledtext` --- Scrolled Text Widget" -msgstr "" +msgstr ":mod:`tkinter.scrolledtext` --- Widget de texto desplazado" #: ../Doc/library/tkinter.scrolledtext.rst:10 msgid "**Source code:** :source:`Lib/tkinter/scrolledtext.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/scrolledtext.py`" #: ../Doc/library/tkinter.scrolledtext.rst:14 msgid "" @@ -33,6 +35,12 @@ msgid "" "is a lot easier than setting up a text widget and scroll bar directly. The " "constructor is the same as that of the :class:`tkinter.Text` class." 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`." #: ../Doc/library/tkinter.scrolledtext.rst:20 msgid "" @@ -42,17 +50,25 @@ msgid "" "`ScrolledText` widget to be used directly to achieve most normal geometry " "management behavior." msgstr "" +"El widget de texto y la barra de desplazamiento se empaquetan juntos en un :" +"class:`Frame`, y los métodos de los administradores de geometría :class:" +"`Grid` y :class:`Pack` se adquieren del objeto :class:`Frame`. Esto permite " +"que el widget :class:`ScrolledText` sea usado directamente para lograr el " +"funcionamiento más normal del administrador de geometría." #: ../Doc/library/tkinter.scrolledtext.rst:25 msgid "" "Should more specific control be necessary, the following attributes are " "available:" msgstr "" +"Si fuera necesario un control más específico, los siguientes atributos están " +"disponibles:" #: ../Doc/library/tkinter.scrolledtext.rst:31 msgid "The frame which surrounds the text and scroll bar widgets." msgstr "" +"El marco que rodea el texto y los widgets de la barra de desplazamiento." #: ../Doc/library/tkinter.scrolledtext.rst:36 msgid "The scroll bar widget." -msgstr "" +msgstr "El widget de la barra de desplazamiento." diff --git a/library/tkinter.tix.po b/library/tkinter.tix.po index 4f263bd86e..f10d1b6f8a 100644 --- a/library/tkinter.tix.po +++ b/library/tkinter.tix.po @@ -1,35 +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: 2020-10-13 10:00-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Adolfo Hristo David Roque Gámez \n" +"Language: es_PE\n" +"X-Generator: Poedit 2.4\n" #: ../Doc/library/tkinter.tix.rst:2 msgid ":mod:`tkinter.tix` --- Extension widgets for Tk" -msgstr "" +msgstr ":mod:`tkinter.tix` --- Ampliación de widgets para Tk" #: ../Doc/library/tkinter.tix.rst:9 msgid "**Source code:** :source:`Lib/tkinter/tix.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tkinter/tix.py`" #: ../Doc/library/tkinter.tix.rst:13 msgid "" "This Tk extension is unmaintained and should not be used in new code. Use :" "mod:`tkinter.ttk` instead." msgstr "" +"Esta ampliación de Tk no está mantenida y no debe ser usada en nuevo código. " +"Use :mod:`tkinter.ttk` en su lugar." #: ../Doc/library/tkinter.tix.rst:19 msgid "" @@ -43,6 +47,16 @@ msgid "" "class:`NoteBook`, :class:`FileEntry`, :class:`PanedWindow`, etc; there are " "more than 40 of them." msgstr "" +"El módulo :mod:`tkinter.tix` (*Tk Interface Extension* en inglés) " +"proporciona un conjunto abundante de widgets adicionales. Aunque la " +"biblioteca estándar Tk tiene muchos widgets útiles, están lejos de ser " +"completos. La biblioteca :mod:`tkinter.tix` proporciona la mayoría de los " +"widgets comúnmente necesarios que no están en el estándar Tk: :class:" +"`HList`, :class:`ComboBox`, :class:`Control` (alias SpinBox) y una selección " +"de widgets desplazables. :mod:`tkinter.tix` también incluye muchos más " +"widgets que son generalmente útiles en un rango amplio de aplicaciones: :" +"class:`NoteBook`, :class:`FileEntry`, :class:`PanedWindow`, etc; hay más de " +"40 de ellos." #: ../Doc/library/tkinter.tix.rst:29 msgid "" @@ -51,40 +65,51 @@ msgid "" "You can design your application by choosing the most appropriate widgets to " "match the special needs of your application and users." msgstr "" +"Con todos estos nuevos widgets, puedes introducir nuevas técnicas de " +"interacción en aplicaciones, creando interfaces de usuario más útiles y más " +"intuitivas. Puedes diseñar tu aplicación al escoger los widgets más " +"apropiados que combinen con las necesidades especiales de tu aplicación y " +"usuarios." #: ../Doc/library/tkinter.tix.rst:38 msgid "`Tix Homepage `_" -msgstr "" +msgstr "`Tix Homepage `_" #: ../Doc/library/tkinter.tix.rst:37 msgid "" "The home page for :mod:`Tix`. This includes links to additional " "documentation and downloads." msgstr "" +"La página de inicio de :mod:`Tix`. Incluye enlaces a documentación adicional " +"y descargas." #: ../Doc/library/tkinter.tix.rst:41 msgid "`Tix Man Pages `_" -msgstr "" +msgstr "`Tix Man Pages `_" #: ../Doc/library/tkinter.tix.rst:41 msgid "On-line version of the man pages and reference material." -msgstr "" +msgstr "Versión en línea de las páginas del manual y material de referencia." #: ../Doc/library/tkinter.tix.rst:44 msgid "" "`Tix Programming Guide `_" msgstr "" +"`Tix Programming Guide `_" #: ../Doc/library/tkinter.tix.rst:44 msgid "On-line version of the programmer's reference material." -msgstr "" +msgstr "Versión en línea del material de referencia del programador." #: ../Doc/library/tkinter.tix.rst:48 msgid "" "`Tix Development Applications `_" msgstr "" +"`Tix Development Applications `_" #: ../Doc/library/tkinter.tix.rst:47 msgid "" @@ -92,16 +117,23 @@ msgid "" "applications work under Tk or Tkinter, and include :program:`TixInspect`, an " "inspector to remotely modify and debug Tix/Tk/Tkinter applications." msgstr "" +"Aplicaciones de Tix para el desarrollo de programas de Tix y Tkinter. Las " +"aplicaciones de *Tide* (por *Tix Integrated Development Environment* en sus " +"siglas de inglés) trabajan bajo Tk o Tkinter, e incluyen :program:" +"`TixInspect`, un inspector para modificar y depurar aplicaciones Tix/Tk/" +"Tkinter remotamente." #: ../Doc/library/tkinter.tix.rst:53 msgid "Using Tix" -msgstr "" +msgstr "Usando Tix" #: ../Doc/library/tkinter.tix.rst:58 msgid "" "Toplevel widget of Tix which represents mostly the main window of an " "application. It has an associated Tcl interpreter." msgstr "" +"Un widget de alto nivel de Tix que representa generalmente la ventana " +"principal de una aplicación. Tiene un intérprete *Tcl* asociado." #: ../Doc/library/tkinter.tix.rst:61 msgid "" @@ -111,6 +143,11 @@ msgid "" "just import :mod:`tkinter.tix`, and replace the toplevel call to :class:" "`tkinter.Tk` with :class:`tix.Tk`::" msgstr "" +"Las clases en el módulo :mod:`tkinter.tix` heredan de la clases en :mod:" +"`tkinter`. El primero importa el segundo, por lo que para usar :mod:`tkinter." +"tix` con Tkinter, todo lo que necesitas hacer es importar un módulo. En " +"general, puedes importar :mod:`tkinter.tix`, y reemplazar las invocaciones " +"de alto nivel a :class:`tkinter.Tk` con :class:`tix.Tk`::" #: ../Doc/library/tkinter.tix.rst:71 msgid "" @@ -118,20 +155,25 @@ msgid "" "alongside your installation of the Tk widgets. To test your installation, " "try the following::" msgstr "" +"Para usar :mod:`tkinter.tix`, debes tener los widgets Tix instalados, " +"usualmente junto a tu instalación de los widgets Tk. Para probar tu " +"instalación, intenta lo siguiente::" #: ../Doc/library/tkinter.tix.rst:81 msgid "Tix Widgets" -msgstr "" +msgstr "Widgets de Tix" #: ../Doc/library/tkinter.tix.rst:83 msgid "" "`Tix `_ introduces over 40 widget classes to the :mod:`tkinter` repertoire." msgstr "" +"`Tix `_ introduce más de 40 clases de widget al repertorio de :mod:`tkinter`." #: ../Doc/library/tkinter.tix.rst:88 msgid "Basic Widgets" -msgstr "" +msgstr "Widgets Básicos" #: ../Doc/library/tkinter.tix.rst:93 msgid "" @@ -140,6 +182,11 @@ msgid "" "moves the cursor inside a widget to which a Balloon widget has been bound, a " "small pop-up window with a descriptive message will be shown on the screen." msgstr "" +"Un `Globo `_ que aparece sobre un widget para proporcionar ayuda. " +"Cuando el usuario mueve el cursor dentro de un widget al cual el widget " +"Globo está ligado, una pequeña ventana emergente con un mensaje descriptivo " +"se mostrará en la pantalla." #: ../Doc/library/tkinter.tix.rst:105 msgid "" @@ -147,6 +194,9 @@ msgid "" "tixButtonBox.htm>`_ widget creates a box of buttons, such as is commonly " "used for ``Ok Cancel``." msgstr "" +"El widget `ButtonBox `_ crea una caja de botones, tal como es comúnmente " +"usado para ``Ok Cancelar``." #: ../Doc/library/tkinter.tix.rst:115 msgid "" @@ -155,6 +205,10 @@ msgid "" "The user can select a choice by either typing in the entry subwidget or " "selecting from the listbox subwidget." msgstr "" +"El widget `ComboBox `_ es similar al control de caja de selección combinada en " +"MS Windows. El usuario puede seleccionar una opción escribiendo en el " +"*subwidget* de entrada o seleccionando de la caja de lista del subwidget." #: ../Doc/library/tkinter.tix.rst:127 msgid "" @@ -164,6 +218,11 @@ msgid "" "the value directly into the entry. The new value will be checked against the " "user-defined upper and lower limits." msgstr "" +"El widget `Control `_ es también conocido como el widget :class:`SpinBox`. El " +"usuario puede ajustar el valor al presionar los dos botones de flecha o al " +"ingresar el valor directamente en la entrada. El nuevo valor será comparado " +"con los límites superiores e inferiores definidos por el usuario." #: ../Doc/library/tkinter.tix.rst:140 msgid "" @@ -172,6 +231,10 @@ msgid "" "mega widget. It can be used to simplify the creation of \"entry-form\" type " "of interface." msgstr "" +"El widget `LabelEntry `_ empaqueta un widget de entrada y una etiqueta en " +"un mega widget. Puede ser usado para simplificar la creación de los tipos de " +"interfaz de \"formularios de entrada\"." #: ../Doc/library/tkinter.tix.rst:151 msgid "" @@ -181,6 +244,11 @@ msgid "" "new widgets relative to the :attr:`frame` subwidget and manage them inside " "the :attr:`frame` subwidget." msgstr "" +"El widget `LabelFrame `_ empaqueta un widget *frame* y una etiqueta en un " +"mega widget. Para crear widgets dentro de un widget *LabelFrame*, uno crea " +"los nuevos widgets relativos al *subwidget* :attr:`frame` y los gestiona " +"dentro del subwidget :attr:`frame`." #: ../Doc/library/tkinter.tix.rst:163 msgid "" @@ -188,12 +256,17 @@ msgid "" "htm>`_ widget can be used to show the progress of a background job which may " "take a long time to execute." msgstr "" +"El widget `Meter `_ puede ser usado para mostrar el progreso de un trabajo en " +"segundo plano que puede tomar un largo tiempo de ejecución." #: ../Doc/library/tkinter.tix.rst:174 msgid "" "The `OptionMenu `_ creates a menu button of options." msgstr "" +"El widget `OptionMenu `_ crea un botón de menú de opciones." #: ../Doc/library/tkinter.tix.rst:184 msgid "" @@ -202,6 +275,10 @@ msgid "" "command. The advantage of the :mod:`Tix` :class:`PopupMenu` widget is it " "requires less application code to manipulate." msgstr "" +"El widget `PopupMenu `_ puede ser usado como un reemplazo del comando " +"``tk_popup``. La ventaja del widget :class:`PopupMenu` de :mod:`Tix` es que " +"requiere menos código de aplicación para manipular." #: ../Doc/library/tkinter.tix.rst:196 msgid "" @@ -209,6 +286,10 @@ msgid "" "tixSelect.htm>`_ widget is a container of button subwidgets. It can be used " "to provide radio-box or check-box style of selection options for the user." msgstr "" +"El widget `Select `_ es un contenedor de *subwidgets* botón. Puede ser usado " +"para proporcionar opciones de selección de estilos radio-box o check-box " +"para el usuario." #: ../Doc/library/tkinter.tix.rst:207 msgid "" @@ -216,10 +297,13 @@ msgid "" "tixStdButtonBox.htm>`_ widget is a group of standard buttons for Motif-like " "dialog boxes." msgstr "" +"El widget `StdButtonBox `_ es un grupo de botones estándares para cajas " +"de diálogo similares a *Motif*." #: ../Doc/library/tkinter.tix.rst:216 msgid "File Selectors" -msgstr "" +msgstr "Selectores de Archivos" #: ../Doc/library/tkinter.tix.rst:221 msgid "" @@ -228,6 +312,10 @@ msgid "" "directories and its sub-directories. The user can choose one of the " "directories displayed in the list or change to another directory." msgstr "" +"El widget `DirList `_ muestra una vista de lista de un directorio, sus " +"directorios previos, y sus sub-directorios. El usuario puede mostrar uno de " +"los directorios mostrados en la lista o cambiar a otro directorio." #: ../Doc/library/tkinter.tix.rst:233 msgid "" @@ -236,6 +324,10 @@ msgid "" "directories and its sub-directories. The user can choose one of the " "directories displayed in the list or change to another directory." msgstr "" +"El widget `DirTree `_ muestra una vista de árbol de un directorio, sus " +"directorios previos y sus sub-directorios. El usuario puede escoger uno de " +"los directorios mostrados en la lista o cambiar a otro directorio." #: ../Doc/library/tkinter.tix.rst:245 msgid "" @@ -244,6 +336,11 @@ msgid "" "system in a dialog window. The user can use this dialog window to navigate " "through the file system to select the desired directory." msgstr "" +"El widget `DirSelectDialog `_ presenta los directorios en el sistema de " +"archivos en una ventana de diálogo. El usuario puede usar esta ventana de " +"diálogo para navegar a través del sistema de archivos para seleccionar el " +"directorio deseado." #: ../Doc/library/tkinter.tix.rst:257 msgid "" @@ -252,6 +349,11 @@ msgid "" "DirSelectBox stores the directories mostly recently selected into a ComboBox " "widget so that they can be quickly selected again." msgstr "" +"El widget :class:`DirSelectBox` es similar al cuadro de selección de " +"directorio estándar de Motif(TM). Es generalmente usado para que el usuario " +"escoja un directorio. *DirSelectBox* guarda los directorios seleccionados " +"recientemente en un widget de cuadro combinado para que puedan ser " +"seleccionados rápidamente de nuevo." #: ../Doc/library/tkinter.tix.rst:265 msgid "" @@ -261,6 +363,11 @@ msgid "" "to select files. The style of the :class:`ExFileSelectBox` widget is very " "similar to the standard file dialog on MS Windows 3.1." msgstr "" +"El widget `ExFileSelectBox `_ es usualmente embebido en un widget " +"*tixExFileSelectDialog*. Proporciona un método conveniente para que el " +"usuario seleccione archivos. El estilo del widget :class:`ExFileSelectBox` " +"es muy similar al diálogo de archivo estándar en MS Windows 3.1." #: ../Doc/library/tkinter.tix.rst:278 msgid "" @@ -270,6 +377,12 @@ msgid "" "stores the files mostly recently selected into a :class:`ComboBox` widget so " "that they can be quickly selected again." msgstr "" +"El widget `FileSelectBox `_ es similar al cuadro de selección de archivo " +"estándar de Motif(TM). Es generalmente usado para que el usuario escoja un " +"archivo. *FileSelectBox* guarda los archivos recientemente seleccionados en " +"un widget :class:`ComboBox` para que puedan ser rápidamente seleccionados de " +"nuevo." #: ../Doc/library/tkinter.tix.rst:291 msgid "" @@ -279,10 +392,15 @@ msgid "" "widget that sits next to the entry, which will bring up a file selection " "dialog." msgstr "" +"El widget `FileEntry `_ puede ser usado para ingresar un nombre de " +"archivo. El usuario puede tipear el nombre de archivo manualmente. " +"Alternativamente, el usuario puede presionar el widget de botón que está al " +"lado de la entrada, que mostrará un diálogo de selección de archivo." #: ../Doc/library/tkinter.tix.rst:302 msgid "Hierarchical ListBox" -msgstr "" +msgstr "*ListBox* jerárquico" #: ../Doc/library/tkinter.tix.rst:307 msgid "" @@ -292,6 +410,11 @@ msgid "" "indented and connected by branch lines according to their places in the " "hierarchy." msgstr "" +"El widget `HList `_ puede ser usado para mostrar cualquier dato que tenga una " +"estructura jerárquica, por ejemplo, árboles del directorio del sistema de " +"archivos. Las entradas de las líneas son sangradas y conectadas por líneas " +"de ramas de acuerdo a sus lugares en la jerarquía." #: ../Doc/library/tkinter.tix.rst:319 msgid "" @@ -301,6 +424,11 @@ msgid "" "except it is capable of handling many more items than checkbuttons or " "radiobuttons." msgstr "" +"El widget `CheckList `_ muestra una lista de objetos a ser seleccionados " +"por el usuario. *CheckList* actúa de forma similar a los widget Tk " +"*checkbutton* o *radiobutton*, excepto que es capaz de manejar muchos más " +"objetos que los widgets *checkbutton* o *radiobutton*." #: ../Doc/library/tkinter.tix.rst:335 msgid "" @@ -308,10 +436,14 @@ msgid "" "htm>`_ widget can be used to display hierarchical data in a tree form. The " "user can adjust the view of the tree by opening or closing parts of the tree." msgstr "" +"Se puede usar el widget `Tree `_ para mostrar datos jerárquicos en una forma de " +"árbol. El usuario puede ajustar la vista del árbol al abrir o cerrar partes " +"del árbol." #: ../Doc/library/tkinter.tix.rst:347 msgid "Tabular ListBox" -msgstr "" +msgstr "*ListBox* Tabular" #: ../Doc/library/tkinter.tix.rst:352 msgid "" @@ -322,10 +454,17 @@ msgid "" "display the list entries in a two dimensional format and (2) you can use " "graphical images as well as multiple colors and fonts for the list entries." msgstr "" +"Se puede usar el widget `TList `_ para mostrar datos en un formato tabular. Las " +"entradas de lista de un widget :class:`TList` son similares a las entradas " +"del widget *listbox*. Las principales diferencias son (1) el widget :class:" +"`TList` puede mostrar las entradas de la lista en un formato de dos " +"dimensiones y (2) puedes usar imágenes gráficas así como también como " +"múltiples colores y fuentes para las entradas de lista." #: ../Doc/library/tkinter.tix.rst:375 msgid "Manager Widgets" -msgstr "" +msgstr "Gestores de Widgets" #: ../Doc/library/tkinter.tix.rst:380 msgid "" @@ -335,6 +474,11 @@ msgid "" "horizontally. The user changes the sizes of the panes by dragging the " "resize handle between two panes." msgstr "" +"El widget `PanedWindow `_ permite que el usuario manipule " +"interactivamente los tamaños de varios paneles. Los paneles pueden ser " +"ordenados o verticalmente u horizontalmente. El usuario cambia los tamaños " +"de los paneles al arrastrar el asa de redimensionamiento entre dos paneles." #: ../Doc/library/tkinter.tix.rst:392 msgid "" @@ -346,6 +490,13 @@ msgid "" "through these pages by choosing the name of the desired page in the :attr:" "`hlist` subwidget." msgstr "" +"El widget `ListNoteBook `_ es muy similar al widget :class:`TixNoteBook`: " +"puede ser usado para mostrar muchas ventanas en un espacio limitado usando " +"la metáfora del cuaderno (*notebook*). El cuaderno es dividido en una pila " +"de páginas (ventanas). Sólo una de estas páginas se muestra a la vez. El " +"usuario puede navegar a través de estas páginas al escoger el nombre de la " +"página deseada en el *subwidget* :attr:`hlist`." #: ../Doc/library/tkinter.tix.rst:406 msgid "" @@ -356,14 +507,20 @@ msgid "" "navigate through these pages by choosing the visual \"tabs\" at the top of " "the NoteBook widget." msgstr "" +"Se puede usar el widget `NoteBook `_ para mostrar muchas ventanas en un " +"espacio limitado usando la metáfora del cuaderno (*notebook*). El *notebook* " +"es dividido en una pila de páginas. Sólo una de estas páginas se puede " +"mostrar a la vez. El usuario puede navegar a través de estas páginas al " +"escoger las \"pestañas\" visuales arriba del widget *NoteBook*." #: ../Doc/library/tkinter.tix.rst:428 msgid "Image Types" -msgstr "" +msgstr "Tipos de Imágenes" #: ../Doc/library/tkinter.tix.rst:430 msgid "The :mod:`tkinter.tix` module adds:" -msgstr "" +msgstr "El módulo :mod:`tkinter.tix` añade:" #: ../Doc/library/tkinter.tix.rst:432 msgid "" @@ -371,6 +528,9 @@ msgid "" "htm>`_ capabilities to all :mod:`tkinter.tix` and :mod:`tkinter` widgets to " "create color images from XPM files." msgstr "" +"capacidades de `pixmap `_ a todos los widgets de :mod:`tkinter.tix` y :mod:" +"`tkinter` para crear imágenes de color a partir de archivos XPM." #: ../Doc/library/tkinter.tix.rst:441 msgid "" @@ -381,10 +541,17 @@ msgid "" "compound image can be used to display a bitmap and a text string " "simultaneously in a Tk :class:`Button` widget." msgstr "" +"se pueden usar los tipos de imágenes `Compound `_ para crear imágenes que " +"consisten en múltiples líneas horizontales; cada línea es compuesta de una " +"serie de objetos (texto, bitmaps, imágenes, o espacios) ordenados de " +"izquierda a derecha. Por ejemplo, una imagen compuesta puede ser usada para " +"mostrar un bitmap y una cadena de texto simultáneamente en un widget Tk :" +"class:`Button`." #: ../Doc/library/tkinter.tix.rst:460 msgid "Miscellaneous Widgets" -msgstr "" +msgstr "Widgets Varios" #: ../Doc/library/tkinter.tix.rst:465 msgid "" @@ -392,24 +559,30 @@ msgid "" "tixInputOnly.htm>`_ widgets are to accept inputs from the user, which can be " "done with the ``bind`` command (Unix only)." msgstr "" +"Los widgets `InputOnly `_ van a aceptar entradas del usuario, que pueden " +"ser realizadas con el comando ``bind`` (sólo para Unix)." #: ../Doc/library/tkinter.tix.rst:472 msgid "Form Geometry Manager" -msgstr "" +msgstr "Gestor de Geometría de Formulario" #: ../Doc/library/tkinter.tix.rst:474 msgid "In addition, :mod:`tkinter.tix` augments :mod:`tkinter` by providing:" -msgstr "" +msgstr "Además, :mod:`tkinter.tix` mejora a :mod:`tkinter` al proporcionar:" #: ../Doc/library/tkinter.tix.rst:479 msgid "" "The `Form `_ geometry manager based on attachment rules for all Tk widgets." msgstr "" +"El gestor de geometría de `Formulario `_ basado en reglas de anexo para todos " +"los widgets Tk." #: ../Doc/library/tkinter.tix.rst:485 msgid "Tix Commands" -msgstr "" +msgstr "Comandos Tix" #: ../Doc/library/tkinter.tix.rst:490 msgid "" @@ -419,10 +592,15 @@ msgid "" "manipulated by these methods pertains to the application as a whole, or to a " "screen or display, rather than to a particular window." msgstr "" +"Los `comandos tix `_ proporcionan acceso a elementos misceláneos del estado interno " +"de :mod:`Tix` y del contexto de la aplicación de :mod:`Tix`. La mayoría de " +"la información manipulada por estos métodos le pertenece a la aplicación en " +"conjunto, o a una pantalla o monitor, en vez de una ventana en particular." #: ../Doc/library/tkinter.tix.rst:497 msgid "To view the current settings, the common usage is::" -msgstr "" +msgstr "Para ver las configuraciones actuales, el uso común es::" #: ../Doc/library/tkinter.tix.rst:506 msgid "" @@ -435,12 +613,24 @@ msgid "" "given option(s) to have the given value(s); in this case the method returns " "an empty string. Option may be any of the configuration options." msgstr "" +"Consulta o modifica las opciones de configuración del contexto de la " +"aplicación Tix. Si no se especifica ninguna opción, retorna un diccionario " +"con todas las opciones disponibles. Si la opción es especificada sin ningún " +"valor, entonces el método retorna una lista describiendo la opción nombrada " +"(esta lista será idéntica a la sublista correspondiente de los valores " +"retornados si no se especifica ninguna opción). Si uno o más pares opción-" +"valor son especificados, entonces el método modifica las opciones dadas para " +"tener los valores dados; en este caso el método retorna una cadena de " +"caracteres vacía. La opción puede ser cualquiera de las opciones de " +"configuración." #: ../Doc/library/tkinter.tix.rst:518 msgid "" "Returns the current value of the configuration option given by *option*. " "Option may be any of the configuration options." msgstr "" +"Retorna el valor actual de la opción de configuración dada por *option*. La " +"opción puede ser cualquiera de las opciones configurables." #: ../Doc/library/tkinter.tix.rst:524 msgid "" @@ -451,6 +641,13 @@ msgid "" "of the bitmap file, prefixed with the character ``@``. The returned value " "can be used to configure the ``bitmap`` option of the Tk and Tix widgets." msgstr "" +"Localiza un archivo bitmap con el nombre ``name.xpm`` o ``name`` en uno de " +"los directorios bitmap (véase el método :meth:`tix_addbitmapdir`). Al usar :" +"meth:`tix_getbitmap`, puedes evitar codificar directamente los nombres de " +"ruta de los archivos bitmap en tu aplicación. Cuando tiene éxito, retorna " +"el nombre de ruta completo del archivo bitmap, prefijado con el carácter " +"``@``. El valor retornado puede ser usado para configurar la opción " +"``bitmap`` de los widgets de Tk y Tix." #: ../Doc/library/tkinter.tix.rst:534 msgid "" @@ -461,6 +658,12 @@ msgid "" "method, the image files of an applications can also be located using the :" "meth:`tix_getimage` or :meth:`tix_getbitmap` method." msgstr "" +"Tix mantiene una lista de directorios bajo los cuales los métodos :meth:" +"`tix_getimage` y :meth:`tix_getbitmap` buscarán archivos de imágenes. El " +"directorio de bitmap estándar es :file:`$TIX_LIBRARY/bitmaps`. El método :" +"meth:`tix_addbitmapdir` añade *directory* a la lista. Al usar este método, " +"los archivos de imagen de una aplicación pueden ser localizados usando el " +"método :meth:`tix_getimage` o :meth:`tix_getbitmap`." #: ../Doc/library/tkinter.tix.rst:544 msgid "" @@ -472,6 +675,14 @@ msgid "" "widget is desired. Possible options are ``tix``, ``FileSelectDialog`` or " "``tixExFileSelectDialog``." msgstr "" +"Retorna el diálogo de selección de archivo que puede ser compartido entre " +"diferentes invocaciones de esta aplicación. Este método creará una widget " +"de diálogo de selección de archivos cuando es invocado la primera vez. Este " +"diálogo será retornado por las subsiguientes invocaciones de :meth:" +"`tix_filedialog`. Un parámetro *dlgclass* opcional puede ser pasado como " +"cadena para especificar qué tipo de widget de selección de diálogo es " +"deseado. Las opciones posibles son ``tix``, ``FileSelectDialog``, o " +"``tixExFileSelectDialog``." #: ../Doc/library/tkinter.tix.rst:554 msgid "" @@ -486,10 +697,21 @@ msgid "" "created image, which can be used to configure the ``image`` option of the Tk " "and Tix widgets." msgstr "" +"Localiza un archivo de imagen con el nombre :file:`name.xpm`, :file:`name." +"xbm` o :file:`name.ppm` en uno de los directorios de bitmap (véase el " +"método :meth:`tix_addbitmapdir` arriba). Si existe más de un archivo con el " +"mismo nombre (pero con diferentes extensiones), entonces el tipo de imagen " +"es escogido de acuerdo a la profundidad del monitor X: las imágenes xbm son " +"escogidas en monitores monocromos e imágenes de color son escogidas en " +"monitores de color. Al usar :meth:`tex_getimage`, puedes evitar codificar de " +"forma directa los nombres de ruta de los archivos de imagen en tu " +"aplicación. Cuando tiene éxito, este método retorna el nombre de la imagen " +"recién creada, que puede ser usada para configurar la opción ``image`` de " +"los widgets Tk y Tix." #: ../Doc/library/tkinter.tix.rst:567 msgid "Gets the options maintained by the Tix scheme mechanism." -msgstr "" +msgstr "Obtiene las opciones mantenidas por el mecanismo de esquema de Tix." #: ../Doc/library/tkinter.tix.rst:572 msgid "" @@ -498,12 +720,18 @@ msgid "" "this call. Therefore, it is best to call the resetoptions method before the " "creation of any widgets in a Tix application." msgstr "" +"Reinicia el esquema y conjunto de fuentes de la aplicación Tix a *newScheme* " +"y *newFontSet*, respectivamente. Afecta sólo a los widgets creados después " +"de esta invocación. Por lo tanto, es mejor invocar al método *resetoptions* " +"antes de la creación de cualquier widget en una aplicación Tix." #: ../Doc/library/tkinter.tix.rst:577 msgid "" "The optional parameter *newScmPrio* can be given to reset the priority level " "of the Tk options set by the Tix schemes." msgstr "" +"Se le puede dar el parámetro opcional *newScmPrio* para reiniciar el nivel " +"de prioridad de las opciones de Tk definidas por los esquemas de Tix." #: ../Doc/library/tkinter.tix.rst:580 msgid "" @@ -512,3 +740,8 @@ msgid "" "sets using the :meth:`tix_config` method. Instead, the :meth:" "`tix_resetoptions` method must be used." msgstr "" +"Debido a la manera en que Tk gestiona la opción de la base de datos X, " +"después de que Tix se haya importado e inicializado, no es posible reiniciar " +"el esquema de colores y conjunto de fuentes usando el método :meth:" +"`tix_config` método. En vez de eso, se debe usar el método :meth:" +"`tix_resetoptions`." diff --git a/library/tracemalloc.po b/library/tracemalloc.po index 66dc182f02..6d7d199b9c 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -1,6 +1,6 @@ # 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 # @@ -10,40 +10,50 @@ 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: 2020-10-03 21:38-0300\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.4.1\n" +"Language: es\n" #: ../Doc/library/tracemalloc.rst:2 msgid ":mod:`tracemalloc` --- Trace memory allocations" -msgstr "" +msgstr ":mod:`tracemalloc`--- Rastrea la asignación de memoria" #: ../Doc/library/tracemalloc.rst:9 msgid "**Source code:** :source:`Lib/tracemalloc.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tracemalloc.py`" #: ../Doc/library/tracemalloc.rst:13 msgid "" "The tracemalloc module is a debug tool to trace memory blocks allocated by " "Python. It provides the following information:" msgstr "" +"El módulo tracemalloc es una herramienta de depuración para rastrear los " +"espacios de memoria asignados por Python. Este proporciona la siguiente " +"información:" #: ../Doc/library/tracemalloc.rst:16 msgid "Traceback where an object was allocated" -msgstr "" +msgstr "El rastreo al lugar de origen del objeto asignado" #: ../Doc/library/tracemalloc.rst:17 msgid "" "Statistics on allocated memory blocks per filename and per line number: " "total size, number and average size of allocated memory blocks" msgstr "" +"Las estadísticas en los espacios de memoria asignados por nombre de archivo " +"y por número de línea: tamaño total, número y tamaño promedio de los " +"espacios de memoria asignados" #: ../Doc/library/tracemalloc.rst:19 msgid "Compute the differences between two snapshots to detect memory leaks" msgstr "" +"Calcula las diferencias entre dos informes instantáneos para detectar alguna " +"filtración en la memoria" #: ../Doc/library/tracemalloc.rst:21 msgid "" @@ -53,6 +63,12 @@ msgid "" "command line option. The :func:`tracemalloc.start` function can be called at " "runtime to start tracing Python memory allocations." msgstr "" +"Para rastrear la mayoría de los espacios de memoria asignados por Python; el " +"módulo debe empezar tan pronto como sea posible configurando la variable del " +"entorno :envvar:`PYTHONTRACEMALLOC` a ``1``, o usando la opción del comando " +"de línea :option:`-X` ``tracemalloc``. La función :func:`tracemalloc.start` " +"puede ser llamada en tiempo de ejecución para empezar a rastrear las " +"asignaciones de memoria de Python." #: ../Doc/library/tracemalloc.rst:27 msgid "" @@ -61,22 +77,26 @@ msgid "" "`PYTHONTRACEMALLOC` environment variable to ``25``, or use the :option:`-X` " "``tracemalloc=25`` command line option." msgstr "" +"Por defecto, el rastreo de un espacio de memoria asignado solo guarda el " +"cuadro mas reciente (1 cuadro). Para guardar 25 cuadros desde el :envvar:" +"`PYTHONTRACEMALLOC`comienzo, configura la variable del entorno a ``25``, o " +"usa :option:`-X` ``tracemalloc=25`` en la opción de línea de comando." #: ../Doc/library/tracemalloc.rst:34 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/tracemalloc.rst:37 msgid "Display the top 10" -msgstr "" +msgstr "Mostrar los 10 principales" #: ../Doc/library/tracemalloc.rst:39 msgid "Display the 10 files allocating the most memory::" -msgstr "" +msgstr "Mostrar los 10 archivos asignando la mayor cantidad de memoria::" #: ../Doc/library/tracemalloc.rst:55 ../Doc/library/tracemalloc.rst:227 msgid "Example of output of the Python test suite::" -msgstr "" +msgstr "Ejemplo de la salida del conjunto de pruebas de Python:" #: ../Doc/library/tracemalloc.rst:69 msgid "" @@ -84,23 +104,28 @@ msgid "" "from modules and that the :mod:`collections` module allocated ``244 KiB`` to " "build :class:`~collections.namedtuple` types." msgstr "" +"Se puede ver que Python ha cargado ``4855 KiB`` de data (código de bytes y " +"constantes) desde los módulos y que el modulo :mod:`collections` asigno " +"``24KiB`` para crear tipos :class:`~collections.namedtuple`." #: ../Doc/library/tracemalloc.rst:73 ../Doc/library/tracemalloc.rst:252 msgid "See :meth:`Snapshot.statistics` for more options." -msgstr "" +msgstr "Mira :meth:`Snapshot.statistics` para más opciones." #: ../Doc/library/tracemalloc.rst:77 msgid "Compute differences" -msgstr "" +msgstr "Calcula las diferencias" #: ../Doc/library/tracemalloc.rst:79 msgid "Take two snapshots and display the differences::" -msgstr "" +msgstr "Toma dos capturas instantáneas y muestra las diferencias::" #: ../Doc/library/tracemalloc.rst:95 msgid "" "Example of output before/after running some tests of the Python test suite::" msgstr "" +"Ejemplo de la salida antes y después de probar el conjunto de pruebas de " +"Python::" #: ../Doc/library/tracemalloc.rst:109 msgid "" @@ -110,6 +135,12 @@ msgid "" "`linecache` module has cached ``940 KiB`` of Python source code to format " "tracebacks, all of it since the previous snapshot." msgstr "" +"Se puede ver que Python cargó ``8173 KiB`` de información del modulo (código " +"de bytes y constantes), y que eso es ```4428KiB`` más de lo que ha sido " +"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." #: ../Doc/library/tracemalloc.rst:115 msgid "" @@ -117,19 +148,26 @@ msgid "" "the :meth:`Snapshot.dump` method to analyze the snapshot offline. Then use " "the :meth:`Snapshot.load` method reload the snapshot." msgstr "" +"Si el sistema tiene poca memoria libre, los informes instantáneos pueden ser " +"escritos en el disco usando el método :meth:`Snapshot.dump` para analizar el " +"informe instantáneo offline. Después usa el método :meth:`Snapshot.load` " +"para actualizar el informe." #: ../Doc/library/tracemalloc.rst:121 msgid "Get the traceback of a memory block" -msgstr "" +msgstr "Consigue el seguimiento del bloque de memoria" #: ../Doc/library/tracemalloc.rst:123 msgid "Code to display the traceback of the biggest memory block::" msgstr "" +"Código para configurar el seguimiento del bloque de memoria más grande::" #: ../Doc/library/tracemalloc.rst:141 msgid "" "Example of output of the Python test suite (traceback limited to 25 frames)::" msgstr "" +"Ejemplo de la salida del conjunto de pruebas de Python (rastreo limitado a " +"25 cuadros)::" #: ../Doc/library/tracemalloc.rst:178 msgid "" @@ -139,32 +177,39 @@ msgid "" "``import pdb`` line of the :mod:`doctest` module. The traceback may change " "if a new module is loaded." msgstr "" +"Se puede ver que la mayor parte de la memoria fue asignada en el módulo :mod:" +"`importlib` para cargar datos (códigos de bytes y constantes) desde módulos " +"``870.1 KiB``. El rastreo esta donde el módulo :mod:`importlib` cargó datos " +"más recientemente: en la linea ``import pdb`` el módulo :mod:`doctest`." #: ../Doc/library/tracemalloc.rst:186 msgid "Pretty top" -msgstr "" +msgstr "``Los 10 más bonitos``" #: ../Doc/library/tracemalloc.rst:188 msgid "" "Code to display the 10 lines allocating the most memory with a pretty " "output, ignoring ```` and ```` files::" msgstr "" +"Codifica para configurar las 10 líneas que asignan gran parte de la memoria " +"con una salida ``bonita``, ignorando los archivos```` y ````:" #: ../Doc/library/tracemalloc.rst:256 msgid "API" -msgstr "" +msgstr "API" #: ../Doc/library/tracemalloc.rst:259 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/tracemalloc.rst:263 msgid "Clear traces of memory blocks allocated by Python." -msgstr "" +msgstr "Limpia los rastros de los bloques de memoria asignados por Python." #: ../Doc/library/tracemalloc.rst:265 msgid "See also :func:`stop`." -msgstr "" +msgstr "Mira también la función :func:`stop`." #: ../Doc/library/tracemalloc.rst:270 msgid "" @@ -172,46 +217,61 @@ 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 " +"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." #: ../Doc/library/tracemalloc.rst:275 msgid "See also :func:`gc.get_referrers` and :func:`sys.getsizeof` functions." msgstr "" +"Mira también las funciones :func:`gc.get_referrers` y :func:`sys.getsizeof`." #: ../Doc/library/tracemalloc.rst:280 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." #: ../Doc/library/tracemalloc.rst:282 msgid "" "The :mod:`tracemalloc` module must be tracing memory allocations to get the " "limit, otherwise an exception is raised." msgstr "" +"El módulo :mod:`tracemalloc` debe rastrear las asignaciones de memoria para " +"obtener el límite, de otra manera se inicia una excepción." #: ../Doc/library/tracemalloc.rst:285 msgid "The limit is set by the :func:`start` function." -msgstr "" +msgstr "El limite es establecido por la función :func:`start`." #: ../Doc/library/tracemalloc.rst:290 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 " +"por el módulo :mod:`tracemalloc` como una tupla: ``(current: int, peak: " +"int)``." #: ../Doc/library/tracemalloc.rst:296 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`." #: ../Doc/library/tracemalloc.rst:303 msgid "" "``True`` if the :mod:`tracemalloc` module is tracing Python memory " "allocations, ``False`` otherwise." msgstr "" +"Si el módulo :mod:`tracemalloc` esta rastreando asignaciones de memoria de " +"Python retorna ``True`` sino retorna ``False``." #: ../Doc/library/tracemalloc.rst:306 msgid "See also :func:`start` and :func:`stop` functions." -msgstr "" +msgstr "También mira las funciones :func:`start` y :func:`stop`." #: ../Doc/library/tracemalloc.rst:311 msgid "" @@ -220,6 +280,11 @@ msgid "" "frames. By default, a trace of a memory block only stores the most recent " "frame: the limit is ``1``. *nframe* must be greater or equal to ``1``." msgstr "" +"Empieza a rastrear las asignaciones de memoria de Python: instala *hooks* en " +"las asignaciones de memoria de Python. Los rastreos coleccionados van a " +"estar limitados a *nframe*. Por defecto, un rastro de un bloque de memoria " +"solo guarda el cuadro mas reciente: el limite es ``1``. *nframe* debe ser " +"mayor o igual a `1`." #: ../Doc/library/tracemalloc.rst:316 msgid "" @@ -227,6 +292,9 @@ msgid "" "by ``'traceback'`` or to compute cumulative statistics: see the :meth:" "`Snapshot.compare_to` and :meth:`Snapshot.statistics` methods." msgstr "" +"Guardar mas de ``1`` cuadro es solo útil para calcular estadísticas " +"agrupadas por seguimiento o para calcular estadísticas acumulativa: mira las " +"funciones :meth:`Snapshot.compare_to` y :meth:`Snapshot.statistics`." #: ../Doc/library/tracemalloc.rst:320 msgid "" @@ -234,6 +302,9 @@ msgid "" "`tracemalloc` module. Use the :func:`get_tracemalloc_memory` function to " "measure how much memory is used by the :mod:`tracemalloc` module." msgstr "" +"Guardar mas cuadros aumenta la memoria y la sobrecargar de la CPU del " +"modulo :mod:`tracemalloc`. Usa la función :func:`get_tracemalloc_memory` " +"para medir cuanta memoria se usa por el módulo :mod:`tracemalloc`." #: ../Doc/library/tracemalloc.rst:324 msgid "" @@ -241,135 +312,174 @@ msgid "" "(``PYTHONTRACEMALLOC=NFRAME``) and the :option:`-X` ``tracemalloc=NFRAME`` " "command line option can be used to start tracing at startup." msgstr "" +"La variable del entorno :envvar:`PYTHONTRACEMALLOC` " +"(``PYTHONTRACEMALLOC=NFRAME``) y la opción de comando de linea :option:`-X` " +"``tracemalloc=NFRAME`` se puede usar para empezar a rastrear desde el inicio." #: ../Doc/library/tracemalloc.rst:328 msgid "" "See also :func:`stop`, :func:`is_tracing` and :func:`get_traceback_limit` " "functions." msgstr "" +"También mira las funciones :func:`stop`, :func:`is_tracing` y :func:" +"`get_traceback_limit`." #: ../Doc/library/tracemalloc.rst:334 msgid "" -"Stop tracing Python memory allocations: uninstall hooks on Python memory " +"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." #: ../Doc/library/tracemalloc.rst:338 msgid "" "Call :func:`take_snapshot` function to take a snapshot of traces before " "clearing them." msgstr "" +"Llama a la función :func:`take_snapshot` para tomar una captura instantánea " +"de los rastreos, antes de limpiarlos." #: ../Doc/library/tracemalloc.rst:341 msgid "" "See also :func:`start`, :func:`is_tracing` and :func:`clear_traces` " "functions." msgstr "" +"También mira las funciones :func:`start`, :func:`is_tracing` y :func:" +"`clear_traces`." #: ../Doc/library/tracemalloc.rst:347 msgid "" "Take a snapshot of traces of memory blocks allocated by Python. Return a " "new :class:`Snapshot` instance." msgstr "" +"Toma una captura instantánea de los bloques de memoria asignados por " +"Python. Retorna una nueva instancia de la clase :class:`Snapshot`." #: ../Doc/library/tracemalloc.rst:350 msgid "" "The snapshot does not include memory blocks allocated before the :mod:" "`tracemalloc` module started to trace memory allocations." msgstr "" +"La captura instantánea no incluye ningún bloque de memoria asignado antes de " +"que el módulo :mod:`tracemalloc` haya empezado a rastrear asignaciones de " +"memoria." #: ../Doc/library/tracemalloc.rst:353 msgid "" "Tracebacks of traces are limited to :func:`get_traceback_limit` frames. Use " "the *nframe* parameter of the :func:`start` function to store more frames." msgstr "" +"Los seguimientos de los rastros son limitados por la función :func:" +"`get_traceback_limit`. Usa el parámetro *nframe* de la función :func:`start` " +"para guardar mas cuadros." #: ../Doc/library/tracemalloc.rst:356 msgid "" "The :mod:`tracemalloc` module must be tracing memory allocations to take a " "snapshot, see the :func:`start` function." msgstr "" +"El módulo :mod:`tracemalloc` debe empezar a rastrear las asignaciones de " +"memoria para tomar una captura instantánea. Mira la función :func:`start`." #: ../Doc/library/tracemalloc.rst:359 msgid "See also the :func:`get_object_traceback` function." -msgstr "" +msgstr "También mira la función :func:`get_object_traceback`." #: ../Doc/library/tracemalloc.rst:363 msgid "DomainFilter" -msgstr "" +msgstr "Filtro de dominio" #: ../Doc/library/tracemalloc.rst:367 msgid "Filter traces of memory blocks by their address space (domain)." msgstr "" +"Filtra los rastros de los bloques de memoria por su espacio de dirección " +"(dominio)" #: ../Doc/library/tracemalloc.rst:373 msgid "" "If *inclusive* is ``True`` (include), match memory blocks allocated in the " "address space :attr:`domain`." msgstr "" +"Si *inclusive* es ``True`` (incluye), relaciona los bloques de memoria " +"asignados en el espacio de dirección :attr:`domain`." #: ../Doc/library/tracemalloc.rst:376 msgid "" "If *inclusive* is ``False`` (exclude), match memory blocks not allocated in " "the address space :attr:`domain`." msgstr "" +"Si *inclusive* es ``False`` (excluye), relaciona los bloques de memoria no " +"asignados en el espacio de dirección :attr:`domain`." #: ../Doc/library/tracemalloc.rst:381 ../Doc/library/tracemalloc.rst:633 msgid "Address space of a memory block (``int``). Read-only property." msgstr "" +"Espacio de dirección de un bloque de memoria (``int``). Propiedad solo-" +"lectura." #: ../Doc/library/tracemalloc.rst:385 msgid "Filter" -msgstr "" +msgstr "Filtro" #: ../Doc/library/tracemalloc.rst:389 msgid "Filter on traces of memory blocks." -msgstr "" +msgstr "Filtra los rastros de los bloques de memoria." #: ../Doc/library/tracemalloc.rst:391 msgid "" "See the :func:`fnmatch.fnmatch` function for the syntax of " "*filename_pattern*. The ``'.pyc'`` file extension is replaced with ``'.py'``." msgstr "" +"También mira la función :func:`fnmatch.fnmatch` para la sintaxis de " +"*filename_pattern*. La extensión ``'.pyc'`` es remplazada por ``'.py'``." #: ../Doc/library/tracemalloc.rst:395 msgid "Examples:" -msgstr "" +msgstr "Ejemplos:" #: ../Doc/library/tracemalloc.rst:397 msgid "" "``Filter(True, subprocess.__file__)`` only includes traces of the :mod:" "`subprocess` module" msgstr "" +"``Filter(True, subprocess.__file__)`` solo incluye los rastros de el módulo :" +"mod:`subprocess`" #: ../Doc/library/tracemalloc.rst:399 msgid "" "``Filter(False, tracemalloc.__file__)`` excludes traces of the :mod:" "`tracemalloc` module" msgstr "" +"``Filter(False, tracemalloc.__file__)`` excluye los rastros de memoria del " +"módulo :mod:`tracemalloc`" #: ../Doc/library/tracemalloc.rst:401 msgid "``Filter(False, \"\")`` excludes empty tracebacks" -msgstr "" +msgstr "``Filter(False, \"\")`` excluye los seguimientos vacíos" #: ../Doc/library/tracemalloc.rst:404 msgid "The ``'.pyo'`` file extension is no longer replaced with ``'.py'``." -msgstr "" +msgstr "La extensión ``'.pyo'`` ya no se remplaza con ``'.py'``." #: ../Doc/library/tracemalloc.rst:407 ../Doc/library/tracemalloc.rst:628 msgid "Added the :attr:`domain` attribute." -msgstr "" +msgstr "Agregado el atributo :attr:`domain` ." #: ../Doc/library/tracemalloc.rst:413 msgid "Address space of a memory block (``int`` or ``None``)." -msgstr "" +msgstr "El espacio de dirección de un bloque de memoria (``int`` o ``None``)." #: ../Doc/library/tracemalloc.rst:415 ../Doc/library/tracemalloc.rst:635 msgid "" "tracemalloc uses the domain ``0`` to trace memory allocations made by " "Python. C extensions can use other domains to trace other resources." msgstr "" +"tracemalloc usa el dominio ``0`` para rastrear las asignaciones de memoria " +"hechas por Python. Las extensiones C pueden usar otros dominios para " +"rastrear otros recursos." #: ../Doc/library/tracemalloc.rst:420 msgid "" @@ -377,6 +487,9 @@ msgid "" "a file with a name matching :attr:`filename_pattern` at line number :attr:" "`lineno`." msgstr "" +"Si *inclusive* es ``True`` (incluye), solo relaciona los bloques de memoria " +"asignados en un archivo con el nombre coincidiendo con el atributo :attr:" +"`filename_pattern` en el número de línea del atributo :attr:`lineno`." #: ../Doc/library/tracemalloc.rst:424 msgid "" @@ -384,22 +497,31 @@ msgid "" "file with a name matching :attr:`filename_pattern` at line number :attr:" "`lineno`." msgstr "" +"Si *inclusive* es ``False`` (excluye), ignora los bloques de memoria " +"asignados en un archivo con el nombre coincidiendo con el atributo :attr:" +"`filename_pattern` en el número de línea del atributo :attr:`lineno`." #: ../Doc/library/tracemalloc.rst:430 msgid "" "Line number (``int``) of the filter. If *lineno* is ``None``, the filter " "matches any line number." msgstr "" +"El número de linea (``int``) del filtro. Si *lineno* es ``None``, el filtro " +"se relaciona con cualquier número de linea." #: ../Doc/library/tracemalloc.rst:435 msgid "Filename pattern of the filter (``str``). Read-only property." msgstr "" +"El patrón del nombre de archivo del filtro (``str``). Propiedad solo-lectura." #: ../Doc/library/tracemalloc.rst:439 msgid "" "If *all_frames* is ``True``, all frames of the traceback are checked. If " "*all_frames* is ``False``, only the most recent frame is checked." msgstr "" +"Si *all_frames* es ``True``, todos los cuadros de los rastreos son " +"chequeados. Si *all_frames* es ``False``, solo el cuadro mas reciente es " +"chequeado." #: ../Doc/library/tracemalloc.rst:442 msgid "" @@ -407,50 +529,63 @@ msgid "" "`get_traceback_limit` function and :attr:`Snapshot.traceback_limit` " "attribute." msgstr "" +"El atributo no tiene efecto si el limite de rastreo es ``1``. Mira la " +"función :func:`get_traceback_limit` y el atributo :attr:`Snapshot." +"traceback_limit`." #: ../Doc/library/tracemalloc.rst:448 msgid "Frame" -msgstr "" +msgstr "Cuadro" #: ../Doc/library/tracemalloc.rst:452 msgid "Frame of a traceback." -msgstr "" +msgstr "Cuadro de un rastreo." #: ../Doc/library/tracemalloc.rst:454 msgid "The :class:`Traceback` class is a sequence of :class:`Frame` instances." msgstr "" +"La clase :class:`Traceback` es una secuencia de las instancias de la clase :" +"class:`Frame`." #: ../Doc/library/tracemalloc.rst:458 msgid "Filename (``str``)." -msgstr "" +msgstr "Nombre de archivo (``str``)." #: ../Doc/library/tracemalloc.rst:462 msgid "Line number (``int``)." -msgstr "" +msgstr "Número de línea (``int``)." #: ../Doc/library/tracemalloc.rst:466 msgid "Snapshot" -msgstr "" +msgstr "Captura instantánea" #: ../Doc/library/tracemalloc.rst:470 msgid "Snapshot of traces of memory blocks allocated by Python." msgstr "" +"Captura instantánea de los rastros de los bloques de memoria asignados por " +"Python." #: ../Doc/library/tracemalloc.rst:472 msgid "The :func:`take_snapshot` function creates a snapshot instance." msgstr "" +"La función :func:`take_snapshot` crea una instancia de captura instantánea." #: ../Doc/library/tracemalloc.rst:476 msgid "" "Compute the differences with an old snapshot. Get statistics as a sorted " "list of :class:`StatisticDiff` instances grouped by *key_type*." msgstr "" +"Calcula las diferencias con una vieja captura instantánea. Obtiene las " +"estadísticas en una lista ordenada de instancias de la clase :class:" +"`StatisticDiff` agrupadas por *key_type*." #: ../Doc/library/tracemalloc.rst:479 msgid "" "See the :meth:`Snapshot.statistics` method for *key_type* and *cumulative* " "parameters." msgstr "" +"Mira el método :meth:`Snapshot.statistics` para los parámetros *key_type* y " +"*cumulative*." #: ../Doc/library/tracemalloc.rst:482 msgid "" @@ -459,14 +594,18 @@ msgid "" "of :attr:`StatisticDiff.count_diff`, :attr:`Statistic.count` and then by :" "attr:`StatisticDiff.traceback`." msgstr "" +"El resultado esta guardado desde el más grande al más pequeño por los " +"valores absolutos de :meth:`StatisticDiff.size_diff`, :meth:`StatisticDiff." +"size`, el valor absoluto de :meth:`StatisticDiff.count_diff`, :meth:" +"`Statistic.count` y después por el atributo :meth:`StatisticDiff.traceback`." #: ../Doc/library/tracemalloc.rst:490 msgid "Write the snapshot into a file." -msgstr "" +msgstr "Escribe la captura instantánea en un archivo." #: ../Doc/library/tracemalloc.rst:492 msgid "Use :meth:`load` to reload the snapshot." -msgstr "" +msgstr "Usa el método :meth:`load` para recargar la captura instantánea." #: ../Doc/library/tracemalloc.rst:497 msgid "" @@ -475,6 +614,10 @@ msgid "" "instances. If *filters* is an empty list, return a new :class:`Snapshot` " "instance with a copy of the traces." 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 " +"una nueva instancia de clase :class:`Snapshot` con una copia de los rastreos." #: ../Doc/library/tracemalloc.rst:502 msgid "" @@ -482,56 +625,63 @@ msgid "" "inclusive filters match it. A trace is ignored if at least one exclusive " "filter matches it." msgstr "" +"Los filtros ``todo incluido`` se aplican de a uno, si los filtros no " +"incluidos coinciden. Si al menos un filtro exclusivo coincide, se ignora un " +"rastro." #: ../Doc/library/tracemalloc.rst:506 msgid ":class:`DomainFilter` instances are now also accepted in *filters*." msgstr "" +"Las instancias de clase :class:`DomainFilter` ahora también son aceptadas en " +"*filters*." #: ../Doc/library/tracemalloc.rst:512 msgid "Load a snapshot from a file." -msgstr "" +msgstr "Carga la captura instantánea desde un archivo." #: ../Doc/library/tracemalloc.rst:514 msgid "See also :meth:`dump`." -msgstr "" +msgstr "También mira el método :meth:`dump`." #: ../Doc/library/tracemalloc.rst:519 msgid "" "Get statistics as a sorted list of :class:`Statistic` instances grouped by " "*key_type*:" msgstr "" +"Obtiene estadísticas como una lista ordenada, de instancias de :class:" +"`Statistic` agrupadas por *key_type*:" #: ../Doc/library/tracemalloc.rst:523 msgid "key_type" -msgstr "" +msgstr "key_type" #: ../Doc/library/tracemalloc.rst:523 msgid "description" -msgstr "" +msgstr "descripción" #: ../Doc/library/tracemalloc.rst:525 msgid "``'filename'``" -msgstr "" +msgstr "``'filename'``" #: ../Doc/library/tracemalloc.rst:525 msgid "filename" -msgstr "" +msgstr "nombre del archivo" #: ../Doc/library/tracemalloc.rst:526 msgid "``'lineno'``" -msgstr "" +msgstr "``'lineno'``" #: ../Doc/library/tracemalloc.rst:526 msgid "filename and line number" -msgstr "" +msgstr "nombre del archivo y número de línea" #: ../Doc/library/tracemalloc.rst:527 msgid "``'traceback'``" -msgstr "" +msgstr "``'traceback'``" #: ../Doc/library/tracemalloc.rst:527 msgid "traceback" -msgstr "" +msgstr "seguimiento" #: ../Doc/library/tracemalloc.rst:530 msgid "" @@ -540,82 +690,107 @@ msgid "" "cumulative mode can only be used with *key_type* equals to ``'filename'`` " "and ``'lineno'``." msgstr "" +"Si *cumulative* es ``True``, acumula el tamaño y cuenta los bloques de " +"memoria de todos los cuadros del seguimiento de un rastro, no solo el cuadro " +"mas reciente. El modo acumulativo solo puede ser usado cuando *key_type* se " +"iguala a ``'filename'`` y ``'lineno'``." #: ../Doc/library/tracemalloc.rst:535 msgid "" "The result is sorted from the biggest to the smallest by: :attr:`Statistic." "size`, :attr:`Statistic.count` and then by :attr:`Statistic.traceback`." msgstr "" +"El resultado se organiza desde el más grande hasta el más pequeño por el " +"atributo :attr:`Statistic.size`, :attr:`Statistic.count` y después por :attr:" +"`Statistic.traceback`." #: ../Doc/library/tracemalloc.rst:542 msgid "" "Maximum number of frames stored in the traceback of :attr:`traces`: result " "of the :func:`get_traceback_limit` when the snapshot was taken." msgstr "" +"El número máximo de cuadros organizados en el rastreo del atributo :attr:" +"`traces`: resulta de la función :attr:`get_traceback_limit` cuando la " +"captura instantánea fue tomada." #: ../Doc/library/tracemalloc.rst:547 msgid "" "Traces of all memory blocks allocated by Python: sequence of :class:`Trace` " "instances." msgstr "" +"Rastros de todos los bloques de memoria asignados por Python: secuencia de " +"instancias de :class:`Trace`." #: ../Doc/library/tracemalloc.rst:550 msgid "" "The sequence has an undefined order. Use the :meth:`Snapshot.statistics` " "method to get a sorted list of statistics." msgstr "" +"La secuencia tiene un orden que no esta definido. Usa el método :meth:" +"`Snapshot.statistics` para obtener una lista ordenada de estadísticas." #: ../Doc/library/tracemalloc.rst:555 msgid "Statistic" -msgstr "" +msgstr "Estadística" #: ../Doc/library/tracemalloc.rst:559 msgid "Statistic on memory allocations." -msgstr "" +msgstr "Estadística de las asignaciones de memoria." #: ../Doc/library/tracemalloc.rst:561 msgid "" ":func:`Snapshot.statistics` returns a list of :class:`Statistic` instances." msgstr "" +":func:`Snapshot.statistics` retorna una lista de instancias de la clase :" +"class:`Statistic`." #: ../Doc/library/tracemalloc.rst:563 msgid "See also the :class:`StatisticDiff` class." -msgstr "" +msgstr "También mira la clase :class:`StatisticDiff`." #: ../Doc/library/tracemalloc.rst:567 msgid "Number of memory blocks (``int``)." -msgstr "" +msgstr "Número de bloques de memoria (``int``)." #: ../Doc/library/tracemalloc.rst:571 msgid "Total size of memory blocks in bytes (``int``)." -msgstr "" +msgstr "El tamaño total de los bloques de memoria en bytes (``int``)." #: ../Doc/library/tracemalloc.rst:575 ../Doc/library/tracemalloc.rst:644 msgid "" "Traceback where the memory block was allocated, :class:`Traceback` instance." msgstr "" +"Rastrea donde un bloque de memoria fue asignado, la instancia de la clase :" +"class:`Traceback`." #: ../Doc/library/tracemalloc.rst:580 msgid "StatisticDiff" -msgstr "" +msgstr "StatisticDiff" #: ../Doc/library/tracemalloc.rst:584 msgid "" "Statistic difference on memory allocations between an old and a new :class:" "`Snapshot` instance." msgstr "" +"La diferencia de estadística en las asignaciones de memoria entre una vieja " +"y una nueva instancia de clase :class:`Snapshot`." #: ../Doc/library/tracemalloc.rst:587 msgid "" ":func:`Snapshot.compare_to` returns a list of :class:`StatisticDiff` " "instances. See also the :class:`Statistic` class." msgstr "" +":func:`Snapshot.compare_to` retorna una lista de instancias de la clase :" +"class:`StatisticDiff`. Mira también la clase :class:`Statistic`." #: ../Doc/library/tracemalloc.rst:592 msgid "" "Number of memory blocks in the new snapshot (``int``): ``0`` if the memory " "blocks have been released in the new snapshot." msgstr "" +"El número de bloques de memoria en la nueva captura de pantalla (``int``): " +"``0`` si los bloques de memoria han sido liberados en la nueva captura " +"instantánea." #: ../Doc/library/tracemalloc.rst:597 msgid "" @@ -623,12 +798,18 @@ msgid "" "(``int``): ``0`` if the memory blocks have been allocated in the new " "snapshot." msgstr "" +"La diferencia de los números de los bloques de memoria entre las capturas " +"viejas y nuevas (``int``): ``0`` si el bloque de memoria ha sido asignado en " +"la nueva captura instantánea." #: ../Doc/library/tracemalloc.rst:603 msgid "" "Total size of memory blocks in bytes in the new snapshot (``int``): ``0`` if " "the memory blocks have been released in the new snapshot." msgstr "" +"El tamaño total de los bloques de memoria en bytes en la nueva captura " +"instantánea (``int``): ``0`` si el bloque de memoria ha sido liberado en la " +"nueva captura instantánea." #: ../Doc/library/tracemalloc.rst:608 msgid "" @@ -636,40 +817,49 @@ msgid "" "new snapshots (``int``): ``0`` if the memory blocks have been allocated in " "the new snapshot." msgstr "" +"La diferencia de el tamaño total de un bloque de memoria en bytes entre las " +"capturas instantáneas viejas y nuevas (``int``): ``0`` si el bloque de " +"memoria ha sido asignado en la nueva captura instantánea." #: ../Doc/library/tracemalloc.rst:614 msgid "" "Traceback where the memory blocks were allocated, :class:`Traceback` " "instance." msgstr "" +"Rastrea donde los bloques de memoria han sido asignados, instancia de la " +"clase :class:`Traceback`." #: ../Doc/library/tracemalloc.rst:619 msgid "Trace" -msgstr "" +msgstr "Rastro" #: ../Doc/library/tracemalloc.rst:623 msgid "Trace of a memory block." -msgstr "" +msgstr "Rastro de un bloque de memoria." #: ../Doc/library/tracemalloc.rst:625 msgid "" "The :attr:`Snapshot.traces` attribute is a sequence of :class:`Trace` " "instances." msgstr "" +"El atributo :attr:`Snapshot.traces` es una secuencia de las instancias de la " +"clase :class:`Trace`." #: ../Doc/library/tracemalloc.rst:640 msgid "Size of the memory block in bytes (``int``)." -msgstr "" +msgstr "Tamaño de un bloque de memoria en bytes (``int``)." #: ../Doc/library/tracemalloc.rst:649 msgid "Traceback" -msgstr "" +msgstr "Seguimiento" #: ../Doc/library/tracemalloc.rst:653 msgid "" "Sequence of :class:`Frame` instances sorted from the oldest frame to the " "most recent frame." msgstr "" +"La secuencia de las instancias de la clase :class:`Frame` organizadas desde " +"el cuadro mas antiguo al más reciente." #: ../Doc/library/tracemalloc.rst:656 msgid "" @@ -677,24 +867,34 @@ msgid "" "failed to get a frame, the filename ``\"\"`` at line number ``0`` " "is used." msgstr "" +"Un seguimiento contiene por lo menos ``1`` cuadro. Si el módulo " +"``tracemalloc`` falla al traer un cuadro, se usa el nombre del archivo ``" +"\"\"`` en el número de linea ``0``." #: ../Doc/library/tracemalloc.rst:660 msgid "" "When a snapshot is taken, tracebacks of traces are limited to :func:" "`get_traceback_limit` frames. See the :func:`take_snapshot` function." msgstr "" +"Cuando se toma una captura instantánea, los seguimientos de los rastros son " +"limitados a :func:`get_traceback_limit` cuadros. Mira la función :func:" +"`take_snapshot`." #: ../Doc/library/tracemalloc.rst:663 msgid "" "The :attr:`Trace.traceback` attribute is an instance of :class:`Traceback` " "instance." msgstr "" +"El atributo :attr:`Trace.traceback` es una instancia de la clase :class:" +"`Traceback`." #: ../Doc/library/tracemalloc.rst:666 msgid "" "Frames are now sorted from the oldest to the most recent, instead of most " "recent to oldest." msgstr "" +"Los cuadros están organizados desde el mas antiguo hasta el más reciente, en " +"vez de el más reciente al más antiguo." #: ../Doc/library/tracemalloc.rst:671 msgid "" @@ -705,17 +905,25 @@ msgid "" "is ``True``, the order of the formatted frames is reversed, returning the " "most recent frame first instead of last." msgstr "" +"Formatea el seguimiento como una lista de líneas con nuevas líneas. Usa el " +"módulo :mod:`linecache` para obtener líneas del código fuente. Si se " +"establece *limit*, si *limit* es positivo: formatea el cuadro mas reciente. " +"Si no, formatea los ``abs(limit)`` cuadros más antiguos. Si " +"*most_recent_first* es ``True``, el orden de los cuadros formateados es " +"invertido, retornando primero el cuadro más reciente en vez del último." #: ../Doc/library/tracemalloc.rst:678 msgid "" "Similar to the :func:`traceback.format_tb` function, except that :meth:`." "format` does not include newlines." msgstr "" +"Similar a la función :func:`traceback.format_tb`, excepto por el método :" +"meth:`.format` que no incluye nuevas líneas." #: ../Doc/library/tracemalloc.rst:681 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/library/tracemalloc.rst:687 msgid "Output::" -msgstr "" +msgstr "Salida::" diff --git a/library/tty.po b/library/tty.po index cf619bd209..0c8c1f64c7 100644 --- a/library/tty.po +++ b/library/tty.po @@ -1,44 +1,49 @@ # 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-02-02 10:07-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/tty.rst:2 msgid ":mod:`tty` --- Terminal control functions" -msgstr "" +msgstr ":mod:`tty` --- Funciones de control de terminal" #: ../Doc/library/tty.rst:11 msgid "**Source code:** :source:`Lib/tty.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/tty.py`" #: ../Doc/library/tty.rst:15 msgid "" "The :mod:`tty` module defines functions for putting the tty into cbreak and " "raw modes." msgstr "" +"El módulo :mod:`tty` define funciones para poner la tty en los modos " +"*cbreak* y *raw*." #: ../Doc/library/tty.rst:18 msgid "" "Because it requires the :mod:`termios` module, it will work only on Unix." msgstr "" +"Dado que requiere el módulo :mod:`termios`, solamente funciona en Unix." #: ../Doc/library/tty.rst:20 msgid "The :mod:`tty` module defines the following functions:" -msgstr "" +msgstr "El módulo :mod:`tty` define las siguientes funciones:" #: ../Doc/library/tty.rst:25 msgid "" @@ -46,6 +51,9 @@ msgid "" "defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." "tcsetattr`." msgstr "" +"Cambia el modo del descriptor de archivo *fd* a *raw*. Si se omite *when*, " +"el valor por defecto es :const:`termios.TCSAFLUSH`, que se pasa a :func:" +"`termios.tcsetattr`." #: ../Doc/library/tty.rst:32 msgid "" @@ -53,11 +61,14 @@ msgid "" "defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." "tcsetattr`." msgstr "" +"Cambia el modo del descriptor de archivo *fd* a *cbreak*. Si se omite " +"*when*, el valor por defecto es :const:`termios.TCSAFLUSH`, que se pasa a :" +"func:`termios.tcsetattr`." #: ../Doc/library/tty.rst:39 msgid "Module :mod:`termios`" -msgstr "" +msgstr "Módulo :mod:`termios`" #: ../Doc/library/tty.rst:40 msgid "Low-level terminal control interface." -msgstr "" +msgstr "Interfaz de control de la terminal de bajo nivel." diff --git a/library/turtle.po b/library/turtle.po index 77172c1de2..a1010c8849 100644 --- a/library/turtle.po +++ b/library/turtle.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-03-03 21:47-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" +"X-Generator: Poedit 2.4.2\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es_AR\n" #: ../Doc/library/turtle.rst:3 msgid ":mod:`turtle` --- Turtle graphics" -msgstr "" +msgstr ":mod:`turtle` --- Gráficos con *Turtle*" #: ../Doc/library/turtle.rst:10 msgid "**Source code:** :source:`Lib/turtle.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/turtle.py`" #: ../Doc/library/turtle.rst:20 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/library/turtle.rst:22 msgid "" @@ -38,6 +40,9 @@ msgid "" "was part of the original Logo programming language developed by Wally " "Feurzeig, Seymour Papert and Cynthia Solomon in 1967." msgstr "" +"Gráficas Turtle es una forma muy habitual de introducción a la programación " +"para niñas y niños. Era parte original del lenguaje de programación Logo, " +"desarrollado por Wally Feurzeig, Seymour Papert y Cynthia Solomon en 1967." #: ../Doc/library/turtle.rst:26 msgid "" @@ -47,23 +52,34 @@ msgid "" "moves. Give it the command ``turtle.right(25)``, and it rotates in-place 25 " "degrees clockwise." msgstr "" +"Imagina una tortuga robot que empieza en las coordenadas (0, 0) en un plano " +"x-y. Después de un ``import turtle``, dele el comando ``turtle." +"forward(15)``, y se mueve (¡en la pantalla!) 15 pixeles en la dirección en " +"la que se encuentra, dibujando una línea mientras se mueve. Dele el comando " +"``turtle.right(25)``, y rotará en el lugar, 25 grados, en sentido horario." #: ../Doc/library/turtle.rst:33 msgid "" "Turtle can draw intricate shapes using programs that repeat simple moves." msgstr "" +"Turtle puede dibujar figuras intrincadas usando programas que repiten " +"movimientos simples." #: ../Doc/library/turtle.rst:41 msgid "" "By combining together these and similar commands, intricate shapes and " "pictures can easily be drawn." msgstr "" +"Al combinar estos comandos y otros similares, se pueden dibujar figuras " +"intrincadas y formas." #: ../Doc/library/turtle.rst:44 msgid "" "The :mod:`turtle` module is an extended reimplementation of the same-named " "module from the Python standard distribution up to version Python 2.5." msgstr "" +"El módulo :mod:`turtle` es una reimplementación extendida del mismo módulo " +"de la distribución estándar Python hasta la versión 2.5." #: ../Doc/library/turtle.rst:47 #, python-format @@ -74,6 +90,11 @@ msgid "" "interactively when using the module from within IDLE run with the ``-n`` " "switch." msgstr "" +"Trata de mantener los méritos del viejo módulo y ser (casi) 100% compatible " +"con él. Esto implica en primer lugar, habilitar al programador que está " +"aprendiendo, el uso de todos los comandos, clases y métodos de forma " +"interactiva cuando usa el módulo desde el IDLE ejecutado con la opción ``-" +"n``." #: ../Doc/library/turtle.rst:52 msgid "" @@ -82,10 +103,14 @@ msgid "" "the underlying graphics, it needs a version of Python installed with Tk " "support." msgstr "" +"El módulo turtle provee las primitivas gráficas, tanto en orientación " +"procedimental como orientada a objetos. Como usa el módulo :mod:`tkinter` " +"para las gráficas subyacentes, necesita tener instalada una versión de " +"Python con soporte TK." #: ../Doc/library/turtle.rst:56 msgid "The object-oriented interface uses essentially two+two classes:" -msgstr "" +msgstr "La interface orientada a objetos usa esencialmente clases dos+dos:" #: ../Doc/library/turtle.rst:58 msgid "" @@ -94,6 +119,10 @@ msgid "" "class:`ScrolledCanvas` as argument. It should be used when :mod:`turtle` is " "used as part of some application." msgstr "" +"La clase :class:`TurtleScreen` define una ventana gráfica como base para las " +"tortugas dibujantes. Su constructor necesita una clase :class:`tkinter." +"Canvas` o una a :class:`ScrolledCanvas` como argumento. Se debe usar cuando :" +"mod:`turtle` es usado como parte de una aplicación." #: ../Doc/library/turtle.rst:63 msgid "" @@ -102,12 +131,18 @@ msgid "" "used as a standalone tool for doing graphics. As a singleton object, " "inheriting from its class is not possible." msgstr "" +"La función :func:`Screen` devuelve un objeto *singleton* de la subclase :" +"class:`TurtleScreen`. Esta función debe utilizarse cuando :mod:`turtle` se " +"usa como una herramienta independiente para hacer gráficos. Siendo un objeto " +"singleton, no es posible que tenga herencias de su clase." #: ../Doc/library/turtle.rst:68 msgid "" "All methods of TurtleScreen/Screen also exist as functions, i.e. as part of " "the procedure-oriented interface." msgstr "" +"Todos los métodos de TurtleScreen/Screen también existen como funciones. Por " +"ejemplo. como parte de la interface orientada a procedimientos." #: ../Doc/library/turtle.rst:71 msgid "" @@ -116,6 +151,10 @@ msgid "" "ScrolledCanvas or TurtleScreen as argument, so the RawTurtle objects know " "where to draw." msgstr "" +":class:`RawTurtle` (alias: :class:`RawPen`) Define los objetos Turtle con " +"los cuales dibujar con la clase :class:`TurtleScreen`. Su constructor " +"necesita como argumento un *Canvas, ScrolledCanvas o TurtleScreen*, así el " +"objeto *RawTurtle* sabe donde dibujar." #: ../Doc/library/turtle.rst:75 msgid "" @@ -123,12 +162,17 @@ msgid "" "`Pen`), which draws on \"the\" :class:`Screen` instance which is " "automatically created, if not already present." msgstr "" +"Derivada de *RawTurtle* está la subclase :class:`Turtle` (alias: :class:" +"`Pen`), que dibuja en \"la\" instancia :class:`Screen` que se crea " +"automáticamente, si no está presente." #: ../Doc/library/turtle.rst:79 msgid "" "All methods of RawTurtle/Turtle also exist as functions, i.e. part of the " "procedure-oriented interface." msgstr "" +"Todos los métodos de *RawTurtle/Turtle* también existen como funciones. Por " +"ejemplo, como parte de la interface orientada a procedimientos." #: ../Doc/library/turtle.rst:82 msgid "" @@ -139,12 +183,20 @@ msgid "" "(unnamed) turtle object is automatically created whenever any of the " "functions derived from a Turtle method is called." msgstr "" +"La interface procedimental provee funciones que son derivadas de los métodos " +"de las clases :class:`Screen` y :class:`Turtle`. Tienen los mismos nombres " +"que los métodos correspondientes. Un objeto *Screen* es creado " +"automáticamente cada vez que una función derivada de un método *Screen* es " +"llamado. Un objeto *Turtle* (innombrado) se crea automáticamente cada vez " +"que se llama a una función derivada de un método *Turtle*." #: ../Doc/library/turtle.rst:89 msgid "" "To use multiple turtles on a screen one has to use the object-oriented " "interface." msgstr "" +"Para usar varias tortugas en una pantalla se tiene que usar la interface " +"orientada a objetos." #: ../Doc/library/turtle.rst:92 msgid "" @@ -152,496 +204,505 @@ msgid "" "Methods, of course, have the additional first argument *self* which is " "omitted here." msgstr "" +"En la siguiente documentación se proporciona la listas de argumentos para " +"las funciones. Los métodos, por su puesto, tienen el argumento principal " +"adicional *self* que se omite aquí." #: ../Doc/library/turtle.rst:98 msgid "Overview of available Turtle and Screen methods" -msgstr "" +msgstr "Reseña de los métodos disponibles para Turtle y *Screen*" #: ../Doc/library/turtle.rst:101 msgid "Turtle methods" -msgstr "" +msgstr "Métodos Turtle" #: ../Doc/library/turtle.rst:132 ../Doc/library/turtle.rst:242 msgid "Turtle motion" -msgstr "" +msgstr "Movimiento de Turtle" #: ../Doc/library/turtle.rst:120 msgid "Move and draw" -msgstr "" +msgstr "Mover y dibujar" #: ../Doc/library/turtle.rst msgid ":func:`forward` | :func:`fd`" -msgstr "" +msgstr ":func:`forward` | :func:`fd`" #: ../Doc/library/turtle.rst msgid ":func:`backward` | :func:`bk` | :func:`back`" -msgstr "" +msgstr ":func:`backward` | :func:`bk` | :func:`back`" #: ../Doc/library/turtle.rst msgid ":func:`right` | :func:`rt`" -msgstr "" +msgstr ":func:`right` | :func:`rt`" #: ../Doc/library/turtle.rst msgid ":func:`left` | :func:`lt`" -msgstr "" +msgstr ":func:`left` | :func:`lt`" #: ../Doc/library/turtle.rst msgid ":func:`goto` | :func:`setpos` | :func:`setposition`" -msgstr "" +msgstr ":func:`goto` | :func:`setpos` | :func:`setposition`" #: ../Doc/library/turtle.rst msgid ":func:`setx`" -msgstr "" +msgstr ":func:`setx`" #: ../Doc/library/turtle.rst msgid ":func:`sety`" -msgstr "" +msgstr ":func:`sety`" #: ../Doc/library/turtle.rst msgid ":func:`setheading` | :func:`seth`" -msgstr "" +msgstr ":func:`setheading` | :func:`seth`" #: ../Doc/library/turtle.rst msgid ":func:`home`" -msgstr "" +msgstr ":func:`home`" #: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2456 msgid ":func:`circle`" -msgstr "" +msgstr ":func:`circle`" #: ../Doc/library/turtle.rst msgid ":func:`dot`" -msgstr "" +msgstr ":func:`dot`" #: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2434 msgid ":func:`stamp`" -msgstr "" +msgstr ":func:`stamp`" #: ../Doc/library/turtle.rst msgid ":func:`clearstamp`" -msgstr "" +msgstr ":func:`clearstamp`" #: ../Doc/library/turtle.rst msgid ":func:`clearstamps`" -msgstr "" +msgstr ":func:`clearstamps`" #: ../Doc/library/turtle.rst msgid ":func:`undo`" -msgstr "" +msgstr ":func:`undo`" #: ../Doc/library/turtle.rst msgid ":func:`speed`" -msgstr "" +msgstr ":func:`speed`" #: ../Doc/library/turtle.rst:128 ../Doc/library/turtle.rst:644 msgid "Tell Turtle's state" -msgstr "" +msgstr "Mostrar el estado de la tortuga" #: ../Doc/library/turtle.rst msgid ":func:`position` | :func:`pos`" -msgstr "" +msgstr ":func:`position` | :func:`pos`" #: ../Doc/library/turtle.rst msgid ":func:`towards`" -msgstr "" +msgstr ":func:`towards`" #: ../Doc/library/turtle.rst msgid ":func:`xcor`" -msgstr "" +msgstr ":func:`xcor`" #: ../Doc/library/turtle.rst msgid ":func:`ycor`" -msgstr "" +msgstr ":func:`ycor`" #: ../Doc/library/turtle.rst msgid ":func:`heading`" -msgstr "" +msgstr ":func:`heading`" #: ../Doc/library/turtle.rst msgid ":func:`distance`" -msgstr "" +msgstr ":func:`distance`" #: ../Doc/library/turtle.rst:132 msgid "Setting and measurement" -msgstr "" +msgstr "Ajuste y unidades de medida" #: ../Doc/library/turtle.rst msgid ":func:`degrees`" -msgstr "" +msgstr ":func:`degrees`" #: ../Doc/library/turtle.rst msgid ":func:`radians`" -msgstr "" +msgstr ":func:`radians`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:795 msgid "Pen control" -msgstr "" +msgstr "Control del lápiz" #: ../Doc/library/turtle.rst:140 ../Doc/library/turtle.rst:798 msgid "Drawing state" -msgstr "" +msgstr "Estado de dibujo" #: ../Doc/library/turtle.rst msgid ":func:`pendown` | :func:`pd` | :func:`down`" -msgstr "" +msgstr ":func:`pendown` | :func:`pd` | :func:`down`" #: ../Doc/library/turtle.rst msgid ":func:`penup` | :func:`pu` | :func:`up`" -msgstr "" +msgstr ":func:`penup` | :func:`pu` | :func:`up`" #: ../Doc/library/turtle.rst msgid ":func:`pensize` | :func:`width`" -msgstr "" +msgstr ":func:`pensize` | :func:`width`" #: ../Doc/library/turtle.rst msgid ":func:`pen`" -msgstr "" +msgstr ":func:`pen`" #: ../Doc/library/turtle.rst msgid ":func:`isdown`" -msgstr "" +msgstr ":func:`isdown`" #: ../Doc/library/turtle.rst:145 ../Doc/library/turtle.rst:890 msgid "Color control" -msgstr "" +msgstr "Control del color" #: ../Doc/library/turtle.rst msgid ":func:`color`" -msgstr "" +msgstr ":func:`color`" #: ../Doc/library/turtle.rst msgid ":func:`pencolor`" -msgstr "" +msgstr ":func:`pencolor`" #: ../Doc/library/turtle.rst msgid ":func:`fillcolor`" -msgstr "" +msgstr ":func:`fillcolor`" #: ../Doc/library/turtle.rst:150 ../Doc/library/turtle.rst:1022 msgid "Filling" -msgstr "" +msgstr "Relleno" #: ../Doc/library/turtle.rst msgid ":func:`filling`" -msgstr "" +msgstr ":func:`filling`" #: ../Doc/library/turtle.rst msgid ":func:`begin_fill`" -msgstr "" +msgstr ":func:`begin_fill`" #: ../Doc/library/turtle.rst msgid ":func:`end_fill`" -msgstr "" +msgstr ":func:`end_fill`" #: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:1069 msgid "More drawing control" -msgstr "" +msgstr "Más controles de dibujo" #: ../Doc/library/turtle.rst msgid ":func:`reset`" -msgstr "" +msgstr ":func:`reset`" #: ../Doc/library/turtle.rst msgid ":func:`clear`" -msgstr "" +msgstr ":func:`clear`" #: ../Doc/library/turtle.rst msgid ":func:`write`" -msgstr "" +msgstr ":func:`write`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1115 msgid "Turtle state" -msgstr "" +msgstr "Estado de la Tortuga" #: ../Doc/library/turtle.rst:161 ../Doc/library/turtle.rst:1118 msgid "Visibility" -msgstr "" +msgstr "Visibilidad" #: ../Doc/library/turtle.rst msgid ":func:`showturtle` | :func:`st`" -msgstr "" +msgstr ":func:`showturtle` | :func:`st`" #: ../Doc/library/turtle.rst msgid ":func:`hideturtle` | :func:`ht`" -msgstr "" +msgstr ":func:`hideturtle` | :func:`ht`" #: ../Doc/library/turtle.rst msgid ":func:`isvisible`" -msgstr "" +msgstr ":func:`isvisible`" #: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1157 msgid "Appearance" -msgstr "" +msgstr "Apariencia" #: ../Doc/library/turtle.rst msgid ":func:`shape`" -msgstr "" +msgstr ":func:`shape`" #: ../Doc/library/turtle.rst msgid ":func:`resizemode`" -msgstr "" +msgstr ":func:`resizemode`" #: ../Doc/library/turtle.rst msgid ":func:`shapesize` | :func:`turtlesize`" -msgstr "" +msgstr ":func:`shapesize` | :func:`turtlesize`" #: ../Doc/library/turtle.rst msgid ":func:`shearfactor`" -msgstr "" +msgstr ":func:`shearfactor`" #: ../Doc/library/turtle.rst msgid ":func:`settiltangle`" -msgstr "" +msgstr ":func:`settiltangle`" #: ../Doc/library/turtle.rst msgid ":func:`tiltangle`" -msgstr "" +msgstr ":func:`tiltangle`" #: ../Doc/library/turtle.rst msgid ":func:`tilt`" -msgstr "" +msgstr ":func:`tilt`" #: ../Doc/library/turtle.rst msgid ":func:`shapetransform`" -msgstr "" +msgstr ":func:`shapetransform`" #: ../Doc/library/turtle.rst msgid ":func:`get_shapepoly`" -msgstr "" +msgstr ":func:`get_shapepoly`" #: ../Doc/library/turtle.rst:177 ../Doc/library/turtle.rst:1362 msgid "Using events" -msgstr "" +msgstr "Usando eventos" #: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2428 msgid ":func:`onclick`" -msgstr "" +msgstr ":func:`onclick`" #: ../Doc/library/turtle.rst msgid ":func:`onrelease`" -msgstr "" +msgstr ":func:`onrelease`" #: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2411 msgid ":func:`ondrag`" -msgstr "" +msgstr ":func:`ondrag`" #: ../Doc/library/turtle.rst:188 ../Doc/library/turtle.rst:1435 msgid "Special Turtle methods" -msgstr "" +msgstr "Métodos especiales de *Turtle*" #: ../Doc/library/turtle.rst msgid ":func:`begin_poly`" -msgstr "" +msgstr ":func:`begin_poly`" #: ../Doc/library/turtle.rst msgid ":func:`end_poly`" -msgstr "" +msgstr ":func:`end_poly`" #: ../Doc/library/turtle.rst msgid ":func:`get_poly`" -msgstr "" +msgstr ":func:`get_poly`" #: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2447 msgid ":func:`clone`" -msgstr "" +msgstr ":func:`clone`" #: ../Doc/library/turtle.rst msgid ":func:`getturtle` | :func:`getpen`" -msgstr "" +msgstr ":func:`getturtle` | :func:`getpen`" #: ../Doc/library/turtle.rst msgid ":func:`getscreen`" -msgstr "" +msgstr ":func:`getscreen`" #: ../Doc/library/turtle.rst msgid ":func:`setundobuffer`" -msgstr "" +msgstr ":func:`setundobuffer`" #: ../Doc/library/turtle.rst msgid ":func:`undobufferentries`" -msgstr "" +msgstr ":func:`undobufferentries`" #: ../Doc/library/turtle.rst:191 msgid "Methods of TurtleScreen/Screen" -msgstr "" +msgstr "Métodos de TurtleScreen/Screen" #: ../Doc/library/turtle.rst:199 ../Doc/library/turtle.rst:1589 msgid "Window control" -msgstr "" +msgstr "Control de ventana" #: ../Doc/library/turtle.rst msgid ":func:`bgcolor`" -msgstr "" +msgstr ":func:`bgcolor`" #: ../Doc/library/turtle.rst msgid ":func:`bgpic`" -msgstr "" +msgstr ":func:`bgpic`" #: ../Doc/library/turtle.rst msgid ":func:`clear` | :func:`clearscreen`" -msgstr "" +msgstr ":func:`clear` | :func:`clearscreen`" #: ../Doc/library/turtle.rst msgid ":func:`reset` | :func:`resetscreen`" -msgstr "" +msgstr ":func:`reset` | :func:`resetscreen`" #: ../Doc/library/turtle.rst msgid ":func:`screensize`" -msgstr "" +msgstr ":func:`screensize`" #: ../Doc/library/turtle.rst msgid ":func:`setworldcoordinates`" -msgstr "" +msgstr ":func:`setworldcoordinates`" #: ../Doc/library/turtle.rst:204 ../Doc/library/turtle.rst:1706 msgid "Animation control" -msgstr "" +msgstr "Control de animación" #: ../Doc/library/turtle.rst msgid ":func:`delay`" -msgstr "" +msgstr ":func:`delay`" #: ../Doc/library/turtle.rst msgid ":func:`tracer`" -msgstr "" +msgstr ":func:`tracer`" #: ../Doc/library/turtle.rst msgid ":func:`update`" -msgstr "" +msgstr ":func:`update`" #: ../Doc/library/turtle.rst:212 ../Doc/library/turtle.rst:1759 msgid "Using screen events" -msgstr "" +msgstr "Usando eventos de pantalla" #: ../Doc/library/turtle.rst msgid ":func:`listen`" -msgstr "" +msgstr ":func:`listen`" #: ../Doc/library/turtle.rst msgid ":func:`onkey` | :func:`onkeyrelease`" -msgstr "" +msgstr ":func:`onkey` | :func:`onkeyrelease`" #: ../Doc/library/turtle.rst msgid ":func:`onkeypress`" -msgstr "" +msgstr ":func:`onkeypress`" #: ../Doc/library/turtle.rst msgid ":func:`onclick` | :func:`onscreenclick`" -msgstr "" +msgstr ":func:`onclick` | :func:`onscreenclick`" #: ../Doc/library/turtle.rst msgid ":func:`ontimer`" -msgstr "" +msgstr ":func:`ontimer`" #: ../Doc/library/turtle.rst msgid ":func:`mainloop` | :func:`done`" -msgstr "" +msgstr ":func:`mainloop` | :func:`done`" #: ../Doc/library/turtle.rst:222 ../Doc/library/turtle.rst:1904 msgid "Settings and special methods" -msgstr "" +msgstr "Configuración y métodos especiales" #: ../Doc/library/turtle.rst msgid ":func:`mode`" -msgstr "" +msgstr ":func:`mode`" #: ../Doc/library/turtle.rst msgid ":func:`colormode`" -msgstr "" +msgstr ":func:`colormode`" #: ../Doc/library/turtle.rst msgid ":func:`getcanvas`" -msgstr "" +msgstr ":func:`getcanvas`" #: ../Doc/library/turtle.rst msgid ":func:`getshapes`" -msgstr "" +msgstr ":func:`getshapes`" #: ../Doc/library/turtle.rst msgid ":func:`register_shape` | :func:`addshape`" -msgstr "" +msgstr ":func:`register_shape` | :func:`addshape`" #: ../Doc/library/turtle.rst msgid ":func:`turtles`" -msgstr "" +msgstr ":func:`turtles`" #: ../Doc/library/turtle.rst msgid ":func:`window_height`" -msgstr "" +msgstr ":func:`window_height`" #: ../Doc/library/turtle.rst msgid ":func:`window_width`" -msgstr "" +msgstr ":func:`window_width`" #: ../Doc/library/turtle.rst:226 ../Doc/library/turtle.rst:1868 msgid "Input methods" -msgstr "" +msgstr "Métodos de entrada" #: ../Doc/library/turtle.rst msgid ":func:`textinput`" -msgstr "" +msgstr ":func:`textinput`" #: ../Doc/library/turtle.rst msgid ":func:`numinput`" -msgstr "" +msgstr ":func:`numinput`" #: ../Doc/library/turtle.rst:233 msgid "Methods specific to Screen" -msgstr "" +msgstr "Métodos específicos para *Screen*" #: ../Doc/library/turtle.rst msgid ":func:`bye`" -msgstr "" +msgstr ":func:`bye`" #: ../Doc/library/turtle.rst msgid ":func:`exitonclick`" -msgstr "" +msgstr ":func:`exitonclick`" #: ../Doc/library/turtle.rst msgid ":func:`setup`" -msgstr "" +msgstr ":func:`setup`" #: ../Doc/library/turtle.rst msgid ":func:`title`" -msgstr "" +msgstr ":func:`title`" #: ../Doc/library/turtle.rst:236 msgid "Methods of RawTurtle/Turtle and corresponding functions" -msgstr "" +msgstr "Métodos de *RawTurtle/Turtle* Y sus correspondientes funciones" #: ../Doc/library/turtle.rst:238 msgid "" "Most of the examples in this section refer to a Turtle instance called " "``turtle``." msgstr "" +"Casi todos los ejemplos de esta sección se refieren a una instancia Turtle " +"llamada ``turtle``." #: ../Doc/library/turtle.rst msgid "Parameters" -msgstr "" +msgstr "Parámetros" #: ../Doc/library/turtle.rst:247 ../Doc/library/turtle.rst:292 #: ../Doc/library/turtle.rst:317 ../Doc/library/turtle.rst:377 #: ../Doc/library/turtle.rst:400 ../Doc/library/turtle.rst:423 msgid "a number (integer or float)" -msgstr "" +msgstr "un número (entero o flotante)" #: ../Doc/library/turtle.rst:249 msgid "" "Move the turtle forward by the specified *distance*, in the direction the " "turtle is headed." msgstr "" +"Mover hacia adelante la tortuga la *ditance* especificada, en la dirección " +"en la que la tortuga apunta." #: ../Doc/library/turtle.rst:269 ../Doc/library/turtle.rst:473 #: ../Doc/library/turtle.rst:748 ../Doc/library/turtle.rst:1256 #: ../Doc/library/turtle.rst:1275 msgid "a number" -msgstr "" +msgstr "un número" #: ../Doc/library/turtle.rst:271 msgid "" "Move the turtle backward by *distance*, opposite to the direction the turtle " "is headed. Do not change the turtle's heading." msgstr "" +"Mover hacia atrás la tortuga la *distance* especificada, opuesta a la " +"dirección en que la tortuga apunta. No cambia la dirección de la tortuga." #: ../Doc/library/turtle.rst:294 msgid "" @@ -649,6 +710,10 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Gira la tortuga a la derecha tomando los *angle* como unidad de medida. (La " +"unidad de medida por defecto son los grado, pero se puede configurar a " +"través de las funciones :func:`degrees` y :func:`radians`.) La orientación " +"de los ángulos depende del modo en que está la tortuga, ver :func:`mode`." #: ../Doc/library/turtle.rst:319 msgid "" @@ -656,96 +721,113 @@ msgid "" "be set via the :func:`degrees` and :func:`radians` functions.) Angle " "orientation depends on the turtle mode, see :func:`mode`." msgstr "" +"Gira la tortuga a la izquierda tomando los *ángulos* como unidad de medida. " +"(La unidad de medida por defecto son los grado, pero se puede configurar a " +"través de las funciones :func:`degrees` y :func:`radians`.) La orientación " +"de los ángulos depende del modo en que está la tortuga, ver :func:`mode`." #: ../Doc/library/turtle.rst:343 msgid "a number or a pair/vector of numbers" -msgstr "" +msgstr "un número o un par/vector de números" #: ../Doc/library/turtle.rst:344 msgid "a number or ``None``" -msgstr "" +msgstr "un número o ``None``" #: ../Doc/library/turtle.rst:346 msgid "" "If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." "g. as returned by :func:`pos`)." msgstr "" +"Si *y* es ``None``, *x* debe ser un par de coordenadas o un :class:`Vec2D` " +"(ejemplo: según lo devuelto por :func:`pos`)." #: ../Doc/library/turtle.rst:349 msgid "" "Move turtle to an absolute position. If the pen is down, draw line. Do not " "change the turtle's orientation." msgstr "" +"Mueve la tortuga a una posición absoluta. Si el lápiz está bajo, traza una " +"linea. No cambia la orientación de la tortuga." #: ../Doc/library/turtle.rst:379 msgid "" "Set the turtle's first coordinate to *x*, leave second coordinate unchanged." msgstr "" +"Establece la primera coordenada de la tortuga a *x*, deja la segunda " +"coordenada sin cambios." #: ../Doc/library/turtle.rst:402 msgid "" "Set the turtle's second coordinate to *y*, leave first coordinate unchanged." msgstr "" +"Establece la segunda coordenada de la tortuga a *y*, deja la primera " +"coordenada sin cambios." #: ../Doc/library/turtle.rst:425 msgid "" "Set the orientation of the turtle to *to_angle*. Here are some common " "directions in degrees:" msgstr "" +"Establece la orientación de la tortuga a *to_angle*. Aquí hay algunas " +"direcciones comunes en grados:" #: ../Doc/library/turtle.rst:429 msgid "standard mode" -msgstr "" +msgstr "modo estándar" #: ../Doc/library/turtle.rst:429 msgid "logo mode" -msgstr "" +msgstr "modo logo" #: ../Doc/library/turtle.rst:431 msgid "0 - east" -msgstr "" +msgstr "0 - este" #: ../Doc/library/turtle.rst:431 msgid "0 - north" -msgstr "" +msgstr "0 - norte" #: ../Doc/library/turtle.rst:432 msgid "90 - north" -msgstr "" +msgstr "90 - norte" #: ../Doc/library/turtle.rst:432 msgid "90 - east" -msgstr "" +msgstr "90 - este" #: ../Doc/library/turtle.rst:433 msgid "180 - west" -msgstr "" +msgstr "180 - oeste" #: ../Doc/library/turtle.rst:433 msgid "180 - south" -msgstr "" +msgstr "180 - sur" #: ../Doc/library/turtle.rst:434 msgid "270 - south" -msgstr "" +msgstr "270 - sur" #: ../Doc/library/turtle.rst:434 msgid "270 - west" -msgstr "" +msgstr "270 - oeste" #: ../Doc/library/turtle.rst:447 msgid "" "Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " "start-orientation (which depends on the mode, see :func:`mode`)." msgstr "" +"Mueve la tortuga al origen -- coordenadas (0,0) -- y establece la " +"orientación a la orientación original (que depende del modo, ver :func:" +"`mode`)." #: ../Doc/library/turtle.rst:474 msgid "a number (or ``None``)" -msgstr "" +msgstr "un número (o ``None``)" #: ../Doc/library/turtle.rst:475 ../Doc/library/turtle.rst:569 msgid "an integer (or ``None``)" -msgstr "" +msgstr "un entero (o ``None``)" #: ../Doc/library/turtle.rst:477 msgid "" @@ -757,6 +839,13 @@ msgid "" "otherwise in clockwise direction. Finally the direction of the turtle is " "changed by the amount of *extent*." msgstr "" +"Dibuja un círculo con el *radius* (radio) dado. El centro es *radius* " +"unidades a la izquierda de la tortuga; *extent* -- un ángulo -- determina " +"que parte del círculo se dibuja. Si no se pasa *extent*, dibuja el círculo " +"entero. Si *extent* no es un círculo completo, un punto final del arco es la " +"posición actual de lápiz. Dibuja el arco en dirección antihorario si " +"*radius* es positivo, si no en dirección horaria. Finalmente la dirección de " +"la tortuga es modificada por el aumento de *extent*." #: ../Doc/library/turtle.rst:485 msgid "" @@ -764,20 +853,25 @@ msgid "" "determines the number of steps to use. If not given, it will be calculated " "automatically. May be used to draw regular polygons." msgstr "" +"Como el círculo se aproxima a un polígono regular inscripto, *steps* " +"determina el número de pasos a usar. Si no se da, será calculado " +"automáticamente. Puede ser usado para dibujar polígonos regulares." #: ../Doc/library/turtle.rst:511 msgid "an integer >= 1 (if given)" -msgstr "" +msgstr "un entero >= 1 (si se da)" #: ../Doc/library/turtle.rst:512 msgid "a colorstring or a numeric color tuple" -msgstr "" +msgstr "un *colorstring* o una tupla numérica de color" #: ../Doc/library/turtle.rst:514 msgid "" "Draw a circular dot with diameter *size*, using *color*. If *size* is not " "given, the maximum of pensize+4 and 2*pensize is used." msgstr "" +"Dibuja un punto circular con diámetro *size*, usando *color*. Si *size* no " +"se da, el máximo de pensize+4 y 2*pensize es usado." #: ../Doc/library/turtle.rst:532 msgid "" @@ -785,14 +879,19 @@ msgid "" "position. Return a stamp_id for that stamp, which can be used to delete it " "by calling ``clearstamp(stamp_id)``." msgstr "" +"Estampa una copia de la forma de la tortuga en el lienzo en la posición " +"actual. Devuelve un stamp_id por cada estampa, que puede ser usado para " +"borrarlo al llamar ``clearstamp(stamp_id)``." #: ../Doc/library/turtle.rst:547 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" +"un entero, debe devolver el valor de la llamada previa de la función :func:" +"`stamp` call" #: ../Doc/library/turtle.rst:550 msgid "Delete stamp with given *stampid*." -msgstr "" +msgstr "Borra la estampa con el *stampid* dado." #: ../Doc/library/turtle.rst:571 msgid "" @@ -800,73 +899,90 @@ msgid "" "all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " "*n* stamps." msgstr "" +"Borra todas o las primeros/últimos *n* estampas de la tortuga. Si *n* es " +"``None`` , borra todas las estampas, Si *n* *> 0* borra la primera estampa " +"*n*, sino y *n* *< 0* borra la última estampa *n*." #: ../Doc/library/turtle.rst:594 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." msgstr "" +"Deshace (repetidamente) la(s) última(s) acción(es) de la tortuga. El número " +"de acciones a deshacer es determinado por el tamaño del *undobuffer*." #: ../Doc/library/turtle.rst:609 msgid "an integer in the range 0..10 or a speedstring (see below)" -msgstr "" +msgstr "un entero en el rango 0..10 o un *speedstring* (ver abajo)" #: ../Doc/library/turtle.rst:611 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." msgstr "" +"Establecer la velocidad de la tortuga a un valor entero en el rango 0..10. " +"Si no se pasa ningún argumento, vuelve a la velocidad actual." #: ../Doc/library/turtle.rst:614 msgid "" "If input is a number greater than 10 or smaller than 0.5, speed is set to " "0. Speedstrings are mapped to speedvalues as follows:" msgstr "" +"Si el parámetro de entrada es un número mayor que 10 o menor que 0.5, la " +"velocidad se establece a 0. La frase acerca de la velocidad es mapeada a " +"valores de velocidad de la siguiente manera:" #: ../Doc/library/turtle.rst:617 msgid "\"fastest\": 0" -msgstr "" +msgstr "\"fastest\": 0" #: ../Doc/library/turtle.rst:618 msgid "\"fast\": 10" -msgstr "" +msgstr "\"fast\": 10" #: ../Doc/library/turtle.rst:619 msgid "\"normal\": 6" -msgstr "" +msgstr "\"normal\": 6" #: ../Doc/library/turtle.rst:620 msgid "\"slow\": 3" -msgstr "" +msgstr "\"slow\": 3" #: ../Doc/library/turtle.rst:621 msgid "\"slowest\": 1" -msgstr "" +msgstr "\"slowest\": 1" #: ../Doc/library/turtle.rst:623 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." msgstr "" +"Velocidades de 1 a 10 generan una animación cada vez más rápida al dibujar " +"las líneas y en el giro de la tortuga." #: ../Doc/library/turtle.rst:626 msgid "" "Attention: *speed* = 0 means that *no* animation takes place. forward/back " "makes turtle jump and likewise left/right make the turtle turn instantly." msgstr "" +"Atención: *speed* = 0 implica que *no* habrá ninguna animación. Los métodos " +"*fordward/back* harán que la tortuga salte, de la misma manera que *left/" +"right* hará que la tortuga gire instantáneamente." #: ../Doc/library/turtle.rst:649 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" +"Devuelve la posición actual de la tortuga (x,y) (como un vector :class:" +"`Vec2D`)" #: ../Doc/library/turtle.rst:660 ../Doc/library/turtle.rst:723 msgid "a number or a pair/vector of numbers or a turtle instance" -msgstr "" +msgstr "un número o par de vectores numéricos o una instancia de la tortuga" #: ../Doc/library/turtle.rst:661 ../Doc/library/turtle.rst:724 msgid "a number if *x* is a number, else ``None``" -msgstr "" +msgstr "un número si *x* es un número, si no ``None``" #: ../Doc/library/turtle.rst:663 msgid "" @@ -875,54 +991,66 @@ msgid "" "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 " +"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\")." #: ../Doc/library/turtle.rst:677 msgid "Return the turtle's x coordinate." -msgstr "" +msgstr "Devuelve la coordinada *x* de la tortuga." #: ../Doc/library/turtle.rst:693 msgid "Return the turtle's y coordinate." -msgstr "" +msgstr "Devuelve la coordenada *y* de la tortuga." #: ../Doc/library/turtle.rst:709 msgid "" "Return the turtle's current heading (value depends on the turtle mode, see :" "func:`mode`)." msgstr "" +"Devuelve la orientación actual de la tortuga (el valor depende del modo de " +"la tortuga, ver :func:`mode`)." #: ../Doc/library/turtle.rst:726 msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." msgstr "" +"Devuelve la distancia desde la tortuga al vector (x,y) dado, otra instancia " +"de la tortuga, el valor es unidad pasos de tortuga." #: ../Doc/library/turtle.rst:744 msgid "Settings for measurement" -msgstr "" +msgstr "Configuración de las medidas" #: ../Doc/library/turtle.rst:750 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." msgstr "" +"Establece la unidad de medida del ángulo, por ejemplo establece el número de " +"\"grados\" para un círculo completo. El valor por defecto es 36 grados." #: ../Doc/library/turtle.rst:773 msgid "" "Set the angle measurement units to radians. Equivalent to ``degrees(2*math." "pi)``." msgstr "" +"Establece la unidad de medida del ángulo a radianes. Equivalente a " +"``degrees(2*math.pi)``." #: ../Doc/library/turtle.rst:804 msgid "Pull the pen down -- drawing when moving." -msgstr "" +msgstr "Baja el lápiz -- dibuja mientras se mueve." #: ../Doc/library/turtle.rst:811 msgid "Pull the pen up -- no drawing when moving." -msgstr "" +msgstr "Levanta el lápiz -- no dibuja mientras se mueve." #: ../Doc/library/turtle.rst:817 msgid "a positive number" -msgstr "" +msgstr "un número positivo" #: ../Doc/library/turtle.rst:819 msgid "" @@ -930,60 +1058,68 @@ msgid "" "\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " "line thickness. If no argument is given, the current pensize is returned." msgstr "" +"Establece el grosos de la línea a *width* o lo devuelve. Si *resizemode* se " +"establece a \"auto\" y turtleshape es un polígono, ese polígono es dibujado " +"con el mismo grosor de línea. Si no se dan argumentos, devuelve el grosor " +"del lápiz actual." #: ../Doc/library/turtle.rst:833 msgid "a dictionary with some or all of the below listed keys" -msgstr "" +msgstr "un diccionario con algunos o todos las claves listadas debajo" #: ../Doc/library/turtle.rst:834 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" +"uno o más argumentos-palabras claves con las claves listadas debajo como " +"palabras claves" #: ../Doc/library/turtle.rst:836 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" msgstr "" +"Devuelve o establece los atributos del lápiz en un \"diccionario-lápiz\" con " +"el siguiente para de valores/claves:" #: ../Doc/library/turtle.rst:839 msgid "\"shown\": True/False" -msgstr "" +msgstr "\"shown\": True/False" #: ../Doc/library/turtle.rst:840 msgid "\"pendown\": True/False" -msgstr "" +msgstr "\"pendown\": True/False" #: ../Doc/library/turtle.rst:841 msgid "\"pencolor\": color-string or color-tuple" -msgstr "" +msgstr "\"pencolor\": color-string or color-tuple" #: ../Doc/library/turtle.rst:842 msgid "\"fillcolor\": color-string or color-tuple" -msgstr "" +msgstr "\"fillcolor\": color-string or color-tuple" #: ../Doc/library/turtle.rst:843 msgid "\"pensize\": positive number" -msgstr "" +msgstr "\"pensize\": número positivo" #: ../Doc/library/turtle.rst:844 msgid "\"speed\": number in range 0..10" -msgstr "" +msgstr "\"speed\": número en el rango 0..10" #: ../Doc/library/turtle.rst:845 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" -msgstr "" +msgstr "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" #: ../Doc/library/turtle.rst:846 msgid "\"stretchfactor\": (positive number, positive number)" -msgstr "" +msgstr "\"stretchfactor\": (número positivo, número positivo)" #: ../Doc/library/turtle.rst:847 msgid "\"outline\": positive number" -msgstr "" +msgstr "\"outline\": número positivo" #: ../Doc/library/turtle.rst:848 msgid "\"tilt\": number" -msgstr "" +msgstr "\"tilt\": número" #: ../Doc/library/turtle.rst:850 msgid "" @@ -992,42 +1128,53 @@ msgid "" "can be provided as keyword-arguments. This can be used to set several pen " "attributes in one statement." msgstr "" +"Este diccionario puede usarse como argumento de una llamada subsecuente a la " +"función :func:`pen` para restaurar el estado anterior del lápiz. Más aún, " +"uno o más de estos atributos pueden darse como argumentos claves. Esto " +"puede usarse para establecer diferentes atributos del lápiz en una sola " +"definición." #: ../Doc/library/turtle.rst:876 msgid "Return ``True`` if pen is down, ``False`` if it's up." -msgstr "" +msgstr "Devuelve ``True``si el lápiz está abajo, si está arriba ``False``." #: ../Doc/library/turtle.rst:894 msgid "Return or set the pencolor." -msgstr "" +msgstr "Devuelve o establece el color del lápiz." #: ../Doc/library/turtle.rst:896 ../Doc/library/turtle.rst:945 msgid "Four input formats are allowed:" -msgstr "" +msgstr "Se permiten cuatro formatos de entrada:" #: ../Doc/library/turtle.rst:901 msgid "``pencolor()``" -msgstr "" +msgstr "``pencolor()``" #: ../Doc/library/turtle.rst:899 msgid "" "Return the current pencolor as color specification string or as a tuple (see " "example). May be used as input to another color/pencolor/fillcolor call." msgstr "" +"Devuelve el color del lápiz actual como una palabra específica de algún " +"color o como una tupla (ver ejemplo). Puede ser usado como una entrada para " +"otra llamada de *color/pencolor/fillcolor*." #: ../Doc/library/turtle.rst:905 msgid "``pencolor(colorstring)``" -msgstr "" +msgstr "``pencolor(colorstring)``" #: ../Doc/library/turtle.rst:904 msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Establece el color del lápiz a *colorstring*, que es una palabra que " +"especifica un color *Tk*, tales como ``\"red\"``, ``\"yellow\"``, o ``" +"\"#33cc8c\"``." #: ../Doc/library/turtle.rst:910 msgid "``pencolor((r, g, b))``" -msgstr "" +msgstr "``pencolor((r, g, b))``" #: ../Doc/library/turtle.rst:908 msgid "" @@ -1035,30 +1182,37 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Establece el color del lápiz representado como una tupla de *r*, *g*, y " +"*b*. Cada valor *r*, *g*, y *b* debe ser un valor entero en el rango 0.." +"colormode, donde colormode es 1.0 o 255 (ver :func:`colormode`)." #: ../Doc/library/turtle.rst:917 msgid "``pencolor(r, g, b)``" -msgstr "" +msgstr "``pencolor(r, g, b)``" #: ../Doc/library/turtle.rst:913 msgid "" "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Establece el color del lápiz al color RGB representado por *r*, *g*, y *b*. " +"Cada valor *r*, *g*, y *b* debe estar en el rango 0..colormode." #: ../Doc/library/turtle.rst:916 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." msgstr "" +"Si *turtleshape* es un polígono, la línea del polígono es dibujado con el " +"muevo color de lápiz elegido." #: ../Doc/library/turtle.rst:943 msgid "Return or set the fillcolor." -msgstr "" +msgstr "Return or set the fillcolor." #: ../Doc/library/turtle.rst:950 msgid "``fillcolor()``" -msgstr "" +msgstr "``fillcolor()``" #: ../Doc/library/turtle.rst:948 msgid "" @@ -1066,20 +1220,26 @@ msgid "" "tuple format (see example). May be used as input to another color/pencolor/" "fillcolor call." msgstr "" +"Devuelve el valor actual de *fillcolor* como una palabra, posiblemente en " +"formato de tupla (ver ejemplo). Puede ser usado como entrada de otra llamada " +"*color/pencolor/fillcolor*." #: ../Doc/library/turtle.rst:954 msgid "``fillcolor(colorstring)``" -msgstr "" +msgstr "``fillcolor(colorstring)``" #: ../Doc/library/turtle.rst:953 msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "" +"Establece *fillcolor* a *colorstring*, que es un color TK especificado como " +"una palabra (en inglés), tales como *\"red\"*, *\"yellow\"*, o `\"#33cc8c" +"\"``." #: ../Doc/library/turtle.rst:959 msgid "``fillcolor((r, g, b))``" -msgstr "" +msgstr "``fillcolor((r, g, b))``" #: ../Doc/library/turtle.rst:957 msgid "" @@ -1087,35 +1247,46 @@ msgid "" "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " "colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "" +"Establece *fillcolor* al color RGB representado por la tupla *r*, *g*, y " +"*b*. Cada uno de los valores *r*, *g*, y *b* debe estar en el rango 0.." +"colormode, donde *colormode* es 1.0 o 255 (ver :func:`colormode`)." #: ../Doc/library/turtle.rst:966 msgid "``fillcolor(r, g, b)``" -msgstr "" +msgstr "``fillcolor(r, g, b)``" #: ../Doc/library/turtle.rst:962 msgid "" "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." msgstr "" +"Establece *fillcolor* al color RGB representado por *r*, *g*, y *b*. Cada " +"uno de los valores *r*, *g* y *b* debe ser un valor en el rango 0..colormode." #: ../Doc/library/turtle.rst:965 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." msgstr "" +"Si *turtleshape* es un polígono, el interior de ese polígono es dibujado con " +"el color establecido en *fillcolor*." #: ../Doc/library/turtle.rst:986 msgid "Return or set pencolor and fillcolor." msgstr "" +"Retorna o establece *pencolor* (el color del lápiz) y *fillcolor* (el color " +"de relleno)." #: ../Doc/library/turtle.rst:988 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" +"Se permiten varios formatos de entrada. Usan de 0 a 3 argumentos como se " +"muestra a continuación:" #: ../Doc/library/turtle.rst:994 msgid "``color()``" -msgstr "" +msgstr "``color()``" #: ../Doc/library/turtle.rst:992 msgid "" @@ -1123,49 +1294,61 @@ msgid "" "specification strings or tuples as returned by :func:`pencolor` and :func:" "`fillcolor`." msgstr "" +"Devuelve el valor actual de *pencolor* y el valor actual de *fillcolor* como " +"un par de colores especificados como palabras o tuplas, como devuelven las " +"funciones :func:`pencolor` y :func:`fillcolor`." #: ../Doc/library/turtle.rst:998 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -msgstr "" +msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" #: ../Doc/library/turtle.rst:997 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." msgstr "" +"Entradas como en :func:`pencolor`, establece al valor dado tanto, " +"*fillcolor* como *pencolor*." #: ../Doc/library/turtle.rst:1005 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" +"``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" #: ../Doc/library/turtle.rst:1001 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." msgstr "" +"Equivalente a ``pencolor(colorstring1)`` y ``fillcolor(colorstring2)`` y " +"análogamente si se usa el otro formato de entrada." #: ../Doc/library/turtle.rst:1004 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." msgstr "" +"Si *turtleshape* es un polígono, la línea y el interior de ese polígono e " +"dibujado con los nuevos colores que se establecieron." #: ../Doc/library/turtle.rst:1018 msgid "See also: Screen method :func:`colormode`." -msgstr "" +msgstr "Ver también: Método *Screeen* :func:`colormode`." #: ../Doc/library/turtle.rst:1032 msgid "Return fillstate (``True`` if filling, ``False`` else)." -msgstr "" +msgstr "Devuelve *fillstate* (``True`` si está lleno, sino ``False``)." #: ../Doc/library/turtle.rst:1047 msgid "To be called just before drawing a shape to be filled." -msgstr "" +msgstr "Para ser llamada justo antes de dibujar una forma a rellenar." #: ../Doc/library/turtle.rst:1052 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." msgstr "" +"Rellena la forma dibujada después de última llamada a la función :func:" +"`begin_fill`." #: ../Doc/library/turtle.rst:1054 msgid "" @@ -1174,12 +1357,19 @@ msgid "" "and number of overlaps. For example, the Turtle star above may be either " "all yellow or have some white regions." msgstr "" +"Superponer o no, regiones de polígonos auto-intersectados o múltiples " +"formas, estas son rellenadas dependiendo de los gráficos del sistema " +"operativo, tipo de superposición y número de superposiciones. Por ejemplo, " +"la flecha de la tortuga de arriba, puede ser toda amarilla o tener algunas " +"regiones blancas." #: ../Doc/library/turtle.rst:1073 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." msgstr "" +"Borra el dibujo de la tortuga de la pantalla, centra la tortuga y establece " +"las variables a los valores por defecto." #: ../Doc/library/turtle.rst:1094 msgid "" @@ -1187,22 +1377,25 @@ msgid "" "and position of the turtle as well as drawings of other turtles are not " "affected." msgstr "" +"Borra el dibujo de la tortuga de la pantalla. No mueve la tortuga. El estado " +"y posición de la tortuga así como los todos los dibujos de las otras " +"tortugas no son afectados." #: ../Doc/library/turtle.rst:1100 msgid "object to be written to the TurtleScreen" -msgstr "" +msgstr "objeto que se escribirá en *TurtleScreen*" #: ../Doc/library/turtle.rst:1101 msgid "True/False" -msgstr "" +msgstr "True/False" #: ../Doc/library/turtle.rst:1102 msgid "one of the strings \"left\", \"center\" or right\"" -msgstr "" +msgstr "una de las frases \"*left*\", \"*center*\" o \"*right*\"" #: ../Doc/library/turtle.rst:1103 msgid "a triple (fontname, fontsize, fonttype)" -msgstr "" +msgstr "un trio (nombre de fuente, tamaño de fuente, tipo de fuente)" #: ../Doc/library/turtle.rst:1105 msgid "" @@ -1211,6 +1404,11 @@ msgid "" "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``." #: ../Doc/library/turtle.rst:1123 msgid "" @@ -1218,18 +1416,21 @@ msgid "" "middle of doing some complex drawing, because hiding the turtle speeds up " "the drawing observably." msgstr "" +"Hace invisible a la tortuga, Es una buena idea hacer eso mientras está " +"haciendo dibujos complejos, ya que esconder a la tortuga acelera dibujo de " +"manera observable." #: ../Doc/library/turtle.rst:1136 msgid "Make the turtle visible." -msgstr "" +msgstr "Hace visible la tortuga." #: ../Doc/library/turtle.rst:1146 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." -msgstr "" +msgstr "Devuelve ``True`` si la tortuga se muestra, ``False`` si está oculta." #: ../Doc/library/turtle.rst:1161 msgid "a string which is a valid shapename" -msgstr "" +msgstr "una cadena de caracteres que es un nombre de forma válido" #: ../Doc/library/turtle.rst:1163 msgid "" @@ -1239,10 +1440,17 @@ msgid "" "\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn " "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* " +"debe existir en el diccionario de formas de *TurtleScreen*. Inicialmente " +"están las siguientes formas poligonales: \"*arrow*\", \"*turtle*\", " +"\"*circle*\", \"*square*\", \"*triangle*\", \"*classic*\". Para aprender " +"como trabajar con estas formas ver los métodos de Screen :func:" +"`register_shape`." #: ../Doc/library/turtle.rst:1181 msgid "one of the strings \"auto\", \"user\", \"noresize\"" -msgstr "" +msgstr "una de las cadenas \"*auto*\", \"*user*\", \"*noresize*\"" #: ../Doc/library/turtle.rst:1183 msgid "" @@ -1250,32 +1458,42 @@ msgid "" "*rmode* is not given, return current resizemode. Different resizemodes have " "the following effects:" msgstr "" +"Establece *resizemode* a alguno de los valores: \"*auto*\", \"*user*\", " +"\"*noresize*\". Si *mode* no se aporta, devuelve el actual *resizemode*. " +"Distintos *resizemode* tienen los siguientes efectos:" #: ../Doc/library/turtle.rst:1187 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." msgstr "" +"\"*auto*\": adapta la apariencia de la tortuga al correspondiente valor del " +"lápiz." #: ../Doc/library/turtle.rst:1188 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgstr "" +"\"*user*\": adapta la apariencia de la tortuga de acuerdo a los valores de " +"*sretchfactor* y *outlinewidth* (contorno), que se establece con la función :" +"func:`shapesize`." #: ../Doc/library/turtle.rst:1191 msgid "\"noresize\": no adaption of the turtle's appearance takes place." -msgstr "" +msgstr "\"*noresize*\": no se adapta la apariencia de la tortuga." #: ../Doc/library/turtle.rst:1193 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." #: ../Doc/library/turtle.rst:1208 ../Doc/library/turtle.rst:1209 #: ../Doc/library/turtle.rst:1210 msgid "positive number" -msgstr "" +msgstr "número positivo" #: ../Doc/library/turtle.rst:1212 msgid "" @@ -1286,12 +1504,20 @@ msgid "" "*stretch_len* is stretchfactor in direction of its orientation, *outline* " "determines the width of the shapes's outline." msgstr "" +"Devuelve o establece los atributos del lápiz los factores x/y de " +"estiramiento y contorno. Establece *resizemode* a *\"user\"* si y solo si " +"*resizemode* está definido como *\"user\"*, la tortuga será verá estirada " +"acorde a sus factores de estiramiento: *stretch_wid* es el factor de " +"estiramiento perpendicular a su orientación, *stretch_len* es su factor de " +"estiramiento en dirección a su orientación, *outline* determina el grosor de " +"contorno de la forma." #: ../Doc/library/turtle.rst:1235 ../Doc/library/turtle.rst:1887 #: ../Doc/library/turtle.rst:1888 ../Doc/library/turtle.rst:1889 msgid "number (optional)" -msgstr "" +msgstr "número (opcional)" +# shearfacto se refiere a una inclinación y estiramiento, gira y estira la figura por un factor. No se si hay alguna palabra mejor que inclinar o estirar. #: ../Doc/library/turtle.rst:1237 msgid "" "Set or return the current shearfactor. Shear the turtleshape according to " @@ -1300,12 +1526,20 @@ msgid "" "given: return the current shearfactor, i. e. the tangent of the shear angle, " "by which lines parallel to the heading of the turtle are sheared." msgstr "" +"Establece o devuelve el valor actual del estiramiento. Estira la forma de la " +"tortuga de acuerdo a la inclinación del factor de corte, que es la tangente " +"del ángulo de corte. No cambia el rumbo de la tortuga (dirección del " +"movimiento). Si no de da un valor de inclinación: devuelve el factor actual, " +"por ejemplo la tangente del ángulo de inclinación, por el cual se cortan la " +"líneas paralelas al rumbo de la tortuga." #: ../Doc/library/turtle.rst:1258 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." msgstr "" +"Rota la forma de la tortuga en *ángulo* desde su ángulo de inclinación " +"actual, pero no cambia el rumbo de la tortuga (dirección del movimiento)." #: ../Doc/library/turtle.rst:1277 msgid "" @@ -1313,12 +1547,15 @@ msgid "" "regardless of its current tilt-angle. *Do not* change the turtle's heading " "(direction of movement)." msgstr "" +"Rota la forma de la tortuga apuntando en la dirección especificada por el " +"*ángulo*, independientemente de su ángulo de dirección actual. No cambia el " +"rumbo de la tortuga (dirección de movimiento)." #: ../Doc/library/turtle.rst:1297 ../Doc/library/turtle.rst:1320 #: ../Doc/library/turtle.rst:1321 ../Doc/library/turtle.rst:1322 #: ../Doc/library/turtle.rst:1323 msgid "a number (optional)" -msgstr "" +msgstr "un número (opcional)" #: ../Doc/library/turtle.rst:1299 msgid "" @@ -1329,10 +1566,19 @@ msgid "" "angle between the orientation of the turtleshape and the heading of the " "turtle (its direction of movement)." msgstr "" +"Establece o devuelve el ángulo de inclinación actual. Si se otorga un " +"ángulo, rota la forma de la tortuga para apuntar en la dirección del ángulo " +"especificado, independientemente de su actual ángulo de inclinación. No " +"cambia el rumbo de la tortuga (dirección del movimiento). Si no se da el " +"ángulo: devuelve el ángulo de inclinación actual, por ejemplo: el ángulo " +"entre la orientación de la forma de la tortuga y el rumbo de la tortuga (su " +"dirección de movimiento)." #: ../Doc/library/turtle.rst:1325 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" +"Establece o devuelve la matriz de transformación actual de la forma de la " +"tortuga." #: ../Doc/library/turtle.rst:1327 msgid "" @@ -1343,12 +1589,22 @@ 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 " +"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." #: ../Doc/library/turtle.rst:1349 msgid "" "Return the current shape polygon as tuple of coordinate pairs. This can be " "used to define a new shape or components of a compound shape." msgstr "" +"Devuelve el polígono de la forma actual como tupla de pares de coordenadas. " +"Esto puede ser usado para definir una nueva forma o componentes de una forma " +"compuesta." #: ../Doc/library/turtle.rst:1366 ../Doc/library/turtle.rst:1388 #: ../Doc/library/turtle.rst:1413 ../Doc/library/turtle.rst:1811 @@ -1356,11 +1612,15 @@ msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" msgstr "" +"una función con dos argumentos que se invocará con las coordenadas del punto " +"en el que se hizo clic en el lienzo" #: ../Doc/library/turtle.rst:1368 ../Doc/library/turtle.rst:1390 #: ../Doc/library/turtle.rst:1415 ../Doc/library/turtle.rst:1813 msgid "number of the mouse-button, defaults to 1 (left mouse button)" msgstr "" +"número del botón del mouse, el valor predeterminado es 1 (botón izquierdo " +"del mouse)" #: ../Doc/library/turtle.rst:1369 ../Doc/library/turtle.rst:1391 #: ../Doc/library/turtle.rst:1416 ../Doc/library/turtle.rst:1814 @@ -1368,6 +1628,8 @@ msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" msgstr "" +"``True`` o ``False`` -- si es ``True``, se agrega un nuevo enlace, de lo " +"contrario reemplazará el enlace anterior" #: ../Doc/library/turtle.rst:1372 msgid "" @@ -1375,68 +1637,92 @@ msgid "" "existing bindings are removed. Example for the anonymous turtle, i.e. the " "procedural way:" msgstr "" +"Enlaza *acciones divertidas* a eventos de click en la tortuga. Si la " +"*accion* es ``None``, las acciones asociadas son borradas. Ejemplo para la " +"tortuga anónima, en la forma procedimental:" #: ../Doc/library/turtle.rst:1394 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." msgstr "" +"Enlaza *acciones divertidas* a eventos del tipo soltar botón del mouse en la " +"tortuga. SI la *acción* es ``None``, las acciones asociadas son borradas." #: ../Doc/library/turtle.rst:1419 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Enlaza *acciones divertidas* a eventos en los movimientos del mouse. Si la " +"*acción* es ``None``, las acciones asociadas son borradas." #: ../Doc/library/turtle.rst:1422 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." msgstr "" +"Observación: cada secuencia de los eventos de movimiento del mouse en una " +"tortuga es precedida por un evento de click del mouse en esa tortuga." #: ../Doc/library/turtle.rst:1430 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." msgstr "" +"Subsecuentemente, clickear y arrastrar la Tortuga la moverá a través de la " +"pantalla produciendo dibujos a mano alzada (si el lápiz está abajo)." #: ../Doc/library/turtle.rst:1439 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." msgstr "" +"Comienza a grabar los vértices de un polígono. La posición actual de la " +"tortuga es el primer vértice del polígono." #: ../Doc/library/turtle.rst:1445 msgid "" "Stop recording the vertices of a polygon. Current turtle position is last " "vertex of polygon. This will be connected with the first vertex." msgstr "" +"Deja de grabar los vértices de un polígono. La posición actual de la tortuga " +"es el último vértice del polígono. Esto se conectará con el primer vértice." #: ../Doc/library/turtle.rst:1451 msgid "Return the last recorded polygon." -msgstr "" +msgstr "Devuelve el último polígono grabado." #: ../Doc/library/turtle.rst:1470 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." msgstr "" +"Crea y devuelve un clon de la tortuga con la misma posición, dirección y " +"propiedades de la tortuga." #: ../Doc/library/turtle.rst:1483 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" msgstr "" +"Devuelve el objeto Tortuga en si. El único uso razonable: es como una " +"función para devolver la \"tortuga anónima\":" +# Return the TurtleScreen object the turtle is drawing on. +# no se si "sobre el cual" es la traducción adecuada. #: ../Doc/library/turtle.rst:1497 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." msgstr "" +"Devuelve el objeto :class:`TurtleScreen` sobre el cual la tortuga está " +"dibujando. Los métodos *TurtleScreen* luego pueden ser llamados para ese " +"objeto." #: ../Doc/library/turtle.rst:1511 msgid "an integer or ``None``" -msgstr "" +msgstr "un entero o ``None``" #: ../Doc/library/turtle.rst:1513 msgid "" @@ -1445,14 +1731,19 @@ msgid "" "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." #: ../Doc/library/turtle.rst:1526 msgid "Return number of entries in the undobuffer." -msgstr "" +msgstr "Devuelve el número de entradas en el buffer para deshacer acciones." #: ../Doc/library/turtle.rst:1539 msgid "Compound shapes" -msgstr "" +msgstr "Formas compuestas" #: ../Doc/library/turtle.rst:1541 msgid "" @@ -1460,24 +1751,29 @@ msgid "" "different color, you must use the helper class :class:`Shape` explicitly as " "described below:" msgstr "" +"Para usar formas complejas con la tortuga, que consiste en varios polígonos " +"de diferentes colores, deberá usar la clase de ayuda :class:`Shape` " +"explícitamente como se describe debajo:" #: ../Doc/library/turtle.rst:1545 msgid "Create an empty Shape object of type \"compound\"." -msgstr "" +msgstr "Crear una objeto de forma vacía del tipo *compound*." #: ../Doc/library/turtle.rst:1546 msgid "" "Add as many components to this object as desired, using the :meth:" "`addcomponent` method." msgstr "" +"Agregar todos los componentes deseados a este objeto, usando el método :meth:" +"`addcomponent`." #: ../Doc/library/turtle.rst:1549 msgid "For example:" -msgstr "" +msgstr "Por ejemplo:" #: ../Doc/library/turtle.rst:1560 msgid "Now add the Shape to the Screen's shapelist and use it:" -msgstr "" +msgstr "Ahora agregar la forma a la lista de formas de la pantalla y úsela:" #: ../Doc/library/turtle.rst:1571 msgid "" @@ -1485,30 +1781,38 @@ msgid "" "method in different ways. The application programmer has to deal with the " "Shape class *only* when using compound shapes like shown above!" msgstr "" +"La clase :class:`Shape` es usada internamente por el método :func:" +"`register_shape` en maneras diferentes. El programador deberá lidiar con la " +"clase *Shape* ¡solo cuando use formas compuestas como las que se mostraron " +"arriba!" #: ../Doc/library/turtle.rst:1577 msgid "Methods of TurtleScreen/Screen and corresponding functions" -msgstr "" +msgstr "Métodos de *TurtleScreen/Screen* y sus correspondientes funciones" #: ../Doc/library/turtle.rst:1579 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." msgstr "" +"La mayoría de los ejemplos en esta sección se refieren a la instancia de " +"*TurtleScreen* llamada ``screen``." #: ../Doc/library/turtle.rst:1593 msgid "" "a color string or three numbers in the range 0..colormode or a 3-tuple of " "such numbers" msgstr "" +"una cadena de color o tres números en el rango 0..*colormode* o una tupla de " +"3 de esos números" #: ../Doc/library/turtle.rst:1597 msgid "Set or return background color of the TurtleScreen." -msgstr "" +msgstr "Establece o devuelve el color de fondo de *TurtleScreen*." #: ../Doc/library/turtle.rst:1612 msgid "a string, name of a gif-file or ``\"nopic\"``, or ``None``" -msgstr "" +msgstr "una cadena, nombre o archivo gif o ``\"nopic\"``, o ``None``" #: ../Doc/library/turtle.rst:1614 msgid "" @@ -1517,6 +1821,11 @@ msgid "" "*picname* is ``\"nopic\"``, delete background image, if present. If " "*picname* is ``None``, return the filename of the current backgroundimage. ::" msgstr "" +"Establece la imagen de fondo o devuelve el nombre de la imagen de fondo " +"actual. Si *picname* es un nombre de archivo, establece la imagen " +"correspondiente como fondo. Si *picname* es ``\"nopic\"``, borra la imagen " +"de fondo, si hay alguna presente. Si *picname* es ``None``, devuelve el " +"nombre de archivo de la imagen de fondo actual. ::" #: ../Doc/library/turtle.rst:1629 msgid "" @@ -1524,6 +1833,9 @@ msgid "" "empty TurtleScreen to its initial state: white background, no background " "image, no event bindings and tracing on." msgstr "" +"Borra todos los dibujos y todas las tortugas del la pantalla de la tortuga. " +"Reinicia la ahora vacía pantalla de la tortuga a su estado inicial: fondo " +"blanco, sin imagen de fondo, sin enlaces a eventos o seguimientos." #: ../Doc/library/turtle.rst:1634 msgid "" @@ -1531,10 +1843,13 @@ msgid "" "name ``clearscreen``. The global function ``clear`` is a different one " "derived from the Turtle method ``clear``." msgstr "" +"Este método de *TurtleScreen* está disponible como una función global solo " +"bajo el nombre `clearscreen``. La función global ``clear`` es otra, derivada " +"del método de *Turtle* ``clear``." #: ../Doc/library/turtle.rst:1642 msgid "Reset all Turtles on the Screen to their initial state." -msgstr "" +msgstr "Reinicia todas las tortugas de la pantalla a su estado inicial." #: ../Doc/library/turtle.rst:1645 msgid "" @@ -1542,18 +1857,21 @@ msgid "" "name ``resetscreen``. The global function ``reset`` is another one derived " "from the Turtle method ``reset``." msgstr "" +"Este método *TurtleScreen* esta disponible como una función global solo bajo " +"el nombre ``resetscreen``. La función global ``reset`` es otra, derivada del " +"método *Turtle* ``reset``." #: ../Doc/library/turtle.rst:1652 msgid "positive integer, new width of canvas in pixels" -msgstr "" +msgstr "entero positivo, nueva anchura del lienzo en pixeles" #: ../Doc/library/turtle.rst:1653 msgid "positive integer, new height of canvas in pixels" -msgstr "" +msgstr "entero positivo, nueva altura del lienzo en pixeles" #: ../Doc/library/turtle.rst:1654 msgid "colorstring or color-tuple, new background color" -msgstr "" +msgstr "*colorstrng* o tupla de color, muevo color de fondo" #: ../Doc/library/turtle.rst:1656 msgid "" @@ -1563,26 +1881,31 @@ msgid "" "this method, one can make visible those parts of a drawing which were " "outside the canvas before." msgstr "" +"Si no se dan argumentos, devuelve el actual (ancho y alto del lienzo). Sino " +"redimensiona el lienzo en el que la tortuga está dibujando. No altera la " +"ventana de dibujo. Para ver las partes ocultas del lienzo, use la barra de " +"desplazamiento. Con este método, se pueden hacer visibles aquellas partes de " +"un dibujo que antes estaban fuera del lienzo." #: ../Doc/library/turtle.rst:1668 msgid "e.g. to search for an erroneously escaped turtle ;-)" -msgstr "" +msgstr "ej. buscar una tortuga que se escapó por error ;-)" #: ../Doc/library/turtle.rst:1673 msgid "a number, x-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un número, coordenada x de la esquina inferior izquierda del lienzo" #: ../Doc/library/turtle.rst:1674 msgid "a number, y-coordinate of lower left corner of canvas" -msgstr "" +msgstr "un número, coordenada y de la esquina inferior izquierda del lienzo" #: ../Doc/library/turtle.rst:1675 msgid "a number, x-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un número, coordenada x de la esquina superior derecha del lienzo" #: ../Doc/library/turtle.rst:1676 msgid "a number, y-coordinate of upper right corner of canvas" -msgstr "" +msgstr "un número, coordenada z de la esquina superior derecha del lienzo" #: ../Doc/library/turtle.rst:1678 msgid "" @@ -1590,16 +1913,21 @@ msgid "" "necessary. This performs a ``screen.reset()``. If mode \"world\" is " "already active, all drawings are redrawn according to the new coordinates." msgstr "" +"Configura coordenadas definidas por el usuario y cambia al modo *world* si " +"es necesario. Esto realiza un ``screen.reset()``. Si el modo *world* ya está " +"activo, todos los dibujos se re dibujan de acuerdo a las nuevas coordenadas." #: ../Doc/library/turtle.rst:1682 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." msgstr "" +"**ATENCIÓN**: en los sistemas de coordenadas definidos por el usuario, los " +"ángulos pueden aparecer distorsionados." #: ../Doc/library/turtle.rst:1710 msgid "positive integer" -msgstr "" +msgstr "entero positivo" #: ../Doc/library/turtle.rst:1712 msgid "" @@ -1607,15 +1935,20 @@ msgid "" "the time interval between two consecutive canvas updates.) The longer the " "drawing delay, the slower the animation." msgstr "" +"Establece o retorna el *retraso* del dibujo en mili segundos. ( Este es " +"aproximadamente, el tiempo de intervalo entre dos actualizaciones " +"consecutivas del lienzo). Mientras más largo sea el retraso, más lenta la " +"animación." #: ../Doc/library/turtle.rst:1716 msgid "Optional argument:" -msgstr "" +msgstr "Argumento opcional:" #: ../Doc/library/turtle.rst:1730 ../Doc/library/turtle.rst:1731 msgid "nonnegative integer" -msgstr "" +msgstr "entero no negativo" +# n-th lo enconté como enésima, pero no se si se entiende la frase #: ../Doc/library/turtle.rst:1733 msgid "" "Turn turtle animation on/off and set delay for update drawings. If *n* is " @@ -1624,14 +1957,22 @@ msgid "" "arguments, returns the currently stored value of n. Second argument sets " "delay value (see :func:`delay`)." msgstr "" +"Activa o desactiva la animación de la tortuga y establece el retraso para la " +"actualización de los dibujos. Si se da *n*, solo cada enésima actualización " +"regular de pantalla se realiza realmente. (Puede usarse para acelerar los " +"dibujos de gráficos complejos). Cuando es llamada sin argumentos, devuelve " +"el valor de *n* guardado actualmente. El segundo argumento establece el " +"valor de retraso (ver :func:`delay`)." #: ../Doc/library/turtle.rst:1753 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" +"Realiza una actualización de la pantalla de la tortuga. Para ser usada " +"cuando *tracer* está deshabilitada." #: ../Doc/library/turtle.rst:1755 msgid "See also the RawTurtle/Turtle method :func:`speed`." -msgstr "" +msgstr "Ver también el método *RawTurtle/Turtle* :func:`speed`." #: ../Doc/library/turtle.rst:1763 msgid "" @@ -1639,14 +1980,19 @@ msgid "" "are provided in order to be able to pass :func:`listen` to the onclick " "method." msgstr "" +"Establece el foco en la pantalla de la tortuga (para recoger eventos de " +"teclado). Los argumentos *dummy* se proveen en orden de ser capaces de " +"pasar :func:`listen` a los métodos *onclick*." #: ../Doc/library/turtle.rst:1770 ../Doc/library/turtle.rst:1790 msgid "a function with no arguments or ``None``" -msgstr "" +msgstr "una función sin argumentos o ``None``" #: ../Doc/library/turtle.rst:1771 ../Doc/library/turtle.rst:1791 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" +"una cadena de caracteres: tecla (por ejemplo, \"a\") o una acción del " +"teclado (por ejemplo, \"space\")" #: ../Doc/library/turtle.rst:1773 msgid "" @@ -1654,6 +2000,10 @@ msgid "" "bindings are removed. Remark: in order to be able to register key-events, " "TurtleScreen must have the focus. (See method :func:`listen`.)" msgstr "" +"Vincula *fun* a un evento de liberación de una tecla. Si *fun* es ``None``, " +"los eventos vinculados son removidos. Aclaración: para poder registrar " +"eventos de teclado, *TurtleScreen* tiene que tener el foco. (ver el método :" +"func:`listen`.)" #: ../Doc/library/turtle.rst:1793 msgid "" @@ -1661,18 +2011,26 @@ msgid "" "event if no key is given. Remark: in order to be able to register key-" "events, TurtleScreen must have focus. (See method :func:`listen`.)" msgstr "" +"Vincula *fun* a un evento de pulsado de una tecla, o a cualquier evento de " +"pulsado de tecla si no se da una. Aclaración: para poder registrar eventos " +"de teclado, *TurtleScreen* tiene que tener el foco. (ver el método :func:" +"`listen`.)" #: ../Doc/library/turtle.rst:1817 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." msgstr "" +"Vincula *fun* a eventos de click del mouse en esta pantalla. Si *fun* es " +"``None``, los vínculos existentes son removidos." #: ../Doc/library/turtle.rst:1820 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:" #: ../Doc/library/turtle.rst:1831 msgid "" @@ -1680,18 +2038,21 @@ msgid "" "name ``onscreenclick``. The global function ``onclick`` is another one " "derived from the Turtle method ``onclick``." msgstr "" +"Este método *TurtleScreen* está disponible como una función global solo bajo " +"el nombre `onscreenclick``. La función global ``onclick`` es otra derivada " +"del método Turtle ``onclick``." #: ../Doc/library/turtle.rst:1838 msgid "a function with no arguments" -msgstr "" +msgstr "una función sin argumentos" #: ../Doc/library/turtle.rst:1839 msgid "a number >= 0" -msgstr "" +msgstr "un número >= 0" #: ../Doc/library/turtle.rst:1841 msgid "Install a timer that calls *fun* after *t* milliseconds." -msgstr "" +msgstr "Instala un temporizador que llama a *fun* cada *t* milisegundos." #: ../Doc/library/turtle.rst:1859 msgid "" @@ -1700,11 +2061,15 @@ msgid "" "run from within IDLE in -n mode (No subprocess) - for interactive use of " "turtle graphics. ::" msgstr "" +"Comienza un bucle de evento - llamando a la función *mainloop* del " +"*Tkinter*. Debe ser la última declaración en un programa gráfico de turtle. " +"*No* debe ser usado si algún script es corrido dentro del IDLE en modo -n " +"(Sin subproceso) - para uso interactivo de gráficos turtle.::" #: ../Doc/library/turtle.rst:1872 ../Doc/library/turtle.rst:1873 #: ../Doc/library/turtle.rst:1885 ../Doc/library/turtle.rst:1886 msgid "string" -msgstr "" +msgstr "cadena de caracteres" #: ../Doc/library/turtle.rst:1875 msgid "" @@ -1713,6 +2078,10 @@ msgid "" "input. Return the string input. If the dialog is canceled, return " "``None``. ::" msgstr "" +"Abre una ventana de diálogo para ingresar una cadena de caracteres. El " +"parámetro *title* es el título de la ventana de diálogo, *prompt* es un " +"texto que usualmente describe que información se debe ingresar. Devuelve la " +"cadena ingresada. Si el diálogo es cancelado, devuelve `None``. ::" #: ../Doc/library/turtle.rst:1891 msgid "" @@ -1724,16 +2093,26 @@ msgid "" "open for correction. Return the number input. If the dialog is canceled, " "return ``None``. ::" msgstr "" +"Abre una ventana de diálogo para el ingreso de un número. *title* es el " +"título de la ventana de diálogo, *prompt* es un texto que usualmente " +"describe qué información numérica ingresar. *default*: valor por defecto, " +"*minval*: mínimo valor aceptado, *maxval*: máximo valor aceptado. Si se " +"aportan estos parámetros, el número a ingresar debe estar en el rango " +"*minval*..*maxval*. Si no, se da una pista y el diálogo permanece abierto " +"para su corrección. Devuelve el número ingresado. Si el diálogo es " +"cancelado, devuelve ``None``.::" #: ../Doc/library/turtle.rst:1908 msgid "one of the strings \"standard\", \"logo\" or \"world\"" -msgstr "" +msgstr "una de las cadenas *\"standard\"*, *\"logo*\" o *\"world*\"" #: ../Doc/library/turtle.rst:1910 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." msgstr "" +"Establece el mode de la tortuga (*\"standard\"*, *\"logo\"* o *\"world\"*) " +"y realiza un reinicio. Si no se da \"*mode*\", retorna el modo actual." #: ../Doc/library/turtle.rst:1913 msgid "" @@ -1742,120 +2121,143 @@ msgid "" "\"world coordinates\". **Attention**: in this mode angles appear distorted " "if ``x/y`` unit-ratio doesn't equal 1." msgstr "" +"El modo *\"standard\"* es compatible con el antiguo :mod:`turtle`. El modo *" +"\"logo\"* es compatible con la mayoría de los gráficos de tortuga Logo. El " +"modo *\"world\"* usa coordenadas de mundo definidas por el usuario. " +"**Atención**: en este modo los ángulos aparecen distorsionados si la " +"relación de unidad ``x/y`` no es igual a 1." #: ../Doc/library/turtle.rst:1919 msgid "Mode" -msgstr "" +msgstr "Modo" #: ../Doc/library/turtle.rst:1919 msgid "Initial turtle heading" -msgstr "" +msgstr "Rumbo inicial de la tortuga" #: ../Doc/library/turtle.rst:1919 msgid "positive angles" -msgstr "" +msgstr "ángulos positivos" #: ../Doc/library/turtle.rst:1921 msgid "\"standard\"" -msgstr "" +msgstr "*\"standard\"*" #: ../Doc/library/turtle.rst:1921 msgid "to the right (east)" -msgstr "" +msgstr "hacia la derecha (este)" #: ../Doc/library/turtle.rst:1921 msgid "counterclockwise" -msgstr "" +msgstr "sentido antihorario" #: ../Doc/library/turtle.rst:1922 msgid "\"logo\"" -msgstr "" +msgstr "*\"logo\"*" #: ../Doc/library/turtle.rst:1922 msgid "upward (north)" -msgstr "" +msgstr "hacia arriba (norte)" #: ../Doc/library/turtle.rst:1922 msgid "clockwise" -msgstr "" +msgstr "sentido horario" #: ../Doc/library/turtle.rst:1935 msgid "one of the values 1.0 or 255" -msgstr "" +msgstr "uno de los valores 1.0 o 255" #: ../Doc/library/turtle.rst:1937 msgid "" "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* " "values of color triples have to be in the range 0..\\ *cmode*." msgstr "" +"Devuelve el *colormode* o lo establece a 1.0 o 255. Subsecuentemente, los " +"valores triples de color *r*, *g*, *b* tienen que estar en el rango 0..\\ " +"*cmode*." #: ../Doc/library/turtle.rst:1958 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." msgstr "" +"Devuelve el lienzo de este *TurtleScreen*. Útil para conocedores que saben " +"que hace con un *TKinter* *Canvas*." #: ../Doc/library/turtle.rst:1971 msgid "Return a list of names of all currently available turtle shapes." msgstr "" +"Devuelve la lista de nombres de todas las formas de la tortuga actualmente " +"disponibles." #: ../Doc/library/turtle.rst:1983 msgid "There are three different ways to call this function:" -msgstr "" +msgstr "Hay tres formas distintas de llamar a esta función:" #: ../Doc/library/turtle.rst:1985 msgid "" "*name* is the name of a gif-file and *shape* is ``None``: Install the " "corresponding image shape. ::" msgstr "" +"*name* es el nombre de un archivo gif y *shape* es ``None``: instala la " +"imagen correspondiente. ::" #: ../Doc/library/turtle.rst:1991 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" msgstr "" +"Las imágenes de tipo *shapes* no rotan cuando la tortuga gira, así que ellas " +"¡no muestran el rumbo de la tortuga!" #: ../Doc/library/turtle.rst:1994 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." msgstr "" +"*name* es una cadena de caracteres arbitraria y *shape* es una tupla de " +"pares de coordenadas: Instala la forma poligonal correspondiente." #: ../Doc/library/turtle.rst:2002 msgid "" "*name* is an arbitrary string and shape is a (compound) :class:`Shape` " "object: Install the corresponding compound shape." msgstr "" +"*name* es una cadena de caracteres arbitraria y *shape* es un objeto :class:" +"`Shape` (compuesto): Instala la correspondiente forma compuesta." #: ../Doc/library/turtle.rst:2005 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." msgstr "" +"Agregar una forma de tortuga a la lista de formas de *TurtleScreen*. Solo " +"las formas registradas de esta manera pueden ser usadas invocando el comando " +"``shape(shapename)``." #: ../Doc/library/turtle.rst:2011 msgid "Return the list of turtles on the screen." -msgstr "" +msgstr "Devuelve la lista de tortugas en la pantalla." #: ../Doc/library/turtle.rst:2022 msgid "Return the height of the turtle window. ::" -msgstr "" +msgstr "Devuelve la altura de la ventana de la tortuga. ::" #: ../Doc/library/turtle.rst:2030 msgid "Return the width of the turtle window. ::" -msgstr "" +msgstr "Devuelve el ancho de la ventana de la tortuga. ::" #: ../Doc/library/turtle.rst:2039 msgid "Methods specific to Screen, not inherited from TurtleScreen" -msgstr "" +msgstr "Métodos específicos de *Screen*, no heredados de *TurtleScreen*" #: ../Doc/library/turtle.rst:2043 msgid "Shut the turtlegraphics window." -msgstr "" +msgstr "Apaga la ventana gráfica de la tortuga." #: ../Doc/library/turtle.rst:2048 msgid "Bind bye() method to mouse clicks on the Screen." -msgstr "" +msgstr "Ata el método *bye()* al click del ratón sobre la pantalla." #: ../Doc/library/turtle.rst:2051 msgid "" @@ -1865,6 +2267,11 @@ msgid "" "file:`turtle.cfg`. In this case IDLE's own mainloop is active also for the " "client script." msgstr "" +"Si el valor *\"using_IDLE\"* en la configuración del diccionario es " +"``False`` (valor por defecto), también ingresa *mainloop*. Observaciones: si " +"se usa la *IDLE* con el modificador (no subproceso) ``-n``, este valor debe " +"establecerse a ``True`` en :file:`turtle.cfg`. En este caso el propio " +"*mainloop* de la *IDLE* está activa también para script cliente." #: ../Doc/library/turtle.rst:2060 msgid "" @@ -1872,6 +2279,9 @@ msgid "" "are stored in the configuration dictionary and can be changed via a :file:" "`turtle.cfg` file." msgstr "" +"Establece el tamaño y la posición de la ventana principal. Los valores por " +"defecto de los argumentos son guardados en el diccionario de configuración y " +"puede ser cambiado a través del archivo :file:`turtle.cfg`." #: ../Doc/library/turtle.rst:2064 #, python-format @@ -1879,6 +2289,8 @@ msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " "default is 50% of screen" msgstr "" +"si es un entero, el tamaño en pixeles, si es un número flotante, una " +"fracción de la pantalla; el valor por defecto es 50% de la pantalla" #: ../Doc/library/turtle.rst:2066 #, python-format @@ -1886,139 +2298,170 @@ msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " "default is 75% of screen" msgstr "" +"si es un entero, la altura en pixeles, si es un número flotante, una " +"fracción de la pantalla; el valor por defecto es 75% de la pantalla" #: ../Doc/library/turtle.rst:2068 msgid "" "if positive, starting position in pixels from the left edge of the screen, " "if negative from the right edge, if ``None``, center window horizontally" msgstr "" +"si es positivo, punto de inicio en pixeles desde la esquina izquierda de la " +"pantalla, si es negativo desde la esquina derecha de la pantalla, si es " +"``None``, centra la ventana horizontalmente" #: ../Doc/library/turtle.rst:2071 msgid "" "if positive, starting position in pixels from the top edge of the screen, if " "negative from the bottom edge, if ``None``, center window vertically" msgstr "" +"si es positivo, punto de inicio en pixeles desde la parte superior de la " +"pantalla, si es negativo desde la parte inferior de la pantalla, si es " +"``None``, centra la ventana verticalmente" #: ../Doc/library/turtle.rst:2086 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" +"una cadena de caracteres que se muestra en la barra de título de la ventana " +"gráfica de la tortuga" #: ../Doc/library/turtle.rst:2089 msgid "Set title of turtle window to *titlestring*." -msgstr "" +msgstr "Establece el título de la ventana de la tortuga a *titlestring*." #: ../Doc/library/turtle.rst:2098 msgid "Public classes" -msgstr "" +msgstr "Clases públicas" #: ../Doc/library/turtle.rst:2104 msgid "" "a :class:`tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" msgstr "" +"una clase :class:`tkinter.Canvas`, una :class:`ScrolledCanvas` o una clase :" +"class:`TurtleScreen`" #: ../Doc/library/turtle.rst:2107 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." msgstr "" +"Crea una tortuga. La tortuga tiene todos los métodos descriptos " +"anteriormente como \"métodos de *\"Turtle/RawTurtle\"*." #: ../Doc/library/turtle.rst:2113 msgid "" "Subclass of RawTurtle, has the same interface but draws on a default :class:" "`Screen` object created automatically when needed for the first time." msgstr "" +"Subclase de *RawTurtle*, tiene la misma interface pero dibuja sobre una " +"objeto por defecto :class:`Screen` creado automáticamente cuando es " +"necesario por primera vez." #: ../Doc/library/turtle.rst:2119 msgid "a :class:`tkinter.Canvas`" -msgstr "" +msgstr "un :class:`tkinter.Canvas`" #: ../Doc/library/turtle.rst:2121 msgid "" "Provides screen oriented methods like :func:`setbg` etc. that are described " "above." msgstr "" +"Provee métodos orientados a la pantalla como :func:`setbg` etc. descriptos " +"anteriormente." #: ../Doc/library/turtle.rst:2126 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" +"Subclase de *TurtleScreen*, con :ref:`cuatro métodos agregados " +"`." #: ../Doc/library/turtle.rst:2131 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" msgstr "" +"algunos *widgets* *TKinter* para contener el *ScrollCanvas*, por ejemplo un " +"lienzo *Tkinter* con barras de desplazamiento agregadas" #: ../Doc/library/turtle.rst:2134 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." msgstr "" +"Usado por la clase *Screen*, que proporciona automáticamente un " +"*ScrolledCanvas* como espacio de trabajo para las tortugas." #: ../Doc/library/turtle.rst:2139 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" +"una de las cadenas de caracteres *\"polygon\"*, *\"image\"*, *\"compound\"*" #: ../Doc/library/turtle.rst:2141 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" msgstr "" +"Estructura de datos que modela las formas. El par `(type_, data)`` debe " +"seguir estas especificaciones:" #: ../Doc/library/turtle.rst:2146 msgid "*type_*" -msgstr "" +msgstr "*type_*" #: ../Doc/library/turtle.rst:2146 msgid "*data*" -msgstr "" +msgstr "*data*" #: ../Doc/library/turtle.rst:2148 msgid "\"polygon\"" -msgstr "" +msgstr "*\"polygon\"*" #: ../Doc/library/turtle.rst:2148 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" +"una tupla para el polígono, por ejemplo: una tupla de par de coordenadas" #: ../Doc/library/turtle.rst:2149 msgid "\"image\"" -msgstr "" +msgstr "*\"image\"*" #: ../Doc/library/turtle.rst:2149 msgid "an image (in this form only used internally!)" -msgstr "" +msgstr "una imagen (en esta forma solo se usa ¡internamente!)" #: ../Doc/library/turtle.rst:2150 msgid "\"compound\"" -msgstr "" +msgstr "*\"compound\"*" #: ../Doc/library/turtle.rst:2150 msgid "" "``None`` (a compound shape has to be constructed using the :meth:" "`addcomponent` method)" msgstr "" +"``None`` (una forma compuesta tiene que ser construida usando el método :" +"meth:`addcomponent`)" #: ../Doc/library/turtle.rst:2156 msgid "a polygon, i.e. a tuple of pairs of numbers" -msgstr "" +msgstr "un polígono, por ejemplo una tupla de pares de números" #: ../Doc/library/turtle.rst:2157 msgid "a color the *poly* will be filled with" -msgstr "" +msgstr "un color con el que el polígono será llenado" #: ../Doc/library/turtle.rst:2158 msgid "a color for the poly's outline (if given)" -msgstr "" +msgstr "un color con el que se delineará el polígono (se de ingresa)" #: ../Doc/library/turtle.rst:2160 msgid "Example:" -msgstr "" +msgstr "Ejemplo:" #: ../Doc/library/turtle.rst:2170 msgid "See :ref:`compoundshapes`." -msgstr "" +msgstr "Ver :ref:`compoundshapes`." #: ../Doc/library/turtle.rst:2175 msgid "" @@ -2026,42 +2469,46 @@ msgid "" "turtle graphics. May be useful for turtle graphics programs too. Derived " "from tuple, so a vector is a tuple!" msgstr "" +"Una clase de vectores bidimensionales, usado como clase de ayuda para " +"implementar gráficos de tortuga. Puede ser útil para los programas de " +"gráficos de tortugas también. Derivado de la tupla, ¡por lo que un vector es " +"una tupla!" #: ../Doc/library/turtle.rst:2179 msgid "Provides (for *a*, *b* vectors, *k* number):" -msgstr "" +msgstr "Proporciona (para *a*, *b* vectores, *k* números)" #: ../Doc/library/turtle.rst:2181 msgid "``a + b`` vector addition" -msgstr "" +msgstr "``a + b`` suma de vectores" #: ../Doc/library/turtle.rst:2182 msgid "``a - b`` vector subtraction" -msgstr "" +msgstr "``a - b`` resta de vectores" #: ../Doc/library/turtle.rst:2183 msgid "``a * b`` inner product" -msgstr "" +msgstr "``a * b`` producto interno" #: ../Doc/library/turtle.rst:2184 msgid "``k * a`` and ``a * k`` multiplication with scalar" -msgstr "" +msgstr "``k * a`` y ``a * k`` multiplicación con escalar" #: ../Doc/library/turtle.rst:2185 msgid "``abs(a)`` absolute value of a" -msgstr "" +msgstr "``abs(a)`` valor absoluto de a" #: ../Doc/library/turtle.rst:2186 msgid "``a.rotate(angle)`` rotation" -msgstr "" +msgstr "``a.rotate(angle)`` rotación" #: ../Doc/library/turtle.rst:2190 msgid "Help and configuration" -msgstr "" +msgstr "Ayuda y configuración" #: ../Doc/library/turtle.rst:2193 msgid "How to use help" -msgstr "" +msgstr "Cómo usar la ayuda" #: ../Doc/library/turtle.rst:2195 msgid "" @@ -2069,32 +2516,44 @@ msgid "" "extensively via docstrings. So these can be used as online-help via the " "Python help facilities:" msgstr "" +"Los métodos públicos de las clases Screen y Turtle están ampliamente " +"documentados a través de cadenas de documentación. Por lo tanto, estos se " +"pueden usar como ayuda en línea a través de las instalaciones de ayuda de " +"Python:" #: ../Doc/library/turtle.rst:2199 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." msgstr "" +"Cuando se usa IDLE, la información sobre herramientas muestra las firmas y " +"las primeras líneas de las cadenas de documentos de las llamadas de función/" +"método escritas." #: ../Doc/library/turtle.rst:2202 msgid "Calling :func:`help` on methods or functions displays the docstrings::" -msgstr "" +msgstr "Llamar a :func:`help` en métodos o funciones muestra los docstrings::" #: ../Doc/library/turtle.rst:2233 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" msgstr "" +"Los docstrings de las funciones que se derivan de los métodos tienen una " +"forma modificada::" #: ../Doc/library/turtle.rst:2267 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." msgstr "" +"Estos docstrings modificados se crean automáticamente junto con las " +"definiciones de función que se derivan de los métodos en el momento de la " +"importación." #: ../Doc/library/turtle.rst:2272 msgid "Translation of docstrings into different languages" -msgstr "" +msgstr "Traducción de cadenas de documentos a diferentes idiomas" #: ../Doc/library/turtle.rst:2274 msgid "" @@ -2102,10 +2561,13 @@ msgid "" "names and the values of which are the docstrings of the public methods of " "the classes Screen and Turtle." msgstr "" +"Existe una utilidad para crear un diccionario cuyas claves son los nombres " +"de los métodos y cuyos valores son los docstrings de los métodos públicos de " +"las clases Screen y Turtle." #: ../Doc/library/turtle.rst:2280 msgid "a string, used as filename" -msgstr "" +msgstr "una cadena de caracteres, utilizada como nombre de archivo" #: ../Doc/library/turtle.rst:2282 msgid "" @@ -2115,6 +2577,12 @@ msgid "" "Python script :file:`{filename}.py`. It is intended to serve as a template " "for translation of the docstrings into different languages." msgstr "" +"Crea y escribe un diccionario-docstring en un script de Python con el nombre " +"de archivo dado. Esta función tiene que ser llamada explícitamente (no es " +"utilizada por las clases de gráficos de tortugas). El diccionario de " +"docstrings se escribirá en el script de Python :file:`{filename}.py`. Está " +"destinado a servir como plantilla para la traducción de las cadenas de " +"documentos a diferentes idiomas." #: ../Doc/library/turtle.rst:2288 msgid "" @@ -2122,6 +2590,9 @@ msgid "" "native language, you have to translate the docstrings and save the resulting " "file as e.g. :file:`turtle_docstringdict_german.py`." msgstr "" +"Si usted (o sus estudiantes) desea utilizar :mod:`turtle` con ayuda en línea " +"en su idioma nativo, debe traducir los docstrings y guardar el archivo " +"resultante como, por ejemplo, :file:`turtle_docstringdict_german.py`." #: ../Doc/library/turtle.rst:2292 msgid "" @@ -2129,22 +2600,30 @@ msgid "" "dictionary will be read in at import time and will replace the original " "English docstrings." msgstr "" +"Si tiene una entrada adecuada en su archivo :file:`turtle.cfg`, este " +"diccionario se leerá en el momento de la importación y reemplazará los " +"docstrings originales en inglés." #: ../Doc/library/turtle.rst:2295 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" msgstr "" +"En el momento de escribir este artículo, existen diccionarios de docstrings " +"en alemán e italiano. (Solicitudes por favor a glingl@aon.at.)" #: ../Doc/library/turtle.rst:2301 msgid "How to configure Screen and Turtles" -msgstr "" +msgstr "Cómo configurar Screen and Turtles" #: ../Doc/library/turtle.rst:2303 msgid "" "The built-in default configuration mimics the appearance and behaviour of " "the old turtle module in order to retain best possible compatibility with it." msgstr "" +"La configuración predeterminada incorporada imita la apariencia y el " +"comportamiento del antiguo módulo de tortuga para mantener la mejor " +"compatibilidad posible con él." #: ../Doc/library/turtle.rst:2306 msgid "" @@ -2154,33 +2633,44 @@ msgid "" "be read at import time and modify the configuration according to its " "settings." msgstr "" +"Si desea utilizar una configuración diferente que refleje mejor las " +"características de este módulo o que se adapte mejor a sus necesidades, por " +"ejemplo, para su uso en un aula, puede preparar un archivo de configuración " +"``turtle.cfg`` que se leerá en el momento de la importación y modificará la " +"configuración de acuerdo con su configuración." #: ../Doc/library/turtle.rst:2311 msgid "" "The built in configuration would correspond to the following turtle.cfg::" -msgstr "" +msgstr "La configuración incorporada correspondería al siguiente turtle.cfg::" #: ../Doc/library/turtle.rst:2334 msgid "Short explanation of selected entries:" -msgstr "" +msgstr "Breve explicación de las entradas seleccionadas:" #: ../Doc/library/turtle.rst:2336 msgid "" "The first four lines correspond to the arguments of the :meth:`Screen.setup` " "method." msgstr "" +"Las primeras cuatro líneas corresponden a los argumentos del método :meth:" +"`Screen.setup`." #: ../Doc/library/turtle.rst:2338 msgid "" "Line 5 and 6 correspond to the arguments of the method :meth:`Screen." "screensize`." msgstr "" +"Las líneas 5 y 6 corresponden a los argumentos del método :meth:`Screen." +"screensize`." #: ../Doc/library/turtle.rst:2340 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." msgstr "" +"*shape* puede ser cualquiera de las formas integradas, por ejemplo: arrow, " +"turtle, etc. Para obtener más información, pruebe con ``help(shape)``." #: ../Doc/library/turtle.rst:2342 msgid "" @@ -2188,12 +2678,16 @@ msgid "" "to write ``fillcolor = \"\"`` (but all nonempty strings must not have quotes " "in the cfg-file)." msgstr "" +"Si no desea usar color de relleno (es decir, hacer que la tortuga sea " +"transparente), debe escribir ``fillcolor = \"\"`` (pero todas las cadenas no " +"vacías no deben tener comillas en el archivo cfg)." #: ../Doc/library/turtle.rst:2345 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" +"Si desea reflejar el estado de la tortuga, debe usar ``resizemode = auto``." #: ../Doc/library/turtle.rst:2347 msgid "" @@ -2201,6 +2695,10 @@ msgid "" "`turtle_docstringdict_italian.py` will be loaded at import time (if present " "on the import path, e.g. in the same directory as :mod:`turtle`." msgstr "" +"Si establece, por ejemplo, ``language = italian`` el docstringdict :file:" +"`turtle_docstringdict_italian.py` se cargará en el momento de la importación " +"(si está presente en la ruta de importación, por ejemplo, en el mismo " +"directorio que :mod:`turtle`." #: ../Doc/library/turtle.rst:2350 msgid "" @@ -2209,6 +2707,10 @@ msgid "" "docstrings to function-docstrings will delete these names from the " "docstrings." msgstr "" +"Las entradas *exampleturtle* y *examplescreen* definen los nombres de estos " +"objetos a medida que aparecen en las cadenas de documentos. La " +"transformación de método-docstrings en función-docstrings eliminará estos " +"nombres de las docstrings." #: ../Doc/library/turtle.rst:2354 msgid "" @@ -2216,6 +2718,9 @@ msgid "" "n switch (\"no subprocess\"). This will prevent :func:`exitonclick` to " "enter the mainloop." msgstr "" +"*using_IDLE*: establezca esto en ``True`` si trabaja regularmente con IDLE y " +"su interruptor -n (\"sin subproceso\"). Esto evitará que :func:`exitonclick` " +"ingrese al bucle principal." #: ../Doc/library/turtle.rst:2358 msgid "" @@ -2223,6 +2728,9 @@ msgid "" "is stored and an additional one in the current working directory. The " "latter will override the settings of the first one." msgstr "" +"Puede haber un archivo :file:`turtle.cfg` en el directorio donde se " +"almacena :mod:`turtle` y uno adicional en el directorio de trabajo actual. " +"Este último anulará la configuración del primero." #: ../Doc/library/turtle.rst:2362 msgid "" @@ -2230,31 +2738,41 @@ msgid "" "You can study it as an example and see its effects when running the demos " "(preferably not from within the demo-viewer)." msgstr "" +"El directorio :file:`Lib/turtledemo` contiene un archivo :file:`turtle.cfg`. " +"Puede estudiarlo como un ejemplo y ver sus efectos al ejecutar las " +"demostraciones (preferiblemente no desde el visor de demostraciones)." #: ../Doc/library/turtle.rst:2368 msgid ":mod:`turtledemo` --- Demo scripts" -msgstr "" +msgstr ":mod:`turtledemo` --- Scripts de demostración" #: ../Doc/library/turtle.rst:2373 msgid "" "The :mod:`turtledemo` package includes a set of demo scripts. These scripts " "can be run and viewed using the supplied demo viewer as follows::" msgstr "" +"El paquete :mod:`turtledemo` incluye un conjunto de scripts de demostración. " +"Estos scripts se pueden ejecutar y visualizar utilizando el visor de " +"demostración suministrado de la siguiente manera::" #: ../Doc/library/turtle.rst:2378 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" +"Alternativamente, puede ejecutar los scripts de demostración " +"individualmente. Por ejemplo, ::" #: ../Doc/library/turtle.rst:2382 msgid "The :mod:`turtledemo` package directory contains:" -msgstr "" +msgstr "El directorio del paquete :mod:`turtledemo` contiene:" #: ../Doc/library/turtle.rst:2384 msgid "" "A demo viewer :file:`__main__.py` which can be used to view the sourcecode " "of the scripts and run them at the same time." msgstr "" +"Un visor de demostración :file:`__main__.py` que se puede utilizar para ver " +"el código fuente de los scripts y ejecutarlos al mismo tiempo." #: ../Doc/library/turtle.rst:2386 msgid "" @@ -2262,247 +2780,257 @@ msgid "" "module. Examples can be accessed via the Examples menu. They can also be " "run standalone." msgstr "" +"Múltiples scripts que demuestran diferentes características del módulo :mod:" +"`turtle`. Se puede acceder a los ejemplos a través del menú de ejemplos. " +"También se pueden ejecutar de forma independiente." #: ../Doc/library/turtle.rst:2389 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." msgstr "" +"Un archivo :file:`turtle.cfg` que sirve como ejemplo de cómo escribir y usar " +"dichos archivos." #: ../Doc/library/turtle.rst:2392 msgid "The demo scripts are:" -msgstr "" +msgstr "Los scripts de demostración son:" #: ../Doc/library/turtle.rst:2397 msgid "Name" -msgstr "" +msgstr "Nombre" #: ../Doc/library/turtle.rst:2397 msgid "Description" -msgstr "" +msgstr "Descripción" #: ../Doc/library/turtle.rst:2397 msgid "Features" -msgstr "" +msgstr "Características" #: ../Doc/library/turtle.rst:2399 msgid "bytedesign" -msgstr "" +msgstr "bytedesign" #: ../Doc/library/turtle.rst:2399 msgid "complex classical turtle graphics pattern" -msgstr "" +msgstr "patrón de gráficos de tortuga clásica compleja" #: ../Doc/library/turtle.rst:2399 msgid ":func:`tracer`, delay, :func:`update`" -msgstr "" +msgstr ":func:`tracer`, retrasar (*delay*), :func:`update`" #: ../Doc/library/turtle.rst:2402 msgid "chaos" -msgstr "" +msgstr "caos" #: ../Doc/library/turtle.rst:2402 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" msgstr "" +"gráficos dinámicos de Verhulst, muestra que los cálculos de la computadora " +"pueden generar resultados a veces contra las expectativas del sentido común" #: ../Doc/library/turtle.rst:2402 msgid "world coordinates" -msgstr "" +msgstr "coordenadas mundiales" #: ../Doc/library/turtle.rst:2408 msgid "clock" -msgstr "" +msgstr "reloj" #: ../Doc/library/turtle.rst:2408 msgid "analog clock showing time of your computer" -msgstr "" +msgstr "reloj analógico que muestra la hora de su computadora" #: ../Doc/library/turtle.rst:2408 msgid "turtles as clock's hands, ontimer" -msgstr "" +msgstr "tortugas como manecillas de reloj, temporizador" #: ../Doc/library/turtle.rst:2411 msgid "colormixer" -msgstr "" +msgstr "colormixer" #: ../Doc/library/turtle.rst:2411 msgid "experiment with r, g, b" -msgstr "" +msgstr "experimento con r, g, b" #: ../Doc/library/turtle.rst:2413 msgid "forest" -msgstr "" +msgstr "bosque" #: ../Doc/library/turtle.rst:2413 msgid "3 breadth-first trees" -msgstr "" +msgstr "3 árboles de ancho primero" #: ../Doc/library/turtle.rst:2413 msgid "randomization" -msgstr "" +msgstr "aleatorización" #: ../Doc/library/turtle.rst:2415 msgid "fractalcurves" -msgstr "" +msgstr "fractalcurves" #: ../Doc/library/turtle.rst:2415 msgid "Hilbert & Koch curves" -msgstr "" +msgstr "Curvas Hilbert & Koch" #: ../Doc/library/turtle.rst:2415 msgid "recursion" -msgstr "" +msgstr "recursión" #: ../Doc/library/turtle.rst:2417 msgid "lindenmayer" -msgstr "" +msgstr "lindenmayer" #: ../Doc/library/turtle.rst:2417 msgid "ethnomathematics (indian kolams)" -msgstr "" +msgstr "etnomatemáticas (kolams indios)" #: ../Doc/library/turtle.rst:2417 msgid "L-System" -msgstr "" +msgstr "Sistema-L" #: ../Doc/library/turtle.rst:2420 msgid "minimal_hanoi" -msgstr "" +msgstr "minimal_hanoi" #: ../Doc/library/turtle.rst:2420 msgid "Towers of Hanoi" -msgstr "" +msgstr "Torres de Hanoi" #: ../Doc/library/turtle.rst:2420 msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" -msgstr "" +msgstr "Tortugas rectangulares como discos de Hanoi (shape, tamaño de forma)" #: ../Doc/library/turtle.rst:2424 msgid "nim" -msgstr "" +msgstr "nim" #: ../Doc/library/turtle.rst:2424 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" +"juega el clásico juego de nim con tres montones de palos contra la " +"computadora." #: ../Doc/library/turtle.rst:2424 msgid "turtles as nimsticks, event driven (mouse, keyboard)" -msgstr "" +msgstr "tortugas como nimsticks, impulsado por eventos (mouse, teclado)" #: ../Doc/library/turtle.rst:2428 msgid "paint" -msgstr "" +msgstr "pintar" #: ../Doc/library/turtle.rst:2428 msgid "super minimalistic drawing program" -msgstr "" +msgstr "programa de dibujo super minimalista" #: ../Doc/library/turtle.rst:2431 msgid "peace" -msgstr "" +msgstr "paz" #: ../Doc/library/turtle.rst:2431 msgid "elementary" -msgstr "" +msgstr "elemental" #: ../Doc/library/turtle.rst:2431 msgid "turtle: appearance and animation" -msgstr "" +msgstr "turtle: apariencia y animación" #: ../Doc/library/turtle.rst:2434 msgid "penrose" -msgstr "" +msgstr "penrose" #: ../Doc/library/turtle.rst:2434 msgid "aperiodic tiling with kites and darts" -msgstr "" +msgstr "embaldosado aperiódico con cometas y dardos" #: ../Doc/library/turtle.rst:2437 msgid "planet_and_moon" -msgstr "" +msgstr "planet_and_moon" #: ../Doc/library/turtle.rst:2437 msgid "simulation of gravitational system" -msgstr "" +msgstr "simulación de sistema gravitacional" #: ../Doc/library/turtle.rst:2437 msgid "compound shapes, :class:`Vec2D`" -msgstr "" +msgstr "formas compuestas, :class:`Vec2D`" #: ../Doc/library/turtle.rst:2440 msgid "round_dance" -msgstr "" +msgstr "round_dance" #: ../Doc/library/turtle.rst:2440 msgid "dancing turtles rotating pairwise in opposite direction" -msgstr "" +msgstr "tortugas bailarinas que giran por parejas en dirección opuesta" #: ../Doc/library/turtle.rst:2440 msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" -msgstr "" +msgstr "formas compuestas, clonar tamaño de forma, tilt, get_shapepoly, update" #: ../Doc/library/turtle.rst:2444 msgid "sorting_animate" -msgstr "" +msgstr "sorting_animate" #: ../Doc/library/turtle.rst:2444 msgid "visual demonstration of different sorting methods" -msgstr "" +msgstr "demostración visual de diferentes métodos de ordenamiento" #: ../Doc/library/turtle.rst:2444 msgid "simple alignment, randomization" -msgstr "" +msgstr "alineación simple, aleatorización" #: ../Doc/library/turtle.rst:2447 msgid "tree" -msgstr "" +msgstr "árbol" #: ../Doc/library/turtle.rst:2447 msgid "a (graphical) breadth first tree (using generators)" -msgstr "" +msgstr "un primer árbol de amplitud (gráfico, usando generadores)" #: ../Doc/library/turtle.rst:2450 msgid "two_canvases" -msgstr "" +msgstr "two_canvases" #: ../Doc/library/turtle.rst:2450 msgid "simple design" -msgstr "" +msgstr "diseño simple" #: ../Doc/library/turtle.rst:2450 msgid "turtles on two canvases" -msgstr "" +msgstr "tortugas en dos lienzos (*two_canvases*)" #: ../Doc/library/turtle.rst:2453 msgid "wikipedia" -msgstr "" +msgstr "wikipedia" #: ../Doc/library/turtle.rst:2453 msgid "a pattern from the wikipedia article on turtle graphics" msgstr "" +"un patrón del artículo de wikipedia sobre gráficos de tortuga (*turtle*)" #: ../Doc/library/turtle.rst:2453 msgid ":func:`clone`, :func:`undo`" -msgstr "" +msgstr ":func:`clone`, :func:`undo`" #: ../Doc/library/turtle.rst:2456 msgid "yinyang" -msgstr "" +msgstr "yinyang" #: ../Doc/library/turtle.rst:2456 msgid "another elementary example" -msgstr "" +msgstr "otro ejemplo elemental" #: ../Doc/library/turtle.rst:2459 msgid "Have fun!" -msgstr "" +msgstr "¡Diviértete!" #: ../Doc/library/turtle.rst:2463 msgid "Changes since Python 2.6" -msgstr "" +msgstr "Cambios desde Python 2.6" #: ../Doc/library/turtle.rst:2465 msgid "" @@ -2513,6 +3041,12 @@ msgid "" "2.6 these methods were merely duplications of the corresponding :class:" "`TurtleScreen`/:class:`Screen`-methods.)" msgstr "" +"Los métodos :meth:`Turtle.tracer`, :meth:`Turtle.window_width` y :meth:" +"`Turtle.window_height` han sido eliminados. Los métodos con estos nombres y " +"funciones ahora están disponibles solo como métodos de :class:`Screen`. Las " +"funciones derivadas de estos permanecen disponibles. (De hecho, ya en Python " +"2.6 estos métodos eran simplemente duplicaciones de los métodos " +"correspondientes :class:`TurtleScreen`/:class:`Screen`)." #: ../Doc/library/turtle.rst:2473 msgid "" @@ -2520,6 +3054,9 @@ msgid "" "`begin_fill` and :meth:`end_fill` have changed slightly: now every filling-" "process must be completed with an ``end_fill()`` call." msgstr "" +"El método :meth:`Turtle.fill` ha sido eliminado. El comportamiento de :meth:" +"`begin_fill` y :meth:`end_fill` ha cambiado ligeramente: ahora cada proceso " +"de llenado debe completarse con una llamada ``end_fill()``." #: ../Doc/library/turtle.rst:2478 msgid "" @@ -2527,10 +3064,14 @@ msgid "" "``True`` if a filling process is under way, ``False`` otherwise. This " "behaviour corresponds to a ``fill()`` call without arguments in Python 2.6." msgstr "" +"Se ha añadido un método :meth:`Turtle.filling`. Retorna un valor booleano: " +"``True`` si hay un proceso de llenado en curso, ``False`` en caso contrario. " +"Este comportamiento corresponde a una llamada ``fill()`` sin argumentos en " +"Python 2.6." #: ../Doc/library/turtle.rst:2484 msgid "Changes since Python 3.0" -msgstr "" +msgstr "Cambios desde Python 3.0" #: ../Doc/library/turtle.rst:2486 msgid "" @@ -2540,6 +3081,12 @@ msgid "" "`Turtle.tiltangle` has been enhanced in functionality: it now can be used to " "get or set the tiltangle. :meth:`Turtle.settiltangle` has been deprecated." msgstr "" +"Se han añadido los métodos :meth:`Turtle.shearfactor`, :meth:`Turtle." +"shapetransform` y :meth:`Turtle.get_shapepoly`. Por lo tanto, ahora está " +"disponible la gama completa de transformaciones lineales regulares para " +"transformar formas de tortugas. :meth:`Turtle.tiltangle` se ha mejorado en " +"funcionalidad: ahora se puede usar para obtener o establecer el tiltangle. :" +"meth:`Turtle.settiltangle` ha quedado obsoleto." #: ../Doc/library/turtle.rst:2493 msgid "" @@ -2547,6 +3094,9 @@ msgid "" "`Screen.onkey` which in fact binds actions to the keyrelease event. " "Accordingly the latter has got an alias: :meth:`Screen.onkeyrelease`." msgstr "" +"El método :meth:`Screen.onkeypress` se ha agregado como complemento a :meth:" +"`Screen.onkey` que, de hecho, une las acciones al evento keyrelease. En " +"consecuencia, este último tiene un alias: :meth:`Screen.onkeyrelease`." #: ../Doc/library/turtle.rst:2497 msgid "" @@ -2554,6 +3104,9 @@ msgid "" "with Screen and Turtle objects one must not additionally import :func:" "`mainloop` anymore." msgstr "" +"Se ha añadido el método :meth:`Screen.mainloop`. Entonces, cuando se trabaja " +"solo con objetos Screen y Turtle, ya no se debe importar adicionalmente :" +"func:`mainloop`." #: ../Doc/library/turtle.rst:2501 msgid "" @@ -2561,9 +3114,14 @@ msgid "" "numinput`. These popup input dialogs and return strings and numbers " "respectively." msgstr "" +"Se han añadido dos métodos de entrada :meth:`Screen.textinput` y :meth:" +"`Screen.numinput`. Estos cuadros de diálogo de entrada emergentes y retornan " +"cadenas y números respectivamente." #: ../Doc/library/turtle.rst:2505 msgid "" "Two example scripts :file:`tdemo_nim.py` and :file:`tdemo_round_dance.py` " "have been added to the :file:`Lib/turtledemo` directory." msgstr "" +"Se han agregado dos scripts de ejemplo :file:`tdemo_nim.py` y :file:" +"`tdemo_round_dance.py` al directorio :file:`Lib/turtledemo`." diff --git a/library/unicodedata.po b/library/unicodedata.po index 75d9c66c41..01dcd0b094 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -6,23 +6,25 @@ # 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: 2020-10-10 10:14+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: Francisco Jesús Sevilla García \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/unicodedata.rst:2 msgid ":mod:`unicodedata` --- Unicode Database" -msgstr "" +msgstr ":mod:`unicodedata` --- Base de datos Unicode" #: ../Doc/library/unicodedata.rst:18 msgid "" @@ -31,6 +33,10 @@ msgid "" "in this database is compiled from the `UCD version 12.1.0 `_." 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 " +"`_." #: ../Doc/library/unicodedata.rst:23 msgid "" @@ -38,16 +44,24 @@ msgid "" "Annex #44, `\"Unicode Character Database\" `_. It defines the following functions:" msgstr "" +"El módulo utiliza los mismos nombres y símbolos definidos por el Anexo #44 " +"del estándar Unicode de la `\"Base de datos de caracteres Unicode\" `_. Define las siguientes funciones:" #: ../Doc/library/unicodedata.rst:31 msgid "" "Look up character by name. If a character with the given name is found, " "return the corresponding character. If not found, :exc:`KeyError` is raised." msgstr "" +"Busca el carácter por su nombre. Si se encuentra un carácter con el nombre " +"proporcionado, retornará el carácter correspondiente. Si no se encuentra, se " +"lanza una excepción :exc:`KeyError`." #: ../Doc/library/unicodedata.rst:34 msgid "Support for name aliases [#]_ and named sequences [#]_ has been added." msgstr "" +"Se ha agregado soporte para alias de nombre [#]_ y secuencias con nombre " +"[#]_." #: ../Doc/library/unicodedata.rst:40 msgid "" @@ -55,6 +69,9 @@ msgid "" "defined, *default* is returned, or, if not given, :exc:`ValueError` is " "raised." msgstr "" +"Retorna el nombre asignado al carácter *chr* como una cadena de caracteres. " +"Si no se define ningún nombre, se retorna *default* o, si no se proporciona, " +"se lanza una excepción :exc:`ValueError`." #: ../Doc/library/unicodedata.rst:47 msgid "" @@ -62,6 +79,9 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" +"Retorna el valor decimal asignado al carácter *chr* como un entero. Si no se " +"define dicho valor, se retorna *default* o, si no se proporciona, se lanza " +"una excepción :exc:`ValueError`." #: ../Doc/library/unicodedata.rst:54 msgid "" @@ -69,6 +89,9 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" +"Retorna el valor del dígito asignado al carácter *chr* como un entero. Si no " +"se define dicho valor, se retorna *default* o, si no se proporciona, se " +"genera una excepción :exc:`ValueError`." #: ../Doc/library/unicodedata.rst:61 msgid "" @@ -76,26 +99,38 @@ msgid "" "such value is defined, *default* is returned, or, if not given, :exc:" "`ValueError` is raised." msgstr "" +"Retorna el valor numérico asignado al carácter *chr* como un flotante. Si no " +"se define dicho valor, se retorna *default* o, si no se proporciona, se " +"lanza una excepción :exc:`ValueError`." #: ../Doc/library/unicodedata.rst:68 msgid "Returns the general category assigned to the character *chr* as string." msgstr "" +"Retorna la categoría general asignada al carácter *chr* como una cadena de " +"caracteres." #: ../Doc/library/unicodedata.rst:74 msgid "" "Returns the bidirectional class assigned to the character *chr* as string. " "If no such value is defined, an empty string is returned." msgstr "" +"Retorna la clase bidireccional asignada al carácter *chr* como una cadena de " +"caracteres. Si no se define tal valor, se retorna una cadena de caracteres " +"vacía." #: ../Doc/library/unicodedata.rst:80 msgid "" "Returns the canonical combining class assigned to the character *chr* as " "integer. Returns ``0`` if no combining class is defined." msgstr "" +"Retorna la clase de combinación canónica asignada al carácter *chr* como un " +"entero. Retorna ``0`` si no se define ninguna clase de combinación." #: ../Doc/library/unicodedata.rst:86 msgid "Returns the east asian width assigned to the character *chr* as string." msgstr "" +"Retorna el ancho asignado al carácter *chr* para el este asiático como una " +"cadena de caracteres." #: ../Doc/library/unicodedata.rst:92 msgid "" @@ -103,18 +138,26 @@ msgid "" "Returns ``1`` if the character has been identified as a \"mirrored\" " "character in bidirectional text, ``0`` otherwise." msgstr "" +"Retorna la propiedad reflejada asignada al carácter *chr* como un entero. " +"Retorna ``1`` si el carácter se ha identificado como un carácter \"reflejado" +"\" en texto bidireccional y ``0`` en caso contrario." #: ../Doc/library/unicodedata.rst:99 msgid "" "Returns the character decomposition mapping assigned to the character *chr* " "as string. An empty string is returned in case no such mapping is defined." msgstr "" +"Retorna el mapeo de descomposición de caracteres asignado al carácter *chr* " +"como una cadena de caracteres. Se retorna una cadena de caracteres vacía en " +"caso de que no se defina tal mapeo." #: ../Doc/library/unicodedata.rst:106 msgid "" "Return the normal form *form* for the Unicode string *unistr*. Valid values " "for *form* are 'NFC', 'NFKC', 'NFD', and 'NFKD'." msgstr "" +"Retorna la forma normalizada *form* para la cadena Unicode *unistr*. Los " +"valores válidos para *form* son 'NFC', 'NFKC', 'NFD' y 'NFKD'." #: ../Doc/library/unicodedata.rst:109 msgid "" @@ -125,6 +168,12 @@ msgid "" "also be expressed as the sequence U+0043 (LATIN CAPITAL LETTER C) U+0327 " "(COMBINING CEDILLA)." msgstr "" +"El estándar Unicode define varias formas de normalización de una cadena " +"Unicode, basándose en la definición de equivalencia canónica y equivalencia " +"de compatibilidad. En Unicode, varios caracteres se pueden expresar de " +"diversas formas. Por ejemplo, el carácter U+00C7 (LETRA C LATINA MAYÚSCULA " +"CON CEDILLA) también se puede expresar con la secuencia U+0043 (LETRA C " +"LATINA MAYÚSCULA) U+0327 (CEDILLA COMBINABLE)." #: ../Doc/library/unicodedata.rst:115 msgid "" @@ -134,6 +183,11 @@ msgid "" "first applies a canonical decomposition, then composes pre-combined " "characters again." msgstr "" +"Para cada carácter, hay dos formas normalizadas: la forma normal C y la " +"forma normal D. La forma normal D (NFD) también se conoce como " +"descomposición canónica y traduce cada carácter a su forma descompuesta. La " +"forma normal C (NFC) primero aplica una descomposición canónica y luego " +"vuelve a componer los caracteres combinados previamente." #: ../Doc/library/unicodedata.rst:120 msgid "" @@ -144,6 +198,13 @@ msgid "" "I). However, it is supported in Unicode for compatibility with existing " "character sets (e.g. gb2312)." msgstr "" +"Además de las dos anteriores, hay dos formas normalizadas adicionales " +"basadas en la equivalencia de compatibilidad. En Unicode, se admiten ciertos " +"caracteres que normalmente se unificarán con otros caracteres. Por ejemplo, U" +"+2160 (NUMERAL ROMANO UNO) es realmente lo mismo que U+0049 (LETRA LATINA " +"MAYÚSCULA I). Sin embargo, esta característica está soportada por Unicode " +"para ser compatible con los conjuntos de caracteres existentes (por ejemplo, " +"gb2312)." #: ../Doc/library/unicodedata.rst:127 msgid "" @@ -152,6 +213,10 @@ msgid "" "KC (NFKC) first applies the compatibility decomposition, followed by the " "canonical composition." msgstr "" +"La forma normalizada KD (NFKD) aplicará la descomposición de compatibilidad, " +"es decir, reemplazará todos los caracteres de compatibilidad con sus " +"equivalentes. La forma normalizada KC (NFKC) primero aplica la " +"descomposición de compatibilidad, seguida de la composición canónica." #: ../Doc/library/unicodedata.rst:132 msgid "" @@ -159,20 +224,25 @@ msgid "" "reader, if one has combining characters and the other doesn't, they may not " "compare equal." msgstr "" +"Incluso si dos cadenas Unicode están normalizadas y parecen iguales para un " +"lector humano, si una tiene caracteres combinados y la otra no, es posible " +"que no se comparen como iguales." #: ../Doc/library/unicodedata.rst:138 msgid "" "Return whether the Unicode string *unistr* is in the normal form *form*. " "Valid values for *form* are 'NFC', 'NFKC', 'NFD', and 'NFKD'." msgstr "" +"Retorna si la cadena Unicode *unistr* está en la forma normalizada *form*. " +"Los valores válidos para *form* son 'NFC', 'NFKC', 'NFD' y 'NFKD'." #: ../Doc/library/unicodedata.rst:144 msgid "In addition, the module exposes the following constant:" -msgstr "" +msgstr "Además, el módulo expone las siguientes constantes:" #: ../Doc/library/unicodedata.rst:148 msgid "The version of the Unicode database used in this module." -msgstr "" +msgstr "La versión de la base de datos Unicode usada en este módulo." #: ../Doc/library/unicodedata.rst:153 msgid "" @@ -180,19 +250,23 @@ msgid "" "the Unicode database version 3.2 instead, for applications that require this " "specific version of the Unicode database (such as IDNA)." msgstr "" +"Este es un objeto que tiene los mismos métodos que el módulo completo, pero " +"usa la versión 3.2 de la base de datos Unicode en su lugar. Es útil para " +"aplicaciones que requieren esta versión específica de la base de datos " +"Unicode (como IDNA)." #: ../Doc/library/unicodedata.rst:157 msgid "Examples:" -msgstr "" +msgstr "Ejemplos:" #: ../Doc/library/unicodedata.rst:177 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/library/unicodedata.rst:178 msgid "http://www.unicode.org/Public/12.1.0/ucd/NameAliases.txt" -msgstr "" +msgstr "http://www.unicode.org/Public/12.1.0/ucd/NameAliases.txt" #: ../Doc/library/unicodedata.rst:180 msgid "http://www.unicode.org/Public/12.1.0/ucd/NamedSequences.txt" -msgstr "" +msgstr "http://www.unicode.org/Public/12.1.0/ucd/NamedSequences.txt" diff --git a/library/unittest.mock.po b/library/unittest.mock.po index db04d04cd8..522abced7a 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.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: 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: 2020-10-03 23:50+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: Francisco Jesús Sevilla García \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/unittest.mock.rst:3 msgid ":mod:`unittest.mock` --- mock object library" -msgstr "" +msgstr ":mod:`unittest.mock` --- Biblioteca de objetos simulados" #: ../Doc/library/unittest.mock.rst:13 msgid "**Source code:** :source:`Lib/unittest/mock.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/unittest/mock.py`" #: ../Doc/library/unittest.mock.rst:17 msgid "" @@ -34,6 +36,9 @@ msgid "" "replace parts of your system under test with mock objects and make " "assertions about how they have been used." msgstr "" +":mod:`unittest.mock` es una biblioteca para pruebas de software en Python. " +"Te permite reemplazar partes del sistema bajo prueba con objetos simulados y " +"hacer aserciones sobre cómo se han utilizado." #: ../Doc/library/unittest.mock.rst:21 msgid "" @@ -43,6 +48,12 @@ msgid "" "and arguments they were called with. You can also specify return values and " "set needed attributes in the normal way." msgstr "" +"El módulo :mod:`unittest.mock` proporciona una clase principal :class:`Mock` " +"eliminando la necesidad de crear una gran cantidad de stubs en todo el " +"conjunto de pruebas. Después de realizar una determinada acción, puedes " +"hacer aserciones sobre qué métodos/atributos se usaron y los argumentos con " +"los que se llamaron. También puedes especificar valores de retorno y " +"establecer los atributos necesarios de la forma habitual." #: ../Doc/library/unittest.mock.rst:27 msgid "" @@ -52,6 +63,11 @@ msgid "" "some examples of how to use :class:`Mock`, :class:`MagicMock` and :func:" "`patch`." msgstr "" +"Además, mock proporciona un decorador :func:`patch` que puede manejar el " +"parcheo de atributos a nivel de clase y de módulo dentro del ámbito de una " +"prueba, junto con :const:`sentinel` para crear objetos únicos. Consulta " +"`quick guide`_ para ver algunos ejemplos de cómo utilizar :class:`Mock`, :" +"class:`MagicMock` y :func:`patch`." #: ../Doc/library/unittest.mock.rst:33 msgid "" @@ -59,16 +75,22 @@ msgid "" "is based on the 'action -> assertion' pattern instead of 'record -> replay' " "used by many mocking frameworks." msgstr "" +"Mock es muy fácil de usar y está diseñado para ser utilizado junto a :mod:" +"`unittest`. Mock se basa en el patrón 'acción -> aserción' en lugar de usar " +"el patrón 'grabación -> reproducción' utilizado por muchos frameworks de " +"simulación." #: ../Doc/library/unittest.mock.rst:37 msgid "" "There is a backport of :mod:`unittest.mock` for earlier versions of Python, " "available as `mock on PyPI `_." msgstr "" +"Hay un backport del módulo :mod:`unittest.mock` para versiones anteriores de " +"Python `disponible en PyPI `_." #: ../Doc/library/unittest.mock.rst:42 msgid "Quick Guide" -msgstr "" +msgstr "Guía rápida" #: ../Doc/library/unittest.mock.rst:60 msgid "" @@ -77,12 +99,19 @@ msgid "" "can configure them, to specify return values or limit what attributes are " "available, and then make assertions about how they have been used:" msgstr "" +"Los objetos de las clases :class:`Mock` y :class:`MagicMock` van creando " +"todos los atributos y métodos a medida que se accede a ellos y almacenan " +"detalles de cómo se han utilizado. Puedes configurarlos para especificar " +"valores de retorno o limitar qué atributos están disponibles y " +"posteriormente hacer aserciones sobre cómo han sido utilizados:" #: ../Doc/library/unittest.mock.rst:72 msgid "" ":attr:`side_effect` allows you to perform side effects, including raising an " "exception when a mock is called:" msgstr "" +":attr:`side_effect` te permite implementar efectos colaterales, lo que " +"incluye lanzar una excepción cuando se llama a un objeto simulado:" #: ../Doc/library/unittest.mock.rst:92 msgid "" @@ -91,6 +120,11 @@ msgid "" "from another object. Attempting to access attributes or methods on the mock " "that don't exist on the spec will fail with an :exc:`AttributeError`." msgstr "" +"Existen muchas otras formas de configurar y controlar el comportamiento de " +"Mock. Por ejemplo, el argumento *spec* configura el objeto simulado para que " +"tome su especificación de otro objeto. Cualquier intento de acceder a " +"atributos o métodos en el objeto simulado que no existan en la " +"especificación fallará lanzando una excepción :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:97 msgid "" @@ -99,6 +133,10 @@ msgid "" "with a mock (or other object) during the test and restored when the test " "ends::" msgstr "" +"El decorador / gestor de contexto :func:`patch` facilita la simulación de " +"clases u objetos en un módulo bajo prueba. El objeto que especifiques será " +"reemplazado por un objeto simulado (u otro objeto) durante la prueba y será " +"restaurado cuando esta finalice:" #: ../Doc/library/unittest.mock.rst:116 msgid "" @@ -107,6 +145,11 @@ msgid "" "decorators are applied). This means from the bottom up, so in the example " "above the mock for ``module.ClassName1`` is passed in first." msgstr "" +"Cuando anidas decoradores patch, los objetos simulados se pasan a la función " +"decorada en el mismo orden en el que fueron aplicados (el orden normal en el " +"que se aplican los decoradores en *Python*). Esto significa de abajo hacia " +"arriba, por lo que en el ejemplo anterior se pasa primero el objeto simulado " +"para ``module.ClassName1``." #: ../Doc/library/unittest.mock.rst:121 msgid "" @@ -114,12 +157,17 @@ msgid "" "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"Al usar :func:`patch` es importante que parchees los objetos en el espacio " +"de nombres donde son buscados. Esto normalmente es sencillo, pero para una " +"guía rápida, lee :ref:`dónde parchear `." #: ../Doc/library/unittest.mock.rst:125 msgid "" "As well as a decorator :func:`patch` can be used as a context manager in a " "with statement:" msgstr "" +"Además de decorador, la función :func:`patch` se puede usar como gestor de " +"contexto en una declaración with:" #: ../Doc/library/unittest.mock.rst:135 msgid "" @@ -127,6 +175,9 @@ msgid "" "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"También existe la función :func:`patch.dict` que permite establecer valores " +"en un diccionario dentro de un ámbito y restaurar el diccionario a su estado " +"original cuando finaliza la prueba:" #: ../Doc/library/unittest.mock.rst:146 msgid "" @@ -134,6 +185,9 @@ msgid "" "The easiest way of using magic methods is with the :class:`MagicMock` class. " "It allows you to do things like:" msgstr "" +"Mock admite la simulación de los :ref:`métodos mágicos ` de " +"Python. La forma más sencilla de utilizar métodos mágicos es mediante la " +"clase :class:`MagicMock`. Te permite hacer cosas como:" #: ../Doc/library/unittest.mock.rst:156 msgid "" @@ -142,12 +196,19 @@ msgid "" "is just a Mock variant that has all of the magic methods pre-created for you " "(well, all the useful ones anyway)." msgstr "" +"Mock también permite asignar funciones (u otras instancias de Mock) a " +"métodos mágicos y se asegura de que serán llamadas de forma apropiada. La " +"clase :class:`MagicMock` es solo una variante de Mock con la diferencia de " +"que tiene todos los métodos mágicos previamente creados para ti (bueno, " +"todos los que son útiles)." #: ../Doc/library/unittest.mock.rst:161 msgid "" "The following is an example of using magic methods with the ordinary Mock " "class:" msgstr "" +"El siguiente es un ejemplo de uso de métodos mágicos utilizando la clase " +"Mock ordinaria:" #: ../Doc/library/unittest.mock.rst:169 msgid "" @@ -159,12 +220,22 @@ msgid "" "replacing, and any functions and methods (including constructors) have the " "same call signature as the real object." msgstr "" +"Para asegurarte de que los objetos simulados en tus pruebas tienen " +"exactamente la misma API que los objetos que están reemplazando, puedes " +"usar :ref:`autoespecificación `. La autoespecificación se " +"puede realizar a través del argumento *autospec* de patch, o mediante la " +"función :func:`create_autospec`. La autoespecificación crea objetos " +"simulados que tienen los mismos atributos y métodos que los objetos que " +"están reemplazando, y todas las función y métodos (incluidos los " +"constructores) tienen la misma firma de llamada que los objetos reales." #: ../Doc/library/unittest.mock.rst:177 msgid "" "This ensures that your mocks will fail in the same way as your production " "code if they are used incorrectly:" msgstr "" +"Esto asegura que tus simulaciones fallarán, si se utilizan incorrectamente, " +"de la misma manera que lo haría tu código en producción:" #: ../Doc/library/unittest.mock.rst:193 msgid "" @@ -172,10 +243,13 @@ msgid "" "signature of the ``__init__`` method, and on callable objects where it " "copies the signature of the ``__call__`` method." msgstr "" +":func:`create_autospec` también se puede usar en clases, donde copia la " +"firma del método ``__init__``, y en objetos invocables, donde copia la firma " +"del método ``__call__``." #: ../Doc/library/unittest.mock.rst:200 msgid "The Mock Class" -msgstr "" +msgstr "La clase Mock" #: ../Doc/library/unittest.mock.rst:211 msgid "" @@ -185,6 +259,12 @@ msgid "" "attribute will always return the same mock. Mocks record how you use them, " "allowing you to make assertions about what your code has done to them." msgstr "" +":class:`Mock` es un objeto simulado flexible, destinado a reemplazar el uso " +"de stubs y dobles de prueba en todo tu código. Los objetos Mock son " +"invocables y crean atributos en el mismo momento que se accede a ellos como " +"nuevos objetos Mock [#]_. Acceder al mismo atributo siempre retornará el " +"mismo objeto Mock. Además, registran cómo los usas, lo que te permite hacer " +"aserciones sobre cómo tu código ha interaccionado con ellos." #: ../Doc/library/unittest.mock.rst:217 msgid "" @@ -193,6 +273,10 @@ msgid "" "when you are mocking out objects that aren't callable: :class:" "`NonCallableMock` and :class:`NonCallableMagicMock`" msgstr "" +":class:`MagicMock` es una subclase de :class:`Mock` con todos los métodos " +"mágicos creados previamente y listos para ser usados. También hay variantes " +"no invocables, útiles cuando se están simulando objetos que no se pueden " +"llamar: :class:`NonCallableMock` y :class:`NonCallableMagicMock`" #: ../Doc/library/unittest.mock.rst:222 msgid "" @@ -201,12 +285,19 @@ msgid "" "will create a :class:`MagicMock` for you. You can specify an alternative " "class of :class:`Mock` using the *new_callable* argument to :func:`patch`." msgstr "" +"Los decoradores :func:`patch` facilitan la sustitución temporal de clases en " +"un módulo en particular con un objeto :class:`Mock`. Por defecto, :func:" +"`patch` creará un objeto :class:`MagicMock` automáticamente. Se puede " +"especificar una clase alternativa a :class:`Mock` usando el argumento " +"*new_callable* de :func:`patch`." #: ../Doc/library/unittest.mock.rst:230 msgid "" "Create a new :class:`Mock` object. :class:`Mock` takes several optional " "arguments that specify the behaviour of the Mock object:" msgstr "" +"Crea un nuevo objeto :class:`Mock`. :class:`Mock` toma varios argumentos " +"opcionales que especifican el comportamiento del objeto Mock:" #: ../Doc/library/unittest.mock.rst:233 msgid "" @@ -216,6 +307,12 @@ msgid "" "(excluding unsupported magic attributes and methods). Accessing any " "attribute not in this list will raise an :exc:`AttributeError`." msgstr "" +"*spec*: Puede ser una lista de cadenas de caracteres o un objeto existente " +"previamente (una clase o una instancia) que actúa como la especificación del " +"objeto simulado. Si pasas un objeto, se forma una lista de cadenas llamando " +"a la función *dir* en el objeto (excluyendo los métodos y atributos mágicos " +"no admitidos). Acceder a cualquier atributo que no esté en esta lista " +"generará una excepción :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:239 msgid "" @@ -223,6 +320,9 @@ msgid "" "__class__` returns the class of the spec object. This allows mocks to pass :" "func:`isinstance` tests." msgstr "" +"Si *spec* es un objeto (en lugar de una lista de cadenas de caracteres), :" +"attr:`~instance.__class__` retorna la clase del objeto especificado. Esto " +"permite que los objetos simulados pasen las pruebas de :func:`isinstance`." #: ../Doc/library/unittest.mock.rst:243 msgid "" @@ -230,6 +330,10 @@ msgid "" "get an attribute on the mock that isn't on the object passed as *spec_set* " "will raise an :exc:`AttributeError`." msgstr "" +"*spec_set*: Una variante más estricta de *spec*. Si se utiliza, cualquier " +"intento de *establecer* u obtener un atributo del objeto simulado que no " +"esté en el objeto pasado como *spec_set* lanzará una excepción :exc:" +"`AttributeError`." #: ../Doc/library/unittest.mock.rst:247 msgid "" @@ -239,22 +343,32 @@ msgid "" "arguments as the mock, and unless it returns :data:`DEFAULT`, the return " "value of this function is used as the return value." msgstr "" +"*side_effect*: Una función que se llamará cada vez que el objeto simulado " +"sea invocado. Consultar el atributo :attr:`~Mock.side_effect` para más " +"información. Es útil para lanzar excepciones o para cambiar dinámicamente " +"valores de retorno. La función se llama con los mismos argumentos que el " +"objeto simulado, y a menos que retorne :data:`DEFAULT`, su valor de retorno " +"se utiliza como valor de retorno del propio objeto simulado." #: ../Doc/library/unittest.mock.rst:253 msgid "" "Alternatively *side_effect* can be an exception class or instance. In this " "case the exception will be raised when the mock is called." msgstr "" +"Alternativamente *side_effect* puede ser una clase o instancia de excepción. " +"En este caso, se lanza la excepción cuando se llama al objeto simulado." #: ../Doc/library/unittest.mock.rst:256 msgid "" "If *side_effect* is an iterable then each call to the mock will return the " "next value from the iterable." msgstr "" +"Si *side_effect* es un iterable, cada llamada al objeto simulado retornará " +"el siguiente valor del iterable." #: ../Doc/library/unittest.mock.rst:259 msgid "A *side_effect* can be cleared by setting it to ``None``." -msgstr "" +msgstr "Un *side_effect* se puede desactivar estableciéndolo en ``None``." #: ../Doc/library/unittest.mock.rst:261 msgid "" @@ -262,6 +376,9 @@ msgid "" "is a new Mock (created on first access). See the :attr:`return_value` " "attribute." msgstr "" +"*return_value*: El valor retornado cuando se llama al objeto simulado. Por " +"defecto, este es una nueva instancia de la clase Mock (creada en el primer " +"acceso). Consultar el atributo :attr:`return_value` para más detalles." #: ../Doc/library/unittest.mock.rst:265 msgid "" @@ -269,6 +386,10 @@ msgid "" "raise an :exc:`AttributeError`. Passing ``unsafe=True`` will allow access to " "these attributes." msgstr "" +"*unsafe*: Por defecto, si cualquier atributo comienza con *assert* o " +"*assret* y se intenta acceder a él, se lanza una excepción :exc:" +"`AttributeError`. Pasar ``unsafe=True`` permitirá el acceso a estos " +"atributos." #: ../Doc/library/unittest.mock.rst:271 msgid "" @@ -279,18 +400,30 @@ msgid "" "to access an attribute that doesn't exist will raise an :exc:" "`AttributeError`)." msgstr "" +"*wraps*: objeto a envolver (simular) por la instancia de Mock. Si *wraps* no " +"es ``None``, al llamar al objeto Mock se pasa la llamada a través del objeto " +"envuelto (retornando el resultado real). Acceder a un atributo del objeto " +"simulado retornará otro objeto Mock que envuelve al atributo correspondiente " +"del objeto real envuelto (de modo que intentar acceder a un atributo que no " +"existe lanzará una excepción :exc:`AttributeError`)." #: ../Doc/library/unittest.mock.rst:278 msgid "" "If the mock has an explicit *return_value* set then calls are not passed to " "the wrapped object and the *return_value* is returned instead." msgstr "" +"Si el objeto simulado tiene un *return_value* explícito establecido, las " +"llamadas no se pasan al objeto envuelto y *return_value* se retorna en su " +"lugar." #: ../Doc/library/unittest.mock.rst:281 msgid "" "*name*: If the mock has a name then it will be used in the repr of the mock. " "This can be useful for debugging. The name is propagated to child mocks." msgstr "" +"*name*: Si el objeto simulado tiene un nombre, será utilizado en la " +"representación imprimible del mismo. Esto puede ser útil para la depuración. " +"El nombre se propaga a los objetos simulados hijos." #: ../Doc/library/unittest.mock.rst:285 msgid "" @@ -298,30 +431,39 @@ msgid "" "used to set attributes on the mock after it is created. See the :meth:" "`configure_mock` method for details." msgstr "" +"Los objetos simulados también pueden ser invocados con argumentos por " +"palabra clave arbitrarios. Estos serán utilizados para establecer atributos " +"en el objeto simulado una vez creado. Consultar el método :meth:" +"`configure_mock` para más detalles." #: ../Doc/library/unittest.mock.rst:291 msgid "Assert that the mock was called at least once." -msgstr "" +msgstr "Aserta si el objeto simulado se ha invocado al menos una vez." #: ../Doc/library/unittest.mock.rst:302 msgid "Assert that the mock was called exactly once." -msgstr "" +msgstr "Aserta si el objeto simulado se ha invocado exactamente una vez." #: ../Doc/library/unittest.mock.rst:320 msgid "" "This method is a convenient way of asserting that the last call has been " "made in a particular way:" msgstr "" +"Este método es una manera apropiada de asertar si la última llamada se ha " +"realizado de una manera particular:" #: ../Doc/library/unittest.mock.rst:330 msgid "" "Assert that the mock was called exactly once and that that call was with the " "specified arguments." msgstr "" +"Aserta si el objeto simulado se ha invocado exactamente una vez y si esa " +"llamada se realizó con los argumentos especificados." #: ../Doc/library/unittest.mock.rst:345 msgid "assert the mock has been called with the specified arguments." msgstr "" +"Aserta si el objeto simulado se ha invocado con los argumentos especificados." #: ../Doc/library/unittest.mock.rst:347 msgid "" @@ -330,36 +472,51 @@ msgid "" "the call is the most recent one, and in the case of :meth:" "`assert_called_once_with` it must also be the only call." msgstr "" +"La aserción pasa si el objeto simulado se ha invocado *en algún momento*, a " +"diferencia de :meth:`assert_called_with` y :meth:`assert_called_once_with`, " +"con los que sólo pasa la aserción si la llamada es la más reciente, y en el " +"caso de :meth:`assert_called_once_with` también debe ser la única llamada " +"realizada." #: ../Doc/library/unittest.mock.rst:360 msgid "" "assert the mock has been called with the specified calls. The :attr:" "`mock_calls` list is checked for the calls." msgstr "" +"Aserta si el objeto simulado se ha invocado con las llamadas especificadas. " +"La lista :attr:`mock_calls` se compara con la lista de llamadas." #: ../Doc/library/unittest.mock.rst:363 msgid "" "If *any_order* is false then the calls must be sequential. There can be " "extra calls before or after the specified calls." msgstr "" +"Si *any_order* es falso entonces las llamadas deben ser secuenciales. No " +"puede haber llamadas adicionales antes o después de las llamadas " +"especificadas." #: ../Doc/library/unittest.mock.rst:367 msgid "" "If *any_order* is true then the calls can be in any order, but they must all " "appear in :attr:`mock_calls`." msgstr "" +"Si *any_order* es verdadero, las llamadas pueden estar en cualquier orden, " +"pero deben aparecer todas en :attr:`mock_calls`." #: ../Doc/library/unittest.mock.rst:382 msgid "Assert the mock was never called." -msgstr "" +msgstr "Aserta si el objeto simulado nunca fue invocado." #: ../Doc/library/unittest.mock.rst:397 msgid "The reset_mock method resets all the call attributes on a mock object:" msgstr "" +"El método *reset_mock* restablece todos los atributos de llamada en un " +"objeto simulado:" #: ../Doc/library/unittest.mock.rst:407 msgid "Added two keyword only argument to the reset_mock function." msgstr "" +"Se añadieron dos argumentos por palabra clave a la función *reset_mock*." #: ../Doc/library/unittest.mock.rst:410 msgid "" @@ -370,20 +527,35 @@ msgid "" "`side_effect`, then pass the corresponding parameter as ``True``. Child " "mocks and the return value mock (if any) are reset as well." msgstr "" +"Esto puede ser útil cuando se quiere hacer una serie de aserciones que " +"reutilizan el mismo objeto. Ten en cuenta que por defecto :meth:`reset_mock` " +"*no* borra el valor de retorno, :attr:`side_effect`, ni cualquier atributo " +"hijo que hayas establecido mediante asignación normal. En caso de que " +"quieras restablecer *return_value* o :attr:`side_effect`, debes pasar el " +"parámetro correspondiente como ``True``. Los objetos simulados hijos y el " +"objeto simulado que conforma el valor de retorno (si los hay) se restablecen " +"también." #: ../Doc/library/unittest.mock.rst:418 msgid "*return_value*, and :attr:`side_effect` are keyword only argument." msgstr "" +"*return_value* y :attr:`side_effect` son argumentos por palabra clave " +"exclusivamente." #: ../Doc/library/unittest.mock.rst:424 msgid "" "Add a spec to a mock. *spec* can either be an object or a list of strings. " "Only attributes on the *spec* can be fetched as attributes from the mock." msgstr "" +"Agrega una especificación a un objeto simulado. *spec* puede ser un objeto o " +"una lista de cadenas de caracteres. Sólo los atributos presentes en *spec* " +"pueden ser obtenidos desde el objeto simulado." #: ../Doc/library/unittest.mock.rst:428 msgid "If *spec_set* is true then only attributes on the spec can be set." msgstr "" +"Si *spec_set* es verdadero, solo los atributos de la especificación pueden " +"ser establecidos." #: ../Doc/library/unittest.mock.rst:433 msgid "" @@ -391,26 +563,39 @@ msgid "" "Calls to the attached mock will be recorded in the :attr:`method_calls` and :" "attr:`mock_calls` attributes of this one." msgstr "" +"Adjunta otro objeto simulado como un atributo de la instancia actual, " +"substituyendo su nombre y su padre. Las llamadas al objeto simulado " +"adjuntado se registrarán en los atributos :attr:`method_calls` y :attr:" +"`mock_calls` del padre." #: ../Doc/library/unittest.mock.rst:440 msgid "Set attributes on the mock through keyword arguments." msgstr "" +"Establece los atributos del objeto simulado por medio de argumentos por " +"palabra clave." #: ../Doc/library/unittest.mock.rst:442 msgid "" "Attributes plus return values and side effects can be set on child mocks " "using standard dot notation and unpacking a dictionary in the method call:" msgstr "" +"Los atributos, los valores de retorno y los efectos de colaterales se pueden " +"configurar en los objetos simulados hijos usando la notación de punto " +"estándar y desempaquetando un diccionario en la llamada al método:" #: ../Doc/library/unittest.mock.rst:456 msgid "The same thing can be achieved in the constructor call to mocks:" msgstr "" +"Lo mismo se puede lograr en la llamada al constructor de los objetos " +"simulados:" #: ../Doc/library/unittest.mock.rst:469 msgid "" ":meth:`configure_mock` exists to make it easier to do configuration after " "the mock has been created." msgstr "" +":meth:`configure_mock` existe con el fin de facilitar la configuración " +"después de que el objeto simulado haya sido creado." #: ../Doc/library/unittest.mock.rst:475 msgid "" @@ -418,12 +603,17 @@ msgid "" "results. For mocks with a *spec* this includes all the permitted attributes " "for the mock." msgstr "" +"Los objetos :class:`Mock` limitan los resultados de ``dir(some_mock)`` a " +"resultados útiles. Para los objetos simulados con una especificación " +"(*spec*), esto incluye todos los atributos permitidos para el mismo." #: ../Doc/library/unittest.mock.rst:479 msgid "" "See :data:`FILTER_DIR` for what this filtering does, and how to switch it " "off." msgstr "" +"Consultar :data:`FILTER_DIR` para conocer que hace este filtrado y la forma " +"de desactivarlo." #: ../Doc/library/unittest.mock.rst:485 msgid "" @@ -431,40 +621,56 @@ msgid "" "mocks will be the same type as the parent. Subclasses of Mock may want to " "override this to customize the way child mocks are made." msgstr "" +"Crea los objetos simulados hijos para los atributos y el valor de retorno. " +"Por defecto los objetos simulados hijos serán del mismo tipo que el padre. " +"Las subclases de Mock pueden redefinir este método para personalizar la " +"forma en la que se construye el objeto simulado hijo." #: ../Doc/library/unittest.mock.rst:490 msgid "" "For non-callable mocks the callable variant will be used (rather than any " "custom subclass)." msgstr "" +"Para objetos simulados no invocables la variante invocable será utilizada " +"(en lugar de cualquier subclase personalizada)." #: ../Doc/library/unittest.mock.rst:496 msgid "A boolean representing whether or not the mock object has been called:" msgstr "" +"Un booleano que representa si el objeto simulado ha sido invocado o no:" #: ../Doc/library/unittest.mock.rst:507 msgid "An integer telling you how many times the mock object has been called:" msgstr "" +"Un entero que le indica cuántas veces el objeto simulado ha sido invocado:" #: ../Doc/library/unittest.mock.rst:519 msgid "Set this to configure the value returned by calling the mock:" msgstr "" +"Establece este atributo para configurar el valor a retornar cuando se llama " +"al objeto simulado:" #: ../Doc/library/unittest.mock.rst:526 msgid "" "The default return value is a mock object and you can configure it in the " "normal way:" msgstr "" +"El valor de retorno por defecto es otro objeto simulado y se puede " +"configurar de forma habitual:" #: ../Doc/library/unittest.mock.rst:535 msgid ":attr:`return_value` can also be set in the constructor:" msgstr "" +":attr:`return_value` también se puede establecer directamente en el " +"constructor:" #: ../Doc/library/unittest.mock.rst:546 msgid "" "This can either be a function to be called when the mock is called, an " "iterable or an exception (class or instance) to be raised." msgstr "" +"Este atributo puede ser una función a ser llamada cuando se llame al objeto " +"simulado, un iterable o una excepción (clase o instancia) para ser lanzada." #: ../Doc/library/unittest.mock.rst:549 msgid "" @@ -474,6 +680,11 @@ msgid "" "returns :data:`DEFAULT` then the mock will return its normal value (from " "the :attr:`return_value`)." msgstr "" +"Si pasas una función, será llamada con los mismos argumentos que el objeto " +"simulado y, a menos que la función retorne el singleton :data:`DEFAULT`, la " +"llamada al objeto simulado retornará lo mismo que retorna la función. En " +"cambio, si la función retorna :data:`DEFAULT`, entonces el objeto simulado " +"retornará su valor normal (el del atributo :attr:`return_value`)." #: ../Doc/library/unittest.mock.rst:555 msgid "" @@ -482,30 +693,39 @@ msgid "" "to be raised, or a value to be returned from the call to the mock (:data:" "`DEFAULT` handling is identical to the function case)." msgstr "" +"Si pasas un iterable, se utiliza para obtener un iterador a partir del mismo " +"que debe producir un valor en cada llamada. Este valor puede ser una " +"instancia de la excepción a ser lanzada o un valor a retornar al llamar al " +"objeto simulado (el manejo de :data:`DEFAULT` es igual que en el caso en el " +"que se pasa una función)." #: ../Doc/library/unittest.mock.rst:560 msgid "" "An example of a mock that raises an exception (to test exception handling of " "an API):" msgstr "" +"Un ejemplo de un objeto simulado que genera una excepción (para probar el " +"manejo de excepciones de una API):" #: ../Doc/library/unittest.mock.rst:570 msgid "Using :attr:`side_effect` to return a sequence of values:" -msgstr "" +msgstr "Usando :attr:`side_effect` para retornar una secuencia de valores:" #: ../Doc/library/unittest.mock.rst:577 msgid "Using a callable:" -msgstr "" +msgstr "Usando un objeto invocable:" #: ../Doc/library/unittest.mock.rst:587 msgid "" ":attr:`side_effect` can be set in the constructor. Here's an example that " "adds one to the value the mock is called with and returns it:" msgstr "" +":attr:`side_effect` se puede establecer en el constructor. Aquí hay un " +"ejemplo que suma uno al valor del objeto simulado invocado y lo retorna:" #: ../Doc/library/unittest.mock.rst:597 msgid "Setting :attr:`side_effect` to ``None`` clears it:" -msgstr "" +msgstr "Establecer :attr:`side_effect` en ``None`` lo desactiva:" #: ../Doc/library/unittest.mock.rst:611 msgid "" @@ -516,6 +736,14 @@ msgid "" "second member, which can also be accessed through the ``kwargs`` property, " "is any keyword arguments (or an empty dictionary)." msgstr "" +"Este atributo es ``None`` (si el objeto simulado no ha sido invocado) o los " +"argumentos con los que se llamó por última vez. En este último caso, será " +"una tupla con dos elementos: el primer miembro, que también es accesible a " +"través de la propiedad ``args``, son los argumentos posicionales con los que " +"el objeto simulado se llamó (o una tupla vacía si no se pasó ninguno) y el " +"segundo miembro, que también es accesible mediante la propiedad ``kwargs``, " +"son los argumento por palabra clave pasados (o un diccionario vacío si no se " +"pasó ninguno)." #: ../Doc/library/unittest.mock.rst:644 msgid "" @@ -524,6 +752,12 @@ msgid "" "are tuples, so they can be unpacked to get at the individual arguments and " "make more complex assertions. See :ref:`calls as tuples `." msgstr "" +"El atributo :attr:`call_args`, junto con los miembros de las listas :attr:" +"`call_args_list`, :attr:`method_calls` y :attr:`mock_calls` son objetos :" +"data:`call`. Estos objetos son tuplas, con la finalidad de que puedan ser " +"desempaquetadas para acceder a los argumentos individuales y hacer " +"aserciones más complejas. Consultar :ref:`objetos call como tuplas ` para más información." #: ../Doc/library/unittest.mock.rst:653 msgid "" @@ -533,6 +767,12 @@ msgid "" "used for conveniently constructing lists of calls to compare with :attr:" "`call_args_list`." msgstr "" +"Este argumento es una lista de todas las llamadas consecutivas realizadas al " +"objeto simulado (por lo que la longitud de la lista es el número de veces " +"que se ha invocado). Previamente a que se hayan realizado llamadas es una " +"lista vacía. El objeto :data:`call` se puede utilizar para construir " +"convenientemente las listas de llamadas a comparar con :attr:" +"`call_args_list`." #: ../Doc/library/unittest.mock.rst:669 msgid "" @@ -540,12 +780,19 @@ msgid "" "unpacked as tuples to get at the individual arguments. See :ref:`calls as " "tuples `." msgstr "" +"Los miembros de :attr:`call_args_list` son objetos :data:`call`. Estos " +"pueden ser desempaquetados como tuplas para acceder a los argumentos " +"individuales. Consultar :ref:`objetos call como tuplas ` " +"para más información." #: ../Doc/library/unittest.mock.rst:676 msgid "" "As well as tracking calls to themselves, mocks also track calls to methods " "and attributes, and *their* methods and attributes:" msgstr "" +"Igual que realizan un seguimiento de las llamadas hechas a sí mismos, los " +"objetos simulados también realizan un seguimiento a *sus* métodos y " +"atributos, así como de las llamadas hechas a los mismos:" #: ../Doc/library/unittest.mock.rst:687 msgid "" @@ -553,12 +800,18 @@ msgid "" "unpacked as tuples to get at the individual arguments. See :ref:`calls as " "tuples `." msgstr "" +"Los miembros de :attr:`method_calls` son objetos :data:`call`. Estos pueden " +"ser desempaquetados como tuplas para acceder a los atributos individuales. " +"Consultar :ref:`objetos call como tuplas ` para más " +"información." #: ../Doc/library/unittest.mock.rst:694 msgid "" ":attr:`mock_calls` records *all* calls to the mock object, its methods, " "magic methods *and* return value mocks." msgstr "" +":attr:`mock_calls` registra *todas* las llamadas al objeto simulado, sus " +"métodos, métodos mágicos *y* objetos simulados del valor de retorno." #: ../Doc/library/unittest.mock.rst:712 msgid "" @@ -566,6 +819,10 @@ msgid "" "unpacked as tuples to get at the individual arguments. See :ref:`calls as " "tuples `." msgstr "" +"Los miembros de :attr:`mock_calls` son objetos :data:`call`. Estos pueden " +"ser desempaquetados como tuplas para acceder a los argumentos individuales. " +"Consultar :ref:`objetos call como tuplas ` para más " +"información." #: ../Doc/library/unittest.mock.rst:718 msgid "" @@ -573,6 +830,9 @@ msgid "" "made, the parameters of ancestor calls are not recorded and so will always " "compare equal:" msgstr "" +"La forma como se registra el atributo :attr:`mock_calls` implica que cuando " +"se realizan llamadas anidadas, los parámetros de las llamadas previas no se " +"registran, por lo que siempre resultan iguales al comparar:" #: ../Doc/library/unittest.mock.rst:732 msgid "" @@ -581,12 +841,20 @@ msgid "" "instead. This allows mock objects to pass :func:`isinstance` tests for the " "object they are replacing / masquerading as:" msgstr "" +"Normalmente, el atributo de un objeto :attr:`__class__` retornará su tipo. " +"Para un objeto simulado con un :attr:`spec`, ``__class__`` retorna la clase " +"especificada en su lugar. Esto permite a los objetos simulados pasar los " +"test de :func:`isinstance` para el objeto que están reemplazando / " +"enmascarando:" #: ../Doc/library/unittest.mock.rst:741 msgid "" ":attr:`__class__` is assignable to, this allows a mock to pass an :func:" "`isinstance` check without forcing you to use a spec:" msgstr "" +"El atributo :attr:`__class__` es asignable, esto permite al objeto simulado " +"pasar una verificación de :func:`isinstance` sin verse forzado a utilizar " +"una especificación:" #: ../Doc/library/unittest.mock.rst:751 msgid "" @@ -594,18 +862,27 @@ msgid "" "same meaning of :class:`Mock`, with the exception of *return_value* and " "*side_effect* which have no meaning on a non-callable mock." msgstr "" +"Una versión no invocable de :class:`Mock`. Los parámetros del constructor " +"tienen el mismo significado que en :class:`Mock`, con la excepción de " +"*return_value* y *side_effect* que no tienen sentido en un objeto simulado " +"no invocable." #: ../Doc/library/unittest.mock.rst:755 msgid "" "Mock objects that use a class or an instance as a :attr:`spec` or :attr:" "`spec_set` are able to pass :func:`isinstance` tests:" msgstr "" +"Los objetos simulados que usan una clase o una instancia como :attr:`spec` " +"o :attr:`spec_set` son capaces de pasar los test de :func:`isinstance`:" #: ../Doc/library/unittest.mock.rst:765 msgid "" "The :class:`Mock` classes have support for mocking magic methods. See :ref:" "`magic methods ` for the full details." msgstr "" +"Las clases :class:`Mock` tienen soporte para simular los métodos mágicos. " +"Consultar la sección dedicada a los :ref:`métodos mágicos ` " +"para ver los detalles." #: ../Doc/library/unittest.mock.rst:768 msgid "" @@ -614,6 +891,11 @@ msgid "" "are passed to the constructor of the mock being created. The keyword " "arguments are for configuring attributes of the mock:" msgstr "" +"Las clases simuladas y los decoradores :func:`patch` aceptan todas " +"argumentos por palabra clave arbitrarios para la configuración. En los " +"decoradores :func:`patch` los argumentos por palabra clave se pasan al " +"constructor del objeto simulado creado. Estos argumentos se usan para " +"configurar los atributos del propio objeto simulado:" #: ../Doc/library/unittest.mock.rst:779 msgid "" @@ -621,6 +903,11 @@ msgid "" "using dotted notation. As you can't use dotted names directly in a call you " "have to create a dictionary and unpack it using ``**``:" msgstr "" +"Tanto el valor de retorno como el efecto colateral del objeto simulado " +"pueden ser establecidos de la misma manera, mediante notación de punto. En " +"cambio, si se quieren establecer mediante el constructor, dado que no se " +"puede utilizar notación de punto directamente en una llamada, se tiene que " +"crear un diccionario y desempaquetarlo usando ``**``:" #: ../Doc/library/unittest.mock.rst:794 msgid "" @@ -629,6 +916,11 @@ msgid "" "mock. Therefore, it can match the actual call's arguments regardless of " "whether they were passed positionally or by name::" msgstr "" +"Un objeto simulado invocable que fue creado con un *spec* (o un *spec_set*) " +"introspeccionará la firma del objeto de la especificación en el momento de " +"emparejar las llamadas al objeto simulado. Esto le permite hacer coincidir " +"sus argumentos con los argumentos de la llamada real, independientemente de " +"si se pasaron por posición o por nombre:" #: ../Doc/library/unittest.mock.rst:807 msgid "" @@ -637,10 +929,16 @@ msgid "" "assert_any_call`. When :ref:`auto-speccing`, it will also apply to method " "calls on the mock object." msgstr "" +"Esto se aplica a :meth:`~Mock.assert_called_with`, :meth:`~Mock." +"assert_called_once_with`, :meth:`~Mock.assert_has_calls` y :meth:`~Mock." +"assert_any_call`. Cuando se hace uso de :ref:`auto-speccing`, también se " +"aplicará a las llamadas a los métodos del objeto simulado." #: ../Doc/library/unittest.mock.rst:812 msgid "Added signature introspection on specced and autospecced mock objects." msgstr "" +"Se añadió introspección de firma en objetos simulados especificados y " +"autoespecificados." #: ../Doc/library/unittest.mock.rst:818 msgid "" @@ -648,12 +946,19 @@ msgid "" "class:`PropertyMock` provides :meth:`__get__` and :meth:`__set__` methods so " "you can specify a return value when it is fetched." msgstr "" +"Un objeto simulado destinado a ser utilizado en una clase como una " +"propiedad, u otro descriptor. La clase :class:`PropertyMock` proporciona los " +"métodos :meth:`__get__` y :meth:`__set__`, por lo que puedes especificar un " +"valor de retorno para cuando su valor es requerido." #: ../Doc/library/unittest.mock.rst:822 msgid "" "Fetching a :class:`PropertyMock` instance from an object calls the mock, " "with no args. Setting it calls the mock with the value being set. ::" msgstr "" +"La obtención de una instancia :class:`PropertyMock` desde un objeto ocasiona " +"una llamada al objeto simulado, sin argumentos. Establecer su valor también " +"llama al objeto simulado, con el valor a establecer como argumento." #: ../Doc/library/unittest.mock.rst:843 msgid "" @@ -661,6 +966,9 @@ msgid "" "class:`PropertyMock` to a mock object. Instead you can attach it to the mock " "type object::" msgstr "" +"Debido a la forma en que se almacenan los atributos simulados, no es posible " +"conectar directamente un :class:`PropertyMock` a un objeto simulado. En su " +"lugar se puede conectar al tipo (type) del objeto simulado:" #: ../Doc/library/unittest.mock.rst:857 msgid "" @@ -668,24 +976,34 @@ msgid "" "behave so the object is recognized as an async function, and the result of a " "call is an awaitable." msgstr "" +"Una versión asíncrona de :class:`Mock`. El objeto :class:`AsyncMock` se " +"comportará de tal modo que el objeto es reconocido como una función " +"asíncrona y el resultado de su llamada es un objeto aguardable (awaitable)." #: ../Doc/library/unittest.mock.rst:867 msgid "" "The result of ``mock()`` is an async function which will have the outcome of " "``side_effect`` or ``return_value`` after it has been awaited:" msgstr "" +"El resultado de ``mock()`` es una función asíncrona que proporcionará el " +"resultado de ``side_effect`` o de ``return_value`` después de haber sido " +"aguardada:" #: ../Doc/library/unittest.mock.rst:870 msgid "" "if ``side_effect`` is a function, the async function will return the result " "of that function," msgstr "" +"si ``side_effect`` es una función, la función asíncrona retornará el " +"resultado de esa función," #: ../Doc/library/unittest.mock.rst:872 msgid "" "if ``side_effect`` is an exception, the async function will raise the " "exception," msgstr "" +"si ``side_effect`` es una excepción, la función asíncrona lanzará la " +"excepción," #: ../Doc/library/unittest.mock.rst:874 msgid "" @@ -693,6 +1011,9 @@ msgid "" "value of the iterable, however, if the sequence of result is exhausted, " "``StopAsyncIteration`` is raised immediately," msgstr "" +"si ``side_effect`` es un iterable, la función asíncrona retornará el " +"siguiente valor del iterable, sin embargo, si se agota la secuencia de " +"resultados, se lanza una excepción ``StopAsyncIteration`` inmediatamente," #: ../Doc/library/unittest.mock.rst:877 msgid "" @@ -700,12 +1021,18 @@ msgid "" "defined by ``return_value``, hence, by default, the async function returns a " "new :class:`AsyncMock` object." msgstr "" +"si ``side_effect`` no está definido, la función asíncrona retornará el valor " +"definido por ``return_value``, por lo tanto, la función asíncrona retorna un " +"nuevo objeto :class:`AsyncMock` por defecto." #: ../Doc/library/unittest.mock.rst:882 msgid "" "Setting the *spec* of a :class:`Mock` or :class:`MagicMock` to an async " "function will result in a coroutine object being returned after calling." msgstr "" +"Establecer el argumento *spec* de un objeto :class:`Mock` o :class:" +"`MagicMock` en una función asíncrona resultará en que un objeto corrutina " +"será retornado después de la llamada al objeto." #: ../Doc/library/unittest.mock.rst:894 msgid "" @@ -716,63 +1043,89 @@ msgid "" "or :class:`Mock` (if the parent mock is :class:`Mock`). All asynchronous " "functions will be :class:`AsyncMock`." msgstr "" +"Establecer el argumento *spec* de un objeto :class:`Mock`, :class:" +"`MagicMock` o :class:`AsyncMock` en una clase que tiene simultáneamente " +"funciones asíncronas y síncronas hará que se detecten automáticamente las " +"funciones sincrónicas y las establecerá como :class:`MagicMock` (si el " +"objeto simulado padre es :class:`AsyncMock` o :class:`MagicMock`) o :class:" +"`Mock` (si el objeto simulado padre es :class:`Mock`) . Todas las funciones " +"asíncronas serán :class:`AsyncMock`." #: ../Doc/library/unittest.mock.rst:922 msgid "" "Assert that the mock was awaited at least once. Note that this is separate " "from the object having been called, the ``await`` keyword must be used:" msgstr "" +"Aserta si el objeto simulado fue aguardado al menos una vez. Ten en cuenta " +"que, independientemente del objeto que ha sido invocado, la palabra clave " +"``await`` debe ser utilizada:" #: ../Doc/library/unittest.mock.rst:941 msgid "Assert that the mock was awaited exactly once." -msgstr "" +msgstr "Aserta si el objeto simulado fue aguardado exactamente una vez." #: ../Doc/library/unittest.mock.rst:957 msgid "Assert that the last await was with the specified arguments." msgstr "" +"Aserta si el último aguardo (await) fue con los argumentos especificados." #: ../Doc/library/unittest.mock.rst:974 msgid "" "Assert that the mock was awaited exactly once and with the specified " "arguments." msgstr "" +"Aserta si que el objeto simulado se ha aguardado exactamente una vez y con " +"los argumentos especificados." #: ../Doc/library/unittest.mock.rst:991 msgid "Assert the mock has ever been awaited with the specified arguments." msgstr "" +"Aserta si el objeto simulado nunca se ha aguardado con los argumentos " +"especificados." #: ../Doc/library/unittest.mock.rst:1007 msgid "" "Assert the mock has been awaited with the specified calls. The :attr:" "`await_args_list` list is checked for the awaits." msgstr "" +"Aserta si el objeto simulado ha sido aguardado con las llamadas " +"especificadas. Para comprobar los aguardos (awaits) se utiliza la lista :" +"attr:`await_args_list`." #: ../Doc/library/unittest.mock.rst:1010 msgid "" "If *any_order* is false then the awaits must be sequential. There can be " "extra calls before or after the specified awaits." msgstr "" +"Si *any_order* es falso, los aguardos (awaits) deben ser secuenciales. No " +"puede haber llamadas adicionales antes o después de los aguardos " +"especificados." #: ../Doc/library/unittest.mock.rst:1014 msgid "" "If *any_order* is true then the awaits can be in any order, but they must " "all appear in :attr:`await_args_list`." msgstr "" +"Si *any_order* es verdadero, entonces los aguardos (awaits) pueden estar en " +"cualquier orden, pero deben aparecer todos en :attr:`await_args_list`." #: ../Doc/library/unittest.mock.rst:1034 msgid "Assert that the mock was never awaited." -msgstr "" +msgstr "Aserta si el objeto simulado nunca ha sido aguardado." #: ../Doc/library/unittest.mock.rst:1041 msgid "" "See :func:`Mock.reset_mock`. Also sets :attr:`await_count` to 0, :attr:" "`await_args` to None, and clears the :attr:`await_args_list`." msgstr "" +"Consultar :func:`Mock.reset_mock`. Además, también establece :attr:" +"`await_count` a 0, :attr:`await_args` a None y borra :attr:`await_args_list`." #: ../Doc/library/unittest.mock.rst:1046 msgid "" "An integer keeping track of how many times the mock object has been awaited." msgstr "" +"Un registro entero de cuántas veces se ha aguardado el objeto simulado." #: ../Doc/library/unittest.mock.rst:1061 msgid "" @@ -780,6 +1133,9 @@ msgid "" "that the mock was last awaited with. Functions the same as :attr:`Mock." "call_args`." msgstr "" +"Este atributo es ``None`` (si el objeto simulado no se ha aguardado) o los " +"argumentos con los que fue aguardado la última vez. Su funcionamiento es " +"idéntico al de :attr:`Mock.call_args`." #: ../Doc/library/unittest.mock.rst:1079 msgid "" @@ -787,10 +1143,14 @@ msgid "" "length of the list is the number of times it has been awaited). Before any " "awaits have been made it is an empty list." msgstr "" +"Es una lista de todas los aguardos (awaits) realizados en el objeto simulado " +"de forma secuencial (por lo que la longitud de la lista es el número de " +"veces que se ha aguardado el objeto). Si no se han realizado aguardos " +"previos, es una lista vacía." #: ../Doc/library/unittest.mock.rst:1098 msgid "Calling" -msgstr "" +msgstr "Llamar a los objetos simulados" #: ../Doc/library/unittest.mock.rst:1100 msgid "" @@ -800,12 +1160,20 @@ msgid "" "explicitly or by calling the Mock) - but it is stored and the same one " "returned each time." msgstr "" +"Los objetos Mock son invocables. La llamada a uno retornará el valor " +"establecido en el atributo :attr:`~Mock.return_value`. El valor de retorno " +"por defecto es un nuevo objeto Mock, el cual se crea la primera vez que se " +"accede al valor de retorno (ya sea explícitamente o llamando al objeto " +"Mock). Una vez creado, se almacena y el mismo objeto es retornado cada vez " +"que se solicita." #: ../Doc/library/unittest.mock.rst:1106 msgid "" "Calls made to the object will be recorded in the attributes like :attr:" "`~Mock.call_args` and :attr:`~Mock.call_args_list`." msgstr "" +"Las llamadas realizadas al objeto serán registradas en los atributos :attr:" +"`~Mock.call_args` y :attr:`~Mock.call_args_list`." #: ../Doc/library/unittest.mock.rst:1109 msgid "" @@ -813,12 +1181,18 @@ msgid "" "has been recorded, so if :attr:`side_effect` raises an exception the call is " "still recorded." msgstr "" +"Si :attr:`~Mock.side_effect` se establece, será invocado después de que la " +"llamada haya sido registrada, por lo que la llamada se registra aunque :attr:" +"`side_effect` lance una excepción." #: ../Doc/library/unittest.mock.rst:1113 msgid "" "The simplest way to make a mock raise an exception when called is to make :" "attr:`~Mock.side_effect` an exception class or instance:" msgstr "" +"La forma más sencilla de hacer que un objeto simulado lance de una excepción " +"cuando sea invocado es establecer su atributo :attr:`~Mock.side_effect` como " +"una clase o instancia de excepción:" #: ../Doc/library/unittest.mock.rst:1131 msgid "" @@ -827,6 +1201,11 @@ msgid "" "with the same arguments as the mock. This allows you to vary the return " "value of the call dynamically, based on the input:" msgstr "" +"Si :attr:`side_effect` es una función, la llamada al objeto simulado " +"retornará lo que sea que esta función retorne. La función establecida en :" +"attr:`side_effect` se llama con los mismos argumentos con los que el objeto " +"simulado ha sido invocado. Esto te permite variar el valor de retorno de la " +"llamada dinámicamente, en función de la entrada:" #: ../Doc/library/unittest.mock.rst:1147 msgid "" @@ -835,12 +1214,18 @@ msgid "" "return :attr:`mock.return_value` from inside :attr:`side_effect`, or return :" "data:`DEFAULT`:" msgstr "" +"Si se desea que el objeto simulado aún retorne el valor por defecto (un " +"nuevo objeto simulado), o cualquier valor de retorno establecido, entonces " +"existen dos maneras de proceder. Se puede retornar tanto el atributo :attr:" +"`mock.return_value` como :data:`DEFAULT` desde :attr:`side_effect`:" #: ../Doc/library/unittest.mock.rst:1166 msgid "" "To remove a :attr:`side_effect`, and return to the default behaviour, set " "the :attr:`side_effect` to ``None``:" msgstr "" +"Para eliminar un :attr:`side_effect`, volviendo al comportamiento " +"predeterminado, establece el atributo :attr:`side_effect` en ``None``:" #: ../Doc/library/unittest.mock.rst:1180 msgid "" @@ -848,22 +1233,30 @@ msgid "" "the mock will return values from the iterable (until the iterable is " "exhausted and a :exc:`StopIteration` is raised):" msgstr "" +"El atributo :attr:`side_effect` también puede ser cualquier objeto iterable. " +"En este caso, las llamadas repetidas al objeto simulado irán retornando " +"valores del iterable (hasta que el iterable se agote, momento en el que se " +"lanza una excepción :exc:`StopIteration`):" #: ../Doc/library/unittest.mock.rst:1196 msgid "" "If any members of the iterable are exceptions they will be raised instead of " "returned::" msgstr "" +"Si cualquier miembro del iterable es una excepción, se lanzará en lugar de " +"retornarse:" #: ../Doc/library/unittest.mock.rst:1214 msgid "Deleting Attributes" -msgstr "" +msgstr "Eliminar atributos" #: ../Doc/library/unittest.mock.rst:1216 msgid "" "Mock objects create attributes on demand. This allows them to pretend to be " "objects of any type." msgstr "" +"Los objetos simulados crean atributos en demanda. Esto les permite hacerse " +"pasar por objetos de cualquier tipo." #: ../Doc/library/unittest.mock.rst:1219 msgid "" @@ -872,16 +1265,23 @@ msgid "" "by providing an object as a :attr:`spec` for a mock, but that isn't always " "convenient." msgstr "" +"Es posible que desees que un objeto simulado retorne ``False`` al llamar a :" +"func:`hasattr`, o que lance una excepción :exc:`AttributeError` cuando se " +"intenta obtener un atributo. Puedes hacer todo esto proporcionando un objeto " +"adecuado al atributo :attr:`spec` del objeto simulado, pero no siempre es " +"conveniente." #: ../Doc/library/unittest.mock.rst:1223 msgid "" "You \"block\" attributes by deleting them. Once deleted, accessing an " "attribute will raise an :exc:`AttributeError`." msgstr "" +"Puedes \"bloquear\" atributos eliminándolos. Una vez eliminado, el acceso a " +"un atributo lanzará una excepción :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:1240 msgid "Mock names and the name attribute" -msgstr "" +msgstr "Los nombres de los objetos simulados y el atributo *name*" #: ../Doc/library/unittest.mock.rst:1242 msgid "" @@ -890,16 +1290,22 @@ msgid "" "creation time. There are two alternatives. One option is to use :meth:`~Mock." "configure_mock`::" msgstr "" +"Dado que \"name\" es un argumento para el constructor de la clase :class:" +"`Mock`, si quieres que tu objeto simulado tenga un atributo \"name\", no " +"puedes simplemente pasarlo al constructor en tiempo de creación. Hay dos " +"alternativas. Una opción es usar el método :meth:`~Mock.configure_mock`:" #: ../Doc/library/unittest.mock.rst:1252 msgid "" "A simpler option is to simply set the \"name\" attribute after mock " "creation::" msgstr "" +"Una opción más sencilla es simplemente establecer el atributo \"name\" " +"después de la creación del objeto simulado:" #: ../Doc/library/unittest.mock.rst:1259 msgid "Attaching Mocks as Attributes" -msgstr "" +msgstr "Adjuntar objetos simulados como atributos" #: ../Doc/library/unittest.mock.rst:1261 msgid "" @@ -911,12 +1317,23 @@ msgid "" "calls to the children and allows you to make assertions about the order of " "calls between mocks:" msgstr "" +"Cuando se adjunta un objeto simulado como un atributo de otro objeto " +"simulado (o como su valor de retorno) se convierte en un \"hijo\" del mismo. " +"Las llamadas a los hijos se registran en los atributos :attr:`~Mock." +"method_calls` y :attr:`~Mock.mock_calls` del padre. Esto es útil para " +"configurar objetos simulados hijos para después adjuntarlos al padre, o para " +"adjuntar objetos simulados a un padre que se encargará de registrar todas " +"las llamadas a los hijos, permitiéndote hacer aserciones sobre el orden de " +"las llamadas entre objetos simulados:" #: ../Doc/library/unittest.mock.rst:1279 msgid "" "The exception to this is if the mock has a name. This allows you to prevent " "the \"parenting\" if for some reason you don't want it to happen." msgstr "" +"La excepción a lo anterior es si el objeto simulado tiene un nombre. Esto te " +"permite evitar el comportamiento de \"parentesco\" explicado previamente, si " +"por alguna razón no deseas que suceda." #: ../Doc/library/unittest.mock.rst:1290 msgid "" @@ -924,6 +1341,9 @@ msgid "" "attach mocks that have names to a parent you use the :meth:`~Mock." "attach_mock` method::" msgstr "" +"Los objetos simulados creados automáticamente por la función :func:`patch` " +"también reciben nombres automáticamente. Para adjuntar un objeto simulado " +"con nombre a un padre debes utilizar el método :meth:`~Mock.attach_mock`:" #: ../Doc/library/unittest.mock.rst:1308 msgid "" @@ -934,10 +1354,17 @@ msgid "" "a new Mock object when it expects a magic method. If you need magic method " "support see :ref:`magic methods `." msgstr "" +"Las únicas excepciones son los métodos y atributos mágicos (aquellos que " +"tienen doble subrayado al principio y al final). Mock no los crea " +"automáticamente, sino que lanza una excepción :exc:`AttributeError`. Esto se " +"debe a que el intérprete a menudo solicitará implícitamente estos métodos y " +"terminaría *muy* confundido si obtiene un nuevo objeto Mock cuando espera un " +"método mágico. Si necesitas soporte para métodos mágicos, consulta :ref:" +"`métodos mágicos `." #: ../Doc/library/unittest.mock.rst:1317 msgid "The patchers" -msgstr "" +msgstr "Parcheadores" #: ../Doc/library/unittest.mock.rst:1319 msgid "" @@ -946,16 +1373,24 @@ msgid "" "you, even if exceptions are raised. All of these functions can also be used " "in with statements or as class decorators." msgstr "" +"Los decoradores patch se utilizan para parchear los objetos sólo dentro del " +"ámbito de la función que decoran. Se encargan automáticamente de desparchear " +"una vez terminada la prueba, incluso si se lanzan excepciones. Todas estas " +"funciones también se pueden utilizar con declaraciones o como decoradores de " +"clase." #: ../Doc/library/unittest.mock.rst:1326 msgid "patch" -msgstr "" +msgstr "patch" #: ../Doc/library/unittest.mock.rst:1330 msgid "" ":func:`patch` is straightforward to use. The key is to do the patching in " "the right namespace. See the section `where to patch`_." msgstr "" +"La función :func:`patch` es sencilla de usar. La clave es realizar la " +"aplicación de parches en el espacio de nombres correcto. Consulta la sección " +"`where to patch`_ para más detalles." #: ../Doc/library/unittest.mock.rst:1335 msgid "" @@ -964,6 +1399,11 @@ msgid "" "patched with a *new* object. When the function/with statement exits the " "patch is undone." msgstr "" +":func:`patch` actúa como decorador de función, decorador de clase o como " +"gestor de contexto. Ya sea en el interior del cuerpo de una función o dentro " +"de una declaración with, *target* es parcheado con un objeto *new*. Cuando " +"la función / declaración with termina su ejecución el parche se deshace " +"automáticamente." #: ../Doc/library/unittest.mock.rst:1340 msgid "" @@ -974,6 +1414,13 @@ msgid "" "If :func:`patch` is used as a context manager the created mock is returned " "by the context manager." msgstr "" +"Si se omite *new*, entonces el objetivo se reemplaza por un objeto :class:" +"`AsyncMock` si el objeto parcheado es una función asíncrona, o con un " +"objeto :class:`MagicMock` en caso contrario. Si se utiliza :func:`patch` " +"como decorador y se omite *new*, el objeto simulado creado se pasa como un " +"argumento adicional a la función decorada. Si se utiliza :func:`patch` como " +"un gestor de contexto, el objeto simulado creado es retornado por el gestor " +"de contexto." #: ../Doc/library/unittest.mock.rst:1348 msgid "" @@ -983,18 +1430,28 @@ msgid "" "calling :func:`patch` from. The target is imported when the decorated " "function is executed, not at decoration time." msgstr "" +"*target* debe ser una cadena de la forma ``'paquete.modulo." +"NombreDeLaClase'``. *target* es importado y el objeto especificado " +"reemplazado por el objeto *new*, por lo que *target* debe ser importable " +"desde el entorno desde el cual estás llamando a :func:`patch`. Hay que tener " +"presente que *target* es importado cuando se ejecuta la función decorada, no " +"en tiempo de decoración." #: ../Doc/library/unittest.mock.rst:1354 msgid "" "The *spec* and *spec_set* keyword arguments are passed to the :class:" "`MagicMock` if patch is creating one for you." msgstr "" +"Los argumentos *spec* y *spec_set* se pasan a :class:`MagicMock` si patch " +"está creando automáticamente uno para ti." #: ../Doc/library/unittest.mock.rst:1357 msgid "" "In addition you can pass ``spec=True`` or ``spec_set=True``, which causes " "patch to pass in the object being mocked as the spec/spec_set object." msgstr "" +"Además, puedes pasar ``spec=True`` o ``spec_set=True``, lo que causa que " +"patch pase el objeto que está siendo simulado como el objeto spec/spec_set." #: ../Doc/library/unittest.mock.rst:1360 msgid "" @@ -1002,6 +1459,10 @@ msgid "" "that will be called to create the *new* object. By default :class:" "`AsyncMock` is used for async functions and :class:`MagicMock` for the rest." msgstr "" +"*new_callable* te permite especificar una clase diferente, o un objeto " +"invocable, que será invocada para crear el objeto *new*. Por defecto se " +"utiliza :class:`AsyncMock` para las funciones asíncronas y :class:" +"`MagicMock` para el resto." #: ../Doc/library/unittest.mock.rst:1364 msgid "" @@ -1014,12 +1475,25 @@ msgid "" "return value (the 'instance') will have the same spec as the class. See the :" "func:`create_autospec` function and :ref:`auto-speccing`." msgstr "" +"Una variante más poderosa de *spec* es *autospec*. Si estableces " +"``autospec=True`` el objeto simulado se creará con una especificación del " +"objeto que está siendo reemplazado. Todos los atributos del objeto simulado " +"también tendrán la especificación del atributo correspondiente del objeto " +"que está siendo reemplazado. Los argumentos de los métodos y funciones " +"simulados son comprobados y se lanzará una excepción :exc:`TypeError` si se " +"les llama con la firma incorrecta. Para los objetos simulados que sustituyen " +"a una clase, su valor de retorno (la 'instancia') tendrá la misma " +"especificación que la clase. Consultar la función :func:`create_autospec` y :" +"ref:`auto-speccing` para más detalles." #: ../Doc/library/unittest.mock.rst:1374 msgid "" "Instead of ``autospec=True`` you can pass ``autospec=some_object`` to use an " "arbitrary object as the spec instead of the one being replaced." msgstr "" +"En lugar de ``autospec=True``, puedes pasar ``autospec=some_object`` para " +"utilizar un objeto arbitrario como especificación en lugar del objeto " +"reemplazado." #: ../Doc/library/unittest.mock.rst:1377 msgid "" @@ -1031,12 +1505,22 @@ msgid "" "off by default because it can be dangerous. With it switched on you can " "write passing tests against APIs that don't actually exist!" msgstr "" +"Por defecto, :func:`patch` fallará al intentar reemplazar atributos que no " +"existen. Si pasas ``create=True`` y no existe el atributo, patch crea el " +"atributo cuando la función se llama y lo elimina de nuevo en cuanto termina " +"de ejecutarse . Esto es útil para implementar pruebas para atributos que tu " +"código de producción crea en tiempo de ejecución. Está desactivado por " +"defecto, ya que puede ser peligroso. ¡Al activarlo se pueden implementar " +"pruebas que validen APIs que en realidad no existen!" #: ../Doc/library/unittest.mock.rst:1387 msgid "" "If you are patching builtins in a module then you don't need to pass " "``create=True``, it will be added by default." msgstr "" +"Si estás parcheando objetos incorporados (builtins) en un módulo, no es " +"necesario pasar ``create=True``, ya que en este caso se agrega de forma " +"predeterminada." #: ../Doc/library/unittest.mock.rst:1391 msgid "" @@ -1048,6 +1532,14 @@ msgid "" "tests. You can specify an alternative prefix by setting ``patch." "TEST_PREFIX``." msgstr "" +"Patch puede ser usado como un decorador de la clase :class:`TestCase`. " +"Funciona decorando cada uno de los métodos de prueba presentes en la clase. " +"Esto reduce el código repetitivo cuando tus métodos de prueba comparten un " +"conjunto de parcheo común. :func:`patch` encuentra las pruebas mediante la " +"búsqueda de métodos cuyos nombres comienzan con ``patch.TEST_PREFIX``. Por " +"defecto es ``'test'``, que coincide con la forma en que :mod:`unittest` " +"busca las pruebas. Se puede especificar un prefijo alternativo estableciendo " +"un nuevo valor para el atributo ``patch.TEST_PREFIX``." #: ../Doc/library/unittest.mock.rst:1398 msgid "" @@ -1056,24 +1548,35 @@ msgid "" "\"as\" then the patched object will be bound to the name after the \"as\"; " "very useful if :func:`patch` is creating a mock object for you." msgstr "" +"Patch puede ser usado como un gestor de contexto, con la declaración with. " +"En este caso el parcheo se aplica al bloque sangrado inmediatamente después " +"de la declaración with. Si utilizas \"as\", el objeto parcheado será " +"enlazado al nombre especificado después de \"as\"; muy útil si :func:`patch` " +"está creando un objeto simulado automáticamente." #: ../Doc/library/unittest.mock.rst:1403 msgid "" ":func:`patch` takes arbitrary keyword arguments. These will be passed to " "the :class:`Mock` (or *new_callable*) on construction." msgstr "" +":func:`patch` toma argumentos por palabra clave arbitrarios. Estos serán " +"pasados ​​a :class:`Mock` (o a *new_callable*) durante la construcción." #: ../Doc/library/unittest.mock.rst:1406 msgid "" "``patch.dict(...)``, ``patch.multiple(...)`` and ``patch.object(...)`` are " "available for alternate use-cases." msgstr "" +"``patch.dict(...)``, ``patch.multiple(...)`` y ``patch.object(...)`` están " +"disponibles para casos de uso alternativos." #: ../Doc/library/unittest.mock.rst:1409 msgid "" ":func:`patch` as function decorator, creating the mock for you and passing " "it into the decorated function::" msgstr "" +":func:`patch` como decorador de función, crea el objeto simulado por ti y lo " +"pasa a la función decorada:" #: ../Doc/library/unittest.mock.rst:1419 msgid "" @@ -1081,6 +1584,9 @@ msgid "" "the class is instantiated in the code under test then it will be the :attr:" "`~Mock.return_value` of the mock that will be used." msgstr "" +"Parchear una clase sustituye a la clase por una *instancia* de :class:" +"`MagicMock`. Si la clase se instancia en el código bajo prueba, el atributo :" +"attr:`~Mock.return_value` del objeto simulado será el utilizado." #: ../Doc/library/unittest.mock.rst:1423 msgid "" @@ -1088,18 +1594,27 @@ msgid "" "side_effect` to return a new mock each time. Alternatively you can set the " "*return_value* to be anything you want." msgstr "" +"Si la clase se instancia en múltiples ocasiones, puedes utilizar el " +"atributo :attr:`~Mock.side_effect` para retornar un nuevo objeto simulado " +"cada vez. O también puedes establecer *return_value* para que sea lo que tu " +"quieras." #: ../Doc/library/unittest.mock.rst:1427 msgid "" "To configure return values on methods of *instances* on the patched class " "you must do this on the :attr:`return_value`. For example::" msgstr "" +"Para configurar valores de retorno de métodos en *instancias* de la clase " +"parcheada debes hacer uso del atributo :attr:`return_value`. Por ejemplo:" #: ../Doc/library/unittest.mock.rst:1441 msgid "" "If you use *spec* or *spec_set* and :func:`patch` is replacing a *class*, " "then the return value of the created mock will have the same spec. ::" msgstr "" +"Si utilizas *spec* o *spec_set* y :func:`patch` está reemplazando una " +"*clase*, el valor de retorno del objeto simulado creado tendrá las mismas " +"especificaciones:" #: ../Doc/library/unittest.mock.rst:1451 msgid "" @@ -1107,12 +1622,18 @@ msgid "" "class to the default :class:`MagicMock` for the created mock. For example, " "if you wanted a :class:`NonCallableMock` to be used::" msgstr "" +"El argumento *new_callable* es útil cuando deseas utilizar una clase por " +"defecto alternativa a :class:`MagicMock` para el objeto simulado creado. Por " +"ejemplo, si quieres que se use una clase :class:`NonCallableMock` por " +"defecto:" #: ../Doc/library/unittest.mock.rst:1464 msgid "" "Another use case might be to replace an object with an :class:`io.StringIO` " "instance::" msgstr "" +"Otro caso de uso podría ser la sustitución de un objeto por una instancia " +"de :class:`io.StringIO`:" #: ../Doc/library/unittest.mock.rst:1477 msgid "" @@ -1121,6 +1642,11 @@ msgid "" "can be done in the call to patch. Any arbitrary keywords you pass into the " "call will be used to set attributes on the created mock::" msgstr "" +"Cuando :func:`patch` crea un objeto simulado para ti, a menudo lo primero " +"que tienes que hacer es configurar el objeto simulado recién creado. Parte " +"de la configuración se puede hacer en la propia llamada a patch. Cualquier " +"palabra clave arbitraria que pases a la llamada será utilizada para " +"establecer los atributos del objeto simulado creado:" #: ../Doc/library/unittest.mock.rst:1489 msgid "" @@ -1130,6 +1656,13 @@ msgid "" "arguments, but a dictionary with these as keys can still be expanded into a :" "func:`patch` call using ``**``::" msgstr "" +"Los atributos de los objetos simulados hijos, como :attr:`~Mock." +"return_value` y :attr:`~Mock.side_effect`, también puede ser configurados en " +"la llamada, dado que los objetos simulados hijos son atributos en si mismos " +"del objeto simulado padre creado. Eso si, estos no son sintácticamente " +"válidos para ser pasados directamente como argumentos por palabras clave a " +"la función patch, pero un diccionario con ellos como claves si que puede ser " +"expandido en una llama a :func:`patch` usando ``**``:" #: ../Doc/library/unittest.mock.rst:1505 msgid "" @@ -1137,28 +1670,37 @@ msgid "" "attribute in a class) that does not exist will fail with :exc:" "`AttributeError`::" msgstr "" +"Por defecto, el intento de parchear una función en un módulo (o un método o " +"atributo en una clase) que no existe fallará lanzando una excepción :exc:" +"`AttributeError`:" #: ../Doc/library/unittest.mock.rst:1517 msgid "" "but adding ``create=True`` in the call to :func:`patch` will make the " "previous example work as expected::" msgstr "" +"pero añadir ``create=True`` en la llamada a :func:`patch` hará que el " +"ejemplo previo funcione como se esperaba:" #: ../Doc/library/unittest.mock.rst:1528 msgid "" ":func:`patch` now returns an :class:`AsyncMock` if the target is an async " "function." msgstr "" +":func:`patch` ahora retorna una instancia de :class:`AsyncMock` si el " +"objetivo es una función asíncrona." #: ../Doc/library/unittest.mock.rst:1532 msgid "patch.object" -msgstr "" +msgstr "patch.object" #: ../Doc/library/unittest.mock.rst:1536 msgid "" "patch the named member (*attribute*) on an object (*target*) with a mock " "object." msgstr "" +"parchea el miembro *attribute* invocado de un objeto *target* con un objeto " +"simulado." #: ../Doc/library/unittest.mock.rst:1539 msgid "" @@ -1168,12 +1710,20 @@ msgid "" "`patch`, :func:`patch.object` takes arbitrary keyword arguments for " "configuring the mock object it creates." msgstr "" +":func:`patch.object` se puede utilizar como un decorador, decorador de clase " +"o un gestor de contexto. Los argumentos *new*, *spec*, *create*, *spec_set*, " +"*autospec* y *new_callable* tienen el mismo significado que en la función :" +"func:`patch`. Al igual que :func:`patch`, :func:`patch.object` toma " +"argumentos por palabras clave arbitrarios para la configuración del objeto " +"simulado que crea." #: ../Doc/library/unittest.mock.rst:1545 msgid "" "When used as a class decorator :func:`patch.object` honours ``patch." "TEST_PREFIX`` for choosing which methods to wrap." msgstr "" +"Cuando se utiliza como un decorador de clase :func:`patch.object` se rige " +"por ``patch.TEST_PREFIX`` a la hora de elegir los métodos a envolver." #: ../Doc/library/unittest.mock.rst:1548 msgid "" @@ -1181,6 +1731,9 @@ msgid "" "arguments. The three argument form takes the object to be patched, the " "attribute name and the object to replace the attribute with." msgstr "" +"Puedes llamar a :func:`patch.object` con tres argumentos o con dos " +"argumentos. La forma de tres argumento toma el objeto a parchear, el nombre " +"del atributo y el objeto con el que reemplazar el atributo." #: ../Doc/library/unittest.mock.rst:1552 msgid "" @@ -1188,22 +1741,29 @@ msgid "" "a mock is created for you and passed in as an extra argument to the " "decorated function:" msgstr "" +"Al llamar usando la variante de dos argumento se omite el objeto de " +"sustitución, por lo tanto se crea un objeto simulado automáticamente y se " +"pasa como argumento adicional a la función decorada:" #: ../Doc/library/unittest.mock.rst:1563 msgid "" "*spec*, *create* and the other arguments to :func:`patch.object` have the " "same meaning as they do for :func:`patch`." msgstr "" +"*spec*, *create* y el resto de argumentos de :func:`patch.object` tienen el " +"mismo significado que en la función :func:`patch`." #: ../Doc/library/unittest.mock.rst:1568 msgid "patch.dict" -msgstr "" +msgstr "patch.dict" #: ../Doc/library/unittest.mock.rst:1572 msgid "" "Patch a dictionary, or dictionary like object, and restore the dictionary to " "its original state after the test." msgstr "" +"Parchea un diccionario o un objeto similar a un diccionario y posteriormente " +"lo restaura a su estado original una vez terminada la prueba." #: ../Doc/library/unittest.mock.rst:1575 msgid "" @@ -1211,48 +1771,69 @@ msgid "" "mapping then it must at least support getting, setting and deleting items " "plus iterating over keys." msgstr "" +"*in_dict* puede ser un diccionario o un contenedor similar a uno. Si se " +"trata de un objeto similar a un diccionario, debe soportar como mínimo el " +"establecimiento, la obtención y la eliminación de elementos, además de " +"permitir la iteración sobre las claves." #: ../Doc/library/unittest.mock.rst:1579 msgid "" "*in_dict* can also be a string specifying the name of the dictionary, which " "will then be fetched by importing it." msgstr "" +"*in_dict* también puede ser una cadena que especifique el nombre del " +"diccionario a parchear, el nombre es usado para obtener el diccionario " +"mediante importación." #: ../Doc/library/unittest.mock.rst:1582 msgid "" "*values* can be a dictionary of values to set in the dictionary. *values* " "can also be an iterable of ``(key, value)`` pairs." msgstr "" +"*values* puede ser otro diccionario con valores para ser añadidos al " +"diccionario. *values* también puede ser un iterable de parejas ``(clave, " +"valor)``." #: ../Doc/library/unittest.mock.rst:1585 msgid "" "If *clear* is true then the dictionary will be cleared before the new values " "are set." msgstr "" +"Si *clear* es verdadero, el contenido del diccionario se borrará antes de " +"establecer los nuevos valores." #: ../Doc/library/unittest.mock.rst:1588 msgid "" ":func:`patch.dict` can also be called with arbitrary keyword arguments to " "set values in the dictionary." msgstr "" +"La función :func:`patch.dict` también puede ser invocada con argumentos por " +"palabra clave arbitrarios para establecer los valores en el diccionario." #: ../Doc/library/unittest.mock.rst:1593 msgid "" ":func:`patch.dict` now returns the patched dictionary when used as a context " "manager." msgstr "" +"La función :func:`patch.dict` ahora retorna el diccionario parcheado cuando " +"se utiliza como gestor de contexto." #: ../Doc/library/unittest.mock.rst:1596 msgid "" ":func:`patch.dict` can be used as a context manager, decorator or class " "decorator:" msgstr "" +":func:`patch.dict` se puede utilizar como gestor de contexto, decorador o " +"decorador de clase:" #: ../Doc/library/unittest.mock.rst:1606 msgid "" "When used as a class decorator :func:`patch.dict` honours ``patch." "TEST_PREFIX`` (default to ``'test'``) for choosing which methods to wrap:" msgstr "" +"Cuando se utiliza :func:`patch.dict` como decorador de clase, se rige por " +"``patch.TEST_PREFIX`` (por defecto ``'test'``) a la hora de elegir qué " +"métodos envolver:" #: ../Doc/library/unittest.mock.rst:1617 msgid "" @@ -1260,6 +1841,10 @@ msgid "" "patchers of the different prefix by setting ``patch.TEST_PREFIX``. For more " "details about how to change the value of see :ref:`test-prefix`." msgstr "" +"Si deseas utilizar un prefijo diferente para tu prueba, puede informar a los " +"parcheadores del nuevo prefijo a usar estableciendo ``patch.TEST_PREFIX``. " +"Para más detalles sobre cómo cambiar el valor del atributo consultar :ref:" +"`test-prefix`." #: ../Doc/library/unittest.mock.rst:1621 msgid "" @@ -1267,12 +1852,17 @@ msgid "" "a test change a dictionary, and ensure the dictionary is restored when the " "test ends." msgstr "" +":func:`patch.dict` puede utilizarse para agregar miembros a un diccionario, " +"o simplemente para dejar que una prueba modifique un diccionario y " +"asegurarte de que el diccionario será restablecido cuando finalice la misma." #: ../Doc/library/unittest.mock.rst:1642 msgid "" "Keywords can be used in the :func:`patch.dict` call to set values in the " "dictionary:" msgstr "" +"Se pueden utilizar argumentos por palabra clave en la llamada a :func:`patch." +"dict` para establecer valores en el diccionario:" #: ../Doc/library/unittest.mock.rst:1652 msgid "" @@ -1282,10 +1872,16 @@ msgid "" "to the magic methods :meth:`__getitem__`, :meth:`__setitem__`, :meth:" "`__delitem__` and either :meth:`__iter__` or :meth:`__contains__`." msgstr "" +":func:`patch.dict` se puede utilizar con objetos similares a un diccionario, " +"que no son realmente diccionarios. Estos objetos como mínimo deben permitir " +"obtener, establecer y borrar elementos, además de soportar la iteración o la " +"prueba de pertenencia. Dichas funcionalidades se corresponden a los métodos " +"mágicos :meth:`__getitem__`, :meth:`__setitem__`, :meth:`__delitem__` e :" +"meth:`__iter__` o :meth:`__contains__`." #: ../Doc/library/unittest.mock.rst:1681 msgid "patch.multiple" -msgstr "" +msgstr "patch.multiple" #: ../Doc/library/unittest.mock.rst:1685 msgid "" @@ -1293,6 +1889,10 @@ msgid "" "(either as an object or a string to fetch the object by importing) and " "keyword arguments for the patches::" msgstr "" +"Realiza múltiples parches en una sola llamada. Se toma el objeto a ser " +"parcheado (ya sea como un objeto o una cadena de caracteres con el nombre " +"del mismo para obtener el objeto mediante importación) y los argumentos por " +"palabras clave para los parches:" #: ../Doc/library/unittest.mock.rst:1692 msgid "" @@ -1301,6 +1901,11 @@ msgid "" "decorated function by keyword, and a dictionary is returned when :func:" "`patch.multiple` is used as a context manager." msgstr "" +"Usa :data:`DEFAULT` como valor si deseas que la función :func:`patch." +"multiple` cree objetos simulados automáticamente por ti. En este caso, los " +"objetos simulados creados son pasados ​​a la función decorada mediante palabra " +"clave y se retorna un diccionario cuando :func:`patch.multiple` se utiliza " +"como gestor de contexto." #: ../Doc/library/unittest.mock.rst:1697 msgid "" @@ -1309,12 +1914,19 @@ msgid "" "*new_callable* have the same meaning as for :func:`patch`. These arguments " "will be applied to *all* patches done by :func:`patch.multiple`." msgstr "" +"La función :func:`patch.multiple` se puede utilizar como un decorador, " +"decorador de clase o como gestor de contexto. La argumentos *spec*, " +"*spec_set*, *create*, *autospec* y *new_callable* tienen el mismo " +"significado que en la función :func:`patch`. Estos argumentos se aplicarán a " +"*todos* los parches realizados por :func:`patch.multiple`." #: ../Doc/library/unittest.mock.rst:1702 msgid "" "When used as a class decorator :func:`patch.multiple` honours ``patch." "TEST_PREFIX`` for choosing which methods to wrap." msgstr "" +"Cuando se utiliza como decorador de clase, :func:`patch.multiple` se rige " +"por ``patch.TEST_PREFIX`` a la hora de elegir qué métodos envolver." #: ../Doc/library/unittest.mock.rst:1705 msgid "" @@ -1323,6 +1935,10 @@ msgid "" "decorator then the created mocks are passed into the decorated function by " "keyword. ::" msgstr "" +"Si deseas que :func:`patch.multiple` cree objetos simulados automáticamente " +"por ti, puedes utilizar :data:`DEFAULT` como valor. Si utilizas :func:`patch." +"multiple` como decorador, entonces los objetos simulados creados se pasan a " +"la función decorada por palabra clave:" #: ../Doc/library/unittest.mock.rst:1719 msgid "" @@ -1330,6 +1946,9 @@ msgid "" "put arguments passed by keyword *after* any of the standard arguments " "created by :func:`patch`::" msgstr "" +":func:`patch.multiple` se puede anidar junto a otros decoradores ``patch``, " +"pero los argumentos pasados ​​por palabra clave se deben agregar *después* de " +"cualquier argumento estándar creado por :func:`patch`:" #: ../Doc/library/unittest.mock.rst:1731 msgid "" @@ -1337,10 +1956,13 @@ msgid "" "by the context manager is a dictionary where created mocks are keyed by " "name::" msgstr "" +"Si :func:`patch.multiple` se utiliza como un gestor de contexto, el valor " +"retornado por el mismo es un diccionario en el que los objetos simulados " +"creados son almacenados, usando sus nombres como claves:" #: ../Doc/library/unittest.mock.rst:1745 msgid "patch methods: start and stop" -msgstr "" +msgstr "Métodos start y stop de patch" #: ../Doc/library/unittest.mock.rst:1747 msgid "" @@ -1348,6 +1970,9 @@ msgid "" "simpler to do patching in ``setUp`` methods or where you want to do multiple " "patches without nesting decorators or with statements." msgstr "" +"Todos los parcheadores tienen los métodos :meth:`start` y :meth:`stop`. Esto " +"facilita parchear en los métodos ``setUp`` o cuando deseas hacer múltiples " +"parches sin usar decoradores anidados o declaraciones with." #: ../Doc/library/unittest.mock.rst:1751 msgid "" @@ -1356,18 +1981,26 @@ msgid "" "then call :meth:`start` to put the patch in place and :meth:`stop` to undo " "it." msgstr "" +"Para utilizar estos métodos, llama a :func:`patch`, :func:`patch.object` o :" +"func:`patch.dict` como haces normalmente y mantén una referencia al objeto " +"``patcher`` retornado. A continuación, puedes llamar al método :meth:`start` " +"para aplicar el parche y a :meth:`stop` para deshacerlo." #: ../Doc/library/unittest.mock.rst:1755 msgid "" "If you are using :func:`patch` to create a mock for you then it will be " "returned by the call to ``patcher.start``. ::" msgstr "" +"Si estás utilizando :func:`patch` para crear un objeto simulado " +"automáticamente, este será retornado por la llamada a ``patcher.start``:" #: ../Doc/library/unittest.mock.rst:1769 msgid "" "A typical use case for this might be for doing multiple patches in the " "``setUp`` method of a :class:`TestCase`::" msgstr "" +"Un uso típico de esto podría ser realizar múltiples parches en el método " +"``setUp`` de un :class:`TestCase`:" #: ../Doc/library/unittest.mock.rst:1791 msgid "" @@ -1376,36 +2009,49 @@ msgid "" "exception is raised in the ``setUp`` then ``tearDown`` is not called. :meth:" "`unittest.TestCase.addCleanup` makes this easier::" msgstr "" +"Si se utiliza esta técnica debes asegurarte de que el parcheo está \"sin " +"aplicar\" llamando a ``stop``. Esto puede ser más complicado de lo que " +"parece, ya que si se produce una excepción en el ``setUp`` no se llama a " +"``tearDown`` a continuación. :meth:`unittest.TestCase.addCleanup` hace que " +"esto sea más fácil:" #: ../Doc/library/unittest.mock.rst:1806 msgid "" "As an added bonus you no longer need to keep a reference to the ``patcher`` " "object." msgstr "" +"Como beneficio adicional, ya no es necesario mantener una referencia al " +"objeto ``patcher``." #: ../Doc/library/unittest.mock.rst:1809 msgid "" "It is also possible to stop all patches which have been started by using :" "func:`patch.stopall`." msgstr "" +"También es posible detener todos los parches que han sido iniciados usando :" +"func:`patch.stopall`." #: ../Doc/library/unittest.mock.rst:1814 msgid "Stop all active patches. Only stops patches started with ``start``." msgstr "" +"Detiene todos los parches activos. Sólo se detienen parches iniciados con " +"``start``." #: ../Doc/library/unittest.mock.rst:1820 msgid "patch builtins" -msgstr "" +msgstr "Parchear objetos incorporados (builtins)" #: ../Doc/library/unittest.mock.rst:1821 msgid "" "You can patch any builtins within a module. The following example patches " "builtin :func:`ord`::" msgstr "" +"Puedes parchear cualquier objeto incorporado dentro de un módulo. El " +"siguiente ejemplo parchea la función incorporada :func:`ord`:" #: ../Doc/library/unittest.mock.rst:1836 msgid "TEST_PREFIX" -msgstr "" +msgstr "TEST_PREFIX" #: ../Doc/library/unittest.mock.rst:1838 msgid "" @@ -1414,6 +2060,11 @@ msgid "" "that start with ``'test'`` as being test methods. This is the same way that " "the :class:`unittest.TestLoader` finds test methods by default." msgstr "" +"Todos los parcheadores se puede utilizar como decoradores de clase. Cuando " +"se usan de esta forma, todos los métodos a probar en la clase son envueltos. " +"Los parcheadores reconocen los métodos que comienzan con ``'test'`` como " +"métodos a probar. Esta es la misma forma que la clase :class:`unittest." +"TestLoader` usa para encontrar métodos de prueba por defecto." #: ../Doc/library/unittest.mock.rst:1843 msgid "" @@ -1421,20 +2072,24 @@ msgid "" "can inform the patchers of the different prefix by setting ``patch." "TEST_PREFIX``::" msgstr "" +"Cabe la posibilidad de que desees utilizar un prefijo diferente para las " +"pruebas. Puedes informar a los parcheadores del cambio de prefijo " +"estableciendo el atributo ``patch.TEST_PREFIX``:" #: ../Doc/library/unittest.mock.rst:1866 msgid "Nesting Patch Decorators" -msgstr "" +msgstr "Anidando decoradores patch" #: ../Doc/library/unittest.mock.rst:1868 msgid "" "If you want to perform multiple patches then you can simply stack up the " "decorators." msgstr "" +"Si deseas aplicar múltiples parches, solo tienes que apilar los decoradores." #: ../Doc/library/unittest.mock.rst:1871 msgid "You can stack up multiple patch decorators using this pattern:" -msgstr "" +msgstr "Puede apilar múltiples decoradores patch usando el siguiente patrón:" #: ../Doc/library/unittest.mock.rst:1887 msgid "" @@ -1442,10 +2097,14 @@ msgid "" "standard way that Python applies decorators. The order of the created mocks " "passed into your test function matches this order." msgstr "" +"Ten en cuenta que los decoradores se aplican desde abajo hacia arriba. Esta " +"es la manera estándar de Python para aplicar decoradores. El orden en el que " +"los objetos simulados generados se pasan a la función de prueba coincide con " +"este orden." #: ../Doc/library/unittest.mock.rst:1895 msgid "Where to patch" -msgstr "" +msgstr "Dónde parchear" #: ../Doc/library/unittest.mock.rst:1897 msgid "" @@ -1454,6 +2113,11 @@ msgid "" "individual object, so for patching to work you must ensure that you patch " "the name used by the system under test." msgstr "" +":func:`patch` funciona cambiando (temporalmente) el objeto al que apunta " +"*name* con otro. Puede haber muchos nombres apuntando a cualquier objeto " +"individual, por lo que para que el parcheo funcione, debes asegurarte de " +"parchear el nombre utilizado para el objeto por el sistema concreto bajo " +"prueba." #: ../Doc/library/unittest.mock.rst:1902 msgid "" @@ -1461,11 +2125,16 @@ msgid "" "is not necessarily the same place as where it is defined. A couple of " "examples will help to clarify this." msgstr "" +"El principio básico es parchear donde un objeto es *buscado*, que no es " +"necesariamente el mismo lugar donde está definido. Un par de ejemplos " +"ayudarán a aclarar esto." #: ../Doc/library/unittest.mock.rst:1906 msgid "" "Imagine we have a project that we want to test with the following structure::" msgstr "" +"Imaginemos que tenemos un proyecto, que queremos probar, con la siguiente " +"estructura:" #: ../Doc/library/unittest.mock.rst:1915 msgid "" @@ -1476,6 +2145,13 @@ msgid "" "module b already has a reference to the *real* ``SomeClass`` and it looks " "like our patching had no effect." msgstr "" +"Ahora queremos probar ``some_function``, pero queremos simular ``SomeClass`` " +"utilizando :func:`patch`. El problema es que cuando importamos el módulo b, " +"lo cual tenemos que hacer obligatoriamente, se importa ``SomeClass`` del " +"módulo a. Si utilizamos :func:`patch` para simular ``a.SomeClass``, no " +"tendrá ningún efecto en nuestra prueba; el módulo b ya tiene una referencia " +"a la ``SomeClass`` *real*, por lo que parece que nuestro parcheo no tuvo " +"ningún efecto." #: ../Doc/library/unittest.mock.rst:1922 msgid "" @@ -1484,6 +2160,9 @@ msgid "" "``SomeClass`` in module b, where we have imported it. The patching should " "look like::" msgstr "" +"La clave es parchear ``SomeClass`` donde se utiliza (o donde es buscado). En " +"este caso ``some_function`` realmente va a buscar ``SomeClass`` en el módulo " +"b, donde lo hemos importado. La aplicación de parches debe ser similar a:" #: ../Doc/library/unittest.mock.rst:1928 msgid "" @@ -1493,10 +2172,15 @@ msgid "" "we want to patch is being looked up in the module and so we have to patch " "``a.SomeClass`` instead::" msgstr "" +"Sin embargo, ten en cuenta el escenario alternativo donde en el módulo b en " +"lugar de ``from a import SomeClass`` se hace ``import a`` y " +"``some_function`` usa ``a.SomeClass``. Ambas formas de importación son " +"comunes. En este caso, la clase que queremos parchear está siendo buscada en " +"el módulo, por lo que tenemos que parchear ``a.SomeClass``:" #: ../Doc/library/unittest.mock.rst:1937 msgid "Patching Descriptors and Proxy Objects" -msgstr "" +msgstr "Parcheando descriptores y objetos proxy" #: ../Doc/library/unittest.mock.rst:1939 msgid "" @@ -1506,14 +2190,21 @@ msgid "" "proxy attribute access, like the `django settings object `_." msgstr "" +"Tanto patch_ como patch.object_ parchean descriptores correctamente y los " +"restauran posteriormente: métodos de clase, métodos estáticos y propiedades. " +"Los descriptores deben ser parcheados en la *clase* y no en una instancia. " +"También funcionan con *algunos* objetos que actúan como proxy en el acceso a " +"atributos, como el objeto de configuraciones de django (`django settings " +"object `_)." #: ../Doc/library/unittest.mock.rst:1947 msgid "MagicMock and magic method support" -msgstr "" +msgstr "MagicMock y el soporte de métodos mágicos" #: ../Doc/library/unittest.mock.rst:1952 msgid "Mocking Magic Methods" -msgstr "" +msgstr "Simular métodos mágicos" #: ../Doc/library/unittest.mock.rst:1954 msgid "" @@ -1521,6 +2212,10 @@ msgid "" "\"magic methods\". This allows mock objects to replace containers or other " "objects that implement Python protocols." msgstr "" +":class:`Mock` soporta la simulación de los métodos de protocolo de Python, " +"también conocidos como \"métodos mágicos\". Esto permite a los objetos " +"simulados reemplazar contenedores u otros objetos que implementan protocolos " +"de Python." #: ../Doc/library/unittest.mock.rst:1958 msgid "" @@ -1529,6 +2224,11 @@ msgid "" "magic methods are supported. The supported list includes *almost* all of " "them. If there are any missing that you need please let us know." msgstr "" +"Dado que los métodos mágicos se buscan de manera diferente a los métodos " +"normales [#]_, este soporte ha sido especialmente implementado. Esto " +"significa que sólo es compatible con métodos mágicos específicos. La lista " +"de métodos soportados incluye *casi* todos los existentes. Si hay alguno que " +"falta y que consideras necesario, por favor háznoslo saber." #: ../Doc/library/unittest.mock.rst:1963 msgid "" @@ -1536,18 +2236,25 @@ msgid "" "function or a mock instance. If you are using a function then it *must* take " "``self`` as the first argument [#]_." msgstr "" +"Puedes simular métodos mágicos estableciendo el método que te interesa en " +"una función o en una instancia simulada. Si utilizas una función, *debe* " +"aceptar ``self`` como primer argumento [#]_." #: ../Doc/library/unittest.mock.rst:1986 msgid "" "One use case for this is for mocking objects used as context managers in a :" "keyword:`with` statement:" msgstr "" +"Un caso de uso para esto es simular objetos usados ​​como gestores de contexto " +"en una declaración :keyword:`with`:" #: ../Doc/library/unittest.mock.rst:1998 msgid "" "Calls to magic methods do not appear in :attr:`~Mock.method_calls`, but they " "are recorded in :attr:`~Mock.mock_calls`." msgstr "" +"Las llamadas a métodos mágicos no aparecen registradas en :attr:`~Mock." +"method_calls`, aunque si se registran en :attr:`~Mock.mock_calls`." #: ../Doc/library/unittest.mock.rst:2003 msgid "" @@ -1555,28 +2262,33 @@ msgid "" "set a magic method that isn't in the spec will raise an :exc:" "`AttributeError`." msgstr "" +"Si se utiliza el argumento por palabra clave *spec* para crear un objeto " +"simulado, intentar después establecer un método mágico que no está en la " +"especificación lanzará una excepción :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:2006 msgid "The full list of supported magic methods is:" -msgstr "" +msgstr "La lista completa de los métodos mágicos soportados es la siguiente:" #: ../Doc/library/unittest.mock.rst:2008 msgid "``__hash__``, ``__sizeof__``, ``__repr__`` and ``__str__``" -msgstr "" +msgstr "``__hash__``, ``__sizeof__``, ``__repr__`` y ``__str__``" #: ../Doc/library/unittest.mock.rst:2009 msgid "``__dir__``, ``__format__`` and ``__subclasses__``" -msgstr "" +msgstr "``__dir__``, ``__format__`` y ``__subclasses__``" #: ../Doc/library/unittest.mock.rst:2010 msgid "``__round__``, ``__floor__``, ``__trunc__`` and ``__ceil__``" -msgstr "" +msgstr "``__round__``, ``__floor__``, ``__trunc__`` y ``__ceil__``" #: ../Doc/library/unittest.mock.rst:2011 msgid "" "Comparisons: ``__lt__``, ``__gt__``, ``__le__``, ``__ge__``, ``__eq__`` and " "``__ne__``" msgstr "" +"Comparaciones: ``__lt__``, ``__gt__``, ``__le__``, ``__ge__``, ``__eq__`` y " +"``__ne__``" #: ../Doc/library/unittest.mock.rst:2013 msgid "" @@ -1584,16 +2296,21 @@ msgid "" "``__contains__``, ``__len__``, ``__iter__``, ``__reversed__`` and " "``__missing__``" msgstr "" +"Métodos de contenedores: ``__getitem__``, ``__setitem__``, ``__delitem__``, " +"``__contains__``, ``__len__``, ``__iter__``, ``__reversed__`` y " +"``__missing__``" #: ../Doc/library/unittest.mock.rst:2016 msgid "" "Context manager: ``__enter__``, ``__exit__``, ``__aenter__`` and " "``__aexit__``" msgstr "" +"Administrador de contexto: ``__enter__``, ``__exit__``, ``__aenter__`` y " +"``__aexit__``" #: ../Doc/library/unittest.mock.rst:2017 msgid "Unary numeric methods: ``__neg__``, ``__pos__`` and ``__invert__``" -msgstr "" +msgstr "Métodos numéricos unarios: ``__neg__``, ``__pos__`` y ``__invert__``" #: ../Doc/library/unittest.mock.rst:2018 msgid "" @@ -1603,65 +2320,82 @@ msgid "" "``__lshift__``, ``__rshift__``, ``__and__``, ``__xor__``, ``__or__``, and " "``__pow__``" msgstr "" +"Los métodos numéricos (incluyendo los métodos estándar y las variantes in-" +"place): ``__add__``, ``__sub__``, ``__mul__``, ``__matmul__``, ``__div__``, " +"``__truediv__``, ``__floordiv__``, ``__mod__``, ``__divmod__``, " +"``__lshift__``, ``__rshift__``, ``__and__``, ``__xor__``, ``__or__``, y " +"``__pow__``" #: ../Doc/library/unittest.mock.rst:2022 msgid "" "Numeric conversion methods: ``__complex__``, ``__int__``, ``__float__`` and " "``__index__``" msgstr "" +"Métodos de conversión numérica: ``__complex__``, ``__int__``, ``__float__`` " +"y ``__index__``" #: ../Doc/library/unittest.mock.rst:2024 msgid "Descriptor methods: ``__get__``, ``__set__`` and ``__delete__``" -msgstr "" +msgstr "Métodos de descriptores: ``__get__``, ``__set__`` y ``__delete__``" #: ../Doc/library/unittest.mock.rst:2025 msgid "" "Pickling: ``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, " "``__getnewargs__``, ``__getstate__`` and ``__setstate__``" msgstr "" +"Pickling: ``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, " +"``__getnewargs__``, ``__getstate__`` y ``__setstate__``" #: ../Doc/library/unittest.mock.rst:2027 msgid "File system path representation: ``__fspath__``" -msgstr "" +msgstr "Representación de rutas del sistema de archivos: ``__fspath__``" #: ../Doc/library/unittest.mock.rst:2028 msgid "Asynchronous iteration methods: ``__aiter__`` and ``__anext__``" -msgstr "" +msgstr "Métodos de iteración asíncronos: ``__aiter__`` y ``__anext__``" #: ../Doc/library/unittest.mock.rst:2030 msgid "Added support for :func:`os.PathLike.__fspath__`." -msgstr "" +msgstr "Se añadió soporte para :func:`os.PathLike.__fspath__`." #: ../Doc/library/unittest.mock.rst:2033 msgid "" "Added support for ``__aenter__``, ``__aexit__``, ``__aiter__`` and " "``__anext__``." msgstr "" +"Se añadió soporte para ``__aenter__``, ``__aexit__``, ``__aiter__`` y " +"``__anext__``." #: ../Doc/library/unittest.mock.rst:2037 msgid "" "The following methods exist but are *not* supported as they are either in " "use by mock, can't be set dynamically, or can cause problems:" msgstr "" +"Los siguientes métodos existen pero *no* están soportados, ya sea porque son " +"usados por el propio objeto simulado, porque no se pueden establecer " +"dinámicamente o porque pueden causar problemas:" #: ../Doc/library/unittest.mock.rst:2040 msgid "``__getattr__``, ``__setattr__``, ``__init__`` and ``__new__``" -msgstr "" +msgstr "``__getattr__``, ``__setattr__``, ``__init__`` y ``__new__``" #: ../Doc/library/unittest.mock.rst:2041 msgid "" "``__prepare__``, ``__instancecheck__``, ``__subclasscheck__``, ``__del__``" msgstr "" +"``__prepare__``, ``__instancecheck__``, ``__subclasscheck__`` y ``__del__``" #: ../Doc/library/unittest.mock.rst:2046 msgid "Magic Mock" -msgstr "" +msgstr "Magic Mock" #: ../Doc/library/unittest.mock.rst:2048 msgid "" "There are two ``MagicMock`` variants: :class:`MagicMock` and :class:" "`NonCallableMagicMock`." msgstr "" +"Hay dos variantes de ``MagicMock``: :class:`MagicMock` y :class:" +"`NonCallableMagicMock`." #: ../Doc/library/unittest.mock.rst:2053 msgid "" @@ -1669,20 +2403,28 @@ msgid "" "most of the magic methods. You can use ``MagicMock`` without having to " "configure the magic methods yourself." msgstr "" +"``MagicMock`` es una subclase de :class:`Mock` con implementaciones por " +"defecto de la mayoría de los métodos mágicos. Puedes utilizar ``MagicMock`` " +"para crear objetos simulados sin tener que establecer los métodos mágicos " +"por ti mismo." #: ../Doc/library/unittest.mock.rst:2057 msgid "The constructor parameters have the same meaning as for :class:`Mock`." msgstr "" +"Los parámetros del constructor tienen el mismo significado que en :class:" +"`Mock`." #: ../Doc/library/unittest.mock.rst:2059 msgid "" "If you use the *spec* or *spec_set* arguments then *only* magic methods that " "exist in the spec will be created." msgstr "" +"Si utilizas los argumentos *spec* o *spec_set* entonces *solo* los métodos " +"mágicos que existan en la especificación serán creados." #: ../Doc/library/unittest.mock.rst:2065 msgid "A non-callable version of :class:`MagicMock`." -msgstr "" +msgstr "Una versión no invocable de :class:`MagicMock`." #: ../Doc/library/unittest.mock.rst:2067 msgid "" @@ -1690,12 +2432,17 @@ msgid "" "with the exception of *return_value* and *side_effect* which have no meaning " "on a non-callable mock." msgstr "" +"Los parámetros del constructor tienen el mismo significado que en :class:" +"`MagicMock`, con la excepción de *return_value* y *side_effect* que no " +"tienen significado en un objeto simulado no invocable." #: ../Doc/library/unittest.mock.rst:2071 msgid "" "The magic methods are setup with :class:`MagicMock` objects, so you can " "configure them and use them in the usual way:" msgstr "" +"Los métodos mágicos están implementados mediante objetos :class:`MagicMock`, " +"por lo que puedes configurarlos y utilizarlos de la forma habitual:" #: ../Doc/library/unittest.mock.rst:2081 msgid "" @@ -1705,82 +2452,88 @@ msgid "" "interested in the return value. You can still *set* the return value " "manually if you want to change the default." msgstr "" +"Por defecto, muchos de los métodos de protocolo están obligados a retornar " +"objetos de un tipo específico. Estos métodos están preconfigurados con un " +"valor de retorno por defecto, de manera que puedan ser utilizados sin tener " +"que hacer nada más, siempre que no estés interesado en el valor de retorno. " +"En todo caso, puedes *establecer* el valor de retorno de forma manual si " +"deseas cambiar el valor predeterminado." #: ../Doc/library/unittest.mock.rst:2087 msgid "Methods and their defaults:" -msgstr "" +msgstr "Métodos y sus valores por defecto:" #: ../Doc/library/unittest.mock.rst:2089 msgid "``__lt__``: ``NotImplemented``" -msgstr "" +msgstr "``__lt__``: ``NotImplemented``" #: ../Doc/library/unittest.mock.rst:2090 msgid "``__gt__``: ``NotImplemented``" -msgstr "" +msgstr "``__gt__``: ``NotImplemented``" #: ../Doc/library/unittest.mock.rst:2091 msgid "``__le__``: ``NotImplemented``" -msgstr "" +msgstr "``__le__``: ``NotImplemented``" #: ../Doc/library/unittest.mock.rst:2092 msgid "``__ge__``: ``NotImplemented``" -msgstr "" +msgstr "``__ge__``: ``NotImplemented``" #: ../Doc/library/unittest.mock.rst:2093 msgid "``__int__``: ``1``" -msgstr "" +msgstr "``__int__``: ``1``" #: ../Doc/library/unittest.mock.rst:2094 msgid "``__contains__``: ``False``" -msgstr "" +msgstr "``__contains__``: ``False``" #: ../Doc/library/unittest.mock.rst:2095 msgid "``__len__``: ``0``" -msgstr "" +msgstr "``__len__``: ``0``" #: ../Doc/library/unittest.mock.rst:2096 msgid "``__iter__``: ``iter([])``" -msgstr "" +msgstr "``__iter__``: ``iter([])``" #: ../Doc/library/unittest.mock.rst:2097 msgid "``__exit__``: ``False``" -msgstr "" +msgstr "``__exit__``: ``False``" #: ../Doc/library/unittest.mock.rst:2098 msgid "``__aexit__``: ``False``" -msgstr "" +msgstr "``__aexit__``: ``False``" #: ../Doc/library/unittest.mock.rst:2099 msgid "``__complex__``: ``1j``" -msgstr "" +msgstr "``__complex__``: ``1j``" #: ../Doc/library/unittest.mock.rst:2100 msgid "``__float__``: ``1.0``" -msgstr "" +msgstr "``__float__``: ``1.0``" #: ../Doc/library/unittest.mock.rst:2101 msgid "``__bool__``: ``True``" -msgstr "" +msgstr "``__bool__``: ``True``" #: ../Doc/library/unittest.mock.rst:2102 msgid "``__index__``: ``1``" -msgstr "" +msgstr "``__index__``: ``1``" #: ../Doc/library/unittest.mock.rst:2103 msgid "``__hash__``: default hash for the mock" -msgstr "" +msgstr "``__hash__``: hash predeterminado del objeto simulado" #: ../Doc/library/unittest.mock.rst:2104 msgid "``__str__``: default str for the mock" -msgstr "" +msgstr "``__str__``: str predeterminado del objeto simulado" #: ../Doc/library/unittest.mock.rst:2105 msgid "``__sizeof__``: default sizeof for the mock" -msgstr "" +msgstr "``__sizeof__``: sizeof predeterminado del objeto simulado" #: ../Doc/library/unittest.mock.rst:2107 msgid "For example:" -msgstr "" +msgstr "Por ejemplo:" #: ../Doc/library/unittest.mock.rst:2119 msgid "" @@ -1789,18 +2542,26 @@ msgid "" "side_effect` attribute, unless you change their return value to return " "something else::" msgstr "" +"Los dos métodos de igualdad, :meth:`__eq__` y :meth:`__ne__`, son " +"especiales. Realizan la comparación de igualdad predeterminada basada en la " +"identidad, utilizando el atributo :attr:`~Mock.side_effect`, a menos que " +"cambies su valor de retorno para que retorne alguna otra cosa:" #: ../Doc/library/unittest.mock.rst:2133 msgid "" "The return value of :meth:`MagicMock.__iter__` can be any iterable object " "and isn't required to be an iterator:" msgstr "" +"El valor de retorno de :meth:`MagicMock.__iter__` puede ser cualquier objeto " +"iterable, no se requiere que sea un iterador:" #: ../Doc/library/unittest.mock.rst:2143 msgid "" "If the return value *is* an iterator, then iterating over it once will " "consume it and subsequent iterations will result in an empty list:" msgstr "" +"Si el valor de retorno *es* un iterador, iterar sobre él una vez que se " +"consume, y cualquier iteración posterior, resultará en una lista vacía:" #: ../Doc/library/unittest.mock.rst:2152 msgid "" @@ -1808,42 +2569,49 @@ msgid "" "some of the obscure and obsolete ones. You can still set these up if you " "want." msgstr "" +"``MagicMock`` tiene todos los métodos mágicos soportados configurados a " +"excepción de algunos de los más oscuros y obsoletos. De todas formas, puedes " +"configurar estos también si lo deseas." #: ../Doc/library/unittest.mock.rst:2155 msgid "" "Magic methods that are supported but not setup by default in ``MagicMock`` " "are:" msgstr "" +"Los métodos mágicos que son compatibles, pero que no están configurados por " +"defecto en ``MagicMock`` son:" #: ../Doc/library/unittest.mock.rst:2157 msgid "``__subclasses__``" -msgstr "" +msgstr "``__subclasses__``" #: ../Doc/library/unittest.mock.rst:2158 msgid "``__dir__``" -msgstr "" +msgstr "``__dir__``" #: ../Doc/library/unittest.mock.rst:2159 msgid "``__format__``" -msgstr "" +msgstr "``__format__``" #: ../Doc/library/unittest.mock.rst:2160 msgid "``__get__``, ``__set__`` and ``__delete__``" -msgstr "" +msgstr "``__get__``, ``__set__`` y ``__delete__``" #: ../Doc/library/unittest.mock.rst:2161 msgid "``__reversed__`` and ``__missing__``" -msgstr "" +msgstr "``__reversed__`` y ``__missing__``" #: ../Doc/library/unittest.mock.rst:2162 msgid "" "``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, ``__getnewargs__``, " "``__getstate__`` and ``__setstate__``" msgstr "" +"``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, ``__getnewargs__``, " +"``__getstate__`` y ``__setstate__``" #: ../Doc/library/unittest.mock.rst:2164 msgid "``__getformat__`` and ``__setformat__``" -msgstr "" +msgstr "``__getformat__`` y ``__setformat__``" #: ../Doc/library/unittest.mock.rst:2168 msgid "" @@ -1851,26 +2619,34 @@ msgid "" "Different versions of Python are inconsistent about applying this rule. The " "supported protocol methods should work with all supported versions of Python." msgstr "" +"Los métodos mágicos *deben* ser buscados en la clase en lugar de en la " +"instancia. Diferentes versiones de Python son inconsistentes sobre la " +"aplicación de esta regla. Los métodos de protocolo soportados deben trabajar " +"con todas las versiones de Python." #: ../Doc/library/unittest.mock.rst:2172 msgid "" "The function is basically hooked up to the class, but each ``Mock`` instance " "is kept isolated from the others." msgstr "" +"La función está básicamente conectada a la clase, pero cada instancia " +"``Mock`` se mantiene aislada de las demás." #: ../Doc/library/unittest.mock.rst:2177 msgid "Helpers" -msgstr "" +msgstr "Ayudantes" #: ../Doc/library/unittest.mock.rst:2180 msgid "sentinel" -msgstr "" +msgstr "sentinel" #: ../Doc/library/unittest.mock.rst:2184 msgid "" "The ``sentinel`` object provides a convenient way of providing unique " "objects for your tests." msgstr "" +"El objeto ``sentinel`` proporciona una manera conveniente de proporcionar " +"objetos únicos para tus pruebas." #: ../Doc/library/unittest.mock.rst:2187 msgid "" @@ -1878,12 +2654,18 @@ msgid "" "same attribute will always return the same object. The objects returned have " "a sensible repr so that test failure messages are readable." msgstr "" +"Los atributos se crean a demanda, en el instante en el que se accede a ellos " +"por su nombre por primera vez. El acceso al mismo atributo siempre retornará " +"el mismo objeto. Los objetos retornados tienen una reproducción (repr) " +"apropiada para que los mensajes de error de la prueba sean legibles." #: ../Doc/library/unittest.mock.rst:2191 msgid "" "The ``sentinel`` attributes now preserve their identity when they are :mod:" "`copied ` or :mod:`pickled `." msgstr "" +"Los atributos ``sentinel`` ahora preservan su identidad cuando son :mod:" +"`copiados ` o :mod:`serializados con pickle `." #: ../Doc/library/unittest.mock.rst:2195 msgid "" @@ -1892,16 +2674,23 @@ msgid "" "sentinel objects to test this. :data:`sentinel` provides a convenient way of " "creating and testing the identity of objects like this." msgstr "" +"A veces, cuando implementas pruebas, necesitas probar que un determinado " +"objeto se pasa como argumento a otro método, o se retorna. Crear objetos " +"centinela con un nombre para probar esto puede ser una práctica común. :data:" +"`sentinel` proporciona una manera conveniente de crear y probar la identidad " +"de este tipo de objetos." #: ../Doc/library/unittest.mock.rst:2200 msgid "" "In this example we monkey patch ``method`` to return ``sentinel." "some_object``:" msgstr "" +"En el siguiente ejemplo, parcheamos ``method`` para retornar ``sentinel." +"some_object``:" #: ../Doc/library/unittest.mock.rst:2212 msgid "DEFAULT" -msgstr "" +msgstr "DEFAULT" #: ../Doc/library/unittest.mock.rst:2217 msgid "" @@ -1909,10 +2698,13 @@ msgid "" "DEFAULT``). It can be used by :attr:`~Mock.side_effect` functions to " "indicate that the normal return value should be used." msgstr "" +"El objeto :data:`DEFAULT` es un centinela pre-creado (actualmente ``sentinel." +"DEFAULT``). Puede ser usado por las funciones :attr:`~Mock.side_effect` para " +"indicar que el valor de retorno normal debe ser utilizado." #: ../Doc/library/unittest.mock.rst:2223 msgid "call" -msgstr "" +msgstr "call" #: ../Doc/library/unittest.mock.rst:2227 msgid "" @@ -1921,12 +2713,19 @@ msgid "" "mock_calls` and :attr:`~Mock.method_calls`. :func:`call` can also be used " "with :meth:`~Mock.assert_has_calls`." msgstr "" +":func:`call` es un objeto ayudante que puede usarse para hacer aserciones " +"simples, para comparar con :attr:`~Mock.call_args`, :attr:`~Mock." +"call_args_list`, :attr:`~Mock.mock_calls` y :attr:`~Mock.method_calls`. :" +"func:`call` y también se puede utilizar con :meth:`~Mock.assert_has_calls`." #: ../Doc/library/unittest.mock.rst:2240 msgid "" "For a call object that represents multiple calls, :meth:`call_list` returns " "a list of all the intermediate calls as well as the final call." msgstr "" +"Para un objeto call que representa múltiples llamadas, el método :meth:" +"`call_list` retorna una lista con todas las llamadas intermedias, así como " +"la llamada final." #: ../Doc/library/unittest.mock.rst:2244 msgid "" @@ -1935,12 +2734,19 @@ msgid "" "in multiple entries in :attr:`~Mock.mock_calls` on a mock. Manually " "constructing the sequence of calls can be tedious." msgstr "" +"``call_list`` es particularmente útil para hacer aserciones sobre \"llamadas " +"encadenadas\". Una llamada encadenada es varias llamadas en una sola línea " +"de código. Esto resulta en múltiples entradas en el atributo :attr:`~Mock." +"mock_calls` de un objeto simulado. Construir manualmente la secuencia de " +"llamadas puede ser tedioso." #: ../Doc/library/unittest.mock.rst:2249 msgid "" ":meth:`~call.call_list` can construct the sequence of calls from the same " "chained call:" msgstr "" +":meth:`~call.call_list` puede construir la secuencia de llamadas desde la " +"misma llamada encadenada:" #: ../Doc/library/unittest.mock.rst:2266 msgid "" @@ -1951,6 +2757,14 @@ msgid "" "call_args_list` and :attr:`Mock.mock_calls` attributes can be introspected " "to get at the individual arguments they contain." msgstr "" +"Un objeto ``call``, dependiendo de cómo fuera construido, puede ser una " +"tupla de la forma (argumentos posicionales, argumentos por palabras clave) o " +"bien de la forma (nombre, argumentos posicionales, argumentos por palabras " +"clave). Esto no es particularmente interesante cuando los construyes por ti " +"mismo, pero la introspección de los objetos ``call`` que conforman los " +"atributos :attr:`Mock.call_args`, :attr:`Mock.call_args_list` y :attr:`Mock." +"mock_calls` si pueden ser de utilidad para para acceder a los argumentos " +"individuales que contienen." #: ../Doc/library/unittest.mock.rst:2273 msgid "" @@ -1960,6 +2774,11 @@ msgid "" "construct yourself, are three-tuples of (name, positional args, keyword " "args)." msgstr "" +"Los objetos ``call`` en :attr:`Mock.call_args` y :attr:`Mock.call_args_list` " +"están conformados por dos tuplas (argumentos posicionales, argumentos por " +"palabra clave) mientras que los objetos ``call`` en :attr:`Mock.mock_calls`, " +"junto con los que construyas por ti mismo, constan de tres tuplas (nombre, " +"argumentos posicionales, argumentos por palabra clave)." #: ../Doc/library/unittest.mock.rst:2278 msgid "" @@ -1968,28 +2787,39 @@ msgid "" "tuple (an empty tuple if there are no positional arguments) and the keyword " "arguments are a dictionary:" msgstr "" +"Puedes utilizar esta presentación en forma de tuplas para obtener los " +"argumentos individuales, con la finalidad de llevar a cabo introspección y " +"aserciones más complejas. Los argumentos posicionales son una tupla (vacía " +"si no hay ninguno) y los argumentos por palabra clave son un diccionario:" #: ../Doc/library/unittest.mock.rst:2311 msgid "create_autospec" -msgstr "" +msgstr "create_autospec" #: ../Doc/library/unittest.mock.rst:2315 msgid "" "Create a mock object using another object as a spec. Attributes on the mock " "will use the corresponding attribute on the *spec* object as their spec." msgstr "" +"Crea un nuevo objeto simulado utilizando otro objeto (*spec*) como " +"especificación. Los atributos del objeto simulado utilizarán el atributo " +"correspondiente del objeto *spec* como su especificación." #: ../Doc/library/unittest.mock.rst:2319 msgid "" "Functions or methods being mocked will have their arguments checked to " "ensure that they are called with the correct signature." msgstr "" +"Los argumentos de las funciones o métodos simulados se validarán para " +"asegurarse de que son invocados con la firma correcta." #: ../Doc/library/unittest.mock.rst:2322 msgid "" "If *spec_set* is ``True`` then attempting to set attributes that don't exist " "on the spec object will raise an :exc:`AttributeError`." msgstr "" +"Si *spec_set* es ``True``, tratar de establecer atributos que no existen en " +"el objeto especificado lanzará una excepción :exc:`AttributeError`." #: ../Doc/library/unittest.mock.rst:2325 msgid "" @@ -1998,28 +2828,40 @@ msgid "" "an instance object by passing ``instance=True``. The returned mock will only " "be callable if instances of the mock are callable." msgstr "" +"Si se utiliza una clase como especificación, el valor de retorno del objeto " +"simulado (la instancia de la clase) tendrá la misma especificación. Se puede " +"utilizar una clase como especificación de una instancia pasando " +"``instance=True``. El objeto simulado retornado sólo será invocable si las " +"instancias del objeto simulado son también invocables." #: ../Doc/library/unittest.mock.rst:2330 msgid "" ":func:`create_autospec` also takes arbitrary keyword arguments that are " "passed to the constructor of the created mock." msgstr "" +":func:`create_autospec` también acepta argumentos por palabra clave " +"arbitrarios, que son pasados al constructor del objeto simulado creado." #: ../Doc/library/unittest.mock.rst:2333 msgid "" "See :ref:`auto-speccing` for examples of how to use auto-speccing with :func:" "`create_autospec` and the *autospec* argument to :func:`patch`." msgstr "" +"Consultar :ref:`auto-speccing` para ver ejemplos de cómo utilizar la " +"autoespecificación mediante :func:`create_autospec` y el argumento " +"*autospec* de :func:`patch`." #: ../Doc/library/unittest.mock.rst:2339 msgid "" ":func:`create_autospec` now returns an :class:`AsyncMock` if the target is " "an async function." msgstr "" +":func:`create_autospec` ahora retorna un objeto :class:`AsyncMock` si el " +"objetivo a simular es una función asíncrona." #: ../Doc/library/unittest.mock.rst:2344 msgid "ANY" -msgstr "" +msgstr "ANY" #: ../Doc/library/unittest.mock.rst:2348 msgid "" @@ -2028,6 +2870,10 @@ msgid "" "pull them individually out of :attr:`~Mock.call_args` and make more complex " "assertions on them." msgstr "" +"A veces puede que necesites hacer aserciones sobre *algunos* de los " +"argumentos de una llamada al objeto simulado, pero sin preocuparte por el " +"resto, o puede que quieras hacer uso de ellos de forma individual fuera de :" +"attr:`~Mock.call_args` y hacer aserciones más complejas con ellos." #: ../Doc/library/unittest.mock.rst:2353 msgid "" @@ -2035,16 +2881,22 @@ msgid "" "*everything*. Calls to :meth:`~Mock.assert_called_with` and :meth:`~Mock." "assert_called_once_with` will then succeed no matter what was passed in." msgstr "" +"Para ignorar ciertos argumentos puedes pasar objetos que se comparan como " +"iguales con *cualquier cosa*. En este caso, las llamadas a :meth:`~Mock." +"assert_called_with` y :meth:`~Mock.assert_called_once_with` tendrán éxito " +"sin importar lo que se haya pasado realmente." #: ../Doc/library/unittest.mock.rst:2362 msgid "" ":data:`ANY` can also be used in comparisons with call lists like :attr:" "`~Mock.mock_calls`:" msgstr "" +":data:`ANY` también se puede utilizar en las comparaciones con las listas de " +"llamadas, como :attr:`~Mock.mock_calls`:" #: ../Doc/library/unittest.mock.rst:2375 msgid "FILTER_DIR" -msgstr "" +msgstr "FILTER_DIR" #: ../Doc/library/unittest.mock.rst:2379 msgid "" @@ -2054,6 +2906,13 @@ msgid "" "useful members. If you dislike this filtering, or need to switch it off for " "diagnostic purposes, then set ``mock.FILTER_DIR = False``." msgstr "" +":data:`FILTER_DIR` es una variable definida a nivel de módulo que controla " +"la forma en la que los objetos simulados responden a :func:`dir` (sólo para " +"Python 2.6 y en adelante). El valor predeterminado es ``True``, que utiliza " +"el filtrado descrito a continuación, con la finalidad de mostrar solo los " +"miembros considerados como útiles. Si no te gusta este filtrado, o necesitas " +"desactivarlo con fines de diagnóstico, simplemente establece ``mock." +"FILTER_DIR = False``." #: ../Doc/library/unittest.mock.rst:2385 msgid "" @@ -2063,6 +2922,11 @@ msgid "" "attributes from the original are shown, even if they haven't been accessed " "yet:" msgstr "" +"Con el filtrado activado, ``dir(some_mock)`` mostrará solo atributos útiles " +"y además incluirá cualquier atributo creado dinámicamente, que normalmente " +"no se mostraría. Si el objeto simulado fue creado con un *spec* (o " +"*autospec*) se muestran todos los atributos del objeto original, incluso si " +"no se ha accedido a ellos todavía:" #: ../Doc/library/unittest.mock.rst:2412 msgid "" @@ -2072,6 +2936,12 @@ msgid "" "dislike this behaviour you can switch it off by setting the module level " "switch :data:`FILTER_DIR`:" msgstr "" +"Muchos de los atributos con subrayado y doble subrayado no muy útiles " +"(atributos privados de :class:`Mock` y no del objeto real que se está " +"simulando) se han filtrado del resultado de llamar a :func:`dir` en un " +"objeto :class:`Mock`. Si no te gusta este comportamiento, puedes " +"desactivarlo estableciendo el modificador a nivel de módulo :data:" +"`FILTER_DIR`:" #: ../Doc/library/unittest.mock.rst:2433 msgid "" @@ -2079,16 +2949,23 @@ msgid "" "``dir(type(my_mock))`` (type members) to bypass the filtering irrespective " "of :data:`mock.FILTER_DIR`." msgstr "" +"Como alternativa, puedes usar ``vars(my_mock)`` (miembros de instancia) y " +"``dir(type(my_mock))`` (miembros de tipo) para omitir el filtrado con " +"independencia del valor de :data:`mock.FILTER_DIR`." #: ../Doc/library/unittest.mock.rst:2439 msgid "mock_open" -msgstr "" +msgstr "mock_open" #: ../Doc/library/unittest.mock.rst:2443 msgid "" "A helper function to create a mock to replace the use of :func:`open`. It " "works for :func:`open` called directly or used as a context manager." msgstr "" +"Una función auxiliar que permite crear un objeto simulado con la finalidad " +"de reemplazar el uso de :func:`open`. Funciona para simular llamadas " +"directas a :func:`open` y para aquellos casos en los que es utilizada como " +"gestor de contexto." #: ../Doc/library/unittest.mock.rst:2446 msgid "" @@ -2096,6 +2973,9 @@ msgid "" "default) then a :class:`MagicMock` will be created for you, with the API " "limited to methods or attributes available on standard file handles." msgstr "" +"El argumento *mock* es el objeto simulado a configurar. Si es ``None`` (por " +"defecto) un objeto :class:`MagicMock` se creará para ti, con la API limitada " +"a métodos o atributos disponibles en los gestores de fichero estándares." #: ../Doc/library/unittest.mock.rst:2450 msgid "" @@ -2109,6 +2989,17 @@ msgid "" "in-memory filesystem packages on `PyPI `_ can offer a " "realistic filesystem for testing." msgstr "" +"*read_data* es una cadena de caracteres para los métodos :meth:`~io.IOBase." +"read`, :meth:`~io.IOBase.readline` y :meth:`~io.IOBase.readlines` del gestor " +"de fichero a retornar. Las llamadas a los métodos tomarán datos de " +"*read_data* hasta que se agote. El objeto simulado de estos métodos es " +"bastante simple: cada vez que el *mock* se llama, *read_data* se rebobina " +"hasta el principio. Si necesitas más control sobre los datos que estás " +"proporcionando al código de prueba tendrás que personalizar el objeto " +"simulado. Cuando eso no sea suficiente, alguno de los paquetes que " +"implementan sistemas de archivos en memoria disponible en `PyPI `_ puede ofrecer un sistema de archivos realista para usar en las " +"pruebas." #: ../Doc/library/unittest.mock.rst:2460 msgid "" @@ -2116,22 +3007,30 @@ msgid "" "The mock of :meth:`~io.IOBase.read` changed to consume *read_data* rather " "than returning it on each call." msgstr "" +"Se añadió soporte para :meth:`~io.IOBase.readline` y :meth:`~io.IOBase." +"readlines`. El objeto simulado de :meth:`~io.IOBase.read` ahora consume " +"datos de *read_data*, en lugar de retornarlo en cada llamada." #: ../Doc/library/unittest.mock.rst:2465 msgid "*read_data* is now reset on each call to the *mock*." -msgstr "" +msgstr "*read_data* ahora es restablecido en cada llamada al *mock*." #: ../Doc/library/unittest.mock.rst:2468 msgid "" "Added :meth:`__iter__` to implementation so that iteration (such as in for " "loops) correctly consumes *read_data*." msgstr "" +"Se añadió el método :meth:`__iter__` a la implementación, de manera que la " +"iteración (como ocurre en los bucles) consume apropiadamente *read_data*." #: ../Doc/library/unittest.mock.rst:2472 msgid "" "Using :func:`open` as a context manager is a great way to ensure your file " "handles are closed properly and is becoming common::" msgstr "" +"Usar :func:`open` como gestor de contexto es una buena manera de asegurarse " +"de que los gestores de archivos se cierren correctamente al terminar y se " +"está convirtiendo en una práctica común:" #: ../Doc/library/unittest.mock.rst:2478 msgid "" @@ -2139,20 +3038,25 @@ msgid "" "*returned object* that is used as a context manager (and has :meth:" "`__enter__` and :meth:`__exit__` called)." msgstr "" +"El problema es que, incluso si simulas la llamada a :func:`open`, es el " +"*objeto retornado* el que se utiliza como gestor de contexto (lo que " +"conlleva que sus métodos :meth:`__enter__` y :meth:`__exit__` son invocados)." #: ../Doc/library/unittest.mock.rst:2482 msgid "" "Mocking context managers with a :class:`MagicMock` is common enough and " "fiddly enough that a helper function is useful. ::" msgstr "" +"Simular gestores de contexto con un :class:`MagicMock` es lo suficientemente " +"común y complicado como para que una función auxiliar sea útil:" #: ../Doc/library/unittest.mock.rst:2499 msgid "And for reading files::" -msgstr "" +msgstr "Y para la lectura de archivos:" #: ../Doc/library/unittest.mock.rst:2512 msgid "Autospeccing" -msgstr "" +msgstr "Autoespecificación" #: ../Doc/library/unittest.mock.rst:2514 msgid "" @@ -2163,10 +3067,19 @@ msgid "" "methods have the same call signature as the original so they raise a :exc:" "`TypeError` if they are called incorrectly." msgstr "" +"La autoespecificación se basa en la característica :attr:`spec` ya existente " +"en el objeto simulado. Limita la API de los objetos simulados a la API del " +"objeto original (la especificación), pero es recursiva (implementada de " +"forma perezosa), de modo que los atributos del objeto simulado sólo tienen " +"la misma API que los atributos de la especificación. Además, las funciones / " +"métodos simuladas tienen la misma firma de llamada que la original y lanzan " +"una excepción :exc:`TypeError` si se les llama incorrectamente." #: ../Doc/library/unittest.mock.rst:2521 msgid "Before I explain how auto-speccing works, here's why it is needed." msgstr "" +"Antes de explicar cómo funciona la autoespecificación, he aquí por qué se " +"necesita." #: ../Doc/library/unittest.mock.rst:2523 msgid "" @@ -2175,6 +3088,10 @@ msgid "" "these flaws is specific to the :class:`Mock` api and the other is a more " "general problem with using mock objects." msgstr "" +":class:`Mock` es un objeto muy potente y flexible, pero adolece de dos " +"defectos cuando se utiliza para simular objetos de un sistema bajo prueba. " +"Uno de estos defectos es específico de la API de :class:`Mock` y el otro es " +"un problema más genérico referente al uso de objetos simulados." #: ../Doc/library/unittest.mock.rst:2528 msgid "" @@ -2182,6 +3099,9 @@ msgid "" "methods that are extremely handy: :meth:`~Mock.assert_called_with` and :meth:" "`~Mock.assert_called_once_with`." msgstr "" +"En primer lugar, el problema específico a :class:`Mock`. :class:`Mock` tiene " +"dos métodos de aserción que son extremadamente útiles: :meth:`~Mock." +"assert_called_with` y :meth:`~Mock.assert_called_once_with`." #: ../Doc/library/unittest.mock.rst:2541 msgid "" @@ -2189,10 +3109,16 @@ msgid "" "with arbitrary arguments, if you misspell one of these assert methods then " "your assertion is gone:" msgstr "" +"Debido a que los objetos simulados crean automáticamente atributos según " +"demanda y además permiten que se les llame con argumentos arbitrarios, si " +"escribes mal uno de estos métodos de aserción, la utilidad de esa aserción " +"desaparece:" #: ../Doc/library/unittest.mock.rst:2551 msgid "Your tests can pass silently and incorrectly because of the typo." msgstr "" +"Tus pruebas pueden pasar silenciosamente y de forma incorrecta debido al " +"error tipográfico." #: ../Doc/library/unittest.mock.rst:2553 msgid "" @@ -2201,6 +3127,12 @@ msgid "" "*old api* but uses mocks instead of the real objects will still pass. This " "means your tests can all pass even though your code is broken." msgstr "" +"El segundo problema es algo más general en las simulaciones. Si refactorizas " +"parte de tu código, cambias el nombre de los miembros, etc., las pruebas " +"para el código que siguen utilizando la *antigua API*, pero utilizan objetos " +"simulados en lugar de los objetos reales, todavía pasarán las pruebas. Esto " +"significa que tus pruebas pueden validarlo todo sin problemas, a pesar de " +"que el código esté roto." #: ../Doc/library/unittest.mock.rst:2558 msgid "" @@ -2209,6 +3141,11 @@ msgid "" "you don't test how your units are \"wired together\" there is still lots of " "room for bugs that tests might have caught." msgstr "" +"Ten en cuenta que esta es otra razón por la que necesitas pruebas de " +"integración además de pruebas unitarias. Probar todo de forma aislada está " +"muy bien, pero si no pruebas cómo están \"conectadas entre sí\" tus " +"unidades, todavía hay mucho espacio para errores que las pruebas deberían " +"haber detectado." #: ../Doc/library/unittest.mock.rst:2563 msgid "" @@ -2216,12 +3153,18 @@ msgid "" "If you use a class or instance as the :attr:`spec` for a mock then you can " "only access attributes on the mock that exist on the real class:" msgstr "" +":mod:`mock` ya proporciona una característica para ayudar con esto, llamada " +"especificación. Si se utiliza una clase o instancia como atributo :attr:" +"`spec` de un objeto simulado, entonces solo puedes acceder a los atributos " +"del mismo que existe en la clase real:" #: ../Doc/library/unittest.mock.rst:2574 msgid "" "The spec only applies to the mock itself, so we still have the same issue " "with any methods on the mock:" msgstr "" +"La especificación sólo se aplica al propio objeto simulado, por lo que aún " +"tenemos el mismo problema con cualquiera de los métodos del mismo:" #: ../Doc/library/unittest.mock.rst:2583 msgid "" @@ -2234,10 +3177,20 @@ msgid "" "complex or deeply nested objects (like modules that import modules that " "import modules) without a big performance hit." msgstr "" +"La autoespecificación resuelve este problema. Puedes pasar ``autospec=True`` " +"a :func:`patch` / :func:`patch.object` o utilizar la función :func:" +"`create_autospec` para crear un objeto simulado con una especificación. Si " +"utilizas el argumento ``autospec=True`` de :func:`patch`, el objeto que se " +"va a reemplazar se utiliza como objeto de especificación. Debido a que la " +"especificación se hace \"perezosamente\" (la especificación se crea en el " +"instante en el que se accede a los atributos del objeto simulado, no antes), " +"se puede utilizar con objetos muy complejos o anidadas (como módulos que " +"importan módulos que, a su vez, importan otros módulos) sin un gran impacto " +"en el rendimiento." #: ../Doc/library/unittest.mock.rst:2592 msgid "Here's an example of it in use::" -msgstr "" +msgstr "He aquí un ejemplo de ello en acción:" #: ../Doc/library/unittest.mock.rst:2602 msgid "" @@ -2245,12 +3198,18 @@ msgid "" "Request` takes two arguments in the constructor (one of which is *self*). " "Here's what happens if we try to call it incorrectly::" msgstr "" +"Se puede ver que :class:`request.Request` tiene una especificación. :class:" +"`request.Request` toma dos argumentos en el constructor (uno de los cuales " +"es *self*). Esto es lo que sucede si tratamos de llamarlo de forma " +"incorrecta:" #: ../Doc/library/unittest.mock.rst:2611 msgid "" "The spec also applies to instantiated classes (i.e. the return value of " "specced mocks)::" msgstr "" +"La especificación también se aplica a las clases instanciadas (es decir, el " +"valor de retorno de los objetos simulados especificados):" #: ../Doc/library/unittest.mock.rst:2618 msgid "" @@ -2259,6 +3218,11 @@ msgid "" "mock. With the spec in place any typos in our asserts will raise the correct " "error::" msgstr "" +"Los objetos de la clase :class:`Request` no son invocables, por lo que el " +"valor de retorno de una instancia de nuestro objeto simulado de :class:" +"`request.Request` no es invocable. Con la especificación, en cambio, " +"cualquier error tipográfico en nuestras aserciones generará el error " +"correcto:" #: ../Doc/library/unittest.mock.rst:2630 msgid "" @@ -2266,12 +3230,18 @@ msgid "" "existing :func:`patch` calls and then be protected against bugs due to typos " "and api changes." msgstr "" +"En muchos casos, podrás simplemente añadir ``autospec=True`` a tus llamadas :" +"func:`patch` existentes y así estar protegido contra errores tipográficos y " +"cambios de la API." #: ../Doc/library/unittest.mock.rst:2634 msgid "" "As well as using *autospec* through :func:`patch` there is a :func:" "`create_autospec` for creating autospecced mocks directly:" msgstr "" +"Además de poder usar *autospec* a través de :func:`patch`, existe la " +"función :func:`create_autospec` para crear directamente objetos simulados " +"autoespecificados:" #: ../Doc/library/unittest.mock.rst:2642 msgid "" @@ -2284,6 +3254,16 @@ msgid "" "be able to use autospec. On the other hand it is much better to design your " "objects so that introspection is safe [#]_." msgstr "" +"Sin embargo, este no es el comportamiento predeterminado, ya que no está " +"exento de advertencias y restricciones. Con el fin de conocer qué atributos " +"están disponibles en el objeto especificado, autospec tiene que hacer uso de " +"introspección sobre la especificación (acceder a los atributos). A medida " +"que recorres los atributos en el objeto simulado, se produce paralelamente y " +"de forma soterrada un recorrido del objeto original. Si alguno de tus " +"objetos especificados tienen propiedades o descriptores que puedan " +"desencadenar la ejecución de código, quizás no deberías utilizar la " +"autoespecificación. De todas formas, es siempre mucho mejor diseñar tus " +"objetos de modo que la introspección sea segura [#]_." #: ../Doc/library/unittest.mock.rst:2651 msgid "" @@ -2292,6 +3272,10 @@ msgid "" "*autospec* can't know about any dynamically created attributes and restricts " "the api to visible attributes. ::" msgstr "" +"Un problema más serio es que es común que los atributos de instancia sean " +"creados en el método :meth:`__init__` y que no existan a nivel de clase. " +"*autospec* no puede tener conocimiento de ningún atributo creado " +"dinámicamente, por lo que restringe la API a atributos visibles:" #: ../Doc/library/unittest.mock.rst:2668 msgid "" @@ -2301,6 +3285,11 @@ msgid "" "you to fetch attributes that don't exist on the spec it doesn't prevent you " "setting them::" msgstr "" +"Hay diferentes formas de resolver este problema. La forma más sencilla, pero " +"no necesariamente la menos molesta, es simplemente establecer los atributos " +"necesarios en el objeto simulado después de la creación del mismo. El hecho " +"de que *autospec* no te permita buscar atributos que no existen en la " +"especificación no impide que los establezcas manualmente después:" #: ../Doc/library/unittest.mock.rst:2679 msgid "" @@ -2309,6 +3298,10 @@ msgid "" "ensure your code only *sets* valid attributes too, but obviously it prevents " "this particular scenario:" msgstr "" +"Existe una versión más agresiva de *spec* y *autospec* que impide establecer " +"atributos inexistentes. Esto es útil si deseas asegurarte de que tu código " +"solo *establece* atributos válidos, pero obviamente evitando este escenario " +"en particular:" #: ../Doc/library/unittest.mock.rst:2692 msgid "" @@ -2318,6 +3311,12 @@ msgid "" "providing them via class attributes (shared between instances of course) is " "faster too. e.g." msgstr "" +"Probablemente la mejor manera de resolver el problema es añadir atributos de " +"clase como valores por defecto para los miembros de instancia inicializados " +"en el método :meth:`__init__`. Ten en cuenta que, si sólo estás " +"estableciendo atributos predeterminados en :meth:`__init__`, proporcionarlos " +"a través de atributos de clase (que , por supuesto, son compartidos entre " +"instancias) también es más rápido." #: ../Doc/library/unittest.mock.rst:2702 msgid "" @@ -2329,6 +3328,15 @@ msgid "" "type, autospec doesn't use a spec for members that are set to ``None``. " "These will just be ordinary mocks (well - MagicMocks):" msgstr "" +"Esto nos plantea otro problema. Es relativamente común proporcionar un valor " +"predeterminado de ``None`` para los miembros que posteriormente se " +"convertirán en objetos de un tipo diferente. ``None`` es inútil como " +"especificación dado que no permite acceder a *ningún* atributo o método. " +"Como ``None`` *nunca* será útil como especificación, y probablemente indica " +"un miembro que normalmente será de algún otro tipo en el futuro, la " +"autoespecificación no usa una especificación para aquellos miembros " +"configurados con ``None`` como valor. Estos serán simplemente objetos " +"simulados ordinarios (MagicMocks en realidad):" #: ../Doc/library/unittest.mock.rst:2717 msgid "" @@ -2340,6 +3348,14 @@ msgid "" "the spec. Thankfully :func:`patch` supports this - you can simply pass the " "alternative object as the *autospec* argument::" msgstr "" +"Si modificar tus clases en producción para agregar valores predeterminados " +"no es de tu agrado, dispones de otras opciones. Una de ellas es simplemente " +"usar una instancia como especificación en lugar de la clase. La otra es " +"crear una subclase de la clase en producción y agregar los valores " +"predeterminados a la subclase, sin afectar a la clase en producción. Ambas " +"alternativas requieren que uses un objeto alternativo como especificación. " +"Afortunadamente :func:`patch` admite esto, simplemente tienes que pasar el " +"objeto alternativo mediante el argumento *autospec*:" #: ../Doc/library/unittest.mock.rst:2738 msgid "" @@ -2347,10 +3363,14 @@ msgid "" "mocked class to create a mock instance *does not* create a real instance. It " "is only attribute lookups - along with calls to :func:`dir` - that are done." msgstr "" +"Esto sólo se aplica a las clases u objetos ya instanciados. Llamar a una " +"clase simulada para crear una instancia simulada *no* crea una instancia " +"real. Solo se llevan a cabo las búsqueda de atributos (mediante llamadas a :" +"func:`dir`)." #: ../Doc/library/unittest.mock.rst:2743 msgid "Sealing mocks" -msgstr "" +msgstr "Sellar objetos simulados" #: ../Doc/library/unittest.mock.rst:2752 msgid "" @@ -2358,6 +3378,9 @@ msgid "" "attribute of the mock being sealed or any of its attributes that are already " "mocks recursively." msgstr "" +"Seal desactivará la creación automática de objetos simulados al acceder a un " +"atributo del objeto simulado que está siendo sellado, o a cualquiera de sus " +"atributos que ya sean objetos simulados de forma recursiva." #: ../Doc/library/unittest.mock.rst:2755 msgid "" @@ -2365,3 +3388,6 @@ msgid "" "won't be considered in the sealing chain. This allows one to prevent seal " "from fixing part of the mock object. ::" msgstr "" +"Si una instancia simulada con un nombre o una especificación es asignada a " +"un atributo no será considerada en la cadena de sellado. Esto permite evitar " +"que seal fije partes del objeto simulado. ::" diff --git a/library/urllib.error.po b/library/urllib.error.po index 7ed8de2205..4b2850b66e 100644 --- a/library/urllib.error.po +++ b/library/urllib.error.po @@ -1,29 +1,32 @@ # 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: 2020-10-26 06:52-0400\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/urllib.error.rst:2 msgid ":mod:`urllib.error` --- Exception classes raised by urllib.request" msgstr "" +":mod:`urllib.error` --- Clases de excepción lanzadas por urllib.request" #: ../Doc/library/urllib.error.rst:10 msgid "**Source code:** :source:`Lib/urllib/error.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/urllib/error.py`" #: ../Doc/library/urllib.error.rst:14 msgid "" @@ -31,29 +34,40 @@ msgid "" "raised by :mod:`urllib.request`. The base exception class is :exc:" "`URLError`." msgstr "" +"El módulo :mod:`urllib.error` define las clases de excepción para las " +"excepciones lanzadas por :mod:`urllib.request`. La clase de excepción base " +"es :exc:`URLError`." #: ../Doc/library/urllib.error.rst:17 msgid "" "The following exceptions are raised by :mod:`urllib.error` as appropriate:" msgstr "" +"Las siguientes excepciones son lanzadas por :mod:`urllib.error` según sea " +"apropiado:" #: ../Doc/library/urllib.error.rst:21 msgid "" "The handlers raise this exception (or derived exceptions) when they run into " "a problem. It is a subclass of :exc:`OSError`." msgstr "" +"Los gestores lanzan esta excepción (o excepciones derivadas) cuando " +"encuentran un problema. Es una subclase de :exc:`OSError`." #: ../Doc/library/urllib.error.rst:26 msgid "" "The reason for this error. It can be a message string or another exception " "instance." msgstr "" +"El motivo de este error. Puede ser una cadena de mensaje u otra instancia de " +"una excepción." #: ../Doc/library/urllib.error.rst:29 msgid "" ":exc:`URLError` has been made a subclass of :exc:`OSError` instead of :exc:" "`IOError`." msgstr "" +"Se ha convertido a :exc:`URLError` en una subclase de :exc:`OSError` en " +"lugar de :exc:`IOError`." #: ../Doc/library/urllib.error.rst:36 msgid "" @@ -62,6 +76,11 @@ msgid "" "(the same thing that :func:`~urllib.request.urlopen` returns). This is " "useful when handling exotic HTTP errors, such as requests for authentication." msgstr "" +"A pesar de ser una excepción (una subclase de :exc:`URLError`), un :exc:" +"`HTTPError` también puede funcionar como un valor de retorno no excepcional " +"de tipo archivo (lo mismo que retorna :func:`~urllib.request.urlopen`). Esto " +"es útil para gestionar errores HTTP exóticos, como peticiones de " +"autentificación." #: ../Doc/library/urllib.error.rst:44 msgid "" @@ -69,16 +88,23 @@ msgid "" "corresponds to a value found in the dictionary of codes as found in :attr:" "`http.server.BaseHTTPRequestHandler.responses`." msgstr "" +"Un código de estado HTTP como los definidos en :rfc:`2616`. Este valor " +"numérico se corresponde con un valor de un diccionario de códigos como el " +"que hay en :attr:`http.server.BaseHTTPRequestHandler.responses`." #: ../Doc/library/urllib.error.rst:50 msgid "This is usually a string explaining the reason for this error." msgstr "" +"Normalmente esto es una cadena de caracteres que explica el motivo de este " +"error." #: ../Doc/library/urllib.error.rst:54 msgid "" "The HTTP response headers for the HTTP request that caused the :exc:" "`HTTPError`." msgstr "" +"Las cabeceras de la respuesta HTTP de la petición HTTP que causó el :exc:" +"`HTTPError`." #: ../Doc/library/urllib.error.rst:61 msgid "" @@ -87,3 +113,7 @@ msgid "" "expected amount (given by the *Content-Length* header). The :attr:`content` " "attribute stores the downloaded (and supposedly truncated) data." msgstr "" +"Esta excepción se lanza cuando la función :func:`~urllib.request." +"urlretrieve` detecta que la cantidad de datos descargados es menor que la " +"esperada (dada por la cabecera *Content-Length*). El atributo :attr:" +"`content` almacena los datos descargados (y supuestamente truncados)." diff --git a/library/urllib.parse.po b/library/urllib.parse.po index 488d2813f0..2c4685d7c7 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -6,27 +6,28 @@ # 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: 2020-10-12 14:02-0600\n" +"Last-Translator: Marcos Moreno \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.1\n" #: ../Doc/library/urllib.parse.rst:2 msgid ":mod:`urllib.parse` --- Parse URLs into components" -msgstr "" +msgstr ":mod:`urllib.parse` --- Analiza URL en componentes" #: ../Doc/library/urllib.parse.rst:7 msgid "**Source code:** :source:`Lib/urllib/parse.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/urllib/parse.py`" #: ../Doc/library/urllib.parse.rst:18 msgid "" @@ -35,6 +36,12 @@ msgid "" "etc.), to combine the components back into a URL string, and to convert a " "\"relative URL\" to an absolute URL given a \"base URL.\"" msgstr "" +"Este modulo define una interfaz estándar para separar cadenas de texto del " +"Localizador de recursos uniforme (más conocido por las siglas URL, del " +"inglés *Uniform Resource Locator*) en componentes (esquema de dirección, " +"ubicación de red, ruta de acceso, etc.), para poder combinar los " +"componentes nuevamente en una cadena de texto URL, y convertir una \"URL " +"relativa\" a una URL absoluta a partir de una \"URL base\"." #: ../Doc/library/urllib.parse.rst:23 msgid "" @@ -45,6 +52,13 @@ msgid "" "``shttp``, ``sip``, ``sips``, ``snews``, ``svn``, ``svn+ssh``, ``telnet``, " "``wais``, ``ws``, ``wss``." msgstr "" +"Este módulo ha sido diseñado para coincidir con el estándar de Internet RFC " +"de los Localizadores de recursos uniformes relativos. Este modulo soporta " +"los siguientes esquemas URL: ``file``, ``ftp``, ``gopher``, ``hdl``, " +"``http``, ``https``, ``imap``, ``mailto``, ``mms``, ``news``, ``nntp``, " +"``prospero``, ``rsync``, ``rtsp``, ``rtspu``, ``sftp``, ``shttp``, ``sip``, " +"``sips``, ``snews``, ``svn``, ``svn+ssh``, ``telnet``, ``wais``, ``ws``, " +"``wss``." #: ../Doc/library/urllib.parse.rst:30 msgid "" @@ -52,16 +66,22 @@ msgid "" "categories: URL parsing and URL quoting. These are covered in detail in the " "following sections." msgstr "" +"El módulo :mod:`urllib.parse` define funciones que se dividen en dos " +"categorías amplias: análisis de URL y cita de URL. Estos se tratan en " +"detalle en las secciones siguientes." #: ../Doc/library/urllib.parse.rst:35 msgid "URL Parsing" -msgstr "" +msgstr "Análisis de URL" #: ../Doc/library/urllib.parse.rst:37 msgid "" "The URL parsing functions focus on splitting a URL string into its " "components, or on combining URL components into a URL string." msgstr "" +"Las funciones de análisis de url se centran en dividir una cadena de " +"dirección URL en sus componentes o en combinar componentes de dirección URL " +"en una cadena de dirección URL." #: ../Doc/library/urllib.parse.rst:42 #, python-format @@ -74,6 +94,15 @@ msgid "" "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:" #: ../Doc/library/urllib.parse.rst:63 msgid "" @@ -81,6 +110,10 @@ msgid "" "netloc only if it is properly introduced by '//'. Otherwise the input is " "presumed to be a relative URL and thus to start with a path component." msgstr "" +"Siguiendo las especificaciones de sintaxis en :rfc:`1808`, urlparse reconoce " +"un netloc sólo si es introducido correctamente por '//'. De lo contrario, " +"se supone que la entrada es una dirección URL relativa y, por lo tanto, " +"comienza con un componente de ruta de acceso." #: ../Doc/library/urllib.parse.rst:82 msgid "" @@ -89,6 +122,11 @@ msgid "" "as *urlstring*, except that the default value ``''`` is always allowed, and " "is automatically converted to ``b''`` if appropriate." msgstr "" +"El argumento *scheme* proporciona el esquema de direccionamiento " +"predeterminado, que solo se utilizará si la dirección URL no especifica " +"uno. Debe ser del mismo tipo (texto o bytes) que *urlstring*, excepto que " +"el valor predeterminado ``''`` siempre está permitido, y se convierte " +"automáticamente a ``b''`` si aplica." #: ../Doc/library/urllib.parse.rst:87 msgid "" @@ -97,181 +135,198 @@ msgid "" "query component, and :attr:`fragment` is set to the empty string in the " "return value." msgstr "" +"Si el argumento *allow_fragments* es falso, los identificadores de fragmento " +"no son reconocidos. Sino que, son analizados como parte de la ruta, " +"parámetros o componentes de la consulta y el :attr:`fragment` es configurado " +"como una cadena vacía en el valor retornado." #: ../Doc/library/urllib.parse.rst:92 msgid "" "The return value is a :term:`named tuple`, which means that its items can be " "accessed by index or as named attributes, which are:" msgstr "" +"El valor retornado es un :term:`named tuple`, lo que significa que se puede " +"tener acceso a sus elementos por índice o como atributos con nombre, que son:" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:263 -#: ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Attribute" -msgstr "" +msgstr "Atributo" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:263 -#: ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Index" -msgstr "" +msgstr "Índice" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:263 -#: ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Value" -msgstr "" +msgstr "Valor" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:263 -#: ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:261 +#: ../Doc/library/urllib.parse.rst:358 msgid "Value if not present" -msgstr "" +msgstr "Valor si no está presente" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 msgid ":attr:`scheme`" -msgstr "" +msgstr ":attr:`scheme`" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:265 -#: ../Doc/library/urllib.parse.rst:362 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 +#: ../Doc/library/urllib.parse.rst:360 msgid "0" -msgstr "" +msgstr "0" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 msgid "URL scheme specifier" -msgstr "" +msgstr "Especificador de esquema de URL" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:263 msgid "*scheme* parameter" -msgstr "" +msgstr "parámetro *scheme*" -#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:267 +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 msgid ":attr:`netloc`" -msgstr "" +msgstr ":attr:`netloc`" -#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:267 -#: ../Doc/library/urllib.parse.rst:364 +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:362 msgid "1" -msgstr "" +msgstr "1" -#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:267 +#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:265 msgid "Network location part" -msgstr "" +msgstr "Parte de ubicación de red" #: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:102 #: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:107 -#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:267 -#: ../Doc/library/urllib.parse.rst:269 ../Doc/library/urllib.parse.rst:271 -#: ../Doc/library/urllib.parse.rst:273 ../Doc/library/urllib.parse.rst:362 -#: ../Doc/library/urllib.parse.rst:364 +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:265 +#: ../Doc/library/urllib.parse.rst:267 ../Doc/library/urllib.parse.rst:269 +#: ../Doc/library/urllib.parse.rst:271 ../Doc/library/urllib.parse.rst:360 +#: ../Doc/library/urllib.parse.rst:362 msgid "empty string" -msgstr "" +msgstr "cadena vacía" -#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:269 +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 msgid ":attr:`path`" -msgstr "" +msgstr ":attr:`path`" -#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:269 +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 msgid "2" -msgstr "" +msgstr "2" -#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:269 +#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:267 msgid "Hierarchical path" -msgstr "" +msgstr "Hierarchical path" #: ../Doc/library/urllib.parse.rst:104 msgid ":attr:`params`" -msgstr "" +msgstr ":attr:`params`" -#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:269 msgid "3" -msgstr "" +msgstr "3" #: ../Doc/library/urllib.parse.rst:104 msgid "Parameters for last path element" -msgstr "" +msgstr "Parámetros para el último elemento de ruta de acceso" -#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:269 msgid ":attr:`query`" -msgstr "" +msgstr ":attr:`query`" -#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:273 +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:271 msgid "4" -msgstr "" +msgstr "4" -#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:269 msgid "Query component" -msgstr "" +msgstr "Componente de consulta" -#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:273 -#: ../Doc/library/urllib.parse.rst:364 +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:362 msgid ":attr:`fragment`" -msgstr "" +msgstr ":attr:`fragment`" #: ../Doc/library/urllib.parse.rst:109 msgid "5" -msgstr "" +msgstr "5" -#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:273 -#: ../Doc/library/urllib.parse.rst:364 +#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:271 +#: ../Doc/library/urllib.parse.rst:362 msgid "Fragment identifier" -msgstr "" +msgstr "Identificador de fragmento" -#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:275 +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:273 msgid ":attr:`username`" -msgstr "" +msgstr ":attr:`username`" -#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:275 +#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:273 msgid "User name" -msgstr "" +msgstr "Nombre de usuario" #: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:113 #: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:117 -#: ../Doc/library/urllib.parse.rst:275 ../Doc/library/urllib.parse.rst:277 -#: ../Doc/library/urllib.parse.rst:279 ../Doc/library/urllib.parse.rst:281 +#: ../Doc/library/urllib.parse.rst:273 ../Doc/library/urllib.parse.rst:275 +#: ../Doc/library/urllib.parse.rst:277 ../Doc/library/urllib.parse.rst:279 msgid ":const:`None`" -msgstr "" +msgstr ":const:`None`" -#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:277 +#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:275 msgid ":attr:`password`" -msgstr "" +msgstr ":attr:`password`" -#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:277 +#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:275 msgid "Password" -msgstr "" +msgstr "Contraseña" -#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:279 +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:277 msgid ":attr:`hostname`" -msgstr "" +msgstr ":attr:`hostname`" -#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:279 +#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:277 msgid "Host name (lower case)" -msgstr "" +msgstr "Nombre de host (minúsculas)" -#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:281 +#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:279 msgid ":attr:`port`" -msgstr "" +msgstr ":attr:`port`" -#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:281 +#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:279 msgid "Port number as integer, if present" -msgstr "" +msgstr "Número de puerto como entero, si está presente" -#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:285 +#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:283 msgid "" "Reading the :attr:`port` attribute will raise a :exc:`ValueError` if an " "invalid port is specified in the URL. See section :ref:`urlparse-result-" "object` for more information on the result object." msgstr "" +"La lectura del atributo :attr:`port` generará un :exc:`ValueError` si se " +"especifica un puerto no válido en la dirección URL. Consulte la sección :" +"ref:`urlparse-result-object` para obtener más información sobre el objeto de " +"resultado." -#: ../Doc/library/urllib.parse.rst:125 ../Doc/library/urllib.parse.rst:289 +#: ../Doc/library/urllib.parse.rst:125 ../Doc/library/urllib.parse.rst:287 msgid "" "Unmatched square brackets in the :attr:`netloc` attribute will raise a :exc:" "`ValueError`." msgstr "" +"Los corchetes no coincidentes en el atributo :attr:`netloc` generarán un :" +"exc:`ValueError`." -#: ../Doc/library/urllib.parse.rst:128 ../Doc/library/urllib.parse.rst:292 +#: ../Doc/library/urllib.parse.rst:128 ../Doc/library/urllib.parse.rst:290 msgid "" "Characters in the :attr:`netloc` attribute that decompose under NFKC " "normalization (as used by the IDNA encoding) into any of ``/``, ``?``, " "``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is " "decomposed before parsing, no error will be raised." msgstr "" +"Los caracteres del atributo :attr:`netloc` que se descomponen en la " +"normalización de NFKC (según lo utilizado por la codificación IDNA) en " +"cualquiera de ``/``, ``?``, ``#``, ``@`` o ``:`` lanzará un :exc:" +"`ValueError`. Si la dirección URL se descompone antes del análisis, no se " +"producirá ningún error." #: ../Doc/library/urllib.parse.rst:133 msgid "" @@ -280,10 +335,14 @@ msgid "" "meth:`_replace`. The :meth:`_replace` method will return a new ParseResult " "object replacing specified fields with new values." msgstr "" +"Como es el caso con todas las tuplas con nombre, la subclase tiene algunos " +"métodos y atributos adicionales que son particularmente útiles. Uno de estos " +"métodos es :meth:`_replace`. El método :meth:`_replace` retornará un nuevo " +"objeto ParseResult reemplazando los campos especificados por nuevos valores." #: ../Doc/library/urllib.parse.rst:151 msgid "Added IPv6 URL parsing capabilities." -msgstr "" +msgstr "Se han añadido capacidades de análisis de URL IPv6." #: ../Doc/library/urllib.parse.rst:154 msgid "" @@ -291,18 +350,25 @@ msgid "" "false), in accordance with :rfc:`3986`. Previously, a whitelist of schemes " "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, " +"existía una lista blanca de esquemas que admiten fragmentos." -#: ../Doc/library/urllib.parse.rst:159 ../Doc/library/urllib.parse.rst:297 +#: ../Doc/library/urllib.parse.rst:159 ../Doc/library/urllib.parse.rst:295 msgid "" "Out-of-range port numbers now raise :exc:`ValueError`, instead of returning :" "const:`None`." msgstr "" +"Los números de puerto fuera de rango ahora generan :exc:`ValueError`, en " +"lugar de retornar :const:`None`." -#: ../Doc/library/urllib.parse.rst:163 ../Doc/library/urllib.parse.rst:301 +#: ../Doc/library/urllib.parse.rst:163 ../Doc/library/urllib.parse.rst:299 msgid "" "Characters that affect netloc parsing under NFKC normalization will now " "raise :exc:`ValueError`." msgstr "" +"Los caracteres que afectan al análisis de netloc en la normalización de NFKC " +"ahora generarán :exc:`ValueError`." #: ../Doc/library/urllib.parse.rst:170 msgid "" @@ -311,8 +377,13 @@ msgid "" "The dictionary keys are the unique query variable names and the values are " "lists of values for each name." msgstr "" +"Analizar una cadena de consulta proporcionada como argumento de cadena " +"(datos de tipo :mimetype:`application/x-www-form-urlencoded`). Los datos se " +"retornan como un diccionario. Las claves de diccionario son los nombres de " +"variable de consulta únicos y los valores son listas de valores para cada " +"nombre." -#: ../Doc/library/urllib.parse.rst:175 ../Doc/library/urllib.parse.rst:211 +#: ../Doc/library/urllib.parse.rst:175 ../Doc/library/urllib.parse.rst:210 msgid "" "The optional argument *keep_blank_values* is a flag indicating whether blank " "values in percent-encoded queries should be treated as blank strings. A true " @@ -320,56 +391,80 @@ msgid "" "default false value indicates that blank values are to be ignored and " "treated as if they were not included." 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 " +"indica que los valores en blanco deben omitirse y tratarse como si no se " +"hubieran incluido." -#: ../Doc/library/urllib.parse.rst:181 ../Doc/library/urllib.parse.rst:217 +#: ../Doc/library/urllib.parse.rst:181 ../Doc/library/urllib.parse.rst:216 msgid "" "The optional argument *strict_parsing* is a flag indicating what to do with " "parsing errors. If false (the default), errors are silently ignored. If " "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`." -#: ../Doc/library/urllib.parse.rst:185 ../Doc/library/urllib.parse.rst:221 +#: ../Doc/library/urllib.parse.rst:185 ../Doc/library/urllib.parse.rst:220 msgid "" "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`." -#: ../Doc/library/urllib.parse.rst:189 ../Doc/library/urllib.parse.rst:225 +#: ../Doc/library/urllib.parse.rst:189 ../Doc/library/urllib.parse.rst:224 msgid "" "The optional argument *max_num_fields* is the maximum number of fields to " "read. If set, then throws a :exc:`ValueError` if there are more than " "*max_num_fields* fields read." msgstr "" +"El argumento opcional *max_num_fields* es el número máximo de campos que se " +"van a leer. Si se establece, se produce un :exc:`ValueError` si hay más de " +"*max_num_fields* campos leídos." #: ../Doc/library/urllib.parse.rst:193 msgid "" "Use the :func:`urllib.parse.urlencode` function (with the ``doseq`` " "parameter set to ``True``) to convert such dictionaries into query strings." msgstr "" +"Utilice la función :func:`urllib.parse.urlencode` (con el parámetro " +"``doseq`` establecido en ``True``) para convertir dichos diccionarios en " +"cadenas de consulta." -#: ../Doc/library/urllib.parse.rst:198 ../Doc/library/urllib.parse.rst:232 +#: ../Doc/library/urllib.parse.rst:197 ../Doc/library/urllib.parse.rst:231 msgid "Add *encoding* and *errors* parameters." -msgstr "" +msgstr "Agregue los parámetros *encoding* y *errors*." -#: ../Doc/library/urllib.parse.rst:201 ../Doc/library/urllib.parse.rst:235 +#: ../Doc/library/urllib.parse.rst:200 ../Doc/library/urllib.parse.rst:234 msgid "Added *max_num_fields* parameter." -msgstr "" +msgstr "Añadido parámetro *max_num_fields*." -#: ../Doc/library/urllib.parse.rst:207 +#: ../Doc/library/urllib.parse.rst:206 msgid "" "Parse a query string given as a string argument (data of type :mimetype:" "`application/x-www-form-urlencoded`). Data are returned as a list of name, " "value pairs." msgstr "" +"Analizar una cadena de consulta proporcionada como argumento de cadena " +"(datos de tipo :mimetype:`application/x-www-form-urlencoded`). Los datos se " +"retornan como una lista de pares de nombre y valor." -#: ../Doc/library/urllib.parse.rst:229 +#: ../Doc/library/urllib.parse.rst:228 msgid "" "Use the :func:`urllib.parse.urlencode` function to convert such lists of " "pairs into query strings." msgstr "" +"Utilice la función :func:`urllib.parse.urlencode` para convertir dichas " +"listas de pares en cadenas de consulta." -#: ../Doc/library/urllib.parse.rst:241 +#: ../Doc/library/urllib.parse.rst:239 msgid "" "Construct a URL from a tuple as returned by ``urlparse()``. The *parts* " "argument can be any six-item iterable. This may result in a slightly " @@ -377,8 +472,14 @@ msgid "" "unnecessary delimiters (for example, a ``?`` with an empty query; the RFC " "states that these are equivalent)." msgstr "" +"Construir una URL a partir de una tupla retornada por ``urlparse()``. El " +"argumento *parts* puede ser iterable de seis elementos. Esto puede dar lugar " +"a una dirección URL ligeramente diferente, pero equivalente, si la dirección " +"URL que se analizó originalmente tenía delimitadores innecesarios (por " +"ejemplo, un ``?`` con una consulta vacía; la RFC indica que son " +"equivalentes)." -#: ../Doc/library/urllib.parse.rst:250 +#: ../Doc/library/urllib.parse.rst:248 msgid "" "This is similar to :func:`urlparse`, but does not split the params from the " "URL. This should generally be used instead of :func:`urlparse` if the more " @@ -387,14 +488,23 @@ msgid "" "is needed to separate the path segments and parameters. This function " "returns a 5-item :term:`named tuple`::" msgstr "" +"Esto es similar a :func:`urlparse`, pero no divide los parámetros de la " +"dirección URL. Esto se debe utilizar generalmente en lugar de :func:" +"`urlparse` si se desea la sintaxis de URL más reciente que permite aplicar " +"parámetros a cada segmento de la parte *path* de la dirección URL (consulte :" +"rfc:`2396`). Se necesita una función independiente para separar los " +"segmentos y parámetros de ruta. Esta función retorna un 5-item :term:`named " +"tuple`::" -#: ../Doc/library/urllib.parse.rst:259 ../Doc/library/urllib.parse.rst:356 +#: ../Doc/library/urllib.parse.rst:257 ../Doc/library/urllib.parse.rst:354 msgid "" "The return value is a :term:`named tuple`, its items can be accessed by " "index or as named attributes:" msgstr "" +"El valor retornado es un :term:`named tuple`, se puede acceder a sus " +"elementos por índice o como atributos con nombre:" -#: ../Doc/library/urllib.parse.rst:308 +#: ../Doc/library/urllib.parse.rst:306 msgid "" "Combine the elements of a tuple as returned by :func:`urlsplit` into a " "complete URL as a string. The *parts* argument can be any five-item " @@ -402,77 +512,97 @@ msgid "" "the URL that was parsed originally had unnecessary delimiters (for example, " "a ? with an empty query; the RFC states that these are equivalent)." msgstr "" +"Combine los elementos de una tupla retornados por :func:`urlsplit` en una " +"URL completa como una cadena. El argumento *parts* puede ser iterable de " +"cinco elementos. Esto puede dar lugar a una dirección URL ligeramente " +"diferente, pero equivalente, si la dirección URL que se analizó " +"originalmente tenía delimitadores innecesarios (por ejemplo, un ? con una " +"consulta vacía; la RFC indica que son equivalentes)." -#: ../Doc/library/urllib.parse.rst:317 +#: ../Doc/library/urllib.parse.rst:315 msgid "" "Construct a full (\"absolute\") URL by combining a \"base URL\" (*base*) " "with another URL (*url*). Informally, this uses components of the base URL, " "in particular the addressing scheme, the network location and (part of) the " "path, to provide missing components in the relative URL. For example:" msgstr "" +"Construya una URL completa (\"absoluta\") combinando una \"URL base" +"\" (*base*) con otra URL (*url*). Informalmente, esto utiliza componentes " +"de la dirección URL base, en particular el esquema de direccionamiento, la " +"ubicación de red y (parte de) la ruta de acceso, para proporcionar los " +"componentes que faltan en la dirección URL relativa. Por ejemplo:" -#: ../Doc/library/urllib.parse.rst:326 +#: ../Doc/library/urllib.parse.rst:324 msgid "" "The *allow_fragments* argument has the same meaning and default as for :func:" "`urlparse`." msgstr "" +"El argumento *allow_fragments* tiene el mismo significado y el valor " +"predeterminado que para :func:`urlparse`." -#: ../Doc/library/urllib.parse.rst:331 +#: ../Doc/library/urllib.parse.rst:329 msgid "" "If *url* is an absolute URL (that is, starting with ``//`` or ``scheme://" "``), the *url*'s host name 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:" -#: ../Doc/library/urllib.parse.rst:340 +#: ../Doc/library/urllib.parse.rst:338 msgid "" "If you do not want that behavior, preprocess the *url* with :func:`urlsplit` " "and :func:`urlunsplit`, removing possible *scheme* and *netloc* parts." msgstr "" +"Si no desea ese comportamiento, preprocesa las partes *url* con :func:" +"`urlsplit` y :func:`urlunsplit`, eliminando posibles partes *esquema* y " +"*netloc*." -#: ../Doc/library/urllib.parse.rst:346 +#: ../Doc/library/urllib.parse.rst:344 msgid "Behaviour updated to match the semantics defined in :rfc:`3986`." msgstr "" +"Comportamiento actualizado para que coincida con la semántica definida en :" +"rfc:`3986`." -#: ../Doc/library/urllib.parse.rst:351 +#: ../Doc/library/urllib.parse.rst:349 msgid "" "If *url* contains a fragment identifier, return a modified version of *url* " "with no fragment identifier, and the fragment identifier as a separate " "string. If there is no fragment identifier in *url*, return *url* " "unmodified and an empty string." msgstr "" +"Si *url* contiene un identificador de fragmento, retorne una versión " +"modificada de *url* sin identificador de fragmento y el identificador de " +"fragmento como una cadena independiente. Si no hay ningún identificador de " +"fragmento en *url*, retorne *url* sin modificar y una cadena vacía." -#: ../Doc/library/urllib.parse.rst:362 +#: ../Doc/library/urllib.parse.rst:360 msgid ":attr:`url`" -msgstr "" +msgstr ":attr:`url`" -#: ../Doc/library/urllib.parse.rst:362 +#: ../Doc/library/urllib.parse.rst:360 msgid "URL with no fragment" -msgstr "" +msgstr "URL sin fragmento" -#: ../Doc/library/urllib.parse.rst:367 +#: ../Doc/library/urllib.parse.rst:365 msgid "" "See section :ref:`urlparse-result-object` for more information on the result " "object." msgstr "" +"Consulte la sección :ref:`urlparse-result-object` para obtener más " +"información sobre el objeto de resultado." -#: ../Doc/library/urllib.parse.rst:370 +#: ../Doc/library/urllib.parse.rst:368 msgid "Result is a structured object rather than a simple 2-tuple." msgstr "" +"El resultado es un objeto estructurado en lugar de una simple tupla de 2." -#: ../Doc/library/urllib.parse.rst:375 -msgid "" -"Extract the url from a wrapped URL (that is, a string formatted as ````, ````, ``URL:scheme://host/path`` " -"or ``scheme://host/path``). If *url* is not a wrapped URL, it is returned " -"without changes." -msgstr "" - -#: ../Doc/library/urllib.parse.rst:383 +#: ../Doc/library/urllib.parse.rst:374 msgid "Parsing ASCII Encoded Bytes" -msgstr "" +msgstr "Análisis de bytes codificados ASCII" -#: ../Doc/library/urllib.parse.rst:385 +#: ../Doc/library/urllib.parse.rst:376 msgid "" "The URL parsing functions were originally designed to operate on character " "strings only. In practice, it is useful to be able to manipulate properly " @@ -480,23 +610,36 @@ msgid "" "parsing functions in this module all operate on :class:`bytes` and :class:" "`bytearray` objects in addition to :class:`str` objects." msgstr "" +"Las funciones de análisis de URL se diseñaron originalmente para funcionar " +"solo en cadenas de caracteres. En la práctica, es útil poder manipular las " +"direcciones URL correctamente citadas y codificadas como secuencias de bytes " +"ASCII. En consecuencia, las funciones de análisis de URL de este módulo " +"funcionan en los objetos :class:`bytes` y :class:`bytearray`, además de los " +"objetos :class:`str`." -#: ../Doc/library/urllib.parse.rst:391 +#: ../Doc/library/urllib.parse.rst:382 msgid "" "If :class:`str` data is passed in, the result will also contain only :class:" "`str` data. If :class:`bytes` or :class:`bytearray` data is passed in, the " "result will contain only :class:`bytes` data." msgstr "" +"Si se pasan datos :class:`str`, el resultado también contendrá solo los " +"datos :class:`str`. Si se pasan datos :class:`bytes` o :class:`bytearray`, " +"el resultado contendrá solo los datos :class:`bytes`." -#: ../Doc/library/urllib.parse.rst:395 +#: ../Doc/library/urllib.parse.rst:386 msgid "" "Attempting to mix :class:`str` data with :class:`bytes` or :class:" "`bytearray` in a single function call will result in a :exc:`TypeError` " "being raised, while attempting to pass in non-ASCII byte values will " "trigger :exc:`UnicodeDecodeError`." msgstr "" +"Si intenta mezclar datos :class:`str` con :class:`bytes` o :class:" +"`bytearray` en una sola llamada de función, se producirá un :exc:" +"`TypeError`, mientras que al intentar pasar valores de bytes no ASCII se " +"desencadenará :exc:`UnicodeDecodeError`." -#: ../Doc/library/urllib.parse.rst:400 +#: ../Doc/library/urllib.parse.rst:391 msgid "" "To support easier conversion of result objects between :class:`str` and :" "class:`bytes`, all return values from URL parsing functions provide either " @@ -508,31 +651,51 @@ msgid "" "contains either :class:`bytes` data (for :meth:`encode` methods) or :class:" "`str` data (for :meth:`decode` methods)." msgstr "" +"Para admitir una conversión más sencilla de objetos de resultado entre :" +"class:`str` y :class:`bytes`, todos los valores retornados de las funciones " +"de análisis de URL proporcionan un método :meth:`encode` (cuando el " +"resultado contiene :class:`str` data) o un método :meth:`decode` (cuando el " +"resultado contiene datos :class:`bytes`). Las firmas de estos métodos " +"coinciden con las de los métodos correspondientes :class:`str` y :class:" +"`bytes` (excepto que la codificación predeterminada es ``'ascii``' en lugar " +"de ``'utf-8``'). Cada uno produce un valor de un tipo correspondiente que " +"contiene datos :class:`bytes` (para los métodos :meth:`encode`) o :class:" +"`str` (para :meth:`decode` métodos)." -#: ../Doc/library/urllib.parse.rst:411 +#: ../Doc/library/urllib.parse.rst:402 msgid "" "Applications that need to operate on potentially improperly quoted URLs that " "may contain non-ASCII data will need to do their own decoding from bytes to " "characters before invoking the URL parsing methods." 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." -#: ../Doc/library/urllib.parse.rst:415 +#: ../Doc/library/urllib.parse.rst:406 msgid "" "The behaviour described in this section applies only to the URL parsing " "functions. The URL quoting functions use their own rules when producing or " "consuming byte sequences as detailed in the documentation of the individual " "URL quoting functions." msgstr "" +"El comportamiento descrito en esta sección solo se aplica a las funciones de " +"análisis de URL. Las funciones de citación de URL utilizan sus propias " +"reglas al producir o consumir secuencias de bytes como se detalla en la " +"documentación de las funciones de citación de URL individuales." -#: ../Doc/library/urllib.parse.rst:420 +#: ../Doc/library/urllib.parse.rst:411 msgid "URL parsing functions now accept ASCII encoded byte sequences" msgstr "" +"Las funciones de análisis de URL ahora aceptan secuencias de bytes " +"codificadas en ASCII" -#: ../Doc/library/urllib.parse.rst:427 +#: ../Doc/library/urllib.parse.rst:418 msgid "Structured Parse Results" -msgstr "" +msgstr "Resultados del análisis estructurado" -#: ../Doc/library/urllib.parse.rst:429 +#: ../Doc/library/urllib.parse.rst:420 msgid "" "The result objects from the :func:`urlparse`, :func:`urlsplit` and :func:" "`urldefrag` functions are subclasses of the :class:`tuple` type. These " @@ -540,81 +703,119 @@ msgid "" "functions, the encoding and decoding support described in the previous " "section, as well as an additional method:" msgstr "" +"Los objetos resultantes de las funciones :func:`urlparse`, :func:`urlsplit` " +"y :func:`urldefrag` son subclases del tipo :class:`tuple`. Estas subclases " +"agregan los atributos enumerados en la documentación para esas funciones, el " +"soporte de codificación y decodificación descrito en la sección anterior, " +"así como un método adicional:" -#: ../Doc/library/urllib.parse.rst:437 +#: ../Doc/library/urllib.parse.rst:428 msgid "" "Return the re-combined version of the original URL as a string. This may " "differ from the original URL in that the scheme may be normalized to lower " "case and empty components may be dropped. Specifically, empty parameters, " "queries, and fragment identifiers will be removed." msgstr "" +"Retorna la versión re-combinada de la dirección URL original como una " +"cadena. Esto puede diferir de la dirección URL original en que el esquema se " +"puede normalizar a minúsculas y los componentes vacíos pueden descartarse. " +"En concreto, se quitarán los parámetros vacíos, las consultas y los " +"identificadores de fragmento." -#: ../Doc/library/urllib.parse.rst:442 +#: ../Doc/library/urllib.parse.rst:433 msgid "" "For :func:`urldefrag` results, only empty fragment identifiers will be " "removed. For :func:`urlsplit` and :func:`urlparse` results, all noted " "changes will be made to the URL returned by this method." msgstr "" +"Para los resultados :func:`urldefrag`, solo se eliminarán los " +"identificadores de fragmento vacíos. Para los resultados :func:`urlsplit` y :" +"func:`urlparse`, todos los cambios observados se realizarán en la URL " +"retornada por este método." -#: ../Doc/library/urllib.parse.rst:446 +#: ../Doc/library/urllib.parse.rst:437 msgid "" "The result of this method remains unchanged if passed back through the " "original parsing function:" msgstr "" +"El resultado de este método permanece inalterado si se pasa de nuevo a " +"través de la función de análisis original:" -#: ../Doc/library/urllib.parse.rst:459 +#: ../Doc/library/urllib.parse.rst:450 msgid "" "The following classes provide the implementations of the structured parse " "results when operating on :class:`str` objects:" msgstr "" +"Las clases siguientes proporcionan las implementaciones de los resultados " +"del análisis estructurado cuando se opera en objetos :class:`str`:" -#: ../Doc/library/urllib.parse.rst:464 +#: ../Doc/library/urllib.parse.rst:455 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`DefragResultBytes` instance." msgstr "" +"Clase concreta para los resultados de :func:`urldefrag` que contienen datos :" +"class:`str`. El método :meth:`encode` retorna una instancia :class:" +"`DefragResultBytes`." -#: ../Doc/library/urllib.parse.rst:472 +#: ../Doc/library/urllib.parse.rst:463 msgid "" "Concrete class for :func:`urlparse` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`ParseResultBytes` instance." msgstr "" +"Clase concreta para los resultados de :func:`urlparse` que contiene :class:" +"`str` data. El método :meth:`encode` retorna una instancia :class:" +"`ParseResultBytes`." -#: ../Doc/library/urllib.parse.rst:478 +#: ../Doc/library/urllib.parse.rst:469 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`SplitResultBytes` instance." msgstr "" +"Clase concreta para los resultados de :func:`urlsplit` que contiene :class:" +"`str` data. El método :meth:`encode` retorna una instancia :class:" +"`SplitResultBytes`." -#: ../Doc/library/urllib.parse.rst:483 +#: ../Doc/library/urllib.parse.rst:474 msgid "" "The following classes provide the implementations of the parse results when " "operating on :class:`bytes` or :class:`bytearray` objects:" msgstr "" +"Las clases siguientes proporcionan las implementaciones de los resultados " +"del análisis cuando se opera en objetos :class:`bytes` o :class:`bytearray`:" -#: ../Doc/library/urllib.parse.rst:488 +#: ../Doc/library/urllib.parse.rst:479 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`DefragResult` instance." msgstr "" +"Clase concreta para los resultados de :func:`urldefrag` que contienen datos :" +"class:`bytes`. El método :meth:`decode` retorna una instancia :class:" +"`DefragResult`." -#: ../Doc/library/urllib.parse.rst:496 +#: ../Doc/library/urllib.parse.rst:487 msgid "" "Concrete class for :func:`urlparse` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`ParseResult` instance." msgstr "" +"Clase concreta para los resultados :func:`urlparse` que contienen datos :" +"class:`bytes`. El método :meth:`decode` retorna una instancia :class:" +"`ParseResult`." -#: ../Doc/library/urllib.parse.rst:504 +#: ../Doc/library/urllib.parse.rst:495 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`SplitResult` instance." msgstr "" +"Clase concreta para los resultados de :func:`urlsplit` que contienen datos :" +"class:`bytes`. El método :meth:`decode` retorna una instancia :class:" +"`SplitResult`." -#: ../Doc/library/urllib.parse.rst:512 +#: ../Doc/library/urllib.parse.rst:503 msgid "URL Quoting" -msgstr "" +msgstr "Cita de URL" -#: ../Doc/library/urllib.parse.rst:514 +#: ../Doc/library/urllib.parse.rst:505 msgid "" "The URL quoting functions focus on taking program data and making it safe " "for use as URL components by quoting special characters and appropriately " @@ -622,9 +823,14 @@ msgid "" "recreate the original data from the contents of a URL component if that task " "isn't already covered by the URL parsing functions above." msgstr "" +"Las funciones de citación de URL se centran en tomar datos del programa y " +"hacerlos seguros para su uso como componentes URL citando caracteres " +"especiales y codificando adecuadamente texto no ASCII. También admiten la " +"inversión de estas operaciones para volver a crear los datos originales a " +"partir del contenido de un componente de dirección URL si esa tarea aún no " +"está cubierta por las funciones de análisis de URL anteriores." -#: ../Doc/library/urllib.parse.rst:522 -#, python-format +#: ../Doc/library/urllib.parse.rst:513 msgid "" "Replace special characters in *string* using the ``%xx`` escape. Letters, " "digits, and the characters ``'_.-~'`` are never quoted. By default, this " @@ -632,18 +838,26 @@ 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 " +"caracteres ASCII adicionales que no se deben citar --- su valor " +"predeterminado es ``'/'``." -#: ../Doc/library/urllib.parse.rst:528 ../Doc/library/urllib.parse.rst:598 +#: ../Doc/library/urllib.parse.rst:519 ../Doc/library/urllib.parse.rst:589 msgid "*string* may be either a :class:`str` or a :class:`bytes`." -msgstr "" +msgstr "*string* puede ser :class:`str` o :class:`bytes`." -#: ../Doc/library/urllib.parse.rst:530 +#: ../Doc/library/urllib.parse.rst:521 msgid "" "Moved from :rfc:`2396` to :rfc:`3986` for quoting URL strings. \"~\" is now " -"included in the set of unreserved characters." +"included in the set of reserved 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." -#: ../Doc/library/urllib.parse.rst:534 +#: ../Doc/library/urllib.parse.rst:525 msgid "" "The optional *encoding* and *errors* parameters specify how to deal with non-" "ASCII characters, as accepted by the :meth:`str.encode` method. *encoding* " @@ -652,93 +866,117 @@ msgid "" "*errors* must not be supplied if *string* is a :class:`bytes`, or a :class:" "`TypeError` is raised." msgstr "" +"Los parámetros opcionales *encoding* y *errors* especifican cómo tratar con " +"caracteres no ASCII, tal como lo acepta el método :meth:`str.encode`. " +"*encoding* por defecto es ``'utf-8'``. *errors* tiene como valor " +"predeterminado ``'strict'``, lo que significa que los caracteres no " +"admitidos generan un :class:`UnicodeEncodeError`. *encoding* y *errors* no " +"se deben proporcionar si *string* es :class:`bytes` o se genera :class:" +"`TypeError`." -#: ../Doc/library/urllib.parse.rst:542 +#: ../Doc/library/urllib.parse.rst:533 msgid "" "Note that ``quote(string, safe, encoding, errors)`` is equivalent to " "``quote_from_bytes(string.encode(encoding, errors), safe)``." msgstr "" +"Tenga en cuenta que ``quote(string, safe, encoding, errors)`` es equivalente " +"a ``quote_from_bytes(string.encode(encoding, errors), safe)``." -#: ../Doc/library/urllib.parse.rst:545 +#: ../Doc/library/urllib.parse.rst:536 msgid "Example: ``quote('/El Niño/')`` yields ``'/El%20Ni%C3%B1o/'``." -msgstr "" +msgstr "Ejemplo: ``quote('/El Niño/')`` produce ``'/El%20Ni%C3%B1o/'``." -#: ../Doc/library/urllib.parse.rst:550 +#: ../Doc/library/urllib.parse.rst:541 msgid "" "Like :func:`quote`, but also replace spaces by plus signs, as required for " "quoting HTML form values when building up a query string to go into a URL. " "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 reemplace los espacios por signos más, " +"según sea necesario para citar valores de formulario HTML al crear una " +"cadena de consulta para ir a una dirección URL. Además, los signos de la " +"cadena original se escapan a menos que se incluyan en *safe*. Tampoco tiene " +"*safe* predeterminado para ``'/'``." -#: ../Doc/library/urllib.parse.rst:555 -#, python-format +#: ../Doc/library/urllib.parse.rst:546 msgid "Example: ``quote_plus('/El Niño/')`` yields ``'%2FEl+Ni%C3%B1o%2F'``." -msgstr "" +msgstr "Ejemplo: ``quote_plus('/El Niño/')`` produce ``'%2FEl+Ni%C3%B1o%2F'``." -#: ../Doc/library/urllib.parse.rst:560 +#: ../Doc/library/urllib.parse.rst:551 msgid "" "Like :func:`quote`, but accepts a :class:`bytes` object rather than a :class:" "`str`, and does not perform string-to-bytes encoding." msgstr "" +"Como :func:`quote`, pero acepta un objeto :class:`bytes` en lugar de un :" +"class:`str`, y no realiza la codificación de cadena a bytes." -#: ../Doc/library/urllib.parse.rst:563 -#, python-format +#: ../Doc/library/urllib.parse.rst:554 msgid "Example: ``quote_from_bytes(b'a&\\xef')`` yields ``'a%26%EF'``." -msgstr "" +msgstr "Ejemplo: ``quote_from_bytes(b'a&\\xef')`` produce ``'a%26%EF'``." -#: ../Doc/library/urllib.parse.rst:569 -#, python-format +#: ../Doc/library/urllib.parse.rst:560 msgid "" "Replace ``%xx`` escapes by 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 "" +"Reemplace los escapes ``%xx`` por su equivalente de un solo carácter. 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`." -#: ../Doc/library/urllib.parse.rst:574 ../Doc/library/urllib.parse.rst:588 +#: ../Doc/library/urllib.parse.rst:565 ../Doc/library/urllib.parse.rst:579 msgid "*string* must be a :class:`str`." -msgstr "" +msgstr "*string* debe ser :class:`str`." -#: ../Doc/library/urllib.parse.rst:576 +#: ../Doc/library/urllib.parse.rst:567 msgid "" "*encoding* defaults to ``'utf-8'``. *errors* defaults to ``'replace'``, " "meaning invalid sequences are replaced by a placeholder character." msgstr "" +"*encoding* por defecto es ``'utf-8``'. *errors* por defecto es " +"``'replace``', lo que significa que las secuencias no válidas se reemplazan " +"por un carácter de marcador de posición." -#: ../Doc/library/urllib.parse.rst:580 +#: ../Doc/library/urllib.parse.rst:571 msgid "Example: ``unquote('/El%20Ni%C3%B1o/')`` yields ``'/El Niño/'``." -msgstr "" +msgstr "Ejemplo: ``unquote('/El%20Ni%C3%B1o/')`` produce ``'/El Niño/'``." -#: ../Doc/library/urllib.parse.rst:585 +#: ../Doc/library/urllib.parse.rst:576 msgid "" "Like :func:`unquote`, but also replace plus signs by 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." -#: ../Doc/library/urllib.parse.rst:590 +#: ../Doc/library/urllib.parse.rst:581 msgid "Example: ``unquote_plus('/El+Ni%C3%B1o/')`` yields ``'/El Niño/'``." -msgstr "" +msgstr "Ejemplo: ``unquote_plus('/El+Ni%C3%B1o/')`` produce ``'/El Niño/'``." -#: ../Doc/library/urllib.parse.rst:595 -#, python-format +#: ../Doc/library/urllib.parse.rst:586 msgid "" "Replace ``%xx`` escapes by 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`." -#: ../Doc/library/urllib.parse.rst:600 +#: ../Doc/library/urllib.parse.rst:591 msgid "" "If it is a :class:`str`, unescaped non-ASCII characters in *string* are " "encoded into UTF-8 bytes." msgstr "" +"Si es un :class:`str`, los caracteres no ASCII sin escapar en *string* se " +"codifican en bytes UTF-8." -#: ../Doc/library/urllib.parse.rst:603 -#, python-format +#: ../Doc/library/urllib.parse.rst:594 msgid "Example: ``unquote_to_bytes('a%26%EF')`` yields ``b'a&\\xef'``." -msgstr "" +msgstr "Ejemplo: ``unquote_to_bytes('a%26%EF')`` produce ``b'a&\\xef'``." -#: ../Doc/library/urllib.parse.rst:609 +#: ../Doc/library/urllib.parse.rst:600 msgid "" "Convert a mapping object or a sequence of two-element tuples, which may " "contain :class:`str` or :class:`bytes` objects, to a percent-encoded ASCII " @@ -746,9 +984,14 @@ msgid "" "operation with the :func:`~urllib.request.urlopen` function, then it should " "be encoded to bytes, otherwise it would result in a :exc:`TypeError`." msgstr "" +"Convierta un objeto de asignación o una secuencia de tuplas de dos " +"elementos, que pueden contener objetos :class:`str` o :class:`bytes`, en una " +"cadena de texto ASCII codificada porcentualmente. Si la cadena resultante " +"se va a utilizar como una operación *data* para post con la función :func:" +"`URLlib.request.urlopen`, entonces debe codificarse en bytes, de lo " +"contrario resultaría en un :exc:`TypeError`." -#: ../Doc/library/urllib.parse.rst:616 -#, python-format +#: ../Doc/library/urllib.parse.rst:607 msgid "" "The resulting string is a series of ``key=value`` pairs separated by ``'&'`` " "characters, where both *key* and *value* are quoted using the *quote_via* " @@ -760,8 +1003,18 @@ msgid "" "and not encode '/' characters. For maximum control of what is quoted, use " "``quote`` and specify a value for *safe*." msgstr "" +"La cadena resultante es una serie de pares ``key=value`` separados por " +"caracteres ``'&'``, donde tanto *key* como *value* se citan mediante la " +"función *quote_via*. De forma predeterminada, :func:`quote_plus` se utiliza " +"para citar los valores, lo que significa que los espacios se citan como un " +"carácter ``'+'`` y '/' los caracteres se codifican como ``%2F``, que sigue " +"el estándar para las solicitudes GET (``application/x-www-form-" +"urlencoded``). Una función alternativa que se puede pasar como *quote_via* " +"es :func:`quote`, que codificará espacios como ``%20`` y no codificará " +"caracteres '/'. Para obtener el máximo control de lo que se cita, utilice " +"``quote`` y especifique un valor para *safe*." -#: ../Doc/library/urllib.parse.rst:626 +#: ../Doc/library/urllib.parse.rst:617 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 " @@ -771,87 +1024,118 @@ msgid "" "for the key. The order of parameters in the encoded string will match the " "order of parameter tuples in the sequence." 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 " +"secuencia." -#: ../Doc/library/urllib.parse.rst:634 +#: ../Doc/library/urllib.parse.rst:625 msgid "" "The *safe*, *encoding*, and *errors* parameters are passed down to " "*quote_via* (the *encoding* and *errors* parameters are only passed when a " "query element is a :class:`str`)." msgstr "" +"Los parámetros *safe*, *encoding* y *errors* se pasan a *quote_via* (los " +"parámetros *encoding* y *errors* solo se pasan cuando un elemento de " +"consulta es :class:`str`)." -#: ../Doc/library/urllib.parse.rst:638 +#: ../Doc/library/urllib.parse.rst:629 msgid "" "To reverse this encoding process, :func:`parse_qs` and :func:`parse_qsl` are " "provided in this module to parse query strings into Python data structures." msgstr "" +"Para revertir este proceso de codificación, en este módulo se proporcionan :" +"func:`parse_qs` y :func:`parse_qsl` para analizar cadenas de consulta en " +"estructuras de datos de Python." -#: ../Doc/library/urllib.parse.rst:641 +#: ../Doc/library/urllib.parse.rst:632 msgid "" "Refer to :ref:`urllib examples ` to find out how urlencode " "method can be used for generating query string for a URL or data for POST." 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." -#: ../Doc/library/urllib.parse.rst:644 +#: ../Doc/library/urllib.parse.rst:635 msgid "Query parameter supports bytes and string objects." -msgstr "" +msgstr "El parámetro Query admite bytes y objetos de cadena." -#: ../Doc/library/urllib.parse.rst:647 +#: ../Doc/library/urllib.parse.rst:638 msgid "*quote_via* parameter." -msgstr "" +msgstr "*quote_via*." -#: ../Doc/library/urllib.parse.rst:657 +#: ../Doc/library/urllib.parse.rst:648 msgid ":rfc:`3986` - Uniform Resource Identifiers" -msgstr "" +msgstr ":rfc:`3986` - Identificadores uniformes de recursos" -#: ../Doc/library/urllib.parse.rst:654 +#: ../Doc/library/urllib.parse.rst:645 msgid "" "This is the current standard (STD66). Any changes to urllib.parse module " "should conform to this. Certain deviations could be observed, which are " "mostly for backward compatibility purposes and for certain de-facto parsing " "requirements as commonly observed in major browsers." msgstr "" +"Este es el estándar actual (STD66). Cualquier cambio en el módulo urllib." +"parse debe ajustarse a esto. Se podrían observar ciertas desviaciones, que " +"son principalmente para fines de compatibilidad con versiones anteriores y " +"para ciertos requisitos de análisis de facto como se observa comúnmente en " +"los principales navegadores." -#: ../Doc/library/urllib.parse.rst:660 +#: ../Doc/library/urllib.parse.rst:651 msgid ":rfc:`2732` - Format for Literal IPv6 Addresses in URL's." -msgstr "" +msgstr ":rfc:`2732` - Formato de direcciones IPv6 literales en URL." -#: ../Doc/library/urllib.parse.rst:660 +#: ../Doc/library/urllib.parse.rst:651 msgid "This specifies the parsing requirements of IPv6 URLs." msgstr "" +"Esto especifica los requisitos de análisis de las direcciones URL IPv6." -#: ../Doc/library/urllib.parse.rst:664 +#: ../Doc/library/urllib.parse.rst:655 msgid ":rfc:`2396` - Uniform Resource Identifiers (URI): Generic Syntax" msgstr "" +":rfc:`2396` - Identificadores uniformes de recursos (URI): Sintaxis genérica" -#: ../Doc/library/urllib.parse.rst:663 +#: ../Doc/library/urllib.parse.rst:654 msgid "" "Document describing the generic syntactic requirements for both Uniform " "Resource Names (URNs) and Uniform Resource Locators (URLs)." msgstr "" +"Documento que describe los requisitos sintácticos genéricos para los nombres " +"de recursos uniformes (URL) y los localizadores uniformes de recursos (URL)." -#: ../Doc/library/urllib.parse.rst:667 +#: ../Doc/library/urllib.parse.rst:658 msgid ":rfc:`2368` - The mailto URL scheme." -msgstr "" +msgstr ":rfc:`2368` - El esquema mailto URL." -#: ../Doc/library/urllib.parse.rst:667 +#: ../Doc/library/urllib.parse.rst:658 msgid "Parsing requirements for mailto URL schemes." -msgstr "" +msgstr "Análisis de requisitos para esquemas de URL de correo a correo." -#: ../Doc/library/urllib.parse.rst:672 +#: ../Doc/library/urllib.parse.rst:663 msgid ":rfc:`1808` - Relative Uniform Resource Locators" -msgstr "" +msgstr ":rfc:`1808` - Localizadores uniformes de recursos relativos" -#: ../Doc/library/urllib.parse.rst:670 +#: ../Doc/library/urllib.parse.rst:661 msgid "" "This Request For Comments includes the rules for joining an absolute and a " "relative URL, including a fair number of \"Abnormal Examples\" which govern " "the treatment of border cases." msgstr "" +"Esta solicitud de comentarios incluye las reglas para unirse a una URL " +"absoluta y relativa, incluyendo un buen número de \"Ejemplos anormales\" que " +"rigen el tratamiento de los casos fronterizos." -#: ../Doc/library/urllib.parse.rst:674 +#: ../Doc/library/urllib.parse.rst:665 msgid ":rfc:`1738` - Uniform Resource Locators (URL)" -msgstr "" +msgstr ":rfc:`1738` - Localizadores uniformes de recursos (URL)" -#: ../Doc/library/urllib.parse.rst:675 +#: ../Doc/library/urllib.parse.rst:666 msgid "This specifies the formal syntax and semantics of absolute URLs." msgstr "" +"Esto especifica la sintaxis formal y la semántica de las direcciones URL " +"absolutas." diff --git a/library/urllib.request.po b/library/urllib.request.po index d729c42c7d..7cbef06750 100644 --- a/library/urllib.request.po +++ b/library/urllib.request.po @@ -12,21 +12,23 @@ 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-01-02 15:40+0100\n" +"Last-Translator: Álvaro Mondéjar Rubio \n" "Language-Team: python-doc-es\n" +"Language: 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" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/urllib.request.rst:2 msgid ":mod:`urllib.request` --- Extensible library for opening URLs" -msgstr "" +msgstr ":mod:`urllib.request` --- Biblioteca extensible para abrir URLs" #: ../Doc/library/urllib.request.rst:11 msgid "**Source code:** :source:`Lib/urllib/request.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/urllib/request.py`" #: ../Doc/library/urllib.request.rst:15 msgid "" @@ -34,22 +36,29 @@ msgid "" "opening URLs (mostly HTTP) in a complex world --- basic and digest " "authentication, redirections, cookies and more." msgstr "" +"El módulo :mod:`urllib.request` define funciones y clases que ayudan en la " +"apertura de URLs (la mayoría HTTP) en un mundo complejo --- autenticación " +"básica y digest, redirecciones, cookies y más." #: ../Doc/library/urllib.request.rst:21 msgid "" "The `Requests package `_ is " "recommended for a higher-level HTTP client interface." msgstr "" +"Se recomienda el `paquete Requests `_ para una interfaz de cliente HTTP de mayor nivel." #: ../Doc/library/urllib.request.rst:25 msgid "The :mod:`urllib.request` module defines the following functions:" -msgstr "" +msgstr "El módulo :mod:`urllib.request` define las siguientes funciones:" #: ../Doc/library/urllib.request.rst:30 msgid "" "Open the URL *url*, which can be either a string or a :class:`Request` " "object." msgstr "" +"Abre la URL *url*, la cual puede ser una cadena de caracteres o un objeto :" +"class:`Request`." #: ../Doc/library/urllib.request.rst:33 msgid "" @@ -57,12 +66,17 @@ msgid "" "server, or ``None`` if no such data is needed. See :class:`Request` for " "details." msgstr "" +"*data* debe ser un objeto que especifique datos adicionales a ser enviados " +"al servidor o ``None`` si no se necesitan tales datos. Vea :class:`Request` " +"para más detalles." #: ../Doc/library/urllib.request.rst:37 msgid "" "urllib.request module uses HTTP/1.1 and includes ``Connection:close`` header " "in its HTTP requests." msgstr "" +"El módulo urllib.request usa HTTP/1.1 e incluye el encabezado ``Connection:" +"close`` en sus peticiones HTTP." #: ../Doc/library/urllib.request.rst:40 msgid "" @@ -71,6 +85,10 @@ msgid "" "timeout setting will be used). This actually only works for HTTP, HTTPS and " "FTP connections." msgstr "" +"El parámetro opcional *timeout* especifica un tiempo de expiración en " +"segundos para operaciones bloqueantes como el intento de conexión (si no se " +"especifica, será usado el tiempo de expiración global predeterminado). Esto " +"actualmente sólo funciona para conexiones HTTP, HTTPS y FTP." #: ../Doc/library/urllib.request.rst:45 msgid "" @@ -78,6 +96,9 @@ msgid "" "describing the various SSL options. See :class:`~http.client." "HTTPSConnection` for more details." msgstr "" +"Si se especifica *context*, debe ser una instancia :class:`ssl.SSLContext` " +"describiendo las diferentes opciones SSL. Vea :class:`~http.client." +"HTTPSConnection` para más detalles." #: ../Doc/library/urllib.request.rst:49 msgid "" @@ -87,22 +108,32 @@ msgid "" "directory of hashed certificate files. More information can be found in :" "meth:`ssl.SSLContext.load_verify_locations`." msgstr "" +"Los parámetros opcionales *cafile* y *capath* especifican un conjunto de " +"certificados CA de confianza para peticiones HTTPS. *cafile* debe apuntar a " +"un único archivo que contenga un paquete de certificados CA, mientras " +"*capath* debe apuntar a un directorio de archivos de certificado hash. Se " +"puede encontrar más información en :meth:`ssl.SSLContext." +"load_verify_locations`." #: ../Doc/library/urllib.request.rst:55 msgid "The *cadefault* parameter is ignored." -msgstr "" +msgstr "Se ignora el parámetro *cadefault*." #: ../Doc/library/urllib.request.rst:57 msgid "" "This function always returns an object which can work as a :term:`context " "manager` and has methods such as" msgstr "" +"Esta función siempre retorna un objeto que puede funcionar como un :term:" +"`context manager` y tiene métodos como" #: ../Doc/library/urllib.request.rst:60 msgid "" ":meth:`~urllib.response.addinfourl.geturl` --- return the 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" #: ../Doc/library/urllib.request.rst:63 msgid "" @@ -111,12 +142,18 @@ msgid "" "message_from_string` instance (see `Quick Reference to HTTP Headers `_)" msgstr "" +":meth:`~urllib.response.addinfourl.info` --- retorna la meta información de " +"la página, como los encabezados, en la forma de una instancia :func:`email." +"message_from_string` (vea `Quick Reference to HTTP Headers `_)" #: ../Doc/library/urllib.request.rst:67 msgid "" ":meth:`~urllib.response.addinfourl.getcode` -- return the HTTP status code " "of the response." msgstr "" +":meth:`~urllib.response.addinfourl.getcode` -- retorna el código de estado " +"HTTP de la respuesta." #: ../Doc/library/urllib.request.rst:69 msgid "" @@ -127,6 +164,13 @@ msgid "" "server --- instead of the response headers as it is specified in the " "documentation for :class:`~http.client.HTTPResponse`." msgstr "" +"Para URLs HTTP y HTTPS, esta función retorna un objeto :class:`http.client." +"HTTPResponse` ligeramente modificado. Adicionalmente a los tres nuevos " +"métodos anteriores, el atributo msg contiene la misma información que el " +"atributo :attr:`~http.client.HTTPResponse.reason` --- la frase de motivo " +"devuelta por el servidor --- en lugar de los encabezados de la respuesta " +"como se especifica en la documentación para :class:`~http.client." +"HTTPResponse`." #: ../Doc/library/urllib.request.rst:77 msgid "" @@ -134,10 +178,14 @@ msgid "" "class:`URLopener` and :class:`FancyURLopener` classes, this function returns " "a :class:`urllib.response.addinfourl` object." msgstr "" +"Para URLs FTP, de archivo y de datos y para peticiones manejadas " +"explícitamente por las clases heredadas :class:`URLopener` y :class:" +"`FancyURLopener`, esta función retorna un objeto :class:`urllib.response." +"addinfourl`." #: ../Doc/library/urllib.request.rst:81 msgid "Raises :exc:`~urllib.error.URLError` on protocol errors." -msgstr "" +msgstr "Genera :exc:`~urllib.error.URLError` en errores de protocolo." #: ../Doc/library/urllib.request.rst:83 msgid "" @@ -145,6 +193,10 @@ msgid "" "the default installed global :class:`OpenerDirector` uses :class:" "`UnknownHandler` to ensure this never happens)." msgstr "" +"Tenga en cuenta que ``None`` puede ser retornado si ningún manejador " +"gestiona la petición (aunque el :class:`OpenerDirector` global instalado de " +"manera predeterminada usa :class:`UnknownHandler` para asegurar que esto " +"nunca suceda)." #: ../Doc/library/urllib.request.rst:87 msgid "" @@ -153,6 +205,10 @@ msgid "" "`ProxyHandler` is default installed and makes sure the requests are handled " "through the proxy." msgstr "" +"Adicionalmente, si se detectan configuraciones de proxy (por ejemplo, cuando " +"se establece una variable de entorno ``*_proxy`` como :envvar:" +"`http_proxy`), :class:`ProxyHandler` está instalada de forma predeterminada " +"y se asegura que las peticiones son gestionadas a través del proxy." #: ../Doc/library/urllib.request.rst:92 msgid "" @@ -162,11 +218,18 @@ msgid "" "parameter to ``urllib.urlopen``, can be obtained by using :class:" "`ProxyHandler` objects." msgstr "" +"La función heredada de Python 2.6 y anteriores ``urllib.urlopen`` ha sido " +"descontinuada, :func:`urllib.request.urlopen` corresponde a la antigua " +"``urllib2.urlopen``. La gestión de proxy, la cual se hacía pasando un " +"parámetro diccionario a ``urllib.urlopen``, puede ser obtenida usando " +"objetos :class:`ProxyHandler`." msgid "" "Raises an :ref:`auditing event ` ``urllib.Request`` with arguments " "``fullurl``, ``data``, ``headers``, ``method``." msgstr "" +"Genera un :ref:`evento de auditoría ` ``urllib.Request`` con los " +"argumentos ``fullurl``, ``data``, ``headers``, ``method``." #: ../Doc/library/urllib.request.rst:100 msgid "" @@ -174,28 +237,33 @@ msgid "" "Request`` with arguments ``fullurl``, ``data``, ``headers``, ``method`` " "taken from the request object." msgstr "" +"El abridor predeterminado genera un :ref:`evento de auditoría ` " +"``urllib.Request`` con los argumentos ``fullurl``, ``data``, ``headers``, " +"``method`` tomados del objeto de la petición." #: ../Doc/library/urllib.request.rst:104 msgid "*cafile* and *capath* were added." -msgstr "" +msgstr "*cafile* y *capath* fueron añadidos." #: ../Doc/library/urllib.request.rst:107 msgid "" "HTTPS virtual hosts are now supported if possible (that is, if :data:`ssl." "HAS_SNI` is true)." msgstr "" +"Los hosts virtuales HTTPS ahora están soportados si es posible (esto es, si :" +"data:`ssl.HAS_SNI` es verdadero)." #: ../Doc/library/urllib.request.rst:111 msgid "*data* can be an iterable object." -msgstr "" +msgstr "*data* puede ser un objeto iterable." #: ../Doc/library/urllib.request.rst:114 msgid "*cadefault* was added." -msgstr "" +msgstr "*cadefault* fue añadido." #: ../Doc/library/urllib.request.rst:117 msgid "*context* was added." -msgstr "" +msgstr "*context* fue añadido." #: ../Doc/library/urllib.request.rst:122 msgid "" @@ -203,6 +271,10 @@ msgid "" "Please use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." "create_default_context` select the system's trusted CA certificates for you." msgstr "" +"*cafile*, *capath* y *cadefault* están obsoletos en favor de *context*. Por " +"favor, use :meth:`ssl.SSLContext.load_cert_chain` en su lugar o deja a :func:" +"`ssl.create_default_context` seleccionar el certificado de confianza CA del " +"sistema por ti." #: ../Doc/library/urllib.request.rst:130 msgid "" @@ -212,6 +284,12 @@ msgid "" "`~urllib.request.urlopen`. The code does not check for a real :class:" "`OpenerDirector`, and any class with the appropriate interface will work." msgstr "" +"Instala una instancia :class:`OpenerDirector` como el abridor global " +"predeterminado. Instalar un abridor sólo es necesario si quieres que urlopen " +"use ese abridor; si no, simplemente invoca :meth:`OpenerDirector.open` en " +"lugar de :func:`~urllib.request.urlopen`. El código no comprueba por un :" +"class:`OpenerDirector` real y cualquier clase con la interfaz apropiada " +"funcionará." #: ../Doc/library/urllib.request.rst:140 msgid "" @@ -226,18 +304,32 @@ msgid "" "`HTTPRedirectHandler`, :class:`FTPHandler`, :class:`FileHandler`, :class:" "`HTTPErrorProcessor`." msgstr "" +"Retorna una instancia :class:`OpenerDirector`, la cual encadena los " +"manejadores en el orden dado. *handler*\\s pueden ser tanto instancias de :" +"class:`BaseHandler` o subclases de :class:`BaseHandler` (en cuyo caso debe " +"ser posible invocar el constructor sin ningún parámetro). Instancias de las " +"siguientes clases estarán delante del *handler*\\s, a no ser que el *handler*" +"\\s las contenga, instancias o subclases de ellas: :class:`ProxyHandler` (si " +"son detectadas configuraciones de proxy), :class:`UnknownHandler`, :class:" +"`HTTPHandler`, :class:`HTTPDefaultErrorHandler`, :class:" +"`HTTPRedirectHandler`, :class:`FTPHandler`, :class:`FileHandler`, :class:" +"`HTTPErrorProcessor`." #: ../Doc/library/urllib.request.rst:150 msgid "" "If the Python installation has SSL support (i.e., if the :mod:`ssl` module " "can be imported), :class:`HTTPSHandler` will also be added." msgstr "" +"Si la instalación de Python tiene soporte SSL (ej. si se puede importar el " +"módulo :mod:`ssl`), también será añadida :class:`HTTPSHandler`." #: ../Doc/library/urllib.request.rst:153 msgid "" "A :class:`BaseHandler` subclass may also change its :attr:`handler_order` " "attribute to modify its position in the handlers list." msgstr "" +"Una subclase de :class:`BaseHandler` puede cambiar también su atributo :attr:" +"`handler_order` para modificar su posición en la lista de manejadores." #: ../Doc/library/urllib.request.rst:159 msgid "" @@ -246,6 +338,10 @@ msgid "" "The return value will already be quoted using the :func:`~urllib.parse." "quote` function." msgstr "" +"Convierte el nombre de ruta *path* desde la sintaxis local para una ruta a " +"la forma usada en el componente ruta de una URL. Esto no produce una URL " +"completa. El valor retornado ya estará entrecomillado usando la función :" +"func:`~urllib.parse.quote`." #: ../Doc/library/urllib.request.rst:166 msgid "" @@ -253,6 +349,9 @@ msgid "" "syntax for a path. This does not accept a complete URL. This function " "uses :func:`~urllib.parse.unquote` to decode *path*." msgstr "" +"Convierte el componente ruta *path* desde una URL codificada con porcentajes " +"a la sintaxis local para una ruta. No acepta una URL completa. Esta función " +"usa :func:`~urllib.parse.unquote` para decodificar *path*." #: ../Doc/library/urllib.request.rst:172 msgid "" @@ -264,6 +363,14 @@ msgid "" "lowercase and uppercase environment variables exist (and disagree), " "lowercase is preferred." msgstr "" +"Esta función auxiliar devuelve un diccionario de esquema para las " +"asignaciones de URL del servidor proxy. Escanea el entorno en busca de " +"variables denominadas ``_proxy``, tomando en cuenta diferencia entre " +"mayúsculas y minúsculas, para todos los sistemas operativos primero, y " +"cuando no pueden encontrarla, buscan información de proxy desde la " +"Configuración del Sistema Mac OSX para Mac OS X y desde Registros del " +"Sistema para Windows. Si existen variables de entorno tanto en mayúsculas " +"como en minúsculas (y no concuerdan), las minúsculas son preferidas." #: ../Doc/library/urllib.request.rst:182 msgid "" @@ -275,18 +382,25 @@ msgid "" "``ProxyHandler`` explicitly, or make sure the variable name is in lowercase " "(or at least the ``_proxy`` suffix)." msgstr "" +"Si la variable del entorno ``REQUEST_METHOD`` está definida, lo cual " +"usualmente indica que tu script está ejecutándose en un entorno CGI, la " +"variable de entorno ``HTTP_PROXY`` (mayúsculas ``_PROXY``) será ignorada. " +"Esto es porque esa variable puede ser inyectada por un cliente usando el " +"encabezado HTTP \"Proxy:\". Si necesitas usar un proxy HTTP en un entorno " +"CGI, usa ``ProxyHandler`` explícitamente o asegúrate de que el nombre de la " +"variable está en minúsculas (o al menos el sufijo ``_proxy``)." #: ../Doc/library/urllib.request.rst:191 msgid "The following classes are provided:" -msgstr "" +msgstr "Se proveen las siguientes clases:" #: ../Doc/library/urllib.request.rst:195 msgid "This class is an abstraction of a URL request." -msgstr "" +msgstr "Esta clase es un abstracción de una petición URL." #: ../Doc/library/urllib.request.rst:197 msgid "*url* should be a string containing a valid URL." -msgstr "" +msgstr "*url* debe ser una cadena de caracteres conteniendo una URL válida." #: ../Doc/library/urllib.request.rst:199 msgid "" @@ -300,6 +414,16 @@ msgid "" "specified in :rfc:`7230`, Section 3.3.1 will be used to send files and other " "iterables." 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." #: ../Doc/library/urllib.request.rst:209 msgid "" @@ -309,6 +433,11 @@ msgid "" "returns an ASCII string in this format. It should be encoded to bytes before " "being used as the *data* parameter." msgstr "" +"Para un método de una petición HTTP POST, *data* debe ser un buffer en el " +"formato estándar :mimetype:`application/x-www-form-urlencoded`. La función :" +"func:`urllib.parse.urlencode` toma un mapeo o una secuencia de tuplas de dos " +"valores y retorna una cadena de caracteres ASCII en este formato. Debe ser " +"codificada a bytes antes de ser usada como el parámetro *data*." #: ../Doc/library/urllib.request.rst:215 msgid "" @@ -321,6 +450,15 @@ msgid "" "Firefox/2.0.0.11\"``, while :mod:`urllib`'s default user agent string is ``" "\"Python-urllib/2.6\"`` (on Python 2.6)." msgstr "" +"*headers* debe ser un diccionario, y será tratado como si :meth:`add_header` " +"fuera invocado con cada clave y valor como argumentos. Esto es usado " +"frecuentemente para \"parodiar\" el valor de encabezado ``User-Agent``, el " +"cual es usado por un navegador para identificarse a sí mismo -- algunos " +"servidores HTTP sólo permiten peticiones que vienen de navegadores comunes a " +"diferencia de los scripts. Por ejemplo, Mozilla Firefox puede identificarse " +"a sí mismo como ``\"Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 " +"Firefox/2.0.0.11\"``, mientras el agente de usuario predeterminado de :mod:" +"`urllib` es ``\"Python-urllib/2.6\"`` (en Python 2.6)." #: ../Doc/library/urllib.request.rst:225 msgid "" @@ -329,12 +467,18 @@ msgid "" "None, ``Content-Type: application/x-www-form-urlencoded`` will be added as a " "default." msgstr "" +"Un encabezado apropiado ``Content-Type`` debe ser incluido si el argumento " +"*data* está presente. Si este encabezado no ha sido provisto y *data* no es " +"None, será añadido ``Content-Type: application/x-www-form-urlencoded`` de " +"forma predeterminada." #: ../Doc/library/urllib.request.rst:230 msgid "" "The next two arguments are only of interest for correct handling of third-" "party HTTP cookies:" msgstr "" +"Los siguientes dos argumentos sólo tienen interés para la gestión correcta " +"de cookies HTTP de terceros:" #: ../Doc/library/urllib.request.rst:233 msgid "" @@ -345,6 +489,12 @@ msgid "" "an image in an HTML document, this should be the request-host of the request " "for the page containing the image." msgstr "" +"*origin_req_host* debe ser el host de la petición de la transacción origen, " +"como define :rfc:`2965`. Por defecto es ``http.cookiejar." +"request_host(self)``. Este es el nombre de host o la dirección IP de la " +"petición original que fue iniciada por el usuario. Por ejemplo, si la " +"petición es para una imagen en un documento HTML, debe ser el host de la " +"petición para la página que contiene la imagen." #: ../Doc/library/urllib.request.rst:241 msgid "" @@ -354,6 +504,11 @@ msgid "" "if the request is for an image in an HTML document, and the user had no " "option to approve the automatic fetching of the image, this should be true." msgstr "" +"*unverifiable* debe indicar si la petición no es verificable, como define :" +"rfc:`2965`. Por defecto es ``False``. Una petición no verificable es una " +"cuya URL el usuario no tuvo opción de aprobar. Por ejemplo, si la petición " +"es por una imagen en un documento HTML y el usuario no tuvo opción de " +"aprobar la obtención automática de la imagen, este debe ser verdadero." #: ../Doc/library/urllib.request.rst:248 msgid "" @@ -364,6 +519,12 @@ msgid "" "indicate a different default method by setting the :attr:`~Request.method` " "attribute in the class itself." msgstr "" +"*method* debe ser una cadena que indica el método de la petición HTTP que " +"será usado (ej. ``'HEAD'``). Si se provee, su valor es almacenado en el " +"atributo :attr:`~Request.method` y usado por :meth:`get_method()`. Por " +"defecto es ``'GET'`` si *data* es ``None``, o ``'POST'`` si no. Las " +"subclases pueden indicar un método predeterminado diferente estableciendo el " +"atributo :attr:`~Request.method` es la clase misma." #: ../Doc/library/urllib.request.rst:256 msgid "" @@ -374,14 +535,22 @@ msgid "" "the headers. There is no support for a 100-continue expectation in the " "library." msgstr "" +"La petición no funcionará como se espera si el objeto de datos es incapaz de " +"entregar su contenido más de una vez (ej. un archivo o un iterable que puede " +"producir el contenido sólo una vez) y la petición se reintentará para " +"redirecciones HTTP o autenticación. El *data* es enviado al servidor HTTP " +"directamente después de los encabezados. No hay soporte para una expectativa " +"de funcionamiento 100% continuo en la biblioteca." #: ../Doc/library/urllib.request.rst:263 msgid ":attr:`Request.method` argument is added to the Request class." -msgstr "" +msgstr "El argumento :attr:`Request.method` es añadido a la clase Request." #: ../Doc/library/urllib.request.rst:266 msgid "Default :attr:`Request.method` may be indicated at the class level." msgstr "" +"El atributo predeterminado :attr:`Request.method` puede ser indicado a nivel " +"de clase." #: ../Doc/library/urllib.request.rst:269 msgid "" @@ -389,6 +558,9 @@ msgid "" "*data* is neither ``None`` nor a bytes object. Fall back to use chunked " "transfer encoding instead." msgstr "" +"No se genera un error si el ``Content-Length`` no ha sido provisto y *data* " +"no es ``None`` ni un objeto de bytes. En su lugar recurre a la codificación " +"de transferencia fragmentada." #: ../Doc/library/urllib.request.rst:276 msgid "" @@ -396,26 +568,34 @@ msgid "" "chained together. It manages the chaining of handlers, and recovery from " "errors." msgstr "" +"La clase :class:`OpenerDirector` abre URLs mediante la encadenación conjunta " +"de :class:`BaseHandler`. Este maneja el encadenamiento de manejadores y la " +"recuperación de errores." #: ../Doc/library/urllib.request.rst:282 msgid "" "This is the base class for all registered handlers --- and handles only the " "simple mechanics of registration." msgstr "" +"Esta es la clase base para todos los manejadores registrados --- y manejan " +"sólo las mecánicas simples del registro." #: ../Doc/library/urllib.request.rst:288 msgid "" "A class which defines a default handler for HTTP error responses; all " "responses are turned into :exc:`~urllib.error.HTTPError` exceptions." msgstr "" +"Una clase la cual define un manejador predeterminado para los errores de " +"respuesta HTTP; todas las respuestas son convertidas en excepciones :exc:" +"`~urllib.error.HTTPError`." #: ../Doc/library/urllib.request.rst:294 msgid "A class to handle redirections." -msgstr "" +msgstr "Una clase para manejar redirecciones." #: ../Doc/library/urllib.request.rst:299 msgid "A class to handle HTTP Cookies." -msgstr "" +msgstr "Una clase para manejar Cookies HTTP." #: ../Doc/library/urllib.request.rst:304 msgid "" @@ -427,10 +607,19 @@ msgid "" "a Mac OS X environment proxy information is retrieved from the OS X System " "Configuration Framework." msgstr "" +"Causa que las peticiones vayan a través de un proxy. Si se provee *proxies*, " +"debe ser un diccionario mapeando nombres de protocolos a URLs de proxies. " +"Por defecto lee la lista de proxies de las variables de entorno " +"``_proxy``. Si no se establecen variables de entorno de proxy, " +"entonces se obtienen las configuraciones de proxy en un entorno Windows " +"desde la sección del registro de Configuraciones de Internet y en un entorno " +"Mac OS X se obtiene la información de proxy desde el Framework de " +"Configuración del Sistema de OS X." #: ../Doc/library/urllib.request.rst:312 msgid "To disable autodetected proxy pass an empty dictionary." msgstr "" +"Para deshabilitar la detección automática de proxy pasa un diccionario vacío." #: ../Doc/library/urllib.request.rst:314 msgid "" @@ -439,16 +628,25 @@ msgid "" "list of hostname suffixes, optionally with ``:port`` appended, for example " "``cern.ch,ncsa.uiuc.edu,some.host:8080``." msgstr "" +"La variable de entorno :envvar:`no_proxy` puede ser usada para especificar " +"hosts los cuales no deben ser alcanzados mediante proxy; si se establece, " +"debe ser una lista separada por comas de sufijos de nombres de host, con ``:" +"port`` añadidos opcionalmente, por ejemplo ``cern.ch,ncsa.uiuc.edu,some." +"host:8080``." #: ../Doc/library/urllib.request.rst:321 msgid "" "``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " "the documentation on :func:`~urllib.request.getproxies`." msgstr "" +"``HTTP_PROXY`` será ignorado si se establece una variable " +"``REQUEST_METHOD``; vea la documentación de :func:`~urllib.request." +"getproxies`." #: ../Doc/library/urllib.request.rst:327 msgid "Keep a database of ``(realm, uri) -> (user, password)`` mappings." msgstr "" +"Mantiene una base de datos de mapeos ``(realm, uri) -> (user, password)``." #: ../Doc/library/urllib.request.rst:332 msgid "" @@ -456,6 +654,9 @@ msgid "" "of ``None`` is considered a catch-all realm, which is searched if no other " "realm fits." msgstr "" +"Mantiene una base de datos de mapeos ``(realm, uri) -> (user, password)``. " +"Un reino de ``None`` se considera un reino caza todo, el cual es buscado si " +"ningún otro reino encaja." #: ../Doc/library/urllib.request.rst:339 msgid "" @@ -464,6 +665,11 @@ msgid "" "BasicAuth handler to determine when to send authentication credentials " "immediately instead of waiting for a ``401`` response first." msgstr "" +"Una variante de :class:`HTTPPasswordMgrWithDefaultRealm` que también tiene " +"una base de datos de mapeos ``uri -> is_authenticated``. Puede ser usada por " +"un manejador BasicAuth para determinar cuando enviar credenciales de " +"autenticación inmediatamente en lugar de esperar primero a una respuesta " +"``401``." #: ../Doc/library/urllib.request.rst:349 msgid "" @@ -483,10 +689,21 @@ msgid "" "the URI, so that subsequent requests to the URI or any of its super-URIs " "will automatically include the authentication credentials." msgstr "" +"Esta es una clase mixin que ayuda con la autenticación HTTP, tanto al host " +"remoto y a un proxy. Si se proporciona *password_mgr*, debe ser algo " +"compatible con :class:`HTTPPasswordMgr`; refiera a la sección :ref:`http-" +"password-mgr` para información sobre la interfaz que debe ser soportada. Si " +"*passwd_mgr* proporciona también métodos ``is_authenticated`` y " +"``update_authenticated`` (vea :ref:`http-password-mgr-with-prior-auth`), " +"entonces el manejador usará el ``is_authenticated`` resultado para una URI " +"dada para determinar el envío o no de credenciales de autenticación con la " +"petición. Si ``is_authenticated`` retorna ``True`` para la URI, las " +"peticiones subsecuentes a la URI o cualquiera de las super URIs incluirán " +"automáticamente los credenciales de autenticación." #: ../Doc/library/urllib.request.rst:366 msgid "Added ``is_authenticated`` support." -msgstr "" +msgstr "Añadido soporte ``is_authenticated``." #: ../Doc/library/urllib.request.rst:372 msgid "" @@ -496,6 +713,11 @@ msgid "" "be supported. HTTPBasicAuthHandler will raise a :exc:`ValueError` when " "presented with a wrong Authentication scheme." msgstr "" +"Administra autenticación con el host remoto. Si se proporciona " +"*password_mgr*, debe ser compatible con :class:`HTTPPasswordMgr`; refiera a " +"la sección :ref:`http-password-mgr` para información sobre la interfaz que " +"debe ser soportada. HTTPBasicAuthHandler generará un :exc:`ValueError` " +"cuando se presente con un esquema de Autenticación incorrecto." #: ../Doc/library/urllib.request.rst:381 ../Doc/library/urllib.request.rst:415 msgid "" @@ -504,6 +726,9 @@ msgid "" "section :ref:`http-password-mgr` for information on the interface that must " "be supported." msgstr "" +"Administra autenticación con el proxy. Si se proporciona *password_mgr* debe " +"ser compatible con :class:`HTTPPasswordMgr`; refiera a la sección :ref:`http-" +"password-mgr` para información sobre la interfaz que debe ser soportada." #: ../Doc/library/urllib.request.rst:389 msgid "" @@ -512,6 +737,10 @@ msgid "" "that is compatible with :class:`HTTPPasswordMgr`; refer to section :ref:" "`http-password-mgr` for information on the interface that must be supported." msgstr "" +"Esto es una clase mixin que ayuda con la autenticación HTTP, tanto al host " +"remoto como a un proxy. Si se proporciona *password_mgr* debe ser compatible " +"con :class:`HTTPPasswordMgr`; refiera a la sección :ref:`http-password-mgr` " +"para información sobre la interfaz que debe ser soportada." #: ../Doc/library/urllib.request.rst:398 msgid "" @@ -525,53 +754,68 @@ msgid "" "a :exc:`ValueError` when presented with an authentication scheme other than " "Digest or Basic." msgstr "" +"Maneja autenticación con el host remoto. Si se proporciona *password_mgr* " +"debe ser compatible con :class:`HTTPPasswordMgr`; refiera a la sección :ref:" +"`http-password-mgr` para información sobre la interfaz que debe ser " +"soportada. Cuando se añaden tanto el Manejador de Autenticación Digest " +"(*Digest Authentication Handler*) como el Manejador de Autenticación Básico " +"(*Basic Authentication Handler*) la Autenticación Digest siempre se intenta " +"primero. Si la Autenticación Digest retorna una respuesta 40x de nuevo, se " +"envía al controlador de Autenticación Básica para Manejar. Este método " +"Handler generará un :exc:`ValueError` cuando sea presentado con un esquema " +"de autenticación diferente a Digest o Básico." #: ../Doc/library/urllib.request.rst:408 msgid "Raise :exc:`ValueError` on unsupported Authentication Scheme." -msgstr "" +msgstr "Genera :exc:`ValueError` en Esquema de Autenticación no soportado." #: ../Doc/library/urllib.request.rst:423 msgid "A class to handle opening of HTTP URLs." -msgstr "" +msgstr "Una clase para gestionar apertura de URLs HTTP." #: ../Doc/library/urllib.request.rst:428 msgid "" "A class to handle opening of HTTPS URLs. *context* and *check_hostname* " "have the same meaning as in :class:`http.client.HTTPSConnection`." msgstr "" +"Una clase para gestionar apertura de URLs HTTPS. *context* y " +"*check_hostname* tienen el mismo significado que en :class:`http.client." +"HTTPSConnection`." #: ../Doc/library/urllib.request.rst:431 msgid "*context* and *check_hostname* were added." -msgstr "" +msgstr "*context* y *check_hostname* fueron añadidos." #: ../Doc/library/urllib.request.rst:437 msgid "Open local files." -msgstr "" +msgstr "Abre archivos locales." #: ../Doc/library/urllib.request.rst:441 msgid "Open data URLs." -msgstr "" +msgstr "Abre URLs de datos." #: ../Doc/library/urllib.request.rst:447 msgid "Open FTP URLs." -msgstr "" +msgstr "Abre URLs FTP." #: ../Doc/library/urllib.request.rst:452 msgid "" "Open FTP URLs, keeping a cache of open FTP connections to minimize delays." msgstr "" +"Abre URLs FTP, manteniendo una caché de conexiones FTP abiertas para " +"minimizar retrasos." #: ../Doc/library/urllib.request.rst:457 msgid "A catch-all class to handle unknown URLs." -msgstr "" +msgstr "Una clase caza todo para gestionar URLs desconocidas." #: ../Doc/library/urllib.request.rst:462 ../Doc/library/urllib.request.rst:1157 msgid "Process HTTP error responses." -msgstr "" +msgstr "Procesa errores de respuestas HTTP." #: ../Doc/library/urllib.request.rst:468 msgid "Request Objects" -msgstr "" +msgstr "Objetos Request" #: ../Doc/library/urllib.request.rst:470 msgid "" @@ -579,10 +823,14 @@ msgid "" "all may be overridden in subclasses. It also defines several public " "attributes that can be used by clients to inspect the parsed request." msgstr "" +"Los siguientes métodos describen la interfaz pública de :class:`Request` por " +"lo que pueden ser sobrescritos en subclases. También define varios atributos " +"públicos que pueden ser usado por clientes para inspeccionar la respuesta " +"analizada." #: ../Doc/library/urllib.request.rst:477 msgid "The original URL passed to the constructor." -msgstr "" +msgstr "La URL original pasada al constructor." #: ../Doc/library/urllib.request.rst:481 msgid "" @@ -590,42 +838,54 @@ msgid "" "attr:`~Request.full_url` returns the original request URL with the fragment, " "if it was present." msgstr "" +"Request.full_url es una propiedad con setter, getter y deleter. Obtener :" +"attr:`~Request.full_url` retorna la petición URL original con el fragmento, " +"si este estaba presente." #: ../Doc/library/urllib.request.rst:487 msgid "The URI scheme." -msgstr "" +msgstr "El esquema de URI." #: ../Doc/library/urllib.request.rst:491 msgid "" "The URI authority, typically a host, but may also contain a port separated " "by a colon." msgstr "" +"La autoridad de URI, típicamente un host, pero también puede contener un " +"puerto separado por un caracter de doble punto." #: ../Doc/library/urllib.request.rst:496 msgid "The original host for the request, without port." -msgstr "" +msgstr "El host original de la petición, sin puerto." #: ../Doc/library/urllib.request.rst:500 msgid "" "The URI path. If the :class:`Request` uses a proxy, then selector will be " "the full URL that is passed to the proxy." msgstr "" +"La ruta de URI. Si :class:`Request` usa un proxy, entonces selector será la " +"URL completa que se pasa al proxy." #: ../Doc/library/urllib.request.rst:505 msgid "The entity body for the request, or ``None`` if not specified." msgstr "" +"El cuerpo de la entidad para la solicitud o ``None`` si no es especificado." #: ../Doc/library/urllib.request.rst:507 msgid "" "Changing value of :attr:`Request.data` now deletes \"Content-Length\" header " "if it was previously set or calculated." msgstr "" +"Cambiar el valor de :attr:`Request.data` elimina ahora el encabezado " +"\"Content-Length\" si fue establecido o calculado previamente." #: ../Doc/library/urllib.request.rst:513 msgid "" "boolean, indicates whether the request is unverifiable as defined by :rfc:" "`2965`." msgstr "" +"booleano, indica si la petición no es verificable como se define por :rfc:" +"`2965`." #: ../Doc/library/urllib.request.rst:518 msgid "" @@ -637,12 +897,21 @@ msgid "" "passing a value in to the :class:`Request` constructor via the *method* " "argument." msgstr "" +"El método de petición HTTP a usar. Por defecto su valor es :const:`None`, lo " +"que significa que :meth:`~Request.get_method` realizará su cálculo normal " +"del método a usar. Su valor puede ser definido (sobrescribiendo así el " +"cálculo predeterminado en :meth:`~Request.get_method`) tanto proporcionando " +"un valor por defecto estableciéndolo a nivel de clase en una subclase de :" +"class:`Request` o pasando un valor al constructor de :class:`Request` por " +"medio del argumento *method*." #: ../Doc/library/urllib.request.rst:528 msgid "" "A default value can now be set in subclasses; previously it could only be " "set via the constructor argument." msgstr "" +"Un valor predeterminado puede ser establecido ahora en subclases; " +"previamente sólo podía ser definido mediante el argumento del constructor." #: ../Doc/library/urllib.request.rst:535 msgid "" @@ -651,10 +920,14 @@ msgid "" "attr:`Request.data` is ``None``, or ``'POST'`` if it's not. This is only " "meaningful for HTTP requests." msgstr "" +"Retorna una cadena indicando el método de petición HTTP. Si :attr:`Request." +"method` no es ``None``, retorna su valor, de otra forma retorna ``'GET'`` " +"si :attr:`Request.data` es ``None`` o ``'POST'`` si no lo es. Esto sólo es " +"significativo para peticiones HTTP." #: ../Doc/library/urllib.request.rst:540 msgid "get_method now looks at the value of :attr:`Request.method`." -msgstr "" +msgstr "get_method ahora mira el valor de :attr:`Request.method`." #: ../Doc/library/urllib.request.rst:546 msgid "" @@ -666,30 +939,43 @@ msgid "" "headers which have meaning when used more than once have a (header-specific) " "way of gaining the same functionality using only one header." msgstr "" +"Añade otro encabezado a la petición. Los encabezados actualmente son " +"ignorados por todos los manejadores excepto los manejadores HTTP, donde son " +"añadidos a la lista de encabezados enviados al servidor. Tenga en cuenta que " +"no puede haber más de un encabezado con el mismo nombre y las invocaciones " +"posteriores sobrescribirán las invocaciones previas en caso de que *key* " +"colisione. Actualmente, esto no es una pérdida de funcionalidad HTTP, ya que " +"todos los encabezados que tienen sentido cuando son usados más de una vez " +"tienen una manera (específica de encabezado) de ganar la misma funcionalidad " +"usando sólo un encabezado." #: ../Doc/library/urllib.request.rst:557 msgid "Add a header that will not be added to a redirected request." -msgstr "" +msgstr "Añade un encabezado que no será añadido a una petición redireccionada." #: ../Doc/library/urllib.request.rst:562 msgid "" "Return whether the instance has the named header (checks both regular and " "unredirected)." msgstr "" +"Retorna si la instancia tiene el encabezado nombrado (comprueba tanto " +"regular como no redirigido)." #: ../Doc/library/urllib.request.rst:568 msgid "" "Remove named header from the request instance (both from regular and " "unredirected headers)." msgstr "" +"Elimina el encabezado nombrado de la instancia de la petición (desde " +"encabezados regulares y no redireccionados)." #: ../Doc/library/urllib.request.rst:576 msgid "Return the URL given in the constructor." -msgstr "" +msgstr "Retorna la URL dada en el constructor." #: ../Doc/library/urllib.request.rst:580 msgid "Returns :attr:`Request.full_url`" -msgstr "" +msgstr "Retorna :attr:`Request.full_url`" #: ../Doc/library/urllib.request.rst:585 msgid "" @@ -697,17 +983,22 @@ msgid "" "will replace those of the instance, and the instance's selector will be the " "original URL given in the constructor." msgstr "" +"Prepara la petición conectando a un servidor proxy. Los *host* y *type* " +"reemplazarán aquellos de la instancia y el selector de la instancia será la " +"URL original dada en el constructor." #: ../Doc/library/urllib.request.rst:592 msgid "" "Return the value of the given header. If the header is not present, return " "the default value." -msgstr "" +msgstr "Retorna el valor del encabezado dado." #: ../Doc/library/urllib.request.rst:598 msgid "" "Return a list of tuples (header_name, header_value) of the Request headers." msgstr "" +"Retorna una lista de tuplas (header_name, header_value) de los encabezados " +"de la Petición." #: ../Doc/library/urllib.request.rst:600 msgid "" @@ -715,14 +1006,18 @@ msgid "" "get_selector, get_origin_req_host and is_unverifiable that were deprecated " "since 3.3 have been removed." msgstr "" +"Los métodos de petición add_data, has_data, get_data, get_type, get_host, " +"get_selector, get_origin_req_host y is_unverifiable que quedaron obsoletos " +"desde 3.3 han sido eliminados." #: ../Doc/library/urllib.request.rst:609 msgid "OpenerDirector Objects" -msgstr "" +msgstr "Objetos OpenerDirector" #: ../Doc/library/urllib.request.rst:611 msgid ":class:`OpenerDirector` instances have the following methods:" msgstr "" +"Las instancias de :class:`OpenerDirector` tienen los siguientes métodos:" #: ../Doc/library/urllib.request.rst:616 msgid "" @@ -734,52 +1029,69 @@ msgid "" "should be replaced with the actual HTTP code, for example :meth:" "`http_error_404` would handle HTTP 404 errors." msgstr "" +"*handler* debe ser una instancia de :class:`BaseHandler`. Los siguientes " +"métodos son buscados y añadidos a las cadenas posibles (tenga en cuenta que " +"los errores HTTP son un caso espacial). Tenga en cuenta que, en los " +"siguientes, *protocol* debe ser remplazado con el protocolo actual a " +"manejar, por ejemplo :meth:`http_response` sería el protocolo HTTP del " +"manejador de respuesta. También *type* debe ser remplazado con el código " +"HTTP actual, por ejemplo :meth:`http_error_404` manejaría errores HTTP 404." #: ../Doc/library/urllib.request.rst:624 msgid "" ":meth:`_open` --- signal that the handler knows how to open " "*protocol* URLs." msgstr "" +":meth:`_open` --- señala que el manejador sabe como abrir URLs " +"*protocol*." #: ../Doc/library/urllib.request.rst:627 msgid "See |protocol_open|_ for more information." -msgstr "" +msgstr "Vea |protocol_open|_ para más información." #: ../Doc/library/urllib.request.rst:629 msgid "" ":meth:`http_error_\\` --- signal that the handler knows how to " "handle HTTP errors with HTTP error code *type*." msgstr "" +":meth:`http_error_\\` --- señala que el manejador sabe como manejar " +"errores HTTP con el código de error *type*." #: ../Doc/library/urllib.request.rst:632 msgid "See |http_error_nnn|_ for more information." -msgstr "" +msgstr "Vea |http_error_nnn|_ para más información." #: ../Doc/library/urllib.request.rst:634 msgid "" ":meth:`_error` --- signal that the handler knows how to handle " "errors from (non-\\ ``http``) *protocol*." msgstr "" +":meth:`_error` --- señala que el manejador sabe como manejar " +"errores de (no ``http``) *protocol*." #: ../Doc/library/urllib.request.rst:637 msgid "" ":meth:`_request` --- signal that the handler knows how to pre-" "process *protocol* requests." msgstr "" +":meth:`_request` --- señala que el manejador sabe como preprocesar " +"peticiones *protocol*." #: ../Doc/library/urllib.request.rst:640 msgid "See |protocol_request|_ for more information." -msgstr "" +msgstr "Vea |protocol_request|_ para más información." #: ../Doc/library/urllib.request.rst:642 msgid "" ":meth:`_response` --- signal that the handler knows how to post-" "process *protocol* responses." msgstr "" +":meth:`_response` --- señala que el manejador sabe como " +"postprocesar respuestas *protocol*." #: ../Doc/library/urllib.request.rst:645 msgid "See |protocol_response|_ for more information." -msgstr "" +msgstr "Vea |protocol_response|_ para más información." #: ../Doc/library/urllib.request.rst:654 msgid "" @@ -792,6 +1104,15 @@ msgid "" "timeout setting will be used). The timeout feature actually works only for " "HTTP, HTTPS and FTP connections)." msgstr "" +"Abre la *url* dada (la cual puede ser un objeto de petición o una cadena de " +"caracteres), pasando opcionalmente el *data* dado. Los argumentos, los " +"valores de retorno y las excepciones generadas son las mismas que aquellas " +"de :func:`urlopen` (las cuales simplemente invocan el método :meth:`open` en " +"el :class:`OpenerDirector` instalado global). El parámetro opcional " +"*timeout* especifica un tiempo de expiración en segundos para operaciones " +"bloqueantes como el intento de conexión (si no se especifica, el tiempo de " +"expiración global será usado). La característica de tiempo de expiración " +"actualmente funciona sólo para conexiones HTTP, HTTPS y FTP." #: ../Doc/library/urllib.request.rst:666 msgid "" @@ -801,27 +1122,39 @@ msgid "" "code to determine the specific error handler; refer to the :meth:`http_error_" "\\` methods of the handler classes." msgstr "" +"Maneja un error del protocolo dado. Esto invocará los manejadores de error " +"registrados para el protocolo dado con los argumentos dados (los cuales son " +"específicos del protocolo). El protocolo HTTP es un caso especial el cual " +"usa el código de respuesta HTTP para determinar el manejador de error " +"específico; refiera a los métodos :meth:`http_error_\\` de las " +"clases del manejador." #: ../Doc/library/urllib.request.rst:672 msgid "" "Return values and exceptions raised are the same as those of :func:`urlopen`." msgstr "" +"Retorna si los valores y excepciones generadas son las mismas que aquellas " +"de :func:`urlopen`." #: ../Doc/library/urllib.request.rst:674 msgid "OpenerDirector objects open URLs in three stages:" -msgstr "" +msgstr "Los objetos OpenerDirector abren URLs en tres etapas:" #: ../Doc/library/urllib.request.rst:676 msgid "" "The order in which these methods are called within each stage is determined " "by sorting the handler instances." msgstr "" +"El orden en el cual esos métodos son invocados dentro de cada etapa es " +"determinado ordenando las instancias manejadoras." #: ../Doc/library/urllib.request.rst:679 msgid "" "Every handler with a method named like :meth:`_request` has that " "method called to pre-process the request." msgstr "" +"Cada manejador con un método nombrado como :meth:`_request` tiene " +"ese método invocador para preprocesar la petición." #: ../Doc/library/urllib.request.rst:682 msgid "" @@ -830,6 +1163,11 @@ msgid "" "const:`None` value (ie. a response), or raises an exception (usually :exc:" "`~urllib.error.URLError`). Exceptions are allowed to propagate." msgstr "" +"Los manejadores con un método nombrado como :meth:`_open` son " +"invocados para manejar la petición. Esta etapa termina cuando un manejador " +"retorna un valor no :const:`None` (ej. una respuesta) o genera una excepción " +"(generalmente :exc:`~urllib.error.URLError`). Se permite que las excepciones " +"propaguen." #: ../Doc/library/urllib.request.rst:687 msgid "" @@ -839,6 +1177,11 @@ msgid "" "methods return :const:`None`, the algorithm is repeated for methods named :" "meth:`unknown_open`." msgstr "" +"De hecho, el algoritmo anterior se intenta primero para métodos nombrados :" +"meth:`default_open`. Si todos esos métodos retornan :const:`None`, el " +"algoritmo se repite para métodos nombrados como :meth:`_open`. Si " +"todos esos métodos retornan :const:`None`, el algoritmo se repite para " +"métodos nombrados como :meth:`unknown_open`." #: ../Doc/library/urllib.request.rst:693 msgid "" @@ -846,16 +1189,21 @@ msgid "" "parent :class:`OpenerDirector` instance's :meth:`~OpenerDirector.open` and :" "meth:`~OpenerDirector.error` methods." msgstr "" +"Tenga en cuenta que la implementación de esos métodos puede involucrar " +"invocaciones de los métodos :meth:`~OpenerDirector.open` y :meth:" +"`~OpenerDirector.error` de la instancia :class:`OpenerDirector` padre." #: ../Doc/library/urllib.request.rst:697 msgid "" "Every handler with a method named like :meth:`_response` has that " "method called to post-process the response." msgstr "" +"Cada manejador con un método nombrado como :meth:`_response` tiene " +"ese método invocado para postprocesar la respuesta." #: ../Doc/library/urllib.request.rst:704 msgid "BaseHandler Objects" -msgstr "" +msgstr "Objetos BaseHandler" #: ../Doc/library/urllib.request.rst:706 msgid "" @@ -863,20 +1211,25 @@ msgid "" "useful, and others that are meant to be used by derived classes. These are " "intended for direct use:" msgstr "" +"Los objetos :class:`BaseHandler` proporcionan un par de métodos que son " +"útiles directamente y otros que están destinados a ser utilizados por clases " +"derivadas. Estos están pensados para uso directo:" #: ../Doc/library/urllib.request.rst:713 msgid "Add a director as parent." -msgstr "" +msgstr "Añade un director como padre." #: ../Doc/library/urllib.request.rst:718 msgid "Remove any parents." -msgstr "" +msgstr "Elimina cualquier padre." #: ../Doc/library/urllib.request.rst:720 msgid "" "The following attribute and methods should only be used by classes derived " "from :class:`BaseHandler`." msgstr "" +"El siguiente atributo y los siguientes métodos sólo deben ser usados por " +"clases derivadas de :class:`BaseHandler`." #: ../Doc/library/urllib.request.rst:725 msgid "" @@ -884,18 +1237,25 @@ msgid "" "`_request` or :meth:`_response` methods are named :class:" "`\\*Processor`; all others are named :class:`\\*Handler`." msgstr "" +"Se ha adoptado la convención de que las subclases que definen los métodos :" +"meth:`_request` o :meth:`_response` son nombradas :class:" +"`\\*Processor`; todas las otras son nombradas :class:`\\*Handler`." #: ../Doc/library/urllib.request.rst:732 msgid "" "A valid :class:`OpenerDirector`, which can be used to open using a different " "protocol, or handle errors." msgstr "" +"Un :class:`OpenerDirector` válido, el cual puede ser utilizado para abrir " +"usando un protocolo diferente, o para manejar errores." #: ../Doc/library/urllib.request.rst:738 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to catch all URLs." msgstr "" +"Este método no es definido en :class:`BaseHandler`, pero las subclases deben " +"definirlo si quieren cazar todas las URLs." #: ../Doc/library/urllib.request.rst:741 msgid "" @@ -906,16 +1266,26 @@ msgid "" "happens (for example, :exc:`MemoryError` should not be mapped to :exc:" "`URLError`)." msgstr "" +"Este método, si se implementa, será invocado por el :class:`OpenerDirector` " +"padre. Debe retornar un archivo como objeto tal y como se describe en el " +"valor retornado por :meth:`open` de :class:`OpenerDirector` o ``None``. Debe " +"generar :exc:`~urllib.error.URLError` a no ser que algo verdaderamente " +"excepcional ocurra (por ejemplo, :exc:`MemoryError` no debe ser mapeado a :" +"exc:`URLError`)." #: ../Doc/library/urllib.request.rst:748 msgid "This method will be called before any protocol-specific open method." msgstr "" +"Este método será invocado antes de cualquier método de apertura específico " +"de protocolo." #: ../Doc/library/urllib.request.rst:755 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to handle URLs with the given protocol." msgstr "" +"Este método no está definido en :class:`BaseHandler`, pero las subclases " +"deben definirlo si quieren manejar URLs con el protocolo dado." #: ../Doc/library/urllib.request.rst:758 msgid "" @@ -923,6 +1293,9 @@ msgid "" "`OpenerDirector`. Return values should be the same as for :meth:" "`default_open`." msgstr "" +"Este método, si está definido, será invocado por el :class:`OpenerDirector` " +"padre. Los valores retornados deben ser los mismos que para :meth:" +"`default_open`." #: ../Doc/library/urllib.request.rst:764 msgid "" @@ -930,6 +1303,9 @@ msgid "" "define it if they want to catch all URLs with no specific registered handler " "to open it." msgstr "" +"Este método *no* está definido en :class:`BaseHandler`, pero las subclases " +"deben definirlo si quieren cazar todas las URLs sin manejador registrado " +"para abrirlo." #: ../Doc/library/urllib.request.rst:768 msgid "" @@ -937,6 +1313,9 @@ msgid "" "`OpenerDirector`. Return values should be the same as for :meth:" "`default_open`." msgstr "" +"Este método, si está implementado, será invocado por el :attr:`parent` de :" +"class:`OpenerDirector`. Los valores retornados deben ser los mismos que " +"para :meth:`default_open`." #: ../Doc/library/urllib.request.rst:775 msgid "" @@ -946,6 +1325,11 @@ msgid "" "`OpenerDirector` getting the error, and should not normally be called in " "other circumstances." msgstr "" +"Este método *no* está definido en :class:`BaseHandler`, pero las subclases " +"deben sobreescribirlo si pretenden proporcionar una solución general para " +"los errores HTTP que de otro modo no se manejarían. Sería invocado " +"automáticamente por el :class:`OpenerDirector` obteniendo el error y no debe " +"ser invocado normalmente en otras circunstancias." #: ../Doc/library/urllib.request.rst:780 msgid "" @@ -954,12 +1338,18 @@ msgid "" "*msg* will be the user-visible explanation of the code and *hdrs* will be a " "mapping object with the headers of the error." msgstr "" +"*req* será un objeto :class:`Request`, *fp* será un objeto como archivo con " +"el cuerpo de error HTTP, *code* será el código de error de tres dígitos, " +"*msg* será la explicación visible para el usuario del código y *hdrs* será " +"un objeto de mapeo con los encabezados del error." #: ../Doc/library/urllib.request.rst:785 msgid "" "Return values and exceptions raised should be the same as those of :func:" "`urlopen`." msgstr "" +"Los valores de retorno y las excepciones generadas deben ser los mismos que " +"aquellos de :func:`urlopen`." #: ../Doc/library/urllib.request.rst:792 msgid "" @@ -967,22 +1357,31 @@ msgid "" "defined in :class:`BaseHandler`, but will be called, if it exists, on an " "instance of a subclass, when an HTTP error with code *nnn* occurs." msgstr "" +"*nnn* debe ser un código de error HTTP de tres dígitos. Este método tampoco " +"está definido en :class:`BaseHandler`, pero será invocado, si existe, en una " +"instancia de una subclase, cuando ocurra un error HTTP con código *nnn*." #: ../Doc/library/urllib.request.rst:796 msgid "Subclasses should override this method to handle specific HTTP errors." msgstr "" +"Las subclases deben sobrescribir este método para manejar errores HTTP " +"específicos." #: ../Doc/library/urllib.request.rst:798 msgid "" "Arguments, return values and exceptions raised should be the same as for :" "meth:`http_error_default`." msgstr "" +"Los argumentos, valores de retorno y las excepciones generadas deben ser las " +"mismas que para :meth:`http_error_default`." #: ../Doc/library/urllib.request.rst:806 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to pre-process requests of the given protocol." msgstr "" +"Este método *no* está definido en :class:`BaseHandler`, pero las subclases " +"deben definirlo si pretenden preprocesar peticiones del protocolo dado." #: ../Doc/library/urllib.request.rst:809 msgid "" @@ -990,12 +1389,17 @@ msgid "" "`OpenerDirector`. *req* will be a :class:`Request` object. The return value " "should be a :class:`Request` object." msgstr "" +"Este método, si está definido, será invocado por el :class:`OpenerDirector` " +"padre. *req* será un objeto :class:`Request`. El valor retornado debe ser un " +"objeto :class:`Request`." #: ../Doc/library/urllib.request.rst:818 msgid "" "This method is *not* defined in :class:`BaseHandler`, but subclasses should " "define it if they want to post-process responses of the given protocol." msgstr "" +"Este método *no* está definido en :class:`BaseHandler`, pero las subclases " +"deben definirlo si quieren postprocesar respuestas del protocolo dado." #: ../Doc/library/urllib.request.rst:821 msgid "" @@ -1005,10 +1409,15 @@ msgid "" "`urlopen`. The return value should implement the same interface as the " "return value of :func:`urlopen`." msgstr "" +"Este método, si está definido, será invocado por el :class:`OpenerDirector` " +"padre. *req* será un objeto :class:`Request`. *response* será un objeto que " +"implementa la misma interfaz que el valor retornado de :func:`urlopen`. El " +"valor retornado debe implementar la misma interfaz que el valor retornado " +"de :func:`urlopen`." #: ../Doc/library/urllib.request.rst:831 msgid "HTTPRedirectHandler Objects" -msgstr "" +msgstr "Objetos HTTPRedirectHandler" #: ../Doc/library/urllib.request.rst:835 msgid "" @@ -1016,6 +1425,10 @@ msgid "" "this is the case, :exc:`~urllib.error.HTTPError` is raised. See :rfc:`2616` " "for details of the precise meanings of the various redirection codes." msgstr "" +"Algunas redirecciones HTTP requieren acción desde el código del módulo del " +"cliente. Si este es el caso, se genera :exc:`~urllib.error.HTTPError`. Vea :" +"rfc:`2616` para más detalles de los significados precisos de los diferentes " +"códigos de redirección." #: ../Doc/library/urllib.request.rst:839 msgid "" @@ -1023,6 +1436,9 @@ msgid "" "HTTPRedirectHandler is presented with a redirected URL which is not an HTTP, " "HTTPS or FTP URL." msgstr "" +"Una excepción :class:`HTTPError` generada como consideración de seguridad si " +"el HTTPRedirectHandler se presenta con una URL redirigida la cual no es una " +"URL HTTP, HTTPS o FTP." #: ../Doc/library/urllib.request.rst:846 msgid "" @@ -1034,6 +1450,14 @@ msgid "" "exc:`~urllib.error.HTTPError` if no other handler should try to handle this " "URL, or return ``None`` if you can't but another handler might." msgstr "" +"Retorna un :class:`Request` o ``None`` en respuesta a una redirección. Esto " +"es invocado por las implementaciones predeterminadas de los métodos :meth:" +"`http_error_30\\*` cuando se recibe una redirección del servidor. Si puede " +"tomar lugar una redirección, retorna un nuevo :class:`Request` para permitir " +"a :meth:`http_error_30\\*` realizar la redirección a *newurl*. De otra " +"forma, genera :exc:`~urllib.error.HTTPError` si ningún otro manejador debe " +"intentar manejar esta URL, o retorna ``None`` si no tú pero otro manejador " +"puede." #: ../Doc/library/urllib.request.rst:856 msgid "" @@ -1043,6 +1467,12 @@ msgid "" "browsers do allow automatic redirection of these responses, changing the " "POST to a ``GET``, and the default implementation reproduces this behavior." msgstr "" +"La implementación predeterminada de este método no sigue estrictamente :rfc:" +"`2616`, la cual dice que las respuestas 301 y 302 a peticiones POST no deben " +"ser redirigidas automáticamente sin confirmación por el usuario. En " +"realidad, los navegadores permiten redirección automática de esas " +"respuestas, cambiando el POST a un ``GET`` y la implementación " +"predeterminada reproduce este comportamiento." #: ../Doc/library/urllib.request.rst:865 msgid "" @@ -1050,38 +1480,48 @@ msgid "" "parent :class:`OpenerDirector` when getting an HTTP 'moved permanently' " "response." msgstr "" +"Redirecciona a la URL ``Location:`` o ``URI:``. Este método es invocado por " +"el :class:`OpenerDirector` padre al obtener una respuesta HTTP 'moved " +"permanently'." #: ../Doc/library/urllib.request.rst:871 msgid "" "The same as :meth:`http_error_301`, but called for the 'found' response." msgstr "" +"Lo mismo que :meth:`http_error_301`, pero invocado para la respuesta 'found'." #: ../Doc/library/urllib.request.rst:876 msgid "" "The same as :meth:`http_error_301`, but called for the 'see other' response." msgstr "" +"Lo mismo que :meth:`http_error_301`, pero invocado para la respuesta 'see " +"other'." #: ../Doc/library/urllib.request.rst:881 msgid "" "The same as :meth:`http_error_301`, but called for the 'temporary redirect' " "response." msgstr "" +"Lo mismo que :meth:`http_error_301`, pero invocado para la respuesta " +"'temporary redirect'." #: ../Doc/library/urllib.request.rst:888 msgid "HTTPCookieProcessor Objects" -msgstr "" +msgstr "Objetos HTTPCookieProcessor" #: ../Doc/library/urllib.request.rst:890 msgid ":class:`HTTPCookieProcessor` instances have one attribute:" -msgstr "" +msgstr "Las instancias :class:`HTTPCookieProcessor` tienen un atributo:" #: ../Doc/library/urllib.request.rst:894 msgid "The :class:`http.cookiejar.CookieJar` in which cookies are stored." msgstr "" +"El :class:`http.cookiejar.CookieJar` en el cual las cookies están " +"almacenadas." #: ../Doc/library/urllib.request.rst:900 msgid "ProxyHandler Objects" -msgstr "" +msgstr "Objetos ProxyHandler" #: ../Doc/library/urllib.request.rst:906 msgid "" @@ -1091,16 +1531,23 @@ msgid "" "calling ``request.set_proxy()``, and call the next handler in the chain to " "actually execute the protocol." msgstr "" +"El :class:`ProxyHandler` tendrá un método :meth:`_open` para cada " +"*protocol* el cual tiene un proxy en el diccionario *proxies* dado en el " +"constructor. El método modificará peticiones para ir a través del proxy, " +"invocando ``request.set_proxy()``, e invoca el siguiente manejador en la " +"cadena que ejecuta actualmente el protocolo." #: ../Doc/library/urllib.request.rst:916 msgid "HTTPPasswordMgr Objects" -msgstr "" +msgstr "Objetos HTTPPasswordMgr" #: ../Doc/library/urllib.request.rst:918 msgid "" "These methods are available on :class:`HTTPPasswordMgr` and :class:" "`HTTPPasswordMgrWithDefaultRealm` objects." msgstr "" +"Estos métodos están disponibles en los objetos :class:`HTTPPasswordMgr` y :" +"class:`HTTPPasswordMgrWithDefaultRealm`." #: ../Doc/library/urllib.request.rst:924 msgid "" @@ -1109,22 +1556,31 @@ msgid "" "authentication tokens when authentication for *realm* and a super-URI of any " "of the given URIs is given." msgstr "" +"*uri* puede ser una única URI o una secuencia de URIs. *realm*, *user* y " +"*passwd* deben ser cadenas. Esto causa que ``(user, passwd)`` se utilice " +"como tokens de autenticación cuando la autenticación para *realm* y para una " +"super URI de ninguna de las URIs dadas es provista." #: ../Doc/library/urllib.request.rst:932 msgid "" "Get user/password for given realm and URI, if any. This method will return " "``(None, None)`` if there is no matching user/password." msgstr "" +"Obtener usuario/contraseña para el reino y URI dados, si alguno ha sido " +"dado. Este método retornará ``(None, None)`` si no hay usuario/contraseña " +"concordante." #: ../Doc/library/urllib.request.rst:935 msgid "" "For :class:`HTTPPasswordMgrWithDefaultRealm` objects, the realm ``None`` " "will be searched if the given *realm* has no matching user/password." msgstr "" +"Para objetos :class:`HTTPPasswordMgrWithDefaultRealm`, el reino ``None`` " +"será buscado si el *realm* dado no tiene usuario/contraseña concordante." #: ../Doc/library/urllib.request.rst:942 msgid "HTTPPasswordMgrWithPriorAuth Objects" -msgstr "" +msgstr "Objetos HTTPPasswordMgrWithPriorAuth" #: ../Doc/library/urllib.request.rst:944 msgid "" @@ -1132,6 +1588,9 @@ msgid "" "support tracking URIs for which authentication credentials should always be " "sent." msgstr "" +"Esta manejador de contraseña extiende :class:" +"`HTTPPasswordMgrWithDefaultRealm` para soportar el seguimiento de URIs para " +"las cuales deben ser enviadas siempre credenciales de autenticación." #: ../Doc/library/urllib.request.rst:951 msgid "" @@ -1140,24 +1599,31 @@ msgid "" "``is_authenticated`` flag for the given URI or list of URIs. If " "*is_authenticated* is specified as ``True``, *realm* is ignored." msgstr "" +"*realm*, *uri*, *user*, *passwd* son como para :meth:`HTTPPasswordMgr." +"add_password`. *is_authenticated* establece el valor inicial del indicador " +"``is_authenticated`` para la URI o lista de URIs dadas. Si se especifica " +"*is_authenticated* como ``True``, *realm* se ignora." #: ../Doc/library/urllib.request.rst:959 msgid "Same as for :class:`HTTPPasswordMgrWithDefaultRealm` objects" -msgstr "" +msgstr "Lo mismo que para objetos :class:`HTTPPasswordMgrWithDefaultRealm`" #: ../Doc/library/urllib.request.rst:965 msgid "" "Update the ``is_authenticated`` flag for the given *uri* or list of URIs." msgstr "" +"Actualiza el indicador ``is_authenticated`` para la *uri* o lista de URIs " +"dadas." #: ../Doc/library/urllib.request.rst:971 msgid "" "Returns the current state of the ``is_authenticated`` flag for the given URI." msgstr "" +"Retorna el estado actual del indicador ``is_authenticated`` para la URI dada." #: ../Doc/library/urllib.request.rst:978 msgid "AbstractBasicAuthHandler Objects" -msgstr "" +msgstr "Objetos AbstractBasicAuthHandler" #: ../Doc/library/urllib.request.rst:983 msgid "" @@ -1167,6 +1633,11 @@ msgid "" "URL and path to authenticate for, *req* should be the (failed) :class:" "`Request` object, and *headers* should be the error headers." msgstr "" +"Maneja una autenticación de petición obteniendo un par usuario/contraseña y " +"reintentando la petición. *authreq* debe ser el nombre del encabezado donde " +"la información sobre el reino se incluye en la petición, *host* especifica " +"la URL y ruta para la cual autenticar, *req* debe ser el objeto :class:" +"`Request` (fallido) y *headers* deben ser los encabezados de error." #: ../Doc/library/urllib.request.rst:989 msgid "" @@ -1175,10 +1646,15 @@ msgid "" "the authority must not contain a userinfo component (so, ``\"python.org\"`` " "and ``\"python.org:80\"`` are fine, ``\"joe:password@python.org\"`` is not)." msgstr "" +"*host* es una autoridad (ej. ``\"python.org\"``) o una URL conteniendo un " +"componente de autoridad (ej. ``\"http://python.org/\"``). En cualquier caso, " +"la autoridad no debe contener un componente userinfo (por lo que ``\"python." +"org\"`` y ``\"python.org:80\"`` están bien, ``\"joe:password@python.org\"`` " +"no)." #: ../Doc/library/urllib.request.rst:998 msgid "HTTPBasicAuthHandler Objects" -msgstr "" +msgstr "Objetos HTTPBasicAuthHandler" #: ../Doc/library/urllib.request.rst:1003 #: ../Doc/library/urllib.request.rst:1014 @@ -1186,14 +1662,16 @@ msgstr "" #: ../Doc/library/urllib.request.rst:1050 msgid "Retry the request with authentication information, if available." msgstr "" +"Reintenta la petición con la información de autenticación, si está " +"disponible." #: ../Doc/library/urllib.request.rst:1009 msgid "ProxyBasicAuthHandler Objects" -msgstr "" +msgstr "Objetos ProxyBasicAuthHandler" #: ../Doc/library/urllib.request.rst:1020 msgid "AbstractDigestAuthHandler Objects" -msgstr "" +msgstr "Objetos AbstractDigestAuthHandler" #: ../Doc/library/urllib.request.rst:1025 msgid "" @@ -1202,54 +1680,67 @@ msgid "" "to, *req* should be the (failed) :class:`Request` object, and *headers* " "should be the error headers." msgstr "" +"*authreq* debe ser el nombre del encabezado donde la información sobre el " +"reino está incluida en la petición, *host* debe ser el host al que " +"autenticar, *req* debe ser el objeto :class:`Request` (fallido) y *headers* " +"deben ser los encabezados de error." #: ../Doc/library/urllib.request.rst:1034 msgid "HTTPDigestAuthHandler Objects" -msgstr "" +msgstr "Objetos HTTPDigestAuthHandler" #: ../Doc/library/urllib.request.rst:1045 msgid "ProxyDigestAuthHandler Objects" -msgstr "" +msgstr "Objetos ProxyDigestAuthHandler" #: ../Doc/library/urllib.request.rst:1056 msgid "HTTPHandler Objects" -msgstr "" +msgstr "Objetos HTTPHandler" #: ../Doc/library/urllib.request.rst:1061 msgid "" "Send an HTTP request, which can be either GET or POST, depending on ``req." "has_data()``." msgstr "" +"Envía una petición HTTP, que puede ser GET o POST, dependiendo de ``req." +"has_data()``." #: ../Doc/library/urllib.request.rst:1068 msgid "HTTPSHandler Objects" -msgstr "" +msgstr "Objetos HTTPSHandler" #: ../Doc/library/urllib.request.rst:1073 msgid "" "Send an HTTPS request, which can be either GET or POST, depending on ``req." "has_data()``." msgstr "" +"Envía una petición HTTPS, que puede ser GET o POST, dependiendo de ``req." +"has_data()``." #: ../Doc/library/urllib.request.rst:1080 msgid "FileHandler Objects" -msgstr "" +msgstr "Objetos FileHandler" #: ../Doc/library/urllib.request.rst:1085 msgid "" "Open the file locally, if there is no host name, or the host name is " "``'localhost'``." msgstr "" +"Abre el archivo localmente, si no hay nombre de host, o el nombre de host es " +"``'localhost'``." #: ../Doc/library/urllib.request.rst:1088 msgid "" "This method is applicable only for local hostnames. When a remote hostname " "is given, an :exc:`~urllib.error.URLError` is raised." msgstr "" +"Este método es aplicable sólo para nombres de host locales. Cuando un nombre " +"de host remoto es dado, se genera una excepción :exc:`~urllib.error." +"URLError`." #: ../Doc/library/urllib.request.rst:1096 msgid "DataHandler Objects" -msgstr "" +msgstr "Objetos DataHandler" #: ../Doc/library/urllib.request.rst:1100 msgid "" @@ -1260,50 +1751,63 @@ msgid "" "mind about a missing padding at the end of a base64 encoded data URL, this " "implementation will raise an :exc:`ValueError` in that case." msgstr "" +"Lee una URL de datos. Este tipo de URL contiene el contenido codificado en " +"la URL misma. La sintaxis de la URL de datos se especifica en :rfc:`2397`. " +"Esta implementación ignora los espacios en blanco en datos codificados como " +"base64 así que la URL puede ser envuelta en cualquier archivo fuente del que " +"proviene. Pero a pesar de que a algunos navegadores no les importa si falta " +"relleno al final de una URL codificada como base64, esta implementación " +"generará un :exc:`ValueError` en este caso." #: ../Doc/library/urllib.request.rst:1111 msgid "FTPHandler Objects" -msgstr "" +msgstr "Objetos FTPHandler" #: ../Doc/library/urllib.request.rst:1116 msgid "" "Open the FTP file indicated by *req*. The login is always done with empty " "username and password." msgstr "" +"Abre el archivo FTP indicado por *req*. El inicio de sesión siempre se " +"realiza con un usuario y contraseña vacíos." #: ../Doc/library/urllib.request.rst:1123 msgid "CacheFTPHandler Objects" -msgstr "" +msgstr "Objetos CacheFTPHandler" #: ../Doc/library/urllib.request.rst:1125 msgid "" ":class:`CacheFTPHandler` objects are :class:`FTPHandler` objects with the " "following additional methods:" msgstr "" +"Los objetos :class:`CacheFTPHandler` son objetos :class:`FTPHandler` con los " +"siguientes métodos adicionales:" #: ../Doc/library/urllib.request.rst:1131 msgid "Set timeout of connections to *t* seconds." -msgstr "" +msgstr "Establece el tiempo de expiración de conexiones a *t* segundos." #: ../Doc/library/urllib.request.rst:1136 msgid "Set maximum number of cached connections to *m*." -msgstr "" +msgstr "Establece el número máximo de conexiones cacheadas a *m*." #: ../Doc/library/urllib.request.rst:1142 msgid "UnknownHandler Objects" -msgstr "" +msgstr "Objetos UnknownHandler" #: ../Doc/library/urllib.request.rst:1147 msgid "Raise a :exc:`~urllib.error.URLError` exception." -msgstr "" +msgstr "Genera una excepción :exc:`~urllib.error.URLError`." #: ../Doc/library/urllib.request.rst:1153 msgid "HTTPErrorProcessor Objects" -msgstr "" +msgstr "Objetos HTTPErrorProcessor" #: ../Doc/library/urllib.request.rst:1159 msgid "For 200 error codes, the response object is returned immediately." msgstr "" +"Para códigos de error que no están en el rango de los 200, el objeto de " +"respuesta es retornado inmediatamente." #: ../Doc/library/urllib.request.rst:1161 msgid "" @@ -1312,30 +1816,39 @@ msgid "" "Eventually, :class:`HTTPDefaultErrorHandler` will raise an :exc:`~urllib." "error.HTTPError` if no other handler handles the error." msgstr "" +"Para códigos de error que no están en el rango de los 200, esto simplemente " +"pasa el trabajo a los métodos del manejador :meth:`http_error_\\`, " +"mediante :meth:`OpenerDirector.error`. Eventualmente, :class:" +"`HTTPDefaultErrorHandler` generará un :exc:`~urllib.error.HTTPError` si " +"ningún otro manejador maneja el error." #: ../Doc/library/urllib.request.rst:1169 msgid "Process HTTPS error responses." -msgstr "" +msgstr "Procesa los errores HTTPS de las respuestas." #: ../Doc/library/urllib.request.rst:1171 msgid "The behavior is same as :meth:`http_response`." -msgstr "" +msgstr "Este comportamiento es el mismo que :meth:`http_response`." #: ../Doc/library/urllib.request.rst:1177 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/urllib.request.rst:1179 msgid "" "In addition to the examples below, more examples are given in :ref:`urllib-" "howto`." msgstr "" +"Adicionalmente a los ejemplos siguientes, se dan más ejemplos en :ref:" +"`urllib-howto`." #: ../Doc/library/urllib.request.rst:1182 msgid "" "This example gets the python.org main page and displays the first 300 bytes " "of it. ::" msgstr "" +"Este ejemplo obtiene la página principal python.org y despliega los primeros " +"300 bytes de ella. ::" #: ../Doc/library/urllib.request.rst:1195 msgid "" @@ -1345,6 +1858,11 @@ msgid "" "returned bytes object to string once it determines or guesses the " "appropriate encoding." msgstr "" +"Tenga en cuenta que urlopen retorna un objeto de bytes. Esto es porque no " +"hay forma para urlopen de determinar automáticamente la codificación del " +"flujo de bytes que recibe del servidor HTTP. En general, un programa " +"decodificará el objeto de bytes retornado a cadena de caracteres una vez que " +"determine o adivine la codificación apropiada." #: ../Doc/library/urllib.request.rst:1201 msgid "" @@ -1352,18 +1870,26 @@ msgid "" "lists the various ways in which an (X)HTML or an XML document could have " "specified its encoding information." msgstr "" +"El siguiente documento W3C, https://www.w3.org/International/O-charset\\ , " +"lista las diferentes formas en la cual un documento (X)HTML o XML podría " +"haber especificado su información de codificación." #: ../Doc/library/urllib.request.rst:1205 msgid "" "As the python.org website uses *utf-8* encoding as specified in its meta " "tag, we will use the same for decoding the bytes object. ::" msgstr "" +"Ya que el sitio web python.org usa codificación *utf-8* tal y como se " +"especifica en su etiqueta meta, usaremos la misma para decodificar el objeto " +"de bytes. ::" #: ../Doc/library/urllib.request.rst:1214 msgid "" "It is also possible to achieve the same result without using the :term:" "`context manager` approach. ::" msgstr "" +"Es posible conseguir el mismo resultado sin usar la aproximación :term:" +"`context manager`. ::" #: ../Doc/library/urllib.request.rst:1223 msgid "" @@ -1371,18 +1897,23 @@ msgid "" "and reading the data it returns to us. Note that this example will only work " "when the Python installation supports SSL. ::" msgstr "" +"En el siguiente ejemplo, estamos enviando un flujo de datos a la entrada " +"estándar de un CGI y leyendo los datos que nos retorna. Tenga en cuenta que " +"este ejemplo sólo funcionará cuando la instalación de Python soporte SSL. ::" #: ../Doc/library/urllib.request.rst:1235 msgid "The code for the sample CGI used in the above example is::" -msgstr "" +msgstr "El código para el CGI de muestra usado en el ejemplo anterior es::" #: ../Doc/library/urllib.request.rst:1242 msgid "Here is an example of doing a ``PUT`` request using :class:`Request`::" msgstr "" +"Aquí hay un ejemplo de realizar una petición ``PUT`` usando :class:" +"`Request`::" #: ../Doc/library/urllib.request.rst:1252 msgid "Use of Basic HTTP Authentication::" -msgstr "" +msgstr "Uso de Autenticación HTTP Básica::" #: ../Doc/library/urllib.request.rst:1266 msgid "" @@ -1392,6 +1923,11 @@ msgid "" "involved. For example, the :envvar:`http_proxy` environment variable is " "read to obtain the HTTP proxy's URL." msgstr "" +":func:`build_opener` proporciona muchos manejadores por defecto, incluyendo " +"un :class:`ProxyHandler`. De forma predeterminada, :class:`ProxyHandler` usa " +"las variables de entorno llamadas ``_proxy``, donde ```` es " +"el esquema URL involucrado. Por ejemplo, se lee la variable de entorno :" +"envvar:`http_proxy` para obtener la URL del proxy HTTP." #: ../Doc/library/urllib.request.rst:1272 msgid "" @@ -1399,20 +1935,25 @@ msgid "" "programmatically-supplied proxy URLs, and adds proxy authorization support " "with :class:`ProxyBasicAuthHandler`. ::" msgstr "" +"Este ejemplo reemplaza el :class:`ProxyHandler` predeterminado por uno que " +"usa URLs de proxy suministradas mediante programación y añade soporte de " +"autorización de proxy con :class:`ProxyBasicAuthHandler`. ::" #: ../Doc/library/urllib.request.rst:1284 msgid "Adding HTTP headers:" -msgstr "" +msgstr "Añadiendo encabezados HTTP:" #: ../Doc/library/urllib.request.rst:1286 msgid "Use the *headers* argument to the :class:`Request` constructor, or::" -msgstr "" +msgstr "Usa el argumento *headers* en el constructor de :class:`Request`, o::" #: ../Doc/library/urllib.request.rst:1295 msgid "" ":class:`OpenerDirector` automatically adds a :mailheader:`User-Agent` header " "to every :class:`Request`. To change this::" msgstr "" +":class:`OpenerDirector` añade automáticamente un encabezado :mailheader:" +"`User-Agent` a cada :class:`Request`. Para cambiar esto::" #: ../Doc/library/urllib.request.rst:1303 msgid "" @@ -1420,12 +1961,18 @@ msgid "" "mailheader:`Content-Type` and :mailheader:`Host`) are added when the :class:" "`Request` is passed to :func:`urlopen` (or :meth:`OpenerDirector.open`)." msgstr "" +"También, recuerda que algunos encabezados estándar (:mailheader:`Content-" +"Length`, :mailheader:`Content-Type` y :mailheader:`Host`) son añadidos " +"cuando se pasa :class:`Request` a :func:`urlopen` (o :meth:`OpenerDirector." +"open`)." #: ../Doc/library/urllib.request.rst:1310 msgid "" "Here is an example session that uses the ``GET`` method to retrieve a URL " "containing parameters::" msgstr "" +"Aquí hay un ejemplo de sesión que usa el método ``GET`` para obtener una URL " +"que contiene los parámetros::" #: ../Doc/library/urllib.request.rst:1321 msgid "" @@ -1433,22 +1980,29 @@ msgid "" "output from urlencode is encoded to bytes before it is sent to urlopen as " "data::" msgstr "" +"El siguiente ejemplo usa el método POST en su lugar. Tenga en cuenta que la " +"salida de parámetros desde urlencode es codificada a bytes antes de ser " +"enviados a urlopen como datos::" #: ../Doc/library/urllib.request.rst:1332 msgid "" "The following example uses an explicitly specified HTTP proxy, overriding " "environment settings::" msgstr "" +"El siguiente ejemplo usa un proxy HTTP especificado, sobrescribiendo las " +"configuraciones de entorno::" #: ../Doc/library/urllib.request.rst:1342 msgid "" "The following example uses no proxies at all, overriding environment " "settings::" msgstr "" +"El siguiente ejemplo no usa proxies, sobrescribiendo las variables de " +"entorno::" #: ../Doc/library/urllib.request.rst:1352 msgid "Legacy interface" -msgstr "" +msgstr "Interfaz heredada" #: ../Doc/library/urllib.request.rst:1354 msgid "" @@ -1456,6 +2010,9 @@ msgid "" "``urllib`` (as opposed to ``urllib2``). They might become deprecated at " "some point in the future." msgstr "" +"Las siguientes funciones y clases están portadas desde el módulo ``urllib`` " +"de Python 2 (en oposición a ``urllib2``). Ellas pueden estar obsoletas en " +"algún punto del futuro." #: ../Doc/library/urllib.request.rst:1360 msgid "" @@ -1466,6 +2023,13 @@ msgid "" "meth:`info` method of the object returned by :func:`urlopen` returned (for a " "remote object). Exceptions are the same as for :func:`urlopen`." msgstr "" +"Copia un objeto de red denotado por una URL a un archivo local. Si la URL " +"apunta a un archivo local, el objeto no será copiado a no ser que sea " +"suministrado un nombre de archivo. Retorna una tupla ``(filename, headers)`` " +"donde *filename* es el nombre de archivo local bajo el cual el objeto puede " +"ser encontrado y *headers* es lo que retorna el método :meth:`info` " +"retornado por :func:`urlopen` (para un objeto remoto). Las excepciones son " +"las mismas que para :func:`urlopen`." #: ../Doc/library/urllib.request.rst:1367 msgid "" @@ -1478,10 +2042,20 @@ msgid "" "The third argument may be ``-1`` on older FTP servers which do not return a " "file size in response to a retrieval request." msgstr "" +"El segundo argumento, si está presente, especifica la localización a la que " +"será copiada el objeto (si está ausente, la localización será un archivo " +"temporal con un nombre generado). El tercer argumento, si está presente, es " +"un objeto invocable que será invocado una vez que se establezca la conexión " +"de red y después de eso una vez después de cada lectura de bloque. Al " +"invocable se le pasarán tres argumentos; una cuenta de los bloques " +"transferidos hasta el momento, un tamaño de bloque en bytes y el tamaño " +"total del archivo. El tercer argumento puede ser ``-1`` en servidores FTP " +"antiguos los cuales no retornan un tamaño de archivo en respuesta a una " +"solicitud de recuperación." #: ../Doc/library/urllib.request.rst:1376 msgid "The following example illustrates the most common usage scenario::" -msgstr "" +msgstr "El siguiente ejemplo ilustra el escenario de uso más común::" #: ../Doc/library/urllib.request.rst:1383 msgid "" @@ -1491,6 +2065,11 @@ msgid "" "mimetype:`application/x-www-form-urlencoded` format; see the :func:`urllib." "parse.urlencode` function." msgstr "" +"Si la *url* usa el esquema de identificador :file:`http:`, el argumento " +"opcional *data* puede ser dado para especificar una petición ``POST`` " +"(normalmente el tipo de petición es ``GET``). El argumento *data* debe ser " +"un objeto de bytes en formato :mimetype:`application/x-www-form-urlencoded`; " +"vea la función :func:`urllib.parse.urlencode`." #: ../Doc/library/urllib.request.rst:1389 msgid "" @@ -1499,6 +2078,10 @@ msgid "" "is the size reported by a *Content-Length* header). This can occur, for " "example, when the download is interrupted." msgstr "" +":func:`urlretrieve` generará :exc:`ContentTooShortError` cuando detecte que " +"la cantidad de datos disponibles sea menor que la cantidad esperada (la cual " +"es el tamaño reportado por un encabezado *Content-Length*). Esto puede " +"ocurrir, por ejemplo, cuando se interrumpe la descarga." #: ../Doc/library/urllib.request.rst:1394 msgid "" @@ -1506,12 +2089,17 @@ msgid "" "read, urlretrieve reads more data, but if less data is available, it raises " "the exception." msgstr "" +"El *Content-Length* es tratado como un límite inferior: si no hay más datos " +"a leer, urlretrieve lee más datos, pero si están disponibles menos datos, se " +"genera la excepción." #: ../Doc/library/urllib.request.rst:1398 msgid "" "You can still retrieve the downloaded data in this case, it is stored in " "the :attr:`content` attribute of the exception instance." msgstr "" +"Puedes seguir obteniendo los datos descargados en este caso, son almacenados " +"en el atributo :attr:`content` de la instancia de la excepción." #: ../Doc/library/urllib.request.rst:1401 msgid "" @@ -1519,12 +2107,17 @@ msgid "" "size of the data it has downloaded, and just returns it. In this case you " "just have to assume that the download was successful." msgstr "" +"Si no fue proporcionado el encabezado *Content-Length*, urlretrieve no puede " +"comprobar el tamaño de los datos que han sido descargados, y sólo los " +"retorna. En este caso sólo tienes que asumir que la descarga fue exitosa." #: ../Doc/library/urllib.request.rst:1407 msgid "" "Cleans up temporary files that may have been left behind by previous calls " "to :func:`urlretrieve`." msgstr "" +"Limpia archivos temporales que pueden haber quedado tras llamadas anteriores " +"a :func:`urlretrieve`." #: ../Doc/library/urllib.request.rst:1414 msgid "" @@ -1532,6 +2125,9 @@ msgid "" "objects using schemes other than :file:`http:`, :file:`ftp:`, or :file:`file:" "`, you probably want to use :class:`FancyURLopener`." msgstr "" +"Clase base para apertura y lectura de URLs. A no ser que necesites soporte " +"de apertura de objetos usando esquemas diferentes a :file:`http:`, :file:" +"`ftp:` o :file:`file:`, probablemente quieras usar :class:`FancyURLopener`." #: ../Doc/library/urllib.request.rst:1418 msgid "" @@ -1542,6 +2138,12 @@ msgid "" "class attribute :attr:`version` to an appropriate string value in the " "subclass definition." msgstr "" +"Por defecto, la clase :class:`URLopener` envía un encabezado :mailheader:" +"`User-Agent` de ``urllib/VVV``, donde *VVV* es el número de versión :mod:" +"`urllib`. Las aplicaciones pueden definir su propio encabezado :mailheader:" +"`User-Agent` heredando de :class:`URLopener` o :class:`FancyURLopener` y " +"estableciendo el atributo de clase :attr:`version` a un valor de cadena de " +"caracteres apropiado en la definición de la subclase." #: ../Doc/library/urllib.request.rst:1424 msgid "" @@ -1550,6 +2152,11 @@ msgid "" "default value is ``None``, in which case environmental proxy settings will " "be used if present, as discussed in the definition of :func:`urlopen`, above." msgstr "" +"El parámetro opcional *proxies* debe ser un diccionario mapeando nombres de " +"esquemas a URLs de proxy, donde un diccionario vacío apaga los proxies " +"completamente. Su valor predeterminado es ``None``, en cuyo caso las " +"configuraciones de proxy del entorno serán usadas si están presentes, como " +"ha sido discutido en la definición de :func:`urlopen`, arriba." #: ../Doc/library/urllib.request.rst:1429 msgid "" @@ -1558,12 +2165,19 @@ msgid "" "keywords *key_file* and *cert_file* are supported to provide an SSL key and " "certificate; both are needed to support client authentication." msgstr "" +"Parámetros adicionales de palabra clave, recogidos en *x509*, pueden ser " +"usados por autenticación del cliente cuando usan el esquema :file:`https:`. " +"Las palabras claves *key_file* y *cert_file* están soportadas para proveer " +"una clave y certificado SSL; ambos son necesarias para soportar " +"autenticación de cliente." #: ../Doc/library/urllib.request.rst:1434 msgid "" ":class:`URLopener` objects will raise an :exc:`OSError` exception if the " "server returns an error code." msgstr "" +"Los objetos :class:`URLopener` generarán una excepción :exc:`OSError` si el " +"servidor retorna un código de error." #: ../Doc/library/urllib.request.rst:1439 msgid "" @@ -1573,14 +2187,21 @@ msgid "" "The *data* argument has the same meaning as the *data* argument of :func:" "`urlopen`." msgstr "" +"Abre *fullurl* usando el protocolo apropiado. Este método configura la " +"información de caché e información de proxy, entonces invoca el método " +"apropiado con sus argumentos de entrada. Si el esquema no está reconocido, " +"se invoca :meth:`open_unknown`. El argumento *data* tiene el mismo " +"significado que el argumento *data* de :func:`urlopen`." #: ../Doc/library/urllib.request.rst:1445 msgid "This method always quotes *fullurl* using :func:`~urllib.parse.quote`." msgstr "" +"Este método siempre entrecomilla *fullurl* usando :func:`~urllib.parse." +"quote`." #: ../Doc/library/urllib.request.rst:1449 msgid "Overridable interface to open unknown URL types." -msgstr "" +msgstr "Interfaz sobrescribible para abrir tipos de URL desconocidos." #: ../Doc/library/urllib.request.rst:1454 msgid "" @@ -1598,6 +2219,20 @@ msgid "" "once at the start and after each chunk of data is read from the network. " "*reporthook* is ignored for local URLs." msgstr "" +"Obtiene el contenido de *url* y lo coloca en *filename*. El valor retornado " +"es una tupla que consiste de un nombre de archivo local y un objeto :class:" +"`email.message.Message` conteniendo los encabezados de respuesta (para URLs " +"remotas) o ``None`` (para URLs locales). El invocador debe entonces abrir y " +"leer los contenidos de *filename*. Si *filename* no está dado y la URL " +"refiere a un archivo local, se retorna el nombre de archivo de entrada. Si " +"la URL no es local y no se da *filename*, el nombre de archivo es la salida " +"de la función :func:`tempfile.mktemp` con un sufijo que concuerda con el " +"sufijo del último componente de la ruta de la URL de entrada. Si se da " +"*reporthook*, debe ser una función que acepte tres parámetros numéricos: Un " +"número de fragmento, se leen los fragmentos de tamaño máximo y el tamaño " +"total de la descarga (-1 si es desconocida). Será invocada una vez al " +"comienzo y después de que cada fragmento de datos sea leído de la red. " +"*reporthook* es ignorado para URLs locales." #: ../Doc/library/urllib.request.rst:1467 msgid "" @@ -1607,6 +2242,11 @@ msgid "" "`application/x-www-form-urlencoded` format; see the :func:`urllib.parse." "urlencode` function." msgstr "" +"Si la *url* usa el identificador de esquema :file:`http:`, el argumento " +"opcional *data* puede ser dado para especificar una petición ``POST`` " +"(normalmente el tipo de petición es ``GET``). El argumento *data* debe estar " +"en formato estándar :mimetype:`application/x-www-form-urlencoded`; vea la " +"función :func:`urllib.parse.urlencode`." #: ../Doc/library/urllib.request.rst:1476 msgid "" @@ -1615,6 +2255,10 @@ msgid "" "subclass as a class variable or in the constructor before calling the base " "constructor." msgstr "" +"Variable que especifica el agente de usuario del objeto abridor. Para " +"obtener :mod:`urllib` para decir a los servidores que es un agente de " +"usuario particular, establece esto en una subclase como una variable de " +"clase o en el constructor antes de invocar el constructor base." #: ../Doc/library/urllib.request.rst:1486 msgid "" @@ -1626,6 +2270,13 @@ msgid "" "codes, recursion is bounded by the value of the *maxtries* attribute, which " "defaults to 10." msgstr "" +":class:`FancyURLopener` hereda de :class:`URLopener` proveyendo manejo " +"predeterminado para los siguientes códigos de respuesta HTTP: 301, 302, 303, " +"307 y 401. Para los códigos de respuesta 30x listados anteriormente, se usa " +"el encabezado :mailheader:`Location` para obtener la URL actual. Para " +"códigos de respuesta 401 (autenticación requerida), se realiza autenticación " +"HTTP. Para los códigos de respuesta 30x, la recursión está limitada por el " +"valor del atributo *maxentries*, el cual por defecto es 10." #: ../Doc/library/urllib.request.rst:1493 msgid "" @@ -1633,6 +2284,9 @@ msgid "" "called which you can override in subclasses to handle the error " "appropriately." msgstr "" +"Para todos los demás códigos de respuesta, se invoca al método :meth:" +"`http_error_default`, que puede sobrescribir en subclases para manejar el " +"error de manera adecuada." #: ../Doc/library/urllib.request.rst:1498 msgid "" @@ -1642,12 +2296,19 @@ msgid "" "responses, changing the POST to a GET, and :mod:`urllib` reproduces this " "behaviour." msgstr "" +"De acuerdo a la carta de :rfc:`2616`, las respuestas a las peticiones POST " +"301 y 302 no debe ser redireccionadas automáticamente sin confirmación por " +"el usuario. En realidad, los navegadores permiten redirección automática de " +"esas respuestas, cambiando de POST a GET, y :mod:`urllib` reproduce este " +"comportamiento." #: ../Doc/library/urllib.request.rst:1503 msgid "" "The parameters to the constructor are the same as those for :class:" "`URLopener`." msgstr "" +"Los parámetros del constructor son el mismo que aquellos para :class:" +"`URLopener`." #: ../Doc/library/urllib.request.rst:1507 msgid "" @@ -1657,12 +2318,19 @@ msgid "" "subclass may override this method to support more appropriate behavior if " "needed." msgstr "" +"Cuando se realiza autenticación básica, una instancia :class:" +"`FancyURLopener` invoca a su método :meth:`prompt_user_passwd`. La " +"implementación predeterminada pregunta a los usuarios la información " +"requerida en la terminal de control. Una subclase puede sobrescribir este " +"método para soportar un comportamiento más apropiado si se necesita." #: ../Doc/library/urllib.request.rst:1512 msgid "" "The :class:`FancyURLopener` class offers one additional method that should " "be overloaded to provide the appropriate behavior:" msgstr "" +"La clase :class:`FancyURLopener` ofrece un método adicional que debe ser " +"sobrecargado para proveer el comportamiento apropiado:" #: ../Doc/library/urllib.request.rst:1517 msgid "" @@ -1670,6 +2338,9 @@ msgid "" "specified security realm. The return value should be a tuple, ``(user, " "password)``, which can be used for basic authentication." msgstr "" +"Retorna la información necesaria para autenticar el usuario en el host dado " +"en el reino de seguridad especificado. El valor retornado debe ser una tupla " +"``(user, password)``, la cual puede ser usada para autenticación básica." #: ../Doc/library/urllib.request.rst:1521 msgid "" @@ -1677,31 +2348,41 @@ msgid "" "application should override this method to use an appropriate interaction " "model in the local environment." msgstr "" +"La implementación solicita esta información en el terminal; una aplicación " +"debe sobrescribir este método para usar un modelo de interacción apropiado " +"en el entorno local." #: ../Doc/library/urllib.request.rst:1527 msgid ":mod:`urllib.request` Restrictions" -msgstr "" +msgstr "Restricciones :mod:`urllib.request`" #: ../Doc/library/urllib.request.rst:1533 msgid "" "Currently, only the following protocols are supported: HTTP (versions 0.9 " "and 1.0), FTP, local files, and data URLs." msgstr "" +"Actualmente, sólo uno de los siguientes protocolo están soportados: HTTP " +"(versiones 0.9 y 1.0), FTP, archivos locales y URLs de datos." #: ../Doc/library/urllib.request.rst:1536 msgid "Added support for data URLs." -msgstr "" +msgstr "Añadido soporte para URLs de datos." #: ../Doc/library/urllib.request.rst:1538 msgid "" "The caching feature of :func:`urlretrieve` has been disabled until someone " "finds the time to hack proper processing of Expiration time headers." msgstr "" +"La característica de caché de :func:`urlretrieve` ha sido deshabilitada " +"hasta que alguien encuentre el tiempo para hackear el procesamiento adecuado " +"de los encabezados de tiempo de Expiración." #: ../Doc/library/urllib.request.rst:1541 msgid "" "There should be a function to query whether a particular URL is in the cache." msgstr "" +"Debería haber una función para consultar si una URL en particular está en la " +"caché." #: ../Doc/library/urllib.request.rst:1543 msgid "" @@ -1709,6 +2390,10 @@ msgid "" "the file can't be opened, the URL is re-interpreted using the FTP protocol. " "This can sometimes cause confusing error messages." msgstr "" +"Para compatibilidad con versiones anteriores, si una URL parece apuntar a un " +"archivo local pero el archivo no puede ser abierto, la URL es reinterpretada " +"usando el protocolo FTP. Esto a veces puede causar mensajes de error " +"confusos." #: ../Doc/library/urllib.request.rst:1547 msgid "" @@ -1717,6 +2402,10 @@ msgid "" "that it is difficult to build an interactive Web client using these " "functions without using threads." msgstr "" +"Las funciones :func:`urlopen` y :func:`urlretrieve` pueden causar retrasos " +"arbitrariamente largos mientras esperan a que se configure una conexión de " +"red. Esto significa que es difícil construir un cliente Web interactivo " +"usando estas funciones sin utilizar hilos." #: ../Doc/library/urllib.request.rst:1556 msgid "" @@ -1727,6 +2416,13 @@ msgid "" "`Content-Type` header. If the returned data is HTML, you can use the " "module :mod:`html.parser` to parse it." msgstr "" +"Los datos retornados por :func:`urlopen` o :func:`urlretrieve` son los datos " +"en crudo retornados por el servidor. Estos pueden ser datos binarios (como " +"una imagen), texto plano o (por ejemplo) HTML. El protocolo HTTP provee " +"información de tipo en el encabezado de respuesta, el cual puede ser " +"inspeccionado mirando el encabezado :mailheader:`Content-Type`. Si los datos " +"retornados son HTML, puedes usar el módulo :mod:`html.parser` para " +"analizarlos." #: ../Doc/library/urllib.request.rst:1565 msgid "" @@ -1745,10 +2441,25 @@ msgid "" "module, subclassing :class:`FancyURLopener`, or changing *_urlopener* to " "meet your needs." msgstr "" +"El código que maneja el protocolo FTP no puede diferenciar entre un archivo " +"y un directorio. Esto puede llevar a un comportamiento inesperado cuando se " +"intenta leer una URL que apunta a un archivo que no es accesible. Si la URL " +"termina en un ``/``, se asume que se refiere a un directorio y será manejada " +"acordemente. Pero si un intento de leer un archivo lleva a un error 550 (lo " +"que significa que la URL no puede ser encontrada o no es accesible, a menudo " +"por razones de permisos), entonces se trata la ruta como un directorio para " +"manejar el caso cuando un directorio es especificado por una URL pero el ``/" +"`` trasero ha sido dejado fuera. Esto puede causar resultados erróneos " +"cuando intenta obtener un archivo cuyos permisos de lectura lo hacen " +"inaccesible; el código FTP intentará leerlo, fallará con un error 550 y " +"entonces realizará un listado de directorio para el archivo ilegible. Si se " +"necesita un control más detallado, considere usar el módulo :mod:`ftplib`, " +"heredando :class:`FancyURLopener` o cambiando *_urlopener* para ajustarlo a " +"tus necesidades." #: ../Doc/library/urllib.request.rst:1582 msgid ":mod:`urllib.response` --- Response classes used by urllib" -msgstr "" +msgstr ":mod:`urllib.response` --- Clases de respuesta usadas por urllib" #: ../Doc/library/urllib.request.rst:1587 msgid "" @@ -1759,3 +2470,9 @@ msgid "" "returns the url. Functions defined by this module are used internally by " "the :mod:`urllib.request` module." msgstr "" +"El módulo :mod:`urllib.response` define funciones y clases las cuales " +"definen una interfaz mínima como objeto de archivo, incluyendo ``read()`` y " +"``readline()``. El objeto de respuesta típico es una instancia addinfourl, " +"la cual define un método ``info()`` y este retorna encabezados y un método " +"``geturl()`` que retorna la url. Las funciones definidas por este módulo son " +"usadas internamente por el módulo :mod:`urllib.request`." diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po index 52f5267a0c..a7b8312234 100644 --- a/library/urllib.robotparser.po +++ b/library/urllib.robotparser.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: 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-01-08 15:24-0600\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.1\n" #: ../Doc/library/urllib.robotparser.rst:2 msgid ":mod:`urllib.robotparser` --- Parser for robots.txt" -msgstr "" +msgstr ":mod:`urllib.robotparser` --- Analizador para robots.txt" #: ../Doc/library/urllib.robotparser.rst:10 msgid "**Source code:** :source:`Lib/urllib/robotparser.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/urllib/robotparser.py`" #: ../Doc/library/urllib.robotparser.rst:20 msgid "" @@ -36,30 +38,39 @@ msgid "" "on the structure of :file:`robots.txt` files, see http://www.robotstxt.org/" "orig.html." msgstr "" +"Este módulo proporciona una sola clase, :class:`RobotFileParser`, la cual " +"responde preguntas acerca de si un agente de usuario en particular puede o " +"no obtener una URL en el sitio Web que publico el archivo :file:`robots." +"txt`. Para más detalles sobre la estructura del archivo :file:`robots.txt`, " +"consulte http://www.robotstxt.org/orig.html." #: ../Doc/library/urllib.robotparser.rst:28 msgid "" "This class provides methods to read, parse and answer questions about the :" "file:`robots.txt` file at *url*." msgstr "" +"Esta clase proporciona métodos para leer, analizar y responder preguntas " +"acerca de :file:`robots.txt`" #: ../Doc/library/urllib.robotparser.rst:33 msgid "Sets the URL referring to a :file:`robots.txt` file." -msgstr "" +msgstr "Establece la URL que hace referencia a un archivo :file:`robots.txt`." #: ../Doc/library/urllib.robotparser.rst:37 msgid "Reads the :file:`robots.txt` URL and feeds it to the parser." -msgstr "" +msgstr "Lee la URL :file:`robots.txt` y la envía al analizador." #: ../Doc/library/urllib.robotparser.rst:41 msgid "Parses the lines argument." -msgstr "" +msgstr "Analiza el argumento *lines*." #: ../Doc/library/urllib.robotparser.rst:45 msgid "" "Returns ``True`` if the *useragent* is allowed to fetch the *url* according " "to the rules contained in the parsed :file:`robots.txt` file." msgstr "" +"Retorna ``True`` si el *useragent* tiene permiso para buscar la *url* de " +"acuerdo con las reglas contenidas en el archivo :file:`robots.txt` analizado." #: ../Doc/library/urllib.robotparser.rst:51 msgid "" @@ -67,11 +78,16 @@ msgid "" "for long-running web spiders that need to check for new ``robots.txt`` files " "periodically." msgstr "" +"Retorna la hora en que se recuperó por última vez el archivo ``robots.txt``. " +"Esto es útil para arañas web de larga duración que necesitan buscar nuevos " +"archivos ``robots.txt`` periódicamente." #: ../Doc/library/urllib.robotparser.rst:57 msgid "" "Sets the time the ``robots.txt`` file was last fetched to the current time." msgstr "" +"Establece la hora a la que se recuperó por última vez el archivo ``robots." +"txt`` hasta la hora actual." #: ../Doc/library/urllib.robotparser.rst:62 msgid "" @@ -80,6 +96,10 @@ msgid "" "apply to the *useragent* specified or the ``robots.txt`` entry for this " "parameter has invalid syntax, return ``None``." msgstr "" +"Retorna el valor del parámetro ``Crawl-delay`` de ``robots.txt`` para el " +"*useragent* en cuestión. Si no existe tal parámetro o no se aplica al " +"*useragent* especificado o la entrada ``robots.txt`` para este parámetro " +"tiene una sintaxis no válida, devuelve ``None``." #: ../Doc/library/urllib.robotparser.rst:71 msgid "" @@ -88,6 +108,11 @@ msgid "" "such parameter or it doesn't apply to the *useragent* specified or the " "``robots.txt`` entry for this parameter has invalid syntax, return ``None``." msgstr "" +"Retorna el contenido del parámetro ``Request-rate`` de ``robots.txt`` como " +"una :term:`tupla nombrada` ``RequestRate(requests, seconds)``. Si no existe " +"tal parámetro o no se aplica al *useragent* especificado o la entrada " +"``robots.txt`` para este parámetro tiene una sintaxis no válida, devuelve " +"``None``." #: ../Doc/library/urllib.robotparser.rst:81 msgid "" @@ -95,9 +120,14 @@ msgid "" "form of a :func:`list`. If there is no such parameter or the ``robots.txt`` " "entry for this parameter has invalid syntax, return ``None``." msgstr "" +"Retorna el contenido del parámetro ``Sitemap`` de ``robots.txt`` en forma " +"de :func:`list`. Si no existe tal parámetro o la entrada ``robots.txt`` para " +"este parámetro tiene una sintaxis no válida, devuelve ``None``." #: ../Doc/library/urllib.robotparser.rst:89 msgid "" "The following example demonstrates basic use of the :class:`RobotFileParser` " "class::" msgstr "" +"El siguiente ejemplo demuestra el uso básico de la clase :class:" +"`RobotFileParser`:" diff --git a/library/uu.po b/library/uu.po index 86124ff258..9613ef4904 100644 --- a/library/uu.po +++ b/library/uu.po @@ -1,29 +1,32 @@ # 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: 2020-11-19 11:07-0300\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: Federico Zuccolo \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" +# La codificación 'uuencode' figura como 'UUEncode' en la Wikipedia en español. #: ../Doc/library/uu.rst:2 msgid ":mod:`uu` --- Encode and decode uuencode files" -msgstr "" +msgstr ":mod:`uu` --- Codifica y decodifica archivos UUEncode" #: ../Doc/library/uu.rst:9 msgid "**Source code:** :source:`Lib/uu.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/uu.py`" #: ../Doc/library/uu.rst:13 msgid "" @@ -36,15 +39,27 @@ msgid "" "interface is deprecated; it's better for the caller to open the file itself, " "and be sure that, when required, the mode is ``'rb'`` or ``'wb'`` on Windows." msgstr "" +"Este módulo codifica y decodifica archivos en formato UUEncode, permitiendo " +"la transmisión de datos binarios arbitrarios sobre conexiones de solo " +"ASCII. Allí donde se espera un archivo como argumento, los métodos aceptan " +"un objeto similar a un archivo. Por compatibilidad con versiones " +"anteriores, una cadena que contenga un nombre de ruta también es aceptada, y " +"el archivo correspondiente será abierto para lectura y escritura; el nombre " +"de ruta ``'-'`` es entendido como la entrada o salida estándar. Sin " +"embargo, esta interface es obsoleta; es mejor que el invocador abra el " +"archivo por sí mismo y asegurarse de que, cuando se requiera, el modo sea " +"``'rb'`` o ``'wb'`` en Windows." #: ../Doc/library/uu.rst:26 msgid "" "This code was contributed by Lance Ellinghouse, and modified by Jack Jansen." msgstr "" +"Este código fue contribuido por Lance Ellinghouse y modificado por Jack " +"Jansen." #: ../Doc/library/uu.rst:28 msgid "The :mod:`uu` module defines the following functions:" -msgstr "" +msgstr "El módulo :mod:`uu` define las siguientes funciones:" #: ../Doc/library/uu.rst:33 msgid "" @@ -54,10 +69,16 @@ msgid "" "and ``0o666`` respectively. If *backtick* is true, zeros are represented by " "``'`'`` instead of spaces." msgstr "" +"Codificar con UUEncode el archivo *in_file* en el archivo *out_file*. El " +"archivo codificado con UUEncode tendrá un encabezado especificando *name* y " +"*mode* como valores por defecto para los resultados de la decodificación del " +"archivo. Los valores por defecto iniciales son tomados de *in_file*, o " +"``'-'`` y ``0o666`` respectivamente. Si *backtick* es verdadero, los ceros " +"son representados por ``'`'`` en lugar de espacios." #: ../Doc/library/uu.rst:39 msgid "Added the *backtick* parameter." -msgstr "" +msgstr "Agregado el parámetro *backtick*." #: ../Doc/library/uu.rst:45 msgid "" @@ -67,6 +88,12 @@ msgid "" "*mode* are taken from the uuencode header. However, if the file specified " "in the header already exists, a :exc:`uu.Error` is raised." msgstr "" +"Esta invocación decodifica el archivo codificado en UUEncode *in_file* y " +"coloca el resultado en el archivo *out_file*. Si *out_file* es un nombre de " +"ruta, *mode* es usado para establecer los bits de permiso si el archivo debe " +"ser creado. Valores por defecto para *out_file* y *mode* se toman del " +"encabezado UUEncode. Sin embargo, si el archivo especificado en el " +"encabezado existe, se genera un :exc:`uu.Error`." #: ../Doc/library/uu.rst:51 msgid "" @@ -74,6 +101,10 @@ msgid "" "produced by an incorrect uuencoder and Python could recover from that " "error. Setting *quiet* to a true value silences this warning." msgstr "" +":func:`decode` puede imprimir una advertencia a error estándar si la entrada " +"fue producida por un UUEncoder incorrecto y Python pudo recobrarse de ese " +"error. Si se establece *quiet* a un valor verdadero se suprime esta " +"advertencia." #: ../Doc/library/uu.rst:58 msgid "" @@ -81,12 +112,17 @@ msgid "" "various situations, such as described above, but also including a badly " "formatted header, or truncated input file." msgstr "" +"Subclase de :exc:`Exception`, esta puede ser generada por :func:`uu.decode` " +"en diversas situaciones, como las descriptas arriba, pero también si se " +"incluye un encabezado mal formado o un archivo de entrada truncado." #: ../Doc/library/uu.rst:65 msgid "Module :mod:`binascii`" -msgstr "" +msgstr "Módulo :mod:`binascii`" #: ../Doc/library/uu.rst:66 msgid "" "Support module containing ASCII-to-binary and binary-to-ASCII conversions." msgstr "" +"Módulo de soporte que contiene conversiones de ASCII a binario y de binario " +"a ASCII." diff --git a/library/webbrowser.po b/library/webbrowser.po index 0fbee319af..e32546aa8a 100644 --- a/library/webbrowser.po +++ b/library/webbrowser.po @@ -6,27 +6,28 @@ # 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: 2020-10-10 17:42+0200\n" +"Last-Translator: Álvaro Mondéjar \n" "Language-Team: python-doc-es\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/webbrowser.rst:2 msgid ":mod:`webbrowser` --- Convenient Web-browser controller" -msgstr "" +msgstr ":mod:`webbrowser` --- Cómodo controlador de navegador web" #: ../Doc/library/webbrowser.rst:10 msgid "**Source code:** :source:`Lib/webbrowser.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/webbrowser.py`" #: ../Doc/library/webbrowser.rst:14 msgid "" @@ -34,6 +35,10 @@ msgid "" "displaying Web-based documents to users. Under most circumstances, simply " "calling the :func:`.open` function from this module will do the right thing." msgstr "" +"El módulo :mod:`webbrowser` provee una interfaz de alto nivel que permite " +"desplegar documentos basados en la web a los usuarios. Bajo la mayoría de " +"circunstancias, simplemente invocando la función :func:`.open` desde este " +"módulo se realizará la acción correcta." #: ../Doc/library/webbrowser.rst:18 msgid "" @@ -42,6 +47,11 @@ msgid "" "display isn't available. If text-mode browsers are used, the calling " "process will block until the user exits the browser." msgstr "" +"En Unix, son privilegiados los navegadores gráficos bajo X11, pero serán " +"usados navegadores en modo texto si los navegadores gráficos no están " +"disponibles o un *display* X11 no está disponible. Si se usan navegadores en " +"modo texto, el proceso invocador será bloqueado hasta que el usuario salga " +"del navegador." #: ../Doc/library/webbrowser.rst:23 #, python-format @@ -53,6 +63,13 @@ msgid "" "with the argument URL substituted for ``%s``; if the part does not contain ``" "%s``, it is simply interpreted as the name of the browser to launch. [1]_" msgstr "" +"Si existe la variable de entorno :envvar:`BROWSER`, esta es interpretada " +"como la lista de navegadores a probar antes de los predeterminados de la " +"plataforma, separados por :data:`os.pathsep`. Cuando el valor de una parte " +"de la lista contiene la cadena ``%s``, este es interpretado como una línea " +"de comando literal de un navegador a usar con el argumento URL substituido " +"por ``%s``; si la parte no contiene ``%s``, esta se interpreta simplemente " +"como el nombre del navegador a lanzar. [1]_" #: ../Doc/library/webbrowser.rst:30 msgid "" @@ -62,6 +79,11 @@ msgid "" "remote browsers are not available on Unix, the controlling process will " "launch a new browser and wait." msgstr "" +"En plataformas no Unix o cuando está disponible un navegador remoto en Unix, " +"el proceso de control no esperará a que el usuario finalice el navegador, " +"sino que permitirá al navegador remoto mantener su propia ventana en la " +"pantalla. Si no están disponibles navegadores remotos en Unix, el proceso de " +"control lanzará un nuevo navegador y esperará." #: ../Doc/library/webbrowser.rst:36 msgid "" @@ -71,18 +93,24 @@ msgid "" "possible; ``-t`` opens the URL in a new browser page (\"tab\"). The options " "are, naturally, mutually exclusive. Usage example::" msgstr "" +"El script :program:`webbrowser` puede ser usado como una interfaz de línea " +"de comandos para el módulo. Acepta una URL como argumento. Acepta los " +"siguientes parámetros opcionales: ``-n`` abre la URL en una nueva ventana " +"del navegador, si es posible; ``-t`` abre la URL en una nueva página del " +"navegador (\"pestaña\"). Las opciones son, naturalmente, mutuamente " +"exclusivas. Ejemplo de uso::" #: ../Doc/library/webbrowser.rst:44 msgid "The following exception is defined:" -msgstr "" +msgstr "La siguiente excepción es definida:" #: ../Doc/library/webbrowser.rst:49 msgid "Exception raised when a browser control error occurs." -msgstr "" +msgstr "Excepción generada cuando ocurre un error de control de navegador." #: ../Doc/library/webbrowser.rst:51 msgid "The following functions are defined:" -msgstr "" +msgstr "Las siguientes funciones son definidas:" #: ../Doc/library/webbrowser.rst:56 msgid "" @@ -93,6 +121,13 @@ msgid "" "possible (note that under many window managers this will occur regardless of " "the setting of this variable)." msgstr "" +"Muestra *url* usando el navegador por defecto. Si *new* es 0, se abre la " +"*url* en la misma ventana del navegador si es posible. Si *new* es 1, se " +"abre una nueva ventana del navegador si es posible. Si *new* es 2, se abre " +"una nueva página del navegador (\"pestaña\") si es posible. Si *autoraise* " +"es ``True``, la ventana es lanzada si es posible (ten en cuenta que bajo " +"muchos gestores de ventana esto ocurrirá independientemente de la " +"configuración de esta variable)." #: ../Doc/library/webbrowser.rst:63 msgid "" @@ -100,24 +135,33 @@ msgid "" "may work and start the operating system's associated program. However, this " "is neither supported nor portable." msgstr "" +"Ten en cuenta que en algunas plataformas, tratar de abrir un nombre de " +"archivo usando esta función puede funcionar e iniciar el programa asociado " +"del sistema operativo. Sin embargo, esto no es soportado ni portable." #: ../Doc/library/webbrowser.rst:67 msgid "" "Raises an :ref:`auditing event ` ``webbrowser.open`` with argument " "``url``." msgstr "" +"Lanza un :ref:`evento de auditoría ` ``webbrowser.open`` con el " +"argumento ``url``." #: ../Doc/library/webbrowser.rst:72 msgid "" "Open *url* in a new window of the default browser, if possible, otherwise, " "open *url* in the only browser window." msgstr "" +"Abre *url* en una nueva ventana del navegador por defecto, si es posible, si " +"no, abre *url* en la única ventana del navegador." #: ../Doc/library/webbrowser.rst:77 msgid "" "Open *url* in a new page (\"tab\") of the default browser, if possible, " "otherwise equivalent to :func:`open_new`." msgstr "" +"Abre *url* en una nueva página (\"pestaña\") del navegador por defecto, si " +"es posible, si no equivale a :func:`open_new`." #: ../Doc/library/webbrowser.rst:83 msgid "" @@ -125,6 +169,9 @@ msgid "" "``None``, return a controller for a default browser appropriate to the " "caller's environment." msgstr "" +"Retorna un objeto de controlador para el tipo de navegador *using*. Si " +"*using* es ``None``, retorna un controlador de un navegador por defecto " +"apropiado para el entorno del invocador." #: ../Doc/library/webbrowser.rst:90 msgid "" @@ -134,6 +181,12 @@ msgid "" "without parameters to create an instance when needed. If *instance* is " "provided, *constructor* will never be called, and may be ``None``." msgstr "" +"Registra el tipo de navegador *name*. Una vez que el tipo de navegador es " +"registrado, la función :func:`get` puede retornar un controlador para ese " +"tipo de navegador. Si no se provee *instance* o es ``None``, *constructor* " +"será invocado sin parámetros al crear una instancia cuando sea necesario. Si " +"se provee *instance*, *constructor* no será nunca invocado y puede ser " +"``None``." #: ../Doc/library/webbrowser.rst:96 msgid "" @@ -143,10 +196,15 @@ msgid "" "func:`get` with a nonempty argument matching the name of a handler you " "declare." msgstr "" +"Definir *preferred* a ``True`` hace de este navegador un resultado preferido " +"para una invocación :func:`get` sin argumento. De otra manera, este punto de " +"entrada sólo es útil si planeas definir la variable :envvar:`BROWSER` o " +"invocar :func:`get` con un argumento no vacío correspondiendo con el nombre " +"de un manejador que declaras." #: ../Doc/library/webbrowser.rst:102 msgid "*preferred* keyword-only parameter was added." -msgstr "" +msgstr "fue añadido el parámetro sólo de palabra clave *preferred*." #: ../Doc/library/webbrowser.rst:105 msgid "" @@ -154,208 +212,212 @@ msgid "" "that may be passed to the :func:`get` function and the corresponding " "instantiations for the controller classes, all defined in this module." msgstr "" +"Un número de tipos de navegador son predefinidos. Esta tabla muestra los " +"nombres de los tipos que se pueden pasar a la función :func:`get` y las " +"instanciaciones correspondientes para las clases de los controladores, todas " +"definidas en este módulo." #: ../Doc/library/webbrowser.rst:110 msgid "Type Name" -msgstr "" +msgstr "Nombre de tipo" #: ../Doc/library/webbrowser.rst:110 msgid "Class Name" -msgstr "" +msgstr "Nombre de clase" #: ../Doc/library/webbrowser.rst:110 msgid "Notes" -msgstr "" +msgstr "Notas" #: ../Doc/library/webbrowser.rst:112 msgid "``'mozilla'``" -msgstr "" +msgstr "``'mozilla'``" #: ../Doc/library/webbrowser.rst:112 ../Doc/library/webbrowser.rst:114 msgid ":class:`Mozilla('mozilla')`" -msgstr "" +msgstr ":class:`Mozilla('mozilla')`" #: ../Doc/library/webbrowser.rst:114 msgid "``'firefox'``" -msgstr "" +msgstr "``'firefox'``" #: ../Doc/library/webbrowser.rst:116 msgid "``'netscape'``" -msgstr "" +msgstr "``'netscape'``" #: ../Doc/library/webbrowser.rst:116 msgid ":class:`Mozilla('netscape')`" -msgstr "" +msgstr ":class:`Mozilla('netscape')`" #: ../Doc/library/webbrowser.rst:118 msgid "``'galeon'``" -msgstr "" +msgstr "``'galeon'``" #: ../Doc/library/webbrowser.rst:118 msgid ":class:`Galeon('galeon')`" -msgstr "" +msgstr ":class:`Galeon('galeon')`" #: ../Doc/library/webbrowser.rst:120 msgid "``'epiphany'``" -msgstr "" +msgstr "``'epiphany'``" #: ../Doc/library/webbrowser.rst:120 msgid ":class:`Galeon('epiphany')`" -msgstr "" +msgstr ":class:`Galeon('epiphany')`" #: ../Doc/library/webbrowser.rst:122 msgid "``'skipstone'``" -msgstr "" +msgstr "``'skipstone'``" #: ../Doc/library/webbrowser.rst:122 msgid ":class:`BackgroundBrowser('skipstone')`" -msgstr "" +msgstr ":class:`BackgroundBrowser('skipstone')`" #: ../Doc/library/webbrowser.rst:124 msgid "``'kfmclient'``" -msgstr "" +msgstr "``'kfmclient'``" #: ../Doc/library/webbrowser.rst:124 ../Doc/library/webbrowser.rst:126 #: ../Doc/library/webbrowser.rst:128 msgid ":class:`Konqueror()`" -msgstr "" +msgstr ":class:`Konqueror()`" #: ../Doc/library/webbrowser.rst:124 ../Doc/library/webbrowser.rst:126 #: ../Doc/library/webbrowser.rst:128 msgid "\\(1)" -msgstr "" +msgstr "\\(1)" #: ../Doc/library/webbrowser.rst:126 msgid "``'konqueror'``" -msgstr "" +msgstr "``'konqueror'``" #: ../Doc/library/webbrowser.rst:128 msgid "``'kfm'``" -msgstr "" +msgstr "``'kfm'``" #: ../Doc/library/webbrowser.rst:130 msgid "``'mosaic'``" -msgstr "" +msgstr "``'mosaic'``" #: ../Doc/library/webbrowser.rst:130 msgid ":class:`BackgroundBrowser('mosaic')`" -msgstr "" +msgstr ":class:`BackgroundBrowser('mosaic')`" #: ../Doc/library/webbrowser.rst:132 msgid "``'opera'``" -msgstr "" +msgstr "``'opera'``" #: ../Doc/library/webbrowser.rst:132 msgid ":class:`Opera()`" -msgstr "" +msgstr ":class:`Opera()`" #: ../Doc/library/webbrowser.rst:134 msgid "``'grail'``" -msgstr "" +msgstr "``'grail'``" #: ../Doc/library/webbrowser.rst:134 msgid ":class:`Grail()`" -msgstr "" +msgstr ":class:`Grail()`" #: ../Doc/library/webbrowser.rst:136 msgid "``'links'``" -msgstr "" +msgstr "``'links'``" #: ../Doc/library/webbrowser.rst:136 msgid ":class:`GenericBrowser('links')`" -msgstr "" +msgstr ":class:`GenericBrowser('links')`" #: ../Doc/library/webbrowser.rst:138 msgid "``'elinks'``" -msgstr "" +msgstr "``'elinks'``" #: ../Doc/library/webbrowser.rst:138 msgid ":class:`Elinks('elinks')`" -msgstr "" +msgstr ":class:`Elinks('elinks')`" #: ../Doc/library/webbrowser.rst:140 msgid "``'lynx'``" -msgstr "" +msgstr "``'lynx'``" #: ../Doc/library/webbrowser.rst:140 msgid ":class:`GenericBrowser('lynx')`" -msgstr "" +msgstr ":class:`GenericBrowser('lynx')`" #: ../Doc/library/webbrowser.rst:142 msgid "``'w3m'``" -msgstr "" +msgstr "``'w3m'``" #: ../Doc/library/webbrowser.rst:142 msgid ":class:`GenericBrowser('w3m')`" -msgstr "" +msgstr ":class:`GenericBrowser('w3m')`" #: ../Doc/library/webbrowser.rst:144 msgid "``'windows-default'``" -msgstr "" +msgstr "``'windows-default'``" #: ../Doc/library/webbrowser.rst:144 msgid ":class:`WindowsDefault`" -msgstr "" +msgstr ":class:`WindowsDefault`" #: ../Doc/library/webbrowser.rst:144 msgid "\\(2)" -msgstr "" +msgstr "\\(2)" #: ../Doc/library/webbrowser.rst:146 msgid "``'macosx'``" -msgstr "" +msgstr "``'macosx'``" #: ../Doc/library/webbrowser.rst:146 msgid ":class:`MacOSX('default')`" -msgstr "" +msgstr ":class:`MacOSX('default')`" #: ../Doc/library/webbrowser.rst:146 ../Doc/library/webbrowser.rst:148 msgid "\\(3)" -msgstr "" +msgstr "\\(3)" #: ../Doc/library/webbrowser.rst:148 msgid "``'safari'``" -msgstr "" +msgstr "``'safari'``" #: ../Doc/library/webbrowser.rst:148 msgid ":class:`MacOSX('safari')`" -msgstr "" +msgstr ":class:`MacOSX('safari')`" #: ../Doc/library/webbrowser.rst:150 msgid "``'google-chrome'``" -msgstr "" +msgstr "``'google-chrome'``" #: ../Doc/library/webbrowser.rst:150 msgid ":class:`Chrome('google-chrome')`" -msgstr "" +msgstr ":class:`Chrome('google-chrome')`" #: ../Doc/library/webbrowser.rst:152 msgid "``'chrome'``" -msgstr "" +msgstr "``'chrome'``" #: ../Doc/library/webbrowser.rst:152 msgid ":class:`Chrome('chrome')`" -msgstr "" +msgstr ":class:`Chrome('chrome')`" #: ../Doc/library/webbrowser.rst:154 msgid "``'chromium'``" -msgstr "" +msgstr "``'chromium'``" #: ../Doc/library/webbrowser.rst:154 msgid ":class:`Chromium('chromium')`" -msgstr "" +msgstr ":class:`Chromium('chromium')`" #: ../Doc/library/webbrowser.rst:156 msgid "``'chromium-browser'``" -msgstr "" +msgstr "``'chromium-browser'``" #: ../Doc/library/webbrowser.rst:156 msgid ":class:`Chromium('chromium-browser')`" -msgstr "" +msgstr ":class:`Chromium('chromium-browser')`" #: ../Doc/library/webbrowser.rst:159 msgid "Notes:" -msgstr "" +msgstr "Notas:" #: ../Doc/library/webbrowser.rst:162 msgid "" @@ -366,32 +428,40 @@ msgid "" "program:`konqueror` command with KDE 2 --- the implementation selects the " "best strategy for running Konqueror." msgstr "" +"\"Konqueror\" es el manejador de archivos para el entorno de escritorio KDE " +"para Unix y sólo tiene sentido usarlo si KDE está en ejecución. Alguna forma " +"de detectar de manera confiable KDE sería genial; la variable :envvar:" +"`KDEDIR` no es suficiente. Ten en cuenta también que el nombre \"kfm\" es " +"usado incluso utilizando el comando :program:`konqueror` con KDE 2 --- la " +"implementación selecciona la mejor estrategia para ejecutar Konqueror." #: ../Doc/library/webbrowser.rst:169 msgid "Only on Windows platforms." -msgstr "" +msgstr "Sólo en plataformas Windows." #: ../Doc/library/webbrowser.rst:172 msgid "Only on Mac OS X platform." -msgstr "" +msgstr "Sólo en la plataforma Mac OS X." #: ../Doc/library/webbrowser.rst:174 msgid "Support for Chrome/Chromium has been added." -msgstr "" +msgstr "Ha sido añadido soporte para Chrome/Chromium." #: ../Doc/library/webbrowser.rst:177 msgid "Here are some simple examples::" -msgstr "" +msgstr "Aquí están algunos ejemplos simples::" #: ../Doc/library/webbrowser.rst:191 msgid "Browser Controller Objects" -msgstr "" +msgstr "Objetos controladores de navegador" #: ../Doc/library/webbrowser.rst:193 msgid "" "Browser controllers provide these methods which parallel three of the module-" "level convenience functions:" msgstr "" +"Los controladores de navegador proveen aquellos métodos que son paralelos a " +"tres de las funciones de conveniencia a nivel del módulo:" #: ../Doc/library/webbrowser.rst:199 msgid "" @@ -399,6 +469,9 @@ msgid "" "new browser window is opened if possible. If *new* is 2, a new browser page " "(\"tab\") is opened if possible." msgstr "" +"Despliega *url* usando el navegador manejado por este controlador. Si *new* " +"es 1, se abre una nueva ventana del navegador si es posible. Si *new* es 2, " +"se abre una nueva página del navegador (\"pestaña\") si es posible." #: ../Doc/library/webbrowser.rst:206 msgid "" @@ -406,19 +479,26 @@ msgid "" "possible, otherwise, open *url* in the only browser window. Alias :func:" "`open_new`." msgstr "" +"Abre *url* en una nueva ventana del navegador manejado por este controlador, " +"si es posible, si no, abre *url* en la única ventana del navegador. Alias :" +"func:`open_new`." #: ../Doc/library/webbrowser.rst:213 msgid "" "Open *url* in a new page (\"tab\") of the browser handled by this " "controller, if possible, otherwise equivalent to :func:`open_new`." msgstr "" +"Abre *url* en una nueva página (\"pestaña\") del navegador manejado por este " +"controlador, si es posible, si no equivale a :func:`open_new`." #: ../Doc/library/webbrowser.rst:218 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/library/webbrowser.rst:219 msgid "" "Executables named here without a full path will be searched in the " "directories given in the :envvar:`PATH` environment variable." msgstr "" +"Los ejecutables nombrados aquí sin una ruta completa serán buscados en los " +"directorios dados en la variable de entorno :envvar:`PATH`." diff --git a/library/windows.po b/library/windows.po index 7426d8b9da..deebcf90a3 100644 --- a/library/windows.po +++ b/library/windows.po @@ -1,28 +1,32 @@ # 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: 2020-10-31 21:19-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/library/windows.rst:5 msgid "MS Windows Specific Services" -msgstr "" +msgstr "Servicios Específicos para MS Windows" #: ../Doc/library/windows.rst:7 msgid "" "This chapter describes modules that are only available on MS Windows " "platforms." msgstr "" +"Este capítulo describe los módulos que sólo están disponibles en plataformas " +"MS Windows." diff --git a/library/winreg.po b/library/winreg.po index 7dab5bdd67..b2f4b42fb3 100644 --- a/library/winreg.po +++ b/library/winreg.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" +"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"PO-Revision-Date: 2020-10-11 15: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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language-Team: \n" +"Language: es_CO\n" +"X-Generator: Poedit 2.4.1\n" "Generated-By: Babel 2.8.0\n" +"Last-Translator: Juan Alegría \n" #: ../Doc/library/winreg.rst:2 msgid ":mod:`winreg` --- Windows registry access" -msgstr "" +msgstr ":mod:`winreg` --- Acceso al registro de Windows" #: ../Doc/library/winreg.rst:12 msgid "" @@ -31,48 +34,63 @@ msgid "" "used to ensure that the handles are closed correctly, even if the programmer " "neglects to explicitly close them." msgstr "" +"Estas funciones exponen la API de registro de Windows a Python. En lugar de " +"utilizar un número entero como identificador de registro, se utiliza un :ref:" +"`handle object ` para garantizar que los identificadores se " +"cierren correctamente, incluso si el programador se niega a cerrarlos " +"explícitamente." #: ../Doc/library/winreg.rst:19 msgid "" "Several functions in this module used to raise a :exc:`WindowsError`, which " "is now an alias of :exc:`OSError`." msgstr "" +"Varias funciones de este módulo solían lanzar un :exc:`WindowsError`, que " +"ahora es un alias de :exc:`OSError`." #: ../Doc/library/winreg.rst:26 msgid "Functions" -msgstr "" +msgstr "Funciones" #: ../Doc/library/winreg.rst:28 msgid "This module offers the following functions:" -msgstr "" +msgstr "Este módulo ofrece las siguientes funciones:" #: ../Doc/library/winreg.rst:33 msgid "" "Closes a previously opened registry key. The *hkey* argument specifies a " "previously opened key." msgstr "" +"Cierra una clave de registro abierta previamente. El argumento *hkey* " +"especifica una clave abierta previamente." #: ../Doc/library/winreg.rst:38 msgid "" "If *hkey* is not closed using this method (or via :meth:`hkey.Close() " "`), it is closed when the *hkey* object is destroyed by Python." msgstr "" +"Si *hkey* no se cierra con este método (o mediante :meth:`hkey.Close() " +"`), se cierra cuando Python destruye el objeto *hkey*." #: ../Doc/library/winreg.rst:45 msgid "" "Establishes a connection to a predefined registry handle on another " "computer, and returns a :ref:`handle object `." msgstr "" +"Establece una conexión con un identificador de registro predefinido en otra " +"computadora y retorna un :ref:`handle object `." #: ../Doc/library/winreg.rst:48 msgid "" "*computer_name* is the name of the remote computer, of the form ``r\"\\" "\\computername\"``. If ``None``, the local computer is used." msgstr "" +"*computer_name* es el nombre de la computadora remota, de la forma ``r”\\" +"\\computername”``. Si es ``None``, se utiliza la computadora local." #: ../Doc/library/winreg.rst:51 msgid "*key* is the predefined handle to connect to." -msgstr "" +msgstr "*key* es el identificador predefinido al que conectarse." #: ../Doc/library/winreg.rst:53 ../Doc/library/winreg.rst:77 #: ../Doc/library/winreg.rst:109 @@ -80,25 +98,31 @@ msgid "" "The return value is the handle of the opened key. If the function fails, an :" "exc:`OSError` exception is raised." msgstr "" +"El valor de retorno es el identificador de la llave abierta. Si la función " +"falla, se lanza una excepción :exc:`OSError`." #: ../Doc/library/winreg.rst:57 msgid "" "Raises an :ref:`auditing event ` ``winreg.ConnectRegistry`` with " "arguments ``computer_name``, ``key``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.ConnectRegistry`` con " +"argumentos ``computer_name``, ``key``." #: ../Doc/library/winreg.rst:58 ../Doc/library/winreg.rst:84 #: ../Doc/library/winreg.rst:118 ../Doc/library/winreg.rst:139 #: ../Doc/library/winreg.rst:177 ../Doc/library/winreg.rst:208 #: ../Doc/library/winreg.rst:243 ../Doc/library/winreg.rst:334 msgid "See :ref:`above `." -msgstr "" +msgstr "Ver :ref:`above `." #: ../Doc/library/winreg.rst:64 ../Doc/library/winreg.rst:90 msgid "" "Creates or opens the specified key, returning a :ref:`handle object `." msgstr "" +"Crea o abre la clave especificada, retornando un :ref:`handle object `." #: ../Doc/library/winreg.rst:67 ../Doc/library/winreg.rst:93 #: ../Doc/library/winreg.rst:126 ../Doc/library/winreg.rst:153 @@ -113,26 +137,35 @@ msgid "" "*key* is an already open key, or one of the predefined :ref:`HKEY_* " "constants `." msgstr "" +"*key* es una clave ya abierta, o una de las predefinidas :ref:`HKEY_* " +"constants `." #: ../Doc/library/winreg.rst:70 ../Doc/library/winreg.rst:96 msgid "*sub_key* is a string that names the key this method opens or creates." msgstr "" +"*sub_key* es una cadena de caracteres que nombra la clave que este método " +"abre o crea." #: ../Doc/library/winreg.rst:72 ../Doc/library/winreg.rst:104 msgid "" "If *key* is one of the predefined keys, *sub_key* may be ``None``. In that " "case, the handle returned is the same key handle passed in to the function." msgstr "" +"Si *key* es una de las claves predefinidas, *sub_key* puede ser ``None``. En " +"ese caso, el identificador retornado es el mismo identificador de clave que " +"se pasó a la función." #: ../Doc/library/winreg.rst:75 ../Doc/library/winreg.rst:107 msgid "If the key already exists, this function opens the existing key." -msgstr "" +msgstr "Si la clave ya existe, esta función abre la clave existente." #: ../Doc/library/winreg.rst:81 ../Doc/library/winreg.rst:113 msgid "" "Raises an :ref:`auditing event ` ``winreg.CreateKey`` with " "arguments ``key``, ``sub_key``, ``access``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.CreateKey`` con los " +"argumentos ``key``, ``sub_key``, ``access``." #: ../Doc/library/winreg.rst:83 ../Doc/library/winreg.rst:115 #: ../Doc/library/winreg.rst:330 @@ -140,11 +173,15 @@ msgid "" "Raises an :ref:`auditing event ` ``winreg.OpenKey/result`` with " "argument ``key``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.OpenKey/result`` con el " +"argumento ``key``." #: ../Doc/library/winreg.rst:98 ../Doc/library/winreg.rst:160 msgid "" "*reserved* is a reserved integer, and must be zero. The default is zero." msgstr "" +"*reserved* es un número entero reservado y debe ser cero. El valor " +"predeterminado es cero." #: ../Doc/library/winreg.rst:100 msgid "" @@ -152,10 +189,14 @@ msgid "" "desired security access for the key. Default is :const:`KEY_WRITE`. See :" "ref:`Access Rights ` for other allowed values." msgstr "" +"*access* es un número entero que especifica una máscara de acceso que " +"describe el acceso de seguridad deseado para la clave. El valor " +"predeterminado es :const:`KEY_WRITE`. Ver :ref:`Access Rights ` para otros valores permitidos." #: ../Doc/library/winreg.rst:124 ../Doc/library/winreg.rst:145 msgid "Deletes the specified key." -msgstr "" +msgstr "Elimina la clave especificada." #: ../Doc/library/winreg.rst:129 msgid "" @@ -163,22 +204,29 @@ msgid "" "*key* parameter. This value must not be ``None``, and the key may not have " "subkeys." msgstr "" +"*sub_key* es una cadena de caracteres que debe ser una subclave de la clave " +"identificada por el parámetro *key*. Este valor no debe ser ``None``, y es " +"posible que la clave no tenga subclaves." #: ../Doc/library/winreg.rst:132 ../Doc/library/winreg.rst:166 msgid "*This method can not delete keys with subkeys.*" -msgstr "" +msgstr "*Este método no puede eliminar claves con subclaves.*" #: ../Doc/library/winreg.rst:134 ../Doc/library/winreg.rst:168 msgid "" "If the method succeeds, the entire key, including all of its values, is " "removed. If the method fails, an :exc:`OSError` exception is raised." msgstr "" +"Si el método tiene éxito, se elimina toda la clave, incluidos todos sus " +"valores. Si el método falla, se lanza una excepción :exc:`OSError`." #: ../Doc/library/winreg.rst:138 ../Doc/library/winreg.rst:174 msgid "" "Raises an :ref:`auditing event ` ``winreg.DeleteKey`` with " "arguments ``key``, ``sub_key``, ``access``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.DeleteKey`` con los " +"argumentos `key``, ``sub_key``, ``access``." #: ../Doc/library/winreg.rst:148 msgid "" @@ -187,6 +235,10 @@ msgid "" "the `RegDeleteKeyEx documentation `__." msgstr "" +"La función :func:`DeleteKeyEx` se implementa con la función RegDeleteKeyEx " +"de la API de Windows, que es específica de las versiones de Windows de 64 " +"bits. Consulte la `RegDeleteKeyEx documentation `__." #: ../Doc/library/winreg.rst:156 msgid "" @@ -194,6 +246,9 @@ msgid "" "*key* parameter. This value must not be ``None``, and the key may not have " "subkeys." msgstr "" +"*sub_key* es una cadena de caracteres que debe ser una subclave de la clave " +"identificada por el parámetro *key*. Este valor no debe ser ``None``, y es " +"posible que la clave no tenga subclaves." #: ../Doc/library/winreg.rst:162 msgid "" @@ -201,32 +256,42 @@ msgid "" "desired security access for the key. Default is :const:`KEY_WOW64_64KEY`. " "See :ref:`Access Rights ` for other allowed values." msgstr "" +"*access* es un número entero que especifica una máscara de acceso que " +"describe el acceso de seguridad deseado para la clave. El valor " +"predeterminado es :const:`KEY_WOW64_64KEY`. Ver :ref:`Access Rights ` para otros valores permitidos." #: ../Doc/library/winreg.rst:171 msgid "On unsupported Windows versions, :exc:`NotImplementedError` is raised." msgstr "" +"En versiones de Windows no compatibles, se lanza :exc:`NotImplementedError`." #: ../Doc/library/winreg.rst:183 msgid "Removes a named value from a registry key." -msgstr "" +msgstr "Elimina un valor con nombre de una clave de registro." #: ../Doc/library/winreg.rst:188 msgid "*value* is a string that identifies the value to remove." -msgstr "" +msgstr "*value* es una cadena que identifica el valor a eliminar." #: ../Doc/library/winreg.rst:190 msgid "" "Raises an :ref:`auditing event ` ``winreg.DeleteValue`` with " "arguments ``key``, ``value``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.DeleteValue`` con " +"argumentos ``key``, ``value``." #: ../Doc/library/winreg.rst:195 msgid "Enumerates subkeys of an open registry key, returning a string." msgstr "" +"Enumera las subclaves de una clave de registro abierta y retorna una cadena " +"de caracteres." #: ../Doc/library/winreg.rst:200 msgid "*index* is an integer that identifies the index of the key to retrieve." msgstr "" +"*index* es un número entero que identifica el índice de la clave a recuperar." #: ../Doc/library/winreg.rst:202 msgid "" @@ -234,21 +299,28 @@ msgid "" "typically called repeatedly until an :exc:`OSError` exception is raised, " "indicating, no more values are available." msgstr "" +"La función recupera el nombre de una subclave cada vez que se llama. " +"Normalmente se llama repetidamente hasta que se lanza una excepción :exc:" +"`OSError`, lo que indica que no hay más valores disponibles." #: ../Doc/library/winreg.rst:207 msgid "" "Raises an :ref:`auditing event ` ``winreg.EnumKey`` with arguments " "``key``, ``index``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.EnumKey`` con argumentos " +"``key``, ``index``." #: ../Doc/library/winreg.rst:214 msgid "Enumerates values of an open registry key, returning a tuple." msgstr "" +"Enumera los valores de una clave de registro abierta y retorna una tupla." #: ../Doc/library/winreg.rst:219 msgid "" "*index* is an integer that identifies the index of the value to retrieve." msgstr "" +"*index* es un número entero que identifica el índice del valor a recuperar." #: ../Doc/library/winreg.rst:221 msgid "" @@ -256,72 +328,85 @@ msgid "" "typically called repeatedly, until an :exc:`OSError` exception is raised, " "indicating no more values." msgstr "" +"La función recupera el nombre de una subclave cada vez que se llama. " +"Normalmente se llama repetidamente, hasta que se lanza una excepción :exc:" +"`OSError`, lo que indica que no hay más valores." #: ../Doc/library/winreg.rst:225 ../Doc/library/winreg.rst:345 msgid "The result is a tuple of 3 items:" -msgstr "" +msgstr "El resultado es una tupla de 3 elementos:" #: ../Doc/library/winreg.rst:228 ../Doc/library/winreg.rst:348 #: ../Doc/library/winreg.rst:396 msgid "Index" -msgstr "" +msgstr "Índice" #: ../Doc/library/winreg.rst:228 ../Doc/library/winreg.rst:348 #: ../Doc/library/winreg.rst:396 msgid "Meaning" -msgstr "" +msgstr "Significado" #: ../Doc/library/winreg.rst:230 ../Doc/library/winreg.rst:350 #: ../Doc/library/winreg.rst:398 msgid "``0``" -msgstr "" +msgstr "``0``" #: ../Doc/library/winreg.rst:230 msgid "A string that identifies the value name" -msgstr "" +msgstr "Una cadena de caracteres que identifica el nombre del valor" #: ../Doc/library/winreg.rst:232 ../Doc/library/winreg.rst:353 #: ../Doc/library/winreg.rst:400 msgid "``1``" -msgstr "" +msgstr "``1``" #: ../Doc/library/winreg.rst:232 msgid "" "An object that holds the value data, and whose type depends on the " "underlying registry type" msgstr "" +"Un objeto que contiene los datos del valor y cuyo tipo depende del tipo de " +"registro subyacente" #: ../Doc/library/winreg.rst:236 ../Doc/library/winreg.rst:356 msgid "``2``" -msgstr "" +msgstr "``2``" #: ../Doc/library/winreg.rst:236 msgid "" "An integer that identifies the type of the value data (see table in docs " "for :meth:`SetValueEx`)" msgstr "" +"Un número entero que identifica el tipo de datos de valor (consulte la tabla " +"en los documentos para :meth:`SetValueEx`)" #: ../Doc/library/winreg.rst:242 msgid "" "Raises an :ref:`auditing event ` ``winreg.EnumValue`` with " "arguments ``key``, ``index``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.EnumValue`` con " +"argumentos ``key``, ``index``." #: ../Doc/library/winreg.rst:252 msgid "" "Expands environment variable placeholders ``%NAME%`` in strings like :const:" "`REG_EXPAND_SZ`::" msgstr "" +"Expande los marcadores de posición de la variable de entorno ``%NAME%`` en " +"cadenas como :const:`REG_EXPAND_SZ`::" #: ../Doc/library/winreg.rst:258 msgid "" "Raises an :ref:`auditing event ` ``winreg." "ExpandEnvironmentStrings`` with argument ``str``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg." +"ExpandEnvironmentStrings`` con el argumento ``str``." #: ../Doc/library/winreg.rst:263 msgid "Writes all the attributes of a key to the registry." -msgstr "" +msgstr "Escribe todos los atributos de una clave en el registro." #: ../Doc/library/winreg.rst:268 msgid "" @@ -333,28 +418,42 @@ msgid "" "`FlushKey` if it requires absolute certainty that registry changes are on " "disk." msgstr "" +"No es necesario llamar a :func:`FlushKey` para cambiar una clave. Los " +"cambios en el registro se descargan en el disco mediante el registro " +"mediante su vaciador diferido. Los cambios en el registro también se vacían " +"en el disco cuando se apaga el sistema. A diferencia de :func:`CloseKey`, el " +"método :func:`FlushKey` retorna solo cuando todos los datos se han escrito " +"en el registro. Una aplicación solo debe llamar a :func:`FlushKey` si " +"requiere absoluta certeza de que los cambios de registro están en el disco." #: ../Doc/library/winreg.rst:277 msgid "" "If you don't know whether a :func:`FlushKey` call is required, it probably " "isn't." msgstr "" +"Si no sabe si se requiere una llamada :func:`FlushKey`, probablemente no lo " +"sea." #: ../Doc/library/winreg.rst:283 msgid "" "Creates a subkey under the specified key and stores registration information " "from a specified file into that subkey." msgstr "" +"Crea una subclave bajo la clave especificada y almacena la información de " +"registro de un archivo especificado en esa subclave." #: ../Doc/library/winreg.rst:286 msgid "" "*key* is a handle returned by :func:`ConnectRegistry` or one of the " "constants :const:`HKEY_USERS` or :const:`HKEY_LOCAL_MACHINE`." msgstr "" +"*key* es un identificador retornado por :func:`ConnectRegistry` o una de las " +"constantes :const:`HKEY_USERS` o :const:`HKEY_LOCAL_MACHINE`." #: ../Doc/library/winreg.rst:289 msgid "*sub_key* is a string that identifies the subkey to load." msgstr "" +"*sub_key* es una cadena de caracteres que identifica la subclave a cargar." #: ../Doc/library/winreg.rst:291 msgid "" @@ -362,6 +461,10 @@ msgid "" "must have been created with the :func:`SaveKey` function. Under the file " "allocation table (FAT) file system, the filename may not have an extension." msgstr "" +"*file_name* es el nombre del archivo desde el que cargar los datos de " +"registro. Este archivo debe haber sido creado con la función :func:" +"`SaveKey`. En el sistema de archivos de la tabla de asignación de archivos " +"(FAT), es posible que el nombre del archivo no tenga extensión." #: ../Doc/library/winreg.rst:295 msgid "" @@ -370,32 +473,46 @@ msgid "" "from permissions -- see the `RegLoadKey documentation `__ for more details." msgstr "" +"Una llamada a :func:`LoadKey` falla si el proceso de llamada no tiene el " +"privilegio :const:`SE_RESTORE_PRIVILEGE`. Tenga en cuenta que los " +"privilegios son diferentes de los permisos; consulte la `RegLoadKey " +"documentation `__ para obtener más detalles." #: ../Doc/library/winreg.rst:301 msgid "" "If *key* is a handle returned by :func:`ConnectRegistry`, then the path " "specified in *file_name* is relative to the remote computer." msgstr "" +"Si *key* es un identificador retornado por :func:`ConnectRegistry`, entonces " +"la ruta especificada en *file_name* es relativa a la computadora remota." #: ../Doc/library/winreg.rst:304 msgid "" "Raises an :ref:`auditing event ` ``winreg.LoadKey`` with arguments " "``key``, ``sub_key``, ``file_name``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.LoadKey`` con los " +"argumentos ``key``, ``sub_key``, ``file_name``." #: ../Doc/library/winreg.rst:310 msgid "" "Opens the specified key, returning a :ref:`handle object `." msgstr "" +"Abre la clave especificada, retornando a :ref:`handle object `." #: ../Doc/library/winreg.rst:315 msgid "*sub_key* is a string that identifies the sub_key to open." msgstr "" +"*sub_key* es una cadena de caracteres que identifica la sub_key para abrir." #: ../Doc/library/winreg.rst:317 msgid "" "*reserved* is a reserved integer, and must be zero. The default is zero." msgstr "" +"*reserved* es un número entero reservado y debe ser cero. El valor " +"predeterminado es cero." #: ../Doc/library/winreg.rst:319 msgid "" @@ -403,52 +520,64 @@ msgid "" "desired security access for the key. Default is :const:`KEY_READ`. See :" "ref:`Access Rights ` for other allowed values." msgstr "" +"*access* es un número entero que especifica una máscara de acceso que " +"describe el acceso de seguridad deseado para la clave. El valor " +"predeterminado es :const:`KEY_READ`. Ver :ref:`Access Rights ` para otros valores permitidos." #: ../Doc/library/winreg.rst:323 msgid "The result is a new handle to the specified key." -msgstr "" +msgstr "El resultado es un nuevo identificador para la clave especificada." #: ../Doc/library/winreg.rst:325 msgid "If the function fails, :exc:`OSError` is raised." -msgstr "" +msgstr "Si la función falla, se lanza :exc:`OSError`." #: ../Doc/library/winreg.rst:328 msgid "" "Raises an :ref:`auditing event ` ``winreg.OpenKey`` with arguments " "``key``, ``sub_key``, ``access``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.OpenKey`` con los " +"argumentos ``key``, ``sub_key``, ``access``." #: ../Doc/library/winreg.rst:331 msgid "Allow the use of named arguments." -msgstr "" +msgstr "Permite el uso de argumentos con nombre." #: ../Doc/library/winreg.rst:340 msgid "Returns information about a key, as a tuple." -msgstr "" +msgstr "Retorna información sobre una clave, como una tupla." #: ../Doc/library/winreg.rst:350 msgid "An integer giving the number of sub keys this key has." msgstr "" +"Un número entero que indica el número de subclaves que tiene esta clave." #: ../Doc/library/winreg.rst:353 msgid "An integer giving the number of values this key has." -msgstr "" +msgstr "Un número entero que da el número de valores que tiene esta clave." #: ../Doc/library/winreg.rst:356 msgid "" "An integer giving when the key was last modified (if available) as 100's of " "nanoseconds since Jan 1, 1601." msgstr "" +"Un número entero que indica la última vez que se modificó la clave (si está " +"disponible) como cientos de nanosegundos desde el 1 de enero de 1601." #: ../Doc/library/winreg.rst:361 msgid "" "Raises an :ref:`auditing event ` ``winreg.QueryInfoKey`` with " "argument ``key``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.QueryInfoKey`` con el " +"argumento ``key``." #: ../Doc/library/winreg.rst:366 msgid "Retrieves the unnamed value for a key, as a string." msgstr "" +"Recupera el valor sin nombre de una clave, como una cadena de caracteres." #: ../Doc/library/winreg.rst:371 msgid "" @@ -457,6 +586,10 @@ msgid "" "retrieves the value set by the :func:`SetValue` method for the key " "identified by *key*." msgstr "" +"*sub_key* es una cadena de caracteres que contiene el nombre de la subclave " +"con la que está asociado el valor. Si este parámetro es ``None`` o está " +"vacío, la función recupera el valor establecido por el método :func:" +"`SetValue` para la clave identificada por *key*." #: ../Doc/library/winreg.rst:375 msgid "" @@ -465,40 +598,53 @@ msgid "" "underlying API call doesn't return the type, so always use :func:" "`QueryValueEx` if possible." msgstr "" +"Los valores del registro tienen componentes de nombre, tipo y datos. Este " +"método recupera los datos del primer valor de una clave que tiene un nombre " +"``NULL``. Pero la llamada a la API subyacente no retorna el tipo, así que " +"siempre use :func:`QueryValueEx` si es posible." #: ../Doc/library/winreg.rst:380 ../Doc/library/winreg.rst:405 msgid "" "Raises an :ref:`auditing event ` ``winreg.QueryValue`` with " "arguments ``key``, ``sub_key``, ``value_name``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.QueryValue`` con los " +"argumentos ``key``, ``sub_key``, ``value_name``." #: ../Doc/library/winreg.rst:385 msgid "" "Retrieves the type and data for a specified value name associated with an " "open registry key." msgstr "" +"Recupera el tipo y los datos de un nombre de valor especificado asociado con " +"una clave de registro abierta." #: ../Doc/library/winreg.rst:391 msgid "*value_name* is a string indicating the value to query." msgstr "" +"*value_name* es una cadena de caracteres que indica el valor a consultar." #: ../Doc/library/winreg.rst:393 msgid "The result is a tuple of 2 items:" -msgstr "" +msgstr "El resultado es una tupla de 2 elementos:" #: ../Doc/library/winreg.rst:398 msgid "The value of the registry item." -msgstr "" +msgstr "El valor del elemento de registro." #: ../Doc/library/winreg.rst:400 msgid "" "An integer giving the registry type for this value (see table in docs for :" "meth:`SetValueEx`)" msgstr "" +"Un número entero que proporciona el tipo de registro para este valor " +"(consulte la tabla en docs para :meth:`SetValueEx`)" #: ../Doc/library/winreg.rst:410 msgid "Saves the specified key, and all its subkeys to the specified file." msgstr "" +"Guarda la clave especificada y todas sus subclaves en el archivo " +"especificado." #: ../Doc/library/winreg.rst:415 msgid "" @@ -507,6 +653,10 @@ msgid "" "used on file allocation table (FAT) file systems by the :meth:`LoadKey` " "method." msgstr "" +"*file_name* es el nombre del archivo en el que se guardarán los datos del " +"registro. Este archivo no puede existir ya. Si este nombre de archivo " +"incluye una extensión, no se puede usar en sistemas de archivos de tabla de " +"asignación de archivos (FAT) mediante el método :meth:`LoadKey`." #: ../Doc/library/winreg.rst:420 msgid "" @@ -517,26 +667,37 @@ msgid "" "Rights and Permissions documentation `__ for more details." msgstr "" +"Si *key* representa una clave en una computadora remota, la ruta descrita " +"por *file_name* es relativa a la computadora remota. La persona que llama a " +"este método debe poseer el privilegio de seguridad :const:" +"`SeBackupPrivilege`. Tenga en cuenta que los privilegios son diferentes a " +"los permisos -- consulte la documentación sobre conflictos entre derechos de " +"usuario y permisos `__ para más detalles." #: ../Doc/library/winreg.rst:428 msgid "This function passes ``NULL`` for *security_attributes* to the API." -msgstr "" +msgstr "Esta función pasa ``NULL`` para *security_attributes* a la API." #: ../Doc/library/winreg.rst:430 msgid "" "Raises an :ref:`auditing event ` ``winreg.SaveKey`` with arguments " "``key``, ``file_name``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.SaveKey`` con los " +"argumentos ``key``, ``file_name``." #: ../Doc/library/winreg.rst:435 msgid "Associates a value with a specified key." -msgstr "" +msgstr "Asocia un valor con una clave especificada." #: ../Doc/library/winreg.rst:440 msgid "" "*sub_key* is a string that names the subkey with which the value is " "associated." msgstr "" +"*sub_key* es una cadena de caracteres que nombra la subclave con la que está " +"asociado el valor." #: ../Doc/library/winreg.rst:442 msgid "" @@ -544,16 +705,22 @@ msgid "" "must be :const:`REG_SZ`, meaning only strings are supported. Use the :func:" "`SetValueEx` function for support for other data types." msgstr "" +"*type* es un número entero que especifica el tipo de datos. Actualmente debe " +"ser :const:`REG_SZ`, lo que significa que solo se admiten cadenas de " +"caracteres. Utilice la función: :func:`SetValueEx` para admitir otros tipos " +"de datos." #: ../Doc/library/winreg.rst:446 ../Doc/library/winreg.rst:476 msgid "*value* is a string that specifies the new value." -msgstr "" +msgstr "*value* es una cadena de caracteres que especifica el nuevo valor." #: ../Doc/library/winreg.rst:448 msgid "" "If the key specified by the *sub_key* parameter does not exist, the SetValue " "function creates it." msgstr "" +"Si la clave especificada por el parámetro *sub_key* no existe, la función " +"SetValue la crea." #: ../Doc/library/winreg.rst:451 ../Doc/library/winreg.rst:484 msgid "" @@ -561,38 +728,50 @@ msgid "" "bytes) should be stored as files with the filenames stored in the " "configuration registry. This helps the registry perform efficiently." msgstr "" +"Las longitudes de los valores están limitadas por la memoria disponible. Los " +"valores largos (más de 2048 bytes) deben almacenarse como archivos con los " +"nombres de archivo almacenados en el registro de configuración. Esto ayuda a " +"que el registro funcione de manera eficiente." #: ../Doc/library/winreg.rst:455 msgid "" "The key identified by the *key* parameter must have been opened with :const:" "`KEY_SET_VALUE` access." msgstr "" +"La clave identificada por el parámetro *key* debe haber sido abierta con " +"acceso :const:`KEY_SET_VALUE`." #: ../Doc/library/winreg.rst:458 ../Doc/library/winreg.rst:488 msgid "" "Raises an :ref:`auditing event ` ``winreg.SetValue`` with " "arguments ``key``, ``sub_key``, ``type``, ``value``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.SetValue`` con argumentos " +"``key``, ``sub_key``, ``type``, ``value``." #: ../Doc/library/winreg.rst:463 msgid "Stores data in the value field of an open registry key." -msgstr "" +msgstr "Almacena datos en el campo de valor de una clave de registro abierta." #: ../Doc/library/winreg.rst:468 msgid "" "*value_name* is a string that names the subkey with which the value is " "associated." msgstr "" +"*value_name* es una cadena de caracteres que nombra la subclave con la que " +"está asociado el valor." #: ../Doc/library/winreg.rst:471 msgid "*reserved* can be anything -- zero is always passed to the API." -msgstr "" +msgstr "*reserved* puede ser cualquier cosa — cero siempre se pasa a la API." #: ../Doc/library/winreg.rst:473 msgid "" "*type* is an integer that specifies the type of the data. See :ref:`Value " "Types ` for the available types." msgstr "" +"*type* es un número entero que especifica el tipo de datos. Consulte :ref:" +"`Value Types ` para los tipos disponibles." #: ../Doc/library/winreg.rst:478 msgid "" @@ -600,16 +779,22 @@ msgid "" "specified key. The key identified by the key parameter must have been " "opened with :const:`KEY_SET_VALUE` access." msgstr "" +"Este método también puede establecer un valor adicional e información de " +"tipo para la clave especificada. La clave identificada por el parámetro " +"clave debe haber sido abierta con acceso :const:`KEY_SET_VALUE`." #: ../Doc/library/winreg.rst:482 msgid "To open the key, use the :func:`CreateKey` or :func:`OpenKey` methods." msgstr "" +"Para abrir la clave, use los métodos :func:`CreateKey` o :func:`OpenKey`." #: ../Doc/library/winreg.rst:493 msgid "" "Disables registry reflection for 32-bit processes running on a 64-bit " "operating system." msgstr "" +"Desactiva la reflexión del registro para los procesos de 32 bits que se " +"ejecutan en un sistema operativo de 64 bits." #: ../Doc/library/winreg.rst:499 ../Doc/library/winreg.rst:516 #: ../Doc/library/winreg.rst:533 @@ -617,6 +802,8 @@ msgid "" "Will generally raise :exc:`NotImplementedError` if executed on a 32-bit " "operating system." msgstr "" +"Generalmente lanzará :exc:`NotImplementedError` si se ejecuta en un sistema " +"operativo de 32 bits." #: ../Doc/library/winreg.rst:502 msgid "" @@ -624,54 +811,68 @@ msgid "" "effect. Disabling reflection for a key does not affect reflection of any " "subkeys." msgstr "" +"Si la clave no está en la lista de reflexión, la función tiene éxito pero no " +"tiene ningún efecto. La desactivación de la reflexión de una clave no afecta " +"la reflexión de ninguna subclave." #: ../Doc/library/winreg.rst:506 msgid "" "Raises an :ref:`auditing event ` ``winreg.DisableReflectionKey`` " "with argument ``key``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.DisableReflectionKey`` " +"con el argumento ``key``." #: ../Doc/library/winreg.rst:511 msgid "Restores registry reflection for the specified disabled key." msgstr "" +"Restaura la reflexión del registro para la clave deshabilitada especificada." #: ../Doc/library/winreg.rst:519 msgid "" "Restoring reflection for a key does not affect reflection of any subkeys." msgstr "" +"La restauración de la reflexión de una clave no afecta la reflexión de " +"ninguna subclave." #: ../Doc/library/winreg.rst:521 msgid "" "Raises an :ref:`auditing event ` ``winreg.EnableReflectionKey`` " "with argument ``key``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.EnableReflectionKey`` con " +"el argumento ``key``." #: ../Doc/library/winreg.rst:526 msgid "Determines the reflection state for the specified key." -msgstr "" +msgstr "Determina el estado de reflexión para la clave especificada." #: ../Doc/library/winreg.rst:531 msgid "Returns ``True`` if reflection is disabled." -msgstr "" +msgstr "Retorna ``True`` si la reflexión está deshabilitada." #: ../Doc/library/winreg.rst:536 msgid "" "Raises an :ref:`auditing event ` ``winreg.QueryReflectionKey`` " "with argument ``key``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.QueryReflectionKey`` con " +"el argumento ``key``." #: ../Doc/library/winreg.rst:542 msgid "Constants" -msgstr "" +msgstr "Constantes" #: ../Doc/library/winreg.rst:544 msgid "" "The following constants are defined for use in many :mod:`_winreg` functions." msgstr "" +"Las siguientes constantes están definidas para su uso en muchas funciones :" +"mod:`_winreg`." #: ../Doc/library/winreg.rst:549 msgid "HKEY_* Constants" -msgstr "" +msgstr "HKEY_* Constantes" #: ../Doc/library/winreg.rst:553 msgid "" @@ -679,6 +880,9 @@ msgid "" "documents and the properties associated with those types. Shell and COM " "applications use the information stored under this key." msgstr "" +"Las entradas de registro subordinadas a esta clave definen tipos (o clases) " +"de documentos y las propiedades asociadas con esos tipos. Las aplicaciones " +"Shell y COM utilizan la información almacenada en esta clave." #: ../Doc/library/winreg.rst:560 msgid "" @@ -687,6 +891,10 @@ msgid "" "variables, data about program groups, colors, printers, network connections, " "and application preferences." msgstr "" +"Las entradas de registro subordinadas a esta clave definen las preferencias " +"del usuario actual. Estas preferencias incluyen la configuración de " +"variables de entorno, datos sobre grupos de programas, colores, impresoras, " +"conexiones de red y preferencias de la aplicación." #: ../Doc/library/winreg.rst:567 msgid "" @@ -694,6 +902,9 @@ msgid "" "computer, including data about the bus type, system memory, and installed " "hardware and software." msgstr "" +"Las entradas de registro subordinadas a esta clave definen el estado físico " +"de la computadora, incluidos los datos sobre el tipo de bus, la memoria del " +"sistema y el hardware y software instalados." #: ../Doc/library/winreg.rst:573 msgid "" @@ -701,6 +912,9 @@ msgid "" "configuration for new users on the local computer and the user configuration " "for the current user." msgstr "" +"Las entradas de registro subordinadas a esta clave definen la configuración " +"de usuario predeterminada para nuevos usuarios en la computadora local y la " +"configuración de usuario para el usuario actual." #: ../Doc/library/winreg.rst:579 msgid "" @@ -708,26 +922,34 @@ msgid "" "data. The data is not actually stored in the registry; the registry " "functions cause the system to collect the data from its source." msgstr "" +"Las entradas de registro subordinadas a esta clave le permiten acceder a los " +"datos de rendimiento. Los datos no se almacenan realmente en el registro; " +"las funciones de registro hacen que el sistema recopile los datos de su " +"fuente." #: ../Doc/library/winreg.rst:587 msgid "" "Contains information about the current hardware profile of the local " "computer system." msgstr "" +"Contiene información sobre el perfil de hardware actual del sistema " +"informático local." #: ../Doc/library/winreg.rst:592 msgid "This key is not used in versions of Windows after 98." -msgstr "" +msgstr "Esta clave no se usa en versiones de Windows posteriores a la 98." #: ../Doc/library/winreg.rst:598 msgid "Access Rights" -msgstr "" +msgstr "Access Rights" #: ../Doc/library/winreg.rst:600 msgid "" "For more information, see `Registry Key Security and Access `__." msgstr "" +"Para más información, ver `Registry Key Security and Access `__." #: ../Doc/library/winreg.rst:605 msgid "" @@ -736,146 +958,172 @@ msgid "" "`KEY_ENUMERATE_SUB_KEYS`, :const:`KEY_NOTIFY`, and :const:`KEY_CREATE_LINK` " "access rights." msgstr "" +"Combina los derechos de acceso STANDARD_RIGHTS_REQUIRED, :const:" +"`KEY_QUERY_VALUE`, :const:`KEY_SET_VALUE`, :const:`KEY_CREATE_SUB_KEY`, :" +"const:`KEY_ENUMERATE_SUB_KEYS`, :const:`KEY_NOTIFY`, y :const:" +"`KEY_CREATE_LINK`." #: ../Doc/library/winreg.rst:612 msgid "" "Combines the STANDARD_RIGHTS_WRITE, :const:`KEY_SET_VALUE`, and :const:" "`KEY_CREATE_SUB_KEY` access rights." msgstr "" +"Combina los derechos de acceso STANDARD_RIGHTS_WRITE, :const:" +"`KEY_SET_VALUE`, y :const:`KEY_CREATE_SUB_KEY`." #: ../Doc/library/winreg.rst:617 msgid "" "Combines the STANDARD_RIGHTS_READ, :const:`KEY_QUERY_VALUE`, :const:" "`KEY_ENUMERATE_SUB_KEYS`, and :const:`KEY_NOTIFY` values." msgstr "" +"Combina los valores STANDARD_RIGHTS_READ, :const:`KEY_QUERY_VALUE`, :const:" +"`KEY_ENUMERATE_SUB_KEYS`, y :const:`KEY_NOTIFY`." #: ../Doc/library/winreg.rst:622 msgid "Equivalent to :const:`KEY_READ`." -msgstr "" +msgstr "Equivalente a :const:`KEY_READ`." #: ../Doc/library/winreg.rst:626 msgid "Required to query the values of a registry key." -msgstr "" +msgstr "Requerido para consultar los valores de una clave de registro." #: ../Doc/library/winreg.rst:630 msgid "Required to create, delete, or set a registry value." -msgstr "" +msgstr "Requerido para crear, eliminar o establecer un valor de registro." #: ../Doc/library/winreg.rst:634 msgid "Required to create a subkey of a registry key." -msgstr "" +msgstr "Necesario para crear una subclave de una clave de registro." #: ../Doc/library/winreg.rst:638 msgid "Required to enumerate the subkeys of a registry key." -msgstr "" +msgstr "Requerido para enumerar las subclaves de una clave de registro." #: ../Doc/library/winreg.rst:642 msgid "" "Required to request change notifications for a registry key or for subkeys " "of a registry key." msgstr "" +"Requerido para solicitar notificaciones de cambio para una clave de registro " +"o para subclaves de una clave de registro." #: ../Doc/library/winreg.rst:647 msgid "Reserved for system use." -msgstr "" +msgstr "Reservado para uso del sistema." #: ../Doc/library/winreg.rst:653 msgid "64-bit Specific" -msgstr "" +msgstr "Específico de 64 bits" #: ../Doc/library/winreg.rst:655 msgid "" "For more information, see `Accessing an Alternate Registry View `__." msgstr "" +"Para más información, ver `Accessing an Alternate Registry View `__." #: ../Doc/library/winreg.rst:660 msgid "" "Indicates that an application on 64-bit Windows should operate on the 64-bit " "registry view." msgstr "" +"Indica que una aplicación en Windows de 64 bits debería funcionar en la " +"vista de registro de 64 bits." #: ../Doc/library/winreg.rst:665 msgid "" "Indicates that an application on 64-bit Windows should operate on the 32-bit " "registry view." msgstr "" +"Indica que una aplicación en Windows de 64 bits debería funcionar en la " +"vista de registro de 32 bits." #: ../Doc/library/winreg.rst:672 msgid "Value Types" -msgstr "" +msgstr "Tipos de valor" #: ../Doc/library/winreg.rst:674 msgid "" "For more information, see `Registry Value Types `__." msgstr "" +"Para más información, ver `Registry Value Types `__." #: ../Doc/library/winreg.rst:679 msgid "Binary data in any form." -msgstr "" +msgstr "Datos binarios en cualquier forma." #: ../Doc/library/winreg.rst:683 msgid "32-bit number." -msgstr "" +msgstr "Número de 32 bits." #: ../Doc/library/winreg.rst:687 msgid "" "A 32-bit number in little-endian format. Equivalent to :const:`REG_DWORD`." msgstr "" +"Un número de 32 bits en formato little-endian. Equivalente a :const:" +"`REG_DWORD`." #: ../Doc/library/winreg.rst:691 msgid "A 32-bit number in big-endian format." -msgstr "" +msgstr "Un número de 32 bits en formato big-endian." #: ../Doc/library/winreg.rst:695 msgid "" "Null-terminated string containing references to environment variables (``" "%PATH%``)." msgstr "" +"Cadena de caracteres terminada en nulo que contiene referencias a variables " +"de entorno (``%PATH%``)." #: ../Doc/library/winreg.rst:700 msgid "A Unicode symbolic link." -msgstr "" +msgstr "Un enlace simbólico Unicode." #: ../Doc/library/winreg.rst:704 msgid "" "A sequence of null-terminated strings, terminated by two null characters. " "(Python handles this termination automatically.)" msgstr "" +"Una secuencia de cadenas de caracteres terminadas en nulo, terminadas por " +"dos caracteres nulos. (Python maneja esta terminación automáticamente)." #: ../Doc/library/winreg.rst:709 msgid "No defined value type." -msgstr "" +msgstr "Sin tipo de valor definido." #: ../Doc/library/winreg.rst:713 msgid "A 64-bit number." -msgstr "" +msgstr "Un número de 64 bits." #: ../Doc/library/winreg.rst:719 msgid "" "A 64-bit number in little-endian format. Equivalent to :const:`REG_QWORD`." msgstr "" +"Un número de 64 bits en formato little-endian. Equivalente a :const:" +"`REG_QWORD`." #: ../Doc/library/winreg.rst:725 msgid "A device-driver resource list." -msgstr "" +msgstr "Una lista de recursos de controladores de dispositivo." #: ../Doc/library/winreg.rst:729 msgid "A hardware setting." -msgstr "" +msgstr "Una configuración de hardware." #: ../Doc/library/winreg.rst:733 msgid "A hardware resource list." -msgstr "" +msgstr "Una lista de recursos de hardware." #: ../Doc/library/winreg.rst:737 msgid "A null-terminated string." -msgstr "" +msgstr "Una cadena de caracteres terminada en nulo." #: ../Doc/library/winreg.rst:743 msgid "Registry Handle Objects" -msgstr "" +msgstr "Objetos de control del registro" #: ../Doc/library/winreg.rst:745 msgid "" @@ -883,32 +1131,45 @@ msgid "" "object is destroyed. To guarantee cleanup, you can call either the :meth:" "`~PyHKEY.Close` method on the object, or the :func:`CloseKey` function." msgstr "" +"Este objeto envuelve un objeto HKEY de Windows y lo cierra automáticamente " +"cuando se destruye. Para garantizar la limpieza, puede llamar al método :" +"meth:`~PyHKEY.Close` en el objeto, o a la función :func:`CloseKey`." #: ../Doc/library/winreg.rst:749 msgid "All registry functions in this module return one of these objects." msgstr "" +"Todas las funciones de registro de este módulo retornan uno de estos objetos." #: ../Doc/library/winreg.rst:751 msgid "" "All registry functions in this module which accept a handle object also " "accept an integer, however, use of the handle object is encouraged." msgstr "" +"Todas las funciones de registro de este módulo que aceptan un objeto " +"identificador también aceptan un número entero, sin embargo, se recomienda " +"el uso del objeto identificador." #: ../Doc/library/winreg.rst:754 msgid "Handle objects provide semantics for :meth:`__bool__` -- thus ::" msgstr "" +"Los objetos de control proporcionan semántica para :meth:`__bool__` -- así ::" #: ../Doc/library/winreg.rst:759 msgid "" "will print ``Yes`` if the handle is currently valid (has not been closed or " "detached)." msgstr "" +"imprimirá ``Yes`` si el controlador es válido actualmente (no se ha cerrado " +"o desprendido)." #: ../Doc/library/winreg.rst:762 msgid "" "The object also support comparison semantics, so handle objects will compare " "true if they both reference the same underlying Windows handle value." msgstr "" +"El objeto también admite la semántica de comparación, por lo que los objetos " +"de identificador se compararán con verdadero si ambos hacen referencia al " +"mismo valor de identificador de Windows subyacente." #: ../Doc/library/winreg.rst:765 msgid "" @@ -918,18 +1179,24 @@ msgid "" "integer handle, and also disconnect the Windows handle from the handle " "object." msgstr "" +"Los objetos de identificador se pueden convertir a un número entero (por " +"ejemplo, usando la función incorporada :func:`int` function), en cuyo caso " +"se retorna el valor de identificador de Windows subyacente. También puede " +"usar el método :meth:`~PyHKEY.Detach` para retornar el identificador de " +"enteros y también desconectar el identificador de Windows del objeto " +"identificador." #: ../Doc/library/winreg.rst:773 msgid "Closes the underlying Windows handle." -msgstr "" +msgstr "Cierra el identificador de Windows subyacente." #: ../Doc/library/winreg.rst:775 msgid "If the handle is already closed, no error is raised." -msgstr "" +msgstr "Si el controlador ya está cerrado, no se lanza ningún error." #: ../Doc/library/winreg.rst:780 msgid "Detaches the Windows handle from the handle object." -msgstr "" +msgstr "Separa el identificador de Windows del objeto identificador." #: ../Doc/library/winreg.rst:782 msgid "" @@ -937,6 +1204,9 @@ msgid "" "detached. If the handle is already detached or closed, this will return " "zero." msgstr "" +"El resultado es un número entero que contiene el valor del identificador " +"antes de que se separe. Si el controlador ya está separado o cerrado, esto " +"retornará cero." #: ../Doc/library/winreg.rst:786 msgid "" @@ -944,12 +1214,18 @@ msgid "" "handle is not closed. You would call this function when you need the " "underlying Win32 handle to exist beyond the lifetime of the handle object." msgstr "" +"Después de llamar a esta función, el identificador se invalida " +"efectivamente, pero el identificador no se cierra. Llamaría a esta función " +"cuando necesite que el identificador Win32 subyacente exista más allá de la " +"vida útil del objeto identificador." #: ../Doc/library/winreg.rst:790 msgid "" "Raises an :ref:`auditing event ` ``winreg.PyHKEY.Detach`` with " "argument ``key``." msgstr "" +"Lanza un :ref:`auditing event ` ``winreg.PyHKEY.Detach`` con el " +"argumento ``key``." #: ../Doc/library/winreg.rst:796 msgid "" @@ -957,8 +1233,13 @@ msgid "" "__exit__` and thus supports the context protocol for the :keyword:`with` " "statement::" msgstr "" +"El objeto HKEY implementa :meth:`~object.__enter__` y :meth:`~object." +"__exit__` y, por lo tanto, admite el protocolo de contexto para la " +"declaración :keyword:`with`::" #: ../Doc/library/winreg.rst:803 msgid "" "will automatically close *key* when control leaves the :keyword:`with` block." msgstr "" +"cerrará automáticamente *key* cuando el control abandone el bloque :keyword:" +"`with`." diff --git a/library/xdrlib.po b/library/xdrlib.po index ec1a53c17f..be0a960660 100644 --- a/library/xdrlib.po +++ b/library/xdrlib.po @@ -1,29 +1,31 @@ # 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: 2020-10-07 22:27-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/xdrlib.rst:2 msgid ":mod:`xdrlib` --- Encode and decode XDR data" -msgstr "" +msgstr ":mod:`xdrlib` --- Codificar y decodificar datos XDR" #: ../Doc/library/xdrlib.rst:7 msgid "**Source code:** :source:`Lib/xdrlib.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/xdrlib.py`" #: ../Doc/library/xdrlib.rst:15 msgid "" @@ -31,6 +33,10 @@ msgid "" "as described in :rfc:`1014`, written by Sun Microsystems, Inc. June 1987. " "It supports most of the data types described in the RFC." msgstr "" +"El módulo :mod:`xdrlib` soporta el estándar de representación externa de " +"datos (*External Data Representation Standard*) como se describe en :rfc:" +"`1014`, escrito por Sun Microsystems, Inc. en junio de 1987. Soporta la " +"mayoría de los tipos de datos descritos en el RFC." #: ../Doc/library/xdrlib.rst:19 msgid "" @@ -38,52 +44,64 @@ msgid "" "XDR representation, and another for unpacking from XDR representation. " "There are also two exception classes." msgstr "" +"El módulo :mod:`xdrlib` define dos clases, una para empaquetar variables en " +"la representación XDR, y otra para desempaquetar valores de la " +"representación XDR. También hay dos clases de excepciones." #: ../Doc/library/xdrlib.rst:26 msgid "" ":class:`Packer` is the class for packing data into XDR representation. The :" "class:`Packer` class is instantiated with no arguments." msgstr "" +":class:`Packer` es la clase para empaquetar datos en la representación XDR. " +"La clase :class:`Packer` es instanciada sin argumentos." #: ../Doc/library/xdrlib.rst:32 msgid "" "``Unpacker`` is the complementary class which unpacks XDR data values from a " "string buffer. The input buffer is given as *data*." msgstr "" +"``Unpacker`` es la clase complementaria que desempaqueta los valores de " +"datos XDR de un búfer de cadena. El búfer de entrada se proporciona como " +"*data*." #: ../Doc/library/xdrlib.rst:40 msgid ":rfc:`1014` - XDR: External Data Representation Standard" -msgstr "" +msgstr ":rfc:`1014` - XDR: estándar de representación externa de datos" #: ../Doc/library/xdrlib.rst:39 msgid "" "This RFC defined the encoding of data which was XDR at the time this module " "was originally written. It has apparently been obsoleted by :rfc:`1832`." msgstr "" +"Este RFC definió la codificación de datos que era XDR en el momento en que " +"este módulo fue escrito originalmente. Aparentemente ha quedado obsoleto, " +"siendo reemplazado por :rfc:`1832`." #: ../Doc/library/xdrlib.rst:42 msgid ":rfc:`1832` - XDR: External Data Representation Standard" -msgstr "" +msgstr ":rfc:`1832` - XDR: estándar de representación externa de datos" #: ../Doc/library/xdrlib.rst:43 msgid "Newer RFC that provides a revised definition of XDR." -msgstr "" +msgstr "El RFC más reciente que proporciona una definición revisada de XDR." #: ../Doc/library/xdrlib.rst:49 msgid "Packer Objects" -msgstr "" +msgstr "Instancias de la clase *Packer*" #: ../Doc/library/xdrlib.rst:51 msgid ":class:`Packer` instances have the following methods:" msgstr "" +"Las instancias de la clase :class:`Packer` poseen los siguientes métodos:" #: ../Doc/library/xdrlib.rst:56 msgid "Returns the current pack buffer as a string." -msgstr "" +msgstr "Retorna el búfer del paquete actual como una cadena de caracteres." #: ../Doc/library/xdrlib.rst:61 msgid "Resets the pack buffer to the empty string." -msgstr "" +msgstr "Restablece el búfer del paquete a la cadena de caracteres vacía." #: ../Doc/library/xdrlib.rst:63 msgid "" @@ -93,18 +111,26 @@ msgid "" "are supported: :meth:`pack_uint`, :meth:`pack_int`, :meth:`pack_enum`, :meth:" "`pack_bool`, :meth:`pack_uhyper`, and :meth:`pack_hyper`." msgstr "" +"En general, puedes empaquetar cualquiera de los tipos de datos XDR más " +"comunes, invocando el método ``pack_tipo()`` apropiado. Cada método toma un " +"solo argumento, el valor a empaquetar. Los siguientes métodos simples de " +"empaquetado de tipos de datos son soportados: :meth:`pack_uint`, :meth:" +"`pack_int`, :meth:`pack_enum`, :meth:`pack_bool`, :meth:`pack_uhyper`, y :" +"meth:`pack_hyper`." #: ../Doc/library/xdrlib.rst:72 msgid "Packs the single-precision floating point number *value*." -msgstr "" +msgstr "Empaqueta el número de punto flotante de precisión simple, *value*." #: ../Doc/library/xdrlib.rst:77 msgid "Packs the double-precision floating point number *value*." -msgstr "" +msgstr "Empaqueta el número de punto flotante de doble precisión, *value*." #: ../Doc/library/xdrlib.rst:79 msgid "The following methods support packing strings, bytes, and opaque data:" msgstr "" +"Los siguientes métodos soportan el empaquetado de cadenas de caracteres, " +"bytes y datos opacos:" #: ../Doc/library/xdrlib.rst:84 msgid "" @@ -112,11 +138,18 @@ msgid "" "*not* packed into the data buffer. The string is padded with null bytes if " "necessary to guaranteed 4 byte alignment." msgstr "" +"Empaqueta una cadena de caracteres de longitud fija, *s*. *n* es la " +"longitud de la cadena de caracteres pero *no* es empaquetada en el búfer de " +"datos. La cadena de caracteres es rellenada con bytes nulos si es " +"necesario, para garantizar que la longitud de los datos sea un múltiplo de 4 " +"bytes." #: ../Doc/library/xdrlib.rst:91 msgid "" "Packs a fixed length opaque data stream, similarly to :meth:`pack_fstring`." msgstr "" +"Empaqueta un flujo de datos opaco de longitud fija, similar a :meth:" +"`pack_fstring`." #: ../Doc/library/xdrlib.rst:96 msgid "" @@ -124,19 +157,28 @@ msgid "" "packed as an unsigned integer, then the string data is packed with :meth:" "`pack_fstring`." msgstr "" +"Empaqueta una cadena de caracteres de longitud variable, *s*. En primer " +"lugar, la longitud de la cadena de caracteres es empaquetada como un entero " +"sin signo, luego los datos de la cadena de caracteres son empaquetados con :" +"meth:`pack_fstring`." #: ../Doc/library/xdrlib.rst:103 msgid "" "Packs a variable length opaque data string, similarly to :meth:`pack_string`." msgstr "" +"Empaqueta una cadena de caracteres de datos opacos de longitud variable, " +"similar a :meth:`pack_string`." #: ../Doc/library/xdrlib.rst:108 msgid "Packs a variable length byte stream, similarly to :meth:`pack_string`." msgstr "" +"Empaqueta una secuencia de bytes de longitud variable, similar a :meth:" +"`pack_string`." #: ../Doc/library/xdrlib.rst:110 msgid "The following methods support packing arrays and lists:" msgstr "" +"Los siguientes métodos soportan el empaquetamiento de arreglos y listas:" #: ../Doc/library/xdrlib.rst:115 msgid "" @@ -147,11 +189,20 @@ msgid "" "function that is called to pack the individual item. At the end of the " "list, an unsigned integer ``0`` is packed." msgstr "" +"Empaqueta una *lista* de elementos homogéneos. Este método es útil para " +"listas con longitud indeterminada; en otras palabras, el tamaño no está " +"disponible hasta que se haya recorrido toda la lista. Para cada elemento de " +"la lista, un entero sin signo ``1`` se empaqueta primero, seguido del valor " +"de datos de la lista. *pack_item* es la función que se llama para " +"empaquetar el elemento individual. Al final de la lista, se empaqueta un " +"entero sin signo ``0``." #: ../Doc/library/xdrlib.rst:122 msgid "" "For example, to pack a list of integers, the code might appear like this::" msgstr "" +"Por ejemplo, para empaquetar una lista de enteros, el código podría " +"parecerse a esto::" #: ../Doc/library/xdrlib.rst:131 msgid "" @@ -160,6 +211,11 @@ msgid "" "exception is raised if ``len(array)`` is not equal to *n*. As above, " "*pack_item* is the function used to pack each element." msgstr "" +"Empaqueta una lista (*arreglo*) de elementos homogéneos de longitud fija. " +"*n* es la longitud de la lista; *no* es empaquetada en el búfer, pero una " +"excepción :exc:`ValueError` es lanzada si ``len(array)`` no es igual a *n*. " +"Al igual que en el método anterior, *pack_item* es la función usada para " +"empaquetar cada elemento." #: ../Doc/library/xdrlib.rst:139 msgid "" @@ -167,38 +223,49 @@ msgid "" "the list is packed as an unsigned integer, then each element is packed as " "in :meth:`pack_farray` above." msgstr "" +"Empaqueta una *lista* de elementos homogéneos de longitud variable. " +"Primero, la longitud de la lista es empaquetada como un entero sin signo, " +"luego cada elemento es empaquetado como en el método :meth:`pack_farray` de " +"arriba." #: ../Doc/library/xdrlib.rst:147 msgid "Unpacker Objects" -msgstr "" +msgstr "Instancias de la clase *Unpacker*" #: ../Doc/library/xdrlib.rst:149 msgid "The :class:`Unpacker` class offers the following methods:" -msgstr "" +msgstr "La clase :class:`Unpacker` ofrece los siguientes métodos:" #: ../Doc/library/xdrlib.rst:154 msgid "Resets the string buffer with the given *data*." -msgstr "" +msgstr "Restablece el búfer de cadena de caracteres a la *data* especificada." #: ../Doc/library/xdrlib.rst:159 msgid "Returns the current unpack position in the data buffer." -msgstr "" +msgstr "Retorna la posición actual desempaquetada en el búfer de datos." #: ../Doc/library/xdrlib.rst:164 msgid "" "Sets the data buffer unpack position to *position*. You should be careful " "about using :meth:`get_position` and :meth:`set_position`." msgstr "" +"Establece la posición de desempaquetado del búfer de datos en la posición " +"*position*. Debes tener cuidado al usar los métodos :meth:`get_position` y :" +"meth:`set_position`." #: ../Doc/library/xdrlib.rst:170 msgid "Returns the current unpack data buffer as a string." msgstr "" +"Retorna el búfer de datos actual desempaquetado como una cadena de " +"caracteres." #: ../Doc/library/xdrlib.rst:175 msgid "" "Indicates unpack completion. Raises an :exc:`Error` exception if all of the " "data has not been unpacked." msgstr "" +"Indica se ha completado el proceso de desempaquetado. Lanza una excepción :" +"exc:`Error` si no se han desempaquetado todos los datos." #: ../Doc/library/xdrlib.rst:178 msgid "" @@ -206,33 +273,46 @@ msgid "" "be unpacked with an :class:`Unpacker`. Unpacking methods are of the form " "``unpack_type()``, and take no arguments. They return the unpacked object." msgstr "" +"Además, cada tipo de datos que puede ser empaquetados con un :class:" +"`Packer`, puede ser desempaquetado con un :class:`Unpacker`. Los métodos de " +"desempaquetados son de la forma ``unpack_tipo()``, y no tienen argumentos. " +"Estos retornan el objeto desempaquetado." #: ../Doc/library/xdrlib.rst:185 msgid "Unpacks a single-precision floating point number." -msgstr "" +msgstr "Desempaqueta un número de punto flotante de precisión simple." #: ../Doc/library/xdrlib.rst:190 msgid "" "Unpacks a double-precision floating point number, similarly to :meth:" "`unpack_float`." msgstr "" +"Desempaqueta un número de punto flotante de doble precisión, similar a :meth:" +"`unpack_float`." #: ../Doc/library/xdrlib.rst:193 msgid "" "In addition, the following methods unpack strings, bytes, and opaque data:" msgstr "" +"Adicionalmente, los siguientes métodos desempaquetan cadenas de caracteres, " +"bytes y datos opacos:" #: ../Doc/library/xdrlib.rst:198 msgid "" "Unpacks and returns a fixed length string. *n* is the number of characters " "expected. Padding with null bytes to guaranteed 4 byte alignment is assumed." msgstr "" +"Desempaqueta y retorna una cadena de caracteres de longitud fija. *n* es el " +"número de caracteres esperados. Se asume un relleno con bytes nulos hasta " +"que la longitud de los datos sea un múltiplo de 4 bytes." #: ../Doc/library/xdrlib.rst:204 msgid "" "Unpacks and returns a fixed length opaque data stream, similarly to :meth:" "`unpack_fstring`." msgstr "" +"Desempaqueta y retorna un flujo de datos opaco de longitud fija, similar a :" +"meth:`unpack_fstring`." #: ../Doc/library/xdrlib.rst:210 msgid "" @@ -240,22 +320,31 @@ msgid "" "first unpacked as an unsigned integer, then the string data is unpacked " "with :meth:`unpack_fstring`." msgstr "" +"Desempaqueta y retorna una cadena de caracteres de longitud variable. La " +"longitud de la cadena de caracteres es desempaquetada primero como un entero " +"sin signo, luego los datos de la cadena de caracteres son desempaquetados " +"con el método :meth:`unpack_fstring`." #: ../Doc/library/xdrlib.rst:217 msgid "" "Unpacks and returns a variable length opaque data string, similarly to :meth:" "`unpack_string`." msgstr "" +"Desempaqueta y retorna un flujo de datos opaco de longitud variable, similar " +"a :meth:`unpack_string`." #: ../Doc/library/xdrlib.rst:223 msgid "" "Unpacks and returns a variable length byte stream, similarly to :meth:" "`unpack_string`." msgstr "" +"Desempaqueta y retorna una secuencia de bytes de longitud variable, similar " +"a :meth:`unpack_string`." #: ../Doc/library/xdrlib.rst:226 msgid "The following methods support unpacking arrays and lists:" msgstr "" +"Los siguientes métodos soportan el desempaquetado de arreglos y listas:" #: ../Doc/library/xdrlib.rst:231 msgid "" @@ -265,6 +354,12 @@ msgid "" "``0`` indicates the end of the list. *unpack_item* is the function that is " "called to unpack the items." msgstr "" +"Desempaqueta y retorna una lista de elementos homogéneos. La lista se " +"desempaqueta un elemento a la vez desempaquetando primero un indicador " +"entero sin signo. Si el flag es ``1``, el elemento se desempaqueta y se " +"agrega a la lista. Un flag de ``0`` indica el final de la lista. " +"*unpack_item* es la función a la que se invoca para desempaquetar los " +"elementos." #: ../Doc/library/xdrlib.rst:240 msgid "" @@ -272,6 +367,10 @@ msgid "" "*n* is number of list elements to expect in the buffer. As above, " "*unpack_item* is the function used to unpack each element." msgstr "" +"Desempaqueta y retorna (como una lista) un arreglo de elementos homogéneos " +"de longitud fija. *n* es el número de elementos de la lista que se esperan " +"en el búfer. Como se mostró anteriormente, *unpack_item* es la función " +"empleada para desempaquetar cada elemento." #: ../Doc/library/xdrlib.rst:247 msgid "" @@ -279,26 +378,36 @@ msgid "" "the length of the list is unpacked as an unsigned integer, then each element " "is unpacked as in :meth:`unpack_farray` above." msgstr "" +"Desempaqueta y retorna una *lista* de elementos homogéneos de longitud " +"variable. En primer lugar, la longitud de la lista se desempaqueta como un " +"entero sin signo, luego cada elemento se desempaqueta como en el método :" +"meth:`unpack_farray` de arriba." #: ../Doc/library/xdrlib.rst:255 msgid "Exceptions" -msgstr "" +msgstr "Excepciones" #: ../Doc/library/xdrlib.rst:257 msgid "Exceptions in this module are coded as class instances:" -msgstr "" +msgstr "En este módulo, las excepciones se codifican como instancias de clase:" #: ../Doc/library/xdrlib.rst:262 msgid "" "The base exception class. :exc:`Error` has a single public attribute :attr:" "`msg` containing the description of the error." msgstr "" +"La clase de excepción base. :exc:`Error` tiene un único atributo público, :" +"attr:`msg`, que contiene la descripción del error." #: ../Doc/library/xdrlib.rst:268 msgid "" "Class derived from :exc:`Error`. Contains no additional instance variables." msgstr "" +"Clase derivada de :exc:`Error`. No contiene variables de instancia " +"adicionales." #: ../Doc/library/xdrlib.rst:270 msgid "Here is an example of how you would catch one of these exceptions::" msgstr "" +"A continuación se muestra un ejemplo de cómo detectarías una de estas " +"excepciones::" diff --git a/library/xml.dom.minidom.po b/library/xml.dom.minidom.po index c24364caf8..38d92d994c 100644 --- a/library/xml.dom.minidom.po +++ b/library/xml.dom.minidom.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: 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: 2020-10-09 11:58+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: Francisco Jesús Sevilla García \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/xml.dom.minidom.rst:2 msgid ":mod:`xml.dom.minidom` --- Minimal DOM implementation" -msgstr "" +msgstr ":mod:`xml.dom.minidom` --- Implementación mínima del DOM" #: ../Doc/library/xml.dom.minidom.rst:11 msgid "**Source code:** :source:`Lib/xml/dom/minidom.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/xml/dom/minidom.py`" #: ../Doc/library/xml.dom.minidom.rst:15 msgid "" @@ -36,6 +38,12 @@ msgid "" "Users who are not already proficient with the DOM should consider using the :" "mod:`xml.etree.ElementTree` module for their XML processing instead." msgstr "" +":mod:`xml.dom.minidom` es una implementación mínima de la interfaz Document " +"Object Model (Modelo de objetos del documento), con una API similar a la de " +"otros lenguajes. Está destinada a ser más simple que una implementación " +"completa del DOM y también significativamente más pequeña. Aquellos usuarios " +"que aún no dominen el DOM deberían considerar usar el módulo :mod:`xml.etree." +"ElementTree` en su lugar para su procesamiento XML." #: ../Doc/library/xml.dom.minidom.rst:24 msgid "" @@ -43,17 +51,25 @@ msgid "" "constructed data. If you need to parse untrusted or unauthenticated data " "see :ref:`xml-vulnerabilities`." msgstr "" +"El módulo :mod:`xml.dom.minidom` no es seguro contra datos construidos " +"maliciosamente. Si necesitas analizar datos que no son de confianza o no " +"autenticados, consulta :ref:`xml-vulnerabilities`." #: ../Doc/library/xml.dom.minidom.rst:29 msgid "" "DOM applications typically start by parsing some XML into a DOM. With :mod:" "`xml.dom.minidom`, this is done through the parse functions::" msgstr "" +"Las aplicaciones DOM suelen comenzar analizando algún XML en un DOM. Con :" +"mod:`xml.dom.minidom`, esto se hace a través de las funciones de análisis " +"sintáctico::" #: ../Doc/library/xml.dom.minidom.rst:41 msgid "" "The :func:`parse` function can take either a filename or an open file object." msgstr "" +"La función :func:`parse` puede tomar un nombre de archivo o un objeto de " +"archivo previamente abierto." #: ../Doc/library/xml.dom.minidom.rst:46 msgid "" @@ -63,12 +79,21 @@ msgid "" "parser and activate namespace support; other parser configuration (like " "setting an entity resolver) must have been done in advance." msgstr "" +"Retorna un :class:`Document` a partir de la entrada dada. *filename_or_file* " +"puede ser un nombre de archivo o un objeto similar a un archivo. *parser*, " +"si se proporciona, debe ser un objeto de un analizador sintáctico SAX2. Esta " +"función intercambiará el controlador de documentos del analizador sintáctico " +"y activará el soporte con el espacio de nombres. Otras configuraciones del " +"analizador sintáctico (como configurar un solucionador de entidades) deben " +"haberse realizado de antemano." #: ../Doc/library/xml.dom.minidom.rst:52 msgid "" "If you have XML in a string, you can use the :func:`parseString` function " "instead:" msgstr "" +"Si tienes XML en una cadena de caracteres, puedes usar la función :func:" +"`parseString` en su lugar:" #: ../Doc/library/xml.dom.minidom.rst:58 msgid "" @@ -76,12 +101,17 @@ msgid "" "an :class:`io.StringIO` object for the string and passes that on to :func:" "`parse`." msgstr "" +"Retorna un objeto :class:`Document` que representa a *string*. Este método " +"crea un objeto :class:`io.StringIO` para la cadena de caracteres y lo pasa " +"a :func:`parse`." #: ../Doc/library/xml.dom.minidom.rst:61 msgid "" "Both functions return a :class:`Document` object representing the content of " "the document." msgstr "" +"Ambas funciones retornan un objeto :class:`Document` que representa el " +"contenido del documento." #: ../Doc/library/xml.dom.minidom.rst:64 msgid "" @@ -93,6 +123,14 @@ msgid "" "it's simply that these functions do not provide a parser implementation " "themselves." msgstr "" +"Lo que hacen las funciones :func:`parse` y :func:`parseString` es conectar " +"un analizador sintáctico de XML con un \"constructor DOM\" que puede aceptar " +"eventos de análisis de cualquier analizador sintáctico SAX y convertirlos en " +"un árbol DOM. El nombre de las funciones es quizás engañoso, pero es fácil " +"de entender cuando se comprenden las interfaces. El análisis sintáctico del " +"documento se completará antes de que retornen estas funciones, dichas " +"funciones simplemente no proporcionan una implementación del analizador " +"sintáctico por si mismas." #: ../Doc/library/xml.dom.minidom.rst:71 msgid "" @@ -102,6 +140,11 @@ msgid "" "mod:`xml.dom.minidom` module. Once you have a :class:`Document`, you can " "add child nodes to it to populate the DOM::" msgstr "" +"También puedes crear un objeto :class:`Document` invocando a un método en un " +"objeto de la \"Implementación del DOM\". Puedes obtener este objeto llamando " +"a la función :func:`getDOMImplementation` del paquete :mod:`xml.dom` o del " +"módulo :mod:`xml.dom.minidom`. Una vez que tengas un objeto :class:" +"`Document`, puedes agregarle nodos secundarios para llenar el DOM::" #: ../Doc/library/xml.dom.minidom.rst:86 msgid "" @@ -111,6 +154,12 @@ msgid "" "attr:`documentElement` property. It gives you the main element in the XML " "document: the one that holds all others. Here is an example program::" msgstr "" +"Una vez que tengas un objeto del documento DOM, puedes acceder a las partes " +"de tu documento XML a través de sus propiedades y métodos. Estas propiedades " +"se definen en la especificación DOM. La propiedad principal del objeto del " +"documento es :attr:`documentElement`. Te proporciona el elemento principal " +"en el documento XML: el que contiene a todos los demás. Aquí hay un programa " +"de ejemplo::" #: ../Doc/library/xml.dom.minidom.rst:95 msgid "" @@ -121,20 +170,30 @@ msgid "" "Otherwise, Python's garbage collector will eventually take care of the " "objects in the tree." msgstr "" +"Cuando hayas terminado con un árbol DOM, puedes invocar opcionalmente el " +"método :meth:`unlink` para forzar la limpieza temprana de los objetos ahora " +"innecesarios. :meth:`unlink` es una extensión de la API del DOM específica " +"del módulo :mod:`xml.dom.minidom`, que hace que el nodo y sus descendientes " +"sean esencialmente inútiles. En caso de no hacer uso de esto, eventualmente " +"el recolector de basura de Python se hará cargo de los objetos en el árbol." #: ../Doc/library/xml.dom.minidom.rst:104 msgid "" "`Document Object Model (DOM) Level 1 Specification `_" msgstr "" +"`Document Object Model (DOM) Level 1 Specification `_" #: ../Doc/library/xml.dom.minidom.rst:105 msgid "The W3C recommendation for the DOM supported by :mod:`xml.dom.minidom`." msgstr "" +"La recomendación del W3C para el DOM soportada por el módulo :mod:`xml.dom." +"minidom`." #: ../Doc/library/xml.dom.minidom.rst:111 msgid "DOM Objects" -msgstr "" +msgstr "Objetos del DOM" #: ../Doc/library/xml.dom.minidom.rst:113 msgid "" @@ -142,6 +201,9 @@ msgid "" "dom` module documentation. This section lists the differences between the " "API and :mod:`xml.dom.minidom`." msgstr "" +"La definición de la API del DOM para Python se proporciona como parte de la " +"documentación del módulo :mod:`xml.dom`. Esta sección simplemente enumera " +"las diferencias entre esta API y el módulo :mod:`xml.dom.minidom`." #: ../Doc/library/xml.dom.minidom.rst:120 msgid "" @@ -152,6 +214,13 @@ msgid "" "practice. This only needs to be called on the :class:`Document` object, but " "may be called on child nodes to discard children of that node." msgstr "" +"Rompe las referencias internas dentro del DOM para recolectarlo como basura " +"en las versiones de Python sin recolector de basura cíclico. Incluso cuando " +"se dispone del mismo, su uso puede hacer que grandes cantidades de memoria " +"estén disponibles antes, por lo que es una buena práctica invocar este " +"método en objetos DOM, tan pronto como ya no se necesiten. Solo necesita ser " +"invocado en el objeto :class:`Document`, pero se puede llamar en los nodos " +"hijos para descartar los hijos de ese nodo concreto." #: ../Doc/library/xml.dom.minidom.rst:127 msgid "" @@ -159,6 +228,9 @@ msgid "" "statement. The following code will automatically unlink *dom* when the :" "keyword:`!with` block is exited::" msgstr "" +"Puedes evitar invocar este método explícitamente utilizando la declaración :" +"keyword:`with`. El siguiente código desvinculará automáticamente *dom* " +"cuando se salga del bloque :keyword:`!with`::" #: ../Doc/library/xml.dom.minidom.rst:137 msgid "" @@ -169,24 +241,37 @@ msgid "" "subnodes of the current one. The *newl* parameter specifies the string to " "use to terminate newlines." msgstr "" +"Escribe XML en el objeto escritor. El escritor recibe texto pero no bytes " +"como entrada, debe tener un método :meth:`write` que coincida con el de la " +"interfaz del objeto de archivo. El parámetro *indent* es la sangría del nodo " +"actual. El parámetro *addindent* es la sangría incremental que se utilizará " +"para los subnodos del nodo actual. El parámetro *newl* especifica la cadena " +"que se utilizará como terminación de las nuevas líneas." #: ../Doc/library/xml.dom.minidom.rst:144 msgid "" "For the :class:`Document` node, an additional keyword argument *encoding* " "can be used to specify the encoding field of the XML header." msgstr "" +"Para el nodo :class:`Document`, se puede usar el argumento por palabra clave " +"adicional *encoding* para especificar el valor del campo de codificación del " +"encabezado XML." #: ../Doc/library/xml.dom.minidom.rst:147 msgid "" "The :meth:`writexml` method now preserves the attribute order specified by " "the user." msgstr "" +"El método :meth:`writexml` ahora conserva el orden de los atributos " +"especificado por el usuario." #: ../Doc/library/xml.dom.minidom.rst:153 msgid "" "Return a string or byte string containing the XML represented by the DOM " "node." msgstr "" +"Retorna una cadena de caracteres o una cadena de bytes que contiene el XML " +"representado por el nodo DOM." #: ../Doc/library/xml.dom.minidom.rst:156 msgid "" @@ -196,12 +281,21 @@ msgid "" "encoding. Encoding this string in an encoding other than UTF-8 is likely " "incorrect, since UTF-8 is the default encoding of XML." msgstr "" +"Si se proporciona de forma explícita un valor para el argumento *encoding* " +"[1]_, el resultado es una cadena de bytes con la codificación especificada. " +"Si no se proporciona el argumento *encoding*, el resultado es una cadena " +"Unicode y la declaración XML en la cadena resultante no especifica una " +"codificación. Codificar esta cadena en una codificación que no sea UTF-8 " +"probablemente sea una práctica incorrecta, ya que UTF-8 es la codificación " +"predeterminada para XML." #: ../Doc/library/xml.dom.minidom.rst:163 msgid "" "The :meth:`toxml` method now preserves the attribute order specified by the " "user." msgstr "" +"El método :meth:`toxml` ahora conserva el orden de los atributos " +"especificado por el usuario." #: ../Doc/library/xml.dom.minidom.rst:169 msgid "" @@ -209,22 +303,30 @@ msgid "" "indentation string and defaults to a tabulator; *newl* specifies the string " "emitted at the end of each line and defaults to ``\\n``." msgstr "" +"Retorna una versión impresa elegante del documento. *indent* especifica la " +"cadena de caracteres a usar como sangría y es una tabulación por defecto; " +"*newl* especifica la cadena de caracteres emitida al final de cada línea y " +"es ``\\n`` por defecto." #: ../Doc/library/xml.dom.minidom.rst:173 msgid "" "The *encoding* argument behaves like the corresponding argument of :meth:" "`toxml`." msgstr "" +"El argumento *encoding* se comporta como el argumento correspondiente del " +"método :meth:`toxml`." #: ../Doc/library/xml.dom.minidom.rst:176 msgid "" "The :meth:`toprettyxml` method now preserves the attribute order specified " "by the user." msgstr "" +"El método :meth:`toprettyxml` ahora conserva el orden de los atributos " +"especificado por el usuario." #: ../Doc/library/xml.dom.minidom.rst:184 msgid "DOM Example" -msgstr "" +msgstr "Ejemplo de DOM" #: ../Doc/library/xml.dom.minidom.rst:186 msgid "" @@ -232,22 +334,30 @@ msgid "" "this particular case, we do not take much advantage of the flexibility of " "the DOM." msgstr "" +"Este programa de ejemplo es una demostración bastante realista de un " +"programa simple. En este caso particular, no aprovechamos mucho la " +"flexibilidad del DOM." #: ../Doc/library/xml.dom.minidom.rst:195 msgid "minidom and the DOM standard" -msgstr "" +msgstr "minidom y el estándar DOM" #: ../Doc/library/xml.dom.minidom.rst:197 msgid "" "The :mod:`xml.dom.minidom` module is essentially a DOM 1.0-compatible DOM " "with some DOM 2 features (primarily namespace features)." msgstr "" +"El módulo :mod:`xml.dom.minidom` es esencialmente un DOM compatible con DOM " +"1.0, con algunas características de DOM 2 (principalmente características " +"del espacio de nombres)." #: ../Doc/library/xml.dom.minidom.rst:200 msgid "" "Usage of the DOM interface in Python is straight-forward. The following " "mapping rules apply:" msgstr "" +"El uso de la interfaz DOM en Python es sencillo. Se aplican las siguientes " +"reglas de mapeo:" #: ../Doc/library/xml.dom.minidom.rst:203 msgid "" @@ -257,6 +367,11 @@ msgid "" "operations (and attributes) from the base interfaces, plus any new " "operations." msgstr "" +"Se accede a las interfaces a través de objetos de instancia. Las " +"aplicaciones no deben instanciar las clases en sí mismas; deben usar las " +"funciones de creación disponibles en el objeto :class:`Document`. Las " +"interfaces derivadas admiten todas las operaciones (y atributos) de las " +"interfaces base, además de cualquier operación nueva." #: ../Doc/library/xml.dom.minidom.rst:208 msgid "" @@ -264,6 +379,10 @@ msgid "" "parameters, the arguments are passed in normal order (from left to right). " "There are no optional arguments. ``void`` operations return ``None``." msgstr "" +"Las operaciones se utilizan como métodos. Dado que el DOM usa solo " +"parámetros :keyword:`in`, los argumentos se pasan en el orden normal (de " +"izquierda a derecha). No hay argumentos opcionales. Las operaciones ``void`` " +"retornan ``None``." #: ../Doc/library/xml.dom.minidom.rst:212 msgid "" @@ -272,12 +391,19 @@ msgid "" "through accessor methods :meth:`_get_foo` and :meth:`_set_foo`. " "``readonly`` attributes must not be changed; this is not enforced at runtime." msgstr "" +"Los atributos IDL se asignan a atributos de instancia. Por compatibilidad " +"con el mapeo del lenguaje OMG IDL para Python, también se puede acceder a un " +"atributo ``foo`` a través de los métodos de acceso :meth:`_get_foo` y :meth:" +"`_set_foo`. Los atributos ``readonly`` no deben modificarse; esto no se " +"aplica en tiempo de ejecución." #: ../Doc/library/xml.dom.minidom.rst:217 msgid "" "The types ``short int``, ``unsigned int``, ``unsigned long long``, and " "``boolean`` all map to Python integer objects." msgstr "" +"Los tipos ``short int``, ``unsigned int``, ``unsigned long long`` y " +"``boolean`` se asignan todos a objetos enteros de Python." #: ../Doc/library/xml.dom.minidom.rst:220 msgid "" @@ -286,6 +412,11 @@ msgid "" "of type ``DOMString`` may also be ``None`` where allowed to have the IDL " "``null`` value by the DOM specification from the W3C." msgstr "" +"El tipo ``DOMString`` se asigna a cadenas de caracteres de Python. El " +"módulo :mod:`xml.dom.minidom` admite bytes o cadenas de caracteres, pero " +"normalmente producirá cadenas de caracteres. Los valores de tipo " +"``DOMString`` también pueden ser ``None`` cuando la especificación DOM del " +"W3C permite tener el valor IDL ``null``." #: ../Doc/library/xml.dom.minidom.rst:225 msgid "" @@ -293,6 +424,9 @@ msgid "" "``xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE``); they must not be " "changed." msgstr "" +"Las declaraciones ``const`` se asignan a variables en su ámbito respectivo " +"(por ejemplo, ``xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE``); no " +"deben modificarse." #: ../Doc/library/xml.dom.minidom.rst:228 msgid "" @@ -300,6 +434,9 @@ msgid "" "Instead, :mod:`xml.dom.minidom` uses standard Python exceptions such as :exc:" "`TypeError` and :exc:`AttributeError`." msgstr "" +"``DOMException`` no está actualmente soportado por el módulo :mod:`xml.dom." +"minidom`. En su lugar, :mod:`xml.dom.minidom` usa excepciones estándar de " +"Python como :exc:`TypeError` y :exc:`AttributeError`." #: ../Doc/library/xml.dom.minidom.rst:232 msgid "" @@ -309,29 +446,38 @@ msgid "" "are, however, much more \"Pythonic\" than the interface defined in the W3C " "recommendations." msgstr "" +"Los objetos de la clase :class:`NodeList` se implementan usando el tipo " +"lista incorporado de Python. Estos objetos proporcionan la interfaz definida " +"en la especificación DOM, pero en versiones anteriores de Python no son " +"compatibles con la API oficial. Sin embargo, son mucho más \"pythónicas\" " +"que la interfaz definida en las recomendaciones del W3C." #: ../Doc/library/xml.dom.minidom.rst:238 msgid "" "The following interfaces have no implementation in :mod:`xml.dom.minidom`:" msgstr "" +"Las siguientes interfaces no están implementadas en el módulo :mod:`xml.dom." +"minidom`:" #: ../Doc/library/xml.dom.minidom.rst:240 msgid ":class:`DOMTimeStamp`" -msgstr "" +msgstr ":class:`DOMTimeStamp`" #: ../Doc/library/xml.dom.minidom.rst:242 msgid ":class:`EntityReference`" -msgstr "" +msgstr ":class:`EntityReference`" #: ../Doc/library/xml.dom.minidom.rst:244 msgid "" "Most of these reflect information in the XML document that is not of general " "utility to most DOM users." msgstr "" +"La mayoría de ellas reflejan información en el documento XML que " +"generalmente no es de utilidad para la mayoría de los usuarios de DOM." #: ../Doc/library/xml.dom.minidom.rst:248 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/library/xml.dom.minidom.rst:249 msgid "" @@ -342,3 +488,9 @@ msgid "" "EncodingDecl and https://www.iana.org/assignments/character-sets/character-" "sets.xhtml." msgstr "" +"El nombre de codificación incluido en la salida XML debe cumplir con los " +"estándares apropiados. Por ejemplo, \"UTF-8\" es válido, pero \"UTF8\" no es " +"válido en la declaración de un documento XML, aunque Python lo acepta como " +"nombre de codificación. Para más detalles, consulta 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.dom.pulldom.po b/library/xml.dom.pulldom.po index 59443e61e7..fc3045898b 100644 --- a/library/xml.dom.pulldom.po +++ b/library/xml.dom.pulldom.po @@ -6,27 +6,31 @@ # 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: 2020-10-18 17:55-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.1\n" #: ../Doc/library/xml.dom.pulldom.rst:2 msgid ":mod:`xml.dom.pulldom` --- Support for building partial DOM trees" msgstr "" +":mod:`xml.dom.pulldom` --- Soporte para la construcción parcial de árboles " +"DOM" #: ../Doc/library/xml.dom.pulldom.rst:9 msgid "**Source code:** :source:`Lib/xml/dom/pulldom.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/xml/dom/pulldom.py`" #: ../Doc/library/xml.dom.pulldom.rst:13 msgid "" @@ -39,6 +43,15 @@ msgid "" "over those events until either processing is finished or an error condition " "occurs." msgstr "" +"El módulo :mod:`xml.dom.pulldom` proporciona un \"pull parser\" al que " +"también se le puede pedir que produzca DOM-fragmentos del documento " +"accesibles cuando sea necesario. El concepto básico implica extraer \"eventos" +"\" desde una secuencia (*stream*) de entrada XML y procesarlos. A diferencia " +"de SAX, que también emplea un modelo de procesamiento orientado a eventos " +"junto con callbacks (retrollamada), el usuario de un analizador de " +"extracción (*pull parser*) es responsable de extraer explícitamente eventos " +"de la secuencia, recorriendo esos eventos hasta que finalice el " +"procesamiento o se produzca una condición de error." #: ../Doc/library/xml.dom.pulldom.rst:24 msgid "" @@ -46,6 +59,9 @@ msgid "" "constructed data. If you need to parse untrusted or unauthenticated data " "see :ref:`xml-vulnerabilities`." msgstr "" +"El módulo :mod:`xml.dom.pulldom` no es seguro contra datos maliciosamente " +"construidos . Si necesita analizar datos que no son confiables o no " +"autenticados, consulte :ref:`xml-vulnerabilities`." #: ../Doc/library/xml.dom.pulldom.rst:30 msgid "" @@ -53,52 +69,58 @@ msgid "" "increase security by default. To enable processing of external entities, " "pass a custom parser instance in::" msgstr "" +"El analizador SAX ya no procesa entidades externas generales de forma " +"predeterminada para aumentar la seguridad de forma predeterminada. Para " +"habilitar el procesamiento de entidades externas, pase una instancia de " +"analizador personalizada (*custom parser instance in::*)" #: ../Doc/library/xml.dom.pulldom.rst:43 msgid "Example::" -msgstr "" +msgstr "Ejemplo:" #: ../Doc/library/xml.dom.pulldom.rst:54 msgid "``event`` is a constant and can be one of:" -msgstr "" +msgstr "``event`` es una constante y puede ser uno de:" #: ../Doc/library/xml.dom.pulldom.rst:56 msgid ":data:`START_ELEMENT`" -msgstr "" +msgstr ":data:`START_ELEMENT` (Iniciar elemento)" #: ../Doc/library/xml.dom.pulldom.rst:57 msgid ":data:`END_ELEMENT`" -msgstr "" +msgstr ":data:`END_ELEMENT` (Finalizar elemento)" #: ../Doc/library/xml.dom.pulldom.rst:58 msgid ":data:`COMMENT`" -msgstr "" +msgstr ":data:`COMMENT` (comentario)" #: ../Doc/library/xml.dom.pulldom.rst:59 msgid ":data:`START_DOCUMENT`" -msgstr "" +msgstr ":data:`START_DOCUMENT` (Iniciar documento)" #: ../Doc/library/xml.dom.pulldom.rst:60 msgid ":data:`END_DOCUMENT`" -msgstr "" +msgstr ":data:`END_DOCUMENT` (finalizar documento)" #: ../Doc/library/xml.dom.pulldom.rst:61 msgid ":data:`CHARACTERS`" -msgstr "" +msgstr ":data:`CHARACTERS` (caracteres)" #: ../Doc/library/xml.dom.pulldom.rst:62 msgid ":data:`PROCESSING_INSTRUCTION`" -msgstr "" +msgstr ":data:`PROCESSING_INSTRUCTION` (instrucción de procesamiento)" #: ../Doc/library/xml.dom.pulldom.rst:63 msgid ":data:`IGNORABLE_WHITESPACE`" -msgstr "" +msgstr ":data:`IGNORABLE_WHITESPACE` (Espacio en blanco que puede ignorarse)" #: ../Doc/library/xml.dom.pulldom.rst:65 msgid "" "``node`` is an object of type :class:`xml.dom.minidom.Document`, :class:`xml." "dom.minidom.Element` or :class:`xml.dom.minidom.Text`." msgstr "" +"``node`` es un objeto del tipo :class:`xml.dom.minidom.Document`, :class:" +"`xml.dom.minidom.Element` ó :class:`xml.dom.minidom.Text`." #: ../Doc/library/xml.dom.pulldom.rst:68 msgid "" @@ -111,10 +133,19 @@ msgid "" "in the document at any given point) or to make use of the :func:" "`DOMEventStream.expandNode` method and switch to DOM-related processing." msgstr "" +"Puesto que el documento se trata como una secuencia \"flat\" (plana) de " +"eventos, el documento \"tree\" (árbol) se atraviesa implícitamente y los " +"elementos deseados se encuentran independientemente de su profundidad en el " +"árbol. En otras palabras, no es necesario tener en cuenta cuestiones " +"jerárquicas como la búsqueda recursiva de los nodos de documento, aunque si " +"el contexto de los elementos fuera importante, es necesario mantener algún " +"estado relacionado con el contexto (es decir, recordar dónde se encuentra en " +"el documento en un momento dado) o hacer uso del método :func:" +"`DOMEventStream.expandNode` y cambiar al procesamiento relacionado con DOM." #: ../Doc/library/xml.dom.pulldom.rst:80 ../Doc/library/xml.dom.pulldom.rst:85 msgid "Subclass of :class:`xml.sax.handler.ContentHandler`." -msgstr "" +msgstr "Subclase de :class:`xml.sax.handler.ContentHandler`." #: ../Doc/library/xml.dom.pulldom.rst:90 msgid "" @@ -125,35 +156,48 @@ msgid "" "other parser configuration (like setting an entity resolver) must have been " "done in advance." msgstr "" +"Retorna un :class:`DOMEventStream` de la entrada dada. *stream_or_string* " +"(secuencia o cadena) puede ser un nombre de archivo o un objeto similar a un " +"archivo, *parser*, si se indica, debe ser un objeto :class:`~xml.sax." +"xmlreader.XMLReader`. Esta función cambiará el controlador de documentos del " +"analizador y activará el soporte de espacios de nombres; otra configuración " +"del analizador (como establecer un solucionador de entidades) debe haberse " +"realizado de antemano." #: ../Doc/library/xml.dom.pulldom.rst:97 msgid "" "If you have XML in a string, you can use the :func:`parseString` function " "instead:" msgstr "" +"Si tiene XML en una cadena, puede usar en su lugar la función :func:" +"`parseString`:" #: ../Doc/library/xml.dom.pulldom.rst:101 msgid "" "Return a :class:`DOMEventStream` that represents the (Unicode) *string*." msgstr "" +"Retorna una: clase :class:`DOMEventStream` que representa la cadena " +"(Unicode) *strnig* (cadena)" #: ../Doc/library/xml.dom.pulldom.rst:105 msgid "Default value for the *bufsize* parameter to :func:`parse`." -msgstr "" +msgstr "Valor predeterminado para el parámetro *bufsize* para :func:`parse`." #: ../Doc/library/xml.dom.pulldom.rst:107 msgid "" "The value of this variable can be changed before calling :func:`parse` and " "the new value will take effect." msgstr "" +"El valor de las variables puede ser cambiado antes de llamar a :func:`parse` " +"y el nuevo valor tendrá efecto." #: ../Doc/library/xml.dom.pulldom.rst:113 msgid "DOMEventStream Objects" -msgstr "" +msgstr "Objetos DOMEventStream" #: ../Doc/library/xml.dom.pulldom.rst:117 msgid "Support for :meth:`sequence protocol <__getitem__>` is deprecated." -msgstr "" +msgstr "El soporte para :meth:`sequence protocol <__getitem__>` está obsoleto." #: ../Doc/library/xml.dom.pulldom.rst:122 msgid "" @@ -164,7 +208,14 @@ msgid "" "`CHARACTERS`. The current node does not contain information about its " "children, unless :func:`expandNode` is called." msgstr "" +"Retorna el contenido de la tupla *event* y del *node* corriente como :class:" +"`xml.dom.minidom.Document` si el evento es igual a :data:`START_DOCUMENT`, :" +"class:`xml.dom.minidom.Element` si el evento es igual a :data:" +"`START_ELEMENT` o :data:`END_ELEMENT` o :class:`xml.dom.minidom.Text` si el " +"evento es igual a :data:`CHARACTERS`. El nodo actual no es contiene " +"información sobre sus hijos a menos que se llame a la función :func:" +"`expandNode`." #: ../Doc/library/xml.dom.pulldom.rst:132 msgid "Expands all children of *node* into *node*. Example::" -msgstr "" +msgstr "Expande todos los hijos de *node* en *node* (nodo en nodo). Ejemplo:" diff --git a/library/xml.po b/library/xml.po index 7eac5563e5..dd37a11b00 100644 --- a/library/xml.po +++ b/library/xml.po @@ -1,34 +1,38 @@ # 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: 2020-10-12 17:11-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/library/xml.rst:4 msgid "XML Processing Modules" -msgstr "" +msgstr "Módulos de procesamiento XML" #: ../Doc/library/xml.rst:12 msgid "**Source code:** :source:`Lib/xml/`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/xml/`" #: ../Doc/library/xml.rst:16 msgid "" "Python's interfaces for processing XML are grouped in the ``xml`` package." msgstr "" +"Las interfaces de Python para procesar XML están agrupadas en el paquete " +"``xml``." #: ../Doc/library/xml.rst:20 msgid "" @@ -36,6 +40,10 @@ msgid "" "data. If you need to parse untrusted or unauthenticated data see the :ref:" "`xml-vulnerabilities` and :ref:`defused-packages` sections." msgstr "" +"Los módulos XML no son seguros contra datos erróneos o construidos " +"malintencionadamente. Si necesita analizar datos no confiables o no " +"autenticados, consulte las secciones :ref:`xml-vulnerabilities` y :ref:" +"`defused-packages`." #: ../Doc/library/xml.rst:25 msgid "" @@ -44,46 +52,55 @@ msgid "" "is included with Python, so the :mod:`xml.parsers.expat` module will always " "be available." msgstr "" +"Es importante tener en cuenta que los módulos del paquete :mod:`xml` " +"requieren que haya al menos un analizador XML compatible con SAX disponible. " +"El analizador Expat se incluye con Python, por lo que el módulo :mod:`xml." +"parsers.expat` siempre estará disponible." #: ../Doc/library/xml.rst:30 msgid "" "The documentation for the :mod:`xml.dom` and :mod:`xml.sax` packages are the " "definition of the Python bindings for the DOM and SAX interfaces." msgstr "" +"La documentación de los paquetes :mod:`xml.dom` y :mod:`xml.sax` es la " +"definición de los enlaces de Python para las interfaces DOM y SAX." #: ../Doc/library/xml.rst:33 msgid "The XML handling submodules are:" -msgstr "" +msgstr "Los submódulos de manejo de XML son:" #: ../Doc/library/xml.rst:35 msgid "" ":mod:`xml.etree.ElementTree`: the ElementTree API, a simple and lightweight " "XML processor" msgstr "" +":mod:`xml.etree.ElementTree`: la API ElementTree, un procesador de XML " +"simple y ligero" #: ../Doc/library/xml.rst:40 msgid ":mod:`xml.dom`: the DOM API definition" -msgstr "" +msgstr ":mod:`xml.dom`: la definición de la API DOM" #: ../Doc/library/xml.rst:41 msgid ":mod:`xml.dom.minidom`: a minimal DOM implementation" -msgstr "" +msgstr ":mod:`xml.dom.minidom`: una implementación mínima de DOM" #: ../Doc/library/xml.rst:42 msgid ":mod:`xml.dom.pulldom`: support for building partial DOM trees" msgstr "" +":mod:`xml.dom.pulldom`: soporte para la construcción de árboles DOM parciales" #: ../Doc/library/xml.rst:46 msgid ":mod:`xml.sax`: SAX2 base classes and convenience functions" -msgstr "" +msgstr ":mod:`xml.sax`: clases base SAX2 y funciones de conveniencia" #: ../Doc/library/xml.rst:47 msgid ":mod:`xml.parsers.expat`: the Expat parser binding" -msgstr "" +msgstr ":mod:`xml.parsers.expat`: el enlace del analizador Expat" #: ../Doc/library/xml.rst:53 msgid "XML vulnerabilities" -msgstr "" +msgstr "Vulnerabilidades XML" #: ../Doc/library/xml.rst:55 msgid "" @@ -92,107 +109,119 @@ msgid "" "attacks, access local files, generate network connections to other machines, " "or circumvent firewalls." msgstr "" +"Los módulos de procesamiento XML no son seguros contra datos construidos " +"malintencionadamente. Un atacante puede abusar de las características XML " +"para llevar a cabo ataques de denegación de servicio, acceder a archivos " +"locales, generar conexiones de red a otras máquinas o eludir firewalls." #: ../Doc/library/xml.rst:60 msgid "" "The following table gives an overview of the known attacks and whether the " "various modules are vulnerable to them." msgstr "" +"En la tabla siguiente se ofrece una visión general de los ataques conocidos " +"y si los distintos módulos son vulnerables a ellos." #: ../Doc/library/xml.rst:64 msgid "kind" -msgstr "" +msgstr "tipo" #: ../Doc/library/xml.rst:64 msgid "sax" -msgstr "" +msgstr "sax" #: ../Doc/library/xml.rst:64 msgid "etree" -msgstr "" +msgstr "etree" #: ../Doc/library/xml.rst:64 msgid "minidom" -msgstr "" +msgstr "minidom" #: ../Doc/library/xml.rst:64 msgid "pulldom" -msgstr "" +msgstr "pulldom" #: ../Doc/library/xml.rst:64 msgid "xmlrpc" -msgstr "" +msgstr "xmlrpc" #: ../Doc/library/xml.rst:66 msgid "billion laughs" -msgstr "" +msgstr "mil millones de risas" #: ../Doc/library/xml.rst:66 ../Doc/library/xml.rst:67 #: ../Doc/library/xml.rst:70 msgid "**Vulnerable**" -msgstr "" +msgstr "**Vulnerable**" #: ../Doc/library/xml.rst:67 msgid "quadratic blowup" -msgstr "" +msgstr "explosión cuadrática" #: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:99 msgid "external entity expansion" -msgstr "" +msgstr "expansión de entidad externa" #: ../Doc/library/xml.rst:68 ../Doc/library/xml.rst:69 msgid "Safe (4)" -msgstr "" +msgstr "Seguro (4)" #: ../Doc/library/xml.rst:68 msgid "Safe (1)" -msgstr "" +msgstr "Seguro (1)" #: ../Doc/library/xml.rst:68 msgid "Safe (2)" -msgstr "" +msgstr "Seguro (2)" #: ../Doc/library/xml.rst:68 msgid "Safe (3)" -msgstr "" +msgstr "Seguro (3)" #: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:104 msgid "`DTD`_ retrieval" -msgstr "" +msgstr "Recuperación de `DTD`_" #: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:70 msgid "Safe" -msgstr "" +msgstr "Seguro" #: ../Doc/library/xml.rst:70 ../Doc/library/xml.rst:111 msgid "decompression bomb" -msgstr "" +msgstr "bomba de descompresión" #: ../Doc/library/xml.rst:73 msgid "" ":mod:`xml.etree.ElementTree` doesn't expand external entities and raises a :" "exc:`ParserError` when an entity occurs." msgstr "" +":mod:`xml.etree.ElementTree` no expande entidades externas y lanza un :exc:" +"`ParserError` cuando se produce una entidad." #: ../Doc/library/xml.rst:75 msgid "" ":mod:`xml.dom.minidom` doesn't expand external entities and simply returns " "the unexpanded entity verbatim." msgstr "" +":mod:`xml.dom.minidom` no expande entidades externas y simplemente retorna " +"la entidad no expandida literalmente." #: ../Doc/library/xml.rst:77 msgid ":mod:`xmlrpclib` doesn't expand external entities and omits them." -msgstr "" +msgstr ":mod:`xmlrpclib` no expande entidades externas y las omite." #: ../Doc/library/xml.rst:78 msgid "" "Since Python 3.7.1, external general entities are no longer processed by " "default." msgstr "" +"Desde Python 3.7.1, las entidades generales externas ya no se procesan de " +"forma predeterminada." #: ../Doc/library/xml.rst:87 msgid "billion laughs / exponential entity expansion" -msgstr "" +msgstr "mil millones de risas / expansión exponencial de entidad" #: ../Doc/library/xml.rst:83 msgid "" @@ -202,10 +231,15 @@ msgid "" "string. The exponential expansion results in several gigabytes of text and " "consumes lots of memory and CPU time." msgstr "" +"El ataque `Billion Laughs`_, también conocido como expansión exponencial de " +"entidades, utiliza varios niveles de entidades anidadas. Cada entidad hace " +"referencia a otra entidad varias veces y la definición de entidad final " +"contiene una cadena pequeña. La expansión exponencial da como resultado " +"varios gigabytes de texto y consume mucha memoria y tiempo de CPU." #: ../Doc/library/xml.rst:94 msgid "quadratic blowup entity expansion" -msgstr "" +msgstr "expansión de entidad de explosión cuadrática" #: ../Doc/library/xml.rst:90 msgid "" @@ -215,6 +249,12 @@ msgid "" "isn't as efficient as the exponential case but it avoids triggering parser " "countermeasures that forbid deeply-nested entities." msgstr "" +"Un ataque de explosión cuadrática es similar a un ataque de `Billion " +"Laughs`_; también abusa de la expansión de entidad. En lugar de entidades " +"anidadas, repite una entidad grande con un par de miles de caracteres una y " +"otra vez. El ataque no es tan eficaz como el caso exponencial, pero evita " +"desencadenar contramedidas del analizador que prohíben entidades " +"profundamente anidadas." #: ../Doc/library/xml.rst:97 msgid "" @@ -222,6 +262,10 @@ msgid "" "can also point to external resources or local files. The XML parser accesses " "the resource and embeds the content into the XML document." msgstr "" +"Las declaraciones de entidad pueden contener algo más que texto para su " +"reemplazo. También pueden apuntar a recursos externos o archivos locales. El " +"analizador XML tiene acceso al recurso e incrusta el contenido en el " +"documento XML." #: ../Doc/library/xml.rst:102 msgid "" @@ -229,6 +273,10 @@ msgid "" "type definitions from remote or local locations. The feature has similar " "implications as the external entity expansion issue." msgstr "" +"Algunas bibliotecas XML como :mod:`xml.dom.pulldom` de Python recuperan " +"definiciones de tipo de documento de ubicaciones remotas o locales. La " +"característica tiene implicaciones similares a las del problema de expansión " +"de entidades externas." #: ../Doc/library/xml.rst:107 msgid "" @@ -237,16 +285,23 @@ msgid "" "files. For an attacker it can reduce the amount of transmitted data by three " "magnitudes or more." msgstr "" +"Las bombas de descompresión (también conocidas como `ZIP bomb`_) se aplican " +"a todas las bibliotecas XML que pueden analizar secuencias XML comprimidas, " +"como secuencias HTTP comprimidas con gzip o archivos comprimidos por LZMA. " +"Para un atacante puede reducir la cantidad de datos transmitidos en " +"magnitudes de tres o más." #: ../Doc/library/xml.rst:113 msgid "" "The documentation for `defusedxml`_ on PyPI has further information about " "all known attack vectors with examples and references." msgstr "" +"La documentación de `defusedxml`_ en PyPI tiene más información sobre todos " +"los vectores de ataque conocidos con ejemplos y referencias." #: ../Doc/library/xml.rst:119 msgid "The :mod:`defusedxml` and :mod:`defusedexpat` Packages" -msgstr "" +msgstr "Paquetes :mod:`defusedxml` y :mod:`defusedexpat`" #: ../Doc/library/xml.rst:121 msgid "" @@ -256,6 +311,12 @@ msgid "" "data. The package also ships with example exploits and extended " "documentation on more XML exploits such as XPath injection." msgstr "" +"`defusedxml`_ es un paquete Python puro con subclases modificadas de todos " +"los analizadores XML stdlib que impiden cualquier operación potencialmente " +"malintencionada. Se recomienda el uso de este paquete para cualquier código " +"de servidor que analice datos XML que no sean de confianza. El paquete " +"también incluye ataques de ejemplo y documentación ampliada sobre más " +"vulnerabilidades XML, como la inyección de XPath." #: ../Doc/library/xml.rst:127 msgid "" @@ -266,3 +327,10 @@ msgid "" "of Python, but will not be included in any bugfix releases of Python because " "they break backward compatibility." msgstr "" +"`defusedexpat`_ proporciona un libexpat modificado y un módulo :mod:" +"`pyexpat` parcheado que tienen contramedidas contra ataques DoS de expansión " +"de entidad. El módulo :mod:`defusedexpat` todavía permite una cantidad " +"sensata y configurable de expansiones de entidades. Las modificaciones " +"pueden incluirse en alguna versión futura de Python, pero no se incluirán en " +"ninguna versión de corrección de errores de Python porque rompen la " +"compatibilidad con versiones anteriores." diff --git a/library/xml.sax.po b/library/xml.sax.po index 6a549c1c1e..c458b6dce7 100644 --- a/library/xml.sax.po +++ b/library/xml.sax.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: 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: 2020-10-13 00:29+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: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/xml.sax.rst:2 msgid ":mod:`xml.sax` --- Support for SAX2 parsers" -msgstr "" +msgstr ":mod:`XML.sax`--- Soporte para analizadores SAX2" #: ../Doc/library/xml.sax.rst:11 msgid "**Source code:** :source:`Lib/xml/sax/__init__.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/xml/sax/__init__.py`" #: ../Doc/library/xml.sax.rst:15 msgid "" @@ -35,6 +37,10 @@ msgid "" "the SAX exceptions and the convenience functions which will be most used by " "users of the SAX API." msgstr "" +"El paquete :mod:`xml.sax` provee un número de módulos que implementan la API " +"Simple para la interfaz XML (SAX) para Python. El paquete mismo provee las " +"excepciones SAX y las funciones de conveniencia que serán las más usadas por " +"los usuarios de la API SAX." #: ../Doc/library/xml.sax.rst:23 msgid "" @@ -42,6 +48,9 @@ msgid "" "data. If you need to parse untrusted or unauthenticated data see :ref:`xml-" "vulnerabilities`." msgstr "" +"El módulo :mod:`XML.sax` no es seguro contra datos construidos " +"maliciosamente. Si necesita analizar datos no autenticados o no confiables, " +"mirar :ref:`xml-vulnerabilities`." #: ../Doc/library/xml.sax.rst:29 msgid "" @@ -52,10 +61,17 @@ msgid "" "xmlreader.XMLReader.setFeature` on the parser object and argument :data:" "`~xml.sax.handler.feature_external_ges`." msgstr "" +"El analizador SAX ya no procesa entidades generales externas por defecto " +"para incrementar seguridad. Antes, el analizador creaba conexiones de red " +"para buscar archivos remotos o archivos locales cargados del sistema de " +"archivos para DTD y entidades. La característica puede ser activadas de " +"nuevo con el método :meth:`~xml.sax.xmlreader.XMLReader.setFeature` en el " +"objeto analizador y el argumento :data:`~xml.sax.handler." +"feature_external_ges`." #: ../Doc/library/xml.sax.rst:36 msgid "The convenience functions are:" -msgstr "" +msgstr "Las funciones de conveniencia son:" #: ../Doc/library/xml.sax.rst:41 msgid "" @@ -65,10 +81,17 @@ msgid "" "`create_parser`. Modules listed in *parser_list* will be used before " "modules in the default list of parsers." msgstr "" +"Crea y retorna un objeto SAX :class:`~xml.sax.xmlreader.XMLReader`. El " +"primer analizador encontrado será el que se use. Si se provee " +"*parser_list*, debe ser un iterable de cadenas de caracteres el cual nombra " +"módulos que tienen una función llamada :func:`créate_parser`. Los módulos " +"listados en *parser_list* serán usados antes de los módulos en la lista de " +"analizadores por defecto." #: ../Doc/library/xml.sax.rst:47 msgid "The *parser_list* argument can be any iterable, not just a list." msgstr "" +"El argumento *parser_list* puede ser cualquier iterable, no sólo una lista." #: ../Doc/library/xml.sax.rst:53 msgid "" @@ -80,6 +103,13 @@ msgid "" "errors. There is no return value; all work must be done by the *handler* " "passed in." msgstr "" +"Crea un analizador SAD y úsalo para analizar un documento. El documento, " +"aprobado como *filename_or_steam*, puede ser un nombre de archivo o un " +"objeto de archivo. El parámetro *handler* necesita ser una instancia SAX :" +"class:`~handler.ContentHandler`. Si se da *error_handler*, debe ser una " +"instancia :class:`~handler.ErrorHandler` SAX; si es omitido, se lanzará :exc:" +"`SAXParseException` en todos los errores. No hay valor retornado; toda tarea " +"debe ser realizada por el *handler* aprobado." #: ../Doc/library/xml.sax.rst:64 msgid "" @@ -87,10 +117,13 @@ msgid "" "parameter. *string* must be a :class:`str` instance or a :term:`bytes-like " "object`." msgstr "" +"Similar a :func:`parser`, pero analiza desde un búfer *string* recibido como " +"un parámetro. *string* debe ser una instancia :class:`str` o un :term:" +"`bytes-like object`." #: ../Doc/library/xml.sax.rst:68 msgid "Added support of :class:`str` instances." -msgstr "" +msgstr "Agregado soporte de instancias :class:`str`." #: ../Doc/library/xml.sax.rst:71 msgid "" @@ -105,6 +138,17 @@ msgid "" "During parsing, methods on the handler objects are called based on " "structural and syntactic events from the input data." msgstr "" +"Una aplicación SAX típica usa tres tipos de objetos: lectores, gestores y " +"fuentes de entrada. \"Lector\" en este contexto es otro término para " +"analizador, por ejemplo, alguna pieza de código que lee los bytes o " +"caracteres de la fuente de entrada, y produce una secuencia de eventos. Los " +"eventos luego se distribuyen a los objetos gestores, por ejemplo el lector " +"invoca un método en el gestor. Una aplicación SAX debe por tanto obtener un " +"objeto lector, crear o abrir una fuente de entrada, crear los gestores, y " +"conectar esos objetos juntos. Como paso final de preparación, el lector es " +"llamado para analizar la entrada. Durante el análisis, los métodos en los " +"objetos gestores son llamados basados en eventos estructurales y sintácticos " +"de los datos introducidos." #: ../Doc/library/xml.sax.rst:82 msgid "" @@ -121,12 +165,26 @@ msgid "" "the handler classes are also available from :mod:`xml.sax`. These " "interfaces are described below." msgstr "" +"Para estos objetos, sólo las interfaces son relevantes; éstos normalmente no " +"son instanciados por la aplicación misma. Ya que Python no tiene una noción " +"explícita de interfaz, éstas son introducidas formalmente como clases, pero " +"las aplicaciones suelen usar implementaciones que no heredan de las clases " +"provistas. Las interfaces :class:`~xml.sax.xmlreader.InputSource`, :class:" +"`~xml.sax.xmlreader.Locator`, :class:`~xml.sax.xmlreader.Attributes`, :class:" +"`~xml.sax.xmlreader.AttributesNS`, y :class:`~xml.sax.xmlreader.XMLReader` " +"son definidas en el módulo :mod:`xml.sax.xmlreader`. Las interfaces de " +"gestión son definidas en :mod:`xml.sax.handler`. Por conveniencia, :class:" +"`~xml.sax.xmlreader.InputSource` (el cual suele ser instanciado " +"directamente) y el gestor de clases están también disponibles desde :mod:" +"`xml.sax` Estas interfaces son descritas a continuación." #: ../Doc/library/xml.sax.rst:95 msgid "" "In addition to these classes, :mod:`xml.sax` provides the following " "exception classes." msgstr "" +"En adición a esas clases, :mod:`xml.sax` provee las siguientes clases de " +"excepción." #: ../Doc/library/xml.sax.rst:101 msgid "" @@ -138,6 +196,13 @@ msgid "" "required to actually raise the exception --- it is also useful as a " "container for information." msgstr "" +"Encapsula un error XML o advertencia. Esta clase puede contener errores " +"básicos o información de advertencias ya sea para el analizador XML o la " +"aplicación: esto puede ser heredado para proveer funcionalidad adicionar o " +"para agregar localización. Nota que a pesar de los analizadores definidos " +"en la interfaz :class:`~xml.sax.handler.ErrorHandler` recibe instancias de " +"esta excepción, no es requerido para lanzar la excepción --- esto es algo " +"útil como un contenedor para información." #: ../Doc/library/xml.sax.rst:109 msgid "" @@ -146,10 +211,14 @@ msgid "" "an exception that was caught by the parsing code and is being passed along " "as information." msgstr "" +"Cuando es instanciado, *msg* debería ser una descripción del error legible " +"para humanos. El parámetro opcional *exception*, si es dado, debería ser " +"``None`` o una excepción que fue atrapada por el código analizador y se " +"transmite como información." #: ../Doc/library/xml.sax.rst:113 msgid "This is the base class for the other SAX exception classes." -msgstr "" +msgstr "Esta es la clase base para las otras clases excepción SAX." #: ../Doc/library/xml.sax.rst:118 msgid "" @@ -159,6 +228,11 @@ msgid "" "class supports the SAX :class:`~xml.sax.xmlreader.Locator` interface as well " "as the :class:`SAXException` interface." msgstr "" +"Subclase de :exc:`SAXException` levantada en errores de análisis. Las " +"instancias de esta clase son pasadas a los métodos de las interfaces SAX :" +"class:`~xml.sax.handler.ErrorHandler` para proveer información sobre el " +"error de análisis. Esta clase soporta la interfaz SAX :class:`~xml.sax." +"xmlreader.Locator` así como la interfaz :class:`SAXException`." #: ../Doc/library/xml.sax.rst:128 msgid "" @@ -166,6 +240,10 @@ msgid "" "XMLReader` is confronted with an unrecognized feature or property. SAX " "applications and extensions may use this class for similar purposes." msgstr "" +"Subclase de :exc:`SAXException` lanzada cuando una SAX :class:`~xml.sax." +"xmlreader.XMLReader` es confrontada con una propiedad o característica no " +"reconocida. Las aplicaciones SAX y extensiones pueden usar esta clase para " +"propósitos similares." #: ../Doc/library/xml.sax.rst:136 msgid "" @@ -174,10 +252,15 @@ msgid "" "property to a value that the implementation does not support. SAX " "applications and extensions may use this class for similar purposes." msgstr "" +"Las subclases de :exc:`SAXException` se lanzan cuando un SAX :class:`~xml." +"sax` se pregunta para habilitar una característica que no tiene soporte, o " +"para establecer una propiedad a un valor que la implementación no da " +"soporte. Las aplicaciones sAX y las extensiones pueden usar esta clase para " +"propósitos similares." #: ../Doc/library/xml.sax.rst:148 msgid "`SAX: The Simple API for XML `_" -msgstr "" +msgstr "`SAX: The Simple API for XML `_" #: ../Doc/library/xml.sax.rst:146 msgid "" @@ -185,44 +268,51 @@ msgid "" "a Java implementation and online documentation. Links to implementations " "and historical information are also available." msgstr "" +"Este sitio es el punto focal para la definición de la API SAX. Provee una " +"implementación Java y documentación en línea. Los enlaces para " +"implementaciones e información histórica también están disponibles." #: ../Doc/library/xml.sax.rst:151 msgid "Module :mod:`xml.sax.handler`" -msgstr "" +msgstr "Módulo :mod:`xml.sax.handler`" #: ../Doc/library/xml.sax.rst:151 msgid "Definitions of the interfaces for application-provided objects." msgstr "" +"Definiciones de las interfaces para objetos proporcionados por aplicaciones." #: ../Doc/library/xml.sax.rst:154 msgid "Module :mod:`xml.sax.saxutils`" -msgstr "" +msgstr "Módulo :mod:`xml.sax.saxutils`" #: ../Doc/library/xml.sax.rst:154 msgid "Convenience functions for use in SAX applications." -msgstr "" +msgstr "Funciones de conveniencia para usar en aplicaciones SAX." #: ../Doc/library/xml.sax.rst:156 msgid "Module :mod:`xml.sax.xmlreader`" -msgstr "" +msgstr "Módulo :mod:`xml.sax.xmlreader`" #: ../Doc/library/xml.sax.rst:157 msgid "Definitions of the interfaces for parser-provided objects." -msgstr "" +msgstr "Definiciones de las interfaces para objetos que proveen analizadores." #: ../Doc/library/xml.sax.rst:163 msgid "SAXException Objects" -msgstr "" +msgstr "Objetos SAXException" #: ../Doc/library/xml.sax.rst:165 msgid "" "The :class:`SAXException` exception class supports the following methods:" msgstr "" +"La clase de excepción :class:`SAXException` da soporte a los siguientes " +"métodos:" #: ../Doc/library/xml.sax.rst:170 msgid "Return a human-readable message describing the error condition." msgstr "" +"Retorna un mensaje legible para humanos describiendo la condición de error." #: ../Doc/library/xml.sax.rst:175 msgid "Return an encapsulated exception object, or ``None``." -msgstr "" +msgstr "Retorna un objeto excepción encapsulado, o ``None``." diff --git a/library/xml.sax.reader.po b/library/xml.sax.reader.po index 524c6726b1..991f2bab8a 100644 --- a/library/xml.sax.reader.po +++ b/library/xml.sax.reader.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: 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: 2020-10-20 21:56-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: Enrique Giménez \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/xml.sax.reader.rst:2 msgid ":mod:`xml.sax.xmlreader` --- Interface for XML parsers" -msgstr "" +msgstr ":mod:`xml.sax.xmlreader` --- Interfaz para analizadores XML" #: ../Doc/library/xml.sax.reader.rst:10 msgid "**Source code:** :source:`Lib/xml/sax/xmlreader.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/xml/sax/xmlreader.py`" #: ../Doc/library/xml.sax.reader.rst:14 msgid "" @@ -35,10 +37,14 @@ msgid "" "This function is invoked by :func:`xml.sax.make_parser` with no arguments " "to create a new parser object." msgstr "" +"Los analizadores SAX implementan la interfaz :class:`XMLReader`. Están " +"implementados en un módulo Python, que debe proveer una función :func:" +"`create_parser`. Esta función es invocada por :func:`xml.sax.make_parser` " +"sin argumentos para crear un nuevo objeto analizador." #: ../Doc/library/xml.sax.reader.rst:22 msgid "Base class which can be inherited by SAX parsers." -msgstr "" +msgstr "Clase base que puede ser heredada por analizadores SAX." #: ../Doc/library/xml.sax.reader.rst:27 msgid "" @@ -49,6 +55,12 @@ msgid "" "interfaces should be used if the blocking behaviour of :meth:`parse` is not " "desirable." msgstr "" +"En algunos casos, es deseable no analizar una fuente de entrada a la vez, si " +"no alimentar partes del documento a medida que estén disponibles. Tenga en " +"cuenta que el lector normalmente no leerá el fichero completo, si no que " +"también lo leerá por partes, aún así :meth:`parse` no retornará hasta que el " +"documento por completo es procesado. Por lo tanto, estas interfaces deben " +"utilizarse si el comportamiento de bloqueo :meth:`parse` no es deseable." #: ../Doc/library/xml.sax.reader.rst:33 msgid "" @@ -57,12 +69,20 @@ msgid "" "close the reset method must be called to make the parser ready to accept new " "data, either from feed or using the parse method." msgstr "" +"Cuando se crea una instancia del analizador, está listo para comenzar a " +"aceptar información desde el método de alimentación inmediatamente. Después " +"de que el análisis ha finalizado con una llamada para cerrar, se debe llamar " +"al método de reinicio para que el analizador esté listo para aceptar " +"información nueva, ya sea de la fuente o utilizando el método de análisis." #: ../Doc/library/xml.sax.reader.rst:38 msgid "" "Note that these methods must *not* be called during parsing, that is, after " "parse has been called and before it returns." msgstr "" +"Tenga en cuenta que estos métodos *no* deben ser llamados durante el " +"análisis, es decir, después de que el análisis ha sido llamado y antes de " +"que regrese." #: ../Doc/library/xml.sax.reader.rst:41 msgid "" @@ -70,6 +90,10 @@ msgid "" "interface using the feed, close and reset methods of the IncrementalParser " "interface as a convenience to SAX 2.0 driver writers." msgstr "" +"Por defecto, la clase también implementa el método de análisis de la " +"interfaz XMLReader utilizando los métodos de alimentación, cierre y reinicio " +"de la interfaz IncrementalParser en conveniencia a los escritores de " +"controlador SAX 2.0." #: ../Doc/library/xml.sax.reader.rst:48 msgid "" @@ -78,12 +102,19 @@ msgid "" "methods; at any other time, the results are unpredictable. If information is " "not available, methods may return ``None``." msgstr "" +"La interfaz para asociar un evento SAX con una ubicación del documento. Un " +"objecto localizador retornará resultados válidos sólo durante llamadas a " +"métodos DocumentHandler; en cualquier otro momento, los resultados son " +"impredecibles. Si la información no está disponible, los métodos pueden " +"retornar ``None``." #: ../Doc/library/xml.sax.reader.rst:56 msgid "" "Encapsulation of the information needed by the :class:`XMLReader` to read " "entities." msgstr "" +"La encapsulación de la información necesaria por el :class:`XMLReader` para " +"leer entidades." #: ../Doc/library/xml.sax.reader.rst:59 msgid "" @@ -91,12 +122,17 @@ msgid "" "identifier, byte stream (possibly with character encoding information) and/" "or the character stream of an entity." msgstr "" +"Esta clase puede incluir información sobre el identificador público, " +"identificador del sistema, flujo de bytes (posiblemente con la información " +"de codificación de caracteres) y/o el flujo de caracteres de una entidad." #: ../Doc/library/xml.sax.reader.rst:63 msgid "" "Applications will create objects of this class for use in the :meth:" "`XMLReader.parse` method and for returning from EntityResolver.resolveEntity." msgstr "" +"Las aplicaciones crearán objetos de esta clase para uso en el método :meth:" +"`XMLReader.parse` y para retornar desde EntityResolver.resolveEntity." #: ../Doc/library/xml.sax.reader.rst:67 msgid "" @@ -104,6 +140,9 @@ msgid "" "is not allowed to modify :class:`InputSource` objects passed to it from the " "application, although it may make copies and modify those." msgstr "" +"Una :class:`InputSource` pertenece a la aplicación, el :class:`XMLReader` no " +"tiene permitido modificar objetos :class:`InputSource` pasados desde la " +"aplicación, a pesar de que puede hacer copias y modificarlas." #: ../Doc/library/xml.sax.reader.rst:74 msgid "" @@ -115,6 +154,14 @@ msgid "" "instantiated by readers; *attrs* must be a dictionary-like object containing " "a mapping from attribute names to attribute values." msgstr "" +"Esta es una implementación de la interfaz :class:`Attributes` (vea la " +"sección :ref:`attributes-objects`). Este es un objeto de tipo diccionario " +"que representa los atributos de elemento en una llamada :meth:" +"`startElement`. En adición a las operaciones de diccionario más útiles, " +"soporta una serie de otros métodos como se describe en la interfaz. Los " +"lectores deben crear una instancia de los objetos de esta clase; *attrs* " +"debe ser un objeto de tipo diccionario que contenga un mapeo de nombres de " +"atributo a valores de atributo." #: ../Doc/library/xml.sax.reader.rst:85 msgid "" @@ -125,14 +172,20 @@ msgid "" "they appear in the original document. This class implements the :class:" "`AttributesNS` interface (see section :ref:`attributes-ns-objects`)." msgstr "" +"Variante consciente del espacio de nombres de :class:`AttributesImpl`, que " +"se pasará a :meth:`startElementNS`. Es derivada de :class:`AttributesImpl`, " +"pero entiende nombres de atributo como dos tuplas de *namespaceURI* y " +"*localname*. En adición, provee una serie de métodos esperando nombres " +"calificados como aparecen en el documento original. Esta clase implementa la " +"interfaz :class:`AttributesNS` (vea la sección :ref:`attributes-ns-objects`)." #: ../Doc/library/xml.sax.reader.rst:96 msgid "XMLReader Objects" -msgstr "" +msgstr "Objetos XMLReader" #: ../Doc/library/xml.sax.reader.rst:98 msgid "The :class:`XMLReader` interface supports the following methods:" -msgstr "" +msgstr "La interfaz :class:`XMLReader` soporta los siguientes métodos:" #: ../Doc/library/xml.sax.reader.rst:103 msgid "" @@ -143,38 +196,50 @@ msgid "" "returns, the input is completely processed, and the parser object can be " "discarded or reset." msgstr "" +"Procesa una fuente de entrada, produciendo eventos SAX. El objeto *source* " +"puede ser un identificador de sistema (una cadena identificando la fuente de " +"entrada -- típicamente un nombre de fichero o una URL), un :class:`pathlib." +"Path` o un objeto :term:`path-like `, o un objeto :class:" +"`InputSource`. Cuando :meth:`parse` retorna, la entrada es procesada " +"completamente, y el objeto analizador puede ser descartado o reiniciado." #: ../Doc/library/xml.sax.reader.rst:110 msgid "Added support of character streams." -msgstr "" +msgstr "Agregado soporte de flujo de caracteres." #: ../Doc/library/xml.sax.reader.rst:113 msgid "Added support of path-like objects." -msgstr "" +msgstr "Agregado soporte de objetos path-like." #: ../Doc/library/xml.sax.reader.rst:119 msgid "Return the current :class:`~xml.sax.handler.ContentHandler`." -msgstr "" +msgstr "Retorna el :class:`~xml.sax.handler.ContentHandler` actual." #: ../Doc/library/xml.sax.reader.rst:124 msgid "" "Set the current :class:`~xml.sax.handler.ContentHandler`. If no :class:" "`~xml.sax.handler.ContentHandler` is set, content events will be discarded." msgstr "" +"Establece el :class:`~xml.sax.handler.ContentHandler` actual. Si ningún :" +"class:`~xml.sax.handler.ContentHandler` es establecido, los eventos de " +"contenido serán descartados." #: ../Doc/library/xml.sax.reader.rst:131 msgid "Return the current :class:`~xml.sax.handler.DTDHandler`." -msgstr "" +msgstr "Retorna el :class:`~xml.sax.handler.DTDHandler` actual." #: ../Doc/library/xml.sax.reader.rst:136 msgid "" "Set the current :class:`~xml.sax.handler.DTDHandler`. If no :class:`~xml." "sax.handler.DTDHandler` is set, DTD events will be discarded." msgstr "" +"Establece el :class:`~xml.sax.handler.DTDHandler` actual. Si ningún :class:" +"`~xml.sax.handler.DTDHandler` es establecido, los eventos DTD serán " +"descartados." #: ../Doc/library/xml.sax.reader.rst:143 msgid "Return the current :class:`~xml.sax.handler.EntityResolver`." -msgstr "" +msgstr "Retorna el :class:`~xml.sax.handler.EntityResolver` actual." #: ../Doc/library/xml.sax.reader.rst:148 msgid "" @@ -183,20 +248,29 @@ msgid "" "entity will result in opening the system identifier for the entity, and fail " "if it is not available." msgstr "" +"Establece el :class:`~xml.sax.handler.EntityResolver` actual. Si ningún :" +"class:`~xml.sax.handler.EntityResolver` es establecido, los intentos de " +"resolver una entidad externa resultarán en la apertura del identificador de " +"sistema para la entidad, y un error si no está disponible." #: ../Doc/library/xml.sax.reader.rst:156 msgid "Return the current :class:`~xml.sax.handler.ErrorHandler`." -msgstr "" +msgstr "Retorna el :class:`~xml.sax.handler.ErrorHandler` actual." #: ../Doc/library/xml.sax.reader.rst:161 msgid "" "Set the current error handler. If no :class:`~xml.sax.handler.ErrorHandler` " "is set, errors will be raised as exceptions, and warnings will be printed." msgstr "" +"Establece el manejador de errores actual. Si ningún :class:`~xml.sax.handler." +"ErrorHandler` es establecido, se lanzarán errores como excepciones, y se " +"imprimirán alertas." #: ../Doc/library/xml.sax.reader.rst:167 msgid "Allow an application to set the locale for errors and warnings." msgstr "" +"Permite a una aplicación establecer la configuración local para errores y " +"alertas." #: ../Doc/library/xml.sax.reader.rst:169 msgid "" @@ -205,6 +279,10 @@ msgid "" "raise a SAX exception. Applications may request a locale change in the " "middle of a parse." msgstr "" +"Analizadores SAX no son requeridos para proveer localización para errores y " +"alertas; si no pueden soportar la configuración local solicitada, de " +"cualquier forma, lanzarán una excepción SAX. Las aplicaciones pueden " +"solicitar un cambio local en medio del análisis." #: ../Doc/library/xml.sax.reader.rst:176 msgid "" @@ -212,6 +290,10 @@ msgid "" "recognized, :exc:`SAXNotRecognizedException` is raised. The well-known " "featurenames are listed in the module :mod:`xml.sax.handler`." msgstr "" +"Retorna la configuración actual para la característica *featurename*. Si la " +"característica no es reconocida, :exc:`SAXNotRecognizedException` es " +"lanzada. Los bien conocidos featurenames son listados en el módulo :mod:`xml." +"sax.handler`." #: ../Doc/library/xml.sax.reader.rst:183 msgid "" @@ -219,6 +301,10 @@ msgid "" "`SAXNotRecognizedException` is raised. If the feature or its setting is not " "supported by the parser, *SAXNotSupportedException* is raised." msgstr "" +"Establece el *featurename* a *value*. Si la característica no es " +"reconocida, :exc:`SAXNotRecognizedException` es lanzada. Si la " +"característica o su configuración no es soportada por el analizador, " +"*SAXNotSupportedException* es lanzada." #: ../Doc/library/xml.sax.reader.rst:190 msgid "" @@ -226,6 +312,10 @@ msgid "" "not recognized, a :exc:`SAXNotRecognizedException` is raised. The well-known " "propertynames are listed in the module :mod:`xml.sax.handler`." msgstr "" +"Retorna la configuración actual para la propiedad *propertyname*. Si la " +"configuración no es reconocida, una :exc:`SAXNotRecognizedException` es " +"lanzada. Las bien conocidas propertynames son listadas en el módulo :mod:" +"`xml.sax.handler`." #: ../Doc/library/xml.sax.reader.rst:197 msgid "" @@ -233,20 +323,26 @@ msgid "" "`SAXNotRecognizedException` is raised. If the property or its setting is not " "supported by the parser, *SAXNotSupportedException* is raised." msgstr "" +"Establece el *propertyname* a *value*. Si la propiedad no es reconocida, :" +"exc:`SAXNotRecognizedException` es lanzada. Si la propiedad o su " +"configuración no es soportada por el analizador, *SAXNotSupportedException* " +"es lanzada." #: ../Doc/library/xml.sax.reader.rst:205 msgid "IncrementalParser Objects" -msgstr "" +msgstr "Objetos IncrementalParser" #: ../Doc/library/xml.sax.reader.rst:207 msgid "" "Instances of :class:`IncrementalParser` offer the following additional " "methods:" msgstr "" +"Las instancias de :class:`IncrementalParser` ofrecen los siguientes métodos " +"adicionales:" #: ../Doc/library/xml.sax.reader.rst:212 msgid "Process a chunk of *data*." -msgstr "" +msgstr "Procesa una parte de *data*." #: ../Doc/library/xml.sax.reader.rst:217 msgid "" @@ -254,6 +350,9 @@ msgid "" "that can be checked only at the end, invoke handlers, and may clean up " "resources allocated during parsing." msgstr "" +"Asume el fin del documento. Eso verificará las condiciones bien formadas que " +"pueden ser verificadas sólo al final, invocar manejadores, y puede limpiar " +"los recursos asignados durante el análisis." #: ../Doc/library/xml.sax.reader.rst:224 msgid "" @@ -261,74 +360,85 @@ msgid "" "that it is ready to parse new documents. The results of calling parse or " "feed after close without calling reset are undefined." msgstr "" +"Este método es llamado después de que el cierre ha sido llamado para " +"restablecer el analizador, de forma que esté listo para analizar nuevos " +"documentos. Los resultados de llamar parse o feed después del cierre sin " +"llamar a reset son indefinidos." #: ../Doc/library/xml.sax.reader.rst:232 msgid "Locator Objects" -msgstr "" +msgstr "Objetos localizadores" #: ../Doc/library/xml.sax.reader.rst:234 msgid "Instances of :class:`Locator` provide these methods:" -msgstr "" +msgstr "Las instancias de :class:`Locator` proveen estos métodos:" #: ../Doc/library/xml.sax.reader.rst:239 msgid "Return the column number where the current event begins." -msgstr "" +msgstr "Retorna el número de columna donde el evento actual comienza." #: ../Doc/library/xml.sax.reader.rst:244 msgid "Return the line number where the current event begins." -msgstr "" +msgstr "Retorna el número de línea donde el evento actual comienza." #: ../Doc/library/xml.sax.reader.rst:249 msgid "Return the public identifier for the current event." -msgstr "" +msgstr "Retorna el identificador público para el evento actual." #: ../Doc/library/xml.sax.reader.rst:254 msgid "Return the system identifier for the current event." -msgstr "" +msgstr "Retorna el identificador de sistema para el evento actual." #: ../Doc/library/xml.sax.reader.rst:260 msgid "InputSource Objects" -msgstr "" +msgstr "Objetos InputSource" #: ../Doc/library/xml.sax.reader.rst:265 msgid "Sets the public identifier of this :class:`InputSource`." -msgstr "" +msgstr "Establece el identificador público de esta :class:`InputSource`." #: ../Doc/library/xml.sax.reader.rst:270 msgid "Returns the public identifier of this :class:`InputSource`." -msgstr "" +msgstr "Retorna el identificador público para esta :class:`InputSource`." #: ../Doc/library/xml.sax.reader.rst:275 msgid "Sets the system identifier of this :class:`InputSource`." -msgstr "" +msgstr "Establece el identificador de sistema de esta :class:`InputSource`." #: ../Doc/library/xml.sax.reader.rst:280 msgid "Returns the system identifier of this :class:`InputSource`." -msgstr "" +msgstr "Retorna el identificador de sistema para esta :class:`InputSource`." #: ../Doc/library/xml.sax.reader.rst:285 msgid "Sets the character encoding of this :class:`InputSource`." msgstr "" +"Establece la codificación de caracteres para esta :class:`InputSource`." #: ../Doc/library/xml.sax.reader.rst:287 msgid "" "The encoding must be a string acceptable for an XML encoding declaration " "(see section 4.3.3 of the XML recommendation)." msgstr "" +"La codificación debe ser una cadena aceptable para una declaración de " +"codificación XML (vea la sección 4.3.3 de la recomendación XML)." #: ../Doc/library/xml.sax.reader.rst:290 msgid "" "The encoding attribute of the :class:`InputSource` is ignored if the :class:" "`InputSource` also contains a character stream." msgstr "" +"El atributo de codificación de la :class:`InputSource` es ignorado si la :" +"class:`InputSource` contiene también un flujo de caracteres." #: ../Doc/library/xml.sax.reader.rst:296 msgid "Get the character encoding of this InputSource." -msgstr "" +msgstr "Obtiene la codificación de caracteres de esta InputSource." #: ../Doc/library/xml.sax.reader.rst:301 msgid "Set the byte stream (a :term:`binary file`) for this input source." msgstr "" +"Establece el flujo de bytes (un :term:`binary file`) para esta fuente de " +"entrada." #: ../Doc/library/xml.sax.reader.rst:303 msgid "" @@ -336,26 +446,35 @@ msgid "" "specified, but it will use a byte stream in preference to opening a URI " "connection itself." msgstr "" +"El analizador SAX ignorará esto si existe también un flujo de caracteres " +"especificado, pero utilizará un flujo de bytes en preferencia para abrir una " +"conexión URI en sí." #: ../Doc/library/xml.sax.reader.rst:306 msgid "" "If the application knows the character encoding of the byte stream, it " "should set it with the setEncoding method." msgstr "" +"Si la aplicación conoce la codificación de caracteres del flujo de bytes, " +"debería establecerla con el método setEncoding." #: ../Doc/library/xml.sax.reader.rst:312 msgid "Get the byte stream for this input source." -msgstr "" +msgstr "Obtiene el flujo de bytes para esta fuente de entrada." #: ../Doc/library/xml.sax.reader.rst:314 msgid "" "The getEncoding method will return the character encoding for this byte " "stream, or ``None`` if unknown." msgstr "" +"El método getEncoding retornará la codificación de caracteres para este " +"flujo de bytes, o ``None`` si se desconoce." #: ../Doc/library/xml.sax.reader.rst:320 msgid "Set the character stream (a :term:`text file`) for this input source." msgstr "" +"Establece el flujo de caracteres (un :term:`text file`) para esta fuente de " +"entrada." #: ../Doc/library/xml.sax.reader.rst:322 msgid "" @@ -363,14 +482,17 @@ msgid "" "byte stream and will not attempt to open a URI connection to the system " "identifier." msgstr "" +"Si existe un flujo de caracteres especificado, el analizador SAX ignorará " +"cualquier flujo de bytes y no intentará abrir una conexión URI al " +"identificador de sistema." #: ../Doc/library/xml.sax.reader.rst:328 msgid "Get the character stream for this input source." -msgstr "" +msgstr "Obtiene el flujo de caracteres para esta fuente de entrada." #: ../Doc/library/xml.sax.reader.rst:334 msgid "The :class:`Attributes` Interface" -msgstr "" +msgstr "La Interfaz :class:`Attributes`" #: ../Doc/library/xml.sax.reader.rst:336 msgid "" @@ -381,27 +503,33 @@ msgid "" "keys`, and :meth:`~collections.abc.Mapping.values`. The following methods " "are also provided:" msgstr "" +"Los objetos :class:`Attributes` implementa una porción del :term:`mapping " +"protocol `, incluyendo los métodos :meth:`~collections.abc.Mapping." +"copy`, :meth:`~collections.abc.Mapping.get`, :meth:`~object.__contains__`, :" +"meth:`~collections.abc.Mapping.items`, :meth:`~collections.abc.Mapping." +"keys`, y :meth:`~collections.abc.Mapping.values`. Los siguientes métodos " +"también son provistos:" #: ../Doc/library/xml.sax.reader.rst:346 msgid "Return the number of attributes." -msgstr "" +msgstr "Retorna el número de atributos." #: ../Doc/library/xml.sax.reader.rst:351 msgid "Return the names of the attributes." -msgstr "" +msgstr "Retorna los nombres de los atributos." #: ../Doc/library/xml.sax.reader.rst:356 msgid "" "Returns the type of the attribute *name*, which is normally ``'CDATA'``." -msgstr "" +msgstr "Retorna el tipo del atributo *name*, que es normalmente ``'CDATA'``." #: ../Doc/library/xml.sax.reader.rst:361 msgid "Return the value of attribute *name*." -msgstr "" +msgstr "Retorna el valor del atributo *name*." #: ../Doc/library/xml.sax.reader.rst:370 msgid "The :class:`AttributesNS` Interface" -msgstr "" +msgstr "La Interfaz :class:`AttributesNS`" #: ../Doc/library/xml.sax.reader.rst:372 msgid "" @@ -409,23 +537,26 @@ msgid "" "section :ref:`attributes-objects`). All methods supported by that interface " "are also available on :class:`AttributesNS` objects." msgstr "" +"Esta interfaz es un subtipo de la interfaz :class:`Attributes` (vea la " +"sección :ref:`attributes-objects`). Todos los métodos soportados por la " +"interfaz están también disponibles en los objetos :class:`AttributesNS`." #: ../Doc/library/xml.sax.reader.rst:376 msgid "The following methods are also available:" -msgstr "" +msgstr "Los siguientes métodos están también disponibles:" #: ../Doc/library/xml.sax.reader.rst:381 msgid "Return the value for a qualified name." -msgstr "" +msgstr "Retorna el valor para un nombre cualificado." #: ../Doc/library/xml.sax.reader.rst:386 msgid "Return the ``(namespace, localname)`` pair for a qualified *name*." -msgstr "" +msgstr "Retorna el par ``(namespace, localname)`` para un *name* cualificado." #: ../Doc/library/xml.sax.reader.rst:391 msgid "Return the qualified name for a ``(namespace, localname)`` pair." -msgstr "" +msgstr "Retorna el nombre cualificado para un par ``(namespace, localname)``." #: ../Doc/library/xml.sax.reader.rst:396 msgid "Return the qualified names of all attributes." -msgstr "" +msgstr "Retorna los nombres cualificados para todos los atributos." diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po index 2bb1b1ede9..28c97547d0 100644 --- a/library/xml.sax.utils.po +++ b/library/xml.sax.utils.po @@ -1,29 +1,31 @@ # 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: 2020-10-08 20:33+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/xml.sax.utils.rst:2 msgid ":mod:`xml.sax.saxutils` --- SAX Utilities" -msgstr "" +msgstr ":mod:`xml.sax.saxutils` --- Utilidades SAX" #: ../Doc/library/xml.sax.utils.rst:10 msgid "**Source code:** :source:`Lib/xml/sax/saxutils.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/xml/sax/saxutils.py`" #: ../Doc/library/xml.sax.utils.rst:14 msgid "" @@ -31,10 +33,13 @@ msgid "" "functions that are commonly useful when creating SAX applications, either in " "direct use, or as base classes." msgstr "" +"El módulo :mod:`xml.sax.saxutils` contiene una serie de clases y funciones " +"que son comúnmente útiles al crear aplicaciones SAX, ya sea como uso directo " +"o como clases base." #: ../Doc/library/xml.sax.utils.rst:21 msgid "Escape ``'&'``, ``'<'``, and ``'>'`` in a string of data." -msgstr "" +msgstr "Escapar ``'&'``, ``'<'`` y ``'>'`` en una cadena de datos." #: ../Doc/library/xml.sax.utils.rst:23 msgid "" @@ -43,10 +48,17 @@ msgid "" "will be replaced with its corresponding value. The characters ``'&'``, " "``'<'`` and ``'>'`` are always escaped, even if *entities* is provided." msgstr "" +"Puede escapar otras cadenas de datos pasando un diccionario como el " +"parámetro opcional *entities*. Las claves y los valores deben ser cadenas; " +"cada clave será reemplazada por su valor correspondiente. Los caracteres " +"``'&'``, ``'<'`` y ``'>'`` siempre se escapan, incluso si se proporciona " +"*entities*." #: ../Doc/library/xml.sax.utils.rst:31 msgid "Unescape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" +"Quitar el escape ``'&'``, ``'<'``, y ``'>'`` en una cadena de " +"datos." #: ../Doc/library/xml.sax.utils.rst:33 msgid "" @@ -56,6 +68,11 @@ msgid "" "``'<'``, and ``'>'`` are always unescaped, even if *entities* is " "provided." msgstr "" +"Puede quitar el escape de otras cadenas de datos pasando un diccionario como " +"el parámetro opcional *entities*. Las claves y los valores deben ser " +"cadenas; cada clave será reemplazada por su valor correspondiente. A " +"``'&'``, ``'<'`` y ``'>'`` se les quita siempre el escape, incluso " +"si se proporcionan *entidades*." #: ../Doc/library/xml.sax.utils.rst:41 msgid "" @@ -68,12 +85,22 @@ msgid "" "*data* will be wrapped in double-quotes. The resulting string can be used " "directly as an attribute value::" msgstr "" +"Similar a :func:`escape`, pero también prepara *data* para usarse como un " +"valor de atributo. El valor devuelto es una versión entrecomillada de *data* " +"con los reemplazos adicionales necesarios. :func:`quoteattr` seleccionará un " +"carácter de comillas basado en el contenido de *data*, intentando evitar " +"codificar los caracteres de comillas en la cadena. Si los caracteres de " +"comillas simples y dobles ya están en *data*, los caracteres de comillas " +"dobles se codificarán y *data* se envolverá entre comillas dobles. La cadena " +"resultante se puede utilizar directamente como un valor de atributo:" #: ../Doc/library/xml.sax.utils.rst:53 msgid "" "This function is useful when generating attribute values for HTML or any " "SGML using the reference concrete syntax." msgstr "" +"Esta función es útil al generar valores de atributo para HTML o cualquier " +"SGML utilizando la sintaxis concreta de referencia." #: ../Doc/library/xml.sax.utils.rst:59 msgid "" @@ -87,10 +114,20 @@ msgid "" "emitted as a pair of start/end tags, if set to ``True`` they are emitted as " "a single self-closed tag." msgstr "" +"Esta clase implementa la interfaz :class:`~xml.sax.handler.ContentHandler` " +"escribiendo eventos SAX en un documento XML. En otras palabras, el uso de " +"un :class:`XMLGenerator` como controlador de contenido reproducirá el " +"documento original que se está analizando. *out* debe ser un objeto similar " +"a un archivo que por defecto sea *sys.stdout*. *encoding* es la codificación " +"de la secuencia de salida que tiene como valor predeterminado " +"``'iso-8859-1'``. *short_empty_elements* controla el formato de los " +"elementos que no contienen contenido: si ``False`` (valor predeterminado) se " +"emiten como un par de etiquetas de inicio/fin, si se establece en ``True`` " +"se emiten como una sola etiqueta autocerrada." #: ../Doc/library/xml.sax.utils.rst:69 msgid "The *short_empty_elements* parameter." -msgstr "" +msgstr "El parámetro *short_empty_elements*." #: ../Doc/library/xml.sax.utils.rst:75 msgid "" @@ -100,6 +137,12 @@ msgid "" "unmodified, but subclasses can override specific methods to modify the event " "stream or the configuration requests as they pass through." msgstr "" +"Esta clase está diseñada para situarse entre un :class:`~xml.sax.xmlreader." +"XMLReader` y los manejadores de eventos de la aplicación cliente. Por " +"defecto, no hace más que pasar las peticiones al lector y los eventos a los " +"manejadores sin modificar, pero las subclases pueden sobrescribir métodos " +"específicos para modificar el flujo de eventos o las peticiones de " +"configuración a medida que pasan." #: ../Doc/library/xml.sax.utils.rst:85 msgid "" @@ -110,3 +153,9 @@ msgid "" "function to implement the polymorphic *source* argument to their :meth:" "`parse` method." msgstr "" +"Esta función toma una fuente de entrada y una URL base opcional y devuelve " +"un objeto :class:`~xml.sax.xmlreader.InputSource` totalmente resuelto y " +"listo para ser leído. La fuente de entrada puede ser dada como una cadena, " +"un objeto tipo archivo, o un objeto :class:`~xml.sax.xmlreader.InputSource`; " +"los analizadores usarán esta función para implementar el argumento " +"polimórfico *fuente* a su método :meth:`parse`." diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 4b72aa4495..8dcdf71fbf 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.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: 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: 2020-11-21 20:32-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: Emmanuel Arias \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/library/xmlrpc.client.rst:2 msgid ":mod:`xmlrpc.client` --- XML-RPC client access" -msgstr "" +msgstr ":mod:`xmlrpc.client` --- acceso cliente XML-RPC" #: ../Doc/library/xmlrpc.client.rst:10 msgid "**Source code:** :source:`Lib/xmlrpc/client.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/xmlrpc/client.py`" #: ../Doc/library/xmlrpc.client.rst:17 msgid "" @@ -36,6 +38,12 @@ msgid "" "This module supports writing XML-RPC client code; it handles all the details " "of translating between conformable Python objects and XML on the wire." msgstr "" +"XML-RPC es un método de llamada a procedimiento remoto que utiliza XML " +"pasado a través de HTTP(S) como transporte. Con él, un cliente puede llamar " +"a métodos con parámetros en un servidor remoto (el servidor es nombrado por " +"un URI) y recuperar datos estructurados. Este módulo admite la escritura de " +"código de cliente XML-RPC; maneja todos los detalles de la traducción entre " +"objetos de Python conformes y XML en el cable." #: ../Doc/library/xmlrpc.client.rst:26 msgid "" @@ -43,12 +51,17 @@ msgid "" "constructed data. If you need to parse untrusted or unauthenticated data " "see :ref:`xml-vulnerabilities`." msgstr "" +"El módulo :mod:`xmlrpc.client` no es seguro contra datos construidos " +"maliciosamente. Si necesita analizar datos que no son de confianza o no " +"autenticados, consulte :ref:`xml-vulnerabilities`." #: ../Doc/library/xmlrpc.client.rst:32 msgid "" "For HTTPS URIs, :mod:`xmlrpc.client` now performs all the necessary " "certificate and hostname checks by default." msgstr "" +"Para HTTPS URI, :mod:`xmlrpc.client` ahora realiza todas las comprobaciones " +"necesarias de certificados y nombres de host de forma predeterminada." #: ../Doc/library/xmlrpc.client.rst:39 msgid "" @@ -61,6 +74,14 @@ msgid "" "an encoding, by default UTF-8. The optional fourth argument is a debugging " "flag." msgstr "" +"Una :class:`ServerProxy` instancia un objeto que gestiona la comunicación " +"con un servidor XML-RPC remoto. El primer argumento requerido es un URI " +"(*Uniform Resource Indicator*) y normalmente será la URL del servidor. El " +"segundo argumento opcional es una instancia de fábrica de transporte; de " +"forma predeterminada, es una instancia interna :class:`SafeTransport` para " +"https: URL y una instancia interna HTTP :class:`Transport` en caso " +"contrario. El tercer argumento opcional es una codificación, por defecto " +"UTF-8. El cuarto argumento opcional es un indicador de depuración." #: ../Doc/library/xmlrpc.client.rst:47 msgid "" @@ -81,14 +102,32 @@ msgid "" "*use_datetime* flag is similar to *use_builtin_types* but it applies only to " "date/time values." msgstr "" +"Los siguientes parámetros rigen el uso de la instancia de proxy retornada. " +"Si *allow_none* es verdadero, la constante de Python ``None`` se traducirá a " +"XML; el comportamiento predeterminado es que ``None`` genere un :exc:" +"`TypeError`. Esta es una extensión de uso común para la especificación XML-" +"RPC, pero no todos los clientes y servidores la admiten; ver `http://ontosys." +"com/xml-rpc/extensions.php ` _ para una descripción. La flag " +"*use_builtin_types* puede usarse para hacer que los valores de fecha/hora se " +"presenten como : clase: objetos `datetime.datetime` y datos binarios que se " +"presenten como objetos :class:`datetime.datetime` y los datos binarios " +"pueden ser presentados como objetos :class:`bytes`; esta flag es falsa por " +"defecto. Los objetos :class:`datetime.datetime`, :class:`bytes` y :class:" +"`bytearray` se pueden pasar a las llamadas. El parámetro *header* es una " +"secuencia opcional de encabezados HTTP para enviar con cada solicitud, " +"expresada como una secuencia de 2 tuplas que representan el nombre y el " +"valor del encabezado. (por ejemplo, `[('Header-Name', 'value')]`). La flag " +"obsoleta *use_datetime* es similar a *use_builtin_types* pero solo se aplica " +"a los valores de fecha/hora." #: ../Doc/library/xmlrpc.client.rst:65 ../Doc/library/xmlrpc.client.rst:552 msgid "The *use_builtin_types* flag was added." -msgstr "" +msgstr "La flag *use_builtin_types* fue añadida." #: ../Doc/library/xmlrpc.client.rst:68 msgid "The *headers* parameter was added." -msgstr "" +msgstr "El parámetro *headers* fue añadida." #: ../Doc/library/xmlrpc.client.rst:71 msgid "" @@ -101,6 +140,14 @@ msgid "" "*context* may be :class:`ssl.SSLContext` and configures the SSL settings of " "the underlying HTTPS connection." msgstr "" +"Tanto los transportes HTTP como HTTPS admiten la extensión de sintaxis de " +"URL para la autenticación básica HTTP:``http://user:pass@host:port/path``. " +"La parte ``user:pass`` se codificará en base64 como un encabezado HTTP de " +"'Authorization' y se enviará al servidor remoto como parte del proceso de " +"conexión al invocar un método XML-RPC. Solo necesita usar esto si el " +"servidor remoto requiere un usuario y contraseña de autenticación básica. Si " +"se proporciona una URL HTTPS, el *context* puede ser :class:`ssl.SSLContext` " +"y configura la configuración SSL de la conexión HTTPS subyacente." #: ../Doc/library/xmlrpc.client.rst:80 msgid "" @@ -110,6 +157,12 @@ msgid "" "remote server for the methods it supports (service discovery) and fetch " "other server-associated metadata." msgstr "" +"La instancia retornada es un objeto proxy con métodos que se pueden utilizar " +"para invocar las correspondientes llamadas RPC en el servidor remoto. Si el " +"servidor remoto admite la API de introspección, el proxy también se puede " +"utilizar para consultar al servidor remoto los métodos que admite " +"(descubrimiento de servicios) y recuperar otros metadatos asociados al " +"servidor." #: ../Doc/library/xmlrpc.client.rst:86 msgid "" @@ -117,62 +170,69 @@ msgid "" "include the following (and except where noted, they are unmarshalled as the " "same Python type):" msgstr "" +"Los tipos que son conformes (por ejemplo, que se pueden clasificar a través " +"de XML) incluyen lo siguiente (y, excepto donde se indique, no se clasifican " +"como el mismo tipo de Python):" #: ../Doc/library/xmlrpc.client.rst:93 msgid "XML-RPC type" -msgstr "" +msgstr "Tipo XML-RPC" #: ../Doc/library/xmlrpc.client.rst:93 msgid "Python type" -msgstr "" +msgstr "Tipo de Python" #: ../Doc/library/xmlrpc.client.rst:95 msgid "``boolean``" -msgstr "" +msgstr "``boolean``" #: ../Doc/library/xmlrpc.client.rst:95 msgid ":class:`bool`" -msgstr "" +msgstr ":class:`bool`" #: ../Doc/library/xmlrpc.client.rst:97 msgid "``int``, ``i1``, ``i2``, ``i4``, ``i8`` or ``biginteger``" -msgstr "" +msgstr "``int``, ``i1``, ``i2``, ``i4``, ``i8`` or ``biginteger``" #: ../Doc/library/xmlrpc.client.rst:97 msgid "" ":class:`int` in range from -2147483648 to 2147483647. Values get the " "```` tag." msgstr "" +":class:`int` en el rango de -2147483648 a 2147483647. Los valores obtienen " +"la etiqueta ```` ." #: ../Doc/library/xmlrpc.client.rst:102 msgid "``double`` or ``float``" -msgstr "" +msgstr "``double`` o ``float``" #: ../Doc/library/xmlrpc.client.rst:102 msgid ":class:`float`. Values get the ```` tag." -msgstr "" +msgstr ":class:`float`. Los valores obtienen la etiqueta ````." #: ../Doc/library/xmlrpc.client.rst:105 msgid "``string``" -msgstr "" +msgstr "``string``" #: ../Doc/library/xmlrpc.client.rst:105 msgid ":class:`str`" -msgstr "" +msgstr ":class:`str`" #: ../Doc/library/xmlrpc.client.rst:107 msgid "``array``" -msgstr "" +msgstr "``array``" #: ../Doc/library/xmlrpc.client.rst:107 msgid "" ":class:`list` or :class:`tuple` containing conformable elements. Arrays are " "returned as :class:`lists `." msgstr "" +":class:`list` o :class:`tuple` que contiene elementos determinados. Las " +"matrices se retornan como :class:`lists `." #: ../Doc/library/xmlrpc.client.rst:111 msgid "``struct``" -msgstr "" +msgstr "``struct``" #: ../Doc/library/xmlrpc.client.rst:111 msgid "" @@ -180,43 +240,52 @@ msgid "" "Objects of user-defined classes can be passed in; only their :attr:`~object." "__dict__` attribute is transmitted." msgstr "" +":class:`dict`. Las claves deben ser cadenas de caracteres, los valores " +"pueden ser de cualquier tipo determinado. Pueden pasarse objetos de clases " +"definidas por el usuario; sólo se transmite su atributo :attr:`~object." +"__dict__` ." #: ../Doc/library/xmlrpc.client.rst:116 msgid "``dateTime.iso8601``" -msgstr "" +msgstr "``dateTime.iso8601``" #: ../Doc/library/xmlrpc.client.rst:116 msgid "" ":class:`DateTime` or :class:`datetime.datetime`. Returned type depends on " "values of *use_builtin_types* and *use_datetime* flags." msgstr "" +":class:`DateTime` o :class:`datetime.datetime`. El tipo retornado depende de " +"los valores de los indicadores *use_builtin_types* y *use_datetime* ." #: ../Doc/library/xmlrpc.client.rst:120 msgid "``base64``" -msgstr "" +msgstr "``base64``" #: ../Doc/library/xmlrpc.client.rst:120 msgid "" ":class:`Binary`, :class:`bytes` or :class:`bytearray`. Returned type " "depends on the value of the *use_builtin_types* flag." msgstr "" +":class:`Binary`, :class:`bytes` o :class:`bytearray`. El tipo retornado " +"depende del valor de la marca *use_builtin_types*." #: ../Doc/library/xmlrpc.client.rst:124 msgid "``nil``" -msgstr "" +msgstr "``nil``" #: ../Doc/library/xmlrpc.client.rst:124 msgid "" "The ``None`` constant. Passing is allowed only if *allow_none* is true." msgstr "" +"La constante ``None``. Solo se permite pasar si *allow_none* es verdadero." #: ../Doc/library/xmlrpc.client.rst:127 msgid "``bigdecimal``" -msgstr "" +msgstr "``bigdecimal``" #: ../Doc/library/xmlrpc.client.rst:127 msgid ":class:`decimal.Decimal`. Returned type only." -msgstr "" +msgstr ":class:`decimal.Decimal`. Retornado solo el tipo." #: ../Doc/library/xmlrpc.client.rst:130 msgid "" @@ -227,6 +296,13 @@ msgid "" "base class called :exc:`Error`. Note that the xmlrpc client module " "currently does not marshal instances of subclasses of built-in types." msgstr "" +"Este es el conjunto completo de tipos de datos admitidos por XML-RPC. Las " +"llamadas a métodos también pueden generar una instancia especial :exc:" +"`Fault`, que se usa para señalar errores del servidor XML-RPC, o :exc:" +"`ProtocolError` que se usa para señalar un error en la capa de transporte " +"HTTP/HTTPS. Ambos :exc:`Fault` y :exc:`ProtocolError` derivan de una clase " +"base llamada :exc:`Error`. Tenga en cuenta que el módulo de cliente xmlrpc " +"actualmente no clasifica instancias de subclases de tipos integrados." #: ../Doc/library/xmlrpc.client.rst:137 msgid "" @@ -239,16 +315,28 @@ msgid "" "have to pass arbitrary bytes via XML-RPC, use :class:`bytes` or :class:" "`bytearray` classes or the :class:`Binary` wrapper class described below." msgstr "" +"Al pasar cadenas de caracteres, los caracteres especiales de XML como ``<``, " +"``>`` y ``&`` se escaparán automáticamente. Sin embargo, es responsabilidad " +"de la persona que llama asegurarse de que la cadena de caracteres esté libre " +"de caracteres que no están permitidos en XML, como los caracteres de control " +"con valores ASCII entre 0 y 31 (excepto, por supuesto, tabulación, nueva " +"línea y retorno de carro); no hacer esto resultará en una solicitud XML-RPC " +"que no es XML bien formado. Si tiene que pasar bytes arbitrarios a través de " +"XML-RPC, use las clases :class:`bytes` o :class:`bytearray` o la clase " +"contenedora :class:`Binary` descrita a continuación." #: ../Doc/library/xmlrpc.client.rst:146 msgid "" ":class:`Server` is retained as an alias for :class:`ServerProxy` for " "backwards compatibility. New code should use :class:`ServerProxy`." msgstr "" +":class:`Server` se conserva como un alias para :class:`ServerProxy` para " +"compatibilidad con versiones anteriores. El nuevo código debe usar :class:" +"`ServerProxy`." #: ../Doc/library/xmlrpc.client.rst:149 msgid "Added the *context* argument." -msgstr "" +msgstr "Se agregó el argumento *context*." #: ../Doc/library/xmlrpc.client.rst:152 msgid "" @@ -257,10 +345,15 @@ msgid "" "numerics: ``i1``, ``i2``, ``i8``, ``biginteger``, ``float`` and " "``bigdecimal``. See http://ws.apache.org/xmlrpc/types.html for a description." msgstr "" +"Se agregó soporte para etiquetas de tipo con prefijos (por ejemplo. ``ex:" +"nil``). Se agregó soporte para desagrupar los tipos adicionales utilizados " +"por la implementación Apache XML-RPC para números:\n" +"``i1``, ``i2``, ``i8``, ``biginteger``, ``float`` y ``bigdecimal``. Consulte " +"http://ws.apache.org/xmlrpc/types.html para obtener una descripción." #: ../Doc/library/xmlrpc.client.rst:164 msgid "`XML-RPC HOWTO `_" -msgstr "" +msgstr "`XML-RPC HOWTO `_" #: ../Doc/library/xmlrpc.client.rst:163 msgid "" @@ -268,27 +361,32 @@ msgid "" "languages. Contains pretty much everything an XML-RPC client developer needs " "to know." msgstr "" +"Una buena descripción del funcionamiento de XML-RPC y del software cliente " +"en varios idiomas. Contiene prácticamente todo lo que un desarrollador de " +"cliente XML-RPC necesita saber." #: ../Doc/library/xmlrpc.client.rst:167 msgid "" "`XML-RPC Introspection `_" msgstr "" +"`XML-RPC Introspection `_" #: ../Doc/library/xmlrpc.client.rst:167 msgid "Describes the XML-RPC protocol extension for introspection." -msgstr "" +msgstr "Describe la extensión del protocolo XML-RPC para la introspección." #: ../Doc/library/xmlrpc.client.rst:170 msgid "`XML-RPC Specification `_" -msgstr "" +msgstr "`XML-RPC Specification `_" #: ../Doc/library/xmlrpc.client.rst:170 msgid "The official specification." -msgstr "" +msgstr "La especificación oficial." #: ../Doc/library/xmlrpc.client.rst:175 msgid "`Unofficial XML-RPC Errata `_" msgstr "" +"`Unofficial XML-RPC Errata `_" #: ../Doc/library/xmlrpc.client.rst:173 msgid "" @@ -296,10 +394,14 @@ msgid "" "the XML-RPC specification, as well as hint at 'best practices' to use when " "designing your own XML-RPC implementations.\"" msgstr "" +"\"Las erratas no oficiales de Fredrik Lundh, destinadas a aclarar ciertos " +"detalles en la especificación XML-RPC, así como dar pistas sobre las " +"'mejores prácticas' para usar al diseñar sus propias implementaciones XML-RPC" +"\"." #: ../Doc/library/xmlrpc.client.rst:181 msgid "ServerProxy Objects" -msgstr "" +msgstr "Objetos *ServerProxy*" #: ../Doc/library/xmlrpc.client.rst:183 msgid "" @@ -310,18 +412,30 @@ msgid "" "by returning a value, which may be either returned data in a conformant type " "or a :class:`Fault` or :class:`ProtocolError` object indicating an error." msgstr "" +"La instancia de :class:`ServerProxy` tiene un método correspondiente a cada " +"llamada de procedimiento remoto aceptada por el servidor XML-RPC. Llamar al " +"método realiza un RPC, enviado por nombre y firma de argumento (por ejemplo, " +"el mismo nombre de método puede sobrecargarse con múltiples firmas de " +"argumento). El RPC finaliza retornando un valor, que puede ser datos " +"retornados en un tipo conforme o un objeto :class:`Fault` o :class:" +"`ProtocolError` que indica un error." #: ../Doc/library/xmlrpc.client.rst:190 msgid "" "Servers that support the XML introspection API support some common methods " "grouped under the reserved :attr:`~ServerProxy.system` attribute:" msgstr "" +"Los servidores que admiten la API de introspección XML admiten algunos " +"métodos comunes agrupados bajo el atributo reservado :attr:`~ServerProxy." +"system`:" #: ../Doc/library/xmlrpc.client.rst:196 msgid "" "This method returns a list of strings, one for each (non-system) method " "supported by the XML-RPC server." msgstr "" +"Este método retorna una lista de cadenas, una para cada método (que no es " +"del sistema) admitido por el servidor XML-RPC." #: ../Doc/library/xmlrpc.client.rst:202 msgid "" @@ -330,12 +444,18 @@ msgid "" "signature is an array of types. The first of these types is the return type " "of the method, the rest are parameters." msgstr "" +"Este método toma un parámetro, el nombre de un método implementado por el " +"servidor XML-RPC. Retorna una matriz de posibles firmas para este método. " +"Una firma es una variedad de tipos. El primero de estos tipos es el tipo de " +"retorno del método, el resto son parámetros." #: ../Doc/library/xmlrpc.client.rst:207 msgid "" "Because multiple signatures (ie. overloading) is permitted, this method " "returns a list of signatures rather than a singleton." msgstr "" +"Debido a que se permiten múltiples firmas (es decir, sobrecarga), este " +"método retorna una lista de firmas en lugar de un singleton." #: ../Doc/library/xmlrpc.client.rst:210 msgid "" @@ -345,6 +465,11 @@ msgid "" "\". If it expects three integers and returns a string, its signature is " "\"string, int, int, int\"." msgstr "" +"Las propias firmas están restringidas a los parámetros de nivel superior " +"esperados por un método. Por ejemplo, si un método espera una matriz de " +"estructuras como parámetro y retorna una cadena de caracteres, su firma es " +"simplemente \"cadena, matriz\". Si espera tres enteros y retorna una cadena, " +"su firma es \"string, int, int, int\"." #: ../Doc/library/xmlrpc.client.rst:215 msgid "" @@ -352,6 +477,9 @@ msgid "" "Python this means that the type of the returned value will be something " "other than list." msgstr "" +"Si no se define una firma para el método, se retorna un valor que no es una " +"matriz. En Python, esto significa que el tipo de valor retornado será " +"diferente a una lista." #: ../Doc/library/xmlrpc.client.rst:222 msgid "" @@ -360,25 +488,33 @@ msgid "" "method. If no such string is available, an empty string is returned. The " "documentation string may contain HTML markup." msgstr "" +"Este método toma un parámetro, el nombre de un método implementado por el " +"servidor XML-RPC. Retorna una cadena de caracteres de documentación que " +"describe el uso de ese método. Si no hay tal cadena de caracteres " +"disponible, se retorna una cadena de caracteres vacía. La cadena de " +"caracteres de documentación puede contener marcado HTML." #: ../Doc/library/xmlrpc.client.rst:229 msgid "" "Instances of :class:`ServerProxy` support the :term:`context manager` " "protocol for closing the underlying transport." msgstr "" +"Las instancias de :class:`ServerProxy` admiten el protocolo :term:`context " +"manager` para cerrar el transporte subyacente." #: ../Doc/library/xmlrpc.client.rst:233 ../Doc/library/xmlrpc.client.rst:279 msgid "A working example follows. The server code::" msgstr "" +"A continuación se muestra un ejemplo práctico. El código del servidor::" #: ../Doc/library/xmlrpc.client.rst:245 ../Doc/library/xmlrpc.client.rst:294 #: ../Doc/library/xmlrpc.client.rst:404 ../Doc/library/xmlrpc.client.rst:510 msgid "The client code for the preceding server::" -msgstr "" +msgstr "El código de cliente para el servidor anterior::" #: ../Doc/library/xmlrpc.client.rst:256 msgid "DateTime Objects" -msgstr "" +msgstr "Objetos *DateTime*" #: ../Doc/library/xmlrpc.client.rst:260 msgid "" @@ -387,26 +523,36 @@ msgid "" "the following methods, supported mainly for internal use by the marshalling/" "unmarshalling code:" msgstr "" +"Esta clase puede inicializarse con segundos desde la época, una tupla de " +"tiempo, una cadena de fecha/hora ISO 8601 o una instancia :class:`datetime." +"datetime`. Tiene los siguientes métodos, soportados principalmente para uso " +"interno por el código de clasificación/eliminación de clasificación:" #: ../Doc/library/xmlrpc.client.rst:268 msgid "Accept a string as the instance's new time value." msgstr "" +"Acepta una cadena de caracteres como el nuevo valor de tiempo de la " +"instancia." #: ../Doc/library/xmlrpc.client.rst:273 msgid "" "Write the XML-RPC encoding of this :class:`DateTime` item to the *out* " "stream object." msgstr "" +"Escribe la codificación XML-RPC de este elemento :class:`DateTime` en el " +"objeto de flujo *out*." #: ../Doc/library/xmlrpc.client.rst:276 msgid "" "It also supports certain of Python's built-in operators through rich " "comparison and :meth:`__repr__` methods." msgstr "" +"También es compatible con algunos de los operadores integrados de Python a " +"través de una rica comparación y métodos :meth:`__repr__`." #: ../Doc/library/xmlrpc.client.rst:309 msgid "Binary Objects" -msgstr "" +msgstr "Objetos binarios" #: ../Doc/library/xmlrpc.client.rst:313 msgid "" @@ -414,81 +560,106 @@ msgid "" "primary access to the content of a :class:`Binary` object is provided by an " "attribute:" msgstr "" +"Esta clase puede inicializarse a partir de datos de bytes (que pueden " +"incluir NUL). El acceso principal al contenido de un objeto :class:`Binary` " +"lo proporciona un atributo:" #: ../Doc/library/xmlrpc.client.rst:320 msgid "" "The binary data encapsulated by the :class:`Binary` instance. The data is " "provided as a :class:`bytes` object." msgstr "" +"Los datos binarios encapsulados por la instancia :class:`Binary`. Los datos " +"se proporcionan como un objeto :class:`bytes`." #: ../Doc/library/xmlrpc.client.rst:323 msgid "" ":class:`Binary` objects have the following methods, supported mainly for " "internal use by the marshalling/unmarshalling code:" msgstr "" +"Los objetos :class:`Binary` tienen los siguientes métodos, soportados " +"principalmente para uso interno por el código de clasificación/desagrupación:" #: ../Doc/library/xmlrpc.client.rst:329 msgid "" "Accept a base64 :class:`bytes` object and decode it as the instance's new " "data." msgstr "" +"Acepta un objeto base64 :class:`bytes` y se descodifica como los nuevos " +"datos de la instancia." #: ../Doc/library/xmlrpc.client.rst:334 msgid "" "Write the XML-RPC base 64 encoding of this binary item to the *out* stream " "object." msgstr "" +"Escribe la codificación XML-RPC base 64 de este elemento binario en el " +"objeto de flujo *out*." #: ../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." #: ../Doc/library/xmlrpc.client.rst:341 msgid "" "It also supports certain of Python's built-in operators through :meth:" "`__eq__` and :meth:`__ne__` methods." msgstr "" +"También admite algunos de los operadores integrados de Python a través de " +"los métodos :meth:`__eq__` and :meth:`__ne__`." #: ../Doc/library/xmlrpc.client.rst:344 msgid "" "Example usage of the binary objects. We're going to transfer an image over " "XMLRPC::" msgstr "" +"Ejemplo de uso de los objetos binarios. Vamos a transferir una imagen sobre " +"XMLRPC::" #: ../Doc/library/xmlrpc.client.rst:360 msgid "The client gets the image and saves it to a file::" -msgstr "" +msgstr "El cliente obtiene la imagen y la guarda en un archivo::" #: ../Doc/library/xmlrpc.client.rst:371 msgid "Fault Objects" -msgstr "" +msgstr "Objetos Faults" #: ../Doc/library/xmlrpc.client.rst:375 msgid "" "A :class:`Fault` object encapsulates the content of an XML-RPC fault tag. " "Fault objects have the following attributes:" msgstr "" +"Un objeto :class:`Fault` encapsula el contenido de una etiqueta de error XML-" +"RPC. Los objetos de error tienen los siguientes atributos:" #: ../Doc/library/xmlrpc.client.rst:381 msgid "A string indicating the fault type." -msgstr "" +msgstr "Una cadena de caracteres que indica el tipo de fallo." #: ../Doc/library/xmlrpc.client.rst:386 msgid "A string containing a diagnostic message associated with the fault." msgstr "" +"Una cadena de caracteres que contiene un mensaje de diagnóstico asociado con " +"el fallo." #: ../Doc/library/xmlrpc.client.rst:388 msgid "" "In the following example we're going to intentionally cause a :exc:`Fault` " "by returning a complex type object. The server code::" msgstr "" +"En el siguiente ejemplo vamos a causar intencionalmente un :exc:`Fault` al " +"retornar un objeto de tipo complejo. El código del servidor::" #: ../Doc/library/xmlrpc.client.rst:421 msgid "ProtocolError Objects" -msgstr "" +msgstr "Objetos ProtocolError" #: ../Doc/library/xmlrpc.client.rst:425 msgid "" @@ -496,40 +667,49 @@ msgid "" "transport layer (such as a 404 'not found' error if the server named by the " "URI does not exist). It has the following attributes:" msgstr "" +"El objeto :class:`ProtocolError` describe un error de protocolo en la capa " +"de transporte subyacente (como un error 404 'no encontrado' si el servidor " +"nombrado por el URI no existe). Tiene los siguientes atributos:" #: ../Doc/library/xmlrpc.client.rst:432 msgid "The URI or URL that triggered the error." -msgstr "" +msgstr "El URI o URL que provocó el error." #: ../Doc/library/xmlrpc.client.rst:437 msgid "The error code." -msgstr "" +msgstr "El código de error." #: ../Doc/library/xmlrpc.client.rst:442 msgid "The error message or diagnostic string." -msgstr "" +msgstr "El mensaje de error o la cadena de caracteres de diagnóstico." #: ../Doc/library/xmlrpc.client.rst:447 msgid "" "A dict containing the headers of the HTTP/HTTPS request that triggered the " "error." msgstr "" +"Un diccionario que contiene los encabezados de la solicitud HTTP/HTTPS que " +"desencadenó el error." #: ../Doc/library/xmlrpc.client.rst:450 msgid "" "In the following example we're going to intentionally cause a :exc:" "`ProtocolError` by providing an invalid URI::" msgstr "" +"En el siguiente ejemplo, vamos a causar intencionalmente un :exc:" +"`ProtocolError` proporcionando un URI inválido::" #: ../Doc/library/xmlrpc.client.rst:468 msgid "MultiCall Objects" -msgstr "" +msgstr "Objectos MultiCall" #: ../Doc/library/xmlrpc.client.rst:470 msgid "" "The :class:`MultiCall` object provides a way to encapsulate multiple calls " "to a remote server into a single request [#]_." msgstr "" +"El objeto :class:`MultiCall` proporciona una forma de encapsular múltiples " +"llamadas a un servidor remoto en una sola solicitud [#]_." #: ../Doc/library/xmlrpc.client.rst:476 msgid "" @@ -541,14 +721,23 @@ msgid "" "of this call is a :term:`generator`; iterating over this generator yields " "the individual results." msgstr "" +"Crea un objeto usado para llamadas al método boxcar. *server* es el objetivo " +"final de la llamada. Se pueden realizar llamadas al objeto de resultado, " +"pero retornarán inmediatamente ``None`` y solo almacenarán el nombre y los " +"parámetros de la llamada en el objeto :class:`MultiCall`. Llamar al objeto " +"en sí hace que todas las llamadas almacenadas se transmitan como una única " +"solicitud de ``system.multicall``. El resultado de esta llamada es un :term:" +"`generator`; iterar sobre este generador produce los resultados individuales." #: ../Doc/library/xmlrpc.client.rst:484 msgid "A usage example of this class follows. The server code::" msgstr "" +"A continuación se muestra un ejemplo de uso de esta clase. El código del " +"servidor::" #: ../Doc/library/xmlrpc.client.rst:526 msgid "Convenience Functions" -msgstr "" +msgstr "Funciones de Conveniencia" #: ../Doc/library/xmlrpc.client.rst:530 msgid "" @@ -561,6 +750,15 @@ msgid "" "XML-RPC; to allow using it via an extension, provide a true value for " "*allow_none*." msgstr "" +"Convierta *params* en una solicitud XML-RPC. o en una respuesta si " +"*methodresponse* es verdadero. *params* puede ser una tupla de argumentos o " +"una instancia de la clase de excepción :exc:`Fault`. Si *methodresponse* es " +"verdadero, solo se puede devolver un único valor, lo que significa que " +"*params* debe tener una longitud de 1. *encoding*, si se proporciona, es la " +"codificación que se utilizará en el XML generado; el predeterminado es " +"UTF-8. El valor de Python :const:`None` no se puede usar en XML-RPC " +"estándar; para permitir su uso a través de una extensión, proporcione un " +"valor verdadero para *allow_none*." #: ../Doc/library/xmlrpc.client.rst:541 msgid "" @@ -572,34 +770,46 @@ msgid "" "values to be presented as :class:`datetime.datetime` objects and binary data " "to be presented as :class:`bytes` objects; this flag is false by default." msgstr "" +"Convierte una solicitud o respuesta XML-RPC en objetos Python, un ``(params, " +"methodname)``. *params* es una tupla de argumento; *methodname* es una " +"cadena de caracteres, o ``None`` si no hay ningún nombre de método presente " +"en el paquete. Si el paquete XML-RPC representa una condición de falla, esta " +"función generará una excepción :exc:`Fault`. La flag *use_builtin_types* " +"puede usarse para hacer que los valores de fecha/hora se presenten como " +"objetos de :class:`datetime.datetime` y datos binarios que se presenten " +"como objetos de :class:`bytes`; esta flag es falsa por defecto." #: ../Doc/library/xmlrpc.client.rst:549 msgid "" "The obsolete *use_datetime* flag is similar to *use_builtin_types* but it " "applies only to date/time values." msgstr "" +"La flag obsoleta *use_datetime* es similar a *use_builtin_types* pero esto " +"aplica solo a valores fecha/hora." #: ../Doc/library/xmlrpc.client.rst:559 msgid "Example of Client Usage" -msgstr "" +msgstr "Ejemplo de Uso de Cliente" #: ../Doc/library/xmlrpc.client.rst:576 msgid "" "To access an XML-RPC server through a HTTP proxy, you need to define a " "custom transport. The following example shows how::" msgstr "" +"Para acceder a un servidor XML-RPC a través de un proxy HTTP, debe definir " +"un transporte personalizado. El siguiente ejemplo muestra cómo:" #: ../Doc/library/xmlrpc.client.rst:601 msgid "Example of Client and Server Usage" -msgstr "" +msgstr "Ejemplo de Uso de Cliente y Servidor" #: ../Doc/library/xmlrpc.client.rst:603 msgid "See :ref:`simplexmlrpcserver-example`." -msgstr "" +msgstr "Vea :ref:`simplexmlrpcserver-example`." #: ../Doc/library/xmlrpc.client.rst:607 msgid "Footnotes" -msgstr "" +msgstr "Pie de notas" #: ../Doc/library/xmlrpc.client.rst:608 msgid "" @@ -607,3 +817,6 @@ msgid "" "`_." msgstr "" +"Este enfoque se presentó por primera vez en `una discusión en xmlrpc.com " +"`_." diff --git a/reference/expressions.po b/reference/expressions.po index 66b9c77a42..589d41f594 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -6,28 +6,30 @@ # 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: 2020-12-06 14:19+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" +"Last-Translator: Álvaro Mondéjar Rubio \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/reference/expressions.rst:6 msgid "Expressions" -msgstr "" +msgstr "Expresiones" #: ../Doc/reference/expressions.rst:10 msgid "" "This chapter explains the meaning of the elements of expressions in Python." msgstr "" +"Este capítulo explica el significado de los elementos de expresiones en " +"Python." #: ../Doc/reference/expressions.rst:12 msgid "" @@ -35,16 +37,21 @@ msgid "" "will be used to describe syntax, not lexical analysis. When (one " "alternative of) a syntax rule has the form" msgstr "" +"**Notas de Sintaxis:** En este y los siguientes capítulos será usada " +"notación BNF extendida para describir sintaxis, no análisis léxico. Cuando " +"(una alternativa de) una regla de sintaxis tiene la forma" #: ../Doc/reference/expressions.rst:19 msgid "" "and no semantics are given, the semantics of this form of ``name`` are the " "same as for ``othername``." msgstr "" +"y no han sido dadas semánticas, las semánticas de esta forma de ``name`` son " +"las mismas que para ``othername``." #: ../Doc/reference/expressions.rst:26 msgid "Arithmetic conversions" -msgstr "" +msgstr "Conversiones aritméticas" #: ../Doc/reference/expressions.rst:30 msgid "" @@ -52,21 +59,29 @@ msgid "" "numeric arguments are converted to a common type\", this means that the " "operator implementation for built-in types works as follows:" msgstr "" +"Cuando una descripción de un operador aritmético a continuación usa la frase " +"\"los argumentos numéricos son convertidos a un tipo común\", esto significa " +"que la implementación de operador para tipos incorporados funciona de la " +"siguiente forma:" #: ../Doc/reference/expressions.rst:34 msgid "" "If either argument is a complex number, the other is converted to complex;" msgstr "" +"Si cualquiera de los argumentos es un número complejo, el otro es convertido " +"a complejo;" #: ../Doc/reference/expressions.rst:36 msgid "" "otherwise, if either argument is a floating point number, the other is " "converted to floating point;" msgstr "" +"de otra forma, si cualquier de los argumentos es un número de punto " +"flotante, el otro es convertido a punto flotante;" #: ../Doc/reference/expressions.rst:39 msgid "otherwise, both must be integers and no conversion is necessary." -msgstr "" +msgstr "de otra forma, ambos deben ser enteros y no se necesita conversión." #: ../Doc/reference/expressions.rst:41 msgid "" @@ -74,10 +89,13 @@ msgid "" "argument to the '%' operator). Extensions must define their own conversion " "behavior." msgstr "" +"Algunas reglas adicionales aplican para ciertos operadores (ej., una cadena " +"de caracteres como argumento a la izquierda del operador '%'). Las " +"extensiones deben definir su comportamiento de conversión." #: ../Doc/reference/expressions.rst:49 msgid "Atoms" -msgstr "" +msgstr "Átomos" #: ../Doc/reference/expressions.rst:53 msgid "" @@ -85,10 +103,14 @@ msgid "" "identifiers or literals. Forms enclosed in parentheses, brackets or braces " "are also categorized syntactically as atoms. The syntax for atoms is:" msgstr "" +"Los átomos son los elementos más básicos de las expresiones. Los átomos más " +"simples son identificadores o literales. Las formas encerradas en " +"paréntesis, corchetes o llaves son también sintácticamente categorizadas " +"como átomos. La sintaxis para átomos es:" #: ../Doc/reference/expressions.rst:66 msgid "Identifiers (Names)" -msgstr "" +msgstr "Identificadores (Nombres)" #: ../Doc/reference/expressions.rst:70 msgid "" @@ -96,6 +118,9 @@ msgid "" "`identifiers` for lexical definition and section :ref:`naming` for " "documentation of naming and binding." msgstr "" +"Un identificador encontrándose como un átomo es un nombre. Vea la sección :" +"ref:`identifiers` para la definición léxica y la sección :ref:`naming` para " +"documentación de nombrar y vincular." #: ../Doc/reference/expressions.rst:76 msgid "" @@ -103,6 +128,9 @@ msgid "" "object. When a name is not bound, an attempt to evaluate it raises a :exc:" "`NameError` exception." msgstr "" +"Cuando el nombre es vinculado a un objeto, la evaluación del átomo produce " +"ese objeto. Cuando un nombre no es vinculado, un intento de evaluarlo genera " +"una excepción :exc:`NameError`." #: ../Doc/reference/expressions.rst:84 msgid "" @@ -119,14 +147,29 @@ msgid "" "implementation defined truncation may happen. If the class name consists " "only of underscores, no transformation is done." msgstr "" +"**Alteración de nombre privado:** Cuando un identificador que ocurre " +"textualmente en una definición de clase comienza con dos o más caracteres de " +"guión bajo y no termina en dos o más guiones bajos, es considerado un :dfn:" +"`private name` de esa clase. Los nombres privados son transformados a una " +"forma más larga antes de que sea generado código para ellos. La " +"transformación inserta el nombre de clase, con los guiones bajos iniciales " +"eliminados y un solo guión bajo insertado, delante del nombre. Por ejemplo, " +"el identificador ``__spam`` que se encuentra en una clase denominada ``Ham`` " +"será transformado a ``_Ham__spam``. Esta transformación es independiente del " +"contexto sintáctico en el cual es usado el identificador. Si el nombre " +"transformado es extremadamente largo (más largo que 255 caracteres), puede " +"ocurrir el truncamiento definido por la implementación. Si el nombre de " +"clase consiste únicamente de guiones bajos, no se realiza transformación." #: ../Doc/reference/expressions.rst:100 msgid "Literals" -msgstr "" +msgstr "Literales" #: ../Doc/reference/expressions.rst:104 msgid "Python supports string and bytes literals and various numeric literals:" msgstr "" +"Python soporta literales de cadenas de caracteres y bytes y varios literales " +"numéricos:" #: ../Doc/reference/expressions.rst:110 msgid "" @@ -135,6 +178,11 @@ msgid "" "value may be approximated in the case of floating point and imaginary " "(complex) literals. See section :ref:`literals` for details." msgstr "" +"La evaluación de un literal produce un objeto del tipo dado (cadena de " +"caracteres, bytes, entero, número de punto flotante, número complejo) con el " +"valor dado. El valor puede ser aproximado en el caso de literales de número " +"de punto flotante e imaginarios (complejos). Vea la sección :ref:`literals` " +"para más detalles." #: ../Doc/reference/expressions.rst:119 msgid "" @@ -144,15 +192,22 @@ msgid "" "different occurrence) may obtain the same object or a different object with " "the same value." msgstr "" +"Todos los literales corresponden a tipos de datos inmutables y, por lo " +"tanto, la identidad del objeto es menos importante que su valor. Múltiples " +"evaluaciones de literales con el mismo valor (ya sea la misma ocurrencia en " +"el texto del programa o una ocurrencia diferente) pueden obtener el mismo " +"objeto o un objeto diferente con el mismo valor." #: ../Doc/reference/expressions.rst:129 msgid "Parenthesized forms" -msgstr "" +msgstr "Formas entre paréntesis" #: ../Doc/reference/expressions.rst:135 msgid "" "A parenthesized form is an optional expression list enclosed in parentheses:" msgstr "" +"Una forma entre paréntesis es una lista de expresiones opcionales encerradas " +"entre paréntesis:" #: ../Doc/reference/expressions.rst:140 msgid "" @@ -160,6 +215,9 @@ msgid "" "if the list contains at least one comma, it yields a tuple; otherwise, it " "yields the single expression that makes up the expression list." msgstr "" +"Una expresión entre paréntesis produce lo que la lista de expresión produce: " +"si la lista contiene al menos una coma, produce una tupla; en caso " +"contrario, produce la única expresión que que forma la lista de expresiones." #: ../Doc/reference/expressions.rst:146 msgid "" @@ -167,6 +225,10 @@ msgid "" "immutable, the same rules as for literals apply (i.e., two occurrences of " "the empty tuple may or may not yield the same object)." msgstr "" +"Un par de paréntesis vacío producen un objeto de tupla vacío. Debido a que " +"las tuplas son inmutables, se aplican las mismas reglas que aplican para " +"literales (ej., dos ocurrencias de una tupla vacía puede o no producir el " +"mismo objeto)." #: ../Doc/reference/expressions.rst:154 msgid "" @@ -175,30 +237,40 @@ msgid "" "*are* required --- allowing unparenthesized \"nothing\" in expressions would " "cause ambiguities and allow common typos to pass uncaught." msgstr "" +"Note que las tuplas no son formadas por los paréntesis, sino más bien " +"mediante el uso del operador de coma. La excepción es la tupla vacía, para " +"la cual los paréntesis *son* requeridos -- permitir \"nada\" sin paréntesis " +"en expresiones causaría ambigüedades y permitiría que errores tipográficos " +"comunes pasaran sin ser detectados." #: ../Doc/reference/expressions.rst:163 msgid "Displays for lists, sets and dictionaries" -msgstr "" +msgstr "Despliegues para listas, conjuntos y diccionarios" #: ../Doc/reference/expressions.rst:165 msgid "" "For constructing a list, a set or a dictionary Python provides special " "syntax called \"displays\", each of them in two flavors:" msgstr "" +"Para construir una lista, un conjunto o un diccionario, Python provee " +"sintaxis especial denominada \"despliegue\", cada una de ellas en dos " +"sabores:" #: ../Doc/reference/expressions.rst:168 msgid "either the container contents are listed explicitly, or" -msgstr "" +msgstr "los contenidos del contenedor son listados explícitamente o" #: ../Doc/reference/expressions.rst:170 msgid "" "they are computed via a set of looping and filtering instructions, called a :" "dfn:`comprehension`." msgstr "" +"son calculados mediante un conjunto de instrucciones de bucle y filtrado, " +"denominadas una :dfn:`comprehension`." #: ../Doc/reference/expressions.rst:178 msgid "Common syntax elements for comprehensions are:" -msgstr "" +msgstr "Los elementos comunes de sintaxis para las comprensiones son:" #: ../Doc/reference/expressions.rst:186 msgid "" @@ -209,6 +281,13 @@ msgid "" "if` clauses a block, nesting from left to right, and evaluating the " "expression to produce an element each time the innermost block is reached." msgstr "" +"La comprensión consiste en una única expresión seguida por al menos una " +"cláusula :keyword:`!for` y cero o más cláusulas :keyword:`!for` o :keyword:`!" +"if`. En este caso, los elementos del nuevo contenedor son aquellos que " +"serían producidos mediante considerar cada una de las cláusulas :keyword:`!" +"for` o :keyword:`!if` un bloque, anidado de izquierda a derecha y evaluando " +"la expresión para producir un elemento cada vez que se alcanza el bloque más " +"interno." #: ../Doc/reference/expressions.rst:193 msgid "" @@ -217,6 +296,10 @@ msgid "" "This ensures that names assigned to in the target list don't \"leak\" into " "the enclosing scope." msgstr "" +"Sin embargo, aparte de la expresión iterable en la cláusula :keyword:`!for` " +"más a la izquierda, la comprensión es ejecutada en un alcance separado " +"implícitamente anidado. Esto asegura que los nombres asignados a en la lista " +"objetiva no se \"filtren\" en el alcance adjunto." #: ../Doc/reference/expressions.rst:197 msgid "" @@ -227,6 +310,13 @@ msgid "" "enclosing scope as they may depend on the values obtained from the leftmost " "iterable. For example: ``[x*y for x in range(10) for y in range(x, x+10)]``." msgstr "" +"La expresión iterable en la cláusula más a la izquierda :keyword:`!for` es " +"evaluada directamente en el alcance anidado y luego pasada como un argumento " +"al alcance implícitamente anidado. Subsecuentes cláusulas :keyword:`!for` y " +"cualquier condición de filtro en la cláusula :keyword:`!for` más a la " +"izquierda no pueden ser evaluadas en el alcance adjunto ya que pueden " +"depender de los valores obtenidos del iterable de más a la izquierda. Por " +"ejemplo, ``[x*y for x in range(10) for y in range(x, x+10)]``." #: ../Doc/reference/expressions.rst:204 msgid "" @@ -234,6 +324,9 @@ msgid "" "type, ``yield`` and ``yield from`` expressions are prohibited in the " "implicitly nested scope." msgstr "" +"Para asegurar que la comprensión siempre resulta en un contenedor del tipo " +"apropiado, las expresiones ``yield`` y ``yield from`` están prohibidas en el " +"alcance implícitamente anidado." #: ../Doc/reference/expressions.rst:211 msgid "" @@ -248,24 +341,37 @@ msgid "" "asynchronous comprehension may suspend the execution of the coroutine " "function in which it appears. See also :pep:`530`." msgstr "" +"A partir de Python 3.6, en una función :keyword:`async def`, una cláusula :" +"keyword:`!async for` puede ser usada para iterar sobre un :term:" +"`asynchronous iterator`. Una comprensión en una función :keyword:`!async " +"def` puede consistir en una cláusula :keyword:`!for` o :keyword:`!async for` " +"siguiendo la expresión inicial, puede contener cláusulas adicionales :" +"keyword:`!for` o :keyword:`!async for` y también pueden usar expresiones :" +"keyword:`await`. Si una comprensión contiene cláusulas :keyword:`!async for` " +"o expresiones :keyword:`!await` es denominada una :dfn:`asynchronous " +"comprehension`. Una comprensión asincrónica puede suspender la ejecución de " +"la función de corrutina en la cual aparece. Vea también :pep:`530`." #: ../Doc/reference/expressions.rst:223 msgid "Asynchronous comprehensions were introduced." -msgstr "" +msgstr "Fueron introducidas las comprensiones asincrónicas." #: ../Doc/reference/expressions.rst:226 ../Doc/reference/expressions.rst:397 msgid "``yield`` and ``yield from`` prohibited in the implicitly nested scope." msgstr "" +"Prohibidas ``yield`` y ``yield from`` en el alcance implícitamente anidado." #: ../Doc/reference/expressions.rst:233 msgid "List displays" -msgstr "" +msgstr "Despliegues de lista" #: ../Doc/reference/expressions.rst:243 msgid "" "A list display is a possibly empty series of expressions enclosed in square " "brackets:" msgstr "" +"Un despliegue de lista es una serie de expresiones posiblemente vacía " +"encerrada entre corchetes:" #: ../Doc/reference/expressions.rst:249 msgid "" @@ -276,16 +382,25 @@ msgid "" "is supplied, the list is constructed from the elements resulting from the " "comprehension." msgstr "" +"Un despliegue de lista produce un nuevo objeto lista, el contenido se " +"especifica por una lista de expresiones o una comprensión. Cuando se " +"proporciona una lista de expresiones, sus elementos son evaluados desde la " +"izquierda a la derecha y colocados en el objeto lista en ese orden. Cuando " +"se proporciona una comprensión, la lista es construida desde los elementos " +"resultantes de la comprensión." #: ../Doc/reference/expressions.rst:259 msgid "Set displays" -msgstr "" +msgstr "Despliegues de conjuntos" #: ../Doc/reference/expressions.rst:267 msgid "" "A set display is denoted by curly braces and distinguishable from dictionary " "displays by the lack of colons separating keys and values:" msgstr "" +"Un despliegue de conjunto se denota mediante llaves y se distinguen de los " +"despliegues de diccionarios por la ausencia de caracteres de doble punto " +"separando claves y valores:" #: ../Doc/reference/expressions.rst:273 msgid "" @@ -296,26 +411,36 @@ msgid "" "supplied, the set is constructed from the elements resulting from the " "comprehension." msgstr "" +"Un despliegue de conjunto produce un nuevo objeto conjunto mutable, el " +"contenido se especifica mediante una secuencia de expresiones o una " +"comprensión. Cuando se proporciona una lista de expresiones separadas por " +"comas, sus elementos son evaluados desde la izquierda a la derecha y " +"añadidos al objeto de conjunto. Cuando se proporciona una comprensión, el " +"conjunto es construido de los elementos resultantes de la comprensión." #: ../Doc/reference/expressions.rst:279 msgid "" "An empty set cannot be constructed with ``{}``; this literal constructs an " "empty dictionary." msgstr "" +"Un conjunto vacío no puede ser construido con ``{}``; este literal construye " +"un diccionario vacío." #: ../Doc/reference/expressions.rst:286 msgid "Dictionary displays" -msgstr "" +msgstr "Despliegues de diccionario" #: ../Doc/reference/expressions.rst:296 msgid "" "A dictionary display is a possibly empty series of key/datum pairs enclosed " "in curly braces:" msgstr "" +"Un despliegue de diccionario es una serie posiblemente vacía de pares clave/" +"datos encerrados entre llaves:" #: ../Doc/reference/expressions.rst:305 msgid "A dictionary display yields a new dictionary object." -msgstr "" +msgstr "Un despliegue de diccionario produce un nuevo objeto diccionario." #: ../Doc/reference/expressions.rst:307 msgid "" @@ -326,6 +451,12 @@ msgid "" "key/datum list, and the final dictionary's value for that key will be the " "last one given." msgstr "" +"Si es dada una secuencia separada por comas de pares clave/datos, son " +"evaluadas desde la izquierda a la derecha para definir las entradas del " +"diccionario: cada objeto clave es usado como una clave dentro del " +"diccionario para almacenar el dato correspondiente. Esto significa que " +"puedes especificar la misma clave múltiples veces en la lista clave/datos y " +"el valor final del diccionario para esa clave será la última dada." #: ../Doc/reference/expressions.rst:317 msgid "" @@ -334,10 +465,16 @@ msgid "" "dictionary. Later values replace values already set by earlier key/datum " "pairs and earlier dictionary unpackings." msgstr "" +"Un doble asterisco ``**`` denota :dfn:`dictionary unpacking`. Su operando " +"debe ser un :term:`mapping`. Cada elemento de mapeo es añadido al nuevo " +"diccionario. Valores más tardíos remplazan los valores ya establecidos para " +"los pares clave/dato y para los desempaquetados de diccionario anteriores." #: ../Doc/reference/expressions.rst:322 msgid "Unpacking into dictionary displays, originally proposed by :pep:`448`." msgstr "" +"Desempaquetar en despliegues de diccionarios, originalmente propuesto por :" +"pep:`448`." #: ../Doc/reference/expressions.rst:325 msgid "" @@ -346,6 +483,11 @@ msgid "" "clauses. When the comprehension is run, the resulting key and value elements " "are inserted in the new dictionary in the order they are produced." msgstr "" +"Una comprensión de diccionario, en contraste a las compresiones de lista y " +"conjunto, necesita dos expresiones separadas con un caracter de doble punto " +"seguido por las cláusulas usuales \"for\" e \"if\". Cuando la comprensión se " +"ejecuta, los elementos resultantes clave y valor son insertados en el nuevo " +"diccionario en el orden que son producidos." #: ../Doc/reference/expressions.rst:333 msgid "" @@ -355,6 +497,11 @@ msgid "" "detected; the last datum (textually rightmost in the display) stored for a " "given key value prevails." msgstr "" +"Las restricciones de los tipos de los valores de clave son listados " +"anteriormente en la sección :ref:`types`. (Para resumir, el tipo de la clave " +"debe ser :term:`hashable`, el cual excluye todos los objetos mutables.) No " +"se detectan choques entre claves duplicadas; el último dato (textualmente el " +"más a la derecha en el despliegue) almacenado para una clave dada prevalece." #: ../Doc/reference/expressions.rst:339 msgid "" @@ -363,14 +510,20 @@ msgid "" "key. Starting with 3.8, the key is evaluated before the value, as proposed " "by :pep:`572`." msgstr "" +"Antes de Python 3.8, en las comprensiones de diccionarios, el orden de " +"evaluación de clave y valor no fue bien definido. En CPython, el valor fue " +"evaluado antes de la clave. A partir de 3.8, la clave es evaluada antes que " +"el valor, como fue propuesto por :pep:`572`." #: ../Doc/reference/expressions.rst:349 msgid "Generator expressions" -msgstr "" +msgstr "Expresiones de generador" #: ../Doc/reference/expressions.rst:356 msgid "A generator expression is a compact generator notation in parentheses:" msgstr "" +"Una expresión de generador es una notación compacta de generador en " +"paréntesis:" #: ../Doc/reference/expressions.rst:361 msgid "" @@ -378,6 +531,9 @@ msgid "" "same as for comprehensions, except that it is enclosed in parentheses " "instead of brackets or curly braces." msgstr "" +"Una expresión de generador produce un nuevo objeto generador. Su sintaxis es " +"la misma que para las comprensiones, excepto que es encerrado en paréntesis " +"en lugar de corchetes o llaves." #: ../Doc/reference/expressions.rst:365 msgid "" @@ -392,12 +548,25 @@ msgid "" "depend on the values obtained from the leftmost iterable. For example: " "``(x*y for x in range(10) for y in range(x, x+10))``." msgstr "" +"Las variables usadas en la expresión de generador son evaluadas " +"perezosamente cuando se ejecuta el método :meth:`~generator.__next__` para " +"el objeto generador (de la misma forma que los generadores normales). Sin " +"embargo, la expresión iterable en la cláusula :keyword:`!for` más a la " +"izquierda es inmediatamente evaluada, de forma que un error producido por " +"ella será emitido en el punto en el que se define la expresión de generador, " +"en lugar de en el punto donde se obtiene el primer valor. Subsecuentes " +"cláusulas :keyword:`!for` y cualquier condición en la cláusula :keyword:`!" +"for` más a la izquierda no pueden ser evaluadas en el alcance adjunto, ya " +"que puede depender de los valores obtenidos por el iterable de más a la " +"izquierda. Por ejemplo: ``(x*y for x in range(10) for y in range(x, x+10))``." #: ../Doc/reference/expressions.rst:376 msgid "" "The parentheses can be omitted on calls with only one argument. See " "section :ref:`calls` for details." msgstr "" +"Los paréntesis pueden ser omitidos en ejecuciones con un solo argumento. Vea " +"la sección :ref:`calls` para más detalles." #: ../Doc/reference/expressions.rst:379 msgid "" @@ -405,6 +574,9 @@ msgid "" "itself, ``yield`` and ``yield from`` expressions are prohibited in the " "implicitly defined generator." msgstr "" +"Para evitar interferir con la operación esperada de la expresión misma del " +"generador, las expresiones ``yield`` y ``yield from`` están prohibidas en el " +"generador definido implícitamente." #: ../Doc/reference/expressions.rst:383 msgid "" @@ -414,10 +586,15 @@ msgid "" "asynchronous generator object, which is an asynchronous iterator (see :ref:" "`async-iterators`)." msgstr "" +"Si una expresión de generador contiene cláusulas :keyword:`!async for` o " +"expresiones :keyword:`await`, se ejecuta una :dfn:`asynchronous generator " +"expression`. Una expresión de generador asincrónica retorna un nuevo objeto " +"de generador asincrónico, el cual es un iterador asincrónico (ver :ref:" +"`async-iterators`)." #: ../Doc/reference/expressions.rst:389 msgid "Asynchronous generator expressions were introduced." -msgstr "" +msgstr "Las expresiones de generador asincrónico fueron introducidas." #: ../Doc/reference/expressions.rst:392 msgid "" @@ -425,10 +602,13 @@ msgid "" "in :keyword:`async def` coroutines. Starting with 3.7, any function can use " "asynchronous generator expressions." msgstr "" +"Antes de Python 3.7, las expresiones de generador asincrónico podrían " +"aparecer sólo en corrutinas :keyword:`async def`. Desde 3.7, cualquier " +"función puede usar expresiones de generador asincrónico." #: ../Doc/reference/expressions.rst:404 msgid "Yield expressions" -msgstr "" +msgstr "Expresiones yield" #: ../Doc/reference/expressions.rst:416 msgid "" @@ -439,6 +619,12 @@ msgid "" "`async def` function's body causes that coroutine function to be an " "asynchronous generator. For example::" msgstr "" +"La expresión yield se usa al definir una función :term:`generator` o una " +"función :term:`asynchronous generator` y, por lo tanto, solo se puede usar " +"en el cuerpo de una definición de función. Usar una expresión yield en el " +"cuerpo de una función hace que esa función sea un generador y usarla en el " +"cuerpo de una función :keyword:`async def` hace que la función de corrutina " +"sea un generador asincrónico. Por ejemplo::" #: ../Doc/reference/expressions.rst:429 msgid "" @@ -446,12 +632,18 @@ msgid "" "not permitted as part of the implicitly defined scopes used to implement " "comprehensions and generator expressions." msgstr "" +"Debido a sus efectos secundarios sobre el alcance contenedor, las " +"expresiones ``yield`` no están permitidas como parte de los alcances " +"implícitamente definidos usados para implementar comprensiones y expresiones " +"de generador." #: ../Doc/reference/expressions.rst:433 msgid "" "Yield expressions prohibited in the implicitly nested scopes used to " "implement comprehensions and generator expressions." msgstr "" +"Expresiones yield prohibidas en los ámbitos anidados implícitamente " +"utilizados para implementar comprensiones y expresiones de generador." #: ../Doc/reference/expressions.rst:437 msgid "" @@ -459,6 +651,9 @@ msgid "" "functions are described separately in section :ref:`asynchronous-generator-" "functions`." msgstr "" +"Las funciones generadoras son descritas a continuación, mientras que las " +"funciones generadoras asincrónicas son descritas separadamente en la " +"sección :ref:`asynchronous-generator-functions`." #: ../Doc/reference/expressions.rst:441 msgid "" @@ -479,6 +674,22 @@ msgid "" "`~generator.send` is used, then the result will be the value passed in to " "that method." msgstr "" +"Cuando una función generadora es invocada, retorna un iterador conocido como " +"un generador. Este generador controla la ejecución de la función generadora. " +"La ejecución empieza cuando uno de los métodos del generador es invocado. En " +"ese momento, la ejecución procede a la primera expresión yield, donde es " +"suspendida de nuevo, retornando el valor de :token:`expression_list` al " +"invocador del generador. Por suspendido, nos referimos a que se retiene todo " +"el estado local, incluyendo los enlaces actuales de variables locales, el " +"puntero de instrucción, la pila de evaluación interna y el estado de " +"cualquier manejo de excepción. Cuando la ejecución se reanuda al invocar uno " +"de los métodos del generador, la función puede proceder como si la expresión " +"yield fuera sólo otra invocación externa. El valor de la expresión yield " +"después de la reanudación depende del método que ha reanudado la ejecución. " +"Si se usa :meth:`~generator.__next__` (típicamente mediante un :keyword:" +"`for` o la función incorporada :func:`next`) entonces el resultado es :const:" +"`None`. De otra forma, si se usa :meth:`~generator.send`, entonces el " +"resultado será el valor pasado a ese método." #: ../Doc/reference/expressions.rst:460 msgid "" @@ -488,6 +699,11 @@ msgid "" "function cannot control where the execution should continue after it yields; " "the control is always transferred to the generator's caller." msgstr "" +"Todo este hace a las funciones generadores similar a las corrutinas; " +"producen múltiples veces, tienen más de un punto de entrada y su ejecución " +"puede ser suspendida. La única diferencia es que una función generadora no " +"puede controlar si la ejecución debe continuar después de producir; el " +"control siempre es transferido al invocador del generador." #: ../Doc/reference/expressions.rst:466 msgid "" @@ -497,6 +713,11 @@ msgid "" "meth:`~generator.close` method will be called, allowing any pending :keyword:" "`finally` clauses to execute." msgstr "" +"Las expresiones yield están permitidas en cualquier lugar en un constructo :" +"keyword:`try`. Si el generador no es reanudado antes de finalizar " +"(alcanzando un recuento de referencia cero o colectando basura), el método " +"generador-iterador :meth:`~generator.close` será invocado, permitiendo la " +"ejecución de cualquier cláusula :keyword:`finally` pendiente." #: ../Doc/reference/expressions.rst:475 msgid "" @@ -509,6 +730,15 @@ 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." #: ../Doc/reference/expressions.rst:484 msgid "" @@ -518,72 +748,94 @@ msgid "" "`StopIteration`, or automatically when the subiterator is a generator (by " "returning a value from the subgenerator)." msgstr "" +"Cuando el iterador subyacente está completo, el atributo :attr:" +"`~StopIteration.value` de la instancia :exc:`StopIteration` generada se " +"convierte en el valor de la expresión yield. Puede ser establecido " +"explícitamente al generar :exc:`StopIteration` o automáticamente cuando el " +"subiterador es un generador (retornando un valor del subgenerador)." #: ../Doc/reference/expressions.rst:490 msgid "Added ``yield from `` to delegate control flow to a subiterator." msgstr "" +"Añadido ``yield from `` para delegar el control de flujo a un " +"subiterador." #: ../Doc/reference/expressions.rst:493 msgid "" "The parentheses may be omitted when the yield expression is the sole " "expression on the right hand side of an assignment statement." msgstr "" +"Los paréntesis pueden ser omitidos cuando la expresión yield es la única " +"expresión en el lado derecho de una sentencia de asignación." #: ../Doc/reference/expressions.rst:499 msgid ":pep:`255` - Simple Generators" -msgstr "" +msgstr ":pep:`255` - Generadores Simples" #: ../Doc/reference/expressions.rst:499 msgid "" "The proposal for adding generators and the :keyword:`yield` statement to " "Python." msgstr "" +"La propuesta para añadir generadores y la sentencia :keyword:`yield` a " +"Python." #: ../Doc/reference/expressions.rst:503 msgid ":pep:`342` - Coroutines via Enhanced Generators" -msgstr "" +msgstr ":pep:`342` - Corrutinas mediante Generadores Mejorados" #: ../Doc/reference/expressions.rst:502 msgid "" "The proposal to enhance the API and syntax of generators, making them usable " "as simple coroutines." msgstr "" +"La propuesta para mejorar la API y la sintaxis de generadores, haciéndolos " +"utilizables como corrutinas simples." #: ../Doc/reference/expressions.rst:507 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" -msgstr "" +msgstr ":pep:`380` - Sintaxis para Delegar a un Subgenerador" #: ../Doc/reference/expressions.rst:506 msgid "" "The proposal to introduce the :token:`yield_from` syntax, making delegation " "to subgenerators easy." msgstr "" +"La propuesta para introducir la sintaxis :token:`yield_from`, facilitando la " +"delegación a subgeneradores." #: ../Doc/reference/expressions.rst:510 msgid ":pep:`525` - Asynchronous Generators" -msgstr "" +msgstr ":pep:`525`- Generadores Asincrónicos" #: ../Doc/reference/expressions.rst:510 msgid "" "The proposal that expanded on :pep:`492` by adding generator capabilities to " "coroutine functions." msgstr "" +"La propuesta que expandió :pep:`492` añadiendo capacidades de generador a " +"las funciones corrutina." #: ../Doc/reference/expressions.rst:517 msgid "Generator-iterator methods" -msgstr "" +msgstr "Métodos generador-iterador" #: ../Doc/reference/expressions.rst:519 msgid "" "This subsection describes the methods of a generator iterator. They can be " "used to control the execution of a generator function." msgstr "" +"Esta subsección describe los métodos de un generador iterador. Estos pueden " +"ser usados para controlar la ejecución de una función generadora." #: ../Doc/reference/expressions.rst:522 msgid "" "Note that calling any of the generator methods below when the generator is " "already executing raises a :exc:`ValueError` exception." msgstr "" +"Tenga en cuenta que invocar cualquiera de los métodos de generador " +"siguientes cuando el generador está todavía en ejecución genera una " +"excepción :exc:`ValueError`." #: ../Doc/reference/expressions.rst:530 msgid "" @@ -596,12 +848,22 @@ msgid "" "generator exits without yielding another value, a :exc:`StopIteration` " "exception is raised." msgstr "" +"Comienza la ejecución de una función generadora o la reanuda en la última " +"expresión yield ejecutada. Cuando una función generadora es reanudada con un " +"método :meth:`~generator.__next__`, la expresión yield actual siempre evalúa " +"a :const:`None`. La ejecución entonces continúa a la siguiente expresión " +"yield, donde el generador se suspende de nuevo y el valor de :token:" +"`expression_list` se retorna al invocador de :meth:`__next__`. Si el " +"generador termina sin producir otro valor, se genera una excepción :exc:" +"`StopIteration`." #: ../Doc/reference/expressions.rst:539 msgid "" "This method is normally called implicitly, e.g. by a :keyword:`for` loop, or " "by the built-in :func:`next` function." msgstr "" +"Este método es normalmente invocado implícitamente, por ejemplo, por un " +"bucle :keyword:`for` o por la función incorporada :func:`next`." #: ../Doc/reference/expressions.rst:545 msgid "" @@ -613,6 +875,13 @@ msgid "" "called with :const:`None` as the argument, because there is no yield " "expression that could receive the value." msgstr "" +"Reanuda la ejecución y \"envía\" un valor dentro de la función generadora. " +"El argumento *value* se convierte en el resultado de la expresión yield " +"actual. El método :meth:`send` retorna el siguiente valor producido por el " +"generador o genera :exc:`StopIteration` si el generador termina sin producir " +"otro valor. Cuando se ejecuta :meth:`send` para comenzar el generador, debe " +"ser invocado con :const:`None` como el argumento, debido a que no hay " +"expresión yield que pueda recibir el valor." #: ../Doc/reference/expressions.rst:556 msgid "" @@ -623,6 +892,12 @@ msgid "" "exception, or raises a different exception, then that exception propagates " "to the caller." msgstr "" +"Genera una excepción de tipo ``type`` en el punto donde el generador fue " +"pausado y retorna el siguiente valor producido por la función generadora. Si " +"el generador termina sin producir otro valor se genera una excepción :exc:" +"`StopIteration`. Si la función generadora no caza la excepción pasada o " +"genera una excepción diferente, entonces se propaga esa excepción al " +"invocador." #: ../Doc/reference/expressions.rst:567 msgid "" @@ -634,26 +909,37 @@ msgid "" "is propagated to the caller. :meth:`close` does nothing if the generator " "has already exited due to an exception or normal exit." msgstr "" +"Genera :exc:`GeneratorExit` en el punto donde la función generadora fue " +"pausada. Si la función generadora termina sin errores, está ya cerrada o " +"genera :exc:`GeneratorExit` (sin cazar la excepción), close retorna a su " +"invocador. Si el generador produce un valor, se genera un :exc:" +"`RuntimeError`. Si el generador genera cualquier otra excepción, es " +"propagado al invocador. :meth:`close` no hace nada si el generador ya fue " +"terminado debido a una excepción o una salida normal." #: ../Doc/reference/expressions.rst:578 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/reference/expressions.rst:580 msgid "" "Here is a simple example that demonstrates the behavior of generators and " "generator functions::" msgstr "" +"Aquí hay un ejemplo simple que demuestra el comportamiento de generadores y " +"funciones generadoras:" #: ../Doc/reference/expressions.rst:607 msgid "" "For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " "Python.\"" msgstr "" +"Para ejemplos usando ``yield from``, ver :ref:`pep-380` en \"Qué es nuevo en " +"Python.\"" #: ../Doc/reference/expressions.rst:613 msgid "Asynchronous generator functions" -msgstr "" +msgstr "Funciones generadoras asincrónicas" #: ../Doc/reference/expressions.rst:615 msgid "" @@ -661,6 +947,9 @@ msgid "" "keyword:`async def` further defines the function as an :term:`asynchronous " "generator` function." msgstr "" +"La presencia de una expresión yield en una función o método definido usando :" +"keyword:`async def` adicionalmente define la función como una función :term:" +"`asynchronous generator`." #: ../Doc/reference/expressions.rst:619 msgid "" @@ -671,6 +960,12 @@ msgid "" "coroutine function analogously to how a generator object would be used in a :" "keyword:`for` statement." msgstr "" +"Cuando se invoca una función generadora asincrónica, retorna un iterador " +"asincrónico conocido como un objeto generador asincrónico. Este objeto " +"entonces controla la ejecución de la función generadora. Un objeto generador " +"asincrónico se usa típicamente en una sentencia :keyword:`async for` en una " +"función corrutina análogamente a como sería usado un objeto generador en una " +"sentencia :keyword:`for`." #: ../Doc/reference/expressions.rst:626 msgid "" @@ -689,6 +984,21 @@ msgid "" "is :const:`None`. Otherwise, if :meth:`~agen.asend` is used, then the result " "will be the value passed in to that method." msgstr "" +"Invocar uno de los métodos de un generador asincrónico retorna un objeto :" +"term:`awaitable` y la ejecución comienza cuando este objeto es esperado. En " +"ese momento, la ejecución avanza a la primera expresión yield, donde es " +"suspendida de nuevo, retornando el valor de :token:`expression_list` a la " +"corrutina en espera. Como con un generador, la suspensión significa que todo " +"el estado local es retenido, incluyendo los enlaces actuales de variables " +"locales, el puntero de instrucción, la pila de evaluación interna y el " +"estado de cualquier manejo de excepción. Cuando se reanuda la ejecución al " +"espera al siguiente objeto retornado por los métodos del generador " +"asincrónico, la función puede avanzar exactamente igual que si la expresión " +"yield fuera otra invocación externa. El valor de la expresión yield después " +"de la reanudación dependen del método que ha resumido la ejecución. Si se " +"usa :meth:`~agen.__anext__` entonces el resultado es :const:`None`. De otra " +"forma, si se usa :meth:`~agen.asend`, entonces el resultado será el valor " +"pasado a ese método." #: ../Doc/reference/expressions.rst:642 msgid "" @@ -703,6 +1013,16 @@ msgid "" "the resulting coroutine object, thus allowing any pending :keyword:`!" "finally` clauses to execute." msgstr "" +"En una función generadora asincrónica, las expresiones yield están " +"permitidas en cualquier lugar de un constructo :keyword:`try`. Sin embargo, " +"si un generador asincrónico no es reanudado antes de finalizar (alcanzando " +"un contador de referencia cero o recogiendo basura), entonces una expresión " +"yield dentro de un constructo :keyword:`!try` podría fallar al ejecutar " +"cláusulas :keyword:`finally` pendientes. En este caso, es responsabilidad " +"del bucle de eventos o del planificador ejecutando el generador asincrónico " +"invocar el método :meth:`~agen.aclose` del generador-iterador asincrónico y " +"ejecutar el objeto corrutina resultante, permitiendo así la ejecución de " +"cualquier cláusula :keyword:`!finally` pendiente." #: ../Doc/reference/expressions.rst:653 msgid "" @@ -715,22 +1035,35 @@ msgid "" "*finalizer* method see the implementation of ``asyncio.Loop." "shutdown_asyncgens`` in :source:`Lib/asyncio/base_events.py`." msgstr "" +"Para encargarse de la finalización, un bucle de eventos debe definir una " +"función *finalizadora* la cual toma un generador-iterador asincrónico y " +"presumiblemente invoca :meth:`~agen.aclose` y ejecuta la corrutina. Este " +"*finalizador* puede ser registrado invocando :func:`sys.set_asyncgen_hooks`. " +"Cuando es iterada por primera vez, un generador-iterador asincrónico " +"almacenará el *finalizador* registrado para ser invocado en la finalización. " +"Para un ejemplo de referencia de un método *finalizador* vea la " +"implementación de ``asyncio.Loop.shutdown_asyncgens`` en :source:`Lib/" +"asyncio/base_events.py`." #: ../Doc/reference/expressions.rst:662 msgid "" "The expression ``yield from `` is a syntax error when used in an " "asynchronous generator function." msgstr "" +"La expresión ``yield from `` es un error de sintaxis cuando es usada " +"en una función generadora asincrónica." #: ../Doc/reference/expressions.rst:669 msgid "Asynchronous generator-iterator methods" -msgstr "" +msgstr "Métodos asincrónicos de generador-iterador" #: ../Doc/reference/expressions.rst:671 msgid "" "This subsection describes the methods of an asynchronous generator iterator, " "which are used to control the execution of a generator function." msgstr "" +"Esta subsección describe los métodos de un generador iterador asincrónico, " +"los cuales son usados para controlar la ejecución de una función generadora." #: ../Doc/reference/expressions.rst:679 msgid "" @@ -745,11 +1078,23 @@ msgid "" "another value, the awaitable instead raises a :exc:`StopAsyncIteration` " "exception, signalling that the asynchronous iteration has completed." msgstr "" +"Retorna un esperable el cual, cuando corre, comienza a ejecutar el generador " +"asincrónico o lo reanuda en la última expresión yield ejecutada. Cuando se " +"reanuda una función generadora asincrónica con un método :meth:`~agen." +"__anext__`, la expresión yield actual siempre evalúa a :const:`None` en el " +"esperable retornado, el cual cuando corre continuará a la siguiente " +"expresión yield. El valor de :token:`expression_list` de la expresión yield " +"es el valor de la excepción :exc:`StopIteration` generada por la corrutina " +"completa. Si el generador asincrónico termina sin producir otro valor, el " +"esperable en su lugar genera una excepción :exc:`StopAsyncIteration`, " +"señalando que la iteración asincrónica se ha completado." #: ../Doc/reference/expressions.rst:691 msgid "" "This method is normally called implicitly by a :keyword:`async for` loop." msgstr "" +"Este método es invocado normalmente de forma implícita por un bucle :keyword:" +"`async for`." #: ../Doc/reference/expressions.rst:696 msgid "" @@ -765,6 +1110,16 @@ msgid "" "`None` as the argument, because there is no yield expression that could " "receive the value." msgstr "" +"Retorna un esperable el cual cuando corre reanuda la ejecución del generador " +"asincrónico. Como el método :meth:`~generator.send()` para un generador, " +"este \"envía\" un valor a la función generadora asincrónica y el argumento " +"*value* se convierte en el resultado de la expresión yield actual. El " +"esperable retornado por el método :meth:`asend` retornará el siguiente valor " +"producido por el generador como el valor de la :exc:`StopIteration` generada " +"o genera :exc:`StopAsyncIteration` si el generador asincrónico termina sin " +"producir otro valor. Cuando se invoca :meth:`asend` para empezar el " +"generador asincrónico, debe ser invocado con :const:`None` como argumento, " +"porque no hay expresión yield que pueda recibir el valor." #: ../Doc/reference/expressions.rst:711 msgid "" @@ -777,6 +1132,14 @@ msgid "" "exception, or raises a different exception, then when the awaitable is run " "that exception propagates to the caller of the awaitable." msgstr "" +"Retorna un esperable que genera una excepción de tipo ``type`` en el punto " +"donde el generador asincrónico fue pausado y retorna el siguiente valor " +"producido por la función generadora como el valor de la excepción :exc:" +"`StopIteration` generada. Si el generador asincrónico termina sin producir " +"otro valor, el esperable genera una excepción :exc:`StopAsyncIteration`. Si " +"la función generadora no caza la excepción pasada o genera una excepción " +"diferente, entonces cuando se ejecuta el esperable esa excepción se propaga " +"al invocador del esperable." #: ../Doc/reference/expressions.rst:726 msgid "" @@ -793,24 +1156,39 @@ msgid "" "due to an exception or normal exit, then further calls to :meth:`aclose` " "will return an awaitable that does nothing." msgstr "" +"Retorna un esperable que cuando corre lanza un :exc:`GeneratorExit` a la " +"función generadora asincrónica en el punto donde fue pausada. Si la función " +"generadora asincrónica termina exitosamente, ya está cerrada o genera :exc:" +"`GeneratorExit` (sin cazar la excepción), el esperable retornado generará " +"una excepción :exc:`StopIteration`. Otros esperables retornados por " +"subsecuentes invocaciones al generador asincrónico generarán una excepción :" +"exc:`StopAsyncIteration`. Si el generador asincrónico produce un valor, el " +"esperable genera un :exc:`RuntimeError`. Si el generador asincrónico genera " +"cualquier otra excepción, esta es propagada al invocador del esperable. Si " +"el generador asincrónico ha terminado debido a una excepción o una " +"terminación normal, entonces futuras invocaciones a :meth:`aclose` " +"retornarán un esperable que no hace nada." #: ../Doc/reference/expressions.rst:742 msgid "Primaries" -msgstr "" +msgstr "Primarios" #: ../Doc/reference/expressions.rst:746 msgid "" "Primaries represent the most tightly bound operations of the language. Their " "syntax is:" msgstr "" +"Los primarios representan las operaciones más fuertemente ligadas al " +"lenguaje. Su sintaxis es:" #: ../Doc/reference/expressions.rst:756 msgid "Attribute references" -msgstr "" +msgstr "Referencias de atributos" #: ../Doc/reference/expressions.rst:762 msgid "An attribute reference is a primary followed by a period and a name:" msgstr "" +"Una referencia de atributo es un primario seguido de un punto y un nombre:" #: ../Doc/reference/expressions.rst:772 msgid "" @@ -822,16 +1200,26 @@ msgid "" "type and value of the object produced is determined by the object. Multiple " "evaluations of the same attribute reference may yield different objects." msgstr "" +"El primario debe evaluar a un objeto de un tipo que soporte referencias de " +"atributos, lo cual la mayoría de los objetos soportan. Luego se le pide a " +"este objeto que produzca el atributo cuyo nombre es el identificador. Esta " +"producción puede ser personalizada sobrescribiendo el método :meth:" +"`__getattr__`. Si este atributo no es esperable, se genera la excepción :exc:" +"`AtributeError`. De otra forma, el tipo y el valor del objeto producido es " +"determinado por el objeto. Múltiples evaluaciones la misma referencia de " +"atributo pueden producir diferentes objetos." #: ../Doc/reference/expressions.rst:784 msgid "Subscriptions" -msgstr "" +msgstr "Suscripciones" #: ../Doc/reference/expressions.rst:799 msgid "" "A subscription selects an item of a sequence (string, tuple or list) or " "mapping (dictionary) object:" msgstr "" +"Una subscripción selecciona un elemento de una objeto secuencia (cadena de " +"caracteres, tupla o lista) o mapeo (diccionario):" #: ../Doc/reference/expressions.rst:805 msgid "" @@ -839,12 +1227,17 @@ msgid "" "dictionaries for example). User-defined objects can support subscription by " "defining a :meth:`__getitem__` method." msgstr "" +"El primario debe evaluar a un objeto que soporta subscripción (listas o " +"diccionarios por ejemplo). Los objetos definidos por usuarios pueden " +"soportar subscripción definiendo un método :meth:`__getitem__`." #: ../Doc/reference/expressions.rst:809 msgid "" "For built-in objects, there are two types of objects that support " "subscription:" msgstr "" +"Para objetos incorporados, hay dos tipos de objetos que soportan " +"subscripción:" #: ../Doc/reference/expressions.rst:811 msgid "" @@ -853,12 +1246,18 @@ msgid "" "the value in the mapping that corresponds to that key. (The expression list " "is a tuple except if it has exactly one item.)" msgstr "" +"Si el primario es un mapeo, la expresión de lista debe evaluar a un objeto " +"cuyo valor es una de las claves del mapeo y la subscripción selecciona el " +"valor en el mapeo que corresponda a esa clave. (La expresión de lista es una " +"tupla excepto si tiene exactamente un elemento.)" #: ../Doc/reference/expressions.rst:816 msgid "" "If the primary is a sequence, the expression list must evaluate to an " "integer or a slice (as discussed in the following section)." msgstr "" +"Si el primario es una secuencia, la expresión de lista debe evaluar a un " +"entero o a un segmento (como es discutido en la siguiente sección)." #: ../Doc/reference/expressions.rst:819 msgid "" @@ -872,16 +1271,28 @@ msgid "" "slicing occurs in the object's :meth:`__getitem__` method, subclasses " "overriding this method will need to explicitly add that support." msgstr "" +"La sintaxis formal no hace ninguna provisión especial para índices negativos " +"en secuencias; sin embargo, todas las secuencias incorporadas proveen un " +"método :meth:`__getitem__` que interpreta índices negativos añadiendo al " +"largo de la secuencia al índice (así es que ``x[-1]`` selecciona el último " +"elemento de ``x``). El valor resultante debe ser un entero no negativo menor " +"que el número de elementos en la secuencia y la subscripción selecciona el " +"elemento cuyo índice es ese valor (contando desde cero). Ya que el soporte " +"para índices negativos y el troceado ocurre en el método del objeto :meth:" +"`__getitem__`, las subclases que sobrescriben este método necesitarán añadir " +"explícitamente ese soporte." #: ../Doc/reference/expressions.rst:833 msgid "" "A string's items are characters. A character is not a separate data type " "but a string of exactly one character." msgstr "" +"Los elementos de una cadena de caracteres son caracteres. Un caracter no es " +"un tipo de datos separado sino una cadena de exactamente un caracter." #: ../Doc/reference/expressions.rst:840 msgid "Slicings" -msgstr "" +msgstr "Segmentos" #: ../Doc/reference/expressions.rst:854 msgid "" @@ -889,6 +1300,10 @@ msgid "" "tuple or list). Slicings may be used as expressions or as targets in " "assignment or :keyword:`del` statements. The syntax for a slicing:" msgstr "" +"Un segmento selecciona un rango de elementos en una objeto secuencia (ej., " +"una cadena de caracteres, tupla o lista). Los segmentos pueden ser usados " +"como expresiones o como objetivos en asignaciones o sentencias :keyword:" +"`del`. La sintaxis para un segmento:" #: ../Doc/reference/expressions.rst:867 msgid "" @@ -899,6 +1314,13 @@ msgid "" "subscription takes priority over the interpretation as a slicing (this is " "the case if the slice list contains no proper slice)." msgstr "" +"Hay ambigüedad en la sintaxis formal aquí: todo lo que parezca una expresión " +"de lista también parece una segmento de lista, así que cualquier " +"subscripción puede ser interpretada como un segmento. En lugar de complicar " +"aún más la sintaxis, esta es desambiguada definiendo que en este caso la " +"interpretación como una subscripción toma prioridad sobre la interpretación " +"como un segmento (este es el caso si el segmento de lista no contiene un " +"segmento adecuado)." #: ../Doc/reference/expressions.rst:879 msgid "" @@ -914,22 +1336,38 @@ msgid "" "upper bound and stride, respectively, substituting ``None`` for missing " "expressions." msgstr "" +"Las semánticas para un segmento son las siguientes. El primario es indexado " +"(usando el mismo método :meth:`__getitem__` de una subscripción normal) con " +"una clave que se construye del segmento de lista, tal como sigue. Si el " +"segmento de lista contiene al menos una coma, la clave es una tupla que " +"contiene la conversión de los elementos del segmento; de otra forma, la " +"conversión del segmento de lista solitario es la clave. La conversión de un " +"elemento de segmento que es una expresión es esa expresión. La conversión de " +"un segmento apropiado es un objeto segmento (ver sección :ref:`types`) cuyos " +"atributos :attr:`~slice.start`, :attr:`~slice.stop` y :attr:`~slice.step` " +"son los valores de las expresiones dadas como límite inferior, límite " +"superior y paso, respectivamente, substituyendo ``None`` para las " +"expresiones faltantes." #: ../Doc/reference/expressions.rst:903 msgid "Calls" -msgstr "" +msgstr "Invocaciones" #: ../Doc/reference/expressions.rst:905 msgid "" "A call calls a callable object (e.g., a :term:`function`) with a possibly " "empty series of :term:`arguments `:" msgstr "" +"Una invocación invoca un objeto invocable (ej., una :term:`function`) con " +"una serie posiblemente vacía de :term:`argumentos `:" #: ../Doc/reference/expressions.rst:922 msgid "" "An optional trailing comma may be present after the positional and keyword " "arguments but does not affect the semantics." msgstr "" +"Una coma final opcional puede estar presente después de los argumentos " +"posicionales y de palabra clave pero no afecta a las semánticas." #: ../Doc/reference/expressions.rst:928 msgid "" @@ -940,6 +1378,13 @@ msgid "" "attempted. Please refer to section :ref:`function` for the syntax of " "formal :term:`parameter` lists." msgstr "" +"La clave primaria debe evaluar a un objeto invocable (funciones definidas " +"por el usuario, funciones incorporadas, métodos de objetos incorporados, " +"métodos de instancias de clases y todos los objetos que tienen un método :" +"meth:`__call__` son invocables). Todas las expresiones de argumento son " +"evaluadas antes de que la invocación sea intentada. Por favor, refiera a la " +"sección :ref:`function` para la sintaxis formal de listas de :term:" +"`parameter`." #: ../Doc/reference/expressions.rst:936 msgid "" @@ -962,6 +1407,26 @@ msgid "" "Otherwise, the list of filled slots is used as the argument list for the " "call." msgstr "" +"Si hay argumentos de palabra clave, primero se convierten en argumentos " +"posicionales, como se indica a continuación. En primer lugar, se crea una " +"lista de ranuras sin rellenar para los parámetros formales. Si hay N " +"argumentos posicionales, se colocan en las primeras N ranuras. A " +"continuación, para cada argumento de palabra clave, el identificador se " +"utiliza para determinar la ranura correspondiente (si el identificador es el " +"mismo que el primer nombre de parámetro formal, se utiliza la primera " +"ranura, etc.). Si la ranura ya está llena, se genera una excepción :exc:" +"`TypeError`. De lo contrario, el valor del argumento se coloca en la ranura, " +"llenándolo (incluso si la expresión es ``None``, esta llena la ranura). " +"Cuando se han procesado todos los argumentos, las ranuras que aún no han " +"sido rellenadas se rellenan con el valor predeterminado correspondiente de " +"la definición de función. (Los valores predeterminados son calculados una " +"vez, cuando se define la función; por lo tanto, un objeto mutable como una " +"lista o diccionario utilizado como valor predeterminado será compartido por " +"todas las llamadas que no especifican un valor de argumento para la ranura " +"correspondiente; esto normalmente debe ser evitado.) Si hay ranuras sin " +"rellenar para las que no se especifica ningún valor predeterminado, se " +"genera una excepción :exc:`TypeError`. De lo contrario, la lista de ranuras " +"rellenas se utiliza como la lista de argumentos para la llamada." #: ../Doc/reference/expressions.rst:956 msgid "" @@ -971,6 +1436,11 @@ msgid "" "CPython, this is the case for functions implemented in C that use :c:func:" "`PyArg_ParseTuple` to parse their arguments." msgstr "" +"Una implementación puede proveer funciones incorporadas cuyos argumentos " +"posicionales no tienen nombres, incluso si son \"nombrados\" a efectos de " +"documentación y los cuales por consiguiente no pueden ser suplidos por " +"palabras clave. En CPython, este es el caso para funciones implementadas en " +"C que usan :c:func:`PyArg_ParseTuple` para analizar sus argumentos." #: ../Doc/reference/expressions.rst:962 msgid "" @@ -980,6 +1450,11 @@ msgid "" "parameter receives a tuple containing the excess positional arguments (or an " "empty tuple if there were no excess positional arguments)." msgstr "" +"Si hay más argumentos posicionales que ranuras formales de parámetros, se " +"genera una excepción :exc:`TypeError`, a no ser que un parámetro formal " +"usando la sintaxis ``*identifier`` se encuentre presente; en este caso, ese " +"parámetro formal recibe una tupla conteniendo los argumentos posicionales " +"sobrantes (o una tupla vacía su no hay argumentos posicionales sobrantes)." #: ../Doc/reference/expressions.rst:968 msgid "" @@ -990,6 +1465,13 @@ msgid "" "keywords as keys and the argument values as corresponding values), or a " "(new) empty dictionary if there were no excess keyword arguments." msgstr "" +"Si un argumento de palabra clave no corresponde a un nombre de parámetro " +"formal, se genera una excepción :exc:`TypeError`, a no ser que un parámetro " +"formal usando la sintaxis ``**identifier`` esté presente; en este caso, ese " +"parámetro formal recibe un diccionario que contiene los argumentos de " +"palabra clave sobrantes (usando las palabras clave como claves y los valores " +"de argumento como sus valores correspondientes), o un (nuevo) diccionario " +"vacío si no hay argumentos de palabra clave sobrantes." #: ../Doc/reference/expressions.rst:979 msgid "" @@ -1000,6 +1482,12 @@ msgid "" "this is equivalent to a call with M+4 positional arguments *x1*, *x2*, " "*y1*, ..., *yM*, *x3*, *x4*." msgstr "" +"Si la sintaxis ``*expression`` aparece en la invocación de función, " +"``expression`` debe evaluar a un :term:`iterable`. Elementos de esos " +"iterables son tratados como si fueran argumentos posicionales adicionales. " +"Para la invocación ``f(x1, x2, *y, x3, x4)``, si *y* evalúa a una secuencia " +"*y1*, ..., *yM*, equivale a una invocación con M+4 argumentos posicionales " +"*x1*, *x2*, *y1*, ..., *yM*, *x3*, *x4*." #: ../Doc/reference/expressions.rst:986 msgid "" @@ -1007,12 +1495,19 @@ msgid "" "*after* explicit keyword arguments, it is processed *before* the keyword " "arguments (and any ``**expression`` arguments -- see below). So::" msgstr "" +"Una consecuencia de esto es que aunque la sintaxis ``*expression`` puede " +"aparecer *después* de argumentos de palabra clave explícitos, es procesada " +"*antes* de los argumentos de palabra clave (y cualquiera de los argumentos " +"``*expression`` -- ver abajo). Así que::" #: ../Doc/reference/expressions.rst:1002 msgid "" "It is unusual for both keyword arguments and the ``*expression`` syntax to " "be used in the same call, so in practice this confusion does not arise." msgstr "" +"Es inusual usar en la misma invocación tanto argumentos de palabra clave " +"como la sintaxis ``*expression``, así que en la práctica no surge esta " +"confusión." #: ../Doc/reference/expressions.rst:1008 msgid "" @@ -1022,12 +1517,20 @@ msgid "" "explicit keyword argument, or from another unpacking), a :exc:`TypeError` " "exception is raised." msgstr "" +"Si la sintaxis ``*expression`` aparece en la invocación de función, " +"``expression`` debe evaluar a un :term:`mapping`, los contenidos del mismo " +"son tratados como argumentos de palabra clave adicionales. Si una palabra " +"clave está ya presente (como un argumento de palabra clave explícito o desde " +"otro desempaquetado), se genera una excepción :exc:`TypeError`." #: ../Doc/reference/expressions.rst:1014 msgid "" "Formal parameters using the syntax ``*identifier`` or ``**identifier`` " "cannot be used as positional argument slots or as keyword argument names." msgstr "" +"No pueden ser usados parámetros formales usando la sintaxis ``*identifier`` " +"o ``**identifier`` como ranuras de argumentos posicionales o como nombres de " +"argumentos de palabra clave." #: ../Doc/reference/expressions.rst:1017 msgid "" @@ -1035,6 +1538,11 @@ msgid "" "arguments may follow iterable unpackings (``*``), and keyword arguments may " "follow dictionary unpackings (``**``). Originally proposed by :pep:`448`." msgstr "" +"Las invocaciones de función aceptan cualquier número de desempaquetados " +"``*`` y ``**``, los argumentos posicionales pueden seguir a desempaquetados " +"de iterable (``*``) y los argumentos de palabra clave pueden seguir a " +"desempaquetados de diccionario (``*``). Originalmente propuesto por :pep:" +"`448`." #: ../Doc/reference/expressions.rst:1023 msgid "" @@ -1042,14 +1550,17 @@ msgid "" "exception. How this value is computed depends on the type of the callable " "object." msgstr "" +"Una invocación siempre retorna algún valor, posiblemente ``None``, a no ser " +"que genere una excepción. Cómo se calcula este valor depende del tipo del " +"objeto invocable." #: ../Doc/reference/expressions.rst:1027 msgid "If it is---" -msgstr "" +msgstr "Si es---" #: ../Doc/reference/expressions.rst:1040 msgid "a user-defined function:" -msgstr "" +msgstr "una función definida por el usuario:" #: ../Doc/reference/expressions.rst:1036 msgid "" @@ -1059,28 +1570,35 @@ msgid "" "block executes a :keyword:`return` statement, this specifies the return " "value of the function call." msgstr "" +"Se ejecuta el bloque de código para la función, pasándole la lista de " +"argumentos. Lo primero que hace el bloque de código es enlazar los " +"parámetros formales a los argumentos; esto es descrito en la sección :ref:" +"`function`. Cuando el bloque de código ejecuta una sentencia :keyword:" +"`return`, esto especifica el valor de retorno de la invocación de función." #: ../Doc/reference/expressions.rst:1054 msgid "a built-in function or method:" -msgstr "" +msgstr "una función o método incorporado:" #: ../Doc/reference/expressions.rst:1053 msgid "" "The result is up to the interpreter; see :ref:`built-in-funcs` for the " "descriptions of built-in functions and methods." msgstr "" +"El resultado depende del intérprete; ver :ref:`built-in-funcs` para las " +"descripciones de funciones y métodos incorporados." #: ../Doc/reference/expressions.rst:1061 msgid "a class object:" -msgstr "" +msgstr "un objeto de clase:" #: ../Doc/reference/expressions.rst:1061 msgid "A new instance of that class is returned." -msgstr "" +msgstr "Se retorna una nueva instancia de esa clase." #: ../Doc/reference/expressions.rst:1071 msgid "a class instance method:" -msgstr "" +msgstr "un método de una instancia de clase:" #: ../Doc/reference/expressions.rst:1069 msgid "" @@ -1088,36 +1606,46 @@ msgid "" "that is one longer than the argument list of the call: the instance becomes " "the first argument." msgstr "" +"Se invoca la función definida por el usuario correspondiente, con una lista " +"de argumentos con un largo uno mayor que la lista de argumentos de la " +"invocación: la instancia se convierte en el primer argumento." #: ../Doc/reference/expressions.rst:1080 msgid "a class instance:" -msgstr "" +msgstr "una instancia de clase:" #: ../Doc/reference/expressions.rst:1078 msgid "" "The class must define a :meth:`__call__` method; the effect is then the same " "as if that method was called." msgstr "" +"La clase debe definir un método :meth:`__call__`; el efecto es entonces el " +"mismo que si ese método fuera invocado." #: ../Doc/reference/expressions.rst:1086 ../Doc/reference/expressions.rst:1834 msgid "Await expression" -msgstr "" +msgstr "Expresión await" #: ../Doc/reference/expressions.rst:1088 msgid "" "Suspend the execution of :term:`coroutine` on an :term:`awaitable` object. " "Can only be used inside a :term:`coroutine function`." msgstr "" +"Suspende la ejecución de :term:`coroutine` o un objeto :term:`awaitable`. " +"Puede ser usado sólo dentro de una :term:`coroutine function`." #: ../Doc/reference/expressions.rst:1100 msgid "The power operator" -msgstr "" +msgstr "El operador de potencia" #: ../Doc/reference/expressions.rst:1106 msgid "" "The power operator binds more tightly than unary operators on its left; it " "binds less tightly than unary operators on its right. The syntax is:" msgstr "" +"El operador de potencia se vincula más estrechamente que los operadores " +"unarios a su izquierda; se vincula con menos fuerza que los operadores " +"unarios a su derecha. La sintaxis es:" #: ../Doc/reference/expressions.rst:1112 msgid "" @@ -1125,6 +1653,10 @@ msgid "" "operators are evaluated from right to left (this does not constrain the " "evaluation order for the operands): ``-1**2`` results in ``-1``." msgstr "" +"Por lo tanto, en una secuencia sin paréntesis de operadores unarios y de " +"potencia, los operadores son evaluados desde la derecha a la izquierda (este " +"no se constriñe al orden de evaluación para los operandos): ``-1**2`` " +"resulta en ``-1``." #: ../Doc/reference/expressions.rst:1116 msgid "" @@ -1133,6 +1665,11 @@ msgid "" "to the power of its right argument. The numeric arguments are first " "converted to a common type, and the result is of that type." msgstr "" +"El operador de potencia tiene las mismas semánticas que la función " +"incorporada :func:`pow` cuando se invoca con dos argumentos: este produce su " +"argumento de la izquierda elevado a la potencia de su argumento de la " +"derecha. Los argumentos numéricos se convierten primero en un tipo común y " +"el resultado es de ese tipo." #: ../Doc/reference/expressions.rst:1121 msgid "" @@ -1141,6 +1678,10 @@ msgid "" "float and a float result is delivered. For example, ``10**2`` returns " "``100``, but ``10**-2`` returns ``0.01``." msgstr "" +"Para operandos int, el resultado tiene el mismo tipo que los operandos a no " +"ser que el segundo argumento sea negativo; en ese caso, todos los argumentos " +"son convertidos a float y se entrega un resultado float. Por ejemplo, " +"``10**2`` retorna ``100``, pero ``10**-2`` retorna ``0.01``." #: ../Doc/reference/expressions.rst:1126 msgid "" @@ -1148,23 +1689,32 @@ msgid "" "Raising a negative number to a fractional power results in a :class:" "`complex` number. (In earlier versions it raised a :exc:`ValueError`.)" msgstr "" +"Elevar ``0.0`` a una potencia negativa resulta en un :exc:" +"`ZeroDivisionError`. Elevar un número negativo a una potencia fraccional " +"resulta en un número :class:`complex`. (En versiones anteriores se genera " +"un :exc:`ValueError`.)" #: ../Doc/reference/expressions.rst:1134 msgid "Unary arithmetic and bitwise operations" -msgstr "" +msgstr "Aritmética unaria y operaciones bit a bit" #: ../Doc/reference/expressions.rst:1140 msgid "All unary arithmetic and bitwise operations have the same priority:" msgstr "" +"Toda la aritmética unaria y las operaciones bit a bit tienen la misma " +"prioridad:" #: ../Doc/reference/expressions.rst:1151 msgid "" "The unary ``-`` (minus) operator yields the negation of its numeric argument." msgstr "" +"El operador unario ``-`` (menos) produce la negación de su argumento " +"numérico." #: ../Doc/reference/expressions.rst:1158 msgid "The unary ``+`` (plus) operator yields its numeric argument unchanged." msgstr "" +"El operador unario ``+`` (más) produce su argumento numérico sin cambios." #: ../Doc/reference/expressions.rst:1164 msgid "" @@ -1172,16 +1722,21 @@ msgid "" "integer argument. The bitwise inversion of ``x`` is defined as ``-(x+1)``. " "It only applies to integral numbers." msgstr "" +"El operador unario ``~`` (invertir) produce la inversión bit a bit de su " +"argumento entero. La inversión bit a bit de ``x`` se define como ``-(x+1)``. " +"Sólo aplica a números integrales." #: ../Doc/reference/expressions.rst:1170 msgid "" "In all three cases, if the argument does not have the proper type, a :exc:" "`TypeError` exception is raised." msgstr "" +"En todos los tres casos, si el argumento no tiene el tipo apropiado, se " +"genera una excepción :exc:`TypeError`." #: ../Doc/reference/expressions.rst:1177 msgid "Binary arithmetic operations" -msgstr "" +msgstr "Operaciones aritméticas binarias" #: ../Doc/reference/expressions.rst:1181 msgid "" @@ -1190,6 +1745,10 @@ msgid "" "Apart from the power operator, there are only two levels, one for " "multiplicative operators and one for additive operators:" msgstr "" +"Las operaciones aritméticas binarias tienen los niveles convencionales de " +"prioridad. Tenga en cuenta que algunas de esas operaciones también aplican a " +"ciertos tipos no numéricos. Aparte del operador de potencia, hay sólo dos " +"niveles, uno para operadores multiplicativos y uno para aditivos:" #: ../Doc/reference/expressions.rst:1196 msgid "" @@ -1200,12 +1759,20 @@ msgid "" "case, sequence repetition is performed; a negative repetition factor yields " "an empty sequence." msgstr "" +"El operador ``*`` (multiplicación) produce el producto de sus argumentos. " +"Los argumentos pueden ser ambos números, o un argumento debe ser un entero y " +"el otro debe ser una secuencia. En el primer caso, los números se convierten " +"a un tipo común y luego son multiplicados. En el segundo caso, se realiza " +"una repetición de secuencia; un factor de repetición negativo produce una " +"secuencia vacía." #: ../Doc/reference/expressions.rst:1206 msgid "" "The ``@`` (at) operator is intended to be used for matrix multiplication. " "No builtin Python types implement this operator." msgstr "" +"El operador ``@`` (en) está destinado a ser usado para multiplicación de " +"matrices. Ningún tipo incorporado en Python implementa este operador." #: ../Doc/reference/expressions.rst:1217 msgid "" @@ -1216,6 +1783,13 @@ msgid "" "with the 'floor' function applied to the result. Division by zero raises " "the :exc:`ZeroDivisionError` exception." msgstr "" +"Los operadores ``/`` (división) y ``//`` (división de redondeo) producen el " +"cociente de sus argumentos. Los argumentos numéricos son primero convertidos " +"a un tipo común. La división de enteros producen un número de punto " +"flotante, mientras que la división redondeada de enteros resulta en un " +"entero; el resultado es aquel de una división matemática con la función " +"'floor' aplicada al resultado. Dividir entre 0 genera la excepción :exc:" +"`ZeroDivisionError`." #: ../Doc/reference/expressions.rst:1228 msgid "" @@ -1228,6 +1802,14 @@ msgid "" "zero); the absolute value of the result is strictly smaller than the " "absolute value of the second operand [#]_." msgstr "" +"El operador ``%`` (módulo) produce el resto de la división del primer " +"argumento entre el segundo. Los argumentos numéricos son primero convertidos " +"a un tipo común. Un argumento a la derecha cero genera la excepción :exc:" +"`ZeroDivisionError`. Los argumentos pueden ser números de punto flotante, " +"ej., ``3.14%0.7`` es igual a ``0.34`` (ya que ``3.14`` es igual a ``4*0.7 + " +"0.34``.) El operador módulo siempre produce un resultado con el mismo signo " +"que su segundo operando (o cero); el valor absoluto del resultado es " +"estrictamente más pequeño que el valor absoluto del segundo operando [#]_." #: ../Doc/reference/expressions.rst:1237 msgid "" @@ -1236,6 +1818,10 @@ msgid "" "connected with the built-in function :func:`divmod`: ``divmod(x, y) == (x//" "y, x%y)``. [#]_." msgstr "" +"Los operadores de división de redondeo y módulo están conectados por la " +"siguiente identidad: ``x == (x//y)*y + (x%y)``. La división de redondeo y el " +"módulo también están conectadas por la función incorporada :func:`divmod`: " +"``divmod(x, y) == (x//y, x%y)``. [#]_." #: ../Doc/reference/expressions.rst:1242 msgid "" @@ -1245,6 +1831,11 @@ msgid "" "is described in the Python Library Reference, section :ref:`old-string-" "formatting`." msgstr "" +"Adicionalmente a realizar la operación módulo en números, el operador ``%`` " +"también está sobrecargado por objetos cadena de caracteres para realizar " +"formateo de cadenas al estilo antiguo (también conocido como interpolación). " +"La sintaxis para el formateo de cadenas está descrita en la Referencia de la " +"Biblioteca de Python, sección :ref:`old-string-formatting`." #: ../Doc/reference/expressions.rst:1247 msgid "" @@ -1252,6 +1843,9 @@ msgid "" "function are not defined for complex numbers. Instead, convert to a " "floating point number using the :func:`abs` function if appropriate." msgstr "" +"El operador de división de redondeo, el operador módulo y la función :func:" +"`divmod` no están definidas para números complejos. En su lugar, convierta a " +"un número de punto flotante usando la función :func:`abs` si es apropiado." #: ../Doc/reference/expressions.rst:1256 msgid "" @@ -1260,63 +1854,85 @@ msgid "" "type. In the former case, the numbers are converted to a common type and " "then added together. In the latter case, the sequences are concatenated." msgstr "" +"El operador ``+`` (adición) produce la suma de sus argumentos. Los " +"argumentos deben ser ambos números o ambos secuencias del mismo tipo. En el " +"primer caso, los números son convertidos a un tipo común y luego sumados. En " +"el segundo caso, las secuencias son concatenadas." #: ../Doc/reference/expressions.rst:1266 msgid "" "The ``-`` (subtraction) operator yields the difference of its arguments. " "The numeric arguments are first converted to a common type." msgstr "" +"El operador ``-`` (resta) produce la diferencia de sus argumentos. Los " +"argumentos numéricos son primero convertidos a un tipo común." #: ../Doc/reference/expressions.rst:1273 msgid "Shifting operations" -msgstr "" +msgstr "Operaciones de desplazamiento" #: ../Doc/reference/expressions.rst:1280 msgid "" "The shifting operations have lower priority than the arithmetic operations:" msgstr "" +"Las operaciones de desplazamiento tienen menos prioridad que las operaciones " +"aritméticas:" #: ../Doc/reference/expressions.rst:1285 msgid "" "These operators accept integers as arguments. They shift the first argument " "to the left or right by the number of bits given by the second argument." msgstr "" +"Estos operadores aceptan enteros como argumentos. Ellos desplazan el primer " +"argumento a la izquierda o derecha el número de dígitos dados por el segundo " +"argumento." #: ../Doc/reference/expressions.rst:1290 msgid "" "A right shift by *n* bits is defined as floor division by ``pow(2,n)``. A " "left shift by *n* bits is defined as multiplication with ``pow(2,n)``." msgstr "" +"Un desplazamiento de *n* bits hacia la derecha está definido como una " +"división de redondeo entre ``pow(2,n)``. Un desplazamiento de *n* bits hacia " +"la izquierda está definido como una multiplicación por ``pow(2,n)``." #: ../Doc/reference/expressions.rst:1297 msgid "Binary bitwise operations" -msgstr "" +msgstr "Operaciones bit a bit binarias" #: ../Doc/reference/expressions.rst:1301 msgid "Each of the three bitwise operations has a different priority level:" msgstr "" +"Cada una de las tres operaciones de bits binarias tienen diferente nivel de " +"prioridad:" #: ../Doc/reference/expressions.rst:1312 msgid "" "The ``&`` operator yields the bitwise AND of its arguments, which must be " "integers." msgstr "" +"El operador ``&`` produce el AND bit a bit de sus argumentos, los cuales " +"deben ser enteros." #: ../Doc/reference/expressions.rst:1320 msgid "" "The ``^`` operator yields the bitwise XOR (exclusive OR) of its arguments, " "which must be integers." msgstr "" +"El operador ``^`` produce el XOR (OR exclusivo) bit a bit de sus argumentos, " +"los cuales deben ser enteros." #: ../Doc/reference/expressions.rst:1328 msgid "" "The ``|`` operator yields the bitwise (inclusive) OR of its arguments, which " "must be integers." msgstr "" +"El operador ``|`` produce el OR (inclusivo) bit a bit de sus argumentos, los " +"cuales deben ser enteros." #: ../Doc/reference/expressions.rst:1335 msgid "Comparisons" -msgstr "" +msgstr "Comparaciones" #: ../Doc/reference/expressions.rst:1347 msgid "" @@ -1325,10 +1941,14 @@ msgid "" "unlike C, expressions like ``a < b < c`` have the interpretation that is " "conventional in mathematics:" msgstr "" +"A diferencia de C, todas las operaciones de comparación en Python tienen la " +"misma prioridad, la cual es menor que la de cualquier operación aritmética, " +"de desplazamiento o bit a bit. También, a diferencia de C, expresiones como " +"``a < b < c`` tienen la interpretación convencional en matemáticas:" #: ../Doc/reference/expressions.rst:1357 msgid "Comparisons yield boolean values: ``True`` or ``False``." -msgstr "" +msgstr "Comparaciones producen valores booleanos: `` True`` o ``False``." #: ../Doc/reference/expressions.rst:1361 msgid "" @@ -1337,6 +1957,10 @@ msgid "" "both cases ``z`` is not evaluated at all when ``x < y`` is found to be " "false)." msgstr "" +"Las comparaciones pueden ser encadenadas arbitrariamente, ej., ``x < y <= " +"z`` es equivalente a ``x < y and y <= z``, excepto que ``y`` es evaluado " +"sólo una vez (pero en ambos casos ``z`` no es evaluado para nada cuando ``x " +"< y`` se encuentra que es falso)." #: ../Doc/reference/expressions.rst:1365 msgid "" @@ -1345,6 +1969,10 @@ msgid "" "z`` is equivalent to ``a op1 b and b op2 c and ... y opN z``, except that " "each expression is evaluated at most once." msgstr "" +"Formalmente, si *a*, *b*, *c*, ..., *y*, *z* son expresiones y *op1*, " +"*op2*, ..., *opN* son operadores de comparación, entonces ``a op1 b op2 " +"c ... y opN z`` es equivalente a ``a op1 b and b op2 c and ... y opN z``, " +"excepto que cada expresión es evaluada como mucho una vez." #: ../Doc/reference/expressions.rst:1370 msgid "" @@ -1352,16 +1980,21 @@ msgid "" "and *c*, so that, e.g., ``x < y > z`` is perfectly legal (though perhaps not " "pretty)." msgstr "" +"Tenga en cuenta que ``a op1 b op2 c`` no implica ningún tipo de comparación " +"entre *a* y *c*, por lo que, por ejemplo, ``x < y > z`` es perfectamente " +"legal (aunque quizás no es bonito)." #: ../Doc/reference/expressions.rst:1375 msgid "Value comparisons" -msgstr "" +msgstr "Comparaciones de valor" #: ../Doc/reference/expressions.rst:1377 msgid "" "The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " "values of two objects. The objects do not need to have the same type." msgstr "" +"Los operadores ``<``, ``>``, ``==``, ``>=``, ``<=``, y ``!=`` comparan los " +"valores de dos objetos. Los objetos no necesitan ser del mismo tipo." #: ../Doc/reference/expressions.rst:1380 msgid "" @@ -1374,6 +2007,15 @@ msgid "" "object is. One can think of them as defining the value of an object " "indirectly, by means of their comparison implementation." msgstr "" +"El capítulo :ref:`objects` afirma que los objetos tienen un valor (en " +"adición al tipo e identidad). El valor de un objeto es una noción bastante " +"abstracta en Python: Por ejemplo, no existe un método de acceso canónico " +"para el valor de un objeto. Además, no se requiere que el valor de un objeto " +"deba ser construido de una forma particular, ej. compuesto de todos sus " +"atributos de datos. Los operadores de comparación implementan una noción " +"particular de lo que es el valor de un objeto. Uno puede pensar en ellos " +"definiendo el valor de un objeto indirectamente, mediante su implementación " +"de comparación." #: ../Doc/reference/expressions.rst:1389 msgid "" @@ -1382,6 +2024,11 @@ msgid "" "customize their comparison behavior by implementing :dfn:`rich comparison " "methods` like :meth:`__lt__`, described in :ref:`customization`." msgstr "" +"Debido a que todos los tipos son subtipos (directos o indirectos) de :class:" +"`object`, ellos heredan el comportamiento de comparación predeterminado " +"desde :class:`object`. Los tipos pueden personalizar su comportamiento de " +"comparación implementando :dfn:`rich comparison methods` como :meth:" +"`__lt__`, descritos en :ref:`customization`." #: ../Doc/reference/expressions.rst:1395 msgid "" @@ -1392,6 +2039,12 @@ msgid "" "default behavior is the desire that all objects should be reflexive (i.e. " "``x is y`` implies ``x == y``)." msgstr "" +"El comportamiento predeterminado para comparación de igualdad (``==`` y ``!" +"=``) se basa en la identidad de los objetos. Por lo tanto, la comparación de " +"instancias con la misma identidad resulta en igualdad, y la comparación de " +"igualdad de instancias con diferentes entidades resulta en desigualdad. Una " +"motivación para este comportamiento predeterminado es el deseo de que todos " +"los objetos sean reflexivos (ej. ``x is y`` implica ``x == y``)." #: ../Doc/reference/expressions.rst:1402 msgid "" @@ -1399,6 +2052,10 @@ msgid "" "provided; an attempt raises :exc:`TypeError`. A motivation for this default " "behavior is the lack of a similar invariant as for equality." msgstr "" +"No se provee un orden de comparación por defecto (``<``, ``>``, ``<=``, and " +"``>=``); un intento genera :exc:`TypeError`. Una motivación para este " +"comportamiento predeterminado es la falta de una invariante similar como " +"para la igualdad." #: ../Doc/reference/expressions.rst:1406 msgid "" @@ -1408,12 +2065,20 @@ msgid "" "equality. Such types will need to customize their comparison behavior, and " "in fact, a number of built-in types have done that." msgstr "" +"El comportamiento de la comparación de igualdad predeterminado, que " +"instancias con diferentes identidades siempre son desiguales, puede estar en " +"contraste a que los tipos que necesitarán que tengan una definición sensata " +"de valor de objeto e igualdad basada en el valor. Tales tipos necesitarán " +"personalizar su comportamiento de comparación y, de hecho, un número de " +"tipos incorporados lo han realizado." #: ../Doc/reference/expressions.rst:1412 msgid "" "The following list describes the comparison behavior of the most important " "built-in types." msgstr "" +"La siguiente lista describe el comportamiento de comparación de los tipos " +"incorporados más importantes." #: ../Doc/reference/expressions.rst:1415 msgid "" @@ -1424,6 +2089,12 @@ msgid "" "involved, they compare mathematically (algorithmically) correct without loss " "of precision." msgstr "" +"Números de tipos numéricos incorporadas (:ref:`typesnumeric`) y tipos de la " +"biblioteca estándar :class:`fractions.Fraction` y :class:`decimal.Decimal` " +"pueden ser comparados consigo mismos y entre sus tipos, con la restricción " +"de que números complejos no soportan orden de comparación. Dentro de los " +"límites de los tipos involucrados, se comparan matemáticamente " +"(algorítmicamente) correctos sin pérdida de precisión." #: ../Doc/reference/expressions.rst:1422 msgid "" @@ -1434,6 +2105,12 @@ msgid "" "3`` and ``x == x`` are all false, while ``x != x`` is true. This behavior " "is compliant with IEEE 754." msgstr "" +"Los valores no-un-número ``float('NaN')`` y ``decimal.Decimal('NaN')`` son " +"especiales. Cualquier comparación ordenada de un número a un no-un-número es " +"falsa. Una implicación contraintuitiva es que los valores no-un-número son " +"son iguales a sí mismos. Por ejemplo, si ``x = float('NaN')``, ``3 < x``, " +"``x < 3`` y ``x == x`` son todos falso, mientras ``x != x`` es verdadero. " +"Este comportamiento cumple con IEEE 754." #: ../Doc/reference/expressions.rst:1429 msgid "" @@ -1441,6 +2118,9 @@ msgid "" "comparisons for singletons should always be done with ``is`` or ``is not``, " "never the equality operators." msgstr "" +"``None`` y ``NotImplemented`` son singletons. :PEP:`8` avisa que las " +"comparaciones para singletons deben ser realizadas siempre con ``is`` o ``is " +"not``, nunca los operadores de igualdad." #: ../Doc/reference/expressions.rst:1433 msgid "" @@ -1448,6 +2128,9 @@ msgid "" "compared within and across their types. They compare lexicographically " "using the numeric values of their elements." msgstr "" +"Las secuencias binarias (instancias de :class:`bytes` o :class:`bytearray`) " +"pueden ser comparadas entre sí y con otros tipos. Ellas comparan " +"lexicográficamente utilizando los valores numéricos de sus elementos." #: ../Doc/reference/expressions.rst:1437 msgid "" @@ -1455,10 +2138,15 @@ msgid "" "numerical Unicode code points (the result of the built-in function :func:" "`ord`) of their characters. [#]_" msgstr "" +"Las cadenas de caracteres (instancias de :class:`str`) comparan " +"lexicográficamente usando los puntos de códigos numéricos Unicode (el " +"resultado de la función incorporada :func:`ord`) o sus caracteres. [#]_" #: ../Doc/reference/expressions.rst:1441 msgid "Strings and binary sequences cannot be directly compared." msgstr "" +"Las cadenas de caracteres y las secuencias binarias no pueden ser comparadas " +"directamente." #: ../Doc/reference/expressions.rst:1443 msgid "" @@ -1468,6 +2156,11 @@ msgid "" "types results in inequality, and ordering comparison across these types " "raises :exc:`TypeError`." msgstr "" +"Las secuencias (instancias de :class:`tuple`, :class:`list`, o :class:" +"`range`) pueden ser comparadas sólo entre cada uno de sus tipos, con la " +"restricción de que los rangos no soportan comparación de orden. Comparación " +"de igualdad entre esos tipos resulta en desigualdad y la comparación de " +"orden entre esos tipos genera :exc:`TypeError`." #: ../Doc/reference/expressions.rst:1449 msgid "" @@ -1476,11 +2169,18 @@ msgid "" "equal to themselves. That lets them bypass equality tests for identical " "objects to improve performance and to maintain their internal invariants." msgstr "" +"Las secuencias comparan lexicográficamente usando comparación de sus " +"correspondientes elementos. Los contenedores incorporados asumen que los " +"objetos idénticos son iguales a sí mismos. Eso les permite omitir las " +"pruebas de igualdad para objetos idénticos para mejorar el rendimiento y " +"mantener sus invariantes internos." #: ../Doc/reference/expressions.rst:1454 msgid "" "Lexicographical comparison between built-in collections works as follows:" msgstr "" +"La comparación lexicográfica entre colecciones incorporadas funciona de la " +"siguiente forma:" #: ../Doc/reference/expressions.rst:1456 msgid "" @@ -1488,6 +2188,10 @@ msgid "" "the same length, and each pair of corresponding elements must compare equal " "(for example, ``[1,2] == (1,2)`` is false because the type is not the same)." msgstr "" +"Para que dos colecciones sean comparadas iguales, ellas deben ser del mismo " +"tipo, tener el mismo largo, y cada para de elementos correspondientes deben " +"comparar iguales (por ejemplo, ``[1,2] == (1,2)`` es falso debido a que el " +"tipo no es el mismo)." #: ../Doc/reference/expressions.rst:1461 msgid "" @@ -1497,6 +2201,11 @@ msgid "" "shorter collection is ordered first (for example, ``[1,2] < [1,2,3]`` is " "true)." msgstr "" +"Las colecciones que soportan comparación de orden son ordenadas igual que " +"sus primeros elementos desiguales (por ejemplo, ``[1,2,x] <= [1,2,y]`` tiene " +"el mismo valor que ``x <= y``). Si un elemento correspondiente no existe, la " +"colección más corta es ordenada primero (por ejemplo, ``[1,2] < [1,2,3]`` es " +"verdadero)." #: ../Doc/reference/expressions.rst:1467 msgid "" @@ -1504,17 +2213,24 @@ msgid "" "equal `(key, value)` pairs. Equality comparison of the keys and values " "enforces reflexivity." msgstr "" +"Los mapeos (instancias de :class:`dict`) comparan igual si y sólo si tienen " +"pares `(clave, valor)` iguales. La comparación de igualdad de claves y " +"valores refuerza la reflexibilidad." #: ../Doc/reference/expressions.rst:1471 msgid "" "Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." msgstr "" +"Comparaciones de orden (``<``, ``>``, ``<=``, and ``>=``) generan :exc:" +"`TypeError`." #: ../Doc/reference/expressions.rst:1473 msgid "" "Sets (instances of :class:`set` or :class:`frozenset`) can be compared " "within and across their types." msgstr "" +"Conjuntos (instancias de :class:`set` o :class:`frozenset`) pueden ser " +"comparadas entre sí y entre sus tipos." #: ../Doc/reference/expressions.rst:1476 msgid "" @@ -1526,86 +2242,107 @@ msgid "" "func:`max`, and :func:`sorted` produce undefined results given a list of " "sets as inputs)." msgstr "" +"Ellas definen operadores de comparación de orden con la intención de " +"comprobar subconjuntos y superconjuntos. Tales relaciones no definen " +"ordenaciones completas (por ejemplo, los dos conjuntos ``{1,2}`` y ``{2,3}`` " +"no son iguales, ni subconjuntos ni superconjuntos uno de otro). Acordemente, " +"los conjuntos no son argumentos apropiados para funciones que dependen de " +"ordenación completa (por ejemplo, :func:`min`, :func:`max` y :func:`sorted` " +"producen resultados indefinidos dados una lista de conjuntos como entradas)." #: ../Doc/reference/expressions.rst:1484 msgid "Comparison of sets enforces reflexivity of its elements." msgstr "" +"La comparación de conjuntos refuerza la reflexibilidad de sus elementos." #: ../Doc/reference/expressions.rst:1486 msgid "" "Most other built-in types have no comparison methods implemented, so they " "inherit the default comparison behavior." msgstr "" +"La mayoría de los otros tipos incorporados no tienen métodos de comparación " +"implementados, por lo que ellos heredan el comportamiento de comparación " +"predeterminado." #: ../Doc/reference/expressions.rst:1489 msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" msgstr "" +"Las clases definidas por el usuario que personalizan su comportamiento de " +"comparación deben seguir algunas reglas de consistencia, si es posible:" #: ../Doc/reference/expressions.rst:1492 msgid "" "Equality comparison should be reflexive. In other words, identical objects " "should compare equal:" msgstr "" +"La comparación de igualdad debe ser reflexiva. En otras palabras, los " +"objetos idénticos deben comparar iguales:" #: ../Doc/reference/expressions.rst:1495 msgid "``x is y`` implies ``x == y``" -msgstr "" +msgstr "``x is y`` implica ``x == y``" #: ../Doc/reference/expressions.rst:1497 msgid "" "Comparison should be symmetric. In other words, the following expressions " "should have the same result:" msgstr "" +"La comparación debe ser simétrica. En otras palabras, las siguientes " +"expresiones deben tener el mismo resultado:" #: ../Doc/reference/expressions.rst:1500 msgid "``x == y`` and ``y == x``" -msgstr "" +msgstr "``x == y`` y ``y == x``" #: ../Doc/reference/expressions.rst:1502 msgid "``x != y`` and ``y != x``" -msgstr "" +msgstr "``x != y`` y ``y != x``" #: ../Doc/reference/expressions.rst:1504 msgid "``x < y`` and ``y > x``" -msgstr "" +msgstr "``x < y`` y ``y > x``" #: ../Doc/reference/expressions.rst:1506 msgid "``x <= y`` and ``y >= x``" -msgstr "" +msgstr "``x <= y`` y ``y >= x``" #: ../Doc/reference/expressions.rst:1508 msgid "" "Comparison should be transitive. The following (non-exhaustive) examples " "illustrate that:" msgstr "" +"La comparación debe ser transitiva. Los siguientes ejemplos (no exhaustivos) " +"ilustran esto:" #: ../Doc/reference/expressions.rst:1511 msgid "``x > y and y > z`` implies ``x > z``" -msgstr "" +msgstr "``x > y and y > z`` implica ``x > z``" #: ../Doc/reference/expressions.rst:1513 msgid "``x < y and y <= z`` implies ``x < z``" -msgstr "" +msgstr "``x < y and y <= z`` implica ``x < z``" #: ../Doc/reference/expressions.rst:1515 msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" msgstr "" +"La comparación inversa debe resultar en la negación booleana. En otras " +"palabras, las siguientes expresiones deben tener el mismo resultado:" #: ../Doc/reference/expressions.rst:1518 msgid "``x == y`` and ``not x != y``" -msgstr "" +msgstr "``x == y`` y ``not x != y``" #: ../Doc/reference/expressions.rst:1520 msgid "``x < y`` and ``not x >= y`` (for total ordering)" -msgstr "" +msgstr "``x < y`` y ``not x >= y`` (para ordenación completa)" #: ../Doc/reference/expressions.rst:1522 msgid "``x > y`` and ``not x <= y`` (for total ordering)" -msgstr "" +msgstr "``x > y`` y ``not x <= y`` (para ordenación completa)" #: ../Doc/reference/expressions.rst:1524 msgid "" @@ -1613,22 +2350,30 @@ msgid "" "sequences, but not to sets or mappings). See also the :func:`~functools." "total_ordering` decorator." msgstr "" +"Las últimas dos expresiones aplican a colecciones completamente ordenadas " +"(ej. a secuencias, pero no a conjuntos o mapeos). Vea también el decorador :" +"func:`~functools.total_ordering`." #: ../Doc/reference/expressions.rst:1528 msgid "" "The :func:`hash` result should be consistent with equality. Objects that are " "equal should either have the same hash value, or be marked as unhashable." msgstr "" +"La función :func:`hash` debe ser consistente con la igualdad. Los objetos " +"que son iguales deben tener el mismo valor de hash o ser marcados como " +"inhashables." #: ../Doc/reference/expressions.rst:1532 msgid "" "Python does not enforce these consistency rules. In fact, the not-a-number " "values are an example for not following these rules." msgstr "" +"Python no fuerza a cumplir esas reglas de coherencia. De hecho, los valores " +"no-un-número son u ejemplo para no seguir esas reglas." #: ../Doc/reference/expressions.rst:1541 msgid "Membership test operations" -msgstr "" +msgstr "Operaciones de prueba de membresía" #: ../Doc/reference/expressions.rst:1543 msgid "" @@ -1640,6 +2385,14 @@ msgid "" "types such as list, tuple, set, frozenset, dict, or collections.deque, the " "expression ``x in y`` is equivalent to ``any(x is e or x == e for e in y)``." msgstr "" +"Los operadores :keyword:`in` y :keyword:`not in` comprueban membresía. ``x " +"in s`` evalúa a ``True`` si *x* es un miembro de *s* y ``False`` en caso " +"contrario. ``x not in s`` retorna la negación de ``x in s``. Todas las " +"secuencias incorporadas y tipos conjuntos soportan esto, así como " +"diccionarios, para los cuales :keyword:`!in` comprueba si un diccionario " +"tiene una clave dada. Para tipos contenedores como list, tuple, set, " +"frozenset, dict o collections.deque, la expresión ``x in y`` es equivalente " +"a ``any(x is e or x == e for e in y)``." #: ../Doc/reference/expressions.rst:1551 msgid "" @@ -1648,6 +2401,11 @@ msgid "" "strings are always considered to be a substring of any other string, so ``" "\"\" in \"abc\"`` will return ``True``." msgstr "" +"Para los tipos cadenas de caracteres y bytes, ``x in y`` es ``True`` si y " +"sólo si *x* es una subcadena de *y*. Una comprobación equivalente es ``y." +"find(x) != -1``. Las cadenas de caracteres vacías siempre son consideradas " +"como subcadenas de cualquier otra cadena de caracteres, por lo que ``\"\" in " +"\"abc\"`` retornará ``True``." #: ../Doc/reference/expressions.rst:1556 msgid "" @@ -1655,6 +2413,9 @@ msgid "" "in y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and " "``False`` otherwise." msgstr "" +"Para clases definidas por el usuario las cuales definen el método :meth:" +"`__contains__`, ``x in y`` retorna ``True`` si ``y.__contains__(x)`` retorna " +"un valor verdadero y ``False`` si no." #: ../Doc/reference/expressions.rst:1560 msgid "" @@ -1664,6 +2425,12 @@ msgid "" "iterating over ``y``. If an exception is raised during the iteration, it is " "as if :keyword:`in` raised that exception." msgstr "" +"Para clases definidas por el usuario las cuales no definen :meth:" +"`__contains__` pero definen :meth:`__iter__`, ``x in y`` es ``True`` si " +"algún valor ``z``, para el cual la expresión ``x is z or x == z`` es " +"verdadera, es producido iterando sobre ``y``. Si una excepción es generada " +"durante la iteración, es como si :keyword:`in` hubiera generado esa " +"excepción." #: ../Doc/reference/expressions.rst:1566 msgid "" @@ -1673,16 +2440,24 @@ msgid "" "index raises the :exc:`IndexError` exception. (If any other exception is " "raised, it is as if :keyword:`in` raised that exception)." msgstr "" +"Por último, se intenta el protocolo de iteración al estilo antiguo: si una " +"clase define :meth:`__getitem__`, ``x in y`` es ``True`` si y sólo si hay un " +"índice entero no negativo *i* tal que ``x is y[i] or x == y[i]`` y ningún " +"entero menor genera la excepción :exc:`IndexError`. (Si cualquier otra " +"excepción es generada, es como si :keyword:`in` hubiera generado esa " +"excepción)." #: ../Doc/reference/expressions.rst:1578 msgid "" "The operator :keyword:`not in` is defined to have the inverse truth value " "of :keyword:`in`." msgstr "" +"El operador :keyword:`not in` es definido para tener el valor de veracidad " +"inverso de :keyword:`in`." #: ../Doc/reference/expressions.rst:1591 msgid "Identity comparisons" -msgstr "" +msgstr "Comparaciones de identidad" #: ../Doc/reference/expressions.rst:1593 msgid "" @@ -1691,10 +2466,14 @@ msgid "" "object. An Object's identity is determined using the :meth:`id` function. " "``x is not y`` yields the inverse truth value. [#]_" msgstr "" +"Los operadores :keyword:`is` y :keyword:`is not` comprueban la identidad de " +"un objeto. ``x is y`` es verdadero si y sólo si *x* e *y* son el mismo " +"objeto. La identidad de un Objeto se determina usando la función :meth:`id`. " +"``x is not y`` produce el valor de veracidad inverso. [#]_" #: ../Doc/reference/expressions.rst:1605 msgid "Boolean operations" -msgstr "" +msgstr "Operaciones booleanas" #: ../Doc/reference/expressions.rst:1616 msgid "" @@ -1706,24 +2485,38 @@ msgid "" "objects can customize their truth value by providing a :meth:`__bool__` " "method." msgstr "" +"En el contexto de las operaciones booleanas y también cuando sentencias de " +"control de flujo usan expresiones, los siguientes valores se interpretan " +"como falsos: ``False``, ``None``, ceros numéricos de todos los tipos y " +"cadenas de caracteres y contenedores vacíos (incluyendo cadenas de " +"caracteres, tuplas, diccionarios, conjuntos y conjuntos congelados). Todos " +"los otros valores son interpretados como verdaderos. Los objetos definidos " +"por el usuario pueden personalizar su valor de veracidad proveyendo un " +"método :meth:`__bool__`." #: ../Doc/reference/expressions.rst:1625 msgid "" "The operator :keyword:`not` yields ``True`` if its argument is false, " "``False`` otherwise." msgstr "" +"El operador :keyword:`not` produce ``True`` si su argumento es falso, " +"``False`` si no." #: ../Doc/reference/expressions.rst:1630 msgid "" "The expression ``x and y`` first evaluates *x*; if *x* is false, its value " "is returned; otherwise, *y* is evaluated and the resulting value is returned." msgstr "" +"La expresión ``x and y`` primero evalúa *x*; si *x* es falso, se retorna su " +"valor; de otra forma, *y* es evaluado y se retorna el valor resultante." #: ../Doc/reference/expressions.rst:1635 msgid "" "The expression ``x or y`` first evaluates *x*; if *x* is true, its value is " "returned; otherwise, *y* is evaluated and the resulting value is returned." msgstr "" +"La expresión ``x or y`` primero evalúa *x*; si *x* es verdadero, se retorna " +"su valor; de otra forma, *y* es evaluado y se retorna el valor resultante." #: ../Doc/reference/expressions.rst:1638 msgid "" @@ -1735,24 +2528,34 @@ msgid "" "create a new value, it returns a boolean value regardless of the type of its " "argument (for example, ``not 'foo'`` produces ``False`` rather than ``''``.)" msgstr "" +"Tenga en cuenta que ni :keyword:`and` ni :keyword:`or` restringen el valor y " +"el tipo que retornan a ``False`` y ``True``, sino retornan el último " +"argumento evaluado. Esto es útil a veces, ej., si ``s`` es una cadena de " +"caracteres que debe ser remplazada por un valor predeterminado si está " +"vacía, la expresión ``s or 'foo'`` produce el valor deseado. Debido a que :" +"keyword:`not` tiene que crear un nuevo valor, retorna un valor booleano " +"indiferentemente del tipo de su argumento (por ejemplo, ``not 'foo'`` " +"produce ``False`` en lugar de ``''``.)" #: ../Doc/reference/expressions.rst:1648 msgid "Assignment expressions" -msgstr "" +msgstr "Expresiones de asignación" #: ../Doc/reference/expressions.rst:1655 msgid "See :pep:`572` for more details about assignment expressions." -msgstr "" +msgstr "Vea :pep:`572` para más detalles sobre las expresiones de asignación." #: ../Doc/reference/expressions.rst:1661 msgid "Conditional expressions" -msgstr "" +msgstr "Expresiones condicionales" #: ../Doc/reference/expressions.rst:1674 msgid "" "Conditional expressions (sometimes called a \"ternary operator\") have the " "lowest priority of all Python operations." msgstr "" +"Las expresiones condicionales (a veces denominadas un \"operador ternario\") " +"tienen la prioridad más baja que todas las operaciones de Python." #: ../Doc/reference/expressions.rst:1677 msgid "" @@ -1760,14 +2563,17 @@ msgid "" "than *x*. If *C* is true, *x* is evaluated and its value is returned; " "otherwise, *y* is evaluated and its value is returned." msgstr "" +"La expresión ``x if C else y`` primero evalúa la condición, *C* en lugar de " +"*x*. Si *C* es verdadero, *x* es evaluado y se retorna su valor; en caso " +"contrario, *y* es evaluado y se retorna su valor." #: ../Doc/reference/expressions.rst:1681 msgid "See :pep:`308` for more details about conditional expressions." -msgstr "" +msgstr "Vea :pep:`308` para más detalles sobre expresiones condicionales." #: ../Doc/reference/expressions.rst:1688 msgid "Lambdas" -msgstr "" +msgstr "Lambdas" #: ../Doc/reference/expressions.rst:1700 msgid "" @@ -1776,6 +2582,10 @@ msgid "" "a function object. The unnamed object behaves like a function object " "defined with:" msgstr "" +"Las expresiones lambda (a veces denominadas formas lambda) son usadas para " +"crear funciones anónimas. La expresión ``lambda parameters: expression`` " +"produce un objeto de función. El objeto sin nombre se comporta como un " +"objeto función con:" #: ../Doc/reference/expressions.rst:1709 msgid "" @@ -1783,10 +2593,13 @@ msgid "" "functions created with lambda expressions cannot contain statements or " "annotations." msgstr "" +"Vea la sección :ref:`function` para la sintaxis de listas de parámetros. " +"Tenga en cuenta que las funciones creadas con expresiones lambda no pueden " +"contener sentencias ni anotaciones." #: ../Doc/reference/expressions.rst:1717 msgid "Expression lists" -msgstr "" +msgstr "Listas de expresiones" #: ../Doc/reference/expressions.rst:1731 msgid "" @@ -1794,6 +2607,10 @@ msgid "" "least one comma yields a tuple. The length of the tuple is the number of " "expressions in the list. The expressions are evaluated from left to right." msgstr "" +"Excepto cuando son parte de un despliegue de lista o conjunto, una lista de " +"expresión conteniendo al menos una coma produce una tupla. El largo de la " +"tupla es el número de expresiones en la lista. Las expresiones son evaluadas " +"de izquierda a derecha." #: ../Doc/reference/expressions.rst:1740 msgid "" @@ -1802,11 +2619,17 @@ msgid "" "which are included in the new tuple, list, or set, at the site of the " "unpacking." msgstr "" +"Un asterisco ``*`` denota :dfn:`iterable unpacking`. Su operando deben ser " +"un :term:`iterable`. El iterable es expandido en una secuencia de elementos, " +"los cuales son incluidos en la nueva tupla, lista o conjunto en el lugar del " +"desempaquetado." #: ../Doc/reference/expressions.rst:1745 msgid "" "Iterable unpacking in expression lists, originally proposed by :pep:`448`." msgstr "" +"Desempaquetado iterable en listas de expresiones, originalmente propuesto " +"por :pep:`488`." #: ../Doc/reference/expressions.rst:1750 msgid "" @@ -1816,10 +2639,15 @@ msgid "" "of that expression. (To create an empty tuple, use an empty pair of " "parentheses: ``()``.)" 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: " +"``()``.)" #: ../Doc/reference/expressions.rst:1760 msgid "Evaluation order" -msgstr "" +msgstr "Orden de evaluación" #: ../Doc/reference/expressions.rst:1764 msgid "" @@ -1827,16 +2655,21 @@ msgid "" "evaluating an assignment, the right-hand side is evaluated before the left-" "hand side." msgstr "" +"Python evalúa las expresiones de izquierda a derecha. Note que mientras se " +"evalúa una asignación, la parte derecha es evaluada antes que la parte " +"izquierda." #: ../Doc/reference/expressions.rst:1767 msgid "" "In the following lines, expressions will be evaluated in the arithmetic " "order of their suffixes::" msgstr "" +"En las siguientes líneas, las expresiones serán evaluadas en el orden " +"aritmético de sus sufijos::" #: ../Doc/reference/expressions.rst:1781 msgid "Operator precedence" -msgstr "" +msgstr "Prioridad de operador" #: ../Doc/reference/expressions.rst:1786 msgid "" @@ -1846,6 +2679,12 @@ msgid "" "explicitly given, operators are binary. Operators in the same box group " "left to right (except for exponentiation, which groups from right to left)." msgstr "" +"La siguiente tabla resume la prioridad de operador en Python, desde la " +"prioridad más baja (menos vinculante) a la prioridad más alta (más " +"vinculante). Operadores en la misma caja tienen la misma prioridad. A no ser " +"que la sintaxis sea dada explícitamente, los operadores son binarios. Los " +"operadores en la misma caja, de izquierda a derecha (excepto para " +"exponenciación, cuyos grupos de derecha a izquierda)." #: ../Doc/reference/expressions.rst:1792 msgid "" @@ -1853,168 +2692,178 @@ msgid "" "same precedence and have a left-to-right chaining feature as described in " "the :ref:`comparisons` section." msgstr "" +"Tenga en cuenta que las comparaciones, comprobaciones de membresía y las " +"comprobaciones de identidad tienen la misma prioridad y una característica " +"de encadenado de izquierda a derecha como son descritas en la sección :ref:" +"`comparisons`." #: ../Doc/reference/expressions.rst:1798 msgid "Operator" -msgstr "" +msgstr "Operador" #: ../Doc/reference/expressions.rst:1798 msgid "Description" -msgstr "" +msgstr "Descripción" #: ../Doc/reference/expressions.rst:1800 msgid "``:=``" -msgstr "" +msgstr "``:=``" #: ../Doc/reference/expressions.rst:1800 msgid "Assignment expression" -msgstr "" +msgstr "Expresión de asignación" #: ../Doc/reference/expressions.rst:1802 msgid ":keyword:`lambda`" -msgstr "" +msgstr ":keyword:`lambda`" #: ../Doc/reference/expressions.rst:1802 msgid "Lambda expression" -msgstr "" +msgstr "Expresión lambda" #: ../Doc/reference/expressions.rst:1804 msgid ":keyword:`if ` -- :keyword:`!else`" -msgstr "" +msgstr ":keyword:`if ` -- :keyword:`!else`" #: ../Doc/reference/expressions.rst:1804 msgid "Conditional expression" -msgstr "" +msgstr "Expresión condicional" #: ../Doc/reference/expressions.rst:1806 msgid ":keyword:`or`" -msgstr "" +msgstr ":keyword:`or`" #: ../Doc/reference/expressions.rst:1806 msgid "Boolean OR" -msgstr "" +msgstr "Booleano OR" #: ../Doc/reference/expressions.rst:1808 msgid ":keyword:`and`" -msgstr "" +msgstr ":keyword:`and`" #: ../Doc/reference/expressions.rst:1808 msgid "Boolean AND" -msgstr "" +msgstr "Booleano AND" #: ../Doc/reference/expressions.rst:1810 msgid ":keyword:`not` ``x``" -msgstr "" +msgstr ":keyword:`not` ``x``" #: ../Doc/reference/expressions.rst:1810 msgid "Boolean NOT" -msgstr "" +msgstr "Booleano NOT" #: ../Doc/reference/expressions.rst:1812 msgid "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" msgstr "" +":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " +"``<=``, ``>``, ``>=``, ``!=``, ``==``" #: ../Doc/reference/expressions.rst:1812 msgid "Comparisons, including membership tests and identity tests" -msgstr "" +msgstr "Comparaciones, incluyendo comprobaciones de membresía y de identidad" #: ../Doc/reference/expressions.rst:1816 msgid "``|``" -msgstr "" +msgstr "``|``" #: ../Doc/reference/expressions.rst:1816 msgid "Bitwise OR" -msgstr "" +msgstr "OR bit a bit" #: ../Doc/reference/expressions.rst:1818 msgid "``^``" -msgstr "" +msgstr "``^``" #: ../Doc/reference/expressions.rst:1818 msgid "Bitwise XOR" -msgstr "" +msgstr "XOR bit a bit" #: ../Doc/reference/expressions.rst:1820 msgid "``&``" -msgstr "" +msgstr "``&``" #: ../Doc/reference/expressions.rst:1820 msgid "Bitwise AND" -msgstr "" +msgstr "AND bit a bit" #: ../Doc/reference/expressions.rst:1822 msgid "``<<``, ``>>``" -msgstr "" +msgstr "``<<``, ``>>``" #: ../Doc/reference/expressions.rst:1822 msgid "Shifts" -msgstr "" +msgstr "Desplazamientos" #: ../Doc/reference/expressions.rst:1824 msgid "``+``, ``-``" -msgstr "" +msgstr "``+``, ``-``" #: ../Doc/reference/expressions.rst:1824 msgid "Addition and subtraction" -msgstr "" +msgstr "Adición y sustracción" #: ../Doc/reference/expressions.rst:1826 msgid "``*``, ``@``, ``/``, ``//``, ``%``" -msgstr "" +msgstr "``*``, ``@``, ``/``, ``//``, ``%``" #: ../Doc/reference/expressions.rst:1826 msgid "" "Multiplication, matrix multiplication, division, floor division, remainder " "[#]_" msgstr "" +"Multiplicación, multiplicación de matrices, división, división de redondeo, " +"resto [#]_" #: ../Doc/reference/expressions.rst:1830 msgid "``+x``, ``-x``, ``~x``" -msgstr "" +msgstr "``+x``, ``-x``, ``~x``" #: ../Doc/reference/expressions.rst:1830 msgid "Positive, negative, bitwise NOT" -msgstr "" +msgstr "NOT positivo, negativo, bit a bit" #: ../Doc/reference/expressions.rst:1832 msgid "``**``" -msgstr "" +msgstr "``**``" #: ../Doc/reference/expressions.rst:1832 msgid "Exponentiation [#]_" -msgstr "" +msgstr "Exponenciación [#]_" #: ../Doc/reference/expressions.rst:1834 msgid ":keyword:`await` ``x``" -msgstr "" +msgstr ":keyword:`await` ``x``" #: ../Doc/reference/expressions.rst:1836 msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" -msgstr "" +msgstr "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" #: ../Doc/reference/expressions.rst:1836 msgid "Subscription, slicing, call, attribute reference" -msgstr "" +msgstr "Subscripción, segmentación, invocación, referencia de atributo" #: ../Doc/reference/expressions.rst:1839 msgid "``(expressions...)``," -msgstr "" +msgstr "``(expressions...)``," #: ../Doc/reference/expressions.rst:1841 msgid "``[expressions...]``, ``{key: value...}``, ``{expressions...}``" -msgstr "" +msgstr "``[expressions...]``, ``{key: value...}``, ``{expressions...}``" #: ../Doc/reference/expressions.rst:1839 msgid "" "Binding or parenthesized expression, list display, dictionary display, set " "display" msgstr "" +"Expresión de enlace o entre paréntesis, despliegues de lista, diccionario y " +"conjunto" #: ../Doc/reference/expressions.rst:1848 msgid "Footnotes" -msgstr "" +msgstr "Notas al pie" #: ../Doc/reference/expressions.rst:1849 #, python-format @@ -2028,6 +2877,15 @@ msgid "" "the first argument instead, and so returns ``-1e-100`` in this case. Which " "approach is more appropriate depends on the application." msgstr "" +"Mientras ``abs(x%y) < abs(y)`` es matemáticamente verdadero, para números de " +"punto flotante puede no ser verdadero numéricamente debido al redondeo. Por " +"ejemplo, y asumiendo una plataforma en la cual un número de punto flotante " +"de Python es un número de doble precisión IEEE 754, a fin de que ``-1e-100 % " +"1e100`` tenga el mismo signo que ``1e100``, el resultado calculado es " +"``-1e-100 + 1e100``, el cual es numéricamente exactamente igual a ``1e100``. " +"La función :func:`math.fmod` retorna un resultado cuyo signo concuerda con " +"el signo del primer argumento en su lugar, y por ello retorna ``-1e-100`` en " +"este caso. La aproximación más apropiada depende de su aplicación." #: ../Doc/reference/expressions.rst:1858 msgid "" @@ -2036,6 +2894,10 @@ msgid "" "Python returns the latter result, in order to preserve that ``divmod(x,y)[0] " "* y + x % y`` be very close to ``x``." msgstr "" +"Si x está muy cerca de un entero exacto múltiple de y, es posible para ``x//" +"y`` que sea uno mayor que ``(x-x%y)//y`` debido al redondeo. En tales casos, " +"Python retorna el último resultado, a fin de preservar que ``divmod(x,y)[0] " +"* y + x % y`` sea muy cercano a ``x``." #: ../Doc/reference/expressions.rst:1863 msgid "" @@ -2050,6 +2912,17 @@ msgid "" "LETTER C), followed by a :dfn:`combining character` at code position U+0327 " "(COMBINING CEDILLA)." msgstr "" +"El estándar Unicode distingue entre :dfn:`code points` (ej. U+0041) y :dfn:" +"`abstract characters` (ej. \"LETRA MAYÚSCULA LATINA A\"). Mientras la " +"mayoría de caracteres abstractos en Unicode sólo son representados usando un " +"punto de código, hay un número de caracteres abstractos que pueden " +"adicionalmente ser representados usado una secuencia de más de un punto de " +"código. Por ejemplo, el caracter abstracto \"LETRA MAYÚSCULA C LATINA CON " +"CEDILLA\" puede ser representado como un único :dfn:`precomposed character` " +"en la posición de código U+00C7, o como una secuencia de un :dfn:`base " +"character` en la posición de código U+0043 (LETRA MAYÚSCULA C LATINA), " +"seguida de un :dfn:`combining character` en la posición de código U+0327 " +"(CEDILLA COMBINADA)." #: ../Doc/reference/expressions.rst:1874 msgid "" @@ -2058,12 +2931,19 @@ msgid "" "== \"\\u0043\\u0327\"`` is ``False``, even though both strings represent the " "same abstract character \"LATIN CAPITAL LETTER C WITH CEDILLA\"." msgstr "" +"Los operadores de comparación comparan en cadenas de caracteres al nivel de " +"puntos de código Unicode. Esto puede ser contraintuitivo para humanos. Por " +"ejemplo, ``\"\\u00C7\" == \"\\u0043\\u0327\"`` es ``False``, incluso aunque " +"ambas cadenas presenten el mismo caracter abstracto \"LETRA MAYÚSCULA C " +"LATINA CON CEDILLA\"." #: ../Doc/reference/expressions.rst:1879 msgid "" "To compare strings at the level of abstract characters (that is, in a way " "intuitive to humans), use :func:`unicodedata.normalize`." msgstr "" +"Para comparar cadenas al nivel de caracteres abstractos (esto es, de una " +"forma intuitiva para humanos), usa :func:`unicodedata.normalize`." #: ../Doc/reference/expressions.rst:1882 msgid "" @@ -2072,15 +2952,25 @@ msgid "" "the :keyword:`is` operator, like those involving comparisons between " "instance methods, or constants. Check their documentation for more info." msgstr "" +"Debido a la recolección automática de basura, listas libres y a la " +"naturaleza dinámica de los descriptores, puede notar un comportamiento " +"aparentemente inusual en ciertos usos del operador :keyword:`is`, como " +"aquellos involucrando comparaciones entre métodos de instancia, o " +"constantes. Compruebe su documentación para más información." #: ../Doc/reference/expressions.rst:1887 msgid "" "The ``%`` operator is also used for string formatting; the same precedence " "applies." msgstr "" +"El operador ``%`` también es usado para formateo de cadenas; aplica la misma " +"prioridad." #: ../Doc/reference/expressions.rst:1890 msgid "" "The power operator ``**`` binds less tightly than an arithmetic or bitwise " "unary operator on its right, that is, ``2**-1`` is ``0.5``." msgstr "" +"El operador de potencia ``**`` vincula con menos fuerza que un operador " +"unario aritmético uno bit a bit en su derecha, esto significa que ``2**-1`` " +"is ``0.5``." diff --git a/reference/import.po b/reference/import.po index 81f4ff052a..e03b2ac4f3 100644 --- a/reference/import.po +++ b/reference/import.po @@ -503,8 +503,9 @@ msgid "" "hooks* and *import path hooks*." msgstr "" "La maquinaria de importación está diseñada para ser extensible; el mecanismo " -"principal para esto son los *ganchos de importación*. Hay dos tipos de " -"enlaces de importación: *meta hooks* y *import path hooks*." +"principal para esto son los *ganchos de importación* (import hooks). Hay " +"dos tipos de ganchos de importación: *meta hooks* (meta ganchos) y *import " +"path hooks* (ganchos de ruta de acceso de importación)." #: ../Doc/reference/import.rst:259 msgid "" @@ -529,10 +530,10 @@ msgid "" "encountered. Import path hooks are registered by adding new callables to :" "data:`sys.path_hooks` as described below." msgstr "" -"Los enlaces de ruta de acceso de importación se denominan como parte del " +"Los ganchos de ruta de acceso de importación se invocan como parte del " "procesamiento :data:`sys.path` (o ``package.__path__``), en el punto donde " -"se encuentra su elemento de ruta de acceso asociado. Los enlaces de ruta de " -"importación se registran agregando nuevos invocables a :data:`sys." +"se encuentra su elemento de ruta de acceso asociado. Los ganchos de ruta de " +"acceso de importación se registran agregando nuevos invocables a :data:`sys." "path_hooks` como se describe a continuación." #: ../Doc/reference/import.rst:272 diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index d091176578..d1cf42178a 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -1,25 +1,27 @@ # 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: 2020-10-18 16:24-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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/reference/toplevel_components.rst:6 msgid "Top-level components" -msgstr "" +msgstr "Componentes de nivel superior" #: ../Doc/reference/toplevel_components.rst:10 msgid "" @@ -28,10 +30,14 @@ msgid "" "interactively, from a module source file, etc. This chapter gives the " "syntax used in these cases." msgstr "" +"El intérprete de Python puede obtener su entrada de varias fuentes: de un " +"script que se le pasa como entrada estándar o como argumento del programa, " +"escrito interactivamente, de un archivo fuente de módulo, etc. Este capítulo " +"proporciona la sintaxis utilizada en estos casos." #: ../Doc/reference/toplevel_components.rst:19 msgid "Complete Python programs" -msgstr "" +msgstr "Programas completos de Python" #: ../Doc/reference/toplevel_components.rst:28 msgid "" @@ -44,12 +50,22 @@ msgid "" "`__main__`. The latter is used to provide the local and global namespace " "for execution of the complete program." msgstr "" +"Si bien una especificación de lenguaje no necesita prescribir cómo se invoca " +"al intérprete de lenguaje, es útil tener una noción de un programa completo " +"de Python. Un programa completo de Python se ejecuta en un entorno " +"mínimamente inicializado: todos los módulos estándar e integrados están " +"disponibles, pero ninguno ha sido inicializado, excepto :mod:`sys` (varios " +"servicios del sistema), :mod:`builtins` (funciones integradas, excepciones y " +"``Ninguno``) y :mod:`__main__`. Este último se utiliza para proporcionar el " +"espacio de nombres local y global para la ejecución del programa completo." #: ../Doc/reference/toplevel_components.rst:36 msgid "" "The syntax for a complete Python program is that for file input, described " "in the next section." msgstr "" +"La sintaxis de un programa completo de Python es la entrada de archivos, que " +"se describe en la siguiente sección." #: ../Doc/reference/toplevel_components.rst:43 msgid "" @@ -59,6 +75,11 @@ msgid "" "identical to that of a complete program; each statement is executed in the " "namespace of :mod:`__main__`." msgstr "" +"El intérprete también puede invocarse en modo interactivo; en este caso, no " +"lee ni ejecuta un programa completo, sino que lee y ejecuta una instrucción " +"(posiblemente compuesta) a la vez. El entorno inicial es idéntico al de un " +"programa completo; cada instrucción se ejecuta en el espacio de nombres de :" +"mod:`__main__`." #: ../Doc/reference/toplevel_components.rst:55 msgid "" @@ -68,38 +89,48 @@ msgid "" "is a tty device, the interpreter enters interactive mode; otherwise, it " "executes the file as a complete program." msgstr "" +"Se puede pasar un programa completo al intérprete en tres formas: con la " +"opción :option:`-c` *string* de línea de comando, como un archivo pasado " +"como primer argumento de línea de comando o como entrada estándar. Si el " +"archivo o la entrada estándar es un dispositivo tty, el intérprete ingresa " +"al modo interactivo; de lo contrario, ejecuta el archivo como un programa " +"completo." #: ../Doc/reference/toplevel_components.rst:65 msgid "File input" -msgstr "" +msgstr "Entrada de archivo" #: ../Doc/reference/toplevel_components.rst:67 msgid "All input read from non-interactive files has the same form:" msgstr "" +"Todas las entradas leídas de archivos no interactivos tienen la misma forma:" #: ../Doc/reference/toplevel_components.rst:72 msgid "This syntax is used in the following situations:" -msgstr "" +msgstr "Esta sintaxis se utiliza en las siguientes situaciones:" #: ../Doc/reference/toplevel_components.rst:74 msgid "when parsing a complete Python program (from a file or from a string);" msgstr "" +"al analizar un programa completo de Python (desde un archivo o desde una " +"cadena);" #: ../Doc/reference/toplevel_components.rst:76 msgid "when parsing a module;" -msgstr "" +msgstr "al analizar un módulo;" #: ../Doc/reference/toplevel_components.rst:78 msgid "when parsing a string passed to the :func:`exec` function;" -msgstr "" +msgstr "al analizar una cadena pasada a la función: :func:`exec`;" #: ../Doc/reference/toplevel_components.rst:84 msgid "Interactive input" -msgstr "" +msgstr "Entrada interactiva" #: ../Doc/reference/toplevel_components.rst:86 msgid "Input in interactive mode is parsed using the following grammar:" msgstr "" +"La entrada en modo interactivo se analiza utilizando la siguiente gramática:" #: ../Doc/reference/toplevel_components.rst:91 msgid "" @@ -107,13 +138,19 @@ msgid "" "in interactive mode; this is needed to help the parser detect the end of the " "input." msgstr "" +"Tenga en cuenta que una declaración compuesta (de nivel superior) debe ir " +"seguida de una línea en blanco en modo interactivo; esto es necesario para " +"ayudar al analizador sintáctico a detectar el final de la entrada." #: ../Doc/reference/toplevel_components.rst:98 msgid "Expression input" -msgstr "" +msgstr "Entrada de expresión" #: ../Doc/reference/toplevel_components.rst:103 msgid "" ":func:`eval` is used for expression input. It ignores leading whitespace. " "The string argument to :func:`eval` must have the following form:" msgstr "" +":func:`eval` se utiliza para la entrada de expresiones. Ignora los espacios " +"en blanco iniciales. El argumento de cadena para :func:`eval` debe tener la " +"siguiente forma:" diff --git a/requirements.txt b/requirements.txt index 6ef293ee10..01519ab0bd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ pip==20.1 Sphinx==2.2.0 blurb polib -pospell>=1.0.4 +pospell==1.0.5 potodo powrap python-docs-theme diff --git a/scripts/create_dict.py b/scripts/create_dict.py new file mode 100644 index 0000000000..882e92e106 --- /dev/null +++ b/scripts/create_dict.py @@ -0,0 +1,37 @@ +from pathlib import Path + +""" +Script to generate the 'dict.txt' dictionary based +on the custom dictionaries under the 'dictionaries/' directory, +but also considering the old words from the 'dict' file. + +This was done with: + awk 1 dict dictionaries/*.txt > dict.txt +but the problem was that windows users, not using Git bash +have the problem that 'awk' is not a valid command, so this +enable them to use the script instead. +""" + +entries = set() + +# Read custom dictionaries +for filename in Path("dictionaries").glob("*.txt"): + with open(filename, "r") as f: + lines = [i.rstrip() for i in f.readlines()] + if lines: + entries.update(set(lines)) + del lines + +# Remove empty string, from empty lines +entries.remove("") + +# Read main 'dict' +with open("dict", "r") as f: + entries.update(set(i.rstrip() for i in f.readlines())) + +# Write the 'dict.txt' file +with open("dict.txt", "w") as f: + for e in entries: + f.write(e) + f.write("\n") +print("Created 'dict.txt'") diff --git a/scripts/merge-dicts.sh b/scripts/merge-dicts.sh deleted file mode 100755 index b96943aeff..0000000000 --- a/scripts/merge-dicts.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -awk 1 dict dictionaries/*.txt > dict.txt diff --git a/using/editors.po b/using/editors.po index e7434ec336..20c2937b22 100644 --- a/using/editors.po +++ b/using/editors.po @@ -1,26 +1,27 @@ -# SOME DESCRIPTIVE TITLE. +# Add spanish translation. # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python en Español # package. -# FIRST AUTHOR , 2020. +# FIRST AUTHOR , 2020. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-29 23:24+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2020-11-02 00:56-0300\n" "Last-Translator: Xavi Rambla\n" "Language: 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-Team: \n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/using/editors.rst:7 msgid "Editors and IDEs" -msgstr "" +msgstr "Editores e IDEs" #: ../Doc/using/editors.rst:9 msgid "" @@ -28,6 +29,9 @@ msgid "" "editors and IDEs provide syntax highlighting, debugging tools, and :pep:`8` " "checks." msgstr "" +"Existen numerosos IDEs que admiten el lenguaje de programación Python. " +"Muchos editores e IDEs proporcionan resaltado de sintaxis, herramientas de " +"depuración y comprobaciones de :pep:`8`." #: ../Doc/using/editors.rst:12 msgid "" @@ -35,3 +39,6 @@ msgid "" "and `Integrated Development Environments `_ for a comprehensive list." msgstr "" +"Diríjase a `Python Editors `_ y " +"a `Integrated Development Environments `_ para obtener una lista completa." diff --git a/using/windows.po b/using/windows.po index a60abab4c4..005c02c1b8 100644 --- a/using/windows.po +++ b/using/windows.po @@ -6,29 +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-02-27 14:06-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: Federico Zuccolo \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/using/windows.rst:7 msgid "Using Python on Windows" -msgstr "" +msgstr "Uso de Python en Windows" #: ../Doc/using/windows.rst:12 msgid "" "This document aims to give an overview of Windows-specific behaviour you " "should know about when using Python on Microsoft Windows." msgstr "" +"Este documento pretende dar una visión general del comportamiento específico " +"de Windows que se debería conocer al usar Python en Microsoft Windows." #: ../Doc/using/windows.rst:15 msgid "" @@ -41,6 +45,16 @@ msgid "" "able to install for all users of a single machine, and a separate ZIP file " "is available for application-local distributions." msgstr "" +"A diferencia de la mayoría de sistemas y servicios Unix, Windows no incluye " +"una instalación de Python soportada por el sistema. Para hacer que Python " +"esté disponible, el equipo de CPython ha compilado instaladores de Windows " +"(paquetes MSI) con cada `lanzamiento `_ durante muchos años. Estos instaladores están destinados " +"principalmente a agregar una instalación de Python para cada usuario, con el " +"intérprete principal y la biblioteca para ser usados por un solo usuario. El " +"instalador también es capaz de hacer la instalación para todos los usuarios " +"de una única máquina, y un archivo ZIP separado está disponible para " +"distribuciones locales (específicas) para cada aplicación." #: ../Doc/using/windows.rst:24 msgid "" @@ -49,18 +63,27 @@ msgid "" "that Python |version| supports Windows Vista and newer. If you require " "Windows XP support then please install Python 3.4." msgstr "" +"Como se especifica en :pep:`11`, una versión de Python solo soporta una " +"plataforma Windows mientras Microsoft considere dicha plataforma bajo " +"soporte extendido. Esto significa que Python |version| es compatible con " +"Windows Vista y versiones posteriores. Si necesita compatibilidad con " +"Windows XP entonces instale Python 3.4." #: ../Doc/using/windows.rst:29 msgid "" "There are a number of different installers available for Windows, each with " "certain benefits and downsides." msgstr "" +"Hay varios instaladores diferentes disponibles para Windows, cada uno con " +"determinados beneficios y desventajas." #: ../Doc/using/windows.rst:32 msgid "" ":ref:`windows-full` contains all components and is the best option for " "developers using Python for any kind of project." msgstr "" +":ref:`windows-full` contiene todos los componentes y es la mejor opción para " +"desarrolladores que usan Python para cualquier clase de proyecto." #: ../Doc/using/windows.rst:35 msgid "" @@ -70,6 +93,11 @@ msgid "" "corrupting other programs. It also provides many convenient commands for " "launching Python and its tools." msgstr "" +":ref:`windows-store` es una instalación simple de Python que es adecuada " +"para ejecutar scripts y paquetes, y para usar IDLE u otros entornos de " +"desarrollo. Requiere Windows 10, pero la instalación puede hacerse de forma " +"segura sin corromper otros programas. También proporciona muchos comandos " +"convenientes para lanzar Python y sus herramientas." #: ../Doc/using/windows.rst:41 msgid "" @@ -77,20 +105,26 @@ msgid "" "integration systems. It can be used to build Python packages or run scripts, " "but is not updateable and has no user interface tools." msgstr "" +":ref:`windows-nuget` son instalaciones ligeras destinadas a sistemas de " +"integración continua. Puede ser usada para crear paquetes de Python o para " +"ejecutar scripts, pero no es actualizable y no posee herramientas de " +"interfaz de usuario." #: ../Doc/using/windows.rst:45 msgid "" ":ref:`windows-embeddable` is a minimal package of Python suitable for " "embedding into a larger application." msgstr "" +":ref:`windows-embeddable` es un paquete de Python mínimo que es adecuado " +"para incrustar en una aplicación más grande." #: ../Doc/using/windows.rst:52 msgid "The full installer" -msgstr "" +msgstr "El instalador completo" #: ../Doc/using/windows.rst:55 msgid "Installation steps" -msgstr "" +msgstr "Pasos para la instalación" #: ../Doc/using/windows.rst:57 msgid "" @@ -102,42 +136,60 @@ msgid "" "connection for optional features. See :ref:`install-layout-option` for other " "ways to avoid downloading during installation." msgstr "" +"Cuatro instaladores de Python |version| están disponibles para descargar - " +"dos por cada una de las versiones de 32-bit y 64-bit del intérprete. El " +"*instalador web* es una pequeña descarga inicial que automáticamente " +"descargará los componentes requeridos cuando sea necesario. El *instalador " +"fuera de línea* incluye los componentes necesarios para una instalación por " +"defecto y solo requiere de una conexión a internet para características " +"opcionales. Consultar :ref:`install-layout-option` para conocer otras formas " +"de evitar descargas durante la instalación." #: ../Doc/using/windows.rst:65 msgid "After starting the installer, one of two options may be selected:" msgstr "" +"Luego de iniciar el instalador, se puede seleccionar una de estas dos " +"opciones:" #: ../Doc/using/windows.rst:69 msgid "If you select \"Install Now\":" -msgstr "" +msgstr "Si se selecciona \"Install Now\":" #: ../Doc/using/windows.rst:71 msgid "" "You will *not* need to be an administrator (unless a system update for the C " "Runtime Library is required or you install the :ref:`launcher` for all users)" msgstr "" +"*No* necesitarás ser administrador (a menos que se requiera una " +"actualización de sistema para C Runtime Library o se necesite instalar el :" +"ref:`launcher` para todos los usuarios)" #: ../Doc/using/windows.rst:74 msgid "Python will be installed into your user directory" -msgstr "" +msgstr "Python será instalado en su directorio de usuario" #: ../Doc/using/windows.rst:75 msgid "" "The :ref:`launcher` will be installed according to the option at the bottom " "of the first page" msgstr "" +"El :ref:`launcher` será instalado de acuerdo con la opción en la parte " +"inferior de la primera página" #: ../Doc/using/windows.rst:77 msgid "The standard library, test suite, launcher and pip will be installed" msgstr "" +"La biblioteca estándar, conjunto de pruebas, lanzador y pip serán instalados" #: ../Doc/using/windows.rst:78 msgid "If selected, the install directory will be added to your :envvar:`PATH`" msgstr "" +"Si se selecciona, el directorio de instalación se agregará a su :envvar:" +"`PATH`" #: ../Doc/using/windows.rst:79 msgid "Shortcuts will only be visible for the current user" -msgstr "" +msgstr "Los accesos directos solo serán visibles para al usuario actual" #: ../Doc/using/windows.rst:81 msgid "" @@ -146,51 +198,64 @@ msgid "" "actions. To install debugging symbols or binaries, you will need to use this " "option." msgstr "" +"Si selecciona \"Customize installation\" podrá elegir qué funciones " +"instalar, el destino de la instalación y otras opciones o acciones " +"posinstalación. Para instalar símbolos de depuración o binarios, necesitará " +"usar esta opción." #: ../Doc/using/windows.rst:85 msgid "" "To perform an all-users installation, you should select \"Customize " "installation\". In this case:" msgstr "" +"Para realizar una instalación para todos los usuarios, deberá seleccionar " +"\"Customize installation\". En este caso:" #: ../Doc/using/windows.rst:88 msgid "You may be required to provide administrative credentials or approval" msgstr "" +"Es posible que deba proporcionar credenciales administrativas o aprobación" #: ../Doc/using/windows.rst:89 msgid "Python will be installed into the Program Files directory" -msgstr "" +msgstr "Python será instalado en el directorio Program Files" #: ../Doc/using/windows.rst:90 msgid "The :ref:`launcher` will be installed into the Windows directory" -msgstr "" +msgstr "El :ref:`launcher` será instalado en el directorio Windows" #: ../Doc/using/windows.rst:91 msgid "Optional features may be selected during installation" msgstr "" +"Se pueden seleccionar características opcionales durante la instalación" #: ../Doc/using/windows.rst:92 msgid "The standard library can be pre-compiled to bytecode" -msgstr "" +msgstr "La biblioteca estándar puede ser precompilada a bytecode" #: ../Doc/using/windows.rst:93 msgid "" "If selected, the install directory will be added to the system :envvar:`PATH`" msgstr "" +"Si se selecciona, el directorio de instalación será agregado al :envvar:" +"`PATH` del sistema" #: ../Doc/using/windows.rst:94 msgid "Shortcuts are available for all users" -msgstr "" +msgstr "Los accesos directos están disponibles para todos los usuarios" #: ../Doc/using/windows.rst:99 msgid "Removing the MAX_PATH Limitation" -msgstr "" +msgstr "Quitar el límite de MAX_PATH" #: ../Doc/using/windows.rst:101 msgid "" "Windows historically has limited path lengths to 260 characters. This meant " "that paths longer than this would not resolve and errors would result." msgstr "" +"Windows históricamente ha limitado la longitud de las rutas a 260 " +"caracteres. Esto significaba que rutas de mayor longitud no resolverían y se " +"producirían errores." #: ../Doc/using/windows.rst:104 msgid "" @@ -200,6 +265,11 @@ msgid "" "``HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control" "\\FileSystem@LongPathsEnabled`` to ``1``." 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``." #: ../Doc/using/windows.rst:110 msgid "" @@ -208,18 +278,25 @@ msgid "" "when using strings. (Use of bytes as paths is deprecated on Windows, and " "this feature is not available when using bytes.)" 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.)" #: ../Doc/using/windows.rst:115 msgid "After changing the above option, no further configuration is required." msgstr "" +"Luego de cambiar la opción anterior, no es necesaria ninguna otra " +"configuración." #: ../Doc/using/windows.rst:119 msgid "Support for long paths was enabled in Python." -msgstr "" +msgstr "Se habilitó el soporte para rutas largas en Python." #: ../Doc/using/windows.rst:124 msgid "Installing Without UI" -msgstr "" +msgstr "Instalación sin interfaz de usuario" #: ../Doc/using/windows.rst:126 msgid "" @@ -228,6 +305,12 @@ msgid "" "on many machines without user interaction. These options may also be set " "without suppressing the UI in order to change some of the defaults." msgstr "" +"Todas las opciones disponibles desde la interfaz de usuario del instalador " +"también pueden especificarse desde la línea de comandos, lo cual permite que " +"instaladores mediante scripts repliquen una instalación en muchas máquinas " +"sin la interacción del usuario. Estas opciones también pueden ser " +"configuradas sin anular la interfaz de usuario con el fin de cambiar alguno " +"de los valores predeterminados." #: ../Doc/using/windows.rst:131 msgid "" @@ -236,6 +319,12 @@ msgid "" "and errors, pass the ``/passive`` option. The ``/uninstall`` option may be " "passed to immediately begin removing Python - no prompt will be displayed." msgstr "" +"Para ocultar completamente la interfaz de usuario del instalador e instalar " +"Python de forma silenciosa, use la opción ``/quiet``. Para omitir la " +"interacción con el usuario pero aún así mostrar el progreso y los errores, " +"use la opción ``/passive``. La opción ``/uninstall`` puede ser usada para " +"comenzar a desinstalar Python inmediatamente - no se mostrará ninguna " +"advertencia." #: ../Doc/using/windows.rst:137 msgid "" @@ -243,67 +332,77 @@ msgid "" "``0`` to disable a feature, ``1`` to enable a feature, or a path. The full " "list of available options is shown below." msgstr "" +"Todas las otras opciones se especifican con la forma ``nombre=valor``, " +"siendo el valor usualmente ``0`` para deshabilitar una funcionalidad, ``1`` " +"para habilitar una funcionalidad, o una ruta. La lista completa de opciones " +"disponibles se muestra a continuación." #: ../Doc/using/windows.rst:142 msgid "Name" -msgstr "" +msgstr "Nombre" #: ../Doc/using/windows.rst:142 msgid "Description" -msgstr "" +msgstr "Descripción" #: ../Doc/using/windows.rst:142 msgid "Default" -msgstr "" +msgstr "Predeterminado" #: ../Doc/using/windows.rst:144 msgid "InstallAllUsers" -msgstr "" +msgstr "InstallAllUsers" #: ../Doc/using/windows.rst:144 msgid "Perform a system-wide installation." -msgstr "" +msgstr "Realizar una instalación en todo el sistema." #: ../Doc/using/windows.rst:144 ../Doc/using/windows.rst:167 #: ../Doc/using/windows.rst:170 ../Doc/using/windows.rst:179 #: ../Doc/using/windows.rst:197 ../Doc/using/windows.rst:205 #: ../Doc/using/windows.rst:208 msgid "0" -msgstr "" +msgstr "0" #: ../Doc/using/windows.rst:146 msgid "TargetDir" -msgstr "" +msgstr "TargetDir" #: ../Doc/using/windows.rst:146 msgid "The installation directory" -msgstr "" +msgstr "El directorio de instalación" #: ../Doc/using/windows.rst:146 msgid "Selected based on InstallAllUsers" -msgstr "" +msgstr "Seleccionado de acuerdo a InstallAllUsers" #: ../Doc/using/windows.rst:149 msgid "DefaultAllUsersTargetDir" -msgstr "" +msgstr "DefaultAllUsersTargetDir" #: ../Doc/using/windows.rst:149 msgid "The default installation directory for all-user installs" msgstr "" +"El directorio predeterminado de instalación cuando se instala para todos los " +"usuarios" #: ../Doc/using/windows.rst:149 msgid "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" msgstr "" +":file:`%ProgramFiles%\\\\\\ Python X.Y` o :file:`\\ %ProgramFiles(x86)%\\\\" +"\\ Python X.Y`" #: ../Doc/using/windows.rst:154 msgid "DefaultJustForMeTargetDir" -msgstr "" +msgstr "DefaultJustForMeTargetDir" #: ../Doc/using/windows.rst:154 msgid "The default install directory for just-for-me installs" msgstr "" +"El directorio predeterminado de instalación para instalaciones del usuario " +"actual solamente" #: ../Doc/using/windows.rst:154 #, python-format @@ -312,26 +411,31 @@ msgid "" "\\\\ Programs\\\\PythonXY-32` or :file:`%LocalAppData%\\\\\\ Programs\\" "\\PythonXY-64`" msgstr "" +":file:`%LocalAppData%\\\\\\ Programs\\\\PythonXY` o :file:`%LocalAppData%\\\\" +"\\ Programs\\\\PythonXY-32` o :file:`%LocalAppData%\\\\\\ Programs\\" +"\\PythonXY-64`" #: ../Doc/using/windows.rst:161 msgid "DefaultCustomTargetDir" -msgstr "" +msgstr "DefaultCustomTargetDir" #: ../Doc/using/windows.rst:161 msgid "The default custom install directory displayed in the UI" msgstr "" +"El valor predeterminado de directorio de instalación personalizado que se " +"muestra en la interfaz de usuario" #: ../Doc/using/windows.rst:161 ../Doc/using/windows.rst:210 msgid "(empty)" -msgstr "" +msgstr "(vacío)" #: ../Doc/using/windows.rst:164 msgid "AssociateFiles" -msgstr "" +msgstr "AssociateFiles" #: ../Doc/using/windows.rst:164 msgid "Create file associations if the launcher is also installed." -msgstr "" +msgstr "Crear asociaciones de archivos si el lanzador también es instalado." #: ../Doc/using/windows.rst:164 ../Doc/using/windows.rst:174 #: ../Doc/using/windows.rst:177 ../Doc/using/windows.rst:181 @@ -340,160 +444,170 @@ msgstr "" #: ../Doc/using/windows.rst:195 ../Doc/using/windows.rst:199 #: ../Doc/using/windows.rst:201 ../Doc/using/windows.rst:203 msgid "1" -msgstr "" +msgstr "1" #: ../Doc/using/windows.rst:167 msgid "CompileAll" -msgstr "" +msgstr "CompileAll" #: ../Doc/using/windows.rst:167 msgid "Compile all ``.py`` files to ``.pyc``." -msgstr "" +msgstr "Compilar todos los archivos ``.py`` a ``.pyc``." #: ../Doc/using/windows.rst:170 msgid "PrependPath" -msgstr "" +msgstr "PrependPath" #: ../Doc/using/windows.rst:170 msgid "" "Add install and Scripts directories to :envvar:`PATH` and ``.PY`` to :envvar:" "`PATHEXT`" msgstr "" +"Agregar directorios de instalación y Scripts a :envvar:`PATH` y ``.PY`` a :" +"envvar:`PATHEXT`" #: ../Doc/using/windows.rst:174 msgid "Shortcuts" -msgstr "" +msgstr "Shortcuts" #: ../Doc/using/windows.rst:174 msgid "" "Create shortcuts for the interpreter, documentation and IDLE if installed." msgstr "" +"Crear accesos directos para el intérprete, documentación e IDLE si está " +"instalado." #: ../Doc/using/windows.rst:177 msgid "Include_doc" -msgstr "" +msgstr "Include_doc" #: ../Doc/using/windows.rst:177 msgid "Install Python manual" -msgstr "" +msgstr "Instalar el manual de Python" #: ../Doc/using/windows.rst:179 msgid "Include_debug" -msgstr "" +msgstr "Include_debug" #: ../Doc/using/windows.rst:179 msgid "Install debug binaries" -msgstr "" +msgstr "Instalar los binarios de depuración" #: ../Doc/using/windows.rst:181 msgid "Include_dev" -msgstr "" +msgstr "Include_dev" #: ../Doc/using/windows.rst:181 msgid "Install developer headers and libraries" -msgstr "" +msgstr "Instalar encabezados y bibliotecas de desarrollo" #: ../Doc/using/windows.rst:184 msgid "Include_exe" -msgstr "" +msgstr "Include_exe" #: ../Doc/using/windows.rst:184 msgid "Install :file:`python.exe` and related files" -msgstr "" +msgstr "Instalar :file:`python.exe` y archivos relacionados" #: ../Doc/using/windows.rst:187 msgid "Include_launcher" -msgstr "" +msgstr "Include_launcher" #: ../Doc/using/windows.rst:187 msgid "Install :ref:`launcher`." -msgstr "" +msgstr "Instalar :ref:`launcher`." #: ../Doc/using/windows.rst:189 msgid "InstallLauncherAllUsers" -msgstr "" +msgstr "InstallLauncherAllUsers" #: ../Doc/using/windows.rst:189 msgid "Installs :ref:`launcher` for all users." -msgstr "" +msgstr "Instalar :ref:`launcher` para todos los usuarios." #: ../Doc/using/windows.rst:192 msgid "Include_lib" -msgstr "" +msgstr "Include_lib" #: ../Doc/using/windows.rst:192 msgid "Install standard library and extension modules" -msgstr "" +msgstr "Instalar la biblioteca estándar y los módulos de extensión" #: ../Doc/using/windows.rst:195 msgid "Include_pip" -msgstr "" +msgstr "Include_pip" #: ../Doc/using/windows.rst:195 msgid "Install bundled pip and setuptools" -msgstr "" +msgstr "Instalar los paquetes pip y setuptools" #: ../Doc/using/windows.rst:197 msgid "Include_symbols" -msgstr "" +msgstr "Include_symbols" #: ../Doc/using/windows.rst:197 msgid "Install debugging symbols (`*`.pdb)" -msgstr "" +msgstr "Instalar los símbolos de depuración (`*`.pdb)" #: ../Doc/using/windows.rst:199 msgid "Include_tcltk" -msgstr "" +msgstr "Include_tcltk" #: ../Doc/using/windows.rst:199 msgid "Install Tcl/Tk support and IDLE" -msgstr "" +msgstr "Instalar IDLE y soporte para Tcl/Tk" #: ../Doc/using/windows.rst:201 msgid "Include_test" -msgstr "" +msgstr "Include_test" #: ../Doc/using/windows.rst:201 msgid "Install standard library test suite" -msgstr "" +msgstr "Instalar el conjunto de pruebas de la biblioteca estándar" #: ../Doc/using/windows.rst:203 msgid "Include_tools" -msgstr "" +msgstr "Include_tools" #: ../Doc/using/windows.rst:203 msgid "Install utility scripts" -msgstr "" +msgstr "Instalar scripts de utilidades" #: ../Doc/using/windows.rst:205 msgid "LauncherOnly" -msgstr "" +msgstr "LauncherOnly" #: ../Doc/using/windows.rst:205 msgid "Only installs the launcher. This will override most other options." msgstr "" +"Instalar solo el lanzador. Esto anulará la mayoría de las otras opciones." #: ../Doc/using/windows.rst:208 msgid "SimpleInstall" -msgstr "" +msgstr "SimpleInstall" #: ../Doc/using/windows.rst:208 msgid "Disable most install UI" -msgstr "" +msgstr "Deshabilitar muchas de las partes de la interfaz de usuario" #: ../Doc/using/windows.rst:210 msgid "SimpleInstallDescription" -msgstr "" +msgstr "SimpleInstallDescription" #: ../Doc/using/windows.rst:210 msgid "A custom message to display when the simplified install UI is used." msgstr "" +"Un mensaje personalizado para mostrar cuando se use la versión simplificada " +"de la interfaz de usuario de instalación." #: ../Doc/using/windows.rst:214 msgid "" "For example, to silently install a default, system-wide Python installation, " "you could use the following command (from an elevated command prompt)::" msgstr "" +"Por ejemplo, para realizar de forma silenciosa una instalación " +"predeterminada de Python para todo el sistema, se puede usar el siguiente " +"comando (desde un símbolo del sistema con privilegios elevados)::" #: ../Doc/using/windows.rst:219 msgid "" @@ -501,6 +615,10 @@ msgid "" "suite, you could provide a shortcut with the following command. This will " "display a simplified initial page and disallow customization::" msgstr "" +"Para permitir que los usuarios instalen fácilmente una copia personal de " +"Python sin el conjunto de pruebas, se puede proporcionar un acceso directo " +"con el siguiente comando. Esto mostrará una página inicial simplificada y no " +"permitirá la personalización:" #: ../Doc/using/windows.rst:226 msgid "" @@ -508,6 +626,10 @@ msgid "" "recommended for per-user installs when there is also a system-wide " "installation that included the launcher.)" msgstr "" +"(Tener en cuenta que al omitir el lanzador también se omiten las " +"asociaciones de archivos y solo es recomendable hacerlo para instalaciones " +"por usuario cuando ya hay una instalación en todo el sistema que incluye el " +"lanzador.)" #: ../Doc/using/windows.rst:230 msgid "" @@ -517,10 +639,16 @@ msgid "" "number if possible. Values provided as element text are always left as " "strings. This example file sets the same options as the previous example:" msgstr "" +"Las opciones enumeradas anteriormente también se pueden proporcionar en un " +"archivo de nombre ``unattend.xml`` junto al ejecutable. Este archivo " +"especifica una lista de opciones y valores. Cuando un valor se proporciona " +"como un atributo, se convertirá a número si es posible. Los valores " +"proporcionados como elementos de texto siempre se dejan como cadenas. Este " +"archivo de ejemplo configura las mismas opciones que el ejemplo anterior:" #: ../Doc/using/windows.rst:249 msgid "Installing Without Downloading" -msgstr "" +msgstr "Instalación sin descargas" #: ../Doc/using/windows.rst:251 msgid "" @@ -532,6 +660,14 @@ msgid "" "be bigger than required, but where a large number of installations are going " "to be performed it is very useful to have a locally cached copy." msgstr "" +"Como algunas características de Python no se incluyen con la descarga " +"inicial del instalador, la selección de estas características podría " +"requerir de una conexión a internet. Para evitar esta necesidad, todos los " +"posibles componentes pueden ser descargados a pedido para crear una " +"estructura que no necesitará una conexión a internet, independientemente de " +"las características que se seleccionen. Tener en cuenta que esta descarga " +"puede ser más grande de lo necesario, pero si se va a realizar un gran " +"número de instalaciones es muy útil tener una copia en la caché local." #: ../Doc/using/windows.rst:259 msgid "" @@ -540,22 +676,33 @@ msgid "" "name of your installer, and to create layouts in their own directories to " "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." #: ../Doc/using/windows.rst:268 msgid "" "You may also specify the ``/quiet`` option to hide the progress display." msgstr "" +"También se puede especificar la opción ``/quiet`` para no mostrar el " +"progreso." #: ../Doc/using/windows.rst:271 msgid "Modifying an install" -msgstr "" +msgstr "Modificar una instalación" +# La aplicación "Programs and Features" es "Programas y características" en Windows en español, y las acciones figuran como "Desinstalar", "Cambiar" y "Reparar" #: ../Doc/using/windows.rst:273 msgid "" "Once Python has been installed, you can add or remove features through the " "Programs and Features tool that is part of Windows. Select the Python entry " "and choose \"Uninstall/Change\" to open the installer in maintenance mode." msgstr "" +"Una vez que Python ha sido instalado, se puede agregar o quitar funciones a " +"través de la herramienta Programas y características que es parte de " +"Windows. Seleccionar la entrada Python y elegir \"Desinstalar/Cambiar\" para " +"abrir el instalador en modo mantenimiento." #: ../Doc/using/windows.rst:277 msgid "" @@ -564,28 +711,40 @@ msgid "" "cannot be changed in this mode, such as the install directory; to modify " "these, you will need to remove and then reinstall Python completely." msgstr "" +"\"Cambiar\" permite agregar o eliminar características modificando las " +"casillas de verificación - aquellas casillas que no se cambien no agregarán " +"ni quitarán nada. Algunas opciones no pueden cambiarse de esta forma, como " +"el directorio de instalación; para modificarlas es necesario eliminar y " +"reinstalar Python completamente." #: ../Doc/using/windows.rst:282 msgid "" "\"Repair\" will verify all the files that should be installed using the " "current settings and replace any that have been removed or modified." msgstr "" +"\"Reparar\" verificará todos los archivos que deben instalarse con la " +"configuración actual y reemplazará los que se hayan eliminado o modificado." #: ../Doc/using/windows.rst:285 msgid "" "\"Uninstall\" will remove Python entirely, with the exception of the :ref:" "`launcher`, which has its own entry in Programs and Features." msgstr "" +"\"Desinstalar\" eliminará Python completamente, a excepción del :ref:" +"`launcher`, el cual posee su propia entrada en Programas y características." #: ../Doc/using/windows.rst:292 msgid "The Microsoft Store package" -msgstr "" +msgstr "El paquete Microsoft Store" #: ../Doc/using/windows.rst:296 msgid "" "The Microsoft Store package is an easily installable Python interpreter that " "is intended mainly for interactive use, for example, by students." msgstr "" +"El paquete de Microsoft Store es un intérprete de Python fácilmente " +"instalable destinado principalmente al uso interactivo, por ejemplo, por " +"estudiantes." #: ../Doc/using/windows.rst:299 msgid "" @@ -593,12 +752,19 @@ msgid "" "search the Microsoft Store app for \"Python |version|\". Ensure that the app " "you select is published by the Python Software Foundation, and install it." 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." #: ../Doc/using/windows.rst:304 msgid "" "Python will always be available for free on the Microsoft Store. If you are " "asked to pay for it, you have not selected the correct package." msgstr "" +"Python siempre estará disponible de forma gratuita en Microsoft Store. Si se " +"te solicita que pagues por él, entonces el paquete seleccionado no es el " +"correcto." #: ../Doc/using/windows.rst:307 msgid "" @@ -607,6 +773,11 @@ msgid "" "session by typing ``python``. Further, pip and IDLE may be used by typing " "``pip`` or ``idle``. IDLE can also be found in Start." msgstr "" +"Luego de la instalación, Python puede iniciarse a través del menú de Inicio. " +"Como alternativa, también estará disponible desde cualquier símbolo del " +"sistema o sesión de PowerShell al escribir ``python``. Además, pip e IDLE " +"pueden ser usados escribiendo ``pip`` o ``idle``. IDLE también puede ser " +"encontrado en el Inicio." #: ../Doc/using/windows.rst:312 msgid "" @@ -618,12 +789,22 @@ msgid "" "to make sure that ``pip`` and ``idle`` are consistent with whichever version " "of ``python`` is selected." msgstr "" +"Los tres comandos también están disponibles con el número de versión como " +"sufijo, por ejemplo, como ``python3.exe`` y ``python3.x.exe`` así como " +"también ``python.exe`` (donde ``3.x`` es la versión específica que se quiera " +"iniciar, como |version|). Abrir \"Administrar alias de ejecución de " +"aplicaciones\" a través del menú de Inicio para seleccionar cuál versión de " +"Python se asocia con cada comando. Se recomienda asegurarse de que ``pip`` e " +"``idle`` sean consistentes con la versión de ``python`` que esté " +"seleccionada." #: ../Doc/using/windows.rst:320 msgid "" "Virtual environments can be created with ``python -m venv`` and activated " "and used as normal." msgstr "" +"Los entornos virtuales se pueden crear con ``python -m venv`` y se activan y " +"usan normalmente." #: ../Doc/using/windows.rst:323 msgid "" @@ -632,12 +813,18 @@ msgid "" "one from the Microsoft Store. To access the new installation, use ``python3." "exe`` or ``python3.x.exe``." msgstr "" +"Si ha instalado otra versión de Python que se haya agregado a la " +"variable``PATH``, estará disponible como ``python.exe`` en lugar de la de " +"Microsoft Store. Para acceder a la nueva instalación, use ``python3.exe`` o " +"``python3.x.exe``." #: ../Doc/using/windows.rst:328 msgid "" "The ``py.exe`` launcher will detect this Python installation, but will " "prefer installations from the traditional installer." msgstr "" +"El lanzador ``py.exe`` detectará esta instalación de Python, pero priorizará " +"instalaciones realizadas con el instalador tradicional." #: ../Doc/using/windows.rst:331 msgid "" @@ -646,10 +833,15 @@ msgid "" "remove all packages you installed directly into this Python installation, " "but will not remove any virtual environments" msgstr "" +"Para eliminar Python, abra Configuración y utilice Aplicaciones y " +"características, o encuentre Python en el Inicio y mediante click derecho " +"seleccione Desinstalar. La desinstalación eliminará todos los paquetes " +"instalados directamente en esta instalación de Python, pero no eliminará " +"ningún entorno virtual" #: ../Doc/using/windows.rst:337 msgid "Known Issues" -msgstr "" +msgstr "Problemas conocidos" #: ../Doc/using/windows.rst:339 msgid "" @@ -658,10 +850,15 @@ msgid "" "Instead, it will write to a private copy. If your scripts must modify the " "shared locations, you will need to install the full installer." msgstr "" +"Debido a restricciones en las aplicaciones de Microsoft Store, los scripts " +"de Python podrían no tener acceso completo de escritura en ubicaciones " +"compartidas como ``TEMP`` o el registro. En su lugar, se escribirá en una " +"copia privada. Si sus scripts deben modificar las ubicaciones compartidas, " +"necesitará instalar el instalador completo." #: ../Doc/using/windows.rst:348 msgid "The nuget.org packages" -msgstr "" +msgstr "El paquete de nuget.org" #: ../Doc/using/windows.rst:352 msgid "" @@ -670,6 +867,11 @@ msgid "" "install of Python. While nuget is \"the package manager for .NET\", it also " "works perfectly fine for packages containing build-time tools." msgstr "" +"El paquete de nuget.org es un entorno Python de tamaño reducido destinado a " +"usarse en sistemas de integración continua y compilación que no posean una " +"instalación de Python a nivel de sistema. Si bien nuget es \"el " +"administrador de paquetes para .NET\", también funciona perfectamente para " +"paquetes que contienen herramientas de tiempo de compilación." #: ../Doc/using/windows.rst:357 msgid "" @@ -677,6 +879,9 @@ msgid "" "information on using nuget. What follows is a summary that is sufficient for " "Python developers." msgstr "" +"Visite `nuget.org `_ para obtener la información más " +"actualizada sobre cómo usar nuget. Lo que sigue es un resumen que es " +"suficiente para desarrolladores Python." #: ../Doc/using/windows.rst:361 msgid "" @@ -685,6 +890,10 @@ msgid "" "the tool, the latest version of Python for 64-bit or 32-bit machines is " "installed using::" msgstr "" +"La herramienta de línea de comandos ``nuget.exe`` puede ser descargada " +"directamente desde ``https://aka.ms/nugetclidl``, por ejemplo usando curl o " +"PowerShell. Con esta herramienta, la última versión de Python para máquinas " +"de 64 o 32 bit se instala con::" #: ../Doc/using/windows.rst:369 msgid "" @@ -695,6 +904,12 @@ msgid "" "the specific version installed. Inside the subdirectory is a ``tools`` " "directory that contains the Python installation::" msgstr "" +"Para seleccionar una versión específica, agregue ``-Version 3.x.y``. El " +"directorio de salida se puede cambiar desde ``.``, y el paquete se instalará " +"en un subdirectorio. Por defecto, el subdirectorio es nombrado con el mismo " +"nombre del paquete, y sin la opción ``-ExcludeVersion`` este nombre incluirá " +"la versión de instalación especificada. Dentro del subdirectorio hay un " +"directorio ``tools`` que contiene la instalación de Python::" #: ../Doc/using/windows.rst:384 msgid "" @@ -703,6 +918,11 @@ msgid "" "delete the package directory manually and install it again. Many CI systems " "will do this automatically if they do not preserve files between builds." msgstr "" +"En general, los paquetes nuget no son actualizables, y versiones más nuevas " +"deben ser instaladas en paralelo y referenciadas usando la ruta completa. " +"Otra opción es borrar el directorio del paquete de forma manual e instalarlo " +"de nuevo. Muchos sistemas de CI harán esto automáticamente si no mantienen " +"archivos entre compilaciones." #: ../Doc/using/windows.rst:389 msgid "" @@ -711,6 +931,11 @@ msgid "" "+ project to reference the Python install. Including the settings will " "automatically use the headers and import libraries in your build." msgstr "" +"Junto al directorio ``tools`` está el directorio ``build\\native``. Este " +"contiene un archivo de propiedades MSBuild ``Python.props`` que puede ser " +"usado en un proyecto C++ para referenciar la instalación de Python. Al " +"incluir las configuraciones, automáticamente se usarán los encabezados y se " +"importarán las bibliotecas en la compilación." #: ../Doc/using/windows.rst:394 msgid "" @@ -719,10 +944,14 @@ msgid "" "`www.nuget.org/packages/pythonx86 `_ for the 32-bit version." msgstr "" +"Las páginas de información del paquete en nuget.org son `www.nuget.org/" +"packages/python `_ para la versión de " +"64 bit y `www.nuget.org/packages/pythonx86 `_ para la versión de 32 bit." #: ../Doc/using/windows.rst:403 msgid "The embeddable package" -msgstr "" +msgstr "El paquete incrustable" #: ../Doc/using/windows.rst:407 msgid "" @@ -730,6 +959,9 @@ msgid "" "environment. It is intended for acting as part of another application, " "rather than being directly accessed by end-users." msgstr "" +"La distribución incrustable consiste en un archivo ZIP que contiene un " +"mínimo entorno de Python. Está destinado a ser usado como parte de otra " +"aplicación, en lugar de ser accedido directamente por los usuarios finales." #: ../Doc/using/windows.rst:411 msgid "" @@ -741,6 +973,14 @@ msgid "" "tk (including all dependants, such as Idle), pip and the Python " "documentation are not included." msgstr "" +"Al ser extraída, la distribución incrustable está (casi) completamente " +"aislada del sistema del usuario, incluyendo variables de entorno, " +"configuraciones del registro del sistema y paquetes instalados. La " +"biblioteca estándar se incluye como archivos ``.pyc`` precompilados y " +"optimizados dentro de un ZIP, y ``python3.dll``, ``python37.dll``, ``python." +"exe`` y ``pythonw.exe`` están todos proporcionados. Tcl/tk (incluidos sus " +"dependientes, como Idle), pip y la documentación de Python no están " +"incluidos." #: ../Doc/using/windows.rst:420 msgid "" @@ -751,6 +991,12 @@ msgid "" "via Windows Update, and can be detected by finding ``ucrtbase.dll`` in the " "system directory." msgstr "" +"La distribución incrustable no incluye el `Microsoft C Runtime `_ y la responsabilidad " +"de proporcionarlo recae sobre el instalador de la aplicación. El runtime " +"puede haber sido previamente instalado en el sistema de un usuario, o " +"automáticamente vía Windows Update, y puede ser detectado encontrando " +"``ucrtbase.dll`` en el directorio del sistema." #: ../Doc/using/windows.rst:427 msgid "" @@ -762,15 +1008,26 @@ msgid "" "part of the application (\"vendoring\") so that the developer can ensure " "compatibility with newer versions before providing updates to users." msgstr "" +"Los paquetes de terceros deben ser instalados por el instalador de la " +"aplicación junto a la distribución incrustada. El uso de pip para " +"administrar dependencias como en una instalación de Python regular no es " +"soportado por esta distribución, aunque con cierto cuidado es posible " +"incluir y usar pip para automatizar las actualizaciones. En general, los " +"paquetes de terceros deben ser tratados como parte de la aplicación " +"(\"vendoring\") para que el desarrollador pueda asegurar la compatibilidad " +"con las nuevas versiones antes de proporcionar actualizaciones a los " +"usuarios." #: ../Doc/using/windows.rst:435 msgid "" "The two recommended use cases for this distribution are described below." msgstr "" +"Los dos casos de uso recomendados para esta distribución se describen a " +"continuación." #: ../Doc/using/windows.rst:438 msgid "Python Application" -msgstr "" +msgstr "Aplicación Python" #: ../Doc/using/windows.rst:440 msgid "" @@ -780,6 +1037,11 @@ msgid "" "transparent it should be (or conversely, how professional it should appear), " "there are two options." msgstr "" +"Una aplicación escrita en Python no necesariamente requiere que los usuarios " +"sean conscientes de ese hecho. La distribución incrustada puede ser usada en " +"este caso para incluir una versión privada de Python en un paquete de " +"instalación. Dependiendo de lo transparente que deba ser (o por el " +"contrario, de lo profesional que deba parecer), hay dos opciones." #: ../Doc/using/windows.rst:446 msgid "" @@ -791,6 +1053,14 @@ msgid "" "launcher should simply be able to call ``Py_Main`` with a hard-coded command " "line." msgstr "" +"El uso de un ejecutable especializado como lanzador requiere algo de código, " +"pero proporciona la experiencia más transparente para los usuarios. Con un " +"lanzador personalizado, no hay indicadores obvios de que el programa se " +"ejecuta en Python: los íconos pueden ser personalizados, se puede " +"especificar información de la compañía y de la versión, y las asociaciones " +"de archivos se comportan correctamente. En la mayoría de los casos, un " +"lanzador personalizado debería simplemente poder invocar ``Py_Main`` " +"utilizando una línea de comandos codificada." #: ../Doc/using/windows.rst:453 msgid "" @@ -800,6 +1070,12 @@ msgid "" "Python and not its actual name, and users may have trouble distinguishing it " "from other running Python processes or file associations." msgstr "" +"El enfoque más simple es proporcionar un archivo por lotes o un acceso " +"directo generado que directamente invoque ``python.exe`` o ``pythonw.exe`` " +"con los argumentos de línea de comandos requeridos. En este caso, la " +"aplicación aparecerá como Python y no con su nombre real, y los usuarios " +"podrían tener problemas para distinguirla de otros procesos Python en " +"ejecución o asociaciones de archivos." #: ../Doc/using/windows.rst:459 msgid "" @@ -809,10 +1085,15 @@ msgid "" "there is an opportunity to specify the search path before launching the " "application." msgstr "" +"Con este último enfoque, los paquetes deben instalarse como directorios " +"junto al ejecutable de Python para asegurar su disponibilidad en la ruta. " +"Con el lanzador especializado, los paquetes pueden encontrarse en otras " +"ubicaciones ya que hay oportunidad de especificar la ruta de búsqueda antes " +"de iniciar la aplicación." #: ../Doc/using/windows.rst:465 msgid "Embedding Python" -msgstr "" +msgstr "Incrustar Python" #: ../Doc/using/windows.rst:467 msgid "" @@ -824,6 +1105,13 @@ msgid "" "application installation is sufficient to provide a loadable Python " "interpreter." msgstr "" +"Las aplicaciones escritas en código nativo frecuentemente requieren algún " +"tipo de lenguaje de scripting, y la distribución de Python incrustada puede " +"ser utilizada con ese propósito. En general, la mayoría de la aplicación " +"utiliza código nativo, y alguna parte invocará ``python.exe`` o usará " +"``python3.dll`` directamente. Para cualquiera de estos casos, la extracción " +"de la distribución incrustable a un subdirectorio de la instalación de la " +"aplicación es suficiente para proporcionar un intérprete de Python invocable." #: ../Doc/using/windows.rst:474 msgid "" @@ -832,10 +1120,15 @@ msgid "" "interpreter. Otherwise, there is no fundamental differences between using " "the embedded distribution and a regular installation." msgstr "" +"Al igual que con el uso de la aplicación, los paquetes pueden ser instalados " +"en cualquier ubicación, ya que existe la posibilidad de especificar rutas de " +"búsqueda antes de inicializar el intérprete. Más allá de esto, no existen " +"diferencias fundamentales entre el uso de la distribución incrustada y una " +"instalación normal." #: ../Doc/using/windows.rst:481 msgid "Alternative bundles" -msgstr "" +msgstr "Distribuciones alternativas" #: ../Doc/using/windows.rst:483 msgid "" @@ -843,54 +1136,67 @@ msgid "" "including additional functionality. The following is a list of popular " "versions and their key features:" msgstr "" +"Además de la distribución estándar de CPython, hay paquetes modificados que " +"incluyen funcionalidad adicional. La siguiente es una lista de versiones " +"populares y sus características clave:" #: ../Doc/using/windows.rst:488 msgid "`ActivePython `_" -msgstr "" +msgstr "`ActivePython `_" #: ../Doc/using/windows.rst:488 msgid "Installer with multi-platform compatibility, documentation, PyWin32" msgstr "" +"Instalador compatible con múltiples plataformas, documentación, PyWin32" #: ../Doc/using/windows.rst:492 msgid "`Anaconda `_" -msgstr "" +msgstr "`Anaconda `_" #: ../Doc/using/windows.rst:491 msgid "" "Popular scientific modules (such as numpy, scipy and pandas) and the " "``conda`` package manager." msgstr "" +"Módulos científicos populares (como numpy, scipy y pandas) y el gestor de " +"paquetes ``conda``." #: ../Doc/using/windows.rst:496 msgid "`Canopy `_" -msgstr "" +msgstr "`Canopy `_" #: ../Doc/using/windows.rst:495 msgid "" "A \"comprehensive Python analysis environment\" with editors and other " "development tools." msgstr "" +"Un \"entorno de análisis integral de Python\" con editores y otras " +"herramientas de desarrollo." #: ../Doc/using/windows.rst:500 msgid "`WinPython `_" -msgstr "" +msgstr "`WinPython `_" #: ../Doc/using/windows.rst:499 msgid "" "Windows-specific distribution with prebuilt scientific packages and tools " "for building packages." msgstr "" +"Distribución específica para Windows con paquetes científicos precompilados " +"y herramientas para construir paquetes." #: ../Doc/using/windows.rst:502 msgid "" "Note that these packages may not include the latest versions of Python or " "other libraries, and are not maintained or supported by the core Python team." msgstr "" +"Tenga en cuenta que estos paquetes pueden no incluir la última versión de " +"Python u otras bibliotecas, y no son mantenidos ni respaldados por el equipo " +"central de Python." #: ../Doc/using/windows.rst:508 msgid "Configuring Python" -msgstr "" +msgstr "Configuración de Python" #: ../Doc/using/windows.rst:510 msgid "" @@ -900,28 +1206,42 @@ msgid "" "is only reliable for a single, system-wide installation. If you regularly " "use multiple versions of Python, consider using the :ref:`launcher`." msgstr "" +"Para ejecutar Python convenientemente desde el símbolo del sistema, puede " +"considerar cambiar algunas variables de entorno predeterminadas de Windows. " +"Si bien el instalador proporciona una opción para configurar las variables " +"PATH y PATHEXT, esto solo es confiable para una única instalación en todo el " +"sistema. Si utiliza varias versiones de Python con regularidad, considere " +"usar el :ref:`launcher`." #: ../Doc/using/windows.rst:520 msgid "Excursus: Setting environment variables" -msgstr "" +msgstr "Excurso: configurar variables de entorno" #: ../Doc/using/windows.rst:522 msgid "" "Windows allows environment variables to be configured permanently at both " "the User level and the System level, or temporarily in a command prompt." msgstr "" +"Windows permite configurar las variables de entorno de forma permanente a " +"nivel de usuario y a nivel de sistema, o temporalmente en el símbolo del " +"sistema." #: ../Doc/using/windows.rst:525 msgid "" "To temporarily set environment variables, open Command Prompt and use the :" "command:`set` command:" msgstr "" +"Para configurar una variable de entorno temporal, abra el símbolo del " +"sistema y utilice el comando :command:`set`:" #: ../Doc/using/windows.rst:534 msgid "" "These changes will apply to any further commands executed in that console, " "and will be inherited by any applications started from the console." msgstr "" +"Estos cambios serán aplicados a cualquier comando que de aquí en más se " +"ejecute en esa consola, y serán heredados por cualquier aplicación iniciada " +"desde esa consola." #: ../Doc/using/windows.rst:537 msgid "" @@ -931,6 +1251,11 @@ msgid "" "exe` to the start is a common way to ensure the correct version of Python is " "launched." msgstr "" +"Si se incluye el nombre de la variable entre signos de porcentaje, esta se " +"expande al valor existente, permitiendo agregar un nuevo valor tanto al " +"principio como al final. Modificar :envvar:`PATH` agregando el directorio " +"que contiene :program:`python.exe` al comienzo es una forma común de " +"asegurar que se ejecuta la versión correcta de Python." #: ../Doc/using/windows.rst:543 msgid "" @@ -941,12 +1266,22 @@ msgid "" "variables. To change System variables, you need non-restricted access to " "your machine (i.e. Administrator rights)." msgstr "" +"Para modificar permanentemente las variables de entorno predeterminadas, " +"haga click en Inicio y busque 'editar las variables de entorno', o abra " +"Sistema, :guilabel:`Configuración avanzada del sistema` y haga click en el " +"botón :guilabel:`Variables de entorno`. En este diálogo, se pueden agregar o " +"modificar variables del usuario o del sistema. Para cambiar variables del " +"sistema, se necesita acceso no restringido al equipo (por ej. con " +"credenciales de administrador)." #: ../Doc/using/windows.rst:552 msgid "" "Windows will concatenate User variables *after* System variables, which may " "cause unexpected results when modifying :envvar:`PATH`." msgstr "" +"Windows concatenará las variables de usuario *luego* de las variables del " +"sistema, lo cual puede causar resultados inesperados cuando se modifica :" +"envvar:`PATH`." #: ../Doc/using/windows.rst:555 msgid "" @@ -955,52 +1290,58 @@ msgid "" "only includes code that is compatible with all of your installed Python " "versions." msgstr "" +"La variable :envvar:`PYTHONPATH` es utilizada por todas las versiones de " +"Python 2 y Python 3, por lo que no se debería configurar de forma permanente " +"a menos que sólo incluya código que sea compatible con todas las versiones " +"de Python instaladas." #: ../Doc/using/windows.rst:563 msgid "https://www.microsoft.com/en-us/wdsi/help/folder-variables" -msgstr "" +msgstr "https://www.microsoft.com/en-us/wdsi/help/folder-variables" #: ../Doc/using/windows.rst:563 msgid "Environment variables in Windows NT" -msgstr "" +msgstr "Variables de entorno en Windows NT" #: ../Doc/using/windows.rst:566 msgid "https://technet.microsoft.com/en-us/library/cc754250.aspx" -msgstr "" +msgstr "https://technet.microsoft.com/en-us/library/cc754250.aspx" #: ../Doc/using/windows.rst:566 msgid "The SET command, for temporarily modifying environment variables" -msgstr "" +msgstr "El comando SET, para modificar temporalmente variables de entorno" #: ../Doc/using/windows.rst:569 msgid "https://technet.microsoft.com/en-us/library/cc755104.aspx" -msgstr "" +msgstr "https://technet.microsoft.com/en-us/library/cc755104.aspx" #: ../Doc/using/windows.rst:569 msgid "The SETX command, for permanently modifying environment variables" -msgstr "" +msgstr "El comando SETX, para modificar permanentemente variables de entorno" #: ../Doc/using/windows.rst:572 msgid "" "https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-" "variables-in-windows-xp" msgstr "" +"https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-" +"variables-in-windows-xp" #: ../Doc/using/windows.rst:572 msgid "How To Manage Environment Variables in Windows XP" -msgstr "" +msgstr "Cómo gestionar variables de entorno en Windows XP" #: ../Doc/using/windows.rst:574 msgid "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" -msgstr "" +msgstr "https://www.chem.gla.ac.uk/~louis/software/faq/q1.html" #: ../Doc/using/windows.rst:575 msgid "Setting Environment variables, Louis J. Farrugia" -msgstr "" +msgstr "Configurar variables de entorno, Louis J. Farrugia" #: ../Doc/using/windows.rst:580 msgid "Finding the Python executable" -msgstr "" +msgstr "Encontrar el ejecutable de Python" #: ../Doc/using/windows.rst:584 msgid "" @@ -1008,6 +1349,10 @@ msgid "" "interpreter, you might want to start Python in the command prompt. The " "installer has an option to set that up for you." msgstr "" +"Además de utilizar la entrada para el intérprete de Python creada " +"automáticamente en el menú de Inicio, es posible que desee iniciar Python " +"desde el símbolo del sistema. El instalador posee una opción para realizar " +"esa configuración." #: ../Doc/using/windows.rst:588 msgid "" @@ -1019,6 +1364,13 @@ msgid "" "your scripts with command line options, see :ref:`using-on-cmdline` " "documentation." msgstr "" +"En la primera página del instalador, la opción llamada \"Add Python to PATH" +"\" puede ser seleccionada para que el instalador agregue la ubicación de " +"instalación a :envvar:`PATH`. La ubicación del directorio :file:`Scripts\\" +"\\` también es agregada. Esto permite escribir :command:`python` para " +"iniciar el intérprete, y :command:`pip` para el instalador de paquetes. De " +"esta manera los scripts también pueden ser ejecutados con opciones de línea " +"de comandos, consulte la documentación de :ref:`using-on-cmdline`." #: ../Doc/using/windows.rst:595 msgid "" @@ -1030,10 +1382,18 @@ msgid "" "entries. An example variable could look like this (assuming the first two " "entries already existed)::" msgstr "" +"Si no se activa esta opción durante la instalación, en cualquier momento se " +"puede ejecutar nuevamente el instalador, seleccionar Modify, y activarla. " +"Otra alternativa es modificar :envvar:`PATH` manualmente siguiendo las " +"instrucciones en :ref:`setting-envvars`. Se necesita configurar la variable " +"de entorno :envvar:`PATH` para que incluya el directorio de instalación de " +"Python, separándolo con punto y coma (;) de las otras entradas. Una variable " +"de ejemplo pude verse así (suponiendo que las dos primeras entradas ya " +"existían)::" #: ../Doc/using/windows.rst:608 msgid "UTF-8 mode" -msgstr "" +msgstr "Modo UTF-8" #: ../Doc/using/windows.rst:612 msgid "" @@ -1041,12 +1401,18 @@ msgid "" "Page). Python uses it for the default encoding of text files (e.g. :func:" "`locale.getpreferredencoding`)." msgstr "" +"Windows aún utiliza codificación heredada para la codificación del sistema " +"(la página de códigos ANSI). Python la utiliza para la codificación por " +"defecto de archivos de texto (por ej. :func:`locale.getpreferredencoding`)." #: ../Doc/using/windows.rst:616 msgid "" "This may cause issues because UTF-8 is widely used on the internet and most " "Unix systems, including WSL (Windows Subsystem for Linux)." msgstr "" +"Esto puede causar problemas porque UTF-8 es ampliamente utilizado en " +"internet y en la mayoría de los sistemas Unix, incluido WSL (subsistema de " +"Windows para Linux)." #: ../Doc/using/windows.rst:619 msgid "" @@ -1056,10 +1422,15 @@ msgid "" "enabling UTF-8 mode, and :ref:`setting-envvars` for how to modify " "environment variables." msgstr "" +"Se puede utilizar el modo UTF-8 para cambiar la codificación predeterminada " +"a UTF-8. El modo UTF-8 se puede activar mediante la opción de línea de " +"comandos ``-X utf-8``, o con la variable de entorno ``PYTHONUTF8=1``. " +"Consulte :envvar:`PYTHONUTF8` para activar el modo UTF-8, y :ref:`setting-" +"envvars` para saber cómo modificar las variables de entorno." #: ../Doc/using/windows.rst:625 msgid "When UTF-8 mode is enabled:" -msgstr "" +msgstr "Cuando el modo UTF-8 está activado:" #: ../Doc/using/windows.rst:627 msgid "" @@ -1068,16 +1439,24 @@ msgid "" "many places, including :func:`open`, :class:`Popen`, :meth:`Path.read_text`, " "etc." msgstr "" +":func:`locale.getpreferredencoding` retorna ``'UTF-8'`` en lugar de la " +"codificación del sistema. Esta función es utilizada como la codificación de " +"texto predeterminada en muchos lugares, incluidos :func:`open`, :class:" +"`Popen`, :meth:`Path.read_text`, etc." #: ../Doc/using/windows.rst:631 msgid "" ":data:`sys.stdin`, :data:`sys.stdout`, and :data:`sys.stderr` all use UTF-8 " "as their text encoding." msgstr "" +":data:`sys.stdin`, :data:`sys.stdout`, y :data:`sys.stderr` utilizan la " +"codificación de texto UTF-8." #: ../Doc/using/windows.rst:633 msgid "You can still use the system encoding via the \"mbcs\" codec." msgstr "" +"Siempre se puede utilizar la codificación del sistema mediante el códec " +"\"mbcs\"." #: ../Doc/using/windows.rst:635 msgid "" @@ -1087,24 +1466,35 @@ msgid "" "recommended to set the environment variable temporarily or use the ``-X " "utf8`` command line option." msgstr "" +"Tenga en cuenta que agregar ``PYTHONUTF8=1`` a las variables de entorno " +"predeterminadas afectará a todas las aplicaciones de Python 3.7+ en el " +"sistema. Si utiliza alguna aplicación de Python 3.7+ que depende de la " +"codificación heredada del sistema, se recomienda que se configure la " +"variable de entorno solo temporalmente o se use la opción de línea de " +"comandos ``-X utf8``." #: ../Doc/using/windows.rst:642 msgid "" "Even when UTF-8 mode is disabled, Python uses UTF-8 by default on Windows " "for:" msgstr "" +"Aún con el modo UTF-8 desactivado, Python utiliza UTF-8 de forma " +"predeterminada en Windows para:" #: ../Doc/using/windows.rst:645 msgid "Console I/O including standard I/O (see :pep:`528` for details)." msgstr "" +"E/S de consola, incluida la E/S estándar (consultar :pep:`528` para más " +"detalles)." #: ../Doc/using/windows.rst:646 msgid "The filesystem encoding (see :pep:`529` for details)." msgstr "" +"Codificación del sistema de archivos (ver :pep:`529` para más detalles)." #: ../Doc/using/windows.rst:652 msgid "Python Launcher for Windows" -msgstr "" +msgstr "Lanzador de Python para Windows" #: ../Doc/using/windows.rst:656 msgid "" @@ -1113,6 +1503,10 @@ msgid "" "line) to indicate a preference for a specific Python version, and will " "locate and execute that version." msgstr "" +"El lanzador de Python para Windows es una utilidad que ayuda en la ubicación " +"y ejecución de diferentes versiones de Python. Este permite que los scripts " +"(o la línea de comandos) indiquen preferencia por una versión específica de " +"Python, y ubicará y ejecutará esa versión." #: ../Doc/using/windows.rst:661 msgid "" @@ -1121,18 +1515,22 @@ msgid "" "over system-wide ones, and orders by language version rather than using the " "most recently installed version." msgstr "" +"A diferencia de la variable :envvar:`PATH`, el lanzador seleccionará " +"correctamente la versión más apropiada de Python. Priorizará instalaciones " +"del usuario por sobre instalaciones de todo el sistema, y ordenará por " +"versión del lenguaje en lugar de utilizar la más recientemente instalada." #: ../Doc/using/windows.rst:666 msgid "The launcher was originally specified in :pep:`397`." -msgstr "" +msgstr "El lanzador se especificó originalmente en :pep:`397`." #: ../Doc/using/windows.rst:669 msgid "Getting started" -msgstr "" +msgstr "Comenzar" #: ../Doc/using/windows.rst:672 msgid "From the command-line" -msgstr "" +msgstr "Desde la línea de comandos" #: ../Doc/using/windows.rst:676 msgid "" @@ -1141,6 +1539,11 @@ msgid "" "of Python, so it does not matter which version is installed. To check that " "the launcher is available, execute the following command in Command Prompt:" msgstr "" +"Las instalaciones en todo el sistema de Python 3.3 y posteriores agregarán " +"la ubicación del lanzador a :envvar:`PATH`. El lanzador es compatible con " +"todas las versiones de Python disponibles, por lo que no importa cuál es la " +"versión que está instalada. Para verificar que el lanzador está disponible, " +"ejecute el siguiente comando en el símbolo del sistema:" #: ../Doc/using/windows.rst:685 msgid "" @@ -1148,6 +1551,9 @@ msgid "" "started - it can be exited as normal, and any additional command-line " "arguments specified will be sent directly to Python." msgstr "" +"Debería suceder que se inicia la última versión de Python instalada - se " +"puede cerrar normalmente, y todo argumento adicional especificado por línea " +"de comandos será enviado directamente a Python." #: ../Doc/using/windows.rst:689 msgid "" @@ -1155,30 +1561,37 @@ msgid "" "you will have noticed that Python |version| was started - to launch Python " "2.7, try the command:" msgstr "" +"Si hay múltiples versiones de Python instaladas (por ej. 2.7 y |version|) " +"habrá notado que se inició Python |version| - para iniciar Python 2.7, " +"ejecute el comando:" #: ../Doc/using/windows.rst:697 msgid "" "If you want the latest version of Python 2.x you have installed, try the " "command:" msgstr "" +"Si se quiere la última versión instalada de Python 2.x, ejecute el comando:" #: ../Doc/using/windows.rst:704 msgid "You should find the latest version of Python 2.x starts." -msgstr "" +msgstr "La última versión de Python 2.x debería iniciarse." #: ../Doc/using/windows.rst:706 msgid "If you see the following error, you do not have the launcher installed:" -msgstr "" +msgstr "Si ve el siguiente error es porque el lanzador no está instalado:" #: ../Doc/using/windows.rst:713 msgid "" "Per-user installations of Python do not add the launcher to :envvar:`PATH` " "unless the option was selected on installation." msgstr "" +"Las instalaciones por usuario de Python no agregan la ubicación del lanzador " +"a :envvar:`PATH` a menos que la opción haya sido seleccionada durante la " +"instalación." #: ../Doc/using/windows.rst:717 msgid "Virtual environments" -msgstr "" +msgstr "Entornos virtuales" #: ../Doc/using/windows.rst:721 msgid "" @@ -1189,26 +1602,37 @@ msgid "" "interpreter, either deactivate the virtual environment, or explicitly " "specify the global Python version." msgstr "" +"Si el lanzador es ejecutado sin explícita especificación de la versión de " +"Python, y un entorno virtual se encuentra activo (creado con el módulo :mod:" +"`venv` de la biblioteca estándar o con la herramienta externa " +"``virtualenv``), el lanzador ejecutará el intérprete del entorno virtual en " +"lugar del global. Para ejecutar el intérprete global, desactive el entorno " +"virtual o especifique explícitamente la versión global de Python." #: ../Doc/using/windows.rst:729 msgid "From a script" -msgstr "" +msgstr "Desde un script" #: ../Doc/using/windows.rst:731 msgid "" "Let's create a test Python script - create a file called ``hello.py`` with " "the following contents" msgstr "" +"Vamos a crear un script de Python para una prueba - cree un archivo llamado " +"``hello.py`` con el siguiente contenido" #: ../Doc/using/windows.rst:740 msgid "From the directory in which hello.py lives, execute the command:" msgstr "" +"Desde el directorio en donde se encuentra hello.py, ejecute el comando:" #: ../Doc/using/windows.rst:746 msgid "" "You should notice the version number of your latest Python 2.x installation " "is printed. Now try changing the first line to be:" msgstr "" +"Debería notar que se imprime el número de versión de la última instalación " +"de Python 2.x. Ahora pruebe cambiando la primera línea por:" #: ../Doc/using/windows.rst:753 msgid "" @@ -1218,6 +1642,12 @@ msgid "" "first line to ``#! python2.6`` and you should find the 2.6 version " "information printed." msgstr "" +"Al ejecutar nuevamente el comando se debería imprimir la información del " +"último Python 3.x. Al igual que en los ejemplos de línea de comandos " +"anteriores, se puede especificar un calificador de versión más explícito. " +"Suponiendo que tiene instalado Python 2.6, pruebe cambiar la primera línea a " +"``#! python2.6`` y debería ver que se imprime la información de la versión " +"2.6." #: ../Doc/using/windows.rst:759 msgid "" @@ -1226,10 +1656,14 @@ msgid "" "compatibility and for compatibility with Unix, where the command ``python`` " "typically refers to Python 2." msgstr "" +"Tenga en cuenta que a diferencia del uso interactivo, el comando \"python" +"\" (a secas) utilizará la última versión de Python 2.x que esté instalada. " +"Esto es así por compatibilidad con versiones anteriores y por compatibilidad " +"con Unix, donde el comando ``python`` usualmente refiere a Python 2." #: ../Doc/using/windows.rst:765 msgid "From file associations" -msgstr "" +msgstr "Desde asociaciones de archivos" #: ../Doc/using/windows.rst:767 msgid "" @@ -1239,16 +1673,25 @@ msgid "" "be used, and therefore you can use the same facilities described above to " "have the script specify the version which should be used." msgstr "" +"El lanzador debería haber sido asociado con archivos de Python (por ej. " +"archivos ``.py``, ``.pyw`` y ``.pyc``) cuando fue instalado. Esto significa " +"que cuando se haga doble click sobre alguno de estos archivos desde el " +"explorador de Windows se utilizará el lanzador, por lo que se pueden " +"utilizar las mismas funciones descritas anteriormente para que el script " +"especifique la versión que debería usarse." #: ../Doc/using/windows.rst:773 msgid "" "The key benefit of this is that a single launcher can support multiple " "Python versions at the same time depending on the contents of the first line." msgstr "" +"El beneficio clave de esto es que un único lanzador puede soportar múltiples " +"versiones de Python al mismo tiempo dependiendo del contenido de la primera " +"línea." #: ../Doc/using/windows.rst:777 msgid "Shebang Lines" -msgstr "" +msgstr "Líneas shebang" #: ../Doc/using/windows.rst:779 msgid "" @@ -1259,6 +1702,12 @@ msgid "" "facilities to be used with Python scripts on Windows and the examples above " "demonstrate their use." msgstr "" +"Si la primera línea de un script comienza con ``#!``, esta se denomina línea " +"\"shebang\". Linux y otros sistemas operativos tipo Unix soportan de forma " +"nativa este tipo de líneas y son comúnmente utilizadas en dichos sistemas " +"para indicar cómo debería ser ejecutado un script. Este lanzador permite que " +"la misma funcionalidad pueda ser utilizada con scripts de Python en Windows, " +"y los ejemplos anteriores demuestran su uso." #: ../Doc/using/windows.rst:786 msgid "" @@ -1266,26 +1715,29 @@ msgid "" "Windows, this launcher supports a number of 'virtual' commands to specify " "which interpreter to use. The supported virtual commands are:" msgstr "" +"Para permitir que las líneas shebang de scripts de Python sean trasladables " +"entre Unix y Windows, este lanzador soporta varios comandos 'virtuales' para " +"especificar qué intérprete utilizar. Los comandos virtuales soportados son:" #: ../Doc/using/windows.rst:790 msgid "``/usr/bin/env python``" -msgstr "" +msgstr "``/usr/bin/env python``" #: ../Doc/using/windows.rst:791 msgid "``/usr/bin/python``" -msgstr "" +msgstr "``/usr/bin/python``" #: ../Doc/using/windows.rst:792 msgid "``/usr/local/bin/python``" -msgstr "" +msgstr "``/usr/local/bin/python``" #: ../Doc/using/windows.rst:793 msgid "``python``" -msgstr "" +msgstr "``python``" #: ../Doc/using/windows.rst:795 msgid "For example, if the first line of your script starts with" -msgstr "" +msgstr "Por ejemplo, si la primera línea del script comienza con" #: ../Doc/using/windows.rst:801 msgid "" @@ -1295,6 +1747,12 @@ msgid "" "script on Windows which you hope will be useful on Unix, you should use one " "of the shebang lines starting with ``/usr``." msgstr "" +"La versión de Python predeterminada será ubicada y utilizada. Como muchos " +"scripts de Python escritos para funcionar en Unix tienen esta línea, debería " +"suceder que estos scripts pueden ser utilizados por el lanzador sin " +"modificaciones. Si está escribiendo un nuevo script en Windows que espera " +"que sea útil en Unix, debería utilizar una de las líneas shebang que " +"comienza con ``/usr``." #: ../Doc/using/windows.rst:807 msgid "" @@ -1304,6 +1762,11 @@ msgid "" "version. I.e. ``/usr/bin/python2.7-32`` will request usage of the 32-bit " "python 2.7." msgstr "" +"A cualquiera de los mencionados comandos virtuales se le puede agregar la " +"versión explícita como sufijo (ya sea solo la versión mayor, o la versión " +"mayor y menor). Además se puede solicitar la versión de 32 bit agregando " +"\"-32\" detrás de la versión menor. Por ej. ``/usr/bin/python2.7-32`` " +"solicitará el uso de la versión de 32 bit de Python 2.7." #: ../Doc/using/windows.rst:815 msgid "" @@ -1311,6 +1774,10 @@ msgid "" "by the \"-64\" suffix. Furthermore it is possible to specify a major and " "architecture without minor (i.e. ``/usr/bin/python3-64``)." msgstr "" +"Desde la versión 3.7 del lanzador de Python es posible solicitar la versión " +"de 64 bit con el sufijo \"-64\". Además es posible especificar una versión " +"mayor y la arquitectura sin la versión menor (por ej. ``/usr/bin/" +"python3-64``)." #: ../Doc/using/windows.rst:819 msgid "" @@ -1320,28 +1787,35 @@ msgid "" "behaviour of the Unix ``env`` program, which performs a :envvar:`PATH` " "search." msgstr "" +"La forma ``/usr/bin/env`` de la línea shebang tiene un significado especial " +"más. Antes de buscar intérpretes de Python instalados, esta forma buscará el " +"ejecutable de Python en :envvar:`PATH`. Esto se corresponde con el " +"comportamiento en Unix del programa ``env``, el cual realiza una búsqueda " +"en :envvar:`PATH`." #: ../Doc/using/windows.rst:825 msgid "Arguments in shebang lines" -msgstr "" +msgstr "Argumentos en líneas shebang" #: ../Doc/using/windows.rst:827 msgid "" "The shebang lines can also specify additional options to be passed to the " "Python interpreter. For example, if you have a shebang line:" msgstr "" +"Las líneas shebang también pueden especificar opciones adicionales para que " +"sean pasadas al intérprete de Python. Por ej. si se tiene esta línea shebang:" #: ../Doc/using/windows.rst:834 msgid "Then Python will be started with the ``-v`` option" -msgstr "" +msgstr "Entonces Python se iniciará con la opción ``-v``" #: ../Doc/using/windows.rst:837 msgid "Customization" -msgstr "" +msgstr "Personalización" #: ../Doc/using/windows.rst:840 msgid "Customization via INI files" -msgstr "" +msgstr "Personalización con archivos INI" #: ../Doc/using/windows.rst:842 msgid "" @@ -1352,6 +1826,12 @@ msgid "" "launcher. The same .ini files are used for both the 'console' version of the " "launcher (i.e. py.exe) and for the 'windows' version (i.e. pyw.exe)." msgstr "" +"El lanzador buscará dos archivos .ini - ``py.ini`` en el directorio de " +"\"datos de aplicación\" del usuario actual (esto es el directorio retornado " +"por el llamado a la función de Windows ``SHGetFolderPath`` con " +"``CSIDL_LOCAL_APPDATA``) y ``py.ini`` en el directorio del lanzador. Los " +"mismos archivos .ini son usados por la versión 'consola' del lanzador (py." +"exe) y por la versión 'ventana' (pyw.exe)." #: ../Doc/using/windows.rst:849 msgid "" @@ -1360,10 +1840,14 @@ msgid "" "write access to the .ini file next to the launcher, can override commands in " "that global .ini file." msgstr "" +"La personalización especificada en el \"directorio de aplicación\" tendrá " +"precedencia por sobre la que esté junto al ejecutable, por lo que un " +"usuario, que podría no tener acceso de escritura al archivo .ini que está " +"junto al lanzador, puede sobrescribir comandos en ese archivo .ini global." #: ../Doc/using/windows.rst:854 msgid "Customizing default Python versions" -msgstr "" +msgstr "Personalizar las versiones de Python predeterminadas" #: ../Doc/using/windows.rst:856 msgid "" @@ -1374,12 +1858,21 @@ msgid "" "specify if a 32 or 64 bit implementation shall be requested by adding " "\"-32\" or \"-64\"." msgstr "" +"En algunos casos, un calificador de versión puede ser incluido en un comando " +"para dictar qué versión de Python será utilizada por dicho comando. Un " +"calificador de versión comienza con el número mayor de la versión y pude ser " +"seguido opcionalmente por un punto ('.') y el número menor de la versión. " +"Además es posible especificar si se solicita una implementación de 32 o 64 " +"bit agregando \"-32\" o \"-64\"." #: ../Doc/using/windows.rst:862 msgid "" "For example, a shebang line of ``#!python`` has no version qualifier, while " "``#!python3`` has a version qualifier which specifies only a major version." msgstr "" +"Por ejemplo, una línea shebang como ``#!python`` no posee calificador de " +"versión, mientras que ``#!python3`` sí tiene un calificador de versión el " +"cual especifica solo el número mayor de la versión." #: ../Doc/using/windows.rst:865 msgid "" @@ -1390,6 +1883,13 @@ msgid "" "\"3.7-64\". (Note that the \"-64\" option is only available with the " "launcher included with Python 3.7 or newer.)" msgstr "" +"Si no se encuentra un calificador de versión en el comando, la variable de " +"entorno :envvar:`PY_PYTHON` puede configurarse para especificar un " +"calificador de versión predeterminado. Si esta no está configurada, por " +"defecto es \"3\". La variable puede especificar cualquier valor que pueda " +"ser pasado por línea de comandos, como \"3\", \"3.7\", \"3.7-32\" o " +"\"3.7-64\". (Tener en cuenta que la opción \"-64\" solo está disponible con " +"el lanzador incluido con Python 3.7 o versiones posteriores.)" #: ../Doc/using/windows.rst:872 msgid "" @@ -1401,6 +1901,14 @@ msgid "" "is likely, although not guaranteed, to be the most recently installed " "version in that family." msgstr "" +"Si no se encuentra ningún calificador de versión menor, la variable de " +"entorno ``PY_PYTHON{major}`` (donde ``{major}`` es el actual calificador de " +"versión mayor según lo determinado antes) puede ser configurada para " +"especificar la versión completa. Si dicha opción no se encuentra, el " +"lanzador enumerará las versiones de Python instaladas y utilizará la última " +"versión menor encontrada para la versión mayor, la cual es probable, aunque " +"no se garantiza, que sea la versión más recientemente instalada de esa " +"familia." #: ../Doc/using/windows.rst:880 msgid "" @@ -1415,10 +1923,21 @@ msgid "" "launcher was installed last). As noted above, an optional \"-32\" or \"-64\" " "suffix can be used on a version specifier to change this behaviour." msgstr "" +"En un Windows de 64 bit con ambas implementaciones de 32 y 64 bit de la " +"misma versión (mayor.menor) de Python instaladas, la versión de 64 bit " +"siempre tendrá precedencia. Esto se cumple para ambas implementaciones de 32 " +"y 64 bit del lanzador - un lanzador de 32 bit priorizará ejecutar una " +"instalación de Python de 64 bit de la versión especificada si está " +"disponible. Esto es así para que el comportamiento del lanzador pueda ser " +"predecible sabiendo solamente qué versiones están instaladas en la PC y sin " +"importar el orden en el cual fueron instaladas (esto es, sin saber si una " +"versión de Python de 32 o 64 bit y su correspondiente lanzador fue la última " +"instalada). Como se especificó antes, el sufijo \"-32\" o \"-64\" puede ser " +"utilizado en el especificador de versión para cambiar este comportamiento." #: ../Doc/using/windows.rst:891 msgid "Examples:" -msgstr "" +msgstr "Ejemplos:" #: ../Doc/using/windows.rst:893 msgid "" @@ -1426,18 +1945,25 @@ msgid "" "use the latest Python 2.x version installed and the command ``python3`` will " "use the latest Python 3.x installed." msgstr "" +"Si no se configura ninguna opción relevante, los comandos ``python`` y " +"``python2`` utilizarán la última versión de Python 2.x instalada y el " +"comando ``python3`` utilizará el último Python 3.x instalado." #: ../Doc/using/windows.rst:897 msgid "" "The commands ``python3.1`` and ``python2.7`` will not consult any options at " "all as the versions are fully specified." msgstr "" +"Los comandos ``python3.1`` y ``python2.7`` no consultarán ninguna opción ya " +"que las versiones se encuentran completamente especificadas." #: ../Doc/using/windows.rst:900 msgid "" "If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " "the latest installed Python 3 version." msgstr "" +"Si ``PY_PYTHON=3``, los comandos ``python`` y ``python3`` utilizarán ambos " +"la última versión instalada de Python 3." #: ../Doc/using/windows.rst:903 msgid "" @@ -1446,12 +1972,18 @@ msgid "" "installed Python (PY_PYTHON was not considered at all as a major version was " "specified.)" msgstr "" +"Si ``PY_PYTHON=3.1-32``, el comando ``python`` utilizará la implementación " +"de 32 bit de la versión 3.1 mientras que el comando ``python3`` utilizará el " +"último Python instalado (PY_PYTHON no se consideró para nada ya que se " +"especificó una versión mayor)." #: ../Doc/using/windows.rst:908 msgid "" "If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1``, the commands ``python`` and " "``python3`` will both use specifically 3.1" msgstr "" +"Si ``PY_PYTHON=3`` y ``PY_PYTHON3=3.1``, los comandos ``python`` y " +"``python3`` utilizarán ambos 3.1 específicamente" #: ../Doc/using/windows.rst:911 msgid "" @@ -1462,24 +1994,35 @@ msgid "" "the INI file are case insensitive.) The contents of an environment variable " "will override things specified in the INI file." msgstr "" +"Además de las variables de entorno, las mismas configuraciones pueden " +"realizarse desde el archivo .INI utilizado por el lanzador. La sección en el " +"archivo INI se llama ``[defaults]`` y el nombre de cada clave será igual al " +"de la variable de entorno pero sin el prefijo ``PY_`` (tenga en cuenta que " +"los nombres de clave en el archivo INI son indiferentes a mayúsculas y " +"minúsculas). El contenido de las variables de entorno sobrescribirá los " +"valores especificados en el archivo INI." #: ../Doc/using/windows.rst:918 msgid "For example:" -msgstr "" +msgstr "Por ejemplo:" #: ../Doc/using/windows.rst:920 msgid "Setting ``PY_PYTHON=3.1`` is equivalent to the INI file containing:" msgstr "" +"Configurar ``PY_PYTHON=3.1`` es equivalente a un archivo INI con el " +"contenido:" #: ../Doc/using/windows.rst:927 msgid "" "Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.1`` is equivalent to the INI file " "containing:" msgstr "" +"Configurar ``PY_PYTHON=3`` y ``PY_PYTHON3=3.1`` es equivalente a un archivo " +"INI con el contenido:" #: ../Doc/using/windows.rst:937 msgid "Diagnostics" -msgstr "" +msgstr "Diagnóstico" #: ../Doc/using/windows.rst:939 msgid "" @@ -1490,10 +2033,16 @@ msgid "" "particular version was chosen and the exact command-line used to execute the " "target Python." msgstr "" +"Si se configura la variable de entorno ``PYLAUNCH_DEBUG`` (con cualquier " +"valor), el lanzador imprimirá información de diagnóstico a stderr (en la " +"consola). Aunque esta información es a la vez detallada y concisa, debería " +"permitirle ver qué versiones de Python fueron encontradas, por qué se eligió " +"una versión particular y la línea de comandos exacta que fue utilizada para " +"ejecutar el Python escogido." #: ../Doc/using/windows.rst:951 msgid "Finding modules" -msgstr "" +msgstr "Encontrar módulos" #: ../Doc/using/windows.rst:953 msgid "" @@ -1503,6 +2052,11 @@ msgid "" "\\\\` and third-party modules should be stored in :file:`C:\\\\Python\\\\Lib" "\\\\site-packages\\\\`." msgstr "" +"Python generalmente almacena su biblioteca (y por lo tanto el directorio " +"site-packages) en el directorio de instalación. Por lo tanto si Python fue " +"instalado en :file:`C:\\\\Python\\\\`, la biblioteca predeterminada residirá " +"en :file:`C:\\\\Python\\\\Lib\\\\` y los módulos de terceros deberían " +"almacenarse en :file:`C:\\\\Python\\\\Lib\\\\site-packages\\\\`." #: ../Doc/using/windows.rst:959 msgid "" @@ -1512,6 +2066,12 @@ msgid "" "based on the DLL name overrides the one based on the executable, which " "allows paths to be restricted for any program loading the runtime if desired." msgstr "" +"Para sobrescribir :data:`sys.path` completamente, crear un archivo ``._pth`` " +"con el mismo nombre que la DLL (``python37._pth``) o el ejecutable (``python." +"_pth``) y especificar una línea por cada ruta a agregar a :data:`sys.path`. " +"El archivo basado en el nombre de la DLL tiene precedencia sobre el basado " +"en el ejecutable, lo que permite restringir las rutas para cualquier " +"programa que cargue el tiempo de ejecución si se desea." #: ../Doc/using/windows.rst:965 msgid "" @@ -1522,24 +2082,38 @@ msgid "" "the file. Import statements other than to ``site`` are not permitted, and " "arbitrary code cannot be specified." msgstr "" +"Cuando el archivo existe, se ignoran todas las variables de entorno y del " +"registro, se activa el modo aislado, y no se importa :mod:`site` a menos que " +"una línea en el archivo especifique ``import site``. Rutas en blanco y " +"líneas que comiencen con ``#`` son ignoradas. Cada ruta puede ser absoluta o " +"relativa a la ubicación del archivo. No se permiten declaraciones de " +"importación más que la de ``site``, y no se puede especificar código " +"arbitrario." #: ../Doc/using/windows.rst:972 msgid "" "Note that ``.pth`` files (without leading underscore) will be processed " "normally by the :mod:`site` module when ``import site`` has been specified." msgstr "" +"Tenga en cuenta que los archivos ``.pth`` (sin guion bajo al inicio) serán " +"procesados normalmente por el módulo :mod:`site` cuando ``import site`` haya " +"sido especificado." #: ../Doc/using/windows.rst:975 msgid "" "When no ``._pth`` file is found, this is how :data:`sys.path` is populated " "on Windows:" msgstr "" +"Cuando no se encuentre ningún archivo ``._pth``, así es como :data:`sys." +"path` es completado en Windows:" #: ../Doc/using/windows.rst:978 msgid "" "An empty entry is added at the start, which corresponds to the current " "directory." msgstr "" +"Se agrega una entrada vacía al comienzo, que corresponde al directorio " +"actual." #: ../Doc/using/windows.rst:981 msgid "" @@ -1548,7 +2122,14 @@ msgid "" "paths in this variable must be separated by semicolons, to distinguish them " "from the colon used in drive identifiers (``C:\\`` etc.)." msgstr "" +"Si existe la variable de entorno :envvar:`PYTHONPATH`, de acuerdo a lo " +"descrito en :ref:`using-on-envvars`, sus entradas se agregan a continuación. " +"Tenga en cuenta que en Windows, las rutas en esta variable deben estar " +"separadas por punto y coma (;), para distinguirlas de los dos puntos " +"utilizados en los identificadores de disco (``C:\\``, etc.)." +# "hive" se traduce como "subárbol" en este contexto. +# referencia: https://es.wikipedia.org/wiki/Registro_de_Windows#Sub%C3%A1rboles #: ../Doc/using/windows.rst:986 msgid "" "Additional \"application paths\" can be added in the registry as subkeys of :" @@ -1558,6 +2139,14 @@ msgid "" "cause each path to be added to :data:`sys.path`. (Note that all known " "installers only use HKLM, so HKCU is typically empty.)" msgstr "" +"Se pueden agregar al registro \"rutas de aplicación\" adicionales como " +"subclaves de :samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\" +"\\PythonPath` bajo los subárboles ``HKEY_CURRENT_USER`` y " +"``HKEY_LOCAL_MACHINE``. Las subclaves que contienen un valor por defecto " +"compuesto por cadenas de ruta separadas por punto y coma causan que cada una " +"de esas rutas sea agregada a :data:`sys.path`. (Tenga en cuenta que todos " +"los instaladores conocidos solo utilizan HKLM, por lo que HKCU comúnmente se " +"encuentra vacío.)" #: ../Doc/using/windows.rst:993 msgid "" @@ -1569,6 +2158,15 @@ msgid "" "on that folder. Otherwise, the core Python path is constructed from the " "PythonPath stored in the registry." msgstr "" +"Si se configura la variable de entorno :envvar:`PYTHONHOME`, es asumida como " +"el \"Python Home\" (el directorio de origen de Python). De lo contrario, la " +"ruta del ejecutable principal de Python es utilizada para ubicar un " +"\"archivo de referencia\" (ya sea ``Lib\\os.py`` o ``pythonXY.zip``) para " +"deducir el \"Python Home\". Si el directorio de origen de Python es " +"encontrado, los subdirectorios relevantes que se agregan a :data:`sys.path` " +"(``Lib``, ``plat-win``, etc.) se basan en ese directorio. Por el contrario, " +"la ruta principal de Python se construye a partir del PythonPath guardado en " +"el registro." #: ../Doc/using/windows.rst:1001 msgid "" @@ -1576,12 +2174,19 @@ msgid "" "in the environment, and no registry entries can be found, a default path " "with relative entries is used (e.g. ``.\\Lib;.\\plat-win``, etc)." msgstr "" +"Si el Python Home no puede ser ubicado, :envvar:`PYTHONPATH` no está " +"especificado en el entorno y no se encuentra ninguna entrada en el registro, " +"se usa una ruta predeterminada con entradas relativas (por ej. ``.\\Lib;." +"\\plat-win``, etc.)." #: ../Doc/using/windows.rst:1005 msgid "" "If a ``pyvenv.cfg`` file is found alongside the main executable or in the " "directory one level above the executable, the following variations apply:" msgstr "" +"Si se encuentra el archivo ``pyvenv.cfg`` junto al ejecutable principal o en " +"el directorio un nivel arriba del ejecutable, se aplica la siguiente " +"variación:" #: ../Doc/using/windows.rst:1008 msgid "" @@ -1589,10 +2194,13 @@ msgid "" "path is used instead of the path to the main executable when deducing the " "home location." msgstr "" +"Si ``home`` es una ruta absoluta y :envvar:`PYTHONHOME` no está configurada, " +"se usa esta ruta en lugar de la ruta al ejecutable principal para deducir la " +"ubicación del directorio de origen." #: ../Doc/using/windows.rst:1012 msgid "The end result of all this is:" -msgstr "" +msgstr "El resultado final de todo esto es:" #: ../Doc/using/windows.rst:1014 msgid "" @@ -1601,6 +2209,11 @@ msgid "" "directory), the core path is deduced, and the core paths in the registry are " "ignored. Other \"application paths\" in the registry are always read." msgstr "" +"Cuando se ejecuta :file:`python.exe`, o cualquier otro .exe en el directorio " +"principal de Python (tanto la versión instalada como directamente desde el " +"directorio PCbuild), se deduce la ruta principal, y se ignoran las rutas " +"principales en el registro. Siempre se leen otras \"rutas de aplicación\" " +"del registro." #: ../Doc/using/windows.rst:1019 msgid "" @@ -1609,6 +2222,10 @@ msgid "" "the registry is used. Other \"application paths\" in the registry are " "always read." msgstr "" +"Cuando se aloja Python en otro .exe (distinto directorio, incrustado " +"mediante COM, etc.), el \"Python Home\" no se deduce, y se utiliza la ruta " +"principal del registro. Siempre se leen otras \"rutas de aplicación\" del " +"registro." #: ../Doc/using/windows.rst:1023 msgid "" @@ -1616,12 +2233,17 @@ msgid "" "some very strange installation setup) you get a path with some default, but " "relative, paths." msgstr "" +"Si Python no puede encontrar su directorio de origen y no hay valores en el " +"registro (un .exe congelado, una muy rara configuración de instalación) se " +"obtiene una ruta relativa predeterminada." #: ../Doc/using/windows.rst:1027 msgid "" "For those who want to bundle Python into their application or distribution, " "the following advice will prevent conflicts with other installations:" msgstr "" +"Para aquellos que quieran incluir Python en su aplicación o distribución, " +"los siguientes consejos evitarán conflictos con otras instalaciones:" #: ../Doc/using/windows.rst:1030 msgid "" @@ -1630,6 +2252,10 @@ msgid "" "environment variables, and also ignore :mod:`site` unless ``import site`` is " "listed." msgstr "" +"Incluya un archivo ``._pth`` junto al ejecutable, que contenga los " +"directorios a incluir. Esto hará que se ignoren las rutas enumeradas en el " +"registro y en las variables de entorno, y que también se ignore :mod:`site` " +"a menos que se especifique ``import site``." #: ../Doc/using/windows.rst:1035 msgid "" @@ -1637,12 +2263,17 @@ msgid "" "executable, explicitly call :c:func:`Py_SetPath` or (at least) :c:func:" "`Py_SetProgramName` before :c:func:`Py_Initialize`." msgstr "" +"Si se carga :file:`python3.dll` o :file:`python37.dll` desde un ejecutable " +"propio, invocar explícitamente :c:func:`Py_SetPath` o (al menos) :c:func:" +"`Py_SetProgramName` antes de :c:func:`Py_Initialize`." #: ../Doc/using/windows.rst:1039 msgid "" "Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " "before launching :file:`python.exe` from your application." msgstr "" +"Limpie y/o sobrescriba :envvar:`PYTHONPATH` y configure :envvar:`PYTHONHOME` " +"antes de iniciar :file:`python.exe` desde su aplicación." #: ../Doc/using/windows.rst:1042 msgid "" @@ -1652,6 +2283,12 @@ msgid "" "directory. (Note that it will not be detected inside a ZIP file, but a " "correctly named ZIP file will be detected instead.)" msgstr "" +"Si no se pueden utilizar las sugerencias previas (por ejemplo, en una " +"distribución que permite a los usuarios ejecutar :file:`python.exe` " +"directamente), hay que asegurarse de que el archivo de referencia (:file:`Lib" +"\\\\os.py`) exista en el directorio de instalación. (Tener en cuenta que " +"este no será detectado dentro de un archivo ZIP, pero si se detectará un ZIP " +"correctamente nombrado.)" #: ../Doc/using/windows.rst:1048 msgid "" @@ -1662,18 +2299,28 @@ msgid "" "still be susceptible to non-standard paths in the registry and user site-" "packages." msgstr "" +"Esto asegura que los archivos de una instalación del sistema no tendrán " +"precedencia por sobre la copia de la biblioteca estándar incluida en su " +"aplicación. De otra manera, los usuarios podrían experimentar problemas al " +"utilizar su aplicación. Tenga en cuenta que la primera sugerencia es la " +"mejor, ya que las otras aún pueden ser afectadas por rutas no estándar en el " +"registro y en el site-packages del usuario." #: ../Doc/using/windows.rst:1057 msgid "" "Adds ``._pth`` file support and removes ``applocal`` option from ``pyvenv." "cfg``." msgstr "" +"Agrega soporte para archivos ``._pth`` y elimina la opción ``applocal`` de " +"``pyvenv.cfg``." #: ../Doc/using/windows.rst:1059 msgid "" "Adds ``pythonXX.zip`` as a potential landmark when directly adjacent to the " "executable." msgstr "" +"Agrega ``pythonXX.zip`` como un potencial archivo de referencia cuando se " +"encuentra junto al ejecutable." #: ../Doc/using/windows.rst:1065 msgid "" @@ -1682,10 +2329,15 @@ msgid "" "finder is enabled on Windows in 3.6.0 and earlier, but may need to be " "explicitly added to :attr:`sys.meta_path` in the future." msgstr "" +"Los módulos especificados en el registro bajo ``Modules`` (no " +"``PythonPath``) pueden ser importados por :class:`importlib.machinery." +"WindowsRegistryFinder`. Este buscador está habilitado en Windows en la " +"versión 3.6.0 y anteriores, pero es posible que deba agregarse " +"explícitamente a :attr:`sys.meta_path` en el futuro." #: ../Doc/using/windows.rst:1071 msgid "Additional modules" -msgstr "" +msgstr "Módulos adicionales" #: ../Doc/using/windows.rst:1073 msgid "" @@ -1693,16 +2345,22 @@ msgid "" "features that are unique to Windows. A couple of modules, both in the " "standard library and external, and snippets exist to use these features." msgstr "" +"Aunque Python pretende ser portátil entre todas las plataformas, hay " +"características que son exclusivas de Windows. Existen un par de módulos, de " +"la biblioteca estándar y externos, y fragmentos de código para utilizar " +"estas funciones." #: ../Doc/using/windows.rst:1077 msgid "" "The Windows-specific standard modules are documented in :ref:`mswin-specific-" "services`." msgstr "" +"Los módulos estándar específicos para Windows se encuentran documentados en :" +"ref:`mswin-specific-services`." #: ../Doc/using/windows.rst:1081 msgid "PyWin32" -msgstr "" +msgstr "PyWin32" #: ../Doc/using/windows.rst:1083 msgid "" @@ -1710,30 +2368,37 @@ msgid "" "a collection of modules for advanced Windows-specific support. This " "includes utilities for:" msgstr "" +"El módulo `PyWin32 `_ de Mark Hammond es " +"una colección de módulos para soporte avanzado específico para Windows. Este " +"incluye utilidades para:" #: ../Doc/using/windows.rst:1087 msgid "" "`Component Object Model `_ (COM)" msgstr "" +"`Component Object Model `_ (COM)" #: ../Doc/using/windows.rst:1090 msgid "Win32 API calls" -msgstr "" +msgstr "Invocación de la API Win32" #: ../Doc/using/windows.rst:1091 msgid "Registry" -msgstr "" +msgstr "Registro" #: ../Doc/using/windows.rst:1092 msgid "Event log" -msgstr "" +msgstr "Registro de eventos" #: ../Doc/using/windows.rst:1093 msgid "" "`Microsoft Foundation Classes `_ (MFC) user interfaces" msgstr "" +"Interfaces de usuario para `Microsoft Foundation Classes `_ (MFC)" #: ../Doc/using/windows.rst:1096 msgid "" @@ -1741,27 +2406,31 @@ msgid "" "org/windows/pythonwin/>`_ is a sample MFC application shipped with PyWin32. " "It is an embeddable IDE with a built-in debugger." msgstr "" +"`PythonWin `_ es una aplicación MFC de muestra distribuida con " +"PyWin32. Es un IDE incrustable con depurador incorporado." #: ../Doc/using/windows.rst:1103 msgid "" "`Win32 How Do I...? `_" msgstr "" +"`Win32 How Do I...? `_" #: ../Doc/using/windows.rst:1103 msgid "by Tim Golden" -msgstr "" +msgstr "por Tim Golden" #: ../Doc/using/windows.rst:1105 msgid "`Python and COM `_" -msgstr "" +msgstr "`Python and COM `_" #: ../Doc/using/windows.rst:1106 msgid "by David and Paul Boddie" -msgstr "" +msgstr "por David y Paul Boddie" #: ../Doc/using/windows.rst:1110 msgid "cx_Freeze" -msgstr "" +msgstr "cx_Freeze" #: ../Doc/using/windows.rst:1112 msgid "" @@ -1771,10 +2440,15 @@ msgid "" "have done this, you can distribute your application without requiring your " "users to install Python." msgstr "" +"`cx_Freeze `_ es una " +"extensión de :mod:`distutils` (ver :ref:`extending-distutils`) que encapsula " +"scripts de Python en programas de Windows ejecutables (:file:`{*}.exe` " +"files). Al hacer esto, se puede distribuir una aplicación sin que los " +"usuarios instalen Python." #: ../Doc/using/windows.rst:1120 msgid "WConio" -msgstr "" +msgstr "WConio" #: ../Doc/using/windows.rst:1122 msgid "" @@ -1782,16 +2456,22 @@ msgid "" "restricted to Unix-like systems, there is a library exclusive to Windows as " "well: Windows Console I/O for Python." msgstr "" +"Dado que la capa de manejo avanzado de terminales de Python, :mod:`curses`, " +"se encuentra restringida a sistemas tipo Unix, también hay una biblioteca " +"exclusiva para Windows: Windows Console I/O para Python." #: ../Doc/using/windows.rst:1126 msgid "" "`WConio `_ is a wrapper " "for Turbo-C's :file:`CONIO.H`, used to create text user interfaces." msgstr "" +"`WConio `_ es un " +"contenedor para :file:`CONIO.H` de Turbo-C, utilizado para crear interfaces " +"de usuario de texto." #: ../Doc/using/windows.rst:1132 msgid "Compiling Python on Windows" -msgstr "" +msgstr "Compilar Python en Windows" #: ../Doc/using/windows.rst:1134 msgid "" @@ -1800,6 +2480,11 @@ msgid "" "either the latest release's source or just grab a fresh `checkout `_." msgstr "" +"Si desea compilar CPython por su cuenta, lo primero que debe hacer es " +"obtener el `código fuente `_. " +"Puede descargar el código fuente de la última versión o simplemente obtener " +"una nueva `copia `_." #: ../Doc/using/windows.rst:1139 msgid "" @@ -1807,22 +2492,30 @@ msgid "" "Visual Studio 2015, which is the compiler used to build the official Python " "releases. These files are in the :file:`PCbuild` directory." msgstr "" +"El árbol del código fuente contiene una solución de compilación y archivos " +"del proyecto para Microsoft Visual Studio 2015, el cual es el compilador " +"utilizado para compilar las versiones oficiales de Python. Estos archivos se " +"encuentran en el directorio :file:`PCbuild`." #: ../Doc/using/windows.rst:1143 msgid "" "Check :file:`PCbuild/readme.txt` for general information on the build " "process." msgstr "" +"Consulte :file:`PCbuild/readme.txt` para obtener información general acerca " +"del proceso de compilación." #: ../Doc/using/windows.rst:1146 msgid "For extension modules, consult :ref:`building-on-windows`." -msgstr "" +msgstr "Para módulos de extensión, consulte :ref:`building-on-windows`." #: ../Doc/using/windows.rst:1153 msgid "" "`Python + Windows + distutils + SWIG + gcc MinGW `_" msgstr "" +"`Python + Windows + distutils + SWIG + gcc MinGW `_" #: ../Doc/using/windows.rst:1151 msgid "" @@ -1830,14 +2523,17 @@ msgid "" "MinGW gcc under Windows\" or \"Installing Python extension with distutils " "and without Microsoft Visual C++\" by Sébastien Sauvage, 2003" msgstr "" +"o \"Creating Python extensions in C/C++ with SWIG and compiling them with " +"MinGW gcc under Windows\" o \"Installing Python extension with distutils and " +"without Microsoft Visual C++\" por Sébastien Sauvage, 2003" #: ../Doc/using/windows.rst:1155 msgid "`MingW -- Python extensions `_" -msgstr "" +msgstr "`MingW -- Python extensions `_" #: ../Doc/using/windows.rst:1159 msgid "Other Platforms" -msgstr "" +msgstr "Otras plataformas" #: ../Doc/using/windows.rst:1161 msgid "" @@ -1845,10 +2541,13 @@ msgid "" "earlier are no longer supported (due to the lack of users or developers). " "Check :pep:`11` for details on all unsupported platforms." msgstr "" +"Con el continuo desarrollo de Python, algunas plataformas que solían ser " +"compatibles ya no lo son (debido a la falta de usuarios o desarrolladores). " +"Consulte :pep:`11` para detalles sobre las plataformas no soportadas." #: ../Doc/using/windows.rst:1165 msgid "`Windows CE `_ is still supported." -msgstr "" +msgstr "`Windows CE `_ es aún soportado." #: ../Doc/using/windows.rst:1166 msgid "" @@ -1857,9 +2556,16 @@ msgid "" "pub/pc/gnuwin32/cygwin/mirrors/cygnus/ release/python>`_, `Maintainer " "releases `_)" msgstr "" +"El instalador de `Cygwin `_ también ofrece instalar el " +"intérprete de Python (consulte `Cygwin package source `_, " +"`Maintainer releases `_)" #: ../Doc/using/windows.rst:1172 msgid "" "See `Python for Windows `_ for " "detailed information about platforms with pre-compiled installers." msgstr "" +"Para obtener información detallada acerca de las plataformas con " +"instaladores precompilados consulte `Python for Windows `_." diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index 848864d105..5e6ab30f33 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.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: 2020-12-16 18:23-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.7.rst:3 msgid "What's New in Python 2.7" -msgstr "" +msgstr "Qué hay de nuevo en Python 2.7" #: ../Doc/whatsnew/2.7.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.7.rst:5 msgid "A.M. Kuchling (amk at amk.ca)" -msgstr "" +msgstr "A.M. Kuchling (amk en amk.ca)" #: ../Doc/whatsnew/2.7.rst:52 msgid "" "This article explains the new features in Python 2.7. Python 2.7 was " "released on July 3, 2010." msgstr "" +"Este articulo explica las nuevas características en Python 2.7. Python 2.7 " +"fue publicado el 3 de Julio de 2010." #: ../Doc/whatsnew/2.7.rst:55 msgid "" @@ -48,6 +52,13 @@ msgid "" "`~collections.Counter` classes in the :mod:`collections` module, and many " "other improvements." msgstr "" +"El manejo numérico ha sido mejorado en muchas formas, tanto para los números " +"de punto flotante como para la clase :class:`~decimal.Decimal`. Hay algunas " +"adiciones útiles a la biblioteca estándar, como una gran mejora al modulo :" +"mod:`unittest`, el modulo :mod:`argparse` para analizar las opciones de la " +"línea de comandos, adecuando las clases :class:`~collections.OrderedDict` y :" +"class:`~collections.Counter` en el modulo :mod:`collections`, y muchas otras " +"mejoras." #: ../Doc/whatsnew/2.7.rst:63 msgid "" @@ -55,6 +66,10 @@ msgid "" "making it a good release for the long term. To help with porting to Python " "3, several new features from the Python 3.x series have been included in 2.7." msgstr "" +"Python 2.7 esta previsto que sea el ultimo lanzamiento de la serie 2.x, así " +"que hemos trabajado para que sea una versión a largo plazo. Para ayudar con " +"la migración a Python 3, se han incluido varias características nuevas de la " +"serie Python 3.x en 2.7." #: ../Doc/whatsnew/2.7.rst:68 msgid "" @@ -66,12 +81,21 @@ msgid "" "python.org in which a change was discussed. Whenever possible, \"What's New " "in Python\" links to the bug/patch item for each change." msgstr "" +"Este articulo no intenta proporcionar una especificación completa de las " +"nuevas características, sino que proporciona una visión general " +"conveniente. Para obtener mas información, debería consultar la " +"documentación de Python 2.7 en https://docs.python.org. Si desea comprender " +"la justificación para el diseño y la implementación, consultar el PEP para " +"una nueva característica particular o el error en el que se discutió un " +"cambio en https://bugs.python.org. Siempre que sea posible, \"Que hay de " +"nuevo en Python\" enlaza el elemento error/parche para cada cambio." #: ../Doc/whatsnew/2.7.rst:80 msgid "The Future for Python 2.x" -msgstr "" +msgstr "El futuro de Python 2.x" #: ../Doc/whatsnew/2.7.rst:82 +#, fuzzy msgid "" "Python 2.7 is the last major release in the 2.x series, as the Python " "maintainers have shifted the focus of their new feature development efforts " @@ -80,6 +104,13 @@ msgid "" "versions of supported operated systems, there will be no new full feature " "releases for the language or standard library." msgstr "" +"Python 2.7 es el último lanzamiento importante de la serie 2.x, ya que los " +"mantenedores de Python han cambiado el enfoque de sus esfuerzos en el " +"desarrollo de nuevas características para la serie de Python 3.x. Esto " +"significa que mientras Python 2 continúe recibiendo corrección de errores, y " +"sea actualizado para construir correctamente sobre nuevo hardware y " +"versiones de sistemas operativos compatibles, no habrá nuevas versiones " +"completas de funciones para el idioma o la biblioteca estándar." #: ../Doc/whatsnew/2.7.rst:89 msgid "" @@ -90,6 +121,13 @@ msgid "" "and preferably robust automated regression test suites, to migrate " "effectively." msgstr "" +"Sin embargo, si bien existe un gran subconjunto común entre Python 2.7 y " +"Python 3, y muchos de los cambios involucrados en la migración a ese " +"subconjunto común, o directamente a Python 3, se pueden automatizar de " +"manera segura, algunos otros cambios (en particular los asociados con el " +"manejo de Unicode) puede requerir una consideración cuidadosa, y " +"preferiblemente conjuntos de pruebas de regresión automatizada robustos, " +"para migrar de manera efectiva." #: ../Doc/whatsnew/2.7.rst:96 msgid "" @@ -98,10 +136,16 @@ msgid "" "been ported to Python 3. The full expected lifecycle of the Python 2.7 " "series is detailed in :pep:`373`." msgstr "" +"Esto significa que Python 2.7 permanecerá en su lugar durante un largo " +"tiempo, proporcionando una plataforma base estable y compatible para " +"sistemas de producción que aún no se han adaptado a Python 3. La expectativa " +"completa del ciclo de vida de la versión de Python 2.7 esta detallada en :" +"pep:`373`." #: ../Doc/whatsnew/2.7.rst:101 msgid "Some key consequences of the long-term significance of 2.7 are:" msgstr "" +"Algunas consecuencias clave de la importancia a largo plazo de 2.7 son:" #: ../Doc/whatsnew/2.7.rst:103 msgid "" @@ -111,6 +155,13 @@ msgid "" "bug fixes) until at least 2020 (10 years after its initial release, compared " "to the more typical support period of 18--24 months)." msgstr "" +"Como se señalo anteriormente, la versión 2.7 tiene un período de " +"mantenimiento mucho más largo en comparación con las versiones anteriores 2." +"x. Actualmente se espera que Python 2.7 siga siendo compatible con el equipo " +"de desarrollo central (recibiendo actualizaciones de seguridad y otras " +"correcciones de errores) al menos hasta 2020 (10 años después de su " +"lanzamiento inicial, comparado con el típico periodo de mantenimiento de " +"18--24 meses)." #: ../Doc/whatsnew/2.7.rst:109 msgid "" @@ -124,6 +175,16 @@ msgid "" "packaging.python.org>`__ provides guidance on downloading and installing " "software from the Python Package Index." msgstr "" +"A medida que la biblioteca estándar de Python envejece, hacer un uso eficaz " +"del índice de paquetes de Python (ya sea directamente o a través de un " +"distribuidor) se vuelve mas importante para los usuarios de Python 2. Además " +"de una amplia variedad de paquetes de terceros para diversas tareas, los " +"paquetes disponibles incluyen *backports* de nuevos módulos y " +"características de la biblioteca estándar de Python 3 que son compatibles " +"con Python 2, así como varias herramientas y librerías que pueden hacer mas " +"fácil la migración a Python 3. La `Guía de usuario de paquetes de Python " +"`__ proporciona un información sobre como " +"descargar e instalar software desde el índice de paquetes de Python." #: ../Doc/whatsnew/2.7.rst:119 msgid "" @@ -137,6 +198,16 @@ msgid "" "they were added, will be noted in the :ref:`py27-maintenance-enhancements` " "section below." msgstr "" +"Aunque el enfoque preferido para mejorar Python 2 es ahora la publicación de " +"nuevos paquetes en el índice de paquetes de Python, este enfoque no " +"necesariamente funciona en todos los casos, especialmente aquellos " +"relacionados a la seguridad de la red. En casos excepcionales que no puedan " +"ser manejados adecuadamente mediante la publicación de nuevos paquetes o " +"actualizaciones en PyPI, el proceso de propuestas de mejoras de Python " +"podría ser usado para crear el caso para añadir nuevas funciones a la " +"librería estándar de Python 2. Dichas adiciones, y las versiones de " +"mantenimiento donde fueron agregadas, se observaran en la sección :ref:`py27-" +"maintenance-enhancements` mas abajo." #: ../Doc/whatsnew/2.7.rst:129 msgid "" @@ -146,10 +217,16 @@ msgid "" "on a suitable approach and manage some of the technical details involved. " "The recommended starting point is the :ref:`pyporting-howto` HOWTO guide." msgstr "" +"Para los proyectos que deseen migrar de Python 2 a Python 3, o para los " +"desarrolladores de *frameworks* y libreras que deseen dar soporte a usuarios " +"en Python 2 y Python 3, hay una variedad de herramientas y guías disponibles " +"para ayudarles a decidir sobre un enfoque adecuado y manejar algunos de los " +"detalles técnicos involucrados. El punto de partida recomendado es la guía " +"HOWTO :ref:`pyporting-howto`." #: ../Doc/whatsnew/2.7.rst:137 msgid "Changes to the Handling of Deprecation Warnings" -msgstr "" +msgstr "Cambios en el manejo de las advertencias de desuso" #: ../Doc/whatsnew/2.7.rst:139 msgid "" @@ -160,6 +237,13 @@ msgid "" "in the branch that became Python 3.2. (Discussed on stdlib-sig and carried " "out in :issue:`7319`.)" msgstr "" +"Para Python 2.7, se tomo la decisión de silenciar las advertencias solo de " +"interés para los desarrolladores de manera predeterminada. :exc:" +"`DeprecationWarning`y sus descendientes son ahora ignoradas a menos que se " +"solicite lo contrario, impidiendo a los usuarios estar viendo las " +"advertencias disparadas por una aplicación. Este cambio se realizo en la " +"rama que se convirtió en Python 3.2. (Discutido en stdlib-sig y llevado a " +"cabo en :issue:`7319`)." #: ../Doc/whatsnew/2.7.rst:146 msgid "" @@ -167,6 +251,10 @@ msgid "" "default, providing Python developers with a clear indication of where their " "code may break in a future major version of Python." msgstr "" +"En versiones previas, los mensajes :exc:`DeprecationWarning` estaban " +"habilitados de manera predeterminada, proporcionando a los desarrolladores " +"de Python una indicación clara de donde podría romperse su código en una " +"futura versión principal de Python." #: ../Doc/whatsnew/2.7.rst:151 msgid "" @@ -176,6 +264,12 @@ msgid "" "worry about an application that's actually working correctly and burdening " "application developers with responding to these concerns." msgstr "" +"Sin embargo, cada vez hay más usuarios de aplicaciones basadas en Python que " +"no están directamente involucrados en el desarrollo de esas aplicaciones. " +"Los mensajes :exc:`DeprecationWarning` son irrelevantes para estos usuarios, " +"hacen que se preocupen por una aplicación que realmente está funcionando " +"correctamente y sobrecargando a los desarrolladores de aplicaciones con " +"responder a estas preocupaciones." #: ../Doc/whatsnew/2.7.rst:158 msgid "" @@ -185,16 +279,24 @@ msgid "" "\"default\"`` (or ``\"d\"``) before running Python. Python code can also re-" "enable them by calling ``warnings.simplefilter('default')``." msgstr "" +"Puede volver a habilitar la visualización de los mensajes :exc:" +"`DeprecationWarning` ejecutando Python con el modificador :option:`-Wdefault " +"<-W>` (forma corta: :option:`-Wd <-W>`), o estableciendo la variable de " +"entorno :envvar:`PYTHONWARNINGS` en ``\"default\"`` (o ``\"d\"``) antes de " +"ejecutar Python. El código Python también puede volver a habilitarlos " +"llamando a ''warnings.simplefilter('default')``." #: ../Doc/whatsnew/2.7.rst:165 msgid "" "The ``unittest`` module also automatically reenables deprecation warnings " "when running tests." msgstr "" +"El módulo ``unittest`` también vuelve a instalar automáticamente las " +"advertencias de desuso al ejecutar pruebas." #: ../Doc/whatsnew/2.7.rst:170 msgid "Python 3.1 Features" -msgstr "" +msgstr "Características de Python 3.1" #: ../Doc/whatsnew/2.7.rst:172 msgid "" @@ -202,44 +304,58 @@ msgid "" "incorporates some of the new features in Python 3.1. The 2.x series " "continues to provide tools for migrating to the 3.x series." msgstr "" +"Al igual que Python 2.6 incorporó características de Python 3.0, la versión " +"2.7 incorpora algunas de las nuevas características de Python 3.1. La serie " +"2.x continúa proporcionando herramientas para migrar a la serie 3.x." #: ../Doc/whatsnew/2.7.rst:177 msgid "A partial list of 3.1 features that were backported to 2.7:" msgstr "" +"Una lista parcial de características 3.1 que se retro importaron a 2.7:" #: ../Doc/whatsnew/2.7.rst:179 msgid "The syntax for set literals (``{1,2,3}`` is a mutable set)." msgstr "" +"La sintaxis para establecer literales (``{1,2,3}`` es un conjunto mutable)." #: ../Doc/whatsnew/2.7.rst:180 msgid "Dictionary and set comprehensions (``{i: i*2 for i in range(3)}``)." msgstr "" +"Diccionario y establecimiento de compresiones (``{i: i*2 for i in range(3)}" +"``)." #: ../Doc/whatsnew/2.7.rst:181 msgid "Multiple context managers in a single :keyword:`with` statement." msgstr "" +"Múltiples administradores de contexto en una sola declaración :keyword:" +"`with`." #: ../Doc/whatsnew/2.7.rst:182 msgid "A new version of the :mod:`io` library, rewritten in C for performance." msgstr "" +"Una nueva versión para la librería :mod:`io`, rescrito en C para un mejor " +"desempeño." #: ../Doc/whatsnew/2.7.rst:183 msgid "The ordered-dictionary type described in :ref:`pep-0372`." -msgstr "" +msgstr "El tipo de ordenador de diccionario descrito en :ref:`pep-0372`." #: ../Doc/whatsnew/2.7.rst:184 msgid "The new ``\",\"`` format specifier described in :ref:`pep-0378`." msgstr "" +"El nuevo especificador de formato ``\",\"`` descrito en :ref:`pep-0378`." #: ../Doc/whatsnew/2.7.rst:185 msgid "The :class:`memoryview` object." -msgstr "" +msgstr "El objeto :class:`memoryview`." #: ../Doc/whatsnew/2.7.rst:186 msgid "" "A small subset of the :mod:`importlib` module, `described below <#importlib-" "section>`__." msgstr "" +"Un pequeño subconjunto del modulo :mod:`importlib`, `descrito abajo " +"<#importlib-section>`__." #: ../Doc/whatsnew/2.7.rst:188 msgid "" @@ -248,31 +364,42 @@ msgid "" "in previous versions of Python, it's guaranteed that ``float(repr(x))`` " "recovers ``x``." msgstr "" +"La :func:`repr` de un flotante ``x`` es más corto en muchos casos: ahora se " +"basa en la cadena decimal más corta que se garantiza que redondea a ``x``. " +"Como en versiones anteriores de Python, se garantiza que ``float(repr(x))`` " +"devuelva ``x``." #: ../Doc/whatsnew/2.7.rst:192 msgid "" "Float-to-string and string-to-float conversions are correctly rounded. The :" "func:`round` function is also now correctly rounded." msgstr "" +"Las conversiones flotante a cadena y cadena a flotante se redondean " +"correctamente. La función :func:`round` también ahora se redondea " +"correctamente." #: ../Doc/whatsnew/2.7.rst:194 msgid "" "The :c:type:`PyCapsule` type, used to provide a C API for extension modules." msgstr "" +"El tipo :c:type:`PyCapsule`, utilizado para proporcionar una API de C para " +"módulos de extensión." #: ../Doc/whatsnew/2.7.rst:195 msgid "The :c:func:`PyLong_AsLongAndOverflow` C API function." -msgstr "" +msgstr "La función de API de C :c:func:`PyLong_AsLongAndOverflow`." #: ../Doc/whatsnew/2.7.rst:197 msgid "Other new Python3-mode warnings include:" -msgstr "" +msgstr "Otras nuevas advertencias en modo Python3 incluyen:" #: ../Doc/whatsnew/2.7.rst:199 msgid "" ":func:`operator.isCallable` and :func:`operator.sequenceIncludes`, which are " "not supported in 3.x, now trigger warnings." msgstr "" +":func:`operator.isCallable` y :func:`operator.sequenceIncludes`, que no se " +"admiten en 3.x, ahora activan advertencias." #: ../Doc/whatsnew/2.7.rst:201 msgid "" @@ -280,10 +407,13 @@ msgid "" "switch that causes warnings about using classic division with integers and " "long integers." msgstr "" +"El modificador :option:`!-3` ahora habilita automáticamente el modificador :" +"option:`!-Qwarn` que provoca advertencias sobre el uso de la división " +"clásica con enteros y enteros largos." #: ../Doc/whatsnew/2.7.rst:214 msgid "PEP 372: Adding an Ordered Dictionary to collections" -msgstr "" +msgstr "PEP 372: Adición de un diccionario ordenado a las colecciones" #: ../Doc/whatsnew/2.7.rst:216 msgid "" @@ -293,6 +423,12 @@ msgid "" "the experiences from those implementations, 2.7 introduces a new :class:" "`~collections.OrderedDict` class in the :mod:`collections` module." msgstr "" +"Los diccionarios de python normales recorren en iteración los pares clave/" +"valor en un orden arbitrario. A lo largo de los años, varios autores han " +"escrito implementaciones alternativas que recuerdan el orden en que se " +"insertaron originalmente las claves. Basado en las experiencias de esas " +"implementaciones, 2.7 presenta una nueva clase :class:`~collections." +"OrderedDict` en el módulo :mod:`collections`." #: ../Doc/whatsnew/2.7.rst:222 msgid "" @@ -300,16 +436,23 @@ msgid "" "regular dictionaries but iterates over keys and values in a guaranteed order " "depending on when a key was first inserted::" msgstr "" +"La API :class:`~collections.OrderedDict` proporciona la misma interfaz que " +"los diccionarios normales, pero recorre en iteración las claves y los " +"valores en un orden garantizado en función de cuándo se insertó una clave " +"por primera vez::" #: ../Doc/whatsnew/2.7.rst:233 msgid "" "If a new entry overwrites an existing entry, the original insertion position " "is left unchanged::" msgstr "" +"Si una nueva entrada sobrescribe una entrada existente, la posición de " +"inserción original no se modifica::" #: ../Doc/whatsnew/2.7.rst:240 msgid "Deleting an entry and reinserting it will move it to the end::" msgstr "" +"Borrando una entrada y luego reinsertándola, moverá la misma al final::" #: ../Doc/whatsnew/2.7.rst:247 msgid "" @@ -318,18 +461,26 @@ msgid "" "added key is returned and removed; if it's false, the oldest key is " "selected::" msgstr "" +"El método :meth:`~collections.OrderedDict.popitem` tiene un argumento *last* " +"opcional que por defecto esta en ``True`` (verdadero). Si *last* es " +"verdadero, la ultima llave ingresada es regresada y eliminada; si es falso, " +"se selecciona la llave más antigua::" #: ../Doc/whatsnew/2.7.rst:262 msgid "" "Comparing two ordered dictionaries checks both the keys and values, and " "requires that the insertion order was the same::" msgstr "" +"La comparación de dos diccionarios ordenados comprueba tanto las claves como " +"los valores, y requiere que el orden de inserción sea el mismo::" #: ../Doc/whatsnew/2.7.rst:278 msgid "" "Comparing an :class:`~collections.OrderedDict` with a regular dictionary " "ignores the insertion order and just compares the keys and values." msgstr "" +"Comparando a un :class:`~collections.OrderedDict` con un diccionario normal " +"ignora el orden de inserción y simplemente compara las llaves y los valores." #: ../Doc/whatsnew/2.7.rst:281 msgid "" @@ -338,12 +489,19 @@ msgid "" "secondary dictionary maps keys to their corresponding list node, so deletion " "doesn't have to traverse the entire linked list and therefore remains O(1)." msgstr "" +"¿Cómo funciona :class:`~collections.OrderedDict`? Mantiene una lista " +"doblemente vinculada de claves, añadiendo nuevas claves a la lista a medida " +"que se insertan. Un diccionario secundario asigna las claves a su nodo de " +"lista correspondiente, por lo que la eliminación no tiene que recorrer toda " +"la lista vinculada y, por lo tanto, sigue siendo O(1)." #: ../Doc/whatsnew/2.7.rst:287 msgid "" "The standard library now supports use of ordered dictionaries in several " "modules." msgstr "" +"La biblioteca estándar ahora admite el uso de diccionarios ordenados en " +"varios módulos." #: ../Doc/whatsnew/2.7.rst:290 msgid "" @@ -351,6 +509,9 @@ msgid "" "configuration files can now be read, modified, and then written back in " "their original order." msgstr "" +"El módulo :mod:`ConfigParser` los utiliza de forma predeterminada, lo que " +"significa que los archivos de configuración ahora se pueden leer, modificar " +"y volver a escribir en su orden original." #: ../Doc/whatsnew/2.7.rst:294 msgid "" @@ -358,6 +519,9 @@ msgid "" "`collections.namedtuple` now returns an ordered dictionary with the values " "appearing in the same order as the underlying tuple indices." msgstr "" +"El método :meth:`~collections.somenamedtuple._asdict()` para :func:" +"`collections.namedtuple` ahora devuelve un diccionario ordenado con los " +"valores que aparecen en el mismo orden que los índices de tupla subyacentes." #: ../Doc/whatsnew/2.7.rst:298 msgid "" @@ -366,20 +530,27 @@ msgid "" "instances to be built by the decoder. Support was also added for third-party " "tools like `PyYAML `_." msgstr "" +"El módulo :mod:`json` de la clase constructor :class:`~json.JSONDecoder` se " +"amplió con un parámetro *object_pairs_hook* para permitir que el " +"descodificador compilara instancias :class:`OrderedDict`. También se agregó " +"compatibilidad con herramientas de terceros como `PyYAML `_." #: ../Doc/whatsnew/2.7.rst:307 msgid ":pep:`372` - Adding an ordered dictionary to collections" -msgstr "" +msgstr ":pep:`372` - Adición de un diccionario ordenado a las *collections*" #: ../Doc/whatsnew/2.7.rst:307 msgid "" "PEP written by Armin Ronacher and Raymond Hettinger; implemented by Raymond " "Hettinger." msgstr "" +"PEP escrito por Armin Ronacher y Raymond Hettinger; implementado por Raymond " +"Hettinger." #: ../Doc/whatsnew/2.7.rst:313 msgid "PEP 378: Format Specifier for Thousands Separator" -msgstr "" +msgstr "PEP 378: Especificador de formato para separador de miles" #: ../Doc/whatsnew/2.7.rst:315 msgid "" @@ -387,6 +558,9 @@ msgid "" "large numbers, rendering them as 18,446,744,073,709,551,616 instead of " "18446744073709551616." msgstr "" +"Para que la salida del programa sea más legible, puede ser útil agregar " +"separadores a números grandes, representándolos como " +"18,446,744,073,709,551,616 en lugar de 18446744073709551616." #: ../Doc/whatsnew/2.7.rst:319 msgid "" @@ -396,6 +570,12 @@ msgid "" "unsuitable for multi-threaded applications where different threads are " "producing output for different locales." msgstr "" +"La solución totalmente general para hacer esto es el módulo :mod:`locale`, " +"que puede utilizar diferentes separadores (\",\" en América del Norte, \".\" " +"en Europa) y diferentes tamaños de agrupación, pero :mod:`locale` es " +"complicado de usar y no es adecuado para aplicaciones multiproceso donde " +"diferentes hilos están produciendo resultados para diferentes " +"configuraciones regionales." #: ../Doc/whatsnew/2.7.rst:325 msgid "" @@ -403,10 +583,14 @@ msgid "" "language used by the :meth:`str.format` method. When formatting a floating-" "point number, simply include a comma between the width and the precision::" msgstr "" +"Por lo tanto, se ha añadido un mecanismo simple de agrupación de comas al " +"mini-lenguaje utilizado por el método :meth:`str.format`. Al dar formato a " +"un número de punto flotante, simplemente incluya una coma entre el ancho y " +"la precisión::" #: ../Doc/whatsnew/2.7.rst:333 msgid "When formatting an integer, include the comma after the width:" -msgstr "" +msgstr "Al dar formato a un entero, incluya la coma después del ancho:" #: ../Doc/whatsnew/2.7.rst:338 msgid "" @@ -415,24 +599,30 @@ msgid "" "formatting mechanism isn't as general as the :mod:`locale` module, but it's " "easier to use." msgstr "" +"Este mecanismo no es adaptable en absoluto; Las comas siempre se utilizan " +"como separador y la agrupación siempre está en grupos de tres dígitos. El " +"mecanismo de formato de coma no es tan general como el módulo :mod:`locale`, " +"pero es más fácil de usar." #: ../Doc/whatsnew/2.7.rst:345 msgid ":pep:`378` - Format Specifier for Thousands Separator" -msgstr "" +msgstr ":pep:`378` - Especificador de formato para separador de miles" #: ../Doc/whatsnew/2.7.rst:346 msgid "PEP written by Raymond Hettinger; implemented by Eric Smith." -msgstr "" +msgstr "PEP escrito por Raymond Hettinger; implementado por Eric Smith." #: ../Doc/whatsnew/2.7.rst:349 msgid "PEP 389: The argparse Module for Parsing Command Lines" -msgstr "" +msgstr "PEP 389: El módulo argparse para el análisis de líneas de comando" #: ../Doc/whatsnew/2.7.rst:351 msgid "" "The :mod:`argparse` module for parsing command-line arguments was added as a " "more powerful replacement for the :mod:`optparse` module." msgstr "" +"El módulo :mod:`argparse` para analizar argumentos de línea de comandos se " +"agregó como un reemplazo más potente para el módulo :mod:`optparse`." #: ../Doc/whatsnew/2.7.rst:355 msgid "" @@ -446,6 +636,16 @@ msgid "" "`argparse` API consistent with :mod:`optparse`'s interface was discussed but " "rejected as too messy and difficult.)" msgstr "" +"Esto significa que Python ahora admite tres módulos diferentes para analizar " +"argumentos de línea de comandos: :mod:`getopt`, :mod:`optparse`, y :mod:" +"`argparse`. El módulo :mod:`getopt` se parece mucho a la función :c:func:" +"`getopt` de la biblioteca C, por lo que sigue siendo útil si estás " +"escribiendo un prototipo de Python que finalmente se reescribe en C. :mod:" +"`optparse` se vuelve redundante, pero no hay planes para eliminarlo porque " +"hay muchos scripts que todavía lo usan, y no hay una manera automatizada de " +"actualizar estos scripts. (Hacer que la API :mod:`argparse` sea coherente " +"con la interfaz de :mod:`optparse` fue discutido pero rechazado como " +"demasiado desordenado y difícil.)" #: ../Doc/whatsnew/2.7.rst:366 msgid "" @@ -453,22 +653,30 @@ msgid "" "compatibility with earlier versions of Python, use :mod:`argparse` instead " "of :mod:`optparse`." msgstr "" +"En resumen, si estás escribiendo un nuevo script y no necesitas preocuparte " +"por la compatibilidad con versiones anteriores de Python, usa :mod:" +"`argparse` en lugar de :mod:`optparse`." #: ../Doc/whatsnew/2.7.rst:370 msgid "Here's an example::" -msgstr "" +msgstr "Este es un ejemplo::" #: ../Doc/whatsnew/2.7.rst:393 msgid "" "Unless you override it, :option:`!-h` and :option:`!--help` switches are " "automatically added, and produce neatly formatted output::" msgstr "" +"A menos que lo reemplace, los modificadores :option:`!-h` y :option:`!--" +"help` se agregan automáticamente, y producen una salida con formato ordenado:" #: ../Doc/whatsnew/2.7.rst:410 msgid "" "As with :mod:`optparse`, the command-line switches and arguments are " "returned as an object with attributes named by the *dest* parameters::" msgstr "" +"Al igual que con :mod:`optparse`, los modificadores y argumentos de línea de " +"comandos se devuelven como un objeto con atributos denominados por los " +"parámetros *dest*:" #: ../Doc/whatsnew/2.7.rst:425 msgid "" @@ -481,36 +689,47 @@ msgid "" "FileType`, which will automatically open files for you and understands that " "``'-'`` means standard input or output." msgstr "" +":mod:`argparse` tiene una validación mucho más fantasiosa que :mod:" +"`optparse`; puede especificar un número exacto de argumentos como un entero, " +"0 o más argumentos pasando ``'*'``, 1 o más pasando ``'+'``, o un argumento " +"opcional con ``'?'``. Un analizador de nivel superior puede contener sub " +"analizadores para definir subcomandos que tienen diferentes conjuntos de " +"modificadores, como en ``svn commit``, ``svn checkout``, etc. Puede " +"especificar el tipo de un argumento como :class:`~argparse.FileType`, que " +"abrirá automáticamente los archivos y entiende que ``'-'`` significa entrada " +"o salida estándar." #: ../Doc/whatsnew/2.7.rst:438 msgid ":mod:`argparse` documentation" -msgstr "" +msgstr ":mod:`argparse` documentación" #: ../Doc/whatsnew/2.7.rst:438 msgid "The documentation page of the argparse module." -msgstr "" +msgstr "La página de documentación del módulo argparse." #: ../Doc/whatsnew/2.7.rst:442 msgid ":ref:`upgrading-optparse-code`" -msgstr "" +msgstr ":ref:`upgrading-optparse-code`" #: ../Doc/whatsnew/2.7.rst:441 msgid "" "Part of the Python documentation, describing how to convert code that uses :" "mod:`optparse`." msgstr "" +"Parte de la documentación de Python, que describe cómo convertir código que " +"usa :mod:`optparse`." #: ../Doc/whatsnew/2.7.rst:444 msgid ":pep:`389` - argparse - New Command Line Parsing Module" -msgstr "" +msgstr ":pep:`389` - argparse - Nuevo módulo de análisis de línea de comandos" #: ../Doc/whatsnew/2.7.rst:445 msgid "PEP written and implemented by Steven Bethard." -msgstr "" +msgstr "PEP escrito e implementado por Steven Bethard." #: ../Doc/whatsnew/2.7.rst:448 msgid "PEP 391: Dictionary-Based Configuration For Logging" -msgstr "" +msgstr "PEP 391: Configuración basada en diccionarios para el registro" #: ../Doc/whatsnew/2.7.rst:450 msgid "" @@ -519,6 +738,10 @@ msgid "" "messages, format them differently, and direct messages to a varying number " "of handlers." msgstr "" +"El módulo :mod:`logging` es muy flexible; las aplicaciones pueden definir un " +"árbol de subsistemas de registro, y cada registrador de este árbol puede " +"filtrar ciertos mensajes, formatearlos de forma diferente y dirigir mensajes " +"a un número variable de controladores." #: ../Doc/whatsnew/2.7.rst:455 msgid "" @@ -529,6 +752,12 @@ msgid "" "doesn't support configuring filters, and it's messier to generate " "programmatically." msgstr "" +"Toda esta flexibilidad puede requerir mucha configuración. Puede escribir " +"instrucciones Python para crear objetos y establecer sus propiedades, pero " +"una configuración compleja requiere código detallado pero aburrido. :mod:" +"`logging` también es compatible con una función :func:`~logging.fileConfig` " +"que analiza un archivo, pero el formato de archivo no admite la " +"configuración de filtros, y es más complicado generar mediante programación." #: ../Doc/whatsnew/2.7.rst:462 msgid "" @@ -538,6 +767,12 @@ msgid "" "containing JSON; or use a YAML parsing library if one is installed. For " "more information see :ref:`logging-config-api`." msgstr "" +"Python 2.7 agrega una función :func:`~logging.dictConfig` que utiliza un " +"diccionario para configurar el registro. Hay muchas maneras de producir un " +"diccionario de diferentes fuentes: construir uno con código; analizar un " +"archivo que contenga JSON; o utilice una biblioteca de análisis YAML si hay " +"una instalada. Para obtener más información, consulte :ref:`logging-config-" +"api`." #: ../Doc/whatsnew/2.7.rst:468 msgid "" @@ -547,12 +782,20 @@ msgid "" "will be written to a :file:`network.log` file that will be rotated once the " "log reaches 1MB." msgstr "" +"En el ejemplo siguiente se configuran dos registradores, el registrador raíz " +"y un registrador denominado \"network\". Los mensajes enviados al " +"registrador raíz se enviarán al registro del sistema mediante el protocolo " +"syslog, y los mensajes al registrador de la \"network\" se escribirán en un " +"archivo :file:`network.log` que se rotará una vez que el registro alcance " +"1MB." #: ../Doc/whatsnew/2.7.rst:518 msgid "" "Three smaller enhancements to the :mod:`logging` module, all implemented by " "Vinay Sajip, are:" msgstr "" +"Tres mejoras más pequeñas en el módulo :mod:`logging`, todas implementadas " +"por Vinay Sajip, son:" #: ../Doc/whatsnew/2.7.rst:523 msgid "" @@ -561,6 +804,11 @@ msgid "" "socket to use, either :const:`socket.SOCK_DGRAM` for UDP or :const:`socket." "SOCK_STREAM` for TCP. The default protocol remains UDP." msgstr "" +"La clase :class:`~logging.handlers.SysLogHandler` ahora admite syslogging a " +"través de TCP. El constructor tiene un parámetro *socktype* que proporciona " +"el tipo de socket que se va a usar, ya sea :const:`socket.SOCK_DGRAM` para " +"UDP o :const:`socket.SOCK_STREAM` para TCP. El protocolo predeterminado " +"sigue siendo UDP." #: ../Doc/whatsnew/2.7.rst:529 msgid "" @@ -570,6 +818,11 @@ msgid "" "calling ``log.getChild('network.listen')`` is equivalent to ``getLogger('app." "network.listen')``." msgstr "" +"Las instancias :class:`~logging.Logger` ganaron un método :meth:`~logging." +"Logger.getChild` que recupera un registrador descendiente mediante una ruta " +"de acceso relativa. Por ejemplo, una vez que se recupera un registrador " +"haciendo ``log = getLogger('app')``, llamando ``log.getChild('network." +"listen')`` es equivalente a ``getLogger('app.network.listen')``." #: ../Doc/whatsnew/2.7.rst:535 msgid "" @@ -577,18 +830,21 @@ msgid "" "LoggerAdapter.isEnabledFor` method that takes a *level* and returns whether " "the underlying logger would process a message of that level of importance." msgstr "" +"La clase :class:`~logging.LoggerAdapter` gano un método :meth:`~logging." +"LoggerAdapter.isEnabledFor` que toma un *nivel* y devuelve si el registrador " +"subyacente procesará un mensaje de ese nivel de importancia." #: ../Doc/whatsnew/2.7.rst:544 msgid ":pep:`391` - Dictionary-Based Configuration For Logging" -msgstr "" +msgstr ":pep:`391` - Configuración basada en diccionarios para el registro" #: ../Doc/whatsnew/2.7.rst:545 msgid "PEP written and implemented by Vinay Sajip." -msgstr "" +msgstr "PEP escrito e implementado por Vinay Sajip." #: ../Doc/whatsnew/2.7.rst:548 msgid "PEP 3106: Dictionary Views" -msgstr "" +msgstr "PEP 3106: Vistas de diccionario" #: ../Doc/whatsnew/2.7.rst:550 msgid "" @@ -596,6 +852,9 @@ msgid "" "`~dict.items` are different in Python 3.x. They return an object called a :" "dfn:`view` instead of a fully materialized list." msgstr "" +"Los métodos de diccionarios :meth:`~dict.keys`, :meth:`~dict.values` y :meth:" +"`~dict.items` son diferentes en Python 3.x. Ellos regresan un objeto " +"llamado :dfn:`view` en lugar de una lista completamente materializada." #: ../Doc/whatsnew/2.7.rst:554 msgid "" @@ -604,24 +863,36 @@ msgid "" "would break. Instead the 3.x versions were added under the new names :meth:" "`~dict.viewkeys`, :meth:`~dict.viewvalues`, and :meth:`~dict.viewitems`." msgstr "" +"No es posible cambiar el retorno de valores de los métodos :meth:`~dict." +"keys`, :meth:`~dict.values` y :meth:`~dict.items` en Python 2.7 porque se " +"rompería demasiado código. En su lugar en las versiones 3.x se fueron " +"agregando bajo los nuevos nombres :meth:`~dict.viewkeys`, :meth:`~dict." +"viewvalues` y :meth:`~dict.viewitems`." #: ../Doc/whatsnew/2.7.rst:568 msgid "" "Views can be iterated over, but the key and item views also behave like " "sets. The ``&`` operator performs intersection, and ``|`` performs a union::" msgstr "" +"Las vistas se pueden iterar, pero las vistas de elementos y claves también " +"se comportan como conjuntos. El operador ``&`` realiza la intersección y ``|" +"`` realiza una unión::" #: ../Doc/whatsnew/2.7.rst:579 msgid "" "The view keeps track of the dictionary and its contents change as the " "dictionary is modified::" msgstr "" +"La vista realiza un seguimiento del diccionario y su contenido cambia a " +"medida que se modifica el diccionario::" #: ../Doc/whatsnew/2.7.rst:589 msgid "" "However, note that you can't add or remove keys while you're iterating over " "the view::" msgstr "" +"Sin embargo, tenga en cuenta que no puede agregar o eliminar claves mientras " +"está iterando sobre la vista::" #: ../Doc/whatsnew/2.7.rst:599 msgid "" @@ -629,56 +900,71 @@ msgid "" "change them to the standard :meth:`~dict.keys`, :meth:`~dict.values`, and :" "meth:`~dict.items` methods." msgstr "" +"Puede usar los métodos de vista en el código en Python 2.x, y el convertidor " +"2to3 los cambiará a los métodos estándar :meth:`~dict.keys`, :meth:`~dict." +"values` y :meth:`~dict.items`." #: ../Doc/whatsnew/2.7.rst:606 msgid ":pep:`3106` - Revamping dict.keys(), .values() and .items()" -msgstr "" +msgstr ":pep:`3106` - Renovación dict.keys(), .values() y .items()" #: ../Doc/whatsnew/2.7.rst:606 msgid "" "PEP written by Guido van Rossum. Backported to 2.7 by Alexandre Vassalotti; :" "issue:`1967`." msgstr "" +"PEP escrito por Guido van Rossum. Portado a 2.7 por Alexandre Vassalotti; :" +"issue:`1967`." #: ../Doc/whatsnew/2.7.rst:611 msgid "PEP 3137: The memoryview Object" -msgstr "" +msgstr "PEP 3137: El objeto memoryview" #: ../Doc/whatsnew/2.7.rst:613 msgid "" "The :class:`memoryview` object provides a view of another object's memory " "content that matches the :class:`bytes` type's interface." msgstr "" +"El objeto :class:`memoryview` proporciona una vista del contenido de la " +"memoria de otro objeto que coincide con la interfaz de tipo :class:`bytes`." #: ../Doc/whatsnew/2.7.rst:631 msgid "" "The content of the view can be converted to a string of bytes or a list of " "integers:" msgstr "" +"El contenido de la vista se puede convertir en una cadena de bytes o una " +"lista de números enteros:" #: ../Doc/whatsnew/2.7.rst:643 msgid "" ":class:`memoryview` objects allow modifying the underlying object if it's a " "mutable object." msgstr "" +"Los objetos :class:`memoryview` permiten modificar el objeto subyacente si " +"es un objeto mutable." #: ../Doc/whatsnew/2.7.rst:666 msgid ":pep:`3137` - Immutable Bytes and Mutable Buffer" -msgstr "" +msgstr ":pep:`3137` - Bytes inmutables y búfer mutable" #: ../Doc/whatsnew/2.7.rst:665 msgid "" "PEP written by Guido van Rossum. Implemented by Travis Oliphant, Antoine " "Pitrou and others. Backported to 2.7 by Antoine Pitrou; :issue:`2396`." msgstr "" +"PEP escrito por Guido van Rossum. Implementado por Travis Oliphant, Antoine " +"Pitrou y otros. Portado a 2.7 por Antoine Pitrou; :issue:`2396`." #: ../Doc/whatsnew/2.7.rst:672 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios de lenguaje" #: ../Doc/whatsnew/2.7.rst:674 msgid "Some smaller changes made to the core Python language are:" msgstr "" +"Algunos de los cambios mas pequeños hechos al núcleo del lenguaje de Python " +"son:" #: ../Doc/whatsnew/2.7.rst:676 msgid "" @@ -688,10 +974,15 @@ msgid "" "values. ``{}`` continues to represent an empty dictionary; use ``set()`` for " "an empty set." msgstr "" +"La sintaxis para literales de conjuntos se ha actualizado desde Python 3.x. " +"Los corchetes se utilizan para rodear el contenido del conjunto mutable " +"resultante; los literales de conjunto se distinguen de los diccionarios por " +"no contener dos puntos ni valores. ``{}`` sigue representando un diccionario " +"vacío; use ``set()`` para un conjunto vacío." #: ../Doc/whatsnew/2.7.rst:693 msgid "Backported by Alexandre Vassalotti; :issue:`2335`." -msgstr "" +msgstr "Portado por Alexandre Vassalotti; :issue:`2335`." #: ../Doc/whatsnew/2.7.rst:695 msgid "" @@ -699,10 +990,13 @@ msgid "" "generalizing list/generator comprehensions to use the literal syntax for " "sets and dictionaries." msgstr "" +"El diccionario y las comprensiones de conjuntos son otra característica " +"portada desde 3.x, que generaliza las comprensiones de listas / generadores " +"para usar la sintaxis literal para conjuntos y diccionarios." #: ../Doc/whatsnew/2.7.rst:707 msgid "Backported by Alexandre Vassalotti; :issue:`2333`." -msgstr "" +msgstr "Portado por Alexandre Vassalotti; :issue:`2333`." #: ../Doc/whatsnew/2.7.rst:709 msgid "" @@ -710,22 +1004,30 @@ msgid "" "statement. Context managers are processed from left to right and each one " "is treated as beginning a new :keyword:`!with` statement. This means that::" msgstr "" +"La declaración :keyword:`with` ahora puede usar múltiples administradores de " +"contexto en una declaración. Los administradores de contexto se procesan de " +"izquierda a derecha y cada uno se trata como si comenzara una nueva " +"declaración :keyword:`!with`. Esto significa que::" #: ../Doc/whatsnew/2.7.rst:717 msgid "is equivalent to::" -msgstr "" +msgstr "es equivalente a::" #: ../Doc/whatsnew/2.7.rst:723 msgid "" "The :func:`contextlib.nested` function provides a very similar function, so " "it's no longer necessary and has been deprecated." msgstr "" +"La función :func:`contextlib.nested` provee una función muy similar, por lo " +"que ya no es necesario y ha quedado obsoleto." #: ../Doc/whatsnew/2.7.rst:726 msgid "" "(Proposed in https://codereview.appspot.com/53094; implemented by Georg " "Brandl.)" msgstr "" +"(Propuesta en https://codereview.appspot.com/53094; implementado por Georg " +"Brandl.)" #: ../Doc/whatsnew/2.7.rst:729 msgid "" @@ -737,6 +1039,14 @@ msgid "" "`pickle` and :mod:`json` modules; parsing of float and imaginary literals in " "Python code; and :class:`~decimal.Decimal`-to-float conversion." msgstr "" +"Las conversiones entre números de punto flotante y cadenas ahora se " +"redondean correctamente en la mayoría de las plataformas. Estas conversiones " +"ocurren en muchos lugares diferentes: :func:`str` en flotantes y números " +"complejos; los constructores :class:`float` y :class:`complex`; formato " +"numérico; serializar y deserializar flotantes y números complejos usando los " +"módulos :mod:`marshal`, :mod:`pickle` y :mod:`json`; análisis de literales " +"flotantes e imaginarios en código Python; y conversión :class:`~decimal." +"Decimal` a flotante." #: ../Doc/whatsnew/2.7.rst:741 msgid "" @@ -745,6 +1055,11 @@ msgid "" "back to *x* under correct rounding (with round-half-to-even rounding mode). " "Previously it gave a string based on rounding x to 17 decimal digits." msgstr "" +"Relacionado con esto, el :func:`repr` de un número de punto flotante *x* " +"ahora devuelve un resultado basado en la cadena decimal más corta que se " +"garantiza que se redondeará a *x* con el redondeo correcto (con el modo de " +"redondeo *round-half-to-even*). Anteriormente, daba una cadena basada en " +"redondear x a 17 dígitos decimales." #: ../Doc/whatsnew/2.7.rst:749 msgid "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 3420822cb4..3cfa99779e 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -1,41 +1,45 @@ # 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: 2020-10-22 15:48+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/whatsnew/3.1.rst:3 msgid "What's New In Python 3.1" -msgstr "" +msgstr "Qué hay de nuevo en Python 3.1" #: ../Doc/whatsnew/3.1.rst:0 msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/3.1.rst:5 msgid "Raymond Hettinger" -msgstr "" +msgstr "Raymond Hettinger" #: ../Doc/whatsnew/3.1.rst:49 msgid "This article explains the new features in Python 3.1, compared to 3.0." msgstr "" +"En este artículo se explican las nuevas características de Python 3.1, en " +"comparación con 3.0." #: ../Doc/whatsnew/3.1.rst:53 msgid "PEP 372: Ordered Dictionaries" -msgstr "" +msgstr "PEP 372: Diccionarios ordenados" #: ../Doc/whatsnew/3.1.rst:55 msgid "" @@ -45,6 +49,12 @@ msgid "" "the experiences from those implementations, a new :class:`collections." "OrderedDict` class has been introduced." msgstr "" +"Los diccionarios de Python normales iteran sobre los pares clave/valor en " +"orden arbitrario. A través de los años, varios autores han escrito " +"implementaciones alternativas que recuerdan el orden en el que se insertaron " +"originalmente las claves. Basándose en las experiencias de esas " +"implementaciones, una nueva clase :class:`collections.OrderedDict` ha sido " +"introducida." #: ../Doc/whatsnew/3.1.rst:61 msgid "" @@ -54,6 +64,12 @@ msgid "" "original insertion position is left unchanged. Deleting an entry and " "reinserting it will move it to the end." msgstr "" +"La API de OrderedDict es sustancialmente la misma que la de los diccionarios " +"normales, pero iterará sobre las claves y los valores en un orden " +"garantizado, dependiendo de cuándo se insertó una clave por primera vez. Si " +"una nueva entrada sobrescribe una entrada existente, la posición de " +"inserción original se deja sin cambios. Eliminar una entrada y volver a " +"insertarla la moverá hasta el final." #: ../Doc/whatsnew/3.1.rst:67 msgid "" @@ -67,20 +83,31 @@ msgid "" "the decoder. Support was also added for third-party tools like `PyYAML " "`_." msgstr "" +"La biblioteca estándar ahora admite el uso de diccionarios ordenados en " +"varios módulos. El módulo :mod:`configparser` los usa por defecto. Esto " +"permite que los archivos de configuración se lean, modifiquen y luego se " +"vuelvan a escribir en su orden original. El método *_asdict()* para :func:" +"`collections.namedtuple` ahora retorna un diccionario ordenado con los " +"valores que aparecen en el mismo orden que los índices de tupla subyacentes. " +"El módulo :mod:`json` se está construyendo con un *object_pairs_hook* para " +"permitir que el decodificador construya OrderedDicts. También se agregó " +"soporte para herramientas de terceros como `PyYAML `_." #: ../Doc/whatsnew/3.1.rst:79 msgid ":pep:`372` - Ordered Dictionaries" -msgstr "" +msgstr ":pep:`372` - Diccionarios ordenados" #: ../Doc/whatsnew/3.1.rst:79 msgid "" "PEP written by Armin Ronacher and Raymond Hettinger. Implementation written " "by Raymond Hettinger." msgstr "" +"PEP escrito por Armin Ronacher y Raymond Hettinger. Implementación escrita " +"por Raymond Hettinger." #: ../Doc/whatsnew/3.1.rst:84 msgid "PEP 378: Format Specifier for Thousands Separator" -msgstr "" +msgstr "PEP 378: Especificador de formato para el separador de miles" #: ../Doc/whatsnew/3.1.rst:86 msgid "" @@ -89,12 +116,19 @@ msgid "" "number with a thousands separator. That provides a way to humanize a " "program's output, improving its professional appearance and readability::" msgstr "" +"La función incorporada :func:`format` y el método :meth:`str.format` usan un " +"mini-lenguaje que ahora incluye una forma simple, que no tiene en cuenta la " +"configuración regional, de formatear un número con un separador de miles. " +"Eso proporciona una manera de humanizar la salida de un programa, mejorando " +"su apariencia profesional y legibilidad::" #: ../Doc/whatsnew/3.1.rst:100 msgid "" "The supported types are :class:`int`, :class:`float`, :class:`complex` and :" "class:`decimal.Decimal`." msgstr "" +"Los tipos soportados son :class:`int`, :class:`float`, :class:`complex` y :" +"class:`decimal.Decimal`." #: ../Doc/whatsnew/3.1.rst:103 msgid "" @@ -103,24 +137,30 @@ msgid "" "use the existing *n* format specifier which already has some support for " "thousands separators." msgstr "" +"Se está discutiendo cómo especificar separadores alternativos como puntos, " +"espacios, apóstrofos o guiones bajos. Las aplicaciones que reconocen la " +"configuración regional deben usar el especificador de formato *n* existente, " +"que ya es compatible con el separadores de miles." #: ../Doc/whatsnew/3.1.rst:111 msgid ":pep:`378` - Format Specifier for Thousands Separator" -msgstr "" +msgstr ":pep:`378` - Especificador de formato para el separador de miles" #: ../Doc/whatsnew/3.1.rst:111 msgid "" "PEP written by Raymond Hettinger and implemented by Eric Smith and Mark " "Dickinson." msgstr "" +"PEP escrito por Raymond Hettinger e implementado por Eric Smith y Mark " +"Dickinson." #: ../Doc/whatsnew/3.1.rst:116 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios del lenguaje" #: ../Doc/whatsnew/3.1.rst:118 msgid "Some smaller changes made to the core Python language are:" -msgstr "" +msgstr "Algunos cambios pequeños en el núcleo del lenguaje Python son:" #: ../Doc/whatsnew/3.1.rst:120 msgid "" @@ -130,33 +170,46 @@ msgid "" "(Suggestion and initial patch by Andy Chu; revised patch by Phillip J. Eby " "and Nick Coghlan; :issue:`1739468`.)" msgstr "" +"Los directorios y archivos zip que contienen un archivo :file:`__main__.py` " +"pueden ahora ser ejecutados directamente pasando su nombre al intérprete. El " +"directorio/archivo zip es automáticamente insertado como la primera entrada " +"en sys.path. (Sugerencia y parche inicial por Andy Chu; parche revisado por " +"Phillip J. Eby y Nick Coghlan; :issue:`1739468`.)" #: ../Doc/whatsnew/3.1.rst:126 msgid "" "The :func:`int` type gained a ``bit_length`` method that returns the number " "of bits necessary to represent its argument in binary::" msgstr "" +"El tipo :func:`int` ganó un método ``bit_length`` que retorna el número de " +"bits necesarios para representar sus argumentos en binario::" #: ../Doc/whatsnew/3.1.rst:140 msgid "" "(Contributed by Fredrik Johansson, Victor Stinner, Raymond Hettinger, and " "Mark Dickinson; :issue:`3439`.)" msgstr "" +"(Contribución de Fredrik Johansson, Victor Stinner, Raymond Hettinger y Mark " +"Dickinson; :issue:`3439`.)" #: ../Doc/whatsnew/3.1.rst:143 msgid "" "The fields in :func:`format` strings can now be automatically numbered::" msgstr "" +"Los campos en las cadenas de formato de :func:`format` ahora pueden ser " +"automáticamente numerados::" #: ../Doc/whatsnew/3.1.rst:149 msgid "" "Formerly, the string would have required numbered fields such as: ``'Sir {0} " "of {1}'``." msgstr "" +"Anteriormente, la cadena requería campos numerados como: ``'Sir {0} of " +"{1}'``." #: ../Doc/whatsnew/3.1.rst:152 msgid "(Contributed by Eric Smith; :issue:`5237`.)" -msgstr "" +msgstr "(Contribución de Eric Smith; :issue:`5237`.)" #: ../Doc/whatsnew/3.1.rst:154 msgid "" @@ -167,38 +220,52 @@ msgid "" "`bytearray` each have their own **maketrans** and **translate** methods with " "intermediate translation tables of the appropriate type." msgstr "" +"La función :func:`string.maketrans` está en desuso y se reemplaza por nuevos " +"métodos estáticos, :meth:`bytes.maketrans` y :meth:`bytearray.maketrans`. " +"Este cambio resuelve la confusión en torno a los tipos que fueron soportados " +"por el módulo :mod:`string`. Ahora, :class:`str`, :class:`bytes` y :class:" +"`bytearray` tienen sus propios métodos **maketrans** y **translate** con " +"tablas de traducción intermedias del tipo adecuado." #: ../Doc/whatsnew/3.1.rst:161 msgid "(Contributed by Georg Brandl; :issue:`5675`.)" -msgstr "" +msgstr "(Contribución de Georg Brandl; :issue:`5675`.)" #: ../Doc/whatsnew/3.1.rst:163 msgid "" "The syntax of the :keyword:`with` statement now allows multiple context " "managers in a single statement::" msgstr "" +"La sintaxis de la sentencia :keyword:`with` ahora permite múltiples gestores " +"de contexto en una sola declaración::" #: ../Doc/whatsnew/3.1.rst:171 msgid "" "With the new syntax, the :func:`contextlib.nested` function is no longer " "needed and is now deprecated." msgstr "" +"Con la nueva sintaxis, la función :func:`contextlib.nested` ya no es " +"necesaria y ahora está obsoleta." #: ../Doc/whatsnew/3.1.rst:174 msgid "" "(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " "`_.)" msgstr "" +"(Contribución de Georg Brandl y Mattias Brändström; `appspot issue 53094 " +"`_.)" #: ../Doc/whatsnew/3.1.rst:177 msgid "" "``round(x, n)`` now returns an integer if *x* is an integer. Previously it " "returned a float::" msgstr "" +"``round(x, n)`` ahora retorna un número entero si *x* es un entero. " +"Anteriormente retornaba un número flotante::" #: ../Doc/whatsnew/3.1.rst:183 msgid "(Contributed by Mark Dickinson; :issue:`4707`.)" -msgstr "" +msgstr "(Contribución de Mark Dickinson; :issue:`4707`.)" #: ../Doc/whatsnew/3.1.rst:185 msgid "" @@ -206,6 +273,10 @@ msgid "" "point representation that doesn't change its value. This should help " "mitigate some of the confusion surrounding binary floating point numbers." msgstr "" +"Python ahora utiliza el algoritmo de David Gay para encontrar la " +"representación de coma flotante más corta que no cambia su valor. Esto " +"debería ayudar a mitigar parte de la confusión que rodea a los números de " +"coma flotante binarios." #: ../Doc/whatsnew/3.1.rst:190 msgid "" @@ -217,6 +288,13 @@ msgid "" "nearest value was and still is used in subsequent floating point " "calculations." msgstr "" +"La importancia se ve fácilmente con un número como ``1.1``, que no tiene un " +"equivalente exacto en coma flotante binaria. Puesto que no hay un " +"equivalente exacto, una expresión como ``float('1.1')`` se evalúa como el " +"valor representable más cercano, que es ``0x1.199999999999ap+0`` en " +"hexadecimal o ``1.100000000000000088817841970012523233890533447265625`` en " +"decimal. Ese valor más cercano fue y todavía es utilizado en los cálculos de " +"coma flotante posteriores." #: ../Doc/whatsnew/3.1.rst:198 msgid "" @@ -229,6 +307,14 @@ msgid "" "intrinsic limitations of binary floating point representation as being a " "problem with Python itself)." msgstr "" +"La novedad es cómo se muestra el número. Anteriormente, Python usaba un " +"enfoque simple. El valor de ``repr(1.1)`` se calculaba como ``format(1.1, " +"'.17g')`` que era evaluado como ``'1.1000000000000001'``. La ventaja de " +"utilizar 17 dígitos era que se basaba en las garantías de IEEE-754 para " +"asegurar que ``eval(repr(1.1))`` se volviera a redondear exactamente a su " +"valor original. La desventaja es que muchas personas encontraban el " +"resultado confuso (confundiendo las limitaciones intrínsecas de la " +"representación de coma flotante binaria con un problema con Python en sí)." #: ../Doc/whatsnew/3.1.rst:207 msgid "" @@ -237,6 +323,10 @@ msgid "" "get stored with the same underlying float value) and returns the shortest " "representation." msgstr "" +"El nuevo algoritmo para ``repr(1.1)`` es más inteligente y retorna " +"``'1.1'``. Efectivamente, busca todas las representaciones de cadenas " +"equivalentes (las que se almacenan con el mismo valor flotante subyacente) y " +"retorna la representación más corta." #: ../Doc/whatsnew/3.1.rst:212 msgid "" @@ -244,6 +334,10 @@ msgid "" "it does not change the underlying values. So, it is still the case that " "``1.1 + 2.2 != 3.3`` even though the representations may suggest otherwise." msgstr "" +"El nuevo algoritmo tiende a emitir representaciones más limpias cuando es " +"posible, pero esto no cambia los valores subyacentes. Por lo tanto, todavía " +"se da el caso ``1.1 + 2.2 != 3.3``, aún cuando las representaciones puedan " +"sugerir lo contrario." #: ../Doc/whatsnew/3.1.rst:216 msgid "" @@ -252,24 +346,31 @@ msgid "" "algorithm will continue to be used. Also, the text pickle protocols assure " "cross-platform portability by using the old algorithm." msgstr "" +"El nuevo algoritmo depende de ciertas características de la implementación " +"de coma flotante subyacente. Si no se encuentran las características " +"necesarias, el algoritmo antiguo seguirá utilizándose. Además, los " +"protocolos de pickle de texto aseguran la portabilidad multiplataforma " +"mediante el algoritmo antiguo." #: ../Doc/whatsnew/3.1.rst:221 msgid "(Contributed by Eric Smith and Mark Dickinson; :issue:`1580`)" -msgstr "" +msgstr "(Contribución de Eric Smith y Mark Dickinson; :issue:`1580`)" #: ../Doc/whatsnew/3.1.rst:224 msgid "New, Improved, and Deprecated Modules" -msgstr "" +msgstr "Módulos nuevos, mejorados y obsoletos" #: ../Doc/whatsnew/3.1.rst:226 msgid "" "Added a :class:`collections.Counter` class to support convenient counting of " "unique items in a sequence or iterable::" msgstr "" +"Se ha añadido una clase :class:`collections.Counter` para admitir el " +"recuento conveniente de elementos únicos en una secuencia o una iteración::" #: ../Doc/whatsnew/3.1.rst:232 msgid "(Contributed by Raymond Hettinger; :issue:`1696199`.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger; :issue:`1696199`.)" #: ../Doc/whatsnew/3.1.rst:234 msgid "" @@ -277,20 +378,26 @@ msgid "" "set. The basic idea of ttk is to separate, to the extent possible, the code " "implementing a widget's behavior from the code implementing its appearance." msgstr "" +"Se ha añadido un nuevo módulo :mod:`tkinter.ttk` para acceder al conjunto de " +"widgets temáticos de Tk. La idea básica de ttk es separar, dentro de lo " +"posible, el código que implementa el comportamiento de un widget del código " +"que implementa su apariencia." #: ../Doc/whatsnew/3.1.rst:238 msgid "(Contributed by Guilherme Polo; :issue:`2983`.)" -msgstr "" +msgstr "(Contribución de Guilherme Polo; :issue:`2983`.)" #: ../Doc/whatsnew/3.1.rst:240 msgid "" "The :class:`gzip.GzipFile` and :class:`bz2.BZ2File` classes now support the " "context management protocol::" msgstr "" +"Las clases :class:`gzip.GzipFile` y :class:`bz2.BZ2File` ahora admiten el " +"protocolo de gestión de contexto::" #: ../Doc/whatsnew/3.1.rst:247 msgid "(Contributed by Antoine Pitrou.)" -msgstr "" +msgstr "(Contribución de Antoine Pitrou.)" #: ../Doc/whatsnew/3.1.rst:249 msgid "" @@ -298,6 +405,9 @@ msgid "" "from a binary :class:`float`. The conversion is exact but can sometimes be " "surprising::" msgstr "" +"El módulo :mod:`decimal` ahora admite métodos para crear un objeto decimal " +"de un :class:`float` binario. La conversión es exacta pero puede ser a " +"veces una sorpresa::" #: ../Doc/whatsnew/3.1.rst:256 msgid "" @@ -305,10 +415,13 @@ msgid "" "*1.1*. The fraction has many digits because *1.1* cannot be exactly " "represented in binary." msgstr "" +"El resultado decimal largo muestra la fracción binaria real que se almacena " +"para *1.1*. La fracción tiene muchos dígitos porque *1.1* no se puede " +"representar exactamente en binario." #: ../Doc/whatsnew/3.1.rst:260 msgid "(Contributed by Raymond Hettinger and Mark Dickinson.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger y Mark Dickinson.)" #: ../Doc/whatsnew/3.1.rst:262 msgid "" @@ -320,10 +433,17 @@ msgid "" "argument and can accept any type of counting sequence including :class:" "`fractions.Fraction` and :class:`decimal.Decimal`::" msgstr "" +"El módulo :mod:`itertools` desarrolló dos nuevas funciones. La función :" +"func:`itertools.combinations_with_replacement` es una de las cuatro para " +"generar combinatorias que incluyen permutaciones y productos cartesianos. " +"La función :func:`itertools.compress` imita su homónimo de APL. Además, la " +"función existente :func:`itertools.count` tiene ahora un argumento *step* " +"opcional y puede aceptar cualquier tipo de secuencia de conteo, incluyendo :" +"class:`fractions.Fraction` y :class:`decimal.Decimal`::" #: ../Doc/whatsnew/3.1.rst:281 msgid "(Contributed by Raymond Hettinger.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger.)" #: ../Doc/whatsnew/3.1.rst:283 msgid "" @@ -333,20 +453,28 @@ msgid "" "created by an external source such as a CSV header, SQL field list, or user " "input::" msgstr "" +":func:`collections.namedtuple` ahora admite un argumento de palabra clave " +"*rename* que permite que los campos de nombre inválidos se conviertan " +"automáticamente en nombres posicionados de la forma _0, _1, etc. Esto es de " +"utilidad cuando los nombres del campo están siendo creados por una fuente " +"externa como un encabezado CSV, una lista de campos SQL, o la entrada del " +"usuario::" #: ../Doc/whatsnew/3.1.rst:300 msgid "(Contributed by Raymond Hettinger; :issue:`1818`.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger; :issue:`1818`.)" #: ../Doc/whatsnew/3.1.rst:302 msgid "" "The :func:`re.sub`, :func:`re.subn` and :func:`re.split` functions now " "accept a flags parameter." msgstr "" +"Las funciones :func:`re.sub`, :func:`re.subn` y :func:`re.split` ahora " +"admiten un parámetro *flags*." #: ../Doc/whatsnew/3.1.rst:305 msgid "(Contributed by Gregory Smith.)" -msgstr "" +msgstr "(Contribución de Gregory Smith.)" #: ../Doc/whatsnew/3.1.rst:307 msgid "" @@ -355,10 +483,15 @@ msgid "" "calling library code that does. Setting-up a null handler will suppress " "spurious warnings such as \"No handlers could be found for logger foo\"::" msgstr "" +"El módulo :mod:`logging` ahora implementa una clase simple :class:`logging." +"NullHandler` para aplicaciones que no utilizan el registro pero llaman al " +"código de una biblioteca que si lo hace. La configuración de un controlador " +"nulo suprimirá las advertencias falsas como \"No handlers could be found for " +"logger foo\"::" #: ../Doc/whatsnew/3.1.rst:315 msgid "(Contributed by Vinay Sajip; :issue:`4384`)." -msgstr "" +msgstr "(Contribución de Vinay Sajip; :issue:`4384`)." #: ../Doc/whatsnew/3.1.rst:317 msgid "" @@ -366,40 +499,51 @@ msgid "" "supports the execution of packages by looking for and executing a " "``__main__`` submodule when a package name is supplied." msgstr "" +"El módulo :mod:`runpy` que admite el modificador de línea de comando ``-m`` " +"ahora admite la ejecución de paquetes al buscar y ejecutar un submódulo " +"``__main__`` cuando se proporciona un nombre de paquete." #: ../Doc/whatsnew/3.1.rst:321 msgid "(Contributed by Andi Vajda; :issue:`4195`.)" -msgstr "" +msgstr "(Contribución de Andi Vajda; :issue:`4195`.)" #: ../Doc/whatsnew/3.1.rst:323 msgid "" "The :mod:`pdb` module can now access and display source code loaded via :mod:" "`zipimport` (or any other conformant :pep:`302` loader)." msgstr "" +"El módulo :mod:`pdb` puede ahora acceder y mostrar el código fuente cargado " +"a través de :mod:`zipimport` (o cualquier otro cargador conforme :pep:`302`)." #: ../Doc/whatsnew/3.1.rst:326 msgid "(Contributed by Alexander Belopolsky; :issue:`4201`.)" -msgstr "" +msgstr "(Contribución de Alexander Belopolsky; :issue:`4201`.)" #: ../Doc/whatsnew/3.1.rst:328 msgid ":class:`functools.partial` objects can now be pickled." msgstr "" +"Los objetos :class:`functools.partial` pueden ser ahora serializados " +"(*pickled*)." #: ../Doc/whatsnew/3.1.rst:330 msgid "" "(Suggested by Antoine Pitrou and Jesse Noller. Implemented by Jack " "Diederich; :issue:`5228`.)" msgstr "" +"(Sugerido por Antoine Pitrou y Jesse Noller. Implementado por Jack " +"Diederich; :issue:`5228`.)" #: ../Doc/whatsnew/3.1.rst:333 msgid "" "Add :mod:`pydoc` help topics for symbols so that ``help('@')`` works as " "expected in the interactive environment." msgstr "" +"Se agrega temas de ayuda :mod:`pydoc` para símbolos de modo que " +"``help('@')`` funcione como se espera en un entorno interactivo." #: ../Doc/whatsnew/3.1.rst:336 msgid "(Contributed by David Laban; :issue:`4739`.)" -msgstr "" +msgstr "(Contribución de David Laban; :issue:`4739`.)" #: ../Doc/whatsnew/3.1.rst:338 msgid "" @@ -408,12 +552,18 @@ msgid "" "is known to be broken, but shouldn't be counted as a failure on a " "TestResult::" msgstr "" +"El módulo :mod:`unittest` ahora admite saltear pruebas individuales o clases " +"de pruebas. Y admite marcar una prueba como una falla esperada, una prueba " +"que se sabe que está rota, pero que no debe contarse como una falla en un " +"TestResult::" #: ../Doc/whatsnew/3.1.rst:353 msgid "" "Also, tests for exceptions have been builtout to work with context managers " "using the :keyword:`with` statement::" msgstr "" +"Además, se han creado pruebas de excepciones para trabajar con gestores de " +"contexto usando la declaración :keyword:`with`::" #: ../Doc/whatsnew/3.1.rst:360 msgid "" @@ -423,32 +573,40 @@ msgid "" "`assertTupleEqual`, :func:`assertSequenceEqual`, :func:" "`assertRaisesRegexp`, :func:`assertIsNone`, and :func:`assertIsNotNone`." msgstr "" +"Además, se agregaron varios métodos de aserción nuevos, incluyendo :func:" +"`assertSetEqual`, :func:`assertDictEqual`, :func:" +"`assertDictContainsSubset`, :func:`assertListEqual`, :func:" +"`assertTupleEqual`, :func:`assertSequenceEqual`, :func:" +"`assertRaisesRegexp`, :func:`assertIsNone`, y :func:`assertIsNotNone`." #: ../Doc/whatsnew/3.1.rst:367 msgid "(Contributed by Benjamin Peterson and Antoine Pitrou.)" -msgstr "" +msgstr "(Contribución de Benjamin Peterson y Antoine Pitrou.)" #: ../Doc/whatsnew/3.1.rst:369 msgid "" "The :mod:`io` module has three new constants for the :meth:`seek` method :" "data:`SEEK_SET`, :data:`SEEK_CUR`, and :data:`SEEK_END`." msgstr "" +"El módulo :mod:`io` tiene tres nuevas constantes para el método :meth:" +"`seek`: :data:`SEEK_SET`, :data:`SEEK_CUR` y :data:`SEEK_END`." #: ../Doc/whatsnew/3.1.rst:372 msgid "The :attr:`sys.version_info` tuple is now a named tuple::" -msgstr "" +msgstr "La tupla :attr:`sys.version_info` es ahora una tupla nombrada::" #: ../Doc/whatsnew/3.1.rst:377 msgid "(Contributed by Ross Light; :issue:`4285`.)" -msgstr "" +msgstr "(Contribución de Ross Light; :issue:`4285`.)" #: ../Doc/whatsnew/3.1.rst:379 msgid "The :mod:`nntplib` and :mod:`imaplib` modules now support IPv6." msgstr "" +"Los módulos :mod:`nntplib` y :mod:`imaplib` ahora tienen soporte de IPv6." #: ../Doc/whatsnew/3.1.rst:381 msgid "(Contributed by Derek Morr; :issue:`1655` and :issue:`1664`.)" -msgstr "" +msgstr "(Contribución de Derek Morr; :issue:`1655` y :issue:`1664`.)" #: ../Doc/whatsnew/3.1.rst:383 msgid "" @@ -462,6 +620,16 @@ msgid "" "dumping. This remapping is turned-on by default but can be disabled with the " "*fix_imports* option::" msgstr "" +"El módulo :mod:`pickle` ha sido adaptado para una mejor interoperabilidad " +"con 2.x cuando es usado con un protocolo 2 o menor. La reorganización de la " +"biblioteca estándar cambió la referencia formal para varios objetos. Por " +"ejemplo, ``__builtin__.set`` en Python 2 es llamado ``builtins.set`` en " +"Python 3. Este cambio confundió los esfuerzos de compartir datos entre " +"diferentes versiones de Python. Pero ahora cuando el protocolo 2 o menor es " +"seleccionado, el pickler va a usar automáticamente los nombres antiguos de " +"Python 2 tanto para carga como para volcado. Esta reasignación es activada " +"de manera predeterminada pero puede ser desactivada con la opción " +"*fix_imports*::" #: ../Doc/whatsnew/3.1.rst:399 msgid "" @@ -471,11 +639,17 @@ msgid "" "Python 3.x implementations, as it doesn't attempt to remain compatible with " "Python 2.x." msgstr "" +"Un efecto secundario, desafortunado pero inevitable, de este cambio es que " +"los pickles del protocolo 2 producidos con Python 3.1 no serán legibles con " +"Python 3.0. El protocolo de pickle más reciente, protocolo 3, debe " +"utilizarse al migrar datos entre implementaciones de Python 3.x, ya que no " +"intenta seguir siendo compatible con Python 2.x." #: ../Doc/whatsnew/3.1.rst:405 msgid "" "(Contributed by Alexandre Vassalotti and Antoine Pitrou, :issue:`6137`.)" msgstr "" +"(Contribución de Alexandre Vassalotti y Antoine Pitrou, :issue:`6137`.)" #: ../Doc/whatsnew/3.1.rst:407 msgid "" @@ -485,18 +659,23 @@ msgid "" "substantial step forward in documenting and defining the actions that take " "place during imports." msgstr "" +"Se agregó un nuevo módulo, :mod:`importlib`. Proporciona una implementación " +"de referencia de Python completa, portátil y pura de la instrucción :keyword:" +"`import` y su contraparte, la función :func:`__import__` . Representa un " +"avance sustancial en la documentación y definición de las acciones que " +"tienen lugar durante las importaciones." #: ../Doc/whatsnew/3.1.rst:413 msgid "(Contributed by Brett Cannon.)" -msgstr "" +msgstr "(Contribución de Brett Cannon.)" #: ../Doc/whatsnew/3.1.rst:416 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/3.1.rst:418 msgid "Major performance enhancements have been added:" -msgstr "" +msgstr "Se han agregado importantes mejoras de rendimiento:" #: ../Doc/whatsnew/3.1.rst:420 msgid "" @@ -506,10 +685,16 @@ msgid "" "faster depending on the task at hand. The pure Python version is still " "available for experimentation purposes through the ``_pyio`` module." msgstr "" +"La nueva biblioteca I/O (definida en :pep:`3116`) estaba escrita mayormente " +"en Python y rápidamente demostró ser un cuello de botella problemático en " +"Python 3.0. En Python 3.1, la biblioteca I/O ha sido reescrita enteramente " +"en C y es de 2 a 20 veces más rápida dependiendo en la tarea a manejar. La " +"versión puramente en Python está aún disponible para fines experimentales a " +"través del módulo ``_pyio``." #: ../Doc/whatsnew/3.1.rst:427 msgid "(Contributed by Amaury Forgeot d'Arc and Antoine Pitrou.)" -msgstr "" +msgstr "(Contribución de Amaury Forgeot d'Arc y Antoine Pitrou.)" #: ../Doc/whatsnew/3.1.rst:429 msgid "" @@ -518,10 +703,15 @@ msgid "" "of collections and therefore the garbage collection overhead on long-running " "programs, depending on their particular use of datatypes." msgstr "" +"Se ha añadido una heurística para que el recolector de basura no realice el " +"seguimiento de tuplas y diccionarios que contengan solo objetos no " +"rastreables. Esto puede reducir el tamaño de las colecciones y, por lo " +"tanto, la sobrecarga de recolección de elementos no utilizados en programas " +"de larga ejecución, en función de su uso particular de los tipos de datos." #: ../Doc/whatsnew/3.1.rst:434 msgid "(Contributed by Antoine Pitrou, :issue:`4688`.)" -msgstr "" +msgstr "(Contribución de Antoine Pitrou, :issue:`4688`.)" #: ../Doc/whatsnew/3.1.rst:436 msgid "" @@ -530,22 +720,32 @@ msgid "" "compiled with a new dispatch mechanism which gives speedups of up to 20%, " "depending on the system, the compiler, and the benchmark." msgstr "" +"Habilitando una opción de configuración llamada ``--with-computed-gotos`` en " +"compiladores que la admiten (en particular: gcc, SunPro, icc), el ciclo de " +"evaluación del bytecode se compila con un nuevo mecanismo de despacho que " +"proporciona aceleraciones de hasta un 20% , dependiendo del sistema, del " +"compilador y del punto de referencia." #: ../Doc/whatsnew/3.1.rst:442 msgid "" "(Contributed by Antoine Pitrou along with a number of other participants, :" "issue:`4753`)." msgstr "" +"(Contribución de Antoine Pitrou junto con varios otros participantes, :issue:" +"`4753`)." #: ../Doc/whatsnew/3.1.rst:445 msgid "" "The decoding of UTF-8, UTF-16 and LATIN-1 is now two to four times faster." msgstr "" +"La decodificación de UTF-8, UTF-16 y LATIN-1 es ahora de dos a cuatro veces " +"más rápida." #: ../Doc/whatsnew/3.1.rst:448 msgid "" "(Contributed by Antoine Pitrou and Amaury Forgeot d'Arc, :issue:`4868`.)" msgstr "" +"(Contribución de Antoine Pitrou y Amaury Forgeot d'Arc, :issue:`4868`.)" #: ../Doc/whatsnew/3.1.rst:450 msgid "" @@ -555,44 +755,57 @@ msgid "" "closely match the `JSON specification `_ which is defined " "in terms of Unicode." msgstr "" +"El módulo :mod:`json` tiene ahora una extensión C para mejorar " +"sustancialmente su desempeño. Además, la API fue modificada para que json " +"trabaje solo con :class:`str`, no con :class:`bytes`. Este cambio hace que " +"el módulo coincida con la `especificación de JSON `_ que es definida en términos de Unicode." #: ../Doc/whatsnew/3.1.rst:456 msgid "" "(Contributed by Bob Ippolito and converted to Py3.1 by Antoine Pitrou and " "Benjamin Peterson; :issue:`4136`.)" msgstr "" +"(Contribución de Bob Ippolito y convertido a Py3.1 por Antoine Pitrou y " +"Benjamin Peterson; :issue:`4136`.)" #: ../Doc/whatsnew/3.1.rst:459 msgid "" "Unpickling now interns the attribute names of pickled objects. This saves " "memory and allows pickles to be smaller." msgstr "" +"La deserialización (*unpickling*) ahora interna los nombres de los atributos " +"de los objetos serializados (*pickled*). Esto ahorra memoria y permite que " +"los pickles sean más pequeños." #: ../Doc/whatsnew/3.1.rst:462 msgid "(Contributed by Jake McGuire and Antoine Pitrou; :issue:`5084`.)" -msgstr "" +msgstr "(Contribución de Jake McGuire y Antoine Pitrou; :issue:`5084`.)" #: ../Doc/whatsnew/3.1.rst:465 msgid "IDLE" -msgstr "" +msgstr "IDLE" #: ../Doc/whatsnew/3.1.rst:467 msgid "" "IDLE's format menu now provides an option to strip trailing whitespace from " "a source file." msgstr "" +"El menú de formato del IDLE ahora proporciona una opción para eliminar los " +"espacios en blanco finales de un archivo de código fuente." #: ../Doc/whatsnew/3.1.rst:470 msgid "(Contributed by Roger D. Serwy; :issue:`5150`.)" -msgstr "" +msgstr "(Contribución de Roger D. Serwy; :issue:`5150`.)" #: ../Doc/whatsnew/3.1.rst:473 msgid "Build and C API Changes" -msgstr "" +msgstr "Cambios en la compilación y la API de C" #: ../Doc/whatsnew/3.1.rst:475 msgid "Changes to Python's build process and to the C API include:" msgstr "" +"Los cambios en el proceso de compilación de Python y en la API C incluyen:" #: ../Doc/whatsnew/3.1.rst:477 msgid "" @@ -604,6 +817,15 @@ msgid "" "machines and base 2**15 on 32-bit machines; on Unix, there's a new configure " "option ``--enable-big-digits`` that can be used to override this default." msgstr "" +"Los enteros ahora se almacenan internamente en base 2**15 o en base 2**30, " +"la base se determina en el momento de la construcción. Anteriormente, " +"siempre se almacenaban en base 2**15. El uso de base 2**30 ofrece mejoras " +"significativas en el rendimiento en máquinas de 64 bits, pero los resultados " +"de las pruebas comparativas en máquinas de 32 bits han sido diversos. Por lo " +"tanto, el valor predeterminado es usar base 2**30 en máquinas de 64 bits y " +"base 2**15 en máquinas de 32 bits; en Unix, hay una nueva opción de " +"configuración ``--enable-big-digits`` que puede ser usada para sobre " +"escribir este valor predeterminado." #: ../Doc/whatsnew/3.1.rst:486 msgid "" @@ -613,29 +835,39 @@ msgid "" "format, giving the number of bits per digit and the size in bytes of the C " "type used to store each digit::" msgstr "" +"Aparte de las mejoras de rendimiento, este cambio debería ser invisible para " +"los usuarios finales, con una excepción: para propósitos de prueba y " +"depuración, hay un nuevo :attr:`sys.int_info` que proporciona información " +"sobre el formato interno, dando el número de bits por dígito y el tamaño en " +"bytes del tipo C utilizado para almacenar cada dígito::" #: ../Doc/whatsnew/3.1.rst:496 msgid "(Contributed by Mark Dickinson; :issue:`4258`.)" -msgstr "" +msgstr "(Contribución de Mark Dickinson; :issue:`4258`.)" #: ../Doc/whatsnew/3.1.rst:498 msgid "" "The :c:func:`PyLong_AsUnsignedLongLong()` function now handles a negative " "*pylong* by raising :exc:`OverflowError` instead of :exc:`TypeError`." msgstr "" +"La función :c:func:`PyLong_AsUnsignedLongLong()` es ahora capaz de manejar " +"un *pylong* negativo lanzando una excepción :exc:`OverflowError` en lugar " +"de :exc:`TypeError`." #: ../Doc/whatsnew/3.1.rst:501 msgid "(Contributed by Mark Dickinson and Lisandro Dalcrin; :issue:`5175`.)" -msgstr "" +msgstr "(Contribución de Mark Dickinson y Lisandro Dalcrin; :issue:`5175`.)" #: ../Doc/whatsnew/3.1.rst:503 msgid "" "Deprecated :c:func:`PyNumber_Int`. Use :c:func:`PyNumber_Long` instead." msgstr "" +":c:func:`PyNumber_Int` está ahora obsoleto. Utilice :c:func:`PyNumber_Long` " +"en su lugar." #: ../Doc/whatsnew/3.1.rst:505 msgid "(Contributed by Mark Dickinson; :issue:`4910`.)" -msgstr "" +msgstr "(Contribución de Mark Dickinson; :issue:`4910`.)" #: ../Doc/whatsnew/3.1.rst:507 msgid "" @@ -643,10 +875,13 @@ msgid "" "deprecated functions :c:func:`PyOS_ascii_strtod` and :c:func:" "`PyOS_ascii_atof`." msgstr "" +"Se agrega una nueva función :c:func:`PyOS_string_to_double` para reemplazar " +"las funciones obsoletas :c:func:`PyOS_ascii_strtod` y :c:func:" +"`PyOS_ascii_atof`." #: ../Doc/whatsnew/3.1.rst:510 msgid "(Contributed by Mark Dickinson; :issue:`5914`.)" -msgstr "" +msgstr "(Contribución de Mark Dickinson; :issue:`5914`.)" #: ../Doc/whatsnew/3.1.rst:512 msgid "" @@ -656,26 +891,35 @@ msgid "" "calling a destructor. The old type had a problematic API and is now " "deprecated." msgstr "" +"Se agrega :c:type:`PyCapsule` como un reemplazo para la API :c:type:" +"`PyCObject`. La principal diferencia es que el nuevo tipo tiene una interfaz " +"bien definida para pasar información de seguridad de escritura y una firma " +"menos complicada para llamar a un destructor. El tipo anterior tenía una API " +"problemática y ahora está obsoleta." #: ../Doc/whatsnew/3.1.rst:518 msgid "(Contributed by Larry Hastings; :issue:`5630`.)" -msgstr "" +msgstr "(Contribución de Larry Hastings; :issue:`5630`.)" #: ../Doc/whatsnew/3.1.rst:521 msgid "Porting to Python 3.1" -msgstr "" +msgstr "Portando a Python 3.1" #: ../Doc/whatsnew/3.1.rst:523 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/3.1.rst:526 msgid "" "The new floating point string representations can break existing doctests. " "For example::" msgstr "" +"Las nuevas representaciones de cadenas de coma flotante pueden romper las " +"pruebas de documentación existentes. Por ejemplo::" #: ../Doc/whatsnew/3.1.rst:549 msgid "" @@ -684,3 +928,8 @@ msgid "" "use protocol 3. Another solution is to set the *fix_imports* option to " "``False``. See the discussion above for more details." msgstr "" +"La reasignación automática de nombres en el módulo pickle para el protocolo " +"2 o inferior puede hacer que los pickles de Python 3.1 sean ilegibles en " +"Python 3.0. Una solución es usar el protocolo 3. Otra solución es " +"establecer la opción *fix_imports* en ``False``. Consulte la discusión " +"anterior para obtener más detalles." diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index 1853365668..c72e0ee124 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -6,31 +6,34 @@ # 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: 2020-10-12 05:44-0500\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_EC\n" +"X-Generator: Poedit 2.4.1\n" +"X-Poedit-Bookmarks: 26,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" #: ../Doc/whatsnew/3.7.rst:3 msgid "What's New In Python 3.7" -msgstr "" +msgstr "Que hay de nuevo en Python 3.7" #: ../Doc/whatsnew/3.7.rst msgid "Editor" -msgstr "" +msgstr "Editor" #: ../Doc/whatsnew/3.7.rst:5 msgid "Elvis Pranskevichus " -msgstr "" +msgstr "*Elvis Pranskevichus* " #: ../Doc/whatsnew/3.7.rst:47 msgid "" @@ -38,69 +41,83 @@ msgid "" "Python 3.7 was released on June 27, 2018. For full details, see the :ref:" "`changelog `." msgstr "" +"El artículo explica las nuevas características en Python 3.7, comparado con " +"3.6. Python 3.7 fue lanzado el 27, Junio, 2018. Para más detalles, consultar " +"la :ref:`changelog `." #: ../Doc/whatsnew/3.7.rst:53 msgid "Summary -- Release Highlights" -msgstr "" +msgstr "Resumen -- Lanzamientos Destacados" #: ../Doc/whatsnew/3.7.rst:58 msgid "New syntax features:" -msgstr "" +msgstr "Sintaxis de nuevas características:" #: ../Doc/whatsnew/3.7.rst:60 msgid "" ":ref:`PEP 563 `, postponed evaluation of type annotations." msgstr "" +":ref:`PEP 563 `, evaluación pospuesta de anotaciones de " +"tipo." #: ../Doc/whatsnew/3.7.rst:62 msgid "Backwards incompatible syntax changes:" -msgstr "" +msgstr "Cambios de sintaxis incompatibles hacia atrás:" #: ../Doc/whatsnew/3.7.rst:64 msgid ":keyword:`async` and :keyword:`await` are now reserved keywords." msgstr "" +":keyword:`async` y :keyword:`await` ahora son palabras clave reservadas." #: ../Doc/whatsnew/3.7.rst:66 msgid "New library modules:" -msgstr "" +msgstr "Nuevos módulos de biblioteca:" #: ../Doc/whatsnew/3.7.rst:68 msgid "" ":mod:`contextvars`: :ref:`PEP 567 -- Context Variables `" msgstr "" +":mod:`contextvars`: :ref:`PEP 567 -- Variables de Contexto `" #: ../Doc/whatsnew/3.7.rst:69 msgid ":mod:`dataclasses`: :ref:`PEP 557 -- Data Classes `" msgstr "" +":mod:`dataclasses`: :ref:`PEP 557 -- Clases de Datos `" #: ../Doc/whatsnew/3.7.rst:70 msgid ":ref:`whatsnew37_importlib_resources`" -msgstr "" +msgstr ":ref:`whatsnew37_importlib_resources`" #: ../Doc/whatsnew/3.7.rst:72 msgid "New built-in features:" -msgstr "" +msgstr "Nuevas funciones integradas:" #: ../Doc/whatsnew/3.7.rst:74 msgid "" ":ref:`PEP 553 `, the new :func:`breakpoint` function." msgstr "" +":ref:`PEP 553 `, la nueva función :func:`breakpoint`." #: ../Doc/whatsnew/3.7.rst:76 msgid "Python data model improvements:" -msgstr "" +msgstr "Mejoras en el modelo de datos de Python:" #: ../Doc/whatsnew/3.7.rst:78 msgid "" ":ref:`PEP 562 `, customization of access to module " "attributes." msgstr "" +":ref:`PEP 562 `, personalización del acceso a los " +"atributos del módulo." #: ../Doc/whatsnew/3.7.rst:81 msgid "" ":ref:`PEP 560 `, core support for typing module and " "generic types." msgstr "" +":ref:`PEP 560 `, soporte básico para módulo de " +"mecanografía y tipos genéricos." #: ../Doc/whatsnew/3.7.rst:84 msgid "" @@ -108,68 +125,82 @@ msgid "" "objects `has been declared`_ to be an official part of the Python language " "spec." msgstr "" +"la naturaleza de conservación del orden de inserción de objetos :ref:`dict " +"` `han sido declarado`_ para ser una parte oficial de la " +"especificación del lenguaje Python." #: ../Doc/whatsnew/3.7.rst:90 msgid "Significant improvements in the standard library:" -msgstr "" +msgstr "Mejoras significativas in la librería estándar:" #: ../Doc/whatsnew/3.7.rst:92 msgid "" "The :mod:`asyncio` module has received new features, significant :ref:" "`usability and performance improvements `." msgstr "" +"El modulo :mod:`asyncio` ha recibido nuevas funciones, significativas :ref:" +"`mejoras de usabilidad y rendimiento `." #: ../Doc/whatsnew/3.7.rst:95 msgid "" "The :mod:`time` module gained support for :ref:`functions with nanosecond " "resolution `." msgstr "" +"El modulo :mod:`time` adquirió soporte de :ref:`funciones con resolución de " +"nanosegundos `." #: ../Doc/whatsnew/3.7.rst:98 msgid "CPython implementation improvements:" -msgstr "" +msgstr "Mejoras en la implementación de CPython:" #: ../Doc/whatsnew/3.7.rst:100 msgid "Avoiding the use of ASCII as a default text encoding:" -msgstr "" +msgstr "Evitando el uso de ASCII como codificación de texto predeterminada:" #: ../Doc/whatsnew/3.7.rst:102 msgid ":ref:`PEP 538 `, legacy C locale coercion" msgstr "" +":ref:`PEP 538 `, coerción de configuración regional de C " +"heredada" #: ../Doc/whatsnew/3.7.rst:103 msgid ":ref:`PEP 540 `, forced UTF-8 runtime mode" msgstr "" +":ref:`PEP 540 `, modo de tiempo de ejecución UTF-8 forzado" #: ../Doc/whatsnew/3.7.rst:104 msgid ":ref:`PEP 552 `, deterministic .pycs" -msgstr "" +msgstr ":ref:`PEP 552 `, determinista *.pycs*" #: ../Doc/whatsnew/3.7.rst:105 msgid ":ref:`the new development runtime mode `" -msgstr "" +msgstr ":ref:`el nuevo modo de ejecución de desarrollo `" #: ../Doc/whatsnew/3.7.rst:106 msgid "" ":ref:`PEP 565 `, improved :exc:`DeprecationWarning` " "handling" msgstr "" +":ref:`PEP 565 `, manejo mejorado :exc:`DeprecationWarning`" #: ../Doc/whatsnew/3.7.rst:109 msgid "C API improvements:" -msgstr "" +msgstr "Mejoras en la API de C:" #: ../Doc/whatsnew/3.7.rst:111 msgid ":ref:`PEP 539 `, new C API for thread-local storage" msgstr "" +":ref:`PEP 539 `, nueva API de C para almacenamiento local " +"de subprocesos" #: ../Doc/whatsnew/3.7.rst:113 msgid "Documentation improvements:" -msgstr "" +msgstr "Mejoras de Documentación:" #: ../Doc/whatsnew/3.7.rst:115 msgid ":ref:`PEP 545 `, Python documentation translations" msgstr "" +":ref:`PEP 545 `, Traducción de documentación de Python" #: ../Doc/whatsnew/3.7.rst:116 msgid "" @@ -177,26 +208,34 @@ msgid "" "`French `_, and `Korean `_." msgstr "" +"Nuevas traducciones de documentación: `Japonés `_, `Francés `_, y `Coreano `_." #: ../Doc/whatsnew/3.7.rst:120 msgid "" "This release features notable performance improvements in many areas. The :" "ref:`whatsnew37-perf` section lists them in detail." msgstr "" +"Esta versión presenta notables mejoras de rendimiento en muchas áreas. La " +"sección :ref:`whatsnew37-perf` los enumera en detalle." #: ../Doc/whatsnew/3.7.rst:123 msgid "" "For a list of changes that may affect compatibility with previous Python " "releases please refer to the :ref:`porting-to-python-37` section." msgstr "" +"Para obtener una lista de cambios que pueden afectar la compatibilidad con " +"versiones anteriores de Python por favor consultar la sección :ref:`porting-" +"to-python-37`." #: ../Doc/whatsnew/3.7.rst:128 msgid "New Features" -msgstr "" +msgstr "Nuevas Características" #: ../Doc/whatsnew/3.7.rst:133 msgid "PEP 563: Postponed Evaluation of Annotations" -msgstr "" +msgstr "PEP 563: Evaluación pospuesta de anotaciones" #: ../Doc/whatsnew/3.7.rst:135 msgid "" @@ -204,18 +243,26 @@ msgid "" "with the functionality of annotations added in :pep:`3107` and refined " "further in :pep:`526`:" msgstr "" +"La llegada de las sugerencias de tipo en Python descubrió dos problemas de " +"usabilidad evidentes con la funcionalidad de las anotaciones agregadas en :" +"pep:`3107` y mas refinado en :pep:`526`:" #: ../Doc/whatsnew/3.7.rst:139 msgid "" "annotations could only use names which were already available in the current " "scope, in other words they didn't support forward references of any kind; and" msgstr "" +"las anotaciones solo podían usar nombres que ya estaban disponibles en el " +"alcance actual, en otras palabras, no admitían referencias futuras de ningún " +"tipo; y" #: ../Doc/whatsnew/3.7.rst:143 msgid "" "annotating source code had adverse effects on startup time of Python " "programs." msgstr "" +"anotar el código fuente tuvo efectos adversos en el tiempo de inicio de los " +"programas Python." #: ../Doc/whatsnew/3.7.rst:146 msgid "" @@ -228,34 +275,48 @@ msgid "" "(since short strings are interned by the interpreter) and make startup time " "faster." msgstr "" +"Ambos problemas se solucionan posponiendo la evaluación de anotaciones. En " +"lugar de compilar código que ejecuta expresiones en anotaciones en su " +"momento de definición, el compilador almacena la anotación en forma de " +"cadena equivalente al AST de la expresión en cuestión. Si es necesario, las " +"anotaciones se pueden resolver en tiempo de ejecución usando :func:`typing." +"get_type_hints`. En el común de los casos esto no es necesario, las " +"anotaciones son más fáciles de almacenar (dado que las cadenas cortas son " +"internadas por el intérprete.) y hacen que el tiempo de inicio sea mas " +"rápido." #: ../Doc/whatsnew/3.7.rst:155 msgid "" "Usability-wise, annotations now support forward references, making the " "following syntax valid::" msgstr "" +"En términos de usabilidad, las anotaciones ahora admiten referencias hacia " +"adelante, lo que hace que la siguiente sintaxis sea válida:" #: ../Doc/whatsnew/3.7.rst:169 msgid "" "Since this change breaks compatibility, the new behavior needs to be enabled " "on a per-module basis in Python 3.7 using a :mod:`__future__` import::" msgstr "" +"Dado que este cambio rompe la compatibilidad, el nuevo comportamiento debe " +"habilitarse por modulo en Python 3.7 usando una importación :mod:" +"`__future__`:" #: ../Doc/whatsnew/3.7.rst:174 msgid "It will become the default in Python 4.0." -msgstr "" +msgstr "Se convertirá en el predeterminado en Python 4.0." #: ../Doc/whatsnew/3.7.rst:178 msgid ":pep:`563` -- Postponed evaluation of annotations" -msgstr "" +msgstr ":pep:`563` -- Evaluación aplazada de anotaciones" #: ../Doc/whatsnew/3.7.rst:179 msgid "PEP written and implemented by Łukasz Langa." -msgstr "" +msgstr "PEP escrito y implementado por *Łukasz Langa*." #: ../Doc/whatsnew/3.7.rst:185 msgid "PEP 538: Legacy C Locale Coercion" -msgstr "" +msgstr "PEP 538: Coerción de configuración regional del Legado de C" #: ../Doc/whatsnew/3.7.rst:187 msgid "" @@ -264,6 +325,11 @@ msgid "" "assumption currently implied by the use of the default C or POSIX locale on " "non-Windows platforms." msgstr "" +"Un desafío continuo dentro de la serie Python 3 ha sido determinar una " +"estrategia predeterminada sensata para manejar el supuesto de codificación " +"de texto “ASCII de 7 bits” implícito actualmente en el uso de la " +"configuración regional C o POSIX predeterminada en plataformas que no son " +"Windows." #: ../Doc/whatsnew/3.7.rst:192 msgid "" @@ -275,12 +341,23 @@ msgid "" "`readline`) will assume the use of UTF-8 as the default text encoding, " "rather than ASCII." msgstr "" +":pep:`538` actualiza la interfaz de línea de comandos del intérprete " +"predeterminada para convertir automáticamente esa configuración regional en " +"una configuración regional basada en UTF-8 disponible, como se describe en " +"la documentación de la nueva variable de entorno :envvar:" +"`PYTHONCOERCECLOCALE`. Configurar automáticamente ``LC_CTYPE`` de esta " +"manera significa que tanto el intérprete central como las extensiones C que " +"reconocen la configuración regional (por ejemplo :mod:`readline`) asumirá el " +"uso de UTF-8 como codificación de texto predeterminada, en lugar de ASCII." #: ../Doc/whatsnew/3.7.rst:200 msgid "" "The platform support definition in :pep:`11` has also been updated to limit " "full text handling support to suitably configured non-ASCII based locales." msgstr "" +"La definición de soporte de plataforma en :pep:`11` también se ha " +"actualizado para limitar la compatibilidad con el manejo de texto completo a " +"configuraciones regionales no basadas en ASCII configuradas adecuadamente." #: ../Doc/whatsnew/3.7.rst:203 msgid "" @@ -290,6 +367,12 @@ msgid "" "UTF-8``, ``C.utf8``, and ``UTF-8``). The default error handler for :data:" "`~sys.stderr` continues to be ``backslashreplace``, regardless of locale." msgstr "" +"Como parte de este cambio, el controlador de errores predeterminado para :" +"data:`~sys.stdin` y :data:`~sys.stdout` es ahora ``surrogateescape`` (antes " +"que ``strict``) al usar cualquiera de las configuraciones regionales de " +"destino de coerción definidas (actualmente ``C.UTF-8``, ``C.utf8``, y " +"``UTF-8``). El controlador de errores predeterminado para :data:`~sys." +"stderr` continua siendo ``backslashreplace``, independientemente de local." #: ../Doc/whatsnew/3.7.rst:209 msgid "" @@ -300,6 +383,13 @@ msgid "" "runtime to emit a warning if the legacy C locale remains active when the " "core interpreter is initialized." msgstr "" +"La coerción local es silenciosa de forma predeterminada, pero para ayudar a " +"depurar problemas de integración potencialmente relacionados con la " +"configuración regional, advertencias explícitas (emitido directamente en :" +"data:`~sys.stderr`) se puede solicitar configurando " +"``PYTHONCOERCECLOCALE=warn``. Esta configuración también hará que el tiempo " +"de ejecución de Python emita una advertencia si la configuración regional C " +"heredada permanece activa cuando se inicializa el intérprete principal." #: ../Doc/whatsnew/3.7.rst:215 msgid "" @@ -311,24 +401,37 @@ msgid "" "target locale is available (as occurs on RHEL/CentOS 7, for example), Python " "3.7 also implements :ref:`whatsnew37-pep540`." msgstr "" +"Mientras la coerción local :pep:`538` tiene la ventaja de afectar también a " +"los módulos de extensión (como GNU ``readline``), así como procesos " +"secundarios (incluidos los que ejecutan aplicaciones que no son de Python y " +"versiones anteriores de Python), tiene la desventaja de requerir que esté " +"presente una ubicación de destino adecuada en el sistema en ejecución. Para " +"manejar mejor el caso en el que no hay una configuración regional de destino " +"adecuada disponible (como ocurre en RHEL / CentOS 7, por ejemplo), Python " +"3.7 también implementa :ref:`whatsnew37-pep540`." #: ../Doc/whatsnew/3.7.rst:225 msgid ":pep:`538` -- Coercing the legacy C locale to a UTF-8 based locale" msgstr "" +":pep:`538` -- Coaccionar la configuración regional C heredada a una " +"configuración regional basada en UTF-8" #: ../Doc/whatsnew/3.7.rst:226 msgid "PEP written and implemented by Nick Coghlan." -msgstr "" +msgstr "PEP escrito y implementado por *Nick Coghlan*." #: ../Doc/whatsnew/3.7.rst:232 msgid "PEP 540: Forced UTF-8 Runtime Mode" -msgstr "" +msgstr "PEP 540: Modo de tiempo de ejecución UTF-8 forzado" #: ../Doc/whatsnew/3.7.rst:234 msgid "" "The new :option:`-X` ``utf8`` command line option and :envvar:`PYTHONUTF8` " "environment variable can be used to enable the CPython *UTF-8 mode*." msgstr "" +"La nueva opción de lineas de comando :option:`-X` ``utf8`` y la variable de " +"entorno :envvar:`PYTHONUTF8` se puede utilizar para habilitar el modo " +"*CPython* *modo UTF-8*." #: ../Doc/whatsnew/3.7.rst:237 msgid "" @@ -336,6 +439,10 @@ msgid "" "encoding by default. The error handlers for :data:`sys.stdin` and :data:" "`sys.stdout` streams are set to ``surrogateescape``." msgstr "" +"Cuando está en modo UTF-8, CPython ignora la configuración regional y usa la " +"codificación UTF-8 de forma predeterminada. Los controladores de errores " +"para los flujos :data:`sys.stdin` y :data:`sys.stdout` se establecen en " +"``surrogateescape``." #: ../Doc/whatsnew/3.7.rst:241 msgid "" @@ -343,6 +450,9 @@ msgid "" "embedded Python interpreter without changing the locale settings of an " "embedding application." msgstr "" +"El modo UTF-8 forzado se puede usar para cambiar el comportamiento de manejo " +"de texto en un intérprete de Python integrado sin cambiar la configuración " +"regional de una aplicación de inserción." #: ../Doc/whatsnew/3.7.rst:245 msgid "" @@ -353,6 +463,14 @@ msgid "" "of Python. To reduce the risk of corrupting text data when communicating " "with such components, Python 3.7 also implements :ref:`whatsnew37-pep540`)." msgstr "" +"Mientras el modo UTF-8 :pep:`540` tiene la ventaja de funcionar " +"independientemente de las configuraciones regionales disponibles en el " +"sistema en ejecución, tiene la desventaja de no tener ningún efecto en los " +"módulos de extensión (como GNU ``readline``), procesos secundarios que " +"ejecutan aplicaciones que no son de Python y procesos secundarios que " +"ejecutan versiones anteriores de Python. Para reducir el riesgo de dañar los " +"datos de texto al comunicarse con dichos componentes, Python 3.7 también " +"implementa :ref:`whatsnew37-pep540`." #: ../Doc/whatsnew/3.7.rst:252 msgid "" @@ -361,24 +479,31 @@ msgid "" "based alternative (whether that failure is due to ``PYTHONCOERCECLOCALE=0`` " "being set, ``LC_ALL`` being set, or the lack of a suitable target locale)." msgstr "" +"El modo UTF-8 está habilitado de forma predeterminada cuando la " +"configuración regional es ``C`` o ``POSIX``, y la función de coerción local :" +"pep:`538` no lo cambia a una alternativa basada en UTF-8 (si ese fallo se " +"debe a que se ha establecido ``PYTHONCOERCECLOCALE=0``, ``LC_ALL`` se esta " +"configurando, o la falta de un lugar de destino adecuado)." #: ../Doc/whatsnew/3.7.rst:259 msgid ":pep:`540` -- Add a new UTF-8 mode" -msgstr "" +msgstr ":pep:`540` -- Agrega un nuevo modo UTF-8" #: ../Doc/whatsnew/3.7.rst:260 ../Doc/whatsnew/3.7.rst:362 msgid "PEP written and implemented by Victor Stinner" -msgstr "" +msgstr "PEP escrito y implementado por *Victor Stinner*" #: ../Doc/whatsnew/3.7.rst:266 msgid "PEP 553: Built-in ``breakpoint()``" -msgstr "" +msgstr "PEP 553: Incorporada en ``breakpoint()``" #: ../Doc/whatsnew/3.7.rst:268 msgid "" "Python 3.7 includes the new built-in :func:`breakpoint` function as an easy " "and consistent way to enter the Python debugger." msgstr "" +"Python 3.7 incluye la nueva función incorporada :func:`breakpoint` como una " +"forma fácil y consistente de ingresar al depurador de Python." #: ../Doc/whatsnew/3.7.rst:271 msgid "" @@ -389,18 +514,25 @@ msgid "" "`PYTHONBREAKPOINT` can be set to the callable of your debugger of choice. " "Set ``PYTHONBREAKPOINT=0`` to completely disable built-in ``breakpoint()``." msgstr "" +"Llamadas ``breakpoint()`` incorporadas en :func:`sys.breakpointhook`. Por " +"defecto, este último importa :mod:`pdb` y luego llama ``pdb.set_trace()``, " +"pero vinculando ``sys.breakpointhook()`` a la función de su elección, " +"``breakpoint()`` puede entrar en cualquier depurador. Adicionalmente, la " +"variable de entorno :envvar:`PYTHONBREAKPOINT` se puede configurar como el " +"depurador que elija. Configure ``PYTHONBREAKPOINT=0`` para deshabilitar " +"completamente el ``breakpoint()``." #: ../Doc/whatsnew/3.7.rst:281 msgid ":pep:`553` -- Built-in breakpoint()" -msgstr "" +msgstr ":pep:`553` -- Incorporada en *breakpoint()*" #: ../Doc/whatsnew/3.7.rst:282 msgid "PEP written and implemented by Barry Warsaw" -msgstr "" +msgstr "PEP escrito y implementado por *Barry Warsaw*" #: ../Doc/whatsnew/3.7.rst:288 msgid "PEP 539: New C API for Thread-Local Storage" -msgstr "" +msgstr "PEP 539: Nueva API C para almacenamiento local de subprocesos" #: ../Doc/whatsnew/3.7.rst:290 msgid "" @@ -410,6 +542,12 @@ msgid "" "not generally been a problem for officially-support platforms, but that is " "neither POSIX-compliant, nor portable in any practical sense." msgstr "" +"Mientras que Python proporciona una API C para soporte de almacenamiento " +"local de subprocesos; la existencia :ref:`Almacenamiento local de " +"subprocesos (TLS) API ` ha usado :c:type:`int` " +"para representar llaves TLS a través de todas las plataformas. En general, " +"esto no ha sido un problema para las plataformas de soporte oficial, pero no " +"es compatible con POSIX ni es portátil en ningún sentido práctico." #: ../Doc/whatsnew/3.7.rst:296 msgid "" @@ -422,6 +560,15 @@ msgid "" "build CPython on platforms where the native TLS key is defined in a way that " "cannot be safely cast to :c:type:`int`." msgstr "" +":pep:`539` cambio esto proporcionado un nuevo :ref:`Almacenamiento " +"especifico de subprocesos (TSS) API ` para " +"CPython que reemplaza el uso de la API de TLS existente dentro del " +"intérprete de CPython, mientras que desaprueba la API existente. La API de " +"TSS usa un nuevo tipo :c:type:`Py_tss_t` en lugar de :c:type:`int` para " +"representar llaves TSS — un tipo opaco cuya definición puede depender de la " +"implementación TLS subyacente. Por lo tanto, esto permitirá construir " +"CPython en plataformas dónde la clave TLS nativa está definida de una manera " +"que no se puede convertir de manera segura a :c:type:`int`." #: ../Doc/whatsnew/3.7.rst:305 msgid "" @@ -431,18 +578,27 @@ msgid "" "that the old API is not supported on platforms where it cannot be used " "reliably, and that no effort will be made to add such support." msgstr "" +"Tenga en cuenta que en las plataformas donde la clave TLS nativa se define " +"de una manera que no se puede convertir de forma segura a :c:type:`int`, " +"todas las funciones de la API TLS existente serán inactivas y devolverán el " +"error inmediatamente. Esto indica claramente que la API anterior no es " +"compatible con plataformas en las que no se puede usar de manera confiable y " +"que no se hará ningún esfuerzo para agregar dicha compatibilidad." #: ../Doc/whatsnew/3.7.rst:313 msgid ":pep:`539` -- A New C-API for Thread-Local Storage in CPython" msgstr "" +":pep:`539` -- Un nueva *API-C* para almacenamiento local de subprocesos en " +"*CPython*" #: ../Doc/whatsnew/3.7.rst:314 msgid "PEP written by Erik M. Bray; implementation by Masayuki Yamamoto." msgstr "" +"PEP escrito por *Erik M. Bray*; implementación por *Masayuki Yamamoto*." #: ../Doc/whatsnew/3.7.rst:320 msgid "PEP 562: Customization of Access to Module Attributes" -msgstr "" +msgstr "PEP 562: Personalización del acceso a los atributos del módulo" #: ../Doc/whatsnew/3.7.rst:322 msgid "" @@ -450,24 +606,29 @@ msgid "" "whenever a module attribute is otherwise not found. Defining :meth:" "`__dir__` on modules is now also allowed." msgstr "" +"Python 3.7 permite definir :meth:`__getattr__` en módulos y lo llamará " +"siempre que no se encuentre un atributo de módulo. Definir :meth:`__dir__` " +"en modules ahora también esta permitido." #: ../Doc/whatsnew/3.7.rst:326 msgid "" "A typical example of where this may be useful is module attribute " "deprecation and lazy loading." msgstr "" +"Un ejemplo típico de dónde esto puede ser útil es la desaprobación de los " +"atributos del módulo y la carga diferida." #: ../Doc/whatsnew/3.7.rst:331 msgid ":pep:`562` -- Module ``__getattr__`` and ``__dir__``" -msgstr "" +msgstr ":pep:`562` -- Módulo ``__getattr__`` y ``__dir__``" #: ../Doc/whatsnew/3.7.rst:332 ../Doc/whatsnew/3.7.rst:421 msgid "PEP written and implemented by Ivan Levkivskyi" -msgstr "" +msgstr "PEP escrito y implementado por *Ivan Levkivskyi*" #: ../Doc/whatsnew/3.7.rst:338 msgid "PEP 564: New Time Functions With Nanosecond Resolution" -msgstr "" +msgstr "PEP 564: Nuevas funciones de tiempo con resolución de nanosegundos" #: ../Doc/whatsnew/3.7.rst:340 msgid "" @@ -477,34 +638,41 @@ msgid "" "\"nanosecond\" variants of the existing timer functions to the :mod:`time` " "module:" msgstr "" +"La resolución de los relojes en los sistemas modernos puede exceder la " +"precisión limitada de un número de punto flotante devuelto por la función :" +"func:`time.time` y sus variantes. Para evitar la pérdida de precisión, :pep:" +"`564` agrega seis nuevas variantes de “nanosegundos” de las funciones de " +"temporizador existentes para el módulo :mod:`time`:" #: ../Doc/whatsnew/3.7.rst:346 ../Doc/whatsnew/3.7.rst:1446 msgid ":func:`time.clock_gettime_ns`" -msgstr "" +msgstr ":func:`time.clock_gettime_ns`" #: ../Doc/whatsnew/3.7.rst:347 ../Doc/whatsnew/3.7.rst:1447 msgid ":func:`time.clock_settime_ns`" -msgstr "" +msgstr ":func:`time.clock_settime_ns`" #: ../Doc/whatsnew/3.7.rst:348 ../Doc/whatsnew/3.7.rst:1448 msgid ":func:`time.monotonic_ns`" -msgstr "" +msgstr ":func:`time.monotonic_ns`" #: ../Doc/whatsnew/3.7.rst:349 ../Doc/whatsnew/3.7.rst:1449 msgid ":func:`time.perf_counter_ns`" -msgstr "" +msgstr ":func:`time.perf_counter_ns`" #: ../Doc/whatsnew/3.7.rst:350 ../Doc/whatsnew/3.7.rst:1450 msgid ":func:`time.process_time_ns`" -msgstr "" +msgstr ":func:`time.process_time_ns`" #: ../Doc/whatsnew/3.7.rst:351 ../Doc/whatsnew/3.7.rst:1451 msgid ":func:`time.time_ns`" -msgstr "" +msgstr ":func:`time.time_ns`" #: ../Doc/whatsnew/3.7.rst:353 msgid "The new functions return the number of nanoseconds as an integer value." msgstr "" +"Las nuevas funciones devuelven el número de nanosegundos como un valor " +"entero." #: ../Doc/whatsnew/3.7.rst:355 msgid "" @@ -513,14 +681,18 @@ msgid "" "func:`time.time_ns` is approximately 3 times better than that of :func:`time." "time`." msgstr "" +"`Mediciones `_ se muestra en Linux y Windows la resolución de :func:" +"`time.time_ns` es aproximadamente 3 veces mejor que el de :func:`time.time`." #: ../Doc/whatsnew/3.7.rst:361 msgid ":pep:`564` -- Add new time functions with nanosecond resolution" msgstr "" +":pep:`564` -- Agrega nuevas funciones de tiempo y resolución de nanosegundos" #: ../Doc/whatsnew/3.7.rst:368 msgid "PEP 565: Show DeprecationWarning in ``__main__``" -msgstr "" +msgstr "PEP 565: Mostrar *DeprecationWarning* en ``__main__``" #: ../Doc/whatsnew/3.7.rst:370 msgid "" @@ -532,12 +704,23 @@ msgid "" "APIs they use, but deprecation warnings triggered by imported application, " "library and framework modules will continue to be hidden by default." msgstr "" +"El manejo predeterminado de :exc:`DeprecationWarning` Se ha cambiado de modo " +"que estas advertencias se muestren una vez más de forma predeterminada, pero " +"solo cuando el código que las activa se ejecuta directamente en el módulo :" +"mod:`__main__`. Como resultado, los desarrolladores de scripts de un solo " +"archivo y aquellos que usan Python de forma interactiva deberían comenzar a " +"ver una vez más advertencias de desaprobación para las API que usan, pero " +"las advertencias de desaprobación activadas por la aplicación importada, la " +"biblioteca y los módulos de marco seguirán ocultos de forma predeterminada." #: ../Doc/whatsnew/3.7.rst:378 msgid "" "As a result of this change, the standard library now allows developers to " "choose between three different deprecation warning behaviours:" msgstr "" +"Como resultado de este cambio, la biblioteca estándar ahora permite a los " +"desarrolladores elegir entre tres comportamientos de advertencia de " +"obsolescencia diferentes:" #: ../Doc/whatsnew/3.7.rst:381 msgid "" @@ -545,6 +728,9 @@ msgid "" "intended to be seen by application end users (e.g. for deprecated " "application configuration settings)." msgstr "" +":exc:`FutureWarning`: siempre se muestra por defecto, recomendado para las " +"advertencias destinadas a los usuarios finales de la aplicación (por " +"ejemplo, para los ajustes de configuración de la aplicación obsoletos)." #: ../Doc/whatsnew/3.7.rst:384 msgid "" @@ -553,6 +739,10 @@ msgid "" "Python developers where a version upgrade may result in changed behaviour or " "an error." msgstr "" +":exc:`DeprecationWarning`: se muestra por defecto solo en :mod:`__main__` y " +"cuando se ejecutan pruebas, se recomienda para advertencias destinadas a ser " +"vistas por otros desarrolladores de Python donde una actualización de la " +"versión puede resultar en un cambio de comportamiento o un error." #: ../Doc/whatsnew/3.7.rst:388 msgid "" @@ -560,6 +750,10 @@ msgid "" "tests, intended for cases where a future version upgrade will change the " "warning category to :exc:`DeprecationWarning` or :exc:`FutureWarning`." msgstr "" +":exc:`PendingDeprecationWarning`: se muestra de forma predeterminada solo " +"cuando se ejecutan pruebas, diseñado para casos en los que una actualización " +"de versión futura cambiará la categoría de advertencia a :exc:" +"`DeprecationWarning` o :exc:`FutureWarning`." #: ../Doc/whatsnew/3.7.rst:392 msgid "" @@ -568,18 +762,23 @@ msgid "" "meant that developers primarily writing single file scripts or using Python " "interactively could be surprised by breaking changes in the APIs they used." msgstr "" +"Anteriormente ambos :exc:`DeprecationWarning` y :exc:" +"`PendingDeprecationWarning` solo eran visibles cuando se ejecutaban pruebas, " +"lo que significaba que los desarrolladores que escribían principalmente " +"scripts de un solo archivo o usaban Python de forma interactiva podrían " +"sorprenderse al ver cambios importantes en las API que usaban." #: ../Doc/whatsnew/3.7.rst:399 msgid ":pep:`565` -- Show DeprecationWarning in ``__main__``" -msgstr "" +msgstr ":pep:`565` -- Muestra *DeprecationWarning* en ``__main__``" #: ../Doc/whatsnew/3.7.rst:400 msgid "PEP written and implemented by Nick Coghlan" -msgstr "" +msgstr "PEP escrito y implementado por *Nick Coghlan*" #: ../Doc/whatsnew/3.7.rst:406 msgid "PEP 560: Core Support for ``typing`` module and Generic Types" -msgstr "" +msgstr "PEP 560: Soporte básico para el módulo de ``typing`` y tipos genéricos" #: ../Doc/whatsnew/3.7.rst:408 msgid "" @@ -593,14 +792,25 @@ msgid "" "without metaclass conflicts, and several long standing bugs in :mod:`typing` " "module are fixed." msgstr "" +"Inicialmente :pep:`484` fue diseñado de tal manera que no introduciría * " +"ningún * cambio en el intérprete principal de CPython. Ahora escriba " +"sugerencias y el módulo :mod:`typing` son ampliamente utilizados por la " +"comunidad, por lo que se elimina esta restricción. El PEP introduce dos " +"métodos especiales :meth:`__class_getitem__` y ``__mro_entries__``, estos " +"métodos ahora son utilizados por la mayoría de las clases y construcciones " +"especiales en :mod:`typing`. Como resultado, la velocidad de varias " +"operaciones con tipos aumentó hasta 7 veces, los tipos genéricos se pueden " +"usar sin conflictos de metaclase, y varios errores de larga data en el " +"módulo :mod:`typing` han sido arreglados." #: ../Doc/whatsnew/3.7.rst:420 msgid ":pep:`560` -- Core support for typing module and generic types" msgstr "" +":pep:`560` -- Soporte básico para el modulo de escritura y tipos genéricos" #: ../Doc/whatsnew/3.7.rst:427 msgid "PEP 552: Hash-based .pyc Files" -msgstr "" +msgstr "PEP 552: Archivos .pyc basados en hash" #: ../Doc/whatsnew/3.7.rst:429 msgid "" @@ -613,6 +823,16 @@ msgid "" "in the cache file is problematic for `build reproducibility `_ and content-based build systems." msgstr "" +"Python ha verificado tradicionalmente la actualización de los archivos de " +"caché de código de bytes (es decir, archivos ``.pyc``) comparando los " +"metadatos de origen (marca de tiempo y tamaño de última modificación) con la " +"fuente de metadatos guardados en el encabezado del archivo de caché cuando " +"se generó. Si bien es efectivo, este método de invalidación tiene sus " +"inconvenientes. Cuando las marcas de tiempo del sistema de archivos son " +"demasiado burdas, Python puede perder las actualizaciones de origen, lo que " +"genera confusión en el usuario. Además, tener una marca de tiempo en el " +"archivo de caché es problemático para `construir reproducibilidad `_ y sistemas de construcción basados en contenido." #: ../Doc/whatsnew/3.7.rst:438 msgid "" @@ -623,6 +843,13 @@ msgid "" "Hash-based ``.pyc`` files may be generated with :mod:`py_compile` or :mod:" "`compileall`." msgstr "" +":pep:`552` extendiendo el formato *ppc* para permitir que el hash del " +"archivo de origen se utilice para invalidación en lugar de la marca de " +"tiempo de origen. Estos archivos ``.pyc`` se denominan “hash-based”. Por " +"defecto, Python todavía usa la invalidación basada en la marca de tiempo y " +"no genera archivos ``.pyc`` basados en has de tiempos de ejecución. Los " +"archivos ``.pyc`` basados en hash se pueden generar con :mod:`py_compile` o :" +"mod:`compileall`." #: ../Doc/whatsnew/3.7.rst:444 msgid "" @@ -633,58 +860,69 @@ msgid "" "for environments where a system external to Python (e.g., the build system) " "is responsible for keeping ``.pyc`` files up-to-date." msgstr "" +"Archivos ``.pyc`` basados en hash Vienen en dos variantes: marcada y no " +"marcada. Python valida los archivos ``.pyc`` basados en hash comprobados con " +"los archivos de origen correspondientes en tiempo de ejecución, pero no lo " +"hace para *pycs* basados en hash no verificados. Archivos ``.pyc`` no " +"comprobados son una optimización de rendimiento útil para entornos donde un " +"sistema externo a Python (por ejemplo, el sistema de compilación) es " +"responsable de mantener actualizados los archivos ``.pyc``." #: ../Doc/whatsnew/3.7.rst:451 msgid "See :ref:`pyc-invalidation` for more information." -msgstr "" +msgstr "Consultar :ref:`pyc-invalidation` para mas información." #: ../Doc/whatsnew/3.7.rst:455 msgid ":pep:`552` -- Deterministic pycs" -msgstr "" +msgstr ":pep:`552` -- *Pycs* deterministas" #: ../Doc/whatsnew/3.7.rst:456 msgid "PEP written and implemented by Benjamin Peterson" -msgstr "" +msgstr "PEP escrito y implementado por *Benjamin Peterson*" #: ../Doc/whatsnew/3.7.rst:462 msgid "PEP 545: Python Documentation Translations" -msgstr "" +msgstr "PEP 545: Traducciones de Documentaciones de Python" #: ../Doc/whatsnew/3.7.rst:464 msgid "" ":pep:`545` describes the process of creating and maintaining Python " "documentation translations." msgstr "" +":pep:`545` describe el proceso de creación y mantenimiento de traducciones " +"de documentación de Python." #: ../Doc/whatsnew/3.7.rst:467 msgid "Three new translations have been added:" -msgstr "" +msgstr "Tres nuevas traducciones han sido agregadas:" #: ../Doc/whatsnew/3.7.rst:469 msgid "Japanese: https://docs.python.org/ja/" -msgstr "" +msgstr "Japonés: https://docs.python.org/ja/" #: ../Doc/whatsnew/3.7.rst:470 msgid "French: https://docs.python.org/fr/" -msgstr "" +msgstr "Francés: https://docs.python.org/fr/" #: ../Doc/whatsnew/3.7.rst:471 msgid "Korean: https://docs.python.org/ko/" -msgstr "" +msgstr "Coreano: https://docs.python.org/ko/" #: ../Doc/whatsnew/3.7.rst:476 msgid ":pep:`545` -- Python Documentation Translations" -msgstr "" +msgstr ":pep:`545` -- Traducciones de Documentación de *Python*" #: ../Doc/whatsnew/3.7.rst:476 msgid "" "PEP written and implemented by Julien Palard, Inada Naoki, and Victor " "Stinner." msgstr "" +"PEP escrito y implementado por *Julien Palard*, *Inada Naoki* y *Victor " +"Stinner*." #: ../Doc/whatsnew/3.7.rst:483 msgid "Development Runtime Mode: -X dev" -msgstr "" +msgstr "Modo de tiempo de ejecución de desarrollo: -X *dev*" #: ../Doc/whatsnew/3.7.rst:485 msgid "" @@ -695,10 +933,16 @@ msgid "" "`-X` ``dev`` documentation for the full description of the effects of this " "mode." msgstr "" +"La nueva linea de comandos módulo :option:`-X` ``dev`` o la nueva variable " +"de entorno :envvar:`PYTHONDEVMODE` se puede utilizar para habilitar el * " +"modo de desarrollo* de CPython. Cuando está en modo de desarrollo, CPython " +"realiza comprobaciones de tiempo de ejecución adicionales que son demasiado " +"caras para habilitarse de forma predeterminada. Ver :option:`-X` ``dev`` en " +"la documentación para la descripción completa de los efectos de este modo." #: ../Doc/whatsnew/3.7.rst:494 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios en el lenguaje" #: ../Doc/whatsnew/3.7.rst:496 msgid "" @@ -707,6 +951,10 @@ msgid "" "literals ` due to a problem with the implementation. In Python " "3.7 this restriction was lifted." msgstr "" +"Una expresión :keyword:`await` y compresiones que contienen una cláusula :" +"keyword:`async for` eran ilegales en las expresiones en :ref:`formatted " +"string literals ` debido a un problema con la implementación. En " +"Python 3.7 se eliminó esta restricción." #: ../Doc/whatsnew/3.7.rst:501 msgid "" @@ -714,12 +962,18 @@ msgid "" "now have more than 255 parameters. (Contributed by Serhiy Storchaka in :" "issue:`12844` and :issue:`18896`.)" msgstr "" +"Ahora se pueden pasar más de 255 argumentos a una función y una función " +"ahora puede tener más de 255 parámetros. (Contribuido por *Serhiy Storchaka* " +"en :issue:`12844` y :issue:`18896`.)" #: ../Doc/whatsnew/3.7.rst:505 msgid "" ":meth:`bytes.fromhex` and :meth:`bytearray.fromhex` now ignore all ASCII " "whitespace, not only spaces. (Contributed by Robert Xiao in :issue:`28927`.)" msgstr "" +":meth:`bytes.fromhex` y :meth:`bytearray.fromhex` ahora ignore todos los " +"espacios en blanco ASCII, no solo los espacios. (Contribuido por *Robert " +"Xiao* en :issue:`28927`.)" #: ../Doc/whatsnew/3.7.rst:508 msgid "" @@ -728,6 +982,10 @@ msgid "" "string or bytes contain only the ASCII characters. (Contributed by INADA " "Naoki in :issue:`32677`.)" msgstr "" +":class:`str`, :class:`bytes`, y :class:`bytearray` adquirió soporte para el " +"nuevo método :meth:`isascii() `, que se puede usar para probar " +"si una cadena o bytes contienen solo los caracteres ASCII. (Contribuido por " +"*INADA Naoki* en :issue:`32677`.)" #: ../Doc/whatsnew/3.7.rst:513 msgid "" @@ -735,12 +993,18 @@ msgid "" "when ``from ... import ...`` fails. (Contributed by Matthias Bussonnier in :" "issue:`29546`.)" msgstr "" +":exc:`ImportError` ahora muestra el nombre del módulo y la ruta del módulo " +"``__file__`` cuando falla ``from … import …``. (Contribuido por *Matthias " +"Bussonnier* en :issue:`29546`.)" #: ../Doc/whatsnew/3.7.rst:517 msgid "" "Circular imports involving absolute imports with binding a submodule to a " "name are now supported. (Contributed by Serhiy Storchaka in :issue:`30024`.)" msgstr "" +"Ahora se admiten las importaciones circulares que involucran importaciones " +"absolutas con un submódulo vinculado a un nombre. (Contribuido por *Serhiy " +"Storchaka* en :issue:`30024`.)" #: ../Doc/whatsnew/3.7.rst:521 msgid "" @@ -748,6 +1012,9 @@ msgid "" "``format(str(self), '')``. (Contributed by Serhiy Storchaka in :issue:" "`28974`.)" msgstr "" +"``object.__format__(x, ‘’)`` ahora es equivalente a ``str(x)`` antes que " +"``format(str(self), ‘’)``. (Contribuido por *Serhiy Storchaka* en :issue:" +"`28974`.)" #: ../Doc/whatsnew/3.7.rst:525 msgid "" @@ -756,6 +1023,11 @@ msgid "" "attribute on :ref:`tracebacks ` is now writable. " "(Contributed by Nathaniel J. Smith in :issue:`30579`.)" msgstr "" +"Para soportar mejor la creación dinámica de seguimientos de pila, :class:" +"`types.TracebackType` ahora se puede crear una instancia desde el código " +"Python, y el atributo ``tb_next`` en on :ref:`rastreos ` " +"ahora se puede escribir. (Contribuido por *Nathaniel J. Smith* en :issue:" +"`30579`.)" #: ../Doc/whatsnew/3.7.rst:531 msgid "" @@ -764,6 +1036,11 @@ msgid "" "directory (which allows imports from the *current* working directory at the " "time when an import occurs) (Contributed by Nick Coghlan in :issue:`33053`.)" msgstr "" +"Al usar la :option:`-m` switch, ``sys.path[0]`` ahora se expande con " +"entusiasmo a la ruta completa del directorio de inicio, en lugar de dejarse " +"como el directorio vacío (que permite importaciones desde el directorio de " +"trabajo * actual * en el momento en que ocurre una importación) (Contribuido " +"por *Nick Coghlan* en :issue:`33053`.)" #: ../Doc/whatsnew/3.7.rst:537 msgid "" @@ -772,14 +1049,18 @@ msgid "" "timing of each module import. (Contributed by Victor Stinner in :issue:" "`31415`.)" msgstr "" +"La nueva opción :option:`-X` ``importtime`` o la variable de entorno :envvar:" +"`PYTHONPROFILEIMPORTTIME` se puede utilizar para mostrar la sincronización " +"de cada importación de módulo. (Contribuido por *Victor Stinner* en :issue:" +"`31415`.)" #: ../Doc/whatsnew/3.7.rst:544 msgid "New Modules" -msgstr "" +msgstr "Nuevos módulos" #: ../Doc/whatsnew/3.7.rst:549 msgid "contextvars" -msgstr "" +msgstr "*contextvars*" #: ../Doc/whatsnew/3.7.rst:551 msgid "" @@ -788,6 +1069,11 @@ msgid "" "variables are conceptually similar to thread-local variables. Unlike TLS, " "context variables support asynchronous code correctly." msgstr "" +"El nuevo módulo :mod:`contextvars` y un conjunto de :ref:`nuevas APIs C " +"` introducir soporte para *variables de contexto*. Las " +"variables de contexto son conceptualmente similares a las variables locales " +"del proceso. A diferencia de TLS, las variables de contexto admiten l código " +"asincrónico correctamente." #: ../Doc/whatsnew/3.7.rst:557 msgid "" @@ -796,18 +1082,23 @@ msgid "" "context is now stored in a context variable, which allows decimal operations " "to work with the correct context in asynchronous code." msgstr "" +"Los módulos :mod:`asyncio` y :mod:`decimal` se han actualizado para utilizar " +"y admitir variables de contexto listas para usar. En particular, el contexto " +"decimal activo ahora se almacena en una variable de contexto, lo que permite " +"que las operaciones decimales funcionen con el contexto correcto en código " +"asincrónico." #: ../Doc/whatsnew/3.7.rst:564 msgid ":pep:`567` -- Context Variables" -msgstr "" +msgstr ":pep:`567` -- Variables de Contexto" #: ../Doc/whatsnew/3.7.rst:565 msgid "PEP written and implemented by Yury Selivanov" -msgstr "" +msgstr "PEP escrito y implementado por *Yury Selivanov*" #: ../Doc/whatsnew/3.7.rst:571 msgid "dataclasses" -msgstr "" +msgstr "*dataclasses*" #: ../Doc/whatsnew/3.7.rst:573 msgid "" @@ -817,22 +1108,27 @@ msgid "" "`~object.__repr__`, :meth:`~object.__eq__`, and :meth:`~object.__hash__` are " "generated automatically." msgstr "" +"El nuevo decorador :func:`~dataclasses.dataclass` proporciona una forma de " +"declarar *data classes*. Una clase de datos describe sus atributos usando " +"anotaciones de variables de clase. Su constructor y otros métodos mágicos, " +"como :meth:`~object.__repr__`, :meth:`~object.__eq__`, y :meth:`~object." +"__hash__` se generan automáticamente." #: ../Doc/whatsnew/3.7.rst:579 msgid "Example::" -msgstr "" +msgstr "Ejemplo:" #: ../Doc/whatsnew/3.7.rst:592 msgid ":pep:`557` -- Data Classes" -msgstr "" +msgstr ":pep:`557` -- Clases de Datos" #: ../Doc/whatsnew/3.7.rst:593 msgid "PEP written and implemented by Eric V. Smith" -msgstr "" +msgstr "PEP escrito y implementado por *Eric V. Smith*" #: ../Doc/whatsnew/3.7.rst:599 msgid "importlib.resources" -msgstr "" +msgstr "*importlib.resources*" #: ../Doc/whatsnew/3.7.rst:601 msgid "" @@ -844,24 +1140,34 @@ msgid "" "ResourceReader` instance to support this new API. Built-in file path " "loaders and zip file loaders both support this." msgstr "" +"El nuevo módulo :mod:`importlib.resources` proporciona varias API nuevas y " +"un ABC nuevo para acceder, abrir y leer * recursos * dentro de los paquetes. " +"Los recursos son más o menos similares a los archivos dentro de los " +"paquetes, pero no es necesario que sean archivos reales en el sistema de " +"archivos físico. Los cargadores de módulos proporcionar una función :meth:" +"`get_resource_reader()` que devuelve una instancia :class:`importlib.abc." +"ResourceReader` para admitir esta nueva API. Los cargadores de ruta de " +"archivo integrados y los cargadores de archivos zip admiten esto." #: ../Doc/whatsnew/3.7.rst:609 msgid "Contributed by Barry Warsaw and Brett Cannon in :issue:`32248`." -msgstr "" +msgstr "Contribuido por *Barry Warsaw* y *Brett Cannon* en :issue:`32248`." #: ../Doc/whatsnew/3.7.rst:613 msgid "" "`importlib_resources `_ -- a PyPI backport for earlier Python versions." msgstr "" +"`importlib_resources `_ -- un *backport* de PyPI para versiones anteriores de Python." #: ../Doc/whatsnew/3.7.rst:618 msgid "Improved Modules" -msgstr "" +msgstr "Módulos mejorados" #: ../Doc/whatsnew/3.7.rst:622 msgid "argparse" -msgstr "" +msgstr "*argparse*" #: ../Doc/whatsnew/3.7.rst:624 msgid "" @@ -869,10 +1175,13 @@ msgid "" "ArgumentParser.parse_intermixed_args>` method allows intermixing options and " "positional arguments. (Contributed by paul.j3 in :issue:`14191`.)" msgstr "" +"El nuevo método :meth:`ArgumentParser.parse_intermixed_args() ` permite permite entremezclar opciones " +"y argumentos posicionales. (Contribuido por *paul.j3* en :issue:`14191`.)" #: ../Doc/whatsnew/3.7.rst:633 ../Doc/whatsnew/3.7.rst:1950 msgid "asyncio" -msgstr "" +msgstr "*asyncio*" #: ../Doc/whatsnew/3.7.rst:635 msgid "" @@ -880,6 +1189,9 @@ msgid "" "`performance improvements `. Notable changes " "include:" msgstr "" +"El modulo :mod:`asyncio` ha recibido muchas funciones nuevas, usabilidad y :" +"ref:`mejoras de rendimiento `. Los cambios notables " +"incluyen:" #: ../Doc/whatsnew/3.7.rst:639 msgid "" @@ -888,6 +1200,10 @@ msgid "" "creating and destroying the event loop. (Contributed by Yury Selivanov in :" "issue:`32314`.)" msgstr "" +"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`.)" #: ../Doc/whatsnew/3.7.rst:644 msgid "" @@ -900,6 +1216,14 @@ msgid "" "track their context automatically. See :pep:`567` for more details. " "(Contributed by Yury Selivanov in :issue:`32436`.)" msgstr "" +"asyncio adquirió soporte para :mod:`contextvars`. :meth:`loop.call_soon() " +"`, :meth:`loop.call_soon_threadsafe() `, :meth:`loop.call_later() `, :meth:`loop.call_at() `, y :meth:`Future." +"add_done_callback() ` tener un nuevo " +"parámetro opcional * de contexto * solo de palabras clave. :class:`Tasks " +"` ahora rastrea su contexto automáticamente. Ver :pep:`567` " +"para mas detalles. (Contribuido por *Yury Selivanov* en :issue:`32436`.)" #: ../Doc/whatsnew/3.7.rst:655 msgid "" @@ -907,6 +1231,9 @@ msgid "" "``asyncio.get_event_loop().create_task()``. (Contributed by Andrew Svetlov " "in :issue:`32311`.)" msgstr "" +"La nueva función :func:`asyncio.create_task`se ha agregado como un atajo a " +"``asyncio.get_event_loop().create_task()``. (Contribuido por *Andrew " +"Svetlov* en :issue:`32311`.)" #: ../Doc/whatsnew/3.7.rst:659 msgid "" @@ -914,6 +1241,9 @@ msgid "" "to upgrade an existing connection to TLS. (Contributed by Yury Selivanov in :" "issue:`23749`.)" msgstr "" +"El nuevo método :meth:`loop.start_tls() ` puede ser " +"usado para actualizar una conexión existente para TLS. (Contribuido por " +"*Yury Selivanov* en :issue:`23749`.)" #: ../Doc/whatsnew/3.7.rst:663 msgid "" @@ -922,6 +1252,10 @@ msgid "" "possible to reduce data copies. (Contributed by Antoine Pitrou in :issue:" "`31819`.)" msgstr "" +"El nuevo método :meth:`loop.sock_recv_into() ` " +"permite leer datos de un socket directamente en un búfer proporcionado, lo " +"que permite reducir las copias de datos. (Contribuido por *Antoine Pitrou* " +"en :issue:`31819`.)" #: ../Doc/whatsnew/3.7.rst:668 msgid "" @@ -932,6 +1266,13 @@ msgid "" "all_tasks() ` methods have been deprecated. " "(Contributed by Andrew Svetlov in :issue:`32250`.)" msgstr "" +"La nueva función :func:`asyncio.current_task` devuelve la instancia actual " +"en ejecución :class:`~asyncio.Task`, y la nueva función :func:`asyncio." +"all_tasks` devuelve un conjunto de todas las instancias de ``Task`` " +"existentes en un bucle determinado. Los métodos :meth:`Task.current_task() " +"` y :meth:`Task.all_tasks() ` han quedado obsoletos. (Contribuido por *Andrew Svetlov* en :" +"issue:`32250`.)" #: ../Doc/whatsnew/3.7.rst:675 msgid "" @@ -939,6 +1280,9 @@ msgid "" "implementing streaming protocols with manual control over the receive " "buffer. (Contributed by Yury Selivanov in :issue:`32251`.)" msgstr "" +"La nueva clase *provisional* :class:`~asyncio.BufferedProtocol` permite " +"implementar protocolos de transmisión con control manual sobre el búfer de " +"recepción. (Contribuido por *Yury Selivanov* en :issue:`32251`.)" #: ../Doc/whatsnew/3.7.rst:679 msgid "" @@ -948,6 +1292,11 @@ msgid "" "new event loop if none is running. (Contributed by Yury Selivanov in :issue:" "`32269`.)" msgstr "" +"La nueva función :func:`asyncio.get_running_loop` devuelve el bucle que se " +"está ejecutando actualmente, y genera un :exc:`RuntimeError` si el bucle " +"esta corriendo. Esto contrasta con :func:`asyncio.get_event_loop`, que * " +"creará * un nuevo bucle de eventos si no se está ejecutando ninguno. " +"(Contribuido por *Yury Selivanov* en :issue:`32269`.)" #: ../Doc/whatsnew/3.7.rst:685 msgid "" @@ -957,6 +1306,11 @@ msgid "" "is_closing>` method can be used to determine if the writer is closing. " "(Contributed by Andrew Svetlov in :issue:`32391`.)" msgstr "" +"El nuevo método de rutina :meth:`StreamWriter.wait_closed() ` permite esperar hasta que se cierre el escritor " +"de secuencias. El nuevo método :meth:`StreamWriter.is_closing() ` puede ser usado para determinar si el escritor " +"esta cerrando. (Contribuido por *Andrew Svetlov* en :issue:`32391`.)" #: ../Doc/whatsnew/3.7.rst:691 msgid "" @@ -964,6 +1318,9 @@ msgid "" "method allows sending files using :mod:`os.sendfile` when possible. " "(Contributed by Andrew Svetlov in :issue:`32410`.)" msgstr "" +"El nuevo método de rutina :meth:`loop.sock_sendfile() ` permite enviar archivos usando :mod:`os.sendfile` cuando sea " +"posible. (Contribuido por *Andrew Svetlov* en :issue:`32410`.)" #: ../Doc/whatsnew/3.7.rst:695 msgid "" @@ -974,6 +1331,12 @@ msgid "" "Yury Selivanov in :issue:`32415` and Srinivas Reddy Thatiparthy in :issue:" "`32418`.)" msgstr "" +"El nuevo método :meth:`Future.get_loop() ` y ``Task." +"get_loop()`` devuelve la instancia del bucle en el que se creó una tarea o " +"un futuro. :meth:`Server.get_loop() ` permite hacer " +"lo mismo para objetos de :class:`asyncio.Server`. (Contribuido por *Yury " +"Selivanov* en :issue:`32415` y *Srinivas Reddy Thatiparthy* en :issue:" +"`32418`.)" #: ../Doc/whatsnew/3.7.rst:703 msgid "" @@ -989,10 +1352,21 @@ msgid "" "serving. :class:`~asyncio.Server` objects are now asynchronous context " "managers::" msgstr "" +"Ahora es posible controlar las instancias de :class:`asyncio.Server` cuando " +"comienzan. Anteriormente, el servidor comenzaba a funcionar inmediatamente " +"cuando se creaba. El nuevo argumento de palabra clave *start_serving* para :" +"meth:`loop.create_server() ` y :meth:`loop." +"create_unix_server() `, así como :meth:" +"`Server.start_serving() `, y :meth:`Server." +"serve_forever() ` se puede usar para " +"desacoplar la instanciación y el servicio de servidor. El nuevo método :meth:" +"`Server.is_serving() ` devuelve ``True`` si el " +"servidor esta iniciando. :class:`~asyncio.Server` los objetos ahora son " +"administradores de contexto asíncronos:" #: ../Doc/whatsnew/3.7.rst:722 msgid "(Contributed by Yury Selivanov in :issue:`32662`.)" -msgstr "" +msgstr "(Contribuido por *Yury Selivanov* en :issue:`32662`.)" #: ../Doc/whatsnew/3.7.rst:724 msgid "" @@ -1001,6 +1375,10 @@ msgid "" "which returns an absolute scheduled callback timestamp. (Contributed by " "Andrew Svetlov in :issue:`32741`.)" msgstr "" +"Objetos de devolución de llamada devueltos por :func:`loop.call_later() " +"` conseguir el nuevo método :meth:`when() ` que devuelve una marca de tiempo de devolución de llamada " +"programada absoluta. (Contribuido por *Andrew Svetlov* en :issue:`32741`.)" #: ../Doc/whatsnew/3.7.rst:730 msgid "" @@ -1008,6 +1386,9 @@ msgid "" "create_datagram_endpoint>` method gained support for Unix sockets. " "(Contributed by Quentin Dawans in :issue:`31245`.)" msgstr "" +"El método :meth:`loop.create_datagram_endpoint() \\ ` adquirió soporte para *sockets* *UNIX*." +"(Contribuido por *Quentin Dawans* en :issue:`31245`.)" #: ../Doc/whatsnew/3.7.rst:735 msgid "" @@ -1019,6 +1400,13 @@ msgid "" "variants now accept the *ssl_handshake_timeout* keyword argument. " "(Contributed by Neil Aspinall in :issue:`29970`.)" msgstr "" +"Los métodos :func:`asyncio.open_connection`, :func:`asyncio.start_server` " +"functions, :meth:`loop.create_connection() `, :meth:`loop.create_server() `, :meth:`loop.create_accepted_socket() `y sus correspondientes variantes de socket UNIX " +"ahora aceptan el argumento de palabra clave *ssl_handshake_timeout*. " +"(Contribuido por *Neil Aspinall* en :issue:`29970`.)" #: ../Doc/whatsnew/3.7.rst:743 msgid "" @@ -1026,12 +1414,18 @@ msgid "" "``True`` if the callback was cancelled. (Contributed by Marat Sharafutdinov " "in :issue:`31943`.)" msgstr "" +"El nuevo método :meth:`Handle.cancelled() ` " +"devuelve ``True`` si se canceló la devolución de llamada. (Contribuido por " +"*Marat Sharafutdinov* en :issue:`31943`.)" #: ../Doc/whatsnew/3.7.rst:747 msgid "" "The asyncio source has been converted to use the :keyword:`async`/:keyword:" "`await` syntax. (Contributed by Andrew Svetlov in :issue:`32193`.)" msgstr "" +"La fuente asyncio se ha convertido para utilizar la sintaxis :keyword:" +"`async`/:keyword:`await`. (Contribuido por *Andrew Svetlov* en :issue:" +"`32193`.)" #: ../Doc/whatsnew/3.7.rst:751 msgid "" @@ -1042,6 +1436,12 @@ msgid "" "pause_reading() ` are now idempotent. " "(Contributed by Yury Selivanov in :issue:`32356`.)" msgstr "" +"El nuevo método :meth:`ReadTransport.is_reading() ` puede ser usado para determinar el estado de lectura del " +"transporte. Adicionalmente, las llamadas a :meth:`ReadTransport." +"resume_reading() ` y :meth:" +"`ReadTransport.pause_reading() ` ahora " +"son idempotentes. (Contribuido por *Yury Selivanov* en :issue:`32356`.)" #: ../Doc/whatsnew/3.7.rst:759 msgid "" @@ -1049,6 +1449,9 @@ msgid "" "objects `. (Contributed by Yury Selivanov in :issue:" "`32066`.)" msgstr "" +"Los métodos de bucle que aceptan rutas de socket ahora admiten el paso :term:" +"`objetos con forma de ruta `. (Contribuido por *Yury " +"Selivanov* en :issue:`32066`.)" #: ../Doc/whatsnew/3.7.rst:763 msgid "" @@ -1056,12 +1459,17 @@ msgid "" "flag set by default. (Contributed by Yury Selivanov and Victor Stinner in :" "issue:`27456`.)" msgstr "" +"En :mod:`asyncio`, los sockets TCP en Linux ahora son creados con el " +"indicador ``TCP_NODELAY`` configurado por defecto. (Contribuido por *Yury " +"Selivanov* y *Victor Stinner* en :issue:`27456`.)" #: ../Doc/whatsnew/3.7.rst:767 msgid "" "Exceptions occurring in cancelled tasks are no longer logged. (Contributed " "by Yury Selivanov in :issue:`30508`.)" msgstr "" +"Las excepciones que ocurren en tareas canceladas ya no se registran. " +"(Contribuido por *Yury Selivanov* en :issue:`30508`.)" #: ../Doc/whatsnew/3.7.rst:770 msgid "" @@ -1069,16 +1477,21 @@ msgid "" "``WindowsProactorEventLoopPolicy`` classes. (Contributed by Yury Selivanov " "in :issue:`33792`.)" msgstr "" +"Nuevas clases ``WindowsSelectorEventLoopPolicy`` y " +"``WindowsProactorEventLoopPolicy``. (Contribuido por *Yury Selivanov* en :" +"issue:`33792`.)" #: ../Doc/whatsnew/3.7.rst:774 msgid "" "Several ``asyncio`` APIs have been :ref:`deprecated `." msgstr "" +"Varias APIs ``asyncio`` se han :ref:`obsoleta `." #: ../Doc/whatsnew/3.7.rst:779 msgid "binascii" -msgstr "" +msgstr "*binascii*" #: ../Doc/whatsnew/3.7.rst:781 msgid "" @@ -1086,10 +1499,14 @@ msgid "" "keyword argument. When it's true, zeros are represented by ``'`'`` instead " "of spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" msgstr "" +"La función :func:`~binascii.b2a_uu` ahora acepta un argumento de palabra " +"clave opcional *backtick*. Cuando es cierto, los ceros están representados " +"por ``’`’`` en lugar de espacios. (Contribuido por *Xiang Zhang* en :issue:" +"`30103`.)" #: ../Doc/whatsnew/3.7.rst:787 msgid "calendar" -msgstr "" +msgstr "*calendar*" #: ../Doc/whatsnew/3.7.rst:789 msgid "" @@ -1097,20 +1514,25 @@ msgid "" "ease the customization of CSS classes in the produced HTML calendar. " "(Contributed by Oz Tiram in :issue:`30095`.)" msgstr "" +"La clase :class:`~calendar.HTMLCalendar`tiene nuevos atributos de clase que " +"facilitan la personalización de clases CSS en el calendario HTML producido. " +"(Contribuido por *Oz Tiram* en :issue:`30095`.)" #: ../Doc/whatsnew/3.7.rst:795 ../Doc/whatsnew/3.7.rst:1964 msgid "collections" -msgstr "" +msgstr "*collections*" #: ../Doc/whatsnew/3.7.rst:797 msgid "" "``collections.namedtuple()`` now supports default values. (Contributed by " "Raymond Hettinger in :issue:`32320`.)" msgstr "" +"``collections.namedtuple()`` ahora soporta valores por defecto. (Contribuido " +"por *Raymond Hettinger* en :issue:`32320`.)" #: ../Doc/whatsnew/3.7.rst:802 msgid "compileall" -msgstr "" +msgstr "*compileall*" #: ../Doc/whatsnew/3.7.rst:804 msgid "" @@ -1120,10 +1542,15 @@ msgid "" "command line using the new ``--invalidation-mode`` argument. (Contributed by " "Benjamin Peterson in :issue:`31650`.)" msgstr "" +":func:`compileall.compile_dir` aprendió el nuevo parámetro " +"*invalidation_mode*, que se puede utilizar para habilitar :ref:`invalidación " +"de .pyc basada en hash `. El modo de invalidación también " +"se puede especificar en la línea de comando usando el nuevo argumento ``—" +"invalidation-mode``. (Contribuido por *Benjamin Peterson* en :issue:`31650`.)" #: ../Doc/whatsnew/3.7.rst:813 msgid "concurrent.futures" -msgstr "" +msgstr "*concurrent.futures*" #: ../Doc/whatsnew/3.7.rst:815 msgid "" @@ -1132,6 +1559,10 @@ msgid "" "support the new *initializer* and *initargs* constructor arguments. " "(Contributed by Antoine Pitrou in :issue:`21423`.)" msgstr "" +":class:`ProcessPoolExecutor ` y :" +"class:`ThreadPoolExecutor ` ahora " +"soporta los nuevos argumentos de constructor *initializer* y *initargs*. " +"(Contribuido por *Antoine Pitrou* en :issue:`21423`.)" #: ../Doc/whatsnew/3.7.rst:820 msgid "" @@ -1139,10 +1570,13 @@ msgid "" "can now take the multiprocessing context via the new *mp_context* argument. " "(Contributed by Thomas Moreau in :issue:`31540`.)" msgstr "" +"La :class:`ProcessPoolExecutor ` " +"puede ahora tomar el contexto de multiprocesamiento a través del nuevo " +"argumento *mp_context*. (Contribuido por *Thomas Moreau* en :issue:`31540`.)" #: ../Doc/whatsnew/3.7.rst:826 msgid "contextlib" -msgstr "" +msgstr "*contextlib*" #: ../Doc/whatsnew/3.7.rst:828 msgid "" @@ -1150,6 +1584,9 @@ msgid "" "context manager than :class:`~contextlib.ExitStack`. (Contributed by Jesse-" "Bakker in :issue:`10049`.)" msgstr "" +"El nuevo :func:`~contextlib.nullcontext` es un administrador de contexto sin " +"operaciones simple y rápido que :class:`~contextlib.ExitStack`. (Contribuido " +"por *Jesse-Bakker* en :issue:`10049`.)" #: ../Doc/whatsnew/3.7.rst:832 msgid "" @@ -1159,10 +1596,15 @@ msgid "" "Jelle Zijlstra in :issue:`29679` and :issue:`30241`, and by Alexander Mohr " "and Ilya Kulakov in :issue:`29302`.)" msgstr "" +"Se han añadido los nuevos :func:`~contextlib.asynccontextmanager`, :class:" +"`~contextlib.AbstractAsyncContextManager`, y :class:`~contextlib." +"AsyncExitStack` para complementar sus partes sincronicas. (Contribuido por " +"*Jelle Zijlstra* en :issue:`29679` y :issue:`30241`, y por *Alexander Mohr* " +"y *Ilya Kulakov* en :issue:`29302`.)" #: ../Doc/whatsnew/3.7.rst:841 msgid "cProfile" -msgstr "" +msgstr "*cProfile*" #: ../Doc/whatsnew/3.7.rst:843 msgid "" @@ -1170,26 +1612,33 @@ msgid "" "alternative to script path. (Contributed by Sanyam Khurana in :issue:" "`21862`.)" msgstr "" +"La linea de comandos :mod:`cProfile` ahora acepta ``-m module_name`` como " +"alternativa a la ruta del *script*. (Contribuido por *Sanyam Khurana* en :" +"issue:`21862`.)" #: ../Doc/whatsnew/3.7.rst:848 msgid "crypt" -msgstr "" +msgstr "*crypt*" #: ../Doc/whatsnew/3.7.rst:850 msgid "" "The :mod:`crypt` module now supports the Blowfish hashing method. " "(Contributed by Serhiy Storchaka in :issue:`31664`.)" msgstr "" +"El módulo :mod:`crypt` ahora es compatible con el método de hash Blowfish. " +"(Contribuido por *Serhiy Storchaka* en :issue:`31664`.)" #: ../Doc/whatsnew/3.7.rst:853 msgid "" "The :func:`~crypt.mksalt` function now allows specifying the number of " "rounds for hashing. (Contributed by Serhiy Storchaka in :issue:`31702`.)" msgstr "" +"La función :func:`~crypt.mksalt` ahora permite especificar el número de " +"rondas para el hash. (Contribuido por *Serhiy Storchaka* en :issue:`31702`.)" #: ../Doc/whatsnew/3.7.rst:858 msgid "datetime" -msgstr "" +msgstr "*datetime*" #: ../Doc/whatsnew/3.7.rst:860 msgid "" @@ -1198,26 +1647,35 @@ msgid "" "of the formats output by :meth:`datetime.isoformat() `. (Contributed by Paul Ganssle in :issue:`15873`.)" msgstr "" +"Los nuevos objetos :meth:`datetime.fromisoformat() ` un método constructor :class:`~datetime.datetime` de una " +"cadena en uno de los formatos de salida de :meth:`datetime.isoformat() " +"`. (Contribuido por *Paul Ganssle* en :issue:" +"`15873`.)" #: ../Doc/whatsnew/3.7.rst:866 msgid "" "The :class:`tzinfo ` class now supports sub-minute offsets. " "(Contributed by Alexander Belopolsky in :issue:`5288`.)" msgstr "" +"La clase :class:`tzinfo ` ahora admite compensaciones de " +"subminutos. (Contribuido por *Alexander Belopolsky* en :issue:`5288`.)" #: ../Doc/whatsnew/3.7.rst:871 ../Doc/whatsnew/3.7.rst:1974 msgid "dbm" -msgstr "" +msgstr "*dbm*" #: ../Doc/whatsnew/3.7.rst:873 msgid "" ":mod:`dbm.dumb` now supports reading read-only files and no longer writes " "the index file when it is not changed." msgstr "" +":mod:`dbm.dumb` ahora admite la lectura de archivos de solo lectura y ya no " +"escribe el archivo de índice cuándo no se cambia." #: ../Doc/whatsnew/3.7.rst:878 msgid "decimal" -msgstr "" +msgstr "*decimal*" #: ../Doc/whatsnew/3.7.rst:880 msgid "" @@ -1225,10 +1683,13 @@ msgid "" "pep567>` to store the decimal context. (Contributed by Yury Selivanov in :" "issue:`32630`.)" msgstr "" +"El módulo :mod:`decimal` ahora usa :ref:`variables de contexto ` para almacenar el contexto decimal. (Contribuido por *Yury " +"Selivanov* en :issue:`32630`.)" #: ../Doc/whatsnew/3.7.rst:886 msgid "dis" -msgstr "" +msgstr "*dis*" #: ../Doc/whatsnew/3.7.rst:888 msgid "" @@ -1238,10 +1699,16 @@ msgid "" "disassembly recursion is controlled by the new *depth* parameter. " "(Contributed by Serhiy Storchaka in :issue:`11822`.)" msgstr "" +"La función :func:`~dis.dis` ahora puede desensamblar objetos de código " +"anidados (el código de comprensiones, expresiones generadoras y funciones " +"anidadas, y el código utilizado para construir clases anidadas). La " +"profundidad máxima de la recursividad de desmontaje se controla mediante el " +"nuevo parámetro * profundidad *. (Contribuido por *Serhiy Storchaka* en :" +"issue:`11822`.)" #: ../Doc/whatsnew/3.7.rst:897 msgid "distutils" -msgstr "" +msgstr "*distutils*" #: ../Doc/whatsnew/3.7.rst:899 msgid "" @@ -1249,10 +1716,13 @@ msgid "" "therefore included in source distributions. (Contributed by Ryan Gonzalez " "in :issue:`11913`.)" msgstr "" +"``README.rst`` ahora se incluye en la lista de READMEs estándar de distutils " +"y, por lo tanto, se incluye en las distribuciones de código fuente. " +"(Contribuido por *Ryan Gonzalez* en :issue:`11913`.)" #: ../Doc/whatsnew/3.7.rst:905 ../Doc/whatsnew/3.7.rst:1984 msgid "enum" -msgstr "" +msgstr "*enum*" #: ../Doc/whatsnew/3.7.rst:907 msgid "" @@ -1260,6 +1730,10 @@ msgid "" "which allows listing the names of properties which should not become enum " "members. (Contributed by Ethan Furman in :issue:`31801`.)" msgstr "" +"La :class:`Enum ` aprendió la nueva propiedad de clase " +"``_ignore_``, que permite enumerar los nombres de propiedades que no deben " +"convertirse en miembros de enumeración. (Contribuido por *Ethan Furman* en :" +"issue:`31801`.)" #: ../Doc/whatsnew/3.7.rst:912 msgid "" @@ -1270,20 +1744,29 @@ msgid "" "return :const:`False` instead and are deprecated. (Contributed by Ethan " "Furman in :issue:`33217`.)" msgstr "" +"En Python 3.8, intentar buscar objetos que no sean Enum en :class:`Enum` " +"generará un :exc:`TypeError` (por ejemplo, ``1 in Color``); de manera " +"similar, si se intenta buscar objetos que no sean Flag en un miembro :class:" +"`Flag` se generará :exc:`TypeError` (por ejemplo, ``1 in Perm.RW``); " +"actualmente, ambas operaciones devuelven :const:`False` en su lugar y están " +"obsoletas." #: ../Doc/whatsnew/3.7.rst:921 msgid "functools" -msgstr "" +msgstr "*functools*" #: ../Doc/whatsnew/3.7.rst:923 msgid "" ":func:`functools.singledispatch` now supports registering implementations " "using type annotations. (Contributed by Łukasz Langa in :issue:`32227`.)" msgstr "" +":func:`functools.singledispatch` ahora admite el registro de " +"implementaciones mediante anotaciones de tipo. (Contribuido por *Łukasz " +"Langa* en :issue:`32227`.)" #: ../Doc/whatsnew/3.7.rst:929 msgid "gc" -msgstr "" +msgstr "*gc*" #: ../Doc/whatsnew/3.7.rst:931 msgid "" @@ -1295,10 +1778,17 @@ msgid "" "obtain the number of frozen objects. (Contributed by Li Zekun in :issue:" "`31558`.)" msgstr "" +"La nueva función :func:`gc.freeze` permite congelar todos los objetos " +"rastreados por el recolector de basura y excluirlos de colecciones futuras. " +"Esto se puede utilizar antes de llamar POSIX ``fork()`` para hacer que la " +"copia en escritura de GC sea amigable o para acelerar la recopilación. La " +"nuevas funciones :func:`gc.unfreeze` revierten esta operación. Además, :func:" +"`gc.get_freeze_count` se puede utilizar para obtener el número de objetos " +"congelados. (Contribuido por *Li Zekun* en :issue:`31558`.)" #: ../Doc/whatsnew/3.7.rst:941 msgid "hmac" -msgstr "" +msgstr "*hmac*" #: ../Doc/whatsnew/3.7.rst:943 msgid "" @@ -1306,10 +1796,12 @@ msgid "" "function, which is up to three times faster than :func:`~hmac.HMAC`. " "(Contributed by Christian Heimes in :issue:`32433`.)" msgstr "" +"El módulo :mod:`hmac` ahora tiene una función one-shot optimizada :func:" +"`~hmac.digest`, que es hasta tres veces más rápida que :func:`~hmac.HMAC`." #: ../Doc/whatsnew/3.7.rst:949 msgid "http.client" -msgstr "" +msgstr "*http.client*" #: ../Doc/whatsnew/3.7.rst:951 msgid "" @@ -1317,10 +1809,13 @@ msgid "" "HTTPSConnection` now support the new *blocksize* argument for improved " "upload throughput. (Contributed by Nir Soffer in :issue:`31945`.)" msgstr "" +":class:`~http.client.HTTPConnection` y :class:`~http.client.HTTPSConnection` " +"ahora admite el nuevo argumento * tamaño de bloque * para mejorar el " +"rendimiento de carga. (Contribuido por *Nir Soffer* en :issue:`31945`.)" #: ../Doc/whatsnew/3.7.rst:957 msgid "http.server" -msgstr "" +msgstr "*http.server*" #: ../Doc/whatsnew/3.7.rst:959 msgid "" @@ -1329,6 +1824,10 @@ msgid "" "target file was not modified after the time specified in the header. " "(Contributed by Pierre Quentel in :issue:`29654`.)" msgstr "" +":class:`~http.server.SimpleHTTPRequestHandler` ahora admite el encabezado " +"HTTP ``If-Modified-Since``. El servidor devuelve el estado de respuesta 304 " +"si el archivo de destino no se modificó después del tiempo especificado en " +"el encabezado. (Contribuido por *Pierre Quentel* en :issue:`29654`.)" #: ../Doc/whatsnew/3.7.rst:964 msgid "" @@ -1338,6 +1837,11 @@ msgid "" "uses the current working directory. (Contributed by Stéphane Wirtel and " "Julien Palard in :issue:`28707`.)" msgstr "" +":class:`~http.server.SimpleHTTPRequestHandler` acepta el nuevo argumento " +"*directorio*, además del nuevo argumento de línea de comando ``—directory``. " +"Con este parámetro, el servidor sirve el directorio especificado, por " +"defecto usa el directorio de trabajo actual. (Contribuido por *Stéphane " +"Wirtel* y *Julien Palard* en :issue:`28707`.)" #: ../Doc/whatsnew/3.7.rst:970 msgid "" @@ -1346,16 +1850,22 @@ msgid "" "It is used when ``http.server`` is run with ``-m``. (Contributed by Julien " "Palard in :issue:`31639`.)" msgstr "" +"La nueva clase :class:`ThreadingHTTPServer ` usa procesos para manejar solicitudes usando :class:" +"`~socketserver.ThreadingMixin`. Se usa cuando se ejecuta ``http.server`` con " +"``-m``. (Contribuido por *Julien Palard* en :issue:`31639`.)" #: ../Doc/whatsnew/3.7.rst:977 msgid "idlelib and IDLE" -msgstr "" +msgstr "*idlelib and IDLE*" #: ../Doc/whatsnew/3.7.rst:979 msgid "" "Multiple fixes for autocompletion. (Contributed by Louie Lu in :issue:" "`15786`.)" msgstr "" +"Varias correcciones para autocompletar. (Contribuido por *Louie Lu* en :" +"issue:`15786`.)" #: ../Doc/whatsnew/3.7.rst:981 msgid "" @@ -1364,6 +1874,10 @@ msgid "" "classes. (Contributed by Guilherme Polo, Cheryl Sabella, and Terry Jan Reedy " "in :issue:`1612262`.)" msgstr "" +"El Explorador de módulos (en el menú Archivo, antes llamado Explorador de " +"clases), ahora muestra funciones y clases anidadas además de funciones y " +"clases de nivel superior. (Contribuido por *Guilherme Polo*, *Cheryl " +"Sabella*, y *Terry Jan Reedy* en :issue:`1612262`.)" #: ../Doc/whatsnew/3.7.rst:987 msgid "" @@ -1371,6 +1885,9 @@ msgid "" "improve both appearance and function. (Contributed by Cheryl Sabella and " "Terry Jan Reedy in multiple issues.)" msgstr "" +"El cuadro de diálogo Configuración (Opciones, Configurar IDLE) se ha " +"reescrito parcialmente para mejorar tanto la apariencia como la función. " +"(Contribuido por *Cheryl Sabella* y *Terry Jan Reedy* en múltiple issues.)" #: ../Doc/whatsnew/3.7.rst:991 msgid "" @@ -1379,6 +1896,11 @@ msgid "" "by Terry Jan Reedy in :issue:`13802`.) The sample can be edited to include " "other characters. (Contributed by Serhiy Storchaka in :issue:`31860`.)" msgstr "" +"La muestra de fuente ahora incluye una selección de caracteres no latinos " +"para que los usuarios puedan ver mejor el efecto de seleccionar una fuente " +"en particular. (Contribuido por *Terry Jan Reedy* en :issue:`13802`.). La " +"muestra se puede editar para incluir otros caracteres. (Contribuido por " +"*Serhiy Storchaka* en :issue:`31860`.)" #: ../Doc/whatsnew/3.7.rst:997 msgid "" @@ -1387,6 +1909,10 @@ msgid "" "to other dialog tabs. (Contributed by Charles Wohlganger and Terry Jan Reedy " "in :issue:`27099`.)" msgstr "" +"Las funciones IDLE implementadas anteriormente como extensiones se han " +"vuelto a implementar como funciones normales. Su configuración se ha movido " +"de la pestaña Extensiones a otras pestañas de diálogo. (Contribuido por " +"*Charles Wohlganger* y *Terry Jan Reedy* en :issue:`27099`.)" #: ../Doc/whatsnew/3.7.rst:1002 msgid "" @@ -1396,6 +1922,12 @@ msgid "" "dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" "`33642`, :issue:`33768`, and :issue:`33679`.)" msgstr "" +"Se revisó la opción de contexto del código del editor. El cuadro muestra " +"todas las líneas de contexto hasta las líneas máximas. Al hacer clic en una " +"línea de contexto, el editor pasa a esa línea. Los colores de contexto para " +"temas personalizados se agregan a la pestaña Destacados del cuadro de " +"diálogo Configuración. (Contribuido por *Cheryl Sabella* y *Terry Jan Reedy* " +"en :issue:`33642`, :issue:`33768`, y :issue:`33679`.)" #: ../Doc/whatsnew/3.7.rst:1008 msgid "" @@ -1405,10 +1937,16 @@ msgid "" "text and lines sharper. It should otherwise have no effect. (Contributed by " "Terry Jan Reedy in :issue:`33656`.)" msgstr "" +"En Windows, una nueva llamada a la API le dice a Windows que tk escala para " +"DPI. En Windows 8.1+ o 10, con las propiedades de compatibilidad de DPI del " +"binario de Python sin cambios y una resolución de monitor superior a 96 DPI, " +"esto debería hacer que el texto y las líneas sean más nítidos. De lo " +"contrario, no debería tener ningún efecto. (Contribuido por *Terry Jan " +"Reedy* en :issue:`33656`.)" #: ../Doc/whatsnew/3.7.rst:1014 msgid "New in 3.7.1:" -msgstr "" +msgstr "Nuevo en 3.7.1:" #: ../Doc/whatsnew/3.7.rst:1016 msgid "" @@ -1419,14 +1957,23 @@ msgid "" "button or into the clipboard or a separate window by right-clicking the " "button. (Contributed by Tal Einat in :issue:`1529353`.)" msgstr "" +"La salida sobre N líneas (50 por defecto) se reduce a un botón. N se puede " +"cambiar en la sección PyShell de la página General del cuadro de diálogo " +"Configuración. Se pueden comprimir menos líneas, pero posiblemente más " +"largas, haciendo clic derecho en la salida. La salida comprimida se puede " +"expandir en su lugar haciendo doble clic en el botón o en el portapapeles o " +"en una ventana separada haciendo clic derecho en el botón. (Contribuido por " +"*Tal Einat* en :issue:`1529353`.)" #: ../Doc/whatsnew/3.7.rst:1023 msgid "The changes above have been backported to 3.6 maintenance releases." msgstr "" +"Los cambios anteriores se han actualizado a las versiones de mantenimiento " +"3.6." #: ../Doc/whatsnew/3.7.rst:1025 msgid "NEW in 3.7.4:" -msgstr "" +msgstr "Nuevo en 3.7.4:" #: ../Doc/whatsnew/3.7.rst:1027 msgid "" @@ -1436,10 +1983,16 @@ msgid "" "normal Shell main module restart. (Contributed by Cheryl Sabella, Terry Jan " "Reedy, and others in :issue:`5680` and :issue:`37627`.)" msgstr "" +"Agregado “Run Customized” al menú Correr para ejecutar un módulo con " +"configuraciones personalizadas. Cualquier argumento de línea de comando " +"ingresado se agrega a sys.argv. Vuelven a aparecer en el cuadro para la " +"siguiente ejecución personalizada. También se puede suprimir el reinicio " +"normal del módulo principal de Shell. (Contribuidor por *Cheryl Sabella*, " +"*Terry Jan Reedy*, y otros en :issue:`5680` y :issue:`37627`.)" #: ../Doc/whatsnew/3.7.rst:1033 msgid "New in 3.7.5:" -msgstr "" +msgstr "Nuevo en 3.7.5:" #: ../Doc/whatsnew/3.7.rst:1035 msgid "" @@ -1449,10 +2002,16 @@ msgid "" "Options menu. (Contributed by Tal Einat and Saimadhav Heblikar in :issue:" "`17535`.)" msgstr "" +"Agregue números de línea opcionales para las ventanas del editor IDLE. Las " +"ventanas se abren sin números de línea a menos que se establezca lo " +"contrario en la pestaña General del cuadro de diálogo de configuración. Los " +"números de línea de una ventana existente se muestran y ocultan en el menú " +"Opciones. (Contribuido por *Tal Einat* y *Saimadhav Heblikar* en :issue:" +"`17535`.)" #: ../Doc/whatsnew/3.7.rst:1043 ../Doc/whatsnew/3.7.rst:2003 msgid "importlib" -msgstr "" +msgstr "*importlib*" #: ../Doc/whatsnew/3.7.rst:1045 msgid "" @@ -1461,12 +2020,19 @@ msgid "" "`whatsnew37_importlib_resources`. (Contributed by Barry Warsaw, Brett Cannon " "in :issue:`32248`.)" msgstr "" +"El :class:`importlib.abc.ResourceReader` ABC se introdujo para admitir la " +"carga de recursos desde paquetes. Ver también :ref:" +"`whatsnew37_importlib_resources`. (Contribuido por *Barry Warsaw*, *Brett " +"Cannon* en :issue:`32248`.)" #: ../Doc/whatsnew/3.7.rst:1050 msgid "" ":func:`importlib.reload` now raises :exc:`ModuleNotFoundError` if the module " "lacks a spec. (Contributed by Garvit Khatri in :issue:`29851`.)" msgstr "" +":func:`importlib.reload` ahora mejora :exc:`ModuleNotFoundError` si el " +"módulo carece de especificación. (Contribuido por *Garvit Khatri* en :issue:" +"`29851`.)" #: ../Doc/whatsnew/3.7.rst:1054 msgid "" @@ -1475,6 +2041,10 @@ msgid "" "e. lacks a ``__path__`` attribute). (Contributed by Milan Oberkirch in :" "issue:`30436`.)" msgstr "" +":func:`importlib.find_spec` ahora mejora :exc:`ModuleNotFoundError` en lugar " +"de :exc:`AttributeError` si el modulo principal especifico no ese un paquete " +"(es decir, carece de un atributo ``__path__``). (Contribuido por *Milan " +"Oberkirch* en :issue:`30436`.)" #: ../Doc/whatsnew/3.7.rst:1059 msgid "" @@ -1482,10 +2052,13 @@ msgid "" "passed source. A :ref:`hash-based .pyc file ` embeds the " "value returned by this function." msgstr "" +"La nueva :func:`importlib.source_hash` se puede utilizar para calcular el " +"hash de la fuente pasada. Un :ref:`archivo .pyc basado en hash ` incrusta el valor devuelto por esta función." #: ../Doc/whatsnew/3.7.rst:1065 msgid "io" -msgstr "" +msgstr "*io*" #: ../Doc/whatsnew/3.7.rst:1067 msgid "" @@ -1494,10 +2067,14 @@ msgid "" "(Contributed by Antoine Pitrou in :issue:`30526` and INADA Naoki in :issue:" "`15216`.)" msgstr "" +"El nuevo método :meth:`TextIOWrapper.reconfigure() ` se puede utilizar para reconfigurar el flujo de texto con la " +"nueva configuración. (Contribuido por *Antoine Pitrou* en :issue:`30526` y " +"*INADA Naoki* en :issue:`15216`.)" #: ../Doc/whatsnew/3.7.rst:1074 msgid "ipaddress" -msgstr "" +msgstr "*ipaddress*" #: ../Doc/whatsnew/3.7.rst:1076 msgid "" @@ -1506,10 +2083,14 @@ msgid "" "containment tests. (Contributed by Michel Albert and Cheryl Sabella in :" "issue:`20825`.)" msgstr "" +"Los nuevos métodos ``subnet_of()`` y ``supernet_of()`` de :class:`ipaddress." +"IPv6Network` y :class:`ipaddress.IPv4Network` pueden ser usados para pruebas " +"de contención de redes. (Contribuido por *Michel Albert* y *Cheryl Sabella* " +"en :issue:`20825`.)" #: ../Doc/whatsnew/3.7.rst:1083 msgid "itertools" -msgstr "" +msgstr "*itertools*" #: ../Doc/whatsnew/3.7.rst:1085 msgid "" @@ -1517,10 +2098,13 @@ msgid "" "__index__>` as start, stop, and slice arguments. (Contributed by Will " "Roberts in :issue:`30537`.)" msgstr "" +":func:`itertools.islice` ahora acepta :meth:`integer-like objects ` como argumentos de inicio, parada y corte. (Contribuido por " +"*Will Roberts* en :issue:`30537`.)" #: ../Doc/whatsnew/3.7.rst:1092 ../Doc/whatsnew/3.7.rst:2021 msgid "locale" -msgstr "" +msgstr "*locale*" #: ../Doc/whatsnew/3.7.rst:1094 msgid "" @@ -1528,6 +2112,10 @@ msgid "" "make the conversion use monetary thousands separators and grouping strings. " "(Contributed by Garvit in :issue:`10379`.)" msgstr "" +"El nuevo argumento * monetario * para :func:`locale.format_string` se puede " +"utilizar para hacer que la conversión utilice separadores de miles " +"monetarios y cadenas de agrupación. (Contribuido por *Garvit* en :issue:" +"`10379`.)" #: ../Doc/whatsnew/3.7.rst:1098 msgid "" @@ -1535,16 +2123,21 @@ msgid "" "``'UTF-8'`` on Android or when in the :ref:`forced UTF-8 mode `." msgstr "" +"La función :func:`locale.getpreferredencoding` ahora siempre devuelve " +"``’UTF-8’`` en Android o cuando está en el :ref:`modo UTF-8 forzado " +"`." #: ../Doc/whatsnew/3.7.rst:1103 msgid "logging" -msgstr "" +msgstr "*logging*" #: ../Doc/whatsnew/3.7.rst:1105 msgid "" ":class:`~logging.Logger` instances can now be pickled. (Contributed by Vinay " "Sajip in :issue:`30520`.)" msgstr "" +":class:`~logging.Logger` instancias ahora pueden ser decapadas. (Contribuido " +"por *Vinay Sajip* en :issue:`30520`.)" #: ../Doc/whatsnew/3.7.rst:1108 msgid "" @@ -1552,6 +2145,10 @@ msgid "" "method can be used to replace the logger stream after handler creation. " "(Contributed by Vinay Sajip in :issue:`30522`.)" msgstr "" +"El nuevo método :meth:`StreamHandler.setStream() ` se puede utilizar para reemplazar la secuencia del registrador " +"después de la creación del controlador. (Contribuido por *Vinay Sajip* en :" +"issue:`30522`.)" #: ../Doc/whatsnew/3.7.rst:1112 msgid "" @@ -1559,30 +2156,37 @@ msgid "" "configuration passed to :func:`logging.config.fileConfig`. (Contributed by " "Preston Landers in :issue:`31080`.)" msgstr "" +"Ahora es posible especificar argumentos de palabras clave para los " +"constructores de manejadores en la configuración pasada a :func:`logging." +"config.fileConfig`. (Contribuido por *Preston Landers* en :issue:`31080`.)" #: ../Doc/whatsnew/3.7.rst:1118 msgid "math" -msgstr "" +msgstr "*math*" #: ../Doc/whatsnew/3.7.rst:1120 msgid "" "The new :func:`math.remainder` function implements the IEEE 754-style " "remainder operation. (Contributed by Mark Dickinson in :issue:`29962`.)" msgstr "" +"La nueva función :func:`math.remainder` implementa la operación de resto de " +"estilo IEEE 754. (Contribuido por *Mark Dickinson* en :issue:`29962`.)" #: ../Doc/whatsnew/3.7.rst:1125 msgid "mimetypes" -msgstr "" +msgstr "*mimetypes*" #: ../Doc/whatsnew/3.7.rst:1127 msgid "" "The MIME type of .bmp has been changed from ``'image/x-ms-bmp'`` to ``'image/" "bmp'``. (Contributed by Nitish Chandra in :issue:`22589`.)" msgstr "" +"El tipo MIME de .bmp se ha cambiado de ``’image/x-ms-bmp’`` a ``’image/" +"bmp’``. (Contribuido por *Nitish Chandra* en :issue:`22589`.)" #: ../Doc/whatsnew/3.7.rst:1133 msgid "msilib" -msgstr "" +msgstr "*msilib*" #: ../Doc/whatsnew/3.7.rst:1135 msgid "" @@ -1590,10 +2194,13 @@ msgid "" "to close the :abbr:`MSI` database. (Contributed by Berker Peksag in :issue:" "`20486`.)" msgstr "" +"El nuevo método :meth:`Database.Close() ` se puede " +"utilizar para cerrar la base de datos :abbr:`MSI`. (Contribuido por *Berker " +"Peksag* en :issue:`20486`.)" #: ../Doc/whatsnew/3.7.rst:1141 msgid "multiprocessing" -msgstr "" +msgstr "*multiprocessing*" #: ../Doc/whatsnew/3.7.rst:1143 msgid "" @@ -1602,6 +2209,10 @@ msgid "" "with it. :exc:`ValueError` is raised if the underlying process is still " "running. (Contributed by Antoine Pitrou in :issue:`30596`.)" msgstr "" +"El nuevo método :meth:`Process.close() ` " +"cierra explícitamente el objeto de proceso y libera todos los recursos " +"asociados con él. :exc:`ValueError` se genera si el proceso subyacente aún " +"se está ejecutando. (Contribuido por *Antoine Pitrou* en :issue:`30596`.)" #: ../Doc/whatsnew/3.7.rst:1149 msgid "" @@ -1609,28 +2220,38 @@ msgid "" "used to terminate the process using the :data:`SIGKILL` signal on Unix. " "(Contributed by Vitor Pereira in :issue:`30794`.)" msgstr "" +"El nuevo método :meth:`Process.kill() ` se " +"puede usar para terminar el proceso usando la señal :data:`SIGKILL` en Unix. " +"(Contribuido por *Vitor Pereira* en :issue:`30794`.)" #: ../Doc/whatsnew/3.7.rst:1153 msgid "" "Non-daemonic threads created by :class:`~multiprocessing.Process` are now " "joined on process exit. (Contributed by Antoine Pitrou in :issue:`18966`.)" msgstr "" +"Subprocesos no demoníacos creados por :class:`~multiprocessing.Process` " +"ahora se unen al salir del proceso. (Contribuido por *Antoine Pitrou* en :" +"issue:`18966`.)" #: ../Doc/whatsnew/3.7.rst:1159 msgid "os" -msgstr "" +msgstr "*os*" #: ../Doc/whatsnew/3.7.rst:1161 msgid "" ":func:`os.fwalk` now accepts the *path* argument as :class:`bytes`. " "(Contributed by Serhiy Storchaka in :issue:`28682`.)" msgstr "" +":func:`os.fwalk` ahora acepta el argumento *path* como :class:`bytes`. " +"(Contribuido por *Serhiy Storchaka* en :issue:`28682`.)" #: ../Doc/whatsnew/3.7.rst:1164 msgid "" ":func:`os.scandir` gained support for :ref:`file descriptors `. " "(Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" +":func:`os.scandir` obtuvo soporte de :ref:`descriptores de archivo " +"`. (Contribuido por *Serhiy Storchaka* en :issue:`25996`.)" #: ../Doc/whatsnew/3.7.rst:1167 msgid "" @@ -1638,6 +2259,9 @@ msgid "" "callbacks to be executed at process fork. (Contributed by Antoine Pitrou in :" "issue:`16500`.)" msgstr "" +"La nueva función :func:`~os.register_at_fork` permite registrar " +"devoluciones de llamada de Python para que se ejecuten en la bifurcación del " +"proceso. (Contribuido por *Antoine Pitrou* en :issue:`16500`.)" #: ../Doc/whatsnew/3.7.rst:1171 msgid "" @@ -1646,6 +2270,10 @@ msgid "" "of :func:`os.writev` and :func:`os.pwrite`). (Contributed by Pablo Galindo " "in :issue:`31368`.)" msgstr "" +"Agrega funciones :func:`os.preadv` (combinando la funcionalidad de :func:`os." +"readv` y :func:`os.pread`) y :func:`os.pwritev` (combinando la funcionalidad " +"de :func:`os.writev` y :func:`os.pwrite`). (Contribuido por *Pablo Galindo* " +"en :issue:`31368`.)" #: ../Doc/whatsnew/3.7.rst:1176 msgid "" @@ -1653,12 +2281,18 @@ msgid "" "permission bits of newly-created intermediate-level directories. " "(Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" +"El argumento de modo de :func:`os.makedirs` ya no afecta a los bits de " +"permisos de archivos de los directorios de nivel intermedio recién creados. " +"(Contribuido por *Serhiy Storchaka* en :issue:`19930`.)" #: ../Doc/whatsnew/3.7.rst:1180 msgid "" ":func:`os.dup2` now returns the new file descriptor. Previously, ``None`` " "was always returned. (Contributed by Benjamin Peterson in :issue:`32441`.)" msgstr "" +":func:`os.dup2` ahora retorna el nuevo descriptor de archivo. Previamente, " +"``None`` siempre fue retornado. (Contribuido por *Benjamin Peterson* en :" +"issue:`32441`.)" #: ../Doc/whatsnew/3.7.rst:1184 msgid "" @@ -1666,10 +2300,13 @@ msgid "" "stat_result.st_fstype` attribute on Solaris and its derivatives. " "(Contributed by Jesús Cea Avión in :issue:`32659`.)" msgstr "" +"La estructura retornada por :func:`os.stat` ahora contiene el atributo :" +"attr:`~os.stat_result.st_fstype` en Solaris y sus derivados. (Contribuido " +"por *Jesús Cea Avión* en :issue:`32659`.)" #: ../Doc/whatsnew/3.7.rst:1190 msgid "pathlib" -msgstr "" +msgstr "*pathlib*" #: ../Doc/whatsnew/3.7.rst:1192 msgid "" @@ -1677,10 +2314,14 @@ msgid "" "available on POSIX systems and can be used to determine whether a path is a " "mount point. (Contributed by Cooper Ry Lees in :issue:`30897`.)" msgstr "" +"El nuevo método :meth:`Path.is_mount() ` ahora está " +"disponible en los sistemas POSIX y se puede utilizar para determinar si una " +"ruta es un punto de montaje. (Contribuido por *Cooper Ry Lees* en :issue:" +"`30897`.)" #: ../Doc/whatsnew/3.7.rst:1198 msgid "pdb" -msgstr "" +msgstr "*pdb*" #: ../Doc/whatsnew/3.7.rst:1200 msgid "" @@ -1688,16 +2329,23 @@ msgid "" "If given, it is printed to the console just before debugging begins. " "(Contributed by Barry Warsaw in :issue:`31389`.)" msgstr "" +":func:`pdb.set_trace` ahora toma un argumento opcional *header* solo de " +"palabra clave. Si se proporciona, se imprime en la consola justo antes de " +"que comience la depuración. (Contribuido por *Barry Warsaw* en :issue:" +"`31389`.)" #: ../Doc/whatsnew/3.7.rst:1204 msgid "" ":mod:`pdb` command line now accepts ``-m module_name`` as an alternative to " "script file. (Contributed by Mario Corchero in :issue:`32206`.)" msgstr "" +":mod:`pdb` la línea de comando ahora acepta ``-m module_name`` como una " +"alternativa al archivo de script. (Contribuido por *Mario Corchero* en :" +"issue:`32206`.)" #: ../Doc/whatsnew/3.7.rst:1209 msgid "py_compile" -msgstr "" +msgstr "*py_compile*" #: ../Doc/whatsnew/3.7.rst:1211 msgid "" @@ -1708,10 +2356,16 @@ msgid "" "org/>`_ of ``.pyc`` files when they are created eagerly. (Contributed by " "Bernhard M. Wiedemann in :issue:`29708`.)" msgstr "" +":func:`py_compile.compile` — y por extensión, :mod:`compileall` — ahora " +"respeta la variable de entorno :envvar:`SOURCE_DATE_EPOCH` creando " +"incondicionalmente archivos ``.pyc`` para la validación basada en hash. Esto " +"permite garantizar `compilaciones reproducibles `_ de archivos ``.pyc`` cuando se crean con entusiasmo. (Contribuido " +"por *Bernhard M. Wiedemann* en :issue:`29708`.)" #: ../Doc/whatsnew/3.7.rst:1221 msgid "pydoc" -msgstr "" +msgstr "*pydoc*" #: ../Doc/whatsnew/3.7.rst:1223 msgid "" @@ -1719,20 +2373,25 @@ msgid "" "``-n`` command-line argument. (Contributed by Feanil Patel in :issue:" "`31128`.)" msgstr "" +"El servidor *pydoc* ahora puede vincularse a un nombre de host arbitrario " +"especificado por el nuevo argumento de línea de comandos ``-n``. " +"(Contribuido por *Feanil Patel* en :issue:`31128`.)" #: ../Doc/whatsnew/3.7.rst:1229 msgid "queue" -msgstr "" +msgstr "*queue*" #: ../Doc/whatsnew/3.7.rst:1231 msgid "" "The new :class:`~queue.SimpleQueue` class is an unbounded :abbr:`FIFO` " "queue. (Contributed by Antoine Pitrou in :issue:`14976`.)" msgstr "" +"La nueva clase :class:`~queue.SimpleQueue` es una cola ilimitada :abbr:" +"`FIFO`. (Contribuido por *Antoine Pitrou* en :issue:`14976`.)" #: ../Doc/whatsnew/3.7.rst:1236 msgid "re" -msgstr "" +msgstr "*re*" #: ../Doc/whatsnew/3.7.rst:1238 msgid "" @@ -1740,6 +2399,9 @@ msgid "" "be set within the scope of a group. (Contributed by Serhiy Storchaka in :" "issue:`31690`.)" msgstr "" +"Las banderas :const:`re.ASCII`, :const:`re.LOCALE` y :const:`re.UNICODE` se " +"pueden establecer dentro del alcance de un grupo. (Contribuido por *Serhiy " +"Storchaka* en :issue:`31690`.)" #: ../Doc/whatsnew/3.7.rst:1242 msgid "" @@ -1747,6 +2409,9 @@ msgid "" "$'`` or ``(?=-)`` that matches an empty string. (Contributed by Serhiy " "Storchaka in :issue:`25054`.)" msgstr "" +":func:`re.split` ahora admite la división en un patrón como ``r’\\b’``, ``’^" +"$’`` or ``(?=-)`` que coincide con una cadena vacía. (Contribuido por " +"*Serhiy Storchaka* en :issue:`25054`.)" #: ../Doc/whatsnew/3.7.rst:1246 msgid "" @@ -1755,6 +2420,10 @@ msgid "" "the compiled regular expression is used. (Contributed by Serhiy Storchaka " "in :issue:`30215`.)" msgstr "" +"Las expresiones regulares compiladas con el indicador :const:`re.LOCALE` ya " +"no dependen de la configuración regional en el momento de la compilación. La " +"configuración regional se aplica solo cuando se utiliza la expresión regular " +"compilada. (Contribuido por *Serhiy Storchaka* en :issue:`30215`.)" #: ../Doc/whatsnew/3.7.rst:1251 msgid "" @@ -1763,6 +2432,10 @@ msgid "" "as nested sets and set operations. (Contributed by Serhiy Storchaka in :" "issue:`30349`.)" msgstr "" +":exc:`FutureWarning` ahora se emite si una expresión regular contiene " +"construcciones de conjuntos de caracteres que cambiarán semánticamente en el " +"futuro, como conjuntos anidados y operaciones de conjuntos. (Contribuido por " +"*Serhiy Storchaka* en :issue:`30349`.)" #: ../Doc/whatsnew/3.7.rst:1256 msgid "" @@ -1770,10 +2443,13 @@ msgid "" "`copy.copy` and :func:`copy.deepcopy`. (Contributed by Serhiy Storchaka in :" "issue:`10076`.)" msgstr "" +"Las expresiones regulares compiladas y los objetos coincidentes ahora se " +"pueden copiar usando :func:`copy.copy` y :func:`copy.deepcopy`. (Contribuido " +"por *Serhiy Storchaka* en :issue:`10076`.)" #: ../Doc/whatsnew/3.7.rst:1262 msgid "signal" -msgstr "" +msgstr "*signal*" #: ../Doc/whatsnew/3.7.rst:1264 msgid "" @@ -1782,10 +2458,14 @@ msgid "" "stderr when the wakeup buffer overflows. (Contributed by Nathaniel J. Smith " "in :issue:`30050`.)" msgstr "" +"El nuevo argumento * warn_on_full_buffer * para la función :func:`signal." +"set_wakeup_fd` permite especificar si Python imprime una advertencia en " +"*stderr* cuando el búfer de activación se desborda. (Contribuido por " +"*Nathaniel J. Smith* en :issue:`30050`.)" #: ../Doc/whatsnew/3.7.rst:1271 ../Doc/whatsnew/3.7.rst:2044 msgid "socket" -msgstr "" +msgstr "*socket*" #: ../Doc/whatsnew/3.7.rst:1273 msgid "" @@ -1793,6 +2473,9 @@ msgid "" "returns ``True`` if the socket is in blocking mode and ``False`` otherwise. " "(Contributed by Yury Selivanov in :issue:`32373`.)" msgstr "" +"El nuevo método :func:`socket.getblocking() ` " +"retorna ``True`` si el socket esta en modo bloqueo y ``False`` en caso " +"contrario. (Contribuido por *Yury Selivanov* en :issue:`32373`.)" #: ../Doc/whatsnew/3.7.rst:1277 msgid "" @@ -1801,6 +2484,10 @@ msgid "" "better compatibility across platforms. (Contributed by Christian Heimes in :" "issue:`32454`.)" msgstr "" +"La nueva función :func:`socket.close` cierra el descriptor de archivo de " +"socket pasado. Esta función debe usarse en lugar de :func:`os.close` para " +"una mejor compatibilidad entre plataformas. (Contribuido por *Christian " +"Heimes* en :issue:`32454`.)" #: ../Doc/whatsnew/3.7.rst:1282 msgid "" @@ -1809,6 +2496,10 @@ msgid "" "`socket.TCP_NOTSENT_LOWAT` (Linux 3.12) constants. (Contributed by Omar " "Sandoval in :issue:`26273` and Nathaniel J. Smith in :issue:`29728`.)" msgstr "" +"El módulo :mod:`socket` ahora expone las constantes :data:`socket." +"TCP_CONGESTION` (Linux 2.6.13), :data:`socket.TCP_USER_TIMEOUT` (Linux " +"2.6.37), y :data:`socket.TCP_NOTSENT_LOWAT` (Linux 3.12). (Contribuido por " +"*Omar Sandoval* en :issue:`26273` y *Nathaniel J. Smith* en :issue:`29728`.)" #: ../Doc/whatsnew/3.7.rst:1288 msgid "" @@ -1816,16 +2507,22 @@ msgid "" "communication between virtual machines and their hosts. (Contributed by " "Cathy Avery in :issue:`27584`.)" msgstr "" +"Se ha agregado soporte para :data:`socket.AF_VSOCK` *sockets* para permitir " +"la comunicación entre las máquinas virtuales y sus hosts. (Contribuido por " +"*Cathy Avery* en :issue:`27584`.)" #: ../Doc/whatsnew/3.7.rst:1292 msgid "" "Sockets now auto-detect family, type and protocol from file descriptor by " "default. (Contributed by Christian Heimes in :issue:`28134`.)" msgstr "" +"Los sockets ahora detectan automáticamente la familia, el tipo y el " +"protocolo del descriptor de archivo de forma predeterminada. (Contribuido " +"por *Christian Heimes* en :issue:`28134`.)" #: ../Doc/whatsnew/3.7.rst:1298 msgid "socketserver" -msgstr "" +msgstr "*socketserver*" #: ../Doc/whatsnew/3.7.rst:1300 msgid "" @@ -1833,6 +2530,10 @@ msgid "" "daemon threads complete. :meth:`socketserver.ForkingMixIn.server_close` now " "waits until all child processes complete." msgstr "" +":meth:`socketserver.ThreadingMixIn.server_close` ahora espera hasta que se " +"completen todos los subprocesos que no son demonios. :meth:`socketserver." +"ForkingMixIn.server_close` ahora espera hasta que se completen todos los " +"procesos secundarios." #: ../Doc/whatsnew/3.7.rst:1304 msgid "" @@ -1841,10 +2542,14 @@ msgid "" "ThreadingMixIn` classes. Set the class attribute to ``False`` to get the " "pre-3.7 behaviour." msgstr "" +"Agregue un nuevo atributo de clase :attr:`socketserver.ForkingMixIn." +"block_on_close` a las clases :class:`socketserver.ForkingMixIn` y :class:" +"`socketserver.ThreadingMixIn`. Establece el atributo de clase en ``False`` " +"para obtener el comportamiento anterior a 3.7." #: ../Doc/whatsnew/3.7.rst:1310 msgid "sqlite3" -msgstr "" +msgstr "*sqlite3*" #: ../Doc/whatsnew/3.7.rst:1312 msgid "" @@ -1852,6 +2557,9 @@ msgid "" "backup` method when the underlying SQLite library is at version 3.6.11 or " "higher. (Contributed by Lele Gaifax in :issue:`27645`.)" msgstr "" +":class:`sqlite3.Connection` ahora expone el método :meth:`~sqlite3." +"Connection.backup` cuando la biblioteca SQLite subyacente está en la versión " +"3.6.11 o superior. (Contribuido por *Lele Gaifax* en :issue:`27645`.)" #: ../Doc/whatsnew/3.7.rst:1316 msgid "" @@ -1859,10 +2567,13 @@ msgid "" "`path-like object`, instead of just a string. (Contributed by Anders " "Lorentsen in :issue:`31843`.)" msgstr "" +"El argumento * base de datos * de :func:`sqlite3.connect` ahora acepta " +"cualquier :term:`path-like object`, en lugar de solo una cadena. " +"(Contribuido por *Anders Lorentsen* en :issue:`31843`.)" #: ../Doc/whatsnew/3.7.rst:1322 ../Doc/whatsnew/3.7.rst:2053 msgid "ssl" -msgstr "" +msgstr "*ssl*" #: ../Doc/whatsnew/3.7.rst:1324 msgid "" @@ -1876,20 +2587,37 @@ msgid "" "hostname_checks_common_name>`. (Contributed by Christian Heimes in :issue:" "`31399`.)" msgstr "" +"El módulo :mod:`ssl` ahora usa la API integrada de OpenSSL en lugar de :func:" +"`~ssl.match_hostname` para comprobar un nombre de host o una dirección IP. " +"Los valores se validan durante el protocolo de enlace TLS. Cualquier error " +"de validación de certificado, incluida la falla en la verificación del " +"nombre de host, ahora aumenta :exc:`~ssl.SSLCertVerificationError` y aborta " +"el protocolo de enlace con un mensaje de alerta TLS adecuado. La nueva " +"excepción contiene información adicional. La validación del nombre de host " +"se puede personalizar con :attr:`SSLContext.hostname_checks_common_name `. (Contribuido por *Christian " +"Heimes* en :issue:`31399`.)" #: ../Doc/whatsnew/3.7.rst:1335 msgid "" -"The improved host name check requires a *libssl* implementation compatible " +"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 " "longer supported (see :ref:`37-platform-support-removals` for more details). " "The ssl module is mostly compatible with LibreSSL 2.7.2 and newer." 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." #: ../Doc/whatsnew/3.7.rst:1340 msgid "" "The ``ssl`` module no longer sends IP addresses in SNI TLS extension. " "(Contributed by Christian Heimes in :issue:`32185`.)" msgstr "" +"El módulo ``ssl`` ya no envía direcciones IP en la extensión SNI TLS. " +"(Contribuido por *Christian Heimes* en :issue:`32185`.)" #: ../Doc/whatsnew/3.7.rst:1343 msgid "" @@ -1897,6 +2625,9 @@ msgid "" "example.org``. (Contributed by Mandeep Singh in :issue:`23033` and Christian " "Heimes in :issue:`31399`.)" msgstr "" +":func:`~ssl.match_hostname` ya no admite comodines parciales como ``www*." +"example.org``. (Contribuido por *Mandeep Singh* en :issue:`23033` y " +"*Christian Heimes* en :issue:`31399`.)" #: ../Doc/whatsnew/3.7.rst:1348 msgid "" @@ -1906,6 +2637,12 @@ msgid "" "cipher suite selection can be configured at compile time. (Contributed by " "Christian Heimes in :issue:`31429`.)" msgstr "" +"La selección del conjunto de cifrado predeterminado del módulo ``ssl`` ahora " +"usa un enfoque de lista negra en lugar de una lista blanca codificada. " +"Python ya no vuelve a habilitar los cifrados que han sido bloqueados por las " +"actualizaciones de seguridad de OpenSSL. La selección del conjunto de " +"cifrado predeterminado se puede configurar en tiempo de compilación. " +"(Contribuido por *Christian Heimes* en :issue:`31429`.)" #: ../Doc/whatsnew/3.7.rst:1354 msgid "" @@ -1916,6 +2653,13 @@ msgid "" "the U-label form (``\"pythön.org\"``). (Contributed by Nathaniel J. Smith " "and Christian Heimes in :issue:`28414`.)" msgstr "" +"Ahora se admite la validación de certificados de servidor que contienen " +"nombres de dominio internacionalizados (IDN). Como parte de este cambio, el " +"atributo :attr:`SSLSocket.server_hostname ` " +"ahora almacena el nombre de host esperado en forma de etiqueta A (``”xn--" +"pythn-mua.org”``), en lugar de la forma de etiqueta U (``”pythön.org”``). " +"(Contribuido por *Nathaniel J. Smith* y *Christian Heimes* en :issue:" +"`28414`.)" #: ../Doc/whatsnew/3.7.rst:1361 msgid "" @@ -1926,6 +2670,13 @@ msgid "" "earlier, see :ref:`ssl-tlsv1_3`. (Contributed by Christian Heimes in :issue:" "`32947`, :issue:`20995`, :issue:`29136`, :issue:`30622` and :issue:`33618`)" msgstr "" +"El módulo ``ssl`` tiene soporte preliminar y experimental para TLS 1.3 y " +"OpenSSL 1.1.1. En el momento del lanzamiento de Python 3.7.0, OpenSSL 1.1.1 " +"todavía está en desarrollo y TLS 1.3 aún no se ha finalizado. El protocolo y " +"el protocolo de enlace TLS 1.3 se comportan de forma ligeramente diferente a " +"TLS 1.2 y versiones anteriores, consulte :ref:`ssl-tlsv1_3`. (Contribuido " +"por *Christian Heimes* en :issue:`32947`, :issue:`20995`, :issue:`29136`, :" +"issue:`30622` y :issue:`33618`)" #: ../Doc/whatsnew/3.7.rst:1369 msgid "" @@ -1935,6 +2686,11 @@ msgid "" "meth:`~ssl.SSLContext.wrap_socket` and :meth:`~ssl.SSLContext.wrap_bio`. " "(Contributed by Christian Heimes in :issue:`32951`)" msgstr "" +":class:`~ssl.SSLSocket` y :class:`~ssl.SSLObject` ya no tiene un constructor " +"público. La creación de instancias directa nunca fue una característica " +"documentada y compatible. Las instancias deben crearse con métodos :class:" +"`~ssl.SSLContext` :meth:`~ssl.SSLContext.wrap_socket` y :meth:`~ssl." +"SSLContext.wrap_bio`. (Contribuido por *Christian Heimes* en :issue:`32951`)" #: ../Doc/whatsnew/3.7.rst:1375 msgid "" @@ -1945,10 +2701,16 @@ msgid "" "such as :data:`~ssl.HAS_TLSv1_1`. (Contributed by Christian Heimes in :issue:" "`32609`.)" msgstr "" +"Las API de OpenSSL 1.1 para configurar la versión mínima y máxima del " +"protocolo TLS están disponibles como :attr:`SSLContext.minimum_version ` y :attr:`SSLContext.maximum_version `. Los protocolos admitidos se indican mediante " +"varios indicadores nuevos, como :data:`~ssl.HAS_TLSv1_1`. (Contribuido por " +"*Christian Heimes* en :issue:`32609`.)" #: ../Doc/whatsnew/3.7.rst:1384 msgid "string" -msgstr "" +msgstr "*string*" #: ../Doc/whatsnew/3.7.rst:1386 msgid "" @@ -1956,10 +2718,14 @@ msgid "" "expression pattern for braced placeholders and non-braced placeholders " "separately. (Contributed by Barry Warsaw in :issue:`1198569`.)" msgstr "" +":class:`string.Template` ahora le permite modificar opcionalmente el patrón " +"de expresión regular para marcadores de posición reforzados y marcadores de " +"posición no reforzados por separado. (Contribuido por *Barry Warsaw* en :" +"issue:`1198569`.)" #: ../Doc/whatsnew/3.7.rst:1392 msgid "subprocess" -msgstr "" +msgstr "*subprocess*" #: ../Doc/whatsnew/3.7.rst:1394 msgid "" @@ -1968,6 +2734,10 @@ msgid "" "to passing :data:`subprocess.PIPE` as *stdout* and *stderr* arguments. " "(Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" +"La función :func:`subprocess.run` acepta el nuevo argumento de palabra clave " +"*capture_output*. Cuando es verdadero, se capturarán *stdout* y *stderr*. " +"Esto es equivalente a pasar :data:`subprocess.PIPE` como argumentos *stdout* " +"y *stderr*. (Contribuido por *Bo Bayles* en :issue:`32102`.)" #: ../Doc/whatsnew/3.7.rst:1400 msgid "" @@ -1975,6 +2745,9 @@ msgid "" "constructor now accept the *text* keyword argument as an alias to " "*universal_newlines*. (Contributed by Andrew Clegg in :issue:`31756`.)" msgstr "" +"La función ``subprocess.run`` y el constructor :class:`subprocess.Popen` " +"ahora aceptan la palabra clave del argumento *text* como un alias para " +"*universal_newlines*. (Contribuido por *Andrew Clegg* en :issue:`31756`.)" #: ../Doc/whatsnew/3.7.rst:1405 msgid "" @@ -1984,6 +2757,12 @@ msgid "" "`subprocess.Popen`. This means that *close_fds* now defaults to ``True`` on " "all supported platforms. (Contributed by Segev Finer in :issue:`19764`.)" msgstr "" +"En Windows, el valor predeterminado de *close_fds* se cambió de ``False`` a " +"``True`` al redirigir los identificadores estándar. Ahora es posible " +"establecer *close_fds* en verdadero al redirigir los identificadores " +"estándar. Ver :class:`subprocess.Popen`. Esto significa que *close_fds* " +"ahora tiene el valor predeterminado de ``True`` en todas las plataformas " +"compatibles. (Contribuido por *Segev Finer* en :issue:`19764`.)" #: ../Doc/whatsnew/3.7.rst:1412 msgid "" @@ -1994,22 +2773,34 @@ msgid "" "``KeyboardInterrupt`` exception. (Contributed by Gregory P. Smith in :issue:" "`25942`.)" msgstr "" +"El módulo de subproceso ahora es más elegante al manejar :exc:" +"`KeyboardInterrupt` durante: :func:`subprocess.call`, :func:`subprocess." +"run`, o en un administrador de contexto :class:`~subprocess.Popen`. Ahora " +"espera un corto período de tiempo para que el niño salga, antes de continuar " +"con el manejo de la excepción ``KeyboardInterrupt``. (Contribuido por " +"*Gregory P. Smith* en :issue:`25942`.)" #: ../Doc/whatsnew/3.7.rst:1422 ../Doc/whatsnew/3.7.rst:2069 msgid "sys" -msgstr "" +msgstr "*sys*" #: ../Doc/whatsnew/3.7.rst:1424 msgid "" "The new :func:`sys.breakpointhook` hook function is called by the built-in :" "func:`breakpoint`. (Contributed by Barry Warsaw in :issue:`31353`.)" msgstr "" +"La nueva función de enganche :func:`sys.breakpointhook` es llamada por la " +"incorporada :func:`breakpoint`. (Contribuido por *Barry Warsaw* en :issue:" +"`31353`.)" #: ../Doc/whatsnew/3.7.rst:1428 msgid "" "On Android, the new :func:`sys.getandroidapilevel` returns the build-time " "Android API version. (Contributed by Victor Stinner in :issue:`28740`.)" msgstr "" +"En Android, la nueva :func:`sys.getandroidapilevel` devuelve la versión de " +"la API de Android en tiempo de compilación. (Contribuido por *Victor " +"Stinner* en :issue:`28740`.)" #: ../Doc/whatsnew/3.7.rst:1432 msgid "" @@ -2020,20 +2811,28 @@ msgid "" "set_coroutine_wrapper`. (Contributed by Nathaniel J. Smith in :issue:" "`32591`.)" msgstr "" +"La nueva función :func:`sys.get_coroutine_origin_tracking_depth` devuelve la " +"profundidad de seguimiento del origen de la corrutina actual, según lo " +"establecido por el nuevo :func:`sys.set_coroutine_origin_tracking_depth`. :" +"mod:`asyncio` se ha convertido para usar esta nueva API en lugar de la " +"obsoleta :func:`sys.set_coroutine_wrapper`. (Contribuido por *Nathaniel J. " +"Smith* en :issue:`32591`.)" #: ../Doc/whatsnew/3.7.rst:1441 msgid "time" -msgstr "" +msgstr "*time*" #: ../Doc/whatsnew/3.7.rst:1443 msgid "" ":pep:`564` adds six new functions with nanosecond resolution to the :mod:" "`time` module:" msgstr "" +":pep:`564` añade seis nuevas funciones con resolución de nanosegundos al " +"modulo :mod:`time`:" #: ../Doc/whatsnew/3.7.rst:1453 msgid "New clock identifiers have been added:" -msgstr "" +msgstr "Se han agregado nuevos identificadores de reloj:" #: ../Doc/whatsnew/3.7.rst:1455 msgid "" @@ -2041,12 +2840,17 @@ msgid "" "CLOCK_MONOTONIC`, except it also includes any time that the system is " "suspended." msgstr "" +":data:`time.CLOCK_BOOTTIME` (Linux): Idéntico a :data:`time." +"CLOCK_MONOTONIC`, excepto que también incluye cualquier momento en que el " +"sistema esté suspendido." #: ../Doc/whatsnew/3.7.rst:1458 msgid "" ":data:`time.CLOCK_PROF` (FreeBSD, NetBSD and OpenBSD): High-resolution per-" "process CPU timer." msgstr "" +":data:`time.CLOCK_PROF` (FreeBSD, NetBSD y OpenBSD): Temporizador de CPU por " +"proceso de alta resolución." #: ../Doc/whatsnew/3.7.rst:1460 msgid "" @@ -2054,6 +2858,9 @@ msgid "" "the time the system has been running and not suspended, providing accurate " "uptime measurement." msgstr "" +":data:`time.CLOCK_UPTIME` (FreeBSD, OpenBSD): Hora cuyo valor absoluto es el " +"tiempo que el sistema ha estado funcionando y no suspendido, proporcionando " +"una medición precisa del tiempo de actividad." #: ../Doc/whatsnew/3.7.rst:1464 msgid "" @@ -2061,26 +2868,33 @@ msgid "" "can be used to get per-thread CPU time measurements. (Contributed by Antoine " "Pitrou in :issue:`32025`.)" msgstr "" +"La nuevas funciones :func:`time.thread_time` y :func:`time.thread_time_ns` " +"se puede utilizar para obtener medidas de tiempo de CPU por subproceso. " +"(Contribuido por *Antoine Pitrou* en :issue:`32025`.)" #: ../Doc/whatsnew/3.7.rst:1468 msgid "" "The new :func:`time.pthread_getcpuclockid` function returns the clock ID of " "the thread-specific CPU-time clock." msgstr "" +"La nueva función :func:`time.pthread_getcpuclockid` devuelve el ID de reloj " +"del reloj de tiempo de CPU específico del subproceso." #: ../Doc/whatsnew/3.7.rst:1473 msgid "tkinter" -msgstr "" +msgstr "*tkinter*" #: ../Doc/whatsnew/3.7.rst:1475 msgid "" "The new :class:`tkinter.ttk.Spinbox` class is now available. (Contributed by " "Alan Moore in :issue:`32585`.)" msgstr "" +"La nueva clase :class:`tkinter.ttk.Spinbox` esta disponible ahora. " +"(Contribuido por *Alan Moore* en :issue:`32585`.)" #: ../Doc/whatsnew/3.7.rst:1480 msgid "tracemalloc" -msgstr "" +msgstr "*tracemalloc*" #: ../Doc/whatsnew/3.7.rst:1482 msgid "" @@ -2091,10 +2905,17 @@ msgid "" "the new *most_recent_first* argument to ``Traceback.format()``. (Contributed " "by Jesse Bakker in :issue:`32121`.)" msgstr "" +":class:`tracemalloc.Traceback` se comporta más como rastreos regulares, " +"ordenando los fotogramas del más antiguo al más reciente. :meth:`Traceback." +"format() ` ahora acepta *límite* negativo, " +"truncando el resultado a los marcos más antiguos de ``abs(limit)``. Para " +"obtener el comportamiento anterior, use el nuevo argumento " +"*most_recent_first* para ``Traceback.format()``. (Contribuido por *Jesse " +"Bakker* en :issue:`32121`.)" #: ../Doc/whatsnew/3.7.rst:1492 msgid "types" -msgstr "" +msgstr "*types*" #: ../Doc/whatsnew/3.7.rst:1494 msgid "" @@ -2104,6 +2925,11 @@ msgid "" "Krebber and Guido van Rossum in :issue:`29377`, and Serhiy Storchaka in :" "issue:`32265`.)" msgstr "" +"Las nuevas clases :class:`~types.WrapperDescriptorType`, :class:`~types." +"MethodWrapperType`, :class:`~types.MethodDescriptorType`, y :class:`~types." +"ClassMethodDescriptorType` ahora están disponibles. (Contribuido por *Manuel " +"Krebber* y *Guido van Rossum* en :issue:`29377`, y *Serhiy Storchaka* en :" +"issue:`32265`.)" #: ../Doc/whatsnew/3.7.rst:1500 msgid "" @@ -2111,10 +2937,13 @@ msgid "" "dynamically as specified by :pep:`560`. (Contributed by Ivan Levkivskyi in :" "issue:`32717`.)" msgstr "" +"La nueva función :func:`types.resolve_bases` resuelve las entradas MRO " +"dinámicamente según lo especificado por :pep:`560`. (Contribuido por *Ivan " +"Levkivskyi* en :issue:`32717`.)" #: ../Doc/whatsnew/3.7.rst:1506 msgid "unicodedata" -msgstr "" +msgstr "*unicodedata*" #: ../Doc/whatsnew/3.7.rst:1508 msgid "" @@ -2122,10 +2951,13 @@ msgid "" "11 `_. (Contributed by " "Benjamin Peterson.)" msgstr "" +"La base de datos interna :mod:`unicodedata` ha sido actualizada para usar " +"`Unicode 11 `_. (Contribuido " +"por *Benjamin Peterson*.)" #: ../Doc/whatsnew/3.7.rst:1514 msgid "unittest" -msgstr "" +msgstr "*unittest*" #: ../Doc/whatsnew/3.7.rst:1516 msgid "" @@ -2135,10 +2967,15 @@ msgid "" "test_foo``, but not ``bar_tests.FooTest.test_something``. (Contributed by " "Jonas Haag in :issue:`32071`.)" msgstr "" +"La nueva opción de la linea de comandos ``-k`` permite filtrar pruebas por " +"una subcadena de nombre o un patrón similar a un shell de Unix. Por ejemplo, " +"`python -m unittest -k foo`` ejecuta ``foo_tests.SomeTest.test_something``, " +"``bar_tests.SomeTest.test_foo``, pero no ``bar_tests.FooTest." +"test_something``. (Contribuido por *Jonas Haag* en :issue:`32071`.)" #: ../Doc/whatsnew/3.7.rst:1525 msgid "unittest.mock" -msgstr "" +msgstr "*unittest.mock*" #: ../Doc/whatsnew/3.7.rst:1527 msgid "" @@ -2146,6 +2983,9 @@ msgid "" "when they are :mod:`copied ` or :mod:`pickled `. (Contributed " "by Serhiy Storchaka in :issue:`20804`.)" msgstr "" +"Los atributos :const:`~unittest.mock.sentinel` ahora preservan su identidad " +"cuando están :mod:`copied ` o :mod:`pickled `. (Contribuido " +"por *Serhiy Storchaka* en :issue:`20804`.)" #: ../Doc/whatsnew/3.7.rst:1531 msgid "" @@ -2154,10 +2994,15 @@ msgid "" "attribute mocks. The seal is applied recursively to all attributes that are " "themselves mocks. (Contributed by Mario Corchero in :issue:`30541`.)" msgstr "" +"La nueva función :func:`~unittest.mock.seal` permite sellar instancias :" +"class:`~unittest.mock.Mock`, que no permitirá la creación de simulacros de " +"atributos. El sello se aplica de forma recursiva a todos los atributos que " +"en sí mismos son burlas. (Contribuido por *Mario Corchero* en :issue:" +"`30541`.)" #: ../Doc/whatsnew/3.7.rst:1539 msgid "urllib.parse" -msgstr "" +msgstr "*urllib.parse*" #: ../Doc/whatsnew/3.7.rst:1541 msgid "" @@ -2165,10 +3010,14 @@ msgid "" "adding ``~`` to the set of characters that are never quoted by default. " "(Contributed by Christian Theune and Ratnadeep Debnath in :issue:`16285`.)" msgstr "" +":func:`urllib.parse.quote` ha sido actualizada desde :rfc:`2396` a :rfc:" +"`3986`, agregado ``~`` para el conjunto de caracteres que nunca se cotizan " +"por defecto. (Contribuido por *Christian Theune* y *Ratnadeep Debnath* en :" +"issue:`16285`.)" #: ../Doc/whatsnew/3.7.rst:1547 msgid "uu" -msgstr "" +msgstr "*uu*" #: ../Doc/whatsnew/3.7.rst:1549 msgid "" @@ -2176,10 +3025,14 @@ msgid "" "argument. When it's true, zeros are represented by ``'`'`` instead of " "spaces. (Contributed by Xiang Zhang in :issue:`30103`.)" msgstr "" +"La nueva función :func:`uu.encode` ahora acepta un argumento opcional de " +"palabra clave *backtick*. Mientras esto se verdadero, los ceros son " +"representados por ``’`’`` en lugar de espacios. (Contribuido por *Xiang " +"Zhang* en :issue:`30103`.)" #: ../Doc/whatsnew/3.7.rst:1555 msgid "uuid" -msgstr "" +msgstr "*uuid*" #: ../Doc/whatsnew/3.7.rst:1557 msgid "" @@ -2188,6 +3041,10 @@ msgid "" "with a multiprocessing-safe method. (Contributed by Barry Warsaw in :issue:" "`22807`.)" msgstr "" +"El nuevo atributo :attr:`UUID.is_safe ` transmite " +"información de la plataforma sobre si los UUID generados se generan con un " +"método seguro para multiprocesamiento. (Contribuido por *Barry Warsaw* en :" +"issue:`22807`.)" #: ../Doc/whatsnew/3.7.rst:1562 msgid "" @@ -2197,15 +3054,23 @@ msgid "" "administered MAC addresses are available, the first such one found is " "returned. (Contributed by Barry Warsaw in :issue:`32107`.)" msgstr "" +":func:`uuid.getnode` ahora prefiere las direcciones MAC administradas " +"universalmente a las direcciones MAC administradas localmente. Esto ofrece " +"una mejor garantía de la unicidad global de los UUID devueltos desde :func:" +"`uuid.uuid1`. Si solo hay disponibles direcciones MAC administradas " +"localmente, se devuelve la primera que se encuentre. (Contribuido por *Barry " +"Warsaw* en :issue:`32107`.)" #: ../Doc/whatsnew/3.7.rst:1571 msgid "warnings" -msgstr "" +msgstr "*warnings*" #: ../Doc/whatsnew/3.7.rst:1573 msgid "" "The initialization of the default warnings filters has changed as follows:" msgstr "" +"La inicialización de los filtros de advertencias predeterminados ha cambiado " +"de la siguiente manera:" #: ../Doc/whatsnew/3.7.rst:1575 msgid "" @@ -2213,47 +3078,64 @@ msgid "" "and the new CPython-specific :option:`-X` ``dev`` option) are always passed " "to the warnings machinery via the :data:`sys.warnoptions` attribute." msgstr "" +"advertencias habilitadas a través de opciones de línea de comando (incluidos " +"los de :option:`-b` y la nueva opción específica de CPython :option:`-X` " +"``dev``) siempre se pasan a la maquinaria de advertencias a través del " +"atributo :data:`sys.warnoptions`." #: ../Doc/whatsnew/3.7.rst:1579 msgid "" "warnings filters enabled via the command line or the environment now have " "the following order of precedence:" msgstr "" +"los filtros de advertencias habilitados a través de la línea de comandos o " +"el entorno ahora tienen el siguiente orden de prioridad:" #: ../Doc/whatsnew/3.7.rst:1582 msgid "the ``BytesWarning`` filter for :option:`-b` (or ``-bb``)" -msgstr "" +msgstr "el filtro ``BytesWarning`` para :option:`-b` (o ``-bb``)" #: ../Doc/whatsnew/3.7.rst:1583 msgid "any filters specified with the :option:`-W` option" -msgstr "" +msgstr "cualquier filtro especificado con la opción :option:`-W`" #: ../Doc/whatsnew/3.7.rst:1584 msgid "" "any filters specified with the :envvar:`PYTHONWARNINGS` environment variable" msgstr "" +"cualquier filtro especificado con la variable de entorno :envvar:" +"`PYTHONWARNINGS`" #: ../Doc/whatsnew/3.7.rst:1586 msgid "" "any other CPython specific filters (e.g. the ``default`` filter added for " "the new ``-X dev`` mode)" msgstr "" +"cualquier otro filtro específico de CPython (por ejemplo, el filtro " +"``default`` agregado para el nuevo modo ``-X dev``)" #: ../Doc/whatsnew/3.7.rst:1588 msgid "any implicit filters defined directly by the warnings machinery" msgstr "" +"cualquier filtro implícito definido directamente por la maquinaria de " +"advertencias" #: ../Doc/whatsnew/3.7.rst:1590 msgid "" "in CPython debug builds, all warnings are now displayed by default (the " "implicit filter list is empty)" msgstr "" +"en las compilaciones de depuración de CPython, ahora todas las advertencias " +"se muestran de forma predeterminada (la lista de filtros implícitos está " +"vacía)" #: ../Doc/whatsnew/3.7.rst:1593 msgid "" "(Contributed by Nick Coghlan and Victor Stinner in :issue:`20361`, :issue:" "`32043`, and :issue:`32230`.)" msgstr "" +"(Contribuido por *Nick Coghlan* y *Victor Stinner* en :issue:`20361`, :issue:" +"`32043`, and :issue:`32230`.)" #: ../Doc/whatsnew/3.7.rst:1596 msgid "" @@ -2261,10 +3143,14 @@ msgid "" "and at the interactive prompt. See :ref:`whatsnew37-pep565` for details. " "(Contributed by Nick Coghlan in :issue:`31975`.)" msgstr "" +"Las advertencias de obsolescencia se muestran una vez más de forma " +"predeterminada en scripts de un solo archivo y en el indicador interactivo. " +"Consultar :ref:`whatsnew37-pep565` para mas detalles. (Contribuido por *Nick " +"Coghlan* en :issue:`31975`.)" #: ../Doc/whatsnew/3.7.rst:1602 msgid "xml.etree" -msgstr "" +msgstr "*xml.etree*" #: ../Doc/whatsnew/3.7.rst:1604 msgid "" @@ -2273,10 +3159,15 @@ msgid "" "not only text in children. Predicates also allow adding spaces for better " "readability. (Contributed by Stefan Behnel in :issue:`31648`.)" msgstr "" +":ref:`ElementPath ` predicados en los métodos :meth:" +"`find` ahora pueden comparar el texto del nodo actual con ```[. = “text”]``, " +"no solo texto en niños. Los predicados también permiten agregar espacios " +"para una mejor legibilidad. (Contribuido por *Stefan Behnel* en :issue:" +"`31648`.)" #: ../Doc/whatsnew/3.7.rst:1611 msgid "xmlrpc.server" -msgstr "" +msgstr "*xmlrpc.server*" #: ../Doc/whatsnew/3.7.rst:1613 msgid "" @@ -2284,10 +3175,13 @@ msgid "" "SimpleXMLRPCDispatcher>` can now be used as a decorator. (Contributed by " "Xiang Zhang in :issue:`7769`.)" msgstr "" +":meth:`SimpleXMLRPCDispatcher.register_function ` ahora puede ser usado como un decorador. " +"(Contribuido por *Xiang Zhang* en :issue:`7769`.)" #: ../Doc/whatsnew/3.7.rst:1619 msgid "zipapp" -msgstr "" +msgstr "*zipapp*" #: ../Doc/whatsnew/3.7.rst:1621 msgid "" @@ -2295,6 +3189,9 @@ msgid "" "argument to allow the user to select which files should be included in the " "archive. (Contributed by Irmen de Jong in :issue:`31072`.)" msgstr "" +"Función :func:`~zipapp.create_archive` ahora acepta un argumento opcional " +"*filter* para permitir al usuario seleccionar que archivos deben incluirse " +"en el" #: ../Doc/whatsnew/3.7.rst:1625 msgid "" @@ -2303,26 +3200,36 @@ msgid "" "compress`` has also been added to support compression. (Contributed by " "Zhiming Wang in :issue:`31638`.)" msgstr "" +"Función :func:`~zipapp.create_archive` ahora acepta un argumento opcional * " +"comprimido * para generar un archivo comprimido. También se ha agregado una " +"opción de línea de comando ``—compress`` para admitir la compresión. " +"(Contribuido por *Zhiming Wang* en :issue:`31638`.)" #: ../Doc/whatsnew/3.7.rst:1632 msgid "zipfile" -msgstr "" +msgstr "*zipfile*" #: ../Doc/whatsnew/3.7.rst:1634 msgid "" ":class:`~zipfile.ZipFile` now accepts the new *compresslevel* parameter to " "control the compression level. (Contributed by Bo Bayles in :issue:`21417`.)" msgstr "" +":class:`~zipfile.ZipFile` ahora acepta el nuevo parámetro *compresslevel* " +"para controlar el nivel de compresión. (Contribuido por *Bo Bayles* en :" +"issue:`21417`.)" #: ../Doc/whatsnew/3.7.rst:1638 msgid "" "Subdirectories in archives created by ``ZipFile`` are now stored in " "alphabetical order. (Contributed by Bernhard M. Wiedemann in :issue:`30693`.)" msgstr "" +"Subdirectorios en archivos creados por ``ZipFile`` ahora son guardados en " +"orden alfabético. (Contribuido por *Bernhard M. Wiedemann* en :issue:" +"`30693`.)" #: ../Doc/whatsnew/3.7.rst:1644 msgid "C API Changes" -msgstr "" +msgstr "Cambios en la API C" #: ../Doc/whatsnew/3.7.rst:1646 msgid "" @@ -2331,12 +3238,18 @@ msgid "" "for a complete reference. (Contributed by Masayuki Yamamoto in :issue:" "`25658`.)" msgstr "" +"Se implementó una nueva API para el almacenamiento local de subprocesos. " +"Ver :ref:`whatsnew37-pep539` para una descripción general y :ref:`thread-" +"specific-storage-api` para una referencia completa. (Contribuido por " +"*Masayuki Yamamoto* en :issue:`25658`.)" #: ../Doc/whatsnew/3.7.rst:1651 msgid "" "The new :ref:`context variables ` functionality exposes a " "number of :ref:`new C APIs `." msgstr "" +"La nueva funcionalidad :ref:`variables de contexto ` " +"expone un numero de :ref:`nuevas APIs C `." #: ../Doc/whatsnew/3.7.rst:1654 msgid "" @@ -2344,18 +3257,27 @@ msgid "" "imported module with the given name. (Contributed by Eric Snow in :issue:" "`28411`.)" msgstr "" +"La nueva función :c:func:`PyImport_GetModule` devuelve el módulo previamente " +"importado con el nombre dado. (Contribuido por *Eric Snow* en :issue:" +"`28411`.)" #: ../Doc/whatsnew/3.7.rst:1658 msgid "" "The new :c:macro:`Py_RETURN_RICHCOMPARE` macro eases writing rich comparison " "functions. (Contributed by Petr Victorin in :issue:`23699`.)" msgstr "" +"El nuevo macro :c:macro:`Py_RETURN_RICHCOMPARE` facilita la escritura de " +"funciones de comparación enriquecidas. (Contribuido por *Petr Victorin* en :" +"issue:`23699`.)" #: ../Doc/whatsnew/3.7.rst:1662 msgid "" "The new :c:macro:`Py_UNREACHABLE` macro can be used to mark unreachable code " "paths. (Contributed by Barry Warsaw in :issue:`31338`.)" msgstr "" +"El nuevo macro :c:macro:`Py_UNREACHABLE` se puede utilizar para marcar " +"rutas de código inalcanzables. (Contribuido por *Barry Warsaw* en :issue:" +"`31338`.)" #: ../Doc/whatsnew/3.7.rst:1666 msgid "" @@ -2363,6 +3285,9 @@ msgid "" "`PyTraceMalloc_Track` and :c:func:`PyTraceMalloc_Untrack` functions. " "(Contributed by Victor Stinner in :issue:`30054`.)" msgstr "" +"El :mod:`tracemalloc` ahora expone una API C a través de las nuevas " +"funciones :c:func:`PyTraceMalloc_Track` y :c:func:`PyTraceMalloc_Untrack`. " +"(Contribuido por *Victor Stinner* en :issue:`30054`.)" #: ../Doc/whatsnew/3.7.rst:1671 msgid "" @@ -2370,6 +3295,10 @@ msgid "" "`import__find__load__done` static markers can be used to trace module " "imports. (Contributed by Christian Heimes in :issue:`31574`.)" msgstr "" +"Los nuevos marcadores estáticos :c:func:`import__find__load__start` y :c:" +"func:`import__find__load__done` se pueden usar para rastrear las " +"importaciones de módulos. (Contribuido por *Christian Heimes* en :issue:" +"`31574`.)" #: ../Doc/whatsnew/3.7.rst:1676 msgid "" @@ -2379,6 +3308,11 @@ msgid "" "``const char *`` rather of ``char *``. (Contributed by Serhiy Storchaka in :" "issue:`28761`.)" msgstr "" +"Los campos :c:member:`name` and :c:member:`doc` de estructuras :c:type:" +"`PyMemberDef`, :c:type:`PyGetSetDef`, :c:type:`PyStructSequence_Field`, :c:" +"type:`PyStructSequence_Desc`, y :c:type:`wrapperbase` ahora son de tipo " +"``const char *`` en lugar de ``char *``. (Contribuido por *Serhiy Storchaka* " +"en :issue:`28761`.)" #: ../Doc/whatsnew/3.7.rst:1682 msgid "" @@ -2386,6 +3320,9 @@ msgid "" "`PyUnicode_AsUTF8` is now of type ``const char *`` rather of ``char *``. " "(Contributed by Serhiy Storchaka in :issue:`28769`.)" msgstr "" +"El resultado de :c:func:`PyUnicode_AsUTF8AndSize` y :c:func:" +"`PyUnicode_AsUTF8` es ahora de tipo ``const char *`` en lugar de ``char *``. " +"(Contribuido por *Serhiy Storchaka* en :issue:`28769`.)" #: ../Doc/whatsnew/3.7.rst:1686 msgid "" @@ -2393,12 +3330,18 @@ msgid "" "func:`PyMapping_Items` is now always a list, rather than a list or a tuple. " "(Contributed by Oren Milman in :issue:`28280`.)" msgstr "" +"El resultado de :c:func:`PyMapping_Keys`, :c:func:`PyMapping_Values` y :c:" +"func:`PyMapping_Items` ahora es siempre una lista, en lugar de una lista o " +"una tupla. (Contribuido por *Oren Milman* en :issue:`28280`.)" #: ../Doc/whatsnew/3.7.rst:1690 msgid "" "Added functions :c:func:`PySlice_Unpack` and :c:func:" "`PySlice_AdjustIndices`. (Contributed by Serhiy Storchaka in :issue:`27867`.)" msgstr "" +"Funciones agregadas :c:func:`PySlice_Unpack` y :c:func:" +"`PySlice_AdjustIndices`. (Contribuido por *Serhiy Storchaka* en :issue:" +"`27867`.)" #: ../Doc/whatsnew/3.7.rst:1693 msgid "" @@ -2406,6 +3349,9 @@ msgid "" "func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` and :c:func:" "`PyOS_AfterFork_Child`. (Contributed by Antoine Pitrou in :issue:`16500`.)" msgstr "" +":c:func:`PyOS_AfterFork` está en desuso en favor de las nuevas funciones :c:" +"func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` y :c:func:" +"`PyOS_AfterFork_Child`. (Contribuido por *Antoine Pitrou* en :issue:`16500`.)" #: ../Doc/whatsnew/3.7.rst:1698 msgid "" @@ -2414,6 +3360,10 @@ msgid "" "during finalization of the interpreter. Contributed by Xavier de Gaye in :" "issue:`22898` and :issue:`30697`." msgstr "" +"El único ``PyExc_RecursionErrorInst`` que formaba parte de la API pública se " +"ha eliminado ya que sus miembros nunca borrados pueden causar un error de " +"segmentación durante la finalización del intérprete. Contribuido por *Xavier " +"de Gaye* en :issue:`22898` y :issue:`30697`." #: ../Doc/whatsnew/3.7.rst:1703 msgid "" @@ -2422,6 +3372,10 @@ msgid "" "access to the UTC singleton with :c:data:`PyDateTime_TimeZone_UTC`. " "Contributed by Paul Ganssle in :issue:`10381`." msgstr "" +"Se agregó compatibilidad con C API para zonas horarias con constructores de " +"zonas horarias :c:func:`PyTimeZone_FromOffset` and :c:func:" +"`PyTimeZone_FromOffsetAndName`, y acceso único al UTC con :c:data:" +"`PyDateTime_TimeZone_UTC`. Contribuido por *Paul Ganssle* en :issue:`10381`." #: ../Doc/whatsnew/3.7.rst:1708 msgid "" @@ -2430,6 +3384,10 @@ msgid "" "`PyThreadState_SetAsyncExc` changed from :c:type:`long` to :c:type:`unsigned " "long`. (Contributed by Serhiy Storchaka in :issue:`6532`.)" msgstr "" +"El tipo de resultados de :c:func:`PyThread_start_new_thread` y :c:func:" +"`PyThread_get_thread_ident`, y el parámetro *id* de :c:func:" +"`PyThreadState_SetAsyncExc` cambiaron desde :c:type:`long` a :c:type:" +"`unsigned long`. (Contribuido por *Serhiy Storchaka* en :issue:`6532`.)" #: ../Doc/whatsnew/3.7.rst:1714 msgid "" @@ -2437,6 +3395,9 @@ msgid "" "second argument is ``NULL`` and the :c:type:`wchar_t*` string contains null " "characters. (Contributed by Serhiy Storchaka in :issue:`30708`.)" msgstr "" +":c:func:`PyUnicode_AsWideCharString` ahora genera un :exc:`ValueError` si el " +"segundo argumento es ``NULL`` y la cadena :c:type:`wchar_t*` contiene " +"caracteres nulos. (Contribuido por *Serhiy Storchaka* en :issue:`30708`.)" #: ../Doc/whatsnew/3.7.rst:1718 msgid "" @@ -2448,12 +3409,21 @@ msgid "" "and the :ref:`pre-init-safe` section in the C API documentation for more " "details." msgstr "" +"Los cambios en la secuencia de inicio y la gestión de los asignadores de " +"memoria dinámica significan que el requisito documentado durante mucho " +"tiempo de llamar :c:func:`Py_Initialize` antes de llamar a la mayoría de las " +"funciones de la API de C, ahora se confía más en él, y no cumplirlo puede " +"provocar errores de segmentación en las aplicaciones integradas. Ver la " +"sección :ref:`porting-to-python-37` en este documento y en la sección :ref:" +"`pre-init-safe` en la documentación de la API de C para obtener más detalles." #: ../Doc/whatsnew/3.7.rst:1726 msgid "" "The new :c:func:`PyInterpreterState_GetID` returns the unique ID for a given " "interpreter. (Contributed by Eric Snow in :issue:`29102`.)" msgstr "" +"El nuevo: c: func :c:func:`PyInterpreterState_GetID` devuelve él ID único " +"para un intérprete dado. (Contribuido por *Eric Snow* en :issue:`29102`.)" #: ../Doc/whatsnew/3.7.rst:1730 msgid "" @@ -2461,6 +3431,9 @@ msgid "" "encoding when the :ref:`UTF-8 mode ` is enabled. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" +":c:func:`Py_DecodeLocale`, :c:func:`Py_EncodeLocale` ahora usa la " +"codificación UTF-8 cuando el :ref:`modo UTF-8 ` esta " +"habilitado. (Contribuido por *Victor Stinner* en :issue:`29240`.)" #: ../Doc/whatsnew/3.7.rst:1734 msgid "" @@ -2468,6 +3441,9 @@ msgid "" "now use the current locale encoding for ``surrogateescape`` error handler. " "(Contributed by Victor Stinner in :issue:`29240`.)" msgstr "" +":c:func:`PyUnicode_DecodeLocaleAndSize` y :c:func:`PyUnicode_EncodeLocale` " +"ahora usan la codificación local actual para el controlador de errores " +"``surrogateescape``. (Contribuido por *Victor Stinner* en :issue:`29240`.)" #: ../Doc/whatsnew/3.7.rst:1738 msgid "" @@ -2475,10 +3451,13 @@ msgid "" "adjusted to behave like string slices. (Contributed by Xiang Zhang in :issue:" "`28822`.)" msgstr "" +"Los parámetros *start* y *end* de :c:func:`PyUnicode_FindChar` ahora se " +"ajustan para comportarse como cortes de cuerda. (Contribuido por *Xiang " +"Zhang* en :issue:`28822`.)" #: ../Doc/whatsnew/3.7.rst:1744 msgid "Build Changes" -msgstr "" +msgstr "Construir cambios" #: ../Doc/whatsnew/3.7.rst:1746 msgid "" @@ -2486,6 +3465,9 @@ msgid "" "`threading` module is now always available. (Contributed by Antoine Pitrou " "in :issue:`31370`.)." msgstr "" +"Se ha eliminado el soporte para construir ``—without-threads``. El módulo :" +"mod:`threading` ahora está siempre disponible. (Contribuido por *Antoine " +"Pitrou* en :issue:`31370`.)." #: ../Doc/whatsnew/3.7.rst:1750 msgid "" @@ -2494,6 +3476,10 @@ msgid "" "libffi is now required when building ``_ctypes`` on such platforms. " "(Contributed by Zachary Ware in :issue:`27979`.)" msgstr "" +"Ya no se incluye una copia completa de *libffi* para su uso al compilar el " +"módulo :mod:`_ctypes ` en plataformas que no son OSX UNIX. Ahora se " +"requiere una copia instalada de *libffi* al construir ``_ctypes`` en tales " +"plataformas. (Contribuido por *Zachary Ware* en :issue:`27979`.)" #: ../Doc/whatsnew/3.7.rst:1755 msgid "" @@ -2503,6 +3489,12 @@ msgid "" "is used to download a copy of 32-bit Python for this purpose. (Contributed " "by Zachary Ware in :issue:`30450`.)" msgstr "" +"El proceso de compilación de Windows ya no depende de una sub versión para " +"extraer fuentes externas; en su lugar, se usa un script de Python para " +"descargar archivos zip desde GitHub. Si no se encuentra Python 3.6 en el " +"sistema (a través de ``py -3.6``), *NuGet* se usa para descargar una copia " +"de Python de 32 bits para este propósito. (Contribuido por *Zachary Ware* " +"en :issue:`30450`.)" #: ../Doc/whatsnew/3.7.rst:1761 msgid "" @@ -2511,10 +3503,15 @@ msgid "" "supported. LibreSSL is temporarily not supported as well. LibreSSL releases " "up to version 2.6.4 are missing required OpenSSL 1.0.2 APIs." msgstr "" +"El módulo :mod:`ssl` requiere *libssl* compatible con OpenSSL 1.0.2 o 1.1. " +"OpenSSL 1.0.1 llegó al final de su vida útil el 31 de diciembre de 2016 y ya " +"no es compatible. LibreSSL tampoco es compatible temporalmente. Las " +"versiones de LibreSSL hasta la versión 2.6.4 carecen de las API de OpenSSL " +"1.0.2 necesarias." #: ../Doc/whatsnew/3.7.rst:1770 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/3.7.rst:1772 msgid "" @@ -2523,6 +3520,11 @@ msgid "" "the ``METH_FASTCALL`` convention. (Contributed by Victor Stinner in :issue:" "`29300`, :issue:`29507`, :issue:`29452`, and :issue:`29286`.)" msgstr "" +"La sobrecarga de llamar a muchos métodos de varias clases de biblioteca " +"estándar implementadas en C se ha reducido significativamente al portar más " +"código para usar la convención ``METH_FASTCALL``. (Contribuido por *Victor " +"Stinner* en :issue:`29300`, :issue:`29507`, :issue:`29452`, y :issue:" +"`29286`.)" #: ../Doc/whatsnew/3.7.rst:1778 #, python-format @@ -2531,6 +3533,9 @@ msgid "" "up to 30% on macOS. (Contributed by Victor Stinner, INADA Naoki in :issue:" "`29585`, and Ivan Levkivskyi in :issue:`31333`.)" msgstr "" +"Varias optimizaciones han reducido el tiempo de inicio de Python en un " +"10% en Linux y hasta en un 30% en macOS. (Contribuido por *Victor Stinner*, " +"*INADA Naoki* en :issue:`29585`, y *Ivan Levkivskyi* en :issue:`31333`.)" #: ../Doc/whatsnew/3.7.rst:1783 #, python-format @@ -2539,12 +3544,18 @@ msgid "" "avoid creating bound method instances. (Contributed by Yury Selivanov and " "INADA Naoki in :issue:`26110`.)" msgstr "" +"Las llamadas a métodos ahora son hasta un 20% más rápidas debido a los " +"cambios de código de bytes que evitan la creación de instancias de métodos " +"enlazados. (Contribuidos por *Yury Selivanov* y *INADA Naoki* en :issue:" +"`26110`.)" #: ../Doc/whatsnew/3.7.rst:1789 msgid "" "The :mod:`asyncio` module received a number of notable optimizations for " "commonly used functions:" msgstr "" +"El módulo :mod:`asyncio` recibió una serie de optimizaciones notables para " +"funciones de uso común:" #: ../Doc/whatsnew/3.7.rst:1792 msgid "" @@ -2552,12 +3563,17 @@ msgid "" "make it up to 15 times faster. (Contributed by Yury Selivanov in :issue:" "`32296`.)" msgstr "" +"La función :func:`asyncio.get_event_loop` se ha vuelto a implementar en C " +"para hacerlo hasta 15 veces más rápido. (Contribuido por *Yury Selivanov* " +"en :issue:`32296`.)" #: ../Doc/whatsnew/3.7.rst:1796 msgid "" ":class:`asyncio.Future` callback management has been optimized. (Contributed " "by Yury Selivanov in :issue:`32348`.)" msgstr "" +"Se ha optimizado la gestión de devolución de llamada :class:`asyncio." +"Future`. (Contribuido por *Yury Selivanov* en :issue:`32348`.)" #: ../Doc/whatsnew/3.7.rst:1799 #, python-format @@ -2565,18 +3581,25 @@ msgid "" ":func:`asyncio.gather` is now up to 15% faster. (Contributed by Yury " "Selivanov in :issue:`32355`.)" msgstr "" +":func:`asyncio.gather` ahora es hasta un 15% más rápido. (Contribuido por " +"*Yury Selivanov* en :issue:`32355`.)" #: ../Doc/whatsnew/3.7.rst:1802 msgid "" ":func:`asyncio.sleep` is now up to 2 times faster when the *delay* argument " "is zero or negative. (Contributed by Andrew Svetlov in :issue:`32351`.)" msgstr "" +":func:`asyncio.sleep` ahora es hasta 2 veces más rápido cuando el argumento " +"*delay* es cero o negativo. (Contribuido por *Andrew Svetlov* en :issue:" +"`32351`.)" #: ../Doc/whatsnew/3.7.rst:1806 msgid "" "The performance overhead of asyncio debug mode has been reduced. " "(Contributed by Antoine Pitrou in :issue:`31970`.)" msgstr "" +"Se ha reducido la sobrecarga de rendimiento del modo de depuración asyncio. " +"(Contribuido por *Antoine Pitrou* en :issue:`31970`.)" #: ../Doc/whatsnew/3.7.rst:1809 msgid "" @@ -2584,6 +3607,10 @@ msgid "" "mod:`typing` has been reduced by a factor of 7, and many typing operations " "are now faster. (Contributed by Ivan Levkivskyi in :issue:`32226`.)" msgstr "" +"Como resultado de :ref:`PEP 560 trabajo `, el tiempo de " +"importación de :mod:`typing` se ha reducido en un factor de 7, y muchas " +"operaciones de mecanografía ahora son más rápidas. (Contribuido por *Ivan " +"Levkivskyi* en :issue:`32226`.)" #: ../Doc/whatsnew/3.7.rst:1814 #, python-format @@ -2592,12 +3619,17 @@ msgid "" "be up to 40-75% faster. (Contributed by Elliot Gorokhovsky in :issue:" "`28685`.)" msgstr "" +":func:`sorted` y :meth:`list.sort` se han optimizado para que los casos " +"comunes sean hasta un 40-75% más rápidos. (Contribuido por *Elliot " +"Gorokhovsky* en :issue:`28685`.)" #: ../Doc/whatsnew/3.7.rst:1818 msgid "" ":meth:`dict.copy` is now up to 5.5 times faster. (Contributed by Yury " "Selivanov in :issue:`31179`.)" msgstr "" +":meth:`dict.copy` es ahora 5.5 veces más rápido. (Contribuido por *Yury " +"Selivanov* en :issue:`31179`.)" #: ../Doc/whatsnew/3.7.rst:1821 msgid "" @@ -2605,6 +3637,10 @@ msgid "" "is not found and *obj* does not override :meth:`object.__getattr__` or :meth:" "`object.__getattribute__`. (Contributed by INADA Naoki in :issue:`32544`.)" msgstr "" +":func:`hasattr` y :func:`getattr` ahora son aproximadamente 4 veces más " +"rápidos cuando *name* no se encuentra y *obj* no se anula :meth:`object." +"__getattr__` o :meth:`object.__getattribute__`. (Contribuido por *INADA " +"Naoki* en :issue:`32544`.)" #: ../Doc/whatsnew/3.7.rst:1826 msgid "" @@ -2613,6 +3649,10 @@ msgid "" "now only 3 times slower in the worst case. (Contributed by Serhiy Storchaka " "in :issue:`24821`.)" msgstr "" +"La búsqueda de ciertos caracteres Unicode (como la mayúscula ucraniana “Є”) " +"en una cadena fue hasta 25 veces más lenta que la búsqueda de otros " +"caracteres. Ahora es solo 3 veces más lento en el peor de los casos. " +"(Contribuido por *Serhiy Storchaka* en :issue:`24821`.)" #: ../Doc/whatsnew/3.7.rst:1831 msgid "" @@ -2621,6 +3661,10 @@ msgid "" "Zijlstra with further improvements by INADA Naoki, Serhiy Storchaka, and " "Raymond Hettinger in :issue:`28638`.)" msgstr "" +"La fábrica :func:`collections.namedtuple` ha sido re-implementada para hacer " +"que la creación de tuplas con nombre sea de 4 a 6 veces más rápida. " +"(Contribuido por *Jelle Zijlstra* con nuevas mejoras de *INADA Naoki*, " +"*Serhiy Storchaka*, y *Raymond Hettinger* en :issue:`28638`.)" #: ../Doc/whatsnew/3.7.rst:1836 #, python-format @@ -2629,12 +3673,17 @@ msgid "" "30% faster in the common case. (Contributed by Paul Ganssle in :issue:" "`32403`.)" msgstr "" +":meth:`date.fromordinal` y :meth:`date.fromtimestamp` ahora son hasta un 30% " +"más rápidos en el caso común. (Contribuido por *Paul Ganssle* en :issue:" +"`32403`.)" #: ../Doc/whatsnew/3.7.rst:1840 msgid "" "The :func:`os.fwalk` function is now up to 2 times faster thanks to the use " "of :func:`os.scandir`. (Contributed by Serhiy Storchaka in :issue:`25996`.)" msgstr "" +"La función :func:`os.fwalk` es ahora 2 veces mas rápida gracias al uso de :" +"func:`os.scandir`. (Contribuido por *Serhiy Storchaka* en :issue:`25996`.)" #: ../Doc/whatsnew/3.7.rst:1844 msgid "" @@ -2642,6 +3691,9 @@ msgid "" "thanks to the use of the :func:`os.scandir` function. (Contributed by Serhiy " "Storchaka in :issue:`28564`.)" msgstr "" +"La rapidez de la función :func:`shutil.rmtree` se ha mejorado en un 20-40% " +"gracias al uso de la función :func:`os.scandir`. (Contribuido por *Serhiy " +"Storchaka* en :issue:`28564`.)" #: ../Doc/whatsnew/3.7.rst:1848 msgid "" @@ -2649,6 +3701,10 @@ msgid "" "expressions `. Searching some patterns can now be up to 20 times " "faster. (Contributed by Serhiy Storchaka in :issue:`30285`.)" msgstr "" +"Búsqueda y coincidencia optimizadas que no distinguen entre mayúsculas y " +"minúsculas de :mod:`expresiones regulares `. La búsqueda de algunos " +"patrones ahora puede ser hasta 20 veces más rápida. (Contribuido por *Serhiy " +"Storchaka* en :issue:`30285`.)" #: ../Doc/whatsnew/3.7.rst:1852 #, python-format @@ -2658,6 +3714,10 @@ msgid "" "by about 10% depending on the pattern. (Contributed by INADA Naoki in :issue:" "`31671`.)" msgstr "" +":func:`re.compile` ahora convierte el parámetro ``flags`` en un objeto int " +"si es ``RegexFlag``. Ahora es tan rápido como Python 3.5 y más rápido que " +"Python 3.6 en aproximadamente un 10% dependiendo del patrón. (Contribuido " +"por *INADA Naoki* en :issue:`31671`.)" #: ../Doc/whatsnew/3.7.rst:1857 #, python-format @@ -2667,6 +3727,10 @@ msgid "" "`selectors.DevpollSelector` may be around 10% faster under heavy loads. " "(Contributed by Giampaolo Rodola' in :issue:`30014`)" msgstr "" +"El método :meth:`~selectors.BaseSelector.modify` de la clase :class:" +"`selectors.EpollSelector`, :class:`selectors.PollSelector` y :class:" +"`selectors.DevpollSelector` puede ser alrededor de un 10% más rápido bajo " +"cargas pesadas. (Contribuido por *Giampaolo Rodola* en :issue:`30014`)" #: ../Doc/whatsnew/3.7.rst:1862 msgid "" @@ -2675,6 +3739,10 @@ msgid "" "(Contributed by Eugene Toder and INADA Naoki in :issue:`29469` and :issue:" "`11549`.)" msgstr "" +"El plegado constante se ha movido del optimizador de mirilla al nuevo " +"optimizador AST, que puede realizar optimizaciones de manera más " +"consistente. (Contribuid por *Eugene Toder* y *INADA Naoki* en :issue:" +"`29469` y :issue:`11549`.)" #: ../Doc/whatsnew/3.7.rst:1867 msgid "" @@ -2684,6 +3752,11 @@ msgid "" "time by up to 10%. (Contributed by Ivan Levkivskyi and INADA Naoki in :issue:" "`31333`)" msgstr "" +"La mayoría de funciones y métodos en :mod:`abc` se han reescrito en C. Esto " +"hace que la creación de clases base abstractas y la llamada a :func:" +"`isinstance` y :func:`issubclass` en ellas sean 1.5 veces más rápidas. Esto " +"también reduce el tiempo de inicio de Python hasta en un 10%. (Contribuido " +"por *Ivan Levkivskyi* y *INADA Naoki* en :issue:`31333`)" #: ../Doc/whatsnew/3.7.rst:1873 msgid "" @@ -2692,6 +3765,10 @@ msgid "" "constructors when not constructing subclasses. (Contributed by Paul Ganssle " "in :issue:`32403`)" msgstr "" +"Mejoras significativas de velocidad para constructores alternativos para :" +"class:`datetime.date` y :class:`datetime.datetime` mediante el uso de " +"constructores de ruta rápida cuando no se construyen subclases. (Contribuido " +"por *Paul Ganssle* en :issue:`32403`)" #: ../Doc/whatsnew/3.7.rst:1878 msgid "" @@ -2700,6 +3777,10 @@ msgid "" "comparing arrays holding values of the same integer type. (Contributed by " "Adrian Wielgosik in :issue:`24700`.)" msgstr "" +"La velocidad de comparación de instancias de :class:`array.array` se ha " +"mejorado considerablemente en determinados casos. Ahora es de 10 a 70 veces " +"más rápido cuando se comparan matrices que contienen valores del mismo tipo " +"de entero. (Contribuido por *Adrian Wielgosik* en :issue:`24700`.)" #: ../Doc/whatsnew/3.7.rst:1883 msgid "" @@ -2707,10 +3788,13 @@ msgid "" "library implementation on most platforms. (Contributed by Serhiy Storchaka " "in :issue:`26121`.)" msgstr "" +"Las funciones :func:`math.erf` y :func:`math.erfc` ahora use la " +"implementación de la biblioteca C (más rápida) en la mayoría de las " +"plataformas. (Contribuido por *Serhiy Storchaka* en :issue:`26121`.)" #: ../Doc/whatsnew/3.7.rst:1889 msgid "Other CPython Implementation Changes" -msgstr "" +msgstr "Otros cambios de implementación de CPython" #: ../Doc/whatsnew/3.7.rst:1891 msgid "" @@ -2719,6 +3803,11 @@ msgid "" "``f_trace_lines`` and ``f_trace_opcodes`` attributes on the frame being " "traced. (Contributed by Nick Coghlan in :issue:`31344`.)" msgstr "" +"Los ganchos de seguimiento ahora pueden optar por no recibir la ``linea`` y " +"optar por recibir los eventos ``opcode`` del intérprete configurando los " +"nuevos atributos correspondientes ``f_trace_lines`` y ``f_trace_opcodes`` en " +"el marco que se está rastreando . (Contribuido por *Nick Coghlan* en :issue:" +"`31344`.)" #: ../Doc/whatsnew/3.7.rst:1896 msgid "" @@ -2730,6 +3819,14 @@ msgid "" "``__loader__`` (previously, the former was set to ``None``). See :issue:" "`32303`." msgstr "" +"Se corrigieron algunos problemas de coherencia con los atributos del módulo " +"del paquete de espacio de nombres. Los objetos del módulo de espacio de " +"nombres ahora tienen un ``__file__`` que está configurado como ``None`` " +"(previamente no configurado), y su ``__spec__.origin`` también está " +"configurado como ``None`` (anteriormente la cadena ``”espacio de nombres”`). " +"Ver :issue:`32305`. Además, el ``__spec__.loader`` del objeto del módulo de " +"espacio de nombres se establece en el mismo valor que ``__loader__`` " +"(anteriormente, el primero se estableció en ``None``). Ver :issue:`32303`." #: ../Doc/whatsnew/3.7.rst:1904 msgid "" @@ -2737,6 +3834,9 @@ msgid "" "variables were defined. Previously, the order was undefined. (Contributed " "by Raymond Hettinger in :issue:`32690`.)" msgstr "" +"El diccionario :func:`locals` ahora se muestra en el orden léxico en que se " +"definieron las variables. Anteriormente, el orden no estaba definido. " +"(Contribuido por *Raymond Hettinger* en :issue:`32690`.)" #: ../Doc/whatsnew/3.7.rst:1908 msgid "" @@ -2745,10 +3845,14 @@ msgid "" "ended with a byte equivalent to CR. (Contributed by Bo Bayles in :issue:" "`32304`.)" msgstr "" +"El comando :mod:`distutils` ``upload`` ya no intenta cambiar los caracteres " +"de fin de línea de CR a CRLF. Esto soluciona un problema de corrupción con " +"*sdists* que terminaba con un byte equivalente a CR. (Contribuido por *Bo " +"Bayles* en :issue:`32304`.)" #: ../Doc/whatsnew/3.7.rst:1915 msgid "Deprecated Python Behavior" -msgstr "" +msgstr "Comportamiento obsoleto de Python" #: ../Doc/whatsnew/3.7.rst:1917 msgid "" @@ -2763,6 +3867,17 @@ msgid "" "in Python 3.8 this will be a :exc:`SyntaxError`. (Contributed by Serhiy " "Storchaka in :issue:`10544`.)" msgstr "" +"Las expresiones de rendimiento (tanto las cláusulas ``yield`` como las " +"cláusulas ``yield from``) ahora están en desuso en las comprensiones y las " +"expresiones generadoras (aparte de la expresión iterable en la cláusula más " +"a la izquierda :keyword:`!for`). Esto asegura que las comprensiones siempre " +"devuelvan inmediatamente un contenedor del tipo apropiado (en lugar de " +"potencialmente devolver un objeto :term:`generator iterator`), mientras que " +"las expresiones generadoras no intentarán intercalar su salida implícita con " +"la salida de ninguna expresión de rendimiento explícita. En Python 3.7, " +"tales expresiones emiten :exc:`DeprecationWarning` cuando se compilan, en " +"Python 3.8 será un :exc:`SyntaxError`. (Contribuido por *Serhiy Storchaka* " +"en :issue:`10544`.)" #: ../Doc/whatsnew/3.7.rst:1928 msgid "" @@ -2771,14 +3886,19 @@ msgid "" "``__complex__()`` consistent with :meth:`object.__int__` and :meth:`object." "__float__`. (Contributed by Serhiy Storchaka in :issue:`28894`.)" msgstr "" +"Devolviendo una subclase de :class:`complex` desde :meth:`object." +"__complex__` está obsoleto y será un error en futuras versiones de Python. " +"Esto hace que ``__complex__()`` se compatible con :meth:`object.__int__` y :" +"meth:`object.__float__`. (Contribuido por *Serhiy Storchaka* en :issue:" +"`28894`.)" #: ../Doc/whatsnew/3.7.rst:1937 msgid "Deprecated Python modules, functions and methods" -msgstr "" +msgstr "Módulos, funciones y métodos de Python obsoletos" #: ../Doc/whatsnew/3.7.rst:1940 msgid "aifc" -msgstr "" +msgstr "*aifc*" #: ../Doc/whatsnew/3.7.rst:1942 msgid "" @@ -2786,6 +3906,9 @@ msgid "" "Use :func:`aifc.open` instead. (Contributed by Brian Curtin in :issue:" "`31985`.)" msgstr "" +":func:`aifc.openfp` ha quedado obsoleto y se eliminará en Python 3.9. En su " +"lugar use :func:`aifc.open`. (Contribuido por *Brian Curtin* en :issue:" +"`31985`.)" #: ../Doc/whatsnew/3.7.rst:1952 msgid "" @@ -2795,6 +3918,11 @@ msgid "" "the synchronization resource. (Contributed by Andrew Svetlov in :issue:" "`32253`.)" msgstr "" +"Se ha desaprobado el soporte para instancias en ``await`` de :class:`asyncio." +"Lock` y otras primitivas de sincronización asyncio directamente. Se debe " +"utilizar un administrador de contexto asincrónico para adquirir y liberar el " +"recurso de sincronización. (Contribuido por *Andrew Svetlov* en :issue:" +"`32253`.)" #: ../Doc/whatsnew/3.7.rst:1958 msgid "" @@ -2802,6 +3930,9 @@ msgid "" "methods have been deprecated. (Contributed by Andrew Svetlov in :issue:" "`32250`.)" msgstr "" +"Los métodos :meth:`asyncio.Task.current_task` y :meth:`asyncio.Task." +"all_tasks` han quedado obsoletos. (Contribuido por *Andrew Svetlov* en :" +"issue:`32250`.)" #: ../Doc/whatsnew/3.7.rst:1966 msgid "" @@ -2810,6 +3941,10 @@ msgid "" "create a clearer distinction between the concrete classes and the abstract " "base classes. (Contributed by Serhiy Storchaka in :issue:`25988`.)" msgstr "" +"En Python 3.8, las clases base abstractas en :mod:`collections.abc` ya no " +"estará expuesto en el módulo regular :mod:`collections`. Esto ayudará a " +"crear una distinción más clara entre las clases concretas y las clases base " +"abstractas. (Contribuido por *Serhiy Storchaka* en :issue:`25988`.)" #: ../Doc/whatsnew/3.7.rst:1976 msgid "" @@ -2819,6 +3954,11 @@ msgid "" "(this will be an error in future Python releases). (Contributed by Serhiy " "Storchaka in :issue:`28847`.)" msgstr "" +":mod:`dbm.dumb` ahora admite la lectura de archivos de solo lectura y ya no " +"escribe el archivo de índice cuando no se cambia. Ahora se emite una " +"advertencia de obsolescencia si falta el archivo de índice y se recrea en " +"los modos ``’r’`` y ``’w’`` (esto será un error en futuras versiones de " +"Python). (Contribuido por *Serhiy Storchaka* en :issue:`28847`.)" #: ../Doc/whatsnew/3.7.rst:1986 msgid "" @@ -2829,10 +3969,15 @@ msgid "" "return :const:`False` instead. (Contributed by Ethan Furman in :issue:" "`33217`.)" msgstr "" +"En Python 3.8, intentar buscar objetos que no sean Enum en clases :class:" +"`Enum` generará un :exc:`TypeError` (por ejemplo, ``1 in Color``); de manera " +"similar, si se intenta buscar objetos que no sean miembro de la :class:" +"`Flag` se generará :exc:`TypeError` (por ejemplo, ``1 in Perm.RW``); " +"actualmente, ambas operaciones devuelven :const:`False` en su lugar." #: ../Doc/whatsnew/3.7.rst:1995 msgid "gettext" -msgstr "" +msgstr "*gettext*" #: ../Doc/whatsnew/3.7.rst:1997 msgid "" @@ -2840,6 +3985,9 @@ msgid "" "deprecated. It never correctly worked. (Contributed by Serhiy Storchaka in :" "issue:`28692`.)" msgstr "" +"Usando un valor no entero para seleccionar una forma plural en :mod:" +"`gettext` ahora está en desuso. Nunca funcionó correctamente. (Contribuido " +"por *Serhiy Storchaka* en :issue:`28692`.)" #: ../Doc/whatsnew/3.7.rst:2005 msgid "" @@ -2851,32 +3999,45 @@ msgid "" "both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`. " "(Contributed by Matthias Bussonnier in :issue:`29576`)" msgstr "" +"Métodos :meth:`MetaPathFinder.find_module() ` (reemplazado por :meth:`MetaPathFinder.find_spec() `) y :meth:`PathEntryFinder.find_loader() " +"` (reemplazado por :meth:" +"`PathEntryFinder.find_spec() `) " +"ambas en desuso en Python 3.4 ahora emiten :exc:`DeprecationWarning`. " +"(Contribuido por *Matthias Bussonnier* en :issue:`29576`)" #: ../Doc/whatsnew/3.7.rst:2016 msgid "" "The :class:`importlib.abc.ResourceLoader` ABC has been deprecated in favour " "of :class:`importlib.abc.ResourceReader`." msgstr "" +"El :class:`importlib.abc.ResourceLoader` ABC ha quedado obsoleto en favor " +"de :class:`importlib.abc.ResourceReader`." #: ../Doc/whatsnew/3.7.rst:2023 msgid "" ":func:`locale.format` has been deprecated, use :meth:`locale.format_string` " "instead. (Contributed by Garvit in :issue:`10379`.)" msgstr "" +":func:`locale.format` ha sido obsoleto, en su lugar use :meth:`locale." +"format_string`. (Contribuido por *Garvit* en :issue:`10379`.)" #: ../Doc/whatsnew/3.7.rst:2028 msgid "macpath" -msgstr "" +msgstr "*macpath*" #: ../Doc/whatsnew/3.7.rst:2030 msgid "" "The :mod:`macpath` is now deprecated and will be removed in Python 3.8. " "(Contributed by Chi Hsuan Yen in :issue:`9850`.)" msgstr "" +"El :mod:`macpath` esta ahora en desuso y se eliminará en Python 3.8. " +"(Contribuido por *Chi Hsuan Yen* en :issue:`9850`.)" #: ../Doc/whatsnew/3.7.rst:2035 msgid "threading" -msgstr "" +msgstr "*threading*" #: ../Doc/whatsnew/3.7.rst:2037 msgid "" @@ -2884,6 +4045,9 @@ msgid "" "no longer possible to build Python with threading disabled. Use :mod:" "`threading` instead. (Contributed by Antoine Pitrou in :issue:`31370`.)" msgstr "" +":mod:`dummy_threading` y :mod:`_dummy_thread` han quedado en desuso. ya no " +"es posible compilar Python con el subproceso desactivado. En lugar use :mod:" +"`threading`. (Contribuido por *Antoine Pitrou* en :issue:`31370`.)" #: ../Doc/whatsnew/3.7.rst:2046 msgid "" @@ -2892,16 +4056,23 @@ msgid "" "passed argument is larger than 16 bits, an exception will be raised. " "(Contributed by Oren Milman in :issue:`28332`.)" msgstr "" +"El truncamiento del valor del argumento silencioso en :func:`socket.htons` " +"y :func:`socket.ntohs` ha quedado en desuso. En futuras versiones de Python, " +"si el argumento pasado es mayor de 16 bits, se generará una excepción. " +"(Contribuido por *Oren Milman* en :issue:`28332`.)" #: ../Doc/whatsnew/3.7.rst:2055 msgid "" ":func:`ssl.wrap_socket` is deprecated. Use :meth:`ssl.SSLContext." "wrap_socket` instead. (Contributed by Christian Heimes in :issue:`28124`.)" msgstr "" +":func:`ssl.wrap_socket` esta en desuso. En su lugar use :meth:`ssl." +"SSLContext.wrap_socket`. (Contribuido por *Christian Heimes* en :issue:" +"`28124`.)" #: ../Doc/whatsnew/3.7.rst:2061 msgid "sunau" -msgstr "" +msgstr "*sunau*" #: ../Doc/whatsnew/3.7.rst:2063 msgid "" @@ -2909,12 +4080,17 @@ msgid "" "Use :func:`sunau.open` instead. (Contributed by Brian Curtin in :issue:" "`31985`.)" msgstr "" +":func:`sunau.openfp` ha quedado obsoleto y se eliminará en Python 3.9. En " +"lugar use :func:`sunau.open`. (Contribuido por *Brian Curtin* en :issue:" +"`31985`.)" #: ../Doc/whatsnew/3.7.rst:2071 msgid "" "Deprecated :func:`sys.set_coroutine_wrapper` and :func:`sys." "get_coroutine_wrapper`." msgstr "" +":func:`sys.set_coroutine_wrapper` y :func:`sys.get_coroutine_wrapper` en " +"desuso." #: ../Doc/whatsnew/3.7.rst:2074 msgid "" @@ -2922,10 +4098,13 @@ msgid "" "be removed in a future Python version. (Contributed by Victor Stinner in :" "issue:`28799`.)" msgstr "" +"La función indocumentada ``sys.callstats()`` ha quedado obsoleto y se " +"eliminará en una futura versión de Python. (Contribuido por *Victor Stinner* " +"en :issue:`28799`.)" #: ../Doc/whatsnew/3.7.rst:2080 msgid "wave" -msgstr "" +msgstr "*wave*" #: ../Doc/whatsnew/3.7.rst:2082 msgid "" @@ -2933,10 +4112,13 @@ msgid "" "Use :func:`wave.open` instead. (Contributed by Brian Curtin in :issue:" "`31985`.)" msgstr "" +":func:`wave.openfp` ha quedado obsoleta y sera removida en Python 3.9. En su " +"lugar use :func:`wave.open`. (Contribuido por *Brian Curtin* en :issue:" +"`31985`.)" #: ../Doc/whatsnew/3.7.rst:2088 msgid "Deprecated functions and types of the C API" -msgstr "" +msgstr "Funciones y tipos obsoletos de la API C" #: ../Doc/whatsnew/3.7.rst:2090 msgid "" @@ -2946,6 +4128,11 @@ msgid "" "``0x03060100`` or higher. (Contributed by Serhiy Storchaka in :issue:" "`27867`.)" msgstr "" +"Función :c:func:`PySlice_GetIndicesEx` está en desuso y se reemplaza con una " +"macro si ``Py_LIMITED_API`` no está configurado o configurado en un valor en " +"el rango entre ``0x03050400``y ``0x03060000`` (no incluido), o es " +"``0x03060100`` o superior. (Contribuido por *Serhiy Storchaka* en :issue:" +"`27867`.)" #: ../Doc/whatsnew/3.7.rst:2095 msgid "" @@ -2954,14 +4141,19 @@ msgid "" "`PyOS_AfterFork_Child()` instead. (Contributed by Antoine Pitrou in :issue:" "`16500`.)" msgstr "" +":c:func:`PyOS_AfterFork` ha quedado obsoleto. En su lugar usar :c:func:" +"`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` o :c:func:" +"`PyOS_AfterFork_Child()`. (Contribuido por *Antoine Pitrou* en :issue:" +"`16500`.)" #: ../Doc/whatsnew/3.7.rst:2103 msgid "Platform Support Removals" -msgstr "" +msgstr "Eliminación de soporte de plataforma" #: ../Doc/whatsnew/3.7.rst:2105 msgid "FreeBSD 9 and older are no longer officially supported." msgstr "" +"*FreeBSD* 9 y las versiones anteriores ya no son compatibles oficialmente." #: ../Doc/whatsnew/3.7.rst:2106 msgid "" @@ -2970,6 +4162,12 @@ msgid "" "locale), ``C.utf8`` (full locale) or ``UTF-8`` (``LC_CTYPE``-only locale) as " "an alternative to the legacy ``ASCII``-based ``C`` locale." msgstr "" +"Para una compatibilidad total con Unicode, incluso dentro de los módulos de " +"extensión, ahora se espera que las plataformas \\*nix proporcionen al menos " +"uno de ``C.UTF-8`` (configuración regional completa), ``C." +"utf8``(configuración regional completa) o ``UTF-8`` (configuración regional " +"exclusiva de ``LC_CTYPE``) como una alternativa a la configuración regional " +"``C`` heredada basada en ``ASCII``." #: ../Doc/whatsnew/3.7.rst:2110 msgid "" @@ -2978,6 +4176,10 @@ msgid "" "versions requires custom build options that link to a more recent version of " "OpenSSL." msgstr "" +"OpenSSL 0.9.8 y 1.0.1 ya no son compatibles, lo que significa que la " +"compilación de CPython 3.7 con compatibilidad con SSL / TLS en plataformas " +"más antiguas que aún usan estas versiones requiere opciones de compilación " +"personalizadas que se vinculan a una versión más reciente de OpenSSL." #: ../Doc/whatsnew/3.7.rst:2114 msgid "" @@ -2985,6 +4187,9 @@ msgid "" "(aka \"Trusty\") LTS Linux distributions, as they still use OpenSSL 1.0.1 by " "default." msgstr "" +"En particular, este problema afecta a las distribuciones LTS Linux Debian 8 " +"(también conocido como “jessie”) y *Ubuntu* 14.04 (también conocido como " +"“Trusty”), ya que todavía usan OpenSSL 1.0.1 por defecto." #: ../Doc/whatsnew/3.7.rst:2118 msgid "" @@ -2993,6 +4198,10 @@ msgid "" "use OpenSSL 1.0.2 or later, and remain supported in the default build " "configuration." msgstr "" +"Debian 9 (“stretch”) y *Ubuntu* 16.04 (“xenial”), así como las versiones " +"recientes de otras versiones de LTS Linux (por ejemplo, RHEL / CentOS 7.5, " +"SLES 12-SP3), usan OpenSSL 1.0.2 o posterior y siguen siendo compatibles en " +"la configuración de compilación predeterminada." #: ../Doc/whatsnew/3.7.rst:2122 msgid "" @@ -3001,14 +4210,19 @@ msgid "" "` in CPython's test suite to build and link " "against OpenSSL 1.1.0 rather than an outdated system provided OpenSSL." msgstr "" +"El propio :source:`archivo de configuración CI <.travis.yml>` de CPython " +"proporciona un ejemplo del uso de SSL :source:`compatibilidad con la " +"estructura de testing ` en el conjunto de " +"pruebas de CPython para compilar y vincular contra OpenSSL 1.1.0 en lugar de " +"un sistema obsoleto proporcionado OpenSSL." #: ../Doc/whatsnew/3.7.rst:2130 msgid "API and Feature Removals" -msgstr "" +msgstr "Eliminaciones de API y funciones" #: ../Doc/whatsnew/3.7.rst:2132 msgid "The following features and APIs have been removed from Python 3.7:" -msgstr "" +msgstr "Las siguientes funciones y API se han eliminado de Python 3.7:" #: ../Doc/whatsnew/3.7.rst:2134 msgid "" @@ -3016,6 +4230,9 @@ msgid "" "in Python 2.3 for backward compatibility with Python 2.2, and was deprecated " "since Python 3.1." msgstr "" +"La función ``os.stat_float_times()`` ha sido removida. Se introdujo en " +"Python 2.3 por compatibilidad con versiones anteriores de Python 2.2 y quedó " +"obsoleto desde Python 3.1." #: ../Doc/whatsnew/3.7.rst:2138 msgid "" @@ -3023,12 +4240,18 @@ msgid "" "templates for :func:`re.sub` were deprecated in Python 3.5, and will now " "cause an error." msgstr "" +"Los escapes desconocidos que consisten en ``’\\’`` y una letra ASCII en las " +"plantillas de reemplazo para :func:`re.sub` quedaron obsoletos en Python 3.5 " +"y ahora causarán un error." #: ../Doc/whatsnew/3.7.rst:2142 msgid "" "Removed support of the *exclude* argument in :meth:`tarfile.TarFile.add`. It " "was deprecated in Python 2.7 and 3.2. Use the *filter* argument instead." msgstr "" +"Se eliminó el soporte del argumento * exclude * en :meth:`tarfile.TarFile." +"add`. Fue obsoleto en Python 2.7 y 3.2. Utilice el argumento * filtro * en " +"su lugar." #: ../Doc/whatsnew/3.7.rst:2145 msgid "" @@ -3036,6 +4259,9 @@ msgid "" "Python 3.1, and has now been removed. Use the :func:`~os.path.splitdrive` " "function instead." msgstr "" +"La función ``splitunc()`` en el módulo :mod:`ntpath` quedó obsoleto en " +"Python 3.1 y ahora se ha eliminado. Utilice la función :func:`~os.path." +"splitdrive` en su lugar." #: ../Doc/whatsnew/3.7.rst:2149 msgid "" @@ -3045,6 +4271,11 @@ msgid "" "creation. (Contributed by Jelle Zijlstra with further improvements by INADA " "Naoki, Serhiy Storchaka, and Raymond Hettinger in :issue:`28638`.)" msgstr "" +":func:`collections.namedtuple` ya no admite el parámetro *verbose* o el " +"atributo ``_source`` que mostraba el código fuente generado para la clase de " +"tupla nombrada. Esto fue parte de una optimización diseñada para acelerar la " +"creación de clases. (Contribuido por *Jelle Zijlstra* con nuevas mejoras de " +"*INADA Naoki*, *Serhiy Storchaka*, y *Raymond Hettinger* en :issue:`28638`.)" #: ../Doc/whatsnew/3.7.rst:2155 msgid "" @@ -3052,6 +4283,9 @@ msgid "" "longer take keyword arguments. The first argument of :func:`int` can now be " "passed only as positional argument." msgstr "" +"Funciones :func:`bool`, :func:`float`, :func:`list` y :func:`tuple` ya no " +"aceptan argumentos de palabras clave. El primer argumento de :func:`int` " +"ahora solo se puede pasar como argumento posicional." #: ../Doc/whatsnew/3.7.rst:2159 msgid "" @@ -3061,6 +4295,11 @@ msgid "" "readPlistFromBytes` are now normal dicts. You no longer can use attribute " "access to access items of these dictionaries." msgstr "" +"Eliminado anteriormente en desuso en las clases de Python 2.4 ``Plist``, " +"``Dict`` y ``_InternalDict`` en el módulo :mod:`plistlib`. Dictar valores en " +"el resultado de funciones :func:`~plistlib.readPlist` y :func:`~plistlib." +"readPlistFromBytes` ahora son dictados normales. Ya no puede utilizar el " +"acceso a atributos para acceder a elementos de estos diccionarios." #: ../Doc/whatsnew/3.7.rst:2165 msgid "" @@ -3069,6 +4308,10 @@ msgid "" "platforms since Python 3.5. ``asyncio.windows_utils.socketpair`` was just an " "alias to ``socket.socketpair`` on Python 3.5 and newer." msgstr "" +"La función ``asyncio.windows_utils.socketpair()`` ha sido removida. En su " +"lugar use la función :func:`socket.socketpair`, está disponible en todas las " +"plataformas desde Python 3.5. ``asyncio.windows_utils.socketpair`` era un " +"alias para ``socket.socketpair`` en Python 3.5 y mas nuevo." #: ../Doc/whatsnew/3.7.rst:2171 msgid "" @@ -3076,6 +4319,9 @@ msgid "" "modules as ``asyncio.selectors`` and ``asyncio._overlapped``. Replace ``from " "asyncio import selectors`` with ``import selectors``." msgstr "" +":mod:`asyncio` ya no exporta el :mod:`selectors` y módulos como :mod:" +"`_overlapped` ``asyncio.selectors`` y ``asyncio._overlapped``. reemplazar " +"por ``from asyncio import selectors`` y ``import selectors``." #: ../Doc/whatsnew/3.7.rst:2176 msgid "" @@ -3085,16 +4331,23 @@ msgid "" "wrap_socket` or :class:`ssl.SSLContext`. (Contributed by Christian Heimes " "in :issue:`32951`.)" msgstr "" +"Instanciación directa de objetos :class:`ssl.SSLSocket` y :class:`ssl." +"SSLObject` ahora está prohibido. Los constructores nunca fueron " +"documentados, probados o diseñados como constructores públicos. Se suponía " +"que los usuarios usaban :func:`ssl.wrap_socket` o :class:`ssl.SSLContext`. " +"(Contribuido por *Christian Heimes* en :issue:`32951`.)" #: ../Doc/whatsnew/3.7.rst:2182 msgid "" "The unused :mod:`distutils` ``install_misc`` command has been removed. " "(Contributed by Eric N. Vander Weele in :issue:`29218`.)" msgstr "" +"El comando no utilizado :mod:`distutils` ``install_misc`` ha sido eliminado. " +"(Contribuido por *Eric N. Vander Weele* en :issue:`29218`.)" #: ../Doc/whatsnew/3.7.rst:2187 msgid "Module Removals" -msgstr "" +msgstr "Eliminaciones de módulos" #: ../Doc/whatsnew/3.7.rst:2189 msgid "" @@ -3103,10 +4356,14 @@ msgid "" "caused unexpected breakage of C extensions. (Contributed by Nathaniel J. " "Smith in :issue:`29137`.)" msgstr "" +"El modulo ``fpectl`` ha sido removido. Nunca se habilitó de forma " +"predeterminada, nunca funcionó correctamente en x86-64 y cambió la ABI de " +"Python de manera que causó la rotura inesperada de las extensiones C. " +"(Contribuido por *Nathaniel J. Smith* en :issue:`29137`.)" #: ../Doc/whatsnew/3.7.rst:2196 ../Doc/whatsnew/3.7.rst:2472 msgid "Windows-only Changes" -msgstr "" +msgstr "Cambios solo en Windows" #: ../Doc/whatsnew/3.7.rst:2198 msgid "" @@ -3117,6 +4374,13 @@ msgid "" "been used. If the specified version is not available py.exe will error exit. " "(Contributed by Steve Barnes in :issue:`30291`.)" msgstr "" +"El lanzador de python, (py.exe), puede aceptar especificadores de 32 y 64 " +"bits **sin** tener que especificar también una versión secundaria. Entonces, " +"``py -3-32`` y ``py -3-64`` se vuelven válidos, así como ``py -3.7-32``, " +"también los -*m*-64 and -*m.n*-64. Los formularios ahora se aceptan para " +"forzar Python de 64 bits incluso si de otro modo se hubieran utilizado 32 " +"bits. Si la versión especificada no está disponible, py.exe saldrá del " +"error. (Contribuido por *Steve Barnes* en :issue:`30291`.)" #: ../Doc/whatsnew/3.7.rst:2205 msgid "" @@ -3126,20 +4390,28 @@ msgid "" "matched it will also print the *short form* list of available specifiers. " "(Contributed by Steve Barnes in :issue:`30362`.)" msgstr "" +"El lanzador se puede ejecutar como ``py -0`` para producir una lista de las " +"pitones instaladas, *con las marcas predeterminadas con un asterisco*. La " +"ejecución de ``py -0p`` incluirá las rutas. Si py se ejecuta con un " +"especificador de versión que no puede coincidir, también imprimirá la *forma " +"corta* lista de especificadores disponibles. (Contribuido por *Steve Barnes* " +"en :issue:`30362`.)" #: ../Doc/whatsnew/3.7.rst:2215 msgid "Porting to Python 3.7" -msgstr "" +msgstr "Portando a Python 3.7" #: ../Doc/whatsnew/3.7.rst:2217 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/3.7.rst:2222 msgid "Changes in Python Behavior" -msgstr "" +msgstr "Cambios en el comportamiento de Python" #: ../Doc/whatsnew/3.7.rst:2224 msgid "" @@ -3147,6 +4419,10 @@ msgid "" "using these names as identifiers will now raise a :exc:`SyntaxError`. " "(Contributed by Jelle Zijlstra in :issue:`30406`.)" msgstr "" +":keyword:`async` y :keyword:`await` los nombres ahora son palabras clave " +"reservadas. El código que usa estos nombres como identificadores generará " +"ahora un :exc:`SyntaxError`. (Contribuido por *Jelle Zijlstra* en :issue:" +"`30406`.)" #: ../Doc/whatsnew/3.7.rst:2228 msgid "" @@ -3155,18 +4431,26 @@ msgid "" "generators are transformed into :exc:`RuntimeError` exceptions. (Contributed " "by Yury Selivanov in :issue:`32670`.)" msgstr "" +":pep:`479` está habilitado para todo el código en Python 3.7, lo que " +"significa que las excepciones de :exc:`StopIteration` generadas directa o " +"indirectamente en corutinas y generadores se transforman en excepciones de :" +"exc:`RuntimeError`. (Contribuido por *Yury Selivanov* en :issue:`32670`.)" #: ../Doc/whatsnew/3.7.rst:2234 msgid "" ":meth:`object.__aiter__` methods can no longer be declared as asynchronous. " "(Contributed by Yury Selivanov in :issue:`31709`.)" msgstr "" +"Los métodos :meth:`object.__aiter__` ya no se pueden declarar cómo " +"asincrónicos. (Contribuido por *Yury Selivanov* en :issue:`31709`.)" #: ../Doc/whatsnew/3.7.rst:2237 msgid "" "Due to an oversight, earlier Python versions erroneously accepted the " "following syntax::" msgstr "" +"Debido a un descuido, las versiones anteriores de Python aceptaron " +"erróneamente la siguiente sintaxis:" #: ../Doc/whatsnew/3.7.rst:2245 msgid "" @@ -3176,6 +4460,11 @@ msgid "" "can be omitted only on calls. (Contributed by Serhiy Storchaka in :issue:" "`32012` and :issue:`32023`.)" msgstr "" +"Python 3.7 ahora levanta correctamente una :exc:`SyntaxError`, como una " +"expresión generadora siempre debe estar directamente dentro de un conjunto " +"de paréntesis y no puede tener una coma a ambos lados, y la duplicación de " +"los paréntesis solo se puede omitir en las llamadas. (Contribuido por " +"*Serhiy Storchaka* en :issue:`32012` y :issue:`32023`.)" #: ../Doc/whatsnew/3.7.rst:2251 msgid "" @@ -3188,10 +4477,18 @@ msgid "" "depending on why the code was checking for the empty string in the first " "place)." msgstr "" +"Al usar el interruptor :option:`-m`, el directorio de trabajo inicial ahora " +"se agrega a: data :data:`sys.path`, en lugar de una cadena vacía (que denota " +"dinámicamente el directorio de trabajo actual en el momento de cada " +"importación). Cualquier programa que esté comprobando la cadena vacía, o que " +"dependa de otro modo del comportamiento anterior, deberá actualizarse en " +"consecuencia (por ejemplo, comprobando también si hay ``os.getcwd()`` o ``os." +"path.dirname(__main__.__file__)``, dependiendo de por qué el código buscaba " +"la cadena vacía en primer lugar)." #: ../Doc/whatsnew/3.7.rst:2261 msgid "Changes in the Python API" -msgstr "" +msgstr "Cambios en la API Python" #: ../Doc/whatsnew/3.7.rst:2263 msgid "" @@ -3200,6 +4497,11 @@ msgid "" "block_on_close` class attribute to ``False`` to get the pre-3.7 behaviour. " "(Contributed by Victor Stinner in :issue:`31233` and :issue:`33540`.)" msgstr "" +":meth:`socketserver.ThreadingMixIn.server_close` ahora espera hasta que se " +"completen todos los subprocesos que no son demonios. Establezca el nuevo " +"atributo de clase :attr:`socketserver.ThreadingMixIn.block_on_close` en " +"``False`` para obtener el comportamiento anterior a 3.7. (Contribuido por " +"*Victor Stinner* en :issue:`31233` y :issue:`33540`.)" #: ../Doc/whatsnew/3.7.rst:2269 msgid "" @@ -3208,6 +4510,11 @@ msgid "" "block_on_close` class attribute to ``False`` to get the pre-3.7 behaviour. " "(Contributed by Victor Stinner in :issue:`31151` and :issue:`33540`.)" msgstr "" +":meth:`socketserver.ForkingMixIn.server_close` ahora espera hasta que se " +"completen todos los procesos secundarios. Establezca el nuevo atributo de " +"clase :attr:`socketserver.ForkingMixIn.block_on_close` en ``False`` para " +"obtener el comportamiento anterior a 3.7. (Contribuido por *Victor Stinner* " +"en :issue:`31151` y :issue:`33540`.)" #: ../Doc/whatsnew/3.7.rst:2275 msgid "" @@ -3215,6 +4522,9 @@ msgid "" "locale to the value of ``LC_NUMERIC`` in some cases. (Contributed by Victor " "Stinner in :issue:`31900`.)" msgstr "" +"La función :func:`locale.localeconv` ahora establece temporalmente la " +"configuración regional ``LC_CTYPE`` en el valor de ```LC_NUMERIC`` en " +"algunos casos. (Contribuido por *Victor Stinner* en :issue:`31900`.)" #: ../Doc/whatsnew/3.7.rst:2279 msgid "" @@ -3222,6 +4532,9 @@ msgid "" "string. Previously an empty list was returned. (Contributed by Sanyam " "Khurana in :issue:`24744`.)" msgstr "" +":meth:`pkgutil.walk_packages` ahora genera un :exc:`ValueError` si la* ruta " +"* es una cadena. Anteriormente se devolvió una lista vacía. (Contribuido por " +"*Sanyam Khurana* en :issue:`24744`.)" #: ../Doc/whatsnew/3.7.rst:2283 msgid "" @@ -3230,6 +4543,10 @@ msgid "" "argument was deprecated in Python 3.5. (Contributed by Serhiy Storchaka in :" "issue:`29193`.)" msgstr "" +"Un argumento de cadena de formato para :meth:`string.Formatter.format` es " +"ahora :ref:`solo posicional `. Pasarlo como un " +"argumento de palabra clave quedó obsoleto en Python 3.5. (Contribuido por " +"*Serhiy Storchaka* en :issue:`29193`.)" #: ../Doc/whatsnew/3.7.rst:2288 msgid "" @@ -3239,6 +4556,11 @@ msgid "" "Python 3.5. Use the :meth:`~http.cookies.Morsel.set` method for setting " "them. (Contributed by Serhiy Storchaka in :issue:`29192`.)" msgstr "" +"Atributos :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel." +"value` y :attr:`~http.cookies.Morsel.coded_value` de la clase :class:`http." +"cookies.Morsel` ahora son de solo lectura. La asignación a ellos quedó " +"obsoleta en Python 3.5. Utilizar el método :meth:`~http.cookies.Morsel.set` " +"para configurarlos. (Contribuido por *Serhiy Storchaka* en :issue:`29192`.)" #: ../Doc/whatsnew/3.7.rst:2296 msgid "" @@ -3247,12 +4569,19 @@ msgid "" "their file permission bits you can set the umask before invoking " "``makedirs()``. (Contributed by Serhiy Storchaka in :issue:`19930`.)" msgstr "" +"El argumento * modo * de :func:`os.makedirs` ya no afecta a los bits de " +"permisos de archivos de los directorios de nivel intermedio recién creados. " +"Para configurar sus bits de permiso de archivo, puede configurar la máscara " +"de usuario antes de invocar ```makedirs()``. (Contribuido por *Serhiy " +"Storchaka* en :issue:`19930`.)" #: ../Doc/whatsnew/3.7.rst:2302 msgid "" "The :attr:`struct.Struct.format` type is now :class:`str` instead of :class:" "`bytes`. (Contributed by Victor Stinner in :issue:`21071`.)" msgstr "" +"El tipo :attr:`struct.Struct.format` ahora es :class:`str` en lugar de: " +"class :class:`bytes`. (Contribuido por *Victor Stinner* en :issue:`21071`.)" #: ../Doc/whatsnew/3.7.rst:2305 msgid "" @@ -3261,6 +4590,11 @@ msgid "" "file fields, the value associated to a key is a list of strings, not bytes. " "(Contributed by Pierre Quentel in :issue:`29979`.)" msgstr "" +":func:`~cgi.parse_multipart` ahora acepta los argumentos * codificación * y " +"* errores * y devuelve los mismos resultados que :class:`~FieldStorage`: " +"para campos que no son de archivo, el valor asociado a una clave es una " +"lista de cadenas, no bytes. (Contribuido por *Pierre Quentel* en :issue:" +"`29979`.)" #: ../Doc/whatsnew/3.7.rst:2311 msgid "" @@ -3268,6 +4602,9 @@ msgid "" "on a socket created by :func:`socket.share ` in older " "Python versions is not supported." msgstr "" +"Debido a cambios internos en :mod:`socket`, llamar :func:`socket.fromshare` " +"en un socket creado por :func:`socket.share ` en " +"versiones anteriores de Python no es compatible." #: ../Doc/whatsnew/3.7.rst:2315 msgid "" @@ -3275,12 +4612,18 @@ msgid "" "comma. Most exceptions are affected by this change. (Contributed by Serhiy " "Storchaka in :issue:`30399`.)" msgstr "" +"``repr`` para :exc:`BaseException` ha cambiado para no incluir la coma " +"final. La mayoría de las excepciones se ven afectadas por este cambio. " +"(Contribuido por *Serhiy Storchaka* en :issue:`30399`.)" #: ../Doc/whatsnew/3.7.rst:2319 msgid "" "``repr`` for :class:`datetime.timedelta` has changed to include the keyword " "arguments in the output. (Contributed by Utkarsh Upadhyay in :issue:`30302`.)" msgstr "" +"``repr`` para :class:`datetime.timedelta` ha cambiado para incluir los " +"argumentos de palabras clave en la salida. (Contribuido por *Utkarsh " +"Upadhyay* en :issue:`30302`.)" #: ../Doc/whatsnew/3.7.rst:2322 msgid "" @@ -3289,6 +4632,10 @@ msgid "" "the first argument ``os.scandir`` instead of ``os.listdir`` when listing the " "directory is failed." msgstr "" +"Debido a que :func:`shutil.rmtree` ahora se implementa usando la función :" +"func:`os.scandir`, el controlador especificado por el usuario *onerror* " +"ahora se llama con el primer argumento ``os.scandir`` en lugar de ``os." +"listdir`` cuando falla el listado del directorio." #: ../Doc/whatsnew/3.7.rst:2327 msgid "" @@ -3300,6 +4647,14 @@ msgid "" "``'--'``, ``'&&'``, ``'~~'``, and ``'||'``. To avoid a warning, escape them " "with a backslash. (Contributed by Serhiy Storchaka in :issue:`30349`.)" msgstr "" +"Es posible que en el futuro se agregue soporte para conjuntos anidados y " +"operaciones de conjuntos en expresiones regulares como en `Unicode Technical " +"Standard #18`_. Esto cambiaría la sintaxis. Para facilitar este cambio " +"futuro, por el momento, se planteará un :exc:`FutureWarning` en casos " +"ambiguos. Que incluyen conjuntos que comienzan con un literal ``’[‘`` o que " +"contienen secuencias de caracteres literales ``’—‘``, ``’&&’``, ``’~~’``, " +"and ``’||’``. Para evitar una advertencia, escapa de ellos con una barra " +"invertida. (Contribuido por *Serhiy Storchaka* en :issue:`30349`.)" #: ../Doc/whatsnew/3.7.rst:2338 msgid "" @@ -3311,6 +4666,13 @@ msgid "" "pattern to ``r'\\s+'``. A :exc:`FutureWarning` was emitted for such " "patterns since Python 3.5." msgstr "" +"El resultado de dividir una cuerda en un :mod:`expresión regular ` que " +"podría coincidir con una cadena vacía. Por ejemplo, dividir en ``r’\\s*’`` " +"ahora dividirá no solo en espacios en blanco como lo hizo anteriormente, " +"sino también en cadenas vacías antes de todos los caracteres que no sean " +"espacios en blanco y justo antes del final de la cadena. El comportamiento " +"anterior se puede restaurar cambiando el patrón a ``r’\\s+’``. Una :exc:" +"`FutureWarning` se emitió para tales patrones desde Python 3.5." #: ../Doc/whatsnew/3.7.rst:2347 msgid "" @@ -3321,6 +4683,12 @@ msgid "" "positions 2--3. To match only blank lines, the pattern should be rewritten " "as ``r'(?m)^[^\\S\\n]*$'``." msgstr "" +"Para patrones que coinciden con cadenas vacías y no vacías, el resultado de " +"la búsqueda de todas las coincidencias también puede cambiarse en otros " +"casos. Por ejemplo en la cadena ``’a\\n\\n’``, el patrón ``’\\n’`` no solo " +"coincidirá con cadenas vacías en las posiciones 2 y 3, sino también la " +"cadena `` ‘\\ n’`` en las posiciones 2–3. Para hacer coincidir solo líneas " +"en blanco, el patrón debe reescribirse como ``r’(?m)^[^\\S\\n]*$’``." #: ../Doc/whatsnew/3.7.rst:2354 msgid "" @@ -3329,10 +4697,16 @@ msgid "" "instead of ``'-a-b-d-'`` (the first minus between 'b' and 'd' replaces 'x', " "and the second minus replaces an empty string between 'x' and 'd')." msgstr "" +":func:`re.sub()` ahora reemplaza las coincidencias vacías adyacentes a una " +"coincidencia anterior no vacía. Por ejemplo ``re.sub(‘x*’, ‘-‘, ‘abxd’)`` " +"retorno ahora ``’-a-b—d-‘`` en lugar de ``’-a-b-d-‘`` (el primer signo menos " +"entre ‘b’ y ‘d’ reemplaza a ‘x’, y el segundo signo menos reemplaza una " +"cadena vacía entre ‘x’ y ‘d’)." #: ../Doc/whatsnew/3.7.rst:2360 msgid "(Contributed by Serhiy Storchaka in :issue:`25054` and :issue:`32308`.)" msgstr "" +"(Contribuido por *Serhiy Storchaka* en :issue:`25054` y :issue:`32308`.)" #: ../Doc/whatsnew/3.7.rst:2362 msgid "" @@ -3340,6 +4714,9 @@ msgid "" "escaping all characters other than ASCII letters, numbers, and ``'_'``. " "(Contributed by Serhiy Storchaka in :issue:`29995`.)" msgstr "" +"Cambie :func:`re.escape` para escapar solo de los caracteres especiales " +"regex en lugar de escapar de todos los caracteres que no sean letras ASCII, " +"números y ``’_’``. (Contribuido por *Serhiy Storchaka* en :issue:`29995`.)" #: ../Doc/whatsnew/3.7.rst:2366 msgid "" @@ -3347,6 +4724,9 @@ msgid "" "recent to be more consistent with :mod:`traceback`. (Contributed by Jesse " "Bakker in :issue:`32121`.)" msgstr "" +"Los marcos :class:`tracemalloc.Traceback` ahora se ordenan del más antiguo " +"al más reciente para ser más coherentes con :mod:`traceback`. (Contribuido " +"por *Jesse Bakker* en :issue:`32121`.)" #: ../Doc/whatsnew/3.7.rst:2370 msgid "" @@ -3356,6 +4736,11 @@ msgid "" "SOCK_STREAM`` work as expected on all platforms. (Contributed by Yury " "Selivanov in :issue:`32331`.)" msgstr "" +"En sistemas operativos que admiten banderas de bits :const:`socket." +"SOCK_NONBLOCK` o :const:`socket.SOCK_CLOEXEC`, el :attr:`socket.type ` ya no los tiene aplicados. Por lo tanto, comprobaciones como " +"``if sock.type == socket.SOCK_STREAM`` funcionan como se espera en todas las " +"plataformas. (Contribuido por *Yury Selivanov* en :issue:`32331`.)" #: ../Doc/whatsnew/3.7.rst:2377 msgid "" @@ -3366,6 +4751,13 @@ msgid "" "to pass ``close_fds=False`` to preserve the previous behaviour, or use :attr:" "`STARTUPINFO.lpAttributeList `." msgstr "" +"En Windows, el valor predeterminado para el argumento *close_fds* de :class:" +"`subprocess.Popen` se cambió de :const:`False` a :const:`True` al redirigir " +"los identificadores estándar. Si anteriormente dependía de que los " +"identificadores fueran heredados al usar :class:`subprocess.Popen` con la " +"redirección estándar de io, tendrá que pasar ``close_fds=False`` para " +"preservar el comportamiento anterior, o usar :attr:`STARTUPINFO." +"lpAttributeList `." #: ../Doc/whatsnew/3.7.rst:2385 msgid "" @@ -3374,6 +4766,10 @@ msgid "" "`sys.path_importer_cache` which are set to ``None``. (Contributed by Brett " "Cannon in :issue:`33169`.)" msgstr "" +":meth:`importlib.machinery.PathFinder.invalidate_caches` -- que afecta " +"implícitamente a :func:`importlib.invalidate_caches` -- ahora borra entradas " +"en :data:`sys.path_importer_cache` que están configuradas en ``None``. " +"(Contribuido por *Brett Cannon* en :issue:`33169`.)" #: ../Doc/whatsnew/3.7.rst:2390 msgid "" @@ -3385,6 +4781,13 @@ msgid "" "Previously, these methods returned :class:`asyncio.Future` instances. " "(Contributed by Yury Selivanov in :issue:`32327`.)" msgstr "" +"En :mod:`asyncio`, :meth:`loop.sock_recv() `, :meth:" +"`loop.sock_sendall() `, :meth:`loop.sock_accept() " +"`, :meth:`loop.getaddrinfo() `, :meth:`loop.getnameinfo() ` se han " +"cambiado para que sean métodos de rutina adecuados para que coincidan con su " +"documentación. Anteriormente, estos métodos devolvían instancias :class:" +"`asyncio.Future`. (Contribuido por *Yury Selivanov* en :issue:`32327`.)" #: ../Doc/whatsnew/3.7.rst:2401 msgid "" @@ -3392,6 +4795,9 @@ msgid "" "server sockets, instead of returning it directly. (Contributed by Yury " "Selivanov in :issue:`32662`.)" msgstr "" +":attr:`asyncio.Server.sockets` ahora devuelve una copia de la lista interna " +"de sockets del servidor, en lugar de devolverla directamente. (Contribuido " +"por *Yury Selivanov* en :issue:`32662`.)" #: ../Doc/whatsnew/3.7.rst:2405 msgid "" @@ -3399,6 +4805,9 @@ msgid "" "instead of a :class:`bytes` instance. (Contributed by Victor Stinner in :" "issue:`21071`.)" msgstr "" +":attr:`Struct.format ` es ahora una instancia :class:" +"`str` en lugar de una instancia :class:`bytes`. (Contribuido por *Victor " +"Stinner* en :issue:`21071`.)" #: ../Doc/whatsnew/3.7.rst:2409 msgid "" @@ -3407,6 +4816,10 @@ msgid "" "ArgumentParser.add_subparsers>`. (Contributed by Anthony Sottile in :issue:" "`26510`.)" msgstr "" +":mod:`argparse` *subparsers* ahora pueden hacerse obligatorios pasando " +"``required=True`` a :meth:`ArgumentParser.add_subparsers() `. (Contribuido por *Anthony Sottile* en :" +"issue:`26510`.)" #: ../Doc/whatsnew/3.7.rst:2413 msgid "" @@ -3414,6 +4827,9 @@ msgid "" "arbitrary numbers are no longer allowed. (Contributed by Serhiy Storchaka " "in :issue:`31778`.)" msgstr "" +":meth:`ast.literal_eval()` ahora es más estricto. Ya no se permiten sumas y " +"restas de números arbitrarios. (Contribuido por *Serhiy Storchaka* en :issue:" +"`31778`.)" #: ../Doc/whatsnew/3.7.rst:2417 msgid "" @@ -3426,12 +4842,22 @@ msgid "" "tuples and are not restricted by the range supported by :class:`datetime." "date`. (Contributed by Alexander Belopolsky in :issue:`28292`.)" msgstr "" +":meth:`Calendar.itermonthdates ` ahora " +"generará una excepción cuando una fecha cae fuera del rango de " +"``0001-01-01`` a ``9999-12-31``. Para admitir aplicaciones que no pueden " +"tolerar tales excepciones, se puede utilizar el nuevo :meth:`Calendar." +"itermonthdays3 ` y :meth:`Calendar." +"itermonthdays4 `. Los nuevos métodos " +"devuelven tuplas y no están restringidos por el rango admitido por :class:" +"`datetime.date`. (Contribuido por *Alexander Belopolsky* en :issue:`28292`.)" #: ../Doc/whatsnew/3.7.rst:2427 msgid "" ":class:`collections.ChainMap` now preserves the order of the underlying " "mappings. (Contributed by Raymond Hettinger in :issue:`32792`.)" msgstr "" +":class:`collections.ChainMap` ahora conserva el orden de las asignaciones " +"subyacentes. (Contribuido por *Raymond Hettinger* en :issue:`32792`.)" #: ../Doc/whatsnew/3.7.rst:2430 msgid "" @@ -3440,6 +4866,10 @@ msgid "" "`RuntimeError` if called during interpreter shutdown. (Contributed by Mark " "Nemec in :issue:`33097`.)" msgstr "" +"El método ``submit()`` de :class:`concurrent.futures.ThreadPoolExecutor` y :" +"class:`concurrent.futures.ProcessPoolExecutor` ahora genera un :exc:" +"`RuntimeError` si se llama durante el cierre del intérprete. (Contribuido " +"por *Mark Nemec* en :issue:`33097`.)" #: ../Doc/whatsnew/3.7.rst:2435 msgid "" @@ -3449,6 +4879,12 @@ msgid "" "now being implicitly converted to strings. (Contributed by James Tocknell " "in :issue:`23835`.)" msgstr "" +"El constructor :class:`configparser.ConfigParser` ahora usa ``read_dict()`` " +"para procesar los valores predeterminados, haciendo que su comportamiento " +"sea coherente con el resto del analizador. Las claves y los valores que no " +"son cadenas en el diccionario de valores predeterminados ahora se están " +"convirtiendo implícitamente en cadenas. (Contribuido por *James Tocknell* " +"en :issue:`23835`.)" #: ../Doc/whatsnew/3.7.rst:2441 msgid "" @@ -3457,10 +4893,15 @@ msgid "" "that such undocumented internal imports may be removed any time without " "notice, even in micro version releases." msgstr "" +"Se eliminaron varias importaciones internas indocumentadas. Un ejemplo es " +"que ``os.errno`` ya no está disponible; use ``import errno`` directamente en " +"su lugar. Tenga en cuenta que estas importaciones internas no documentadas " +"pueden eliminarse en cualquier momento sin previo aviso, incluso en las " +"versiones micro." #: ../Doc/whatsnew/3.7.rst:2449 msgid "Changes in the C API" -msgstr "" +msgstr "Cambios en la API de C" #: ../Doc/whatsnew/3.7.rst:2451 msgid "" @@ -3473,22 +4914,36 @@ msgid "" "`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices`. (Contributed by Serhiy " "Storchaka in :issue:`27867`.)" msgstr "" +"La función :c:func:`PySlice_GetIndicesEx` se considera insegura para " +"secuencias de tamaño variable. Si los índices de corte no son instancias de :" +"class:`int`, sino objetos que implementan el método meth:`!__index__`, la " +"secuencia se puede cambiar de tamaño después de pasar su longitud a :c:func:" +"`!PySlice_GetIndicesEx`. Esto puede llevar a que se devuelvan índices fuera " +"de la longitud de la secuencia. Esto puede llevar a devolver índices fuera " +"de la longitud de la secuencia. Para evitar posibles problemas, use las " +"nuevas funciones :c:func:`PySlice_Unpack` y :c:func:`PySlice_AdjustIndices`. " +"(Contribuido por *Serhiy Storchaka* en :issue:`27867`.)" #: ../Doc/whatsnew/3.7.rst:2462 msgid "CPython bytecode changes" -msgstr "" +msgstr "Cambios en el código de bytes de CPython" #: ../Doc/whatsnew/3.7.rst:2464 msgid "" "There are two new opcodes: :opcode:`LOAD_METHOD` and :opcode:`CALL_METHOD`. " "(Contributed by Yury Selivanov and INADA Naoki in :issue:`26110`.)" msgstr "" +"Hay dos nuevos códigos de operación: :opcode:`LOAD_METHOD` y :opcode:" +"`CALL_METHOD`. (Contribuido por *Yury Selivanov* y *INADA Naoki* en :issue:" +"`26110`.)" #: ../Doc/whatsnew/3.7.rst:2467 msgid "" "The :opcode:`STORE_ANNOTATION` opcode has been removed. (Contributed by Mark " "Shannon in :issue:`32550`.)" msgstr "" +"El código de operación :opcode:`STORE_ANNOTATION` ha sido removido. " +"(Contribuido por *Mark Shannon* en :issue:`32550`.)" #: ../Doc/whatsnew/3.7.rst:2474 msgid "" @@ -3496,10 +4951,14 @@ msgid "" "executable>._pth`` instead of ``'sys.path'``. See :ref:`finding_modules` for " "more information. (Contributed by Steve Dower in :issue:`28137`.)" msgstr "" +"El archivo utilizado para anular :data:`sys.path` es ahora llamado ``._pth`` en lugar de ``’sys.path’``. Consultar :ref:" +"`finding_modules` para mas información. (Contribuido por *Steve Dower* en :" +"issue:`28137`.)" #: ../Doc/whatsnew/3.7.rst:2481 msgid "Other CPython implementation changes" -msgstr "" +msgstr "Otra implementación de cambios en CPython" #: ../Doc/whatsnew/3.7.rst:2483 msgid "" @@ -3515,6 +4974,19 @@ msgid "" "part of :issue:`22257`, and further updated by Nick, Eric, and Victor " "Stinner in a number of other issues). Some known details affected:" msgstr "" +"En preparación para posibles cambios futuros en la API pública de " +"inicialización del tiempo de ejecución de CPython (ver :pep:`432` para un " +"borrador inicial, pero algo desactualizado), La lógica de gestión de " +"configuración y puesta en marcha interna de CPython se ha re-factorizado " +"significativamente. Si bien estas actualizaciones están destinadas a ser " +"completamente transparentes tanto para las aplicaciones integradas como para " +"los usuarios de la CLI de CPython normal, se mencionan aquí ya que la " +"refactorización cambia el orden interno de varias operaciones durante el " +"inicio del intérprete y, por lo tanto, pueden descubrir defectos previamente " +"latentes, ya sea en aplicaciones incrustadas, o en el propio CPython. " +"( Inicialmente contribuido por *Nick Coghlan* y *Eric Snow* como parte de :" +"issue:`22257`, y actualizado por *Nick*, *Eric*, y *Victor Stinner* en " +"varios otros números). Algunos detalles conocidos afectados:" #: ../Doc/whatsnew/3.7.rst:2496 msgid "" @@ -3522,6 +4994,9 @@ msgid "" "applications due to the requirement to create a Unicode object prior to " "calling `Py_Initialize`. Use :c:func:`PySys_AddWarnOption` instead." msgstr "" +":c:func:`PySys_AddWarnOptionUnicode` actualmente no se puede utilizar para " +"incrustar aplicaciones debido al requisito de crear un objeto Unicode antes " +"de llamar `Py_Initialize`. En su lugar use :c:func:`PySys_AddWarnOption`." #: ../Doc/whatsnew/3.7.rst:2500 msgid "" @@ -3529,6 +5004,9 @@ msgid "" "`PySys_AddWarnOption` should now more consistently take precedence over the " "default filters set by the interpreter" msgstr "" +"filtros de advertencias agregados por una aplicación de incrustación con :c:" +"func:`PySys_AddWarnOption` ahora debería tener prioridad sobre los filtros " +"predeterminados establecidos por el intérprete" #: ../Doc/whatsnew/3.7.rst:2504 msgid "" @@ -3539,6 +5017,13 @@ msgid "" "warnings to be emitted in the first place), and an explicit ``error::" "BytesWarning`` warnings filter added to convert them to exceptions." msgstr "" +"Debido a cambios en la forma en que se configuran los filtros de " +"advertencias predeterminados, establecer :c:data:`Py_BytesWarningFlag` en un " +"valor mayor que uno ya no es suficiente para que ambos emitan mensajes :exc:" +"`BytesWarning` y los conviertan en excepciones. En su lugar, se debe " +"establecer la bandera (para hacer que las advertencias se emitan en primer " +"lugar) y se debe agregar un filtro de advertencias explícito ``error::" +"BytesWarning`` para convertirlas en excepciones." #: ../Doc/whatsnew/3.7.rst:2511 msgid "" @@ -3547,6 +5032,11 @@ msgid "" "is now marked as occurring on the same line as the docstring, not on the " "function's header line." msgstr "" +"Debido a un cambio en la forma en que el compilador maneja las cadenas de " +"documentos, el implícito ``return None`` en el cuerpo de una función que " +"consiste únicamente en una cadena de documentos ahora se marca como " +"ocurriendo en la misma línea que la cadena de documentos, no en la línea de " +"encabezado de la función." #: ../Doc/whatsnew/3.7.rst:2516 msgid "" @@ -3555,10 +5045,14 @@ msgid "" "caused by having swap exception state when entering or exiting a generator. " "(Contributed by Mark Shannon in :issue:`25612`.)" msgstr "" +"El estado de excepción actual se ha movido del objeto de trama a la co-" +"rutina. Esto simplificó el intérprete y corrigió un par de errores oscuros " +"causados por tener un estado de excepción de intercambio al ingresar o salir " +"de un generador. (Contribuido por *Mark Shannon* en :issue:`25612`.)" #: ../Doc/whatsnew/3.7.rst:2522 msgid "Notable changes in Python 3.7.1" -msgstr "" +msgstr "Cambios notables en Python 3.7.1" #: ../Doc/whatsnew/3.7.rst:2524 msgid "" @@ -3569,6 +5063,13 @@ msgid "" "to :issue:`34247`). If this behavior is unwanted, set :c:data:" "`Py_IgnoreEnvironmentFlag` to 1 before calling :c:func:`Py_Initialize`." msgstr "" +"A partir de 3.7.1, :c:func:`Py_Initialize` ahora lee y respeta " +"constantemente todos los mismos ajustes de entorno que :c:func:`Py_Main` (en " +"versiones anteriores de Python, respetaba un subconjunto mal definido de " +"esas variables de entorno, mientras que en Python 3.7.0 no leyó ninguna de " +"ellas debido a :issue:`34247`). Si este comportamiento no es deseado, " +"establezca :c:data:`Py_IgnoreEnvironmentFlag` en 1 antes de llamar a :c:func:" +"`Py_Initialize`." #: ../Doc/whatsnew/3.7.rst:2531 msgid "" @@ -3576,6 +5077,9 @@ msgid "" "` to use :c:type:`PyObject` " "pointers. See also :issue:`34762`." msgstr "" +"En 3.7.1 la API C para las variables de Contexto :ref:`ha sido actualizada " +"` para usar punteros :c:type:" +"`PyObject`. Ver también :issue:`34762`." #: ../Doc/whatsnew/3.7.rst:2535 msgid "" @@ -3584,10 +5088,14 @@ msgid "" "behavior now matches what the C tokenizer does internally. (Contributed by " "Ammar Askar in :issue:`33899`.)" msgstr "" +"En 3.7.1 el módulo :mod:`tokenize` ahora emite un token ``NEWLINE`` cuando " +"se le proporciona una entrada que no tiene una nueva línea al final. Este " +"comportamiento ahora coincide con lo que hace el tokenizador C internamente. " +"(Contribuido por *Ammar Askar* en :issue:`33899`.)" #: ../Doc/whatsnew/3.7.rst:2541 msgid "Notable changes in Python 3.7.2" -msgstr "" +msgstr "Cambios notables en Python 3.7.2" #: ../Doc/whatsnew/3.7.rst:2543 msgid "" @@ -3598,10 +5106,17 @@ msgid "" "this release will still require recreation of virtual environments in order " "to get the new scripts." msgstr "" +"En 3.7.2, :mod:`venv` en Windows ya no copia los binarios originales, sino " +"que crea scripts de redireccionamiento llamados ``python.exe`` y ``pythonw." +"exe`` en su lugar. Esto resuelve un problema de larga data en el que todos " +"los entornos virtuales tendrían que actualizarse o recrearse con cada " +"actualización de Python. Sin embargo, tenga en cuenta que esta versión aún " +"requerirá la recreación de entornos virtuales para obtener los nuevos " +"scripts." #: ../Doc/whatsnew/3.7.rst:2551 msgid "Notable changes in Python 3.7.6" -msgstr "" +msgstr "Cambios notables en Python 3.7.6" #: ../Doc/whatsnew/3.7.rst:2553 msgid "" @@ -3612,3 +5127,9 @@ msgid "" "(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" "`37228`.)" msgstr "" +"Debido a importantes problemas de seguridad, el parámetro *reuse_address* " +"de :meth:`asyncio.loop.create_datagram_endpoint` ya no es compatible. Esto " +"se debe al comportamiento de la opción socket ``SO_REUSEADDR`` en UDP. Para " +"obtener más detalles, consulte la documentación de ``loop." +"create_datagram_endpoint()``. (Contribuido por *Kyle Stanley*, *Antoine " +"Pitrou*, y *Yury Selivanov* en :issue:`37228`.)" diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index 52dccc7535..09e13ba42e 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -4,53 +4,58 @@ # 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: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2020-10-16 21:15+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: Francisco Jesús Sevilla García \n" +"Language-Team: \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/whatsnew/3.8.rst:3 msgid "What's New In Python 3.8" -msgstr "" +msgstr "Qué hay de nuevo en Python 3.8" #: ../Doc/whatsnew/3.8.rst msgid "Editor" -msgstr "" +msgstr "Editor" #: ../Doc/whatsnew/3.8.rst:45 msgid "Raymond Hettinger" -msgstr "" +msgstr "Raymond Hettinger" #: ../Doc/whatsnew/3.8.rst:47 msgid "" "This article explains the new features in Python 3.8, compared to 3.7. For " "full details, see the :ref:`changelog `." msgstr "" +"Este artículo explica las nuevas características de Python 3.8, en " +"comparación con 3.7. Para obtener los detalles completos, consultar el :ref:" +"`registro de cambios `." #: ../Doc/whatsnew/3.8.rst:50 msgid "Python 3.8 was released on October 14th, 2019." -msgstr "" +msgstr "Python 3.8 fue lanzado el 14 de octubre de 2019." #: ../Doc/whatsnew/3.8.rst:62 msgid "Summary -- Release highlights" -msgstr "" +msgstr "Resumen -- Aspectos destacados de la versión" #: ../Doc/whatsnew/3.8.rst:73 msgid "New Features" -msgstr "" +msgstr "Nuevas características" #: ../Doc/whatsnew/3.8.rst:76 msgid "Assignment expressions" -msgstr "" +msgstr "Expresiones de asignación" #: ../Doc/whatsnew/3.8.rst:78 msgid "" @@ -59,12 +64,19 @@ msgid "" "to its resemblance to `the eyes and tusks of a walrus `_." msgstr "" +"La nueva sintaxis ``:=`` asigna valores a variables como parte de una " +"expresión más grande. Se le conoce cariñosamente como \"el operador morsa\" " +"debido a su parecido con `los ojos y colmillos de una morsa `_." #: ../Doc/whatsnew/3.8.rst:83 msgid "" "In this example, the assignment expression helps avoid calling :func:`len` " "twice::" msgstr "" +"En el siguiente ejemplo, la expresión de asignación ayuda evitando que se " +"tenga que llamar a :func:`len` dos veces::" #: ../Doc/whatsnew/3.8.rst:89 msgid "" @@ -72,6 +84,10 @@ msgid "" "objects are needed twice, once to test whether a match occurred and another " "to extract a subgroup::" msgstr "" +"Un beneficio similar surge durante la búsqueda de coincidencias mediante " +"expresiones regulares donde los objetos de coincidencias se necesitan dos " +"veces, una para comprobar si se produjo una coincidencia y otra para extraer " +"un subgrupo::" #: ../Doc/whatsnew/3.8.rst:97 msgid "" @@ -79,30 +95,38 @@ msgid "" "loop termination and then need that same value again in the body of the " "loop::" msgstr "" +"El operador también es útil en bucles while que calculan un valor para " +"comprobar la terminación del bucle y posteriormente necesitan nuevamente ese " +"mismo valor en el cuerpo del bucle::" #: ../Doc/whatsnew/3.8.rst:105 msgid "" "Another motivating use case arises in list comprehensions where a value " "computed in a filtering condition is also needed in the expression body::" msgstr "" +"Otra motivación de uso surge en las listas por comprensión en las que un " +"valor calculado en una condición de filtrado también se necesita en el " +"cuerpo de la expresión::" #: ../Doc/whatsnew/3.8.rst:112 msgid "" "Try to limit use of the walrus operator to clean cases that reduce " "complexity and improve readability." msgstr "" +"Intenta limitar el uso del \"operador morsa\" a aquellos casos en los que " +"reduce la complejidad y mejora la legibilidad del código." #: ../Doc/whatsnew/3.8.rst:115 msgid "See :pep:`572` for a full description." -msgstr "" +msgstr "Consultar :pep:`572` para obtener una descripción completa." #: ../Doc/whatsnew/3.8.rst:117 msgid "(Contributed by Emily Morehouse in :issue:`35224`.)" -msgstr "" +msgstr "(Contribución de Emily Morehouse en :issue:`35224`.)" #: ../Doc/whatsnew/3.8.rst:121 msgid "Positional-only parameters" -msgstr "" +msgstr "Parámetros solo posicionales" #: ../Doc/whatsnew/3.8.rst:123 msgid "" @@ -112,6 +136,12 @@ msgid "" "functions annotated with Larry Hastings' `Argument Clinic `_ tool." msgstr "" +"Hay una nueva sintaxis para establecer parámetro de función, ``/``, para " +"indicar que algunos parámetros de función deben especificarse solo " +"posicionalmente y no pueden usarse como argumentos por palabra clave. Esta " +"es la misma notación que muestra ``help()`` para las funciones de C anotadas " +"con la herramienta `Argument Clinic `_ de Larry Hastings." #: ../Doc/whatsnew/3.8.rst:129 msgid "" @@ -119,14 +149,17 @@ msgid "" "*c* or *d* can be positional or keyword, and *e* or *f* are required to be " "keywords::" msgstr "" +"En el siguiente ejemplo, los parámetros *a* y *b* son solo posicionales, " +"mientras que *c* o *d* pueden ser posicionales o por palabra clave y *e* o " +"*f* deben proporcionarse por palabra clave exclusivamente::" #: ../Doc/whatsnew/3.8.rst:136 msgid "The following is a valid call::" -msgstr "" +msgstr "La siguiente es una invocación válida::" #: ../Doc/whatsnew/3.8.rst:140 msgid "However, these are invalid calls::" -msgstr "" +msgstr "Sin embargo, estas son invocaciones inválidas::" #: ../Doc/whatsnew/3.8.rst:145 msgid "" @@ -134,6 +167,10 @@ msgid "" "fully emulate behaviors of existing C coded functions. For example, the " "built-in :func:`divmod` function does not accept keyword arguments::" msgstr "" +"Un caso de uso de esta notación es permitir que las funciones puras de " +"Python emulen completamente los comportamientos de las funciones codificadas " +"en C existentes. Por ejemplo, la función incorporada :func:`divmod` no " +"acepta argumentos por palabra clave::" #: ../Doc/whatsnew/3.8.rst:153 msgid "" @@ -141,6 +178,10 @@ msgid "" "not helpful. For example, the builtin :func:`len` function has the " "signature ``len(obj, /)``. This precludes awkward calls such as::" msgstr "" +"Otro caso de uso es excluir los argumentos por palabra clave cuando el " +"nombre del parámetro no es útil. Por ejemplo, la función incorporada :func:" +"`len` tiene la firma ``len(obj, /)``. Esto excluye llamadas inoportunas " +"como::" #: ../Doc/whatsnew/3.8.rst:159 msgid "" @@ -150,12 +191,20 @@ msgid "" "parameter name *dist* may be changed in the future. This was made possible " "with the following function specification::" msgstr "" +"Un beneficio adicional de marcar un parámetro como solo posicional es que " +"permite cambiar el nombre del parámetro en el futuro sin riesgo de romper el " +"código del cliente. Por ejemplo, en el módulo :mod:`statistics`, el nombre " +"del parámetro *dist* puede cambiarse en el futuro. Esto es posible gracias a " +"la siguiente especificación de función::" #: ../Doc/whatsnew/3.8.rst:168 msgid "" "Since the parameters to the left of ``/`` are not exposed as possible " "keywords, the parameters names remain available for use in ``**kwargs``::" msgstr "" +"Dado que los parámetros a la izquierda de ``/`` no se exponen como posibles " +"palabras clave, los nombres de los parámetros permanecen disponibles para su " +"uso en ``**kwargs``::" #: ../Doc/whatsnew/3.8.rst:177 msgid "" @@ -163,18 +212,22 @@ msgid "" "need to accept arbitrary keyword arguments. For example, here is an excerpt " "from code in the :mod:`collections` module::" msgstr "" +"Esto simplifica enormemente la implementación de funciones y métodos que " +"necesitan aceptar argumentos por palabra clave arbitrarios. Por ejemplo, " +"aquí hay un extracto del código del módulo :mod:`collections`::" #: ../Doc/whatsnew/3.8.rst:186 msgid "See :pep:`570` for a full description." -msgstr "" +msgstr "Consultar :pep:`570` para obtener una descripción completa." #: ../Doc/whatsnew/3.8.rst:188 msgid "(Contributed by Pablo Galindo in :issue:`36540`.)" -msgstr "" +msgstr "(Contribución de Pablo Galindo en :issue:`36540`.)" #: ../Doc/whatsnew/3.8.rst:194 msgid "Parallel filesystem cache for compiled bytecode files" msgstr "" +"Caché del sistema de archivos paralelo para archivos de bytecode compilados" #: ../Doc/whatsnew/3.8.rst:196 msgid "" @@ -183,20 +236,30 @@ msgid "" "separate parallel filesystem tree, rather than the default ``__pycache__`` " "subdirectories within each source directory." msgstr "" +"La nueva configuración :envvar:`PYTHONPYCACHEPREFIX` (también disponible " +"mediante la opción :option:`-X` ``pycache_prefix``) configura la caché " +"implícita de bytecode para que use un árbol del sistema de archivos paralelo " +"separado, en lugar de los subdirectorios ``__pycache__`` predeterminados " +"dentro cada directorio de origen." #: ../Doc/whatsnew/3.8.rst:202 msgid "" "The location of the cache is reported in :data:`sys.pycache_prefix` (:const:" "`None` indicates the default location in ``__pycache__`` subdirectories)." msgstr "" +"La ubicación de la caché se define en :data:`sys.pycache_prefix` (:const:" +"`None` indica la ubicación predeterminada en los subdirectorios " +"``__pycache__``)." #: ../Doc/whatsnew/3.8.rst:206 msgid "(Contributed by Carl Meyer in :issue:`33499`.)" -msgstr "" +msgstr "(Contribución de Carl Meyer en :issue:`33499`.)" #: ../Doc/whatsnew/3.8.rst:210 msgid "Debug build uses the same ABI as release build" msgstr "" +"La compilación de depuración usa la misma ABI que la compilación de " +"lanzamiento" #: ../Doc/whatsnew/3.8.rst:212 msgid "" @@ -204,6 +267,10 @@ msgid "" "Unix, when Python is built in debug mode, it is now possible to load C " "extensions built in release mode and C extensions built using the stable ABI." msgstr "" +"Python ahora usa la misma ABI, independientemente de que esté compilado en " +"modo de lanzamiento o de depuración. En Unix, cuando Python se compila en " +"modo de depuración, ahora es posible cargar extensiones C compiladas en modo " +"de lanzamiento y extensiones C compiladas usando la ABI estable." #: ../Doc/whatsnew/3.8.rst:216 msgid "" @@ -214,6 +281,13 @@ msgid "" "environment variable, can be set using the new ``./configure --with-trace-" "refs`` build option. (Contributed by Victor Stinner in :issue:`36465`.)" msgstr "" +"Las versiones de lanzamiento y las versiones de depuración ahora son ABI " +"compatibles: definir la macro ``Py_DEBUG`` ya no implica la macro " +"``Py_TRACE_REFS``, que introducía la única incompatibilidad de la ABI. La " +"macro ``Py_TRACE_REFS``, que agrega la función :func:`sys.getobjects` y la " +"variable de entorno :envvar:`PYTHONDUMPREFS`, se puede establecer usando la " +"nueva opción de compilación ``./configure --with-trace-refs``. (Contribución " +"de Victor Stinner en :issue:`36465`.)" #: ../Doc/whatsnew/3.8.rst:224 msgid "" @@ -222,6 +296,10 @@ msgid "" "extension built using a shared library Python. (Contributed by Victor " "Stinner in :issue:`21536`.)" msgstr "" +"En Unix, las extensiones en C ya no están enlazadas a libpython, excepto en " +"Android y Cygwin. Ahora es posible que un intérprete Python enlazado " +"estáticamente cargue una extensión de C creada con una biblioteca dinámica " +"de Python. (Contribución de Victor Stinner en :issue:`21536`.)" #: ../Doc/whatsnew/3.8.rst:231 msgid "" @@ -229,6 +307,10 @@ msgid "" "extensions compiled in release mode and for C extensions compiled with the " "stable ABI. (Contributed by Victor Stinner in :issue:`36722`.)" msgstr "" +"En Unix, cuando Python se compila en modo de depuración, la importación " +"ahora también busca extensiones C compiladas en modo de lanzamiento y " +"extensiones C compiladas con la ABI estable. (Contribución de Victor Stinner " +"en :issue:`36722`.)" #: ../Doc/whatsnew/3.8.rst:236 msgid "" @@ -238,6 +320,12 @@ msgid "" "config --libs --embed`` first and fallback to ``python3-config --libs`` " "(without ``--embed``) if the previous command fails." msgstr "" +"Para integrar Python en una aplicación, se debe pasar una nueva opción ``--" +"embed`` a ``python3-config --libs --embed`` para obtener ``-lpython3.8`` " +"(enlaza la aplicación a libpython ). Para ser compatible con 3.8 y versiones " +"anteriores, prueba primero con ``python3-config --libs --embed`` y vuelve a " +"usar ``python3-config --libs`` (sin ``--embed``) si falla el comando " +"anterior." #: ../Doc/whatsnew/3.8.rst:242 msgid "" @@ -248,6 +336,12 @@ msgid "" "(without ``--embed``) if the previous command fails (replace ``X.Y`` with " "the Python version)." msgstr "" +"Agrega un módulo pkg-config ``python-3.8-embed`` para integrar Python en una " +"aplicación: ``pkg-config python-3.8-embed --libs`` incluye ``-lpython3.8``. " +"Para que sea compatible con 3.8 y versiones anteriores, primero intenta usar " +"``pkg-config python-X.Y-embed --libs`` y vuelve a ``pkg-config python-X.Y --" +"libs`` (sin ``--embed``) si el comando anterior falla (reemplaza ``XY`` con " +"la versión de Python)." #: ../Doc/whatsnew/3.8.rst:248 msgid "" @@ -257,10 +351,16 @@ msgid "" "backward incompatible on purpose. (Contributed by Victor Stinner in :issue:" "`36721`.)" msgstr "" +"Por otro lado, ``pkg-config python3.8 --libs`` ya no contiene ``-" +"lpython3.8``. Las extensiones en C no deben estar enlazadas a libpython " +"(excepto en Android y Cygwin, cuyos casos son manejados por el script); este " +"cambio no es retrocompatible a propósito. (Contribución de Victor Stinner " +"en :issue:`36721`.)" #: ../Doc/whatsnew/3.8.rst:256 msgid "f-strings support ``=`` for self-documenting expressions and debugging" msgstr "" +"Los f-strings soportan ``=`` para expresiones autodocumentadas y depuración" #: ../Doc/whatsnew/3.8.rst:258 msgid "" @@ -268,26 +368,34 @@ msgid "" "``f'{expr=}'`` will expand to the text of the expression, an equal sign, " "then the representation of the evaluated expression. For example:" msgstr "" +"Se ha agregado un especificador ``=`` a los :term:`f-string`\\s. Un f-string " +"como ``f'{expr=}'`` se expandirá al texto de la expresión, seguido de un " +"signo igual y luego la representación de la expresión evaluada. Por ejemplo:" #: ../Doc/whatsnew/3.8.rst:267 msgid "" "The usual :ref:`f-string format specifiers ` allow more control " "over how the result of the expression is displayed::" msgstr "" +"Los :ref:`especificadores de formato de los f-string ` usuales " +"permiten un mayor control sobre como se muestra el resultado de la " +"expresión::" #: ../Doc/whatsnew/3.8.rst:274 msgid "" "The ``=`` specifier will display the whole expression so that calculations " "can be shown::" msgstr "" +"El especificador ``=`` mostrará la expresión completa para que se puedan " +"mostrar los cálculos:" #: ../Doc/whatsnew/3.8.rst:280 msgid "(Contributed by Eric V. Smith and Larry Hastings in :issue:`36817`.)" -msgstr "" +msgstr "(Contribución de Eric V. Smith y Larry Hastings en :issue:`36817`.)" #: ../Doc/whatsnew/3.8.rst:284 msgid "PEP 578: Python Runtime Audit Hooks" -msgstr "" +msgstr "PEP 578: Ganchos de auditoría en tiempo de ejecución de Python" #: ../Doc/whatsnew/3.8.rst:286 msgid "" @@ -297,14 +405,20 @@ msgid "" "embedders or system administrators to deploy builds of Python where auditing " "is always enabled." msgstr "" +"Este PEP agrega un gancho de auditoría y un gancho abierto verificado. Ambos " +"están disponibles desde Python y desde el código nativo, lo que permite que " +"las aplicaciones y los frameworks escritos en código Python puro aprovechen " +"las notificaciones adicionales, al tiempo que permiten a los integradores o " +"administradores de sistemas implementar compilaciones de Python donde la " +"auditoría siempre está habilitada." #: ../Doc/whatsnew/3.8.rst:292 msgid "See :pep:`578` for full details." -msgstr "" +msgstr "Consultar :pep:`578` para obtener más detalles." #: ../Doc/whatsnew/3.8.rst:296 msgid "PEP 587: Python Initialization Configuration" -msgstr "" +msgstr "PEP 587: Configuración de inicialización de Python" #: ../Doc/whatsnew/3.8.rst:298 msgid "" @@ -312,134 +426,137 @@ msgid "" "providing finer control on the whole configuration and better error " "reporting." msgstr "" +"El :pep:`587` agrega una nueva API de C para configurar la inicialización de " +"Python, proporcionando un control más preciso de toda la configuración y " +"mejores informes de errores." #: ../Doc/whatsnew/3.8.rst:301 msgid "New structures:" -msgstr "" +msgstr "Nuevas estructuras:" #: ../Doc/whatsnew/3.8.rst:303 msgid ":c:type:`PyConfig`" -msgstr "" +msgstr ":c:type:`PyConfig`" #: ../Doc/whatsnew/3.8.rst:304 msgid ":c:type:`PyPreConfig`" -msgstr "" +msgstr ":c:type:`PyPreConfig`" #: ../Doc/whatsnew/3.8.rst:305 msgid ":c:type:`PyStatus`" -msgstr "" +msgstr ":c:type:`PyStatus`" #: ../Doc/whatsnew/3.8.rst:306 msgid ":c:type:`PyWideStringList`" -msgstr "" +msgstr ":c:type:`PyWideStringList`" #: ../Doc/whatsnew/3.8.rst:308 msgid "New functions:" -msgstr "" +msgstr "Nuevas funciones:" #: ../Doc/whatsnew/3.8.rst:310 msgid ":c:func:`PyConfig_Clear`" -msgstr "" +msgstr ":c:func:`PyConfig_Clear`" #: ../Doc/whatsnew/3.8.rst:311 msgid ":c:func:`PyConfig_InitIsolatedConfig`" -msgstr "" +msgstr ":c:func:`PyConfig_InitIsolatedConfig`" #: ../Doc/whatsnew/3.8.rst:312 msgid ":c:func:`PyConfig_InitPythonConfig`" -msgstr "" +msgstr ":c:func:`PyConfig_InitPythonConfig`" #: ../Doc/whatsnew/3.8.rst:313 msgid ":c:func:`PyConfig_Read`" -msgstr "" +msgstr ":c:func:`PyConfig_Read`" #: ../Doc/whatsnew/3.8.rst:314 msgid ":c:func:`PyConfig_SetArgv`" -msgstr "" +msgstr ":c:func:`PyConfig_SetArgv`" #: ../Doc/whatsnew/3.8.rst:315 msgid ":c:func:`PyConfig_SetBytesArgv`" -msgstr "" +msgstr ":c:func:`PyConfig_SetBytesArgv`" #: ../Doc/whatsnew/3.8.rst:316 msgid ":c:func:`PyConfig_SetBytesString`" -msgstr "" +msgstr ":c:func:`PyConfig_SetBytesString`" #: ../Doc/whatsnew/3.8.rst:317 msgid ":c:func:`PyConfig_SetString`" -msgstr "" +msgstr ":c:func:`PyConfig_SetString`" #: ../Doc/whatsnew/3.8.rst:318 msgid ":c:func:`PyPreConfig_InitIsolatedConfig`" -msgstr "" +msgstr ":c:func:`PyPreConfig_InitIsolatedConfig`" #: ../Doc/whatsnew/3.8.rst:319 msgid ":c:func:`PyPreConfig_InitPythonConfig`" -msgstr "" +msgstr ":c:func:`PyPreConfig_InitPythonConfig`" #: ../Doc/whatsnew/3.8.rst:320 msgid ":c:func:`PyStatus_Error`" -msgstr "" +msgstr ":c:func:`PyStatus_Error`" #: ../Doc/whatsnew/3.8.rst:321 msgid ":c:func:`PyStatus_Exception`" -msgstr "" +msgstr ":c:func:`PyStatus_Exception`" #: ../Doc/whatsnew/3.8.rst:322 msgid ":c:func:`PyStatus_Exit`" -msgstr "" +msgstr ":c:func:`PyStatus_Exit`" #: ../Doc/whatsnew/3.8.rst:323 msgid ":c:func:`PyStatus_IsError`" -msgstr "" +msgstr ":c:func:`PyStatus_IsError`" #: ../Doc/whatsnew/3.8.rst:324 msgid ":c:func:`PyStatus_IsExit`" -msgstr "" +msgstr ":c:func:`PyStatus_IsExit`" #: ../Doc/whatsnew/3.8.rst:325 msgid ":c:func:`PyStatus_NoMemory`" -msgstr "" +msgstr ":c:func:`PyStatus_NoMemory`" #: ../Doc/whatsnew/3.8.rst:326 msgid ":c:func:`PyStatus_Ok`" -msgstr "" +msgstr ":c:func:`PyStatus_Ok`" #: ../Doc/whatsnew/3.8.rst:327 msgid ":c:func:`PyWideStringList_Append`" -msgstr "" +msgstr ":c:func:`PyWideStringList_Append`" #: ../Doc/whatsnew/3.8.rst:328 msgid ":c:func:`PyWideStringList_Insert`" -msgstr "" +msgstr ":c:func:`PyWideStringList_Insert`" #: ../Doc/whatsnew/3.8.rst:329 msgid ":c:func:`Py_BytesMain`" -msgstr "" +msgstr ":c:func:`Py_BytesMain`" #: ../Doc/whatsnew/3.8.rst:330 msgid ":c:func:`Py_ExitStatusException`" -msgstr "" +msgstr ":c:func:`Py_ExitStatusException`" #: ../Doc/whatsnew/3.8.rst:331 msgid ":c:func:`Py_InitializeFromConfig`" -msgstr "" +msgstr ":c:func:`Py_InitializeFromConfig`" #: ../Doc/whatsnew/3.8.rst:332 msgid ":c:func:`Py_PreInitialize`" -msgstr "" +msgstr ":c:func:`Py_PreInitialize`" #: ../Doc/whatsnew/3.8.rst:333 msgid ":c:func:`Py_PreInitializeFromArgs`" -msgstr "" +msgstr ":c:func:`Py_PreInitializeFromArgs`" #: ../Doc/whatsnew/3.8.rst:334 msgid ":c:func:`Py_PreInitializeFromBytesArgs`" -msgstr "" +msgstr ":c:func:`Py_PreInitializeFromBytesArgs`" #: ../Doc/whatsnew/3.8.rst:335 msgid ":c:func:`Py_RunMain`" -msgstr "" +msgstr ":c:func:`Py_RunMain`" #: ../Doc/whatsnew/3.8.rst:337 msgid "" @@ -449,24 +566,31 @@ msgid "" "reference configuration, replacing global configuration variables and other " "private variables." msgstr "" +"Este PEP también agrega los campos ``_PyRuntimeState.preconfig`` (tipo :c:" +"type:`PyPreConfig`) y ``PyInterpreterState.config`` (tipo :c:type:" +"`PyConfig`) a estas estructuras internas. ``PyInterpreterState.config`` se " +"convierte en la nueva configuración de referencia, reemplazando las " +"variables de configuración globales y otras variables privadas." #: ../Doc/whatsnew/3.8.rst:343 msgid "" "See :ref:`Python Initialization Configuration ` for the " "documentation." msgstr "" +"Consultar :ref:`Configuración de inicialización de Python ` " +"para la documentación." #: ../Doc/whatsnew/3.8.rst:346 msgid "See :pep:`587` for a full description." -msgstr "" +msgstr "Consultar :pep:`587` para obtener una descripción completa." #: ../Doc/whatsnew/3.8.rst:348 msgid "(Contributed by Victor Stinner in :issue:`36763`.)" -msgstr "" +msgstr "(Contribución de Victor Stinner en :issue:`36763`.)" #: ../Doc/whatsnew/3.8.rst:352 msgid "Vectorcall: a fast calling protocol for CPython" -msgstr "" +msgstr "Vectorcall: un protocolo de invocación rápida para CPython" #: ../Doc/whatsnew/3.8.rst:354 msgid "" @@ -474,24 +598,30 @@ msgid "" "formalize existing optimizations which were already done for various " "classes. Any extension 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." #: ../Doc/whatsnew/3.8.rst:359 msgid "" "This is currently provisional. The aim is to make it fully public in Python " "3.9." msgstr "" +"Actualmente es provisional. El objetivo es hacerlo completamente público en " +"Python 3.9." #: ../Doc/whatsnew/3.8.rst:362 msgid "See :pep:`590` for a full description." -msgstr "" +msgstr "Consultar :pep:`590` para obtener una descripción completa." #: ../Doc/whatsnew/3.8.rst:364 msgid "(Contributed by Jeroen Demeyer and Mark Shannon in :issue:`36974`.)" -msgstr "" +msgstr "(Contribución de Jeroen Demeyer y Mark Shannon en :issue:`36974`.)" #: ../Doc/whatsnew/3.8.rst:368 msgid "Pickle protocol 5 with out-of-band data buffers" -msgstr "" +msgstr "Protocolo 5 de Pickle con búferes de datos fuera de banda" #: ../Doc/whatsnew/3.8.rst:370 msgid "" @@ -500,6 +630,11 @@ msgid "" "important to optimize the transfer by reducing memory copies, and possibly " "by applying custom techniques such as data-dependent compression." msgstr "" +"Cuando :mod:`pickle` se usa para transferir grandes cantidades de datos " +"entre procesos de Python, con la finalidad de aprovechar el procesamiento de " +"múltiples núcleos o máquinas, es importante optimizar la transferencia " +"reduciendo las copias en memoria y posiblemente aplicando técnicas " +"personalizadas, como la compresión dependiente de datos." #: ../Doc/whatsnew/3.8.rst:375 msgid "" @@ -507,18 +642,22 @@ msgid "" "where :pep:`3118`-compatible data can be transmitted separately from the " "main pickle stream, at the discretion of the communication layer." msgstr "" +"El protocolo 5 de :mod:`pickle` introduce soporte para búferes fuera de " +"banda, donde los datos compatibles con :pep:`3118` se pueden transmitir " +"separados del flujo principal de pickle, a discreción de la capa de " +"comunicación." #: ../Doc/whatsnew/3.8.rst:379 msgid "See :pep:`574` for a full description." -msgstr "" +msgstr "Consultar :pep:`574` para obtener una descripción completa." #: ../Doc/whatsnew/3.8.rst:381 msgid "(Contributed by Antoine Pitrou in :issue:`36785`.)" -msgstr "" +msgstr "(Contribución de Antoine Pitrou en :issue:`36785`.)" #: ../Doc/whatsnew/3.8.rst:385 msgid "Other Language Changes" -msgstr "" +msgstr "Otros cambios en el lenguaje" #: ../Doc/whatsnew/3.8.rst:387 msgid "" @@ -526,6 +665,10 @@ msgid "" "due to a problem with the implementation. In Python 3.8 this restriction " "was lifted. (Contributed by Serhiy Storchaka in :issue:`32489`.)" msgstr "" +"La declaración :keyword:`continue` era ilegal en la cláusula :keyword:" +"`finally` debido a un problema con la implementación. En Python 3.8 se ha " +"eliminado esta restricción. (Contribución de Serhiy Storchaka en :issue:" +"`32489`.)" #: ../Doc/whatsnew/3.8.rst:392 msgid "" @@ -536,6 +679,12 @@ msgid "" "it work across multiple numeric types. (Contributed by Lisa Roach in :issue:" "`33073` and Raymond Hettinger in :issue:`37819`.)" msgstr "" +"Los tipos :class:`bool`, :class:`int` y :class:`fractions.Fraction` ahora " +"tienen un método :meth:`~int.as_integer_ratio` como el que se encuentra en :" +"class:`float` y :class:`decimal.Decimal`. Esta extensión menor de la API " +"hace posible escribir ``numerator, denominator = x.as_integer_ratio()`` y " +"hacer que funcione con múltiples tipos numéricos. (Contribución de Lisa " +"Roach en :issue:`33073` y de Raymond Hettinger en :issue:`37819`.)" #: ../Doc/whatsnew/3.8.rst:400 msgid "" @@ -545,22 +694,33 @@ msgid "" "meth:`~object.__complex__` is not available. (Contributed by Serhiy " "Storchaka in :issue:`20092`.)" msgstr "" +"Los constructores de :class:`int`, :class:`float` y :class:`complex` ahora " +"usarán el método especial :meth:`~object .__index__`, si está disponible y " +"el método correspondiente :meth:`~object.__int__`, :meth:`~object.__float__` " +"o :meth:`~object.__complex__` no está disponible. (Contribución de Serhiy " +"Storchaka en :issue:`20092`.)" #: ../Doc/whatsnew/3.8.rst:406 msgid "" "Added support of ``\\N{name}`` escapes in :mod:`regular expressions `::" msgstr "" +"Agregado soporte para escapes ``\\N{name}`` en :mod:`expresiones regulares " +"`::" #: ../Doc/whatsnew/3.8.rst:413 msgid "" "(Contributed by Jonathan Eunice and Serhiy Storchaka in :issue:`30688`.)" msgstr "" +"(Contribución de Jonathan Eunice y Serhiy Storchaka in :issue:`30688`.)" #: ../Doc/whatsnew/3.8.rst:415 msgid "" "Dict and dictviews are now iterable in reversed insertion order using :func:" "`reversed`. (Contributed by Rémi Lapeyre in :issue:`33462`.)" msgstr "" +"Los diccionarios y sus vistas ahora se pueden iterar en orden inverso de " +"inserción usando :func:`reversed`. (Contribución de Rémi Lapeyre en :issue:" +"`33462`.)" #: ../Doc/whatsnew/3.8.rst:418 msgid "" @@ -570,6 +730,11 @@ msgid "" "keyword argument assignment term. (Contributed by Benjamin Peterson in :" "issue:`34641`.)" msgstr "" +"La sintaxis permitida para los nombres por palabra clave en las llamadas a " +"funciones se ha restringido aún más. En particular, ``f((keyword)=arg)`` ya " +"no está permitido. Nunca se tuvo intención de permitir algo más que un " +"simple nombre en el lado izquierdo de un término de asignación de argumento " +"por palabra clave. (Contribución de Benjamin Peterson en :issue:`34641`.)" #: ../Doc/whatsnew/3.8.rst:424 msgid "" @@ -577,10 +742,14 @@ msgid "" "statements no longer requires enclosing parentheses. This brings the *yield* " "and *return* syntax into better agreement with normal assignment syntax::" msgstr "" +"El desempaquetado de iterables generalizado en declaraciones :keyword:" +"`yield` y :keyword:`return` ya no requiere ser encerrado entre paréntesis. " +"Esto hace que la sintaxis de *yield* y *return* se asemeje más a la sintaxis " +"normal de asignación::" #: ../Doc/whatsnew/3.8.rst:436 msgid "(Contributed by David Cuthbert and Jordan Chapman in :issue:`32117`.)" -msgstr "" +msgstr "(Contribución de David Cuthbert y Jordan Chapman en :issue:`32117`.)" #: ../Doc/whatsnew/3.8.rst:438 msgid "" @@ -589,6 +758,11 @@ msgid "" "just having a :exc:`TypeError` indicating that the first tuple was not " "callable. (Contributed by Serhiy Storchaka in :issue:`15248`.)" msgstr "" +"Cuando falta una coma en el código, como en ``[(10, 20) (30, 40)]``, el " +"compilador muestra un :exc:`SyntaxWarning` con una sugerencia útil. Esto " +"representa una mejora con respecto a la implementación previa en la que solo " +"se mostraba un :exc:`TypeError` indicando que la primera tupla no era " +"invocable. (Contribución de Serhiy Storchaka en :issue:`15248`.)" #: ../Doc/whatsnew/3.8.rst:444 msgid "" @@ -599,6 +773,13 @@ msgid "" "uses :class:`datetime.timedelta` arithmetic, such as :meth:`~datetime." "datetime.astimezone`. (Contributed by Paul Ganssle in :issue:`32417`.)" msgstr "" +"Las operaciones aritméticas entre subclases de :class:`datetime.date` o :" +"class:`datetime.datetime` y :class:`datetime.timedelta` ahora retornan una " +"instancia de la subclase, en lugar de la clase base. Esto también afecta al " +"tipo de retorno de las operaciones cuya implementación (directa o " +"indirectamente) usa la aritmética de :class:`datetime.timedelta`, como :meth:" +"`~datetime.datetime.astimezone`. (Contribución de Paul Ganssle en :issue:" +"`32417`.)" #: ../Doc/whatsnew/3.8.rst:452 msgid "" @@ -609,6 +790,14 @@ msgid "" "POSIX and Windows use this to properly terminate scripts in interactive " "sessions. (Contributed by Google via Gregory P. Smith in :issue:`1054041`.)" msgstr "" +"Cuando el intérprete de Python es interrumpido por Ctrl-C (SIGINT) y la " +"excepción :exc:`KeyboardInterrupt` resultante no se detecta, el proceso de " +"Python ahora termina su ejecución a través de una señal SIGINT o con el " +"código de salida correcto, de modo que el proceso que lo invocó puede " +"detectar que murió debido a Ctrl-C. Los shells en POSIX y Windows usan esto " +"para terminar la ejecución de los scripts en sesiones interactivas de forma " +"correcta. (Contribución de Google a través de Gregory P. Smith en :issue:" +"`1054041`.)" #: ../Doc/whatsnew/3.8.rst:459 msgid "" @@ -619,16 +808,24 @@ msgid "" "the new ``replace()`` method makes it possible to create a clone with a few " "altered parameters." msgstr "" +"Algunos estilos de programación avanzados requieren actualizar el objeto :" +"class:`types.CodeType` para una función ya existente. Dado que los objetos " +"de código son inmutables, es necesario crear un nuevo objeto de código, que " +"sea modelado a partir del objeto de código existente. Con 19 parámetros, " +"esto era algo tedioso. Ahora, el nuevo método ``replace()`` hace posible " +"crear un clon con algunos parámetros alterados." #: ../Doc/whatsnew/3.8.rst:466 msgid "" "Here's an example that alters the :func:`statistics.mean` function to " "prevent the *data* parameter from being used as a keyword argument::" msgstr "" +"Aquí hay un ejemplo que modifica la función :func:`statistics.mean` para " +"evitar que el parámetro *data* se use como un argumento por palabra clave::" #: ../Doc/whatsnew/3.8.rst:478 msgid "(Contributed by Victor Stinner in :issue:`37032`.)" -msgstr "" +msgstr "(Contribución de Victor Stinner en :issue:`37032`.)" #: ../Doc/whatsnew/3.8.rst:480 msgid "" @@ -640,6 +837,13 @@ msgid "" "inverse `_ of " "38 modulo 137, write::" msgstr "" +"Para enteros, la forma de tres argumentos de la función :func:`pow` ahora " +"permite que el exponente sea negativo en el caso de que la base y el módulo " +"sean primos relativos (coprimos). Luego calcula un inverso modular a la base " +"cuando el exponente es ``-1`` y una potencia adecuada de ese inverso en el " +"caso de otros exponentes negativos. Por ejemplo, para calcular el `inverso " +"multiplicativo `_ de 38 módulo 137, escribe::" #: ../Doc/whatsnew/3.8.rst:494 msgid "" @@ -648,16 +852,22 @@ msgid "" "integer solutions for ``4258𝑥 + 147𝑦 = 369``, first rewrite as ``4258𝑥 ≡ 369 " "(mod 147)`` then solve:" msgstr "" +"Los inversos modulares surgen de la solución de `ecuaciones diofánticas " +"lineales `_. " +"Por ejemplo, para encontrar soluciones enteras para ``4258𝑥 + 147𝑦 = 369``, " +"primero debes reescribirla como ``4258𝑥 ≡ 369 (mod 147)`` y luego resolver:" #: ../Doc/whatsnew/3.8.rst:504 msgid "(Contributed by Mark Dickinson in :issue:`36027`.)" -msgstr "" +msgstr "(Contribución de Mark Dickinson en :issue:`36027`.)" #: ../Doc/whatsnew/3.8.rst:506 msgid "" "Dict comprehensions have been synced-up with dict literals so that the key " "is computed first and the value second::" msgstr "" +"Las compresiones de diccionarios se han sincronizado con los literales de " +"diccionario para que primero se calcule la clave y posteriormente el valor::" #: ../Doc/whatsnew/3.8.rst:521 msgid "" @@ -665,10 +875,13 @@ msgid "" "because variables assigned in the key expression will be available in the " "value expression::" msgstr "" +"Este orden de ejecución garantizado es especialmente útil en las expresiones " +"de asignación porque las variables asignadas en la expresión de la clave " +"estarán disponibles en la expresión del valor::" #: ../Doc/whatsnew/3.8.rst:531 msgid "(Contributed by Jörn Heissler in :issue:`35224`.)" -msgstr "" +msgstr "(Contribución de Jörn Heissler en :issue:`35224`.)" #: ../Doc/whatsnew/3.8.rst:533 msgid "" @@ -680,10 +893,17 @@ msgid "" "`~__setstate__` method. (Contributed by Pierre Glaser and Olivier Grisel in :" "issue:`35900`.)" msgstr "" +"El método :meth:`object.__reduce__` ahora puede retornar una tupla con una " +"longitud que va desde los dos a los seis elementos. Anteriormente, el límite " +"era cinco. El nuevo sexto elemento opcional es un invocable con una firma " +"``(obj, state)``. Esto permite el control directo sobre el comportamiento de " +"actualización de estado de un objeto específico. Si no es *None*, este " +"invocable tendrá prioridad sobre el método :meth:`~__setstate__` del objeto. " +"(Contribución de Pierre Glaser y Olivier Grisel en :issue:`35900`.)" #: ../Doc/whatsnew/3.8.rst:542 msgid "New Modules" -msgstr "" +msgstr "Nuevos módulos" #: ../Doc/whatsnew/3.8.rst:544 msgid "" @@ -691,18 +911,22 @@ msgid "" "reading metadata from third-party packages. For example, it can extract an " "installed package's version number, list of entry points, and more::" msgstr "" +"El nuevo módulo :mod:`importlib.metadata` proporciona soporte (provisional) " +"para leer metadatos de paquetes de terceros. Por ejemplo, puede extraer el " +"número de versión de un paquete instalado, la lista de puntos de entrada y " +"más::" #: ../Doc/whatsnew/3.8.rst:563 msgid "(Contributed by Barry Warsaw and Jason R. Coombs in :issue:`34632`.)" -msgstr "" +msgstr "(Contribución de Barry Warsaw y Jason R. Coombs en :issue:`34632`.)" #: ../Doc/whatsnew/3.8.rst:567 msgid "Improved Modules" -msgstr "" +msgstr "Módulos mejorados" #: ../Doc/whatsnew/3.8.rst:570 msgid "ast" -msgstr "" +msgstr "ast" #: ../Doc/whatsnew/3.8.rst:572 msgid "" @@ -710,32 +934,44 @@ msgid "" "give the precise location of the end of the node. (This only applies to " "nodes that have ``lineno`` and ``col_offset`` attributes.)" msgstr "" +"Los nodos de AST ahora disponen de los atributos ``end_lineno`` y " +"``end_col_offset``, que proporcionan la localización precisa del final del " +"nodo. (Esto solo se aplica a los nodos que tienen los atributos ``lineno`` y " +"``col_offset``.)" #: ../Doc/whatsnew/3.8.rst:576 msgid "" "New function :func:`ast.get_source_segment` returns the source code for a " "specific AST node." msgstr "" +"La nueva función :func:`ast.get_source_segment` retorna el código fuente de " +"un nodo AST específico." #: ../Doc/whatsnew/3.8.rst:579 msgid "(Contributed by Ivan Levkivskyi in :issue:`33416`.)" -msgstr "" +msgstr "(Contribución de Ivan Levkivskyi en :issue:`33416`.)" #: ../Doc/whatsnew/3.8.rst:581 msgid "The :func:`ast.parse` function has some new flags:" -msgstr "" +msgstr "La función :func:`ast.parse` tiene algunos flags nuevos:" #: ../Doc/whatsnew/3.8.rst:583 msgid "" "``type_comments=True`` causes it to return the text of :pep:`484` and :pep:" "`526` type comments associated with certain AST nodes;" msgstr "" +"``type_comments=True`` causa que la función retorne el texto de los " +"comentarios de tipo especificados en :pep:`484` y :pep:`526` asociados con " +"ciertos nodos AST;" #: ../Doc/whatsnew/3.8.rst:586 msgid "" "``mode='func_type'`` can be used to parse :pep:`484` \"signature type " "comments\" (returned for function definition AST nodes);" msgstr "" +"``mode='func_type'`` puede usarse para realizar un análisis sintáctico de " +"los \"comentarios de tipo de firma\" de :pep:`484` (retornados por los nodos " +"AST de definición de funciones);" #: ../Doc/whatsnew/3.8.rst:589 msgid "" @@ -743,14 +979,17 @@ msgid "" "For example, ``feature_version=(3, 4)`` will treat :keyword:`async` and :" "keyword:`await` as non-reserved words." msgstr "" +"``feature_version=(3, N)`` permite especificar una versión de Python 3 " +"previa. Por ejemplo, ``feature_version=(3, 4)`` hará que se trate a :keyword:" +"`async` y :keyword:`await` como palabras no reservadas." #: ../Doc/whatsnew/3.8.rst:593 msgid "(Contributed by Guido van Rossum in :issue:`35766`.)" -msgstr "" +msgstr "(Contribución de Guido van Rossum en :issue:`35766`.)" #: ../Doc/whatsnew/3.8.rst:597 msgid "asyncio" -msgstr "" +msgstr "asyncio" #: ../Doc/whatsnew/3.8.rst:599 msgid "" @@ -758,20 +997,27 @@ msgid "" "function can be used to execute a :term:`coroutine` and return the result " "while automatically managing the event loop. For example::" msgstr "" +":func:`asyncio.run` ha pasado de la API provisional a la estable. Esta " +"función se puede utilizar para ejecutar una :term:`coroutine` y retornar el " +"resultado mientras se gestiona automáticamente el bucle de eventos. Por " +"ejemplo::" #: ../Doc/whatsnew/3.8.rst:611 msgid "This is *roughly* equivalent to::" -msgstr "" +msgstr "Esto es *aproximadamente* equivalente a::" #: ../Doc/whatsnew/3.8.rst:628 msgid "" "The actual implementation is significantly more complex. Thus, :func:" "`asyncio.run` should be the preferred way of running asyncio programs." msgstr "" +"La implementación real es significativamente más compleja. Por lo tanto, :" +"func:`asyncio.run` debería ser la forma preferida de ejecutar programas " +"asyncio." #: ../Doc/whatsnew/3.8.rst:631 msgid "(Contributed by Yury Selivanov in :issue:`32314`.)" -msgstr "" +msgstr "(Contribución de Yury Selivanov en :issue:`32314`.)" #: ../Doc/whatsnew/3.8.rst:633 msgid "" @@ -780,10 +1026,15 @@ msgid "" "There is no longer a need to directly call ``asyncio.run()`` which would " "spawn a new event loop on every invocation:" msgstr "" +"La ejecución de ``python -m asyncio`` lanza un REPL asincrónico de forma " +"nativa. Esto permite una rápida experimentación con código que tiene un " +"nivel :keyword:`await` superior. Ya no es necesario llamar directamente a " +"``asyncio.run()``, lo que generaría un nuevo ciclo de eventos en cada " +"invocación:" #: ../Doc/whatsnew/3.8.rst:648 msgid "(Contributed by Yury Selivanov in :issue:`37028`.)" -msgstr "" +msgstr "(Contribución de Yury Selivanov en :issue:`37028`.)" #: ../Doc/whatsnew/3.8.rst:650 ../Doc/whatsnew/3.8.rst:1955 msgid "" @@ -791,18 +1042,25 @@ msgid "" "`BaseException` rather than :class:`Exception`. (Contributed by Yury " "Selivanov 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`.)" #: ../Doc/whatsnew/3.8.rst:654 msgid "" "On Windows, the default event loop is now :class:`~asyncio." "ProactorEventLoop`. (Contributed by Victor Stinner in :issue:`34687`.)" msgstr "" +"En Windows, el ciclo de eventos predeterminado ahora es :class:`~asyncio." +"ProactorEventLoop`. (Contribución de Victor Stinner en :issue:`34687`.)" #: ../Doc/whatsnew/3.8.rst:657 msgid "" ":class:`~asyncio.ProactorEventLoop` now also supports UDP. (Contributed by " "Adam Meily and Andrew Svetlov in :issue:`29883`.)" msgstr "" +":class:`~asyncio.ProactorEventLoop` ahora también es compatible con UDP. " +"(Contribución de Adam Meily y Andrew Svetlov en :issue:`29883`.)" #: ../Doc/whatsnew/3.8.rst:660 msgid "" @@ -810,12 +1068,18 @@ msgid "" "`KeyboardInterrupt` (\"CTRL+C\"). (Contributed by Vladimir Matveev in :issue:" "`23057`.)" msgstr "" +":class:`~asyncio.ProactorEventLoop` ahora puede ser interrumpido por :exc:" +"`KeyboardInterrupt` (\"CTRL+C\"). (Contribución de Vladimir Matveev en :" +"issue:`23057`.)" #: ../Doc/whatsnew/3.8.rst:664 msgid "" "Added :meth:`asyncio.Task.get_coro` for getting the wrapped coroutine within " "an :class:`asyncio.Task`. (Contributed by Alex Grönholm in :issue:`36999`.)" msgstr "" +"Se ha agregado :meth:`asyncio.Task.get_coro` para obtener la corrutina " +"envuelta dentro de :class:`asyncio.Task`. (Contribución de Alex Grönholm en :" +"issue:`36999`.)" #: ../Doc/whatsnew/3.8.rst:668 msgid "" @@ -827,6 +1091,13 @@ msgid "" "the :meth:`~asyncio.Task.get_name` method. (Contributed by Alex Grönholm in :" "issue:`34270`.)" msgstr "" +"Las tareas de Asyncio ahora se pueden nombrar, ya sea pasando el argumento " +"por palabra clave ``name`` a :func:`asyncio.create_task` o al método :meth:" +"`~asyncio.loop.create_task` del bucle de eventos, o invocando al método :" +"meth:`~asyncio.Task.set_name` en el objeto de tarea. El nombre de la tarea " +"es visible en la salida de ``repr()`` de :class:`asyncio.Task` y también se " +"puede recuperar usando el método :meth:`~asyncio.Task.get_name`. " +"(Contribución de Alex Grönholm en :issue:`34270`.)" #: ../Doc/whatsnew/3.8.rst:676 msgid "" @@ -837,10 +1108,17 @@ msgid "" "applications that support IPv4 and IPv6 by attempting to simultaneously " "connect using both. (Contributed by twisteroid ambassador in :issue:`33530`.)" msgstr "" +"Se agregó soporte para `Happy Eyeballs `_ a :func:`asyncio.loop.create_connection`. Para especificar " +"el comportamiento, se han agregado dos nuevos parámetros: " +"*happy_eyeballs_delay* e *interleave*. El algoritmo Happy Eyeballs mejora la " +"capacidad de respuesta en aplicaciones que admiten IPv4 e IPv6 al intentar " +"conectarse simultáneamente utilizando ambos. (Contribución de twisteroid " +"ambassador en :issue:`33530`.)" #: ../Doc/whatsnew/3.8.rst:686 msgid "builtins" -msgstr "" +msgstr "builtins" #: ../Doc/whatsnew/3.8.rst:688 msgid "" @@ -851,10 +1129,16 @@ msgid "" "object marked with the ``CO_COROUTINE`` flag may then be returned. " "(Contributed by Matthias Bussonnier in :issue:`34616`)" msgstr "" +"La función incorporada :func:`compile` se ha mejorado para que acepte el " +"flag ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT``. Si se pasa este nuevo flag, :func:" +"`compile` permitirá construcciones de nivel superior ``await``, ``async " +"for`` y ``async with``, que normalmente se consideran sintaxis inválida. El " +"objeto de código asíncrono marcado con el flag ``CO_COROUTINE`` puede ser " +"retornado. (Contribución de Matthias Bussonnier en :issue:`34616`.)" #: ../Doc/whatsnew/3.8.rst:697 msgid "collections" -msgstr "" +msgstr "collections" #: ../Doc/whatsnew/3.8.rst:699 msgid "" @@ -866,24 +1150,34 @@ msgid "" "type: ``OrderedDict(nt._asdict())``. (Contributed by Raymond Hettinger in :" "issue:`35864`.)" msgstr "" +"El método :meth:`~collections.somenamedtuple._asdict` para :func:" +"`collections.namedtuple` ahora retorna una instancia de :class:`dict` en " +"lugar de una de :class:`collections.OrderedDict`. Esto funciona porque se " +"garantiza que los diccionarios regulares mantienen el orden de inserción " +"desde Python 3.7. Si se requieren las características adicionales de :class:" +"`OrderedDict`, la solución sugerida es realizar una conversión del resultado " +"al tipo deseado: ``OrderedDict(nt._asdict())``. (Contribución de Raymond " +"Hettinger en :issue:`35864`.)" #: ../Doc/whatsnew/3.8.rst:709 msgid "cProfile" -msgstr "" +msgstr "cProfile" #: ../Doc/whatsnew/3.8.rst:711 msgid "" "The :class:`cProfile.Profile ` class can now be used as a " "context manager. Profile a block of code by running::" msgstr "" +"La clase :class:`cProfile.Profile ` ahora puede usarse como " +"gestor de contexto. Ahora se puede perfilar un bloque de código ejecutando::" #: ../Doc/whatsnew/3.8.rst:720 msgid "(Contributed by Scott Sanderson in :issue:`29235`.)" -msgstr "" +msgstr "(Contribución de Scott Sanderson en :issue:`29235`.)" #: ../Doc/whatsnew/3.8.rst:724 msgid "csv" -msgstr "" +msgstr "csv" #: ../Doc/whatsnew/3.8.rst:726 msgid "" @@ -892,10 +1186,14 @@ msgid "" "memory while still preserving the field order. (Contributed by Michael Selik " "in :issue:`34003`.)" msgstr "" +":class:`csv.DictReader` ahora retorna instancias de :class:`dict` en lugar " +"de :class:`collections.OrderedDict`. La herramienta ahora es más rápida y " +"usa menos memoria, mientras conserva el orden de los campos. (Contribución " +"de Michael Selik en :issue:`34003`.)" #: ../Doc/whatsnew/3.8.rst:733 msgid "curses" -msgstr "" +msgstr "curses" #: ../Doc/whatsnew/3.8.rst:735 msgid "" @@ -903,10 +1201,13 @@ msgid "" "underlying ncurses library: :data:`~curses.ncurses_version`. (Contributed by " "Serhiy Storchaka in :issue:`31680`.)" msgstr "" +"Se agregó una nueva variable que contiene información de versión " +"estructurada para la biblioteca ncurses subyacente: :data:`~curses." +"ncurses_version`. (Contribución de Serhiy Storchaka en :issue:`31680`.)" #: ../Doc/whatsnew/3.8.rst:741 msgid "ctypes" -msgstr "" +msgstr "ctypes" #: ../Doc/whatsnew/3.8.rst:743 msgid "" @@ -917,10 +1218,17 @@ msgid "" "used to load the initial DLL) and paths added by :func:`~os." "add_dll_directory`. (Contributed by Steve Dower in :issue:`36085`.)" msgstr "" +"En Windows, :class:`~ctypes.CDLL` y sus subclases ahora aceptan un parámetro " +"*winmode* para especificar flags para la invocación subyacente de " +"``LoadLibraryEx``. Los flags predeterminados están establecidos para cargar " +"solo las dependencias de DLL desde ubicaciones confiables, incluida la ruta " +"donde se almacena la DLL (si se usa una ruta completa o parcial para cargar " +"la DLL inicial) y las rutas agregadas por :func:`~os.add_dll_directory` . " +"(Contribución de Steve Dower en :issue:`36085`.)" #: ../Doc/whatsnew/3.8.rst:752 msgid "datetime" -msgstr "" +msgstr "datetime" #: ../Doc/whatsnew/3.8.rst:754 msgid "" @@ -930,10 +1238,16 @@ msgid "" "weekday; these are the inverse of each class's ``isocalendar`` method. " "(Contributed by Paul Ganssle in :issue:`36004`.)" msgstr "" +"Se agregaron nuevos constructores alternativos :meth:`datetime.date." +"fromisocalendar` y :meth:`datetime.datetime.fromisocalendar`, que construyen " +"objetos :class:`date` y :class:`datetime` respectivamente con el año, número " +"de semana y día de la semana de la fecha del calendario ISO. Estos son el " +"inverso del método ``isocalendar`` de cada clase. (Contribución de Paul " +"Ganssle en :issue:`36004`.)" #: ../Doc/whatsnew/3.8.rst:762 msgid "functools" -msgstr "" +msgstr "functools" #: ../Doc/whatsnew/3.8.rst:764 msgid "" @@ -941,20 +1255,26 @@ msgid "" "than as a function returning a decorator. So both of these are now " "supported::" msgstr "" +":func:`functools.lru_cache` ahora se puede usar como un decorador directo en " +"lugar de como una función que retorna un decorador. De forma que ambos son " +"compatibles ahora::" #: ../Doc/whatsnew/3.8.rst:775 msgid "(Contributed by Raymond Hettinger in :issue:`36772`.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger en :issue:`36772`.)" #: ../Doc/whatsnew/3.8.rst:777 msgid "" "Added a new :func:`functools.cached_property` decorator, for computed " "properties cached for the life of the instance. ::" msgstr "" +"Se ha agregado un nuevo decorador :func:`functools.cached_property`, para " +"propiedades calculadas almacenadas en caché durante toda la vida útil de la " +"instancia. ::" #: ../Doc/whatsnew/3.8.rst:791 msgid "(Contributed by Carl Meyer in :issue:`21145`)" -msgstr "" +msgstr "(Contribución de Carl Meyer en :issue:`21145`.)" #: ../Doc/whatsnew/3.8.rst:794 msgid "" @@ -962,14 +1282,17 @@ msgid "" "methods into :term:`generic functions ` using :term:" "`single dispatch`::" msgstr "" +"Se ha agregado un nuevo decorador :func:`functools.singledispatchmethod` que " +"convierte métodos en :term:`funciones genéricas ` usando :" +"term:`single dispatch`::" #: ../Doc/whatsnew/3.8.rst:816 msgid "(Contributed by Ethan Smith in :issue:`32380`)" -msgstr "" +msgstr "(Contribución de Ethan Smith en :issue:`32380`)" #: ../Doc/whatsnew/3.8.rst:819 msgid "gc" -msgstr "" +msgstr "gc" #: ../Doc/whatsnew/3.8.rst:821 msgid "" @@ -977,26 +1300,33 @@ msgid "" "indicating a generation to get objects from. (Contributed by Pablo Galindo " "in :issue:`36016`.)" msgstr "" +":func:`~gc.get_objects` ahora puede recibir un parámetro opcional " +"*generation* que indica la generación de la que recolectar objetos. " +"(Contribución de Pablo Galindo en :issue:`36016`.)" #: ../Doc/whatsnew/3.8.rst:827 msgid "gettext" -msgstr "" +msgstr "gettext" #: ../Doc/whatsnew/3.8.rst:829 msgid "" "Added :func:`~gettext.pgettext` and its variants. (Contributed by Franz " "Glasner, Éric Araujo, and Cheryl Sabella in :issue:`2504`.)" msgstr "" +"Agregado :func:`~gettext.pgettext` y sus variantes. (Contribución de Franz " +"Glasner, Éric Araujo y Cheryl Sabella en :issue:`2504`.)" #: ../Doc/whatsnew/3.8.rst:834 msgid "gzip" -msgstr "" +msgstr "gzip" #: ../Doc/whatsnew/3.8.rst:836 msgid "" "Added the *mtime* parameter to :func:`gzip.compress` for reproducible " "output. (Contributed by Guo Ci Teo in :issue:`34898`.)" msgstr "" +"Se ha agregó el parámetro *mtime* a :func:`gzip.compress` para una salida " +"reproducible. (Contribución de Guo Ci Teo en :issue:`34898`.)" #: ../Doc/whatsnew/3.8.rst:839 msgid "" @@ -1004,10 +1334,14 @@ msgid "" "for certain types of invalid or corrupt gzip files. (Contributed by Filip " "Gruszczyński, Michele Orrù, and Zackery Spytz in :issue:`6584`.)" msgstr "" +"Una excepción :exc:`~gzip.BadGzipFile` es lanzada ahora, en lugar de :exc:" +"`OSError`, para ciertos tipos de archivos gzip no válidos o corruptos. " +"(Contribución de Filip Gruszczyński, Michele Orrù y Zackery Spytz en :issue:" +"`6584`.)" #: ../Doc/whatsnew/3.8.rst:846 msgid "IDLE and idlelib" -msgstr "" +msgstr "IDLE e idlelib" #: ../Doc/whatsnew/3.8.rst:848 msgid "" @@ -1018,6 +1352,13 @@ msgid "" "button or into the clipboard or a separate window by right-clicking the " "button. (Contributed by Tal Einat in :issue:`1529353`.)" msgstr "" +"Las salidas superiores a N líneas (50 por defecto) se pliegan en un botón. N " +"se puede cambiar en la sección PyShell de la página General del cuadro de " +"diálogo Settings. Se pueden plegar menos líneas, pero posiblemente más " +"largas, haciendo clic derecho en la salida. La salida plegada se puede " +"expandir en su lugar haciendo doble clic en el botón o en el portapapeles o " +"en una ventana separada haciendo clic derecho en el botón. (Contribución de " +"Tal Einat en :issue:`1529353`.)" #: ../Doc/whatsnew/3.8.rst:855 msgid "" @@ -1027,6 +1368,12 @@ msgid "" "suppress the normal Shell main module restart. (Contributed by Cheryl " "Sabella, Terry Jan Reedy, and others in :issue:`5680` and :issue:`37627`.)" msgstr "" +"Se ha agregado \"Run Customized\" al menú Run para ejecutar un módulo con " +"configuraciones personalizadas. Cualquier argumento de la línea de comandos " +"ingresado se agrega a sys.argv. Además, vuelven a aparecer en el cuadro para " +"la próxima ejecución personalizada. También se puede suprimir el reinicio " +"normal del módulo principal de la Shell. (Contribución de Cheryl Sabella, " +"Terry Jan Reedy y otros en :issue:`5680` y :issue:`37627`.)" #: ../Doc/whatsnew/3.8.rst:861 msgid "" @@ -1036,6 +1383,11 @@ msgid "" "Options menu. (Contributed by Tal Einat and Saimadhav Heblikar in :issue:" "`17535`.)" msgstr "" +"Se agregaron números de línea opcionales para las ventanas del editor IDLE. " +"Las ventanas se abren sin números de línea, a menos que se establezca lo " +"contrario en la pestaña General del cuadro de diálogo de configuración. Los " +"números de línea de una ventana existente se muestran y ocultan en el menú " +"Options. (Contribución de Tal Einat y Saimadhav Heblikar en :issue:`17535`.)" #: ../Doc/whatsnew/3.8.rst:867 msgid "" @@ -1046,14 +1398,23 @@ msgid "" "(Many people worked on this for eight years but the problem was finally " "solved by Serhiy Storchaka in :issue:`13153`.)" msgstr "" +"La codificación nativa del sistema operativo ahora se usa para convertir " +"entre cadenas de Python y objetos Tcl. Esto permite que el IDLE funcione con " +"emoji y otros caracteres que no son BMP. Estos caracteres se pueden mostrar " +"o copiar y pegar en ,o desde, el portapapeles. Convertir cadenas de Tcl a " +"Python y viceversa ahora nunca falla. (Mucha gente trabajó en esto durante " +"ocho años, pero el problema finalmente lo resolvió Serhiy Storchaka en :" +"issue:`13153`.)" #: ../Doc/whatsnew/3.8.rst:874 msgid "The changes above have been backported to 3.7 maintenance releases." msgstr "" +"Los cambios anteriores se han portado a las versiones de mantenimiento de " +"Python 3.7." #: ../Doc/whatsnew/3.8.rst:878 msgid "inspect" -msgstr "" +msgstr "inspect" #: ../Doc/whatsnew/3.8.rst:880 msgid "" @@ -1062,14 +1423,19 @@ msgid "" "docstrings. This provides documentation options similar to what we already " "have for :func:`property`, :func:`classmethod`, and :func:`staticmethod`::" msgstr "" +"La función :func:`inspect.getdoc` puede ahora encontrar cadenas de " +"documentación para ``__slots__`` si el este atributo es un :class:`dict` " +"cuyos valores son las cadenas de documentación. Esto proporciona opciones de " +"documentación similares a las que ya tenemos para :func:`property`, :func:" +"`classmethod` y :func:`staticmethod`::" #: ../Doc/whatsnew/3.8.rst:892 msgid "(Contributed by Raymond Hettinger in :issue:`36326`.)" -msgstr "" +msgstr "(Contribución de Raymond Hettinger en :issue:`36326`.)" #: ../Doc/whatsnew/3.8.rst:896 msgid "io" -msgstr "" +msgstr "io" #: ../Doc/whatsnew/3.8.rst:898 msgid "" @@ -1078,34 +1444,45 @@ msgid "" "fails. The exception is ignored silently by default in release build. " "(Contributed by Victor Stinner in :issue:`18748`.)" msgstr "" +"En el modo de desarrollo (:option:`-X` ``env``) y en la compilación de " +"depuración, el finalizador :class:`io.IOBase` ahora registra la excepción si " +"falla el método ``close()``. La excepción se ignora silenciosamente de forma " +"predeterminada en la compilación de lanzamiento. (Contribución de Victor " +"Stinner en :issue:`18748`.)" #: ../Doc/whatsnew/3.8.rst:905 msgid "itertools" -msgstr "" +msgstr "itertools" #: ../Doc/whatsnew/3.8.rst:907 msgid "" "The :func:`itertools.accumulate` function added an option *initial* keyword " "argument to specify an initial value::" msgstr "" +"Se ha agregado un argumento por palabra clave opcional *initial* a la " +"función :func:`itertools.accumulate` para permitir especificar un valor " +"inicial::" #: ../Doc/whatsnew/3.8.rst:914 msgid "(Contributed by Lisa Roach in :issue:`34659`.)" -msgstr "" +msgstr "(Contribución de Lisa Roach en :issue:`34659`.)" #: ../Doc/whatsnew/3.8.rst:918 msgid "json.tool" -msgstr "" +msgstr "json.tool" #: ../Doc/whatsnew/3.8.rst:920 msgid "" "Add option ``--json-lines`` to parse every input line as a separate JSON " "object. (Contributed by Weipeng Hong in :issue:`31553`.)" msgstr "" +"Agregadas las opciones ``--json-lines`` para analizar sintácticamente cada " +"línea de entrada como un objeto JSON separado. (Contribución de Weipeng Hong " +"en :issue:`31553`.)" #: ../Doc/whatsnew/3.8.rst:925 msgid "logging" -msgstr "" +msgstr "logging" #: ../Doc/whatsnew/3.8.rst:927 msgid "" @@ -1114,6 +1491,10 @@ msgid "" "closed before carrying out the configuration specified by the other " "arguments." msgstr "" +"Agregado un argumento por palabra clave *force* a la función :func:`logging." +"basicConfig()`. Cuando se establece en verdadero, cualquier controlador " +"existente adjunto al registrador (logger) raíz se elimina y se cierra antes " +"de realizar la configuración especificada por los otros argumentos." #: ../Doc/whatsnew/3.8.rst:932 msgid "" @@ -1122,22 +1503,33 @@ msgid "" "made it difficult to update, experiment with, or teach the various logging " "configuration options using the interactive prompt or a Jupyter notebook." msgstr "" +"Esto resuelve un problema de larga data. Una vez que se había invocado a un " +"registrador o a *basicConfig()*, las invocaciones posteriores a " +"*basicConfig()* se ignoraban en silencio. Esto dificultaba la actualización, " +"la experimentación o la instrucción de las diversas opciones de " +"configuración de registro mediante el interprete interactivo o el bloc de " +"notas de Jupyter." #: ../Doc/whatsnew/3.8.rst:938 msgid "" "(Suggested by Raymond Hettinger, implemented by Dong-hee Na, and reviewed by " "Vinay Sajip in :issue:`33897`.)" msgstr "" +"(Sugerencia de Raymond Hettinger, implementación de Dong-hee Na y revisión " +"de Vinay Sajip en :issue:`33897`.)" #: ../Doc/whatsnew/3.8.rst:943 msgid "math" -msgstr "" +msgstr "math" #: ../Doc/whatsnew/3.8.rst:945 msgid "" "Added new function :func:`math.dist` for computing Euclidean distance " "between two points. (Contributed by Raymond Hettinger in :issue:`33089`.)" msgstr "" +"Se ha agregado la nueva función :func:`math.dist` para calcular la distancia " +"euclidiana entre dos puntos. (Contribución de Raymond Hettinger en :issue:" +"`33089`.)" #: ../Doc/whatsnew/3.8.rst:948 msgid "" @@ -1145,6 +1537,9 @@ msgid "" "Formerly, it only supported the 2-D case. (Contributed by Raymond Hettinger " "in :issue:`33089`.)" msgstr "" +"Se ha expandido la función :func:`math.hypot` para manejar múltiples " +"dimensiones. Anteriormente, solo admitía dos dimensiones. (Contribución de " +"Raymond Hettinger en :issue:`33089`.)" #: ../Doc/whatsnew/3.8.rst:952 msgid "" @@ -1152,22 +1547,29 @@ msgid "" "that returns the product of a 'start' value (default: 1) times an iterable " "of numbers::" msgstr "" +"Agregada una nueva función, :func:`math.prod`, como función análoga a :func:" +"`sum`, que retorna el producto de todos los elementos de un iterable de " +"números partiendo de un valor de inicio (*start*) (por defecto: 1)::" #: ../Doc/whatsnew/3.8.rst:961 msgid "(Contributed by Pablo Galindo in :issue:`35606`.)" -msgstr "" +msgstr "(Contribución de Pablo Galindo en :issue:`35606`.)" #: ../Doc/whatsnew/3.8.rst:963 msgid "" "Added two new combinatoric functions :func:`math.perm` and :func:`math." "comb`::" msgstr "" +"Agregadas dos nuevas funciones combinatorias, :func:`math.perm` y :func:" +"`math.comb`::" #: ../Doc/whatsnew/3.8.rst:970 msgid "" "(Contributed by Yash Aggarwal, Keller Fuchs, Serhiy Storchaka, and Raymond " "Hettinger in :issue:`37128`, :issue:`37178`, and :issue:`35431`.)" msgstr "" +"(Contribución de Yash Aggarwal, Keller Fuchs, Serhiy Storchaka y Raymond " +"Hettinger en :issue:`37128`, :issue:`37178` y :issue:`35431`.)" #: ../Doc/whatsnew/3.8.rst:973 msgid "" @@ -1176,20 +1578,26 @@ msgid "" "supports arbitrarily large integers. It is faster than ``floor(sqrt(n))`` " "but slower than :func:`math.sqrt`::" msgstr "" +"Se ha agregada una nueva función :func:`math.isqrt` para calcular raíces " +"cuadradas enteras precisas sin conversión a coma flotante. La nueva función " +"admite números enteros arbitrariamente grandes. Es más rápida que " +"``floor(sqrt(n))`` pero más lenta que :func:`math.sqrt`::" #: ../Doc/whatsnew/3.8.rst:985 msgid "(Contributed by Mark Dickinson in :issue:`36887`.)" -msgstr "" +msgstr "(Contribución de Mark Dickinson en :issue:`36887`.)" #: ../Doc/whatsnew/3.8.rst:987 msgid "" "The function :func:`math.factorial` no longer accepts arguments that are not " "int-like. (Contributed by Pablo Galindo in :issue:`33083`.)" msgstr "" +"La función :func:`math.factorial` ya no acepta argumentos que no sean " +"similares a enteros. (Contribución de Pablo Galindo en :issue:`33083`.)" #: ../Doc/whatsnew/3.8.rst:992 msgid "mmap" -msgstr "" +msgstr "mmap" #: ../Doc/whatsnew/3.8.rst:994 msgid "" @@ -1197,26 +1605,33 @@ msgid "" "access the ``madvise()`` system call. (Contributed by Zackery Spytz in :" "issue:`32941`.)" msgstr "" +"La clase :class:`mmap.mmap` ahora tiene un método :meth:`~mmap.mmap.madvise` " +"para acceder a la llamada al sistema ``madvise()``. (Contribución de Zackery " +"Spytz en :issue:`32941`.)" #: ../Doc/whatsnew/3.8.rst:1000 msgid "multiprocessing" -msgstr "" +msgstr "multiprocessing" #: ../Doc/whatsnew/3.8.rst:1002 msgid "" "Added new :mod:`multiprocessing.shared_memory` module. (Contributed by Davin " "Potts in :issue:`35813`.)" msgstr "" +"Agregado el nuevo módulo :mod:`multiprocessing.shared_memory`. (Contribución " +"de Davin Potts en :issue:`35813`.)" #: ../Doc/whatsnew/3.8.rst:1005 msgid "" "On macOS, the *spawn* start method is now used by default. (Contributed by " "Victor Stinner in :issue:`33725`.)" msgstr "" +"En macOS, el método de inicio *spawn* se usa ahora por defecto. " +"(Contribución de Victor Stinner en :issue:`33725`.)" #: ../Doc/whatsnew/3.8.rst:1010 msgid "os" -msgstr "" +msgstr "os" #: ../Doc/whatsnew/3.8.rst:1012 msgid "" @@ -1225,6 +1640,10 @@ msgid "" "modules or loading DLLs using :mod:`ctypes`. (Contributed by Steve Dower in :" "issue:`36085`.)" msgstr "" +"Se agregó una nueva función :func:`~os.add_dll_directory` en Windows para " +"proporcionar rutas de búsqueda adicionales para las dependencias nativas al " +"importar módulos de extensión o al cargar archivos DLL utilizando :mod:" +"`ctypes`. (Contribución de Steve Dower en :issue:`36085`.)" #: ../Doc/whatsnew/3.8.rst:1017 msgid "" @@ -1232,6 +1651,9 @@ msgid "" "``memfd_create()`` syscall. (Contributed by Zackery Spytz and Christian " "Heimes in :issue:`26836`.)" msgstr "" +"Se agregó una nueva función :func:`os.memfd_create` para envolver la llamada " +"al sistema ``memfd_create()``. (Contribución de Zackery Spytz y Christian " +"Heimes en :issue:`26836`.)" #: ../Doc/whatsnew/3.8.rst:1021 msgid "" @@ -1245,6 +1667,17 @@ msgid "" "identify other kinds of reparse point, check the new :attr:`stat_result." "st_reparse_tag` attribute." msgstr "" +"En Windows, gran parte de la lógica manual para manejar los puntos de " +"reinterpretación (incluidos los enlaces simbólicos y las uniones de " +"directorios) se ha delegado al sistema operativo. Específicamente, :func:`os." +"stat` ahora se encargará de todo lo que sea compatible con el sistema " +"operativo, mientras que :func:`os.lstat` solo abrirá puntos de " +"reinterpretación que se identifican como \"sustitutos de nombre\" y el resto " +"se abrirán mediante :func:`os.stat`. En todos los casos, :attr:`stat_result." +"st_mode` solo tendrá establecido ``S_IFLNK`` para enlaces simbólicos y no " +"para otros tipos de puntos de reinterpretación. Para identificar otros tipos " +"de puntos de reinterpretación, verifica el nuevo atributo :attr:`stat_result." +"st_reparse_tag`." #: ../Doc/whatsnew/3.8.rst:1030 msgid "" @@ -1254,14 +1687,20 @@ msgid "" "junctions as directories, while code that handles errors from :func:`os." "readlink` may now treat junctions as links." msgstr "" +"En Windows, :func:`os.readlink` ahora puede leer uniones de directorio. Ten " +"en cuenta que :func:`~os.path.islink` retornará ``False`` para las uniones " +"de directorios, por lo que el código que comprueba en primer lugar " +"``islink`` continuará tratando las uniones como directorios, mientras que el " +"código que maneja los errores de :func:`os.readlink` ahora puede tratar las " +"uniones como enlaces." #: ../Doc/whatsnew/3.8.rst:1036 ../Doc/whatsnew/3.8.rst:1061 msgid "(Contributed by Steve Dower in :issue:`37834`.)" -msgstr "" +msgstr "(Contribución de Steve Dower en :issue:`37834`.)" #: ../Doc/whatsnew/3.8.rst:1040 msgid "os.path" -msgstr "" +msgstr "os.path" #: ../Doc/whatsnew/3.8.rst:1042 msgid "" @@ -1273,6 +1712,13 @@ msgid "" "characters or bytes unrepresentable at the OS level. (Contributed by Serhiy " "Storchaka in :issue:`33721`.)" msgstr "" +"Las funciones de :mod:`os.path` que retornan un resultado booleano como :" +"func:`~os.path.exists`, :func:`~os.path.lexists`, :func:`~os.path.isdir`, :" +"func:`~os.path.isfile`, :func:`~os.path.islink` e :func:`~os.path.ismount` " +"ahora retornan ``False`` en lugar de lanzar una excepción :exc:`ValueError`, " +"o sus subclases :exc:`UnicodeEncodeError` y :exc:`UnicodeDecodeError`, para " +"rutas que contienen caracteres o bytes irrepresentables a nivel del sistema " +"operativo. (Contribución de Serhiy Storchaka en :issue:`33721`.)" #: ../Doc/whatsnew/3.8.rst:1050 ../Doc/whatsnew/3.8.rst:1950 msgid "" @@ -1281,22 +1727,31 @@ msgid "" "set for regular user accounts. (Contributed by Anthony Sottile in :issue:" "`36264`.)" msgstr "" +":func:`~os.path.expanduser` en Windows ahora usa preferentemente la variable " +"de entorno :envvar:`USERPROFILE` y no usa :envvar:`HOME`, que normalmente no " +"está establecido para cuentas de usuario normales. (Contribución de Anthony " +"Sottile en :issue:`36264`.)" #: ../Doc/whatsnew/3.8.rst:1055 msgid "" ":func:`~os.path.isdir` on Windows no longer returns ``True`` for a link to a " "non-existent directory." msgstr "" +":func:`~os.path.isdir` en Windows ya no retorna ``True`` para un enlace a un " +"directorio no existente." #: ../Doc/whatsnew/3.8.rst:1058 msgid "" ":func:`~os.path.realpath` on Windows now resolves reparse points, including " "symlinks and directory junctions." msgstr "" +":func:`~os.path.realpath` en Windows ahora resuelve puntos de " +"reinterpretación (reparse points), incluidos enlaces simbólicos y uniones de " +"directorio." #: ../Doc/whatsnew/3.8.rst:1065 msgid "pathlib" -msgstr "" +msgstr "pathlib" #: ../Doc/whatsnew/3.8.rst:1067 msgid "" @@ -1310,16 +1765,28 @@ msgid "" "unrepresentable at the OS level. (Contributed by Serhiy Storchaka in :issue:" "`33721`.)" msgstr "" +"Los métodos del módulo :mod:`pathlib.Path` que retornan un resultado " +"booleano, como :meth:`~pathlib.Path.exists()`, :meth:`~pathlib.Path." +"is_dir()`, :meth:`~pathlib.Path.is_file()`, :meth:`~pathlib.Path." +"is_mount()`, :meth:`~pathlib.Path.is_symlink()`, :meth:`~pathlib.Path." +"is_block_device()`, :meth:`~pathlib.Path.is_char_device()`, :meth:`~pathlib." +"Path.is_fifo()` o :meth:`~pathlib.Path.is_socket()`, ahora retornan " +"``False`` en vez de lanzar una excepción :exc:`ValueError` o su subclase :" +"exc:`UnicodeEncodeError` para rutas que contienen caracteres no " +"representables a nivel del sistema operativo. (Contribución de Serhiy " +"Storchaka en :issue:`33721`.)" #: ../Doc/whatsnew/3.8.rst:1077 msgid "" "Added :meth:`pathlib.Path.link_to()` which creates a hard link pointing to a " "path. (Contributed by Joannah Nanjekye in :issue:`26978`)" msgstr "" +"Agregado :meth:`pathlib.Path.link_to()` que crea un enlace duro apuntando a " +"una ruta. (Contribución de Joannah Nanjekye en :issue:`26978`)" #: ../Doc/whatsnew/3.8.rst:1083 msgid "pickle" -msgstr "" +msgstr "pickle" #: ../Doc/whatsnew/3.8.rst:1085 msgid "" @@ -1328,10 +1795,15 @@ msgid "" "defining the special :meth:`~pickle.Pickler.reducer_override` method. " "(Contributed by Pierre Glaser and Olivier Grisel in :issue:`35900`.)" msgstr "" +"Las extensiones de :mod:`pickle` que subclasifican la clase optimizada de C :" +"class:`~pickle.Pickler` ahora pueden anular la lógica de pickling de " +"funciones y clases definiendo el método especial :meth:`~pickle.Pickler." +"reducer_override`. (Contribución de Pierre Glaser y Olivier Grisel en :issue:" +"`35900`.)" #: ../Doc/whatsnew/3.8.rst:1092 msgid "plistlib" -msgstr "" +msgstr "plistlib" #: ../Doc/whatsnew/3.8.rst:1094 msgid "" @@ -1339,10 +1811,13 @@ msgid "" "NSKeyedArchiver-encoded binary plists. (Contributed by Jon Janzen in :issue:" "`26707`.)" msgstr "" +"Se ha agregado la nueva clase :class:`plistlib.UID` y se ha habilitado el " +"soporte para leer y escribir plists binarios codificados por " +"NSKeyedArchiver. (Contribución de Jon Janzen en :issue:`26707`.)" #: ../Doc/whatsnew/3.8.rst:1100 msgid "pprint" -msgstr "" +msgstr "pprint" #: ../Doc/whatsnew/3.8.rst:1102 msgid "" @@ -1352,46 +1827,61 @@ msgid "" "dictionaries retain the order that keys were inserted. This can be useful " "for comparison to JSON inputs during debugging." msgstr "" +"Se ha agregado el parámetro *sort_dicts* a varias funciones del módulo :mod:" +"`pprint`. De forma predeterminada, esas funciones continúan ordenando los " +"diccionarios antes de procesarlos o imprimirlos. Sin embargo, si " +"*sort_dicts* se establece en falso, los diccionarios conservan el orden en " +"que se insertaron las claves. Esto puede resultar útil para la comparación " +"con entradas JSON durante la depuración." #: ../Doc/whatsnew/3.8.rst:1108 msgid "" "In addition, there is a convenience new function, :func:`pprint.pp` that is " "like :func:`pprint.pprint` but with *sort_dicts* defaulting to ``False``::" msgstr "" +"Además, hay una nueva función de conveniencia, :func:`pprint.pp`, que es " +"igual que :func:`pprint.pprint` pero con *sort_dicts* establecido en " +"``False`` por defecto::" #: ../Doc/whatsnew/3.8.rst:1122 msgid "(Contributed by Rémi Lapeyre in :issue:`30670`.)" -msgstr "" +msgstr "(Contribución de Rémi Lapeyre en :issue:`30670`.)" #: ../Doc/whatsnew/3.8.rst:1126 msgid "py_compile" -msgstr "" +msgstr "py_compile" #: ../Doc/whatsnew/3.8.rst:1128 msgid "" ":func:`py_compile.compile` now supports silent mode. (Contributed by Joannah " "Nanjekye in :issue:`22640`.)" msgstr "" +":func:`py_compile.compile` ahora admite el modo silencioso. (Contribución de " +"Joannah Nanjekye en :issue:`22640`.)" #: ../Doc/whatsnew/3.8.rst:1133 msgid "shlex" -msgstr "" +msgstr "shlex" #: ../Doc/whatsnew/3.8.rst:1135 msgid "" "The new :func:`shlex.join` function acts as the inverse of :func:`shlex." "split`. (Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" +"La nueva función :func:`shlex.join` actúa a la inversa de :func:`shlex." +"split`. (Contribución de Bo Bayles en :issue:`32102`.)" #: ../Doc/whatsnew/3.8.rst:1140 msgid "shutil" -msgstr "" +msgstr "shutil" #: ../Doc/whatsnew/3.8.rst:1142 msgid "" ":func:`shutil.copytree` now accepts a new ``dirs_exist_ok`` keyword " "argument. (Contributed by Josh Bronson in :issue:`20849`.)" msgstr "" +":func:`shutil.copytree` ahora acepta el nuevo argumento por palabra clave " +"``dirs_exist_ok``. (Contribución de Josh Bronson en :issue:`20849`.)" #: ../Doc/whatsnew/3.8.rst:1145 msgid "" @@ -1400,6 +1890,10 @@ msgid "" "inherited from the corresponding change to the :mod:`tarfile` module. " "(Contributed by C.A.M. Gerlach in :issue:`30661`.)" msgstr "" +":func:`shutil.make_archive` ahora usa por defecto el formato pax moderno " +"(POSIX.1-2001) para nuevos archivos para mejorar la portabilidad y la " +"conformidad con los estándares, heredado el cambio correspondiente del " +"módulo :mod:`tarfile`. (Contribución de C.A.M. Gerlach en :issue:`30661`.)" #: ../Doc/whatsnew/3.8.rst:1150 msgid "" @@ -1407,10 +1901,13 @@ msgid "" "recursively removing their contents first. (Contributed by Steve Dower in :" "issue:`37834`.)" msgstr "" +":func:`shutil.rmtree` en Windows ahora elimina las uniones de directorio sin " +"eliminar recursivamente su contenido primero. (Contribución de Steve Dower " +"en :issue:`37834`.)" #: ../Doc/whatsnew/3.8.rst:1156 msgid "socket" -msgstr "" +msgstr "socket" #: ../Doc/whatsnew/3.8.rst:1158 msgid "" @@ -1420,6 +1917,11 @@ msgid "" "IPv4 and IPv6 connections on the same socket. (Contributed by Giampaolo " "Rodolà in :issue:`17561`.)" msgstr "" +"Se han agregado las funciones de conveniencia :meth:`~ socket." +"create_server()` y :meth:`~socket.has_dualstack_ipv6()` para automatizar las " +"tareas necesarias involucradas al crear un socket servidor, incluida la " +"aceptación de conexiones IPv4 e IPv6 en el mismo socket . (Contribución de " +"Giampaolo Rodolà en :issue:`17561`.)" #: ../Doc/whatsnew/3.8.rst:1163 msgid "" @@ -1427,10 +1929,13 @@ msgid "" "func:`socket.if_indextoname()` functions have been implemented on Windows. " "(Contributed by Zackery Spytz in :issue:`37007`.)" msgstr "" +"Las funciones :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()` " +"y :func:`socket.if_indextoname()` se han implementado en Windows. " +"(Contribución de Zackery Spytz en :issue:`37007`.)" #: ../Doc/whatsnew/3.8.rst:1169 msgid "ssl" -msgstr "" +msgstr "ssl" #: ../Doc/whatsnew/3.8.rst:1171 msgid "" @@ -1438,10 +1943,14 @@ msgid "" "SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " "authentication. (Contributed by Christian Heimes in :issue:`34670`.)" msgstr "" +"Se ha agregado :attr:`~ssl.SSLContext.post_handshake_auth` para habilitar y :" +"meth:`~ssl.SSLSocket.verify_client_post_handshake` para iniciar la " +"autenticación tras el establecimiento de la comunicación en TLS 1.3. " +"(Contribución de Christian Heimes en :issue:`34670`.)" #: ../Doc/whatsnew/3.8.rst:1178 msgid "statistics" -msgstr "" +msgstr "statistics" #: ../Doc/whatsnew/3.8.rst:1180 msgid "" @@ -1449,18 +1958,25 @@ msgid "" "`statistics.mean()`. (Contributed by Raymond Hettinger and Steven D'Aprano " "in :issue:`35904`.)" msgstr "" +"Se ha agregado :func:`statistics.fmean` como una variante de punto flotante " +"más rápida de :func:`statistics.mean()`. (Contribución de Raymond Hettinger " +"y Steven D'Aprano en :issue:`35904`.)" #: ../Doc/whatsnew/3.8.rst:1184 msgid "" "Added :func:`statistics.geometric_mean()` (Contributed by Raymond Hettinger " "in :issue:`27181`.)" msgstr "" +"Se ha agregado :func:`statistics.geometric_mean()` (Contribución de Raymond " +"Hettinger en :issue:`27181`.)" #: ../Doc/whatsnew/3.8.rst:1187 msgid "" "Added :func:`statistics.multimode` that returns a list of the most common " "values. (Contributed by Raymond Hettinger in :issue:`35892`.)" msgstr "" +"Se ha agregado :func:`statistics.multimode` que retorna una lista con los " +"valores más comunes. (Contribución de Raymond Hettinger en :issue:`35892`.)" #: ../Doc/whatsnew/3.8.rst:1190 msgid "" @@ -1468,6 +1984,9 @@ msgid "" "equiprobable intervals (e.g. quartiles, deciles, or percentiles). " "(Contributed by Raymond Hettinger in :issue:`36546`.)" msgstr "" +"Se ha agregado :func:`statistics.quantiles` que divide datos o una " +"distribución en intervalos equiprobables (por ejemplo, cuartiles, deciles o " +"percentiles). (Contribución de Raymond Hettinger en :issue:`36546`.)" #: ../Doc/whatsnew/3.8.rst:1194 msgid "" @@ -1475,10 +1994,13 @@ msgid "" "normal distributions of a random variable. (Contributed by Raymond Hettinger " "in :issue:`36018`.)" msgstr "" +"Se ha agregado :class:`statistics.NormalDist`, una herramienta para crear y " +"manipular distribuciones normales de una variable aleatoria. (Contribución " +"de Raymond Hettinger en :issue:`36018`.)" #: ../Doc/whatsnew/3.8.rst:1224 msgid "sys" -msgstr "" +msgstr "sys" #: ../Doc/whatsnew/3.8.rst:1226 msgid "" @@ -1488,10 +2010,16 @@ msgid "" "example, when a destructor raises an exception or during garbage collection " "(:func:`gc.collect`). (Contributed by Victor Stinner in :issue:`36829`.)" msgstr "" +"Se ha agregado la nueva función :func:`sys.unraisablehook` que se puede " +"anular para controlar cómo se manejan las \"excepciones no lanzables\". Se " +"llama cuando se ha producido una excepción, pero Python no tiene forma de " +"manejarla. Por ejemplo, cuando un destructor genera una excepción o durante " +"la recolección de basura (:func:`gc.collect`). (Contribución de Victor " +"Stinner en :issue:`36829`.)" #: ../Doc/whatsnew/3.8.rst:1235 msgid "tarfile" -msgstr "" +msgstr "tarfile" #: ../Doc/whatsnew/3.8.rst:1237 msgid "" @@ -1501,10 +2029,15 @@ msgid "" "standardized and extensible format, and offers several other benefits. " "(Contributed by C.A.M. Gerlach in :issue:`36268`.)" msgstr "" +"El módulo :mod:`tarfile` ahora tiene por defecto el formato pax moderno " +"(POSIX.1-2001) para nuevos archivos, en lugar del anterior específico de " +"GNU. Esto mejora la portabilidad multiplataforma con una codificación " +"consistente (UTF-8) en un formato estandarizado y extensible, y ofrece otros " +"varios beneficios. (Contribución de C.A.M. Gerlach en :issue:`36268`.)" #: ../Doc/whatsnew/3.8.rst:1245 msgid "threading" -msgstr "" +msgstr "threading" #: ../Doc/whatsnew/3.8.rst:1247 msgid "" @@ -1513,6 +2046,10 @@ msgid "" "uncaught :meth:`threading.Thread.run` exceptions are handled. (Contributed " "by Victor Stinner in :issue:`1230540`.)" msgstr "" +"Se ha agregado una nueva función :func:`threading.excepthook` que maneja las " +"excepciones :meth:`threading.Thread.run` no capturadas. Se puede anular para " +"controlar cómo se manejan las excepciones :meth:`threading.Thread.run` no " +"capturadas. (Contribución de Victor Stinner en :issue:`1230540`.)" #: ../Doc/whatsnew/3.8.rst:1252 msgid "" @@ -1523,10 +2060,16 @@ msgid "" "`get_native_id ` for more information. (Contributed " "by Jake Tesler in :issue:`36084`.)" msgstr "" +"Se han agregado una nueva función :func:`threading.get_native_id` y un " +"atributo :data:`~threading.Thread.native_id` a la clase :class:`threading." +"Thread`. Estos retornan el Thread ID nativo integral del hilo actual " +"asignado por el kernel. Esta función solo está disponible en determinadas " +"plataformas, consulta :func:`get_native_id ` para " +"obtener más información. (Contribución de Jake Tesler en :issue:`36084`.)" #: ../Doc/whatsnew/3.8.rst:1262 msgid "tokenize" -msgstr "" +msgstr "tokenize" #: ../Doc/whatsnew/3.8.rst:1264 msgid "" @@ -1535,10 +2078,14 @@ msgid "" "now matches what the C tokenizer does internally. (Contributed by Ammar " "Askar in :issue:`33899`.)" msgstr "" +"El módulo :mod:`tokenize` ahora emite implícitamente un token ``NEWLINE`` " +"cuando se le proporciona una entrada sin una nueva línea al final. Este " +"comportamiento ahora coincide con lo que hace internamente el tokenizador de " +"C. (Contribución de Ammar Askar en :issue:`33899`.)" #: ../Doc/whatsnew/3.8.rst:1271 msgid "tkinter" -msgstr "" +msgstr "tkinter" #: ../Doc/whatsnew/3.8.rst:1273 msgid "" @@ -1547,12 +2094,18 @@ msgid "" "meth:`~tkinter.Spinbox.selection_to` in the :class:`tkinter.Spinbox` class. " "(Contributed by Juliette Monsel in :issue:`34829`.)" msgstr "" +"Se han agregado los métodos :meth:`~tkinter.Spinbox.selection_from`, :meth:" +"`~tkinter.Spinbox.selection_present`, :meth:`~tkinter.Spinbox." +"selection_range` y :meth:`~tkinter.Spinbox.selection_to` a la clase :class:" +"`tkinter.Spinbox`. (Contribución de Juliette Monsel en :issue:`34829`.)" #: ../Doc/whatsnew/3.8.rst:1280 msgid "" "Added method :meth:`~tkinter.Canvas.moveto` in the :class:`tkinter.Canvas` " "class. (Contributed by Juliette Monsel in :issue:`23831`.)" msgstr "" +"Se ha agregado el método :meth:`~tkinter.Canvas.moveto` a la clase :class:" +"`tkinter.Canvas`. (Contribución de Juliette Monsel en :issue:`23831`.)" #: ../Doc/whatsnew/3.8.rst:1284 msgid "" @@ -1560,24 +2113,29 @@ msgid "" "transparency_get` and :meth:`~tkinter.PhotoImage.transparency_set` methods. " "(Contributed by Zackery Spytz in :issue:`25451`.)" msgstr "" +"La clase :class:`tkinter.PhotoImage` ahora dispone de los métodos :meth:" +"`~tkinter.PhotoImage.transparency_get` y :meth:`~tkinter.PhotoImage." +"transparency_set`. (Contribución de Zackery Spytz en :issue:`25451`.)" #: ../Doc/whatsnew/3.8.rst:1291 msgid "time" -msgstr "" +msgstr "time" #: ../Doc/whatsnew/3.8.rst:1293 msgid "" "Added new clock :data:`~time.CLOCK_UPTIME_RAW` for macOS 10.12. (Contributed " "by Joannah Nanjekye in :issue:`35702`.)" msgstr "" +"Se ha agregado el nuevo reloj :data:`~time.CLOCK_UPTIME_RAW` para macOS " +"10.12. (Contribución de Joannah Nanjekye en :issue:`35702`.)" #: ../Doc/whatsnew/3.8.rst:1298 msgid "typing" -msgstr "" +msgstr "typing" #: ../Doc/whatsnew/3.8.rst:1300 msgid "The :mod:`typing` module incorporates several new features:" -msgstr "" +msgstr "Se han incorporado varias características al módulo :mod:`typing`:" #: ../Doc/whatsnew/3.8.rst:1302 msgid "" @@ -1586,6 +2144,11 @@ msgid "" "required to be present. Specify \"total=False\" to allow keys to be " "optional::" msgstr "" +"Un tipo de diccionario con tipos para cada clave. Consultar :pep:`589` y :" +"class:`typing.TypedDict`. TypedDict usa solo claves de cadenas de " +"caracteres. De forma predeterminada, se requiere que todas las claves estén " +"presentes. Especifica \"total=False\" para permitir que las claves sean " +"opcionales::" #: ../Doc/whatsnew/3.8.rst:1312 msgid "" @@ -1593,6 +2156,9 @@ msgid "" "indicate that a parameter or return value is constrained to one or more " "specific literal values::" msgstr "" +"Tipos literales. Consultar :pep:`586` y :class:`typing.Literal`. Los tipos " +"literales indican que un parámetro o valor de retorno está restringido a uno " +"o más valores literales específicos::" #: ../Doc/whatsnew/3.8.rst:1319 msgid "" @@ -1600,6 +2166,10 @@ msgid "" "`typing.Final` and :func:`typing.final`. The final qualifier instructs a " "static type checker to restrict subclassing, overriding, or reassignment::" msgstr "" +"Variables, funciones, métodos y clases \"finales\". Consultar :pep:`591`, :" +"class:`typing.Final` y :func:`typing.final`. El clasificador final instruye " +"a un validador estático de tipos para restringir la subclasificación, " +"anulación o reasignación::" #: ../Doc/whatsnew/3.8.rst:1326 msgid "" @@ -1607,24 +2177,29 @@ msgid "" "`typing.runtime_checkable`. Simple ABCs like :class:`typing.SupportsInt` " "are now ``Protocol`` subclasses." msgstr "" +"Definiciones de protocolo. Consultar :pep:`544`, :class:`typing.Protocol` y :" +"func:`typing.runtime_checkable`. ABCs simples como :class:`typing." +"SupportsInt` ahora son subclases de ``Protocol`` ." #: ../Doc/whatsnew/3.8.rst:1330 msgid "New protocol class :class:`typing.SupportsIndex`." -msgstr "" +msgstr "Nueva clase protocolo :class:`typing.SupportsIndex`." #: ../Doc/whatsnew/3.8.rst:1332 msgid "New functions :func:`typing.get_origin` and :func:`typing.get_args`." -msgstr "" +msgstr "Nuevas funciones :func:`typing.get_origin` y :func:`typing.get_args`." #: ../Doc/whatsnew/3.8.rst:1336 msgid "unicodedata" -msgstr "" +msgstr "unicodedata" #: ../Doc/whatsnew/3.8.rst:1338 msgid "" "The :mod:`unicodedata` module has been upgraded to use the `Unicode 12.1.0 " "`_ release." msgstr "" +"El módulo :mod:`unicodedata` ha sido actualizado para usar `Unicode 12.1.0 " +"`_." #: ../Doc/whatsnew/3.8.rst:1341 msgid "" @@ -1633,10 +2208,14 @@ msgid "" "normalizing the string. (Contributed by Max Belanger, David Euresti, and " "Greg Price in :issue:`32285` and :issue:`37966`)." msgstr "" +"La nueva función :func:`~unicodedata.is_normalized` puede usarse para " +"verificar que una cadena está en una forma normal específica, lo que es a " +"menudo mucho más rápido que normalizar la cadena. (Contribución de Max " +"Belanger, David Euresti y Greg Price en :issue:`32285` y :issue:`37966`)." #: ../Doc/whatsnew/3.8.rst:1348 msgid "unittest" -msgstr "" +msgstr "unittest" #: ../Doc/whatsnew/3.8.rst:1350 msgid "" @@ -1645,6 +2224,10 @@ msgid "" "testing have been added as well. (Contributed by Lisa Roach in :issue:" "`26467`)." msgstr "" +"Se ha agregado :class:`~unittest.mock.AsyncMock` para admitir una versión " +"asincrónica de :class:`~unittest.mock.Mock`. También se han agregado nuevas " +"funciones de aserción apropiadas para las pruebas. (Contribución de Lisa " +"Roach en :issue:`26467`)." #: ../Doc/whatsnew/3.8.rst:1355 msgid "" @@ -1653,12 +2236,19 @@ msgid "" "setUpModule()` and :meth:`~unittest.TestCase.setUpClass()`. (Contributed by " "Lisa Roach in :issue:`24412`.)" msgstr "" +"Se ha agregado :func:`~unittest.addModuleCleanup()` y :meth:`~unittest." +"TestCase.addClassCleanup()` a unittest para admitir limpiezas para :func:" +"`~unittest.setUpModule()` y :meth:`~unittest .TestCase.setUpClass()`. " +"(Contribución de Lisa Roach en :issue:`24412`.)" #: ../Doc/whatsnew/3.8.rst:1361 msgid "" "Several mock assert functions now also print a list of actual calls upon " "failure. (Contributed by Petter Strandmark in :issue:`35047`.)" msgstr "" +"Varias funciones de aserción simulada ahora también imprimen una lista de " +"llamadas reales en caso de fallo. (Contribución de Petter Strandmark en :" +"issue:`35047`.)" #: ../Doc/whatsnew/3.8.rst:1364 msgid "" @@ -1666,14 +2256,17 @@ msgid "" "cases with :class:`unittest.IsolatedAsyncioTestCase`. (Contributed by Andrew " "Svetlov in :issue:`32972`.)" msgstr "" +"El módulo :mod:`unittest` ha obtenido soporte para corrutinas que se " +"utilizarán como casos de prueba con :class:`unittest." +"IsolatedAsyncioTestCase`. (Contribución de Andrew Svetlov en :issue:`32972`.)" #: ../Doc/whatsnew/3.8.rst:1368 msgid "Example::" -msgstr "" +msgstr "Ejemplo::" #: ../Doc/whatsnew/3.8.rst:1391 msgid "venv" -msgstr "" +msgstr "venv" #: ../Doc/whatsnew/3.8.rst:1393 msgid "" @@ -1681,10 +2274,13 @@ msgid "" "activating virtual environments under PowerShell Core 6.1. (Contributed by " "Brett Cannon in :issue:`32718`.)" msgstr "" +":mod:`venv` ahora incluye un script ``Activate.ps1`` en todas las " +"plataformas para activar entornos virtuales en PowerShell Core 6.1. " +"(Contribución de Brett Cannon en :issue:`32718`.)" #: ../Doc/whatsnew/3.8.rst:1399 msgid "weakref" -msgstr "" +msgstr "weakref" #: ../Doc/whatsnew/3.8.rst:1401 msgid "" @@ -1692,10 +2288,13 @@ msgid "" "multiplication operators ``@`` and ``@=`` in addition to the other numeric " "operators. (Contributed by Mark Dickinson in :issue:`36669`.)" msgstr "" +"Los objetos proxy retornados por :func:`debilref.proxy` ahora admiten los " +"operadores de multiplicación de matrices ``@`` y ``@=``, además de los otros " +"operadores numéricos. (Contribución de Mark Dickinson en :issue:`36669`.)" #: ../Doc/whatsnew/3.8.rst:1407 msgid "xml" -msgstr "" +msgstr "xml" #: ../Doc/whatsnew/3.8.rst:1409 msgid "" @@ -1703,6 +2302,10 @@ msgid "" "minidom` and :mod:`xml.sax` modules no longer process external entities by " "default. (Contributed by Christian Heimes in :issue:`17239`.)" msgstr "" +"Como mitigación contra DTD y recuperación de entidades externas, los " +"módulos :mod:`xml.dom.minidom` y :mod:`xml.sax` ya no procesan entidades " +"externas de forma predeterminada. (Contribución de Christian Heimes en :" +"issue:`17239`.)" #: ../Doc/whatsnew/3.8.rst:1414 msgid "" @@ -1711,6 +2314,10 @@ msgid "" "``{namespace}*`` which returns all tags in the given namespace. (Contributed " "by Stefan Behnel in :issue:`28238`.)" msgstr "" +"Los métodos ``.find*()`` del módulo :mod:`xml.etree.ElementTree` admiten " +"búsquedas con comodines, como ``{*}tag``, que ignora el espacio de nombres, " +"y ``{namespace}*``, que retorna todas las etiquetas en el espacio de nombres " +"dado. (Contribución de Stefan Behnel en :issue:`28238`.)" #: ../Doc/whatsnew/3.8.rst:1419 msgid "" @@ -1718,6 +2325,9 @@ msgid "" "etree.ElementTree.canonicalize()` that implements C14N 2.0. (Contributed by " "Stefan Behnel in :issue:`13611`.)" msgstr "" +"El módulo :mod:`xml.etree.ElementTree` proporciona una nueva función :func:`–" +"xml.etree.ElementTree.canonicalize()` que implementa C14N 2.0. (Contribución " +"de Stefan Behnel en :issue:`13611`.)" #: ../Doc/whatsnew/3.8.rst:1423 msgid "" @@ -1728,10 +2338,17 @@ msgid "" "processing instructions to include them in the generated tree. (Contributed " "by Stefan Behnel in :issue:`36676` and :issue:`36673`.)" msgstr "" +"El objeto de destino de :class:`xml.etree.ElementTree.XMLParser` puede " +"recibir eventos de declaración de espacio de nombres a través de los nuevos " +"métodos de retrollamada ``start_ns()`` y ``end_ns()``. Además, el destino :" +"class:`xml.etree.ElementTree.TreeBuilder` se puede configurar para procesar " +"eventos sobre comentarios e instrucciones de procesamiento para incluirlos " +"en el árbol generado. (Contribución de Stefan Behnel en :issue:`36676` y :" +"issue:`36673`.)" #: ../Doc/whatsnew/3.8.rst:1433 msgid "xmlrpc" -msgstr "" +msgstr "xmlrpc" #: ../Doc/whatsnew/3.8.rst:1435 msgid "" @@ -1741,10 +2358,15 @@ msgid "" "basic authentication to faster session authentication. (Contributed by " "Cédric Krier in :issue:`35153`.)" msgstr "" +":class:`xmlrpc.client.ServerProxy` ahora admite un argumento por palabra " +"clave *headers* opcional para una secuencia de encabezados HTTP que se " +"enviarán con cada solicitud. Entre otras cosas, esto permite actualizar " +"desde la autenticación básica predeterminada a una autenticación de sesión " +"más rápida. (Contribución de Cédric Krier en :issue:`35153`.)" #: ../Doc/whatsnew/3.8.rst:1443 msgid "Optimizations" -msgstr "" +msgstr "Optimizaciones" #: ../Doc/whatsnew/3.8.rst:1445 msgid "" @@ -1752,24 +2374,30 @@ msgid "" "in some cases for better performance. Currently, it is only used on macOS " "and Linux (using glibc 2.24 or newer) if all these conditions are met:" msgstr "" +"El módulo :mod:`subprocess` ahora puede usar en ciertos casos la función :" +"func:`os.posix_spawn` para mejorar el rendimiento. Actualmente, solo se usa " +"en macOS y Linux (usando glibc 2.24 o una versión más reciente) y siempre " +"que se cumplan todas estas condiciones:" #: ../Doc/whatsnew/3.8.rst:1449 msgid "*close_fds* is false;" -msgstr "" +msgstr "*close_fds* es falso;" #: ../Doc/whatsnew/3.8.rst:1450 msgid "" "*preexec_fn*, *pass_fds*, *cwd* and *start_new_session* parameters are not " "set;" msgstr "" +"los parámetros *preexec_fn*, *pass_fds*, *cwd* y *start_new_session* no " +"están establecidos;" #: ../Doc/whatsnew/3.8.rst:1452 msgid "the *executable* path contains a directory." -msgstr "" +msgstr "la ruta *executable* contiene un directorio." #: ../Doc/whatsnew/3.8.rst:1454 msgid "(Contributed by Joannah Nanjekye and Victor Stinner in :issue:`35537`.)" -msgstr "" +msgstr "(Contribución de Joannah Nanjekye y Victor Stinner en :issue:`35537`.)" #: ../Doc/whatsnew/3.8.rst:1456 #, python-format @@ -1787,6 +2415,20 @@ msgid "" "dependent-efficient-copy-operations` section. (Contributed by Giampaolo " "Rodolà in :issue:`33671`.)" msgstr "" +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" +"`shutil.copytree` y :func:`shutil.move` usan llamadas al sistema de \"copia-" +"rápida\" específicas de la plataforma en Linux y macOS, con la finalidad de " +"copiar ficheros más eficientemente. \"copia-rápida\" significa que la " +"operación de copiado tiene lugar en el propio kernel, evitando que Python " +"haga uso de búferes en el espacio de usuario como \"``outfd.write(infd." +"read())``\". En Windows, :func:`shutil.copyfile` usa un tamaño de búfer " +"predeterminado más grande (1 MiB en lugar de 16 KiB) y se usa una variante " +"de :func:`shutil.copyfileobj` basada en :func:`memoryview`. La aceleración " +"al copiar un archivo de 512 MiB dentro de la misma partición es de " +"aproximadamente +26% en Linux, +50% en macOS y +40% en Windows. Además, se " +"consumen muchos menos ciclos de CPU. Consultar la sección :ref:`shutil-" +"platform-dependent-efficient-copy-operations`. (Contribución de Giampaolo " +"Rodolà en :issue:`33671`.)" #: ../Doc/whatsnew/3.8.rst:1472 #, python-format @@ -1798,6 +2440,14 @@ msgid "" "syscalls is reduced by 38% making :func:`shutil.copytree` especially faster " "on network filesystems. (Contributed by Giampaolo Rodolà in :issue:`33695`.)" msgstr "" +"Ahora :func:`shutil.copytree` usa la función :func:`os.scandir` y todas las " +"funciones de copia que dependen de ella usan el valor en caché de :func:`os." +"stat`. Al copiar un directorio con 8000 archivos, la mejora de velocidad es " +"de +9% en Linux, +20% en Windows y +30% en recursos compartidos de Windows " +"SMB. Además, el número de llamadas al sistema de :func:`os.stat` se reduce " +"en un 38%, lo que hace que :func:`shutil.copytree` sea más rápida " +"especialmente en sistemas de archivos de red. (Contribución de Giampaolo " +"Rodolà en :issue:`33695`.)" #: ../Doc/whatsnew/3.8.rst:1479 msgid "" @@ -1805,6 +2455,9 @@ msgid "" "introduced in Python 3.4. It offers better performance and smaller size " "compared to Protocol 3 available since Python 3.0." msgstr "" +"El protocolo por defecto del módulo :mod:`pickle` es ahora el Protocolo 4, " +"introducido por primera vez en Python 3.4. Ofrece un mejor desempeño y un " +"menor tamaño, en comparación con el Protocolo 3 disponible desde Python 3.0." #: ../Doc/whatsnew/3.8.rst:1483 msgid "" @@ -1812,12 +2465,18 @@ msgid "" "objects (e.g. tuple, list, dict) size is reduced 4 or 8 bytes. (Contributed " "by Inada Naoki in :issue:`33597`.)" msgstr "" +"Eliminado un miembro ``Py_ssize_t`` de ``PyGC_Head``. El tamaño de todos los " +"objetos seguidos por el GC (por ejemplo tuple, list y dict) se ha reducido 4 " +"u 8 bytes. (Contribución de Inada Naoki en :issue:`33597`.)" #: ../Doc/whatsnew/3.8.rst:1487 msgid "" ":class:`uuid.UUID` now uses ``__slots__`` to reduce its memory footprint. " "(Contributed by Wouter Bolsterlee and Tal Einat in :issue:`30977`)" msgstr "" +"La clase :class:`uuid.UUID` ahora usa ``__slots__`` para reducir su impacto " +"en la memoria. (Contribución de Wouter Bolsterlee y Tal Einat en :issue:" +"`30977`.)" #: ../Doc/whatsnew/3.8.rst:1490 msgid "" @@ -1826,6 +2485,11 @@ msgid "" "negative integer index into a tuple (which is the typical use case in the " "standard library). (Contributed by Raymond Hettinger in :issue:`35664`.)" msgstr "" +"Mejorado el rendimiento de :func:`operator.itemgetter` en un 33%. Se ha " +"optimizado el manejo de argumentos y se ha agregado una ruta rápida al caso " +"común de índices enteros no negativos únicos en tuplas (que constituye un " +"caso de uso común en la biblioteca estándar). (Contribución de Raymond " +"Hettinger en :issue:`35664`.)" #: ../Doc/whatsnew/3.8.rst:1496 msgid "" @@ -1834,6 +2498,11 @@ msgid "" "lookup in Python. (Contributed by Raymond Hettinger, Pablo Galindo, and Joe " "Jevnik, Serhiy Storchaka in :issue:`32492`.)" msgstr "" +"Se han acelerado las búsquedas de campos en :func:`collections.namedtuple`. " +"Ahora son más del doble de rápidas, lo que las convierte en la forma más " +"rápida de búsqueda de variables de instancia en Python. (Contribución de " +"Raymond Hettinger, Pablo Galindo, Joe Jevnik y Serhiy Storchaka en :issue:" +"`32492`.)" #: ../Doc/whatsnew/3.8.rst:1501 #, python-format @@ -1843,6 +2512,11 @@ msgid "" "This makes the created list 12% smaller on average. (Contributed by Raymond " "Hettinger and Pablo Galindo in :issue:`33234`.)" msgstr "" +"El constructor de :class:`list` no sobre-asignará el búfer del elemento " +"interno si se conoce la longitud de la entrada iterable (es decir, si la " +"entrada implementa ``__len__``). Esto hace que la lista generada sea, en " +"promedio, un 12% más pequeña. (Contribución de Raymond Hettinger y Pablo " +"Galindo en :issue:`33234`.)" #: ../Doc/whatsnew/3.8.rst:1506 msgid "" @@ -1851,6 +2525,11 @@ msgid "" "Stefan Behnel, Pablo Galindo Salgado, Raymond Hettinger, Neil Schemenauer, " "and Serhiy Storchaka in :issue:`36012`.)" msgstr "" +"De ha duplicado la velocidad de escritura de variables de clase. Antes, " +"cuando se actualizaba un atributo non-dunder, había una llamada innecesaria " +"para actualizar slots. (Contribución de Stefan Behnel, Pablo Galindo " +"Salgado, Raymond Hettinger, Neil Schemenauer y Serhiy Storchaka en :issue:" +"`36012`.)" #: ../Doc/whatsnew/3.8.rst:1511 msgid "" @@ -1859,6 +2538,10 @@ msgid "" "up to 20--50%. (Contributed by Serhiy Storchaka in :issue:`23867`, :issue:" "`35582` and :issue:`36127`.)" msgstr "" +"Se ha reducido la sobrecarga de conversión de argumentos pasados a muchas " +"funciones y métodos integrados. Esto acelera la llamada a algunas funciones " +"y métodos incorporados simples hasta un 20-50%. (Contribución de Serhiy " +"Storchaka en :issue:`23867`, :issue:`35582` y :issue:`36127`.)" #: ../Doc/whatsnew/3.8.rst:1516 #, python-format @@ -1867,10 +2550,13 @@ msgid "" "is about 40% faster now. (Contributed by Yury Selivanov and Inada Naoki in :" "issue:`26219`.)" msgstr "" +"La instrucción ``LOAD_GLOBAL`` ahora utiliza el nuevo mecanismo \"per opcode " +"cache\". Ahora es aproximadamente un 40% más rápida. (Contribución de Yury " +"Selivanov e Inada Naoki en :issue:`26219`.)" #: ../Doc/whatsnew/3.8.rst:1522 msgid "Build and C API Changes" -msgstr "" +msgstr "Cambios en la compilación y la API de C" #: ../Doc/whatsnew/3.8.rst:1524 msgid "" @@ -1879,21 +2565,29 @@ msgid "" "compatible) and so has been removed. (Contributed by Victor Stinner in :" "issue:`36707`.)" msgstr "" +"El valor predeterminado para :data:`sys.abiflags` es ahora una cadena vacía: " +"el flag ``m`` para pymalloc se ha vuelto innecesario (las compilaciones con " +"y sin pymalloc son ABI compatibles) y por lo tanto se ha eliminado. " +"(Contribución de Victor Stinner en :issue:`36707`.)" #: ../Doc/whatsnew/3.8.rst:1528 msgid "Example of changes:" -msgstr "" +msgstr "Ejemplos del cambio:" #: ../Doc/whatsnew/3.8.rst:1530 msgid "" "Only ``python3.8`` program is installed, ``python3.8m`` program is gone." msgstr "" +"Solo el programa ``python3.8`` es instalado, el programa ``python3.8m`` se " +"ha eliminado." #: ../Doc/whatsnew/3.8.rst:1531 msgid "" "Only ``python3.8-config`` script is installed, ``python3.8m-config`` script " "is gone." msgstr "" +"Solo el script ``python3.8-config`` es instalado, el script ``python3.8m-" +"config`` se ha eliminado." #: ../Doc/whatsnew/3.8.rst:1533 msgid "" @@ -1903,22 +2597,33 @@ msgid "" "PyPI. On Linux, for example, the Python 3.7 suffix ``.cpython-37m-x86_64-" "linux-gnu.so`` became ``.cpython-38-x86_64-linux-gnu.so`` in Python 3.8." msgstr "" +"El flag ``m`` se ha eliminado del sufijo de los nombres de archivo de las " +"bibliotecas dinámicas: los módulos de extensión de la biblioteca estándar, " +"así como los producidos e instalados por paquetes de terceros, como los " +"descargados desde PyPI. En Linux, por ejemplo, el sufijo ``.cpython-37m-" +"x86_64-linux-gnu.so`` en Python 3.7 se ha convertido en ``.cpython-38-x86_64-" +"linux-gnu.so`` en Python 3.8." #: ../Doc/whatsnew/3.8.rst:1540 msgid "" "The header files have been reorganized to better separate the different " "kinds of APIs:" msgstr "" +"Los archivos de cabeceras se han reorganizado para separar mejor los " +"diferentes tipos de APIs:" #: ../Doc/whatsnew/3.8.rst:1543 msgid "``Include/*.h`` should be the portable public stable C API." -msgstr "" +msgstr "``Include/*.h`` debe ser la API de C portable, pública y estable." #: ../Doc/whatsnew/3.8.rst:1544 msgid "" "``Include/cpython/*.h`` should be the unstable C API specific to CPython; " "public API, with some private API prefixed by ``_Py`` or ``_PY``." msgstr "" +"``Include/cpython/*.h`` debe ser la API de C inestable específica de " +"CPython. Una API pública, con alguna API privada marcada con los prefijos " +"``_Py`` o ``_PY``." #: ../Doc/whatsnew/3.8.rst:1546 msgid "" @@ -1928,12 +2633,21 @@ msgid "" "debuggers and profiles which has to access to CPython internals without " "calling functions. This API is now installed by ``make install``." msgstr "" +"``Include/internal/*.h`` es la API de C interna privada, muy específica de " +"CPython. Esta API no tiene retro-compatibilidad garantizada con versiones " +"anteriores y no debe ser usada fuera de CPython. Solo está expuesta para " +"cubrir necesidades muy específicas, como es el caso de depuradores y " +"perfiladores, que necesitan acceder a los componentes internos de CPython " +"sin llamar directamente a las funciones. Esta API es ahora instalada por " +"``make install``." #: ../Doc/whatsnew/3.8.rst:1552 msgid "" "(Contributed by Victor Stinner in :issue:`35134` and :issue:`35081`, work " "initiated by Eric Snow in Python 3.7.)" msgstr "" +"(Contribución de Victor Stinner en :issue:`35134` y :issue:`35081`, trabajo " +"iniciado por Eric Snow en Python 3.7.)" #: ../Doc/whatsnew/3.8.rst:1555 msgid "" @@ -1941,28 +2655,34 @@ msgid "" "and return type are well defined, they don't have issues specific to macros, " "variables have a local scopes. Examples:" msgstr "" +"Algunas macros se han convertido a funciones inline estáticas: los tipos de " +"los parámetros y el tipo de retorno están bien definidos, no entrañan " +"cuestiones que precisen el uso específico de macros y las variables tienen " +"ámbito local. Algunos ejemplos:" #: ../Doc/whatsnew/3.8.rst:1559 msgid ":c:func:`Py_INCREF`, :c:func:`Py_DECREF`" -msgstr "" +msgstr ":c:func:`Py_INCREF`, :c:func:`Py_DECREF`" #: ../Doc/whatsnew/3.8.rst:1560 msgid ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" -msgstr "" +msgstr ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" #: ../Doc/whatsnew/3.8.rst:1561 msgid ":c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`" -msgstr "" +msgstr ":c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`" #: ../Doc/whatsnew/3.8.rst:1562 msgid "" "Private functions: :c:func:`_PyObject_GC_TRACK`, :c:func:" "`_PyObject_GC_UNTRACK`, :c:func:`_Py_Dealloc`" msgstr "" +"Funciones privadas: :c:func:`_PyObject_GC_TRACK`, :c:func:" +"`_PyObject_GC_UNTRACK`, :c:func:`_Py_Dealloc`" #: ../Doc/whatsnew/3.8.rst:1565 msgid "(Contributed by Victor Stinner in :issue:`35059`.)" -msgstr "" +msgstr "(Contribución de Victor Stinner en :issue:`35059`.)" #: ../Doc/whatsnew/3.8.rst:1567 msgid "" @@ -1971,6 +2691,10 @@ msgid "" "excluded from the limited API (stable ABI), and were not documented. " "(Contributed by Victor Stinner in :issue:`35713`.)" msgstr "" +"Las funciones :c:func:`PyByteArray_Init` y :c:func:`PyByteArray_Fini` se han " +"eliminado. No eran de utilidad desde Python 2.7.4 y Python 3.2.0, cuando " +"fueron excluidas de la API limitada (ABI estable) y dejaron de estar " +"documentadas. (Contribución de Victor Stinner en :issue:`35713`.)" #: ../Doc/whatsnew/3.8.rst:1572 msgid "" @@ -1978,6 +2702,9 @@ msgid "" "*`` rather of ``char *``. (Contributed by Serhiy Storchaka in :issue:" "`33818`.)" msgstr "" +"El resultado de :c:func:`PyExceptionClass_Name` es ahora de tipo ``const " +"char *`` en vez de ``char *``. (Contribución de Serhiy Storchaka en :issue:" +"`33818`.)" #: ../Doc/whatsnew/3.8.rst:1576 msgid "" @@ -1989,6 +2716,14 @@ msgid "" "annoyance to developers following CPython development, as forgetting to copy " "the file could produce build failures." msgstr "" +"La dualidad conformada por ``Modules/Setup.dist`` y ``Modules/Setup`` ha " +"sido eliminada. Anteriormente, al actualizar el árbol de fuentes de CPython, " +"se tenía que copiar manualmente ``Modules/Setup.dist`` (dentro del árbol de " +"fuentes) a ``Modules/Setup`` (dentro del árbol de compilación) para reflejar " +"cualquier cambio en sentido ascendente. Esto suponía un pequeño beneficio " +"para los empaquetadores, a expensas de una frecuente molestia para los " +"desarrolladores de CPython, ya que olvidarse de copiar el archivo podía " +"ocasionar fallos de compilación." #: ../Doc/whatsnew/3.8.rst:1584 msgid "" @@ -1997,10 +2732,15 @@ msgid "" "their changes in a git fork of CPython or as patch files, as they would do " "for any other change to the source tree." msgstr "" +"Ahora el sistema de compilación siempre lee desde ``Modules/Setup`` dentro " +"del árbol de fuentes. Se recomienda a las personas que deseen personalizar " +"este archivo que mantengan sus cambios en un fork de git de CPython o como " +"archivos de parche, como harían con cualquier otro cambio en el árbol de " +"fuentes." #: ../Doc/whatsnew/3.8.rst:1589 msgid "(Contributed by Antoine Pitrou in :issue:`32430`.)" -msgstr "" +msgstr "(Contribución de Antoine Pitrou en :issue:`32430`.)" #: ../Doc/whatsnew/3.8.rst:1591 msgid "" @@ -2017,6 +2757,18 @@ msgid "" "available. (Contributed by Serhiy Storchaka in :issue:`36048` and :issue:" "`20092`.)" msgstr "" +"Las funciones que convierten un número de Python a un entero de C, como :c:" +"func:`PyLong_AsLong`, y las funciones de análisis de argumentos como :c:func:" +"`PyArg_ParseTuple` con unidades de formato de conversión de enteros como " +"``'i'``, ahora usarán el método especial :meth:`~object.__index__` si está " +"disponible, en lugar de :meth:`~object.__int__`. Una advertencia de " +"deprecación se emitirá para aquellos objetos que tengan el método " +"``__int__()`` pero no el método ``__index__()`` (como :class:`~decimal." +"Decimal` y :class:`~fractions.Fraction`). :c:func:`PyNumber_Check` ahora " +"retornará ``1`` para los objetos que implementen ``__index__()``. :c:func:" +"`PyNumber_Long`, :c:func:`PyNumber_Float` y :c:func:`PyFloat_AsDouble` ahora " +"también usan el método ``__index__()`` si está disponible. (Contribución de " +"Serhiy Storchaka en :issue:`36048` y :issue:`20092`.)" #: ../Doc/whatsnew/3.8.rst:1605 msgid "" @@ -2026,6 +2778,11 @@ msgid "" "deallocation may need to be adjusted. (Contributed by Eddie Elizondo in :" "issue:`35810`.)" msgstr "" +"Los objetos de tipo asignados al montículo ahora aumentarán su recuento de " +"referencias en :c:func:`PyObject_Init` (y en su macro paralela " +"``PyObject_INIT``) en lugar de en :c:func:`PyType_GenericAlloc`. Es posible " +"que deban ajustarse los tipos que modifican la asignación o desasignación de " +"instancias. (Contribución de Eddie Elizondo en :issue:`35810`.)" #: ../Doc/whatsnew/3.8.rst:1611 msgid "" @@ -2034,6 +2791,10 @@ msgid "" "parameter for indicating the number of positional-only arguments. " "(Contributed by Pablo Galindo in :issue:`37221`.)" msgstr "" +"La nueva función :c:func:`PyCode_NewWithPosOnlyArgs` permite crear objetos " +"de código, al igual que :c:func:`PyCode_New`, pero con un parámetro " +"*posonlyargcount* extra, que permite indicar el número de argumentos solo " +"posicionales." #: ../Doc/whatsnew/3.8.rst:1616 msgid "" @@ -2041,10 +2802,14 @@ msgid "" "path (:c:func:`Py_GetProgramFullPath`) rather than to the program name (:c:" "func:`Py_GetProgramName`). (Contributed by Victor Stinner in :issue:`38234`.)" msgstr "" +":c:func:`Py_SetPath` ahora establece :data:`sys.executable` en la ruta " +"completa del programa (:c:func:`Py_GetProgramFullPath`), en vez de en el " +"nombre del programa (:c:func:`Py_GetProgramName`). (Contribución de Victor " +"Stinner en :issue:`38234`.)" #: ../Doc/whatsnew/3.8.rst:1623 msgid "Deprecated" -msgstr "" +msgstr "Obsoleto" #: ../Doc/whatsnew/3.8.rst:1625 msgid "" @@ -2052,6 +2817,9 @@ msgid "" "``bdist_wheel`` (wheel packages) instead. (Contributed by Victor Stinner in :" "issue:`37481`.)" msgstr "" +"El comando ``bdist_wininst`` de distutils está ahora obsoleto, usar " +"``bdist_wheel`` (paquetes wheel) en su lugar. (Contribución de Victor " +"Stinner en :issue:`37481`.)" #: ../Doc/whatsnew/3.8.rst:1629 msgid "" @@ -2060,6 +2828,10 @@ msgid "" "exc:`PendingDeprecationWarning`. They will be removed in Python 3.9. " "(Contributed by Serhiy Storchaka in :issue:`29209`.)" msgstr "" +"Los métodos ``getchildren()`` y ``getiterator()`` del módulo :mod:`~xml." +"etree.ElementTree` ahora emiten una advertencia :exc:`DeprecationWarning`, " +"en lugar de :exc:`PendingDeprecationWarning`. Serán eliminados en Python " +"3.9. (Contribución de Serhiy Storchaka en :issue:`29209`.)" #: ../Doc/whatsnew/3.8.rst:1635 msgid "" @@ -2068,6 +2840,10 @@ msgid "" "set_default_executor>` is deprecated and will be prohibited in Python 3.9. " "(Contributed by Elvis Pranskevichus in :issue:`34075`.)" msgstr "" +"Pasar un objeto a :meth:`loop.set_default_executor() ` que no sea una instancia de :class:`concurrent." +"futures.ThreadPoolExecutor` está obsoleto y será prohibido en Python 3.9. " +"(Contribución de Elvis Pranskevichus en :issue:`34075`.)" #: ../Doc/whatsnew/3.8.rst:1641 msgid "" @@ -2075,6 +2851,9 @@ msgid "" "class:`wsgiref.util.FileWrapper` and :class:`fileinput.FileInput` have been " "deprecated." msgstr "" +"Los métodos :meth:`__getitem__` pertenecientes a las clases :class:`xml.dom." +"pulldom.DOMEventStream`, :class:`wsgiref.util.FileWrapper` y :class:" +"`fileinput.FileInput` están obsoletos a partir de ahora." #: ../Doc/whatsnew/3.8.rst:1645 msgid "" @@ -2082,6 +2861,9 @@ msgid "" "and returning the next item instead. (Contributed by Berker Peksag in :issue:" "`9372`.)" msgstr "" +"Las implementaciones de estos métodos han estado ignorando su parámetro " +"*index* y retornando el siguiente item en su lugar. (Contribución de Berker " +"Peksag en :issue:`9372`.)" #: ../Doc/whatsnew/3.8.rst:1649 msgid "" @@ -2089,6 +2871,9 @@ msgid "" "attribute in favor of the ``__annotations__`` attribute which has the same " "information. (Contributed by Raymond Hettinger in :issue:`36320`.)" msgstr "" +"El atributo ``_field_types`` de la clase :class:`typing.NamedTuple` está " +"ahora obsoleto en favor del atributo ``__annotations__``, que contiene la " +"misma información. (Contribución de Raymond Hettinger en :issue:`36320`.)" #: ../Doc/whatsnew/3.8.rst:1653 msgid "" @@ -2097,6 +2882,10 @@ msgid "" "versions. :class:`~ast.Constant` should be used instead. (Contributed by " "Serhiy Storchaka in :issue:`32892`.)" msgstr "" +"Las clases ``Num``, ``Str``, ``Bytes``, ``NameConstant`` y ``Ellipsis`` del " +"módulo :mod:`ast` están consideradas obsoletas y serán eliminadas en " +"versiones futuras de Python. La clase :class:`~ast.Constant` debe ser usada " +"en su lugar. (Contribución de Serhiy Storchaka en :issue:`32892`.)" #: ../Doc/whatsnew/3.8.rst:1658 msgid "" @@ -2106,6 +2895,12 @@ msgid "" "meth:`~ast.NodeVisitor.visit_Constant` method to handle all constant nodes. " "(Contributed by Serhiy Storchaka in :issue:`36917`.)" msgstr "" +"Los métodos ``visit_Num()``, ``visit_Str()``, ``visit_Bytes()``, " +"``visit_NameConstant()`` y ``visit_Ellipsis()`` de la clase :class:`ast." +"NodeVisitor` están obsoletos ahora y serán invocados en versiones futuras de " +"Python. Agregar el método :meth:`~ast.NodeVisitor.visit_Constant` para " +"manejar todos los nodos constantes. (Contribución de Serhiy Storchaka en :" +"issue:`36917`.)" #: ../Doc/whatsnew/3.8.rst:1665 msgid "" @@ -2113,6 +2908,9 @@ msgid "" "removed in version 3.10. Instead of ``@asyncio.coroutine``, use :keyword:" "`async def` instead. (Contributed by Andrew Svetlov in :issue:`36921`.)" msgstr "" +"El :term:`decorator` :func:`asyncio.coroutine` está obsoleto y será " +"eliminado en Python 3.10. En lugar de ``@asyncio.coroutine``, se debe usar :" +"keyword:`async def`. (Contribución de Andrew Svetlov en :issue:`36921`.)" #: ../Doc/whatsnew/3.8.rst:1670 msgid "" @@ -2125,6 +2923,14 @@ msgid "" "BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio." "create_subprocess_exec`, and :func:`asyncio.create_subprocess_shell`." msgstr "" +"En :mod:`asyncio`, pasar un argumento *loop* de forma explícita está ahora " +"obsoleto y será eliminado en Python 3.10 para las siguientes funciones y " +"constructores: :func:`asyncio.sleep`, :func:`asyncio.gather`, :func:`asyncio." +"shield`, :func:`asyncio.wait_for`, :func:`asyncio.wait`, :func:`asyncio." +"as_completed`, :class:`asyncio.Task`, :class:`asyncio.Lock`, :class:`asyncio." +"Event`, :class:`asyncio.Condition`, :class:`asyncio.Semaphore`, :class:" +"`asyncio.BoundedSemaphore`, :class:`asyncio.Queue`, :func:`asyncio." +"create_subprocess_exec` y :func:`asyncio.create_subprocess_shell`." #: ../Doc/whatsnew/3.8.rst:1680 msgid "" @@ -2132,6 +2938,9 @@ msgid "" "deprecated and will be removed in version 3.11. (Contributed by Yury " "Selivanov in :issue:`34790`.)" msgstr "" +"El paso explícito de objetos corrutina a :func:`asyncio.wait` está ahora " +"obsoleto y será eliminado en Python 3.11. (Contribución de Yury Selivanov " +"en :issue:`34790`.)" #: ../Doc/whatsnew/3.8.rst:1684 msgid "" @@ -2143,6 +2952,13 @@ msgid "" "much better to use alternatives which return Unicode strings in Python 3. " "These functions have been broken for a long time." msgstr "" +"Las siguientes funciones y métodos del módulo :mod:`gettext` están obsoletos " +"para: :func:`~gettext.lgettext`, :func:`~gettext.ldgettext`, :func:`~gettext." +"lngettext` y :func:`~gettext.ldngettext`. Retornan bytes codificados y es " +"posible obtener excepciones inesperadas relacionadas con Unicode si hay " +"problemas de codificación con las cadenas traducidas. En Python 3 es mucho " +"mejor usar alternativas que retornen cadenas Unicode. Estas funciones han " +"estado rotas durante mucho tiempo." #: ../Doc/whatsnew/3.8.rst:1692 msgid "" @@ -2153,12 +2969,20 @@ msgid "" "since they are only used for 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`.)" #: ../Doc/whatsnew/3.8.rst:1700 msgid "" "The :meth:`~threading.Thread.isAlive()` method of :class:`threading.Thread` " "has been deprecated. (Contributed by Dong-hee Na in :issue:`35283`.)" msgstr "" +"El método :meth:`~threading.Thread.isAlive()` de la clase :class:`threading." +"Thread` está ahora obsoleto. (Contribución de Dong-hee Na en :issue:`35283`.)" #: ../Doc/whatsnew/3.8.rst:1704 msgid "" @@ -2169,10 +2993,19 @@ msgid "" "but do not have the :meth:`~object.__index__` method). In future version " "they will be errors. (Contributed by Serhiy Storchaka in :issue:`36048`.)" msgstr "" +"Muchas funciones incorporadas y de extensión que toman argumentos enteros " +"ahora emitirán una advertencia de deprecación para :class:`~decimal.Decimal`" +"\\ s, :class:`~fractions.Fraction`\\ s y cualquier otro objeto que se pueda " +"convertir a enteros solamente con pérdida (por ejemplo, aquellos que tienen " +"el método :meth:`~object .__int__` pero no el método :meth:`~object ." +"__index__`). En una versión futura, esto constituirá un error. (Contribución " +"de Serhiy Storchaka en :issue:`36048`.)" #: ../Doc/whatsnew/3.8.rst:1712 msgid "Deprecated passing the following arguments as keyword arguments:" msgstr "" +"El paso de los siguientes argumentos como argumentos por palabra clave está " +"ahora obsoleto:" #: ../Doc/whatsnew/3.8.rst:1714 msgid "" @@ -2180,10 +3013,13 @@ msgid "" "`profile.Profile.runcall`, :meth:`cProfile.Profile.runcall`, :meth:`bdb.Bdb." "runcall`, :meth:`trace.Trace.runfunc` and :func:`curses.wrapper`." msgstr "" +"*func* en :func:`functools.partialmethod`, :func:`weakref.finalize`, :meth:" +"`profile.Profile.runcall`, :meth:`cProfile.Profile.runcall`, :meth:`bdb.Bdb." +"runcall`, :meth:`trace.Trace.runfunc` y :func:`curses.wrapper`." #: ../Doc/whatsnew/3.8.rst:1718 msgid "*function* in :meth:`unittest.TestCase.addCleanup`." -msgstr "" +msgstr "*function* en :meth:`unittest.TestCase.addCleanup`." #: ../Doc/whatsnew/3.8.rst:1719 msgid "" @@ -2191,6 +3027,9 @@ msgid "" "`concurrent.futures.ThreadPoolExecutor` and :class:`concurrent.futures." "ProcessPoolExecutor`." msgstr "" +"*fn* en el método :meth:`~concurrent.futures.Executor.submit` de las clases :" +"class:`concurrent.futures.ThreadPoolExecutor` y :class:`concurrent.futures." +"ProcessPoolExecutor`." #: ../Doc/whatsnew/3.8.rst:1722 msgid "" @@ -2198,6 +3037,9 @@ msgid "" "AsyncExitStack.callback` and :meth:`contextlib.AsyncExitStack." "push_async_callback`." msgstr "" +"*callback* en :meth:`contextlib.ExitStack.callback`, :meth:`contextlib." +"AsyncExitStack.callback` y :meth:`contextlib.AsyncExitStack." +"push_async_callback`." #: ../Doc/whatsnew/3.8.rst:1725 msgid "" @@ -2205,24 +3047,30 @@ msgid "" "method of :class:`multiprocessing.managers.Server` and :class:" "`multiprocessing.managers.SharedMemoryServer`." msgstr "" +"*c* y *typeid* en el método :meth:`~multiprocessing.managers.Server.create` " +"de las clases :class:`multiprocessing.managers.Server` y :class:" +"`multiprocessing.managers.SharedMemoryServer`." #: ../Doc/whatsnew/3.8.rst:1728 msgid "*obj* in :func:`weakref.finalize`." -msgstr "" +msgstr "*obj* en :func:`weakref.finalize`." #: ../Doc/whatsnew/3.8.rst:1730 msgid "" "In future releases of Python, they will be :ref:`positional-only `. (Contributed by Serhiy Storchaka in :issue:`36492`.)" msgstr "" +"En futuros lanzamientos de Python, todos ellos serán :ref:`argumentos solo " +"posicionales `. (Contribución de Serhiy Storchaka " +"en :issue:`36492`.)" #: ../Doc/whatsnew/3.8.rst:1736 msgid "API and Feature Removals" -msgstr "" +msgstr "APIs y características eliminadas" #: ../Doc/whatsnew/3.8.rst:1738 msgid "The following features and APIs have been removed from Python 3.8:" -msgstr "" +msgstr "Las siguientes características y APIs se han eliminado de Python 3.8:" #: ../Doc/whatsnew/3.8.rst:1740 msgid "" @@ -2231,12 +3079,19 @@ msgid "" "able to import from collections was marked for removal in 3.8, but has been " "delayed to 3.9. (See :issue:`36952`.)" msgstr "" +"A partir de Python 3.3, la importación de ABC desde el módulo :mod:" +"`collections` quedó obsoleta y la importación debe realizarse desde el " +"módulo :mod:`collections.abc`. La posibilidad de importar desde collections " +"se marcó para su eliminación en Python 3.8, pero se ha retrasado a Python " +"3.9. (Consultar :issue:`36952`.)" #: ../Doc/whatsnew/3.8.rst:1745 msgid "" "The :mod:`macpath` module, deprecated in Python 3.7, has been removed. " "(Contributed by Victor Stinner in :issue:`35471`.)" msgstr "" +"El módulo :mod:`macpath`, obsoleto desde Python 3.7, ha sido eliminado. " +"(Contribución de Victor Stinner en :issue:`35471`.)" #: ../Doc/whatsnew/3.8.rst:1748 ../Doc/whatsnew/3.8.rst:1867 msgid "" @@ -2244,6 +3099,9 @@ msgid "" "deprecated since Python 3.3: use :func:`os.popen` instead. (Contributed by " "Victor Stinner in :issue:`35345`.)" msgstr "" +"La función :func:`platform.popen` ha sido eliminada, después de haber estado " +"obsoleta desde Python 3.3: usa :func:`os.popen` en su lugar. (Contribución " +"de Victor Stinner en :issue:`35345`.)" #: ../Doc/whatsnew/3.8.rst:1752 msgid "" @@ -2252,6 +3110,11 @@ msgid "" "process_time` instead, depending on your requirements, to have well-defined " "behavior. (Contributed by Matthias Bussonnier in :issue:`36895`.)" msgstr "" +"La función :func:`time.clock` ha sido eliminada, después de haber quedado " +"obsoleta desde Python 3.3: usa :func:`time.perf_counter` o :func:`time." +"process_time` en su lugar, dependiendo de tus requisitos, para tener un " +"comportamiento bien definido. (Contribución de Matthias Bussonnier en :issue:" +"`36895`.)" #: ../Doc/whatsnew/3.8.rst:1758 msgid "" @@ -2259,6 +3122,10 @@ msgid "" "help eliminate confusion as to what Python interpreter the ``pyvenv`` script " "is tied to. (Contributed by Brett Cannon in :issue:`25427`.)" msgstr "" +"El script ``pyvenv`` se ha eliminado, en favor de ``python3.8 -m venv``, " +"para ayudar a eliminar la confusión sobre a qué intérprete de Python está " +"vinculado el script ``pyvenv``. (Contribución de Brett Cannon en :issue:" +"`25427`.)" #: ../Doc/whatsnew/3.8.rst:1762 msgid "" @@ -2266,12 +3133,18 @@ msgid "" "module. They are deprecated in Python 3.2 or older. They should be imported " "from the ``urllib.parse`` and ``html`` modules instead." msgstr "" +"Las funciones ``parse_qs``, ``parse_qsl`` y ``escape`` se han eliminado del " +"módulo :mod:`cgi`. Estaban obsoletas desde Python 3.2 o versiones " +"anteriores. En su lugar, deberían ser importadas desde los módulos ``urllib." +"parse`` y ``html``." #: ../Doc/whatsnew/3.8.rst:1766 msgid "" "``filemode`` function is removed from the :mod:`tarfile` module. It is not " "documented and deprecated since Python 3.3." msgstr "" +"La función ``filemode`` se ha eliminado del módulo :mod:`tarfile`. Estaba " +"indocumentada y obsoleta desde Python 3.3." #: ../Doc/whatsnew/3.8.rst:1769 msgid "" @@ -2280,24 +3153,35 @@ msgid "" "3.4. All other parameters are now :ref:`keyword-only `. (Contributed by Serhiy Storchaka in :issue:`29209`.)" msgstr "" +"El constructor de :class:`~xml.etree.ElementTree.XMLParser` ya no acepta el " +"argumento *html*. Nunca tuvo efecto y quedó obsoleto en Python 3.4. Todos " +"los demás parámetros son ahora :ref:`parámetros solo nombrados `. (Contribución de Serhiy Storchaka en :issue:`29209`.)" #: ../Doc/whatsnew/3.8.rst:1774 msgid "" "Removed the ``doctype()`` method of :class:`~xml.etree.ElementTree." "XMLParser`. (Contributed by Serhiy Storchaka in :issue:`29209`.)" msgstr "" +"Se ha eliminado el método ``doctype()`` de :class:`~xml.etree.ElementTree." +"XMLParser`. (Contribución de Serhiy Storchaka en :issue:`29209`.)" #: ../Doc/whatsnew/3.8.rst:1777 msgid "" "\"unicode_internal\" codec is removed. (Contributed by Inada Naoki in :issue:" "`36297`.)" msgstr "" +"Se ha elimina el códec \"unicode_internal\". (Contribución de Inada Naoki " +"en :issue:`36297`.)" #: ../Doc/whatsnew/3.8.rst:1780 msgid "" "The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not " "exposed to the user. (Contributed by Aviv Palivoda in :issue:`30262`.)" msgstr "" +"Los objetos ``Cache`` y ``Statement`` del módulo :mod:`sqlite3` no estarán " +"expuestos al usuario a partir de ahora. (Contribución de Aviv Palivoda en :" +"issue:`30262`.)" #: ../Doc/whatsnew/3.8.rst:1784 msgid "" @@ -2305,6 +3189,9 @@ msgid "" "`fileinput.FileInput` which was ignored and deprecated since Python 3.6 has " "been removed. :issue:`36952` (Contributed by Matthias Bussonnier.)" msgstr "" +"El argumento por palabra clave ``bufsize`` de :func:`fileinput.input` y :" +"func:`fileinput.FileInput`, marcado como obsoleto e ignorado desde Python " +"3.6, ha sido eliminado. :issue:`36952` (Contribución de Matthias Bussonnier.)" #: ../Doc/whatsnew/3.8.rst:1788 msgid "" @@ -2312,20 +3199,25 @@ msgid "" "get_coroutine_wrapper` deprecated in Python 3.7 have been removed; :issue:" "`36933` (Contributed by Matthias Bussonnier.)" msgstr "" +"Las funciones :func:`sys.set_coroutine_wrapper` y :func:`sys." +"get_coroutine_wrapper`, obsoletas desde Python 3.7, han sido eliminadas; :" +"issue:`36933` (Contribución de Matthias Bussonnier.)" #: ../Doc/whatsnew/3.8.rst:1794 msgid "Porting to Python 3.8" -msgstr "" +msgstr "Portando a Python 3.8" #: ../Doc/whatsnew/3.8.rst:1796 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 tu código." #: ../Doc/whatsnew/3.8.rst:1801 msgid "Changes in Python behavior" -msgstr "" +msgstr "Cambios en el comportamiento de Python" #: ../Doc/whatsnew/3.8.rst:1803 msgid "" @@ -2334,6 +3226,10 @@ msgid "" "iterable expression in the leftmost :keyword:`!for` clause). (Contributed by " "Serhiy Storchaka in :issue:`10544`.)" msgstr "" +"Las expresiones yield (tanto la cláusula ``yield`` como la cláusula ``yield " +"from``) ahora no están permitidas en comprensiones y expresiones generadoras " +"(excepto en la expresión iterable en la cláusula :keyword:`!for` situada más " +"a la izquierda). (Contribución de Serhiy Storchaka en :issue:`10544`.)" #: ../Doc/whatsnew/3.8.rst:1808 msgid "" @@ -2344,6 +3240,13 @@ msgid "" "tests (``==`` and ``!=``) instead. (Contributed by Serhiy Storchaka in :" "issue:`34850`.)" msgstr "" +"El compilador ahora produce una advertencia :exc:`SyntaxWarning` cuando se " +"utilizan comprobaciones de identidad (``is`` e ``is not``) con ciertos tipos " +"de literales (por ejemplo, cadenas, números). A menudo, estas pueden " +"funcionar accidentalmente en CPython, pero no está garantizado por las " +"especificaciones del lenguaje. La advertencia advierte a los usuarios que " +"utilicen pruebas de igualdad (``==`` y ``!=``) en su lugar. (Contribución de " +"Serhiy Storchaka en :issue:`34850`.)" #: ../Doc/whatsnew/3.8.rst:1815 msgid "" @@ -2352,6 +3255,11 @@ msgid "" "when getting the attribute from the type dictionary are no longer ignored. " "(Contributed by Serhiy Storchaka in :issue:`35459`.)" msgstr "" +"El intérprete de CPython puede tolerar excepciones en algunas " +"circunstancias. En Python 3.8 esto sucederá con menos frecuencia. En " +"particular, las excepciones que se generan al obtener atributos del " +"diccionario de tipos ya no son ignoradas. (Contribución de Serhiy Storchaka " +"en :issue:`35459`.)" #: ../Doc/whatsnew/3.8.rst:1820 msgid "" @@ -2362,6 +3270,13 @@ msgid "" "affect their string representation. (Contributed by Serhiy Storchaka in :" "issue:`36793`.)" msgstr "" +"Se ha eliminado las implementaciones de ``__str__`` para los tipos " +"incorporados :class:`bool`, :class:`int`, :class:`float`, :class:`complex` y " +"algunas clases de la biblioteca estándar. Ahora heredan el método " +"``__str__()`` de :class:`object`. Como resultado, definir el método " +"``__repr__()`` en una subclase de estas clases afectará a su representación " +"como cadena de caracteres. (Contribución de Serhiy Storchaka en :issue:" +"`36793`.)" #: ../Doc/whatsnew/3.8.rst:1827 msgid "" @@ -2371,6 +3286,11 @@ msgid "" "use ``sys.platform.startswith('aix')``. (Contributed by M. Felt in :issue:" "`36588`.)" msgstr "" +"En AIX, el atributo :attr:`sys.platform` ya no contiene la versión " +"principal. Es decir, siempre es ``'aix'``, en lugar de ``'aix3'`` .. " +"``'aix7'``. Dado que las versiones anteriores de Python incluyen el número " +"de versión, se recomienda usar siempre ``sys.platform.startswith('aix')``. " +"(Contribución de M. Felt en :issue:`36588`.)" #: ../Doc/whatsnew/3.8.rst:1833 msgid "" @@ -2382,10 +3302,17 @@ msgid "" "func:`sys.is_finalizing`. (Contributed by Joannah Nanjekye in :issue:" "`36475`.)" msgstr "" +":c:func:`PyEval_AcquireLock` y :c:func:`PyEval_AcquireThread` ahora terminan " +"el hilo actual si se llaman mientras el intérprete está finalizando, " +"haciéndolos consistentes con :c:func:`PyEval_RestoreThread`, :c:func:" +"`Py_END_ALLOW_THREADS` y :c:func:`PyGILState_Ensure`. Si no se desea este " +"comportamiento, se tiene que proteger la invocación comprobando :c:func:" +"`_Py_IsFinalizing` o :c:func:`sys.is_finalizing`. (Contribución de Joannah " +"Nanjekye en :issue:`36475`.)" #: ../Doc/whatsnew/3.8.rst:1843 msgid "Changes in the Python API" -msgstr "" +msgstr "Cambios en la API de Python" #: ../Doc/whatsnew/3.8.rst:1845 msgid "" @@ -2394,6 +3321,10 @@ msgid "" "function is no longer deprecated on Windows. (Contributed by Victor Stinner " "in :issue:`37412`.)" msgstr "" +"La función :func:`os.getcwdb` ahora usa la codificación UTF-8 en Windows, en " +"lugar de la página de códigos ANSI: consultar :pep:`529` para el fundamento. " +"La función ya no está obsoleta en Windows. (Contribución de Victor Stinner " +"en :issue:`37412`.)" #: ../Doc/whatsnew/3.8.rst:1850 msgid "" @@ -2404,6 +3335,13 @@ msgid "" "child process fails with a non-zero :attr:`~Popen.returncode`. (Contributed " "by Joannah Nanjekye and Victor Stinner in :issue:`35537`.)" msgstr "" +":class:`subprocess.Popen` ahora puede usar :func:`os.posix_spawn` en algunos " +"casos para un mejor rendimiento. En el Subsistema de Windows para Linux y en " +"la Emulación de usuario QEMU, el constructor :class:`Popen` que usa :func:" +"`os.posix_spawn` ya no genera una excepción como \"missing program\" ante " +"errores. En cambio, el proceso hijo falla con un valor :attr:`~Popen." +"returncode` distinto de cero. (Contribución de Joannah Nanjekye y Victor " +"Stinner en :issue:`35537`.)" #: ../Doc/whatsnew/3.8.rst:1857 msgid "" @@ -2412,12 +3350,18 @@ msgid "" "subinterpreter now raises :exc:`RuntimeError`. (Contributed by Eric Snow in :" "issue:`34651`, modified by Christian Heimes in :issue:`37951`.)" msgstr "" +"El argumento *preexec_fn* de :class:`subprocess.Popen` ya no es compatible " +"con subintérpretes. El uso del parámetro en un subintérprete ahora lanza una " +"excepción :exc:`RuntimeError`. (Contribución de Eric Snow en :issue:`34651`, " +"modificado por Christian Heimes en :issue:`37951`.)" #: ../Doc/whatsnew/3.8.rst:1863 msgid "" "The :meth:`imap.IMAP4.logout` method no longer silently ignores arbitrary " "exceptions. (Contributed by Victor Stinner in :issue:`36348`.)" msgstr "" +"El método :meth:`imap.IMAP4.logout` ya no ignora silenciosamente excepciones " +"arbitrarias. (Contribución de Victor Stinner en :issue:`36348`.)" #: ../Doc/whatsnew/3.8.rst:1871 msgid "" @@ -2425,6 +3369,10 @@ msgid "" "given multimodal data. Instead, it returns the first mode encountered in " "the input data. (Contributed by Raymond Hettinger in :issue:`35892`.)" msgstr "" +"La función :func:`statistics.mode` ya no lanza una excepción cuando se " +"proporcionan datos multimodales. Ahora, en cambio, retorna la primera moda " +"encontrada en los datos de entrada. (Contribución de Raymond Hettinger en :" +"issue:`35892`.)" #: ../Doc/whatsnew/3.8.rst:1876 msgid "" @@ -2434,6 +3382,11 @@ msgid "" "methods like :meth:`~tkinter.ttk.Treeview.selection_set` for changing the " "selection. (Contributed by Serhiy Storchaka in :issue:`31508`.)" msgstr "" +"El método :meth:`~tkinter.ttk.Treeview.selection` de la clase :class:" +"`tkinter.ttk.Treeview` ya no acepta argumentos. Usarlo con argumentos para " +"cambiar la selección quedó obsoleto en Python 3.6. Utiliza métodos " +"especializados, como :meth:`~tkinter.ttk.Treeview.selection_set`, para " +"cambiar la selección. (Contribución de Serhiy Storchaka en :issue:`31508`.)" #: ../Doc/whatsnew/3.8.rst:1882 msgid "" @@ -2442,6 +3395,10 @@ msgid "" "preserve the attribute order specified by the user. (Contributed by Diego " "Rojas and Raymond Hettinger in :issue:`34160`.)" msgstr "" +"Los métodos :meth:`writexml`, :meth:`toxml` y :meth:`toprettyxml` de :mod:" +"`xml.dom.minidom` y el método :meth:`write` de :mod:`xml.etree`, ahora " +"conservan el orden de los atributos especificado por el usuario. " +"(Contribución de Diego Rojas y Raymond Hettinger en :issue:`34160`.)" #: ../Doc/whatsnew/3.8.rst:1887 msgid "" @@ -2449,6 +3406,10 @@ msgid "" "`dbm.dumb.open` with flags ``'r'`` and ``'w'`` no longer creates a database " "if it does not exist. (Contributed by Serhiy Storchaka in :issue:`32749`.)" msgstr "" +"Una base de datos :mod:`dbm.dumb` abierta con el flag ``'r'`` ahora es de " +"solo lectura. :func:`dbm.dumb.open` con los flags ``'r'`` y ``'w'`` ya no " +"crea una base de datos si no existe. (Contribución de Serhiy Storchaka en :" +"issue:`32749`.)" #: ../Doc/whatsnew/3.8.rst:1892 msgid "" @@ -2459,6 +3420,12 @@ msgid "" "for handling an XML doctype declaration. (Contributed by Serhiy Storchaka " "in :issue:`29209`.)" msgstr "" +"El método ``doctype()`` definido en una subclase de :class:`~xml.etree." +"ElementTree.XMLParser` ya no será invocado y emitirá una advertencia :exc:" +"`RuntimeWarning` en lugar de :exc:`DeprecationWarning`. Define el método :" +"meth:`doctype() ` en un objetivo " +"para manejar una declaración doctype de XML. (Contribución de Serhiy " +"Storchaka en :issue:`29209`.)" #: ../Doc/whatsnew/3.8.rst:1899 msgid "" @@ -2467,12 +3434,19 @@ msgid "" "__new__``. A :exc:`DeprecationWarning` was emitted in Python 3.6--3.7. " "(Contributed by Serhiy Storchaka in :issue:`23722`.)" msgstr "" +"Ahora se lanza una excepción :exc:`RuntimeError` cuando la metaclase " +"personalizada no proporciona la entrada ``__classcell__`` en el espacio de " +"nombres pasado a ``type.__new__``. En Python 3.6--3.7. se emitía una " +"advertencia :exc:`DeprecationWarning` (Contribución de Serhiy Storchaka en :" +"issue:`23722`.)" #: ../Doc/whatsnew/3.8.rst:1904 msgid "" "The :class:`cProfile.Profile` class can now be used as a context manager. " "(Contributed by Scott Sanderson in :issue:`29235`.)" msgstr "" +"La clase :class:`cProfile.Profile` ahora se puede usar como gestor de " +"contexto. (Contribución de Scott Sanderson en :issue:`29235`.)" #: ../Doc/whatsnew/3.8.rst:1907 msgid "" @@ -2481,18 +3455,27 @@ msgid "" "\" syscalls (see :ref:`shutil-platform-dependent-efficient-copy-operations` " "section)." msgstr "" +":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" +"`shutil.copytree` y :func:`shutil.move` usan llamadas al sistema de \"copia-" +"rápida\" específicas de la plataforma. (Consultar la sección :ref:`shutil-" +"platform-dependent-efficient-copy-operations`)." #: ../Doc/whatsnew/3.8.rst:1912 msgid "" ":func:`shutil.copyfile` default buffer size on Windows was changed from 16 " "KiB to 1 MiB." msgstr "" +"El tamaño predeterminado del búfer de :func:`shutil.copyfile` en Windows se " +"ha cambiado de 16 KiB a 1 MiB." #: ../Doc/whatsnew/3.8.rst:1915 msgid "" "The ``PyGC_Head`` struct has changed completely. All code that touched the " "struct member should be rewritten. (See :issue:`33597`.)" msgstr "" +"La estructura ``PyGC_Head`` ha cambiado por completo. Todo código que haga " +"uso de algún miembro de la estructura debe reescribirse. (Consultar :issue:" +"`33597`.)" #: ../Doc/whatsnew/3.8.rst:1918 msgid "" @@ -2505,6 +3488,15 @@ msgid "" "issue. We'll work on helping you adjust (possibly including adding accessor " "functions to the public API). (See :issue:`35886`.)" msgstr "" +"La estructura :c:type:`PyInterpreterState` se ha movido a los archivos de " +"cabeceras \"internos\" (específicamente a Include/internal/pycore_pystate." +"h). Un ``PyInterpreterState`` opaco todavía está disponible como parte de la " +"API pública (y ABI estable). La documentación indica que ninguno de los " +"campos de la estructura es público, por lo que esperamos que nadie los haya " +"estado usando. Sin embargo, si utilizas uno o más de esos campos privados y " +"no tienes otra alternativa, abre una issue BPO. Trabajaremos para ayudarte a " +"adaptarlo (posiblemente incluyendo funciones de acceso a la API pública). " +"(Consultar :issue:`35886`.)" #: ../Doc/whatsnew/3.8.rst:1928 msgid "" @@ -2515,12 +3507,22 @@ msgid "" "returned on success; an exception was raised on error under Unix. " "(Contributed by Berker Peksag in :issue:`2122`.)" msgstr "" +"El método :meth:`mmap.flush() ` ahora retorna ``None`` en " +"caso de éxito y lanza una excepción en caso de error, en todas las " +"plataformas. Anteriormente, su comportamiento dependía de la plataforma: en " +"Windows retornaba un valor distinto de cero en caso de éxito y cero ante un " +"error. En Unix se retornaba un valor de cero en caso de éxito y se lanzaba " +"una excepción ante un error. (Contribución de Berker Peksag en :issue:" +"`2122`.)" #: ../Doc/whatsnew/3.8.rst:1935 msgid "" ":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " "entities by default. (Contributed by Christian Heimes in :issue:`17239`.)" msgstr "" +"Los módulos :mod:`xml.dom.minidom` y :mod:`xml.sax` ya no procesan entidades " +"externas de forma predeterminada. (Contribución de Christian Heimes en :" +"issue:`17239`.)" #: ../Doc/whatsnew/3.8.rst:1939 msgid "" @@ -2529,6 +3531,11 @@ msgid "" "exc:`dbm.gnu.error` or :exc:`dbm.ndbm.error`) instead of :exc:`KeyError`. " "(Contributed by Xiang Zhang in :issue:`33106`.)" msgstr "" +"Eliminar una clave de una base de datos :mod:`dbm` de solo lectura (:mod:" +"`dbm.dumb`, :mod:`dbm.gnu` o :mod:`dbm.ndbm`) lanza una excepción :attr:" +"`error` (:exc:`dbm.dumb.error`, :exc:`dbm.gnu.error` o :exc:`dbm.ndbm." +"error`) en lugar de :exc:`KeyError`. (Contribución de Xiang Zhang en :issue:" +"`33106`.)" #: ../Doc/whatsnew/3.8.rst:1944 msgid "" @@ -2537,6 +3544,11 @@ msgid "" "``Bytes``, ``NameConstant`` and ``Ellipsis`` will return an instance of " "``Constant``. (Contributed by Serhiy Storchaka in :issue:`32892`.)" msgstr "" +"AST simplificado para literales. Todas las constantes se representarán como " +"instancias de :class:`ast.Constant`. La instanciación de las antiguas clases " +"``Num``, ``Str``, ``Bytes``, ``NameConstant`` y ``Ellipsis`` retornará ahora " +"una instancia de ``Constant``. (Contribución de Serhiy Storchaka en :issue:" +"`32892`.)" #: ../Doc/whatsnew/3.8.rst:1959 msgid "" @@ -2545,6 +3557,10 @@ msgid "" "*timeout*, it was cancelled and immediately returned. (Contributed by Elvis " "Pranskevichus in :issue:`32751`.)" msgstr "" +"La función :func:`asyncio.wait_for` ahora espera correctamente la " +"cancelación cuando se usa una instancia de :class:`asyncio.Task`. " +"Anteriormente, al alcanzar *timeout*, se cancelaba y retornaba de inmediato. " +"(Contribución de Elvis Pranskevichus en :issue:`32751`.)" #: ../Doc/whatsnew/3.8.rst:1964 msgid "" @@ -2552,10 +3568,14 @@ msgid "" "to use socket object when 'socket' is passed to the *name* parameter. " "(Contributed by Yury Selivanov in :issue:`37027`.)" msgstr "" +"La función :func:`asyncio.BaseTransport.get_extra_info` ahora retorna un " +"objeto socket seguro cuando se pasa 'socket' al parámetro *name*. " +"(Contribución de Yury Selivanov en :issue:`37027`.)" #: ../Doc/whatsnew/3.8.rst:1968 msgid ":class:`asyncio.BufferedProtocol` has graduated to the stable API." msgstr "" +":class:`asyncio.BufferedProtocol` ha pasado a formar parte de la API estable." #: ../Doc/whatsnew/3.8.rst:1972 msgid "" @@ -2571,6 +3591,19 @@ msgid "" "ensure that Windows Update KB2533623 has been installed (this is also " "verified by the installer). (Contributed by Steve Dower in :issue:`36085`.)" msgstr "" +"Las dependencias de DLLs para módulos de extensión y DLLs cargadas con :mod:" +"`ctypes` en Windows ahora se resuelven de forma más segura. Solo las rutas " +"del sistema, el directorio que contiene el archivo DLL o PYD y los " +"directorios agregados mediante :func:`~os.add_dll_directory` se buscan para " +"las dependencias en tiempo de carga. Específicamente, :envvar:`PATH` y el " +"directorio de trabajo actual ya no se utilizan, y las modificaciones de " +"estos ya no tendrán ningún efecto en la resolución normal de la DLL. Si tu " +"aplicación se basa en estos mecanismos, debes buscar :func:`~os." +"add_dll_directory` y, si existe, utilizarlo para agregar tu directorio DLL " +"mientras carga tu biblioteca. Ten en cuenta que los usuarios de Windows 7 " +"deberán asegurarse de que se haya instalado Windows Update KB2533623 (esto " +"también lo verifica el instalador). (Contribución de Steve Dower en :issue:" +"`36085`.)" #: ../Doc/whatsnew/3.8.rst:1985 msgid "" @@ -2578,6 +3611,9 @@ msgid "" "replacement by a pure Python implementation. (Contributed by Pablo Galindo " "in :issue:`36623`.)" msgstr "" +"Los archivos de cabeceras y las funciones relacionadas con pgen se han " +"eliminado después de su reemplazo por una implementación pura de Python. " +"(Contribución de Pablo Galindo en :issue:`36623`.)" #: ../Doc/whatsnew/3.8.rst:1989 msgid "" @@ -2588,10 +3624,16 @@ msgid "" "new ``replace()`` method of :class:`types.CodeType` can be used to make the " "code future-proof." msgstr "" +":class:`types.CodeType` tiene un nuevo parámetro en la segunda posición del " +"constructor (*posonlyargcount*) para admitir argumentos solo posicionales, " +"definidos en :pep:`570`. El primer argumento (*argcount*) ahora representa " +"el número total de argumentos posicionales (incluidos los argumentos solo " +"posicionales). El nuevo método ``replace()`` de :class:`types.CodeType` se " +"puede utilizar para hacer que el código esté preparado para el futuro." #: ../Doc/whatsnew/3.8.rst:1998 msgid "Changes in the C API" -msgstr "" +msgstr "Cambios en la API de C" #: ../Doc/whatsnew/3.8.rst:2000 msgid "" @@ -2600,6 +3642,11 @@ msgid "" "ignored by default, and is used if and only if ``PyCF_ONLY_AST`` flag is set " "in *cf_flags*. (Contributed by Guido van Rossum in :issue:`35766`.)" msgstr "" +"La estructura :c:type:`PyCompilerFlags` tiene un nuevo campo " +"*cf_feature_version*. Debe inicializarse en ``PY_MINOR_VERSION``. El campo " +"se ignora de forma predeterminada y se usa, si y solo si, el flag " +"``PyCF_ONLY_AST`` está establecido en *cf_flags*. (Contribución de Guido van " +"Rossum en :issue:`35766`.)" #: ../Doc/whatsnew/3.8.rst:2006 msgid "" @@ -2607,6 +3654,9 @@ msgid "" "It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child` " "instead. (Contributed by Victor Stinner in :issue:`36728`.)" msgstr "" +"La función :c:func:`PyEval_ReInitThreads` se ha eliminado de la API de C. No " +"debe llamarse explícitamente: usa :c:func:`PyOS_AfterFork_Child` en su " +"lugar. (Contribución de Victor Stinner en :issue:`36728`.)" #: ../Doc/whatsnew/3.8.rst:2011 msgid "" @@ -2618,6 +3668,13 @@ msgid "" "by the ``*shared*`` section of ``Modules/Setup``. (Contributed by Victor " "Stinner in :issue:`21536`.)" msgstr "" +"En Unix, las extensiones de C ya no están vinculadas a libpython, excepto en " +"Android y Cygwin. Cuando Python está integrado, ``libpython`` no debe " +"cargarse con ``RTLD_LOCAL``, sino con ``RTLD_GLOBAL`` en su lugar. " +"Anteriormente, no era posible usar ``RTLD_LOCAL`` para cargar extensiones de " +"C que no estuvieran vinculadas a ``libpython``, como las extensiones de C de " +"la biblioteca estándar construida por la sección ``*shared*`` de ``Modules/" +"Setup``. (Contribución de Victor Stinner en :issue:`21536`.)" #: ../Doc/whatsnew/3.8.rst:2019 msgid "" @@ -2627,6 +3684,12 @@ msgid "" "``DeprecationWarning`` now. It will be removed in 3.10 or 4.0. Read :ref:" "`arg-parsing` for detail. (Contributed by Inada Naoki in :issue:`36381`.)" msgstr "" +"El uso de variantes de formato ``#`` en el análisis o la construcción de " +"valores (por ejemplo: :c:func:`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :" +"c:func:`PyObject_CallFunction`, etc.) sin ``PY_SSIZE_T_CLEAN`` definido " +"ahora lanza una advertencia ``DeprecationWarning``. Se eliminará en Python " +"3.10 ó 4.0. Consultar :ref:`arg-parsing` para más detalles. (Contribución de " +"Inada Naoki en :issue:`36381`.)" #: ../Doc/whatsnew/3.8.rst:2025 msgid "" @@ -2637,10 +3700,17 @@ msgid "" "`PyObject_Init` and :c:func:`PyObject_INIT`. This makes types created " "through :c:func:`PyType_FromSpec` behave like other classes in managed code." msgstr "" +"Las instancias de tipos asignados al montón (como los creados con :c:func:" +"`PyType_FromSpec`) contienen una referencia a su objeto de tipo. El aumento " +"del recuento de referencias de estos objetos de tipo se ha movido de :c:func:" +"`PyType_GenericAlloc` a las funciones de más bajo nivel, :c:func:" +"`PyObject_Init` y :c:func:`PyObject_INIT`. Esto hace que los tipos creados " +"mediante :c:func:`PyType_FromSpec` se comporten como otras clases en el " +"código gestionado." #: ../Doc/whatsnew/3.8.rst:2033 msgid "Statically allocated types are not affected." -msgstr "" +msgstr "Los tipos asignados estáticamente no se ven afectados." #: ../Doc/whatsnew/3.8.rst:2035 msgid "" @@ -2650,11 +3720,18 @@ msgid "" "this, these classes need to call Py_DECREF on the type object during " "instance deallocation." msgstr "" +"Para la gran mayoría de casos, no debería haber efectos secundarios. Sin " +"embargo, los tipos que aumentan manualmente el recuento de referencias " +"después de asignar una instancia (quizás para evitar el error) ahora pueden " +"volverse inmortales. Para evitar esto, estas clases deben llamar a Py_DECREF " +"en el objeto de tipo durante la desasignación de la instancia." #: ../Doc/whatsnew/3.8.rst:2041 msgid "" "To correctly port these types into 3.8, please apply the following changes:" msgstr "" +"Para portar correctamente estos tipos a Python 3.8, aplica los siguientes " +"cambios:" #: ../Doc/whatsnew/3.8.rst:2044 msgid "" @@ -2664,31 +3741,40 @@ msgid "" "or any other custom allocator that uses :c:func:`PyObject_Init` or :c:func:" "`PyObject_INIT`." msgstr "" +"Elimina :c:macro:`Py_INCREF` en el objeto de tipo después de asignar una " +"instancia, si la hubiera. Esto puede suceder después de invocar a :c:func:" +"`PyObject_New`, :c:func:`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:" +"func:`PyObject_GC_NewVar`, o cualquier otro asignador personalizado que use :" +"c:func:`PyObject_Init` o :c:func:`PyObject_INIT`." #: ../Doc/whatsnew/3.8.rst:2051 ../Doc/whatsnew/3.8.rst:2070 #: ../Doc/whatsnew/3.8.rst:2089 msgid "Example:" -msgstr "" +msgstr "Ejemplo:" #: ../Doc/whatsnew/3.8.rst:2067 msgid "" "Ensure that all custom ``tp_dealloc`` functions of heap-allocated types " "decrease the type's reference count." msgstr "" +"Asegúrate de que todas las funciones personalizadas ``tp_dealloc`` de los " +"tipos asignados al montón disminuyan el recuento de referencias del tipo." #: ../Doc/whatsnew/3.8.rst:2084 msgid "(Contributed by Eddie Elizondo in :issue:`35810`.)" -msgstr "" +msgstr "(Contribución de Eddie Elizondo en :issue:`35810`.)" #: ../Doc/whatsnew/3.8.rst:2086 msgid "" "The :c:macro:`Py_DEPRECATED()` macro has been implemented for MSVC. The " "macro now must be placed before the symbol name." msgstr "" +"La macro :c:macro:`Py_DEPRECATED()` ha sido implementada para MSVC. La macro " +"ahora debe ser colocada antes del nombre del símbolo." #: ../Doc/whatsnew/3.8.rst:2095 msgid "(Contributed by Zackery Spytz in :issue:`33407`.)" -msgstr "" +msgstr "(Contribución de Zackery Spytz en :issue:`33407`.)" #: ../Doc/whatsnew/3.8.rst:2097 msgid "" @@ -2699,10 +3785,17 @@ msgid "" "tp_finalize` (:const:`Py_TPFLAGS_HAVE_FINALIZE` is not checked anymore " "before reading :c:member:`~PyTypeObject.tp_finalize`)." msgstr "" +"El intérprete ya no pretende dar suporte nunca más a la compatibilidad " +"binaria de tipos de extensión entre versiones de características. Un :c:type:" +"`PyTypeObject` exportado por un módulo de extensión de terceros se supone " +"que tiene todas las ranuras esperadas por la versión actual de Python, " +"incluyendo :c:member:`~PyTypeObject.tp_finalize` (:const:" +"`Py_TPFLAGS_HAVE_FINALIZE` ya no se verifica antes de leer :c:member:" +"`~PyTypeObject.tp_finalize`)." #: ../Doc/whatsnew/3.8.rst:2104 msgid "(Contributed by Antoine Pitrou in :issue:`32388`.)" -msgstr "" +msgstr "(Contribución de Antoine Pitrou en :issue:`32388`.)" #: ../Doc/whatsnew/3.8.rst:2106 msgid "" @@ -2710,12 +3803,17 @@ msgid "" "(*posonlyargcount*) to support :pep:`570`, indicating the number of " "positional-only arguments." msgstr "" +":c:func:`PyCode_New` tiene un nuevo parámetro en la segunda posición " +"(*posonlyargcount*) para dar soporte a :pep:`570`, que indica el número de " +"argumentos solo posicionales." #: ../Doc/whatsnew/3.8.rst:2109 msgid "" "The functions :c:func:`PyNode_AddChild` and :c:func:`PyParser_AddToken` now " "accept two additional ``int`` arguments *end_lineno* and *end_col_offset*." msgstr "" +"Las funciones :c:func:`PyNode_AddChild` y :c:func:`PyParser_AddToken` ahora " +"aceptan dos argumentos ``int`` adicionales, *end_lineno* y *end_col_offset*." #: ../Doc/whatsnew/3.8.rst:2112 msgid "" @@ -2725,6 +3823,10 @@ msgid "" "``gendef`` and ``dlltool`` tools, which are part of the MinGW binutils " "package:" msgstr "" +"El archivo :file:`libpython38.a` ya no se incluye en la distribución normal " +"de Windows. Si se necesita este archivo, se puede generar con las " +"herramientas ``gendef`` y ``dlltool``, que son parte del paquete binutils de " +"MinGW:" #: ../Doc/whatsnew/3.8.rst:2122 msgid "" @@ -2734,14 +3836,19 @@ msgid "" "placed in the same directory as :file:`pythonXY.lib`, which is generally " "the :file:`libs` directory under your Python installation." msgstr "" +"La ubicación de un archivo :file:`pythonXY.dll` instalado dependerá de las " +"opciones de instalación y de la versión y el idioma de Windows. Consultar :" +"ref:`using-on-windows` para obtener más información. La biblioteca " +"resultante debe colocarse en el mismo directorio que :file:`pythonXY.lib`, " +"que generalmente es el directorio :file:`libs` en tu instalación de Python." #: ../Doc/whatsnew/3.8.rst:2128 msgid "(Contributed by Steve Dower in :issue:`37351`.)" -msgstr "" +msgstr "(Contribución de Steve Dower en :issue:`37351`.)" #: ../Doc/whatsnew/3.8.rst:2132 msgid "CPython bytecode changes" -msgstr "" +msgstr "Cambios en el bytecode de CPython" #: ../Doc/whatsnew/3.8.rst:2134 msgid "" @@ -2750,6 +3857,10 @@ msgid "" "instructions for adjusting the stack of values and calling the cleaning-up " "code for :keyword:`break`, :keyword:`continue` and :keyword:`return`." msgstr "" +"El bucle del intérprete se ha simplificado moviendo al compilador la lógica " +"para el desenredo de la pila de bloques. El compilador ahora emite " +"instrucciones explícitas para ajustar la pila de valores y llamar al código " +"de limpieza para :keyword:`break`, :keyword:`continue` y :keyword:`return`." #: ../Doc/whatsnew/3.8.rst:2140 msgid "" @@ -2759,12 +3870,20 @@ msgid "" "`POP_FINALLY`. Changed the behavior of :opcode:`END_FINALLY` and :opcode:" "`WITH_CLEANUP_START`." msgstr "" +"Eliminados los códigos de operación :opcode:`BREAK_LOOP`, :opcode:" +"`CONTINUE_LOOP`, :opcode:`SETUP_LOOP` y :opcode:`SETUP_EXCEPT`. Agregados " +"los nuevos códigos de operación :opcode:`ROT_FOUR`, :opcode:" +"`BEGIN_FINALLY`, :opcode:`CALL_FINALLY` y :opcode:`POP_FINALLY`. Modificados " +"los códigos de operación :opcode:`END_FINALLY` y :opcode:" +"`WITH_CLEANUP_START`." #: ../Doc/whatsnew/3.8.rst:2146 msgid "" "(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka in :issue:" "`17611`.)" msgstr "" +"(Contribución de Mark Shannon, Antoine Pitrou y Serhiy Storchaka en :issue:" +"`17611`.)" #: ../Doc/whatsnew/3.8.rst:2149 msgid "" @@ -2772,6 +3891,9 @@ msgid "" "awaiting a next item in an :keyword:`async for` loop. (Contributed by Serhiy " "Storchaka in :issue:`33041`.)" msgstr "" +"Agregado el código de operación :opcode:`END_ASYNC_FOR` para manejar " +"excepciones lanzadas mientras se espera al siguiente elemento en un ciclo :" +"keyword:`async for`. (Contribución de Serhiy Storchaka en :issue:`33041`.)" #: ../Doc/whatsnew/3.8.rst:2153 msgid "" @@ -2780,10 +3902,15 @@ msgid "" "always evaluated before the value in dictionary comprehensions, as proposed " "by :pep:`572`. (Contributed by Jörn Heissler in :issue:`35224`.)" msgstr "" +"El código de operación :opcode:`MAP_ADD` ahora espera el valor como primer " +"elemento de la pila y la clave como segundo elemento. Este cambio se realizó " +"para que la clave siempre se evalúe antes que el valor en los diccionarios " +"por compresión, como se propone en :pep:`572`. (Contribución de Jörn " +"Heissler en :issue:`35224`.)" #: ../Doc/whatsnew/3.8.rst:2160 msgid "Demos and Tools" -msgstr "" +msgstr "Demos y herramientas" #: ../Doc/whatsnew/3.8.rst:2162 msgid "" @@ -2791,10 +3918,15 @@ msgid "" "``Tools/scripts/var_access_benchmark.py``. (Contributed by Raymond Hettinger " "in :issue:`35884`.)" msgstr "" +"Se ha añadido un script de evaluación de rendimiento para cronometrar varias " +"formas de acceder a variables: ``Tools/scripts/var_access_benchmark.py``. " +"(Contribución de Raymond Hettinger en :issue:`35884`.)" #: ../Doc/whatsnew/3.8.rst:2166 msgid "Here's a summary of performance improvements since Python 3.3:" msgstr "" +"A continuación, se muestra un resumen de las mejoras de rendimiento desde " +"Python 3.3:" #: ../Doc/whatsnew/3.8.rst:2213 msgid "" @@ -2804,10 +3936,16 @@ msgid "" "builds found at `python.org `_. " "The benchmark script displays timings in nanoseconds." msgstr "" +"Las evaluaciones de rendimiento se realizaron en un `procesador Intel® Core™ " +"i7-4960HQ `_ ejecutando las " +"compilaciones de 64-bits para macOS disponibles en `python.org `_. El script de evaluación de rendimiento " +"muestra los tiempos en nanosegundos." #: ../Doc/whatsnew/3.8.rst:2222 msgid "Notable changes in Python 3.8.1" -msgstr "" +msgstr "Cambios notables en Python 3.8.1" #: ../Doc/whatsnew/3.8.rst:2224 msgid "" @@ -2818,10 +3956,16 @@ msgid "" "(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" "`37228`.)" msgstr "" +"Debido a importantes preocupaciones de seguridad, el parámetro " +"*reuse_address* de :meth:`asyncio.loop.create_datagram_endpoint` ya no está " +"soportado. Esto se debe al comportamiento de la opción ``SO_REUSEADDR`` del " +"socket en UDP. Para obtener más detalles, consulta la documentación de " +"``loop.create_datagram_endpoint()``. (Contribución de Kyle Stanley, Antoine " +"Pitrou y Yury Selivanov en :issue:`37228`.)" #: ../Doc/whatsnew/3.8.rst:2232 msgid "Notable changes in Python 3.8.2" -msgstr "" +msgstr "Cambios notables en Python 3.8.2" #: ../Doc/whatsnew/3.8.rst:2234 msgid "" @@ -2829,10 +3973,14 @@ msgid "" "The argument types are now str and List[str] again. (Contributed by Manuel " "Barkhau and Giampaolo Rodola in :issue:`39390`.)" msgstr "" +"Se ha corregido una regresión con la retrollamada ``ignore`` de :func:" +"`shutil.copytree`. Los tipos de los argumentos ahora son str y List[str] " +"nuevamente. (Contribución de Manuel Barkhau y Giampaolo Rodola en :issue:" +"`39390`.)" #: ../Doc/whatsnew/3.8.rst:2239 msgid "Notable changes in Python 3.8.3" -msgstr "" +msgstr "Cambios notables en Python 3.8.3" #: ../Doc/whatsnew/3.8.rst:2241 msgid "" @@ -2841,3 +3989,7 @@ msgid "" "``PyCF_ALLOW_TOP_LEVEL_AWAIT`` was clashing with ``CO_FUTURE_DIVISION``. " "(Contributed by Batuhan Taskaya in :issue:`39562`)" msgstr "" +"Se han actualizado los valores constantes de los flags futuros del módulo :" +"mod:`__future__` para evitar colisiones con los flags del compilador. " +"Anteriormente, ``PyCF_ALLOW_TOP_LEVEL_AWAIT`` estaba en conflicto con " +"``CO_FUTURE_DIVISION``. (Contribución de Batuhan Taskaya en :issue:`39562`.)" diff --git a/whatsnew/index.po b/whatsnew/index.po index 72716205a4..254df1148b 100644 --- a/whatsnew/index.po +++ b/whatsnew/index.po @@ -1,25 +1,27 @@ # 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-02-03 02:34-0300\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: Marcelo Elizeche Landó \n" +"Language: es\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/whatsnew/index.rst:5 msgid "What's New in Python" -msgstr "" +msgstr "Qué hay de nuevo en Python" #: ../Doc/whatsnew/index.rst:7 msgid "" @@ -27,6 +29,10 @@ msgid "" "important changes between major Python versions. They are a \"must read\" " "for anyone wishing to stay up-to-date after a new release." msgstr "" +"La serie \"Qué hay de nuevo en Python\" da un vistazo a los cambios más " +"importantes entre las versiones de Python. Son de \"lectura obligatoria\" " +"para cualquier persona que quiera estar al día después de un nuevo " +"lanzamiento." #: ../Doc/whatsnew/index.rst:31 msgid "" @@ -35,3 +41,7 @@ msgid "" "tree, which contains *all* nontrivial changes to Python for the current " "version." msgstr "" +"El \"Changelog\" is una versión HTML del `archivo creado `_ a partir del contenido del directorio :source:`Misc/NEWS." +"d`, el cual contiene *todos* los cambios no triviales en Python para la " +"versión actual."