From 8bc640a297c9769ca62ba10d00539ad9c4af0a9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Wed, 6 Dec 2023 00:34:50 +0100
Subject: [PATCH 001/117] Traducido archivo library/tkinter.tix.po (#2768)
Closes #2592
---
library/tkinter.tix.po | 128 ++++++++++++++++-------------------------
1 file changed, 48 insertions(+), 80 deletions(-)
diff --git a/library/tkinter.tix.po b/library/tkinter.tix.po
index 2031142258..f918fc0155 100644
--- a/library/tkinter.tix.po
+++ b/library/tkinter.tix.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: 2020-10-13 10:00-0500\n"
+"PO-Revision-Date: 2023-12-05 13:55+0100\n"
"Last-Translator: Adolfo Hristo David Roque Gámez \n"
-"Language: es_PE\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_PE\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/library/tkinter.tix.rst:2
msgid ":mod:`tkinter.tix` --- Extension widgets for Tk"
@@ -74,9 +75,8 @@ msgstr ""
"usuarios."
#: ../Doc/library/tkinter.tix.rst:38
-#, fuzzy
msgid "`Tix Homepage `_"
-msgstr "`Tix Homepage `_"
+msgstr "`Tix Homepage `_"
#: ../Doc/library/tkinter.tix.rst:37
msgid ""
@@ -87,21 +87,19 @@ msgstr ""
"y descargas."
#: ../Doc/library/tkinter.tix.rst:41
-#, fuzzy
msgid "`Tix Man Pages `_"
-msgstr "`Tix Man Pages `_"
+msgstr "`Tix Man Pages `_"
#: ../Doc/library/tkinter.tix.rst:41
msgid "On-line version of the man pages and reference material."
msgstr "Versión en línea de las páginas del manual y material de referencia."
#: ../Doc/library/tkinter.tix.rst:44
-#, fuzzy
msgid ""
"`Tix Programming Guide `_"
msgstr ""
-"`Tix Programming Guide `_"
#: ../Doc/library/tkinter.tix.rst:44
@@ -109,12 +107,11 @@ msgid "On-line version of the programmer's reference material."
msgstr "Versión en línea del material de referencia del programador."
#: ../Doc/library/tkinter.tix.rst:48
-#, fuzzy
msgid ""
"`Tix Development Applications `_"
msgstr ""
-"`Tix Development Applications `_"
#: ../Doc/library/tkinter.tix.rst:47
@@ -170,12 +167,11 @@ msgid "Tix Widgets"
msgstr "Widgets de Tix"
#: ../Doc/library/tkinter.tix.rst:83
-#, fuzzy
msgid ""
"`Tix `_ introduces over 40 widget classes to the :mod:`tkinter` repertoire."
msgstr ""
-"`Tix `_ introduce más de 40 clases de widget al repertorio de :mod:`tkinter`."
#: ../Doc/library/tkinter.tix.rst:88
@@ -183,45 +179,42 @@ msgid "Basic Widgets"
msgstr "Widgets Básicos"
#: ../Doc/library/tkinter.tix.rst:93
-#, fuzzy
msgid ""
"A `Balloon `_ that pops up over a widget to provide help. When the user "
"moves the cursor inside a widget to which a Balloon widget has been bound, a "
"small pop-up window with a descriptive message will be shown on the screen."
msgstr ""
-"Un `Globo `_ que aparece sobre un widget para proporcionar ayuda. "
+"Un `Globo `_ que aparece sobre un widget para proporcionar ayuda. "
"Cuando el usuario mueve el cursor dentro de un widget al cual el widget "
"Globo está ligado, una pequeña ventana emergente con un mensaje descriptivo "
"se mostrará en la pantalla."
#: ../Doc/library/tkinter.tix.rst:105
-#, fuzzy
msgid ""
"The `ButtonBox `_ widget creates a box of buttons, such as is commonly "
"used for ``Ok Cancel``."
msgstr ""
-"El widget `ButtonBox `_ crea una caja de botones, tal como es comúnmente "
"usado para ``Ok Cancelar``."
#: ../Doc/library/tkinter.tix.rst:115
-#, fuzzy
msgid ""
"The `ComboBox `_ widget is similar to the combo box control in MS Windows. "
"The user can select a choice by either typing in the entry subwidget or "
"selecting from the listbox subwidget."
msgstr ""
-"El widget `ComboBox `_ es similar al control de caja de selección combinada en "
-"MS Windows. El usuario puede seleccionar una opción escribiendo en el "
-"*subwidget* de entrada o seleccionando de la caja de lista del subwidget."
+"El widget `ComboBox `_ es similar al control de caja de selección "
+"combinada en MS Windows. El usuario puede seleccionar una opción escribiendo "
+"en el *subwidget* de entrada o seleccionando de la caja de lista del "
+"subwidget."
#: ../Doc/library/tkinter.tix.rst:127
-#, fuzzy
msgid ""
"The `Control `_ widget is also known as the :class:`SpinBox` widget. The "
@@ -229,27 +222,25 @@ msgid ""
"the value directly into the entry. The new value will be checked against the "
"user-defined upper and lower limits."
msgstr ""
-"El widget `Control `_ es también conocido como el widget :class:`SpinBox`. El "
"usuario puede ajustar el valor al presionar los dos botones de flecha o al "
"ingresar el valor directamente en la entrada. El nuevo valor será comparado "
"con los límites superiores e inferiores definidos por el usuario."
#: ../Doc/library/tkinter.tix.rst:140
-#, fuzzy
msgid ""
"The `LabelEntry `_ widget packages an entry widget and a label into one "
"mega widget. It can be used to simplify the creation of \"entry-form\" type "
"of interface."
msgstr ""
-"El widget `LabelEntry `_ empaqueta un widget de entrada y una etiqueta en "
"un mega widget. Puede ser usado para simplificar la creación de los tipos de "
"interfaz de \"formularios de entrada\"."
#: ../Doc/library/tkinter.tix.rst:151
-#, fuzzy
msgid ""
"The `LabelFrame `_ widget packages a frame widget and a label into one "
@@ -257,65 +248,60 @@ msgid ""
"new widgets relative to the :attr:`frame` subwidget and manage them inside "
"the :attr:`frame` subwidget."
msgstr ""
-"El widget `LabelFrame `_ empaqueta un widget *frame* y una etiqueta en un "
"mega widget. Para crear widgets dentro de un widget *LabelFrame*, uno crea "
"los nuevos widgets relativos al *subwidget* :attr:`frame` y los gestiona "
"dentro del subwidget :attr:`frame`."
#: ../Doc/library/tkinter.tix.rst:163
-#, fuzzy
msgid ""
"The `Meter `_ widget can be used to show the progress of a background job "
"which may take a long time to execute."
msgstr ""
-"El widget `Meter `_ puede ser usado para mostrar el progreso de un trabajo en "
"segundo plano que puede tomar un largo tiempo de ejecución."
#: ../Doc/library/tkinter.tix.rst:174
-#, fuzzy
msgid ""
"The `OptionMenu `_ creates a menu button of options."
msgstr ""
-"El widget `OptionMenu `_ crea un botón de menú de opciones."
#: ../Doc/library/tkinter.tix.rst:184
-#, fuzzy
msgid ""
"The `PopupMenu `_ widget can be used as a replacement of the ``tk_popup`` "
"command. The advantage of the :mod:`Tix` :class:`PopupMenu` widget is it "
"requires less application code to manipulate."
msgstr ""
-"El widget `PopupMenu `_ puede ser usado como un reemplazo del comando "
"``tk_popup``. La ventaja del widget :class:`PopupMenu` de :mod:`Tix` es que "
"requiere menos código de aplicación para manipular."
#: ../Doc/library/tkinter.tix.rst:196
-#, fuzzy
msgid ""
"The `Select `_ widget is a container of button subwidgets. It can be used "
"to provide radio-box or check-box style of selection options for the user."
msgstr ""
-"El widget `Select `_ es un contenedor de *subwidgets* botón. Puede ser usado "
"para proporcionar opciones de selección de estilos radio-box o check-box "
"para el usuario."
#: ../Doc/library/tkinter.tix.rst:207
-#, fuzzy
msgid ""
"The `StdButtonBox `_ widget is a group of standard buttons for Motif-like "
"dialog boxes."
msgstr ""
-"El widget `StdButtonBox `_ es un grupo de botones estándares para cajas "
"de diálogo similares a *Motif*."
@@ -324,42 +310,39 @@ msgid "File Selectors"
msgstr "Selectores de Archivos"
#: ../Doc/library/tkinter.tix.rst:221
-#, fuzzy
msgid ""
"The `DirList `_ widget displays a list view of a directory, its previous "
"directories and its sub-directories. The user can choose one of the "
"directories displayed in the list or change to another directory."
msgstr ""
-"El widget `DirList `_ muestra una vista de lista de un directorio, sus "
"directorios previos, y sus sub-directorios. El usuario puede mostrar uno de "
"los directorios mostrados en la lista o cambiar a otro directorio."
#: ../Doc/library/tkinter.tix.rst:233
-#, fuzzy
msgid ""
"The `DirTree `_ widget displays a tree view of a directory, its previous "
"directories and its sub-directories. The user can choose one of the "
"directories displayed in the list or change to another directory."
msgstr ""
-"El widget `DirTree `_ muestra una vista de árbol de un directorio, sus "
"directorios previos y sus sub-directorios. El usuario puede escoger uno de "
"los directorios mostrados en la lista o cambiar a otro directorio."
#: ../Doc/library/tkinter.tix.rst:245
-#, fuzzy
msgid ""
"The `DirSelectDialog `_ widget presents the directories in the file "
"system in a dialog window. The user can use this dialog window to navigate "
"through the file system to select the desired directory."
msgstr ""
-"El widget `DirSelectDialog `_ presenta los directorios en el sistema de "
-"archivos en una ventana de diálogo. El usuario puede usar esta ventana de "
+"El widget `DirSelectDialog `_ presenta los directorios en el sistema "
+"de archivos en una ventana de diálogo. El usuario puede usar esta ventana de "
"diálogo para navegar a través del sistema de archivos para seleccionar el "
"directorio deseado."
@@ -377,7 +360,6 @@ msgstr ""
"seleccionados rápidamente de nuevo."
#: ../Doc/library/tkinter.tix.rst:265
-#, fuzzy
msgid ""
"The `ExFileSelectBox `_ widget is usually embedded in a "
@@ -385,14 +367,13 @@ msgid ""
"to select files. The style of the :class:`ExFileSelectBox` widget is very "
"similar to the standard file dialog on MS Windows 3.1."
msgstr ""
-"El widget `ExFileSelectBox `_ es usualmente embebido en un widget "
+"El widget `ExFileSelectBox `_ es usualmente embebido en un widget "
"*tixExFileSelectDialog*. Proporciona un método conveniente para que el "
"usuario seleccione archivos. El estilo del widget :class:`ExFileSelectBox` "
"es muy similar al diálogo de archivo estándar en MS Windows 3.1."
#: ../Doc/library/tkinter.tix.rst:278
-#, fuzzy
msgid ""
"The `FileSelectBox `_ is similar to the standard Motif(TM) file-selection "
@@ -400,7 +381,7 @@ msgid ""
"stores the files mostly recently selected into a :class:`ComboBox` widget so "
"that they can be quickly selected again."
msgstr ""
-"El widget `FileSelectBox `_ es similar al cuadro de selección de archivo "
"estándar de Motif(TM). Es generalmente usado para que el usuario escoja un "
"archivo. *FileSelectBox* guarda los archivos recientemente seleccionados en "
@@ -408,7 +389,6 @@ msgstr ""
"nuevo."
#: ../Doc/library/tkinter.tix.rst:291
-#, fuzzy
msgid ""
"The `FileEntry `_ widget can be used to input a filename. The user can "
@@ -416,7 +396,7 @@ msgid ""
"widget that sits next to the entry, which will bring up a file selection "
"dialog."
msgstr ""
-"El widget `FileEntry `_ puede ser usado para ingresar un nombre de "
"archivo. El usuario puede tipear el nombre de archivo manualmente. "
"Alternativamente, el usuario puede presionar el widget de botón que está al "
@@ -427,7 +407,6 @@ msgid "Hierarchical ListBox"
msgstr "*ListBox* jerárquico"
#: ../Doc/library/tkinter.tix.rst:307
-#, fuzzy
msgid ""
"The `HList `_ widget can be used to display any data that have a "
@@ -435,14 +414,13 @@ msgid ""
"entries are indented and connected by branch lines according to their places "
"in the hierarchy."
msgstr ""
-"El widget `HList `_ puede ser usado para mostrar cualquier dato que tenga una "
"estructura jerárquica, por ejemplo, árboles del directorio del sistema de "
"archivos. Las entradas de las líneas son sangradas y conectadas por líneas "
"de ramas de acuerdo a sus lugares en la jerarquía."
#: ../Doc/library/tkinter.tix.rst:319
-#, fuzzy
msgid ""
"The `CheckList `_ widget displays a list of items to be selected by the "
@@ -450,20 +428,19 @@ msgid ""
"except it is capable of handling many more items than checkbuttons or "
"radiobuttons."
msgstr ""
-"El widget `CheckList `_ muestra una lista de objetos a ser seleccionados "
"por el usuario. *CheckList* actúa de forma similar a los widget Tk "
"*checkbutton* o *radiobutton*, excepto que es capaz de manejar muchos más "
"objetos que los widgets *checkbutton* o *radiobutton*."
#: ../Doc/library/tkinter.tix.rst:335
-#, fuzzy
msgid ""
"The `Tree `_ widget can be used to display hierarchical data in a tree form. The "
"user can adjust the view of the tree by opening or closing parts of the tree."
msgstr ""
-"Se puede usar el widget `Tree `_ para mostrar datos jerárquicos en una forma de "
"árbol. El usuario puede ajustar la vista del árbol al abrir o cerrar partes "
"del árbol."
@@ -473,7 +450,6 @@ msgid "Tabular ListBox"
msgstr "*ListBox* Tabular"
#: ../Doc/library/tkinter.tix.rst:352
-#, fuzzy
msgid ""
"The `TList `_ widget can be used to display data in a tabular format. The "
@@ -482,7 +458,7 @@ msgid ""
"display the list entries in a two dimensional format and (2) you can use "
"graphical images as well as multiple colors and fonts for the list entries."
msgstr ""
-"Se puede usar el widget `TList `_ para mostrar datos en un formato tabular. Las "
"entradas de lista de un widget :class:`TList` son similares a las entradas "
"del widget *listbox*. Las principales diferencias son (1) el widget :class:"
@@ -495,7 +471,6 @@ msgid "Manager Widgets"
msgstr "Gestores de Widgets"
#: ../Doc/library/tkinter.tix.rst:380
-#, fuzzy
msgid ""
"The `PanedWindow `_ widget allows the user to interactively manipulate the "
@@ -503,14 +478,13 @@ msgid ""
"horizontally. The user changes the sizes of the panes by dragging the "
"resize handle between two panes."
msgstr ""
-"El widget `PanedWindow `_ permite que el usuario manipule "
"interactivamente los tamaños de varios paneles. Los paneles pueden ser "
"ordenados o verticalmente u horizontalmente. El usuario cambia los tamaños "
"de los paneles al arrastrar el asa de redimensionamiento entre dos paneles."
#: ../Doc/library/tkinter.tix.rst:392
-#, fuzzy
msgid ""
"The `ListNoteBook `_ widget is very similar to the :class:`TixNoteBook` "
@@ -520,7 +494,7 @@ msgid ""
"through these pages by choosing the name of the desired page in the :attr:"
"`hlist` subwidget."
msgstr ""
-"El widget `ListNoteBook `_ es muy similar al widget :class:`TixNoteBook`: "
"puede ser usado para mostrar muchas ventanas en un espacio limitado usando "
"la metáfora del cuaderno (*notebook*). El cuaderno es dividido en una pila "
@@ -529,7 +503,6 @@ msgstr ""
"página deseada en el *subwidget* :attr:`hlist`."
#: ../Doc/library/tkinter.tix.rst:406
-#, fuzzy
msgid ""
"The `NoteBook `_ widget can be used to display many windows in a limited "
@@ -538,7 +511,7 @@ msgid ""
"navigate through these pages by choosing the visual \"tabs\" at the top of "
"the NoteBook widget."
msgstr ""
-"Se puede usar el widget `NoteBook `_ para mostrar muchas ventanas en un "
"espacio limitado usando la metáfora del cuaderno (*notebook*). El *notebook* "
"es dividido en una pila de páginas. Sólo una de estas páginas se puede "
@@ -554,18 +527,16 @@ msgid "The :mod:`tkinter.tix` module adds:"
msgstr "El módulo :mod:`tkinter.tix` añade:"
#: ../Doc/library/tkinter.tix.rst:432
-#, fuzzy
msgid ""
"`pixmap `_ capabilities to all :mod:`tkinter.tix` and :mod:`tkinter` widgets to "
"create color images from XPM files."
msgstr ""
-"capacidades de `pixmap `_ a todos los widgets de :mod:`tkinter.tix` y :mod:"
"`tkinter` para crear imágenes de color a partir de archivos XPM."
#: ../Doc/library/tkinter.tix.rst:441
-#, fuzzy
msgid ""
"`Compound `_ image types can be used to create images that consists of multiple "
@@ -574,7 +545,7 @@ msgid ""
"compound image can be used to display a bitmap and a text string "
"simultaneously in a Tk :class:`Button` widget."
msgstr ""
-"se pueden usar los tipos de imágenes `Compound `_ para crear imágenes que "
"consisten en múltiples líneas horizontales; cada línea es compuesta de una "
"serie de objetos (texto, bitmaps, imágenes, o espacios) ordenados de "
@@ -587,13 +558,12 @@ msgid "Miscellaneous Widgets"
msgstr "Widgets Varios"
#: ../Doc/library/tkinter.tix.rst:465
-#, fuzzy
msgid ""
"The `InputOnly `_ widgets are to accept inputs from the user, which can be "
"done with the ``bind`` command (Unix only)."
msgstr ""
-"Los widgets `InputOnly `_ van a aceptar entradas del usuario, que pueden "
"ser realizadas con el comando ``bind`` (sólo para Unix)."
@@ -606,12 +576,11 @@ msgid "In addition, :mod:`tkinter.tix` augments :mod:`tkinter` by providing:"
msgstr "Además, :mod:`tkinter.tix` mejora a :mod:`tkinter` al proporcionar:"
#: ../Doc/library/tkinter.tix.rst:479
-#, fuzzy
msgid ""
"The `Form `_ geometry manager based on attachment rules for all Tk widgets."
msgstr ""
-"El gestor de geometría de `Formulario `_ basado en reglas de anexo para todos "
"los widgets Tk."
@@ -620,7 +589,6 @@ msgid "Tix Commands"
msgstr "Comandos Tix"
#: ../Doc/library/tkinter.tix.rst:490
-#, fuzzy
msgid ""
"The `tix commands `_ provide access to miscellaneous elements of :mod:`Tix`'s internal "
@@ -628,9 +596,9 @@ msgid ""
"manipulated by these methods pertains to the application as a whole, or to a "
"screen or display, rather than to a particular window."
msgstr ""
-"Los `comandos tix `_ proporcionan acceso a elementos misceláneos del estado interno "
-"de :mod:`Tix` y del contexto de la aplicación de :mod:`Tix`. La mayoría de "
+"de :mod:`Tix` y del contexto de la aplicación de :mod:`Tix`. La mayoría de "
"la información manipulada por estos métodos le pertenece a la aplicación en "
"conjunto, o a una pantalla o monitor, en vez de una ventana en particular."
@@ -784,4 +752,4 @@ msgstr ""
#: ../Doc/library/tkinter.tix.rst:11
msgid "Tix"
-msgstr ""
+msgstr "Tix"
From dc99b6c06733c8bea77703cc7354513beba88ed7 Mon Sep 17 00:00:00 2001
From: Alver J Perez <117424143+JPC501@users.noreply.github.com>
Date: Tue, 5 Dec 2023 21:54:55 -0800
Subject: [PATCH 002/117] traduccion completada (#2771)
Closes #2585
---------
Co-authored-by: rtobar
---
library/marshal.po | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/library/marshal.po b/library/marshal.po
index 2f6abec4e4..0d89ccb605 100644
--- a/library/marshal.po
+++ b/library/marshal.po
@@ -276,24 +276,24 @@ msgstr ""
#: ../Doc/library/marshal.rst:17
msgid "module"
-msgstr ""
+msgstr "module"
#: ../Doc/library/marshal.rst:17
msgid "pickle"
-msgstr ""
+msgstr "pickle"
#: ../Doc/library/marshal.rst:17
msgid "shelve"
-msgstr ""
+msgstr "shelve"
#: ../Doc/library/marshal.rst:37
msgid "object"
-msgstr ""
+msgstr "object"
#: ../Doc/library/marshal.rst:37
msgid "code"
-msgstr ""
+msgstr "code"
#: ../Doc/library/marshal.rst:37
msgid "code object"
-msgstr ""
+msgstr "code object"
From c5908f4ee36df218bea2080526b74a4ada642051 Mon Sep 17 00:00:00 2001
From: rtobar
Date: Tue, 12 Dec 2023 05:30:02 +0800
Subject: [PATCH 003/117] Ejecuta apt update antes de apt install (#2776)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
En 01f3d8c80d74c74ed15156f85d3f1e91a35bad81 supuse que apt update ya no
era necesario, pero al parecer me dejé engañar por un falso positivo.
---
.github/workflows/main.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index f3dfb25fc5..3948558b5e 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -31,6 +31,7 @@ jobs:
run: sudo sed -i '/postgresql-common/d' /var/lib/dpkg/triggers/File
- name: Instalar dependencias de sistema
run: |
+ sudo apt-get update
sudo apt-get install -y hunspell hunspell-es gettext language-pack-es locales-all
- name: Instalar dependencias de Python
run: |
From d88bff3d3d829c180c945793b7e78fc083c55e08 Mon Sep 17 00:00:00 2001
From: Pedro Kaj Kjellerup Nacht
Date: Mon, 11 Dec 2023 21:25:17 -0300
Subject: [PATCH 004/117] Set minimal workflow token permissions (#2773)
Fixes #2772.
This PR sets top-level read-only permissions on all CI/CD workflows.
Jobs that require additional permissions (`stale.yml` and
`pr-comment.yml`) are given them at the job-level.
I made more significant changes in `pr-comment.yml`. It is vulnerable to
code injection, since it runs files controlled by the PR author
(`requirements.txt` and `scripts/list_missing_entries.py`, taken from
the PR). I have therefore modified the workflow to checkout those files
from the base branch instead, ensuring we're running trusted versions of
those files.
And in order to minimize the code that has access to the
`issues/pull-requests: write` permissions, I have separated the workflow
into two sequential jobs:
1. `define-comment`, which is unprivileged and does almost everything
2. `write-comment`, which has those additional permissions and uses them
to perform the very last step of actually writing the comment on the PR.
---------
Signed-off-by: Pedro Kaj Kjellerup Nacht
Co-authored-by: rtobar
---
.github/workflows/main.yml | 3 +++
.github/workflows/pr-comment.yml | 33 +++++++++++++++++++++++++++-----
.github/workflows/stale.yaml | 6 ++++++
3 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 3948558b5e..41451bb989 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -6,6 +6,9 @@ on:
- 3.*
pull_request:
+permissions:
+ contents: read
+
jobs:
test:
name: Test
diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml
index 881e1d6bc0..3a147d5037 100644
--- a/.github/workflows/pr-comment.yml
+++ b/.github/workflows/pr-comment.yml
@@ -3,10 +3,16 @@ name: Agrega comentario a PR
on:
pull_request_target:
+permissions:
+ contents: read
+
jobs:
- pr-comment:
+ define-comment:
name: Entradas sin traducción
runs-on: ubuntu-22.04
+ outputs:
+ any_changed: ${{ steps.changed-files.outputs.any_changed }}
+ comment: ${{ steps.create-pr-comment.outputs.comment }}
steps:
- uses: actions/checkout@v4
with:
@@ -17,9 +23,18 @@ jobs:
with:
python-version: "3.11"
cache: "pip"
+ # checkout these files from the base branch to guarantee they haven't been
+ # modified by the PR
+ - uses: actions/checkout@v4
+ with:
+ path: base-branch
+ sparse-checkout-cone-mode: false
+ sparse-checkout: |
+ requirements.txt
+ scripts/list_missing_entries.py
- name: Instalar dependencias
run: |
- python -m pip install -r requirements.txt
+ python -m pip install -r base-branch/requirements.txt
- name: Obtiene lista de archivos con cambios
id: changed-files
uses: tj-actions/changed-files@v40
@@ -34,12 +49,20 @@ jobs:
run: |
{
echo 'comment<> "$GITHUB_OUTPUT"
+
+ write-comment:
+ runs-on: ubuntu-22.04
+ needs: [define-comment]
+ if: needs.define-comment.outputs.any_changed == 'true'
+ permissions:
+ issues: write
+ pull-requests: write
+ steps:
- name: Agregar comentario con entradas faltantes
- if: steps.changed-files.outputs.any_changed == 'true'
uses: thollander/actions-comment-pull-request@v2
with:
- message: ${{ steps.create-pr-comment.outputs.comment }}
+ message: ${{ needs.define-comment.outputs.comment }}
comment_tag: missing-entries
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
index 6004689909..7924b86358 100644
--- a/.github/workflows/stale.yaml
+++ b/.github/workflows/stale.yaml
@@ -3,9 +3,15 @@ on:
schedule:
- cron: '30 1 * * *'
+permissions:
+ contents: read
+
jobs:
stale:
runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ pull-requests: write
steps:
- uses: actions/stale@v8
with:
From a60589152684872359c4b90f939605a727a88f66 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 12 Dec 2023 08:33:15 +0800
Subject: [PATCH 005/117] Bump actions/stale from 8 to 9 (#2774)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9.
Release notes
Sourced from actions/stale's
releases.
v9.0.0
Breaking Changes
- Action is now stateful: If the action ends because of operations-per-run
then the next run will start from the first unprocessed issue skipping
the issues processed during the previous run(s). The state is reset when
all the issues are processed. This should be considered for scheduling
workflow runs.
- Version 9 of this action updated the runtime to Node.js 20. All
scripts are now run with Node.js 20 instead of Node.js 16 and are
affected by any breaking changes between Node.js 16 and 20.
What Else Changed
- Performance optimization that removes unnecessary API calls by
@dsame #1033
fixes #792
- Logs displaying current github API rate limit by
@dsame #1032
addresses #1029
For more information, please read the action documentation
and its section
about statefulness
New Contributors
Full Changelog: https://github.com/actions/stale/compare/v8...v9.0.0
Changelog
Sourced from actions/stale's
changelog.
Changelog
[7.0.0]
:warning: Breaking change :warning:
[6.0.1]
Update @actions/core to v1.10.0 (#839)
[6.0.0]
:warning: Breaking change :warning:
Issues/PRs default close-issue-reason is now
not_planned(#789)
[5.1.0]
Don't
process stale issues right after they're marked stale
[Add close-issue-reason option]#764#772
Various dependabot/dependency updates
4.1.0
(2021-07-14)
Features
4.0.0
(2021-07-14)
Features
Bug Fixes
- dry-run: forbid mutations in dry-run (#500)
(f1017f3),
closes #499
- logs: coloured logs (#465)
(5fbbfba)
- operations: fail fast the current batch to respect
the operations limit (#474)
(5f6f311),
closes #466
- label comparison: make label comparison case
insensitive #517,
closes #516
- filtering comments by actor could have strange
behavior: "stale" comments are now detected based on
if the message is the stale message not who made the comment(#519),
fixes #441, #509, #518
Breaking Changes
... (truncated)
Commits
28ca103
Upgrade Node to v20 (#1110)
b69b346
build(deps-dev): bump @types/node from 18.16.18 to 20.5.1
(#1079)
88a6f4f
build(deps-dev): bump typescript from 5.1.3 to 5.2.2 (#1083)
796531a
Merge pull request #1080
from akv-platform/fix-delete-cache
8986f62
Don not try to delete cache if it does not exists
cab99b3
fix typo proceeded/processed
184e7af
Merge pull request #1064
from actions/dependabot/npm_and_yarn/typescript-esli...
523885c
chore: update eslint-plugin, parser and eslint-plugin-jest
2487a1d
build(deps-dev): bump
@typescript-eslint/eslint-plugin
60c722e
Merge pull request #1063
from actions/dependabot/npm_and_yarn/jest-29.6.2
- Additional commits viewable in compare
view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rtobar
---
.github/workflows/stale.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
index 7924b86358..8c32a55525 100644
--- a/.github/workflows/stale.yaml
+++ b/.github/workflows/stale.yaml
@@ -13,7 +13,7 @@ jobs:
issues: write
pull-requests: write
steps:
- - uses: actions/stale@v8
+ - uses: actions/stale@v9
with:
stale-pr-label: 'needs decision'
stale-issue-label: 'stale'
From 8eb00d7e648d77e0309d6c694d1b4c30acedc6a6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 12 Dec 2023 08:34:39 +0800
Subject: [PATCH 006/117] Bump actions/setup-python from 4 to 5 (#2775)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps [actions/setup-python](https://github.com/actions/setup-python)
from 4 to 5.
Release notes
Sourced from actions/setup-python's
releases.
v5.0.0
What's Changed
In scope of this release, we update node version runtime from node16
to node20 (actions/setup-python#772).
Besides, we update dependencies to the latest versions.
Full Changelog: https://github.com/actions/setup-python/compare/v4.8.0...v5.0.0
v4.8.0
What's Changed
In scope of this release we added support for GraalPy (actions/setup-python#694).
You can use this snippet to set up GraalPy:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 'graalpy-22.3'
- run: python my_script.py
Besides, the release contains such changes as:
New Contributors
Full Changelog: https://github.com/actions/setup-python/compare/v4...v4.8.0
v4.7.1
What's Changed
Full Changelog: https://github.com/actions/setup-python/compare/v4...v4.7.1
v4.7.0
In scope of this release, the support for reading python version from
pyproject.toml was added (actions/setup-python#669).
- name: Setup Python
uses: actions/setup-python@v4
</tr></table>
... (truncated)
Commits
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rtobar
---
.github/workflows/main.yml | 2 +-
.github/workflows/pr-comment.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 41451bb989..2f404a9f51 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -24,7 +24,7 @@ jobs:
# Instalación de dependencias
- name: Preparar Python v3.11
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml
index 3a147d5037..8f52ea0dcb 100644
--- a/.github/workflows/pr-comment.yml
+++ b/.github/workflows/pr-comment.yml
@@ -19,7 +19,7 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
persist-credentials: false
- name: Preparar Python v3.11
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
From 23991c3d509c8cb223f1a8dd262988d844e42f34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Tue, 12 Dec 2023 13:53:20 +0100
Subject: [PATCH 007/117] Traducido archivo library/binascii.po (#2769)
Closes #2581
---
library/binascii.po | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/library/binascii.po b/library/binascii.po
index 8359ddcf4e..9bc1582bb1 100644
--- a/library/binascii.po
+++ b/library/binascii.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: 2022-10-28 17:49-0500\n"
+"PO-Revision-Date: 2023-12-11 17:00+0100\n"
"Last-Translator: José Luis Salgado Banda\n"
-"Language: es_CO\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_CO\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/library/binascii.rst:2
msgid ":mod:`binascii` --- Convert between binary and ASCII"
@@ -106,6 +107,7 @@ msgstr ""
"Si *strict_mode* es verdadero, solo se convertirán los datos en base64 "
"válidos. Los datos en base64 no válidos lanzarán :exc:`binascii.Error`."
+# la traducción es correcta
#: ../Doc/library/binascii.rst:64
msgid "Valid base64:"
msgstr "base64 válido:"
@@ -318,13 +320,12 @@ msgstr ""
#: ../Doc/library/binascii.rst:8
msgid "module"
-msgstr ""
+msgstr "module"
#: ../Doc/library/binascii.rst:8
msgid "uu"
-msgstr ""
+msgstr "uu"
#: ../Doc/library/binascii.rst:8
-#, fuzzy
msgid "base64"
-msgstr "base64 válido:"
+msgstr "base64"
From c4da8b5079ddacae4a2f33046c1eed5673fb2f16 Mon Sep 17 00:00:00 2001
From: Luis Enriquez Torres
Date: Wed, 13 Dec 2023 21:12:47 +0100
Subject: [PATCH 008/117] Traducido library/warnings.po (#2764)
closes #2586
Tengo algunas dudas en la traduccion que hice en las lineas 829-837. Les
dejo mirar y convenimos una traduccion adecuada ;)
---------
Co-authored-by: rtobar
---
TRANSLATORS | 1 +
library/warnings.po | 26 ++++++++++++++++++--------
2 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/TRANSLATORS b/TRANSLATORS
index bbfc775a6f..11283fc879 100644
--- a/TRANSLATORS
+++ b/TRANSLATORS
@@ -158,6 +158,7 @@ Lis
Lucas Miranda
Luciano Bovio (@lbovio)
Luis A. Gonzalez (@sublian)
+Luis Enriquez Torres (@lenriquezt)
Luis Llave (@llaveluis)
Luis Sánchez (@LuisAISanchez)
Maia
diff --git a/library/warnings.po b/library/warnings.po
index 28d498b2c3..005d393865 100644
--- a/library/warnings.po
+++ b/library/warnings.po
@@ -280,11 +280,11 @@ msgid ":exc:`ResourceWarning`"
msgstr ":exc:`ResourceWarning`"
#: ../Doc/library/warnings.rst:107
-#, fuzzy
msgid ""
"Base category for warnings related to resource usage (ignored by default)."
msgstr ""
-"Categoría base para las advertencias relacionadas con el uso de los recursos."
+"Categoría base para las advertencias relacionadas con el uso de los recursos "
+"(ignorada por defecto)."
#: ../Doc/library/warnings.rst:111
msgid ""
@@ -806,14 +806,13 @@ msgstr ""
"usado por funciones de envoltura escritas en Python, como esta::"
#: ../Doc/library/warnings.rst:413
-#, fuzzy
msgid ""
"This makes the warning refer to ``deprecated_api``'s caller, rather than to "
"the source of ``deprecated_api`` itself (since the latter would defeat the "
"purpose of the warning message)."
msgstr ""
-"Esto hace que la advertencia se refiera al invocador de :func:`deprecation`, "
-"en lugar de a la fuente de :func:`deprecation` en sí (ya que esta última "
+"Esto hace que la advertencia se refiera al invocador de ``deprecated_api``, "
+"en lugar de a la fuente de ``deprecated_api`` en sí (ya que esta última "
"perdería el propósito del mensaje de advertencia)."
#: ../Doc/library/warnings.rst:417
@@ -827,6 +826,15 @@ msgid ""
"stacklevel)``. To cause a warning to be attributed to the caller from "
"outside of the current package you might write::"
msgstr ""
+"El parámetro de palabra clave *skip_file_prefixes* se puede utilizar para "
+"indicar qué *frames* de pila se ignoran al contar los niveles de pila. Esto "
+"puede ser útil cuando desea que la advertencia aparezca siempre en los "
+"sitios de llamadas fuera de un paquete cuando una constante *stacklevel* no "
+"se ajusta a todas las rutas de llamadas o en otro caso es difícil de "
+"mantener. Si se proporciona, debe ser una tupla de cadenas de caracteres. "
+"Cuando se proporcionan prefijos, el *stacklevel* se sobreescribe "
+"implícitamente con ``max(2, stacklevel)``. Para hacer que se atribuya una "
+"advertencia al invocador desde afuera del paquete actual, puede escribir::"
#: ../Doc/library/warnings.rst:440
msgid ""
@@ -834,6 +842,9 @@ msgid ""
"``package.higher.another_way()`` call sites only from calling code living "
"outside of ``example`` package."
msgstr ""
+"Esto hace que la advertencia se refiera a ambos lugares de llamada ``example."
+"lower.one_way()`` y ``package.higher.another_way()`` únicamente desde el "
+"código de llamada que se encuentra fuera del paquete ``example``."
#: ../Doc/library/warnings.rst:444 ../Doc/library/warnings.rst:470
msgid ""
@@ -849,7 +860,7 @@ msgstr "Añadido parámetro *source*."
#: ../Doc/library/warnings.rst:450
msgid "Added *skip_file_prefixes*."
-msgstr ""
+msgstr "Añadido *skip_file_prefixes*."
#: ../Doc/library/warnings.rst:456
msgid ""
@@ -1026,6 +1037,5 @@ msgid "Added the *action*, *category*, *lineno*, and *append* parameters."
msgstr "Agrega los parámetros *action*, *category*, *lineno* y *append*."
#: ../Doc/library/warnings.rst:9
-#, fuzzy
msgid "warnings"
-msgstr "Advertencias de prueba"
+msgstr "warnings"
From 453257bc3324aab3a916ff2d1687a021b407e3a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Wed, 13 Dec 2023 21:16:41 +0100
Subject: [PATCH 009/117] Traducido archivo library/collections.abc.po (#2767)
Closes #2584
---
library/collections.abc.po | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/library/collections.abc.po b/library/collections.abc.po
index 541a1f4ef0..d754127629 100644
--- a/library/collections.abc.po
+++ b/library/collections.abc.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: 2022-12-08 16:15-0300\n"
+"PO-Revision-Date: 2023-12-11 20:13+0100\n"
"Last-Translator: Sofía Denner \n"
-"Language: es_AR\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_AR\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/library/collections.abc.rst:2
msgid ":mod:`collections.abc` --- Abstract Base Classes for Containers"
@@ -35,7 +36,6 @@ msgid "**Source code:** :source:`Lib/_collections_abc.py`"
msgstr "**Código fuente:** :source:`Lib/_collections_abc.py`"
#: ../Doc/library/collections.abc.rst:23
-#, fuzzy
msgid ""
"This module provides :term:`abstract base classes ` "
"that can be used to test whether a class provides a particular interface; "
@@ -43,7 +43,7 @@ msgid ""
msgstr ""
"Este módulo proporciona :term:`clases base abstractas ` "
"que pueden usarse para probar si una clase proporciona una interfaz "
-"específica; por ejemplo, si es hashable o si es un mapeo."
+"específica; por ejemplo, si es :term:`hashable` o si es un mapeo."
#: ../Doc/library/collections.abc.rst:27
msgid ""
@@ -459,14 +459,12 @@ msgid "``aclose``, ``__aiter__``, ``__anext__``"
msgstr "``aclose``, ``__aiter__``, ``__anext__``"
#: ../Doc/library/collections.abc.rst:180
-#, fuzzy
msgid ":class:`Buffer` [1]_"
-msgstr ":class:`Iterator` [1]_"
+msgstr ":class:`Buffer` [1]_"
#: ../Doc/library/collections.abc.rst:180
-#, fuzzy
msgid "``__buffer__``"
-msgstr "``__iter__``"
+msgstr "``__buffer__``"
#: ../Doc/library/collections.abc.rst:185
msgid "Footnotes"
@@ -599,6 +597,10 @@ msgid ""
"union, like ``bytes | bytearray``, or :class:`collections.abc.Buffer`. For "
"use as an ABC, prefer :class:`Sequence` or :class:`collections.abc.Buffer`."
msgstr ""
+"La ABC :class:`ByteString` está obsoleta. Para usar con ``type hints``, "
+"mejor use una unión del tipo ``bytes | bytearray``, o :class:`collections."
+"abc.Buffer`. Para usar como una ABC, mejor use :class:`Sequence` o :class:"
+"`collections.abc.Buffer`."
#: ../Doc/library/collections.abc.rst:285
msgid "ABCs for read-only and mutable sets."
@@ -701,6 +703,8 @@ msgid ""
"ABC for classes that provide the :meth:`~object.__buffer__` method, "
"implementing the :ref:`buffer protocol `. See :pep:`688`."
msgstr ""
+"ABC para clases que proveen el método :meth:`~object.__buffer__`, "
+"implementando el :ref:`protocolo búfer `. Ver :pep:`688`."
#: ../Doc/library/collections.abc.rst:364
msgid "Examples and Recipes"
@@ -769,7 +773,6 @@ msgstr ""
"las otras operaciones seguirán automáticamente su ejemplo."
#: ../Doc/library/collections.abc.rst:421
-#, fuzzy
msgid ""
"The :class:`Set` mixin provides a :meth:`_hash` method to compute a hash "
"value for the set; however, :meth:`__hash__` is not defined because not all "
@@ -779,9 +782,10 @@ msgid ""
msgstr ""
"El mixin :class:`Set` proporciona un método :meth:`_hash` para calcular un "
"valor hash para el conjunto; sin embargo, :meth:`__hash__` no está definido "
-"porque no todos los conjuntos son encadenados o inmutables. Para agregar "
-"capacidad de encadenamiento en conjuntos que usan mixin, herede de ambos :"
-"meth:`Set` y :meth:`Hashable`, luego defina ``__hash__ = Set._hash``."
+"porque no todos los conjuntos son :term:`hashable` o inmutables. Para "
+"agregar la capacidad de encadenamiento en conjuntos usando métodos mixin, "
+"herede de ambos :meth:`Set` y :meth:`Hashable`, luego defina ``__hash__ = "
+"Set._hash``."
#: ../Doc/library/collections.abc.rst:429
msgid ""
From 58364e25ef9bc1f2cfab3c8d173b14255a8b5dae Mon Sep 17 00:00:00 2001
From: "Carlos A. Crespo"
Date: Thu, 14 Dec 2023 00:50:49 -0300
Subject: [PATCH 010/117] script to search for and complete probable 'index
entries' (#2706)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Si trabajamos con el `.po` directo no es sencillo identificar aquellas
entradas que están vinculadas con la contrucción del índice general (y
no con la página específica que se está traduciendo) .
[Acá](https://t.me/python_docs_es/21686) más contexto.
Dado que mayormente son nombres de funciones, clases, etc. una de las
propuestas es mantener el índice sin traducir y asegurar consistencia en
los conceptos.
Este script toma un `.po` específico (o varios) y recorre una a una las
entradas, **identifica posibles entradas de índice** -a partir del orden
en el file- y **ofrece completar la traducción** con el mismo contenido
que el original.
---------
Co-authored-by: rtobar
---
scripts/complete_index.py | 78 +++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 scripts/complete_index.py
diff --git a/scripts/complete_index.py b/scripts/complete_index.py
new file mode 100644
index 0000000000..2f63644537
--- /dev/null
+++ b/scripts/complete_index.py
@@ -0,0 +1,78 @@
+"""
+Script to identify and complete general index entries with original content.
+
+This script processes .po files, identifies out-of-order entries based on the
+source order, and completes them with original content.
+
+Usage:
+ python script_name.py [list of .po files]
+
+If no list of .po files is provided, the script processes all .po files in the
+current directory and its immediate subdirectories.
+"""
+
+from pathlib import Path
+import sys
+
+import polib
+
+
+def out_of_order_entries(po_file):
+ """
+ Compare the order of source lines against the order in which they appear in
+ the file, and return a generator with entries that are out of order.
+ """
+ po_entries = [entry for entry in po_file if not entry.obsolete]
+ val_max = 0
+
+ for entry in po_entries:
+ source_index = int(entry.occurrences[0][1])
+
+ if source_index <= val_max:
+ yield entry
+
+ val_max = max(val_max, source_index)
+
+
+def complete_index(po_files=None):
+ """
+ Identifies general index entries based on source order and completes them
+ with original content.
+
+ args:
+ po_files: List of .po files to process. If not provided, it processes
+ all .po files in the current directory and immediate subdirectories.
+ """
+
+ # Read .po files
+ if not po_files:
+ po_files = Path(".").glob("**/*.po")
+
+ for po_file_path in po_files:
+
+ try:
+ po_file = polib.pofile(po_file_path, wrapwidth=79)
+
+ # Ask to complete entries out of order with original text
+ needs_save = False
+ for entry in out_of_order_entries(po_file):
+ user_input = input(f"\n{entry}\nIs this a index entry? (y/N):")
+ if user_input.lower() == "y":
+ entry.msgstr = entry.msgid
+ needs_save = True
+ if needs_save:
+ po_file.save()
+
+ except KeyboardInterrupt:
+ break
+
+ except Exception as e:
+ print(f"Error! file {po_file_path}: {e}\n")
+
+ else:
+ print(f"\n---\n{po_file_path} processed!\n---")
+
+
+if __name__ == "__main__":
+ po_files = sys.argv[1:]
+ complete_index(po_files)
From ffef2fbe71f3c8eaff6350605fd8bd4f32268bb9 Mon Sep 17 00:00:00 2001
From: Andrea Alegre
Date: Sat, 23 Dec 2023 18:37:30 +0100
Subject: [PATCH 011/117] =?UTF-8?q?Notas=20migraci=C3=B3n=20(#2731)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #2385
---------
Co-authored-by: rtobar
Co-authored-by: Carlos A. Crespo
Co-authored-by: Marcos Medrano <786907+mmmarcos@users.noreply.github.com>
---
.overrides/faq.rst | 6 +++---
.overrides/progress.rst | 2 +-
.overrides/upgrade-python-version.rst | 30 ++++++++++++++++-----------
3 files changed, 22 insertions(+), 16 deletions(-)
diff --git a/.overrides/faq.rst b/.overrides/faq.rst
index c8787919d8..11f9a09e63 100644
--- a/.overrides/faq.rst
+++ b/.overrides/faq.rst
@@ -204,9 +204,9 @@ repositorio principal de la traducción). Se hace de la siguiente manera::
Luego nos vamos a nuestra rama local, confirmamos e impactamos esos cambios::
- git checkout 3.11
- git merge upstream/3.11
- git push origin 3.11
+ git checkout 3.12
+ git merge upstream/3.12
+ git push origin 3.12
¡Eso es todo!
diff --git a/.overrides/progress.rst b/.overrides/progress.rst
index 1c7e357a49..f17fb86017 100644
--- a/.overrides/progress.rst
+++ b/.overrides/progress.rst
@@ -10,7 +10,7 @@ y otras estadísticas.
.. note::
- Estas listas se actualiza automáticamente cuando Pull Requests se *mergean* a la rama ``3.11``.
+ Estas listas se actualiza automáticamente cuando Pull Requests se *mergean* a la rama ``3.12``.
En progreso
diff --git a/.overrides/upgrade-python-version.rst b/.overrides/upgrade-python-version.rst
index 01ae80bf5e..c3f9fd3d2a 100644
--- a/.overrides/upgrade-python-version.rst
+++ b/.overrides/upgrade-python-version.rst
@@ -39,6 +39,12 @@ We are currently in branch 3.11, and we want to update the strings from 3.12.
.. note:: This is important, so the later ``make build`` step will not reset
the cpython submodule to the previous hash on the old branch.
+#. Create a virtual environment and install the dependencies of the project::
+
+ python -m venv env
+ source env/bin/activate # Windows: env\Scripts\activate.bat
+ pip install -r requirements.txt
+
#. Verify that the docs build with the new versions you changed from
``requirements.txt`` mainly the sphinx version::
@@ -53,7 +59,7 @@ We are currently in branch 3.11, and we want to update the strings from 3.12.
#. Clean possible garbage (form previous builds)::
- rm -rf _build ../python-docs-es-pot cpython/Doc/CONTRIBUTING.rst cpython/Doc/upgrade-python-version.rst
+ rm -rf _build ../python-docs-es-pot cpython/Doc/CONTRIBUTING.rst cpython/Doc/upgrade-python-version.rst reviewers-guide.rst
.. note::
@@ -61,13 +67,6 @@ We are currently in branch 3.11, and we want to update the strings from 3.12.
in the next step. It's included here because it might be a leftover
from previous attempts on your machine.
-#. Create a virtual environment and install the dependencies of the project::
-
- python -m venv env
- source env/bin/activate # Windows: env\Scripts\activate.bat
- pip install -r requirements.txt
-
-
#. Create the .po files from the new source code. This will generate all the .po files for version 3.11::
SPHINX_GETTEXT=True sphinx-build -j auto -b gettext -d _build/doctrees . ../python-docs-es-pot
@@ -114,9 +113,16 @@ We are currently in branch 3.11, and we want to update the strings from 3.12.
of the new branch is done. So prepare a cup of any hot beverage
and fix them.
-Once the process is completely and you are happy with the results,
-there are a few extra steps to finish the process::
+**Once the process is completely and you are happy with the results,
+there are a few extra steps to finish the process**
+
+#. Upgrade GitHub Actions to use Python 3.12, by updating Python version to 3.12 in the ``.github/workflows/main.yml`` file.
-#. Upgrade GitHub Actions to use Python 3.12
+#. Update the *Read the Docs* project to use 3.12 in the build and also as default branch/version.
+
+#. Commit all the newly created files locally.
+
+#. Create branch 3.12 in the repository in order to merge changes there.
+
+#. Inside the github project settings, set 3.12 branch as the default branch for the repository.
-#. Update Read the Docs project to use 3.12 in the build and also as default branch/version
From aabd0706e6f44cc033ebe9ba0ad139c154c090d1 Mon Sep 17 00:00:00 2001
From: Carlos Mena <50986837+carlosm00@users.noreply.github.com>
Date: Sat, 23 Dec 2023 18:56:01 +0100
Subject: [PATCH 012/117] Traduccion audioop.po (#2779)
Closes https://github.com/python/python-docs-es/issues/2603
---
TRANSLATORS | 3 ++-
library/audioop.po | 15 ++++++++-------
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/TRANSLATORS b/TRANSLATORS
index 11283fc879..52fad55e42 100644
--- a/TRANSLATORS
+++ b/TRANSLATORS
@@ -43,6 +43,7 @@ Carlos Bernad (@carlos-bernad)
Carlos Enrique Carrasco Varas (@KrlitosForever)
Carlos Joel Delgado Pizarro (@c0x6a)
Carlos Martel Lamas (@Letram)
+Carlos Mena Pérez (@carlosm00)
Catalina Arrey Amunátegui (@CatalinaArrey)
Claudia Millán Nebot (@clacri @cheshireminima)
Constanza Areal (@geekcoty)
@@ -239,4 +240,4 @@ Xavi Francisco (@srxavi)
Xavi Rambla Centellas (@xavirambla)
Yennifer Paola Herrera Ariza (@Yenniferh)
Yohanna Padrino (@Yo-hanaPR)
-zejiran
\ No newline at end of file
+zejiran
diff --git a/library/audioop.po b/library/audioop.po
index 2d5e123100..6ecec92db8 100644
--- a/library/audioop.po
+++ b/library/audioop.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: 2022-11-21 16:07-0300\n"
+"PO-Revision-Date: 2023-12-22 11:47+0100\n"
"Last-Translator: Sofía Denner \n"
-"Language: es\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.1.1\n"
#: ../Doc/library/audioop.rst:2
msgid ":mod:`audioop` --- Manipulate raw audio data"
@@ -446,16 +447,16 @@ msgstr ""
#: ../Doc/library/audioop.rst:24
msgid "Intel/DVI ADPCM"
-msgstr ""
+msgstr "Intel/DVI ADPCM"
#: ../Doc/library/audioop.rst:24
msgid "ADPCM, Intel/DVI"
-msgstr ""
+msgstr "ADPCM, Intel/DVI"
#: ../Doc/library/audioop.rst:24
msgid "a-LAW"
-msgstr ""
+msgstr "a-LAW"
#: ../Doc/library/audioop.rst:24
msgid "u-LAW"
-msgstr ""
+msgstr "u-LAW"
From 00262c703dc751fd6e75923ad502638c9c363624 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Sun, 31 Dec 2023 15:08:01 +0100
Subject: [PATCH 013/117] Traducido archivo library/configparser.po (#2782)
Closes #2577
---
library/configparser.po | 54 ++++++++++++++++++++---------------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/library/configparser.po b/library/configparser.po
index 2e2eb1268c..4f4c04b9f3 100644
--- a/library/configparser.po
+++ b/library/configparser.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: 2022-10-27 10:14+0100\n"
+"PO-Revision-Date: 2023-12-24 12:44+0100\n"
"Last-Translator: Claudia Millan \n"
-"Language: es_PE\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_PE\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/library/configparser.rst:2
msgid ":mod:`configparser` --- Configuration file parser"
@@ -51,42 +52,41 @@ msgstr ""
"la versión extendida de la sintaxis INI, utilizada en el registro de Windows."
#: ../Doc/library/configparser.rst:38
-#, fuzzy
msgid "Module :mod:`tomllib`"
-msgstr "Módulo :mod:`json`"
+msgstr "Módulo :mod:`tomllib`"
#: ../Doc/library/configparser.rst:37
msgid ""
"TOML is a well-specified format for application configuration files. It is "
"specifically designed to be an improved version of INI."
msgstr ""
+"TOML es un formato bien-especificado para archivos de configuración de "
+"aplicaciones. Está específicamente diseñado para ser una versión mejorada de "
+"INI."
#: ../Doc/library/configparser.rst:42
msgid "Module :mod:`shlex`"
msgstr "Módulo :mod:`shlex`"
#: ../Doc/library/configparser.rst:41
-#, fuzzy
msgid ""
"Support for creating Unix shell-like mini-languages which can also be used "
"for application configuration files."
msgstr ""
"Soporta la creación de un mini-lenguaje parecido a shell de Unix, que puede "
-"utilizarse como formato alternativo para archivos de configuración de "
-"aplicaciones."
+"utilizarse para archivos de configuración de aplicaciones."
#: ../Doc/library/configparser.rst:45
msgid "Module :mod:`json`"
msgstr "Módulo :mod:`json`"
#: ../Doc/library/configparser.rst:45
-#, fuzzy
msgid ""
"The ``json`` module implements a subset of JavaScript syntax which is "
"sometimes used for configuration, but does not support comments."
msgstr ""
-"El módulo json implementa un subconjunto de la sintaxis de JavaScript, que "
-"también puede utilizarse para este propósito."
+"El módulo ``json`` implementa un subconjunto de la sintaxis de JavaScript, "
+"que también puede utilizarse para configuración, pero no soporta comentarios."
#: ../Doc/library/configparser.rst:60
msgid "Quick Start"
@@ -229,7 +229,6 @@ msgstr ""
# No puedo usar "valor por defecto", ya que hay otros valores por defecto (los
# que se asignan en la sección DEFAULT).
#: ../Doc/library/configparser.rst:224
-#, fuzzy
msgid ""
"Please note that default values have precedence over fallback values. For "
"instance, in our example the ``'CompressionLevel'`` key was specified only "
@@ -240,7 +239,7 @@ msgstr ""
"Por favor, fíjate que los valores por defecto tienen prioridad sobre los "
"valores de contingencia (*fallback*). Así, en nuestro ejemplo, la clave "
"``'CompressionLevel'`` sólo fue especificada en la sección ``'DEFAULT'``. Si "
-"tratamos de obtener su valor de la sección ``'topsecret.server.com'``, "
+"tratamos de obtener su valor de la sección ``'topsecret.server.example'``, "
"obtendremos siempre el valor por defecto, incluso si especificamos un valor "
"de contingencia:"
@@ -1045,7 +1044,6 @@ msgstr ""
"serán serializadas sin el delimitador final."
#: ../Doc/library/configparser.rst:936
-#, fuzzy
msgid ""
"When *default_section* is given, it specifies the name for the special "
"section holding default values for other sections and interpolation purposes "
@@ -1058,7 +1056,10 @@ msgstr ""
"especial que contiene valores por defecto para otras secciones y con "
"propósito de interpolación (habitualmente denominada ``\"DEFAULT\"``). Este "
"valor puede obtenerse y modificarse en tiempo de ejecución utilizando el "
-"atributo de instancia ``default_section``."
+"atributo de instancia ``default_section``. Esto no volverá a evaluar un "
+"fichero de configuración previamente analizado sintácticamente (*parsed*), "
+"pero se usará al escribir configuraciones de analizado sintáctico (*parsed*) "
+"en un nuevo fichero de configuración."
#: ../Doc/library/configparser.rst:943
msgid ""
@@ -1705,13 +1706,13 @@ msgstr ""
"archivo."
#: ../Doc/library/configparser.rst:1348
-#, fuzzy
msgid ""
"The ``filename`` attribute and :meth:`__init__` constructor argument were "
"removed. They have been available using the name ``source`` since 3.2."
msgstr ""
-"El atributo ``filename`` y el argumento :meth:`__init__` fueron renombrados "
-"a ``source`` por consistencia."
+"El atributo ``filename`` y el argumento del constructor :meth:`__init__` "
+"fueron eliminados. Estos han estado disponibles usando el nombre ``source`` "
+"desde 3.2."
#: ../Doc/library/configparser.rst:1353
msgid "Footnotes"
@@ -1729,36 +1730,35 @@ msgstr ""
#: ../Doc/library/configparser.rst:16
msgid ".ini"
-msgstr ""
+msgstr ".ini"
#: ../Doc/library/configparser.rst:16
msgid "file"
-msgstr ""
+msgstr "file"
#: ../Doc/library/configparser.rst:16
msgid "configuration"
-msgstr ""
+msgstr "configuration"
#: ../Doc/library/configparser.rst:16
msgid "ini file"
-msgstr ""
+msgstr "ini file"
#: ../Doc/library/configparser.rst:16
msgid "Windows ini file"
-msgstr ""
+msgstr "Windows ini file"
#: ../Doc/library/configparser.rst:335
msgid "% (percent)"
-msgstr ""
+msgstr "% (percent)"
#: ../Doc/library/configparser.rst:335 ../Doc/library/configparser.rst:368
-#, fuzzy
msgid "interpolation in configuration files"
-msgstr "Interpolación de valores"
+msgstr "interpolation in configuration files"
#: ../Doc/library/configparser.rst:368
msgid "$ (dollar)"
-msgstr ""
+msgstr "$ (dollar)"
#~ msgid "Use :meth:`read_file` instead."
#~ msgstr "Utilice :meth:`read_file` en su lugar."
From d506715567730734dfaf0f806538a47db3ee42d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Sun, 31 Dec 2023 15:13:08 +0100
Subject: [PATCH 014/117] Traducido archivo library/winreg.po (#2783)
Closes #2576
---
library/winreg.po | 48 +++++++++++++++++++++++------------------------
1 file changed, 23 insertions(+), 25 deletions(-)
diff --git a/library/winreg.po b/library/winreg.po
index 169e9f1047..36155c62bb 100644
--- a/library/winreg.po
+++ b/library/winreg.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: 2020-10-11 15:34-0500\n"
+"PO-Revision-Date: 2023-12-24 13:13+0100\n"
"Last-Translator: Juan Alegría \n"
-"Language: es_CO\n"
"Language-Team: \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_CO\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/library/winreg.rst:2
msgid ":mod:`winreg` --- Windows registry access"
@@ -237,7 +238,6 @@ msgstr ""
"posible que la clave no tenga subclaves."
#: ../Doc/library/winreg.rst:156
-#, fuzzy
msgid ""
"*access* is an integer that specifies an access mask that describes the "
"desired security access for the key. Default is :const:`KEY_WOW64_64KEY`. "
@@ -246,8 +246,9 @@ msgid ""
msgstr ""
"*access* es un número entero que especifica una máscara de acceso que "
"describe el acceso de seguridad deseado para la clave. El valor "
-"predeterminado es :const:`KEY_WOW64_64KEY`. Ver :ref:`Access Rights ` para otros valores permitidos."
+"predeterminado es :const:`KEY_WOW64_64KEY`. En Windows de 32-bit, las "
+"constantes WOW64 son ignoradas. Ver :ref:`Access Rights ` "
+"para otros valores permitidos."
#: ../Doc/library/winreg.rst:166
msgid "On unsupported Windows versions, :exc:`NotImplementedError` is raised."
@@ -455,7 +456,6 @@ msgstr ""
"(FAT), es posible que el nombre del archivo no tenga extensión."
#: ../Doc/library/winreg.rst:290
-#, fuzzy
msgid ""
"A call to :func:`LoadKey` fails if the calling process does not have the :c:"
"data:`!SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different "
@@ -463,7 +463,7 @@ msgid ""
"microsoft.com/en-us/library/ms724889%28v=VS.85%29.aspx>`__ for more details."
msgstr ""
"Una llamada a :func:`LoadKey` falla si el proceso de llamada no tiene el "
-"privilegio :const:`SE_RESTORE_PRIVILEGE`. Tenga en cuenta que los "
+"privilegio :c:data:`!SE_RESTORE_PRIVILEGE`. Tenga en cuenta que los "
"privilegios son diferentes de los permisos; consulte la `RegLoadKey "
"documentation `__ para obtener más detalles."
@@ -648,7 +648,6 @@ msgstr ""
"asignación de archivos (FAT) mediante el método :meth:`LoadKey`."
#: ../Doc/library/winreg.rst:415
-#, fuzzy
msgid ""
"If *key* represents a key on a remote computer, the path described by "
"*file_name* is relative to the remote computer. The caller of this method "
@@ -658,12 +657,12 @@ msgid ""
"library/ms724878%28v=VS.85%29.aspx>`__ for more details."
msgstr ""
"Si *key* representa una clave en una computadora remota, la ruta descrita "
-"por *file_name* es relativa a la computadora remota. La persona que llama a "
-"este método debe poseer el privilegio de seguridad :const:"
-"`SeBackupPrivilege`. Tenga en cuenta que los privilegios son diferentes a "
-"los permisos -- consulte la documentación sobre conflictos entre derechos de "
-"usuario y permisos `__ para más detalles."
+"por *file_name* es relativa a la computadora remota. El invocador de este "
+"método debe poseer el privilegio de seguridad **SeBackupPrivilege**. Tenga "
+"en cuenta que los privilegios son diferentes a los permisos -- consulte la "
+"`documentación sobre conflictos entre derechos de usuario y permisos "
+"`__ "
+"para más detalles."
#: ../Doc/library/winreg.rst:423
msgid "This function passes ``NULL`` for *security_attributes* to the API."
@@ -854,12 +853,11 @@ msgid "Constants"
msgstr "Constantes"
#: ../Doc/library/winreg.rst:539
-#, fuzzy
msgid ""
"The following constants are defined for use in many :mod:`winreg` functions."
msgstr ""
"Las siguientes constantes están definidas para su uso en muchas funciones :"
-"mod:`_winreg`."
+"mod:`winreg`."
#: ../Doc/library/winreg.rst:544
msgid "HKEY_* Constants"
@@ -1015,22 +1013,22 @@ msgstr ""
"msdn.microsoft.com/en-us/library/aa384129(v=VS.85).aspx>`__."
#: ../Doc/library/winreg.rst:655
-#, fuzzy
msgid ""
"Indicates that an application on 64-bit Windows should operate on the 64-bit "
"registry view. On 32-bit Windows, this constant is ignored."
msgstr ""
"Indica que una aplicación en Windows de 64 bits debería funcionar en la "
-"vista de registro de 64 bits."
+"vista de registro de 64 bits. En Windows de 32 bits, esta constante se "
+"ignora."
#: ../Doc/library/winreg.rst:660
-#, fuzzy
msgid ""
"Indicates that an application on 64-bit Windows should operate on the 32-bit "
"registry view. On 32-bit Windows, this constant is ignored."
msgstr ""
"Indica que una aplicación en Windows de 64 bits debería funcionar en la "
-"vista de registro de 32 bits."
+"vista de registro de 32 bits. En Windows de 32 bits, esta constante se "
+"ignora."
#: ../Doc/library/winreg.rst:666
msgid "Value Types"
@@ -1143,11 +1141,11 @@ msgstr ""
"el uso del objeto identificador."
#: ../Doc/library/winreg.rst:748
-#, fuzzy
msgid ""
"Handle objects provide semantics for :meth:`~object.__bool__` -- thus ::"
msgstr ""
-"Los objetos de control proporcionan semántica para :meth:`__bool__` -- así ::"
+"Los objetos de control proporcionan semántica para :meth:`~object.__bool__` "
+"-- así ::"
#: ../Doc/library/winreg.rst:753
msgid ""
@@ -1241,8 +1239,8 @@ msgstr ""
#: ../Doc/library/winreg.rst:242
msgid "% (percent)"
-msgstr ""
+msgstr "% (percent)"
#: ../Doc/library/winreg.rst:242
msgid "environment variables expansion (Windows)"
-msgstr ""
+msgstr "environment variables expansion (Windows)"
From 15a5e9cbd2599474c96aa8a3477b49031e3959d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Sun, 31 Dec 2023 15:15:32 +0100
Subject: [PATCH 015/117] Traducido el archivo library/imaplib.po (#2785)
Closes #2564
---
library/imaplib.po | 31 +++++++++++++------------------
1 file changed, 13 insertions(+), 18 deletions(-)
diff --git a/library/imaplib.po b/library/imaplib.po
index 578cab6da8..ac2427f935 100644
--- a/library/imaplib.po
+++ b/library/imaplib.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: 2022-12-27 14:19-0300\n"
+"PO-Revision-Date: 2023-12-24 17:51+0100\n"
"Last-Translator: Francisco Mora \n"
-"Language: es_AR\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_AR\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/library/imaplib.rst:2
msgid ":mod:`imaplib` --- IMAP4 protocol client"
@@ -44,7 +45,6 @@ msgstr ""
"tenga en cuenta que el comando ``STATUS`` no es compatible con IMAP4."
#: ../Doc/includes/wasm-notavail.rst:3
-#, fuzzy
msgid ":ref:`Availability `: not Emscripten, not WASI."
msgstr ":ref:`Availability `: no Emscripten, no WASI."
@@ -176,18 +176,17 @@ msgid "*ssl_context* parameter was added."
msgstr "El parámetro *ssl_context* fue agregado."
#: ../Doc/library/imaplib.rst:106
-#, fuzzy
msgid ""
"The class now supports hostname check with :attr:`ssl.SSLContext."
"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)."
msgstr ""
"La clase ahora admite la verificación del nombre de host con :attr:`ssl."
-"SSLContext.check_hostname` y *Server Name Indication* (ver :data:`ssl."
+"SSLContext.check_hostname` y *Server Name Indication* (ver :const:`ssl."
"HAS_SNI`)."
#: ../Doc/library/imaplib.rst:114
msgid "The deprecated *keyfile* and *certfile* parameters have been removed."
-msgstr ""
+msgstr "Se han eliminado los parámetros obsoletos *keyfile* y *certfile*."
#: ../Doc/library/imaplib.rst:117
msgid "The second subclass allows for connections created by a child process:"
@@ -289,13 +288,12 @@ msgid "IMAP4 Objects"
msgstr "Objetos de IMAP4"
#: ../Doc/library/imaplib.rst:179
-#, fuzzy
msgid ""
"All IMAP4rev1 commands are represented by methods of the same name, either "
"uppercase or lowercase."
msgstr ""
"Todos los comandos IMAP4rev1 están representados por métodos del mismo "
-"nombre, mayúsculas o minúsculas."
+"nombre, ya sea en mayúsculas o minúsculas."
#: ../Doc/library/imaplib.rst:182
msgid ""
@@ -763,13 +761,12 @@ msgstr ""
"conexión IMAP. Leer :ref:`ssl-security` para conocer las mejores prácticas."
#: ../Doc/library/imaplib.rst:503
-#, fuzzy
msgid ""
"The method now supports hostname check with :attr:`ssl.SSLContext."
"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)."
msgstr ""
"El método ahora admite la verificación del nombre de host con :attr:`ssl."
-"SSLContext.check_hostname` y *Server Name Indication* (ver :data:`ssl."
+"SSLContext.check_hostname` y *Server Name Indication* (ver :const:`ssl."
"HAS_SNI`)."
#: ../Doc/library/imaplib.rst:511
@@ -838,7 +835,6 @@ msgstr ""
"mensajes, delimitados por espacios, que indican sucesivos padres e hijos."
#: ../Doc/library/imaplib.rst:552
-#, fuzzy
msgid ""
"Thread has two arguments before the *search_criterion* argument(s); a "
"*threading_algorithm*, and the searching *charset*. Note that unlike "
@@ -850,7 +846,7 @@ msgid ""
"criteria. It then returns the matching messages threaded according to the "
"specified threading algorithm."
msgstr ""
-"*Thread* tiene dos argumentos antes del argumento (s) *search_criterion*; un "
+"*Thread* tiene dos argumentos antes del argumento(s) *search_criterion*; un "
"*threading_algorithm*, y la búsqueda del *charset*. Tenga en cuenta que, a "
"diferencia de ``search``, el argumento de búsqueda *charset* es obligatorio. "
"También hay un comando ``uid thread`` que corresponde a ``thread`` de la "
@@ -943,20 +939,19 @@ msgstr ""
#: ../Doc/library/imaplib.rst:16
msgid "IMAP4"
-msgstr ""
+msgstr "IMAP4"
#: ../Doc/library/imaplib.rst:16
msgid "protocol"
-msgstr ""
+msgstr "protocol"
#: ../Doc/library/imaplib.rst:16
msgid "IMAP4_SSL"
-msgstr ""
+msgstr "IMAP4_SSL"
#: ../Doc/library/imaplib.rst:16
-#, fuzzy
msgid "IMAP4_stream"
-msgstr "Ejemplo IMAP4"
+msgstr "IMAP4_stream"
#~ msgid ""
#~ "*keyfile* and *certfile* are a legacy alternative to *ssl_context* - they "
From 89c8b15b9b1380eda561c39bf99b6abf03065ab3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Sun, 31 Dec 2023 16:07:38 +0100
Subject: [PATCH 016/117] Traducido el archivo library/optparse.po (#2784)
Closes #2566
---------
Co-authored-by: Marcos Medrano <786907+mmmarcos@users.noreply.github.com>
---
library/optparse.po | 168 +++++++++++++++++++++-----------------------
1 file changed, 79 insertions(+), 89 deletions(-)
diff --git a/library/optparse.po b/library/optparse.po
index 7e5d73388f..84f460d292 100644
--- a/library/optparse.po
+++ b/library/optparse.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-04 21:42+0200\n"
+"PO-Revision-Date: 2023-12-24 17:57+0100\n"
"Last-Translator: Cristián Maureira-Fredes \n"
-"Language: es\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/library/optparse.rst:2
msgid ":mod:`optparse` --- Parser for command line options"
@@ -73,7 +74,6 @@ msgstr ""
"ejemplo::"
#: ../Doc/library/optparse.rst:44
-#, fuzzy
msgid ""
"As it parses the command line, :mod:`optparse` sets attributes of the "
"``options`` object returned by :meth:`~OptionParser.parse_args` based on "
@@ -86,13 +86,14 @@ msgid ""
"the above example::"
msgstr ""
"A medida que analiza la línea de comandos, :mod:`optparse` establece los "
-"atributos del objeto ``options`` retornado por :meth:`parse_args` basándose "
-"en los valores de la línea de comandos proporcionada por el usuario. Cuando :"
-"meth:`parse_args` termina de analizar esta línea de comandos, ``options."
-"filename`` será ``\"outfile\"`` y ``options.verbose`` será ``False``. :mod:"
-"`optparse` admite opciones largas y cortas, fusionar opciones cortas y "
-"asociar opciones con sus argumentos de diversas formas. Por lo tanto, las "
-"siguientes líneas de comandos son todas equivalentes al ejemplo previo::"
+"atributos del objeto ``options`` retornado por :meth:`~OptionParser."
+"parse_args` basándose en los valores de la línea de comandos proporcionada "
+"por el usuario. Cuando :meth:`~OptionParser.parse_args` termina de analizar "
+"esta línea de comandos, ``options.filename`` será ``\"outfile\"`` y "
+"``options.verbose`` será ``False``. :mod:`optparse` admite opciones largas y "
+"cortas, fusionar opciones cortas y asociar opciones con sus argumentos de "
+"diversas formas. Por lo tanto, las siguientes líneas de comandos son todas "
+"equivalentes al ejemplo previo::"
#: ../Doc/library/optparse.rst:58
msgid "Additionally, users can run one of the following ::"
@@ -229,7 +230,6 @@ msgstr ""
"ejemplo ``/f`` o ``/file``"
#: ../Doc/library/optparse.rst:131
-#, fuzzy
msgid ""
"These option syntaxes are not supported by :mod:`optparse`, and they never "
"will be. This is deliberate: the first three are non-standard on any "
@@ -238,8 +238,8 @@ msgid ""
msgstr ""
"Estas sintaxis para opciones no son compatibles con :mod:`optparse` y nunca "
"lo serán. Esto es deliberado: los tres primeros no son estándar en ningún "
-"entorno y el último solo tiene sentido si se dirige exclusivamente a VMS, MS-"
-"DOS y/o Windows."
+"entorno y el último solo tiene sentido si se dirige exclusivamente a Windows "
+"o alguna plataforma heredada (*legacy*) (por ejemplo: VMS, MS-DOS)."
#: ../Doc/library/optparse.rst:160
msgid "option argument"
@@ -524,20 +524,18 @@ msgstr ""
"analice sintácticamente la línea de comandos de tu programa::"
#: ../Doc/library/optparse.rst:288
-#, fuzzy
msgid ""
"(If you like, you can pass a custom argument list to :meth:`~OptionParser."
"parse_args`, but that's rarely necessary: by default it uses ``sys."
"argv[1:]``.)"
msgstr ""
"(Si lo deseas, puedes pasar una lista de argumentos personalizada a :meth:"
-"`parse_args`, pero eso rara vez es necesario: por defecto se usa ``sys.argv "
-"[1:]``.)"
+"`~OptionParser.parse_args`, pero eso rara vez es necesario: por defecto se "
+"usa ``sys.argv [1:]``.)"
#: ../Doc/library/optparse.rst:291
-#, fuzzy
msgid ":meth:`~OptionParser.parse_args` returns two values:"
-msgstr ":meth:`parse_args` retorna dos valores:"
+msgstr ":meth:`~OptionParser.parse_args` retorna dos valores:"
#: ../Doc/library/optparse.rst:293
msgid ""
@@ -626,7 +624,6 @@ msgstr ""
"que la analice::"
#: ../Doc/library/optparse.rst:340
-#, fuzzy
msgid ""
"When :mod:`optparse` sees the option string ``-f``, it consumes the next "
"argument, ``foo.txt``, and stores it in ``options.filename``. So, after "
@@ -635,8 +632,8 @@ msgid ""
msgstr ""
"Cuando :mod:`optparse` se encuentra con la cadena de opción ``-f``, consume "
"el siguiente argumento, ``foo.txt`` y lo almacena en ``options.filename``. "
-"Por lo tanto, después de la llamada a :meth:`parse_args`, ``options."
-"filename`` será ``\"foo.txt\"``."
+"Por lo tanto, después de la llamada a :meth:`~OptionParser.parse_args`, "
+"``options.filename`` será ``\"foo.txt\"``."
#: ../Doc/library/optparse.rst:344
msgid ""
@@ -755,6 +752,7 @@ msgstr "``\"store_const\"``"
#: ../Doc/library/optparse.rst:407 ../Doc/library/optparse.rst:929
msgid "store a constant value, pre-set via :attr:`Option.const`"
msgstr ""
+"almacena un valor de constante, preestablecida vía :attr:`Option.const`"
#: ../Doc/library/optparse.rst:410 ../Doc/library/optparse.rst:938
msgid "``\"append\"``"
@@ -842,7 +840,6 @@ msgstr ""
"particular es el único que se tendrá en cuenta."
#: ../Doc/library/optparse.rst:455
-#, fuzzy
msgid ""
"A clearer way to specify default values is the :meth:`set_defaults` method "
"of OptionParser, which you can call at any time before calling :meth:"
@@ -850,7 +847,7 @@ msgid ""
msgstr ""
"Una forma más clara de especificar valores predeterminados es el método :"
"meth:`set_defaults` de OptionParser, al que puedes llamar en cualquier "
-"momento antes de llamar a :meth:`parse_args`::"
+"momento antes de llamar a :meth:`~OptionParser.parse_args`::"
#: ../Doc/library/optparse.rst:463
msgid ""
@@ -943,16 +940,14 @@ msgstr ""
"que la salida de ayuda se vea bien."
#: ../Doc/library/optparse.rst:533
-#, fuzzy
msgid ""
"options that take a value indicate this fact in their automatically "
"generated help message, e.g. for the \"mode\" option::"
msgstr ""
"las opciones que toman un valor indican este hecho en su mensaje de ayuda "
-"generado automáticamente, por ejemplo, para la opción \"*mode*\"::"
+"generado automáticamente, por ejemplo, para la opción \"mode\"::"
#: ../Doc/library/optparse.rst:538
-#, fuzzy
msgid ""
"Here, \"MODE\" is called the meta-variable: it stands for the argument that "
"the user is expected to supply to ``-m``/``--mode``. By default, :mod:"
@@ -961,7 +956,7 @@ msgid ""
"the ``--filename`` option explicitly sets ``metavar=\"FILE\"``, resulting in "
"this automatically generated option description::"
msgstr ""
-"Aquí, a \"*MODE*\" se le denomina una metavariable: representa el argumento "
+"Aquí, a \"MODE\" se le denomina una metavariable: representa el argumento "
"que se espera que el usuario proporcione a ``-m``/``--mode``. De forma "
"predeterminada, :mod:`optparse` convierte el nombre de la variable de "
"destino a mayúsculas y lo usa para la metavariable. En ocasiones, eso no es "
@@ -1286,7 +1281,6 @@ msgid "``usage`` (default: ``\"%prog [options]\"``)"
msgstr "``usage`` (por defecto: ``\"%prog [options]\"``)"
#: ../Doc/library/optparse.rst:811
-#, fuzzy
msgid ""
"The usage summary to print when your program is run incorrectly or with a "
"help option. When :mod:`optparse` prints the usage string, it expands "
@@ -1298,7 +1292,7 @@ msgstr ""
"con una opción de ayuda. Cuando :mod:`optparse` imprime la cadena de uso, "
"reemplaza ``%prog`` con ``os.path.basename(sys.argv[0])`` (o con ``prog`` si "
"se proporcionó eso argumento por palabra clave). Para suprimir un mensaje de "
-"uso, se debe pasar el valor especial :data:`optparse.SUPPRESS_USAGE`."
+"uso, se debe pasar el valor especial :const:`optparse.SUPPRESS_USAGE`."
#: ../Doc/library/optparse.rst:822
msgid "``option_list`` (default: ``[]``)"
@@ -1563,9 +1557,10 @@ msgid "``\"append_const\"``"
msgstr "``\"append_const\"``"
#: ../Doc/library/optparse.rst:941
-#, fuzzy
msgid "append a constant value to a list, pre-set via :attr:`Option.const`"
-msgstr "agrega un valor constante a una lista"
+msgstr ""
+"agrega un valor constante a una lista, preestablecido vía :attr:`Option."
+"const`"
#: ../Doc/library/optparse.rst:950 ../Doc/library/optparse.rst:1244
msgid "``\"help\"``"
@@ -1590,7 +1585,6 @@ msgstr ""
"`optparse-standard-option-actions` para más información.)"
#: ../Doc/library/optparse.rst:956
-#, fuzzy
msgid ""
"As you can see, most actions involve storing or updating a value somewhere. :"
"mod:`optparse` always creates a special object for this, conventionally "
@@ -1598,11 +1592,8 @@ msgid ""
msgstr ""
"Como se puede observar, la mayoría de las acciones implican almacenar o "
"actualizar un valor en algún lugar. :mod:`optparse` siempre crea un objeto "
-"especial para esto, convencionalmente llamado ``options`` (que resulta ser "
-"una instancia de :class:`optparse.Values`). Los argumentos de opción (y "
-"algunos otros valores) se almacenan como atributos de este objeto, de "
-"acuerdo con el atributo de opción :attr:`~ Option.dest` (destino) "
-"establecido."
+"especial para esto, convencionalmente llamado ``options``, que resulta ser "
+"una instancia de :class:`optparse.Values`."
#: ../Doc/library/optparse.rst:962
msgid ""
@@ -1612,12 +1603,20 @@ msgid ""
"`OptionParser.parse_args` (as described in :ref:`optparse-parsing-"
"arguments`)."
msgstr ""
+"Un objeto que mantiene como atributos a los nombres de los argumentos y los "
+"valores analizados. Normalmente se crean por invocación cuando llamamos :"
+"meth:`OptionParser.parse_args`, y pueden ser sobreescritos por una subclase "
+"personalizada pasada al argumento *values* de :meth:`OptionParser."
+"parse_args` (como se describe en :ref:`optparse-parsing-arguments`)."
#: ../Doc/library/optparse.rst:967
msgid ""
"Option arguments (and various other values) are stored as attributes of this "
"object, according to the :attr:`~Option.dest` (destination) option attribute."
msgstr ""
+"Los argumentos de opción (y algunos otros valores) se almacenan como "
+"atributos de este objeto, de acuerdo con el atributo de opción :attr:`~ "
+"Option.dest` (destino) establecido."
#: ../Doc/library/optparse.rst:971
msgid "For example, when you call ::"
@@ -1669,6 +1668,10 @@ msgid ""
"rather than directly, and can be overridden by a custom class via the "
"*option_class* argument to :class:`OptionParser`."
msgstr ""
+"Un único argumento de línea de comando, con varios atributos pasados como "
+"palabras clave al constructor. Normalmente se crea con :meth:`OptionParser."
+"add_option` en lugar de directamente, y puede ser sobrescrito por una clase "
+"personalizada mediante el argumento *option_class* de :class:`OptionParser`."
#: ../Doc/library/optparse.rst:1012
msgid ""
@@ -1785,7 +1788,6 @@ msgstr ""
"estándar."
#: ../Doc/library/optparse.rst:1078
-#, fuzzy
msgid ""
"Help text to print for this option when listing all available options after "
"the user supplies a :attr:`~Option.help` option (such as ``--help``). If no "
@@ -1797,7 +1799,7 @@ msgstr ""
"`~Option.help` (como ``--help``). Si no se proporciona ningún texto de "
"ayuda, la opción seguirá apareciendo, solo que sin texto de ayuda. Para "
"ocultar esta opción completamente, se debe asignar al atributo el valor "
-"especial :data:`optparse.SUPPRESS_HELP`."
+"especial :const:`optparse.SUPPRESS_HELP`."
#: ../Doc/library/optparse.rst:1087
msgid ""
@@ -2067,7 +2069,6 @@ msgstr ""
"attr:`~Option.help`, pasada a cada opción."
#: ../Doc/library/optparse.rst:1251
-#, fuzzy
msgid ""
"If no :attr:`~Option.help` string is supplied for an option, it will still "
"be listed in the help message. To omit an option entirely, use the special "
@@ -2075,7 +2076,7 @@ msgid ""
msgstr ""
"Si no se proporciona una cadena :attr:`~Option.help` para una opción, dicha "
"opción seguirá apareciendo en el mensaje de ayuda. Para omitir una opción "
-"por completo, debe usarse el valor especial :data:`optparse.SUPPRESS_HELP`."
+"por completo, debe usarse el valor especial :const:`optparse.SUPPRESS_HELP`."
#: ../Doc/library/optparse.rst:1255
msgid ""
@@ -2211,22 +2212,20 @@ msgid "Parsing arguments"
msgstr "Analizando los argumentos"
#: ../Doc/library/optparse.rst:1341
-#, fuzzy
msgid ""
"The whole point of creating and populating an OptionParser is to call its :"
"meth:`~OptionParser.parse_args` method."
msgstr ""
"El objetivo primario de crear y agregar opciones a un OptionParser es llamar "
-"a su método :meth:`parse_args`::"
+"a su método :meth:`~OptionParser.parse_args`."
#: ../Doc/library/optparse.rst:1346
msgid "Parse the command-line options found in *args*."
-msgstr ""
+msgstr "Analiza las opciones de la línea de comando encontradas en *args*."
#: ../Doc/library/optparse.rst:1348
-#, fuzzy
msgid "The input parameters are"
-msgstr "donde los parámetros de entrada son"
+msgstr "Los parámetros de entrada son"
#: ../Doc/library/optparse.rst:1351 ../Doc/library/optparse.rst:1364
#: ../Doc/library/optparse.rst:1684
@@ -2242,34 +2241,31 @@ msgid "``values``"
msgstr "``values``"
#: ../Doc/library/optparse.rst:1354
-#, fuzzy
msgid ""
"an :class:`Values` object to store option arguments in (default: a new "
"instance of :class:`Values`) -- if you give an existing object, the option "
"defaults will not be initialized on it"
msgstr ""
-"un objeto de la clase :class:`optparse.Values` para almacenar en él los "
-"argumentos de las opciones. Por defecto es una nueva instancia de la clase :"
-"class:`Values`. Si se proporciona un objeto previamente creado, los valores "
+"un objeto de la clase :class:`Values` para almacenar en él los argumentos de "
+"las opciones (por defecto: es una nueva instancia de la clase :class:"
+"`Values`) -- si se proporciona un objeto previamente creado, los valores "
"predeterminados de la opción no se inicializarán en el mismo"
#: ../Doc/library/optparse.rst:1358
-#, fuzzy
msgid "and the return value is a pair ``(options, args)`` where"
-msgstr "y los valores de retorno son"
+msgstr "y los valores de retorno es un par ``(options, args)`` donde"
#: ../Doc/library/optparse.rst:1362
msgid "``options``"
msgstr "``options``"
#: ../Doc/library/optparse.rst:1361
-#, fuzzy
msgid ""
"the same object that was passed in as *values*, or the ``optparse.Values`` "
"instance created by :mod:`optparse`"
msgstr ""
-"el mismo objeto que se pasó como ``values``, o la instancia *optparse."
-"Values* creada por :mod:`optparse`"
+"el mismo objeto que se pasó como *values*, o la instancia ``optparse."
+"Values`` creada por :mod:`optparse`"
#: ../Doc/library/optparse.rst:1365
msgid "the leftover positional arguments after all options have been processed"
@@ -2278,7 +2274,6 @@ msgstr ""
"que se hayan procesado todas las opciones"
#: ../Doc/library/optparse.rst:1367
-#, fuzzy
msgid ""
"The most common usage is to supply neither keyword argument. If you supply "
"``values``, it will be modified with repeated :func:`setattr` calls (roughly "
@@ -2289,21 +2284,20 @@ msgstr ""
"Si se proporciona ``values``, dicho argumento será modificado mediante "
"llamadas repetidas a :func:`setattr` (aproximadamente una por cada argumento "
"de opción a almacenar en un destino de opción) y finalmente será retornado "
-"por el método :meth:`parse_args`."
+"por el método :meth:`~OptionParser.parse_args`."
#: ../Doc/library/optparse.rst:1372
-#, fuzzy
msgid ""
"If :meth:`~OptionParser.parse_args` encounters any errors in the argument "
"list, it calls the OptionParser's :meth:`error` method with an appropriate "
"end-user error message. This ultimately terminates your process with an exit "
"status of 2 (the traditional Unix exit status for command-line errors)."
msgstr ""
-"Si el método :meth:`parse_args` encuentra algún error en la lista de "
-"argumentos, llama al método :meth:`error` de OptionParser con un mensaje de "
-"error apropiado para el usuario final. Esto causa que el proceso termine con "
-"un estado de salida de 2 (el estado de salida tradicional en Unix para "
-"errores en la línea de comandos)."
+"Si el método :meth:`~OptionParser.parse_args` encuentra algún error en la "
+"lista de argumentos, llama al método :meth:`error` de OptionParser con un "
+"mensaje de error apropiado para el usuario final. Esto causa que el proceso "
+"termine con un estado de salida de 2 (el estado de salida tradicional en "
+"Unix para errores en la línea de comandos)."
#: ../Doc/library/optparse.rst:1381
msgid "Querying and manipulating your option parser"
@@ -2464,7 +2458,6 @@ msgstr ""
"conflictivas::"
#: ../Doc/library/optparse.rst:1472
-#, fuzzy
msgid ""
"At this point, :mod:`optparse` detects that a previously added option is "
"already using the ``-n`` option string. Since ``conflict_handler`` is "
@@ -2481,7 +2474,6 @@ msgstr ""
"ayuda, el mensaje de ayuda reflejará la nueva situación::"
#: ../Doc/library/optparse.rst:1483
-#, fuzzy
msgid ""
"It's possible to whittle away the option strings for a previously added "
"option until there are none left, and the user has no way of invoking that "
@@ -2494,7 +2486,7 @@ msgstr ""
"forma de invocar esa opción desde la línea de comandos. En ese caso, :mod:"
"`optparse` eliminará esa opción por completo, por lo que no aparecerá en el "
"texto de ayuda ni en ningún otro lugar. Continuando con nuestro analizador "
-"de opciones previo::"
+"de opciones existente OptionParser::"
#: ../Doc/library/optparse.rst:1491
msgid ""
@@ -2534,7 +2526,6 @@ msgid "OptionParser supports several other public methods:"
msgstr "OptionParser admite varios métodos públicos más:"
#: ../Doc/library/optparse.rst:1522
-#, fuzzy
msgid ""
"Set the usage string according to the rules described above for the "
"``usage`` constructor keyword argument. Passing ``None`` sets the default "
@@ -2543,9 +2534,8 @@ msgid ""
msgstr ""
"Establece la cadena de caracteres de uso de acuerdo a las reglas descritas "
"anteriormente para el argumento por palabra clave ``usage`` del constructor. "
-"Si se pasa ``None`` se establece la cadena de uso por defecto. Para suprimir "
-"el mensaje de uso totalmente, se debe pasar el valor especial :data:"
-"`optparse.SUPPRESS_USAGE`."
+"Pasando ``None`` se establece la cadena de uso por defecto; use el valor "
+"especial :data:`optparse.SUPPRESS_USAGE` para suprimir el mensaje de uso."
#: ../Doc/library/optparse.rst:1528
msgid ""
@@ -2810,7 +2800,6 @@ msgid "``parser.largs``"
msgstr "``parser.largs``"
#: ../Doc/library/optparse.rst:1664
-#, fuzzy
msgid ""
"the current list of leftover arguments, ie. arguments that have been "
"consumed but are neither options nor option arguments. Feel free to modify "
@@ -2822,7 +2811,7 @@ msgstr ""
"consumido pero que no son opciones ni argumentos de opción. Siéntete libre "
"de modificar ``parser.largs``, por ejemplo, agregando más argumentos. (Esta "
"lista se convertirá en ``args``, el segundo valor de retorno del método :"
-"meth:`parse_args`.)"
+"meth:`~OptionParser.parse_args`.)"
#: ../Doc/library/optparse.rst:1673
msgid "``parser.rargs``"
@@ -3384,7 +3373,6 @@ msgstr ""
"mecanismo de seguridad agregado. Es llamado como::"
#: ../Doc/library/optparse.rst:2049
-#, fuzzy
msgid ""
"If the ``attr`` attribute of ``values`` doesn't exist or is ``None``, then "
"ensure_value() first sets it to ``value``, and then returns ``value``. This "
@@ -3398,43 +3386,45 @@ msgid ""
msgstr ""
"Si el atributo ``attr`` de ``values`` no existe o es ``None``, entonces "
"*ensure_value()* primero lo establece en ``value`` y luego retorna el "
-"atributo actualizado. Esto es muy útil para acciones como ``\"extend\"``, "
-"``\"append\"`` y ``\"count\"``, dado que todas ellas acumulan datos en una "
-"variable y esperan que esa variable sea de cierto tipo (una lista para las "
-"dos primeras, un número entero para la última). Usar el método :meth:"
-"`ensure_value` significa que los scripts que usan tu acción no tienen que "
-"preocuparse por establecer un valor predeterminado para los destinos de "
-"opción en cuestión; simplemente pueden dejar el valor predeterminado como "
-"``None`` y :meth:`secure_value` se encargará de que todo esté correcto "
-"cuando sea necesario."
+"atributo actualizado (``value``). Esto es muy útil para acciones como "
+"``\"extend\"``, ``\"append\"`` y ``\"count\"``, dado que todas ellas "
+"acumulan datos en una variable y esperan que esa variable sea de cierto tipo "
+"(una lista para las dos primeras, un número entero para la última). Usar el "
+"método :meth:`ensure_value` significa que los scripts que usan tu acción no "
+"tienen que preocuparse por establecer un valor predeterminado para los "
+"destinos de opción en cuestión; simplemente pueden dejar el valor "
+"predeterminado como ``None`` y :meth:`secure_value` se encargará de que todo "
+"esté correcto cuando sea necesario."
#: ../Doc/library/optparse.rst:2060
-#, fuzzy
msgid "Exceptions"
-msgstr "opción"
+msgstr "Excepciones"
#: ../Doc/library/optparse.rst:2064
msgid ""
"Raised if an :class:`Option` instance is created with invalid or "
"inconsistent arguments."
msgstr ""
+"Lanzada si se crea con argumentos inválidos o inconsistentes una instancia "
+"de :class:`Option`."
#: ../Doc/library/optparse.rst:2069
msgid "Raised if conflicting options are added to an :class:`OptionParser`."
msgstr ""
+"Lanzada si se añaden opciones que entren en conflicto en una :class:"
+"`OptionParser`."
#: ../Doc/library/optparse.rst:2073
msgid "Raised if an invalid option value is encountered on the command line."
-msgstr ""
+msgstr "Lanzada si se encuentra una opción inválida en la línea de comandos."
#: ../Doc/library/optparse.rst:2077
-#, fuzzy
msgid "Raised if an invalid option is passed on the command line."
-msgstr "Mientras analiza la línea de comandos::"
+msgstr "Lanzada si se pasa una opción inválida en la línea de comandos."
#: ../Doc/library/optparse.rst:2081
msgid "Raised if an ambiguous option is passed on the command line."
-msgstr ""
+msgstr "Lanzada si se pasa una opción ambigua en la línea de comandos."
#~ msgid "store a constant value"
#~ msgstr "almacena un valor constante"
From 9d48a34d37f3e56387e4a80f51f1ce86a76a2036 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Sun, 31 Dec 2023 16:17:20 +0100
Subject: [PATCH 017/117] Traducido archivo library/traceback.po (#2781)
Closes #2578
---------
Co-authored-by: Marcos Medrano <786907+mmmarcos@users.noreply.github.com>
---
library/traceback.po | 77 ++++++++++++++++++++++++++------------------
1 file changed, 45 insertions(+), 32 deletions(-)
diff --git a/library/traceback.po b/library/traceback.po
index 389c8fc839..c1536044d6 100644
--- a/library/traceback.po
+++ b/library/traceback.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: 2022-10-26 22:07+0200\n"
+"PO-Revision-Date: 2023-12-24 12:20+0100\n"
"Last-Translator: Jaime Resano \n"
-"Language: es_ES\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_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/library/traceback.rst:2
msgid ":mod:`traceback` --- Print or retrieve a stack traceback"
@@ -49,24 +50,29 @@ msgid ""
"`types.TracebackType`, which are assigned to the ``__traceback__`` field of :"
"class:`BaseException` instances."
msgstr ""
+"El módulo usa objetos *traceback* -- estos son objetos de tipo :class:`types."
+"TracebackType`, que se asignan al campo ``__traceback__`` de las instancias "
+"de :class:`BaseException`."
#: ../Doc/library/traceback.rst:25
msgid "Module :mod:`faulthandler`"
-msgstr ""
+msgstr "Módulo :mod:`faulthandler`"
#: ../Doc/library/traceback.rst:25
msgid ""
"Used to dump Python tracebacks explicitly, on a fault, after a timeout, or "
"on a user signal."
msgstr ""
+"Usado para volcar explícitamente los rastreos Python, en un error, después "
+"de un tiempo de espera (*timeout*), o en una señal de usuario."
#: ../Doc/library/traceback.rst:27
msgid "Module :mod:`pdb`"
-msgstr ""
+msgstr "Módulo :mod:`pdb`"
#: ../Doc/library/traceback.rst:28
msgid "Interactive source code debugger for Python programs."
-msgstr ""
+msgstr "Depurador interactivo de código fuente para programas Python."
#: ../Doc/library/traceback.rst:30
msgid "The module defines the following functions:"
@@ -161,25 +167,22 @@ msgstr ""
"posicional."
#: ../Doc/library/traceback.rst:83
-#, fuzzy
msgid ""
"This is a shorthand for ``print_exception(sys.exception(), limit, file, "
"chain)``."
msgstr ""
-"Esto es un atajo para ``print_exception(*sys.exc_info(), limit, file, "
+"Esto es un atajo para ``print_exception(sys.exception(), limit, file, "
"chain)``."
#: ../Doc/library/traceback.rst:89
-#, fuzzy
msgid ""
"This is a shorthand for ``print_exception(sys.last_exc, limit, file, "
"chain)``. In general it will work only after an exception has reached an "
"interactive prompt (see :data:`sys.last_exc`)."
msgstr ""
-"Esto es un atajo para ``print_exception(sys.last_type, sys.last_value, sys."
-"last_traceback, limit, file, chain)``. En general, solo funciona después de "
-"que una excepción ha alcanzado un prompt interactivo (ver :data:`sys."
-"last_type`)."
+"Esto es un atajo para ``print_exception(sys.last_exc, limit, file, chain)``. "
+"En general, solo funciona después de que una excepción ha alcanzado un "
+"prompt interactivo (ver :data:`sys.last_exc`)."
#: ../Doc/library/traceback.rst:96
msgid ""
@@ -250,7 +253,6 @@ msgstr ""
"origen no es ``None``."
#: ../Doc/library/traceback.rst:140
-#, fuzzy
msgid ""
"Format the exception part of a traceback using an exception value such as "
"given by ``sys.last_value``. The return value is a list of strings, each "
@@ -265,8 +267,9 @@ msgstr ""
"es una lista de cadenas, cada una termina en una nueva línea. Normalmente, "
"la lista contiene una sola cadena; sin embargo, para las excepciones :exc:"
"`SyntaxError`, contiene varias líneas que (cuando se imprimen) muestran "
-"información detallada sobre dónde ocurrió el error de sintaxis. El mensaje "
-"que indica qué excepción ocurrió es siempre la última cadena de la lista."
+"información detallada sobre dónde ocurrió el error de sintaxis. Después del "
+"mensaje, la lista contiene las :attr:`notas ` de "
+"las excepciones."
#: ../Doc/library/traceback.rst:148
msgid ""
@@ -281,6 +284,7 @@ msgstr ""
#: ../Doc/library/traceback.rst:156
msgid "The returned list now includes any notes attached to the exception."
msgstr ""
+"La lista retornada ahora incluye algunas notas adjuntadas a la excepción."
#: ../Doc/library/traceback.rst:162
msgid ""
@@ -399,6 +403,12 @@ msgid ""
"group's exceptions array. The formatted output is truncated when either "
"limit is exceeded."
msgstr ""
+"*max_group_width* (*anchura máxima del grupo*) y *max_group_depth* "
+"(*profundidad máxima del grupo*) controlan el formato del grupo de "
+"excepciones (ver :exc:`BaseExceptionGroup`). La profundidad (*depth*) se "
+"refiere al nivel de anidamiento del grupo, y la anchura (*width*) se refiere "
+"al tamaño de una excepción simple perteneciente al arreglo del grupo de "
+"excepciones. El formato de salida se trunca cuando se excede el límite."
#: ../Doc/library/traceback.rst:241
msgid "Added the *compact* parameter."
@@ -406,7 +416,7 @@ msgstr "Se agregó el parámetro *compact*."
#: ../Doc/library/traceback.rst:244
msgid "Added the *max_group_width* and *max_group_depth* parameters."
-msgstr ""
+msgstr "Se agregaron los parámetros *max_group_width* y *max_group_depth*"
#: ../Doc/library/traceback.rst:249
msgid "A :class:`TracebackException` of the original ``__cause__``."
@@ -422,6 +432,9 @@ msgid ""
"class:`TracebackException` instances representing the nested exceptions. "
"Otherwise it is ``None``."
msgstr ""
+"Si ``self`` representa a una :exc:`ExceptionGroup`, este campo mantiene una "
+"lista de instancias de :class:`TracebackException` representando las "
+"excepciones anidadas. En otro caso será ``None``."
#: ../Doc/library/traceback.rst:265
msgid "The ``__suppress_context__`` value from the original exception."
@@ -456,12 +469,12 @@ msgstr ""
"Para errores sintácticos - el número de línea donde el error ha ocurrido."
#: ../Doc/library/traceback.rst:293
-#, fuzzy
msgid ""
"For syntax errors - the end line number where the error occurred. Can be "
"``None`` if not present."
msgstr ""
-"Para errores sintácticos - el número de línea donde el error ha ocurrido."
+"Para errores sintácticos - el número de línea donde el error ha ocurrido. "
+"Puede ser ``None`` si no está presente."
#: ../Doc/library/traceback.rst:300
msgid "For syntax errors - the text where the error occurred."
@@ -474,13 +487,12 @@ msgstr ""
"ocurrido."
#: ../Doc/library/traceback.rst:308
-#, fuzzy
msgid ""
"For syntax errors - the end offset into the text where the error occurred. "
"Can be ``None`` if not present."
msgstr ""
"Para errores sintácticos - el *offset* en el texto donde el error ha "
-"ocurrido."
+"ocurrido. Puede ser ``None`` si no está presente."
#: ../Doc/library/traceback.rst:315
msgid "For syntax errors - the compiler error message."
@@ -528,21 +540,21 @@ msgstr ""
"nueva línea."
#: ../Doc/library/traceback.rst:348
-#, fuzzy
msgid ""
"The generator emits the exception's message followed by its notes (if it has "
"any). The exception message is normally a single string; however, for :exc:"
"`SyntaxError` exceptions, it consists of several lines that (when printed) "
"display detailed information about where the syntax error occurred."
msgstr ""
-"Normalmente, el generador emite una sola cadena, sin embargo, para "
-"excepciones :exc:`SyntaxError`, este emite múltiples líneas que (cuando son "
-"mostradas) imprimen información detallada sobre dónde ha ocurrido el error "
-"sintáctico."
+"El generador emite el mensaje de la excepción seguida por sus notas (si "
+"tiene alguna). El mensaje de excepción es normalmente una sola cadena; , sin "
+"embargo, para excepciones :exc:`SyntaxError`, este emite múltiples líneas "
+"que (cuando son mostradas) imprimen información detallada sobre dónde ha "
+"ocurrido el error sintáctico."
#: ../Doc/library/traceback.rst:354
msgid "The exception's notes are now included in the output."
-msgstr ""
+msgstr "Las notas de las excepciones son incluidas ahora en la salida."
#: ../Doc/library/traceback.rst:360
msgid ":class:`StackSummary` Objects"
@@ -586,6 +598,8 @@ msgid ""
"Exceptions raised from :func:`repr` on a local variable (when "
"*capture_locals* is ``True``) are no longer propagated to the caller."
msgstr ""
+"Las excepciones lanzadas desde :func:`repr` en una variable local (cuando "
+"*capture_locals* es ``True``) no son propagadas al invocador."
#: ../Doc/library/traceback.rst:388
msgid ""
@@ -711,20 +725,19 @@ msgstr "Este último ejemplo demuestra las últimas funciones de formateo:"
#: ../Doc/library/traceback.rst:17
msgid "object"
-msgstr ""
+msgstr "object"
#: ../Doc/library/traceback.rst:17
-#, fuzzy
msgid "traceback"
-msgstr "Ejemplos de seguimiento de pila"
+msgstr "traceback"
#: ../Doc/library/traceback.rst:57
msgid "^ (caret)"
-msgstr ""
+msgstr "^ (caret)"
#: ../Doc/library/traceback.rst:57
msgid "marker"
-msgstr ""
+msgstr "marker"
#~ msgid ""
#~ "The module uses traceback objects --- this is the object type that is "
From 1800d193a939b99089c3c5f918e1638b0558cc2a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 3 Jan 2024 15:59:59 +0800
Subject: [PATCH 018/117] Bump tj-actions/changed-files from 40 to 41 in
/.github/workflows (#2789)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
from 40 to 41.
Release notes
Sourced from tj-actions/changed-files's
releases.
v41
Changes in v41.0.1
What's Changed
Full Changelog: https://github.com/tj-actions/changed-files/compare/v41...v41.0.1
Changes in v41.0.0
🔥 🔥 BREAKING CHANGE 🔥 🔥
A new safe_output input is now available to prevent
outputting unsafe filename characters (Enabled by default). This would
escape characters in the filename that could be used for command
injection.
[!NOTE]
This can be disabled by setting the safe_output to false
this comes with a recommendation to store all outputs generated in an
environment variable first before using them.
Example
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
with:
safe_output: false # set to false because we are using an environment
variable to store the output and avoid command injection.
- name: List all added files
env:
ADDED_FILES: ${{ steps.changed-files.outputs.added_files }}
run: |
for file in "$ADDED_FILES"; do
echo "$file was added"
done
...
What's Changed
... (truncated)
Changelog
Sourced from tj-actions/changed-files's
changelog.
Changelog
41.0.1
- (2023-12-24)
🐛 Bug Fixes
- Update characters escaped by safe output (#1815)
(716b1e1)
- (Tonye Jack)
⚙️ Miscellaneous Tasks
- deps: Update dependency eslint-plugin-prettier to
v5.1.2 (7aaf10d)
- (renovate[bot])
⬆️ Upgrades
Co-authored-by: jackton1 jackton1@users.noreply.github.com
(cc08e17)
- (tj-actions[bot])
41.0.0
- (2023-12-23)
🐛 Bug Fixes
- Update safe output regex and the docs (#1805)
(ff2f6e6)
- (tj-actions[bot])
⏪ Reverts
- Revert "chore(deps): update actions/download-artifact action to
v4" (#1806)
(4f573fe)
- (Tonye Jack)
🔄 Update
- Update README.md (6e79d6e)
- (Tonye Jack)
- Update README.md (d13ac19)
- (Tonye Jack)
- Update README.md (bb89f97)
- (Tonye Jack)
- Updated README.md (#1810)
Co-authored-by: renovate[bot] (1864078)
- (tj-actions[bot])
(47371c5)
- (Tonye Jack)
📝 Other
- Merge pull request from GHSA-mcph-m25j-8j63
... (truncated)
Commits
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/python/python-docs-es/network/alerts).
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/main.yml | 2 +-
.github/workflows/pr-comment.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 2f404a9f51..39f1bf0011 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -52,7 +52,7 @@ jobs:
- name: Obtiene la lista de archivos .po con cambios (sólo en PRs)
if: github.event_name == 'pull_request'
id: changed-po-files
- uses: tj-actions/changed-files@v40
+ uses: tj-actions/changed-files@v41
with:
files: |
**/*.po
diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml
index 8f52ea0dcb..c747f3f6b0 100644
--- a/.github/workflows/pr-comment.yml
+++ b/.github/workflows/pr-comment.yml
@@ -37,7 +37,7 @@ jobs:
python -m pip install -r base-branch/requirements.txt
- name: Obtiene lista de archivos con cambios
id: changed-files
- uses: tj-actions/changed-files@v40
+ uses: tj-actions/changed-files@v41
with:
files: |
**/*.po
From c5d3403397d93d2e3c6a9360b2df7dd58bf98404 Mon Sep 17 00:00:00 2001
From: Marcos Medrano <786907+mmmarcos@users.noreply.github.com>
Date: Wed, 3 Jan 2024 09:07:16 +0100
Subject: [PATCH 019/117] =?UTF-8?q?Corrijo=20error=20en=20un=20ejemplo=20d?=
=?UTF-8?q?e=20c=C3=B3digo=20(#2780)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Dejo el comando en inglés para que corresponda con la salida que se
muestra en:
https://docs.python.org/es/3.12/tutorial/stdlib.html#command-line-arguments
---
tutorial/stdlib.po | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po
index 00d70a379d..a83843852e 100644
--- a/tutorial/stdlib.po
+++ b/tutorial/stdlib.po
@@ -97,8 +97,8 @@ msgid ""
"Here is the output from running ``python demo.py one two three`` at the "
"command line::"
msgstr ""
-"Este es el resultado de ejecutar ``python demo.py uno dos tres`` en la línea "
-"de comandos::"
+"Este es el resultado de ejecutar ``python demo.py one two three`` en la "
+"línea de comandos::"
#: ../Doc/tutorial/stdlib.rst:79
msgid ""
From 010c22946db2a667c7ac423f3665a83f34ac72e0 Mon Sep 17 00:00:00 2001
From: "Carlos A. Crespo"
Date: Wed, 3 Jan 2024 09:42:58 -0300
Subject: [PATCH 020/117] =?UTF-8?q?Traducci=C3=B3n=20tutorial/controlflow.?=
=?UTF-8?q?po=20(#2763)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
closes #2400
---
tutorial/controlflow.po | 82 ++++++++++++++++++++---------------------
1 file changed, 41 insertions(+), 41 deletions(-)
diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po
index 4b391f7c65..fcb1b859f3 100644
--- a/tutorial/controlflow.po
+++ b/tutorial/controlflow.po
@@ -11,29 +11,28 @@ 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: 2022-11-19 23:09-0300\n"
+"PO-Revision-Date: 2023-11-28 12:03-0300\n"
"Last-Translator: Carlos A. Crespo \n"
-"Language: es\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/controlflow.rst:5
msgid "More Control Flow Tools"
msgstr "Más herramientas para control de flujo"
#: ../Doc/tutorial/controlflow.rst:7
-#, fuzzy
msgid ""
"As well as the :keyword:`while` statement just introduced, Python uses a few "
"more that we will encounter in this chapter."
msgstr ""
"Además de la sentencia :keyword:`while` que acabamos de introducir, Python "
-"soporta las sentencias de control de flujo que podemos encontrar en otros "
-"lenguajes, con algunos cambios."
+"utiliza algunas más que encontraremos en este capítulo."
#: ../Doc/tutorial/controlflow.rst:14
msgid ":keyword:`!if` Statements"
@@ -192,43 +191,52 @@ msgstr ""
"bucles"
#: ../Doc/tutorial/controlflow.rst:166
-#, fuzzy
msgid ""
"The :keyword:`break` statement breaks out of the innermost enclosing :"
"keyword:`for` or :keyword:`while` loop."
msgstr ""
-"La sentencia :keyword:`break`, como en C, termina el bucle :keyword:`for` o :"
-"keyword:`while` más anidado."
+"La sentencia :keyword:`break` termina el bucle :keyword:`for` o :keyword:"
+"`while` más anidado."
#: ../Doc/tutorial/controlflow.rst:169
msgid ""
"A :keyword:`!for` or :keyword:`!while` loop can include an :keyword:`!else` "
"clause."
msgstr ""
+"Un bucle :keyword:`!for` o :keyword:`!while` puede incluir una cláusula :"
+"keyword:`!else`."
#: ../Doc/tutorial/controlflow.rst:171
msgid ""
"In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the "
"loop reaches its final iteration."
msgstr ""
+"En un bucle :keyword:`for`, la cláusula :keyword:`!else` se ejecuta después "
+"de que el bucle alcance su iteración final."
#: ../Doc/tutorial/controlflow.rst:174
msgid ""
"In a :keyword:`while` loop, it's executed after the loop's condition becomes "
"false."
msgstr ""
+"En un bucle :keyword:`while`, se ejecuta después de que la condición del "
+"bucle se vuelva falsa."
#: ../Doc/tutorial/controlflow.rst:176
msgid ""
"In either kind of loop, the :keyword:`!else` clause is **not** executed if "
"the loop was terminated by a :keyword:`break`."
msgstr ""
+"En cualquier tipo de bucle, la cláusula :keyword:`!else` **no** se ejecuta "
+"si el bucle ha finalizado con :keyword:`break`."
#: ../Doc/tutorial/controlflow.rst:179
msgid ""
"This is exemplified in the following :keyword:`!for` loop, which searches "
"for prime numbers::"
msgstr ""
+"Esto se ejemplifica en el siguiente bucle :keyword:`!for`, que busca números "
+"primos::"
#: ../Doc/tutorial/controlflow.rst:200
msgid ""
@@ -403,13 +411,13 @@ msgstr ""
"\"(...)\" junto a ellos, como ``Point`` arriba)."
#: ../Doc/tutorial/controlflow.rst:352
-#, fuzzy
msgid ""
"Patterns can be arbitrarily nested. For example, if we have a short list of "
"Points, with ``__match_args__`` added, we could match it like this::"
msgstr ""
"Los patrones pueden anidarse arbitrariamente. Por ejemplo, si tuviéramos una "
-"lista corta de puntos, podríamos aplicar match así::"
+"lista corta de puntos, con ``__match_args__`` añadido, podríamos aplicar "
+"match así::"
#: ../Doc/tutorial/controlflow.rst:373
msgid ""
@@ -639,7 +647,6 @@ msgstr ""
"final de una función, también se retorna ``None``."
#: ../Doc/tutorial/controlflow.rst:530
-#, fuzzy
msgid ""
"The statement ``result.append(a)`` calls a *method* of the list object "
"``result``. A method is a function that 'belongs' to an object and is named "
@@ -653,16 +660,17 @@ msgid ""
"this example it is equivalent to ``result = result + [a]``, but more "
"efficient."
msgstr ""
-"La sentencia ``result.append(a)`` llama a un método del objeto lista "
+"La sentencia ``result.append(a)`` llama a un *método* del objeto lista "
"``result``. Un método es una función que 'pertenece' a un objeto y se nombra "
"``obj.methodname``, dónde ``obj`` es algún objeto (puede ser una expresión), "
"y ``methodname`` es el nombre del método que está definido por el tipo del "
"objeto. Distintos tipos definen distintos métodos. Métodos de diferentes "
"tipos pueden tener el mismo nombre sin causar ambigüedad. (Es posible "
-"definir tus propios tipos de objetos y métodos, usando clases, ver :ref:`tut-"
-"classes`). El método :meth:`append` mostrado en el ejemplo está definido "
-"para objetos lista; añade un nuevo elemento al final de la lista. En este "
-"ejemplo es equivalente a ``result = result + [a]``, pero más eficiente."
+"definir tus propios tipos de objetos y métodos, usando *clases*, ver :ref:"
+"`tut-classes`). El método :meth:`!append` mostrado en el ejemplo está "
+"definido para objetos lista; añade un nuevo elemento al final de la lista. "
+"En este ejemplo es equivalente a ``result = result + [a]``, pero más "
+"eficiente."
#: ../Doc/tutorial/controlflow.rst:545
msgid "More on Defining Functions"
@@ -1246,7 +1254,6 @@ msgstr ""
"pep:`3107` y :pep:`484` para más información)."
#: ../Doc/tutorial/controlflow.rst:1049
-#, fuzzy
msgid ""
":term:`Annotations ` are stored in the :attr:`!"
"__annotations__` attribute of the function as a dictionary and have no "
@@ -1258,7 +1265,7 @@ msgid ""
"a required argument, an optional argument, and the return value annotated::"
msgstr ""
"Las :term:`anotaciones ` se almacenan en el atributo :"
-"attr:`__annotations__` de la función como un diccionario y no tienen efecto "
+"attr:`!__annotations__` de la función como un diccionario y no tienen efecto "
"en ninguna otra parte de la función. Las anotaciones de los parámetros se "
"definen luego de dos puntos después del nombre del parámetro, seguido de una "
"expresión que evalúa al valor de la anotación. Las anotaciones de retorno "
@@ -1398,70 +1405,63 @@ msgstr ""
#: ../Doc/tutorial/controlflow.rst:48
msgid "statement"
-msgstr ""
+msgstr "statement"
#: ../Doc/tutorial/controlflow.rst:48
msgid "for"
-msgstr ""
+msgstr "for"
#: ../Doc/tutorial/controlflow.rst:451 ../Doc/tutorial/controlflow.rst:988
-#, fuzzy
msgid "documentation strings"
-msgstr "Cadenas de texto de documentación"
+msgstr "documentation strings"
#: ../Doc/tutorial/controlflow.rst:451 ../Doc/tutorial/controlflow.rst:988
-#, fuzzy
msgid "docstrings"
-msgstr "Usar ``docstrings``."
+msgstr "docstrings"
#: ../Doc/tutorial/controlflow.rst:451 ../Doc/tutorial/controlflow.rst:988
-#, fuzzy
msgid "strings, documentation"
-msgstr "Cadenas de texto de documentación"
+msgstr "strings, documentation"
#: ../Doc/tutorial/controlflow.rst:892
msgid "* (asterisk)"
-msgstr ""
+msgstr "* (asterisco)"
#: ../Doc/tutorial/controlflow.rst:892 ../Doc/tutorial/controlflow.rst:936
-#, fuzzy
msgid "in function calls"
-msgstr "Ejemplos de Funciones"
+msgstr "in function calls"
#: ../Doc/tutorial/controlflow.rst:936
msgid "**"
-msgstr ""
+msgstr "**"
#: ../Doc/tutorial/controlflow.rst:1040
-#, fuzzy
msgid "function"
-msgstr "Ejemplos de Funciones"
+msgstr "function"
#: ../Doc/tutorial/controlflow.rst:1040
-#, fuzzy
msgid "annotations"
-msgstr "Anotación de funciones"
+msgstr "annotations"
#: ../Doc/tutorial/controlflow.rst:1040
msgid "->"
-msgstr ""
+msgstr "->"
#: ../Doc/tutorial/controlflow.rst:1040
-#, fuzzy
msgid "function annotations"
-msgstr "Anotación de funciones"
+msgstr "function annotations"
#: ../Doc/tutorial/controlflow.rst:1040
msgid ": (colon)"
-msgstr ""
+msgstr ": (dos puntos)"
#: ../Doc/tutorial/controlflow.rst:1074
msgid "coding"
-msgstr ""
+msgstr "coding"
#: ../Doc/tutorial/controlflow.rst:1074
msgid "style"
-msgstr ""
+msgstr "style"
#~ msgid ""
#~ "Loop statements may have an :keyword:`!else` clause; it is executed when "
From 1729986b08a6c565d80a994d52bed40d9dba8e03 Mon Sep 17 00:00:00 2001
From: Carlos Mena <50986837+carlosm00@users.noreply.github.com>
Date: Fri, 5 Jan 2024 12:14:41 +0100
Subject: [PATCH 021/117] Traducido archivo library/msilib.po (#2791)
Closes #2553
---
library/msilib.po | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/library/msilib.po b/library/msilib.po
index 2ace5ffad3..64dc5939a1 100644
--- a/library/msilib.po
+++ b/library/msilib.po
@@ -854,4 +854,4 @@ msgstr ""
#: ../Doc/library/msilib.rst:14
msgid "msi"
-msgstr ""
+msgstr "msi"
From dc412d3a1fc2c065a119da37d42270d30d64decf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20=C3=81lvarez?=
Date: Fri, 5 Jan 2024 12:18:46 +0100
Subject: [PATCH 022/117] Traducido archivo library/cgi.po (#2770)
Closes #2580
---
library/cgi.po | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
diff --git a/library/cgi.po b/library/cgi.po
index f56b019aeb..5b5ab46cb6 100644
--- a/library/cgi.po
+++ b/library/cgi.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: 2022-12-20 23:03+0800\n"
+"PO-Revision-Date: 2023-12-24 11:45+0100\n"
"Last-Translator: Rodrigo Tobar \n"
-"Language: es\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/library/cgi.rst:2
msgid ":mod:`cgi` --- Common Gateway Interface support"
@@ -77,7 +78,6 @@ msgstr ""
"que el tamaño de las solicitudes es ilimitado."
#: ../Doc/includes/wasm-notavail.rst:3
-#, fuzzy
msgid ":ref:`Availability `: not Emscripten, not WASI."
msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI."
@@ -1034,47 +1034,45 @@ msgstr ""
#: ../Doc/library/cgi.rst:10
msgid "WWW"
-msgstr ""
+msgstr "WWW"
#: ../Doc/library/cgi.rst:10
msgid "server"
-msgstr ""
+msgstr "server"
#: ../Doc/library/cgi.rst:10 ../Doc/library/cgi.rst:389
#: ../Doc/library/cgi.rst:462
msgid "CGI"
-msgstr ""
+msgstr "CGI"
#: ../Doc/library/cgi.rst:10
msgid "protocol"
-msgstr ""
+msgstr "protocol"
#: ../Doc/library/cgi.rst:10
msgid "HTTP"
-msgstr ""
+msgstr "HTTP"
#: ../Doc/library/cgi.rst:10
msgid "MIME"
-msgstr ""
+msgstr "MIME"
#: ../Doc/library/cgi.rst:10
msgid "headers"
-msgstr ""
+msgstr "headers"
#: ../Doc/library/cgi.rst:10
msgid "URL"
-msgstr ""
+msgstr "URL"
#: ../Doc/library/cgi.rst:10
-#, fuzzy
msgid "Common Gateway Interface"
msgstr ":mod:`cgi` --- Soporte de Interfaz de Entrada Común (CGI)"
#: ../Doc/library/cgi.rst:389
msgid "security"
-msgstr ""
+msgstr "security"
#: ../Doc/library/cgi.rst:462
-#, fuzzy
msgid "debugging"
-msgstr "Depurando scripts de CGI"
+msgstr "debugging"
From e43a7c9536cef76c26ac3fe44dbc821c895a1f7b Mon Sep 17 00:00:00 2001
From: Rodrigo Poblete
Date: Fri, 5 Jan 2024 09:44:45 -0300
Subject: [PATCH 023/117] Traducido archivo reference/executionmodel (#2721)
Closes #2641
---
reference/executionmodel.po | 168 +++++++++++++++++++++++-------------
1 file changed, 107 insertions(+), 61 deletions(-)
diff --git a/reference/executionmodel.po b/reference/executionmodel.po
index c7c320b0d4..596a6fceb7 100644
--- a/reference/executionmodel.po
+++ b/reference/executionmodel.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: 2023-02-26 14:02-0300\n"
+"PO-Revision-Date: 2023-11-11 16:50-0300\n"
"Last-Translator: Francisco Mora \n"
-"Language: es\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.4\n"
#: ../Doc/reference/executionmodel.rst:6
msgid "Execution model"
@@ -134,13 +135,12 @@ msgid ":keyword:`import` statements."
msgstr "declaraciones :keyword:`import`."
#: ../Doc/reference/executionmodel.rst:74
-#, fuzzy
msgid ":keyword:`type` statements."
-msgstr "declaraciones :keyword:`import`."
+msgstr "declaraciones :keyword:`type`."
#: ../Doc/reference/executionmodel.rst:75
msgid ":ref:`type parameter lists `."
-msgstr ""
+msgstr ":ref:`listas tipo de parámetros `."
#: ../Doc/reference/executionmodel.rst:77
msgid ""
@@ -237,7 +237,6 @@ msgstr ""
"`UnboundLocalError` es una subclase de :exc:`NameError`."
#: ../Doc/reference/executionmodel.rst:127
-#, fuzzy
msgid ""
"If a name binding operation occurs anywhere within a code block, all uses of "
"the name within the block are treated as references to the current block. "
@@ -256,7 +255,8 @@ msgstr ""
"operaciones de vinculación de nombres ocurran en cualquier lugar dentro del "
"bloque de código. Las variables locales de un bloque de código pueden "
"determinarse buscando operaciones de vinculación de nombres en el texto "
-"completo del bloque."
+"completo del bloque. Ver :ref:`la entrada del FAQ sobre UnboundLocalError "
+"` para ejemplos."
#: ../Doc/reference/executionmodel.rst:136
msgid ""
@@ -294,7 +294,6 @@ msgstr ""
"variable libre como global."
#: ../Doc/reference/executionmodel.rst:151
-#, fuzzy
msgid ""
"The :keyword:`nonlocal` statement causes corresponding names to refer to "
"previously bound variables in the nearest enclosing function scope. :exc:"
@@ -306,7 +305,8 @@ msgstr ""
"refieran a variables previamente vinculadas en el ámbito de la función de "
"cierre más cercano. Se lanza un :exc:`SyntaxError` en tiempo de compilación "
"si el nombre dado no existe en ningún ámbito de las funciones dentro de las "
-"cuales está."
+"cuales está. :ref:`Parámetros de tipo ` no puede recuperarse "
+"con la sentencia :keyword:`!nonlocal`."
#: ../Doc/reference/executionmodel.rst:159
msgid ""
@@ -318,7 +318,6 @@ msgstr ""
"siempre se llama :mod:`__main__`."
#: ../Doc/reference/executionmodel.rst:162
-#, fuzzy
msgid ""
"Class definition blocks and arguments to :func:`exec` and :func:`eval` are "
"special in the context of name resolution. A class definition is an "
@@ -341,17 +340,17 @@ msgstr ""
"definición de clase se vuelve el diccionario de atributos de la clase. El "
"ámbito de nombres definido en un bloque de clase está limitado a dicho "
"bloque; no se extiende a los bloques de código de los métodos. Esto incluye "
-"las comprensiones y las expresiones generadoras (*generator expressions*), "
-"dado que están implementadas usando el alcance de función. Esto implica que "
-"lo siguiente fallará::"
+"las comprensiones y las expresiones generadoras pero no incluye :ref:"
+"`annotation scopes `, que tienen acceso a sus ámbitos de "
+"clase adjuntos. Esto significa que lo siguiente fallará::"
#: ../Doc/reference/executionmodel.rst:179
msgid "However, the following will succeed::"
-msgstr ""
+msgstr "Sin embargo. lo siguiente tendrá éxito::"
#: ../Doc/reference/executionmodel.rst:190
msgid "Annotation scopes"
-msgstr ""
+msgstr "Ámbitos de anotación"
#: ../Doc/reference/executionmodel.rst:192
msgid ""
@@ -361,15 +360,23 @@ msgid ""
"currently do not use annotation scopes, but they are expected to use "
"annotation scopes in Python 3.13 when :pep:`649` is implemented."
msgstr ""
+":ref:`Las listas de tipo de parámetros ` y las declaraciones :"
+"keyword:`type` introducen *ámbitos de anotación*, que se comportan "
+"principalmente como ámbitos de funciones, pero con algunas excepciones que "
+"se analizan a continuación. :term:`Annotations ` actualmente no "
+"usan alcances de anotación, pero se espera que los usen en Python 3.13 "
+"cuando se implemente :pep:`649`."
#: ../Doc/reference/executionmodel.rst:198
msgid "Annotation scopes are used in the following contexts:"
-msgstr ""
+msgstr "Los ámbitos de anotación se utilizan en los siguientes contextos:"
#: ../Doc/reference/executionmodel.rst:200
msgid ""
"Type parameter lists for :ref:`generic type aliases `."
msgstr ""
+"Listas de tipo de parámetros para :ref:`generic type aliases `."
#: ../Doc/reference/executionmodel.rst:201
msgid ""
@@ -377,6 +384,9 @@ msgid ""
"generic function's annotations are executed within the annotation scope, but "
"its defaults and decorators are not."
msgstr ""
+"Escriba listas de parámetros para :ref:`generic functions `. Las anotaciones de una función genérica se ejecutan dentro del "
+"alcance de la anotación, pero sus valores predeterminados y decoradores no."
#: ../Doc/reference/executionmodel.rst:204
msgid ""
@@ -384,20 +394,27 @@ msgid ""
"class's base classes and keyword arguments are executed within the "
"annotation scope, but its decorators are not."
msgstr ""
+"Tipo de parámetros de listas para :ref:`generic classes `. "
+"Las clases base y los argumentos de palabra clave de una clase genérica se "
+"ejecutan dentro del ámbito de la anotación, pero sus decoradores no."
#: ../Doc/reference/executionmodel.rst:207
msgid ""
"The bounds and constraints for type variables (:ref:`lazily evaluated `)."
msgstr ""
+"Los límites y restricciones de las variables de tipo (:ref:`lazily evaluated "
+"`)."
#: ../Doc/reference/executionmodel.rst:209
msgid "The value of type aliases (:ref:`lazily evaluated `)."
msgstr ""
+"El valor de los alias de tipo (:ref:`lazy evaluated `)."
#: ../Doc/reference/executionmodel.rst:211
msgid "Annotation scopes differ from function scopes in the following ways:"
msgstr ""
+"Los ámbitos de anotación difieren de los ámbitos de función en lo siguiente:"
#: ../Doc/reference/executionmodel.rst:213
msgid ""
@@ -409,6 +426,14 @@ msgid ""
"functions defined within classes, which cannot access names defined in the "
"class scope."
msgstr ""
+"Los ámbitos de anotación tienen acceso al espacio de nombres de la clase que "
+"los rodea. Si un ámbito de anotación está inmediatamente dentro de un ámbito "
+"de clase, o dentro de otro ámbito de anotación que está inmediatamente "
+"dentro de un ámbito de clase, el código en el ámbito de anotación puede "
+"utilizar nombres definidos en el ámbito de clase como si se ejecutara "
+"directamente dentro del cuerpo de la clase. Esto contrasta con las funciones "
+"normales definidas dentro de las clases, que no pueden acceder a los nombres "
+"definidos en el ámbito de la clase."
#: ../Doc/reference/executionmodel.rst:219
msgid ""
@@ -417,6 +442,10 @@ msgid ""
"assignment_expression>` expressions. (These expressions are allowed in other "
"scopes contained within the annotation scope.)"
msgstr ""
+"Las expresiones en ámbitos de anotación no pueden contener expresiones :"
+"keyword:`yield`, ``yield from``, :keyword:`await`, o :token:`:= `. (Estas expresiones están permitidas en "
+"otros ámbitos contenidos dentro del ámbito de la anotación)."
#: ../Doc/reference/executionmodel.rst:223
msgid ""
@@ -425,6 +454,10 @@ msgid ""
"as no other syntactic elements that can appear within annotation scopes can "
"introduce new names."
msgstr ""
+"Los nombres definidos en ámbitos de anotación no pueden recuperarse con "
+"sentencias :keyword:`nonlocal` en ámbitos internos. Esto incluye sólo "
+"parámetros de tipo, ya que ningún otro elemento sintáctico que pueda "
+"aparecer dentro de ámbitos de anotación puede introducir nuevos nombres."
#: ../Doc/reference/executionmodel.rst:226
msgid ""
@@ -433,14 +466,20 @@ msgid ""
"scope. Instead, the :attr:`!__qualname__` of such objects is as if the "
"object were defined in the enclosing scope."
msgstr ""
+"Aunque los ámbitos de anotación tienen un nombre interno, ese nombre no se "
+"refleja en el :term:`__qualname__ ` de los objetos definidos "
+"dentro del ámbito. En su lugar, el :attr:`!__qualname__` de dichos objetos "
+"es como si el objeto estuviera definido en el ámbito que lo encierra."
#: ../Doc/reference/executionmodel.rst:231
msgid "Annotation scopes were introduced in Python 3.12 as part of :pep:`695`."
msgstr ""
+"Los ámbitos de anotación se introdujeron en Python 3.12 como parte de :pep:"
+"`695`."
#: ../Doc/reference/executionmodel.rst:237
msgid "Lazy evaluation"
-msgstr ""
+msgstr "Evaluación perezosa"
#: ../Doc/reference/executionmodel.rst:239
msgid ""
@@ -451,16 +490,24 @@ msgid ""
"is created. Instead, they are only evaluated when doing so is necessary to "
"resolve an attribute access."
msgstr ""
+"Los valores de los alias de tipo creados mediante la sentencia :keyword:"
+"`type` se *evalúan rápidamente*. Lo mismo se aplica a los límites y "
+"restricciones de las variables de tipo creadas mediante la sintaxis de "
+"parámetros :ref:`type `. Esto significa que no se evalúan "
+"cuando se crea el alias de tipo o la variable de tipo. En su lugar, sólo se "
+"evalúan cuando es necesario para resolver el acceso a un atributo."
#: ../Doc/reference/executionmodel.rst:246
msgid "Example:"
-msgstr ""
+msgstr "Ejemplo:"
#: ../Doc/reference/executionmodel.rst:262
msgid ""
"Here the exception is raised only when the ``__value__`` attribute of the "
"type alias or the ``__bound__`` attribute of the type variable is accessed."
msgstr ""
+"Aquí la excepción se lanza sólo cuando se accede al atributo ``__value__`` "
+"del alias de tipo o al atributo ``__bound__`` de la variable de tipo."
#: ../Doc/reference/executionmodel.rst:266
msgid ""
@@ -468,6 +515,10 @@ msgid ""
"been defined when the type alias or type variable is created. For example, "
"lazy evaluation enables creation of mutually recursive type aliases::"
msgstr ""
+"Este comportamiento es útil principalmente para referencias a tipos que aún "
+"no se han definido cuando se crea el alias de tipo o la variable de tipo. "
+"Por ejemplo, la evaluación perezosa permite la creación de alias de tipo "
+"mutuamente recursivos::"
#: ../Doc/reference/executionmodel.rst:276
msgid ""
@@ -475,6 +526,10 @@ msgid ""
"scopes>`, which means that names that appear inside the lazily evaluated "
"value are looked up as if they were used in the immediately enclosing scope."
msgstr ""
+"Los valores evaluados perezosamente se evalúan en :ref:`annotation scope "
+"`, lo que significa que los nombres que aparecen dentro "
+"del valor evaluado se buscan como si se utilizaran en el ámbito "
+"inmediatamente adyacente."
#: ../Doc/reference/executionmodel.rst:285
msgid "Builtins and restricted execution"
@@ -608,7 +663,6 @@ msgstr ""
"es :exc:`SystemExit`."
#: ../Doc/reference/executionmodel.rst:370
-#, fuzzy
msgid ""
"Exceptions are identified by class instances. The :keyword:`except` clause "
"is selected depending on the class of the instance: it must reference the "
@@ -616,11 +670,12 @@ msgid ""
"class>` thereof. The instance can be received by the handler and can carry "
"additional information about the exceptional condition."
msgstr ""
-"Las excepciones están identificadas por instancias de clase. Se selecciona "
-"la cláusula :keyword:`except` dependiendo de la clase de la instancia: debe "
-"referenciar a la clase de la instancia o a una clase base de la misma. La "
-"instancia puede ser recibida por el gestor y puede contener información "
-"adicional acerca de la condición excepcional."
+"Las excepciones se identifican mediante instancias de clase. La cláusula :"
+"keyword:`except` se selecciona en función de la clase de la instancia: debe "
+"hacer referencia a la clase de la instancia o a un :term:`non-virtual base "
+"class ` de la misma. La instancia puede ser recibida "
+"por el manejador y puede llevar información adicional sobre la condición "
+"excepcional."
#: ../Doc/reference/executionmodel.rst:378
msgid ""
@@ -655,120 +710,111 @@ msgstr ""
"está disponible en el momento en que se compila el módulo."
#: ../Doc/reference/executionmodel.rst:8
-#, fuzzy
msgid "execution model"
-msgstr "Modelo de ejecución"
+msgstr "modelo de ejecución"
#: ../Doc/reference/executionmodel.rst:8
msgid "code"
-msgstr ""
+msgstr "código"
#: ../Doc/reference/executionmodel.rst:8 ../Doc/reference/executionmodel.rst:17
msgid "block"
-msgstr ""
+msgstr "bloque"
#: ../Doc/reference/executionmodel.rst:31
#: ../Doc/reference/executionmodel.rst:287
-#, fuzzy
msgid "execution"
-msgstr "Modelo de ejecución"
+msgstr "ejecución"
#: ../Doc/reference/executionmodel.rst:31
msgid "frame"
-msgstr ""
+msgstr "marco"
#: ../Doc/reference/executionmodel.rst:42
msgid "namespace"
-msgstr ""
+msgstr "espacio de nombre"
#: ../Doc/reference/executionmodel.rst:42
#: ../Doc/reference/executionmodel.rst:103
msgid "scope"
-msgstr ""
+msgstr "ámbito"
#: ../Doc/reference/executionmodel.rst:51
msgid "name"
-msgstr ""
+msgstr "nombre"
#: ../Doc/reference/executionmodel.rst:51
-#, fuzzy
msgid "binding"
-msgstr "Vinculación de nombres"
+msgstr "vinculación de nombres"
#: ../Doc/reference/executionmodel.rst:57
msgid "from"
-msgstr ""
+msgstr "de"
#: ../Doc/reference/executionmodel.rst:57
-#, fuzzy
msgid "import statement"
-msgstr "declaraciones :keyword:`import`."
+msgstr "declaración de importación"
#: ../Doc/reference/executionmodel.rst:87
msgid "free"
-msgstr ""
+msgstr "libre"
#: ../Doc/reference/executionmodel.rst:87
msgid "variable"
-msgstr ""
+msgstr "variable"
#: ../Doc/reference/executionmodel.rst:111
msgid "environment"
-msgstr ""
+msgstr "ambiente"
#: ../Doc/reference/executionmodel.rst:117
msgid "NameError (built-in exception)"
-msgstr ""
+msgstr "NameError (excepción incorporada)"
#: ../Doc/reference/executionmodel.rst:117
msgid "UnboundLocalError"
-msgstr ""
+msgstr "UnboundLocalError"
#: ../Doc/reference/executionmodel.rst:157
msgid "module"
-msgstr ""
+msgstr "módulo"
#: ../Doc/reference/executionmodel.rst:157
msgid "__main__"
-msgstr ""
+msgstr "__main__"
#: ../Doc/reference/executionmodel.rst:287
msgid "restricted"
-msgstr ""
+msgstr "restringido"
#: ../Doc/reference/executionmodel.rst:334
-#, fuzzy
msgid "exception"
-msgstr "Excepciones"
+msgstr "excepciones"
#: ../Doc/reference/executionmodel.rst:336
-#, fuzzy
msgid "raise an exception"
-msgstr "Excepciones"
+msgstr "lanzar una excepción"
#: ../Doc/reference/executionmodel.rst:336
-#, fuzzy
msgid "handle an exception"
-msgstr "Excepciones"
+msgstr "gestionar una excepción"
#: ../Doc/reference/executionmodel.rst:336
-#, fuzzy
msgid "exception handler"
-msgstr "Excepciones"
+msgstr "gestor de excepciones"
#: ../Doc/reference/executionmodel.rst:336
msgid "errors"
-msgstr ""
+msgstr "errores"
#: ../Doc/reference/executionmodel.rst:336
msgid "error handling"
-msgstr ""
+msgstr "manejo de errores"
#: ../Doc/reference/executionmodel.rst:357
-#, fuzzy
msgid "termination model"
-msgstr "Modelo de ejecución"
+msgstr "modelo de finalización"
#: ../Doc/reference/executionmodel.rst:364
msgid "SystemExit (built-in exception)"
-msgstr ""
+msgstr "SystemExit (excepción incorporada)"
From 144f5393ca35e3a0bef91a8d88e26fe01e4435c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mateo=20C=C3=A1mara?=
Date: Fri, 5 Jan 2024 14:05:28 +0100
Subject: [PATCH 024/117] Traducido archivo library/zipfile (#2777)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Incluída la traducción al español de library/zipfile. He incluído mi
nombre también en TRANSLATORS. Es mi primera pull-request, por lo que es
probable que haya cometido algún error. Agradecería mucho feedback en
este sentido.
Saludos!
Closes #2579
---------
Co-authored-by: Mateo
Co-authored-by: rtobar
Co-authored-by: Cristián Maureira-Fredes
Co-authored-by: Cristián Maureira-Fredes
---
TRANSLATORS | 1 +
library/zipfile.po | 107 ++++++++++++++++++++++++---------------------
2 files changed, 57 insertions(+), 51 deletions(-)
diff --git a/TRANSLATORS b/TRANSLATORS
index 52fad55e42..72e4eabfa3 100644
--- a/TRANSLATORS
+++ b/TRANSLATORS
@@ -180,6 +180,7 @@ María José Molina Contreras (@mjmolina)
María Saiz Muñoz (@mariasm87)
Martín Gaitán (@mgaitan)
Martín Ramírez (@tinchoram)
+Mateo Cámara (@MateoCamara)
Matias Bordese (@matiasb)
Melissa Escobar Gutiérrez (@MelissaEscobar)
Miguel Ángel
diff --git a/library/zipfile.po b/library/zipfile.po
index f9bf3aa167..99755c9e99 100644
--- a/library/zipfile.po
+++ b/library/zipfile.po
@@ -11,24 +11,24 @@ 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-12-15 22:34-0500\n"
+"PO-Revision-Date: 2023-12-13 09:46+0100\n"
"Last-Translator: Adolfo Hristo David Roque Gámez \n"
-"Language: es_CO\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_CO\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.4.1\n"
#: ../Doc/library/zipfile.rst:2
msgid ":mod:`zipfile` --- Work with ZIP archives"
msgstr ":mod:`zipfile` --- Trabajar con archivos ZIP"
#: ../Doc/library/zipfile.rst:10
-#, fuzzy
msgid "**Source code:** :source:`Lib/zipfile/`"
-msgstr "**Source code:** :source:`Lib/zipfile.py`"
+msgstr "**Código fuente:** :source:`Lib/zipfile/`"
#: ../Doc/library/zipfile.rst:14
msgid ""
@@ -94,6 +94,9 @@ msgid ""
"Path`, including the full :class:`importlib.resources.abc.Traversable` "
"interface."
msgstr ""
+"Clase que implementa un subconjunto de la interfaz proporcionada por :class:"
+"`pathlib.Path`, incluyendo la interfaz completa :class:`importlib.resources."
+"abc.Traversable`."
#: ../Doc/library/zipfile.rst:68
msgid "Class for creating ZIP archives containing Python libraries."
@@ -188,9 +191,8 @@ msgstr ""
"formato y los algoritmos utilizados."
#: ../Doc/library/zipfile.rst:132
-#, fuzzy
msgid "`Info-ZIP Home Page `_"
-msgstr "`Info-ZIP Home Page `_"
+msgstr "`Página principal de Info-ZIP `_"
#: ../Doc/library/zipfile.rst:132
msgid ""
@@ -332,6 +334,9 @@ msgid ""
"*metadata_encoding* is an instance-wide setting for the ZipFile. It is not "
"currently possible to set this on a per-member basis."
msgstr ""
+"*metadata_encoding* es una configuración que se aplica a todas las "
+"instancias de ZipFile. Actualmente no es posible establecerlo "
+"individualmente para cada miembro."
#: ../Doc/library/zipfile.rst:208
msgid ""
@@ -397,9 +402,9 @@ msgid ""
"Added support for specifying member name encoding for reading metadata in "
"the zipfile's directory and file headers."
msgstr ""
-"Soporte agregado para especificar el nombre del miembro de codificación para "
-"leer metadata tanto el directorio del archivo zip como en las cabeceras de "
-"éstos"
+"Se ha añadido soporte para especificar la codificación del nombre del "
+"miembro para leer metadatos en las cabeceras de directorio y archivo del "
+"archivo zip."
#: ../Doc/library/zipfile.rst:249
msgid ""
@@ -434,7 +439,6 @@ msgid "Return a list of archive members by name."
msgstr "Retorna una lista de miembros del archivo por nombre."
#: ../Doc/library/zipfile.rst:274
-#, fuzzy
msgid ""
"Access a member of the archive as a binary file-like object. *name* can be "
"either the name of a file within the archive or a :class:`ZipInfo` object. "
@@ -442,11 +446,12 @@ msgid ""
"``'w'``. *pwd* is the password used to decrypt encrypted ZIP files as a :"
"class:`bytes` object."
msgstr ""
-"Acceda a un miembro del archivo como un objeto binario similar a un archivo. "
-"*name* puede ser el nombre de un archivo dentro del archivo o un objeto :"
-"class:`ZipInfo`. El parámetro *mode*, si está incluido, debe ser ``'r'`` (el "
-"valor predeterminado) o ``'w'``. *pwd* es la contraseña utilizada para "
-"descifrar archivos ZIP cifrados."
+"Acceda a un miembro del archivo comprimido como un objeto binario similar a "
+"un archivo. *name* puede ser el nombre de un archivo dentro del archivo "
+"comprimido o un objeto :class:`ZipInfo`. El parámetro *mode*, si está "
+"incluido, debe ser ``'r'`` (el valor predeterminado) o ``'w'``. *pwd* es la "
+"contraseña utilizada para descifrar archivos ZIP encriptados como un objeto :"
+"class:`bytes`."
#: ../Doc/library/zipfile.rst:280
msgid ""
@@ -457,7 +462,6 @@ msgstr ""
"tanto, soporta :keyword:`with` ``statement``::"
#: ../Doc/library/zipfile.rst:287
-#, fuzzy
msgid ""
"With *mode* ``'r'`` the file-like object (``ZipExtFile``) is read-only and "
"provides the following methods: :meth:`~io.BufferedIOBase.read`, :meth:`~io."
@@ -468,9 +472,9 @@ msgstr ""
"Con *mode* ``'r'``, el objeto tipo archivo (``ZipExtFile``) es de solo "
"lectura y proporciona los siguientes métodos: :meth:`~io.BufferedIOBase."
"read`, :meth:`~io.IOBase.readline`, :meth:`~io.IOBase.readlines`, :meth:`~io."
-"IOBase.seek`, :meth:`~io.IOBase.tell`, :meth:`__iter__`, :meth:`~iterator ."
-"__ next__`. Estos objetos pueden funcionar independientemente del archivo "
-"Zip."
+"IOBase.seek`, :meth:`~io.IOBase.tell`, :meth:`~container.__iter__`, :meth:"
+"`~iterator.__ next__`. Estos objetos pueden funcionar independientemente del "
+"archivo Zip."
#: ../Doc/library/zipfile.rst:294
msgid ""
@@ -518,13 +522,12 @@ msgstr ""
"leer archivos de texto comprimido en modo :term:`universal newlines`."
#: ../Doc/library/zipfile.rst:315
-#, fuzzy
msgid ""
":meth:`ZipFile.open` can now be used to write files into the archive with "
"the ``mode='w'`` option."
msgstr ""
-":meth:`open` ahora se puede usar para escribir archivos en el archivo con la "
-"opción ``mode='w'``."
+":meth:`ZipFile.open` ahora se puede usar para escribir archivos en el "
+"archivo comprimido con la opción ``mode='w'``."
#: ../Doc/library/zipfile.rst:319
msgid ""
@@ -535,7 +538,6 @@ msgstr ""
"Anteriormente, se planteó a :exc:`RuntimeError`."
#: ../Doc/library/zipfile.rst:326
-#, fuzzy
msgid ""
"Extract a member from the archive to the current working directory; *member* "
"must be its full name or a :class:`ZipInfo` object. Its file information is "
@@ -543,12 +545,12 @@ msgid ""
"to extract to. *member* can be a filename or a :class:`ZipInfo` object. "
"*pwd* is the password used for encrypted files as a :class:`bytes` object."
msgstr ""
-"Extraer un miembro del archivo al directorio de trabajo actual; *member* "
-"debe ser su nombre completo o un objeto :class:`ZipInfo`. La información de "
-"su archivo se extrae con la mayor precisión posible. *path* especifica un "
-"directorio diferente para extraer. *member* puede ser un nombre de archivo o "
-"un objeto :class:`ZipInfo`. *pwd* es la contraseña utilizada para archivos "
-"cifrados."
+"Extraer un miembro del archivo comprimido al directorio de trabajo actual; "
+"*member* debe ser su nombre completo o un objeto :class:`ZipInfo`. La "
+"información de su archivo se extrae con la mayor precisión posible. *path* "
+"especifica un directorio diferente para extraer. *member* puede ser un "
+"nombre de archivo o un objeto :class:`ZipInfo`. *pwd* es la contraseña "
+"utilizada para archivos encriptados como un objeto :class:`bytes`."
#: ../Doc/library/zipfile.rst:332
msgid "Returns the normalized path created (a directory or new file)."
@@ -586,17 +588,17 @@ msgid "The *path* parameter accepts a :term:`path-like object`."
msgstr "El parámetro *path* acepta un :term:`path-like object`."
#: ../Doc/library/zipfile.rst:354
-#, fuzzy
msgid ""
"Extract all members from the archive to the current working directory. "
"*path* specifies a different directory to extract to. *members* is optional "
"and must be a subset of the list returned by :meth:`namelist`. *pwd* is the "
"password used for encrypted files as a :class:`bytes` object."
msgstr ""
-"Extrae todos los miembros del archivo al directorio de trabajo actual. "
-"*path* especifica un directorio diferente para extraer. *members* es "
-"opcional y debe ser un subconjunto de la lista retornada por :meth:"
-"`namelist`. *pwd* es la contraseña utilizada para archivos cifrados."
+"Extrae todos los miembros del archivo comprimido al directorio de trabajo "
+"actual. *path* especifica un directorio diferente para extraer. *members* es "
+"opcional y debe ser un subconjunto de la lista devuelta por :meth:"
+"`namelist`. *pwd* es la contraseña utilizada para archivos encriptados como "
+"un objeto :class:`bytes`."
#: ../Doc/library/zipfile.rst:361
msgid ""
@@ -624,16 +626,14 @@ msgid "Print a table of contents for the archive to ``sys.stdout``."
msgstr "Imprime una tabla de contenido para el archivo en ``sys.stdout``."
#: ../Doc/library/zipfile.rst:382
-#, fuzzy
msgid ""
"Set *pwd* (a :class:`bytes` object) as default password to extract encrypted "
"files."
msgstr ""
-"Establece *pwd* como contraseña predeterminada para extraer archivos "
-"cifrados."
+"Establece *pwd* (un objeto :class:`bytes`) como contraseña predeterminada "
+"para extraer archivos encriptados."
#: ../Doc/library/zipfile.rst:387
-#, fuzzy
msgid ""
"Return the bytes of the file *name* in the archive. *name* is the name of "
"the file in the archive, or a :class:`ZipInfo` object. The archive must be "
@@ -645,15 +645,16 @@ msgid ""
"`NotImplementedError`. An error will also be raised if the corresponding "
"compression module is not available."
msgstr ""
-"Retorna los bytes del archivo *name* en el archivo. *name* es el nombre del "
-"archivo en el archivo, o un objeto :class:`ZipInfo`. El archivo debe estar "
-"abierto para leer o agregar. *pwd* es la contraseña utilizada para los "
-"archivos cifrados y, si se especifica, anulará la contraseña predeterminada "
-"establecida con :meth:`setpassword`. Llamar a :meth:`read` en un archivo Zip "
-"que utiliza un método de compresión que no sea :const:`ZIP_STORED`, :const:"
-"`ZIP_DEFLATED`, :const:`ZIP_BZIP2` o :const:`ZIP_LZMA` lanzará un :exc:"
-"`NotImplementedError`. También se lanzará un error si el módulo de "
-"compresión correspondiente no está disponible."
+"Retorna los bytes del archivo *name* en el archivo comprimido. *name* es el "
+"nombre del archivo en el archivo comprimido, o un objeto :class:`ZipInfo`. "
+"El archivo comprimido debe estar abierto para lectura o añadidura. *pwd* es "
+"la contraseña utilizada para los archivos encriptados como un objeto :class:"
+"`bytes` y, si se especifica, anula la contraseña predeterminada establecida "
+"con :meth:`setpassword`. Llamar a :meth:`read` en un ZipFile que utiliza un "
+"método de compresión que no sea :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :"
+"const:`ZIP_BZIP2` o :const:`ZIP_LZMA` lanzará un :exc:`NotImplementedError`. "
+"También se lanzará un error si el módulo de compresión correspondiente no "
+"está disponible."
#: ../Doc/library/zipfile.rst:396
msgid ""
@@ -922,6 +923,11 @@ msgid ""
"compatible with unpatched 3.10 and 3.11 versions must pass all :class:`io."
"TextIOWrapper` arguments, ``encoding`` included, as keywords."
msgstr ""
+"El parámetro ``encoding`` puede proporcionarse como un argumento posicional "
+"sin causar un :exc:`TypeError`. Tal y como podía ocurrir en la versión 3.9. "
+"El código que necesite ser compatible con versiones no parcheadas 3.10 y "
+"3.11 debe pasar como palabras clave todos los argumentos de :class:`io."
+"TextIOWrapper`, incluido ``encoding``."
#: ../Doc/library/zipfile.rst:563
msgid "Enumerate the children of the current directory."
@@ -953,9 +959,8 @@ msgid "Added :data:`Path.suffix` property."
msgstr "Propiedad agregada :data:`Path.suffix`."
#: ../Doc/library/zipfile.rst:587
-#, fuzzy
msgid "The final path component, without its suffix."
-msgstr "El componente final de la ruta."
+msgstr "El componente final de la ruta, sin su sufijo."
#: ../Doc/library/zipfile.rst:589
msgid "Added :data:`Path.stem` property."
@@ -963,7 +968,7 @@ msgstr "Propiedad agregada :data:`Path.stem`."
#: ../Doc/library/zipfile.rst:594
msgid "A list of the path’s file extensions."
-msgstr ""
+msgstr "Una lista de las extensiones de archivo de la ruta."
#: ../Doc/library/zipfile.rst:596
msgid "Added :data:`Path.suffixes` property."
From 8e727cac3e283833411aa75ee8130151ee4259cd Mon Sep 17 00:00:00 2001
From: Diego Saavedra
Date: Fri, 5 Jan 2024 08:05:58 -0500
Subject: [PATCH 025/117] update distributing/index.po translate to spanish
(#2685)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #2648
---------
Co-authored-by: Cristián Maureira-Fredes
Co-authored-by: rtobar
Co-authored-by: Cristián Maureira-Fredes
---
distributing/index.po | 303 +-----------------------------------------
1 file changed, 7 insertions(+), 296 deletions(-)
diff --git a/distributing/index.po b/distributing/index.po
index a3e13e32a0..71932f0a4a 100644
--- a/distributing/index.po
+++ b/distributing/index.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-11-12 10:29+0800\n"
+"PO-Revision-Date: 2023-10-16 11:28-0500\n"
"Last-Translator: Rodrigo Tobar \n"
-"Language: es\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.3.2\n"
#: ../Doc/distributing/index.rst:10
msgid "Distributing Python Modules"
@@ -31,296 +32,6 @@ msgid ""
"been moved to the `Python Packaging User Guide`_, and the tutorial on "
"`packaging Python projects`_."
msgstr ""
-
-#~ msgid "Email"
-#~ msgstr "Email"
-
-#~ msgid "distutils-sig@python.org"
-#~ msgstr "distutils-sig@python.org"
-
-#~ msgid ""
-#~ "As a popular open source development project, Python has an active "
-#~ "supporting community of contributors and users that also make their "
-#~ "software available for other Python developers to use under open source "
-#~ "license terms."
-#~ msgstr ""
-#~ "Como un proyecto de desarrollo de código abierto popular, Python tiene "
-#~ "una comunidad activa de colaboradores y usuarios que también hacen que su "
-#~ "software esté disponible para que otros desarrolladores de Python los "
-#~ "usen bajo términos de licencia de código abierto."
-
-#~ msgid ""
-#~ "This allows Python users to share and collaborate effectively, benefiting "
-#~ "from the solutions others have already created to common (and sometimes "
-#~ "even rare!) problems, as well as potentially contributing their own "
-#~ "solutions to the common pool."
-#~ msgstr ""
-#~ "Esto permite a los usuarios de Python compartir y colaborar eficazmente, "
-#~ "beneficiándose de las soluciones que otros ya han creado a problemas "
-#~ "comunes (¡y a veces incluso raros!), así como potencialmente "
-#~ "contribuyendo con sus propias soluciones al grupo común."
-
-#~ msgid ""
-#~ "This guide covers the distribution part of the process. For a guide to "
-#~ "installing other Python projects, refer to the :ref:`installation guide "
-#~ "`."
-#~ msgstr ""
-#~ "Esta guía cubre la parte de distribución del proceso. Para obtener una "
-#~ "guía para instalar otros proyectos de Python, consulte :ref:`installation "
-#~ "guide `."
-
-#~ msgid ""
-#~ "For corporate and other institutional users, be aware that many "
-#~ "organisations have their own policies around using and contributing to "
-#~ "open source software. Please take such policies into account when making "
-#~ "use of the distribution and installation tools provided with Python."
-#~ msgstr ""
-#~ "Para usuarios corporativos y otros usuarios institucionales, tenga en "
-#~ "cuenta que muchas organizaciones tienen sus propias políticas en torno al "
-#~ "uso y la contribución al software de código abierto. Por favor tenga en "
-#~ "cuenta estas políticas al hacer uso de las herramientas de distribución e "
-#~ "instalación proporcionadas con Python."
-
-#~ msgid "Key terms"
-#~ msgstr "Términos clave"
-
-#~ msgid ""
-#~ "the `Python Package Index `__ is a public repository of "
-#~ "open source licensed packages made available for use by other Python users"
-#~ msgstr ""
-#~ "el `Python Package Index `__ es un repositorio público "
-#~ "de paquetes con licencia de código abierto puestos a disposición para su "
-#~ "uso por otros usuarios de Python"
-
-#~ msgid ""
-#~ "the `Python Packaging Authority `__ are the group "
-#~ "of developers and documentation authors responsible for the maintenance "
-#~ "and evolution of the standard packaging tools and the associated metadata "
-#~ "and file format standards. They maintain a variety of tools, "
-#~ "documentation and issue trackers on both `GitHub `__ and `Bitbucket `__."
-#~ msgstr ""
-#~ "la `Python Packaging Authority `__ es el grupo de "
-#~ "desarrolladores y autores de documentación responsables del mantenimiento "
-#~ "y la evolución de las herramientas de empaquetado estándar y los "
-#~ "metadatos asociados y los estándares de formato de archivo. Ellos "
-#~ "mantienen una variedad de herramientas, documentación y rastreadores de "
-#~ "problemas tanto en `GitHub `__ como `Bitbucket "
-#~ "`__."
-
-#~ msgid ""
-#~ ":mod:`distutils` is the original build and distribution system first "
-#~ "added to the Python standard library in 1998. While direct use of :mod:"
-#~ "`distutils` is being phased out, it still laid the foundation for the "
-#~ "current packaging and distribution infrastructure, and it not only "
-#~ "remains part of the standard library, but its name lives on in other ways "
-#~ "(such as the name of the mailing list used to coordinate Python packaging "
-#~ "standards development)."
-#~ msgstr ""
-#~ ":mod:`distutils` es el sistema de distribución y compilación original que "
-#~ "se agregó por primera vez a la biblioteca estándar de Python en 1998. Si "
-#~ "bien el uso directo de :mod:`distutils` se está eliminando, aún es la "
-#~ "base para la infraestructura de empaquetado y distribución actual, y no "
-#~ "solo sigue siendo parte de la biblioteca estándar, sino que su nombre "
-#~ "vive de otras formas (como el nombre de la lista de correo utilizada para "
-#~ "coordinar el desarrollo de estándares de empaquetado de Python)."
-
-#~ msgid ""
-#~ "`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` "
-#~ "first published in 2004. Its most notable addition over the unmodified :"
-#~ "mod:`distutils` tools was the ability to declare dependencies on other "
-#~ "packages. It is currently recommended as a more regularly updated "
-#~ "alternative to :mod:`distutils` that offers consistent support for more "
-#~ "recent packaging standards across a wide range of Python versions."
-#~ msgstr ""
-#~ "`setuptools`_ es un reemplazo (en gran parte) directo de :mod:`distutils` "
-#~ "publicado por primera vez en 2004. Su adición más notable sobre las "
-#~ "herramientas sin modificar :mod:`distutils` fue la capacidad de declarar "
-#~ "dependencias en otros paquetes. Actualmente se recomienda como una "
-#~ "alternativa actualizada con más regularidad a :mod:`distutils` que ofrece "
-#~ "soporte consistente para estándares de empaquetado más recientes en una "
-#~ "amplia gama de versiones de Python."
-
-#~ msgid ""
-#~ "`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` "
-#~ "command to :mod:`distutils`/`setuptools`_. This produces a cross platform "
-#~ "binary packaging format (called \"wheels\" or \"wheel files\" and defined "
-#~ "in :pep:`427`) that allows Python libraries, even those including binary "
-#~ "extensions, to be installed on a system without needing to be built "
-#~ "locally."
-#~ msgstr ""
-#~ "`wheel`_ (en este contexto) es un proyecto que agrega el comando "
-#~ "``bdist_wheel`` a :mod:`distutils`/`setuptools`_. Esto produce un formato "
-#~ "de empaquetado binario multiplataforma (llamado \"wheels\" o \"wheel "
-#~ "files\" y definido en :pep:`427`) que permite que las bibliotecas de "
-#~ "Python, incluso aquellas que incluyen extensiones binarias, se instalen "
-#~ "en un sistema sin necesidad de ser compiladas en la zona."
-
-#~ msgid "Open source licensing and collaboration"
-#~ msgstr "Licencias de código abierto y colaboración"
-
-#~ msgid ""
-#~ "In most parts of the world, software is automatically covered by "
-#~ "copyright. This means that other developers require explicit permission "
-#~ "to copy, use, modify and redistribute the software."
-#~ msgstr ""
-#~ "En la mayor parte del mundo, el software está automáticamente protegido "
-#~ "por derechos de autor. Esto significa que otros desarrolladores requieren "
-#~ "permiso explícito para copiar, usar, modificar y redistribuir el software."
-
-#~ msgid ""
-#~ "Open source licensing is a way of explicitly granting such permission in "
-#~ "a relatively consistent way, allowing developers to share and collaborate "
-#~ "efficiently by making common solutions to various problems freely "
-#~ "available. This leaves many developers free to spend more time focusing "
-#~ "on the problems that are relatively unique to their specific situation."
-#~ msgstr ""
-#~ "La concesión de licencias de código abierto es una forma de otorgar "
-#~ "explícitamente dicho permiso de una manera relativamente consistente, lo "
-#~ "que permite a los desarrolladores compartir y colaborar de manera "
-#~ "eficiente al hacer que las soluciones comunes a varios problemas estén "
-#~ "disponibles de forma gratuita. Esto deja a muchos desarrolladores libres "
-#~ "para dedicar más tiempo a concentrarse en los problemas que son "
-#~ "relativamente únicos para su situación específica."
-
-#~ msgid ""
-#~ "The distribution tools provided with Python are designed to make it "
-#~ "reasonably straightforward for developers to make their own contributions "
-#~ "back to that common pool of software if they choose to do so."
-#~ msgstr ""
-#~ "Las herramientas de distribución proporcionadas con Python están "
-#~ "diseñadas para que sea razonablemente sencillo para los desarrolladores "
-#~ "hacer sus propias contribuciones a ese grupo común de software si así lo "
-#~ "desean."
-
-#~ msgid ""
-#~ "The same distribution tools can also be used to distribute software "
-#~ "within an organisation, regardless of whether that software is published "
-#~ "as open source software or not."
-#~ msgstr ""
-#~ "Las mismas herramientas de distribución también se pueden utilizar para "
-#~ "distribuir software dentro de una organización, independientemente de si "
-#~ "ese software se publica como software de código abierto o no."
-
-#~ msgid "Installing the tools"
-#~ msgstr "Instalando las herramientas"
-
-#~ msgid ""
-#~ "The standard library does not include build tools that support modern "
-#~ "Python packaging standards, as the core development team has found that "
-#~ "it is important to have standard tools that work consistently, even on "
-#~ "older versions of Python."
-#~ msgstr ""
-#~ "La biblioteca estándar no incluye herramientas de compilación que sean "
-#~ "compatibles con los estándares de empaquetado de Python modernos, ya que "
-#~ "el equipo de desarrollo central ha descubierto que es importante tener "
-#~ "herramientas estándar que funcionen de manera consistente, incluso en "
-#~ "versiones anteriores de Python."
-
-#~ msgid ""
-#~ "The currently recommended build and distribution tools can be installed "
-#~ "by invoking the ``pip`` module at the command line::"
-#~ msgstr ""
-#~ "Las herramientas de construcción y distribución recomendadas actualmente "
-#~ "se pueden instalar invocando el módulo ``pip`` en la línea de comando::"
-
-#~ msgid ""
-#~ "For POSIX users (including macOS and Linux users), these instructions "
-#~ "assume the use of a :term:`virtual environment`."
-#~ msgstr ""
-#~ "Para los usuarios POSIX (incluidos los usuarios de macOS y Linux), estas "
-#~ "instrucciones asumen el uso de un :term:`virtual environment`."
-
-#~ msgid ""
-#~ "For Windows users, these instructions assume that the option to adjust "
-#~ "the system PATH environment variable was selected when installing Python."
-#~ msgstr ""
-#~ "Para los usuarios de Windows, estas instrucciones asumen que se "
-#~ "seleccionó la opción para ajustar la variable de entorno PATH del sistema "
-#~ "al instalar Python."
-
-#~ msgid ""
-#~ "The Python Packaging User Guide includes more details on the `currently "
-#~ "recommended tools`_."
-#~ msgstr ""
-#~ "La \"Python Packaging User Guide\" incluye más detalles sobre las "
-#~ "`currently recommended tools`_."
-
-#~ msgid "Reading the Python Packaging User Guide"
-#~ msgstr "Leyendo la \"Python Packaging User Guide\""
-
-#~ msgid ""
-#~ "The Python Packaging User Guide covers the various key steps and elements "
-#~ "involved in creating and publishing a project:"
-#~ msgstr ""
-#~ "La \"Python Packaging User Guide\" cubre los diversos pasos y elementos "
-#~ "clave involucrados en la creación y publicación de un proyecto:"
-
-#~ msgid "`Project structure`_"
-#~ msgstr "`Estructura del proyecto`_"
-
-#~ msgid "`Building and packaging the project`_"
-#~ msgstr "`Compilando y empaquetando el proyecto`_"
-
-#~ msgid "`Uploading the project to the Python Package Index`_"
-#~ msgstr "`Subiendo el proyecto al Python Package Index`_"
-
-#~ msgid "`The .pypirc file`_"
-#~ msgstr "`El archivo .pypirc`_"
-
-#~ msgid "How do I...?"
-#~ msgstr "Cómo puedo...?"
-
-#~ msgid "These are quick answers or links for some common tasks."
-#~ msgstr "Estas son respuestas rápidas o enlaces para algunas tareas comunes."
-
-#~ msgid "... choose a name for my project?"
-#~ msgstr "... elegir un nombre para mi proyecto?"
-
-#~ msgid "This isn't an easy topic, but here are a few tips:"
-#~ msgstr "Este no es un tema fácil, pero aquí hay algunos consejos:"
-
-#~ msgid "check the Python Package Index to see if the name is already in use"
-#~ msgstr ""
-#~ "verifique el \"Python Package Index\" para ver si el nombre ya está en uso"
-
-#~ msgid ""
-#~ "check popular hosting sites like GitHub, Bitbucket, etc to see if there "
-#~ "is already a project with that name"
-#~ msgstr ""
-#~ "verifique sitios de alojamiento populares como GitHub, Bitbucket, etc. "
-#~ "para ver si ya existe un proyecto con ese nombre"
-
-#~ msgid "check what comes up in a web search for the name you're considering"
-#~ msgstr ""
-#~ "verifique lo que aparece en una búsqueda web para el nombre que está "
-#~ "considerando"
-
-#~ msgid ""
-#~ "avoid particularly common words, especially ones with multiple meanings, "
-#~ "as they can make it difficult for users to find your software when "
-#~ "searching for it"
-#~ msgstr ""
-#~ "evite palabras particularmente comunes, especialmente aquellas con "
-#~ "múltiples significados, ya que pueden dificultar que los usuarios "
-#~ "encuentren su software cuando lo busquen"
-
-#~ msgid "... create and distribute binary extensions?"
-#~ msgstr "... crear y distribuir extensiones binarias?"
-
-#~ msgid ""
-#~ "This is actually quite a complex topic, with a variety of alternatives "
-#~ "available depending on exactly what you're aiming to achieve. See the "
-#~ "Python Packaging User Guide for more information and recommendations."
-#~ msgstr ""
-#~ "Este es un tema bastante complejo, con una variedad de alternativas "
-#~ "disponibles según exactamente lo que pretenda lograr. Consulte la "
-#~ "\"Python Packaging User Guide\" para obtener más información y "
-#~ "recomendaciones."
-
-#~ msgid ""
-#~ "`Python Packaging User Guide: Binary Extensions `__"
-#~ msgstr ""
-#~ "`Python Packaging User Guide: Binary Extensions `__"
+"La información y orientación sobre la distribución de módulos y paquetes de "
+"Python se trasladaron a `Python Packaging User Guide`_ y al tutorial sobre "
+"`packaging Python projects`_."
From b05721cf06f5ce7d3e05e4ad6f8f7a3e6b8dbf03 Mon Sep 17 00:00:00 2001
From: Jose Ignacio Riano
Date: Fri, 5 Jan 2024 14:06:26 +0100
Subject: [PATCH 026/117] =?UTF-8?q?Traducci=C3=B3n=20de=20xml.sax.utils.po?=
=?UTF-8?q?=20(#2739)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #2602
---------
Co-authored-by: rtobar
Co-authored-by: Cristián Maureira-Fredes
Co-authored-by: Cristián Maureira-Fredes
---
library/xml.sax.utils.po | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po
index d0d3109e32..16c8423bb4 100644
--- a/library/xml.sax.utils.po
+++ b/library/xml.sax.utils.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: 2020-10-08 20:33+0200\n"
-"Last-Translator: \n"
-"Language: es_ES\n"
+"PO-Revision-Date: 2023-11-11 01:40+0100\n"
+"Last-Translator: Jose Ignacio Riaño Chico \n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_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.4.1\n"
#: ../Doc/library/xml.sax.utils.rst:2
msgid ":mod:`xml.sax.saxutils` --- SAX Utilities"
@@ -62,6 +63,9 @@ msgid ""
"directly in XML. Do not use this function as a general string translation "
"function."
msgstr ""
+"Esta función debería ser usada únicamente para escapar caracteres que no "
+"pueden ser usados directamente en XML. No use esta función como una función "
+"general de traducción de cadenas de caracteres."
#: ../Doc/library/xml.sax.utils.rst:36
msgid "Unescape ``'&'``, ``'<'``, and ``'>'`` in a string of data."
@@ -154,7 +158,6 @@ msgstr ""
"configuración a medida que pasan."
#: ../Doc/library/xml.sax.utils.rst:90
-#, fuzzy
msgid ""
"This function takes an input source and an optional base URL and returns a "
"fully resolved :class:`~xml.sax.xmlreader.InputSource` object ready for "
@@ -163,9 +166,10 @@ msgid ""
"function to implement the polymorphic *source* argument to their :meth:`~xml."
"sax.xmlreader.XMLReader.parse` method."
msgstr ""
-"Esta función toma una fuente de entrada y una URL base opcional y devuelve "
-"un objeto :class:`~xml.sax.xmlreader.InputSource` totalmente resuelto y "
-"listo para ser leído. La fuente de entrada puede ser dada como una cadena, "
-"un objeto tipo archivo, o un objeto :class:`~xml.sax.xmlreader.InputSource`; "
-"los analizadores usarán esta función para implementar el argumento "
-"polimórfico *fuente* a su método :meth:`parse`."
+"Esta función toma una fuente de entrada y, opcionalmente, una URL base y "
+"retorna un objeto :class:`~xml.sax.xmlreader.InputSource` completamente "
+"resuelto y listo para ser leído. La fuente de entrada puede ser "
+"proporcionada como una cadena de caracteres, un objeto tipo archivo , o un "
+"objeto :class:`~xml.sax.xmlreader.InputSource`; los analizadores usarán esta "
+"función para implementar el argumento polimórfico *source* a su método :meth:"
+"`~xml.sax.xmlreader.XMLReader.parse`."
From 7d7f77d918c2088793ef5a39547014460db666e4 Mon Sep 17 00:00:00 2001
From: Carlos Mena <50986837+carlosm00@users.noreply.github.com>
Date: Fri, 5 Jan 2024 22:51:31 +0100
Subject: [PATCH 027/117] Traduccion textwrap (#2792)
Closes #2557
---
library/textwrap.po | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/library/textwrap.po b/library/textwrap.po
index 77833bd987..70a410a306 100644
--- a/library/textwrap.po
+++ b/library/textwrap.po
@@ -11,8 +11,7 @@ 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-04 22:04+0200\n"
-"Last-Translator: Cristián Maureira-Fredes \n"
+"PO-Revision-Date: 2024-01-05 22:04+0200\n"
"Language: es\n"
"Language-Team: python-doc-es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -90,7 +89,6 @@ msgid "Collapse and truncate the given *text* to fit in the given *width*."
msgstr "Colapsa y trunca el *text* dado para que encaje en el *width* dado."
#: ../Doc/library/textwrap.rst:60
-#, fuzzy
msgid ""
"First the whitespace in *text* is collapsed (all whitespace is replaced by "
"single spaces). If the result fits in the *width*, it is returned. "
@@ -100,8 +98,8 @@ msgstr ""
"Primero el espacio blanco en *text* se colapsa (todos los espacios blancos "
"son reemplazados por espacios sencillos). Si el resultado cabe en el "
"*width*, se retorna. En caso contrario, se eliminan suficientes palabras del "
-"final para que las palabras restantes más el :attr:`placeholder` encajen "
-"dentro de :attr:`width`::"
+"final para que las palabras restantes más el *placeholder* encajen dentro de "
+"*width*::"
#: ../Doc/library/textwrap.rst:72
msgid ""
@@ -249,14 +247,13 @@ msgstr ""
"larga que los caracteres :attr:`width`."
#: ../Doc/library/textwrap.rst:175
-#, fuzzy
msgid ""
"(default: ``True``) If true, then all tab characters in *text* will be "
"expanded to spaces using the :meth:`~str.expandtabs` method of *text*."
msgstr ""
"(default: ``True``) Si es verdadero, entonces todos los caracteres de "
"tabulación en *text* serán expandidos a espacios usando el método :meth:"
-"`expandtabs` de *text*."
+"`~str.expandtabs` de *text*."
#: ../Doc/library/textwrap.rst:181
msgid ""
@@ -457,8 +454,8 @@ msgstr ""
#: ../Doc/library/textwrap.rst:285
msgid "..."
-msgstr ""
+msgstr "..."
#: ../Doc/library/textwrap.rst:285
msgid "placeholder"
-msgstr ""
+msgstr "placeholder"
From 7a16d04d56c58bf2be4d1cf41f0a9c28ca90856a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
Date: Fri, 5 Jan 2024 22:56:00 +0100
Subject: [PATCH 028/117] Traducido whatsnew/3.12 (#2672)
Closes #2633
---------
Co-authored-by: Marcos Medrano <786907+mmmarcos@users.noreply.github.com>
---
dictionaries/whatsnew_3.12.txt | 66 ++
whatsnew/3.12.po | 1919 ++++++++++++++++++++++++++------
2 files changed, 1663 insertions(+), 322 deletions(-)
create mode 100644 dictionaries/whatsnew_3.12.txt
diff --git a/dictionaries/whatsnew_3.12.txt b/dictionaries/whatsnew_3.12.txt
new file mode 100644
index 0000000000..38bf175f75
--- /dev/null
+++ b/dictionaries/whatsnew_3.12.txt
@@ -0,0 +1,66 @@
+preinstala
+override
+hasheable
+Badaracco
+Bhat
+Bower
+Bradshaw
+Braun
+Carlton
+Chan
+Chhina
+Cristián
+Domenico
+Donghee
+Firebird
+Franek
+Fredes
+Frost
+Galeon
+Ganguly
+Gao
+Gedam
+Georgi
+Gibson
+Goergens
+Grail
+Iarygin
+Iceape
+Jacob
+Jakob
+Julien
+Machalow
+Macías
+Magiera
+Maureira
+Modzelewski
+Mosaic
+Neumaier
+Ofey
+Palard
+Pradyun
+Pranav
+Ragusa
+Roshan
+Skipstone
+Soumendra
+Spearman
+Stanislav
+Thulasiram
+Tian
+Troxler
+Varsovia
+Walls
+Wenyang
+Wenzel
+Zmiev
+Zorin
+aclocal
+adáptelo
+bools
+conmutatividad
+pbd
+pseudoinstrucciones
+pseudoinstrucción
+tokenizarlo
+tríada
diff --git a/whatsnew/3.12.po b/whatsnew/3.12.po
index 3ad8c47393..6bed898fb4 100644
--- a/whatsnew/3.12.po
+++ b/whatsnew/3.12.po
@@ -12,25 +12,25 @@ msgstr ""
"POT-Creation-Date: 2023-10-12 19:43+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
-"Language: es\n"
"Language-Team: 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"
#: ../Doc/whatsnew/3.12.rst:4
msgid "What's New In Python 3.12"
-msgstr ""
+msgstr "Novedades de Python 3.12"
#: ../Doc/whatsnew/3.12.rst
msgid "Editor"
-msgstr ""
+msgstr "Editor"
#: ../Doc/whatsnew/3.12.rst:6
msgid "Adam Turner"
-msgstr ""
+msgstr "Adam Turner"
#: ../Doc/whatsnew/3.12.rst:48
msgid ""
@@ -38,14 +38,17 @@ msgid ""
"Python 3.12 was released on October 2, 2023. For full details, see the :ref:"
"`changelog `."
msgstr ""
+"Este artículo explica las nuevas características de Python 3.12, en "
+"comparación con 3.11. Python 3.12 se lanzó el 2 de octubre de 2023. Para "
+"obtener detalles completos, consulte :ref:`changelog `."
#: ../Doc/whatsnew/3.12.rst:54
msgid ":pep:`693` -- Python 3.12 Release Schedule"
-msgstr ""
+msgstr ":pep:`693` - Calendario de lanzamiento de Python 3.12"
#: ../Doc/whatsnew/3.12.rst:57
msgid "Summary -- Release highlights"
-msgstr ""
+msgstr "Resumen: aspectos destacados de la versión"
#: ../Doc/whatsnew/3.12.rst:62
msgid ""
@@ -56,6 +59,13 @@ msgid ""
"library. Filesystem support in :mod:`os` and :mod:`pathlib` has seen a "
"number of improvements, and several modules have better performance."
msgstr ""
+"Python 3.12 es la última versión estable del lenguaje de programación "
+"Python, con una combinación de cambios en el lenguaje y la biblioteca "
+"estándar. Los cambios en la biblioteca se centran en limpiar las API "
+"obsoletas, su usabilidad y su corrección. Es de destacar que el paquete :mod:"
+"`!distutils` se ha eliminado de la biblioteca estándar. La compatibilidad "
+"con el sistema de archivos en :mod:`os` y :mod:`pathlib` ha experimentado "
+"una serie de mejoras y varios módulos tienen un mejor rendimiento."
#: ../Doc/whatsnew/3.12.rst:69
msgid ""
@@ -66,6 +76,12 @@ msgid ""
"`generic types ` and :term:`type aliases ` with "
"static type checkers."
msgstr ""
+"Los cambios de idioma se centran en la usabilidad, ya que a :term:`f-strings "
+"` se le han eliminado muchas limitaciones y las sugerencias "
+"\"¿Quiso decir...\" continúan mejorando. La nueva declaración :ref:`type "
+"parameter syntax ` y :keyword:`type` mejora la ergonomía "
+"para usar :term:`generic types ` y :term:`type aliases ` con controladores de tipo estático."
#: ../Doc/whatsnew/3.12.rst:76
msgid ""
@@ -77,80 +93,104 @@ msgid ""
"change, refer to the PEP for a particular new feature; but note that PEPs "
"usually are not kept up-to-date once a feature has been fully implemented."
msgstr ""
+"Este artículo no intenta proporcionar una especificación completa de todas "
+"las características nuevas, sino que brinda una descripción general "
+"conveniente. Para obtener detalles completos, debe consultar la "
+"documentación, como :ref:`Library Reference ` y :ref:"
+"`Language Reference `. Si desea comprender la "
+"implementación completa y la justificación del diseño de un cambio, consulte "
+"el PEP para conocer una característica nueva en particular; pero tenga en "
+"cuenta que los PEP generalmente no se mantienen actualizados una vez que una "
+"característica se ha implementado por completo."
#: ../Doc/whatsnew/3.12.rst:90
msgid "New syntax features:"
-msgstr ""
+msgstr "Nuevas características de sintaxis:"
#: ../Doc/whatsnew/3.12.rst:92
msgid ""
":ref:`PEP 695 `, type parameter syntax and the :keyword:"
"`type` statement"
msgstr ""
+":ref:`PEP 695 `, sintaxis de parámetro de tipo y "
+"sentencia :keyword:`type`"
#: ../Doc/whatsnew/3.12.rst:94
msgid "New grammar features:"
-msgstr ""
+msgstr "Nuevas características gramaticales:"
#: ../Doc/whatsnew/3.12.rst:96
msgid ""
":ref:`PEP 701 `, :term:`f-strings ` in the "
"grammar"
msgstr ""
+":ref:`PEP 701 `, :term:`f-strings ` en la "
+"gramática"
#: ../Doc/whatsnew/3.12.rst:98
msgid "Interpreter improvements:"
-msgstr ""
+msgstr "Mejoras del intérprete:"
#: ../Doc/whatsnew/3.12.rst:100
msgid ""
":ref:`PEP 684 `, a unique per-interpreter :term:`GIL "
"`"
msgstr ""
+":ref:`PEP 684 `, un :term:`GIL ` único por intérprete"
#: ../Doc/whatsnew/3.12.rst:102
msgid ":ref:`PEP 669 `, low impact monitoring"
-msgstr ""
+msgstr ":ref:`PEP 669 `, monitorización de bajo impacto"
#: ../Doc/whatsnew/3.12.rst:103
msgid ""
"`Improved 'Did you mean ...' suggestions `_ for :"
"exc:`NameError`, :exc:`ImportError`, and :exc:`SyntaxError` exceptions"
msgstr ""
+"`Improved 'Did you mean ...' suggestions `_ para "
+"excepciones :exc:`NameError`, :exc:`ImportError` y :exc:`SyntaxError`"
#: ../Doc/whatsnew/3.12.rst:106
msgid "Python data model improvements:"
-msgstr ""
+msgstr "Mejoras en el modelo de datos de Python:"
#: ../Doc/whatsnew/3.12.rst:108
msgid ""
":ref:`PEP 688 `, using the :ref:`buffer protocol "
"` from Python"
msgstr ""
+":ref:`PEP 688 `, usando :ref:`buffer protocol "
+"` de Python"
#: ../Doc/whatsnew/3.12.rst:111
msgid "Significant improvements in the standard library:"
-msgstr ""
+msgstr "Mejoras significativas en la biblioteca estándar:"
#: ../Doc/whatsnew/3.12.rst:113
msgid "The :class:`pathlib.Path` class now supports subclassing"
-msgstr ""
+msgstr "La clase :class:`pathlib.Path` ahora admite subclases"
#: ../Doc/whatsnew/3.12.rst:114
msgid "The :mod:`os` module received several improvements for Windows support"
-msgstr ""
+msgstr "El módulo :mod:`os` recibió varias mejoras para el soporte de Windows"
#: ../Doc/whatsnew/3.12.rst:115
msgid ""
"A :ref:`command-line interface ` has been added to the :mod:"
"`sqlite3` module"
msgstr ""
+"Se ha agregado un :ref:`command-line interface ` al módulo :mod:"
+"`sqlite3`"
#: ../Doc/whatsnew/3.12.rst:117
msgid ""
":func:`isinstance` checks against :func:`runtime-checkable protocols ` enjoy a speed up of between two and 20 times"
msgstr ""
+"Los controles :func:`isinstance` frente a :func:`runtime-checkable protocols "
+"` benefician de una aceleración de entre dos y 20 "
+"veces"
#: ../Doc/whatsnew/3.12.rst:119
#, python-format
@@ -158,12 +198,16 @@ msgid ""
"The :mod:`asyncio` package has had a number of performance improvements, "
"with some benchmarks showing a 75% speed up."
msgstr ""
+"El paquete :mod:`asyncio` ha tenido una serie de mejoras de rendimiento, y "
+"algunos puntos de referencia muestran una aceleración del 75 %."
#: ../Doc/whatsnew/3.12.rst:121
msgid ""
"A :ref:`command-line interface ` has been added to the :mod:`uuid` "
"module"
msgstr ""
+"Se ha agregado un :ref:`command-line interface ` al módulo :mod:"
+"`uuid`"
#: ../Doc/whatsnew/3.12.rst:123
#, python-format
@@ -171,10 +215,12 @@ msgid ""
"Due to the changes in :ref:`PEP 701 `, producing tokens "
"via the :mod:`tokenize` module is up to up to 64% faster."
msgstr ""
+"Debido a los cambios en :ref:`PEP 701 `, la producción "
+"de tokens a través del módulo :mod:`tokenize` es hasta un 64% más rápida."
#: ../Doc/whatsnew/3.12.rst:126
msgid "Security improvements:"
-msgstr ""
+msgstr "Mejoras de seguridad:"
#: ../Doc/whatsnew/3.12.rst:128
msgid ""
@@ -183,58 +229,70 @@ msgid ""
"github.com/hacl-star/hacl-star/>`__ project. These builtin implementations "
"remain as fallbacks that are only used when OpenSSL does not provide them."
msgstr ""
+"Reemplaza las implementaciones :mod:`hashlib` integradas de SHA1, SHA3, "
+"SHA2-384, SHA2-512 y MD5 con código verificado formalmente del proyecto "
+"`HACL* `__. Estas implementaciones "
+"integradas permanecen como alternativas que solo se utilizan cuando OpenSSL "
+"no las proporciona."
#: ../Doc/whatsnew/3.12.rst:134
msgid "C API improvements:"
-msgstr ""
+msgstr "Mejoras de la API C:"
#: ../Doc/whatsnew/3.12.rst:136
msgid ":ref:`PEP 697 `, unstable C API tier"
-msgstr ""
+msgstr ":ref:`PEP 697 `, nivel de API C inestable"
#: ../Doc/whatsnew/3.12.rst:137
msgid ":ref:`PEP 683 `, immortal objects"
-msgstr ""
+msgstr ":ref:`PEP 683 `, objetos inmortales"
#: ../Doc/whatsnew/3.12.rst:139
msgid "CPython implementation improvements:"
-msgstr ""
+msgstr "Mejoras en la implementación de CPython:"
#: ../Doc/whatsnew/3.12.rst:141
msgid ":ref:`PEP 709 `, comprehension inlining"
-msgstr ""
+msgstr ":ref:`PEP 709 `, comprensión en línea"
#: ../Doc/whatsnew/3.12.rst:142
msgid ":ref:`CPython support ` for the Linux ``perf`` profiler"
msgstr ""
+":ref:`CPython support ` para el perfilador Linux ``perf``"
#: ../Doc/whatsnew/3.12.rst:143
msgid "Implement stack overflow protection on supported platforms"
msgstr ""
+"Implementar protección contra desbordamiento de pila en plataformas "
+"compatibles"
#: ../Doc/whatsnew/3.12.rst:145
msgid "New typing features:"
-msgstr ""
+msgstr "Nuevas funciones de tipado:"
#: ../Doc/whatsnew/3.12.rst:147
msgid ""
":ref:`PEP 692 `, using :class:`~typing.TypedDict` to "
"annotate :term:`**kwargs `"
msgstr ""
+":ref:`PEP 692 `, usando :class:`~typing.TypedDict` para "
+"anotar :term:`**kwargs `"
#: ../Doc/whatsnew/3.12.rst:149
msgid ":ref:`PEP 698 `, :func:`typing.override` decorator"
-msgstr ""
+msgstr ":ref:`PEP 698 `, decorador :func:`typing.override`"
#: ../Doc/whatsnew/3.12.rst:151
msgid "Important deprecations, removals or restrictions:"
-msgstr ""
+msgstr "Depreciaciones, eliminaciones o restricciones importantes:"
#: ../Doc/whatsnew/3.12.rst:153
msgid ""
":pep:`623`: Remove ``wstr`` from Unicode objects in Python's C API, reducing "
"the size of every :class:`str` object by at least 8 bytes."
msgstr ""
+":pep:`623`: elimina ``wstr`` de los objetos Unicode en la API C de Python, "
+"reduciendo el tamaño de cada objeto :class:`str` en al menos 8 bytes."
#: ../Doc/whatsnew/3.12.rst:156
msgid ""
@@ -244,6 +302,12 @@ msgid ""
"io/en/latest/deprecated/distutils-legacy.html>`__ package continues to "
"provide :mod:`!distutils`, if you still require it in Python 3.12 and beyond."
msgstr ""
+":pep:`632`: elimina el paquete :mod:`!distutils`. Consulte `the migration "
+"guide `_ para obtener "
+"consejos sobre cómo reemplazar las API que proporcionaba. El paquete "
+"`Setuptools `__ de terceros continúa proporcionando :mod:`!distutils`, si "
+"aún lo necesita en Python 3.12 y versiones posteriores."
#: ../Doc/whatsnew/3.12.rst:163
msgid ""
@@ -253,6 +317,11 @@ msgid ""
"to access these run ``pip install setuptools`` in the :ref:`activated ` virtual environment."
msgstr ""
+":gh:`95299`: No preinstala ``setuptools`` en entornos virtuales creados con :"
+"mod:`venv`. Esto significa que ``distutils``, ``setuptools``, "
+"``pkg_resources`` y ``easy_install`` ya no estarán disponibles de forma "
+"predeterminada; para acceder a ellos, ejecute ``pip install setuptools`` en "
+"el entorno virtual :ref:`activated `."
#: ../Doc/whatsnew/3.12.rst:170
msgid ""
@@ -260,14 +329,17 @@ msgid ""
"removed, along with several :class:`unittest.TestCase` `method aliases "
"`_."
msgstr ""
+"Se han eliminado los módulos :mod:`!asynchat`, :mod:`!asyncore` y :mod:`!"
+"imp`, junto con varios :class:`unittest.TestCase` `method aliases `_."
#: ../Doc/whatsnew/3.12.rst:176 ../Doc/whatsnew/3.12.rst:1917
msgid "New Features"
-msgstr ""
+msgstr "Nuevas características"
#: ../Doc/whatsnew/3.12.rst:181
msgid "PEP 695: Type Parameter Syntax"
-msgstr ""
+msgstr "PEP 695: Sintaxis de parámetro de tipo"
#: ../Doc/whatsnew/3.12.rst:183
msgid ""
@@ -275,6 +347,9 @@ msgid ""
"syntax that left the scope of type parameters unclear and required explicit "
"declarations of variance."
msgstr ""
+"Las clases y funciones genéricas en :pep:`484` se declararon utilizando una "
+"sintaxis detallada que dejaba el alcance de los parámetros de tipo poco "
+"claro y requería declaraciones explícitas de variación."
#: ../Doc/whatsnew/3.12.rst:187
msgid ""
@@ -282,6 +357,8 @@ msgid ""
"`generic classes ` and :ref:`functions `::"
msgstr ""
+":pep:`695` presenta una forma nueva, más compacta y explícita de crear :ref:"
+"`generic classes ` y :ref:`functions `:"
#: ../Doc/whatsnew/3.12.rst:200
msgid ""
@@ -289,10 +366,14 @@ msgid ""
"` using the :keyword:`type` statement, which creates an "
"instance of :class:`~typing.TypeAliasType`::"
msgstr ""
+"Además, el PEP introduce una nueva forma de declarar :ref:`type aliases "
+"` utilizando la declaración :keyword:`type`, que crea una "
+"instancia de :class:`~typing.TypeAliasType`:"
#: ../Doc/whatsnew/3.12.rst:206
msgid "Type aliases can also be :ref:`generic `::"
msgstr ""
+"Los alias de tipo también pueden ser :ref:`generic `::"
#: ../Doc/whatsnew/3.12.rst:210
msgid ""
@@ -300,6 +381,9 @@ msgid ""
"`~typing.ParamSpec` parameters, as well as :class:`~typing.TypeVar` "
"parameters with bounds or constraints::"
msgstr ""
+"La nueva sintaxis permite declarar los parámetros :class:`~typing."
+"TypeVarTuple` y :class:`~typing.ParamSpec`, así como los parámetros :class:"
+"`~typing.TypeVar` con límites o restricciones::"
#: ../Doc/whatsnew/3.12.rst:219
msgid ""
@@ -308,6 +392,11 @@ msgid ""
"evaluation `). This means type aliases are able to refer to "
"other types defined later in the file."
msgstr ""
+"El valor de los alias de tipo y los límites y restricciones de las variables "
+"de tipo creadas mediante esta sintaxis se evalúan solo según demanda "
+"(consulte :ref:`lazy evaluation `). Esto significa que los "
+"alias de tipo pueden hacer referencia a otros tipos definidos más adelante "
+"en el archivo."
#: ../Doc/whatsnew/3.12.rst:224
msgid ""
@@ -318,6 +407,14 @@ msgid ""
"module scope after the class is defined. See :ref:`type-params` for a "
"detailed description of the runtime semantics of type parameters."
msgstr ""
+"Los parámetros de tipo declarados a través de una lista de parámetros de "
+"tipo son visibles dentro del alcance de la declaración y de cualquier "
+"alcance anidado, pero no en el alcance externo. Por ejemplo, se pueden "
+"utilizar en las anotaciones de tipo de los métodos de una clase genérica o "
+"en el cuerpo de la clase. Sin embargo, no se pueden utilizar en el alcance "
+"del módulo una vez definida la clase. Consulte :ref:`type-params` para "
+"obtener una descripción detallada de la semántica de tiempo de ejecución de "
+"los parámetros de tipo."
#: ../Doc/whatsnew/3.12.rst:231
msgid ""
@@ -327,20 +424,28 @@ msgid ""
"differently with enclosing class scopes. In Python 3.13, :term:`annotations "
"` will also be evaluated in annotation scopes."
msgstr ""
+"Para respaldar esta semántica de alcance, se introduce un nuevo tipo de "
+"alcance, el :ref:`annotation scope `. Los ámbitos de "
+"anotación se comportan en su mayor parte como ámbitos de función, pero "
+"interactúan de manera diferente con los ámbitos de clase adjuntos. En Python "
+"3.13, :term:`annotations ` también se evaluará en ámbitos de "
+"anotación."
#: ../Doc/whatsnew/3.12.rst:237
msgid "See :pep:`695` for more details."
-msgstr ""
+msgstr "Consulte :pep:`695` para obtener más detalles."
#: ../Doc/whatsnew/3.12.rst:239
msgid ""
"(PEP written by Eric Traut. Implementation by Jelle Zijlstra, Eric Traut, "
"and others in :gh:`103764`.)"
msgstr ""
+"(PEP escrito por Eric Traut. Implementación por Jelle Zijlstra, Eric Traut y "
+"otros en :gh:`103764`.)"
#: ../Doc/whatsnew/3.12.rst:245
msgid "PEP 701: Syntactic formalization of f-strings"
-msgstr ""
+msgstr "PEP 701: Formalización sintáctica de cadenas f"
#: ../Doc/whatsnew/3.12.rst:247
msgid ""
@@ -350,6 +455,12 @@ msgid ""
"string, multi-line expressions, comments, backslashes, and unicode escape "
"sequences. Let's cover these in detail:"
msgstr ""
+":pep:`701` elimina algunas restricciones sobre el uso de :term:`f-strings `. Los componentes de expresión dentro de cadenas f ahora pueden ser "
+"cualquier expresión Python válida, incluidas cadenas que reutilizan la misma "
+"comilla que la cadena f que las contiene, expresiones de varias líneas, "
+"comentarios, barras invertidas y secuencias de escape Unicode. Cubramos "
+"estos en detalle:"
#: ../Doc/whatsnew/3.12.rst:253
msgid ""
@@ -358,6 +469,11 @@ msgid ""
"available quotes (like using double quotes or triple quotes if the f-string "
"uses single quotes). In Python 3.12, you can now do things like this:"
msgstr ""
+"Reutilización de comillas: en Python 3.11, reutilizar las mismas comillas "
+"que la cadena f adjunta genera un :exc:`SyntaxError`, lo que obliga al "
+"usuario a usar otras comillas disponibles (como usar comillas dobles o "
+"triples si la cadena f usa comillas simples). En Python 3.12, ahora puedes "
+"hacer cosas como esta:"
#: ../Doc/whatsnew/3.12.rst:262
msgid ""
@@ -366,12 +482,20 @@ msgid ""
"expression component of f-strings made it impossible to nest f-strings "
"arbitrarily. In fact, this is the most nested f-string that could be written:"
msgstr ""
+"Tenga en cuenta que antes de este cambio no había un límite explícito en "
+"cómo se pueden anidar las cadenas f, pero el hecho de que las comillas de "
+"cadena no se pueden reutilizar dentro del componente de expresión de las "
+"cadenas f hacía imposible anidar cadenas f arbitrariamente. De hecho, esta "
+"es la cadena f más anidada que podría escribirse:"
#: ../Doc/whatsnew/3.12.rst:270
msgid ""
"As now f-strings can contain any valid Python expression inside expression "
"components, it is now possible to nest f-strings arbitrarily:"
msgstr ""
+"Como ahora las cadenas f pueden contener cualquier expresión Python válida "
+"dentro de los componentes de expresión, ahora es posible anidar cadenas f de "
+"forma arbitraria:"
#: ../Doc/whatsnew/3.12.rst:276
msgid ""
@@ -381,6 +505,12 @@ msgid ""
"multiple lines), making them harder to read. In Python 3.12 you can now "
"define f-strings spanning multiple lines, and add inline comments:"
msgstr ""
+"Expresiones y comentarios de varias líneas: en Python 3.11, las expresiones "
+"de cadena f deben definirse en una sola línea, incluso si la expresión "
+"dentro de la cadena f normalmente podría abarcar varias líneas (como listas "
+"literales que se definen en varias líneas), lo que las hace más difícil de "
+"leer. En Python 3.12 ahora puedes definir cadenas f que abarquen varias "
+"líneas y agregar comentarios en línea:"
#: ../Doc/whatsnew/3.12.rst:290
msgid ""
@@ -390,10 +520,16 @@ msgid ""
"contain the ``\\N`` part that previously could not be part of expression "
"components of f-strings. Now, you can define expressions like this:"
msgstr ""
+"Barras invertidas y caracteres Unicode: antes de Python 3.12, las "
+"expresiones de cadena f no podían contener ningún carácter ``\\``. Esto "
+"también afectó a Unicode :ref:`escape sequences ` (como "
+"``\\N{snowman}``), ya que contienen la parte ``\\N`` que anteriormente no "
+"podía ser parte de los componentes de expresión de f-strings. Ahora puedes "
+"definir expresiones como esta:"
#: ../Doc/whatsnew/3.12.rst:303
msgid "See :pep:`701` for more details."
-msgstr ""
+msgstr "Consulte :pep:`701` para obtener más detalles."
#: ../Doc/whatsnew/3.12.rst:305
msgid ""
@@ -402,6 +538,11 @@ msgid ""
"strings are more precise and include the exact location of the error. For "
"example, in Python 3.11, the following f-string raises a :exc:`SyntaxError`:"
msgstr ""
+"Como efecto secundario positivo de cómo se implementó esta característica "
+"(al analizar cadenas f con :pep:`the PEG parser <617>`, ahora los mensajes "
+"de error para cadenas f son más precisos e incluyen la ubicación exacta del "
+"error. Por ejemplo, en Python 3.11, lo siguiente f-string genera un :exc:"
+"`SyntaxError`:"
#: ../Doc/whatsnew/3.12.rst:318
msgid ""
@@ -410,6 +551,10 @@ msgid ""
"In Python 3.12, as f-strings are parsed with the PEG parser, error messages "
"can be more precise and show the entire line:"
msgstr ""
+"pero el mensaje de error no incluye la ubicación exacta del error dentro de "
+"la línea y también tiene la expresión artificialmente entre paréntesis. En "
+"Python 3.12, a medida que las cadenas f se analizan con el analizador PEG, "
+"los mensajes de error pueden ser más precisos y mostrar la línea completa:"
#: ../Doc/whatsnew/3.12.rst:330
msgid ""
@@ -417,10 +562,13 @@ msgid ""
"Maureira-Fredes and Marta Gómez in :gh:`102856`. PEP written by Pablo "
"Galindo, Batuhan Taskaya, Lysandros Nikolaou and Marta Gómez)."
msgstr ""
+"(Aportado por Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou, Cristián "
+"Maureira-Fredes y Marta Gómez en :gh:`102856`. PEP escrito por Pablo "
+"Galindo, Batuhan Taskaya, Lysandros Nikolaou y Marta Gómez)."
#: ../Doc/whatsnew/3.12.rst:337
msgid "PEP 684: A Per-Interpreter GIL"
-msgstr ""
+msgstr "PEP 684: un GIL por intérprete"
#: ../Doc/whatsnew/3.12.rst:339
msgid ""
@@ -430,26 +578,36 @@ msgid ""
"CPU cores. This is currently only available through the C-API, though a "
"Python API is :pep:`anticipated for 3.13 <554>`."
msgstr ""
+":pep:`684` introduce un :term:`GIL ` por "
+"intérprete, de modo que ahora se pueden crear subintérpretes con un GIL "
+"único por intérprete. Esto permite que los programas Python aprovechen al "
+"máximo múltiples núcleos de CPU. Actualmente, esto solo está disponible a "
+"través de C-API, aunque una API de Python es :pep:`anticipada para 3.13 "
+"<554>`."
#: ../Doc/whatsnew/3.12.rst:345
msgid ""
"Use the new :c:func:`Py_NewInterpreterFromConfig` function to create an "
"interpreter with its own GIL::"
msgstr ""
+"Utilice la nueva función :c:func:`Py_NewInterpreterFromConfig` para crear un "
+"intérprete con su propio GIL::"
#: ../Doc/whatsnew/3.12.rst:359
msgid ""
"For further examples how to use the C-API for sub-interpreters with a per-"
"interpreter GIL, see :source:`Modules/_xxsubinterpretersmodule.c`."
msgstr ""
+"Para obtener más ejemplos de cómo utilizar C-API para subintérpretes con un "
+"GIL por intérprete, consulte :source:`Modules/_xxsubinterpretersmodule.c`."
#: ../Doc/whatsnew/3.12.rst:362
msgid "(Contributed by Eric Snow in :gh:`104210`, etc.)"
-msgstr ""
+msgstr "(Aportado por Eric Snow en :gh:`104210`, etc.)"
#: ../Doc/whatsnew/3.12.rst:367
msgid "PEP 669: Low impact monitoring for CPython"
-msgstr ""
+msgstr "PEP 669: Monitoreo de bajo impacto para CPython"
#: ../Doc/whatsnew/3.12.rst:369
msgid ""
@@ -460,14 +618,20 @@ msgid ""
"near-zero overhead debuggers and coverage tools. See :mod:`sys.monitoring` "
"for details."
msgstr ""
+":pep:`669` define un nuevo :mod:`API ` para perfiladores, "
+"depuradores y otras herramientas para monitorear eventos en CPython. Cubre "
+"una amplia gama de eventos, incluidas llamadas, devoluciones, líneas, "
+"excepciones, saltos y más. Esto significa que solo paga por lo que usa, "
+"brindando soporte para depuradores generales y herramientas de cobertura "
+"casi nulos. Consulte :mod:`sys.monitoring` para obtener más detalles."
#: ../Doc/whatsnew/3.12.rst:377
msgid "(Contributed by Mark Shannon in :gh:`103082`.)"
-msgstr ""
+msgstr "(Aportado por Mark Shannon en :gh:`103082`.)"
#: ../Doc/whatsnew/3.12.rst:382
msgid "PEP 688: Making the buffer protocol accessible in Python"
-msgstr ""
+msgstr "PEP 688: Hacer accesible el protocolo de búfer en Python"
#: ../Doc/whatsnew/3.12.rst:384
msgid ""
@@ -475,6 +639,10 @@ msgid ""
"` from Python code. Classes that implement the :meth:`~object."
"__buffer__` method are now usable as buffer types."
msgstr ""
+":pep:`688` presenta una forma de utilizar :ref:`buffer protocol "
+"` desde el código Python. Las clases que implementan el "
+"método :meth:`~object.__buffer__` ahora se pueden utilizar como tipos de "
+"búfer."
#: ../Doc/whatsnew/3.12.rst:388
msgid ""
@@ -483,10 +651,15 @@ msgid ""
"`inspect.BufferFlags` enum represents the flags that can be used to "
"customize buffer creation. (Contributed by Jelle Zijlstra in :gh:`102500`.)"
msgstr ""
+"El nuevo :class:`collections.abc.Buffer` ABC proporciona una forma estándar "
+"de representar objetos de búfer, por ejemplo en anotaciones de tipo. La "
+"nueva enumeración :class:`inspect.BufferFlags` representa los indicadores "
+"que se pueden usar para personalizar la creación del búfer. (Aportado por "
+"Jelle Zijlstra en :gh:`102500`.)"
#: ../Doc/whatsnew/3.12.rst:397
msgid "PEP 709: Comprehension inlining"
-msgstr ""
+msgstr "PEP 709: Integración de la comprensión"
#: ../Doc/whatsnew/3.12.rst:399
msgid ""
@@ -495,6 +668,10 @@ msgid ""
"comprehension. This speeds up execution of a comprehension by up to two "
"times. See :pep:`709` for further details."
msgstr ""
+"Las comprensiones de diccionario, lista y conjunto ahora están integradas, "
+"en lugar de crear un nuevo objeto de función de un solo uso para cada "
+"ejecución de la comprensión. Esto acelera la ejecución de una comprensión "
+"hasta dos veces. Consulte :pep:`709` para obtener más detalles."
#: ../Doc/whatsnew/3.12.rst:404
msgid ""
@@ -502,12 +679,19 @@ msgid ""
"variable of the same name in the outer scope, nor are they visible after the "
"comprehension. Inlining does result in a few visible behavior changes:"
msgstr ""
+"Las variables de iteración de comprensión permanecen aisladas y no "
+"sobrescriben una variable del mismo nombre en el alcance externo, ni son "
+"visibles después de la comprensión. La incorporación da como resultado "
+"algunos cambios de comportamiento visibles:"
#: ../Doc/whatsnew/3.12.rst:408
msgid ""
"There is no longer a separate frame for the comprehension in tracebacks, and "
"tracing/profiling no longer shows the comprehension as a function call."
msgstr ""
+"Ya no hay un marco separado para la comprensión en los rastreos, y el "
+"rastreo/elaboración de perfiles ya no muestra la comprensión como una "
+"llamada a función."
#: ../Doc/whatsnew/3.12.rst:410
msgid ""
@@ -515,6 +699,9 @@ msgid ""
"each comprehension; instead, the comprehension's locals will be included in "
"the parent function's symbol table."
msgstr ""
+"El módulo :mod:`symtable` ya no producirá tablas de símbolos secundarios "
+"para cada comprensión; en cambio, los locales de comprensión se incluirán en "
+"la tabla de símbolos de la función principal."
#: ../Doc/whatsnew/3.12.rst:413
msgid ""
@@ -522,6 +709,9 @@ msgid ""
"outside the comprehension, and no longer includes the synthetic ``.0`` "
"variable for the comprehension \"argument\"."
msgstr ""
+"Llamar a :func:`locals` dentro de una comprensión ahora incluye variables "
+"externas a la comprensión y ya no incluye la variable sintética ``.0`` para "
+"el \"argumento\" de comprensión."
#: ../Doc/whatsnew/3.12.rst:416
msgid ""
@@ -532,14 +722,21 @@ msgid ""
"error, first create a list of keys to iterate over: ``keys = list(locals()); "
"[k for k in keys]``."
msgstr ""
+"Una comprensión que itera directamente sobre ``locals()`` (por ejemplo, ``[k "
+"for k in locals()]``) puede ver \"RuntimeError: el diccionario cambió de "
+"tamaño durante la iteración\" cuando se ejecuta bajo seguimiento (por "
+"ejemplo, medición de cobertura de código). Este es el mismo comportamiento "
+"que ya se ha visto, por ejemplo, en ``for k in locals():``. Para evitar el "
+"error, primero cree una lista de claves para iterar: ``keys = "
+"list(locals()); [k for k in keys]``."
#: ../Doc/whatsnew/3.12.rst:423
msgid "(Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.)"
-msgstr ""
+msgstr "(Aportado por Carl Meyer y Vladimir Matveev en :pep:`709`.)"
#: ../Doc/whatsnew/3.12.rst:426
msgid "Improved Error Messages"
-msgstr ""
+msgstr "Mensajes de error mejorados"
#: ../Doc/whatsnew/3.12.rst:428
msgid ""
@@ -547,6 +744,10 @@ msgid ""
"the error messages displayed by the interpreter when a :exc:`NameError` is "
"raised to the top level. (Contributed by Pablo Galindo in :gh:`98254`.)"
msgstr ""
+"Ahora se sugieren potencialmente módulos de la biblioteca estándar como "
+"parte de los mensajes de error que muestra el intérprete cuando un :exc:"
+"`NameError` se eleva al nivel superior. (Aportado por Pablo Galindo en :gh:"
+"`98254`.)"
#: ../Doc/whatsnew/3.12.rst:437
msgid ""
@@ -556,6 +757,12 @@ msgid ""
"will include ``self.`` instead of the closest match in the method "
"scope. (Contributed by Pablo Galindo in :gh:`99139`.)"
msgstr ""
+"Mejora la sugerencia de error para excepciones :exc:`NameError` para "
+"instancias. Ahora, si se genera un :exc:`NameError` en un método y la "
+"instancia tiene un atributo que es exactamente igual al nombre en la "
+"excepción, la sugerencia incluirá ``self.`` en lugar de la "
+"coincidencia más cercana en el alcance del método. (Aportado por Pablo "
+"Galindo en :gh:`99139`.)"
#: ../Doc/whatsnew/3.12.rst:457
msgid ""
@@ -563,6 +770,9 @@ msgid ""
"from y`` instead of ``from y import x``. (Contributed by Pablo Galindo in :"
"gh:`98931`.)"
msgstr ""
+"Mejora el mensaje de error :exc:`SyntaxError` cuando el usuario escribe "
+"``import x from y`` en lugar de ``from y import x``. (Aportado por Pablo "
+"Galindo en :gh:`98931`.)"
#: ../Doc/whatsnew/3.12.rst:467
msgid ""
@@ -571,20 +781,27 @@ msgid ""
"based on the available names in ````. (Contributed by Pablo Galindo "
"in :gh:`91058`.)"
msgstr ""
+"Las excepciones :exc:`ImportError` generadas por sentencias ``from "
+"import `` fallidas ahora incluyen sugerencias para el valor de "
+"```` según los nombres disponibles en ````. (Aportado por "
+"Pablo Galindo en :gh:`91058`.)"
#: ../Doc/whatsnew/3.12.rst:478
msgid "New Features Related to Type Hints"
-msgstr ""
+msgstr "Nuevas funciones relacionadas con las sugerencias de escritura"
#: ../Doc/whatsnew/3.12.rst:480
msgid ""
"This section covers major changes affecting :pep:`type hints <484>` and the :"
"mod:`typing` module."
msgstr ""
+"Esta sección cubre los cambios principales que afectan a :pep:`type hints "
+"<484>` y al módulo :mod:`typing`."
#: ../Doc/whatsnew/3.12.rst:486
msgid "PEP 692: Using ``TypedDict`` for more precise ``**kwargs`` typing"
msgstr ""
+"PEP 692: uso de ``TypedDict`` para una escritura ``**kwargs`` más precisa"
#: ../Doc/whatsnew/3.12.rst:488
msgid ""
@@ -592,24 +809,29 @@ msgid ""
"allowed for valid annotations only in cases where all of the ``**kwargs`` "
"were of the same type."
msgstr ""
+"Escribir ``**kwargs`` en una firma de función introducida por :pep:`484` "
+"permitía anotaciones válidas solo en los casos en que todos los ``**kwargs`` "
+"eran del mismo tipo."
#: ../Doc/whatsnew/3.12.rst:492
msgid ""
":pep:`692` specifies a more precise way of typing ``**kwargs`` by relying on "
"typed dictionaries::"
msgstr ""
+":pep:`692` especifica una forma más precisa de escribir ``**kwargs`` "
+"basándose en diccionarios escritos::"
#: ../Doc/whatsnew/3.12.rst:503
msgid "See :pep:`692` for more details."
-msgstr ""
+msgstr "Consulte :pep:`692` para obtener más detalles."
#: ../Doc/whatsnew/3.12.rst:505
msgid "(Contributed by Franek Magiera in :gh:`103629`.)"
-msgstr ""
+msgstr "(Aportado por Franek Magiera en :gh:`103629`.)"
#: ../Doc/whatsnew/3.12.rst:510
msgid "PEP 698: Override Decorator for Static Typing"
-msgstr ""
+msgstr "PEP 698: Decorador override para escritura estática"
#: ../Doc/whatsnew/3.12.rst:512
msgid ""
@@ -619,28 +841,35 @@ msgid ""
"mistakes where a method that is intended to override something in a base "
"class does not in fact do so."
msgstr ""
+"Se ha agregado un nuevo decorador :func:`typing.override` al módulo :mod:"
+"`typing`. Indica a los inspectores de tipo que el método está destinado a "
+"anular un método en una superclase. Esto permite a los verificadores de "
+"tipos detectar errores cuando un método destinado a anular algo en una clase "
+"base en realidad no lo hace."
#: ../Doc/whatsnew/3.12.rst:518
msgid "Example::"
-msgstr ""
+msgstr "Ejemplo::"
#: ../Doc/whatsnew/3.12.rst:536
msgid "See :pep:`698` for more details."
-msgstr ""
+msgstr "Consulte :pep:`698` para obtener más detalles."
#: ../Doc/whatsnew/3.12.rst:538
msgid "(Contributed by Steven Troxler in :gh:`101561`.)"
-msgstr ""
+msgstr "(Aportado por Steven Troxler en :gh:`101561`.)"
#: ../Doc/whatsnew/3.12.rst:541
msgid "Other Language Changes"
-msgstr ""
+msgstr "Otros cambios del lenguaje"
#: ../Doc/whatsnew/3.12.rst:543
msgid ""
"The parser now raises :exc:`SyntaxError` when parsing source code containing "
"null bytes. (Contributed by Pablo Galindo in :gh:`96670`.)"
msgstr ""
+"El analizador ahora genera :exc:`SyntaxError` al analizar el código fuente "
+"que contiene bytes nulos. (Aportado por Pablo Galindo en :gh:`96670`.)"
#: ../Doc/whatsnew/3.12.rst:546
msgid ""
@@ -652,6 +881,14 @@ msgid ""
"exc:`SyntaxError` will eventually be raised, instead of :exc:"
"`SyntaxWarning`. (Contributed by Victor Stinner in :gh:`98401`.)"
msgstr ""
+"Un par de caracteres de barra invertida que no es una secuencia de escape "
+"válida ahora genera un :exc:`SyntaxWarning`, en lugar de :exc:"
+"`DeprecationWarning`. Por ejemplo, ``re.compile(\"\\d+\\.\\d+\")`` ahora "
+"emite un :exc:`SyntaxWarning` (``\"\\d\"`` es una secuencia de escape no "
+"válida; utilice cadenas sin formato para la expresión regular: ``re."
+"compile(r\"\\d+\\.\\d+\")``). En una versión futura de Python, eventualmente "
+"se generará :exc:`SyntaxError`, en lugar de :exc:`SyntaxWarning`. (Aportado "
+"por Victor Stinner en :gh:`98401`.)"
#: ../Doc/whatsnew/3.12.rst:555
msgid ""
@@ -660,6 +897,11 @@ msgid ""
"exc:`DeprecationWarning`. In a future Python version they will be eventually "
"a :exc:`SyntaxError`. (Contributed by Victor Stinner in :gh:`98401`.)"
msgstr ""
+"Los escapes octales con un valor mayor que ``0o377`` (por ejemplo, "
+"``\"\\477\"``), obsoletos en Python 3.11, ahora producen un :exc:"
+"`SyntaxWarning`, en lugar de :exc:`DeprecationWarning`. En una futura "
+"versión de Python, eventualmente serán un :exc:`SyntaxError`. (Aportado por "
+"Victor Stinner en :gh:`98401`.)"
#: ../Doc/whatsnew/3.12.rst:561
msgid ""
@@ -670,6 +912,13 @@ msgid ""
"comprehensions (like ``a``) is still disallowed, as per :pep:`572`. "
"(Contributed by Nikita Sobolev in :gh:`100581`.)"
msgstr ""
+"Las variables utilizadas en la parte de destino de las comprensiones que no "
+"están almacenadas ahora se pueden usar en expresiones de asignación (``:"
+"=``). Por ejemplo, en ``[(b := 1) for a, b.prop in some_iter]``, ahora se "
+"permite la asignación a ``b``. Tenga en cuenta que la asignación de "
+"variables almacenadas en la parte de destino de las comprensiones (como "
+"``a``) todavía no está permitida, según :pep:`572`. (Aportado por Nikita "
+"Sobolev en :gh:`100581`.)"
#: ../Doc/whatsnew/3.12.rst:568
msgid ""
@@ -677,6 +926,10 @@ msgid ""
"wrapped by a :exc:`RuntimeError`. Context information is added to the "
"exception as a :pep:`678` note. (Contributed by Irit Katriel in :gh:`77757`.)"
msgstr ""
+"Las excepciones generadas en el método ``__set_name__`` de una clase o tipo "
+"ya no están incluidas en un :exc:`RuntimeError`. La información de contexto "
+"se agrega a la excepción como una nota :pep:`678`. (Aportado por Irit "
+"Katriel en :gh:`77757`.)"
#: ../Doc/whatsnew/3.12.rst:572
msgid ""
@@ -685,6 +938,10 @@ msgid ""
"exc:`ExceptionGroup`. Also changed in version 3.11.4. (Contributed by Irit "
"Katriel in :gh:`103590`.)"
msgstr ""
+"Cuando una construcción ``try-except*`` maneja todo el :exc:`ExceptionGroup` "
+"y genera otra excepción, esa excepción ya no está incluida en un :exc:"
+"`ExceptionGroup`. También cambió en la versión 3.11.4. (Aportado por Irit "
+"Katriel en :gh:`103590`.)"
#: ../Doc/whatsnew/3.12.rst:577
msgid ""
@@ -695,6 +952,13 @@ msgid ""
"chance to execute the GC periodically. (Contributed by Pablo Galindo in :gh:"
"`97922`.)"
msgstr ""
+"El recolector de basura ahora se ejecuta solo en el mecanismo de "
+"interrupción de evaluación del ciclo de evaluación del código de bytes de "
+"Python en lugar de en las asignaciones de objetos. El GC también se puede "
+"ejecutar cuando se llama a :c:func:`PyErr_CheckSignals`, por lo que las "
+"extensiones C que necesitan ejecutarse durante un período prolongado sin "
+"ejecutar ningún código Python también tienen la posibilidad de ejecutar el "
+"GC periódicamente. (Aportado por Pablo Galindo en :gh:`97922`.)"
#: ../Doc/whatsnew/3.12.rst:584
msgid ""
@@ -702,12 +966,17 @@ msgid ""
"arguments of any type instead of just :class:`bool` and :class:`int`. "
"(Contributed by Serhiy Storchaka in :gh:`60203`.)"
msgstr ""
+"Todos los invocables integrados y de extensión que esperan parámetros "
+"booleanos ahora aceptan argumentos de cualquier tipo en lugar de solo :class:"
+"`bool` y :class:`int`. (Contribución de Serhiy Storchaka en :gh:`60203`.)"
#: ../Doc/whatsnew/3.12.rst:588
msgid ""
":class:`memoryview` now supports the half-float type (the \"e\" format "
"code). (Contributed by Donghee Na and Antoine Pitrou in :gh:`90751`.)"
msgstr ""
+":class:`memoryview` ahora admite el tipo medio flotante (el código de "
+"formato \"e\"). (Contribución de Donghee Na y Antoine Pitrou en :gh:`90751`.)"
#: ../Doc/whatsnew/3.12.rst:591
msgid ""
@@ -715,6 +984,9 @@ msgid ""
"keys and set items. (Contributed by Will Bradshaw, Furkan Onder, and Raymond "
"Hettinger in :gh:`101264`.)"
msgstr ""
+"Los objetos :class:`slice` ahora son hasheables, lo que permite usarlos como "
+"claves de dictado y elementos de configuración. (Contribución de Will "
+"Bradshaw, Furkan Onder y Raymond Hettinger en :gh:`101264`.)"
#: ../Doc/whatsnew/3.12.rst:594
msgid ""
@@ -722,6 +994,9 @@ msgid ""
"commutativity when summing floats or mixed ints and floats. (Contributed by "
"Raymond Hettinger in :gh:`100425`.)"
msgstr ""
+":func:`sum` ahora utiliza la suma de Neumaier para mejorar la precisión y la "
+"conmutatividad al sumar flotantes o enteros y flotantes mixtos. (Aportado "
+"por Raymond Hettinger en :gh:`100425`.)"
#: ../Doc/whatsnew/3.12.rst:598
msgid ""
@@ -729,6 +1004,9 @@ msgid ""
"when parsing source code containing null bytes. (Contributed by Pablo "
"Galindo in :gh:`96670`.)"
msgstr ""
+":func:`ast.parse` ahora genera :exc:`SyntaxError` en lugar de :exc:"
+"`ValueError` al analizar el código fuente que contiene bytes nulos. "
+"(Aportado por Pablo Galindo en :gh:`96670`.)"
#: ../Doc/whatsnew/3.12.rst:602
msgid ""
@@ -739,12 +1017,22 @@ msgid ""
"for details. In Python 3.14, the default will switch to ``'data'``. "
"(Contributed by Petr Viktorin in :pep:`706`.)"
msgstr ""
+"Los métodos de extracción en :mod:`tarfile` y :func:`shutil.unpack_archive` "
+"tienen un nuevo argumento, *filter*, que permite limitar funciones tar que "
+"puedan resultar sorprendentes o peligrosas, como la creación de archivos "
+"fuera del directorio de destino. Consulte :ref:`tarfile extraction filters "
+"` para obtener más detalles. En Python 3.14, el "
+"valor predeterminado cambiará a ``'data'``. (Aportado por Petr Viktorin en :"
+"pep:`706`.)"
#: ../Doc/whatsnew/3.12.rst:610
msgid ""
":class:`types.MappingProxyType` instances are now hashable if the underlying "
"mapping is hashable. (Contributed by Serhiy Storchaka in :gh:`87995`.)"
msgstr ""
+"Las instancias :class:`types.MappingProxyType` ahora son hasheables si el "
+"mapeo subyacente es hasheable. (Contribución de Serhiy Storchaka en :gh:"
+"`87995`.)"
#: ../Doc/whatsnew/3.12.rst:614
msgid ""
@@ -756,32 +1044,42 @@ msgid ""
"Contributed by Pablo Galindo and Christian Heimes with contributions from "
"Gregory P. Smith [Google] and Mark Shannon in :gh:`96123`.)"
msgstr ""
+"Agregado :ref:`support for the perf profiler ` a través de "
+"la nueva variable de entorno :envvar:`PYTHONPERFSUPPORT` y la opción de "
+"línea de comandos :option:`-X perf <-X>`, así como las nuevas funciones :"
+"func:`sys.activate_stack_trampoline`, :func:`sys."
+"deactivate_stack_trampoline` y :func:`sys.is_stack_trampoline_active`. "
+"(Diseño de Pablo Galindo. Contribución de Pablo Galindo y Christian Heimes "
+"con contribuciones de Gregory P. Smith [Google] y Mark Shannon en :gh:"
+"`96123`.)"
#: ../Doc/whatsnew/3.12.rst:626
msgid "New Modules"
-msgstr ""
+msgstr "Nuevos módulos"
#: ../Doc/whatsnew/3.12.rst:628
msgid "None."
-msgstr ""
+msgstr "Ninguno."
#: ../Doc/whatsnew/3.12.rst:632
msgid "Improved Modules"
-msgstr ""
+msgstr "Módulos mejorados"
#: ../Doc/whatsnew/3.12.rst:635
msgid "array"
-msgstr ""
+msgstr "array"
#: ../Doc/whatsnew/3.12.rst:637
msgid ""
"The :class:`array.array` class now supports subscripting, making it a :term:"
"`generic type`. (Contributed by Jelle Zijlstra in :gh:`98658`.)"
msgstr ""
+"La clase :class:`array.array` ahora admite subíndices, lo que la convierte "
+"en :term:`generic type`. (Aportado por Jelle Zijlstra en :gh:`98658`.)"
#: ../Doc/whatsnew/3.12.rst:641
msgid "asyncio"
-msgstr ""
+msgstr "asincio"
#: ../Doc/whatsnew/3.12.rst:643
msgid ""
@@ -790,6 +1088,10 @@ msgid ""
"writing to sockets and uses :meth:`~socket.socket.sendmsg` if the platform "
"supports it. (Contributed by Kumar Aditya in :gh:`91166`.)"
msgstr ""
+"Se ha mejorado significativamente el rendimiento de escritura en sockets en :"
+"mod:`asyncio`. ``asyncio`` ahora evita copias innecesarias al escribir en "
+"sockets y usa :meth:`~socket.socket.sendmsg` si la plataforma lo admite. "
+"(Aportado por Kumar Aditya en :gh:`91166`.)"
#: ../Doc/whatsnew/3.12.rst:648
msgid ""
@@ -798,6 +1100,11 @@ msgid ""
"eager task execution, making some use-cases 2x to 5x faster. (Contributed by "
"Jacob Bower & Itamar Oren in :gh:`102853`, :gh:`104140`, and :gh:`104138`)"
msgstr ""
+"Agregado las funciones :func:`asyncio.eager_task_factory` y :func:`asyncio."
+"create_eager_task_factory` para permitir la opción de un bucle de eventos "
+"para la ejecución de tareas entusiastas, lo que hace que algunos casos de "
+"uso sean de 2 a 5 veces más rápidos. (Contribución de Jacob Bower e Itamar "
+"Oren en :gh:`102853`, :gh:`104140` y :gh:`104138`)"
#: ../Doc/whatsnew/3.12.rst:653
msgid ""
@@ -805,6 +1112,10 @@ msgid ""
"if :func:`os.pidfd_open` is available and functional instead of :class:"
"`asyncio.ThreadedChildWatcher`. (Contributed by Kumar Aditya in :gh:`98024`.)"
msgstr ""
+"En Linux, :mod:`asyncio` usa :class:`asyncio.PidfdChildWatcher` de forma "
+"predeterminada si :func:`os.pidfd_open` está disponible y es funcional en "
+"lugar de :class:`asyncio.ThreadedChildWatcher`. (Aportado por Kumar Aditya "
+"en :gh:`98024`.)"
#: ../Doc/whatsnew/3.12.rst:658
msgid ""
@@ -813,18 +1124,29 @@ msgid ""
"ThreadedChildWatcher` otherwise), so manually configuring a child watcher is "
"not recommended. (Contributed by Kumar Aditya in :gh:`94597`.)"
msgstr ""
+"El bucle de eventos ahora utiliza el mejor observador de hijos disponible "
+"para cada plataforma (:class:`asyncio.PidfdChildWatcher` si es compatible y :"
+"class:`asyncio.ThreadedChildWatcher` en caso contrario), por lo que no se "
+"recomienda configurar manualmente un observador de hijos. (Aportado por "
+"Kumar Aditya en :gh:`94597`.)"
#: ../Doc/whatsnew/3.12.rst:664
msgid ""
"Add *loop_factory* parameter to :func:`asyncio.run` to allow specifying a "
"custom event loop factory. (Contributed by Kumar Aditya in :gh:`99388`.)"
msgstr ""
+"Agregado el parámetro *loop_factory* a :func:`asyncio.run` para permitir "
+"especificar una fábrica de bucle de eventos personalizada. (Aportado por "
+"Kumar Aditya en :gh:`99388`.)"
#: ../Doc/whatsnew/3.12.rst:668
msgid ""
"Add C implementation of :func:`asyncio.current_task` for 4x-6x speedup. "
"(Contributed by Itamar Oren and Pranav Thulasiram Bhat in :gh:`100344`.)"
msgstr ""
+"Agregado la implementación C de :func:`asyncio.current_task` para una "
+"aceleración de 4x-6x. (Aportado por Itamar Oren y Pranav Thulasiram Bhat en :"
+"gh:`100344`.)"
#: ../Doc/whatsnew/3.12.rst:671
msgid ""
@@ -832,16 +1154,21 @@ msgid ""
"`asyncio` does not support legacy generator-based coroutines. (Contributed "
"by Kumar Aditya in :gh:`102748`.)"
msgstr ""
+":func:`asyncio.iscoroutine` ahora devuelve ``False`` para generadores, ya "
+"que :mod:`asyncio` no admite rutinas heredadas basadas en generadores. "
+"(Aportado por Kumar Aditya en :gh:`102748`.)"
#: ../Doc/whatsnew/3.12.rst:675
msgid ""
":func:`asyncio.wait` and :func:`asyncio.as_completed` now accepts generators "
"yielding tasks. (Contributed by Kumar Aditya in :gh:`78530`.)"
msgstr ""
+":func:`asyncio.wait` y :func:`asyncio.as_completed` ahora aceptan "
+"generadores que generan tareas. (Aportado por Kumar Aditya en :gh:`78530`.)"
#: ../Doc/whatsnew/3.12.rst:680
msgid "calendar"
-msgstr ""
+msgstr "calendar"
#: ../Doc/whatsnew/3.12.rst:682
msgid ""
@@ -849,10 +1176,13 @@ msgid ""
"the year and days of the week. (Contributed by Prince Roshan in :gh:"
"`103636`.)"
msgstr ""
+"Agregado las enumeraciones :data:`calendar.Month` y :data:`calendar.Day` que "
+"definen los meses del año y los días de la semana. (Aportado por el Príncipe "
+"Roshan en :gh:`103636`.)"
#: ../Doc/whatsnew/3.12.rst:687
msgid "csv"
-msgstr ""
+msgstr "csv"
#: ../Doc/whatsnew/3.12.rst:689
msgid ""
@@ -860,10 +1190,13 @@ msgid ""
"provide finer grained control of ``None`` and empty strings by :class:`csv."
"writer` objects."
msgstr ""
+"Agregado indicadores :const:`csv.QUOTE_NOTNULL` y :const:`csv.QUOTE_STRINGS` "
+"para proporcionar un control más detallado de ``None`` y cadenas vacías por "
+"objetos :class:`csv.writer`."
#: ../Doc/whatsnew/3.12.rst:694
msgid "dis"
-msgstr ""
+msgstr "dis"
#: ../Doc/whatsnew/3.12.rst:696
msgid ""
@@ -873,36 +1206,49 @@ msgid ""
"pseudo instructions. Use the new :data:`dis.hasarg` collection instead. "
"(Contributed by Irit Katriel in :gh:`94216`.)"
msgstr ""
+"Los códigos de operación de pseudoinstrucción (que son utilizados por el "
+"compilador pero que no aparecen en el código de bytes ejecutable) ahora "
+"están expuestos en el módulo :mod:`dis`. :opcode:`HAVE_ARGUMENT` sigue "
+"siendo relevante para códigos de operación reales, pero no es útil para "
+"pseudoinstrucciones. Utilice la nueva colección :data:`dis.hasarg` en su "
+"lugar. (Aportado por Irit Katriel en :gh:`94216`.)"
#: ../Doc/whatsnew/3.12.rst:704
msgid ""
"Add the :data:`dis.hasexc` collection to signify instructions that set an "
"exception handler. (Contributed by Irit Katriel in :gh:`94216`.)"
msgstr ""
+"Agregado la colección :data:`dis.hasexc` para indicar instrucciones que "
+"establecen un controlador de excepciones. (Aportado por Irit Katriel en :gh:"
+"`94216`.)"
#: ../Doc/whatsnew/3.12.rst:708
msgid "fractions"
-msgstr ""
+msgstr "fractions"
#: ../Doc/whatsnew/3.12.rst:710
msgid ""
"Objects of type :class:`fractions.Fraction` now support float-style "
"formatting. (Contributed by Mark Dickinson in :gh:`100161`.)"
msgstr ""
+"Los objetos de tipo :class:`fractions.Fraction` ahora admiten formato de "
+"estilo flotante. (Aportado por Mark Dickinson en :gh:`100161`.)"
#: ../Doc/whatsnew/3.12.rst:714
msgid "importlib.resources"
-msgstr ""
+msgstr "importlib.resources"
#: ../Doc/whatsnew/3.12.rst:716
msgid ""
":func:`importlib.resources.as_file` now supports resource directories. "
"(Contributed by Jason R. Coombs in :gh:`97930`.)"
msgstr ""
+":func:`importlib.resources.as_file` ahora admite directorios de recursos. "
+"(Aportado por Jason R. Coombs en :gh:`97930`.)"
#: ../Doc/whatsnew/3.12.rst:720
msgid "inspect"
-msgstr ""
+msgstr "inspect"
#: ../Doc/whatsnew/3.12.rst:722
msgid ""
@@ -910,6 +1256,9 @@ msgid ""
"a :term:`coroutine` for use with :func:`inspect.iscoroutinefunction`. "
"(Contributed Carlton Gibson in :gh:`99247`.)"
msgstr ""
+"Agregado :func:`inspect.markcoroutinefunction` para marcar las funciones de "
+"sincronización que devuelven un :term:`coroutine` para usar con :func:"
+"`inspect.iscoroutinefunction`. (Contribuyó Carlton Gibson en :gh:`99247`.)"
#: ../Doc/whatsnew/3.12.rst:726
msgid ""
@@ -917,6 +1266,9 @@ msgid ""
"for determining the current state of asynchronous generators. (Contributed "
"by Thomas Krennwallner in :gh:`79940`.)"
msgstr ""
+"Agregado :func:`inspect.getasyncgenstate` y :func:`inspect."
+"getasyncgenlocals` para determinar el estado actual de los generadores "
+"asíncronos. (Aportado por Thomas Krennwallner en :gh:`79940`.)"
#: ../Doc/whatsnew/3.12.rst:730
msgid ""
@@ -925,10 +1277,14 @@ msgid ""
"were in Python 3.11, and some may be 6x faster or more. (Contributed by Alex "
"Waygood in :gh:`103193`.)"
msgstr ""
+"El rendimiento de :func:`inspect.getattr_static` se ha mejorado "
+"considerablemente. La mayoría de las llamadas a la función deberían ser al "
+"menos 2 veces más rápidas que en Python 3.11, y algunas pueden ser 6 veces "
+"más rápidas o más. (Contribuido por Alex Waygood en :gh:`103193`.)"
#: ../Doc/whatsnew/3.12.rst:736
msgid "itertools"
-msgstr ""
+msgstr "itertools"
#: ../Doc/whatsnew/3.12.rst:738
msgid ""
@@ -936,16 +1292,21 @@ msgid ""
"the last batch may be shorter than the rest. (Contributed by Raymond "
"Hettinger in :gh:`98363`.)"
msgstr ""
+"Agregado :class:`itertools.batched()` para recopilar en tuplas de tamaño par "
+"donde el último lote puede ser más corto que el resto. (Aportado por Raymond "
+"Hettinger en :gh:`98363`.)"
#: ../Doc/whatsnew/3.12.rst:743
msgid "math"
-msgstr ""
+msgstr "math"
#: ../Doc/whatsnew/3.12.rst:745
msgid ""
"Add :func:`math.sumprod` for computing a sum of products. (Contributed by "
"Raymond Hettinger in :gh:`100485`.)"
msgstr ""
+"Agregado :func:`math.sumprod` para calcular una suma de productos. (Aportado "
+"por Raymond Hettinger en :gh:`100485`.)"
#: ../Doc/whatsnew/3.12.rst:748
msgid ""
@@ -953,10 +1314,13 @@ msgid ""
"down multiple steps at a time. (By Matthias Goergens, Mark Dickinson, and "
"Raymond Hettinger in :gh:`94906`.)"
msgstr ""
+"Se extendió :func:`math.nextafter` para incluir un argumento *steps* para "
+"subir o bajar varios pasos a la vez. (Por Matthias Goergens, Mark Dickinson "
+"y Raymond Hettinger en :gh:`94906`.)"
#: ../Doc/whatsnew/3.12.rst:753
msgid "os"
-msgstr ""
+msgstr "os"
#: ../Doc/whatsnew/3.12.rst:755
msgid ""
@@ -964,6 +1328,9 @@ msgid ""
"func:`os.pidfd_open` in non-blocking mode. (Contributed by Kumar Aditya in :"
"gh:`93312`.)"
msgstr ""
+"Agregado :const:`os.PIDFD_NONBLOCK` para abrir un descriptor de archivo para "
+"un proceso con :func:`os.pidfd_open` en modo sin bloqueo. (Aportado por "
+"Kumar Aditya en :gh:`93312`.)"
#: ../Doc/whatsnew/3.12.rst:759
msgid ""
@@ -971,6 +1338,9 @@ msgid ""
"to check if the entry is a junction. (Contributed by Charles Machalow in :gh:"
"`99547`.)"
msgstr ""
+":class:`os.DirEntry` ahora incluye un método :meth:`os.DirEntry.is_junction` "
+"para verificar si la entrada es un cruce. (Aportado por Charles Machalow en :"
+"gh:`99547`.)"
#: ../Doc/whatsnew/3.12.rst:763
msgid ""
@@ -978,6 +1348,9 @@ msgid ""
"functions on Windows for enumerating drives, volumes and mount points. "
"(Contributed by Steve Dower in :gh:`102519`.)"
msgstr ""
+"Agregado funciones :func:`os.listdrives`, :func:`os.listvolumes` y :func:`os."
+"listmounts` en Windows para enumerar unidades, volúmenes y puntos de "
+"montaje. (Aportado por Steve Dower en :gh:`102519`.)"
#: ../Doc/whatsnew/3.12.rst:767
msgid ""
@@ -991,26 +1364,40 @@ msgid ""
"faster on newer releases of Windows. (Contributed by Steve Dower in :gh:"
"`99726`.)"
msgstr ""
+":func:`os.stat` y :func:`os.lstat` ahora son más precisos en Windows. El "
+"campo ``st_birthtime`` ahora se completará con la hora de creación del "
+"archivo, y ``st_ctime`` está obsoleto pero aún contiene la hora de creación "
+"(pero en el futuro devolverá el último cambio de metadatos, para mantener la "
+"coherencia con otras plataformas). ``st_dev`` puede tener hasta 64 bits y "
+"``st_ino`` hasta 128 bits dependiendo de su sistema de archivos, y "
+"``st_rdev`` siempre está configurado en cero en lugar de valores "
+"incorrectos. Ambas funciones pueden ser significativamente más rápidas en "
+"las versiones más recientes de Windows. (Aportado por Steve Dower en :gh:"
+"`99726`.)"
#: ../Doc/whatsnew/3.12.rst:778
msgid "os.path"
-msgstr ""
+msgstr "os.path"
#: ../Doc/whatsnew/3.12.rst:780
msgid ""
"Add :func:`os.path.isjunction` to check if a given path is a junction. "
"(Contributed by Charles Machalow in :gh:`99547`.)"
msgstr ""
+"Agregado :func:`os.path.isjunction` para verificar si una ruta determinada "
+"es un cruce. (Aportado por Charles Machalow en :gh:`99547`.)"
#: ../Doc/whatsnew/3.12.rst:783
msgid ""
"Add :func:`os.path.splitroot` to split a path into a triad ``(drive, root, "
"tail)``. (Contributed by Barney Gale in :gh:`101000`.)"
msgstr ""
+"Agregado :func:`os.path.splitroot` para dividir una ruta en una tríada "
+"``(drive, root, tail)``. (Aportado por Barney Gale en :gh:`101000`.)"
#: ../Doc/whatsnew/3.12.rst:787
msgid "pathlib"
-msgstr ""
+msgstr "pathlib"
#: ../Doc/whatsnew/3.12.rst:789
msgid ""
@@ -1019,6 +1406,10 @@ msgid ""
"override the :meth:`pathlib.PurePath.with_segments` method to pass "
"information between path instances."
msgstr ""
+"Agregado soporte para subclasificar :class:`pathlib.PurePath` y :class:"
+"`pathlib.Path`, además de sus variantes específicas de Posix y Windows. Las "
+"subclases pueden anular el método :meth:`pathlib.PurePath.with_segments` "
+"para pasar información entre instancias de ruta."
#: ../Doc/whatsnew/3.12.rst:794
msgid ""
@@ -1026,6 +1417,9 @@ msgid ""
"all file or directory names within them, similar to :func:`os.walk`. "
"(Contributed by Stanislav Zmiev in :gh:`90385`.)"
msgstr ""
+"Agregado :meth:`pathlib.Path.walk` para recorrer los árboles de directorios "
+"y generar todos los nombres de archivos o directorios dentro de ellos, "
+"similar a :func:`os.walk`. (Aportado por Stanislav Zmiev en :gh:`90385`.)"
#: ../Doc/whatsnew/3.12.rst:798
msgid ""
@@ -1034,12 +1428,18 @@ msgid ""
"consistent with :func:`os.path.relpath`. (Contributed by Domenico Ragusa in :"
"gh:`84538`.)"
msgstr ""
+"Agregado el parámetro opcional *walk_up* a :meth:`pathlib.PurePath."
+"relative_to` para permitir la inserción de entradas ``..`` en el resultado; "
+"este comportamiento es más consistente con :func:`os.path.relpath`. "
+"(Aportado por Domenico Ragusa en :gh:`84538`.)"
#: ../Doc/whatsnew/3.12.rst:803
msgid ""
"Add :meth:`pathlib.Path.is_junction` as a proxy to :func:`os.path."
"isjunction`. (Contributed by Charles Machalow in :gh:`99547`.)"
msgstr ""
+"Agregado :meth:`pathlib.Path.is_junction` como proxy a :func:`os.path."
+"isjunction`. (Aportado por Charles Machalow en :gh:`99547`.)"
#: ../Doc/whatsnew/3.12.rst:806
msgid ""
@@ -1048,10 +1448,14 @@ msgid ""
"path's case sensitivity, allowing for more precise control over the matching "
"process."
msgstr ""
+"Agregado el parámetro opcional *case_sensitive* a :meth:`pathlib.Path."
+"glob`, :meth:`pathlib.Path.rglob` y :meth:`pathlib.PurePath.match` para "
+"hacer coincidir la distinción entre mayúsculas y minúsculas de la ruta, lo "
+"que permite un control más preciso sobre el proceso de coincidencia."
#: ../Doc/whatsnew/3.12.rst:811
msgid "pdb"
-msgstr ""
+msgstr "pbd"
#: ../Doc/whatsnew/3.12.rst:813
msgid ""
@@ -1059,26 +1463,33 @@ msgid ""
"provide quick access to values like the current frame or the return value. "
"(Contributed by Tian Gao in :gh:`103693`.)"
msgstr ""
+"Agregado variables convenientes para mantener valores temporalmente para la "
+"sesión de depuración y proporcionar acceso rápido a valores como el marco "
+"actual o el valor de retorno. (Aportado por Tian Gao en :gh:`103693`.)"
#: ../Doc/whatsnew/3.12.rst:819
msgid "random"
-msgstr ""
+msgstr "random"
#: ../Doc/whatsnew/3.12.rst:821
msgid ""
"Add :func:`random.binomialvariate`. (Contributed by Raymond Hettinger in :gh:"
"`81620`.)"
msgstr ""
+"Agregado :func:`random.binomialvariate`. (Aportado por Raymond Hettinger en :"
+"gh:`81620`.)"
#: ../Doc/whatsnew/3.12.rst:824
msgid ""
"Add a default of ``lambd=1.0`` to :func:`random.expovariate`. (Contributed "
"by Raymond Hettinger in :gh:`100234`.)"
msgstr ""
+"Agregado un valor predeterminado de ``lambd=1.0`` a :func:`random."
+"expovariate`. (Aportado por Raymond Hettinger en :gh:`100234`.)"
#: ../Doc/whatsnew/3.12.rst:828
msgid "shutil"
-msgstr ""
+msgstr "shutil"
#: ../Doc/whatsnew/3.12.rst:830
msgid ""
@@ -1087,6 +1498,10 @@ msgid ""
"the current working directory of the process to *root_dir* to perform "
"archiving. (Contributed by Serhiy Storchaka in :gh:`74696`.)"
msgstr ""
+":func:`shutil.make_archive` ahora pasa el argumento *root_dir* a "
+"archivadores personalizados que lo admiten. En este caso, ya no cambia "
+"temporalmente el directorio de trabajo actual del proceso a *root_dir* para "
+"realizar el archivado. (Aportado por Serhiy Storchaka en :gh:`74696`.)"
#: ../Doc/whatsnew/3.12.rst:836
msgid ""
@@ -1095,6 +1510,10 @@ msgid ""
"*(typ, val, tb)* triplet. *onerror* is deprecated and will be removed in "
"Python 3.14. (Contributed by Irit Katriel in :gh:`102828`.)"
msgstr ""
+":func:`shutil.rmtree` ahora acepta un nuevo argumento *onexc* que es un "
+"controlador de errores como *onerror* pero que espera una instancia de "
+"excepción en lugar de un triplete *(typ, val, tb)*. *onerror* está en desuso "
+"y se eliminará en Python 3.14. (Aportado por Irit Katriel en :gh:`102828`.)"
#: ../Doc/whatsnew/3.12.rst:842
msgid ""
@@ -1102,6 +1521,10 @@ msgid ""
"matches within *PATH* on Windows even when the given *cmd* includes a "
"directory component. (Contributed by Charles Machalow in :gh:`103179`.)"
msgstr ""
+":func:`shutil.which` ahora consulta la variable de entorno *PATHEXT* para "
+"encontrar coincidencias dentro de *PATH* en Windows incluso cuando el *cmd* "
+"dado incluye un componente de directorio. (Aportado por Charles Machalow en :"
+"gh:`103179`.)"
#: ../Doc/whatsnew/3.12.rst:847
msgid ""
@@ -1110,6 +1533,10 @@ msgid ""
"directory should be prepended to the search path. (Contributed by Charles "
"Machalow in :gh:`103179`.)"
msgstr ""
+":func:`shutil.which` llamará a ``NeedCurrentDirectoryForExePathW`` cuando "
+"solicite ejecutables en Windows para determinar si el directorio de trabajo "
+"actual debe anteponerse a la ruta de búsqueda. (Aportado por Charles "
+"Machalow en :gh:`103179`.)"
#: ../Doc/whatsnew/3.12.rst:852
msgid ""
@@ -1117,16 +1544,22 @@ msgid ""
"from ``PATHEXT`` prior to a direct match elsewhere in the search path on "
"Windows. (Contributed by Charles Machalow in :gh:`103179`.)"
msgstr ""
+":func:`shutil.which` devolverá una ruta que coincida con *cmd* con un "
+"componente de ``PATHEXT`` antes de una coincidencia directa en otra parte de "
+"la ruta de búsqueda en Windows. (Aportado por Charles Machalow en :gh:"
+"`103179`.)"
#: ../Doc/whatsnew/3.12.rst:858 ../Doc/whatsnew/3.12.rst:1637
msgid "sqlite3"
-msgstr ""
+msgstr "sqlite3"
#: ../Doc/whatsnew/3.12.rst:860
msgid ""
"Add a :ref:`command-line interface `. (Contributed by Erlend E. "
"Aasland in :gh:`77617`.)"
msgstr ""
+"Agregado un :ref:`command-line interface `. (Aportado por "
+"Erlend E. Aasland en :gh:`77617`.)"
#: ../Doc/whatsnew/3.12.rst:863
msgid ""
@@ -1135,6 +1568,11 @@ msgid ""
"control :pep:`249`-compliant :ref:`transaction handling `. (Contributed by Erlend E. Aasland in :gh:`83638`.)"
msgstr ""
+"Agregado el atributo :attr:`sqlite3.Connection.autocommit` a :class:`sqlite3."
+"Connection` y el parámetro *autocommit* a :func:`sqlite3.connect` para "
+"controlar :ref:`transaction handling ` compatible con :pep:`249`. (Aportado por Erlend E. Aasland en :"
+"gh:`83638`.)"
#: ../Doc/whatsnew/3.12.rst:870
msgid ""
@@ -1142,6 +1580,9 @@ msgid ""
"load_extension`, for overriding the SQLite extension entry point. "
"(Contributed by Erlend E. Aasland in :gh:`103015`.)"
msgstr ""
+"Agregado el parámetro de solo palabra clave *entrypoint* a :meth:`sqlite3."
+"Connection.load_extension`, para anular el punto de entrada de la extensión "
+"SQLite. (Aportado por Erlend E. Aasland en :gh:`103015`.)"
#: ../Doc/whatsnew/3.12.rst:875
msgid ""
@@ -1149,10 +1590,14 @@ msgid ""
"setconfig` to :class:`sqlite3.Connection` to make configuration changes to a "
"database connection. (Contributed by Erlend E. Aasland in :gh:`103489`.)"
msgstr ""
+"Agregado :meth:`sqlite3.Connection.getconfig` y :meth:`sqlite3.Connection."
+"setconfig` a :class:`sqlite3.Connection` para realizar cambios de "
+"configuración en una conexión de base de datos. (Aportado por Erlend E. "
+"Aasland en :gh:`103489`.)"
#: ../Doc/whatsnew/3.12.rst:881
msgid "statistics"
-msgstr ""
+msgstr "statistics"
#: ../Doc/whatsnew/3.12.rst:883
msgid ""
@@ -1160,10 +1605,13 @@ msgid ""
"computing the Spearman correlation of ranked data. (Contributed by Raymond "
"Hettinger in :gh:`95861`.)"
msgstr ""
+"Se extendió :func:`statistics.correlation` para incluirlo como método "
+"``ranked`` para calcular la correlación de Spearman de datos clasificados. "
+"(Aportado por Raymond Hettinger en :gh:`95861`.)"
#: ../Doc/whatsnew/3.12.rst:888
msgid "sys"
-msgstr ""
+msgstr "sys"
#: ../Doc/whatsnew/3.12.rst:890
msgid ""
@@ -1171,6 +1619,9 @@ msgid ""
"` monitoring API. (Contributed by Mark Shannon in :gh:"
"`103082`.)"
msgstr ""
+"Agregado el espacio de nombres :mod:`sys.monitoring` para exponer la nueva "
+"API de supervisión :ref:`PEP 669 `. (Aportado por Mark "
+"Shannon en :gh:`103082`.)"
#: ../Doc/whatsnew/3.12.rst:894
msgid ""
@@ -1181,6 +1632,12 @@ msgid ""
"Christian Heimes with contributions from Gregory P. Smith [Google] and Mark "
"Shannon in :gh:`96123`.)"
msgstr ""
+"Agregado :func:`sys.activate_stack_trampoline` y :func:`sys."
+"deactivate_stack_trampoline` para activar y desactivar los trampolines del "
+"perfilador de pila, y :func:`sys.is_stack_trampoline_active` para consultar "
+"si los trampolines del perfilador de pila están activos. (Contribuido por "
+"Pablo Galindo y Christian Heimes con contribuciones de Gregory P. Smith "
+"[Google] y Mark Shannon en :gh:`96123`.)"
#: ../Doc/whatsnew/3.12.rst:903
msgid ""
@@ -1190,6 +1647,11 @@ msgid ""
"data:`sys.last_value` and :data:`sys.last_traceback`. (Contributed by Irit "
"Katriel in :gh:`102778`.)"
msgstr ""
+"Agregado :data:`sys.last_exc` que contiene la última excepción no controlada "
+"que se generó (para casos de uso de depuración post-mortem). Deje obsoletos "
+"los tres campos que tienen la misma información en su formato heredado: :"
+"data:`sys.last_type`, :data:`sys.last_value` y :data:`sys.last_traceback`. "
+"(Aportado por Irit Katriel en :gh:`102778`.)"
#: ../Doc/whatsnew/3.12.rst:909 ../Doc/whatsnew/3.12.rst:1825
msgid ""
@@ -1197,6 +1659,9 @@ msgid ""
"exception instance, rather than to a ``(typ, exc, tb)`` tuple. (Contributed "
"by Irit Katriel in :gh:`103176`.)"
msgstr ""
+":func:`sys._current_exceptions` ahora devuelve una asignación de thread-id a "
+"una instancia de excepción, en lugar de a una tupla ``(typ, exc, tb)``. "
+"(Aportado por Irit Katriel en :gh:`103176`.)"
#: ../Doc/whatsnew/3.12.rst:913
msgid ""
@@ -1205,26 +1670,35 @@ msgid ""
"use the recursion limit, but are protected by a different mechanism that "
"prevents recursion from causing a virtual machine crash."
msgstr ""
+":func:`sys.setrecursionlimit` y :func:`sys.getrecursionlimit`. El límite de "
+"recursividad ahora se aplica sólo al código Python. Las funciones integradas "
+"no utilizan el límite de recursividad, pero están protegidas por un "
+"mecanismo diferente que evita que la recursividad provoque un fallo de la "
+"máquina virtual."
#: ../Doc/whatsnew/3.12.rst:919
msgid "tempfile"
-msgstr ""
+msgstr "tempfile"
#: ../Doc/whatsnew/3.12.rst:921
msgid ""
"The :class:`tempfile.NamedTemporaryFile` function has a new optional "
"parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.)"
msgstr ""
+"La función :class:`tempfile.NamedTemporaryFile` tiene un nuevo parámetro "
+"opcional *delete_on_close* (Aportado por Evgeny Zorin en :gh:`58451`.)"
#: ../Doc/whatsnew/3.12.rst:923
msgid ""
":func:`tempfile.mkdtemp` now always returns an absolute path, even if the "
"argument provided to the *dir* parameter is a relative path."
msgstr ""
+":func:`tempfile.mkdtemp` ahora siempre devuelve una ruta absoluta, incluso "
+"si el argumento proporcionado al parámetro *dir* es una ruta relativa."
#: ../Doc/whatsnew/3.12.rst:929
msgid "threading"
-msgstr ""
+msgstr "threading"
#: ../Doc/whatsnew/3.12.rst:931
msgid ""
@@ -1233,10 +1707,14 @@ msgid ""
"all running threads in addition to the calling one. (Contributed by Pablo "
"Galindo in :gh:`93503`.)"
msgstr ""
+"Agregado :func:`threading.settrace_all_threads` y :func:`threading."
+"setprofile_all_threads` que permiten configurar funciones de seguimiento y "
+"creación de perfiles en todos los hilos en ejecución además del que realiza "
+"la llamada. (Aportado por Pablo Galindo en :gh:`93503`.)"
#: ../Doc/whatsnew/3.12.rst:937
msgid "tkinter"
-msgstr ""
+msgstr "tkinter"
#: ../Doc/whatsnew/3.12.rst:939
msgid ""
@@ -1247,10 +1725,16 @@ msgid ""
"y2), ...]``), like ``create_*()`` methods. (Contributed by Serhiy Storchaka "
"in :gh:`94473`.)"
msgstr ""
+"``tkinter.Canvas.coords()`` ahora aplana sus argumentos. Ahora acepta no "
+"sólo coordenadas como argumentos separados (``x1, y1, x2, y2, ...``) y una "
+"secuencia de coordenadas (``[x1, y1, x2, y2, ...]``), sino también "
+"coordenadas agrupadas en pares (``(x1, y1), (x2, y2), ...`` y ``[(x1, y1), "
+"(x2, y2), ...]``), como los métodos ``create_*()``. (Aportado por Serhiy "
+"Storchaka en :gh:`94473`.)"
#: ../Doc/whatsnew/3.12.rst:948
msgid "tokenize"
-msgstr ""
+msgstr "tokenize"
#: ../Doc/whatsnew/3.12.rst:950
msgid ""
@@ -1259,10 +1743,14 @@ msgid ""
"ref:`whatsnew312-porting-to-python312` for more information on the changes "
"to the :mod:`tokenize` module."
msgstr ""
+"El módulo :mod:`tokenize` incluye los cambios introducidos en :pep:`701`. "
+"(Aportado por Marta Gómez Macías y Pablo Galindo en :gh:`102856`.) Consulte :"
+"ref:`whatsnew312-porting-to-python312` para obtener más información sobre "
+"los cambios en el módulo :mod:`tokenize`."
#: ../Doc/whatsnew/3.12.rst:956
msgid "types"
-msgstr ""
+msgstr "types"
#: ../Doc/whatsnew/3.12.rst:958
msgid ""
@@ -1270,10 +1758,13 @@ msgid ""
"ref:`user-defined-generics` when subclassed. (Contributed by James Hilton-"
"Balfe and Alex Waygood in :gh:`101827`.)"
msgstr ""
+"Agregado :func:`types.get_original_bases` para permitir una mayor "
+"introspección de :ref:`user-defined-generics` cuando esté subclasificado. "
+"(Contribución de James Hilton-Balfe y Alex Waygood en :gh:`101827`.)"
#: ../Doc/whatsnew/3.12.rst:963
msgid "typing"
-msgstr ""
+msgstr "typing"
#: ../Doc/whatsnew/3.12.rst:965
msgid ""
@@ -1287,6 +1778,17 @@ msgid ""
"protocol on Python 3.12+, and vice versa. Most users are unlikely to be "
"affected by this change. (Contributed by Alex Waygood in :gh:`102433`.)"
msgstr ""
+"Las comprobaciones de :func:`isinstance` con :func:`runtime-checkable "
+"protocols ` ahora usan :func:`inspect."
+"getattr_static` en lugar de :func:`hasattr` para buscar si existen "
+"atributos. Esto significa que los descriptores y los métodos :meth:`~object."
+"__getattr__` ya no se evalúan inesperadamente durante las comprobaciones de "
+"``isinstance()`` con protocolos verificables en tiempo de ejecución. Sin "
+"embargo, también puede significar que algunos objetos que solían "
+"considerarse instancias de un protocolo verificable en tiempo de ejecución "
+"ya no se consideran instancias de ese protocolo en Python 3.12+, y "
+"viceversa. Es poco probable que la mayoría de los usuarios se vean afectados "
+"por este cambio. (Contribuido por Alex Waygood en :gh:`102433`.)"
#: ../Doc/whatsnew/3.12.rst:976
msgid ""
@@ -1295,12 +1797,20 @@ msgid ""
"onto a runtime-checkable protocol will still work, but will have no impact "
"on :func:`isinstance` checks comparing objects to the protocol. For example::"
msgstr ""
+"Los miembros de un protocolo verificable en tiempo de ejecución ahora se "
+"consideran \"congelados\" en tiempo de ejecución tan pronto como se crea la "
+"clase. La aplicación de parches de atributos en un protocolo verificable en "
+"tiempo de ejecución seguirá funcionando, pero no tendrá ningún impacto en "
+"las comprobaciones :func:`isinstance` que comparan objetos con el protocolo. "
+"Por ejemplo::"
#: ../Doc/whatsnew/3.12.rst:998
msgid ""
"This change was made in order to speed up ``isinstance()`` checks against "
"runtime-checkable protocols."
msgstr ""
+"Este cambio se realizó para acelerar las comprobaciones de ``isinstance()`` "
+"en protocolos verificables en tiempo de ejecución."
#: ../Doc/whatsnew/3.12.rst:1001
msgid ""
@@ -1312,6 +1822,14 @@ msgid ""
"more members may be slower than in Python 3.11. (Contributed by Alex Waygood "
"in :gh:`74690` and :gh:`103193`.)"
msgstr ""
+"El perfil de rendimiento de las comprobaciones de :func:`isinstance` frente "
+"a :func:`runtime-checkable protocols ` ha cambiado "
+"significativamente. La mayoría de las comprobaciones de ``isinstance()`` en "
+"protocolos con solo unos pocos miembros deberían ser al menos 2 veces más "
+"rápidas que en 3.11, y algunas pueden ser 20 veces más rápidas o más. Sin "
+"embargo, las comprobaciones de ``isinstance()`` con protocolos con catorce o "
+"más miembros pueden ser más lentas que en Python 3.11. (Contribuido por Alex "
+"Waygood en :gh:`74690` y :gh:`103193`.)"
#: ../Doc/whatsnew/3.12.rst:1009
msgid ""
@@ -1319,49 +1837,60 @@ msgid ""
"the ``__orig_bases__`` attribute. (Contributed by Adrian Garcia Badaracco "
"in :gh:`103699`.)"
msgstr ""
+"Todas las clases :data:`typing.TypedDict` y :data:`typing.NamedTuple` ahora "
+"tienen el atributo ``__orig_bases__``. (Aportado por Adrián García Badaracco "
+"en :gh:`103699`.)"
#: ../Doc/whatsnew/3.12.rst:1013
msgid ""
"Add ``frozen_default`` parameter to :func:`typing.dataclass_transform`. "
"(Contributed by Erik De Bonte in :gh:`99957`.)"
msgstr ""
+"Agregado el parámetro ``frozen_default`` a :func:`typing."
+"dataclass_transform`. (Aportado por Erik De Bonte en :gh:`99957`.)"
#: ../Doc/whatsnew/3.12.rst:1017
msgid "unicodedata"
-msgstr ""
+msgstr "unicodedata"
#: ../Doc/whatsnew/3.12.rst:1019
msgid ""
"The Unicode database has been updated to version 15.0.0. (Contributed by "
"Benjamin Peterson in :gh:`96734`)."
msgstr ""
+"La base de datos Unicode se ha actualizado a la versión 15.0.0. (Aportado "
+"por Benjamin Peterson en :gh:`96734`)."
#: ../Doc/whatsnew/3.12.rst:1023 ../Doc/whatsnew/3.12.rst:1678
msgid "unittest"
-msgstr ""
+msgstr "unittest"
#: ../Doc/whatsnew/3.12.rst:1025
msgid ""
"Add a ``--durations`` command line option, showing the N slowest test cases::"
msgstr ""
+"Agregado una opción de línea de comando ``--durations``, que muestra los N "
+"casos de prueba más lentos:"
#: ../Doc/whatsnew/3.12.rst:1041
msgid "(Contributed by Giampaolo Rodola in :gh:`48330`)"
-msgstr ""
+msgstr "(Aportado por Giampaolo Rodola en :gh:`48330`)"
#: ../Doc/whatsnew/3.12.rst:1044
msgid "uuid"
-msgstr ""
+msgstr "uuid"
#: ../Doc/whatsnew/3.12.rst:1046
msgid ""
"Add a :ref:`command-line interface `. (Contributed by Adam Chhina "
"in :gh:`88597`.)"
msgstr ""
+"Agregado un :ref:`command-line interface `. (Aportado por Adam "
+"Chhina en :gh:`88597`.)"
#: ../Doc/whatsnew/3.12.rst:1051
msgid "Optimizations"
-msgstr ""
+msgstr "Optimizaciones"
#: ../Doc/whatsnew/3.12.rst:1053
msgid ""
@@ -1369,6 +1898,9 @@ msgid ""
"object size by 8 or 16 bytes on 64bit platform. (:pep:`623`) (Contributed by "
"Inada Naoki in :gh:`92536`.)"
msgstr ""
+"Elimine los miembros ``wstr`` y ``wstr_length`` de los objetos Unicode. "
+"Reduce el tamaño del objeto en 8 o 16 bytes en una plataforma de 64 bits. (:"
+"pep:`623`) (Aportado por Inada Naoki en :gh:`92536`.)"
#: ../Doc/whatsnew/3.12.rst:1057
msgid ""
@@ -1376,6 +1908,10 @@ msgid ""
"process, which improves performance by 1-5%. (Contributed by Kevin "
"Modzelewski in :gh:`90536` and tuned by Donghee Na in :gh:`101525`)"
msgstr ""
+"Agregado soporte experimental para usar el optimizador binario BOLT en el "
+"proceso de compilación, lo que mejora el rendimiento entre un 1% y un 5%. "
+"(Contribuido por Kevin Modzelewski en :gh:`90536` y sintonizado por Donghee "
+"Na en :gh:`101525`)"
#: ../Doc/whatsnew/3.12.rst:1061
msgid ""
@@ -1384,12 +1920,18 @@ msgid ""
"replacement strings containing group references by 2--3 times. (Contributed "
"by Serhiy Storchaka in :gh:`91524`.)"
msgstr ""
+"Acelere la sustitución de expresiones regulares (funciones :func:`re.sub` y :"
+"func:`re.subn` y los métodos :class:`!re.Pattern` correspondientes) para "
+"cadenas de reemplazo que contienen referencias de grupo entre 2 y 3 veces. "
+"(Aportado por Serhiy Storchaka en :gh:`91524`.)"
#: ../Doc/whatsnew/3.12.rst:1066
msgid ""
"Speed up :class:`asyncio.Task` creation by deferring expensive string "
"formatting. (Contributed by Itamar Oren in :gh:`103793`.)"
msgstr ""
+"Acelere la creación de :class:`asyncio.Task` aplazando el costoso formato de "
+"cadenas. (Aportado por Itamar Oren en :gh:`103793`.)"
#: ../Doc/whatsnew/3.12.rst:1069
#, python-format
@@ -1399,6 +1941,10 @@ msgid ""
"`701` in the :mod:`tokenize` module. (Contributed by Marta Gómez Macías and "
"Pablo Galindo in :gh:`102856`.)"
msgstr ""
+"Las funciones :func:`tokenize.tokenize` y :func:`tokenize.generate_tokens` "
+"son hasta un 64 % más rápidas como efecto secundario de los cambios "
+"necesarios para cubrir :pep:`701` en el módulo :mod:`tokenize`. (Aportado "
+"por Marta Gómez Macías y Pablo Galindo en :gh:`102856`.)"
#: ../Doc/whatsnew/3.12.rst:1074
msgid ""
@@ -1406,10 +1952,13 @@ msgid ""
"`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer and Vladimir "
"Matveev in :gh:`103497`.)"
msgstr ""
+"Acelere las llamadas al método :func:`super` y las cargas de atributos "
+"mediante la nueva instrucción :opcode:`LOAD_SUPER_ATTR`. (Contribución de "
+"Carl Meyer y Vladimir Matveev en :gh:`103497`.)"
#: ../Doc/whatsnew/3.12.rst:1080
msgid "CPython bytecode changes"
-msgstr ""
+msgstr "Cambios en el código de bytes de CPython"
#: ../Doc/whatsnew/3.12.rst:1082
msgid ""
@@ -1418,6 +1967,10 @@ msgid ""
"`!LOAD_METHOD` instruction if the low bit of its oparg is set. (Contributed "
"by Ken Jin in :gh:`93429`.)"
msgstr ""
+"Elimine la instrucción :opcode:`!LOAD_METHOD`. Se ha fusionado con :opcode:"
+"`LOAD_ATTR`. :opcode:`LOAD_ATTR` ahora se comportará como la antigua "
+"instrucción :opcode:`!LOAD_METHOD` si el bit bajo de su oparg está "
+"configurado. (Contribuido por Ken Jin en :gh:`93429`.)"
#: ../Doc/whatsnew/3.12.rst:1087
msgid ""
@@ -1425,54 +1978,72 @@ msgid ""
"JUMP_IF_TRUE_OR_POP` instructions. (Contributed by Irit Katriel in :gh:"
"`102859`.)"
msgstr ""
+"Elimine las instrucciones :opcode:`!JUMP_IF_FALSE_OR_POP` y :opcode:`!"
+"JUMP_IF_TRUE_OR_POP`. (Aportado por Irit Katriel en :gh:`102859`.)"
#: ../Doc/whatsnew/3.12.rst:1090
msgid ""
"Remove the :opcode:`!PRECALL` instruction. (Contributed by Mark Shannon in :"
"gh:`92925`.)"
msgstr ""
+"Elimine la instrucción :opcode:`!PRECALL`. (Aportado por Mark Shannon en :gh:"
+"`92925`.)"
#: ../Doc/whatsnew/3.12.rst:1093
msgid ""
"Add the :opcode:`BINARY_SLICE` and :opcode:`STORE_SLICE` instructions. "
"(Contributed by Mark Shannon in :gh:`94163`.)"
msgstr ""
+"Agregado las instrucciones :opcode:`BINARY_SLICE` y :opcode:`STORE_SLICE`. "
+"(Aportado por Mark Shannon en :gh:`94163`.)"
#: ../Doc/whatsnew/3.12.rst:1096
msgid ""
"Add the :opcode:`CALL_INTRINSIC_1` instructions. (Contributed by Mark "
"Shannon in :gh:`99005`.)"
msgstr ""
+"Agregado las instrucciones :opcode:`CALL_INTRINSIC_1`. (Aportado por Mark "
+"Shannon en :gh:`99005`.)"
#: ../Doc/whatsnew/3.12.rst:1099
msgid ""
"Add the :opcode:`CALL_INTRINSIC_2` instruction. (Contributed by Irit Katriel "
"in :gh:`101799`.)"
msgstr ""
+"Agregado la instrucción :opcode:`CALL_INTRINSIC_2`. (Aportado por Irit "
+"Katriel en :gh:`101799`.)"
#: ../Doc/whatsnew/3.12.rst:1102
msgid ""
"Add the :opcode:`CLEANUP_THROW` instruction. (Contributed by Brandt Bucher "
"in :gh:`90997`.)"
msgstr ""
+"Agregado la instrucción :opcode:`CLEANUP_THROW`. (Aportado por Brandt Bucher "
+"en :gh:`90997`.)"
#: ../Doc/whatsnew/3.12.rst:1105
msgid ""
"Add the :opcode:`!END_SEND` instruction. (Contributed by Mark Shannon in :gh:"
"`103082`.)"
msgstr ""
+"Agregado la instrucción :opcode:`!END_SEND`. (Aportado por Mark Shannon en :"
+"gh:`103082`.)"
#: ../Doc/whatsnew/3.12.rst:1108
msgid ""
"Add the :opcode:`LOAD_FAST_AND_CLEAR` instruction as part of the "
"implementation of :pep:`709`. (Contributed by Carl Meyer in :gh:`101441`.)"
msgstr ""
+"Agregada la instrucción :opcode:`LOAD_FAST_AND_CLEAR` como parte de la "
+"implementación de :pep:`709`. (Aportado por Carl Meyer en :gh:`101441`.)"
#: ../Doc/whatsnew/3.12.rst:1111
msgid ""
"Add the :opcode:`LOAD_FAST_CHECK` instruction. (Contributed by Dennis "
"Sweeney in :gh:`93143`.)"
msgstr ""
+"Agregado la instrucción :opcode:`LOAD_FAST_CHECK`. (Aportado por Dennis "
+"Sweeney en :gh:`93143`.)"
#: ../Doc/whatsnew/3.12.rst:1114
msgid ""
@@ -1482,22 +2053,32 @@ msgid ""
"opcode, which can be replaced with :opcode:`LOAD_LOCALS` plus :opcode:"
"`LOAD_FROM_DICT_OR_DEREF`. (Contributed by Jelle Zijlstra in :gh:`103764`.)"
msgstr ""
+"Agregado los códigos de operación :opcode:`LOAD_FROM_DICT_OR_DEREF`, :opcode:"
+"`LOAD_FROM_DICT_OR_GLOBALS` y :opcode:`LOAD_LOCALS` como parte de la "
+"implementación de :pep:`695`. Elimine el código de operación :opcode:`!"
+"LOAD_CLASSDEREF`, que se puede reemplazar con :opcode:`LOAD_LOCALS` más :"
+"opcode:`LOAD_FROM_DICT_OR_DEREF`. (Aportado por Jelle Zijlstra en :gh:"
+"`103764`.)"
#: ../Doc/whatsnew/3.12.rst:1120
msgid ""
"Add the :opcode:`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer "
"and Vladimir Matveev in :gh:`103497`.)"
msgstr ""
+"Agregado la instrucción :opcode:`LOAD_SUPER_ATTR`. (Contribución de Carl "
+"Meyer y Vladimir Matveev en :gh:`103497`.)"
#: ../Doc/whatsnew/3.12.rst:1123
msgid ""
"Add the :opcode:`RETURN_CONST` instruction. (Contributed by Wenyang Wang in :"
"gh:`101632`.)"
msgstr ""
+"Agregado la instrucción :opcode:`RETURN_CONST`. (Aportado por Wenyang Wang "
+"en :gh:`101632`.)"
#: ../Doc/whatsnew/3.12.rst:1126
msgid "Demos and Tools"
-msgstr ""
+msgstr "Demostraciones y herramientas"
#: ../Doc/whatsnew/3.12.rst:1128
msgid ""
@@ -1505,6 +2086,10 @@ msgid ""
"copy can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97681`.)"
msgstr ""
+"Elimine el directorio ``Tools/demo/`` que contenía scripts de demostración "
+"antiguos. Se puede encontrar una copia en el `old-demos project `_. (Aportado por Victor Stinner en :gh:"
+"`97681`.)"
#: ../Doc/whatsnew/3.12.rst:1133
msgid ""
@@ -1512,10 +2097,13 @@ msgid ""
"can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97669`.)"
msgstr ""
+"Elimine los scripts de ejemplo obsoletos del directorio ``Tools/scripts/``. "
+"Se puede encontrar una copia en el `old-demos project `_. (Aportado por Victor Stinner en :gh:`97669`.)"
#: ../Doc/whatsnew/3.12.rst:1140 ../Doc/whatsnew/3.12.rst:2219
msgid "Deprecated"
-msgstr ""
+msgstr "Obsoleto"
#: ../Doc/whatsnew/3.12.rst:1142
msgid ""
@@ -1523,6 +2111,9 @@ msgid ""
"argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. "
"(Contributed by Nikita Sobolev in :gh:`92248`.)"
msgstr ""
+":mod:`argparse`: Los parámetros *type*, *choices* y *metavar* de :class:`!"
+"argparse.BooleanOptionalAction` están obsoletos y se eliminarán en 3.14. "
+"(Contribución de Nikita Sobolev en :gh:`92248`.)"
#: ../Doc/whatsnew/3.12.rst:1147
msgid ""
@@ -1531,36 +2122,42 @@ msgid ""
"emitted at runtime when they are accessed or used, and will be removed in "
"Python 3.14:"
msgstr ""
+":mod:`ast`: las siguientes características de :mod:`ast` han quedado "
+"obsoletas en la documentación desde Python 3.8, ahora provocan que se emita "
+"un :exc:`DeprecationWarning` en tiempo de ejecución cuando se accede a ellas "
+"o se usan, y se eliminarán en Python 3.14:"
#: ../Doc/whatsnew/3.12.rst:1151 ../Doc/whatsnew/3.12.rst:1383
msgid ":class:`!ast.Num`"
-msgstr ""
+msgstr ":class:`!ast.Num`"
#: ../Doc/whatsnew/3.12.rst:1152 ../Doc/whatsnew/3.12.rst:1384
msgid ":class:`!ast.Str`"
-msgstr ""
+msgstr ":class:`!ast.Str`"
#: ../Doc/whatsnew/3.12.rst:1153 ../Doc/whatsnew/3.12.rst:1385
msgid ":class:`!ast.Bytes`"
-msgstr ""
+msgstr ":class:`!ast.Bytes`"
#: ../Doc/whatsnew/3.12.rst:1154 ../Doc/whatsnew/3.12.rst:1386
msgid ":class:`!ast.NameConstant`"
-msgstr ""
+msgstr ":class:`!ast.NameConstant`"
#: ../Doc/whatsnew/3.12.rst:1155 ../Doc/whatsnew/3.12.rst:1387
msgid ":class:`!ast.Ellipsis`"
-msgstr ""
+msgstr ":class:`!ast.Ellipsis`"
#: ../Doc/whatsnew/3.12.rst:1157
msgid ""
"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka in :gh:"
"`90953`.)"
msgstr ""
+"Utilice :class:`ast.Constant` en su lugar. (Aportado por Serhiy Storchaka "
+"en :gh:`90953`.)"
#: ../Doc/whatsnew/3.12.rst:1160 ../Doc/whatsnew/3.12.rst:1389
msgid ":mod:`asyncio`:"
-msgstr ""
+msgstr ":mod:`asyncio`:"
#: ../Doc/whatsnew/3.12.rst:1162
msgid ""
@@ -1569,6 +2166,10 @@ msgid ""
"`asyncio.SafeChildWatcher` are deprecated and will be removed in Python "
"3.14. (Contributed by Kumar Aditya in :gh:`94597`.)"
msgstr ""
+"Las clases de vigilancia secundaria :class:`asyncio.MultiLoopChildWatcher`, :"
+"class:`asyncio.FastChildWatcher`, :class:`asyncio.AbstractChildWatcher` y :"
+"class:`asyncio.SafeChildWatcher` están en desuso y se eliminarán en Python "
+"3.14. (Aportado por Kumar Aditya en :gh:`94597`.)"
#: ../Doc/whatsnew/3.12.rst:1168
msgid ""
@@ -1577,6 +2178,10 @@ msgid ""
"AbstractEventLoopPolicy.get_child_watcher` are deprecated and will be "
"removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)"
msgstr ""
+":func:`asyncio.set_child_watcher`, :func:`asyncio.get_child_watcher`, :meth:"
+"`asyncio.AbstractEventLoopPolicy.set_child_watcher` y :meth:`asyncio."
+"AbstractEventLoopPolicy.get_child_watcher` están en desuso y se eliminarán "
+"en Python 3.14. (Aportado por Kumar Aditya en :gh:`94597`.)"
#: ../Doc/whatsnew/3.12.rst:1174
msgid ""
@@ -1585,6 +2190,10 @@ msgid ""
"and it decides to create one. (Contributed by Serhiy Storchaka and Guido van "
"Rossum in :gh:`100160`.)"
msgstr ""
+"El método :meth:`~asyncio.get_event_loop` de la política de bucle de eventos "
+"predeterminada ahora emite un :exc:`DeprecationWarning` si no hay ningún "
+"bucle de eventos establecido y decide crear uno. (Contribución de Serhiy "
+"Storchaka y Guido van Rossum en :gh:`100160`.)"
#: ../Doc/whatsnew/3.12.rst:1179
msgid ""
@@ -1592,6 +2201,9 @@ msgid ""
"are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar."
"FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)"
msgstr ""
+":mod:`calendar`: las constantes ``calendar.January`` y ``calendar.February`` "
+"están obsoletas y reemplazadas por :data:`calendar.JANUARY` y :data:"
+"`calendar.FEBRUARY`. (Aportado por el Príncipe Roshan en :gh:`103636`.)"
#: ../Doc/whatsnew/3.12.rst:1183
msgid ""
@@ -1600,6 +2212,10 @@ msgid ""
"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections."
"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)"
msgstr ""
+":mod:`collections.abc`: :class:`collections.abc.ByteString` en desuso. "
+"Prefiere :class:`Sequence` o :class:`collections.abc.Buffer`. Para usar al "
+"escribir, prefiera una unión, como ``bytes | bytearray`` o :class:"
+"`collections.abc.Buffer`. (Aportado por Shantanu Jain en :gh:`91896`.)"
#: ../Doc/whatsnew/3.12.rst:1188
msgid ""
@@ -1610,46 +2226,57 @@ msgid ""
"now` and :meth:`~datetime.datetime.fromtimestamp` with the *tz* parameter "
"set to :const:`datetime.UTC`. (Contributed by Paul Ganssle in :gh:`103857`.)"
msgstr ""
+":mod:`datetime`: :meth:`~datetime.datetime.utcnow` y :meth:`~datetime."
+"datetime.utcfromtimestamp` de :class:`datetime.datetime` están en desuso y "
+"se eliminarán en una versión futura. En su lugar, utilice objetos que tengan "
+"en cuenta la zona horaria para representar las fechas y horas en UTC: "
+"respectivamente, llame a :meth:`~datetime.datetime.now` y :meth:`~datetime."
+"datetime.fromtimestamp` con el parámetro *tz* establecido en :const:"
+"`datetime.UTC`. (Aportado por Paul Ganssle en :gh:`103857`.)"
#: ../Doc/whatsnew/3.12.rst:1196
msgid ""
":mod:`email`: Deprecate the *isdst* parameter in :func:`email.utils."
"localtime`. (Contributed by Alan Williams in :gh:`72346`.)"
msgstr ""
+":mod:`email`: obsoleto el parámetro *isdst* en :func:`email.utils."
+"localtime`. (Aportado por Alan Williams en :gh:`72346`.)"
#: ../Doc/whatsnew/3.12.rst:1199
msgid ""
":mod:`importlib.abc`: Deprecated the following classes, scheduled for "
"removal in Python 3.14:"
msgstr ""
+":mod:`importlib.abc`: Obsoletas las siguientes clases, cuya eliminación está "
+"programada en Python 3.14:"
#: ../Doc/whatsnew/3.12.rst:1202 ../Doc/whatsnew/3.12.rst:1406
msgid ":class:`!importlib.abc.ResourceReader`"
-msgstr ""
+msgstr ":class:`!importlib.abc.ResourceReader`"
#: ../Doc/whatsnew/3.12.rst:1203 ../Doc/whatsnew/3.12.rst:1407
msgid ":class:`!importlib.abc.Traversable`"
-msgstr ""
+msgstr ":class:`!importlib.abc.Traversable`"
#: ../Doc/whatsnew/3.12.rst:1204 ../Doc/whatsnew/3.12.rst:1408
msgid ":class:`!importlib.abc.TraversableResources`"
-msgstr ""
+msgstr ":class:`!importlib.abc.TraversableResources`"
#: ../Doc/whatsnew/3.12.rst:1206
msgid "Use :mod:`importlib.resources.abc` classes instead:"
-msgstr ""
+msgstr "Utilice clases :mod:`importlib.resources.abc` en su lugar:"
#: ../Doc/whatsnew/3.12.rst:1208
msgid ":class:`importlib.resources.abc.Traversable`"
-msgstr ""
+msgstr ":class:`importlib.resources.abc.Traversable`"
#: ../Doc/whatsnew/3.12.rst:1209
msgid ":class:`importlib.resources.abc.TraversableResources`"
-msgstr ""
+msgstr ":class:`importlib.resources.abc.TraversableResources`"
#: ../Doc/whatsnew/3.12.rst:1211
msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)"
-msgstr ""
+msgstr "(Contribución de Jason R. Coombs y Hugo van Kemenade en :gh:`93963`.)"
#: ../Doc/whatsnew/3.12.rst:1213
msgid ""
@@ -1659,6 +2286,11 @@ msgid ""
"code volume and maintenance burden. (Contributed by Raymond Hettinger in :gh:"
"`101588`.)"
msgstr ""
+":mod:`itertools`: obsoleta la compatibilidad con operaciones de copia, copia "
+"profunda y pickle, que no está documentada, es ineficiente, históricamente "
+"tiene errores e inconsistente. Esto se eliminará en 3.14 para lograr una "
+"reducción significativa en el volumen de código y la carga de mantenimiento. "
+"(Aportado por Raymond Hettinger en :gh:`101588`.)"
#: ../Doc/whatsnew/3.12.rst:1219
msgid ""
@@ -1671,6 +2303,15 @@ msgid ""
"specify when your code *requires* ``'fork'``. See :ref:`contexts and start "
"methods `."
msgstr ""
+":mod:`multiprocessing`: en Python 3.14, el método de inicio predeterminado "
+"de :mod:`multiprocessing` cambiará a uno más seguro en Linux, BSD y otras "
+"plataformas POSIX que no sean macOS donde ``'fork'`` es actualmente el "
+"predeterminado (:gh:`84559`). Agregar una advertencia de tiempo de ejecución "
+"sobre esto se consideró demasiado perjudicial ya que se espera que a la "
+"mayoría del código no le importe. Utilice las API :func:`~multiprocessing."
+"get_context` o :func:`~multiprocessing.set_start_method` para especificar "
+"explícitamente cuándo su código *requires* ``'fork'``. Ver :ref:`contexts "
+"and start methods `."
#: ../Doc/whatsnew/3.12.rst:1229
msgid ""
@@ -1678,6 +2319,9 @@ msgid ""
"are deprecated and will be removed in Python 3.14; use :func:`importlib.util."
"find_spec` instead. (Contributed by Nikita Sobolev in :gh:`97850`.)"
msgstr ""
+":mod:`pkgutil`: :func:`pkgutil.find_loader` y :func:`pkgutil.get_loader` "
+"están en desuso y se eliminarán en Python 3.14; utilice :func:`importlib."
+"util.find_spec` en su lugar. (Contribución de Nikita Sobolev en :gh:`97850`.)"
#: ../Doc/whatsnew/3.12.rst:1234
msgid ""
@@ -1686,10 +2330,15 @@ msgid ""
"gained a proper :exc:`DeprecationWarning` in 3.12. Remove them in 3.14. "
"(Contributed by Soumendra Ganguly and Gregory P. Smith in :gh:`85984`.)"
msgstr ""
+":mod:`pty`: el módulo tiene dos funciones ``master_open()`` y "
+"``slave_open()`` no documentadas que han quedado obsoletas desde Python 2 "
+"pero que solo obtuvieron un :exc:`DeprecationWarning` adecuado en 3.12. "
+"Elimínelos en 3.14. (Aportado por Soumendra Ganguly y Gregory P. Smith en :"
+"gh:`85984`.)"
#: ../Doc/whatsnew/3.12.rst:1239
msgid ":mod:`os`:"
-msgstr ""
+msgstr ":mod:`os`:"
#: ../Doc/whatsnew/3.12.rst:1241
msgid ""
@@ -1699,6 +2348,11 @@ msgid ""
"contain the creation time, which is also available in the new "
"``st_birthtime`` field. (Contributed by Steve Dower in :gh:`99726`.)"
msgstr ""
+"Los campos ``st_ctime`` devueltos por :func:`os.stat` y :func:`os.lstat` en "
+"Windows están en desuso. En una versión futura, contendrán la hora del "
+"último cambio de metadatos, de forma coherente con otras plataformas. Por "
+"ahora, todavía contienen la hora de creación, que también está disponible en "
+"el nuevo campo ``st_birthtime``. (Aportado por Steve Dower en :gh:`99726`.)"
#: ../Doc/whatsnew/3.12.rst:1247
msgid ""
@@ -1712,6 +2366,16 @@ msgid ""
"`_ for *why* we're now surfacing this "
"longstanding platform compatibility problem to developers."
msgstr ""
+"En plataformas POSIX, :func:`os.fork` ahora puede generar un :exc:"
+"`DeprecationWarning` cuando detecta una llamada desde un proceso "
+"multiproceso. Siempre ha habido una incompatibilidad fundamental con la "
+"plataforma POSIX al hacerlo. Incluso si dicho código *appeared* funciona. "
+"Agregamos la advertencia para crear conciencia, ya que los problemas "
+"encontrados por el código al hacer esto son cada vez más frecuentes. "
+"Consulte la documentación de :func:`os.fork` para obtener más detalles junto "
+"con `this discussion on fork being incompatible with threads `_ para *why*. Ahora estamos exponiendo a los "
+"desarrolladores este problema de compatibilidad de plataforma de larga data."
#: ../Doc/whatsnew/3.12.rst:1257
msgid ""
@@ -1719,6 +2383,9 @@ msgid ""
"`concurrent.futures` the fix is to use a different :mod:`multiprocessing` "
"start method such as ``\"spawn\"`` or ``\"forkserver\"``."
msgstr ""
+"Cuando aparece esta advertencia debido al uso de :mod:`multiprocessing` o :"
+"mod:`concurrent.futures`, la solución es utilizar un método de inicio de :"
+"mod:`multiprocessing` diferente, como ``\"spawn\"`` o ``\"forkserver\"``."
#: ../Doc/whatsnew/3.12.rst:1261
msgid ""
@@ -1726,10 +2393,13 @@ msgid ""
"and will be removed in Python 3.14. Use *onexc* instead. (Contributed by "
"Irit Katriel in :gh:`102828`.)"
msgstr ""
+":mod:`shutil`: el argumento *onerror* de :func:`shutil.rmtree` está obsoleto "
+"y se eliminará en Python 3.14. Utilice *onexc* en su lugar. (Aportado por "
+"Irit Katriel en :gh:`102828`.)"
#: ../Doc/whatsnew/3.12.rst:1264
msgid ":mod:`sqlite3`:"
-msgstr ""
+msgstr ":mod:`sqlite3`:"
#: ../Doc/whatsnew/3.12.rst:1266
msgid ""
@@ -1737,6 +2407,10 @@ msgid ""
"deprecated. Instead, use the :ref:`sqlite3-adapter-converter-recipes` and "
"tailor them to your needs. (Contributed by Erlend E. Aasland in :gh:`90016`.)"
msgstr ""
+":ref:`default adapters and converters ` ahora "
+"están en desuso. En su lugar, utilice el :ref:`sqlite3-adapter-converter-"
+"recipes` y adáptelo a sus necesidades. (Aportado por Erlend E. Aasland en :"
+"gh:`90016`.)"
#: ../Doc/whatsnew/3.12.rst:1272
msgid ""
@@ -1747,6 +2421,12 @@ msgid ""
"as a sequence will raise a :exc:`~sqlite3.ProgrammingError`. (Contributed by "
"Erlend E. Aasland in :gh:`101698`.)"
msgstr ""
+"En :meth:`~sqlite3.Cursor.execute`, :exc:`DeprecationWarning` ahora se emite "
+"cuando :ref:`named placeholders ` se utiliza junto con "
+"los parámetros proporcionados como :term:`sequence` en lugar de como :class:"
+"`dict`. A partir de Python 3.14, el uso de marcadores de posición con nombre "
+"con parámetros proporcionados como una secuencia generará un :exc:`~sqlite3."
+"ProgrammingError`. (Aportado por Erlend E. Aasland en :gh:`101698`.)"
#: ../Doc/whatsnew/3.12.rst:1279
msgid ""
@@ -1754,6 +2434,9 @@ msgid ""
"last_traceback` fields are deprecated. Use :data:`sys.last_exc` instead. "
"(Contributed by Irit Katriel in :gh:`102778`.)"
msgstr ""
+":mod:`sys`: los campos :data:`sys.last_type`, :data:`sys.last_value` y :data:"
+"`sys.last_traceback` están en desuso. Utilice :data:`sys.last_exc` en su "
+"lugar. (Aportado por Irit Katriel en :gh:`102778`.)"
#: ../Doc/whatsnew/3.12.rst:1283
msgid ""
@@ -1761,16 +2444,22 @@ msgid ""
"deprecated until Python 3.14, when ``'data'`` filter will become the "
"default. See :ref:`tarfile-extraction-filter` for details."
msgstr ""
+":mod:`tarfile`: la extracción de archivos tar sin especificar *filter* está "
+"en desuso hasta Python 3.14, cuando el filtro ``'data'`` se convertirá en el "
+"predeterminado. Consulte :ref:`tarfile-extraction-filter` para obtener más "
+"detalles."
#: ../Doc/whatsnew/3.12.rst:1287
msgid ":mod:`typing`:"
-msgstr ""
+msgstr ":mod:`typing`:"
#: ../Doc/whatsnew/3.12.rst:1289
msgid ""
":class:`typing.Hashable` and :class:`typing.Sized` aliases for :class:"
"`collections.abc.Hashable` and :class:`collections.abc.Sized`. (:gh:`94309`.)"
msgstr ""
+":class:`typing.Hashable` y :class:`typing.Sized` alias para :class:"
+"`collections.abc.Hashable` y :class:`collections.abc.Sized`. (:gh:`94309`.)"
#: ../Doc/whatsnew/3.12.rst:1292
msgid ""
@@ -1778,6 +2467,9 @@ msgid ""
"`DeprecationWarning` to be emitted when it is used. (Contributed by Alex "
"Waygood in :gh:`91896`.)"
msgstr ""
+":class:`typing.ByteString`, en desuso desde Python 3.9, ahora provoca que se "
+"emita un :exc:`DeprecationWarning` cuando se utiliza. (Aportado por Alex "
+"Waygood en :gh:`91896`.)"
#: ../Doc/whatsnew/3.12.rst:1296
msgid ""
@@ -1786,6 +2478,11 @@ msgid ""
"Before, the Python implementation emitted :exc:`FutureWarning`, and the C "
"implementation emitted nothing. (Contributed by Jacob Walls in :gh:`83122`.)"
msgstr ""
+":mod:`xml.etree.ElementTree`: el módulo ahora emite :exc:"
+"`DeprecationWarning` al probar el valor de verdad de un :class:`xml.etree."
+"ElementTree.Element`. Antes, la implementación de Python emitía :exc:"
+"`FutureWarning` y la implementación de C no emitía nada. (Aportado por Jacob "
+"Walls en :gh:`83122`.)"
#: ../Doc/whatsnew/3.12.rst:1302
msgid ""
@@ -1795,6 +2492,12 @@ msgid ""
"a future version of Python. Use the single-arg versions of these functions "
"instead. (Contributed by Ofey Chan in :gh:`89874`.)"
msgstr ""
+"Las firmas de 3 argumentos (tipo, valor, rastreo) de :meth:`coroutine "
+"throw() `, :meth:`generator throw() ` y :"
+"meth:`async generator throw() ` están en desuso y es posible "
+"que se eliminen en una versión futura de Python. Utilice en su lugar las "
+"versiones de un solo argumento de estas funciones. (Aportado por Ofey Chan "
+"en :gh:`89874`.)"
#: ../Doc/whatsnew/3.12.rst:1308
msgid ""
@@ -1802,6 +2505,9 @@ msgid ""
"differs from ``__spec__.parent`` (previously it was :exc:`ImportWarning`). "
"(Contributed by Brett Cannon in :gh:`65961`.)"
msgstr ""
+":exc:`DeprecationWarning` ahora se genera cuando ``__package__`` en un "
+"módulo difiere de ``__spec__.parent`` (anteriormente era :exc:"
+"`ImportWarning`). (Aportado por Brett Cannon en :gh:`65961`.)"
#: ../Doc/whatsnew/3.12.rst:1313
msgid ""
@@ -1809,6 +2515,9 @@ msgid ""
"will cease to be set or taken into consideration by the import system in "
"Python 3.14. (Contributed by Brett Cannon in :gh:`65961`.)"
msgstr ""
+"La configuración de ``__package__`` o ``__cached__`` en un módulo está "
+"obsoleta y el sistema de importación dejará de configurarla o tomarla en "
+"consideración en Python 3.14. (Aportado por Brett Cannon en :gh:`65961`.)"
#: ../Doc/whatsnew/3.12.rst:1317
msgid ""
@@ -1818,6 +2527,11 @@ msgid ""
"underlying ``int``, convert to int explicitly: ``~int(x)``. (Contributed by "
"Tim Hoffmann in :gh:`103487`.)"
msgstr ""
+"El operador de inversión bit a bit (``~``) en bool está en desuso. Lanzará "
+"un error en Python 3.14. Utilice ``not`` para la negación lógica de bools. "
+"En el raro caso de que realmente necesite la inversión bit a bit del ``int`` "
+"subyacente, lo convierte a int explícitamente: ``~int(x)``. (Aportado por "
+"Tim Hoffmann en :gh:`103487`.)"
#: ../Doc/whatsnew/3.12.rst:1323
msgid ""
@@ -1826,275 +2540,291 @@ msgid ""
"therefore it will be removed in 3.14. (Contributed by Nikita Sobolev in :gh:"
"`101866`.)"
msgstr ""
+"El acceso a ``co_lnotab`` en objetos de código quedó obsoleto en Python 3.10 "
+"a través de :pep:`626`, pero solo obtuvo un :exc:`DeprecationWarning` "
+"adecuado en 3.12, por lo que se eliminará en 3.14. (Aportado por Nikita "
+"Sobolev en :gh:`101866`.)"
#: ../Doc/whatsnew/3.12.rst:1329
msgid "Pending Removal in Python 3.13"
-msgstr ""
+msgstr "Eliminación pendiente en Python 3.13"
#: ../Doc/whatsnew/3.12.rst:1331
msgid ""
"The following modules and APIs have been deprecated in earlier Python "
"releases, and will be removed in Python 3.13."
msgstr ""
+"Los siguientes módulos y API quedaron obsoletos en versiones anteriores de "
+"Python y se eliminarán en Python 3.13."
#: ../Doc/whatsnew/3.12.rst:1334
msgid "Modules (see :pep:`594`):"
-msgstr ""
+msgstr "Módulos (ver :pep:`594`):"
#: ../Doc/whatsnew/3.12.rst:1336
msgid ":mod:`aifc`"
-msgstr ""
+msgstr ":mod:`aifc`"
#: ../Doc/whatsnew/3.12.rst:1337
msgid ":mod:`audioop`"
-msgstr ""
+msgstr ":mod:`audioop`"
#: ../Doc/whatsnew/3.12.rst:1338
msgid ":mod:`cgi`"
-msgstr ""
+msgstr ":mod:`cgi`"
#: ../Doc/whatsnew/3.12.rst:1339
msgid ":mod:`cgitb`"
-msgstr ""
+msgstr ":mod:`cgitb`"
#: ../Doc/whatsnew/3.12.rst:1340
msgid ":mod:`chunk`"
-msgstr ""
+msgstr ":mod:`chunk`"
#: ../Doc/whatsnew/3.12.rst:1341
msgid ":mod:`crypt`"
-msgstr ""
+msgstr ":mod:`crypt`"
#: ../Doc/whatsnew/3.12.rst:1342
msgid ":mod:`imghdr`"
-msgstr ""
+msgstr ":mod:`imghdr`"
#: ../Doc/whatsnew/3.12.rst:1343
msgid ":mod:`mailcap`"
-msgstr ""
+msgstr ":mod:`mailcap`"
#: ../Doc/whatsnew/3.12.rst:1344
msgid ":mod:`msilib`"
-msgstr ""
+msgstr ":mod:`msilib`"
#: ../Doc/whatsnew/3.12.rst:1345
msgid ":mod:`nis`"
-msgstr ""
+msgstr ":mod:`nis`"
#: ../Doc/whatsnew/3.12.rst:1346
msgid ":mod:`nntplib`"
-msgstr ""
+msgstr ":mod:`nntplib`"
#: ../Doc/whatsnew/3.12.rst:1347
msgid ":mod:`ossaudiodev`"
-msgstr ""
+msgstr ":mod:`ossaudiodev`"
#: ../Doc/whatsnew/3.12.rst:1348
msgid ":mod:`pipes`"
-msgstr ""
+msgstr ":mod:`pipes`"
#: ../Doc/whatsnew/3.12.rst:1349
msgid ":mod:`sndhdr`"
-msgstr ""
+msgstr ":mod:`sndhdr`"
#: ../Doc/whatsnew/3.12.rst:1350
msgid ":mod:`spwd`"
-msgstr ""
+msgstr ":mod:`spwd`"
#: ../Doc/whatsnew/3.12.rst:1351
msgid ":mod:`sunau`"
-msgstr ""
+msgstr ":mod:`sunau`"
#: ../Doc/whatsnew/3.12.rst:1352
msgid ":mod:`telnetlib`"
-msgstr ""
+msgstr ":mod:`telnetlib`"
#: ../Doc/whatsnew/3.12.rst:1353
msgid ":mod:`uu`"
-msgstr ""
+msgstr ":mod:`uu`"
#: ../Doc/whatsnew/3.12.rst:1354
msgid ":mod:`xdrlib`"
-msgstr ""
+msgstr ":mod:`xdrlib`"
#: ../Doc/whatsnew/3.12.rst:1356
msgid "Other modules:"
-msgstr ""
+msgstr "Otros módulos:"
#: ../Doc/whatsnew/3.12.rst:1358
msgid ":mod:`!lib2to3`, and the :program:`2to3` program (:gh:`84540`)"
-msgstr ""
+msgstr ":mod:`!lib2to3` y el programa :program:`2to3` (:gh:`84540`)"
#: ../Doc/whatsnew/3.12.rst:1360
msgid "APIs:"
-msgstr ""
+msgstr "APIs:"
#: ../Doc/whatsnew/3.12.rst:1362
msgid ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)"
-msgstr ""
+msgstr ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)"
#: ../Doc/whatsnew/3.12.rst:1363
msgid ":func:`locale.getdefaultlocale` (:gh:`90817`)"
-msgstr ""
+msgstr ":func:`locale.getdefaultlocale` (:gh:`90817`)"
#: ../Doc/whatsnew/3.12.rst:1364
msgid ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)"
-msgstr ""
+msgstr ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)"
#: ../Doc/whatsnew/3.12.rst:1365
msgid ":func:`!unittest.findTestCases` (:gh:`50096`)"
-msgstr ""
+msgstr ":func:`!unittest.findTestCases` (:gh:`50096`)"
#: ../Doc/whatsnew/3.12.rst:1366
msgid ":func:`!unittest.getTestCaseNames` (:gh:`50096`)"
-msgstr ""
+msgstr ":func:`!unittest.getTestCaseNames` (:gh:`50096`)"
#: ../Doc/whatsnew/3.12.rst:1367
msgid ":func:`!unittest.makeSuite` (:gh:`50096`)"
-msgstr ""
+msgstr ":func:`!unittest.makeSuite` (:gh:`50096`)"
#: ../Doc/whatsnew/3.12.rst:1368
msgid ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)"
-msgstr ""
+msgstr ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)"
#: ../Doc/whatsnew/3.12.rst:1369
msgid ":class:`!webbrowser.MacOSX` (:gh:`86421`)"
-msgstr ""
+msgstr ":class:`!webbrowser.MacOSX` (:gh:`86421`)"
#: ../Doc/whatsnew/3.12.rst:1370
msgid ":class:`classmethod` descriptor chaining (:gh:`89519`)"
-msgstr ""
+msgstr "Encadenamiento de descriptores :class:`classmethod` (:gh:`89519`)"
#: ../Doc/whatsnew/3.12.rst:1373 ../Doc/whatsnew/3.12.rst:2306
msgid "Pending Removal in Python 3.14"
-msgstr ""
+msgstr "Eliminación pendiente en Python 3.14"
#: ../Doc/whatsnew/3.12.rst:1375
msgid ""
"The following APIs have been deprecated and will be removed in Python 3.14."
msgstr ""
+"Las siguientes API han quedado obsoletas y se eliminarán en Python 3.14."
#: ../Doc/whatsnew/3.12.rst:1378
msgid ""
":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!"
"argparse.BooleanOptionalAction`"
msgstr ""
+":mod:`argparse`: Los parámetros *type*, *choices* y *metavar* de :class:`!"
+"argparse.BooleanOptionalAction`"
#: ../Doc/whatsnew/3.12.rst:1381
msgid ":mod:`ast`:"
-msgstr ""
+msgstr ":mod:`ast`:"
#: ../Doc/whatsnew/3.12.rst:1391
msgid ":class:`!asyncio.MultiLoopChildWatcher`"
-msgstr ""
+msgstr ":class:`!asyncio.MultiLoopChildWatcher`"
#: ../Doc/whatsnew/3.12.rst:1392
msgid ":class:`!asyncio.FastChildWatcher`"
-msgstr ""
+msgstr ":class:`!asyncio.FastChildWatcher`"
#: ../Doc/whatsnew/3.12.rst:1393
msgid ":class:`!asyncio.AbstractChildWatcher`"
-msgstr ""
+msgstr ":class:`!asyncio.AbstractChildWatcher`"
#: ../Doc/whatsnew/3.12.rst:1394
msgid ":class:`!asyncio.SafeChildWatcher`"
-msgstr ""
+msgstr ":class:`!asyncio.SafeChildWatcher`"
#: ../Doc/whatsnew/3.12.rst:1395
msgid ":func:`!asyncio.set_child_watcher`"
-msgstr ""
+msgstr ":func:`!asyncio.set_child_watcher`"
#: ../Doc/whatsnew/3.12.rst:1396
msgid ":func:`!asyncio.get_child_watcher`,"
-msgstr ""
+msgstr ":func:`!asyncio.get_child_watcher`,"
#: ../Doc/whatsnew/3.12.rst:1397
msgid ":meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher`"
-msgstr ""
+msgstr ":meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher`"
#: ../Doc/whatsnew/3.12.rst:1398
msgid ":meth:`!asyncio.AbstractEventLoopPolicy.get_child_watcher`"
-msgstr ""
+msgstr ":meth:`!asyncio.AbstractEventLoopPolicy.get_child_watcher`"
#: ../Doc/whatsnew/3.12.rst:1400
msgid ":mod:`collections.abc`: :class:`!collections.abc.ByteString`."
-msgstr ""
+msgstr ":mod:`collections.abc`: :class:`!collections.abc.ByteString`."
#: ../Doc/whatsnew/3.12.rst:1402
msgid ":mod:`email`: the *isdst* parameter in :func:`email.utils.localtime`."
-msgstr ""
+msgstr ":mod:`email`: el parámetro *isdst* en :func:`email.utils.localtime`."
#: ../Doc/whatsnew/3.12.rst:1404
msgid ":mod:`importlib.abc`:"
-msgstr ""
+msgstr ":mod:`importlib.abc`:"
#: ../Doc/whatsnew/3.12.rst:1410
msgid ":mod:`itertools`: Support for copy, deepcopy, and pickle operations."
msgstr ""
+":mod:`itertools`: soporte para operaciones de copia, copia profunda y pickle."
#: ../Doc/whatsnew/3.12.rst:1412
msgid ":mod:`pkgutil`:"
-msgstr ""
+msgstr ":mod:`pkgutil`:"
#: ../Doc/whatsnew/3.12.rst:1414
msgid ":func:`!pkgutil.find_loader`"
-msgstr ""
+msgstr ":func:`!pkgutil.find_loader`"
#: ../Doc/whatsnew/3.12.rst:1415
msgid ":func:`!pkgutil.get_loader`."
-msgstr ""
+msgstr ":func:`!pkgutil.get_loader`."
#: ../Doc/whatsnew/3.12.rst:1417
msgid ":mod:`pty`:"
-msgstr ""
+msgstr ":mod:`pty`:"
#: ../Doc/whatsnew/3.12.rst:1419
msgid ":func:`!pty.master_open`"
-msgstr ""
+msgstr ":func:`!pty.master_open`"
#: ../Doc/whatsnew/3.12.rst:1420
msgid ":func:`!pty.slave_open`"
-msgstr ""
+msgstr ":func:`!pty.slave_open`"
#: ../Doc/whatsnew/3.12.rst:1422
msgid ":mod:`shutil`: The *onerror* argument of :func:`shutil.rmtree`"
-msgstr ""
+msgstr ":mod:`shutil`: El argumento *onerror* de :func:`shutil.rmtree`"
#: ../Doc/whatsnew/3.12.rst:1424
msgid ":mod:`typing`: :class:`!typing.ByteString`"
-msgstr ""
+msgstr ":mod:`typing`: :class:`!typing.ByteString`"
#: ../Doc/whatsnew/3.12.rst:1426
msgid ""
":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`xml."
"etree.ElementTree.Element`."
msgstr ""
+":mod:`xml.etree.ElementTree`: Probando el valor de verdad de un :class:`xml."
+"etree.ElementTree.Element`."
#: ../Doc/whatsnew/3.12.rst:1428
msgid "The ``__package__`` and ``__cached__`` attributes on module objects."
msgstr ""
+"Los atributos ``__package__`` y ``__cached__`` en los objetos del módulo."
#: ../Doc/whatsnew/3.12.rst:1430
msgid "The ``co_lnotab`` attribute of code objects."
-msgstr ""
+msgstr "El atributo ``co_lnotab`` de los objetos de código."
#: ../Doc/whatsnew/3.12.rst:1433 ../Doc/whatsnew/3.12.rst:2361
msgid "Pending Removal in Future Versions"
-msgstr ""
+msgstr "Eliminación pendiente en versiones futuras"
#: ../Doc/whatsnew/3.12.rst:1435
msgid ""
"The following APIs were deprecated in earlier Python versions and will be "
"removed, although there is currently no date scheduled for their removal."
msgstr ""
+"Las siguientes API quedaron obsoletas en versiones anteriores de Python y se "
+"eliminarán, aunque actualmente no hay una fecha programada para su "
+"eliminación."
#: ../Doc/whatsnew/3.12.rst:1438
msgid ":mod:`array`'s ``'u'`` format code (:gh:`57281`)"
-msgstr ""
+msgstr "Código de formato ``'u'`` de :mod:`array` (:gh:`57281`)"
#: ../Doc/whatsnew/3.12.rst:1440
msgid ":class:`typing.Text` (:gh:`92332`)"
-msgstr ""
+msgstr ":class:`typing.Text` (:gh:`92332`)"
#: ../Doc/whatsnew/3.12.rst:1442
msgid ""
@@ -2107,14 +2837,22 @@ msgid ""
"keyword:`is` and :keyword:`or`. In a future release it will be changed to a "
"syntax error. (:gh:`87999`)"
msgstr ""
+"Actualmente, Python acepta literales numéricos seguidos inmediatamente de "
+"palabras clave, por ejemplo ``0in x``, ``1or x``, ``0if 1else 2``. Permite "
+"expresiones confusas y ambiguas como ``[0x1for x in y]`` (que puede "
+"interpretarse como ``[0x1 for x in y]`` o ``[0x1f or x in y]``). Se genera "
+"una advertencia de sintaxis si el literal numérico va seguido inmediatamente "
+"de una de las palabras clave :keyword:`and`, :keyword:`else`, :keyword:"
+"`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` y :keyword:`or`. En una "
+"versión futura se cambiará a un error de sintaxis. (:gh:`87999`)"
#: ../Doc/whatsnew/3.12.rst:1453 ../Doc/whatsnew/3.12.rst:2393
msgid "Removed"
-msgstr ""
+msgstr "Eliminado"
#: ../Doc/whatsnew/3.12.rst:1456
msgid "asynchat and asyncore"
-msgstr ""
+msgstr "asynchat y asyncore"
#: ../Doc/whatsnew/3.12.rst:1458
msgid ""
@@ -2122,38 +2860,49 @@ msgid ""
"having been deprecated in Python 3.6. Use :mod:`asyncio` instead. "
"(Contributed by Nikita Sobolev in :gh:`96580`.)"
msgstr ""
+"Estos dos módulos se eliminaron según lo programado en :pep:`594` y quedaron "
+"obsoletos en Python 3.6. Utilice :mod:`asyncio` en su lugar. (Aportado por "
+"Nikita Sobolev en :gh:`96580`.)"
#: ../Doc/whatsnew/3.12.rst:1465
msgid "configparser"
-msgstr ""
+msgstr "configparser"
#: ../Doc/whatsnew/3.12.rst:1467
msgid ""
"Several names deprecated in the :mod:`configparser` way back in 3.2 have "
"been removed per :gh:`89336`:"
msgstr ""
+"Varios nombres obsoletos en :mod:`configparser` en 3.2 se han eliminado "
+"según :gh:`89336`:"
#: ../Doc/whatsnew/3.12.rst:1470
msgid ""
":class:`configparser.ParsingError` no longer has a ``filename`` attribute or "
"argument. Use the ``source`` attribute and argument instead."
msgstr ""
+":class:`configparser.ParsingError` ya no tiene un atributo o argumento "
+"``filename``. Utilice el atributo y el argumento ``source`` en su lugar."
#: ../Doc/whatsnew/3.12.rst:1472
msgid ""
":mod:`configparser` no longer has a ``SafeConfigParser`` class. Use the "
"shorter :class:`~configparser.ConfigParser` name instead."
msgstr ""
+":mod:`configparser` ya no tiene una clase ``SafeConfigParser``. Utilice en "
+"su lugar el nombre :class:`~configparser.ConfigParser` más corto."
#: ../Doc/whatsnew/3.12.rst:1474
msgid ""
":class:`configparser.ConfigParser` no longer has a ``readfp`` method. Use :"
"meth:`~configparser.ConfigParser.read_file` instead."
msgstr ""
+":class:`configparser.ConfigParser` ya no tiene un método ``readfp``. "
+"Utilice :meth:`~configparser.ConfigParser.read_file` en su lugar."
#: ../Doc/whatsnew/3.12.rst:1478
msgid "distutils"
-msgstr ""
+msgstr "distutils"
#: ../Doc/whatsnew/3.12.rst:1480
msgid ""
@@ -2163,16 +2912,24 @@ msgid ""
"project can be installed: it still provides ``distutils``. (Contributed by "
"Victor Stinner in :gh:`92584`.)"
msgstr ""
+"Elimine el paquete :py:mod:`!distutils`. Quedó obsoleto en Python 3.10 por :"
+"pep:`632` \"Módulo distutils obsoleto\". Para proyectos que todavía usan "
+"``distutils`` y no se pueden actualizar a otra cosa, se puede instalar el "
+"proyecto ``setuptools``: todavía proporciona ``distutils``. (Aportado por "
+"Victor Stinner en :gh:`92584`.)"
#: ../Doc/whatsnew/3.12.rst:1487
msgid "ensurepip"
-msgstr ""
+msgstr "ensurepip"
#: ../Doc/whatsnew/3.12.rst:1489
msgid ""
"Remove the bundled setuptools wheel from :mod:`ensurepip`, and stop "
"installing setuptools in environments created by :mod:`venv`."
msgstr ""
+"Retire la rueda de herramientas de configuración incluida en :mod:"
+"`ensurepip` y deje de instalar herramientas de configuración en entornos "
+"creados por :mod:`venv`."
#: ../Doc/whatsnew/3.12.rst:1492
msgid ""
@@ -2181,6 +2938,11 @@ msgid ""
"still be used with ``pip install``, since pip will provide ``setuptools`` in "
"the build environment it uses for building a package."
msgstr ""
+"``pip (>= 22.1)`` no requiere la instalación de herramientas de "
+"configuración en el entorno. Los paquetes basados en ``setuptools`` (y "
+"``distutils``) aún se pueden usar con ``pip install``, ya que pip "
+"proporcionará ``setuptools`` en el entorno de compilación que utiliza para "
+"crear un paquete."
#: ../Doc/whatsnew/3.12.rst:1498
msgid ""
@@ -2191,34 +2953,46 @@ msgid ""
"project should be declared as a dependency and installed separately "
"(typically, using pip)."
msgstr ""
+"``easy_install``, ``pkg_resources``, ``setuptools`` y ``distutils`` ya no se "
+"proporcionan de forma predeterminada en entornos creados con ``venv`` o "
+"arrancados con ``ensurepip``, ya que forman parte del paquete "
+"``setuptools``. Para proyectos que dependen de estos en tiempo de ejecución, "
+"el proyecto ``setuptools`` debe declararse como una dependencia e instalarse "
+"por separado (generalmente, usando pip)."
#: ../Doc/whatsnew/3.12.rst:1505
msgid "(Contributed by Pradyun Gedam in :gh:`95299`.)"
-msgstr ""
+msgstr "(Aportado por Pradyun Gedam en :gh:`95299`.)"
#: ../Doc/whatsnew/3.12.rst:1508
msgid "enum"
-msgstr ""
+msgstr "enum"
#: ../Doc/whatsnew/3.12.rst:1510
msgid ""
"Remove :mod:`enum`'s ``EnumMeta.__getattr__``, which is no longer needed for "
"enum attribute access. (Contributed by Ethan Furman in :gh:`95083`.)"
msgstr ""
+"Elimine ``EnumMeta.__getattr__`` de :mod:`enum`, que ya no es necesario para "
+"acceder al atributo de enumeración. (Aportado por Ethan Furman en :gh:"
+"`95083`.)"
#: ../Doc/whatsnew/3.12.rst:1515
msgid "ftplib"
-msgstr ""
+msgstr "ftplib"
#: ../Doc/whatsnew/3.12.rst:1517
msgid ""
"Remove :mod:`ftplib`'s ``FTP_TLS.ssl_version`` class attribute: use the "
"*context* parameter instead. (Contributed by Victor Stinner in :gh:`94172`.)"
msgstr ""
+"Elimine el atributo de clase ``FTP_TLS.ssl_version`` de :mod:`ftplib`: "
+"utilice el parámetro *context* en su lugar. (Aportado por Victor Stinner en :"
+"gh:`94172`.)"
#: ../Doc/whatsnew/3.12.rst:1522
msgid "gzip"
-msgstr ""
+msgstr "gzip"
#: ../Doc/whatsnew/3.12.rst:1524
msgid ""
@@ -2228,10 +3002,15 @@ msgid ""
"extension if it was not present. (Contributed by Victor Stinner in :gh:"
"`94196`.)"
msgstr ""
+"Elimine el atributo ``filename`` del :class:`gzip.GzipFile` de :mod:`gzip`, "
+"en desuso desde Python 2.6; utilice el atributo :attr:`~gzip.GzipFile.name` "
+"en su lugar. En modo de escritura, el atributo ``filename`` agregaba la "
+"extensión de archivo ``'.gz'`` si no estaba presente. (Aportado por Victor "
+"Stinner en :gh:`94196`.)"
#: ../Doc/whatsnew/3.12.rst:1531
msgid "hashlib"
-msgstr ""
+msgstr "hashlib"
#: ../Doc/whatsnew/3.12.rst:1533
msgid ""
@@ -2241,22 +3020,31 @@ msgid ""
"of :func:`~hashlib.pbkdf2_hmac()` which is faster. (Contributed by Victor "
"Stinner in :gh:`94199`.)"
msgstr ""
+"Elimine la implementación pura de Python de :func:`hashlib.pbkdf2_hmac()` "
+"de :mod:`hashlib`, obsoleta en Python 3.10. Python 3.10 y versiones "
+"posteriores requieren OpenSSL 1.1.1 (:pep:`644`): esta versión de OpenSSL "
+"proporciona una implementación C de :func:`~hashlib.pbkdf2_hmac()` que es "
+"más rápida. (Aportado por Victor Stinner en :gh:`94199`.)"
#: ../Doc/whatsnew/3.12.rst:1540 ../Doc/whatsnew/3.12.rst:1567
msgid "importlib"
-msgstr ""
+msgstr "importlib"
#: ../Doc/whatsnew/3.12.rst:1542
msgid ""
"Many previously deprecated cleanups in :mod:`importlib` have now been "
"completed:"
msgstr ""
+"Muchas limpiezas anteriormente obsoletas en :mod:`importlib` ahora se han "
+"completado:"
#: ../Doc/whatsnew/3.12.rst:1545
msgid ""
"References to, and support for :meth:`!module_repr()` has been removed. "
"(Contributed by Barry Warsaw in :gh:`97850`.)"
msgstr ""
+"Se han eliminado las referencias y la compatibilidad con :meth:`!"
+"module_repr()`. (Aportado por Barry Varsovia en :gh:`97850`.)"
#: ../Doc/whatsnew/3.12.rst:1548
msgid ""
@@ -2264,156 +3052,169 @@ msgid ""
"``importlib.util.module_for_loader`` have all been removed. (Contributed by "
"Brett Cannon and Nikita Sobolev in :gh:`65961` and :gh:`97850`.)"
msgstr ""
+"Se han eliminado ``importlib.util.set_package``, ``importlib.util."
+"set_loader`` y ``importlib.util.module_for_loader``. (Contribución de Brett "
+"Cannon y Nikita Sobolev en :gh:`65961` y :gh:`97850`.)"
#: ../Doc/whatsnew/3.12.rst:1552
msgid ""
"Support for ``find_loader()`` and ``find_module()`` APIs have been removed. "
"(Contributed by Barry Warsaw in :gh:`98040`.)"
msgstr ""
+"Se eliminó la compatibilidad con las API ``find_loader()`` y "
+"``find_module()``. (Aportado por Barry Varsovia en :gh:`98040`.)"
#: ../Doc/whatsnew/3.12.rst:1555
msgid ""
"``importlib.abc.Finder``, ``pkgutil.ImpImporter``, and ``pkgutil.ImpLoader`` "
"have been removed. (Contributed by Barry Warsaw in :gh:`98040`.)"
msgstr ""
+"Se han eliminado ``importlib.abc.Finder``, ``pkgutil.ImpImporter`` y "
+"``pkgutil.ImpLoader``. (Aportado por Barry Varsovia en :gh:`98040`.)"
#: ../Doc/whatsnew/3.12.rst:1559 ../Doc/whatsnew/3.12.rst:1567
msgid "imp"
-msgstr ""
+msgstr "imp"
#: ../Doc/whatsnew/3.12.rst:1561
msgid ""
"The :mod:`!imp` module has been removed. (Contributed by Barry Warsaw in :"
"gh:`98040`.)"
msgstr ""
+"Se ha eliminado el módulo :mod:`!imp`. (Aportado por Barry Varsovia en :gh:"
+"`98040`.)"
#: ../Doc/whatsnew/3.12.rst:1564
msgid "To migrate, consult the following correspondence table:"
-msgstr ""
+msgstr "Para migrar consulte la siguiente tabla de correspondencias:"
#: ../Doc/whatsnew/3.12.rst:1569
msgid "``imp.NullImporter``"
-msgstr ""
+msgstr "``imp.NullImporter``"
#: ../Doc/whatsnew/3.12.rst:1569
msgid "Insert ``None`` into ``sys.path_importer_cache``"
-msgstr ""
+msgstr "Inserta ``None`` en ``sys.path_importer_cache``"
#: ../Doc/whatsnew/3.12.rst:1570
msgid "``imp.cache_from_source()``"
-msgstr ""
+msgstr "``imp.cache_from_source()``"
#: ../Doc/whatsnew/3.12.rst:1570
msgid ":func:`importlib.util.cache_from_source`"
-msgstr ""
+msgstr ":func:`importlib.util.cache_from_source`"
#: ../Doc/whatsnew/3.12.rst:1571
msgid "``imp.find_module()``"
-msgstr ""
+msgstr "``imp.find_module()``"
#: ../Doc/whatsnew/3.12.rst:1571
msgid ":func:`importlib.util.find_spec`"
-msgstr ""
+msgstr ":func:`importlib.util.find_spec`"
#: ../Doc/whatsnew/3.12.rst:1572
msgid "``imp.get_magic()``"
-msgstr ""
+msgstr "``imp.get_magic()``"
#: ../Doc/whatsnew/3.12.rst:1572
msgid ":attr:`importlib.util.MAGIC_NUMBER`"
-msgstr ""
+msgstr ":attr:`importlib.util.MAGIC_NUMBER`"
#: ../Doc/whatsnew/3.12.rst:1573
msgid "``imp.get_suffixes()``"
-msgstr ""
+msgstr "``imp.get_suffixes()``"
#: ../Doc/whatsnew/3.12.rst:1573
msgid ""
":attr:`importlib.machinery.SOURCE_SUFFIXES`, :attr:`importlib.machinery."
"EXTENSION_SUFFIXES`, and :attr:`importlib.machinery.BYTECODE_SUFFIXES`"
msgstr ""
+":attr:`importlib.machinery.SOURCE_SUFFIXES`, :attr:`importlib.machinery."
+"EXTENSION_SUFFIXES` y :attr:`importlib.machinery.BYTECODE_SUFFIXES`"
#: ../Doc/whatsnew/3.12.rst:1574
msgid "``imp.get_tag()``"
-msgstr ""
+msgstr "``imp.get_tag()``"
#: ../Doc/whatsnew/3.12.rst:1574
msgid ":attr:`sys.implementation.cache_tag `"
-msgstr ""
+msgstr ":attr:`sys.implementation.cache_tag `"
#: ../Doc/whatsnew/3.12.rst:1575
msgid "``imp.load_module()``"
-msgstr ""
+msgstr "``imp.load_module()``"
#: ../Doc/whatsnew/3.12.rst:1575
msgid ":func:`importlib.import_module`"
-msgstr ""
+msgstr ":func:`importlib.import_module`"
#: ../Doc/whatsnew/3.12.rst:1576
msgid "``imp.new_module(name)``"
-msgstr ""
+msgstr "``imp.new_module(name)``"
#: ../Doc/whatsnew/3.12.rst:1576
msgid "``types.ModuleType(name)``"
-msgstr ""
+msgstr "``types.ModuleType(name)``"
#: ../Doc/whatsnew/3.12.rst:1577
msgid "``imp.reload()``"
-msgstr ""
+msgstr "``imp.reload()``"
#: ../Doc/whatsnew/3.12.rst:1577
msgid ":func:`importlib.reload`"
-msgstr ""
+msgstr ":func:`importlib.reload`"
#: ../Doc/whatsnew/3.12.rst:1578
msgid "``imp.source_from_cache()``"
-msgstr ""
+msgstr "``imp.source_from_cache()``"
#: ../Doc/whatsnew/3.12.rst:1578
msgid ":func:`importlib.util.source_from_cache`"
-msgstr ""
+msgstr ":func:`importlib.util.source_from_cache`"
#: ../Doc/whatsnew/3.12.rst:1579
msgid "``imp.load_source()``"
-msgstr ""
+msgstr "``imp.load_source()``"
#: ../Doc/whatsnew/3.12.rst:1579
msgid "*See below*"
-msgstr ""
+msgstr "*Ver abajo*"
#: ../Doc/whatsnew/3.12.rst:1582
msgid "Replace ``imp.load_source()`` with::"
-msgstr ""
+msgstr "Reemplace ``imp.load_source()`` con::"
#: ../Doc/whatsnew/3.12.rst:1597
msgid "Remove :mod:`!imp` functions and attributes with no replacements:"
-msgstr ""
+msgstr "Elimine las funciones y atributos de :mod:`!imp` sin reemplazos:"
#: ../Doc/whatsnew/3.12.rst:1599
msgid "Undocumented functions:"
-msgstr ""
+msgstr "Funciones no documentadas:"
#: ../Doc/whatsnew/3.12.rst:1601
msgid "``imp.init_builtin()``"
-msgstr ""
+msgstr "``imp.init_builtin()``"
#: ../Doc/whatsnew/3.12.rst:1602
msgid "``imp.load_compiled()``"
-msgstr ""
+msgstr "``imp.load_compiled()``"
#: ../Doc/whatsnew/3.12.rst:1603
msgid "``imp.load_dynamic()``"
-msgstr ""
+msgstr "``imp.load_dynamic()``"
#: ../Doc/whatsnew/3.12.rst:1604
msgid "``imp.load_package()``"
-msgstr ""
+msgstr "``imp.load_package()``"
#: ../Doc/whatsnew/3.12.rst:1606
msgid ""
"``imp.lock_held()``, ``imp.acquire_lock()``, ``imp.release_lock()``: the "
"locking scheme has changed in Python 3.3 to per-module locks."
msgstr ""
+"``imp.lock_held()``, ``imp.acquire_lock()``, ``imp.release_lock()``: el "
+"esquema de bloqueo ha cambiado en Python 3.3 a bloqueos por módulo."
#: ../Doc/whatsnew/3.12.rst:1608
msgid ""
@@ -2421,10 +3222,13 @@ msgid ""
"``PY_COMPILED``, ``C_EXTENSION``, ``PY_RESOURCE``, ``PKG_DIRECTORY``, "
"``C_BUILTIN``, ``PY_FROZEN``, ``PY_CODERESOURCE``, ``IMP_HOOK``."
msgstr ""
+"Constantes ``imp.find_module()``: ``SEARCH_ERROR``, ``PY_SOURCE``, "
+"``PY_COMPILED``, ``C_EXTENSION``, ``PY_RESOURCE``, ``PKG_DIRECTORY``, "
+"``C_BUILTIN``, ``PY_FROZEN``, ``PY_CODERESOURCE``, ``IMP_HOOK``."
#: ../Doc/whatsnew/3.12.rst:1613
msgid "io"
-msgstr ""
+msgstr "io"
#: ../Doc/whatsnew/3.12.rst:1615
msgid ""
@@ -2434,10 +3238,15 @@ msgid ""
"open` is also a static method. (Contributed by Victor Stinner in :gh:"
"`94169`.)"
msgstr ""
+"Elimine ``io.OpenWrapper`` y ``_pyio.OpenWrapper`` de :mod:`io`, obsoletos "
+"en Python 3.10: simplemente use :func:`open` en su lugar. La función :func:"
+"`open` (:func:`io.open`) es una función incorporada. Desde Python 3.10, :"
+"func:`!_pyio.open` también es un método estático. (Aportado por Victor "
+"Stinner en :gh:`94169`.)"
#: ../Doc/whatsnew/3.12.rst:1622
msgid "locale"
-msgstr ""
+msgstr "locale"
#: ../Doc/whatsnew/3.12.rst:1624
msgid ""
@@ -2445,6 +3254,9 @@ msgid ""
"3.7: use :func:`locale.format_string` instead. (Contributed by Victor "
"Stinner in :gh:`94226`.)"
msgstr ""
+"Elimine la función :func:`!locale.format` de :mod:`locale`, obsoleta en "
+"Python 3.7: use :func:`locale.format_string` en su lugar. (Aportado por "
+"Victor Stinner en :gh:`94226`.)"
#: ../Doc/whatsnew/3.12.rst:1628
msgid ""
@@ -2453,26 +3265,34 @@ msgid ""
"module or any other :mod:`asyncio`-based server instead. (Contributed by "
"Oleg Iarygin in :gh:`93243`.)"
msgstr ""
+"``smtpd``: el módulo se eliminó según lo programado en :pep:`594`, ya que "
+"quedó obsoleto en Python 3.4.7 y 3.5.4. Utilice el módulo aiosmtpd_ PyPI o "
+"cualquier otro servidor basado en :mod:`asyncio`. (Contribución de Oleg "
+"Iarygin en :gh:`93243`.)"
#: ../Doc/whatsnew/3.12.rst:1639
msgid ""
"The following undocumented :mod:`sqlite3` features, deprecated in Python "
"3.10, are now removed:"
msgstr ""
+"Las siguientes características :mod:`sqlite3` no documentadas, obsoletas en "
+"Python 3.10, ahora se eliminan:"
#: ../Doc/whatsnew/3.12.rst:1642
msgid "``sqlite3.enable_shared_cache()``"
-msgstr ""
+msgstr "``sqlite3.enable_shared_cache()``"
#: ../Doc/whatsnew/3.12.rst:1643
msgid "``sqlite3.OptimizedUnicode``"
-msgstr ""
+msgstr "``sqlite3.OptimizedUnicode``"
#: ../Doc/whatsnew/3.12.rst:1645
msgid ""
"If a shared cache must be used, open the database in URI mode using the "
"``cache=shared`` query parameter."
msgstr ""
+"Si se debe utilizar una caché compartida, abra la base de datos en modo URI "
+"utilizando el parámetro de consulta ``cache=shared``."
#: ../Doc/whatsnew/3.12.rst:1648
msgid ""
@@ -2481,14 +3301,18 @@ msgid ""
"``OptimizedUnicode`` can either use ``str`` explicitly, or rely on the "
"default value which is also ``str``."
msgstr ""
+"La fábrica de textos ``sqlite3.OptimizedUnicode`` ha sido un alias para :"
+"class:`str` desde Python 3.3. El código que previamente configuró la fábrica "
+"de texto en ``OptimizedUnicode`` puede usar ``str`` explícitamente o confiar "
+"en el valor predeterminado que también es ``str``."
#: ../Doc/whatsnew/3.12.rst:1653
msgid "(Contributed by Erlend E. Aasland in :gh:`92548`.)"
-msgstr ""
+msgstr "(Aportado por Erlend E. Aasland en :gh:`92548`.)"
#: ../Doc/whatsnew/3.12.rst:1656
msgid "ssl"
-msgstr ""
+msgstr "ssl"
#: ../Doc/whatsnew/3.12.rst:1658
msgid ""
@@ -2496,6 +3320,9 @@ msgid ""
"Python 3.6: use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. "
"(Contributed by Victor Stinner in :gh:`94199`.)"
msgstr ""
+"Elimine la función :func:`!ssl.RAND_pseudo_bytes` de :mod:`ssl`, obsoleta en "
+"Python 3.6: use :func:`os.urandom` o :func:`ssl.RAND_bytes` en su lugar. "
+"(Aportado por Victor Stinner en :gh:`94199`.)"
#: ../Doc/whatsnew/3.12.rst:1662
msgid ""
@@ -2504,6 +3331,10 @@ msgid ""
"uses the :func:`!ssl.match_hostname` function. (Contributed by Victor "
"Stinner in :gh:`94199`.)"
msgstr ""
+"Elimine la función :func:`!ssl.match_hostname`. Quedó obsoleto en Python "
+"3.7. OpenSSL realiza coincidencias de nombres de host desde Python 3.7, "
+"Python ya no usa la función :func:`!ssl.match_hostname`. (Aportado por "
+"Victor Stinner en :gh:`94199`.)"
#: ../Doc/whatsnew/3.12.rst:1668
msgid ""
@@ -2515,156 +3346,169 @@ msgid ""
"`_: Improper Certificate "
"Validation. (Contributed by Victor Stinner in :gh:`94199`.)"
msgstr ""
+"Elimine la función :func:`!ssl.wrap_socket`, obsoleta en Python 3.7: en su "
+"lugar, cree un objeto :class:`ssl.SSLContext` y llame a su método :class:"
+"`ssl.SSLContext.wrap_socket`. Cualquier paquete que todavía use :func:`!ssl."
+"wrap_socket` está roto y es inseguro. La función no envía una extensión SNI "
+"TLS ni valida el nombre de host del servidor. El código está sujeto a "
+"`CWE-295 `_: Validación de "
+"certificado incorrecta. (Aportado por Victor Stinner en :gh:`94199`.)"
#: ../Doc/whatsnew/3.12.rst:1680
msgid "Remove many long-deprecated :mod:`unittest` features:"
msgstr ""
+"Elimine muchas características de :mod:`unittest` que están en desuso desde "
+"hace mucho tiempo:"
#: ../Doc/whatsnew/3.12.rst:1684
msgid "A number of :class:`~unittest.TestCase` method aliases:"
-msgstr ""
+msgstr "Varios alias del método :class:`~unittest.TestCase`:"
#: ../Doc/whatsnew/3.12.rst:1687
msgid "Deprecated alias"
-msgstr ""
+msgstr "Alias obsoleto"
#: ../Doc/whatsnew/3.12.rst:1687
msgid "Method Name"
-msgstr ""
+msgstr "Nombre del método"
#: ../Doc/whatsnew/3.12.rst:1687
msgid "Deprecated in"
-msgstr ""
+msgstr "En desuso en"
#: ../Doc/whatsnew/3.12.rst:1689
msgid "``failUnless``"
-msgstr ""
+msgstr "``failUnless``"
#: ../Doc/whatsnew/3.12.rst:1689 ../Doc/whatsnew/3.12.rst:1696
msgid ":meth:`.assertTrue`"
-msgstr ""
+msgstr ":meth:`.assertTrue`"
#: ../Doc/whatsnew/3.12.rst:1689 ../Doc/whatsnew/3.12.rst:1690
#: ../Doc/whatsnew/3.12.rst:1691 ../Doc/whatsnew/3.12.rst:1692
#: ../Doc/whatsnew/3.12.rst:1693 ../Doc/whatsnew/3.12.rst:1694
#: ../Doc/whatsnew/3.12.rst:1695
msgid "3.1"
-msgstr ""
+msgstr "3.1"
#: ../Doc/whatsnew/3.12.rst:1690
msgid "``failIf``"
-msgstr ""
+msgstr "``failIf``"
#: ../Doc/whatsnew/3.12.rst:1690
msgid ":meth:`.assertFalse`"
-msgstr ""
+msgstr ":meth:`.assertFalse`"
#: ../Doc/whatsnew/3.12.rst:1691
msgid "``failUnlessEqual``"
-msgstr ""
+msgstr "``failUnlessEqual``"
#: ../Doc/whatsnew/3.12.rst:1691 ../Doc/whatsnew/3.12.rst:1697
msgid ":meth:`.assertEqual`"
-msgstr ""
+msgstr ":meth:`.assertEqual`"
#: ../Doc/whatsnew/3.12.rst:1692
msgid "``failIfEqual``"
-msgstr ""
+msgstr "``failIfEqual``"
#: ../Doc/whatsnew/3.12.rst:1692 ../Doc/whatsnew/3.12.rst:1698
msgid ":meth:`.assertNotEqual`"
-msgstr ""
+msgstr ":meth:`.assertNotEqual`"
#: ../Doc/whatsnew/3.12.rst:1693
msgid "``failUnlessAlmostEqual``"
-msgstr ""
+msgstr "``failUnlessAlmostEqual``"
#: ../Doc/whatsnew/3.12.rst:1693 ../Doc/whatsnew/3.12.rst:1699
msgid ":meth:`.assertAlmostEqual`"
-msgstr ""
+msgstr ":meth:`.assertAlmostEqual`"
#: ../Doc/whatsnew/3.12.rst:1694
msgid "``failIfAlmostEqual``"
-msgstr ""
+msgstr "``failIfAlmostEqual``"
#: ../Doc/whatsnew/3.12.rst:1694 ../Doc/whatsnew/3.12.rst:1700
msgid ":meth:`.assertNotAlmostEqual`"
-msgstr ""
+msgstr ":meth:`.assertNotAlmostEqual`"
#: ../Doc/whatsnew/3.12.rst:1695
msgid "``failUnlessRaises``"
-msgstr ""
+msgstr "``failUnlessRaises``"
#: ../Doc/whatsnew/3.12.rst:1695
msgid ":meth:`.assertRaises`"
-msgstr ""
+msgstr ":meth:`.assertRaises`"
#: ../Doc/whatsnew/3.12.rst:1696
msgid "``assert_``"
-msgstr ""
+msgstr "``assert_``"
#: ../Doc/whatsnew/3.12.rst:1696 ../Doc/whatsnew/3.12.rst:1697
#: ../Doc/whatsnew/3.12.rst:1698 ../Doc/whatsnew/3.12.rst:1699
#: ../Doc/whatsnew/3.12.rst:1700 ../Doc/whatsnew/3.12.rst:1701
#: ../Doc/whatsnew/3.12.rst:1702
msgid "3.2"
-msgstr ""
+msgstr "3.2"
#: ../Doc/whatsnew/3.12.rst:1697
msgid "``assertEquals``"
-msgstr ""
+msgstr "``assertEquals``"
#: ../Doc/whatsnew/3.12.rst:1698
msgid "``assertNotEquals``"
-msgstr ""
+msgstr "``assertNotEquals``"
#: ../Doc/whatsnew/3.12.rst:1699
msgid "``assertAlmostEquals``"
-msgstr ""
+msgstr "``assertAlmostEquals``"
#: ../Doc/whatsnew/3.12.rst:1700
msgid "``assertNotAlmostEquals``"
-msgstr ""
+msgstr "``assertNotAlmostEquals``"
#: ../Doc/whatsnew/3.12.rst:1701
msgid "``assertRegexpMatches``"
-msgstr ""
+msgstr "``assertRegexpMatches``"
#: ../Doc/whatsnew/3.12.rst:1701
msgid ":meth:`.assertRegex`"
-msgstr ""
+msgstr ":meth:`.assertRegex`"
#: ../Doc/whatsnew/3.12.rst:1702
msgid "``assertRaisesRegexp``"
-msgstr ""
+msgstr "``assertRaisesRegexp``"
#: ../Doc/whatsnew/3.12.rst:1702
msgid ":meth:`.assertRaisesRegex`"
-msgstr ""
+msgstr ":meth:`.assertRaisesRegex`"
#: ../Doc/whatsnew/3.12.rst:1703
msgid "``assertNotRegexpMatches``"
-msgstr ""
+msgstr "``assertNotRegexpMatches``"
#: ../Doc/whatsnew/3.12.rst:1703
msgid ":meth:`.assertNotRegex`"
-msgstr ""
+msgstr ":meth:`.assertNotRegex`"
#: ../Doc/whatsnew/3.12.rst:1703
msgid "3.5"
-msgstr ""
+msgstr "3.5"
#: ../Doc/whatsnew/3.12.rst:1706
msgid ""
"You can use https://github.com/isidentical/teyit to automatically modernise "
"your unit tests."
msgstr ""
+"Puede utilizar https://github.com/isidentical/teyit para modernizar "
+"automáticamente sus pruebas unitarias."
#: ../Doc/whatsnew/3.12.rst:1709
msgid ""
"Undocumented and broken :class:`~unittest.TestCase` method "
"``assertDictContainsSubset`` (deprecated in Python 3.2)."
msgstr ""
+"Método ``assertDictContainsSubset`` de :class:`~unittest.TestCase` "
+"indocumentado y roto (obsoleto en Python 3.2)."
#: ../Doc/whatsnew/3.12.rst:1712
msgid ""
@@ -2672,20 +3516,25 @@ msgid ""
"loadTestsFromModule>` parameter *use_load_tests* (deprecated and ignored "
"since Python 3.2)."
msgstr ""
+"Parámetro :meth:`TestLoader.loadTestsFromModule ` no documentado *use_load_tests* (obsoleto e ignorado "
+"desde Python 3.2)."
#: ../Doc/whatsnew/3.12.rst:1716
msgid ""
"An alias of the :class:`~unittest.TextTestResult` class: ``_TextTestResult`` "
"(deprecated in Python 3.2)."
msgstr ""
+"Un alias de la clase :class:`~unittest.TextTestResult`: ``_TextTestResult`` "
+"(obsoleto en Python 3.2)."
#: ../Doc/whatsnew/3.12.rst:1719
msgid "(Contributed by Serhiy Storchaka in :gh:`89325`.)"
-msgstr ""
+msgstr "(Contribución de Serhiy Storchaka en :gh:`89325`.)"
#: ../Doc/whatsnew/3.12.rst:1722
msgid "webbrowser"
-msgstr ""
+msgstr "webbrowser"
#: ../Doc/whatsnew/3.12.rst:1724
msgid ""
@@ -2693,10 +3542,14 @@ msgid ""
"browsers include: Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, "
"Firebird, and Firefox versions 35 and below (:gh:`102871`)."
msgstr ""
+"Elimina la compatibilidad con navegadores obsoletos de :mod:`webbrowser`. "
+"Los navegadores eliminados incluyen: Grail, Mosaic, Netscape, Galeon, "
+"Skipstone, Iceape, Firebird y Firefox versiones 35 e inferiores (:gh:"
+"`102871`)."
#: ../Doc/whatsnew/3.12.rst:1729
msgid "xml.etree.ElementTree"
-msgstr ""
+msgstr "xml.etree.ElementTree"
#: ../Doc/whatsnew/3.12.rst:1731
msgid ""
@@ -2706,10 +3559,15 @@ msgid ""
"no ``copy()`` method, only a ``__copy__()`` method. (Contributed by Victor "
"Stinner in :gh:`94383`.)"
msgstr ""
+"Elimine el método ``ElementTree.Element.copy()`` de la implementación pura "
+"de Python, obsoleto en Python 3.10, use la función :func:`copy.copy` en su "
+"lugar. La implementación C de :mod:`xml.etree.ElementTree` no tiene ningún "
+"método ``copy()``, solo un método ``__copy__()``. (Aportado por Victor "
+"Stinner en :gh:`94383`.)"
#: ../Doc/whatsnew/3.12.rst:1738
msgid "zipimport"
-msgstr ""
+msgstr "zipimport"
#: ../Doc/whatsnew/3.12.rst:1740
msgid ""
@@ -2717,10 +3575,14 @@ msgid ""
"deprecated in Python 3.10: use the ``find_spec()`` method instead. See :pep:"
"`451` for the rationale. (Contributed by Victor Stinner in :gh:`94379`.)"
msgstr ""
+"Elimine los métodos ``find_loader()`` y ``find_module()`` de :mod:"
+"`zipimport`, obsoletos en Python 3.10: use el método ``find_spec()`` en su "
+"lugar. Consulte :pep:`451` para conocer el fundamento. (Aportado por Victor "
+"Stinner en :gh:`94379`.)"
#: ../Doc/whatsnew/3.12.rst:1746
msgid "Others"
-msgstr ""
+msgstr "Otros"
#: ../Doc/whatsnew/3.12.rst:1748
msgid ""
@@ -2729,6 +3591,10 @@ msgid ""
"com/sphinx-contrib/sphinx-lint>`_. (Contributed by Julien Palard in :gh:"
"`98179`.)"
msgstr ""
+"Elimine la regla ``suspicious`` de la documentación :file:`Makefile` y :file:"
+"`Doc/tools/rstlint.py`, ambas a favor de `sphinx-lint `_. (Contribución de Julien Palard en :gh:"
+"`98179`.)"
#: ../Doc/whatsnew/3.12.rst:1753
msgid ""
@@ -2739,20 +3605,27 @@ msgid ""
"(*ssl_context* in :mod:`imaplib`) instead. (Contributed by Victor Stinner "
"in :gh:`94172`.)"
msgstr ""
+"Elimine los parámetros *keyfile* y *certfile* de los módulos :mod:`ftplib`, :"
+"mod:`imaplib`, :mod:`poplib` y :mod:`smtplib`, y los parámetros *key_file*, "
+"*cert_file* y *check_hostname* del módulo :mod:`http.client`, todos "
+"obsoletos desde Python 3.6. Utilice el parámetro *context* (*ssl_context* "
+"en :mod:`imaplib`) en su lugar. (Aportado por Victor Stinner en :gh:`94172`.)"
#: ../Doc/whatsnew/3.12.rst:1764 ../Doc/whatsnew/3.12.rst:2079
msgid "Porting to Python 3.12"
-msgstr ""
+msgstr "Portar a Python 3.12"
#: ../Doc/whatsnew/3.12.rst:1766
msgid ""
"This section lists previously described changes and other bugfixes that may "
"require changes to your code."
msgstr ""
+"Esta sección enumera los cambios descritos anteriormente y otras "
+"correcciones de errores que pueden requerir cambios en su código."
#: ../Doc/whatsnew/3.12.rst:1770
msgid "Changes in the Python API"
-msgstr ""
+msgstr "Cambios en la API de Python"
#: ../Doc/whatsnew/3.12.rst:1772
msgid ""
@@ -2762,6 +3635,12 @@ msgid ""
"strings can now only contain ASCII letters and digits and underscore. "
"(Contributed by Serhiy Storchaka in :gh:`91760`.)"
msgstr ""
+"Ahora se aplican reglas más estrictas para las referencias numéricas de "
+"grupos y los nombres de grupos en expresiones regulares. Ahora sólo se "
+"acepta como referencia numérica la secuencia de dígitos ASCII. El nombre del "
+"grupo en patrones de bytes y cadenas de reemplazo ahora solo puede contener "
+"letras y dígitos ASCII y guiones bajos. (Contribución de Serhiy Storchaka "
+"en :gh:`91760`.)"
#: ../Doc/whatsnew/3.12.rst:1779
msgid ""
@@ -2774,6 +3653,14 @@ msgid ""
"``randrange(10**25)``. (Originally suggested by Serhiy Storchaka :gh:"
"`86388`.)"
msgstr ""
+"Elimine la funcionalidad ``randrange()`` en desuso desde Python 3.10. "
+"Anteriormente, ``randrange(10.0)`` se convertía sin pérdidas a "
+"``randrange(10)``. Ahora, genera un :exc:`TypeError`. Además, la excepción "
+"planteada para valores no enteros como ``randrange(10.5)`` o "
+"``randrange('10')`` se cambió de :exc:`ValueError` a :exc:`TypeError`. Esto "
+"también evita errores en los que ``randrange(1e25)`` seleccionaría "
+"silenciosamente de un rango mayor que ``randrange(10**25)``. (Originalmente "
+"sugerido por Serhiy Storchaka :gh:`86388`.)"
#: ../Doc/whatsnew/3.12.rst:1787
msgid ""
@@ -2784,6 +3671,13 @@ msgid ""
"handler`. Argument files should be encoded in UTF-8 instead of ANSI Codepage "
"on Windows."
msgstr ""
+":class:`argparse.ArgumentParser` cambió la codificación y el controlador de "
+"errores para leer argumentos de un archivo (por ejemplo, la opción "
+"``fromfile_prefix_chars``) de la codificación de texto predeterminada (por "
+"ejemplo, :func:`locale.getpreferredencoding(False) `) a :term:`filesystem encoding and error handler`. Los "
+"archivos de argumentos deben codificarse en UTF-8 en lugar de en la página "
+"de códigos ANSI en Windows."
#: ../Doc/whatsnew/3.12.rst:1793
msgid ""
@@ -2791,6 +3685,9 @@ msgid ""
"and 3.5.4. A recommended replacement is the :mod:`asyncio`-based aiosmtpd_ "
"PyPI module."
msgstr ""
+"Elimine el módulo ``smtpd`` basado en ``asyncore`` que está en desuso en "
+"Python 3.4.7 y 3.5.4. Un reemplazo recomendado es el módulo aiosmtpd_ PyPI "
+"basado en :mod:`asyncio`."
#: ../Doc/whatsnew/3.12.rst:1797
msgid ""
@@ -2798,6 +3695,9 @@ msgid ""
"exception, rather than reading :data:`sys.stdin`. The feature was deprecated "
"in Python 3.9. (Contributed by Victor Stinner in :gh:`94352`.)"
msgstr ""
+":func:`shlex.split`: Pasar ``None`` por el argumento *s* ahora genera una "
+"excepción, en lugar de leer :data:`sys.stdin`. La característica quedó "
+"obsoleta en Python 3.9. (Aportado por Victor Stinner en :gh:`94352`.)"
#: ../Doc/whatsnew/3.12.rst:1802
msgid ""
@@ -2806,6 +3706,9 @@ msgid ""
"type is accepted for bytes strings. (Contributed by Victor Stinner in :gh:"
"`98393`.)"
msgstr ""
+"El módulo :mod:`os` ya no acepta rutas tipo bytes, como los tipos :class:"
+"`bytearray` y :class:`memoryview`: solo se acepta el tipo exacto :class:"
+"`bytes` para cadenas de bytes. (Aportado por Victor Stinner en :gh:`98393`.)"
#: ../Doc/whatsnew/3.12.rst:1807
msgid ""
@@ -2818,6 +3721,15 @@ msgid ""
"process-global resources, which are best managed from the main interpreter. "
"(Contributed by Donghee Na in :gh:`99127`.)"
msgstr ""
+":func:`syslog.openlog` y :func:`syslog.closelog` ahora fallan si se usan en "
+"subintérpretes. :func:`syslog.syslog` aún se puede usar en subintérpretes, "
+"pero ahora solo si :func:`syslog.openlog` ya ha sido llamado en el "
+"intérprete principal. Estas nuevas restricciones no se aplican al intérprete "
+"principal, por lo que sólo un conjunto muy pequeño de usuarios podría verse "
+"afectado. Este cambio ayuda con el aislamiento del intérprete. Además, :mod:"
+"`syslog` es un contenedor de recursos globales de procesos, que se "
+"administran mejor desde el intérprete principal. (Aportado por Donghee Na "
+"en :gh:`99127`.)"
#: ../Doc/whatsnew/3.12.rst:1816
msgid ""
@@ -2830,6 +3742,17 @@ msgid ""
"fine. If synchronization is needed, implement locking within the cached "
"property getter function or around multi-threaded access points."
msgstr ""
+"Se elimina el comportamiento de bloqueo no documentado de :func:`~functools."
+"cached_property`, porque bloqueaba todas las instancias de la clase, lo que "
+"generaba una alta contención de bloqueo. Esto significa que una función de "
+"obtención de propiedades almacenadas en caché ahora podría ejecutarse más de "
+"una vez para una sola instancia, si dos subprocesos se ejecutan. Para la "
+"mayoría de las propiedades almacenadas en caché simples (por ejemplo, "
+"aquellas que son idempotentes y simplemente calculan un valor en función de "
+"otros atributos de la instancia), esto estará bien. Si se necesita "
+"sincronización, implemente el bloqueo dentro de la función de obtención de "
+"propiedades en caché o alrededor de puntos de acceso de subprocesos "
+"múltiples."
#: ../Doc/whatsnew/3.12.rst:1829
msgid ""
@@ -2837,6 +3760,10 @@ msgid ""
"unpack_archive`, pass the *filter* argument to limit features that may be "
"surprising or dangerous. See :ref:`tarfile-extraction-filter` for details."
msgstr ""
+"Al extraer archivos tar usando :mod:`tarfile` o :func:`shutil."
+"unpack_archive`, pase el argumento *filter* para limitar las funciones que "
+"pueden resultar sorprendentes o peligrosas. Consulte :ref:`tarfile-"
+"extraction-filter` para obtener más detalles."
#: ../Doc/whatsnew/3.12.rst:1834
msgid ""
@@ -2849,44 +3776,65 @@ msgid ""
"tokenization in the expression components. For example for the f-string "
"``f\"start {1+1} end\"`` the old version of the tokenizer emitted::"
msgstr ""
+"La salida de las funciones :func:`tokenize.tokenize` y :func:`tokenize."
+"generate_tokens` ahora cambia debido a los cambios introducidos en :pep:"
+"`701`. Esto significa que los tokens ``STRING`` ya no se emiten para cadenas "
+"f y los tokens descritos en :pep:`701` ahora se producen en su lugar: "
+"``FSTRING_START``, ``FSTRING_MIDDLE`` y ``FSTRING_END`` ahora se emiten para "
+"partes de \"cadena\" de cadena f además de los tokens apropiados para la "
+"tokenización. en los componentes de la expresión. Por ejemplo, para la "
+"cadena f ``f\"start {1+1} end\"``, la versión anterior del tokenizador "
+"emitió::"
#: ../Doc/whatsnew/3.12.rst:1845
msgid "while the new version emits::"
-msgstr ""
+msgstr "mientras que la nueva versión emite::"
#: ../Doc/whatsnew/3.12.rst:1857
msgid ""
"Additionally, there may be some minor behavioral changes as a consequence of "
"the changes required to support :pep:`701`. Some of these changes include:"
msgstr ""
+"Además, puede haber algunos cambios de comportamiento menores como "
+"consecuencia de los cambios necesarios para admitir :pep:`701`. Algunos de "
+"estos cambios incluyen:"
#: ../Doc/whatsnew/3.12.rst:1860
msgid ""
"The ``type`` attribute of the tokens emitted when tokenizing some invalid "
"Python characters such as ``!`` has changed from ``ERRORTOKEN`` to ``OP``."
msgstr ""
+"El atributo ``type`` de los tokens emitidos al tokenizar algunos caracteres "
+"de Python no válidos, como ``!``, ha cambiado de ``ERRORTOKEN`` a ``OP``."
#: ../Doc/whatsnew/3.12.rst:1863
msgid ""
"Incomplete single-line strings now also raise :exc:`tokenize.TokenError` as "
"incomplete multiline strings do."
msgstr ""
+"Las cadenas incompletas de una sola línea ahora también generan :exc:"
+"`tokenize.TokenError` como lo hacen las cadenas incompletas de varias líneas."
#: ../Doc/whatsnew/3.12.rst:1866
msgid ""
"Some incomplete or invalid Python code now raises :exc:`tokenize.TokenError` "
"instead of returning arbitrary ``ERRORTOKEN`` tokens when tokenizing it."
msgstr ""
+"Algún código Python incompleto o no válido ahora genera :exc:`tokenize."
+"TokenError` en lugar de devolver tokens ``ERRORTOKEN`` arbitrarios al "
+"tokenizarlo."
#: ../Doc/whatsnew/3.12.rst:1869
msgid ""
"Mixing tabs and spaces as indentation in the same file is not supported "
"anymore and will raise a :exc:`TabError`."
msgstr ""
+"Ya no se admite la combinación de tabulaciones y espacios como sangría en el "
+"mismo archivo y generará un :exc:`TabError`."
#: ../Doc/whatsnew/3.12.rst:1873
msgid "Build Changes"
-msgstr ""
+msgstr "Cambios de compilación"
#: ../Doc/whatsnew/3.12.rst:1875
msgid ""
@@ -2896,6 +3844,12 @@ msgid ""
"config`` and fall back to manual detection. (Contributed by Christian Heimes "
"in :gh:`93939`.)"
msgstr ""
+"Python ya no usa :file:`setup.py` para crear módulos de extensión C "
+"compartidos. Los parámetros de compilación, como encabezados y bibliotecas, "
+"se detectan en el script ``configure``. Las extensiones están construidas "
+"por :file:`Makefile`. La mayoría de las extensiones usan ``pkg-config`` y "
+"recurren a la detección manual. (Aportado por Christian Heimes en :gh:"
+"`93939`.)"
#: ../Doc/whatsnew/3.12.rst:1881
msgid ""
@@ -2903,6 +3857,9 @@ msgid ""
"required to build Python. ``va_start()`` is no longer called with a single "
"parameter. (Contributed by Kumar Aditya in :gh:`93207`.)"
msgstr ""
+"Ahora se requiere ``va_start()`` con dos parámetros, como ``va_start(args, "
+"format),``, para compilar Python. ``va_start()`` ya no se llama con un solo "
+"parámetro. (Aportado por Kumar Aditya en :gh:`93207`.)"
#: ../Doc/whatsnew/3.12.rst:1886
msgid ""
@@ -2910,6 +3867,9 @@ msgid ""
"policy if the Clang compiler accepts the flag. (Contributed by Donghee Na "
"in :gh:`89536`.)"
msgstr ""
+"CPython ahora usa la opción ThinLTO como política predeterminada de "
+"optimización del tiempo de enlace si el compilador Clang acepta la marca. "
+"(Aportado por Donghee Na en :gh:`89536`.)"
#: ../Doc/whatsnew/3.12.rst:1890
msgid ""
@@ -2919,45 +3879,54 @@ msgid ""
"optimization levels (0, 1, 2) at once. (Contributed by Victor Stinner in :gh:"
"`99289`.)"
msgstr ""
+"Agregado la variable ``COMPILEALL_OPTS`` en :file:`Makefile` para anular las "
+"opciones de :mod:`compileall` (predeterminada: ``-j0``) en ``make install``. "
+"También fusionó los 3 comandos ``compileall`` en un solo comando para crear "
+"archivos .pyc para todos los niveles de optimización (0, 1, 2) a la vez. "
+"(Aportado por Victor Stinner en :gh:`99289`.)"
#: ../Doc/whatsnew/3.12.rst:1896
msgid "Add platform triplets for 64-bit LoongArch:"
-msgstr ""
+msgstr "Agregado tripletes de plataforma para LoongArch de 64 bits:"
#: ../Doc/whatsnew/3.12.rst:1898
msgid "loongarch64-linux-gnusf"
-msgstr ""
+msgstr "loongarch64-linux-gnusf"
#: ../Doc/whatsnew/3.12.rst:1899
msgid "loongarch64-linux-gnuf32"
-msgstr ""
+msgstr "loongarch64-linux-gnuf32"
#: ../Doc/whatsnew/3.12.rst:1900
msgid "loongarch64-linux-gnu"
-msgstr ""
+msgstr "loongarch64-linux-gnu"
#: ../Doc/whatsnew/3.12.rst:1902
msgid "(Contributed by Zhang Na in :gh:`90656`.)"
-msgstr ""
+msgstr "(Aportado por Zhang Na en :gh:`90656`.)"
#: ../Doc/whatsnew/3.12.rst:1904
msgid "``PYTHON_FOR_REGEN`` now require Python 3.10 or newer."
-msgstr ""
+msgstr "``PYTHON_FOR_REGEN`` ahora requiere Python 3.10 o posterior."
#: ../Doc/whatsnew/3.12.rst:1906
msgid ""
"Autoconf 2.71 and aclocal 1.16.4 is now required to regenerate :file:`!"
"configure`. (Contributed by Christian Heimes in :gh:`89886`.)"
msgstr ""
+"Ahora se requieren Autoconf 2.71 y aclocal 1.16.4 para regenerar :file:`!"
+"configure`. (Aportado por Christian Heimes en :gh:`89886`.)"
#: ../Doc/whatsnew/3.12.rst:1910
msgid ""
"Windows builds and macOS installers from python.org now use OpenSSL 3.0."
msgstr ""
+"Las compilaciones de Windows y los instaladores de macOS de python.org ahora "
+"usan OpenSSL 3.0."
#: ../Doc/whatsnew/3.12.rst:1914
msgid "C API Changes"
-msgstr ""
+msgstr "Cambios en la API de C"
#: ../Doc/whatsnew/3.12.rst:1921
msgid ""
@@ -2966,66 +3935,84 @@ msgid ""
"change in each minor release of CPython without deprecation warnings. Its "
"contents are marked by the ``PyUnstable_`` prefix in names."
msgstr ""
+":pep:`697`: presente :ref:`Unstable C API tier `, destinado "
+"a herramientas de bajo nivel como depuradores y compiladores JIT. Esta API "
+"puede cambiar en cada versión menor de CPython sin advertencias de "
+"obsolescencia. Su contenido está marcado con el prefijo ``PyUnstable_`` en "
+"los nombres."
#: ../Doc/whatsnew/3.12.rst:1927
msgid "Code object constructors:"
-msgstr ""
+msgstr "Constructores de objetos de código:"
#: ../Doc/whatsnew/3.12.rst:1929
msgid "``PyUnstable_Code_New()`` (renamed from ``PyCode_New``)"
-msgstr ""
+msgstr "``PyUnstable_Code_New()`` (renombrado de ``PyCode_New``)"
#: ../Doc/whatsnew/3.12.rst:1930
msgid ""
"``PyUnstable_Code_NewWithPosOnlyArgs()`` (renamed from "
"``PyCode_NewWithPosOnlyArgs``)"
msgstr ""
+"``PyUnstable_Code_NewWithPosOnlyArgs()`` (renombrado de "
+"``PyCode_NewWithPosOnlyArgs``)"
#: ../Doc/whatsnew/3.12.rst:1932
msgid "Extra storage for code objects (:pep:`523`):"
-msgstr ""
+msgstr "Almacenamiento adicional para objetos de código (:pep:`523`):"
#: ../Doc/whatsnew/3.12.rst:1934
msgid ""
"``PyUnstable_Eval_RequestCodeExtraIndex()`` (renamed from "
"``_PyEval_RequestCodeExtraIndex``)"
msgstr ""
+"``PyUnstable_Eval_RequestCodeExtraIndex()`` (renombrado de "
+"``_PyEval_RequestCodeExtraIndex``)"
#: ../Doc/whatsnew/3.12.rst:1935
msgid "``PyUnstable_Code_GetExtra()`` (renamed from ``_PyCode_GetExtra``)"
-msgstr ""
+msgstr "``PyUnstable_Code_GetExtra()`` (renombrado de ``_PyCode_GetExtra``)"
#: ../Doc/whatsnew/3.12.rst:1936
msgid "``PyUnstable_Code_SetExtra()`` (renamed from ``_PyCode_SetExtra``)"
-msgstr ""
+msgstr "``PyUnstable_Code_SetExtra()`` (renombrado de ``_PyCode_SetExtra``)"
#: ../Doc/whatsnew/3.12.rst:1938
msgid ""
"The original names will continue to be available until the respective API "
"changes."
msgstr ""
+"Los nombres originales seguirán estando disponibles hasta que cambie la API "
+"respectiva."
#: ../Doc/whatsnew/3.12.rst:1941
msgid "(Contributed by Petr Viktorin in :gh:`101101`.)"
-msgstr ""
+msgstr "(Aportado por Petr Viktorin en :gh:`101101`.)"
#: ../Doc/whatsnew/3.12.rst:1943
msgid ""
":pep:`697`: Add an API for extending types whose instance memory layout is "
"opaque:"
msgstr ""
+":pep:`697`: agregue una API para extender tipos cuyo diseño de memoria de "
+"instancia es opaco:"
#: ../Doc/whatsnew/3.12.rst:1946
msgid ""
":c:member:`PyType_Spec.basicsize` can be zero or negative to specify "
"inheriting or extending the base class size."
msgstr ""
+":c:member:`PyType_Spec.basicsize` puede ser cero o negativo para especificar "
+"heredar o ampliar el tamaño de la clase base."
#: ../Doc/whatsnew/3.12.rst:1948
msgid ""
":c:func:`PyObject_GetTypeData` and :c:func:`PyType_GetTypeDataSize` added to "
"allow access to subclass-specific instance data."
msgstr ""
+"Se agregaron :c:func:`PyObject_GetTypeData` y :c:func:"
+"`PyType_GetTypeDataSize` para permitir el acceso a datos de instancia "
+"específicos de subclase."
#: ../Doc/whatsnew/3.12.rst:1950
msgid ""
@@ -3033,16 +4020,21 @@ msgid ""
"to allow safely extending certain variable-sized types, including :c:var:"
"`PyType_Type`."
msgstr ""
+"Se agregaron :c:macro:`Py_TPFLAGS_ITEMS_AT_END` y :c:func:"
+"`PyObject_GetItemData` para permitir extender de forma segura ciertos tipos "
+"de tamaño variable, incluido :c:var:`PyType_Type`."
#: ../Doc/whatsnew/3.12.rst:1953
msgid ""
":c:macro:`Py_RELATIVE_OFFSET` added to allow defining :c:type:`members "
"` in terms of a subclass-specific struct."
msgstr ""
+"Se agregó :c:macro:`Py_RELATIVE_OFFSET` para permitir definir :c:type:"
+"`members ` en términos de una estructura específica de subclase."
#: ../Doc/whatsnew/3.12.rst:1956
msgid "(Contributed by Petr Viktorin in :gh:`103509`.)"
-msgstr ""
+msgstr "(Aportado por Petr Viktorin en :gh:`103509`.)"
#: ../Doc/whatsnew/3.12.rst:1958
msgid ""
@@ -3051,28 +4043,34 @@ msgid ""
"`PyType_FromModuleAndSpec` using an additional metaclass argument. "
"(Contributed by Wenzel Jakob in :gh:`93012`.)"
msgstr ""
+"Agregado la nueva función :ref:`limited C API ` :c:func:"
+"`PyType_FromMetaclass`, que generaliza el :c:func:`PyType_FromModuleAndSpec` "
+"existente utilizando un argumento de metaclase adicional. (Aportado por "
+"Wenzel Jakob en :gh:`93012`.)"
#: ../Doc/whatsnew/3.12.rst:1963
msgid ""
"API for creating objects that can be called using :ref:`the vectorcall "
"protocol ` was added to the :ref:`Limited API `:"
msgstr ""
+"Se agregó API para crear objetos que se pueden llamar usando :ref:`the "
+"vectorcall protocol ` a :ref:`Limited API `:"
#: ../Doc/whatsnew/3.12.rst:1967
msgid ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`"
-msgstr ""
+msgstr ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`"
#: ../Doc/whatsnew/3.12.rst:1968
msgid ":c:func:`PyVectorcall_NARGS`"
-msgstr ""
+msgstr ":c:func:`PyVectorcall_NARGS`"
#: ../Doc/whatsnew/3.12.rst:1969
msgid ":c:func:`PyVectorcall_Call`"
-msgstr ""
+msgstr ":c:func:`PyVectorcall_Call`"
#: ../Doc/whatsnew/3.12.rst:1970
msgid ":c:type:`vectorcallfunc`"
-msgstr ""
+msgstr ":c:type:`vectorcallfunc`"
#: ../Doc/whatsnew/3.12.rst:1972
msgid ""
@@ -3084,6 +4082,13 @@ msgid ""
"``Py_TPFLAGS_HAVE_VECTORCALL`` flag. (Contributed by Petr Viktorin in :gh:"
"`93274`.)"
msgstr ""
+"El indicador :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` ahora se elimina de una "
+"clase cuando se reasigna el método :py:meth:`~object.__call__` de la clase. "
+"Esto hace que vectorcall sea seguro de usar con tipos mutables (es decir, "
+"tipos de montón sin el indicador inmutable, :c:macro:"
+"`Py_TPFLAGS_IMMUTABLETYPE`). Los tipos mutables que no anulan :c:member:"
+"`~PyTypeObject.tp_call` ahora heredan el indicador "
+"``Py_TPFLAGS_HAVE_VECTORCALL``. (Aportado por Petr Viktorin en :gh:`93274`.)"
#: ../Doc/whatsnew/3.12.rst:1980
msgid ""
@@ -3092,24 +4097,30 @@ msgid ""
"classes to support object ``__dict__`` and weakrefs with less bookkeeping, "
"using less memory and with faster access."
msgstr ""
+"Se han agregado los indicadores :c:macro:`Py_TPFLAGS_MANAGED_DICT` y :c:"
+"macro:`Py_TPFLAGS_MANAGED_WEAKREF`. Esto permite que las clases de "
+"extensiones admitan el objeto ``__dict__`` y las referencias débiles con "
+"menos contabilidad, usando menos memoria y con un acceso más rápido."
#: ../Doc/whatsnew/3.12.rst:1985
msgid ""
"API for performing calls using :ref:`the vectorcall protocol ` "
"was added to the :ref:`Limited API `:"
msgstr ""
+"Se agregó API para realizar llamadas usando :ref:`the vectorcall protocol "
+"` a :ref:`Limited API `:"
#: ../Doc/whatsnew/3.12.rst:1989
msgid ":c:func:`PyObject_Vectorcall`"
-msgstr ""
+msgstr ":c:func:`PyObject_Vectorcall`"
#: ../Doc/whatsnew/3.12.rst:1990
msgid ":c:func:`PyObject_VectorcallMethod`"
-msgstr ""
+msgstr ":c:func:`PyObject_VectorcallMethod`"
#: ../Doc/whatsnew/3.12.rst:1991
msgid ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`"
-msgstr ""
+msgstr ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`"
#: ../Doc/whatsnew/3.12.rst:1993
msgid ""
@@ -3117,6 +4128,9 @@ msgid ""
"protocol are now available in the :ref:`Limited API `. (Contributed "
"by Wenzel Jakob in :gh:`98586`.)"
msgstr ""
+"Esto significa que tanto el extremo entrante como el saliente del protocolo "
+"de llamada vectorial ahora están disponibles en el :ref:`Limited API "
+"`. (Aportado por Wenzel Jakob en :gh:`98586`.)"
#: ../Doc/whatsnew/3.12.rst:1997
msgid ""
@@ -3125,6 +4139,11 @@ msgid ""
"functions in all running threads in addition to the calling one. "
"(Contributed by Pablo Galindo in :gh:`93503`.)"
msgstr ""
+"Agregado dos nuevas funciones públicas, :c:func:"
+"`PyEval_SetProfileAllThreads` y :c:func:`PyEval_SetTraceAllThreads`, que "
+"permiten configurar funciones de seguimiento y creación de perfiles en todos "
+"los subprocesos en ejecución además del que realiza la llamada. (Aportado "
+"por Pablo Galindo en :gh:`93503`.)"
#: ../Doc/whatsnew/3.12.rst:2003
msgid ""
@@ -3132,6 +4151,9 @@ msgid ""
"the vectorcall field of a given :c:type:`PyFunctionObject`. (Contributed by "
"Andrew Frost in :gh:`92257`.)"
msgstr ""
+"Agregado la nueva función :c:func:`PyFunction_SetVectorcall` a la API de C "
+"que establece el campo de llamada vectorial de un :c:type:`PyFunctionObject` "
+"determinado. (Aportado por Andrew Frost en :gh:`92257`.)"
#: ../Doc/whatsnew/3.12.rst:2007
msgid ""
@@ -3141,6 +4163,11 @@ msgid ""
"interpreters, JIT compilers, or debuggers. (Contributed by Carl Meyer in :gh:"
"`91052`.)"
msgstr ""
+"La API de C ahora permite registrar devoluciones de llamada a través de :c:"
+"func:`PyDict_AddWatcher`, :c:func:`PyDict_Watch` y API relacionadas para ser "
+"llamadas cada vez que se modifica un diccionario. Está pensado para "
+"optimizar intérpretes, compiladores JIT o depuradores. (Aportado por Carl "
+"Meyer en :gh:`91052`.)"
#: ../Doc/whatsnew/3.12.rst:2013
msgid ""
@@ -3148,6 +4175,9 @@ msgid ""
"callbacks to receive notification on changes to a type. (Contributed by Carl "
"Meyer in :gh:`91051`.)"
msgstr ""
+"Agregado las API :c:func:`PyType_AddWatcher` y :c:func:`PyType_Watch` para "
+"registrar devoluciones de llamadas y recibir notificaciones sobre cambios en "
+"un tipo. (Aportado por Carl Meyer en :gh:`91051`.)"
#: ../Doc/whatsnew/3.12.rst:2017
msgid ""
@@ -3155,6 +4185,10 @@ msgid ""
"register callbacks to receive notification on creation and destruction of "
"code objects. (Contributed by Itamar Oren in :gh:`91054`.)"
msgstr ""
+"Agregado las API :c:func:`PyCode_AddWatcher` y :c:func:`PyCode_ClearWatcher` "
+"para registrar devoluciones de llamadas y recibir notificaciones sobre la "
+"creación y destrucción de objetos de código. (Aportado por Itamar Oren en :"
+"gh:`91054`.)"
#: ../Doc/whatsnew/3.12.rst:2022
msgid ""
@@ -3162,6 +4196,9 @@ msgid ""
"get a frame variable by its name. (Contributed by Victor Stinner in :gh:"
"`91248`.)"
msgstr ""
+"Agregado las funciones :c:func:`PyFrame_GetVar` y :c:func:"
+"`PyFrame_GetVarString` para obtener una variable de marco por su nombre. "
+"(Aportado por Victor Stinner en :gh:`91248`.)"
#: ../Doc/whatsnew/3.12.rst:2026
msgid ""
@@ -3172,6 +4209,12 @@ msgid ""
"`PyErr_Restore`. This is less error prone and a bit more efficient. "
"(Contributed by Mark Shannon in :gh:`101578`.)"
msgstr ""
+"Agregado :c:func:`PyErr_GetRaisedException` y :c:func:"
+"`PyErr_SetRaisedException` para guardar y restaurar la excepción actual. "
+"Estas funciones devuelven y aceptan un único objeto de excepción, en lugar "
+"de los argumentos triples de los ahora obsoletos :c:func:`PyErr_Fetch` y :c:"
+"func:`PyErr_Restore`. Esto es menos propenso a errores y un poco más "
+"eficiente. (Aportado por Mark Shannon en :gh:`101578`.)"
#: ../Doc/whatsnew/3.12.rst:2034
msgid ""
@@ -3179,6 +4222,9 @@ msgid ""
"replace the legacy-API ``_PyErr_ChainExceptions``, which is now deprecated. "
"(Contributed by Mark Shannon in :gh:`101578`.)"
msgstr ""
+"Agregado ``_PyErr_ChainExceptions1``, que toma una instancia de excepción, "
+"para reemplazar la API heredada ``_PyErr_ChainExceptions``, que ahora está "
+"en desuso. (Aportado por Mark Shannon en :gh:`101578`.)"
#: ../Doc/whatsnew/3.12.rst:2038
msgid ""
@@ -3187,6 +4233,10 @@ msgid ""
"args` passed to the exception's constructor. (Contributed by Mark Shannon "
"in :gh:`101578`.)"
msgstr ""
+"Agregado :c:func:`PyException_GetArgs` y :c:func:`PyException_SetArgs` como "
+"funciones convenientes para recuperar y modificar el :attr:`~BaseException."
+"args` pasado al constructor de la excepción. (Aportado por Mark Shannon en :"
+"gh:`101578`.)"
#: ../Doc/whatsnew/3.12.rst:2043
msgid ""
@@ -3194,63 +4244,78 @@ msgid ""
"replace the legacy-api :c:func:`!PyErr_Display`. (Contributed by Irit "
"Katriel in :gh:`102755`)."
msgstr ""
+"Agregado :c:func:`PyErr_DisplayException`, que toma una instancia de "
+"excepción, para reemplazar la API heredada :c:func:`!PyErr_Display`. "
+"(Aportado por Irit Katriel en :gh:`102755`)."
#: ../Doc/whatsnew/3.12.rst:2049
msgid ""
":pep:`683`: Introduce *Immortal Objects*, which allows objects to bypass "
"reference counts, and related changes to the C-API:"
msgstr ""
+":pep:`683`: presente *Immortal Objects*, que permite que los objetos omitan "
+"los recuentos de referencias y los cambios relacionados en C-API:"
#: ../Doc/whatsnew/3.12.rst:2052
msgid "``_Py_IMMORTAL_REFCNT``: The reference count that defines an object"
msgstr ""
+"``_Py_IMMORTAL_REFCNT``: el recuento de referencias que define un objeto"
#: ../Doc/whatsnew/3.12.rst:2053
msgid "as immortal."
-msgstr ""
+msgstr "como inmortal."
#: ../Doc/whatsnew/3.12.rst:2054
msgid ""
"``_Py_IsImmortal`` Checks if an object has the immortal reference count."
msgstr ""
+"``_Py_IsImmortal`` Comprueba si un objeto tiene el recuento de referencia "
+"inmortal."
#: ../Doc/whatsnew/3.12.rst:2055
msgid "``PyObject_HEAD_INIT`` This will now initialize reference count to"
msgstr ""
+"``PyObject_HEAD_INIT`` Esto ahora inicializará el recuento de referencias"
#: ../Doc/whatsnew/3.12.rst:2056
msgid "``_Py_IMMORTAL_REFCNT`` when used with ``Py_BUILD_CORE``."
-msgstr ""
+msgstr "``_Py_IMMORTAL_REFCNT`` cuando se utiliza con ``Py_BUILD_CORE``."
#: ../Doc/whatsnew/3.12.rst:2057
msgid "``SSTATE_INTERNED_IMMORTAL`` An identifier for interned unicode objects"
msgstr ""
+"``SSTATE_INTERNED_IMMORTAL`` Un identificador para objetos Unicode internos"
#: ../Doc/whatsnew/3.12.rst:2058
msgid "that are immortal."
-msgstr ""
+msgstr "que son inmortales."
#: ../Doc/whatsnew/3.12.rst:2059
msgid "``SSTATE_INTERNED_IMMORTAL_STATIC`` An identifier for interned unicode"
msgstr ""
+"``SSTATE_INTERNED_IMMORTAL_STATIC`` Un identificador para Unicode interno"
#: ../Doc/whatsnew/3.12.rst:2060
msgid "objects that are immortal and static"
-msgstr ""
+msgstr "Objetos inmortales y estáticos."
#: ../Doc/whatsnew/3.12.rst:2063
msgid "``sys.getunicodeinternedsize`` This returns the total number of unicode"
msgstr ""
+"``sys.getunicodeinternedsize`` Esto devuelve el número total de Unicode"
#: ../Doc/whatsnew/3.12.rst:2062
msgid ""
"objects that have been interned. This is now needed for :file:`refleak.py` "
"to correctly track reference counts and allocated blocks"
msgstr ""
+"objetos que han sido internados. Esto ahora es necesario para que :file:"
+"`refleak.py` rastree correctamente los recuentos de referencia y los bloques "
+"asignados."
#: ../Doc/whatsnew/3.12.rst:2065
msgid "(Contributed by Eddie Elizondo in :gh:`84436`.)"
-msgstr ""
+msgstr "(Contribuido por Eddie Elizondo en :gh:`84436`.)"
#: ../Doc/whatsnew/3.12.rst:2067
msgid ""
@@ -3259,6 +4324,10 @@ msgid ""
"with their own GILs. (See :ref:`whatsnew312-pep684` for more info.) "
"(Contributed by Eric Snow in :gh:`104110`.)"
msgstr ""
+":pep:`684`: agregue la nueva función :c:func:`Py_NewInterpreterFromConfig` "
+"y :c:type:`PyInterpreterConfig`, que pueden usarse para crear subintérpretes "
+"con sus propios GIL. (Consulte :ref:`whatsnew312-pep684` para obtener más "
+"información). (Contribución de Eric Snow en :gh:`104110`.)"
#: ../Doc/whatsnew/3.12.rst:2073
msgid ""
@@ -3266,12 +4335,18 @@ msgid ""
"`Py_DECREF` functions are now implemented as opaque function calls to hide "
"implementation details. (Contributed by Victor Stinner in :gh:`105387`.)"
msgstr ""
+"En la versión limitada de C API 3.12, las funciones :c:func:`Py_INCREF` y :c:"
+"func:`Py_DECREF` ahora se implementan como llamadas de función opacas para "
+"ocultar los detalles de implementación. (Aportado por Victor Stinner en :gh:"
+"`105387`.)"
#: ../Doc/whatsnew/3.12.rst:2081
msgid ""
"Legacy Unicode APIs based on ``Py_UNICODE*`` representation has been "
"removed. Please migrate to APIs based on UTF-8 or ``wchar_t*``."
msgstr ""
+"Se han eliminado las API Unicode heredadas basadas en la representación "
+"``Py_UNICODE*``. Migre a API basadas en UTF-8 o ``wchar_t*``."
#: ../Doc/whatsnew/3.12.rst:2084
msgid ""
@@ -3279,6 +4354,9 @@ msgid ""
"``Py_UNICODE*`` based format (e.g. ``u``, ``Z``) anymore. Please migrate to "
"other formats for Unicode like ``s``, ``z``, ``es``, and ``U``."
msgstr ""
+"Las funciones de análisis de argumentos como :c:func:`PyArg_ParseTuple` ya "
+"no admiten el formato basado en ``Py_UNICODE*`` (por ejemplo, ``u``, ``Z``). "
+"Migre a otros formatos para Unicode como ``s``, ``z``, ``es`` y ``U``."
#: ../Doc/whatsnew/3.12.rst:2088
msgid ""
@@ -3288,6 +4366,12 @@ msgid ""
"breakage, consider using the existing public C-API instead, or, if "
"necessary, the (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro."
msgstr ""
+"``tp_weaklist`` para todos los tipos integrados estáticos siempre es "
+"``NULL``. Este es un campo solo interno en ``PyTypeObject``, pero señalamos "
+"el cambio en caso de que alguien acceda al campo directamente de todos "
+"modos. Para evitar roturas, considere utilizar la C-API pública existente o, "
+"si es necesario, la macro ``_PyObject_GET_WEAKREFS_LISTPTR()`` (solo "
+"interna)."
#: ../Doc/whatsnew/3.12.rst:2095
msgid ""
@@ -3296,12 +4380,18 @@ msgid ""
"this. We mention this in case someone happens to be accessing the internal-"
"only field directly."
msgstr ""
+"Es posible que este :c:member:`PyTypeObject.tp_subclasses` solo interno ya "
+"no sea un puntero de objeto válido. Su tipo se cambió a :c:expr:`void *` "
+"para reflejar esto. Mencionamos esto en caso de que alguien acceda "
+"directamente al campo interno."
#: ../Doc/whatsnew/3.12.rst:2100
msgid ""
"To get a list of subclasses, call the Python method :py:meth:`~class."
"__subclasses__` (using :c:func:`PyObject_CallMethod`, for example)."
msgstr ""
+"Para obtener una lista de subclases, llame al método Python :py:meth:`~class."
+"__subclasses__` (usando :c:func:`PyObject_CallMethod`, por ejemplo)."
#: ../Doc/whatsnew/3.12.rst:2104
msgid ""
@@ -3311,6 +4401,11 @@ msgid ""
"and :c:func:`PyUnicode_FromFormatV`. (Contributed by Serhiy Storchaka in :gh:"
"`98836`.)"
msgstr ""
+"Agregado soporte para más opciones de formato (alineación a la izquierda, "
+"octales, hexadecimales en mayúsculas, cadenas :c:type:`intmax_t`, :c:type:"
+"`ptrdiff_t`, :c:type:`wchar_t` C, ancho variable y precisión) en :c:func:"
+"`PyUnicode_FromFormat` y :c:func:`PyUnicode_FromFormatV`. (Aportado por "
+"Serhiy Storchaka en :gh:`98836`.)"
#: ../Doc/whatsnew/3.12.rst:2110
msgid ""
@@ -3320,12 +4415,20 @@ msgid ""
"the result string, and any extra arguments discarded. (Contributed by Serhiy "
"Storchaka in :gh:`95781`.)"
msgstr ""
+"Un carácter de formato no reconocido en :c:func:`PyUnicode_FromFormat` y :c:"
+"func:`PyUnicode_FromFormatV` ahora establece un :exc:`SystemError`. En "
+"versiones anteriores, provocaba que el resto de la cadena de formato se "
+"copiara tal cual en la cadena de resultado y se descartaran los argumentos "
+"adicionales. (Aportado por Serhiy Storchaka en :gh:`95781`.)"
#: ../Doc/whatsnew/3.12.rst:2116
msgid ""
"Fix wrong sign placement in :c:func:`PyUnicode_FromFormat` and :c:func:"
"`PyUnicode_FromFormatV`. (Contributed by Philip Georgi in :gh:`95504`.)"
msgstr ""
+"Se corrigió la ubicación incorrecta de los letreros en :c:func:"
+"`PyUnicode_FromFormat` y :c:func:`PyUnicode_FromFormatV`. (Aportado por "
+"Philip Georgi en :gh:`95504`.)"
#: ../Doc/whatsnew/3.12.rst:2120
msgid ""
@@ -3340,6 +4443,16 @@ msgid ""
"traverse and clear their instance's dictionaries. To clear weakrefs, call :c:"
"func:`PyObject_ClearWeakRefs`, as before."
msgstr ""
+"Las clases de extensión que deseen agregar un ``__dict__`` o una ranura de "
+"referencia débil deben usar :c:macro:`Py_TPFLAGS_MANAGED_DICT` y :c:macro:"
+"`Py_TPFLAGS_MANAGED_WEAKREF` en lugar de ``tp_dictoffset`` y "
+"``tp_weaklistoffset``, respectivamente. El uso de ``tp_dictoffset`` y "
+"``tp_weaklistoffset`` aún se admite, pero no es totalmente compatible con la "
+"herencia múltiple (:gh:`95589`) y el rendimiento puede ser peor. Las clases "
+"que declaran :c:macro:`Py_TPFLAGS_MANAGED_DICT` deben llamar a :c:func:`!"
+"_PyObject_VisitManagedDict` y :c:func:`!_PyObject_ClearManagedDict` para "
+"recorrer y borrar los diccionarios de su instancia. Para borrar referencias "
+"débiles, llame a :c:func:`PyObject_ClearWeakRefs`, como antes."
#: ../Doc/whatsnew/3.12.rst:2132
msgid ""
@@ -3348,6 +4461,10 @@ msgid ""
"exact :class:`bytes` type is accepted for bytes strings. (Contributed by "
"Victor Stinner in :gh:`98393`.)"
msgstr ""
+"La función :c:func:`PyUnicode_FSDecoder` ya no acepta rutas de tipo bytes, "
+"como los tipos :class:`bytearray` y :class:`memoryview`: solo se acepta el "
+"tipo :class:`bytes` exacto para cadenas de bytes. (Aportado por Victor "
+"Stinner en :gh:`98393`.)"
#: ../Doc/whatsnew/3.12.rst:2137
msgid ""
@@ -3356,6 +4473,10 @@ msgid ""
"effects, these side effects are no longer duplicated. (Contributed by Victor "
"Stinner in :gh:`98724`.)"
msgstr ""
+"Las macros :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` y :c:macro:`Py_XSETREF` "
+"ahora solo evalúan sus argumentos una vez. Si un argumento tiene efectos "
+"secundarios, estos efectos secundarios ya no se duplican. (Aportado por "
+"Victor Stinner en :gh:`98724`.)"
#: ../Doc/whatsnew/3.12.rst:2142
msgid ""
@@ -3364,6 +4485,10 @@ msgid ""
"that set the error indicator now normalize the exception before storing it. "
"(Contributed by Mark Shannon in :gh:`101578`.)"
msgstr ""
+"El indicador de error del intérprete ahora siempre está normalizado. Esto "
+"significa que :c:func:`PyErr_SetObject`, :c:func:`PyErr_SetString` y las "
+"otras funciones que configuran el indicador de error ahora normalizan la "
+"excepción antes de almacenarla. (Aportado por Mark Shannon en :gh:`101578`.)"
#: ../Doc/whatsnew/3.12.rst:2147
msgid ""
@@ -3372,24 +4497,30 @@ msgid ""
"debug builds. If you happen to be using it then you'll need to start using "
"``_Py_GetGlobalRefTotal()``."
msgstr ""
+"``_Py_RefTotal`` ya no tiene autoridad y solo se conserva por compatibilidad "
+"con ABI. Tenga en cuenta que es un global interno y solo está disponible en "
+"compilaciones de depuración. Si lo está utilizando, deberá comenzar a "
+"utilizar ``_Py_GetGlobalRefTotal()``."
#: ../Doc/whatsnew/3.12.rst:2152
msgid ""
"The following functions now select an appropriate metaclass for the newly "
"created type:"
msgstr ""
+"Las siguientes funciones ahora seleccionan una metaclase apropiada para el "
+"tipo recién creado:"
#: ../Doc/whatsnew/3.12.rst:2155
msgid ":c:func:`PyType_FromSpec`"
-msgstr ""
+msgstr ":c:func:`PyType_FromSpec`"
#: ../Doc/whatsnew/3.12.rst:2156
msgid ":c:func:`PyType_FromSpecWithBases`"
-msgstr ""
+msgstr ":c:func:`PyType_FromSpecWithBases`"
#: ../Doc/whatsnew/3.12.rst:2157
msgid ":c:func:`PyType_FromModuleAndSpec`"
-msgstr ""
+msgstr ":c:func:`PyType_FromModuleAndSpec`"
#: ../Doc/whatsnew/3.12.rst:2159
msgid ""
@@ -3398,6 +4529,10 @@ msgid ""
"functions ignore ``tp_new`` of the metaclass, possibly allowing incomplete "
"initialization."
msgstr ""
+"La creación de clases cuya metaclase anule :c:member:`~PyTypeObject.tp_new` "
+"está en desuso y en Python 3.14+ no estará permitida. Tenga en cuenta que "
+"estas funciones ignoran ``tp_new`` de la metaclase, lo que posiblemente "
+"permita una inicialización incompleta."
#: ../Doc/whatsnew/3.12.rst:2164
msgid ""
@@ -3405,6 +4540,9 @@ msgid ""
"disallows creating classes whose metaclass overrides ``tp_new`` (:meth:"
"`~object.__new__` in Python)."
msgstr ""
+"Tenga en cuenta que :c:func:`PyType_FromMetaclass` (agregado en Python 3.12) "
+"ya no permite la creación de clases cuya metaclase anule ``tp_new`` (:meth:"
+"`~object.__new__` en Python)."
#: ../Doc/whatsnew/3.12.rst:2168
msgid ""
@@ -3414,16 +4552,24 @@ msgid ""
"since (meta)classes assume that ``tp_new`` was called. There is no simple "
"general workaround. One of the following may work for you:"
msgstr ""
+"Dado que ``tp_new`` anula casi todo lo que hacen las funciones "
+"``PyType_From*``, las dos son incompatibles entre sí. El comportamiento "
+"existente (ignorar la metaclase durante varios pasos de la creación de "
+"tipos) no es seguro en general, ya que las (meta)clases suponen que se llamó "
+"a ``tp_new``. No existe una solución general sencilla. Uno de los siguientes "
+"puede funcionar para usted:"
#: ../Doc/whatsnew/3.12.rst:2175
msgid "If you control the metaclass, avoid using ``tp_new`` in it:"
-msgstr ""
+msgstr "Si controlas la metaclase, evita usar ``tp_new`` en ella:"
#: ../Doc/whatsnew/3.12.rst:2177
msgid ""
"If initialization can be skipped, it can be done in :c:member:`~PyTypeObject."
"tp_init` instead."
msgstr ""
+"Si se puede omitir la inicialización, se puede realizar en :c:member:"
+"`~PyTypeObject.tp_init`."
#: ../Doc/whatsnew/3.12.rst:2179
msgid ""
@@ -3432,6 +4578,10 @@ msgid ""
"`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag. This makes it acceptable for "
"``PyType_From*`` functions."
msgstr ""
+"Si no es necesario crear una instancia de la metaclase desde Python, "
+"configure su ``tp_new`` en ``NULL`` usando el indicador :c:macro:"
+"`Py_TPFLAGS_DISALLOW_INSTANTIATION`. Esto lo hace aceptable para funciones "
+"``PyType_From*``."
#: ../Doc/whatsnew/3.12.rst:2184
msgid ""
@@ -3439,12 +4589,17 @@ msgid ""
"(slots or setting the instance size), create types by :ref:`calling ` "
"the metaclass."
msgstr ""
+"Evite las funciones ``PyType_From*``: si no necesita funciones específicas "
+"de C (ranuras o configuración del tamaño de la instancia), cree tipos "
+"mediante la metaclase :ref:`calling `."
#: ../Doc/whatsnew/3.12.rst:2188
msgid ""
"If you *know* the ``tp_new`` can be skipped safely, filter the deprecation "
"warning out using :func:`warnings.catch_warnings` from Python."
msgstr ""
+"Si *know* puede omitir ``tp_new`` de forma segura, filtre la advertencia de "
+"obsolescencia usando :func:`warnings.catch_warnings` de Python."
#: ../Doc/whatsnew/3.12.rst:2191
msgid ""
@@ -3453,6 +4608,11 @@ msgid ""
"because clients generally rely on process-wide global state (since these "
"callbacks have no way of recovering extension module state)."
msgstr ""
+":c:var:`PyOS_InputHook` y :c:var:`PyOS_ReadlineFunctionPointer` ya no se "
+"llaman en :ref:`subinterpreters `. Esto se debe a "
+"que los clientes generalmente dependen del estado global de todo el proceso "
+"(ya que estas devoluciones de llamada no tienen forma de recuperar el estado "
+"del módulo de extensión)."
#: ../Doc/whatsnew/3.12.rst:2196
msgid ""
@@ -3460,6 +4620,9 @@ msgid ""
"a subinterpreter that they don't support (or haven't yet been loaded in). "
"See :gh:`104668` for more info."
msgstr ""
+"Esto también evita situaciones en las que las extensiones pueden encontrarse "
+"ejecutándose en un subintérprete que no admiten (o que aún no se han "
+"cargado). Consulte :gh:`104668` para obtener más información."
#: ../Doc/whatsnew/3.12.rst:2200
msgid ""
@@ -3471,14 +4634,21 @@ msgid ""
"efficient access to the value of :c:struct:`PyLongObject`\\s which fit into "
"a single machine word:"
msgstr ""
+":c:struct:`PyLongObject` ha tenido cambios internos para un mejor "
+"rendimiento. Aunque las partes internas de :c:struct:`PyLongObject` son "
+"privadas, algunos módulos de extensión las utilizan. Ya no se debe acceder "
+"directamente a los campos internos, sino que se deben utilizar las funciones "
+"API que comienzan con ``PyLong_...``. Se proporcionan dos nuevas funciones "
+"API *unstable* para un acceso eficiente al valor de :c:struct:"
+"`PyLongObject`\\s que cabe en una sola palabra de máquina:"
#: ../Doc/whatsnew/3.12.rst:2208
msgid ":c:func:`PyUnstable_Long_IsCompact`"
-msgstr ""
+msgstr ":c:func:`PyUnstable_Long_IsCompact`"
#: ../Doc/whatsnew/3.12.rst:2209
msgid ":c:func:`PyUnstable_Long_CompactValue`"
-msgstr ""
+msgstr ":c:func:`PyUnstable_Long_CompactValue`"
#: ../Doc/whatsnew/3.12.rst:2211
msgid ""
@@ -3488,6 +4658,12 @@ msgid ""
"allocator is not already thread-safe and you need guidance then please "
"create a new GitHub issue and CC ``@ericsnowcurrently``."
msgstr ""
+"Ahora se requiere que los asignadores personalizados, configurados a través "
+"de :c:func:`PyMem_SetAllocator`, sean seguros para subprocesos, "
+"independientemente del dominio de memoria. Los asignadores que no tienen su "
+"propio estado, incluidos los \"ganchos\", no se ven afectados. Si su "
+"asignador personalizado aún no es seguro para subprocesos y necesita "
+"orientación, cree una nueva incidencia en GitHub y CC ``@ericsnowcurrently``."
#: ../Doc/whatsnew/3.12.rst:2221
msgid ""
@@ -3497,182 +4673,223 @@ msgid ""
"in Python 3.14. (Contributed by Ramvikrams and Kumar Aditya in :gh:`101193`. "
"PEP by Ken Jin.)"
msgstr ""
+"De acuerdo con :pep:`699`, el campo ``ma_version_tag`` en :c:type:"
+"`PyDictObject` está obsoleto para los módulos de extensión. Acceder a este "
+"campo generará una advertencia del compilador en el momento de la "
+"compilación. Este campo se eliminará en Python 3.14. (Contribución de "
+"Ramvikrams y Kumar Aditya en :gh:`101193`. PEP de Ken Jin.)"
#: ../Doc/whatsnew/3.12.rst:2226
msgid "Deprecate global configuration variable:"
-msgstr ""
+msgstr "Variable de configuración global obsoleta:"
#: ../Doc/whatsnew/3.12.rst:2228 ../Doc/whatsnew/3.12.rst:2313
msgid ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`"
-msgstr ""
+msgstr ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`"
#: ../Doc/whatsnew/3.12.rst:2229 ../Doc/whatsnew/3.12.rst:2314
msgid ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`"
-msgstr ""
+msgstr ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`"
#: ../Doc/whatsnew/3.12.rst:2230 ../Doc/whatsnew/3.12.rst:2315
msgid ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`"
-msgstr ""
+msgstr ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`"
#: ../Doc/whatsnew/3.12.rst:2231 ../Doc/whatsnew/3.12.rst:2316
msgid ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`"
-msgstr ""
+msgstr ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`"
#: ../Doc/whatsnew/3.12.rst:2232 ../Doc/whatsnew/3.12.rst:2317
msgid ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`"
-msgstr ""
+msgstr ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`"
#: ../Doc/whatsnew/3.12.rst:2233 ../Doc/whatsnew/3.12.rst:2318
msgid ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`"
-msgstr ""
+msgstr ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`"
#: ../Doc/whatsnew/3.12.rst:2234 ../Doc/whatsnew/3.12.rst:2319
msgid ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`"
-msgstr ""
+msgstr ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`"
#: ../Doc/whatsnew/3.12.rst:2235 ../Doc/whatsnew/3.12.rst:2320
msgid ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`"
-msgstr ""
+msgstr ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`"
#: ../Doc/whatsnew/3.12.rst:2236 ../Doc/whatsnew/3.12.rst:2321
msgid ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`"
-msgstr ""
+msgstr ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`"
#: ../Doc/whatsnew/3.12.rst:2237 ../Doc/whatsnew/3.12.rst:2322
msgid ""
":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`"
msgstr ""
+":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`"
#: ../Doc/whatsnew/3.12.rst:2238 ../Doc/whatsnew/3.12.rst:2323
msgid ""
":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`"
msgstr ""
+":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`"
#: ../Doc/whatsnew/3.12.rst:2239 ../Doc/whatsnew/3.12.rst:2324
msgid ""
":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`"
msgstr ""
+":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`"
#: ../Doc/whatsnew/3.12.rst:2240 ../Doc/whatsnew/3.12.rst:2325
msgid ""
":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`"
msgstr ""
+":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`"
#: ../Doc/whatsnew/3.12.rst:2241 ../Doc/whatsnew/3.12.rst:2326
msgid ""
":c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` "
"and :c:member:`PyConfig.hash_seed`"
msgstr ""
+":c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` y :"
+"c:member:`PyConfig.hash_seed`"
#: ../Doc/whatsnew/3.12.rst:2243 ../Doc/whatsnew/3.12.rst:2328
msgid ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`"
-msgstr ""
+msgstr ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`"
#: ../Doc/whatsnew/3.12.rst:2244 ../Doc/whatsnew/3.12.rst:2329
msgid ""
":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig."
"legacy_windows_fs_encoding`"
msgstr ""
+":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig."
+"legacy_windows_fs_encoding`"
#: ../Doc/whatsnew/3.12.rst:2245 ../Doc/whatsnew/3.12.rst:2330
msgid ""
":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig."
"legacy_windows_stdio`"
msgstr ""
+":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig."
+"legacy_windows_stdio`"
#: ../Doc/whatsnew/3.12.rst:2246 ../Doc/whatsnew/3.12.rst:2331
msgid ""
":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig."
"filesystem_encoding`"
msgstr ""
+":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig."
+"filesystem_encoding`"
#: ../Doc/whatsnew/3.12.rst:2247 ../Doc/whatsnew/3.12.rst:2332
msgid ""
":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig."
"filesystem_encoding`"
msgstr ""
+":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig."
+"filesystem_encoding`"
#: ../Doc/whatsnew/3.12.rst:2248 ../Doc/whatsnew/3.12.rst:2333
msgid ""
":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig."
"filesystem_errors`"
msgstr ""
+":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig."
+"filesystem_errors`"
#: ../Doc/whatsnew/3.12.rst:2249 ../Doc/whatsnew/3.12.rst:2334
msgid ""
":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:"
"`Py_PreInitialize`)"
msgstr ""
+":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (ver :c:func:"
+"`Py_PreInitialize`)"
#: ../Doc/whatsnew/3.12.rst:2251
msgid ""
"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:"
"`PyConfig` instead. (Contributed by Victor Stinner in :gh:`77782`.)"
msgstr ""
+"La API :c:func:`Py_InitializeFromConfig` debe usarse con :c:type:`PyConfig` "
+"en su lugar. (Aportado por Victor Stinner en :gh:`77782`.)"
#: ../Doc/whatsnew/3.12.rst:2255
msgid ""
"Creating :c:data:`immutable types ` with mutable "
"bases is deprecated and will be disabled in Python 3.14. (:gh:`95388`)"
msgstr ""
+"La creación de :c:data:`immutable types ` con "
+"bases mutables está obsoleta y se deshabilitará en Python 3.14. (:gh:`95388`)"
#: ../Doc/whatsnew/3.12.rst:2258
msgid ""
"The :file:`structmember.h` header is deprecated, though it continues to be "
"available and there are no plans to remove it."
msgstr ""
+"El encabezado :file:`structmember.h` está en desuso, aunque sigue estando "
+"disponible y no hay planes para eliminarlo."
#: ../Doc/whatsnew/3.12.rst:2261
msgid ""
"Its contents are now available just by including :file:`Python.h`, with a "
"``Py`` prefix added if it was missing:"
msgstr ""
+"Su contenido ahora está disponible simplemente incluyendo :file:`Python.h`, "
+"con un prefijo ``Py`` agregado si faltara:"
#: ../Doc/whatsnew/3.12.rst:2264
msgid ""
":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` and :c:func:"
"`PyMember_SetOne`"
msgstr ""
+":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` y :c:func:"
+"`PyMember_SetOne`"
#: ../Doc/whatsnew/3.12.rst:2266
msgid ""
"Type macros like :c:macro:`Py_T_INT`, :c:macro:`Py_T_DOUBLE`, etc. "
"(previously ``T_INT``, ``T_DOUBLE``, etc.)"
msgstr ""
+"Escriba macros como :c:macro:`Py_T_INT`, :c:macro:`Py_T_DOUBLE`, etc. "
+"(anteriormente ``T_INT``, ``T_DOUBLE``, etc.)"
#: ../Doc/whatsnew/3.12.rst:2268
msgid ""
"The flags :c:macro:`Py_READONLY` (previously ``READONLY``) and :c:macro:"
"`Py_AUDIT_READ` (previously all uppercase)"
msgstr ""
+"Las banderas :c:macro:`Py_READONLY` (anteriormente ``READONLY``) y :c:macro:"
+"`Py_AUDIT_READ` (anteriormente todas en mayúsculas)"
#: ../Doc/whatsnew/3.12.rst:2271
msgid "Several items are not exposed from :file:`Python.h`:"
-msgstr ""
+msgstr "Varios elementos no están expuestos desde :file:`Python.h`:"
#: ../Doc/whatsnew/3.12.rst:2273
msgid ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)"
-msgstr ""
+msgstr ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)"
#: ../Doc/whatsnew/3.12.rst:2274
msgid ":c:macro:`T_NONE` (previously undocumented, and pretty quirky)"
-msgstr ""
+msgstr ":c:macro:`T_NONE` (anteriormente indocumentado y bastante peculiar)"
#: ../Doc/whatsnew/3.12.rst:2275
msgid "The macro ``WRITE_RESTRICTED`` which does nothing."
-msgstr ""
+msgstr "La macro ``WRITE_RESTRICTED`` que no hace nada."
#: ../Doc/whatsnew/3.12.rst:2276
msgid ""
"The macros ``RESTRICTED`` and ``READ_RESTRICTED``, equivalents of :c:macro:"
"`Py_AUDIT_READ`."
msgstr ""
+"Las macros ``RESTRICTED`` y ``READ_RESTRICTED``, equivalentes a :c:macro:"
+"`Py_AUDIT_READ`."
#: ../Doc/whatsnew/3.12.rst:2278
msgid ""
"In some configurations, ```` is not included from :file:`Python."
"h`. It should be included manually when using ``offsetof()``."
msgstr ""
+"En algunas configuraciones, ```` no se incluye en :file:`Python."
+"h`. Debe incluirse manualmente cuando se utiliza ``offsetof()``."
#: ../Doc/whatsnew/3.12.rst:2281
msgid ""
@@ -3680,12 +4897,18 @@ msgid ""
"original names. Your old code can stay unchanged, unless the extra include "
"and non-namespaced macros bother you greatly."
msgstr ""
+"El encabezado obsoleto continúa proporcionando su contenido original con los "
+"nombres originales. Su código antiguo puede permanecer sin cambios, a menos "
+"que las macros de inclusión y sin espacio de nombres adicionales le molesten "
+"mucho."
#: ../Doc/whatsnew/3.12.rst:2286
msgid ""
"(Contributed in :gh:`47146` by Petr Viktorin, based on earlier work by "
"Alexander Belopolsky and Matthias Braun.)"
msgstr ""
+"(Contribuido en :gh:`47146` por Petr Viktorin, basado en trabajos anteriores "
+"de Alexander Belopolsky y Matthias Braun.)"
#: ../Doc/whatsnew/3.12.rst:2289
msgid ""
@@ -3693,18 +4916,27 @@ msgid ""
"func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException` "
"instead. (Contributed by Mark Shannon in :gh:`101578`.)"
msgstr ""
+":c:func:`PyErr_Fetch` y :c:func:`PyErr_Restore` están en desuso. Utilice :c:"
+"func:`PyErr_GetRaisedException` y :c:func:`PyErr_SetRaisedException` en su "
+"lugar. (Aportado por Mark Shannon en :gh:`101578`.)"
#: ../Doc/whatsnew/3.12.rst:2294
msgid ""
":c:func:`!PyErr_Display` is deprecated. Use :c:func:`PyErr_DisplayException` "
"instead. (Contributed by Irit Katriel in :gh:`102755`)."
msgstr ""
+":c:func:`!PyErr_Display` está en desuso. Utilice :c:func:"
+"`PyErr_DisplayException` en su lugar. (Aportado por Irit Katriel en :gh:"
+"`102755`)."
#: ../Doc/whatsnew/3.12.rst:2297
msgid ""
"``_PyErr_ChainExceptions`` is deprecated. Use ``_PyErr_ChainExceptions1`` "
"instead. (Contributed by Irit Katriel in :gh:`102192`.)"
msgstr ""
+"``_PyErr_ChainExceptions`` está en desuso. Utilice "
+"``_PyErr_ChainExceptions1`` en su lugar. (Aportado por Irit Katriel en :gh:"
+"`102192`.)"
#: ../Doc/whatsnew/3.12.rst:2300
msgid ""
@@ -3712,185 +4944,216 @@ msgid ""
"func:`PyType_FromModuleAndSpec` to create a class whose metaclass overrides :"
"c:member:`~PyTypeObject.tp_new` is deprecated. Call the metaclass instead."
msgstr ""
+"El uso de :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` o :c:"
+"func:`PyType_FromModuleAndSpec` para crear una clase cuya metaclase anula :c:"
+"member:`~PyTypeObject.tp_new` está en desuso. En su lugar, llame a la "
+"metaclase."
#: ../Doc/whatsnew/3.12.rst:2308
msgid ""
"The ``ma_version_tag`` field in :c:type:`PyDictObject` for extension modules "
"(:pep:`699`; :gh:`101193`)."
msgstr ""
+"El campo ``ma_version_tag`` en :c:type:`PyDictObject` para módulos de "
+"extensión (:pep:`699`; :gh:`101193`)."
#: ../Doc/whatsnew/3.12.rst:2311
msgid "Global configuration variables:"
-msgstr ""
+msgstr "Variables de configuración globales:"
#: ../Doc/whatsnew/3.12.rst:2336
msgid ""
"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:"
"`PyConfig` instead."
msgstr ""
+"La API :c:func:`Py_InitializeFromConfig` debe usarse con :c:type:`PyConfig` "
+"en su lugar."
#: ../Doc/whatsnew/3.12.rst:2339
msgid ""
"Creating :c:data:`immutable types ` with mutable "
"bases (:gh:`95388`)."
msgstr ""
+"Creando :c:data:`immutable types ` con bases "
+"mutables (:gh:`95388`)."
#: ../Doc/whatsnew/3.12.rst:2343
msgid "Pending Removal in Python 3.15"
-msgstr ""
+msgstr "Eliminación pendiente en Python 3.15"
#: ../Doc/whatsnew/3.12.rst:2345
msgid ""
":c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule`"
msgstr ""
+":c:func:`PyImport_ImportModuleNoBlock`: utilizar :c:func:"
+"`PyImport_ImportModule`"
#: ../Doc/whatsnew/3.12.rst:2346
msgid ":c:type:`!Py_UNICODE_WIDE` type: use :c:type:`wchar_t`"
-msgstr ""
+msgstr "Tipo :c:type:`!Py_UNICODE_WIDE`: use :c:type:`wchar_t`"
#: ../Doc/whatsnew/3.12.rst:2347
msgid ":c:type:`Py_UNICODE` type: use :c:type:`wchar_t`"
-msgstr ""
+msgstr "Tipo :c:type:`Py_UNICODE`: use :c:type:`wchar_t`"
#: ../Doc/whatsnew/3.12.rst:2348
msgid "Python initialization functions:"
-msgstr ""
+msgstr "Funciones de inicialización de Python:"
#: ../Doc/whatsnew/3.12.rst:2350
msgid ""
":c:func:`PySys_ResetWarnOptions`: clear :data:`sys.warnoptions` and :data:`!"
"warnings.filters`"
msgstr ""
+":c:func:`PySys_ResetWarnOptions`: borrar :data:`sys.warnoptions` y :data:`!"
+"warnings.filters`"
#: ../Doc/whatsnew/3.12.rst:2352
msgid ":c:func:`Py_GetExecPrefix`: get :data:`sys.exec_prefix`"
-msgstr ""
+msgstr ":c:func:`Py_GetExecPrefix`: obtener :data:`sys.exec_prefix`"
#: ../Doc/whatsnew/3.12.rst:2353
msgid ":c:func:`Py_GetPath`: get :data:`sys.path`"
-msgstr ""
+msgstr ":c:func:`Py_GetPath`: obtener :data:`sys.path`"
#: ../Doc/whatsnew/3.12.rst:2354
msgid ":c:func:`Py_GetPrefix`: get :data:`sys.prefix`"
-msgstr ""
+msgstr ":c:func:`Py_GetPrefix`: obtener :data:`sys.prefix`"
#: ../Doc/whatsnew/3.12.rst:2355
msgid ":c:func:`Py_GetProgramFullPath`: get :data:`sys.executable`"
-msgstr ""
+msgstr ":c:func:`Py_GetProgramFullPath`: obtener :data:`sys.executable`"
#: ../Doc/whatsnew/3.12.rst:2356
msgid ":c:func:`Py_GetProgramName`: get :data:`sys.executable`"
-msgstr ""
+msgstr ":c:func:`Py_GetProgramName`: obtener :data:`sys.executable`"
#: ../Doc/whatsnew/3.12.rst:2357
msgid ""
":c:func:`Py_GetPythonHome`: get :c:member:`PyConfig.home` or the :envvar:"
"`PYTHONHOME` environment variable"
msgstr ""
+":c:func:`Py_GetPythonHome`: obtenga :c:member:`PyConfig.home` o la variable "
+"de entorno :envvar:`PYTHONHOME`"
#: ../Doc/whatsnew/3.12.rst:2363
msgid ""
"The following APIs are deprecated and will be removed, although there is "
"currently no date scheduled for their removal."
msgstr ""
+"Las siguientes API están obsoletas y se eliminarán, aunque actualmente no "
+"hay una fecha programada para su eliminación."
#: ../Doc/whatsnew/3.12.rst:2366
msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: unneeded since Python 3.8"
-msgstr ""
+msgstr ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: innecesario desde Python 3.8"
#: ../Doc/whatsnew/3.12.rst:2367
msgid ":c:func:`PyErr_Fetch`: use :c:func:`PyErr_GetRaisedException`"
-msgstr ""
+msgstr ":c:func:`PyErr_Fetch`: utilizar :c:func:`PyErr_GetRaisedException`"
#: ../Doc/whatsnew/3.12.rst:2368
msgid ""
":c:func:`PyErr_NormalizeException`: use :c:func:`PyErr_GetRaisedException`"
msgstr ""
+":c:func:`PyErr_NormalizeException`: utilizar :c:func:"
+"`PyErr_GetRaisedException`"
#: ../Doc/whatsnew/3.12.rst:2369
msgid ":c:func:`PyErr_Restore`: use :c:func:`PyErr_SetRaisedException`"
-msgstr ""
+msgstr ":c:func:`PyErr_Restore`: utilizar :c:func:`PyErr_SetRaisedException`"
#: ../Doc/whatsnew/3.12.rst:2370
msgid ""
":c:func:`PyModule_GetFilename`: use :c:func:`PyModule_GetFilenameObject`"
msgstr ""
+":c:func:`PyModule_GetFilename`: utilizar :c:func:`PyModule_GetFilenameObject`"
#: ../Doc/whatsnew/3.12.rst:2371
msgid ":c:func:`PyOS_AfterFork`: use :c:func:`PyOS_AfterFork_Child`"
-msgstr ""
+msgstr ":c:func:`PyOS_AfterFork`: utilizar :c:func:`PyOS_AfterFork_Child`"
#: ../Doc/whatsnew/3.12.rst:2372
msgid ""
":c:func:`PySlice_GetIndicesEx`: use :c:func:`PySlice_Unpack` and :c:func:"
"`PySlice_AdjustIndices`"
msgstr ""
+":c:func:`PySlice_GetIndicesEx`: utilice :c:func:`PySlice_Unpack` y :c:func:"
+"`PySlice_AdjustIndices`"
#: ../Doc/whatsnew/3.12.rst:2373
msgid ":c:func:`!PyUnicode_AsDecodedObject`: use :c:func:`PyCodec_Decode`"
msgstr ""
+":c:func:`!PyUnicode_AsDecodedObject`: utilizar :c:func:`PyCodec_Decode`"
#: ../Doc/whatsnew/3.12.rst:2374
msgid ":c:func:`!PyUnicode_AsDecodedUnicode`: use :c:func:`PyCodec_Decode`"
msgstr ""
+":c:func:`!PyUnicode_AsDecodedUnicode`: utilizar :c:func:`PyCodec_Decode`"
#: ../Doc/whatsnew/3.12.rst:2375
msgid ":c:func:`!PyUnicode_AsEncodedObject`: use :c:func:`PyCodec_Encode`"
msgstr ""
+":c:func:`!PyUnicode_AsEncodedObject`: utilizar :c:func:`PyCodec_Encode`"
#: ../Doc/whatsnew/3.12.rst:2376
msgid ":c:func:`!PyUnicode_AsEncodedUnicode`: use :c:func:`PyCodec_Encode`"
msgstr ""
+":c:func:`!PyUnicode_AsEncodedUnicode`: utilizar :c:func:`PyCodec_Encode`"
#: ../Doc/whatsnew/3.12.rst:2377
msgid ":c:func:`PyUnicode_READY`: unneeded since Python 3.12"
-msgstr ""
+msgstr ":c:func:`PyUnicode_READY`: innecesario desde Python 3.12"
#: ../Doc/whatsnew/3.12.rst:2378
msgid ":c:func:`!PyErr_Display`: use :c:func:`PyErr_DisplayException`"
-msgstr ""
+msgstr ":c:func:`!PyErr_Display`: utilizar :c:func:`PyErr_DisplayException`"
#: ../Doc/whatsnew/3.12.rst:2379
msgid ":c:func:`!_PyErr_ChainExceptions`: use ``_PyErr_ChainExceptions1``"
msgstr ""
+":c:func:`!_PyErr_ChainExceptions`: utilizar ``_PyErr_ChainExceptions1``"
#: ../Doc/whatsnew/3.12.rst:2380
msgid ""
":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` "
"instead"
msgstr ""
+"Miembro :c:member:`!PyBytesObject.ob_shash`: llame a :c:func:`PyObject_Hash` "
+"en su lugar"
#: ../Doc/whatsnew/3.12.rst:2382
msgid ":c:member:`!PyDictObject.ma_version_tag` member"
-msgstr ""
+msgstr "Miembro :c:member:`!PyDictObject.ma_version_tag`"
#: ../Doc/whatsnew/3.12.rst:2383
msgid "Thread Local Storage (TLS) API:"
-msgstr ""
+msgstr "API de almacenamiento local de subprocesos (TLS):"
#: ../Doc/whatsnew/3.12.rst:2385
msgid ":c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc`"
-msgstr ""
+msgstr ":c:func:`PyThread_create_key`: utilizar :c:func:`PyThread_tss_alloc`"
#: ../Doc/whatsnew/3.12.rst:2386
msgid ":c:func:`PyThread_delete_key`: use :c:func:`PyThread_tss_free`"
-msgstr ""
+msgstr ":c:func:`PyThread_delete_key`: utilizar :c:func:`PyThread_tss_free`"
#: ../Doc/whatsnew/3.12.rst:2387
msgid ":c:func:`PyThread_set_key_value`: use :c:func:`PyThread_tss_set`"
-msgstr ""
+msgstr ":c:func:`PyThread_set_key_value`: utilizar :c:func:`PyThread_tss_set`"
#: ../Doc/whatsnew/3.12.rst:2388
msgid ":c:func:`PyThread_get_key_value`: use :c:func:`PyThread_tss_get`"
-msgstr ""
+msgstr ":c:func:`PyThread_get_key_value`: utilizar :c:func:`PyThread_tss_get`"
#: ../Doc/whatsnew/3.12.rst:2389
msgid ":c:func:`PyThread_delete_key_value`: use :c:func:`PyThread_tss_delete`"
msgstr ""
+":c:func:`PyThread_delete_key_value`: utilizar :c:func:`PyThread_tss_delete`"
#: ../Doc/whatsnew/3.12.rst:2390
msgid ":c:func:`PyThread_ReInitTLS`: unneeded since Python 3.7"
-msgstr ""
+msgstr ":c:func:`PyThread_ReInitTLS`: innecesario desde Python 3.7"
#: ../Doc/whatsnew/3.12.rst:2395
msgid ""
@@ -3898,61 +5161,73 @@ msgid ""
"C API. The :file:`token.h` header file was only designed to be used by "
"Python internals. (Contributed by Victor Stinner in :gh:`92651`.)"
msgstr ""
+"Elimine el archivo de encabezado :file:`token.h`. Nunca hubo ninguna API C "
+"de tokenizador público. El archivo de encabezado :file:`token.h` solo fue "
+"diseñado para ser utilizado por componentes internos de Python. (Aportado "
+"por Victor Stinner en :gh:`92651`.)"
#: ../Doc/whatsnew/3.12.rst:2400
msgid "Legacy Unicode APIs have been removed. See :pep:`623` for detail."
msgstr ""
+"Se han eliminado las API Unicode heredadas. Consulte :pep:`623` para obtener "
+"más detalles."
#: ../Doc/whatsnew/3.12.rst:2402
msgid ":c:macro:`!PyUnicode_WCHAR_KIND`"
-msgstr ""
+msgstr ":c:macro:`!PyUnicode_WCHAR_KIND`"
#: ../Doc/whatsnew/3.12.rst:2403
msgid ":c:func:`!PyUnicode_AS_UNICODE`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_AS_UNICODE`"
#: ../Doc/whatsnew/3.12.rst:2404
msgid ":c:func:`!PyUnicode_AsUnicode`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_AsUnicode`"
#: ../Doc/whatsnew/3.12.rst:2405
msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_AsUnicodeAndSize`"
#: ../Doc/whatsnew/3.12.rst:2406
msgid ":c:func:`!PyUnicode_AS_DATA`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_AS_DATA`"
#: ../Doc/whatsnew/3.12.rst:2407
msgid ":c:func:`!PyUnicode_FromUnicode`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_FromUnicode`"
#: ../Doc/whatsnew/3.12.rst:2408
msgid ":c:func:`!PyUnicode_GET_SIZE`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_GET_SIZE`"
#: ../Doc/whatsnew/3.12.rst:2409
msgid ":c:func:`!PyUnicode_GetSize`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_GetSize`"
#: ../Doc/whatsnew/3.12.rst:2410
msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`"
-msgstr ""
+msgstr ":c:func:`!PyUnicode_GET_DATA_SIZE`"
#: ../Doc/whatsnew/3.12.rst:2412
msgid ""
"Remove the ``PyUnicode_InternImmortal()`` function macro. (Contributed by "
"Victor Stinner in :gh:`85858`.)"
msgstr ""
+"Elimine la macro de función ``PyUnicode_InternImmortal()``. (Aportado por "
+"Victor Stinner en :gh:`85858`.)"
#: ../Doc/whatsnew/3.12.rst:2415
msgid ""
"Remove ``Jython`` compatibility hacks from several stdlib modules and tests. "
"(Contributed by Nikita Sobolev in :gh:`99482`.)"
msgstr ""
+"Elimine los trucos de compatibilidad ``Jython`` de varios módulos y pruebas "
+"stdlib. (Aportado por Nikita Sobolev en :gh:`99482`.)"
#: ../Doc/whatsnew/3.12.rst:2418
msgid ""
"Remove ``_use_broken_old_ctypes_structure_semantics_`` flag from :mod:"
"`ctypes` module. (Contributed by Nikita Sobolev in :gh:`99285`.)"
msgstr ""
+"Elimine el indicador ``_use_broken_old_ctypes_structure_semantics_`` del "
+"módulo :mod:`ctypes`. (Aportado por Nikita Sobolev en :gh:`99285`.)"
From 0ed2a24cfe2f3979d6db0826d6332fa2db40462c Mon Sep 17 00:00:00 2001
From: Leonardo
Date: Sat, 6 Jan 2024 06:52:39 -0500
Subject: [PATCH 029/117] Traducido archivo library/ast (#2703)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #2623
---------
Co-authored-by: rtobar
Co-authored-by: Cristián Maureira-Fredes
Co-authored-by: Cristián Maureira-Fredes
---
library/ast.po | 81 ++++++++++++++++++++++++++++++++++----------------
1 file changed, 56 insertions(+), 25 deletions(-)
diff --git a/library/ast.po b/library/ast.po
index d92d77051d..2d70aee65d 100644
--- a/library/ast.po
+++ b/library/ast.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: 2022-10-30 22:11-0300\n"
+"PO-Revision-Date: 2023-10-22 21:17-0500\n"
"Last-Translator: Marco Richetta \n"
-"Language: es\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 2.3\n"
#: ../Doc/library/ast.rst:2
msgid ":mod:`ast` --- Abstract Syntax Trees"
@@ -246,45 +247,58 @@ msgstr ""
#: ../Doc/library/ast.rst:153
msgid "Root nodes"
-msgstr ""
+msgstr "Nodos raíz"
#: ../Doc/library/ast.rst:157
msgid ""
"A Python module, as with :ref:`file input `. Node type generated "
"by :func:`ast.parse` in the default ``\"exec\"`` *mode*."
msgstr ""
+"Un módulo de Python, como con :ref:`archivo-entrada `. Tipo de "
+"nodo generado por :func:`ast.parse` en el modo por defecto ``\"exec\"`` "
+"*mode*.*mode*."
#: ../Doc/library/ast.rst:160
msgid "*body* is a :class:`list` of the module's :ref:`ast-statements`."
-msgstr ""
+msgstr "*body* es una :class:`list` de las :ref:`ast-statements` del módulo."
#: ../Doc/library/ast.rst:162
msgid ""
"*type_ignores* is a :class:`list` of the module's type ignore comments; see :"
"func:`ast.parse` for more details."
msgstr ""
+"*type_ignores* es una :class:`list` de los comentarios para ignorar tipos "
+"del módulo; véase :func:`ast.parse` para más detalles."
#: ../Doc/library/ast.rst:179
msgid ""
"A single Python :ref:`expression input `. Node type "
"generated by :func:`ast.parse` when *mode* is ``\"eval\"``."
msgstr ""
+"Una única :ref:`expression input ` de Python. Tipo de nodo "
+"generado por :func:`ast.parse` cuando *mode* es ``\"eval\"``."
#: ../Doc/library/ast.rst:182
msgid ""
"*body* is a single node, one of the :ref:`expression types `."
msgstr ""
+"*body* es un único nodo, uno de los :ref:`tipos de expresión `."
#: ../Doc/library/ast.rst:194
msgid ""
"A single :ref:`interactive input `, like in :ref:`tut-interac`. "
"Node type generated by :func:`ast.parse` when *mode* is ``\"single\"``."
msgstr ""
+"Una única :ref:`entrada interactiva `, como en :ref:`tut-"
+"interac`. Tipo de nodo generado por :func:`ast.parse` cuando *mode* es "
+"``\"single\"``."
#: ../Doc/library/ast.rst:197
msgid "*body* is a :class:`list` of :ref:`statement nodes `."
msgstr ""
+"*body* es una :class:`list` de :ref:`nodos de declaración `."
#: ../Doc/library/ast.rst:216
msgid ""
@@ -292,19 +306,25 @@ msgid ""
"versions prior to 3.5 didn't support :pep:`484` annotations. Node type "
"generated by :func:`ast.parse` when *mode* is ``\"func_type\"``."
msgstr ""
+"Una interpretación de un comentario de tipo de estilo antiguo para "
+"funciones, ya que las versiones de Python anteriores a la 3.5 no soportaban "
+"anotaciones :pep:`484`. Tipo de nodo generado por :func:`ast.parse` cuando "
+"*mode* es ``\"func_type\"``."
#: ../Doc/library/ast.rst:220
msgid "Such type comments would look like this::"
-msgstr ""
+msgstr "Los comentarios de este tipo tendrían el siguiente aspecto::"
#: ../Doc/library/ast.rst:226
msgid ""
"*argtypes* is a :class:`list` of :ref:`expression nodes `."
msgstr ""
+"*argtypes* es una :class:`list` de :ref:`nodos de expresión `."
#: ../Doc/library/ast.rst:228
msgid "*returns* is a single :ref:`expression node `."
-msgstr ""
+msgstr "*returns* es un único :ref:`nodo de expresión `."
#: ../Doc/library/ast.rst:246
msgid "Literals"
@@ -542,22 +562,20 @@ msgid "``args`` holds a list of the arguments passed by position."
msgstr "``args`` contiene una lista de argumentos pasados por posición."
#: ../Doc/library/ast.rst:588
-#, fuzzy
msgid ""
"``keywords`` holds a list of :class:`.keyword` objects representing "
"arguments passed by keyword."
msgstr ""
-"``keywords`` contiene una lista de objetos :class:`keyword` que representan "
+"``keywords`` contiene una lista de objetos :class:`.keyword` que representan "
"argumentos pasados por nombre clave."
#: ../Doc/library/ast.rst:591
-#, fuzzy
msgid ""
"When creating a ``Call`` node, ``args`` and ``keywords`` are required, but "
"they can be empty lists."
msgstr ""
"Cuando se crea un nodo ``Call``, ``args`` y ``keywords`` son requeridos pero "
-"pueden ser listas vacías. ``starargs`` y ``kwargs`` son opcionales."
+"pueden ser listas vacías."
#: ../Doc/library/ast.rst:615
msgid ""
@@ -767,6 +785,10 @@ msgid ""
"ref:`type parameters `, and ``value`` is the value of the "
"type alias."
msgstr ""
+"Un alias :ref:`type alias ` creado mediante la sentencia :"
+"keyword:`type`. ``name`` es el nombre del alias, ``type_params`` es una "
+"lista de parámetros :ref:`type `, y ``value`` es el valor "
+"del alias de tipo."
#: ../Doc/library/ast.rst:1042
msgid ""
@@ -837,7 +859,6 @@ msgstr ""
"nodo anterior."
#: ../Doc/library/ast.rst:1152
-#, fuzzy
msgid ""
"A ``for`` loop. ``target`` holds the variable(s) the loop assigns to, as a "
"single :class:`Name`, :class:`Tuple`, :class:`List`, :class:`Attribute` or :"
@@ -846,12 +867,13 @@ msgid ""
"Those in ``orelse`` are executed if the loop finishes normally, rather than "
"via a ``break`` statement."
msgstr ""
-"Un bucle ``for``. ``target`` contiene la(s) variable(s) donde asigna el "
-"bucle como un único nodo :class:`Name`, :class:`Tuple` o :class:`List`. "
-"``iter`` contiene el item por el cual se va recorrer como un único nodo. "
-"``body`` y ``orelse`` contienen una lista de nodos a ejecutar. Aquellos en "
-"``orelse`` son ejecutados si el bucle termina normalmente, en contra de si "
-"terminan utilizando la declaración ``break``."
+"Un bucle ``for``. ``target`` contiene las variables a las que asigna el "
+"bucle, como un único nodo :class:`Name`, :class:`Tuple`, :class:`List`, :"
+"class:`Attribute` o :class:`Subscript`. ``iter`` contiene el elemento sobre "
+"el que se realizará el bucle, nuevamente como un solo nodo. ``body`` y "
+"``orelse`` contienen listas de nodos para ejecutar. Los de ``orelse`` se "
+"ejecutan si el ciclo finaliza normalmente, en lugar de mediante una "
+"instrucción ``break``."
#: ../Doc/library/ast.rst:1187
msgid ""
@@ -1116,13 +1138,15 @@ msgstr ""
#: ../Doc/library/ast.rst:1793
msgid "Type parameters"
-msgstr ""
+msgstr "Tipos de parámetro"
#: ../Doc/library/ast.rst:1795
msgid ""
":ref:`Type parameters ` can exist on classes, functions, and "
"type aliases."
msgstr ""
+"\":ref:`Parámetros de tipo ` pueden existir en clases, "
+"funciones y tipos de alias\""
#: ../Doc/library/ast.rst:1800
msgid ""
@@ -1130,18 +1154,26 @@ msgid ""
"``bound`` is the bound or constraints, if any. If ``bound`` is a :class:"
"`Tuple`, it represents constraints; otherwise it represents the bound."
msgstr ""
+"Una :class:`typing.TypeVar`. ``name`` es el nombre de la variable de tipo. "
+"``bound`` es el límite o las restricciones, si las hay. Si ``bound`` es una :"
+"class:`Tuple`, representa las restricciones; en caso contrario, representa "
+"el límite."
#: ../Doc/library/ast.rst:1825
msgid ""
"A :class:`typing.ParamSpec`. ``name`` is the name of the parameter "
"specification."
msgstr ""
+"Una :class:`typing.ParamSpec`. ``name`` es el nombre de la especificación "
+"del parámetro."
#: ../Doc/library/ast.rst:1850
msgid ""
"A :class:`typing.TypeVarTuple`. ``name`` is the name of the type variable "
"tuple."
msgstr ""
+"Una :class:`typing.TypeVarTuple`. ``name`` es el nombre de la tupla variable "
+"de tipo."
#: ../Doc/library/ast.rst:1875
msgid "Function and class definitions"
@@ -1180,11 +1212,12 @@ msgstr "``returns`` es la anotación de retorno."
#: ../Doc/library/ast.rst:1887 ../Doc/library/ast.rst:2065
msgid "``type_params`` is a list of :ref:`type parameters `."
msgstr ""
+"``type_params`` es una lista de :ref:`parametros de tipo `."
#: ../Doc/library/ast.rst:1893 ../Doc/library/ast.rst:2094
#: ../Doc/library/ast.rst:2105
msgid "Added ``type_params``."
-msgstr ""
+msgstr "Se ha añadido ``type_params``."
#: ../Doc/library/ast.rst:1899
msgid ""
@@ -1285,13 +1318,12 @@ msgstr ""
"explícitamente."
#: ../Doc/library/ast.rst:2059
-#, fuzzy
msgid ""
"``keywords`` is a list of :class:`.keyword` nodes, principally for "
"'metaclass'. Other keywords will be passed to the metaclass, as per "
"`PEP-3115 `_."
msgstr ""
-"``keywords`` es una lista de nodos :class:`keyword`, principalmente para "
+"``keywords`` es una lista de nodos :class:`.keyword`, principalmente para "
"'metaclase'. Otras palabras clave se pasarán a la metaclase, según `PEP-3115 "
"`_."
@@ -1975,16 +2007,15 @@ msgstr ""
#: ../Doc/library/ast.rst:59
msgid "? (question mark)"
-msgstr ""
+msgstr "? (question mark)"
#: ../Doc/library/ast.rst:59 ../Doc/library/ast.rst:60
-#, fuzzy
msgid "in AST grammar"
msgstr "Gramática abstracta"
#: ../Doc/library/ast.rst:60
msgid "* (asterisk)"
-msgstr ""
+msgstr "* (asterisk)"
#~ msgid ""
#~ "``starargs`` and ``kwargs`` are each a single node, as in a function "
From c226174fd51570eb6e57152a5a9095406909d0b6 Mon Sep 17 00:00:00 2001
From: Marcos Medrano <786907+mmmarcos@users.noreply.github.com>
Date: Sat, 6 Jan 2024 12:54:23 +0100
Subject: [PATCH 030/117] Traducido `glossary.po` (#2757)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Este archivo no tiene ningún issue asociado.
---------
Co-authored-by: rtobar
---
dictionaries/glossary.txt | 1 +
glossary.po | 178 +++++++++++++++++++-------------------
2 files changed, 92 insertions(+), 87 deletions(-)
diff --git a/dictionaries/glossary.txt b/dictionaries/glossary.txt
index 2433fdb1d2..b4381a0eb9 100644
--- a/dictionaries/glossary.txt
+++ b/dictionaries/glossary.txt
@@ -1 +1,2 @@
+serializarla
suscripto
diff --git a/glossary.po b/glossary.po
index 6128e97a0e..3a65ef2cec 100644
--- a/glossary.po
+++ b/glossary.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-04 11:03+0200\n"
-"Last-Translator: Cristián Maureira-Fredes \n"
-"Language: es\n"
+"PO-Revision-Date: 2023-11-26 22:33+0100\n"
+"Last-Translator: Marcos Medrano \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.4.1\n"
#: ../Doc/glossary.rst:5
msgid "Glossary"
@@ -215,15 +216,14 @@ msgid "asynchronous context manager"
msgstr "administrador asincrónico de contexto"
#: ../Doc/glossary.rst:94
-#, fuzzy
msgid ""
"An object which controls the environment seen in an :keyword:`async with` "
"statement by defining :meth:`~object.__aenter__` and :meth:`~object."
"__aexit__` methods. Introduced by :pep:`492`."
msgstr ""
"Un objeto que controla el entorno visible en un sentencia :keyword:`async "
-"with` al definir los métodos :meth:`__aenter__` :meth:`__aexit__`. "
-"Introducido por :pep:`492`."
+"with` al definir los métodos :meth:`~object.__aenter__` y :meth:`~object."
+"__aexit__`. Introducido por :pep:`492`."
#: ../Doc/glossary.rst:97
msgid "asynchronous generator"
@@ -269,7 +269,6 @@ msgid "An object created by a :term:`asynchronous generator` function."
msgstr "Un objeto creado por una función :term:`asynchronous generator`."
#: ../Doc/glossary.rst:115
-#, fuzzy
msgid ""
"This is an :term:`asynchronous iterator` which when called using the :meth:"
"`~object.__anext__` method returns an awaitable object which will execute "
@@ -277,12 +276,11 @@ msgid ""
"`yield` expression."
msgstr ""
"Este es un :term:`asynchronous iterator` el cual cuando es llamado usa el "
-"método :meth:`__anext__` retornando un objeto a la espera (*awaitable*) el "
-"cual ejecutará el cuerpo de la función generadora asincrónica hasta la "
-"siguiente expresión :keyword:`yield`."
+"método :meth:`~object.__anext__` retornando un objeto a la espera "
+"(*awaitable*) el cual ejecutará el cuerpo de la función generadora "
+"asincrónica hasta la siguiente expresión :keyword:`yield`."
#: ../Doc/glossary.rst:120
-#, fuzzy
msgid ""
"Each :keyword:`yield` temporarily suspends processing, remembering the "
"location execution state (including local variables and pending try-"
@@ -294,30 +292,28 @@ msgstr ""
"estado local de ejecución (incluyendo a las variables locales y las "
"sentencias `try` pendientes). Cuando el *iterador del generador asincrónico* "
"vuelve efectivamente con otro objeto a la espera (*awaitable*) retornado por "
-"el método :meth:`__anext__`, retoma donde lo dejó. Vea :pep:`492` y :pep:"
-"`525`."
+"el método :meth:`~object.__anext__`, retoma donde lo dejó. Vea :pep:`492` y :"
+"pep:`525`."
#: ../Doc/glossary.rst:125
msgid "asynchronous iterable"
msgstr "iterable asincrónico"
#: ../Doc/glossary.rst:127
-#, fuzzy
msgid ""
"An object, that can be used in an :keyword:`async for` statement. Must "
"return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` "
"method. Introduced by :pep:`492`."
msgstr ""
"Un objeto, que puede ser usado en una sentencia :keyword:`async for`. Debe "
-"retornar un :term:`asynchronous iterator` de su método :meth:`__aiter__`. "
-"Introducido por :pep:`492`."
+"retornar un :term:`asynchronous iterator` de su método :meth:`~object."
+"__aiter__`. Introducido por :pep:`492`."
#: ../Doc/glossary.rst:130
msgid "asynchronous iterator"
msgstr "iterador asincrónico"
#: ../Doc/glossary.rst:132
-#, fuzzy
msgid ""
"An object that implements the :meth:`~object.__aiter__` and :meth:`~object."
"__anext__` methods. :meth:`~object.__anext__` must return an :term:"
@@ -325,26 +321,25 @@ msgid ""
"an asynchronous iterator's :meth:`~object.__anext__` method until it raises "
"a :exc:`StopAsyncIteration` exception. Introduced by :pep:`492`."
msgstr ""
-"Un objeto que implementa los métodos :meth:`__aiter__` y :meth:`__anext__`. "
-"``__anext__`` debe retornar un objeto :term:`awaitable`. :keyword:`async "
-"for` resuelve los esperables retornados por un método de iterador "
-"asincrónico :meth:`__anext__` hasta que lanza una excepción :exc:"
-"`StopAsyncIteration`. Introducido por :pep:`492`."
+"Un objeto que implementa los métodos :meth:`~object.__aiter__` y :meth:"
+"`~object.__anext__`. :meth:`~object.__anext__` debe retornar un objeto :term:"
+"`awaitable`. :keyword:`async for` resuelve los esperables retornados por un "
+"método de iterador asincrónico :meth:`~object.__anext__` hasta que lanza una "
+"excepción :exc:`StopAsyncIteration`. Introducido por :pep:`492`."
#: ../Doc/glossary.rst:137
msgid "attribute"
msgstr "atributo"
#: ../Doc/glossary.rst:139
-#, fuzzy
msgid ""
"A value associated with an object which is usually referenced by name using "
"dotted expressions. For example, if an object *o* has an attribute *a* it "
"would be referenced as *o.a*."
msgstr ""
-"Un valor asociado a un objeto que es referencias por el nombre usado "
-"expresiones de punto. Por ejemplo, si un objeto *o* tiene un atributo *a* "
-"sería referenciado como *o.a*."
+"Un valor asociado a un objeto al que se suele hacer referencia por su nombre "
+"utilizando expresiones punteadas. Por ejemplo, si un objeto *o* tiene un "
+"atributo *a* se referenciaría como *o.a*."
#: ../Doc/glossary.rst:144
msgid ""
@@ -354,21 +349,24 @@ msgid ""
"using a dotted expression, and would instead need to be retrieved with :func:"
"`getattr`."
msgstr ""
+"Es posible dar a un objeto un atributo cuyo nombre no sea un identificador "
+"definido por :ref:`identifiers`, por ejemplo usando :func:`setattr`, si el "
+"objeto lo permite. Dicho atributo no será accesible utilizando una expresión "
+"con puntos, y en su lugar deberá ser recuperado con :func:`getattr`."
#: ../Doc/glossary.rst:149
msgid "awaitable"
msgstr "a la espera"
#: ../Doc/glossary.rst:151
-#, fuzzy
msgid ""
"An object that can be used in an :keyword:`await` expression. Can be a :"
"term:`coroutine` or an object with an :meth:`~object.__await__` method. See "
"also :pep:`492`."
msgstr ""
-"Es un objeto a la espera (*awaitable*) que puede ser usado en una expresión :"
-"keyword:`await`. Puede ser una :term:`coroutine` o un objeto con un método :"
-"meth:`__await__`. Vea también :pep:`492`."
+"Un objeto que puede utilizarse en una expresión :keyword:`await`. Puede ser "
+"una :term:`corutina ` o un objeto con un método :meth:`~object."
+"__await__`. Véase también :pep:`492`."
#: ../Doc/glossary.rst:154
msgid "BDFL"
@@ -414,7 +412,6 @@ msgid "borrowed reference"
msgstr "referencia prestada"
#: ../Doc/glossary.rst:171
-#, fuzzy
msgid ""
"In Python's C API, a borrowed reference is a reference to an object, where "
"the code using the object does not own the reference. It becomes a dangling "
@@ -422,10 +419,10 @@ msgid ""
"remove the last :term:`strong reference` to the object and so destroy it."
msgstr ""
"En la API C de Python, una referencia prestada es una referencia a un "
-"objeto. No modifica el recuento de referencias de objetos. Se convierte en "
-"un puntero colgante si se destruye el objeto. Por ejemplo, una recolección "
-"de basura puede eliminar el último :term:`strong reference` del objeto y así "
-"destruirlo."
+"objeto, donde el código usando el objeto no posee la referencia. Se "
+"convierte en un puntero colgante si se destruye el objeto. Por ejemplo, una "
+"recolección de basura puede eliminar el último :term:`strong reference` del "
+"objeto y así destruirlo."
#: ../Doc/glossary.rst:177
msgid ""
@@ -513,15 +510,16 @@ msgstr ""
"documentación de :ref:`el módulo dis `."
#: ../Doc/glossary.rst:213
-#, fuzzy
msgid "callable"
-msgstr "hashable"
+msgstr "callable"
#: ../Doc/glossary.rst:215
msgid ""
"A callable is an object that can be called, possibly with a set of arguments "
"(see :term:`argument`), with the following syntax::"
msgstr ""
+"Un callable es un objeto que puede ser llamado, posiblemente con un conjunto "
+"de argumentos (véase :term:`argument`), con la siguiente sintaxis::"
#: ../Doc/glossary.rst:220
msgid ""
@@ -529,6 +527,9 @@ msgid ""
"instance of a class that implements the :meth:`~object.__call__` method is "
"also a callable."
msgstr ""
+"Una :term:`function`, y por extensión un :term:`method`, es un callable. Una "
+"instancia de una clase que implementa el método :meth:`~object.__call__` "
+"también es un callable."
#: ../Doc/glossary.rst:223
msgid "callback"
@@ -1019,9 +1020,8 @@ msgstr ""
"de :c:type:`PyConfig`."
#: ../Doc/glossary.rst:428
-#, fuzzy
msgid "See also the :term:`locale encoding`."
-msgstr "Vea también :term:`locale encoding`"
+msgstr "Vea también :term:`locale encoding`."
#: ../Doc/glossary.rst:429
msgid "finder"
@@ -1249,21 +1249,22 @@ msgid "generic type"
msgstr "tipos genéricos"
#: ../Doc/glossary.rst:531
-#, fuzzy
msgid ""
"A :term:`type` that can be parameterized; typically a :ref:`container "
"class` such as :class:`list` or :class:`dict`. Used for :"
"term:`type hints ` and :term:`annotations `."
msgstr ""
-"Un :term:`type` que se puede parametrizar; normalmente un contenedor como :"
-"class:`list`. Usado para :term:`type hints ` y :term:`annotations "
-"`."
+"Un :term:`type` que se puede parametrizar; normalmente un :ref:`container "
+"class` como :class:`list` o :class:`dict`. Usado para :term:"
+"`type hints ` y :term:`annotations `."
#: ../Doc/glossary.rst:536
msgid ""
"For more details, see :ref:`generic alias types`, :pep:"
"`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module."
msgstr ""
+"Para más detalles, véase :ref:`generic alias types`, :"
+"pep:`483`, :pep:`484`, :pep:`585`, y el módulo :mod:`typing`."
#: ../Doc/glossary.rst:538
msgid "GIL"
@@ -1296,7 +1297,6 @@ msgstr ""
"múltiples procesadores."
#: ../Doc/glossary.rst:552
-#, fuzzy
msgid ""
"However, some extension modules, either standard or third-party, are "
"designed so as to release the GIL when doing computationally intensive tasks "
@@ -1383,15 +1383,14 @@ msgid "IDLE"
msgstr "IDLE"
#: ../Doc/glossary.rst:587
-#, fuzzy
msgid ""
"An Integrated Development and Learning Environment for Python. :ref:`idle` "
"is a basic editor and interpreter environment which ships with the standard "
"distribution of Python."
msgstr ""
-"El entorno integrado de desarrollo de Python, o *Integrated Development "
-"Environment for Python*. IDLE es un editor básico y un entorno de "
-"intérprete que se incluye con la distribución estándar de Python."
+"Un Entorno Integrado de Desarrollo y Aprendizaje para Python. :ref:`idle` es "
+"un editor básico y un entorno de intérprete que se incluye con la "
+"distribución estándar de Python."
#: ../Doc/glossary.rst:590
msgid "immutable"
@@ -1530,7 +1529,6 @@ msgid "iterable"
msgstr "iterable"
#: ../Doc/glossary.rst:644
-#, fuzzy
msgid ""
"An object capable of returning its members one at a time. Examples of "
"iterables include all sequence types (such as :class:`list`, :class:`str`, "
@@ -1544,7 +1542,7 @@ msgstr ""
"class:`tuple`) y algunos de tipos no secuenciales, como :class:`dict`, :term:"
"`objeto archivo `, y objetos de cualquier clase que defina con "
"los métodos :meth:`__iter__` o con un método :meth:`__getitem__` que "
-"implementen la semántica de :term:`Sequence `."
+"implementen la semántica de :term:`sequence`."
#: ../Doc/glossary.rst:651
msgid ""
@@ -1614,6 +1612,8 @@ msgid ""
"CPython does not consistently apply the requirement that an iterator define :"
"meth:`__iter__`."
msgstr ""
+"CPython no aplica consistentemente el requisito de que un iterador defina :"
+"meth:`__iter__`."
#: ../Doc/glossary.rst:684
msgid "key function"
@@ -1643,7 +1643,6 @@ msgstr ""
"func:`heapq.nsmallest`, :func:`heapq.nlargest`, y :func:`itertools.groupby`."
#: ../Doc/glossary.rst:697
-#, fuzzy
msgid ""
"There are several ways to create a key function. For example. the :meth:"
"`str.lower` method can serve as a key function for case insensitive sorts. "
@@ -1657,11 +1656,10 @@ msgstr ""
"`str.lower` puede servir como función clave para ordenamientos que no "
"distingan mayúsculas de minúsculas. Como alternativa, una función clave "
"puede ser realizada con una expresión :keyword:`lambda` como ``lambda r: "
-"(r[0], r[2])``. También, el módulo :mod:`operator` provee tres "
-"constructores de funciones clave: :func:`~operator.attrgetter`, :func:"
-"`~operator.itemgetter`, y :func:`~operator.methodcaller`. Vea en :ref:"
-"`Sorting HOW TO ` ejemplos de cómo crear y usar funciones "
-"clave."
+"(r[0], r[2])``. Además, :func:`operator.attrgetter`, :func:`operator."
+"itemgetter` y :func:`operator.methodcaller` son tres constructores de "
+"funciones clave. Consulte :ref:`Sorting HOW TO ` para ver "
+"ejemplos de cómo crear y utilizar funciones clave."
#: ../Doc/glossary.rst:704
msgid "keyword argument"
@@ -1722,35 +1720,35 @@ msgid "locale encoding"
msgstr "codificación de la configuración regional"
#: ../Doc/glossary.rst:726
-#, fuzzy
msgid ""
"On Unix, it is the encoding of the LC_CTYPE locale. It can be set with :func:"
"`locale.setlocale(locale.LC_CTYPE, new_locale) `."
msgstr ""
"En Unix, es la codificación de la configuración regional LC_CTYPE. Se puede "
-"configurar con ``locale.setlocale(locale.LC_CTYPE, new_locale)``."
+"configurar con :func:`locale.setlocale(locale.LC_CTYPE, new_locale) `."
#: ../Doc/glossary.rst:729
-#, fuzzy
msgid "On Windows, it is the ANSI code page (ex: ``\"cp1252\"``)."
-msgstr "En Windows, es la página de códigos ANSI (por ejemplo, ``cp1252``)."
+msgstr ""
+"En Windows, es la página de códigos ANSI (por ejemplo, ``\"cp1252\"``)."
#: ../Doc/glossary.rst:731
msgid ""
"On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding."
msgstr ""
+"En Android y VxWorks, Python utiliza ``\"utf-8\"`` como codificación "
+"regional."
#: ../Doc/glossary.rst:733
-#, fuzzy
msgid "``locale.getencoding()`` can be used to get the locale encoding."
msgstr ""
-"``locale.getpreferredencoding(False)`` se puede utilizar para obtener la "
-"codificación de la configuración regional."
+"``locale.getencoding()`` se puede utilizar para obtener la codificación de "
+"la configuración regional."
#: ../Doc/glossary.rst:735
-#, fuzzy
msgid "See also the :term:`filesystem encoding and error handler`."
-msgstr "codificación del sistema de archivos y manejador de errores"
+msgstr "Vea también :term:`filesystem encoding and error handler`."
#: ../Doc/glossary.rst:736
msgid "list"
@@ -1814,7 +1812,6 @@ msgid "mapping"
msgstr "mapeado"
#: ../Doc/glossary.rst:762
-#, fuzzy
msgid ""
"A container object that supports arbitrary key lookups and implements the "
"methods specified in the :class:`collections.abc.Mapping` or :class:"
@@ -1824,8 +1821,8 @@ msgid ""
"`collections.Counter`."
msgstr ""
"Un objeto contenedor que permite recupero de claves arbitrarias y que "
-"implementa los métodos especificados en la :class:`~collections.abc.Mapping` "
-"o :class:`~collections.abc.MutableMapping` :ref:`abstract base classes "
+"implementa los métodos especificados en la :class:`collections.abc.Mapping` "
+"o :class:`collections.abc.MutableMapping` :ref:`abstract base classes "
"`. Por ejemplo, :class:`dict`, :class:"
"`collections.defaultdict`, :class:`collections.OrderedDict` y :class:"
"`collections.Counter`."
@@ -2113,7 +2110,6 @@ msgid "package"
msgstr "paquete"
#: ../Doc/glossary.rst:885
-#, fuzzy
msgid ""
"A Python :term:`module` which can contain submodules or recursively, "
"subpackages. Technically, a package is a Python module with a ``__path__`` "
@@ -2484,7 +2480,6 @@ msgid "reference count"
msgstr "contador de referencias"
#: ../Doc/glossary.rst:1066
-#, fuzzy
msgid ""
"The number of references to an object. When the reference count of an "
"object drops to zero, it is deallocated. Some objects are \"immortal\" and "
@@ -2495,11 +2490,13 @@ msgid ""
"reference count for a particular object."
msgstr ""
"El número de referencias a un objeto. Cuando el contador de referencias de "
-"un objeto cae hasta cero, éste es desalojable. En conteo de referencias no "
-"suele ser visible en el código de Python, pero es un elemento clave para la "
-"implementación de :term:`CPython`. El módulo :mod:`sys` define la :func:"
-"`~sys.getrefcount` que los programadores pueden emplear para retornar el "
-"conteo de referencias de un objeto en particular."
+"un objeto cae hasta cero, éste se desaloja. Algunos objetos son "
+"\"inmortales\" y tienen recuentos de referencias que nunca se modifican, y "
+"por lo tanto los objetos nunca son desalojan. El conteo de referencias "
+"generalmente no es visible para el código Python, pero es un elemento clave "
+"de la implementación de :term:`CPython`. Los programadores pueden llamar a "
+"la función :func:`sys.getrefcount` para obtener el número de referencias de "
+"un objeto concreto."
#: ../Doc/glossary.rst:1074
msgid "regular package"
@@ -2652,16 +2649,17 @@ msgid "strong reference"
msgstr "referencia fuerte"
#: ../Doc/glossary.rst:1136
-#, fuzzy
msgid ""
"In Python's C API, a strong reference is a reference to an object which is "
"owned by the code holding the reference. The strong reference is taken by "
"calling :c:func:`Py_INCREF` when the reference is created and released with :"
"c:func:`Py_DECREF` when the reference is deleted."
msgstr ""
-"En la API C de Python, una referencia fuerte es una referencia a un objeto "
-"que incrementa el recuento de referencias del objeto cuando se crea y "
-"disminuye el recuento de referencias del objeto cuando se elimina."
+"En la API de C de Python, una referencia fuerte es una referencia a un "
+"objeto que es propiedad del código que mantiene la referencia. La "
+"referencia fuerte se toma llamando a :c:func:`Py_INCREF` cuando se crea la "
+"referencia y se libera con :c:func:`Py_DECREF` cuando se elimina la "
+"referencia."
#: ../Doc/glossary.rst:1142
msgid ""
@@ -2689,18 +2687,27 @@ msgid ""
"``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be "
"serialized as a sequence of bytes."
msgstr ""
+"Una cadena de caracteres en Python es una secuencia de puntos de código "
+"Unicode (en el rango ``U+0000``--``U+10FFFF``). Para almacenar o transferir "
+"una cadena de caracteres, es necesario serializarla como una secuencia de "
+"bytes."
#: ../Doc/glossary.rst:1154
msgid ""
"Serializing a string into a sequence of bytes is known as \"encoding\", and "
"recreating the string from the sequence of bytes is known as \"decoding\"."
msgstr ""
+"La serialización de una cadena de caracteres en una secuencia de bytes se "
+"conoce como \"codificación\", y la recreación de la cadena de caracteres a "
+"partir de la secuencia de bytes se conoce como \"decodificación\"."
#: ../Doc/glossary.rst:1157
msgid ""
"There are a variety of different text serialization :ref:`codecs `, which are collectively referred to as \"text encodings\"."
msgstr ""
+"Existe una gran variedad de serializaciones de texto :ref:`codecs `, que se denominan colectivamente \"codificaciones de texto\"."
#: ../Doc/glossary.rst:1160
msgid "text file"
@@ -2924,20 +2931,17 @@ msgstr ""
"ingresando \"``import this``\" en la consola interactiva."
#: ../Doc/glossary.rst:264
-#, fuzzy
msgid "C-contiguous"
-msgstr "contiguo"
+msgstr "C-contiguous"
#: ../Doc/glossary.rst:264
-#, fuzzy
msgid "Fortran contiguous"
-msgstr "contiguo"
+msgstr "Fortran contiguous"
#: ../Doc/glossary.rst:757
msgid "magic"
-msgstr ""
+msgstr "magic"
#: ../Doc/glossary.rst:1123
-#, fuzzy
msgid "special"
-msgstr "método especial"
+msgstr "special"
From 4a1c89c5519266ff8212fa8a4f762f81032029ee Mon Sep 17 00:00:00 2001
From: Jakepys <81931114+JuanPerdomo00@users.noreply.github.com>
Date: Sat, 6 Jan 2024 06:58:17 -0500
Subject: [PATCH 031/117] Correccion de algunas traducciones, traducido.
library/socket.po (#2761)
---
dictionaries/library_socket.txt | 2 +
library/socket.po | 186 +++++++++++++++++---------------
2 files changed, 102 insertions(+), 86 deletions(-)
diff --git a/dictionaries/library_socket.txt b/dictionaries/library_socket.txt
index 32f28b1508..d49153a683 100644
--- a/dictionaries/library_socket.txt
+++ b/dictionaries/library_socket.txt
@@ -26,3 +26,5 @@ Unix
Windows
Winsock
WinSock
+Hyper
+divert
diff --git a/library/socket.po b/library/socket.po
index 17bcea02d4..1dd9f93549 100644
--- a/library/socket.po
+++ b/library/socket.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: 2022-10-30 15:53+0100\n"
+"PO-Revision-Date: 2023-11-27 13:14-0500\n"
"Last-Translator: \n"
-"Language: es_ES\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es_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.4.1\n"
#: ../Doc/library/socket.rst:2
msgid ":mod:`socket` --- Low-level networking interface"
@@ -48,9 +49,8 @@ msgstr ""
"llamadas se realizan a las API de socket del sistema operativo."
#: ../Doc/includes/wasm-notavail.rst:3
-#, fuzzy
msgid ":ref:`Availability `: not Emscripten, not WASI."
-msgstr ":ref:`Availability `: no Emscripten, no WASI."
+msgstr ":ref:`Availability `: no escritos, no WASI."
#: ../Doc/includes/wasm-notavail.rst:5
msgid ""
@@ -379,7 +379,7 @@ msgid ""
"cryptography. An algorithm socket is configured with a tuple of two to four "
"elements ``(type, name [, feat [, mask]])``, where:"
msgstr ""
-":const:`AF_ALG` es una interfaz basada en socket sólo Linux para la "
+":const:`AF_ALG` es una interfaz basada en socket solo Linux para la "
"criptografía del núcleo. Un socket de algoritmo se configura con una tupla "
"de dos a cuatro elementos ``(type, name [, feat [, mask]])``, donde:"
@@ -452,6 +452,10 @@ msgid ""
"types>` or any other Ethernet protocol number. Value must be in network-byte-"
"order."
msgstr ""
+"*proto* - El número del protocolo Ethernet. Puede ser :data:`ETH_P_ALL` para "
+"capturar todos los protocolos, una de las :ref:`constantes ETHERTYPE_* "
+"` o cualquier otro número de protocolo Ethernet. El "
+"valor debe estar en bytes de red-orden."
#: ../Doc/library/socket.rst:197
msgid "*pkttype* - Optional integer specifying the packet type:"
@@ -552,22 +556,20 @@ msgstr ""
"IPPROTO_UDPLITE)`` para IPV6."
#: ../Doc/library/socket.rst:234
-#, fuzzy
msgid ":ref:`Availability `: Linux >= 2.6.20, FreeBSD >= 10.1"
-msgstr ":ref:`Availability `: Linux >= 2.6.25, NetBSD >= 8."
+msgstr ":ref:`Availability `: Linux >= 2.6.20, NetBSD >= 10.1"
#: ../Doc/library/socket.rst:238
-#, fuzzy
msgid ""
":const:`AF_HYPERV` is a Windows-only socket based interface for "
"communicating with Hyper-V hosts and guests. The address family is "
"represented as a ``(vm_id, service_id)`` tuple where the ``vm_id`` and "
"``service_id`` are UUID strings."
msgstr ""
-":const:`AF_QIPCRTR` es una interfaz basada en sockets solo para Linux para "
-"comunicarse con servicios que se ejecutan en co-procesadores en plataformas "
-"Qualcomm. La familia de direcciones se representa como una tupla ``(node, "
-"port)`` donde el *node* y *port* son enteros no negativos."
+":const:`AF_HYPERV` es una interfaz basada en sockets exclusiva de Windows "
+"para comunicarse con hosts e invitados de Hyper-V. La familia de direcciones "
+"se representa como una tupla ``(vm_id, service_id)`` donde ``vm_id`` y "
+"``service_id`` son cadenas UUID."
#: ../Doc/library/socket.rst:243
msgid ""
@@ -575,30 +577,37 @@ msgid ""
"values if the target is not a specific virtual machine. Known VMID constants "
"defined on ``socket`` are:"
msgstr ""
+"El ``vm_id`` es el identificador de la máquina virtual o un conjunto de VMID "
+"conocidos valores si el objetivo no es una máquina virtual específica. "
+"Constantes VMID conocidas definidos en ``socket`` son:"
#: ../Doc/library/socket.rst:247
msgid "``HV_GUID_ZERO``"
-msgstr ""
+msgstr "``HV_GUID_ZERO``"
#: ../Doc/library/socket.rst:248
msgid "``HV_GUID_BROADCAST``"
-msgstr ""
+msgstr "``HV_GUID_BROADCAST``"
#: ../Doc/library/socket.rst:249
msgid ""
"``HV_GUID_WILDCARD`` - Used to bind on itself and accept connections from "
"all partitions."
msgstr ""
+"``HV_GUID_WILDCARD`` - Se utiliza para vincularse a sí mismo y aceptar "
+"conexiones de todas las particiones."
#: ../Doc/library/socket.rst:251
msgid ""
"``HV_GUID_CHILDREN`` - Used to bind on itself and accept connection from "
"child partitions."
msgstr ""
+"``HV_GUID_CHILDREN`` - Se utiliza para vincularse a sí mismo y aceptar "
+"conexiones desde particiones secundarias."
#: ../Doc/library/socket.rst:253
msgid "``HV_GUID_LOOPBACK`` - Used as a target to itself."
-msgstr ""
+msgstr "``HV_GUID_LOOPBACK`` - Se utiliza como objetivo para sí mismo."
#: ../Doc/library/socket.rst:254
msgid ""
@@ -606,10 +615,13 @@ msgid ""
"partition. When used as an address target it will connect to the parent "
"partition."
msgstr ""
+"``HV_GUID_PARENT`` - Cuando se usa como enlace, acepta la conexión del padre "
+"partición. Cuando se utiliza como dirección de destino, se conectará al "
+"padre dividir."
#: ../Doc/library/socket.rst:257
msgid "The ``service_id`` is the service identifier of the registered service."
-msgstr ""
+msgstr "El ``service_id`` es el identificador del servicio registrado."
#: ../Doc/library/socket.rst:261
msgid ""
@@ -865,6 +877,18 @@ msgid ""
"``IP_BLOCK_SOURCE``, ``IP_ADD_SOURCE_MEMBERSHIP``, "
"``IP_DROP_SOURCE_MEMBERSHIP``."
msgstr ""
+"Se agregaron ``SO_RTABLE`` y ``SO_USER_COOKIE``. En OpenBSD y FreeBSD "
+"respectivamente, esas constantes se pueden usar de la misma manera que "
+"``SO_MARK`` es usado en Linux. También se agregaron opciones de socket TCP "
+"faltantes de Linux: ``TCP_MD5SIG``, ``TCP_THIN_LINEAR_TIMEOUTS``, "
+"``TCP_THIN_DUPACK``, ``TCP_REPAIR``, ``TCP_REPAIR_QUEUE``, "
+"``TCP_QUEUE_SEQ``, ``TCP_REPAIR_OPTIONS``, ``TCP_TIMESTAMP``, "
+"``TCP_CC_INFO``, ``TCP_SAVE_SYN``, ``TCP_SAVED_SYN``, ``TCP_REPAIR_WINDOW``, "
+"``TCP_FASTOPEN_CONNECT``, ``TCP_ULP``, ``TCP_MD5SIG_EXT``, "
+"``TCP_FASTOPEN_KEY``, ``TCP_FASTOPEN_NO_COOKIE``, ``TCP_ZEROCOPY_RECEIVE``, "
+"``TCP_INQ``, ``TCP_TX_DELAY``. Se agregó ``IP_PKTINFO``, "
+"``IP_UNBLOCK_SOURCE``, ``IP_BLOCK_SOURCE``, ``IP_ADD_SOURCE_MEMBERSHIP``, "
+"``IP_DROP_SOURCE_MEMBERSHIP``."
#: ../Doc/library/socket.rst:447 ../Doc/library/socket.rst:528
#: ../Doc/library/socket.rst:552
@@ -956,18 +980,16 @@ msgid ":ref:`Availability `: Linux >= 5.4."
msgstr ":ref:`Availability `: Linux >= 5.4."
#: ../Doc/library/socket.rst:516
-#, fuzzy
msgid ""
"These two constants, documented in the FreeBSD divert(4) manual page, are "
"also defined in the socket module."
msgstr ""
-"Muchas constantes de estos formularios, documentadas en la documentación de "
-"Linux, también se definen en el módulo de socket."
+"Estas dos constantes, documentadas en la página del manual de FreeBSD "
+"divert(4), también están definidas en el módulo de socket."
#: ../Doc/library/socket.rst:519
-#, fuzzy
msgid ":ref:`Availability