From 5515526e516bf73b8c1b4acb04b51d9508f11871 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Sun, 28 Jun 2020 19:54:02 +0200 Subject: [PATCH 1/4] Traducido faq/design Closes #463 --- dict | 34 ++++ faq/design.po | 531 ++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 526 insertions(+), 39 deletions(-) diff --git a/dict b/dict index 85287780a9..abb3a4a6d0 100644 --- a/dict +++ b/dict @@ -22,6 +22,8 @@ Associates Asincrónicamente asincrónicas Autocompletado +autoreferenciales +autocomprobación Awk B BSD @@ -52,6 +54,7 @@ Cookbook Ctrl Cython Distutils +Delphi Escribible FLTK Fibonacci @@ -90,6 +93,7 @@ Kivy L Laird Linux +Lisp Lloyd Ltd Lucasfilm @@ -196,10 +200,13 @@ backtick bash batch bdist +Big big-endian +bin bloqueante booleano booleanos +Boehm buffer buffering bug @@ -234,6 +241,7 @@ conceptualmente consolelib contravariante contravariantes +constructos conversor correlacionan corrutina @@ -250,6 +258,7 @@ códecs datagramas darwin debugueando +def default desalojable desambiguar @@ -265,6 +274,7 @@ desasignadores desasignar desasignarán desasigne +desasignan descargable descompresor desempaquetamiento @@ -290,30 +300,38 @@ env especificador especificadores estáticamente +escapándolo except exclude exit explícitamente exponenciación f +fee finalizador finalizadores flag flags float +fiefoo foo foobar format formateador formateadores fraccional +free freeze future from +fum garbage gcc +get gid globals +go +goto granularidad gzip h @@ -336,6 +354,7 @@ imports imprimible imprimibles include +index indentación indentada indentadas @@ -345,6 +364,7 @@ indexables inicialicen indexación inf +infijo inicializa inicializaciones inicialización @@ -376,8 +396,10 @@ isinstance iterador iteradores j +join json k +keys kernel Latin l @@ -388,9 +410,12 @@ lexicográfico libtclsam libtksam linters +list +ListWrapper log lowecase m +malloc main manejador manejadores @@ -489,14 +514,17 @@ prolépticos prompt prompts proxy +purify pseudo pseudoaleatorios py pyc python +PyChecker q quit quote +r raw read readline @@ -506,6 +534,7 @@ recompilación recompilada recompilar recompilarse +recordarle recursivamente redefinido redefinidos @@ -516,6 +545,7 @@ redimensionado redimensionados redimensionar redireccionamiento +rediseñado redondeándolo ref refactorización @@ -583,6 +613,7 @@ stdin stdout str strings +stub sub subcadena subcadenas @@ -631,6 +662,7 @@ tokenizador tokens trick truncarlo +try tty tupla tuplas @@ -648,6 +680,7 @@ versionados vía von wchar +with web while widget @@ -656,6 +689,7 @@ wiki wxPython wxWidgets wxwidgets +write x xz ydel diff --git a/faq/design.po b/faq/design.po index a42fdde487..008dc73ac8 100644 --- a/faq/design.po +++ b/faq/design.po @@ -6,31 +6,33 @@ # Check https://github.com/PyCampES/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-06-28 19: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: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/faq/design.rst:3 msgid "Design and History FAQ" -msgstr "" +msgstr "Preguntas frecuentes sobre diseño e historia" #: ../Doc/faq/design.rst:6 msgid "Contents" -msgstr "" +msgstr "Contenido" #: ../Doc/faq/design.rst:11 msgid "Why does Python use indentation for grouping of statements?" -msgstr "" +msgstr "¿Por qué Python usa sangría para agrupar declaraciones?" #: ../Doc/faq/design.rst:13 msgid "" @@ -38,6 +40,10 @@ msgid "" "elegant and contributes a lot to the clarity of the average Python program. " "Most people learn to love this feature after a while." msgstr "" +"Guido van Rossum cree que usar sangría para agrupar es extremadamente " +"elegante y contribuye mucho a la claridad del programa Python promedio. La " +"mayoría de las personas aprenden a amar esta característica después de un " +"tiempo." #: ../Doc/faq/design.rst:17 msgid "" @@ -45,6 +51,9 @@ msgid "" "grouping perceived by the parser and the human reader. Occasionally C " "programmers will encounter a fragment of code like this::" msgstr "" +"Como no hay corchetes de inicio / fin, no puede haber un desacuerdo entre la " +"agrupación percibida por el analizador y el lector humano. Ocasionalmente, " +"los programadores de C encontrarán un fragmento de código como este::" #: ../Doc/faq/design.rst:26 msgid "" @@ -53,6 +62,10 @@ msgid "" "will sometimes stare at it a long time wondering why ``y`` is being " "decremented even for ``x > y``." msgstr "" +"Solo se ejecuta la instrucción ``x ++`` si la condición es verdadera, pero " +"la sangría lo lleva a creer lo contrario. Incluso los programadores " +"experimentados de C a veces lo miran durante mucho tiempo preguntándose por " +"qué ``y`` se está disminuyendo incluso para ``x > y``." #: ../Doc/faq/design.rst:31 msgid "" @@ -62,6 +75,11 @@ msgid "" "at least slightly uneasy when reading (or being required to write) another " "style." msgstr "" +"Debido a que no hay corchetes de inicio/fin, Python es mucho menos propenso " +"a conflictos de estilo de codificación. En C hay muchas formas diferentes de " +"colocar las llaves. Si está acostumbrado a leer y escribir código que usa un " +"estilo, se sentirá al menos un poco incómodo cuando lea (o le pidan que " +"escriba) otro estilo." #: ../Doc/faq/design.rst:36 msgid "" @@ -73,22 +91,32 @@ msgid "" "brackets -- the lack of declarations and the high-level data types are also " "responsible -- but the indentation-based syntax certainly helps." msgstr "" +"Muchos estilos de codificación colocan corchetes de inicio / fin en una " +"línea por sí mismos. Esto hace que los programas sean considerablemente más " +"largos y desperdicia un valioso espacio en la pantalla, lo que dificulta " +"obtener una buena visión general de un programa. Idealmente, una función " +"debería caber en una pantalla (por ejemplo, 20-30 líneas). 20 líneas de " +"Python pueden hacer mucho más trabajo que 20 líneas de C. Esto no se debe " +"únicamente a la falta de corchetes de inicio/fin, la falta de declaraciones " +"y los tipos de datos de alto nivel también son responsables, sino también la " +"sangría basada en la sintaxis ciertamente ayuda." #: ../Doc/faq/design.rst:46 msgid "Why am I getting strange results with simple arithmetic operations?" msgstr "" +"¿Por qué obtengo resultados extraños con operaciones aritméticas simples?" #: ../Doc/faq/design.rst:48 msgid "See the next question." -msgstr "" +msgstr "Ver la siguiente pregunta." #: ../Doc/faq/design.rst:52 msgid "Why are floating-point calculations so inaccurate?" -msgstr "" +msgstr "¿Por qué los cálculos de punto flotante son tan inexactos?" #: ../Doc/faq/design.rst:54 msgid "Users are often surprised by results like this::" -msgstr "" +msgstr "Los usuarios a menudo se sorprenden por resultados como este::" #: ../Doc/faq/design.rst:59 msgid "" @@ -96,6 +124,9 @@ msgid "" "Python, and much more to do with how the underlying platform handles " "floating-point numbers." msgstr "" +"y creo que es un error en Python. No es. Esto tiene poco que ver con Python, " +"y mucho más con la forma en que la plataforma subyacente maneja los números " +"de punto flotante." #: ../Doc/faq/design.rst:63 msgid "" @@ -106,12 +137,22 @@ msgid "" "point operations. This means that as far as floating-point operations are " "concerned, Python behaves like many popular languages including C and Java." msgstr "" +"El tipo :class:`float` en CPython usa una C ``double`` para el " +"almacenamiento. Un valor del objeto :class:`float` se almacena en coma " +"flotante binaria con una precisión fija (típicamente 53 bits) y Python usa " +"operaciones C, que a su vez dependen de la implementación de hardware en el " +"procesador, para realizar operaciones de coma flotante. Esto significa que, " +"en lo que respecta a las operaciones de punto flotante, Python se comporta " +"como muchos lenguajes populares, incluidos C y Java." #: ../Doc/faq/design.rst:70 msgid "" "Many numbers that can be written easily in decimal notation cannot be " "expressed exactly in binary floating-point. For example, after::" msgstr "" +"Muchos números que se pueden escribir fácilmente en notación decimal no se " +"pueden expresar exactamente en coma flotante binaria. Por ejemplo, después " +"de::" #: ../Doc/faq/design.rst:75 msgid "" @@ -119,30 +160,37 @@ msgid "" "value ``1.2``, but is not exactly equal to it. On a typical machine, the " "actual stored value is::" msgstr "" +"el valor almacenado para ``x`` es una aproximación (muy buena) al valor " +"decimal ``1.2``, pero no es exactamente igual a él. En una máquina típica, " +"el valor real almacenado es::" #: ../Doc/faq/design.rst:81 msgid "which is exactly::" -msgstr "" +msgstr "que es exactamente::" #: ../Doc/faq/design.rst:85 msgid "" "The typical precision of 53 bits provides Python floats with 15--16 decimal " "digits of accuracy." msgstr "" +"La precisión típica de 53 bits proporciona flotadores Python con 15--16 " +"dígitos decimales de precisión." #: ../Doc/faq/design.rst:88 msgid "" "For a fuller explanation, please see the :ref:`floating point arithmetic " "` chapter in the Python tutorial." msgstr "" +"Para obtener una explicación más completa, consulte el capítulo :ref:" +"`aritmética de coma flotante ` en el tutorial de Python." #: ../Doc/faq/design.rst:93 msgid "Why are Python strings immutable?" -msgstr "" +msgstr "¿Por qué las cadenas de caracteres de Python son inmutables?" #: ../Doc/faq/design.rst:95 msgid "There are several advantages." -msgstr "" +msgstr "Hay varias ventajas." #: ../Doc/faq/design.rst:97 msgid "" @@ -151,6 +199,10 @@ msgid "" "unchanging. This is also one of the reasons for the distinction between " "tuples and lists." msgstr "" +"Una es el rendimiento: saber que una cadena es inmutable significa que " +"podemos asignarle espacio en el momento de la creación, y los requisitos de " +"almacenamiento son fijos e inmutables. Esta es también una de las razones " +"para la distinción entre tuplas y listas." #: ../Doc/faq/design.rst:102 msgid "" @@ -159,16 +211,24 @@ msgid "" "and in Python, no amount of activity will change the string \"eight\" to " "anything else." msgstr "" +"Otra ventaja es que las cadenas en Python se consideran \"elementales\" como " +"números. Ninguna cantidad de actividad cambiará el valor 8 a otra cosa, y en " +"Python, ninguna cantidad de actividad cambiará la cadena \"ocho\" a otra " +"cosa." #: ../Doc/faq/design.rst:110 msgid "Why must 'self' be used explicitly in method definitions and calls?" msgstr "" +"¿Por qué debe usarse 'self' explícitamente en las definiciones y llamadas de " +"métodos?" #: ../Doc/faq/design.rst:112 msgid "" "The idea was borrowed from Modula-3. It turns out to be very useful, for a " "variety of reasons." msgstr "" +"La idea fue tomada de Modula-3. Resulta ser muy útil, por una variedad de " +"razones." #: ../Doc/faq/design.rst:115 msgid "" @@ -182,6 +242,16 @@ msgid "" "Some C++ and Java coding standards call for instance attributes to have an " "``m_`` prefix, so this explicitness is still useful in those languages, too." msgstr "" +"Primero, es más obvio que está utilizando un método o atributo de instancia " +"en lugar de una variable local. Leer ``self.x`` o ``self.meth()`` deja " +"absolutamente claro que se usa una variable de instancia o método incluso si " +"no conoce la definición de clase de memoria. En C ++, puede darse cuenta de " +"la falta de una declaración de variable local (suponiendo que los globales " +"son raros o fácilmente reconocibles), pero en Python, no hay declaraciones " +"de variables locales, por lo que debería buscar la definición de clase para " +"estar seguro. Algunos estándares de codificación de C ++ y Java requieren " +"que los atributos de instancia tengan un prefijo ``m_``, por que sea " +"explicito también es útil en esos lenguajes." #: ../Doc/faq/design.rst:125 msgid "" @@ -194,6 +264,15 @@ msgid "" "class method wants to extend the base class method of the same name and thus " "has to call the base class method somehow." msgstr "" +"En segundo lugar, significa que no es necesaria una sintaxis especial si " +"desea hacer referencia explícita o llamar al método desde una clase en " +"particular. En C ++, si desea usar un método de una clase base que se anula " +"en una clase derivada, debe usar el operador ``::`` -- en Python puede " +"escribir ``baseclass.methodname(self, )``. Esto es " +"particularmente útil para métodos :meth:`__init__`, y en general en los " +"casos en que un método de clase derivada quiere extender el método de clase " +"base del mismo nombre y, por lo tanto, tiene que llamar al método de clase " +"base de alguna manera." #: ../Doc/faq/design.rst:134 msgid "" @@ -212,34 +291,53 @@ msgid "" "instance variables live in two different namespaces, and you need to tell " "Python which namespace to use." msgstr "" +"Finalmente, por ejemplo, las variables resuelven un problema sintáctico con " +"la asignación: dado que las variables locales en Python son (¡por " +"definición!) Aquellas variables a las que se asigna un valor en un cuerpo de " +"función (y que no se declaran explícitamente como globales), tiene que sea " +"una forma de decirle al intérprete que una asignación estaba destinada a " +"asignar a una variable de instancia en lugar de a una variable local, y que " +"preferiblemente debería ser sintáctica (por razones de eficiencia). C ++ " +"hace esto a través de declaraciones, pero Python no tiene declaraciones y " +"sería una pena tener que presentarlas solo para este propósito. Usar el " +"``self.var`` explícito resuelve esto muy bien. Del mismo modo, para usar " +"variables de instancia, tener que escribir ``self.var`` significa que las " +"referencias a nombres no calificados dentro de un método no tienen que " +"buscar en los directorios de la instancia. Para decirlo de otra manera, las " +"variables locales y las variables de instancia viven en dos espacios de " +"nombres diferentes, y debe decirle a Python qué espacio de nombres usar." #: ../Doc/faq/design.rst:152 msgid "Why can't I use an assignment in an expression?" -msgstr "" +msgstr "¿Por qué no puedo usar una tarea en una expresión?" #: ../Doc/faq/design.rst:154 msgid "Starting in Python 3.8, you can!" -msgstr "" +msgstr "A partir de Python 3.8, ¡puedes!" #: ../Doc/faq/design.rst:156 msgid "" "Assignment expressions using the walrus operator `:=` assign a variable in " "an expression::" msgstr "" +"Asignación de expresiones usando el operador de morsa `:=` asigna una " +"variable en una expresión::" #: ../Doc/faq/design.rst:162 msgid "See :pep:`572` for more information." -msgstr "" +msgstr "Ver :pep:`572` para más información." #: ../Doc/faq/design.rst:167 msgid "" "Why does Python use methods for some functionality (e.g. list.index()) but " "functions for other (e.g. len(list))?" msgstr "" +"¿Por qué Python usa métodos para alguna funcionalidad (por ejemplo, list." +"index()) pero funciones para otra (por ejemplo, len(list))?" #: ../Doc/faq/design.rst:169 msgid "As Guido said:" -msgstr "" +msgstr "Como dijo Guido:" #: ../Doc/faq/design.rst:171 msgid "" @@ -249,6 +347,12 @@ msgid "" "problem. Compare the easy with which we rewrite a formula like x*(a+b) into " "x*a + x*b to the clumsiness of doing the same thing using a raw OO notation." msgstr "" +"(a) Para algunas operaciones, la notación de prefijo solo se lee mejor que " +"postfijo -- las operaciones de prefijo (e ¡infijo!) tienen una larga " +"tradición en matemáticas que le gustan las anotaciones donde las imágenes " +"ayudan al matemático a pensar en un problema. Compare lo fácil con que " +"reescribimos una fórmula como x*(a+b) en x*a + x*b con la torpeza de hacer " +"lo mismo usando una notación OO sin procesar." #: ../Doc/faq/design.rst:178 msgid "" @@ -261,14 +365,25 @@ msgid "" "mapping has a get() or keys() method, or something that isn't a file has a " "write() method." msgstr "" +"(b) Cuando leo un código que dice len(x), *sé* que está pidiendo la longitud " +"de algo. Esto me dice dos cosas: el resultado es un número entero y el " +"argumento es algún tipo de contenedor. Por el contrario, cuando leo x.len " +"(), ya debo saber que x es algún tipo de contenedor que implementa una " +"interfaz o hereda de una clase que tiene un estándar len(). Sea testigo de " +"la confusión que ocasionalmente tenemos cuando una clase que no está " +"implementando una asignación tiene un método get() o keys(), o algo que no " +"es un archivo tiene un método write()." #: ../Doc/faq/design.rst:205 msgid "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" msgstr "" +"https://mail.python.org/pipermail/python-3000/2006-November/004643.html" #: ../Doc/faq/design.rst:191 msgid "Why is join() a string method instead of a list or tuple method?" msgstr "" +"¿Por qué join() es un método de cadena en lugar de un método de lista o " +"tupla?" #: ../Doc/faq/design.rst:193 msgid "" @@ -278,14 +393,20 @@ msgid "" "methods have been widely accepted, but the one which appears to make some " "programmers feel uncomfortable is::" msgstr "" +"Las cadenas de caracteres se volvieron mucho más parecidas a otros tipos " +"estándar a partir de Python 1.6, cuando se agregaron métodos que brindan la " +"misma funcionalidad que siempre ha estado disponible utilizando las " +"funciones del módulo de cadenas. La mayoría de estos nuevos métodos han sido " +"ampliamente aceptados, pero el que parece hacer que algunos programadores se " +"sientan incómodos es:" #: ../Doc/faq/design.rst:201 msgid "which gives the result::" -msgstr "" +msgstr "que da el resultado::" #: ../Doc/faq/design.rst:205 msgid "There are two common arguments against this usage." -msgstr "" +msgstr "Hay dos argumentos comunes en contra de este uso." #: ../Doc/faq/design.rst:207 msgid "" @@ -295,6 +416,11 @@ msgid "" "on names bound to strings there is no logical reason to make them " "unavailable on literals." msgstr "" +"El primero corre a lo largo de las líneas de: \"Parece realmente feo usando " +"un método de un literal de cadena (constante de cadena)\", a lo que la " +"respuesta es que sí, pero un literal de cadena es solo un valor fijo. Si se " +"permiten los métodos en nombres vinculados a cadenas, no hay razón lógica " +"para que no estén disponibles en literales." #: ../Doc/faq/design.rst:213 msgid "" @@ -303,12 +429,20 @@ msgid "" "For some reason there seems to be much less difficulty with having :meth:" "`~str.split` as a string method, since in that case it is easy to see that ::" msgstr "" +"La segunda objeción generalmente se presenta como: \"Realmente estoy " +"diciendo una secuencia para unir a sus miembros con una constante de cadena" +"\". Lamentablemente, no lo eres. Por alguna razón, parece ser mucho menos " +"difícil tener :meth:`~str.split` como método de cadena, ya que en ese caso " +"es fácil ver que::" #: ../Doc/faq/design.rst:220 msgid "" "is an instruction to a string literal to return the substrings delimited by " "the given separator (or, by default, arbitrary runs of white space)." msgstr "" +"es una instrucción a un literal de cadena para devolver las subcadenas de " +"caracteres delimitadas por el separador dado (o, por defecto, corridas " +"arbitrarias de espacio en blanco)." #: ../Doc/faq/design.rst:223 msgid "" @@ -318,10 +452,16 @@ msgid "" "obeys the rules for sequence objects, including any new classes you might " "define yourself. Similar methods exist for bytes and bytearray objects." msgstr "" +":meth:`~str.join` es un método de cadena de caracteres porque al usarlo le " +"está diciendo a la cadena de separación que itere sobre una secuencia de " +"cadenas y se inserte entre elementos adyacentes. Este método se puede usar " +"con cualquier argumento que obedezca las reglas para los objetos de " +"secuencia, incluidas las clases nuevas que pueda definir usted mismo. " +"Existen métodos similares para bytes y objetos bytearray." #: ../Doc/faq/design.rst:231 msgid "How fast are exceptions?" -msgstr "" +msgstr "¿Qué tan rápido son las excepciones?" #: ../Doc/faq/design.rst:233 msgid "" @@ -329,12 +469,17 @@ msgid "" "Actually catching an exception is expensive. In versions of Python prior to " "2.0 it was common to use this idiom::" msgstr "" +"Un bloque try/except es extremadamente eficiente si no se generan " +"excepciones. En realidad, capturar una excepción es costoso. En versiones de " +"Python anteriores a la 2.0, era común usar este modismo::" #: ../Doc/faq/design.rst:243 msgid "" "This only made sense when you expected the dict to have the key almost all " "the time. If that wasn't the case, you coded it like this::" msgstr "" +"Esto solo tenía sentido cuando esperaba que el dict tuviera la clave casi " +"todo el tiempo. Si ese no fuera el caso, lo codificó así:" #: ../Doc/faq/design.rst:251 msgid "" @@ -342,10 +487,13 @@ msgid "" "getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " "because it is evaluated in all cases." msgstr "" +"Para este caso específico, también podría usar ``value = dict." +"setdefault(key, getvalue(key))``, pero solo si la llamada ``getvalue()`` es " +"lo suficientemente barata porque se evalúa en todos los casos." #: ../Doc/faq/design.rst:257 msgid "Why isn't there a switch or case statement in Python?" -msgstr "" +msgstr "¿Por qué no hay un *switch* o una declaración *case* en Python?" #: ../Doc/faq/design.rst:259 msgid "" @@ -354,6 +502,10 @@ msgid "" "there is no consensus (yet) on whether and how to do range tests. See :pep:" "`275` for complete details and the current status." msgstr "" +"Puede hacer esto fácilmente con una secuencia de ``if... elif... elif... " +"else``. Ha habido algunas propuestas para cambiar la sintaxis de la " +"declaración, pero todavía no hay consenso sobre si y cómo hacer pruebas de " +"rango. Ver :pep:`275` para detalles completos y el estado actual." #: ../Doc/faq/design.rst:264 msgid "" @@ -361,12 +513,17 @@ msgid "" "possibilities, you can create a dictionary mapping case values to functions " "to call. For example::" msgstr "" +"Para los casos en los que necesita elegir entre una gran cantidad de " +"posibilidades, puede crear un diccionario que asigne valores de casos a " +"funciones para llamar. Por ejemplo::" #: ../Doc/faq/design.rst:278 msgid "" "For calling methods on objects, you can simplify yet further by using the :" "func:`getattr` built-in to retrieve methods with a particular name::" msgstr "" +"Para invocar métodos en objetos, puede simplificar aún más utilizando :func:" +"`getattr` incorporado para recuperar métodos con un nombre particular::" #: ../Doc/faq/design.rst:290 msgid "" @@ -375,12 +532,18 @@ msgid "" "from an untrusted source, an attacker would be able to call any method on " "your object." msgstr "" +"Se sugiere que utilice un prefijo para los nombres de los métodos, como " +"``visit_`` en este ejemplo. Sin dicho prefijo, si los valores provienen de " +"una fuente no confiable, un atacante podría invocar cualquier método en su " +"objeto." #: ../Doc/faq/design.rst:296 msgid "" "Can't you emulate threads in the interpreter instead of relying on an OS-" "specific thread implementation?" msgstr "" +"¿No puede emular hilos en el intérprete en lugar de confiar en una " +"implementación de hilos específica del sistema operativo?" #: ../Doc/faq/design.rst:298 msgid "" @@ -389,6 +552,11 @@ msgid "" "almost random moments. Therefore, a complete threads implementation " "requires thread support for C." msgstr "" +"Respuesta 1: Desafortunadamente, el intérprete empuja al menos un marco de " +"pila C para cada marco de pila de Python. Además, las extensiones pueden " +"volver a llamar a Python en momentos casi aleatorios. Por lo tanto, una " +"implementación completa de subprocesos requiere soporte de subprocesos para " +"C." #: ../Doc/faq/design.rst:303 msgid "" @@ -396,10 +564,13 @@ msgid "" "stackless-dev/stackless/wiki>`_, which has a completely redesigned " "interpreter loop that avoids the C stack." msgstr "" +"Respuesta 2: Afortunadamente, hay `Python sin pila `_, que tiene un bucle de intérprete " +"completamente rediseñado que evita la pila C." #: ../Doc/faq/design.rst:308 msgid "Why can't lambda expressions contain statements?" -msgstr "" +msgstr "¿Por qué las expresiones lambda no pueden contener sentencias?" #: ../Doc/faq/design.rst:310 msgid "" @@ -409,6 +580,12 @@ msgid "" "other languages, where they add functionality, Python lambdas are only a " "shorthand notation if you're too lazy to define a function." msgstr "" +"Las expresiones lambda de Python no pueden contener declaraciones porque el " +"marco sintáctico de Python no puede manejar declaraciones anidadas dentro de " +"expresiones. Sin embargo, en Python, este no es un problema grave. A " +"diferencia de las formas lambda en otros idiomas, donde agregan " +"funcionalidad, las lambdas de Python son solo una notación abreviada si eres " +"demasiado vago para definir una función." #: ../Doc/faq/design.rst:316 msgid "" @@ -419,10 +596,16 @@ msgid "" "(which is exactly the same type of object that a lambda expression yields) " "is assigned!" msgstr "" +"Las funciones ya son objetos de primera clase en Python y pueden declararse " +"en un ámbito local. Por lo tanto, la única ventaja de usar una lambda en " +"lugar de una función definida localmente es que no es necesario inventar un " +"nombre para la función, sino que es solo una variable local para la cual el " +"objeto de función (que es exactamente el mismo tipo de se asigna un objeto " +"que produce una expresión lambda)" #: ../Doc/faq/design.rst:324 msgid "Can Python be compiled to machine code, C or some other language?" -msgstr "" +msgstr "¿Se puede compilar Python en código máquina, C o algún otro lenguaje?" #: ../Doc/faq/design.rst:326 msgid "" @@ -432,10 +615,15 @@ msgid "" "full Python language. For compiling to Java you can consider `VOC `_." msgstr "" +"`Cython `_ compila una versión modificada de Python con " +"anotaciones opcionales en extensiones C. `Nuitka `_ " +"es un compilador prometedor de Python en código C ++, con el objetivo de " +"soportar el lenguaje completo de Python. Para compilar en Java puede " +"considerar `VOC `_." #: ../Doc/faq/design.rst:334 msgid "How does Python manage memory?" -msgstr "" +msgstr "¿Cómo gestiona Python la memoria?" #: ../Doc/faq/design.rst:336 msgid "" @@ -447,6 +635,14 @@ msgid "" "provides functions to perform a garbage collection, obtain debugging " "statistics, and tune the collector's parameters." msgstr "" +"Los detalles de la administración de memoria de Python dependen de la " +"implementación. La implementación estándar de Python, :term:`CPython`, " +"utiliza el recuento de referencias para detectar objetos inaccesibles, y " +"otro mecanismo para recopilar ciclos de referencia, ejecutando " +"periódicamente un algoritmo de detección de ciclos que busca ciclos " +"inaccesibles y elimina los objetos involucrados. El módulo :mod:`gc` " +"proporciona funciones para realizar una recolección de basura, obtener " +"estadísticas de depuración y ajustar los parámetros del recolector." #: ../Doc/faq/design.rst:344 msgid "" @@ -456,12 +652,19 @@ msgid "" "porting problems if your Python code depends on the behavior of the " "reference counting implementation." msgstr "" +"Sin embargo, otras implementaciones (como `Jython `_ " +"o `PyPy `_) pueden confiar en un mecanismo diferente, " +"como recogedor de basura. Esta diferencia puede causar algunos problemas " +"sutiles de portabilidad si su código de Python depende del comportamiento de " +"la implementación de conteo de referencias." #: ../Doc/faq/design.rst:350 msgid "" "In some Python implementations, the following code (which is fine in " "CPython) will probably run out of file descriptors::" msgstr "" +"En algunas implementaciones de Python, el siguiente código (que está bien en " +"CPython) probablemente se quedará sin descriptores de archivo::" #: ../Doc/faq/design.rst:357 msgid "" @@ -470,6 +673,10 @@ msgid "" "those file objects will only get collected (and closed) at varying and " "possibly long intervals." msgstr "" +"De hecho, utilizando el esquema de conteo de referencias y destructor de " +"CPython, cada nueva asignación a *f* cierra el archivo anterior. Sin " +"embargo, con un GC tradicional, esos objetos de archivo solo se recopilarán " +"(y cerrarán) a intervalos variables y posiblemente largos." #: ../Doc/faq/design.rst:362 msgid "" @@ -477,10 +684,16 @@ msgid "" "should explicitly close the file or use the :keyword:`with` statement; this " "will work regardless of memory management scheme::" msgstr "" +"Si desea escribir código que funcione con cualquier implementación de " +"Python, debe cerrar explícitamente el archivo o utilizar una declaración :" +"keyword:`with`; esto funcionará independientemente del esquema de " +"administración de memoria::" #: ../Doc/faq/design.rst:372 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" msgstr "" +"¿Por qué CPython no utiliza un esquema de recolección de basura más " +"tradicional?" #: ../Doc/faq/design.rst:374 msgid "" @@ -490,6 +703,12 @@ msgid "" "transparent, it isn't completely transparent; patches are required to get " "Python to work with it.)" msgstr "" +"Por un lado, esta no es una característica estándar de C y, por lo tanto, no " +"es portátil. (Sí, sabemos acerca de la biblioteca Boehm GC. Tiene fragmentos " +"de código de ensamblador para *la mayoría* de las plataformas comunes, no " +"para todas ellas, y aunque es principalmente transparente, no es " +"completamente transparente; se requieren parches para obtener Python para " +"trabajar con eso)" #: ../Doc/faq/design.rst:380 msgid "" @@ -500,10 +719,17 @@ msgid "" "malloc() and free(), and may not want Python's. Right now, CPython works " "with anything that implements malloc() and free() properly." msgstr "" +"El GC tradicional también se convierte en un problema cuando Python está " +"integrado en otras aplicaciones. Mientras que en un Python independiente " +"está bien reemplazar el estándar malloc() y free() con versiones " +"proporcionadas por la biblioteca GC, una aplicación que incruste Python " +"puede querer tener su *propio* sustituto de malloc() y free(), y puede No " +"quiero a Python. En este momento, CPython funciona con todo lo que " +"implementa malloc() y free() correctamente." #: ../Doc/faq/design.rst:389 msgid "Why isn't all memory freed when CPython exits?" -msgstr "" +msgstr "¿Por qué no se libera toda la memoria cuando sale CPython?" #: ../Doc/faq/design.rst:391 msgid "" @@ -514,16 +740,26 @@ msgid "" "about these). Python is, however, aggressive about cleaning up memory on " "exit and does try to destroy every single object." msgstr "" +"Los objetos a los que se hace referencia desde los espacios de nombres " +"globales de los módulos de Python no siempre se desasignan cuando Python " +"sale. Esto puede suceder si hay referencias circulares. También hay ciertos " +"bits de memoria asignados por la biblioteca de C que son imposibles de " +"liberar (por ejemplo, una herramienta como Purify se quejará de estos). " +"Python es, sin embargo, agresivo sobre la limpieza de la memoria al salir e " +"intenta destruir cada objeto." #: ../Doc/faq/design.rst:398 msgid "" "If you want to force Python to delete certain things on deallocation use " "the :mod:`atexit` module to run a function that will force those deletions." msgstr "" +"Si desea forzar a Python a eliminar ciertas cosas en la desasignación, use " +"el módulo :mod:`atexit` para ejecutar una función que obligará a esas " +"eliminaciones." #: ../Doc/faq/design.rst:403 msgid "Why are there separate tuple and list data types?" -msgstr "" +msgstr "¿Por qué hay tipos de datos separados de tuplas y listas?" #: ../Doc/faq/design.rst:405 msgid "" @@ -534,6 +770,12 @@ msgid "" "Cartesian coordinate is appropriately represented as a tuple of two or three " "numbers." msgstr "" +"Las listas y las tuplas, si bien son similares en muchos aspectos, " +"generalmente se usan de maneras fundamentalmente diferentes. Se puede pensar " +"que las tuplas son similares a los registros Pascal o estructuras C; son " +"pequeñas colecciones de datos relacionados que pueden ser de diferentes " +"tipos que funcionan como un grupo. Por ejemplo, una coordenada cartesiana se " +"representa adecuadamente como una tupla de dos o tres números." #: ../Doc/faq/design.rst:412 msgid "" @@ -544,6 +786,12 @@ msgid "" "Functions which operate on this output would generally not break if you " "added another file or two to the directory." msgstr "" +"Las listas, por otro lado, son más como matrices en otros idiomas. Tienden a " +"contener un número variable de objetos, todos los cuales tienen el mismo " +"tipo y que se operan uno por uno. Por ejemplo, ``os.listdir('.')`` Devuelve " +"una lista de cadenas que representan los archivos en el directorio actual. " +"Las funciones que operan en esta salida generalmente no se romperían si " +"agregara otro archivo o dos al directorio." #: ../Doc/faq/design.rst:419 msgid "" @@ -553,10 +801,16 @@ msgid "" "be used as dictionary keys, and hence only tuples and not lists can be used " "as keys." msgstr "" +"Las tuplas son inmutables, lo que significa que una vez que se ha creado una " +"tupla, no puede reemplazar ninguno de sus elementos con un nuevo valor. Las " +"listas son mutables, lo que significa que siempre puede cambiar los " +"elementos de una lista. Solo los elementos inmutables se pueden usar como " +"claves de diccionario y, por lo tanto, solo las tuplas y no las listas se " +"pueden usar como claves." #: ../Doc/faq/design.rst:426 msgid "How are lists implemented in CPython?" -msgstr "" +msgstr "¿Cómo se implementan las listas en Python?" #: ../Doc/faq/design.rst:428 msgid "" @@ -565,12 +819,18 @@ msgid "" "objects, and keeps a pointer to this array and the array's length in a list " "head structure." msgstr "" +"Las listas de CPython son realmente matrices de longitud variable, no listas " +"enlazadas al estilo Lisp. La implementación utiliza una matriz contigua de " +"referencias a otros objetos y mantiene un puntero a esta matriz y la " +"longitud de la matriz en una estructura de encabezado de lista." #: ../Doc/faq/design.rst:432 msgid "" "This makes indexing a list ``a[i]`` an operation whose cost is independent " "of the size of the list or the value of the index." msgstr "" +"Esto hace que indexar una lista ``a[i]`` una operación cuyo costo es " +"independiente del tamaño de la lista o del valor del índice." #: ../Doc/faq/design.rst:435 msgid "" @@ -579,10 +839,15 @@ msgid "" "repeatedly; when the array must be grown, some extra space is allocated so " "the next few times don't require an actual resize." msgstr "" +"Cuando se añaden o insertan elementos, la matriz de referencias cambia de " +"tamaño. Se aplica cierta inteligencia para mejorar el rendimiento de la " +"adición de elementos repetidamente; cuando la matriz debe crecer, se asigna " +"un espacio extra para que las próximas veces no requieran un cambio de " +"tamaño real." #: ../Doc/faq/design.rst:442 msgid "How are dictionaries implemented in CPython?" -msgstr "" +msgstr "¿Cómo se implementan los diccionarios en Python?" #: ../Doc/faq/design.rst:444 msgid "" @@ -591,6 +856,11 @@ msgid "" "operation by far) under most circumstances, and the implementation is " "simpler." msgstr "" +"Los diccionarios de CPython se implementan como tablas hash " +"redimensionables. En comparación con los árboles B (*B-trees*), esto " +"proporciona un mejor rendimiento para la búsqueda (la operación más común " +"con diferencia) en la mayoría de las circunstancias, y la implementación es " +"más simple." #: ../Doc/faq/design.rst:448 msgid "" @@ -604,10 +874,20 @@ msgid "" "dictionaries take constant time -- O(1), in Big-O notation -- to retrieve a " "key." msgstr "" +"Los diccionarios funcionan calculando un código hash para cada clave " +"almacenada en el diccionario utilizando la función incorporada :func:`hash`. " +"El código hash varía ampliamente según la clave y una semilla por proceso; " +"por ejemplo, \"Python\" podría dividir en hash a -539294296 mientras que " +"\"python\", una cadena que difiere en un solo bit, podría dividir en " +"1142331976. El código de resumen se usa para calcular una ubicación en una " +"matriz interna donde se almacenará el valor . Suponiendo que está " +"almacenando claves que tienen valores hash diferentes, esto significa que " +"los diccionarios toman tiempo constante, O(1), en notación Big-O, para " +"recuperar una clave." #: ../Doc/faq/design.rst:459 msgid "Why must dictionary keys be immutable?" -msgstr "" +msgstr "¿Por qué las claves del diccionario deben ser inmutables?" #: ../Doc/faq/design.rst:461 msgid "" @@ -621,6 +901,15 @@ msgid "" "be found either, because the value of the object found in that hash bin " "would be different." msgstr "" +"La implementación de la tabla hash de los diccionarios utiliza un valor hash " +"calculado a partir del valor clave para encontrar la clave. Si la clave " +"fuera un objeto mutable, su valor podría cambiar y, por lo tanto, su hash " +"también podría cambiar. Pero dado que quien cambie el objeto clave no puede " +"decir que se estaba utilizando como clave de diccionario, no puede mover la " +"entrada en el diccionario. Luego, cuando intente buscar el mismo objeto en " +"el diccionario, no se encontrará porque su valor hash es diferente. Si trató " +"de buscar el valor anterior, tampoco lo encontraría, porque el valor del " +"objeto que se encuentra en ese hash bin sería diferente." #: ../Doc/faq/design.rst:470 msgid "" @@ -629,16 +918,22 @@ msgid "" "as the list ``L``. Tuples are immutable and can therefore be used as " "dictionary keys." msgstr "" +"Si desea un diccionario indexado con una lista, simplemente convierta la " +"lista a una tupla primero; La función ``tuple(L)`` crea una tupla con las " +"mismas entradas que la lista ``L``. Las tuplas son inmutables y, por lo " +"tanto, pueden usarse como claves de diccionario." #: ../Doc/faq/design.rst:474 msgid "Some unacceptable solutions that have been proposed:" -msgstr "" +msgstr "Algunas soluciones inaceptables que se han propuesto:" #: ../Doc/faq/design.rst:476 msgid "" "Hash lists by their address (object ID). This doesn't work because if you " "construct a new list with the same value it won't be found; e.g.::" msgstr "" +"Listas de hash por su dirección (ID de objeto). Esto no funciona porque si " +"construye una nueva lista con el mismo valor, no se encontrará; por ejemplo::" #: ../Doc/faq/design.rst:482 msgid "" @@ -647,6 +942,10 @@ msgid "" "words, dictionary keys should be compared using ``==``, not using :keyword:" "`is`." msgstr "" +"generaría una excepción :exc:`KeyError` porque la identificación del ``[1, " +"2]`` usado en la segunda línea difiere de la de la primera línea. En otras " +"palabras, las claves del diccionario deben compararse usando ``==``, no " +"usando :keyword:`is`." #: ../Doc/faq/design.rst:486 msgid "" @@ -654,6 +953,9 @@ msgid "" "being a mutable object, could contain a reference to itself, and then the " "copying code would run into an infinite loop." msgstr "" +"Haga una copia cuando use una lista como clave. Esto no funciona porque la " +"lista, al ser un objeto mutable, podría contener una referencia a sí misma, " +"y luego el código de copia se ejecutaría en un bucle infinito." #: ../Doc/faq/design.rst:490 msgid "" @@ -662,6 +964,11 @@ msgid "" "by accident. It also invalidates an important invariant of dictionaries: " "every value in ``d.keys()`` is usable as a key of the dictionary." msgstr "" +"Permitir listas como claves pero decirle al usuario que no las modifique. " +"Esto permitiría una clase de errores difíciles de rastrear en los programas " +"cuando olvidó o modificó una lista por accidente. También invalida una " +"invariante importante de diccionarios: cada valor en ``d.keys()`` se puede " +"usar como una clave del diccionario." #: ../Doc/faq/design.rst:495 msgid "" @@ -672,6 +979,12 @@ msgid "" "read-only -- and again, self-referential objects could cause an infinite " "loop." msgstr "" +"Marcar las listas como de solo lectura una vez que se usan como clave de " +"diccionario. El problema es que no solo el objeto de nivel superior puede " +"cambiar su valor; podría usar una tupla que contiene una lista como clave. " +"Ingresar cualquier cosa como clave en un diccionario requeriría marcar todos " +"los objetos accesibles desde allí como de solo lectura, y nuevamente, los " +"objetos autoreferenciales podrían causar un bucle infinito." #: ../Doc/faq/design.rst:501 msgid "" @@ -682,6 +995,12 @@ msgid "" "dictionary (or other hash based structure), remain fixed while the object is " "in the dictionary (or other structure). ::" msgstr "" +"Hay un truco para evitar esto si lo necesita, pero úselo bajo su propio " +"riesgo: puede envolver una estructura mutable dentro de una instancia de " +"clase que tenga un método :meth:`__eq__` y a :meth:`__hash__` . Luego debe " +"asegurarse de que el valor hash para todos los objetos de contenedor que " +"residen en un diccionario (u otra estructura basada en hash) permanezca fijo " +"mientras el objeto está en el diccionario (u otra estructura). ::" #: ../Doc/faq/design.rst:525 msgid "" @@ -689,6 +1008,9 @@ msgid "" "members of the list may be unhashable and also by the possibility of " "arithmetic overflow." msgstr "" +"Tenga en cuenta que el cálculo de hash se complica por la posibilidad de que " +"algunos miembros de la lista sean inquebrantables y también por la " +"posibilidad de desbordamiento aritmético." #: ../Doc/faq/design.rst:529 msgid "" @@ -698,6 +1020,11 @@ msgid "" "not. If you fail to meet these restrictions dictionaries and other hash " "based structures will misbehave." msgstr "" +"Además, siempre debe darse el caso de que si ``o1 == o2`` (es decir, ``o1." +"__eq__(o2) is True``), entonces ``hash(o1) == hash(o2)`` (es decir, ``o1." +"__hash__() == o2.__hash__()``), independientemente de si el objeto está en " +"un diccionario o no. Si no cumple con estas restricciones, los diccionarios " +"y otras estructuras basadas en hash se comportarán mal." #: ../Doc/faq/design.rst:534 msgid "" @@ -706,10 +1033,15 @@ msgid "" "you are prepared to think hard about the requirements and the consequences " "of not meeting them correctly. Consider yourself warned." msgstr "" +"En el caso de ListWrapper, siempre que el objeto contenedor esté en un " +"diccionario, la lista ajustada no debe cambiar para evitar anomalías. No " +"haga esto a menos que esté preparado para pensar detenidamente sobre los " +"requisitos y las consecuencias de no cumplirlos correctamente. Considérate " +"advertido." #: ../Doc/faq/design.rst:541 msgid "Why doesn't list.sort() return the sorted list?" -msgstr "" +msgstr "¿Por qué list.sort() no retorna la lista ordenada?" #: ../Doc/faq/design.rst:543 msgid "" @@ -720,6 +1052,12 @@ msgid "" "when you need a sorted copy but also need to keep the unsorted version " "around." msgstr "" +"En situaciones donde el rendimiento es importante, hacer una copia de la " +"lista solo para ordenarlo sería un desperdicio. Por lo tanto, :meth:`list." +"sort` ordena la lista en su lugar. Para recordarle ese hecho, no devuelve la " +"lista ordenada. De esta manera, no se dejará engañar por sobreescribir " +"accidentalmente una lista cuando necesite una copia ordenada, pero también " +"deberá mantener la versión sin ordenar." #: ../Doc/faq/design.rst:549 msgid "" @@ -728,10 +1066,14 @@ msgid "" "it and returns it. For example, here's how to iterate over the keys of a " "dictionary in sorted order::" msgstr "" +"Si desea devolver una nueva lista, use la función incorporada :func:`sorted` " +"en su lugar. Esta función crea una nueva lista a partir de un iterativo " +"proporcionado, la ordena y la retorna. Por ejemplo, a continuación se " +"explica cómo iterar sobre las teclas de un diccionario en orden ordenado:" #: ../Doc/faq/design.rst:559 msgid "How do you specify and enforce an interface spec in Python?" -msgstr "" +msgstr "¿Cómo se especifica y aplica una especificación de interfaz en Python?" #: ../Doc/faq/design.rst:561 msgid "" @@ -740,6 +1082,11 @@ msgid "" "module. Many feel that compile-time enforcement of interface specifications " "helps in the construction of large programs." msgstr "" +"Una especificación de interfaz para un módulo proporcionada por lenguajes " +"como C ++ y Java describe los prototipos para los métodos y funciones del " +"módulo. Muchos sienten que la aplicación en tiempo de compilación de las " +"especificaciones de la interfaz ayuda en la construcción de grandes " +"programas." #: ../Doc/faq/design.rst:566 msgid "" @@ -750,6 +1097,12 @@ msgid "" "`~collections.abc.Iterable`, :class:`~collections.abc.Container`, and :class:" "`~collections.abc.MutableMapping`." msgstr "" +"Python 2.6 agrega un módulo :mod:`abc` que le permite definir clases base " +"abstractas (ABC). Luego puede usar :func:`isinstance` y :func:`issubclass` " +"para verificar si una instancia o una clase implementa un ABC en particular. " +"El módulo :mod:`collections.abc` define un conjunto de ABC útiles como :" +"class:`~collections.abc.Iterable`, :class:`~collections.abc.Container` y :" +"class:`~collections.abc.MutableMapping`." #: ../Doc/faq/design.rst:573 msgid "" @@ -757,6 +1110,10 @@ msgid "" "obtained by an appropriate test discipline for components. There is also a " "tool, PyChecker, which can be used to find problems due to subclassing." msgstr "" +"Para Python, muchas de las ventajas de las especificaciones de interfaz se " +"pueden obtener mediante una disciplina de prueba adecuada para los " +"componentes. También hay una herramienta, PyChecker, que se puede usar para " +"encontrar problemas debido a la subclasificación." #: ../Doc/faq/design.rst:577 msgid "" @@ -769,6 +1126,15 @@ msgid "" "be used to construct exhaustive test suites that exercise every line of code " "in a module." msgstr "" +"Un buen conjunto de pruebas para un módulo puede proporcionar una prueba de " +"regresión y servir como una especificación de interfaz de módulo y un " +"conjunto de ejemplos. Muchos módulos de Python se pueden ejecutar como un " +"script para proporcionar una simple \"autocomprobación\". Incluso los " +"módulos que usan interfaces externas complejas a menudo se pueden probar de " +"forma aislada utilizando emulaciones triviales de \"stub\" de la interfaz " +"externa. Los módulos :mod:`doctest` y :mod:`unittest` o marcos de prueba de " +"terceros se pueden utilizar para construir conjuntos de pruebas exhaustivas " +"que ejercitan cada línea de código en un módulo." #: ../Doc/faq/design.rst:585 msgid "" @@ -780,6 +1146,14 @@ msgid "" "test that your :meth:`append` implementation will actually do this " "correctly, but it's trivial to check this property in a test suite." msgstr "" +"Una disciplina de prueba adecuada puede ayudar a construir grandes " +"aplicaciones complejas en Python, así como tener especificaciones de " +"interfaz. De hecho, puede ser mejor porque una especificación de interfaz no " +"puede probar ciertas propiedades de un programa. Por ejemplo, se espera que " +"el método :meth:`append` agregue nuevos elementos al final de alguna lista " +"interna; una especificación de interfaz no puede probar que su " +"implementación :meth:`append` realmente haga esto correctamente, pero es " +"trivial verificar esta propiedad en un conjunto de pruebas." #: ../Doc/faq/design.rst:593 msgid "" @@ -789,10 +1163,15 @@ msgid "" "before you write any of the actual code. Of course Python allows you to be " "sloppy and not write test cases at all." msgstr "" +"Escribir conjuntos de pruebas es muy útil, y es posible que desee diseñar su " +"código con miras a que sea fácilmente probado. Una técnica cada vez más " +"popular, el desarrollo dirigido por pruebas, requiere escribir partes del " +"conjunto de pruebas primero, antes de escribir el código real. Por supuesto, " +"Python te permite ser descuidado y no escribir casos de prueba." #: ../Doc/faq/design.rst:601 msgid "Why is there no goto?" -msgstr "" +msgstr "¿Por qué no hay goto?" #: ../Doc/faq/design.rst:603 msgid "" @@ -801,16 +1180,24 @@ msgid "" "all reasonable uses of the \"go\" or \"goto\" constructs of C, Fortran, and " "other languages. For example::" msgstr "" +"Puede usar excepciones para proporcionar un \"goto estructurado\" que " +"incluso funciona en llamadas a funciones. Muchos creen que las excepciones " +"pueden emular convenientemente todos los usos razonables de los constructos " +"\"go\" o \"goto\" de C, Fortran y otros lenguajes. Por ejemplo::" #: ../Doc/faq/design.rst:618 msgid "" "This doesn't allow you to jump into the middle of a loop, but that's usually " "considered an abuse of goto anyway. Use sparingly." msgstr "" +"Esto no le permite saltar a la mitad de un bucle, pero de todos modos eso " +"generalmente se considera un abuso de goto. Utilizar con moderación." #: ../Doc/faq/design.rst:623 msgid "Why can't raw strings (r-strings) end with a backslash?" msgstr "" +"¿Por qué las cadenas sin formato (r-strings) no pueden terminar con una " +"barra diagonal inversa?" #: ../Doc/faq/design.rst:625 msgid "" @@ -818,6 +1205,9 @@ msgid "" "unpaired backslash at the end escapes the closing quote character, leaving " "an unterminated string." msgstr "" +"Más precisamente, no pueden terminar con un número impar de barras " +"invertidas: la barra invertida no emparejada al final escapa del carácter de " +"comillas de cierre, dejando una cadena sin terminar." #: ../Doc/faq/design.rst:629 msgid "" @@ -828,21 +1218,36 @@ msgid "" "pass on the string quote character by escaping it with a backslash. These " "rules work well when r-strings are used for their intended purpose." msgstr "" +"Las cadenas de caracteres sin formato se diseñaron para facilitar la " +"creación de entradas para procesadores (principalmente motores de expresión " +"regular) que desean realizar su propio procesamiento de escape de barra " +"invertida. Tales procesadores consideran que una barra invertida sin igual " +"es un error de todos modos, por lo que las cadenas de caracteres sin " +"procesar no lo permiten. A cambio, le permiten pasar el carácter de comillas " +"de cadena escapándolo con una barra invertida. Estas reglas funcionan bien " +"cuando las cadenas de caracteres r (*r-strings*) se usan para el propósito " +"previsto." #: ../Doc/faq/design.rst:636 msgid "" "If you're trying to build Windows pathnames, note that all Windows system " "calls accept forward slashes too::" msgstr "" +"Si está intentando construir nombres de ruta de Windows, tenga en cuenta que " +"todas las llamadas al sistema de Windows también aceptan barras diagonales:" #: ../Doc/faq/design.rst:641 msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" +"Si está tratando de construir una ruta para un comando de DOS, intente por " +"ejemplo uno de::" #: ../Doc/faq/design.rst:649 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" msgstr "" +"¿Por qué Python no tiene una declaración \"with\" para las asignaciones de " +"atributos?" #: ../Doc/faq/design.rst:651 msgid "" @@ -850,10 +1255,13 @@ msgid "" "code on the entrance and exit from the block. Some language have a " "construct that looks like this::" msgstr "" +"Python tiene una declaración 'with' que envuelve la ejecución de un bloque, " +"llamando al código en la entrada y salida del bloque. Algunos idiomas tienen " +"una construcción que se ve así:" #: ../Doc/faq/design.rst:659 msgid "In Python, such a construct would be ambiguous." -msgstr "" +msgstr "En Python, tal construcción sería ambigua." #: ../Doc/faq/design.rst:661 msgid "" @@ -862,6 +1270,11 @@ msgid "" "assigned to. This is the main point of static typing -- the compiler " "*always* knows the scope of every variable at compile time." msgstr "" +"Otros lenguajes, como Object Pascal, Delphi y C ++, utilizan tipos " +"estáticos, por lo que es posible saber, de manera inequívoca, a qué miembro " +"se le está asignando. Este es el punto principal de la escritura estática: " +"el compilador *siempre* conoce el alcance de cada variable en tiempo de " +"compilación." #: ../Doc/faq/design.rst:666 msgid "" @@ -871,10 +1284,15 @@ msgid "" "simple reading, what attribute is being referenced: a local one, a global " "one, or a member attribute?" msgstr "" +"Python usa tipos dinámicos. Es imposible saber de antemano a qué atributo se " +"hará referencia en tiempo de ejecución. Los atributos de los miembros pueden " +"agregarse o eliminarse de los objetos sobre la marcha. Esto hace que sea " +"imposible saber, a partir de una simple lectura, a qué atributo se hace " +"referencia: ¿uno local, uno global o un atributo miembro?" #: ../Doc/faq/design.rst:672 msgid "For instance, take the following incomplete snippet::" -msgstr "" +msgstr "Por ejemplo, tome el siguiente fragmento incompleto::" #: ../Doc/faq/design.rst:678 msgid "" @@ -884,6 +1302,12 @@ msgid "" "variable named \"x\", will it be used inside the with block? As you see, " "the dynamic nature of Python makes such choices much harder." msgstr "" +"El fragmento supone que \"a\" debe tener un atributo miembro llamado \"x\". " +"Sin embargo, no hay nada en Python que le diga esto al intérprete. ¿Qué " +"debería suceder si \"a\" es, digamos, un número entero? Si hay una variable " +"global llamada \"x\", ¿se usará dentro del bloque with? Como puede ver, la " +"naturaleza dinámica de Python hace que tales elecciones sean mucho más " +"difíciles." #: ../Doc/faq/design.rst:684 msgid "" @@ -891,10 +1315,13 @@ msgid "" "code volume) can, however, easily be achieved in Python by assignment. " "Instead of::" msgstr "" +"Sin embargo, el beneficio principal de \"with\" y características de " +"lenguaje similares (reducción del volumen del código) se puede lograr " +"fácilmente en Python mediante la asignación. En vez de::" #: ../Doc/faq/design.rst:691 msgid "write this::" -msgstr "" +msgstr "escribe esto::" #: ../Doc/faq/design.rst:698 msgid "" @@ -902,20 +1329,26 @@ msgid "" "bindings are resolved at run-time in Python, and the second version only " "needs to perform the resolution once." msgstr "" +"Esto también tiene el efecto secundario de aumentar la velocidad de " +"ejecución porque los enlaces de nombres se resuelven en tiempo de ejecución " +"en Python, y la segunda versión solo necesita realizar la resolución una vez." #: ../Doc/faq/design.rst:704 msgid "Why are colons required for the if/while/def/class statements?" msgstr "" +"¿Por qué se requieren dos puntos para las declaraciones if/while/def/class?" #: ../Doc/faq/design.rst:706 msgid "" "The colon is required primarily to enhance readability (one of the results " "of the experimental ABC language). Consider this::" msgstr "" +"Los dos puntos se requieren principalmente para mejorar la legibilidad (uno " +"de los resultados del lenguaje ABC experimental). Considera esto::" #: ../Doc/faq/design.rst:712 msgid "versus ::" -msgstr "" +msgstr "versus ::" #: ../Doc/faq/design.rst:717 msgid "" @@ -923,6 +1356,9 @@ msgid "" "colon sets off the example in this FAQ answer; it's a standard usage in " "English." msgstr "" +"Observe cómo el segundo es un poco más fácil de leer. Observe más a fondo " +"cómo los dos puntos establecen el ejemplo en esta respuesta de preguntas " +"frecuentes; Es un uso estándar en inglés." #: ../Doc/faq/design.rst:720 msgid "" @@ -931,20 +1367,26 @@ msgid "" "needs to be increased instead of having to do a more elaborate parsing of " "the program text." msgstr "" +"Otra razón menor es que los dos puntos facilitan a los editores con " +"resaltado de sintaxis; pueden buscar dos puntos para decidir cuándo se debe " +"aumentar la sangría en lugar de tener que hacer un análisis más elaborado " +"del texto del programa." #: ../Doc/faq/design.rst:726 msgid "Why does Python allow commas at the end of lists and tuples?" -msgstr "" +msgstr "¿Por qué Python permite comas al final de las listas y tuplas?" #: ../Doc/faq/design.rst:728 msgid "" "Python lets you add a trailing comma at the end of lists, tuples, and " "dictionaries::" msgstr "" +"Python le permite agregar una coma final al final de las listas, tuplas y " +"diccionarios::" #: ../Doc/faq/design.rst:739 msgid "There are several reasons to allow this." -msgstr "" +msgstr "Hay varias razones para permitir esto." #: ../Doc/faq/design.rst:741 msgid "" @@ -953,12 +1395,18 @@ msgid "" "remember to add a comma to the previous line. The lines can also be " "reordered without creating a syntax error." msgstr "" +"Cuando tiene un valor literal para una lista, tupla o diccionario " +"distribuido en varias líneas, es más fácil agregar más elementos porque no " +"tiene que recordar agregar una coma a la línea anterior. Las líneas también " +"se pueden reordenar sin crear un error de sintaxis." #: ../Doc/faq/design.rst:746 msgid "" "Accidentally omitting the comma can lead to errors that are hard to " "diagnose. For example::" msgstr "" +"La omisión accidental de la coma puede ocasionar errores difíciles de " +"diagnosticar. Por ejemplo::" #: ../Doc/faq/design.rst:756 msgid "" @@ -966,9 +1414,14 @@ msgid "" "\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " "of error." msgstr "" +"Parece que esta lista tiene cuatro elementos, pero en realidad contiene " +"tres: \"fee\", \"fiefoo\" y \"fum\". Agregar siempre la coma evita esta " +"fuente de error." #: ../Doc/faq/design.rst:759 msgid "" "Allowing the trailing comma may also make programmatic code generation " "easier." msgstr "" +"Permitir la coma final también puede facilitar la generación de código " +"programático." From 466ea87ff71b23c12ca8a03c7b3f23c54f252039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Thu, 9 Jul 2020 12:58:57 +0200 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: narvmtz <51009725+narvmtz@users.noreply.github.com> --- faq/design.po | 86 +++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/faq/design.po b/faq/design.po index 008dc73ac8..701a4d4689 100644 --- a/faq/design.po +++ b/faq/design.po @@ -32,7 +32,7 @@ msgstr "Contenido" #: ../Doc/faq/design.rst:11 msgid "Why does Python use indentation for grouping of statements?" -msgstr "¿Por qué Python usa sangría para agrupar declaraciones?" +msgstr "¿Por qué Python usa indentación para agrupar declaraciones?" #: ../Doc/faq/design.rst:13 msgid "" @@ -40,7 +40,7 @@ msgid "" "elegant and contributes a lot to the clarity of the average Python program. " "Most people learn to love this feature after a while." msgstr "" -"Guido van Rossum cree que usar sangría para agrupar es extremadamente " +"Guido van Rossum cree que usar indentación para agrupar es extremadamente " "elegante y contribuye mucho a la claridad del programa Python promedio. La " "mayoría de las personas aprenden a amar esta característica después de un " "tiempo." @@ -51,7 +51,7 @@ msgid "" "grouping perceived by the parser and the human reader. Occasionally C " "programmers will encounter a fragment of code like this::" msgstr "" -"Como no hay corchetes de inicio / fin, no puede haber un desacuerdo entre la " +"Como no hay corchetes de inicio/fin, no puede haber un desacuerdo entre la " "agrupación percibida por el analizador y el lector humano. Ocasionalmente, " "los programadores de C encontrarán un fragmento de código como este::" @@ -63,7 +63,7 @@ msgid "" "decremented even for ``x > y``." msgstr "" "Solo se ejecuta la instrucción ``x ++`` si la condición es verdadera, pero " -"la sangría lo lleva a creer lo contrario. Incluso los programadores " +"la indentación lo lleva a creer lo contrario. Incluso los programadores " "experimentados de C a veces lo miran durante mucho tiempo preguntándose por " "qué ``y`` se está disminuyendo incluso para ``x > y``." @@ -97,9 +97,9 @@ msgstr "" "obtener una buena visión general de un programa. Idealmente, una función " "debería caber en una pantalla (por ejemplo, 20-30 líneas). 20 líneas de " "Python pueden hacer mucho más trabajo que 20 líneas de C. Esto no se debe " -"únicamente a la falta de corchetes de inicio/fin, la falta de declaraciones " -"y los tipos de datos de alto nivel también son responsables, sino también la " -"sangría basada en la sintaxis ciertamente ayuda." +"únicamente a la falta de corchetes de inicio/fin -- la falta de declaraciones " +"y los tipos de datos de alto nivel también son responsables -- sino también la " +"indentación basada en la sintaxis ciertamente ayuda." #: ../Doc/faq/design.rst:46 msgid "Why am I getting strange results with simple arithmetic operations?" @@ -173,7 +173,7 @@ msgid "" "The typical precision of 53 bits provides Python floats with 15--16 decimal " "digits of accuracy." msgstr "" -"La precisión típica de 53 bits proporciona flotadores Python con 15--16 " +"La precisión típica de 53 bits proporciona flotantes Python con 15--16 " "dígitos decimales de precisión." #: ../Doc/faq/design.rst:88 @@ -211,7 +211,7 @@ msgid "" "and in Python, no amount of activity will change the string \"eight\" to " "anything else." msgstr "" -"Otra ventaja es que las cadenas en Python se consideran \"elementales\" como " +"Otra ventaja es que las cadenas en Python se consideran tan \"elementales\" como los" "números. Ninguna cantidad de actividad cambiará el valor 8 a otra cosa, y en " "Python, ninguna cantidad de actividad cambiará la cadena \"ocho\" a otra " "cosa." @@ -245,13 +245,13 @@ msgstr "" "Primero, es más obvio que está utilizando un método o atributo de instancia " "en lugar de una variable local. Leer ``self.x`` o ``self.meth()`` deja " "absolutamente claro que se usa una variable de instancia o método incluso si " -"no conoce la definición de clase de memoria. En C ++, puede darse cuenta de " +"no conoce la definición de clase de memoria. En C++, puede darse cuenta de " "la falta de una declaración de variable local (suponiendo que los globales " -"son raros o fácilmente reconocibles), pero en Python, no hay declaraciones " +"son raros o fácilmente reconocibles) -- pero en Python, no hay declaraciones " "de variables locales, por lo que debería buscar la definición de clase para " -"estar seguro. Algunos estándares de codificación de C ++ y Java requieren " -"que los atributos de instancia tengan un prefijo ``m_``, por que sea " -"explicito también es útil en esos lenguajes." +"estar seguro. Algunos estándares de codificación de C++ y Java requieren " +"que los atributos de instancia tengan un prefijo ``m_``, porque el ser " +"explícito también es útil en esos lenguajes." #: ../Doc/faq/design.rst:125 msgid "" @@ -266,7 +266,7 @@ msgid "" msgstr "" "En segundo lugar, significa que no es necesaria una sintaxis especial si " "desea hacer referencia explícita o llamar al método desde una clase en " -"particular. En C ++, si desea usar un método de una clase base que se anula " +"particular. En C++, si desea usar un método de una clase base que se anula " "en una clase derivada, debe usar el operador ``::`` -- en Python puede " "escribir ``baseclass.methodname(self, )``. Esto es " "particularmente útil para métodos :meth:`__init__`, y en general en los " @@ -291,13 +291,13 @@ msgid "" "instance variables live in two different namespaces, and you need to tell " "Python which namespace to use." msgstr "" -"Finalmente, por ejemplo, las variables resuelven un problema sintáctico con " +"Finalmente, para las variables de instancia se resuelve un problema sintáctico con " "la asignación: dado que las variables locales en Python son (¡por " "definición!) Aquellas variables a las que se asigna un valor en un cuerpo de " -"función (y que no se declaran explícitamente como globales), tiene que sea " +"función (y que no se declaran explícitamente como globales), tiene que haber " "una forma de decirle al intérprete que una asignación estaba destinada a " "asignar a una variable de instancia en lugar de a una variable local, y que " -"preferiblemente debería ser sintáctica (por razones de eficiencia). C ++ " +"preferiblemente debería ser sintáctica (por razones de eficiencia). C++ " "hace esto a través de declaraciones, pero Python no tiene declaraciones y " "sería una pena tener que presentarlas solo para este propósito. Usar el " "``self.var`` explícito resuelve esto muy bien. Del mismo modo, para usar " @@ -313,7 +313,7 @@ msgstr "¿Por qué no puedo usar una tarea en una expresión?" #: ../Doc/faq/design.rst:154 msgid "Starting in Python 3.8, you can!" -msgstr "A partir de Python 3.8, ¡puedes!" +msgstr "¡A partir de Python 3.8, se puede!" #: ../Doc/faq/design.rst:156 msgid "" @@ -382,7 +382,7 @@ msgstr "" #: ../Doc/faq/design.rst:191 msgid "Why is join() a string method instead of a list or tuple method?" msgstr "" -"¿Por qué join() es un método de cadena en lugar de un método de lista o " +"¿Por qué join() es un método de cadena de caracteres en lugar de un método de lista o " "tupla?" #: ../Doc/faq/design.rst:193 @@ -416,7 +416,7 @@ msgid "" "on names bound to strings there is no logical reason to make them " "unavailable on literals." msgstr "" -"El primero corre a lo largo de las líneas de: \"Parece realmente feo usando " +"El primero corre a lo largo de las líneas de: \"Se ve realmente feo el uso de" "un método de un literal de cadena (constante de cadena)\", a lo que la " "respuesta es que sí, pero un literal de cadena es solo un valor fijo. Si se " "permiten los métodos en nombres vinculados a cadenas, no hay razón lógica " @@ -441,7 +441,7 @@ msgid "" "the given separator (or, by default, arbitrary runs of white space)." msgstr "" "es una instrucción a un literal de cadena para devolver las subcadenas de " -"caracteres delimitadas por el separador dado (o, por defecto, corridas " +"caracteres delimitadas por el separador dado (o, por defecto, ejecuciones " "arbitrarias de espacio en blanco)." #: ../Doc/faq/design.rst:223 @@ -461,7 +461,7 @@ msgstr "" #: ../Doc/faq/design.rst:231 msgid "How fast are exceptions?" -msgstr "¿Qué tan rápido son las excepciones?" +msgstr "¿Qué tan rápido van las excepciones?" #: ../Doc/faq/design.rst:233 msgid "" @@ -564,7 +564,7 @@ msgid "" "stackless-dev/stackless/wiki>`_, which has a completely redesigned " "interpreter loop that avoids the C stack." msgstr "" -"Respuesta 2: Afortunadamente, hay `Python sin pila `_, que tiene un bucle de intérprete " "completamente rediseñado que evita la pila C." @@ -583,7 +583,7 @@ msgstr "" "Las expresiones lambda de Python no pueden contener declaraciones porque el " "marco sintáctico de Python no puede manejar declaraciones anidadas dentro de " "expresiones. Sin embargo, en Python, este no es un problema grave. A " -"diferencia de las formas lambda en otros idiomas, donde agregan " +"diferencia de las formas lambda en otros lenguajes, donde agregan " "funcionalidad, las lambdas de Python son solo una notación abreviada si eres " "demasiado vago para definir una función." @@ -654,7 +654,7 @@ msgid "" msgstr "" "Sin embargo, otras implementaciones (como `Jython `_ " "o `PyPy `_) pueden confiar en un mecanismo diferente, " -"como recogedor de basura. Esta diferencia puede causar algunos problemas " +"como recolector de basura. Esta diferencia puede causar algunos problemas " "sutiles de portabilidad si su código de Python depende del comportamiento de " "la implementación de conteo de referencias." @@ -786,10 +786,10 @@ msgid "" "Functions which operate on this output would generally not break if you " "added another file or two to the directory." msgstr "" -"Las listas, por otro lado, son más como matrices en otros idiomas. Tienden a " +"Las listas, por otro lado, son más como matrices en otros lenguajes. Tienden a " "contener un número variable de objetos, todos los cuales tienen el mismo " -"tipo y que se operan uno por uno. Por ejemplo, ``os.listdir('.')`` Devuelve " -"una lista de cadenas que representan los archivos en el directorio actual. " +"tipo y que se operan uno por uno. Por ejemplo, ``os.listdir('.')`` Retorna " +"una lista de cadenas de caracteres que representan los archivos en el directorio actual. " "Las funciones que operan en esta salida generalmente no se romperían si " "agregara otro archivo o dos al directorio." @@ -847,7 +847,7 @@ msgstr "" #: ../Doc/faq/design.rst:442 msgid "How are dictionaries implemented in CPython?" -msgstr "¿Cómo se implementan los diccionarios en Python?" +msgstr "¿Cómo se implementan los diccionarios en CPython?" #: ../Doc/faq/design.rst:444 msgid "" @@ -882,7 +882,7 @@ msgstr "" "1142331976. El código de resumen se usa para calcular una ubicación en una " "matriz interna donde se almacenará el valor . Suponiendo que está " "almacenando claves que tienen valores hash diferentes, esto significa que " -"los diccionarios toman tiempo constante, O(1), en notación Big-O, para " +"los diccionarios toman tiempo constante -- O(1), en notación Big-O -- para " "recuperar una clave." #: ../Doc/faq/design.rst:459 @@ -953,7 +953,7 @@ msgid "" "being a mutable object, could contain a reference to itself, and then the " "copying code would run into an infinite loop." msgstr "" -"Haga una copia cuando use una lista como clave. Esto no funciona porque la " +"Hacer una copia cuando use una lista como clave. Esto no funciona porque la " "lista, al ser un objeto mutable, podría contener una referencia a sí misma, " "y luego el código de copia se ejecutaría en un bucle infinito." @@ -983,8 +983,8 @@ msgstr "" "diccionario. El problema es que no solo el objeto de nivel superior puede " "cambiar su valor; podría usar una tupla que contiene una lista como clave. " "Ingresar cualquier cosa como clave en un diccionario requeriría marcar todos " -"los objetos accesibles desde allí como de solo lectura, y nuevamente, los " -"objetos autoreferenciales podrían causar un bucle infinito." +"los objetos accesibles desde allí como de solo lectura -- y nuevamente, los " +"objetos autoreferenciados podrían causar un bucle infinito." #: ../Doc/faq/design.rst:501 msgid "" @@ -1036,7 +1036,7 @@ msgstr "" "En el caso de ListWrapper, siempre que el objeto contenedor esté en un " "diccionario, la lista ajustada no debe cambiar para evitar anomalías. No " "haga esto a menos que esté preparado para pensar detenidamente sobre los " -"requisitos y las consecuencias de no cumplirlos correctamente. Considérate " +"requisitos y las consecuencias de no cumplirlos correctamente. Considérese " "advertido." #: ../Doc/faq/design.rst:541 @@ -1054,7 +1054,7 @@ msgid "" msgstr "" "En situaciones donde el rendimiento es importante, hacer una copia de la " "lista solo para ordenarlo sería un desperdicio. Por lo tanto, :meth:`list." -"sort` ordena la lista en su lugar. Para recordarle ese hecho, no devuelve la " +"sort` ordena la lista en su lugar. Para recordarle ese hecho, no retorna la " "lista ordenada. De esta manera, no se dejará engañar por sobreescribir " "accidentalmente una lista cuando necesite una copia ordenada, pero también " "deberá mantener la versión sin ordenar." @@ -1083,7 +1083,7 @@ msgid "" "helps in the construction of large programs." msgstr "" "Una especificación de interfaz para un módulo proporcionada por lenguajes " -"como C ++ y Java describe los prototipos para los métodos y funciones del " +"como C++ y Java describe los prototipos para los métodos y funciones del " "módulo. Muchos sienten que la aplicación en tiempo de compilación de las " "especificaciones de la interfaz ayuda en la construcción de grandes " "programas." @@ -1196,7 +1196,7 @@ msgstr "" #: ../Doc/faq/design.rst:623 msgid "Why can't raw strings (r-strings) end with a backslash?" msgstr "" -"¿Por qué las cadenas sin formato (r-strings) no pueden terminar con una " +"¿Por qué las cadenas de caracteres sin formato (r-strings) no pueden terminar con una " "barra diagonal inversa?" #: ../Doc/faq/design.rst:625 @@ -1206,7 +1206,7 @@ msgid "" "an unterminated string." msgstr "" "Más precisamente, no pueden terminar con un número impar de barras " -"invertidas: la barra invertida no emparejada al final escapa del carácter de " +"invertidas: la barra invertida no emparejada al final escapa el carácter de " "comillas de cierre, dejando una cadena sin terminar." #: ../Doc/faq/design.rst:629 @@ -1221,7 +1221,7 @@ msgstr "" "Las cadenas de caracteres sin formato se diseñaron para facilitar la " "creación de entradas para procesadores (principalmente motores de expresión " "regular) que desean realizar su propio procesamiento de escape de barra " -"invertida. Tales procesadores consideran que una barra invertida sin igual " +"invertida. Tales procesadores consideran que una barra invertida sin par " "es un error de todos modos, por lo que las cadenas de caracteres sin " "procesar no lo permiten. A cambio, le permiten pasar el carácter de comillas " "de cadena escapándolo con una barra invertida. Estas reglas funcionan bien " @@ -1241,7 +1241,7 @@ msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" "Si está tratando de construir una ruta para un comando de DOS, intente por " -"ejemplo uno de::" +"ejemplo uno de los siguientes::" #: ../Doc/faq/design.rst:649 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" @@ -1256,7 +1256,7 @@ msgid "" "construct that looks like this::" msgstr "" "Python tiene una declaración 'with' que envuelve la ejecución de un bloque, " -"llamando al código en la entrada y salida del bloque. Algunos idiomas tienen " +"llamando al código en la entrada y salida del bloque. Algunos lenguajes tienen " "una construcción que se ve así:" #: ../Doc/faq/design.rst:659 @@ -1369,7 +1369,7 @@ msgid "" msgstr "" "Otra razón menor es que los dos puntos facilitan a los editores con " "resaltado de sintaxis; pueden buscar dos puntos para decidir cuándo se debe " -"aumentar la sangría en lugar de tener que hacer un análisis más elaborado " +"aumentar la indentación en lugar de tener que hacer un análisis más elaborado " "del texto del programa." #: ../Doc/faq/design.rst:726 From 62383eed6a28ca421fc91ef06ace1d8eb8ed1342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Thu, 9 Jul 2020 16:56:04 +0200 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: narvmtz <51009725+narvmtz@users.noreply.github.com> --- dict | 3 +-- faq/design.po | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/dict b/dict index c8605bf198..102a5c96ef 100644 --- a/dict +++ b/dict @@ -35,7 +35,6 @@ Asincrónicamente asincrónicas auditoría Autocompletado -autoreferenciales autocomprobación Aqua auxiliar @@ -999,4 +998,4 @@ reentrantes rastrearlo readquirir Dijkstra -Edsger \ No newline at end of file +Edsger diff --git a/faq/design.po b/faq/design.po index 701a4d4689..e9b8dde1ce 100644 --- a/faq/design.po +++ b/faq/design.po @@ -416,7 +416,7 @@ msgid "" "on names bound to strings there is no logical reason to make them " "unavailable on literals." msgstr "" -"El primero corre a lo largo de las líneas de: \"Se ve realmente feo el uso de" +"El primero corre a lo largo de las líneas de: \"Se ve realmente feo el uso de " "un método de un literal de cadena (constante de cadena)\", a lo que la " "respuesta es que sí, pero un literal de cadena es solo un valor fijo. Si se " "permiten los métodos en nombres vinculados a cadenas, no hay razón lógica " @@ -429,9 +429,9 @@ msgid "" "For some reason there seems to be much less difficulty with having :meth:" "`~str.split` as a string method, since in that case it is easy to see that ::" msgstr "" -"La segunda objeción generalmente se presenta como: \"Realmente estoy " -"diciendo una secuencia para unir a sus miembros con una constante de cadena" -"\". Lamentablemente, no lo eres. Por alguna razón, parece ser mucho menos " +"La segunda objeción generalmente se presenta como: \"Realmente estoy diciéndole " +"a una secuencia que una a sus miembros junto con una constante de cadena" +"\". Lamentablemente, no lo estas haciendo. Por alguna razón, parece ser mucho menos " "difícil tener :meth:`~str.split` como método de cadena, ya que en ese caso " "es fácil ver que::" From 07ae537c467fbe9dfdd7f494596628346b192339 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Thu, 9 Jul 2020 22:39:23 +0200 Subject: [PATCH 4/4] powrap y palabra faltante faq/design --- dict | 1 + faq/design.po | 99 ++++++++++++++++++++++++++------------------------- 2 files changed, 51 insertions(+), 49 deletions(-) diff --git a/dict b/dict index 102a5c96ef..b9c0f73b35 100644 --- a/dict +++ b/dict @@ -224,6 +224,7 @@ asserts attr autenticación autodocumentada +autoreferenciados backspace backtick bash diff --git a/faq/design.po b/faq/design.po index e9b8dde1ce..63c16e1123 100644 --- a/faq/design.po +++ b/faq/design.po @@ -97,9 +97,9 @@ msgstr "" "obtener una buena visión general de un programa. Idealmente, una función " "debería caber en una pantalla (por ejemplo, 20-30 líneas). 20 líneas de " "Python pueden hacer mucho más trabajo que 20 líneas de C. Esto no se debe " -"únicamente a la falta de corchetes de inicio/fin -- la falta de declaraciones " -"y los tipos de datos de alto nivel también son responsables -- sino también la " -"indentación basada en la sintaxis ciertamente ayuda." +"únicamente a la falta de corchetes de inicio/fin -- la falta de " +"declaraciones y los tipos de datos de alto nivel también son responsables -- " +"sino también la indentación basada en la sintaxis ciertamente ayuda." #: ../Doc/faq/design.rst:46 msgid "Why am I getting strange results with simple arithmetic operations?" @@ -211,10 +211,10 @@ msgid "" "and in Python, no amount of activity will change the string \"eight\" to " "anything else." msgstr "" -"Otra ventaja es que las cadenas en Python se consideran tan \"elementales\" como los" -"números. Ninguna cantidad de actividad cambiará el valor 8 a otra cosa, y en " -"Python, ninguna cantidad de actividad cambiará la cadena \"ocho\" a otra " -"cosa." +"Otra ventaja es que las cadenas en Python se consideran tan \"elementales\" " +"como los números. Ninguna cantidad de actividad cambiará el valor 8 a otra " +"cosa, y en Python, ninguna cantidad de actividad cambiará la cadena \"ocho\" " +"a otra cosa." #: ../Doc/faq/design.rst:110 msgid "Why must 'self' be used explicitly in method definitions and calls?" @@ -249,9 +249,9 @@ msgstr "" "la falta de una declaración de variable local (suponiendo que los globales " "son raros o fácilmente reconocibles) -- pero en Python, no hay declaraciones " "de variables locales, por lo que debería buscar la definición de clase para " -"estar seguro. Algunos estándares de codificación de C++ y Java requieren " -"que los atributos de instancia tengan un prefijo ``m_``, porque el ser " -"explícito también es útil en esos lenguajes." +"estar seguro. Algunos estándares de codificación de C++ y Java requieren que " +"los atributos de instancia tengan un prefijo ``m_``, porque el ser explícito " +"también es útil en esos lenguajes." #: ../Doc/faq/design.rst:125 msgid "" @@ -291,21 +291,22 @@ msgid "" "instance variables live in two different namespaces, and you need to tell " "Python which namespace to use." msgstr "" -"Finalmente, para las variables de instancia se resuelve un problema sintáctico con " -"la asignación: dado que las variables locales en Python son (¡por " -"definición!) Aquellas variables a las que se asigna un valor en un cuerpo de " -"función (y que no se declaran explícitamente como globales), tiene que haber " -"una forma de decirle al intérprete que una asignación estaba destinada a " -"asignar a una variable de instancia en lugar de a una variable local, y que " -"preferiblemente debería ser sintáctica (por razones de eficiencia). C++ " -"hace esto a través de declaraciones, pero Python no tiene declaraciones y " -"sería una pena tener que presentarlas solo para este propósito. Usar el " -"``self.var`` explícito resuelve esto muy bien. Del mismo modo, para usar " -"variables de instancia, tener que escribir ``self.var`` significa que las " -"referencias a nombres no calificados dentro de un método no tienen que " -"buscar en los directorios de la instancia. Para decirlo de otra manera, las " -"variables locales y las variables de instancia viven en dos espacios de " -"nombres diferentes, y debe decirle a Python qué espacio de nombres usar." +"Finalmente, para las variables de instancia se resuelve un problema " +"sintáctico con la asignación: dado que las variables locales en Python son " +"(¡por definición!) Aquellas variables a las que se asigna un valor en un " +"cuerpo de función (y que no se declaran explícitamente como globales), tiene " +"que haber una forma de decirle al intérprete que una asignación estaba " +"destinada a asignar a una variable de instancia en lugar de a una variable " +"local, y que preferiblemente debería ser sintáctica (por razones de " +"eficiencia). C++ hace esto a través de declaraciones, pero Python no tiene " +"declaraciones y sería una pena tener que presentarlas solo para este " +"propósito. Usar el ``self.var`` explícito resuelve esto muy bien. Del mismo " +"modo, para usar variables de instancia, tener que escribir ``self.var`` " +"significa que las referencias a nombres no calificados dentro de un método " +"no tienen que buscar en los directorios de la instancia. Para decirlo de " +"otra manera, las variables locales y las variables de instancia viven en dos " +"espacios de nombres diferentes, y debe decirle a Python qué espacio de " +"nombres usar." #: ../Doc/faq/design.rst:152 msgid "Why can't I use an assignment in an expression?" @@ -382,8 +383,8 @@ msgstr "" #: ../Doc/faq/design.rst:191 msgid "Why is join() a string method instead of a list or tuple method?" msgstr "" -"¿Por qué join() es un método de cadena de caracteres en lugar de un método de lista o " -"tupla?" +"¿Por qué join() es un método de cadena de caracteres en lugar de un método " +"de lista o tupla?" #: ../Doc/faq/design.rst:193 msgid "" @@ -416,8 +417,8 @@ msgid "" "on names bound to strings there is no logical reason to make them " "unavailable on literals." msgstr "" -"El primero corre a lo largo de las líneas de: \"Se ve realmente feo el uso de " -"un método de un literal de cadena (constante de cadena)\", a lo que la " +"El primero corre a lo largo de las líneas de: \"Se ve realmente feo el uso " +"de un método de un literal de cadena (constante de cadena)\", a lo que la " "respuesta es que sí, pero un literal de cadena es solo un valor fijo. Si se " "permiten los métodos en nombres vinculados a cadenas, no hay razón lógica " "para que no estén disponibles en literales." @@ -429,11 +430,11 @@ msgid "" "For some reason there seems to be much less difficulty with having :meth:" "`~str.split` as a string method, since in that case it is easy to see that ::" msgstr "" -"La segunda objeción generalmente se presenta como: \"Realmente estoy diciéndole " -"a una secuencia que una a sus miembros junto con una constante de cadena" -"\". Lamentablemente, no lo estas haciendo. Por alguna razón, parece ser mucho menos " -"difícil tener :meth:`~str.split` como método de cadena, ya que en ese caso " -"es fácil ver que::" +"La segunda objeción generalmente se presenta como: \"Realmente estoy " +"diciéndole a una secuencia que una a sus miembros junto con una constante de " +"cadena\". Lamentablemente, no lo estas haciendo. Por alguna razón, parece " +"ser mucho menos difícil tener :meth:`~str.split` como método de cadena, ya " +"que en ese caso es fácil ver que::" #: ../Doc/faq/design.rst:220 msgid "" @@ -786,12 +787,12 @@ msgid "" "Functions which operate on this output would generally not break if you " "added another file or two to the directory." msgstr "" -"Las listas, por otro lado, son más como matrices en otros lenguajes. Tienden a " -"contener un número variable de objetos, todos los cuales tienen el mismo " +"Las listas, por otro lado, son más como matrices en otros lenguajes. Tienden " +"a contener un número variable de objetos, todos los cuales tienen el mismo " "tipo y que se operan uno por uno. Por ejemplo, ``os.listdir('.')`` Retorna " -"una lista de cadenas de caracteres que representan los archivos en el directorio actual. " -"Las funciones que operan en esta salida generalmente no se romperían si " -"agregara otro archivo o dos al directorio." +"una lista de cadenas de caracteres que representan los archivos en el " +"directorio actual. Las funciones que operan en esta salida generalmente no " +"se romperían si agregara otro archivo o dos al directorio." #: ../Doc/faq/design.rst:419 msgid "" @@ -1196,8 +1197,8 @@ msgstr "" #: ../Doc/faq/design.rst:623 msgid "Why can't raw strings (r-strings) end with a backslash?" msgstr "" -"¿Por qué las cadenas de caracteres sin formato (r-strings) no pueden terminar con una " -"barra diagonal inversa?" +"¿Por qué las cadenas de caracteres sin formato (r-strings) no pueden " +"terminar con una barra diagonal inversa?" #: ../Doc/faq/design.rst:625 msgid "" @@ -1221,10 +1222,10 @@ msgstr "" "Las cadenas de caracteres sin formato se diseñaron para facilitar la " "creación de entradas para procesadores (principalmente motores de expresión " "regular) que desean realizar su propio procesamiento de escape de barra " -"invertida. Tales procesadores consideran que una barra invertida sin par " -"es un error de todos modos, por lo que las cadenas de caracteres sin " -"procesar no lo permiten. A cambio, le permiten pasar el carácter de comillas " -"de cadena escapándolo con una barra invertida. Estas reglas funcionan bien " +"invertida. Tales procesadores consideran que una barra invertida sin par es " +"un error de todos modos, por lo que las cadenas de caracteres sin procesar " +"no lo permiten. A cambio, le permiten pasar el carácter de comillas de " +"cadena escapándolo con una barra invertida. Estas reglas funcionan bien " "cuando las cadenas de caracteres r (*r-strings*) se usan para el propósito " "previsto." @@ -1256,8 +1257,8 @@ msgid "" "construct that looks like this::" msgstr "" "Python tiene una declaración 'with' que envuelve la ejecución de un bloque, " -"llamando al código en la entrada y salida del bloque. Algunos lenguajes tienen " -"una construcción que se ve así:" +"llamando al código en la entrada y salida del bloque. Algunos lenguajes " +"tienen una construcción que se ve así:" #: ../Doc/faq/design.rst:659 msgid "In Python, such a construct would be ambiguous." @@ -1369,8 +1370,8 @@ msgid "" msgstr "" "Otra razón menor es que los dos puntos facilitan a los editores con " "resaltado de sintaxis; pueden buscar dos puntos para decidir cuándo se debe " -"aumentar la indentación en lugar de tener que hacer un análisis más elaborado " -"del texto del programa." +"aumentar la indentación en lugar de tener que hacer un análisis más " +"elaborado del texto del programa." #: ../Doc/faq/design.rst:726 msgid "Why does Python allow commas at the end of lists and tuples?"