From fa1c7db53940001d2b80c0389336b78262153596 Mon Sep 17 00:00:00 2001
From: Cristian Maureira-Fredes <Cristian.Maureira-Fredes@qt.io>
Date: Sun, 17 May 2020 22:07:18 +0200
Subject: [PATCH] Traducido c-api/type

---
 c-api/type.po | 129 ++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 103 insertions(+), 26 deletions(-)

diff --git a/c-api/type.po b/c-api/type.po
index f9712f26d6..804631aaf4 100644
--- a/c-api/type.po
+++ b/c-api/type.po
@@ -6,49 +6,62 @@
 # 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 <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2020-05-17 22:05+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.8.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
+"Language: es\n"
+"X-Generator: Poedit 2.3\n"
 
 #: ../Doc/c-api/type.rst:6
 msgid "Type Objects"
-msgstr ""
+msgstr "Objetos Tipos"
 
 #: ../Doc/c-api/type.rst:13
 msgid "The C structure of the objects used to describe built-in types."
 msgstr ""
+"La estructura C de los objetos utilizados para describir los tipos "
+"incorporados."
 
 #: ../Doc/c-api/type.rst:18
 msgid ""
 "This is the type object for type objects; it is the same object as :class:"
 "`type` in the Python layer."
 msgstr ""
+"Este es el objeto tipo para objetos tipo; es el mismo objeto que :class:"
+"`type` en la capa Python."
 
 #: ../Doc/c-api/type.rst:24
 msgid ""
 "Return true if the object *o* is a type object, including instances of types "
 "derived from the standard type object.  Return false in all other cases."
 msgstr ""
+"Retorna verdadero si el objeto *o* es un objeto tipo, incluidas las "
+"instancias de tipos derivados del objeto tipo estándar. Retorna falso en "
+"todos los demás casos."
 
 #: ../Doc/c-api/type.rst:30
 msgid ""
 "Return true if the object *o* is a type object, but not a subtype of the "
 "standard type object.  Return false in all other cases."
 msgstr ""
+"Retorna verdadero si el objeto *o* es un objeto tipo, pero no un subtipo del "
+"objeto tipo estándar. Retorna falso en todos los demás casos."
 
 #: ../Doc/c-api/type.rst:36
 msgid "Clear the internal lookup cache. Return the current version tag."
 msgstr ""
+"Borra la caché de búsqueda interna. Retorna la etiqueta (*tag*) de la "
+"versión actual."
 
 #: ../Doc/c-api/type.rst:40
 msgid ""
@@ -57,10 +70,15 @@ msgid ""
 "flag bits are guaranteed to be stable across Python releases, but access to :"
 "c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API."
 msgstr ""
+"Retorna el miembro :c:member:`~PyTypeObject.tp_flags` de *type*. Esta "
+"función está destinada principalmente para su uso con `Py_LIMITED_API`; se "
+"garantiza que los bits de bandera (*flag*) individuales serán estables en "
+"las versiones de Python, pero el acceso a :c:member:`~PyTypeObject.tp_flags` "
+"en sí mismo no forma parte de la API limitada."
 
 #: ../Doc/c-api/type.rst:47
 msgid "The return type is now ``unsigned long`` rather than ``long``."
-msgstr ""
+msgstr "El tipo de retorno es ahora ``unsigned long`` en vez de ``long``."
 
 #: ../Doc/c-api/type.rst:53
 msgid ""
@@ -68,22 +86,30 @@ msgid ""
 "This function must be called after any manual modification of the attributes "
 "or base classes of the type."
 msgstr ""
+"Invalida la memoria caché de búsqueda interna para el tipo y todos sus "
+"subtipos. Esta función debe llamarse después de cualquier modificación "
+"manual de los atributos o clases base del tipo."
 
 #: ../Doc/c-api/type.rst:60
 msgid ""
 "Return true if the type object *o* sets the feature *feature*.  Type "
 "features are denoted by single bit flags."
 msgstr ""
+"Retorna verdadero si el tipo objeto *o* establece la característica "
+"*feature*. Las características de tipo se denotan con banderas de un solo "
+"bit."
 
 #: ../Doc/c-api/type.rst:66
 msgid ""
 "Return true if the type object includes support for the cycle detector; this "
 "tests the type flag :const:`Py_TPFLAGS_HAVE_GC`."
 msgstr ""
+"Retorna verdadero si el objeto tipo incluye soporte para el detector de "
+"ciclo; Esto prueba el indicador de tipo :const:`Py_TPFLAGS_HAVE_GC`."
 
 #: ../Doc/c-api/type.rst:72
 msgid "Return true if *a* is a subtype of *b*."
-msgstr ""
+msgstr "Retorna verdadero si *a* es un subtipo de *b*."
 
 #: ../Doc/c-api/type.rst:74
 msgid ""
@@ -91,6 +117,9 @@ msgid ""
 "`~class.__subclasscheck__` is not called on *b*.  Call :c:func:"
 "`PyObject_IsSubclass` to do the same check that :func:`issubclass` would do."
 msgstr ""
+"Esta función solo busca subtipos reales, lo que significa que :meth:`~class."
+"__subclasscheck__` no se llama en *b*. Llama :c:func:`PyObject_IsSubclass` "
+"para hacer el mismo chequeo que :func:`issubclass` haría."
 
 #: ../Doc/c-api/type.rst:82
 msgid ""
@@ -98,6 +127,10 @@ msgid ""
 "object.  Use Python's default memory allocation mechanism to allocate a new "
 "instance and initialize all its contents to ``NULL``."
 msgstr ""
+"Controlador genérico para la ranura :c:member:`~PyTypeObject.tp_alloc` de un "
+"objeto tipo. Usa el mecanismo de asignación de memoria predeterminado de "
+"Python para asignar una nueva instancia e inicializar todo su contenido a "
+"``NULL``."
 
 #: ../Doc/c-api/type.rst:88
 msgid ""
@@ -105,6 +138,9 @@ msgid ""
 "object.  Create a new instance using the type's :c:member:`~PyTypeObject."
 "tp_alloc` slot."
 msgstr ""
+"Controlador genérico para la ranura :c:member:`~PyTypeObject.tp_new` de un "
+"objeto tipo. Crea una nueva instancia utilizando la ranura del tipo :c:"
+"member:`~PyTypeObject.tp_alloc`."
 
 #: ../Doc/c-api/type.rst:93
 msgid ""
@@ -113,6 +149,10 @@ msgid ""
 "slots from a type's base class.  Return ``0`` on success, or return ``-1`` "
 "and sets an exception on error."
 msgstr ""
+"Finalizar un objeto tipo. Se debe llamar a todos los objetos tipo para "
+"finalizar su inicialización. Esta función es responsable de agregar ranuras "
+"heredadas de la clase base de un tipo. Retorna ``0`` en caso de éxito o "
+"retorna ``-1`` y establece una excepción en caso de error."
 
 #: ../Doc/c-api/type.rst:100
 msgid ""
@@ -121,91 +161,116 @@ msgid ""
 "function was called with invalid parameters. Callers will typically cast the "
 "result pointer into the appropriate function type."
 msgstr ""
+"Retorna el puntero de función almacenado en la ranura dada. Si el resultado "
+"es ``NULL``, esto indica que la ranura es ``NULL`` o que la función se llamó "
+"con parámetros no válidos. Las personas que llaman suelen convertir el "
+"puntero de resultado en el tipo de función apropiado."
 
 #: ../Doc/c-api/type.rst:106
 msgid ""
 "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument."
 msgstr ""
+"Consulte :c:member:`PyType_Slot.slot` para conocer los posibles valores del "
+"argumento *slot*."
 
 #: ../Doc/c-api/type.rst:108
 msgid "An exception is raised if *type* is not a heap type."
-msgstr ""
+msgstr "Se lanza una excepción si *type* no es un tipo montículo (*heap*)."
 
 #: ../Doc/c-api/type.rst:114
 msgid "Creating Heap-Allocated Types"
-msgstr ""
+msgstr "Crear tipos asignados en montículo (*heap*)"
 
 #: ../Doc/c-api/type.rst:116
 msgid ""
 "The following functions and structs are used to create :ref:`heap types "
 "<heap-types>`."
 msgstr ""
+"Las siguientes funciones y estructuras se utilizan para crear :ref:`heap "
+"types <heap-types>`."
 
 #: ../Doc/c-api/type.rst:121
 msgid ""
 "Creates and returns a heap type object from the *spec* (:const:"
 "`Py_TPFLAGS_HEAPTYPE`)."
 msgstr ""
+"Crea y retorna un objeto montículo (*heap*) a partir de *spec* (:const:"
+"`Py_TPFLAGS_HEAPTYPE`)."
 
 #: ../Doc/c-api/type.rst:124
 msgid ""
 "If *bases* is a tuple, the created heap type contains all types contained in "
 "it as base types."
 msgstr ""
+"Si *bases* es una tupla, el tipo montículo (*heap*) creado contiene todos "
+"los tipos contenidos en él como tipos básicos."
 
 #: ../Doc/c-api/type.rst:127
 msgid ""
 "If *bases* is ``NULL``, the *Py_tp_base* slot is used instead. If that also "
 "is ``NULL``, the new type derives from :class:`object`."
 msgstr ""
+"Si *bases* es ``NULL``, en su lugar se usa la ranura *Py_tp_base*. Si eso "
+"también es ``NULL``, el nuevo tipo deriva de :class:`object`."
 
 #: ../Doc/c-api/type.rst:130
 msgid "This function calls :c:func:`PyType_Ready` on the new type."
-msgstr ""
+msgstr "Esta función llama :c:func:`PyType_Ready` en el tipo nuevo."
 
 #: ../Doc/c-api/type.rst:136
 msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``."
-msgstr ""
+msgstr "Equivalente a ``PyType_FromSpecWithBases(spec, NULL)``."
 
 #: ../Doc/c-api/type.rst:140
 msgid "Structure defining a type's behavior."
-msgstr ""
+msgstr "Estructura que define el comportamiento de un tipo."
 
 #: ../Doc/c-api/type.rst:144
 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`."
 msgstr ""
+"Nombre del tipo, utilizado para establecer :c:member:`PyTypeObject.tp_name`."
 
 #: ../Doc/c-api/type.rst:149
 msgid ""
 "Size of the instance in bytes, used to set :c:member:`PyTypeObject."
 "tp_basicsize` and :c:member:`PyTypeObject.tp_itemsize`."
 msgstr ""
+"Tamaño de la instancia en bytes, utilizado para establecer :c:member:"
+"`PyTypeObject.tp_basicsize` y :c:member:`PyTypeObject.tp_itemsize`."
 
 #: ../Doc/c-api/type.rst:155
 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`."
 msgstr ""
+"Banderas (*flags*) del tipo, que se usan para establecer :c:member:"
+"`PyTypeObject.tp_flags`."
 
 #: ../Doc/c-api/type.rst:157
 msgid ""
 "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:"
 "`PyType_FromSpecWithBases` sets it automatically."
 msgstr ""
+"Si el indicador ``Py_TPFLAGS_HEAPTYPE`` no está establecido, :c:func:"
+"`PyType_FromSpecWithBases` lo establece automáticamente."
 
 #: ../Doc/c-api/type.rst:162
 msgid ""
 "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot "
 "value ``{0, NULL}``."
 msgstr ""
+"Arreglo de estructuras :c:type:`PyType_Slot`. Terminado por el valor de "
+"ranura especial ``{0, NULL}``."
 
 #: ../Doc/c-api/type.rst:167
 msgid ""
 "Structure defining optional functionality of a type, containing a slot ID "
 "and a value pointer."
 msgstr ""
+"Estructura que define la funcionalidad opcional de un tipo, que contiene una "
+"ranura ID y un puntero de valor."
 
 #: ../Doc/c-api/type.rst:172
 msgid "A slot ID."
-msgstr ""
+msgstr "Una ranura ID."
 
 #: ../Doc/c-api/type.rst:174
 msgid ""
@@ -214,64 +279,71 @@ msgid ""
 "type:`PyMappingMethods` and :c:type:`PyAsyncMethods` with an added ``Py_`` "
 "prefix. For example, use:"
 msgstr ""
+"Las ranuras IDs se nombran como los nombres de campo de las estructuras :c:"
+"type:`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:"
+"`PySequenceMethods`, :c:type:`PyMappingMethods` y :c:type:`PyAsyncMethods` "
+"con un prefijo ``Py_`` agregado. Por ejemplo, use:"
 
 #: ../Doc/c-api/type.rst:180
 msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`"
-msgstr ""
+msgstr "``Py_tp_dealloc`` para establecer :c:member:`PyTypeObject.tp_dealloc`"
 
 #: ../Doc/c-api/type.rst:181
 msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`"
-msgstr ""
+msgstr "``Py_nb_add`` para establecer :c:member:`PyNumberMethods.nb_add`"
 
 #: ../Doc/c-api/type.rst:182
 msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`"
 msgstr ""
+"``Py_sq_length`` para establecer :c:member:`PySequenceMethods.sq_length`"
 
 #: ../Doc/c-api/type.rst:184
 msgid ""
 "The following fields cannot be set using :c:type:`PyType_Spec` and :c:type:"
 "`PyType_Slot`:"
 msgstr ""
+"Los siguientes campos no se pueden establecer usando :c:type:`PyType_Spec` "
+"y :c:type:`PyType_Slot`:"
 
 #: ../Doc/c-api/type.rst:186
 msgid ":c:member:`~PyTypeObject.tp_dict`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_dict`"
 
 #: ../Doc/c-api/type.rst:187
 msgid ":c:member:`~PyTypeObject.tp_mro`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_mro`"
 
 #: ../Doc/c-api/type.rst:188
 msgid ":c:member:`~PyTypeObject.tp_cache`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_cache`"
 
 #: ../Doc/c-api/type.rst:189
 msgid ":c:member:`~PyTypeObject.tp_subclasses`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_subclasses`"
 
 #: ../Doc/c-api/type.rst:190
 msgid ":c:member:`~PyTypeObject.tp_weaklist`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_weaklist`"
 
 #: ../Doc/c-api/type.rst:191
 msgid ":c:member:`~PyTypeObject.tp_print`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_print`"
 
 #: ../Doc/c-api/type.rst:192
 msgid ":c:member:`~PyTypeObject.tp_weaklistoffset`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_weaklistoffset`"
 
 #: ../Doc/c-api/type.rst:193
 msgid ":c:member:`~PyTypeObject.tp_dictoffset`"
-msgstr ""
+msgstr ":c:member:`~PyTypeObject.tp_dictoffset`"
 
 #: ../Doc/c-api/type.rst:194
 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`"
-msgstr ""
+msgstr ":c:member:`~PyBufferProcs.bf_getbuffer`"
 
 #: ../Doc/c-api/type.rst:195
 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`"
-msgstr ""
+msgstr ":c:member:`~PyBufferProcs.bf_releasebuffer`"
 
 #: ../Doc/c-api/type.rst:197
 msgid ""
@@ -279,13 +351,18 @@ msgid ""
 "issues, use the *bases* argument of :py:func:`PyType_FromSpecWithBases` "
 "instead."
 msgstr ""
+"Estableciendo :c:data:`Py_tp_bases` puede ser problemático en algunas "
+"plataformas. Para evitar problemas, use el argumento *bases* de :py:func:"
+"`PyType_FromSpecWithBases` en su lugar."
 
 #: ../Doc/c-api/type.rst:203
 msgid ""
 "The desired value of the slot. In most cases, this is a pointer to a "
 "function."
 msgstr ""
+"El valor deseado de la ranura. En la mayoría de los casos, este es un "
+"puntero a una función."
 
 #: ../Doc/c-api/type.rst:206
 msgid "May not be ``NULL``."
-msgstr ""
+msgstr "Puede no ser ``NULL``."