From 47f5734bf730d0b7efea2a87291f3b06224f1c80 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Sun, 21 Jun 2020 16:27:36 +0200 Subject: [PATCH 1/3] Traducido c-api/buffer --- c-api/buffer.po | 328 ++++++++++++++++++++++++++++++++++++++++++------ dict | 2 + 2 files changed, 292 insertions(+), 38 deletions(-) diff --git a/c-api/buffer.po b/c-api/buffer.po index 52eb5ac6a6..74404c6f74 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -6,23 +6,25 @@ # 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-21 16:22+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/c-api/buffer.rst:11 msgid "Buffer Protocol" -msgstr "" +msgstr "Protocolo Búfer" #: ../Doc/c-api/buffer.rst:18 msgid "" @@ -32,6 +34,12 @@ msgid "" "party libraries may define their own types for special purposes, such as " "image processing or numeric analysis." msgstr "" +"Ciertos objetos disponibles en Python ajustan el acceso a un arreglo de " +"memoria subyacente o *buffer*. Dichos objetos incluyen el incorporado :class:" +"`bytes` y :class:`bytearray`, y algunos tipos de extensión como :class:" +"`array.array`. Las bibliotecas de terceros pueden definir sus propios tipos " +"para fines especiales, como el procesamiento de imágenes o el análisis " +"numérico." #: ../Doc/c-api/buffer.rst:24 msgid "" @@ -40,12 +48,18 @@ msgid "" "then desirable, in some situations, to access that buffer directly and " "without intermediate copying." msgstr "" +"Si bien cada uno de estos tipos tiene su propia semántica, comparten la " +"característica común de estar respaldados por un búfer de memoria " +"posiblemente grande. Es deseable, en algunas situaciones, acceder a ese " +"búfer directamente y sin copia intermedia." #: ../Doc/c-api/buffer.rst:29 msgid "" "Python provides such a facility at the C level in the form of the :ref:" "`buffer protocol `. This protocol has two sides:" msgstr "" +"Python proporciona una instalación de este tipo en el nivel C en la forma " +"de :ref:`protocolo búfer `. Este protocolo tiene dos lados:" #: ../Doc/c-api/buffer.rst:34 msgid "" @@ -53,12 +67,18 @@ msgid "" "objects of that type to expose information about their underlying buffer. " "This interface is described in the section :ref:`buffer-structs`;" msgstr "" +"en el lado del productor, un tipo puede exportar una \"interfaz de búfer\" " +"que permite a los objetos de ese tipo exponer información sobre su búfer " +"subyacente. Esta interfaz se describe en la sección :ref:`buffer-structs`;" #: ../Doc/c-api/buffer.rst:38 msgid "" "on the consumer side, several means are available to obtain a pointer to the " "raw underlying data of an object (for example a method parameter)." msgstr "" +"en el lado del consumidor, hay varios medios disponibles para obtener un " +"puntero a los datos subyacentes sin procesar de un objeto (por ejemplo, un " +"parámetro de método)." #: ../Doc/c-api/buffer.rst:41 msgid "" @@ -67,6 +87,10 @@ msgid "" "example, the elements exposed by an :class:`array.array` can be multi-byte " "values." msgstr "" +"Los objetos simples como :class:`bytes` y :class:`bytearray` exponen su " +"búfer subyacente en forma orientada a bytes. Otras formas son posibles; por " +"ejemplo, los elementos expuestos por un :class:`array.array` pueden ser " +"valores de varios bytes." #: ../Doc/c-api/buffer.rst:45 msgid "" @@ -79,22 +103,35 @@ msgid "" "objects to selectively allow or reject exporting of read-write and read-only " "buffers." msgstr "" +"Un consumidor de ejemplo de la interfaz del búfer es el método :meth:`~io." +"BufferedIOBase.write` de objetos de archivo: cualquier objeto que pueda " +"exportar una serie de bytes a través de la interfaz del búfer puede " +"escribirse en un archivo. Mientras que :meth:`write` solo necesita acceso de " +"solo lectura a los contenidos internos del objeto que se le pasa, otros " +"métodos como :meth:`~io.BufferedIOBase.readinto` necesitan acceso de " +"escritura a los contenidos de su argumento. La interfaz del búfer permite " +"que los objetos permitan o rechacen selectivamente la exportación de búferes " +"de lectura-escritura y solo lectura." #: ../Doc/c-api/buffer.rst:53 msgid "" "There are two ways for a consumer of the buffer interface to acquire a " "buffer over a target object:" msgstr "" +"Hay dos formas para que un consumidor de la interfaz del búfer adquiera un " +"búfer sobre un objeto de destino:" #: ../Doc/c-api/buffer.rst:56 msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" -msgstr "" +msgstr "llama :c:func:`PyObject_GetBuffer` con los parámetros correctos;" #: ../Doc/c-api/buffer.rst:58 msgid "" "call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " "``y*``, ``w*`` or ``s*`` :ref:`format codes `." msgstr "" +"llama :c:func:`PyArg_ParseTuple` (o uno de sus hermanos) con uno de los " +"``y*``, ``w*`` o ``s*`` :ref:`códigos de formato `." #: ../Doc/c-api/buffer.rst:61 msgid "" @@ -102,10 +139,13 @@ msgid "" "isn't needed anymore. Failure to do so could lead to various issues such as " "resource leaks." msgstr "" +"En ambos casos, se debe llamar a :c:func:`PyBuffer_Release` cuando ya no se " +"necesita el búfer. De lo contrario, podrían surgir varios problemas, como " +"pérdidas de recursos." #: ../Doc/c-api/buffer.rst:69 msgid "Buffer structure" -msgstr "" +msgstr "Estructura de búfer" #: ../Doc/c-api/buffer.rst:71 msgid "" @@ -118,6 +158,15 @@ msgid "" "operating system library, or it could be used to pass around structured data " "in its native, in-memory format." msgstr "" +"Las estructuras de búfer (o simplemente \"búferes\") son útiles como una " +"forma de exponer los datos binarios de otro objeto al programador de Python. " +"También se pueden usar como un mecanismo de corte de copia cero. Usando su " +"capacidad para hacer referencia a un bloque de memoria, es posible exponer " +"cualquier información al programador Python con bastante facilidad. La " +"memoria podría ser una matriz grande y constante en una extensión C, podría " +"ser un bloque de memoria sin procesar para su manipulación antes de pasar a " +"una biblioteca del sistema operativo, o podría usarse para pasar datos " +"estructurados en su formato nativo en memoria ." #: ../Doc/c-api/buffer.rst:80 msgid "" @@ -127,6 +176,11 @@ msgid "" "buffer is needed, a :ref:`memoryview ` object can be " "created." msgstr "" +"Contrariamente a la mayoría de los tipos de datos expuestos por el " +"intérprete de Python, los búferes no son punteros :c:type:`PyObject` sino " +"estructuras C simples. Esto les permite ser creados y copiados de manera muy " +"simple. Cuando se necesita un contenedor genérico alrededor de un búfer, un " +"objeto :ref:`memoryview ` puede ser creado." #: ../Doc/c-api/buffer.rst:86 msgid "" @@ -134,6 +188,9 @@ msgid "" "Object Structures `. For obtaining a buffer, see :c:func:" "`PyObject_GetBuffer`." msgstr "" +"Para obtener instrucciones breves sobre cómo escribir un objeto de " +"exportación, consulte :ref:`Estructuras de objetos búfer `. " +"Para obtener un búfer, consulte :c:func:`PyObject_GetBuffer`." #: ../Doc/c-api/buffer.rst:94 msgid "" @@ -142,12 +199,18 @@ msgid "" "of the exporter. For example, with negative :c:member:`~Py_buffer.strides` " "the value may point to the end of the memory block." msgstr "" +"Un puntero al inicio de la estructura lógica descrita por los campos del " +"búfer. Puede ser cualquier ubicación dentro del bloque de memoria física " +"subyacente del exportador. Por ejemplo, con negativo :c:member:`~Py_buffer." +"strides` el valor puede apuntar al final del bloque de memoria." #: ../Doc/c-api/buffer.rst:99 msgid "" "For :term:`contiguous` arrays, the value points to the beginning of the " "memory block." msgstr "" +"Para arreglos :term:`contiguos`, el valor apunta al comienzo del bloque de " +"memoria." #: ../Doc/c-api/buffer.rst:104 msgid "" @@ -156,6 +219,10 @@ msgid "" "`PyBuffer_Release`. The field is the equivalent of the return value of any " "standard C-API function." msgstr "" +"Una nueva referencia al objeto exportador. La referencia es propiedad del " +"consumidor y automáticamente disminuye y se establece en ``NULL`` por :c:" +"func:`PyBuffer_Release`. El campo es el equivalente del valor de retorno de " +"cualquier función estándar de C-API." #: ../Doc/c-api/buffer.rst:109 msgid "" @@ -163,6 +230,9 @@ msgid "" "`PyMemoryView_FromBuffer` or :c:func:`PyBuffer_FillInfo` this field is " "``NULL``. In general, exporting objects MUST NOT use this scheme." msgstr "" +"Como un caso especial, para los búferes *temporary* que están envueltos por :" +"c:func:`PyMemoryView_FromBuffer` o :c:func:`PyBuffer_FillInfo` este campo es " +"``NULL``. En general, los objetos de exportación NO DEBEN usar este esquema." #: ../Doc/c-api/buffer.rst:116 msgid "" @@ -171,6 +241,10 @@ msgid "" "that the logical structure would have if it were copied to a contiguous " "representation." msgstr "" +"``product(shape) * itemize``. Para arreglos contiguos, esta es la longitud " +"del bloque de memoria subyacente. Para arreglos no contiguos, es la longitud " +"que tendría la estructura lógica si se copiara en una representación " +"contigua." #: ../Doc/c-api/buffer.rst:121 msgid "" @@ -179,18 +253,27 @@ msgid "" "most cases such a request will be :c:macro:`PyBUF_SIMPLE` or :c:macro:" "`PyBUF_WRITABLE`." msgstr "" +"Accede a ``((char *)buf)[0] hasta ((char *)buf)[len-1]`` solo es válido si " +"el búfer se ha obtenido mediante una solicitud que garantiza la contigüidad. " +"En la mayoría de los casos, dicha solicitud será :c:macro:`PyBUF_SIMPLE` o :" +"c:macro:`PyBUF_WRITABLE`." #: ../Doc/c-api/buffer.rst:127 msgid "" "An indicator of whether the buffer is read-only. This field is controlled by " "the :c:macro:`PyBUF_WRITABLE` flag." msgstr "" +"Un indicador de si el búfer es de solo lectura. Este campo está controlado " +"por el indicador :c:macro:`PyBUF_WRITABLE`." #: ../Doc/c-api/buffer.rst:132 msgid "" "Item size in bytes of a single element. Same as the value of :func:`struct." "calcsize` called on non-``NULL`` :c:member:`~Py_buffer.format` values." msgstr "" +"Tamaño del elemento en bytes de un solo elemento. Igual que el valor de :" +"func:`struct.calcsize` invocado en valores no ``NULL`` :c:member:`~Py_buffer." +"format`." #: ../Doc/c-api/buffer.rst:135 msgid "" @@ -199,6 +282,10 @@ msgid "" "``NULL``, but :c:member:`~Py_buffer.itemsize` still has the value for the " "original format." msgstr "" +"Excepción importante: si un consumidor solicita un búfer sin el indicador :c:" +"macro:`PyBUF_FORMAT`, :c:member:`~Py_buffer.format` se establecerá en " +"``NULL``, pero :c:member:`~Py_buffer.itemsize` todavía tiene el valor para " +"el formato original." #: ../Doc/c-api/buffer.rst:140 msgid "" @@ -206,6 +293,9 @@ msgid "" "itemsize == len`` still holds and the consumer can use :c:member:`~Py_buffer." "itemsize` to navigate the buffer." msgstr "" +"Si :c:member:`~Py_buffer.shape` está presente, la igualdad ``product(shape) " +"* itemsize == len`` aún se mantiene y el consumidor puede usar :c:member:" +"`~Py_buffer.itemsize` para navegar el búfer." #: ../Doc/c-api/buffer.rst:144 msgid "" @@ -213,6 +303,9 @@ msgid "" "`PyBUF_SIMPLE` or a :c:macro:`PyBUF_WRITABLE` request, the consumer must " "disregard :c:member:`~Py_buffer.itemsize` and assume ``itemsize == 1``." msgstr "" +"Si :c:member:`~Py_buffer.shape` es ``NULL`` como resultado de un :c:macro:" +"`PyBUF_SIMPLE` o un :c:macro:`PyBUF_WRITABLE`, el consumidor debe ignorar :c:" +"member:`~Py_buffer.itemsize` y asume ``itemsize == 1``." #: ../Doc/c-api/buffer.rst:150 msgid "" @@ -220,10 +313,13 @@ msgid "" "the contents of a single item. If this is ``NULL``, ``\"B\"`` (unsigned " "bytes) is assumed." msgstr "" +"Una cadena de caracteres terminada en *NUL* en sintaxis de estilo del " +"modulo :mod:`struct` que describe el contenido de un solo elemento. Si esto " +"es ``NULL``, se supone ``\"B\"`` (bytes sin signo)." #: ../Doc/c-api/buffer.rst:154 msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." -msgstr "" +msgstr "Este campo está controlado por el indicador :c:macro:`PyBUF_FORMAT`." #: ../Doc/c-api/buffer.rst:158 msgid "" @@ -232,6 +328,11 @@ msgid "" "a scalar. In this case, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer." "strides` and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``." msgstr "" +"El número de dimensiones que representa la memoria como un arreglo n-" +"dimensional. Si es `` 0``, :c:member:`~Py_buffer.buf` apunta a un solo " +"elemento que representa un escalar. En este caso, :c:member:`~Py_buffer." +"shape`, :c:member:`~Py_buffer.strides` y :c:member:`~Py_buffer.suboffsets` " +"DEBE ser ``NULL``." #: ../Doc/c-api/buffer.rst:163 msgid "" @@ -239,6 +340,10 @@ msgid "" "to 64. Exporters MUST respect this limit, consumers of multi-dimensional " "buffers SHOULD be able to handle up to :c:macro:`PyBUF_MAX_NDIM` dimensions." msgstr "" +"La macro :c:macro:`PyBUF_MAX_NDIM` limita el número máximo de dimensiones a " +"64. Los exportadores DEBEN respetar este límite, los consumidores de búfer " +"multidimensionales DEBEN poder manejar hasta dimensiones :c:macro:" +"`PyBUF_MAX_NDIM`." #: ../Doc/c-api/buffer.rst:169 msgid "" @@ -247,22 +352,32 @@ msgid "" "``shape[0] * ... * shape[ndim-1] * itemsize`` MUST be equal to :c:member:" "`~Py_buffer.len`." msgstr "" +"Un arreglo de :c:type:`Py_ssize_t` de longitud :c:member:`~Py_buffer.ndim` " +"que indica la forma de la memoria como un arreglo n-dimensional. Tenga en " +"cuenta que ``shape[0] * ... * shape[ndim-1] * itemsize`` DEBE ser igual a :c:" +"member:`~Py_buffer.len`." #: ../Doc/c-api/buffer.rst:174 msgid "" "Shape values are restricted to ``shape[n] >= 0``. The case ``shape[n] == 0`` " "requires special attention. See `complex arrays`_ for further information." msgstr "" +"Los valores de forma están restringidos a ``shape[n] >= 0``. El caso " +"``shape[n] == 0`` requiere atención especial. Vea arreglos complejos " +"(`complex arrays`_) para más información." #: ../Doc/c-api/buffer.rst:178 msgid "The shape array is read-only for the consumer." -msgstr "" +msgstr "El arreglo de formas es de sólo lectura para el consumidor." #: ../Doc/c-api/buffer.rst:182 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " "giving the number of bytes to skip to get to a new element in each dimension." msgstr "" +"Un arreglo de :c:type:`Py_ssize_t` de longitud :c:member:`~Py_buffer.ndim` " +"que proporciona el número de bytes que se omiten para llegar a un nuevo " +"elemento en cada dimensión." #: ../Doc/c-api/buffer.rst:186 msgid "" @@ -270,10 +385,14 @@ msgid "" "positive, but a consumer MUST be able to handle the case ``strides[n] <= " "0``. See `complex arrays`_ for further information." msgstr "" +"Los valores de *stride* pueden ser cualquier número entero. Para los " +"arreglos regulares, los pasos son generalmente positivos, pero un consumidor " +"DEBE ser capaz de manejar el caso ``strides[n] <= 0``. Ver `complex arrays`_ " +"para más información." #: ../Doc/c-api/buffer.rst:190 msgid "The strides array is read-only for the consumer." -msgstr "" +msgstr "El arreglo *strides* es de sólo lectura para el consumidor." #: ../Doc/c-api/buffer.rst:194 msgid "" @@ -283,12 +402,21 @@ msgid "" "pointer after de-referencing. A suboffset value that is negative indicates " "that no de-referencing should occur (striding in a contiguous memory block)." msgstr "" +"Un arreglo de :c:type:`Py_ssize_t` de longitud :c:member:`~Py_buffer.ndim`. " +"Si ``suboffsets[n] >= 0``, los valores almacenados a lo largo de la enésima " +"dimensión son punteros y el valor del *suboffsets* dicta cuántos bytes " +"agregar a cada puntero después de desreferenciarlos. Un valor de " +"*suboffsets* negativo indica que no debe producirse una desreferenciación " +"(*striding* en un bloque de memoria contiguo)." #: ../Doc/c-api/buffer.rst:201 msgid "" "If all suboffsets are negative (i.e. no de-referencing is needed), then this " "field must be ``NULL`` (the default value)." msgstr "" +"Si todos los *suboffsets* son negativos (es decir, no se necesita " +"desreferenciar), entonces este campo debe ser ``NULL`` (el valor " +"predeterminado)." #: ../Doc/c-api/buffer.rst:204 msgid "" @@ -296,10 +424,13 @@ msgid "" "(PIL). See `complex arrays`_ for further information how to access elements " "of such an array." msgstr "" +"*Python Imaging Library (PIL)* utiliza este tipo de representación de " +"arreglos. Consulte `complex arrays`_ para obtener más información sobre cómo " +"acceder a los elementos de dicho arreglo." #: ../Doc/c-api/buffer.rst:208 msgid "The suboffsets array is read-only for the consumer." -msgstr "" +msgstr "El arreglo de *suboffsets* es de sólo lectura para el consumidor." #: ../Doc/c-api/buffer.rst:212 msgid "" @@ -308,10 +439,15 @@ msgid "" "whether or not the shape, strides, and suboffsets arrays must be freed when " "the buffer is released. The consumer MUST NOT alter this value." msgstr "" +"Esto es para uso interno del objeto exportador. Por ejemplo, el exportador " +"podría volver a emitirlo como un número entero y utilizarlo para almacenar " +"indicadores sobre si las matrices de forma, *strides* y *suboffsets* deben " +"liberarse cuando se libera el búfer. El consumidor NO DEBE alterar este " +"valor." #: ../Doc/c-api/buffer.rst:221 msgid "Buffer request types" -msgstr "" +msgstr "Tipos de solicitud búfer" #: ../Doc/c-api/buffer.rst:223 msgid "" @@ -320,15 +456,22 @@ msgid "" "structure of the memory can vary drastically, the consumer uses the *flags* " "argument to specify the exact buffer type it can handle." msgstr "" +"Los búferes obtienen generalmente enviando una solicitud de búfer a un " +"objeto de exportación a través de :c:func:`PyObject_GetBuffer`. Dado que la " +"complejidad de la estructura lógica de la memoria puede variar " +"drásticamente, el consumidor usa el argumento *flags* para especificar el " +"tipo de búfer exacto que puede manejar." #: ../Doc/c-api/buffer.rst:228 msgid "" "All :c:data:`Py_buffer` fields are unambiguously defined by the request type." msgstr "" +"Todos los campos :c:data:`Py_buffer` están definidos inequívocamente por el " +"tipo de solicitud." #: ../Doc/c-api/buffer.rst:232 msgid "request-independent fields" -msgstr "" +msgstr "campos independientes de solicitud" #: ../Doc/c-api/buffer.rst:233 msgid "" @@ -337,10 +480,14 @@ msgid "" "`~Py_buffer.buf`, :c:member:`~Py_buffer.len`, :c:member:`~Py_buffer." "itemsize`, :c:member:`~Py_buffer.ndim`." msgstr "" +"Los siguientes campos no están influenciados por *flags* y siempre deben " +"completarse con los valores correctos: :c:member:`~Py_buffer.obj`, :c:member:" +"`~Py_buffer.buf`, :c:member:`~Py_buffer.len`, :c:member:`~Py_buffer." +"itemsize`, :c:member:`~Py_buffer.ndim`." #: ../Doc/c-api/buffer.rst:239 msgid "readonly, format" -msgstr "" +msgstr "formato de sólo lectura" #: ../Doc/c-api/buffer.rst:243 msgid "" @@ -349,12 +496,20 @@ msgid "" "exporter MAY provide either a read-only or writable buffer, but the choice " "MUST be consistent for all consumers." msgstr "" +"Controla el campo :c:member:`~Py_buffer.readonly`. Si se establece, el " +"exportador DEBE proporcionar un búfer de escritura o, de lo contrario, " +"informar de un error. De lo contrario, el exportador PUEDE proporcionar un " +"búfer de solo lectura o de escritura, pero la elección DEBE ser coherente " +"para todos los consumidores." #: ../Doc/c-api/buffer.rst:250 msgid "" "Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " "filled in correctly. Otherwise, this field MUST be ``NULL``." msgstr "" +"Controla el campo :c:member:`~Py_buffer.format`. Si se establece, este campo " +"DEBE completarse correctamente. De lo contrario, este campo DEBE ser " +"``NULL``." #: ../Doc/c-api/buffer.rst:254 msgid "" @@ -363,16 +518,23 @@ msgid "" "`PyBUF_WRITABLE` can be used as a stand-alone flag to request a simple " "writable buffer." msgstr "" +":c:macro:`PyBUF_WRITABLE` puede ser \\|'d a cualquiera de las banderas en la " +"siguiente sección. Dado que :c:macro:`PyBUF_SIMPLE` se define como 0, :c:" +"macro:`PyBUF_WRITABLE` puede usarse como un indicador independiente para " +"solicitar un búfer de escritura simple." #: ../Doc/c-api/buffer.rst:258 msgid "" ":c:macro:`PyBUF_FORMAT` can be \\|'d to any of the flags except :c:macro:" "`PyBUF_SIMPLE`. The latter already implies format ``B`` (unsigned bytes)." msgstr "" +":c:macro:`PyBUF_FORMAT` puede ser \\|'d para cualquiera de las banderas " +"excepto :c:macro:`PyBUF_SIMPLE`. Este último ya implica el formato ``B`` " +"(bytes sin signo)." #: ../Doc/c-api/buffer.rst:263 msgid "shape, strides, suboffsets" -msgstr "" +msgstr "formas, *strides*, *suboffsets*" #: ../Doc/c-api/buffer.rst:265 msgid "" @@ -380,26 +542,29 @@ msgid "" "decreasing order of complexity. Note that each flag contains all bits of the " "flags below it." msgstr "" +"Las banderas que controlan la estructura lógica de la memoria se enumeran en " +"orden decreciente de complejidad. Tenga en cuenta que cada bandera contiene " +"todos los bits de las banderas debajo de ella." #: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 #: ../Doc/c-api/buffer.rst:321 msgid "Request" -msgstr "" +msgstr "Solicitud" #: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 #: ../Doc/c-api/buffer.rst:321 msgid "shape" -msgstr "" +msgstr "forma" #: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 #: ../Doc/c-api/buffer.rst:321 msgid "strides" -msgstr "" +msgstr "*strides*" #: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 #: ../Doc/c-api/buffer.rst:321 msgid "suboffsets" -msgstr "" +msgstr "*suboffsets*" #: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:276 #: ../Doc/c-api/buffer.rst:278 ../Doc/c-api/buffer.rst:298 @@ -410,12 +575,12 @@ msgstr "" #: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 #: ../Doc/c-api/buffer.rst:337 msgid "yes" -msgstr "" +msgstr "sí" #: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:323 #: ../Doc/c-api/buffer.rst:325 msgid "if needed" -msgstr "" +msgstr "si es necesario" #: ../Doc/c-api/buffer.rst:276 ../Doc/c-api/buffer.rst:278 #: ../Doc/c-api/buffer.rst:280 ../Doc/c-api/buffer.rst:298 @@ -425,11 +590,11 @@ msgstr "" #: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 #: ../Doc/c-api/buffer.rst:337 msgid "NULL" -msgstr "" +msgstr "NULL" #: ../Doc/c-api/buffer.rst:287 msgid "contiguity requests" -msgstr "" +msgstr "solicitudes de contigüidad" #: ../Doc/c-api/buffer.rst:289 msgid "" @@ -437,27 +602,30 @@ msgid "" "with and without stride information. Without stride information, the buffer " "must be C-contiguous." msgstr "" +"La :term:`contigüidad ` C o Fortran se puede solicitar " +"explícitamente, con y sin información de paso. Sin información de paso, el " +"búfer debe ser C-contiguo." #: ../Doc/c-api/buffer.rst:296 ../Doc/c-api/buffer.rst:321 msgid "contig" -msgstr "" +msgstr "contig" #: ../Doc/c-api/buffer.rst:298 ../Doc/c-api/buffer.rst:304 #: ../Doc/c-api/buffer.rst:335 ../Doc/c-api/buffer.rst:337 msgid "C" -msgstr "" +msgstr "C" #: ../Doc/c-api/buffer.rst:300 msgid "F" -msgstr "" +msgstr "F" #: ../Doc/c-api/buffer.rst:302 msgid "C or F" -msgstr "" +msgstr "C o F" #: ../Doc/c-api/buffer.rst:309 msgid "compound requests" -msgstr "" +msgstr "solicitudes compuestas" #: ../Doc/c-api/buffer.rst:311 msgid "" @@ -465,44 +633,51 @@ msgid "" "the previous section. For convenience, the buffer protocol provides " "frequently used combinations as single flags." msgstr "" +"Todas las solicitudes posibles están completamente definidas por alguna " +"combinación de las banderas en la sección anterior. Por conveniencia, el " +"protocolo de memoria intermedia proporciona combinaciones de uso frecuente " +"como indicadores únicos." #: ../Doc/c-api/buffer.rst:315 msgid "" "In the following table *U* stands for undefined contiguity. The consumer " "would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." msgstr "" +"En la siguiente tabla *U* significa contigüidad indefinida. El consumidor " +"tendría que llamar a :c:func:`PyBuffer_IsContiguous` para determinar la " +"contigüidad." #: ../Doc/c-api/buffer.rst:321 msgid "readonly" -msgstr "" +msgstr "sólo lectura" #: ../Doc/c-api/buffer.rst:321 msgid "format" -msgstr "" +msgstr "formato" #: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325 #: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329 #: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:333 msgid "U" -msgstr "" +msgstr "U" #: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:327 #: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:335 msgid "0" -msgstr "" +msgstr "0" #: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:329 #: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:337 msgid "1 or 0" -msgstr "" +msgstr "1 o 0" #: ../Doc/c-api/buffer.rst:342 msgid "Complex arrays" -msgstr "" +msgstr "Arreglos complejos" #: ../Doc/c-api/buffer.rst:345 msgid "NumPy-style: shape and strides" -msgstr "" +msgstr "Estilo NumPy: forma y *strides*" #: ../Doc/c-api/buffer.rst:347 msgid "" @@ -510,6 +685,9 @@ msgid "" "`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer." "shape` and :c:member:`~Py_buffer.strides`." msgstr "" +"La estructura lógica de las matrices de estilo NumPy está definida por :c:" +"member:`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:" +"`~Py_buffer.shape` y :c:member:`~Py_buffer.strides`." #: ../Doc/c-api/buffer.rst:350 msgid "" @@ -518,6 +696,10 @@ msgid "" "that case, both :c:member:`~Py_buffer.shape` and :c:member:`~Py_buffer." "strides` are ``NULL``." msgstr "" +"Si ``ndim == 0``, la ubicación de memoria señalada por :c:member:`~Py_buffer." +"buf` se interpreta como un escalar de tamaño :c:member:`~Py_buffer." +"itemsize`. En ese caso, tanto :c:member:`~Py_buffer.shape` como :c:member:" +"`~Py_buffer.strides` son ``NULL``." #: ../Doc/c-api/buffer.rst:354 msgid "" @@ -525,6 +707,9 @@ msgid "" "standard n-dimensional C-array. Otherwise, the consumer must access an n-" "dimensional array as follows:" msgstr "" +"Si :c:member:`~Py_buffer.strides` es ``NULL``, el arreglo se interpreta como " +"un arreglo C n-dimensional estándar. De lo contrario, el consumidor debe " +"acceder a un arreglo n-dimensional de la siguiente manera:" #: ../Doc/c-api/buffer.rst:364 msgid "" @@ -532,10 +717,13 @@ msgid "" "the actual memory block. An exporter can check the validity of a buffer with " "this function:" msgstr "" +"Como se señaló anteriormente, :c:member:`~Py_buffer.buf` puede apuntar a " +"cualquier ubicación dentro del bloque de memoria real. Un exportador puede " +"verificar la validez de un búfer con esta función:" #: ../Doc/c-api/buffer.rst:398 msgid "PIL-style: shape, strides and suboffsets" -msgstr "" +msgstr "Estilo PIL: forma, *strides* y *suboffsets*" #: ../Doc/c-api/buffer.rst:400 msgid "" @@ -547,6 +735,14 @@ msgid "" "embedded at the start of :c:member:`~Py_buffer.buf`, pointing to two ``char " "x[2][3]`` arrays that can be located anywhere in memory." msgstr "" +"Además de los elementos normales, los arreglos de estilo PIL pueden contener " +"punteros que deben seguirse para llegar al siguiente elemento en una " +"dimensión. Por ejemplo, el arreglo C tridimensional regular ``char v[2][2]" +"[3]`` también se puede ver como un arreglo de 2 punteros a 2 arreglos " +"bidimensionales: ``char (*v[2])[2][3]``. En la representación de " +"*suboffsets*, esos dos punteros pueden incrustarse al comienzo de :c:member:" +"`~Py_buffer.buf`, apuntando a dos matrices ``char x[2][3]`` que pueden " +"ubicarse en cualquier lugar de la memoria." #: ../Doc/c-api/buffer.rst:409 msgid "" @@ -554,10 +750,13 @@ msgid "" "pointed to by an N-dimensional index when there are both non-``NULL`` " "strides and suboffsets::" msgstr "" +"Aquí hay una función que retorna un puntero al elemento en un arreglo N-D a " +"la que apunta un índice N-dimensional cuando hay *strides* y *suboffsets* no " +"``NULL``:" #: ../Doc/c-api/buffer.rst:428 msgid "Buffer-related functions" -msgstr "" +msgstr "Funciones relacionadas a búfer" #: ../Doc/c-api/buffer.rst:432 msgid "" @@ -565,6 +764,9 @@ msgid "" "``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " "will succeed. This function always succeeds." msgstr "" +"Retorna ``1`` si *obj* admite la interfaz de búfer; de lo contrario, ``0`` " +"cuando se devuelve ``1``, no garantiza que :c:func:`PyObject_GetBuffer` " +"tenga éxito. Esta función siempre tiene éxito." #: ../Doc/c-api/buffer.rst:439 msgid "" @@ -573,6 +775,10 @@ msgid "" "data:`PyExc_BufferError`, set :c:member:`view->obj` to ``NULL`` and return " "``-1``." msgstr "" +"Envía una solicitud a *exporter* para completar *view* según lo especificado " +"por *flags*. Si el exportador no puede proporcionar un búfer del tipo " +"exacto, DEBE generar :c:data:`PyExc_BufferError`, establece :c:member:`view-" +">obj` a ``NULL`` y retorna ``-1``." #: ../Doc/c-api/buffer.rst:444 msgid "" @@ -582,6 +788,11 @@ msgid "" "this object instead of *exporter* (See :ref:`Buffer Object Structures " "`)." msgstr "" +"En caso de éxito, llena *view*, establece :c:member:`view->obj` en una nueva " +"referencia a *exporter* y retorna 0. En el caso de proveedores de búfer " +"encadenados que redirigen las solicitudes a un solo objeto, :c:member:`view-" +">obj` PUEDE referirse a este objeto en lugar de *exporter* (Ver :ref:" +"`Estructuras de Objetos Búfer `)." #: ../Doc/c-api/buffer.rst:449 msgid "" @@ -590,6 +801,10 @@ msgid "" "`free`. Thus, after the consumer is done with the buffer, :c:func:" "`PyBuffer_Release` must be called exactly once." msgstr "" +"Las llamadas exitosas a :c:func:`PyObject_GetBuffer` deben combinarse con " +"las llamadas a :c:func:`PyBuffer_Release`, similar a :c:func:`malloc` y :c:" +"func:`free`. Por lo tanto, después de que el consumidor haya terminado con " +"el búfer, :c:func:`PyBuffer_Release` debe llamarse exactamente una vez." #: ../Doc/c-api/buffer.rst:457 msgid "" @@ -597,18 +812,25 @@ msgid "" "`view->obj`. This function MUST be called when the buffer is no longer being " "used, otherwise reference leaks may occur." msgstr "" +"Libera el búfer *view* y disminuye el conteo de referencias para :c:member:" +"`view-> obj`. Esta función DEBE llamarse cuando el búfer ya no se utiliza, " +"de lo contrario, pueden producirse fugas de referencia." #: ../Doc/c-api/buffer.rst:461 msgid "" "It is an error to call this function on a buffer that was not obtained via :" "c:func:`PyObject_GetBuffer`." msgstr "" +"Es un error llamar a esta función en un búfer que no se obtuvo a través de :" +"c:func:`PyObject_GetBuffer`." #: ../Doc/c-api/buffer.rst:467 msgid "" "Return the implied :c:data:`~Py_buffer.itemsize` from :c:data:`~Py_buffer." "format`. This function is not yet implemented." msgstr "" +"Retorna el :c:data:`~Py_buffer.itemsize` implícito de :c:data:`~Py_buffer." +"format`. Esta función aún no está implementada." #: ../Doc/c-api/buffer.rst:473 msgid "" @@ -617,12 +839,18 @@ msgid "" "one (*order* is ``'A'``). Return ``0`` otherwise. This function always " "succeeds." msgstr "" +"Retorna ``1`` si la memoria definida por *view* es de estilo C (*order* es " +"``'C'``) o de estilo Fortran (*order* es ``'F'``) :term:`contiguos` o uno " +"cualquiera (*order* es ``'A'``). Retorna ``0`` de lo contrario. Esta función " +"siempre tiene éxito." #: ../Doc/c-api/buffer.rst:480 msgid "" "Get the memory area pointed to by the *indices* inside the given *view*. " "*indices* must point to an array of ``view->ndim`` indices." msgstr "" +"Obtiene el área de memoria señalada por los *indices* dentro del *view* " +"dado. *indices* deben apuntar a un arreglo de índices ``view->ndim``." #: ../Doc/c-api/buffer.rst:486 msgid "" @@ -630,6 +858,9 @@ msgid "" "``'F'`` (for C-style or Fortran-style ordering). ``0`` is returned on " "success, ``-1`` on error." msgstr "" +"Copia *len* bytes contiguos de *buf* a *view*. *fort* puede ser ``'C'`` o " +"``'F'`` (para pedidos al estilo C o al estilo Fortran). ``0`` se retorna en " +"caso de éxito, ``-1`` en caso de error." #: ../Doc/c-api/buffer.rst:493 msgid "" @@ -637,10 +868,14 @@ msgid "" "*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " "ordering or either one). ``0`` is returned on success, ``-1`` on error." msgstr "" +"Copia *len* bytes de *src* a su representación contigua en *buf*. *order* " +"puede ser ``'C'`` o ``'F'`` o ``''A'`` (para pedidos al estilo C o al estilo " +"Fortran o cualquiera) ``0`` se retorna en caso de éxito, ``-1`` en caso de " +"error." #: ../Doc/c-api/buffer.rst:497 msgid "This function fails if *len* != *src->len*." -msgstr "" +msgstr "Esta función falla si *len* != *src->len*." #: ../Doc/c-api/buffer.rst:502 msgid "" @@ -648,6 +883,9 @@ msgid "" "if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " "given shape with the given number of bytes per element." msgstr "" +"Rellena el arreglo *strides* con bytes de paso de un :term:`contiguous` " +"(estilo C si *order* es ``'C'`` o estilo Fortran si *order* es ``'F '`` ) " +"arreglo de la forma dada con el número dado de bytes por elemento." #: ../Doc/c-api/buffer.rst:509 msgid "" @@ -655,6 +893,9 @@ msgid "" "*len* with writability set according to *readonly*. *buf* is interpreted as " "a sequence of unsigned bytes." msgstr "" +"Maneje las solicitudes de búfer para un exportador que quiera exponer *buf* " +"de tamaño *len* con capacidad de escritura establecida de acuerdo con " +"*readonly*. *buf* se interpreta como una secuencia de bytes sin signo." #: ../Doc/c-api/buffer.rst:513 msgid "" @@ -662,6 +903,10 @@ msgid "" "in *view* as specified by flags, unless *buf* has been designated as read-" "only and :c:macro:`PyBUF_WRITABLE` is set in *flags*." msgstr "" +"El argumento *flags* indica el tipo de solicitud. Esta función siempre llena " +"*view* según lo especificado por *flags*, a menos que *buf* haya sido " +"designado como solo lectura y :c:macro:`PyBUF_WRITABLE` esté configurado en " +"*flags*." #: ../Doc/c-api/buffer.rst:517 msgid "" @@ -669,6 +914,9 @@ msgid "" "return 0. Otherwise, raise :c:data:`PyExc_BufferError`, set :c:member:`view-" ">obj` to ``NULL`` and return ``-1``;" msgstr "" +"En caso de éxito, establece :c:member:`view->obj` en una nueva referencia a " +"*exporter* y retorna 0. De lo contrario, genera :c:data:`PyExc_BufferError`, " +"establece :c:member:`view->obj` a ``NULL`` y retorna ``-1``;" #: ../Doc/c-api/buffer.rst:521 msgid "" @@ -676,3 +924,7 @@ msgid "" "*exporter* MUST be set to the exporting object and *flags* must be passed " "unmodified. Otherwise, *exporter* MUST be ``NULL``." msgstr "" +"Si esta función se usa como parte de a :ref:`getbufferproc `, *exporter* DEBE establecerse en el objeto exportador y *flags* " +"deben pasarse sin modificaciones. De lo contrario, *exporter* DEBE ser " +"``NULL``." diff --git a/dict b/dict index d0ab5b5e11..9bd6fef524 100644 --- a/dict +++ b/dict @@ -227,6 +227,7 @@ default desasignar deserialización desreferenciar +desreferenciarlos desalojable desambiguar desasigna @@ -387,6 +388,7 @@ multicast multifase multihilo multilínea +multidimensionales naif nonlocal object From 5f966b6a79b635a260ec7137cc398e7737c7a219 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Mon, 6 Jul 2020 12:19:24 +0200 Subject: [PATCH 2/3] Agregada nueva palabra al dict --- dict | 1 + 1 file changed, 1 insertion(+) diff --git a/dict b/dict index add4d01bf9..fddf5c2f13 100644 --- a/dict +++ b/dict @@ -633,6 +633,7 @@ sdux search secuencialmente seguirle +selectivamente self semánticamente semiabierto From d3251454c71a59c48deb052f40d7fb16d4e46908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sat, 25 Jul 2020 11:27:22 +0200 Subject: [PATCH 3/3] Apply suggestions from code review --- c-api/buffer.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/c-api/buffer.po b/c-api/buffer.po index 74404c6f74..920ed91b00 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -123,14 +123,14 @@ msgstr "" #: ../Doc/c-api/buffer.rst:56 msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" -msgstr "llama :c:func:`PyObject_GetBuffer` con los parámetros correctos;" +msgstr "llamar :c:func:`PyObject_GetBuffer` con los parámetros correctos;" #: ../Doc/c-api/buffer.rst:58 msgid "" "call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " "``y*``, ``w*`` or ``s*`` :ref:`format codes `." msgstr "" -"llama :c:func:`PyArg_ParseTuple` (o uno de sus hermanos) con uno de los " +"llamar :c:func:`PyArg_ParseTuple` (o uno de sus hermanos) con uno de los " "``y*``, ``w*`` o ``s*`` :ref:`códigos de formato `." #: ../Doc/c-api/buffer.rst:61