diff --git a/tutorial/classes.po b/tutorial/classes.po index 486ac587ac..2203f0b172 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 19:43+0200\n" -"PO-Revision-Date: 2021-08-02 19:52+0200\n" -"Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" +"PO-Revision-Date: 2023-10-16 19:31-0300\n" +"Last-Translator: Carlos A. Crespo \n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.13.0\n" +"X-Generator: Poedit 3.0.1\n" #: ../Doc/tutorial/classes.rst:5 msgid "Classes" @@ -205,7 +206,6 @@ msgstr "" "definidos en el módulo: ¡están compartiendo el mismo espacio de nombres! [#]_" #: ../Doc/tutorial/classes.rst:90 -#, fuzzy msgid "" "Attributes may be read-only or writable. In the latter case, assignment to " "attributes is possible. Module attributes are writable: you can write " @@ -214,12 +214,12 @@ msgid "" "remove the attribute :attr:`!the_answer` from the object named by " "``modname``." msgstr "" -"Los atributos pueden ser de sólo lectura, o de escritura. En el último caso " -"es posible la asignación a atributos. Los atributos de módulo pueden " -"escribirse: ``modulo.la_respuesta = 42``. Los atributos de escritura se " -"pueden borrar también con la declaración :keyword:`del`. Por ejemplo, ``del " -"modulo.la_respuesta`` va a eliminar el atributo :attr:`la_respuesta` del " -"objeto con nombre ``modulo``." +"Los atributos pueden ser de solo lectura, o de escritura. En el segundo " +"caso, es posible asignar valores a los atributos. Los atributos de módulo " +"son modificables: puedes escribir ``modname.the_answer = 42``. Los atributos " +"modificables también se pueden eliminar con la declaración :keyword:`del`. " +"Por ejemplo, ``del modname.the_answer`` eliminará el atributo :attr:`!" +"the_answer` del objeto nombrado por ``modname``." #: ../Doc/tutorial/classes.rst:96 msgid "" @@ -286,14 +286,13 @@ msgstr "" "locales" #: ../Doc/tutorial/classes.rst:121 -#, fuzzy msgid "" "the scopes of any enclosing functions, which are searched starting with the " "nearest enclosing scope, contain non-local, but also non-global names" msgstr "" -"los alcances de las funciones que encierran a la función actual, que son " -"inspeccionados a partir del alcance más cercano, contienen nombres no " -"locales, pero también no globales" +"los alcances de cualquier función que encierra a otra, son inspeccionados a " +"partir del alcance más cercano, contienen nombres no locales, pero también " +"no globales" #: ../Doc/tutorial/classes.rst:123 msgid "the next-to-last scope contains the current module's global names" @@ -308,7 +307,6 @@ msgstr "" "que contiene los nombres integrados" #: ../Doc/tutorial/classes.rst:126 -#, fuzzy msgid "" "If a name is declared global, then all references and assignments go " "directly to the next-to-last scope containing the module's global names. To " @@ -318,13 +316,14 @@ msgid "" "*new* local variable in the innermost scope, leaving the identically named " "outer variable unchanged)." msgstr "" -"Si un nombre se declara como global, entonces todas las referencias y " -"asignaciones al mismo van directo al ámbito intermedio que contiene los " -"nombres globales del módulo. Para reasignar nombres encontrados afuera del " -"ámbito más interno, se puede usar la declaración :keyword:`nonlocal`; si no " -"se declara nonlocal, esas variables serán de sólo lectura (un intento de " -"escribir a esas variables simplemente crea una *nueva* variable local en el " -"ámbito interno, dejando intacta la variable externa del mismo nombre)." +"Si un nombre se declara global, entonces todas las referencias y " +"asignaciones se realizan directamente en el ámbito penúltimo que contiene " +"los nombres globales del módulo. Para volver a enlazar variables encontradas " +"fuera del ámbito más interno, se puede utilizar la declaración :keyword:" +"`nonlocal`; si no se declara nonlocal, esas variables serán de sólo lectura " +"(un intento de escribir en una variable de este tipo simplemente creará una " +"*nueva* variable local en el ámbito más interno, dejando sin cambios la " +"variable con el mismo nombre en el ámbito externo)." #: ../Doc/tutorial/classes.rst:133 msgid "" @@ -489,7 +488,6 @@ msgstr "" "nuevas allí." #: ../Doc/tutorial/classes.rst:247 -#, fuzzy msgid "" "When a class definition is left normally (via the end), a *class object* is " "created. This is basically a wrapper around the contents of the namespace " @@ -499,13 +497,14 @@ msgid "" "here to the class name given in the class definition header (:class:`!" "ClassName` in the example)." msgstr "" -"Cuando una definición de clase se finaliza normalmente se crea un *objeto " -"clase*. Básicamente, este objeto envuelve los contenidos del espacio de " -"nombres creado por la definición de la clase; aprenderemos más acerca de los " -"objetos clase en la sección siguiente. El ámbito local original (el que " -"tenía efecto justo antes de que ingrese la definición de la clase) es " -"restablecido, y el objeto clase se asocia allí al nombre que se le puso a la " -"clase en el encabezado de su definición (:class:`ClassName` en el ejemplo)." +"Cuando una definición de clase se finaliza normalmente (al llegar al final) " +"se crea un *objeto clase*. Básicamente, este objeto envuelve los contenidos " +"del espacio de nombres creado por la definición de la clase; aprenderemos " +"más acerca de los objetos clase en la sección siguiente. El ámbito local " +"original (el que tenía efecto justo antes de que ingrese la definición de la " +"clase) es restablecido, y el objeto clase se asocia allí al nombre que se le " +"puso a la clase en el encabezado de su definición (:class:`!ClassName` en el " +"ejemplo)." #: ../Doc/tutorial/classes.rst:259 msgid "Class Objects" @@ -533,7 +532,6 @@ msgstr "" "es así::" #: ../Doc/tutorial/classes.rst:276 -#, fuzzy msgid "" "then ``MyClass.i`` and ``MyClass.f`` are valid attribute references, " "returning an integer and a function object, respectively. Class attributes " @@ -542,9 +540,9 @@ msgid "" "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" "entonces ``MyClass.i`` y ``MyClass.f`` son referencias de atributos válidas, " -"que retornan un entero y un objeto función respectivamente. Los atributos " -"de clase también pueden ser asignados, o sea que podés cambiar el valor de " -"``MyClass.i`` mediante asignación. :attr:`__doc__` también es un atributo " +"que retornan un entero y un objeto función respectivamente. Los atributos de " +"clase también pueden ser asignados, o sea que podés cambiar el valor de " +"``MyClass.i`` mediante asignación. :attr:`!__doc__` también es un atributo " "válido, que retorna la documentación asociada a la clase: ``\"A simple " "example class\"``." @@ -567,7 +565,6 @@ msgstr "" "local ``x``." #: ../Doc/tutorial/classes.rst:291 -#, fuzzy msgid "" "The instantiation operation (\"calling\" a class object) creates an empty " "object. Many classes like to create objects with instances customized to a " @@ -575,33 +572,31 @@ msgid "" "meth:`~object.__init__`, like this::" msgstr "" "La operación de instanciación (\"llamar\" a un objeto clase) crea un objeto " -"vacío. Muchas clases necesitan crear objetos con instancias en un estado " -"inicial particular. Por lo tanto una clase puede definir un método especial " -"llamado :meth:`__init__`, de esta forma::" +"vacío. Muchas clases necesitan crear objetos con instancias en un estado " +"inicial particular. Por lo tanto una clase puede definir un método especial " +"llamado :meth:`~object.__init__`, de esta forma::" #: ../Doc/tutorial/classes.rst:299 -#, fuzzy msgid "" "When a class defines an :meth:`~object.__init__` method, class instantiation " "automatically invokes :meth:`!__init__` for the newly created class " "instance. So in this example, a new, initialized instance can be obtained " "by::" msgstr "" -"Cuando una clase define un método :meth:`__init__`, la instanciación de la " -"clase automáticamente invoca a :meth:`__init__` para la instancia recién " -"creada. Entonces, en este ejemplo, una instancia nueva e inicializada se " -"puede obtener haciendo::" +"Cuando una clase define un método :meth:`~object.__init__`, la instanciación " +"de la clase automáticamente invoca a :meth:`!__init__` para la instancia " +"recién creada. Entonces, en este ejemplo, una instancia nueva e inicializada " +"se puede obtener haciendo::" #: ../Doc/tutorial/classes.rst:305 -#, fuzzy msgid "" "Of course, the :meth:`~object.__init__` method may have arguments for " "greater flexibility. In that case, arguments given to the class " "instantiation operator are passed on to :meth:`!__init__`. For example, ::" msgstr "" -"Por supuesto, el método :meth:`__init__` puede tener argumentos para mayor " -"flexibilidad. En ese caso, los argumentos que se pasen al operador de " -"instanciación de la clase van a parar al método :meth:`__init__`. Por " +"Por supuesto, el método :meth:`~object.__init__` puede tener argumentos para " +"mayor flexibilidad. En ese caso, los argumentos que se pasen al operador de " +"instanciación de la clase van a parar al método :meth:`!__init__`. Por " "ejemplo, ::" #: ../Doc/tutorial/classes.rst:322 @@ -619,7 +614,6 @@ msgstr "" "dos tipos de nombres de atributos válidos, atributos de datos y métodos." #: ../Doc/tutorial/classes.rst:328 -#, fuzzy msgid "" "*data attributes* correspond to \"instance variables\" in Smalltalk, and to " "\"data members\" in C++. Data attributes need not be declared; like local " @@ -629,11 +623,11 @@ msgid "" "trace::" msgstr "" "Los *atributos de datos* se corresponden con las \"variables de instancia\" " -"en Smalltalk, y con las \"variables miembro\" en C++. Los atributos de " -"datos no necesitan ser declarados; tal como las variables locales son " -"creados la primera vez que se les asigna algo. Por ejemplo, si ``x`` es la " -"instancia de :class:`MyClass` creada más arriba, el siguiente pedazo de " -"código va a imprimir el valor ``16``, sin dejar ningún rastro::" +"en Smalltalk, y con las \"variables miembro\" en C++. Los atributos de datos " +"no necesitan ser declarados; tal como las variables locales son creados la " +"primera vez que se les asigna algo. Por ejemplo, si ``x`` es la instancia " +"de :class:`!MyClass` creada más arriba, el siguiente pedazo de código va a " +"imprimir el valor ``16``, sin dejar ningún rastro::" #: ../Doc/tutorial/classes.rst:340 msgid "" @@ -680,23 +674,21 @@ msgid "Usually, a method is called right after it is bound::" msgstr "Generalmente, un método es llamado luego de ser vinculado::" #: ../Doc/tutorial/classes.rst:366 -#, fuzzy msgid "" "In the :class:`!MyClass` example, this will return the string ``'hello " "world'``. However, it is not necessary to call a method right away: ``x.f`` " "is a method object, and can be stored away and called at a later time. For " "example::" msgstr "" -"En el ejemplo :class:`MyClass`, esto retorna la cadena ``'hello world'``. " +"En el ejemplo :class:`!MyClass`, esto retorna la cadena ``'hello world'``. " "Pero no es necesario llamar al método justo en ese momento: ``x.f`` es un " -"objeto método, y puede ser guardado y llamado más tarde. Por ejemplo::" +"objeto método, y puede ser guardado y llamado más tarde. Por ejemplo::" #: ../Doc/tutorial/classes.rst:374 msgid "will continue to print ``hello world`` until the end of time." msgstr "continuará imprimiendo ``hello world`` hasta el fin de los días." #: ../Doc/tutorial/classes.rst:376 -#, fuzzy msgid "" "What exactly happens when a method is called? You may have noticed that ``x." "f()`` was called without an argument above, even though the function " @@ -705,11 +697,11 @@ msgid "" "argument is called without any --- even if the argument isn't actually " "used..." msgstr "" -"¿Qué sucede exactamente cuando un método es llamado? Debés haber notado que " +"¿Qué sucede exactamente cuando un método es llamado? Debés haber notado que " "``x.f()`` fue llamado más arriba sin ningún argumento, a pesar de que la " -"definición de función de :meth:`f` especificaba un argumento. ¿Qué pasó con " -"ese argumento? Seguramente Python lanza una excepción cuando una función " -"que requiere un argumento es llamada sin ninguno, aún si el argumento no es " +"definición de función de :meth:`!f` especificaba un argumento. ¿Qué pasó con " +"ese argumento? Seguramente Python lanza una excepción cuando una función que " +"requiere un argumento es llamada sin ninguno, aún si el argumento no es " "utilizado..." #: ../Doc/tutorial/classes.rst:382 @@ -872,18 +864,17 @@ msgstr "" "función a una variable local en la clase también está bien. Por ejemplo::" #: ../Doc/tutorial/classes.rst:535 -#, fuzzy msgid "" "Now ``f``, ``g`` and ``h`` are all attributes of class :class:`!C` that " "refer to function objects, and consequently they are all methods of " "instances of :class:`!C` --- ``h`` being exactly equivalent to ``g``. Note " "that this practice usually only serves to confuse the reader of a program." msgstr "" -"Ahora ``f``, ``g`` y ``h`` son todos atributos de la clase :class:`C` que " +"Ahora ``f``, ``g`` y ``h`` son todos atributos de la clase :class:`!C` que " "hacen referencia a objetos función, y consecuentemente son todos métodos de " -"las instancias de :class:`C`; ``h`` siendo exactamente equivalente a ``g``. " -"Fijate que esta práctica normalmente sólo sirve para confundir al que lea un " -"programa." +"las instancias de :class:`!C` --- ``h`` siendo exactamente equivalente a " +"``g``. Fijate que esta práctica normalmente sólo sirve para confundir al que " +"lea un programa." #: ../Doc/tutorial/classes.rst:540 msgid "" @@ -939,16 +930,15 @@ msgstr "" "clase derivada se ve así::" #: ../Doc/tutorial/classes.rst:584 -#, fuzzy msgid "" "The name :class:`!BaseClassName` must be defined in a namespace accessible " "from the scope containing the derived class definition. In place of a base " "class name, other arbitrary expressions are also allowed. This can be " "useful, for example, when the base class is defined in another module::" msgstr "" -"El nombre :class:`BaseClassName` debe estar definido en un ámbito que " -"contenga a la definición de la clase derivada. En el lugar del nombre de la " -"clase base se permiten otras expresiones arbitrarias. Esto puede ser útil, " +"El nombre :class:`!BaseClassName` debe estar definido en un ámbito que " +"contenga a la definición de la clase derivada. En el lugar del nombre de la " +"clase base se permiten otras expresiones arbitrarias. Esto puede ser útil, " "por ejemplo, cuando la clase base está definida en otro módulo::" #: ../Doc/tutorial/classes.rst:592 @@ -1053,7 +1043,6 @@ msgstr "" "clase con múltiples clases base se ve así::" #: ../Doc/tutorial/classes.rst:645 -#, fuzzy msgid "" "For most purposes, in the simplest cases, you can think of the search for " "attributes inherited from a parent class as depth-first, left-to-right, not " @@ -1064,12 +1053,12 @@ msgid "" "for in :class:`!Base2`, and so on." msgstr "" "Para la mayoría de los propósitos, en los casos más simples, podés pensar en " -"la búsqueda de los atributos heredados de clases padres como primero en " -"profundidad, de izquierda a derecha, sin repetir la misma clase cuando está " -"dos veces en la jerarquía. Por lo tanto, si un atributo no se encuentra en :" -"class:`DerivedClassName`, se busca en :class:`Base1`, luego (recursivamente) " -"en las clases base de :class:`Base1`, y sólo si no se encuentra allí se lo " -"busca en :class:`Base2`, y así sucesivamente." +"la búsqueda de los atributos heredados de una clase padre como una búsqueda " +"en profundidad, de izquierda a derecha, sin repetir la misma clase cuando " +"está dos veces en la jerarquía. Por lo tanto, si un atributo no se encuentra " +"en :class:`!DerivedClassName`, se busca en :class:`!Base1`, luego " +"(recursivamente) en las clases base de :class:`!Base1`, y solo si no se " +"encuentra allí se lo busca en :class:`!Base2`, y así sucesivamente." #: ../Doc/tutorial/classes.rst:652 msgid "" @@ -1208,10 +1197,9 @@ msgstr "" #: ../Doc/tutorial/classes.rst:738 msgid "Odds and Ends" -msgstr "Cambalache" +msgstr "Detalles y Cuestiones Varias" #: ../Doc/tutorial/classes.rst:740 -#, fuzzy msgid "" "Sometimes it is useful to have a data type similar to the Pascal \"record\" " "or C \"struct\", bundling together a few named data items. The idiomatic " @@ -1219,10 +1207,10 @@ msgid "" msgstr "" "A veces es útil tener un tipo de datos similar al \"registro\" de Pascal o " "la \"estructura\" de C, que sirva para juntar algunos pocos ítems con " -"nombre. Una definición de clase vacía funcionará perfecto::" +"nombre. El enfoque idiomático es utilizar :mod:`dataclasses` con este " +"propósito::" #: ../Doc/tutorial/classes.rst:760 -#, fuzzy msgid "" "A piece of Python code that expects a particular abstract data type can " "often be passed a class that emulates the methods of that data type " @@ -1231,22 +1219,22 @@ msgid "" "and :meth:`~io.TextIOBase.readline` that get the data from a string buffer " "instead, and pass it as an argument." msgstr "" -"Algún código Python que espera un tipo abstracto de datos en particular " -"puede frecuentemente recibir en cambio una clase que emula los métodos de " -"aquel tipo de datos. Por ejemplo, si tenés una función que formatea algunos " -"datos a partir de un objeto archivo, podés definir una clase con métodos :" -"meth:`read` y :meth:`!readline` que obtengan los datos de alguna cadena en " -"memoria intermedia, y pasarlo como argumento." +"Un fragmento de código en Python que espera un tipo de dato abstracto en " +"particular a menudo puede recibir una clase que emule los métodos de ese " +"tipo de dato en su lugar. Por ejemplo, si tienes una función que formatea " +"algunos datos de un objeto de archivo, puedes definir una clase con los " +"métodos :meth:`~io.TextIOBase.read` y :meth:`~io.TextIOBase.readline` que " +"obtienen los datos de un búfer de cadena en su lugar, y pasarla como " +"argumento." #: ../Doc/tutorial/classes.rst:772 -#, fuzzy msgid "" "Instance method objects have attributes, too: ``m.__self__`` is the instance " "object with the method :meth:`!m`, and ``m.__func__`` is the function object " "corresponding to the method." msgstr "" "Los objetos método de instancia tienen atributos también: ``m.__self__`` es " -"el objeto instancia con el método :meth:`m`, y ``m.__func__`` es el objeto " +"el objeto instancia con el método :meth:`!m`, y ``m.__func__`` es el objeto " "función correspondiente al método." #: ../Doc/tutorial/classes.rst:780 @@ -1284,7 +1272,6 @@ msgstr "" "este ejemplo muestra como funciona todo esto::" #: ../Doc/tutorial/classes.rst:821 -#, fuzzy msgid "" "Having seen the mechanics behind the iterator protocol, it is easy to add " "iterator behavior to your classes. Define an :meth:`~container.__iter__` " @@ -1293,9 +1280,10 @@ msgid "" "``self``::" msgstr "" "Habiendo visto la mecánica del protocolo de iteración, es fácil agregar " -"comportamiento de iterador a tus clases. Definí un método :meth:`__iter__` " -"que retorne un objeto con un método :meth:`__next__`. Si la clase define :" -"meth:`__next__`, entonces alcanza con que :meth:`__iter__` retorne ``self``::" +"comportamiento de iterador a tus clases. Definí un método :meth:`~container." +"__iter__` que retorne un objeto con un método :meth:`~iterator.__next__`. Si " +"la clase define :meth:`!__next__`, entonces alcanza con que :meth:`!" +"__iter__` retorne ``self``::" #: ../Doc/tutorial/classes.rst:858 msgid "Generators" @@ -1318,7 +1306,6 @@ msgstr "" "ejemplo muestra que los generadores pueden ser trivialmente fáciles de crear:" #: ../Doc/tutorial/classes.rst:881 -#, fuzzy msgid "" "Anything that can be done with generators can also be done with class-based " "iterators as described in the previous section. What makes generators so " @@ -1326,9 +1313,10 @@ msgid "" "__next__` methods are created automatically." msgstr "" "Todo lo que puede ser hecho con generadores también puede ser hecho con " -"iteradores basados en clases, como se describe en la sección anterior. Lo " +"iteradores basados en clases, como se describe en la sección anterior. Lo " "que hace que los generadores sean tan compactos es que los métodos :meth:" -"`__iter__` y :meth:`__next__` son creados automáticamente." +"`~iterator.__iter__` y :meth:`~generator.__next__` son creados " +"automáticamente." #: ../Doc/tutorial/classes.rst:886 msgid "" @@ -1400,19 +1388,17 @@ msgstr "" "ser restringido a cosas como depuradores post-mortem." #: ../Doc/tutorial/classes.rst:347 -#, fuzzy msgid "object" -msgstr "Objetos clase" +msgstr "objeto" #: ../Doc/tutorial/classes.rst:347 -#, fuzzy msgid "method" -msgstr "Objetos método" +msgstr "método" #: ../Doc/tutorial/classes.rst:684 msgid "name" -msgstr "" +msgstr "nombre" #: ../Doc/tutorial/classes.rst:684 msgid "mangling" -msgstr "" +msgstr "alteración"