From 4f19f6d8adaac2046121924285bb13e7d3627d27 Mon Sep 17 00:00:00 2001 From: yeyeto2788 Date: Fri, 16 Oct 2020 10:06:06 +0200 Subject: [PATCH 1/6] Update pyporting.po --- howto/pyporting.po | 385 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 353 insertions(+), 32 deletions(-) diff --git a/howto/pyporting.po b/howto/pyporting.po index d43d572316..070377fc26 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-10-16 10:04+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Juan Biondi \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" -msgstr "" +msgstr "Porting Python 2 Code to 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`_." #: ../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; " +"``cobertura de instalación de pip``)" #: ../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 el :ref:`\"What's New\" ` doc 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." From 9d613fe9c700fdf4db5a66026e5563e97bf78281 Mon Sep 17 00:00:00 2001 From: yeyeto2788 Date: Fri, 16 Oct 2020 10:23:34 +0200 Subject: [PATCH 2/6] Update pyporting.po Fix some typos on some strings. --- howto/pyporting.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/howto/pyporting.po b/howto/pyporting.po index 070377fc26..615f5571f0 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-10-16 10:04+0200\n" +"PO-Revision-Date: 2020-10-16 10:23+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,7 +24,7 @@ msgstr "" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" -msgstr "Porting Python 2 Code to Python 3" +msgstr "Portando código de Python 2 a Python 3" #: ../Doc/howto/pyporting.rst msgid "author" @@ -64,8 +64,8 @@ msgid "" "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`_." +"qué Python 3 surgió, puede leer `Python 3 Q & A`_ de Nick Coghlan o `Why " +"Python 3 exists`_ de Brett Cannon's." #: ../Doc/howto/pyporting.rst:23 msgid "" From 10dc989f761654c62f800edeca70fdbb49e5eac9 Mon Sep 17 00:00:00 2001 From: yeyeto2788 Date: Fri, 16 Oct 2020 11:50:10 +0200 Subject: [PATCH 3/6] Create howto_pyporting.txt Add words so pospell works --- dictionaries/howto_pyporting.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 dictionaries/howto_pyporting.txt diff --git a/dictionaries/howto_pyporting.txt b/dictionaries/howto_pyporting.txt new file mode 100644 index 0000000000..dc7d9c58ee --- /dev/null +++ b/dictionaries/howto_pyporting.txt @@ -0,0 +1,9 @@ +Nick +doc +Futurize +backporting +descodificarlo +dicotomía +lintar +tox +comprobador \ No newline at end of file From 4ab478e72a3cabcc77cf25609368e4e08ddb54a5 Mon Sep 17 00:00:00 2001 From: Juan Biondi Date: Fri, 16 Oct 2020 14:11:13 +0200 Subject: [PATCH 4/6] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cristián Maureira-Fredes --- dictionaries/howto_pyporting.txt | 3 +-- howto/pyporting.po | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/dictionaries/howto_pyporting.txt b/dictionaries/howto_pyporting.txt index dc7d9c58ee..2759816e25 100644 --- a/dictionaries/howto_pyporting.txt +++ b/dictionaries/howto_pyporting.txt @@ -1,9 +1,8 @@ Nick -doc Futurize backporting descodificarlo dicotomía lintar tox -comprobador \ No newline at end of file +comprobador diff --git a/howto/pyporting.po b/howto/pyporting.po index 615f5571f0..2cffd6341a 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -306,8 +306,8 @@ msgstr "" "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 el :ref:`\"What's New\" ` doc para cada versión de Python 3 y el libro `Porting to Python 3`_ " +"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.." From f258d286f1c39412294de958901c90dc7e1db4ac Mon Sep 17 00:00:00 2001 From: yeyeto2788 Date: Mon, 19 Oct 2020 09:38:59 +0200 Subject: [PATCH 5/6] Fix issues wrapping text. --- howto/pyporting.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/howto/pyporting.po b/howto/pyporting.po index 2cffd6341a..b00116bf2e 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -306,10 +306,10 @@ msgstr "" "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.." +"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" From dffa81044040c84a43bd72627dd7befdbbc7f47d Mon Sep 17 00:00:00 2001 From: yeyeto2788 Date: Sun, 27 Dec 2020 12:03:15 +0100 Subject: [PATCH 6/6] Fix minor issues as per PR review --- howto/pyporting.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/howto/pyporting.po b/howto/pyporting.po index b00116bf2e..9a533e0361 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-10-16 10:23+0200\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" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Last-Translator: Juan Biondi \n" "Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 2.4.2\n" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" @@ -65,7 +65,7 @@ msgid "" 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's." +"Python 3 exists`_ de Brett Cannon" #: ../Doc/howto/pyporting.rst:23 msgid "" @@ -97,7 +97,7 @@ msgid "" "coverage``)" msgstr "" "Asegúrese de tener una buena cobertura de prueba (coverage.py_ puede ayudar; " -"``cobertura de instalación de pip``)" +"``pip install coverage``)" #: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:116 msgid "Learn the differences between Python 2 & 3" @@ -289,7 +289,7 @@ msgstr "" "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 " +"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