diff --git a/library/importlib.po b/library/importlib.po
index e8d7508952..2a845272cb 100644
--- a/library/importlib.po
+++ b/library/importlib.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2024-11-21 16:38-0300\n"
-"PO-Revision-Date: 2022-11-25 00:29+0800\n"
-"Last-Translator: Rodrigo Tobar <rtobarc@gmail.com>\n"
-"Language: es\n"
+"PO-Revision-Date: 2025-01-29 10:47-0300\n"
+"Last-Translator: Alfonso Areiza <alfareiza@gmail.com>\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.16.0\n"
+"X-Generator: Poedit 3.5\n"
 
 #: ../Doc/library/importlib.rst:2
 msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`"
@@ -35,7 +36,7 @@ msgstr "Introducción"
 
 #: ../Doc/library/importlib.rst:20
 msgid "The purpose of the :mod:`importlib` package is three-fold."
-msgstr "El propósito del paquete :mod:`importlib` es triple:"
+msgstr "El propósito del paquete :mod:`importlib` es triple."
 
 #: ../Doc/library/importlib.rst:22
 msgid ""
@@ -409,6 +410,10 @@ msgid ""
 "except NameError:\n"
 "    cache = {}"
 msgstr ""
+"try:\n"
+"cache\n"
+"except NameError:\n"
+"cache = {}"
 
 #: ../Doc/library/importlib.rst:187
 msgid ""
@@ -495,15 +500,23 @@ msgid ""
 "                                 +-- FileLoader\n"
 "                                 +-- SourceLoader"
 msgstr ""
+"object\n"
+"+-- MetaPathFinder\n"
+"+-- PathEntryFinder\n"
+"+-- Loader\n"
+"+-- ResourceLoader --------+\n"
+"+-- InspectLoader          |\n"
+"+-- ExecutionLoader --+\n"
+"+-- FileLoader\n"
+"+-- SourceLoader"
 
 #: ../Doc/library/importlib.rst:240
 msgid "An abstract base class representing a :term:`meta path finder`."
 msgstr "Una clase base abstracta que representa :term:`meta path finder`."
 
 #: ../Doc/library/importlib.rst:244 ../Doc/library/importlib.rst:280
-#, fuzzy
 msgid "No longer a subclass of :class:`!Finder`."
-msgstr "Ya no hereda de :class:`Finder`."
+msgstr "Ya no hereda de :class:`!Finder`."
 
 #: ../Doc/library/importlib.rst:249
 msgid ""
@@ -538,9 +551,8 @@ msgstr ""
 "`sys.meta_path`."
 
 #: ../Doc/library/importlib.rst:267
-#, fuzzy
 msgid "Returns ``None`` when called instead of :data:`NotImplemented`."
-msgstr "Retorna ``None`` cuando se llama en lugar de ``NotImplemented``."
+msgstr "Retorna ``None`` cuando se llama en lugar de :data:`NotImplemented`."
 
 #: ../Doc/library/importlib.rst:273
 msgid ""
@@ -645,7 +657,6 @@ msgstr ""
 "se lanza :exc:`ImportError`; de lo contrario, se retorna el módulo cargado."
 
 #: ../Doc/library/importlib.rst:345
-#, fuzzy
 msgid ""
 "If the requested module already exists in :data:`sys.modules`, that module "
 "should be used and reloaded. Otherwise the loader should create a new module "
@@ -660,9 +671,8 @@ msgstr ""
 "e insertarlo en :data:`sys.modules` antes de que comience la carga, para "
 "evitar la recursividad de la importación. Si el cargador insertó un módulo y "
 "la carga falla, el cargador debe eliminarlo de :data:`sys.modules`; los "
-"módulos que ya están en :data:`sys.modules` antes de que el cargador "
-"comenzara a ejecutarse deben dejarse en paz (ver :func:`importlib.util."
-"module_for_loader`)."
+"módulos que ya estaban en :data:`sys.modules` antes de que el cargador "
+"comenzara a ejecutarse deben dejarse intactos."
 
 #: ../Doc/library/importlib.rst:354
 msgid ""
@@ -715,7 +725,6 @@ msgid ":attr:`__path__`"
 msgstr ":attr:`__path__`"
 
 #: ../Doc/library/importlib.rst:372
-#, fuzzy
 msgid ""
 "The list of locations where the package's submodules will be found. Most of "
 "the time this is a single directory. The import system passes this attribute "
@@ -726,7 +735,7 @@ msgstr ""
 "La lista de ubicaciones donde los sub-módulos del paquete pueden ser "
 "encontrados. La mayoría de las veces es un solo directorio. El sistema de "
 "importación pasa este atributo a ``__import__()`` y a buscadores de la misma "
-"forma que :attr:`sys.path` pero sólo para el paquete. No está establecido en "
+"forma que :data:`sys.path` pero sólo para el paquete. No está establecido en "
 "módulos que no son paquetes, por lo que puede ser usado como un indicador si "
 "el módulo es un paquete."
 
@@ -863,10 +872,10 @@ msgid ""
 msgstr ""
 "Un método abstracto para retornar la fuente de un módulo. Se retorna como "
 "una cadena de caracteres de texto usando :term:`universal newlines`, "
-"traduciendo todos los separadores de línea reconocidos en caracteres ``'\n"
-"'``. Retorna ``None`` si no hay una fuente disponible (por ejemplo, un "
-"módulo integrado). Lanza :exc:`ImportError` si el cargador no puede "
-"encontrar el módulo especificado."
+"traduciendo todos los separadores de línea reconocidos en caracteres "
+"``’\\n’``. Retorna ``None`` si no hay una fuente disponible (por ejemplo, un "
+"módulo integrado). Lanza la excepción :exc:`ImportError` si el cargador no "
+"puede encontrar el módulo especificado."
 
 #: ../Doc/library/importlib.rst:457 ../Doc/library/importlib.rst:466
 #: ../Doc/library/importlib.rst:516
@@ -991,7 +1000,7 @@ msgstr "Retorna :attr:`path`."
 
 #: ../Doc/library/importlib.rst:552
 msgid "Reads *path* as a binary file and returns the bytes from it."
-msgstr "Lee *path* como un archivo binario y devuelve los bytes de él."
+msgstr "Lee *path* como un archivo binario y retorna los bytes de él."
 
 #: ../Doc/library/importlib.rst:557
 msgid ""
@@ -1045,7 +1054,7 @@ msgid ""
 "Optional abstract method which returns a :class:`dict` containing metadata "
 "about the specified path.  Supported dictionary keys are:"
 msgstr ""
-"Método abstracto opcional que devuelve un :class:`dict` que contiene "
+"Método abstracto opcional que retorna un :class:`dict` que contiene "
 "metadatos sobre la ruta especificada. Las claves de diccionario admitidas "
 "son:"
 
@@ -1102,13 +1111,12 @@ msgstr ""
 "automáticamente."
 
 #: ../Doc/library/importlib.rst:611
-#, fuzzy
 msgid ""
 "When writing to the path fails because the path is read-only (:const:`errno."
 "EACCES`/:exc:`PermissionError`), do not propagate the exception."
 msgstr ""
 "Cuando la escritura en la ruta falla porque la ruta es de solo lectura (:"
-"attr:`errno.EACCES`/:exc:`PermissionError`), no propague la excepción."
+"const:`errno.EACCES`/:exc:`PermissionError`), no propague la excepción."
 
 #: ../Doc/library/importlib.rst:615
 msgid "No longer raises :exc:`NotImplementedError` when called."
@@ -1150,12 +1158,14 @@ msgstr ""
 
 #: ../Doc/library/importlib.rst:650
 msgid "*Superseded by TraversableResources*"
-msgstr ""
+msgstr "*Reemplazado por TraversableResources*"
 
 #: ../Doc/library/importlib.rst:652
 msgid ""
 "An :term:`abstract base class` to provide the ability to read *resources*."
 msgstr ""
+"Una :term:`clase base abstracta` para proporcionar la capacidad de leer "
+"*recursos*."
 
 #: ../Doc/library/importlib.rst:655
 msgid ""
@@ -1166,6 +1176,12 @@ msgid ""
 "does not matter if the package and its data file(s) are stored e.g. in a zip "
 "file versus on the file system."
 msgstr ""
+"Desde la perspectiva de este ABC, un *recurso* es un artefacto binario que "
+"se envía dentro de un paquete. Normalmente, es algo así como un archivo de "
+"datos que se encuentra junto al archivo ``__init__.py`` del paquete. El "
+"propósito de esta clase es ayudar a abstraer el acceso a dichos archivos de "
+"datos de modo que no importe si el paquete y sus archivos de datos se "
+"almacenan, por ejemplo, en un archivo zip o en el sistema de archivos."
 
 #: ../Doc/library/importlib.rst:663
 msgid ""
@@ -1178,6 +1194,16 @@ msgid ""
 "class are expected to directly correlate to a specific package (instead of "
 "potentially representing multiple packages or a module)."
 msgstr ""
+"Para cualquiera de los métodos de esta clase, se espera que un argumento "
+"*recurso* sea un :term:`path-like object` que conceptualmente, representa "
+"solo un nombre de archivo. Esto significa que no se deben incluir rutas de "
+"subdirectorio en el argumento *recurso*. Esto se debe a que la ubicación del "
+"paquete al que se dirige el lector actúa como el “directorio”. Por lo tanto, "
+"la metáfora para los directorios y los nombres de archivo es paquetes y "
+"recursos, respectivamente. Esta es también la razón por la que se espera que "
+"las instancias de esta clase se correlacionen directamente con un paquete "
+"específico (en lugar de representar potencialmente varios paquetes o un "
+"módulo)."
 
 #: ../Doc/library/importlib.rst:674
 msgid ""
@@ -1187,38 +1213,51 @@ msgid ""
 "not a package, this method should return :const:`None`. An object compatible "
 "with this ABC should only be returned when the specified module is a package."
 msgstr ""
+"Se espera que los cargadores que deseen admitir la lectura de recursos "
+"proporcionen un método llamado ``get_resource_reader(fullname)`` que retorna "
+"un objeto que implemente la interfaz de este ABC. Si el módulo especificado "
+"por fullname no es un paquete, este método debe retornar un :const:`None`. "
+"Un objeto compatible con este ABC solo debe devolverse cuando el módulo "
+"especificado sea un paquete."
 
 #: ../Doc/library/importlib.rst:683 ../Doc/library/importlib.rst:793
-#, fuzzy
 msgid "Use :class:`importlib.resources.abc.TraversableResources` instead."
-msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar."
+msgstr ""
+"Utilice :class:`importlib.resources.abc.TraversableResources` en su lugar."
 
 #: ../Doc/library/importlib.rst:688
 msgid ""
 "Returns an opened, :term:`file-like object` for binary reading of the "
 "*resource*."
 msgstr ""
+"Retorna un objeto abierto, :term:`file-like object`, para la lectura binaria "
+"del *recurso*."
 
 #: ../Doc/library/importlib.rst:691
 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised."
 msgstr ""
+"Si no se puede encontrar el recurso, se lanza una excepción :exc:"
+"`FileNotFoundError`."
 
 #: ../Doc/library/importlib.rst:696
-#, fuzzy
 msgid "Returns the file system path to the *resource*."
-msgstr "La ruta al archivo de origen."
+msgstr "Retorna la ruta del sistema de archivos al *recurso*."
 
 #: ../Doc/library/importlib.rst:698
 msgid ""
 "If the resource does not concretely exist on the file system, raise :exc:"
 "`FileNotFoundError`."
 msgstr ""
+"Si el recurso no existe concretamente en el sistema de archivos, lanza una "
+"excepción :exc:`FileNotFoundError`."
 
 #: ../Doc/library/importlib.rst:703
 msgid ""
 "Returns ``True`` if the named *name* is considered a resource. :exc:"
 "`FileNotFoundError` is raised if *name* does not exist."
 msgstr ""
+"Retorna ``True`` si el nombre *name* se considera un recurso. La excepción :"
+"exc:`FileNotFoundError` se lanza si *name* no existe."
 
 #: ../Doc/library/importlib.rst:708
 msgid ""
@@ -1227,6 +1266,10 @@ msgid ""
 "actual resources, e.g. it is acceptable to return names for which :meth:"
 "`is_resource` would be false."
 msgstr ""
+"Retorna un :term:`iterable` de cadenas de caracteres sobre el contenido del "
+"paquete. Tenga en cuenta que no es necesario que todos los nombres devueltos "
+"por el iterador sean recursos reales, por ejemplo, es aceptable devolver "
+"nombres para los cuales :meth:`is_resource` sería falso."
 
 #: ../Doc/library/importlib.rst:714
 msgid ""
@@ -1236,71 +1279,85 @@ msgid ""
 "is allowed so that when it is known that the package and resources are "
 "stored on the file system then those subdirectory names can be used directly."
 msgstr ""
+"Permitir que se retornen nombres que no sean recursos es permitir "
+"situaciones en las que se conoce a priori cómo se almacenan un paquete y sus "
+"recursos y los nombres que no son recursos serían útiles. Por ejemplo, se "
+"permite retornar nombres de subdirectorios para que, cuando se sepa que el "
+"paquete y los recursos están almacenados en el sistema de archivos, esos "
+"nombres de subdirectorios se puedan usar directamente."
 
 #: ../Doc/library/importlib.rst:722
 msgid "The abstract method returns an iterable of no items."
-msgstr ""
+msgstr "El método abstracto retorna un iterable sin elementos."
 
 #: ../Doc/library/importlib.rst:727
 msgid ""
 "An object with a subset of :class:`pathlib.Path` methods suitable for "
 "traversing directories and opening files."
 msgstr ""
+"Un objeto con un subconjunto de métodos de :class:`pathlib.Path` adecuados "
+"para recorrer directorios y abrir archivos."
 
 #: ../Doc/library/importlib.rst:730
 msgid ""
 "For a representation of the object on the file-system, use :meth:`importlib."
 "resources.as_file`."
 msgstr ""
+"Para obtener una representación del objeto en el sistema de archivos, "
+"utilice :meth:`importlib.resources.as_file`."
 
 #: ../Doc/library/importlib.rst:735
-#, fuzzy
 msgid "Use :class:`importlib.resources.abc.Traversable` instead."
-msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar."
+msgstr "Utilice :class:`importlib.resources.abc.Traversable` en su lugar."
 
 #: ../Doc/library/importlib.rst:740
 msgid "Abstract. The base name of this object without any parent references."
 msgstr ""
+"Abstracto. El nombre base de este objeto sin ninguna referencia principal."
 
 #: ../Doc/library/importlib.rst:744
 msgid "Yield ``Traversable`` objects in ``self``."
-msgstr ""
+msgstr "Produce objetos ``Traversable`` en ``self``."
 
 #: ../Doc/library/importlib.rst:748
 msgid "Return ``True`` if ``self`` is a directory."
-msgstr ""
+msgstr "Retorna ``True`` si ``self`` es un directorio."
 
 #: ../Doc/library/importlib.rst:752
 msgid "Return ``True`` if ``self`` is a file."
-msgstr ""
+msgstr "Retorna ``True`` si ``self`` es un archivo."
 
 #: ../Doc/library/importlib.rst:756
 msgid "Return Traversable child in ``self``."
-msgstr ""
+msgstr "Retorna un Traversable secundario en ``self``."
 
 #: ../Doc/library/importlib.rst:760
 msgid "Return ``Traversable`` child in ``self``."
-msgstr ""
+msgstr "Retorna un ``Traversable`` secundario en ``self``."
 
 #: ../Doc/library/importlib.rst:764
 msgid ""
 "*mode* may be 'r' or 'rb' to open as text or binary. Return a handle "
 "suitable for reading (same as :attr:`pathlib.Path.open`)."
 msgstr ""
+"*mode* puede ser ‘r’ o ‘rb’ para abrir como texto o binario. Retorna un "
+"identificador adecuado para su lectura (igual que :attr:`pathlib.Path.open`)."
 
 #: ../Doc/library/importlib.rst:767
 msgid ""
 "When opening as text, accepts encoding parameters such as those accepted by :"
 "attr:`io.TextIOWrapper`."
 msgstr ""
+"Al abrir como texto, acepta parámetros de codificación como los aceptados "
+"por :attr:`io.TextIOWrapper`."
 
 #: ../Doc/library/importlib.rst:772
 msgid "Read contents of ``self`` as bytes."
-msgstr ""
+msgstr "Lee el contenido de ``self`` como bytes."
 
 #: ../Doc/library/importlib.rst:776
 msgid "Read contents of ``self`` as text."
-msgstr ""
+msgstr "Lee el contenido de ``self`` como texto."
 
 #: ../Doc/library/importlib.rst:781
 msgid ""
@@ -1311,18 +1368,28 @@ msgid ""
 "Therefore, any loader supplying :class:`importlib.abc.TraversableResources` "
 "also supplies ResourceReader."
 msgstr ""
+"Una clase base abstracta para lectores de recursos capaces de servir a la "
+"interfaz :meth:`importlib.resources.files`. Subclases :class:`importlib."
+"resources.abc.ResourceReader` y proporciona implementaciones concretas de "
+"los métodos abstractos de :class:`importlib.resources.abc.ResourceReader`. "
+"Por lo tanto, cualquier cargador que proporcione :class:`importlib.abc."
+"TraversableResources` también proporciona ResourceReader."
 
 #: ../Doc/library/importlib.rst:788
 msgid ""
 "Loaders that wish to support resource reading are expected to implement this "
 "interface."
 msgstr ""
+"Se espera que los cargadores que deseen admitir la lectura de recursos "
+"implementen esta interfaz."
 
 #: ../Doc/library/importlib.rst:798
 msgid ""
 "Returns a :class:`importlib.resources.abc.Traversable` object for the loaded "
 "package."
 msgstr ""
+"Retorna un objeto :class:`importlib.resources.abc.Traversable` para el "
+"paquete cargado."
 
 #: ../Doc/library/importlib.rst:804
 msgid ":mod:`importlib.machinery` -- Importers and path hooks"
@@ -1598,16 +1665,15 @@ msgid "Clear out the internal cache."
 msgstr "Borrar el caché interno."
 
 #: ../Doc/library/importlib.rst:1000
-#, fuzzy
 msgid ""
 "A class method which returns a closure for use on :data:`sys.path_hooks`. An "
 "instance of :class:`FileFinder` is returned by the closure using the path "
 "argument given to the closure directly and *loader_details* indirectly."
 msgstr ""
-"Un método de clase que devuelve un cierre para su uso en :attr:`sys."
-"path_hooks`. Una instancia de :class:`FileFinder` es retornada por el cierre "
-"usando el argumento de ruta dado al cierre directamente y *loader_details* "
-"indirectamente."
+"Un método de clase que retorna un cierre para su uso en :data:`sys."
+"path_hooks`. El cierre retorna una instancia de :class:`FileFinder` "
+"utilizando el argumento de ruta proporcionado al cierre directamente y "
+"*loader_details* indirectamente."
 
 #: ../Doc/library/importlib.rst:1005
 msgid ""
@@ -1637,7 +1703,7 @@ msgstr "La ruta al archivo de origen."
 
 #: ../Doc/library/importlib.rst:1027
 msgid "Return ``True`` if :attr:`path` appears to be for a package."
-msgstr "Devuelve ``True`` si :attr:`path` parece ser para un paquete."
+msgstr "Retorna ``True`` si :attr:`path` parece ser para un paquete."
 
 #: ../Doc/library/importlib.rst:1031
 msgid ""
@@ -1704,7 +1770,7 @@ msgstr ""
 msgid ""
 "Returns ``None`` as bytecode files have no source when this loader is used."
 msgstr ""
-"Devuelve ``None`` ya que los archivos de código de bytes no tienen fuente "
+"Retorna ``None`` ya que los archivos de código de bytes no tienen fuente "
 "cuando se usa este cargador."
 
 #: ../Doc/library/importlib.rst:1092
@@ -1729,10 +1795,15 @@ msgid ""
 "subinterpreters if it doesn't implement multi-phase init (see :pep:`489`), "
 "even if it would otherwise import successfully."
 msgstr ""
+"Tenga en cuenta que, de manera predeterminada, la importación de un módulo "
+"de extensión fallará en los subintérpretes si no implementa la "
+"inicialización multifase (ver :pep:`489`), incluso si de lo contrario se "
+"importaría correctamente."
 
 #: ../Doc/library/importlib.rst:1104
 msgid "Multi-phase init is now required for use in subinterpreters."
 msgstr ""
+"Ahora se requiere inicialización multifase para el uso en subintérpretes."
 
 #: ../Doc/library/importlib.rst:1109 ../Doc/library/importlib.rst:1293
 msgid "Name of the module the loader supports."
@@ -1794,9 +1865,15 @@ msgid ""
 ">>> isinstance(my_namespace.__loader__, importlib.abc.Loader)\n"
 "True"
 msgstr ""
+">>> from importlib.machinery import NamespaceLoader\n"
+">>> import my_namespace\n"
+">>> isinstance(my_namespace.__loader__, NamespaceLoader)\n"
+"True\n"
+">>> import importlib.abc\n"
+">>> isinstance(my_namespace.__loader__, importlib.abc.Loader)\n"
+"True"
 
 #: ../Doc/library/importlib.rst:1168
-#, fuzzy
 msgid ""
 "A specification for a module's import-system-related state.  This is "
 "typically exposed as the module's :attr:`__spec__` attribute.  Many of these "
@@ -1809,37 +1886,35 @@ msgid ""
 "versa."
 msgstr ""
 "Una especificación para el estado relacionado con el sistema de importación "
-"de un módulo. Esto generalmente se expone como el atributo :attr:`__spec__`` "
-"del módulo. En las descripciones siguientes, los nombres entre paréntesis "
-"dan el atributo correspondiente disponible directamente en el objeto del "
-"módulo, por ejemplo, ``module.__spec__.origin == module.__file__``. Sin "
-"embargo, tenga en cuenta que, si bien los *valores* suelen ser equivalentes, "
-"pueden diferir ya que no hay sincronización entre los dos objetos. Por "
-"ejemplo, es posible actualizar el  :attr:`__path__` del módulo en tiempo de "
-"ejecución, y esto no se reflejará automáticamente en el :attr:`__spec__."
-"origin` del módulo, y viceversa."
+"de un módulo. Esto se expone típicamente como el atributo :attr:`__spec__` "
+"del módulo. Muchos de estos atributos también están disponibles directamente "
+"en un módulo: por ejemplo, ``module.__spec__.origin == module.__file__``. "
+"Sin embargo, tenga en cuenta que si bien los *values* suelen ser "
+"equivalentes, pueden diferir ya que no hay sincronización entre los dos "
+"objetos. Por ejemplo, es posible actualizar el :attr:`__file__` del módulo "
+"en tiempo de ejecución y esto no se reflejará automáticamente en el :attr:"
+"`__spec__.origin` del módulo, y viceversa."
 
 #: ../Doc/library/importlib.rst:1181
-#, fuzzy
 msgid ""
 "The module's fully qualified name (see :attr:`__name__` attributes on "
 "modules). The :term:`finder` should always set this attribute to a non-empty "
 "string."
 msgstr ""
-"El nombre completo del módulo. El :term:`buscador <finder>` debe siempre "
-"establecer este atributo a una cadena de caracteres no vacía."
+"El nombre completo del módulo (consulte los atributos :attr:`__name__` en "
+"los módulos). El :term:`finder` siempre debe establecer este atributo en una "
+"cadena de caracteres que no esté vacía."
 
 #: ../Doc/library/importlib.rst:1187
-#, fuzzy
 msgid ""
 "The :term:`loader` used to load the module (see :attr:`__loader__` "
 "attributes on modules). The :term:`finder` should always set this attribute."
 msgstr ""
-"El :term:`Cargador <loader>` que debe usarse para cargar el módulo. El :term:"
-"`Buscador <finder>` siempre debe establecer este atributo."
+"El :term:`loader` utilizado para cargar el módulo (ver atributos :attr:"
+"`__loader__` en módulos). El :term:`finder` siempre debe establecer este "
+"atributo."
 
 #: ../Doc/library/importlib.rst:1193
-#, fuzzy
 msgid ""
 "The location the :term:`loader` should use to load the module (see :attr:"
 "`__file__` attributes on modules). For example, for modules loaded from a ."
@@ -1848,15 +1923,15 @@ msgid ""
 "uncommon case that there is not one (like for namespace packages), it should "
 "be set to ``None``."
 msgstr ""
-"La ubicación que el :term:`cargador <loader>` debe usar para cargar el "
-"módulo. Por ejemplo, para módulos cargados de archivos .py éste es el nombre "
-"del archivo. El :term:`buscador <finder>` debe siempre establecer este "
-"atributo a un valor significativo para que el :term:`cargador <loader>` lo "
-"use. El en caso poco común de que no hay uno (como para paquetes de nombre "
-"de espacio), debe estar establecido en ``None``."
+"La ubicación que el :term:`loader` debe usar para cargar el módulo (vea los "
+"atributos :attr:`__file__` en los módulos). Por ejemplo, para los módulos "
+"cargados desde un archivo .py, este es el nombre del archivo. El :term:"
+"`finder` siempre debe establecer este atributo en un valor significativo "
+"para que lo use el :term:`loader`. En el caso poco común de que no haya uno "
+"(como para los paquetes de espacios de nombres), se debe establecer en "
+"``None``."
 
 #: ../Doc/library/importlib.rst:1202
-#, fuzzy
 msgid ""
 "The list of locations where the package's submodules will be found (see :"
 "attr:`__path__` attributes on modules). Most of the time this is a single "
@@ -1865,12 +1940,13 @@ msgid ""
 "It should be set to ``None`` for non-package modules.  It is set "
 "automatically later to a special object for namespace packages."
 msgstr ""
-"La lista de ubicaciones donde los sub-módulos del paquete serán encontrados. "
-"La mayoría de las veces es un solo directorio. El :term:`buscador <finder>` "
-"debe establecer este atributo a una lista, incluso una vacía, para indicar "
-"al sistema de importación que el módulo es un paquete. Debe ser establecido "
-"en ``None`` para módulos que no son paquetes. Es establecido automáticamente "
-"más tarde a un objeto especial para paquetes de espacio de nombres."
+"La lista de ubicaciones donde se encontrarán los submódulos del paquete "
+"(consulte los atributos :attr:`__path__` en los módulos). La mayoría de las "
+"veces, se trata de un solo directorio. El :term:`finder` debe establecer "
+"este atributo en una lista, incluso una vacía, para indicar al sistema de "
+"importación que el módulo es un paquete. Debe establecerse en ``None`` para "
+"módulos que no sean paquetes. Se establece automáticamente más tarde en un "
+"objeto especial para paquetes de espacio de nombres."
 
 #: ../Doc/library/importlib.rst:1212
 msgid ""
@@ -1883,46 +1959,46 @@ msgstr ""
 "carga el módulo.. De lo contrario, debe establecerse en ``None``."
 
 #: ../Doc/library/importlib.rst:1218
-#, fuzzy
 msgid ""
 "The filename of a compiled version of the module's code (see :attr:"
 "`__cached__` attributes on modules). The :term:`finder` should always set "
 "this attribute but it may be ``None`` for modules that do not need compiled "
 "code stored."
 msgstr ""
-"El nombre de archivo de una versión compilada del código de el módulo. El :"
-"term:`buscador <finder>` siempre debe establecer este atributo pero puede "
-"ser ``None`` para módulos que no necesitan guardar código compilado."
+"El nombre de archivo de una versión compilada del código del módulo "
+"(consulte los atributos :attr:`__cached__` en los módulos). El :term:"
+"`finder` siempre debe establecer este atributo, pero puede ser ``None`` para "
+"los módulos que no necesitan almacenar el código compilado."
 
 #: ../Doc/library/importlib.rst:1225
-#, fuzzy
 msgid ""
 "(Read-only) The fully qualified name of the package the module is in (or the "
 "empty string for a top-level module). See :attr:`__package__` attributes on "
 "modules. If the module is a package then this is the same as :attr:`name`."
 msgstr ""
-"(Solo lectura) El nombre completo del paquete bajo el cual está este módulo "
-"(o la cadena de caracteres vacía para los módulos de nivel superior). Si el "
-"módulo es un paquete es lo mismo que :attr:`__name__`."
+"(Solo lectura) El nombre completo del paquete en el que se encuentra el "
+"módulo (o la cadena de caracteres vacía para un módulo de nivel superior). "
+"Consulte los atributos :attr:`__package__` en los módulos. Si el módulo es "
+"un paquete, esto es lo mismo que :attr:`name`."
 
 #: ../Doc/library/importlib.rst:1232
-#, fuzzy
 msgid ""
 "``True`` if the spec's :attr:`origin` refers to a loadable location, "
 "``False`` otherwise.  This value impacts how :attr:`origin` is interpreted "
 "and how the module's :attr:`__file__` is populated."
 msgstr ""
-"``False`` en caso contrario. Este valor impacta en cómo :attr:`origin` es "
-"interpretado y cómo el atributo :attr:`__file__` del módulo es poblado."
+"``True`` si el :attr:`origin` de la especificación hace referencia a una "
+"ubicación cargable, ``Falso`` en caso contrario. Este valor afecta la forma "
+"en que se interpreta el :attr:`origin` y cómo se completa el :attr:"
+"`__file__` del módulo."
 
 #: ../Doc/library/importlib.rst:1239
-#, fuzzy
 msgid ""
 "A specialization of :class:`importlib.machinery.ExtensionFileLoader` that is "
 "able to load extension modules in Framework format."
 msgstr ""
-"Una implementación concreta de :class:`importlib.abc.ExecutionLoader` para "
-"módulos de extensión."
+"Una especialización de :class:`importlib.machinery.ExtensionFileLoader` que "
+"puede cargar módulos de extensión en formato Framework."
 
 #: ../Doc/library/importlib.rst:1242
 msgid ""
@@ -1932,6 +2008,12 @@ msgid ""
 "be only a single binary per framework, and there can be no executable binary "
 "material outside the Frameworks folder."
 msgstr ""
+"Para que sea compatible con la App Store de iOS, *todos* los módulos "
+"binarios de una aplicación de iOS deben ser bibliotecas dinámicas, "
+"contenidas en un marco con metadatos apropiados, almacenados en la carpeta "
+"``Frameworks`` de la aplicación empaquetada. Solo puede haber un único "
+"binario por marco y no puede haber material binario ejecutable fuera de la "
+"carpeta Frameworks."
 
 #: ../Doc/library/importlib.rst:1248
 msgid ""
@@ -1946,6 +2028,18 @@ msgid ""
 "expected to contain a ``.origin`` file that contains the location of the ``."
 "fwork`` file, relative to the app bundle."
 msgstr ""
+"Para cumplir con este requisito, cuando se ejecuta en iOS, los binarios del "
+"módulo de extensión *no* se empaquetan como archivos ``.so`` en ``sys."
+"path``, sino como marcos independientes individuales. Para descubrir esos "
+"marcos, este cargador se debe registrar con la extensión de archivo ``."
+"fwork``, con un archivo ``.fwork`` que actúa como marcador de posición en la "
+"ubicación original del binario en ``sys.path``. El archivo ``.fwork`` "
+"contiene la ruta del binario real en la carpeta ``Frameworks``, en relación "
+"con el paquete de la aplicación. Para permitir la resolución de un binario "
+"empaquetado en el marco de trabajo en la ubicación original, se espera que "
+"el marco de trabajo contenga un archivo ``.origin`` que contenga la "
+"ubicación del archivo ``.fwork``, en relación con el paquete de la "
+"aplicación."
 
 #: ../Doc/library/importlib.rst:1259
 msgid ""
@@ -1962,6 +2056,18 @@ msgid ""
 "framework would also contain ``Frameworks/foo.bar._whiz.framework/foo.bar."
 "_whiz.origin``, containing the path to the ``.fwork`` file."
 msgstr ""
+"Por ejemplo, considere el caso de una importación ``from foo.bar import "
+"_whiz``, donde ``_whiz`` se implementa con el módulo binario ``sources/foo/"
+"bar/_whiz.abi3.so``, donde ``sources`` es la ubicación registrada en ``sys."
+"path``, relativa al paquete de la aplicación. Este módulo *debe* "
+"distribuirse como ``Frameworks/foo.bar._whiz.framework/foo.bar._whiz`` "
+"(creando el nombre del marco a partir de la ruta de importación completa del "
+"módulo), con un archivo ``Info.plist`` en el directorio ``.framework`` que "
+"identifica el binario como un marco. El módulo ``foo.bar._whiz`` se "
+"representaría en la ubicación original con un archivo marcador ``sources/foo/"
+"bar/_whiz.abi3.fwork``, que contiene la ruta ``Frameworks/foo.bar._whiz/foo."
+"bar._whiz``. El framework también contendría ``Frameworks/foo.bar._whiz."
+"framework/foo.bar._whiz.origin``, que contiene la ruta al archivo ``.fwork``."
 
 #: ../Doc/library/importlib.rst:1273
 msgid ""
@@ -1971,6 +2077,11 @@ msgid ""
 "However, the spec origin will reference the location of the *actual* binary "
 "in the ``.framework`` folder."
 msgstr ""
+"Cuando se carga un módulo con este cargador, el ``__file__`` del módulo se "
+"indicará como la ubicación del archivo ``.fwork``. Esto permite que el "
+"código utilice el ``__file__`` de un módulo como ancla para recorrer el "
+"sistema de archivos. Sin embargo, el origen de la especificación hará "
+"referencia a la ubicación del binario *real* en la carpeta ``.framework``."
 
 #: ../Doc/library/importlib.rst:1279
 msgid ""
@@ -1982,15 +2093,21 @@ msgid ""
 "with a build step in the Xcode project; see the iOS documentation for "
 "details on how to construct this build step."
 msgstr ""
+"El proyecto Xcode que crea la aplicación es responsable de convertir los "
+"archivos ``.so`` desde donde se encuentren en ``PYTHONPATH`` en marcos en la "
+"carpeta ``Frameworks`` (lo que incluye quitar las extensiones del archivo "
+"del módulo, agregar metadatos del marco y firmar el marco resultante), y "
+"crear los archivos ``.fwork`` y ``.origin``. Esto generalmente se hará con "
+"un paso de compilación en el proyecto Xcode; consulte la documentación de "
+"iOS para obtener detalles sobre cómo construir este paso de compilación."
 
 #: ../Doc/library/importlib.rst:1289
 msgid ":ref:`Availability <availability>`: iOS."
-msgstr ""
+msgstr ":ref:`Availability <availability>`: iOS."
 
 #: ../Doc/library/importlib.rst:1297
-#, fuzzy
 msgid "Path to the ``.fwork`` file for the extension module."
-msgstr "Ruta al archivo del módulo."
+msgstr "Ruta al archivo ``.fwork`` para el módulo de extensión."
 
 #: ../Doc/library/importlib.rst:1301
 msgid ":mod:`importlib.util` -- Utility code for importers"
@@ -2150,7 +2267,6 @@ msgstr ""
 "relativa no válidos."
 
 #: ../Doc/library/importlib.rst:1403
-#, fuzzy
 msgid ""
 "Find the :term:`spec <module spec>` for a module, optionally relative to the "
 "specified **package** name. If the module is in :data:`sys.modules`, then "
@@ -2159,13 +2275,13 @@ msgid ""
 "Otherwise a search using :data:`sys.meta_path` is done. ``None`` is returned "
 "if no spec is found."
 msgstr ""
-"Busca el :term:`spec <module spec>` para un módulo, opcionalmente relativo "
-"al nombre del **package** especificado. Si el módulo está en :attr:`sys."
+"Busque el :term:`spec <module spec>` de un módulo, opcionalmente relativa al "
+"nombre del **paquete** especificado. Si el módulo está en :data:`sys."
 "modules`, se retorna ``sys.modules[name].__spec__`` (a menos que la "
-"especificación sea ``None`` o no esté establecida, en cuyo caso se lanza :"
-"exc:`ValueError`). De lo contrario, se realiza una búsqueda utilizando :attr:"
-"`sys.meta_path`. Se retorna ``None`` si no se encuentra ninguna "
-"especificación."
+"especificación sea ``None`` o no esté configurada, en cuyo caso se lanza una "
+"excepción :exc:`ValueError`). De lo contrario, se realiza una búsqueda "
+"utilizando :data:`sys.meta_path`. Se retorna ``None`` si no se encuentra "
+"ninguna especificación."
 
 #: ../Doc/library/importlib.rst:1410
 msgid ""
@@ -2263,6 +2379,12 @@ msgid ""
 "for a multi-phase init module that doesn't explicitly support a per-"
 "interpreter GIL, when imported in an interpreter with its own GIL."
 msgstr ""
+"Un administrador de contexto que puede omitir temporalmente la comprobación "
+"de compatibilidad para módulos de extensión. De manera predeterminada, la "
+"comprobación está habilitada y fallará cuando se importe un módulo de "
+"inicialización de una sola fase en un subintérprete. También fallará para un "
+"módulo de inicialización de varias fases que no admita explícitamente una "
+"GIL por intérprete, cuando se importe en un intérprete con su propia GIL."
 
 #: ../Doc/library/importlib.rst:1477
 msgid ""
@@ -2270,6 +2392,9 @@ msgid ""
 "is likely to eventually go away.  There's is a pretty good chance this is "
 "not what you were looking for."
 msgstr ""
+"Tenga en cuenta que esta función está pensada para dar cabida a un caso "
+"inusual, que probablemente desaparecerá en algún momento. Es muy probable "
+"que esto no sea lo que estaba buscando."
 
 #: ../Doc/library/importlib.rst:1481
 msgid ""
@@ -2277,12 +2402,18 @@ msgid ""
 "interface of multi-phase init (:pep:`489`) and lying about support for "
 "multiple interpreters (or per-interpreter GIL)."
 msgstr ""
+"Puede obtener el mismo efecto que esta función implementando la interfaz "
+"básica de init multifase (:pep:`489`) y mintiendo acerca del soporte para "
+"múltiples intérpretes (o por intérprete GIL)."
 
 #: ../Doc/library/importlib.rst:1486
 msgid ""
 "Using this function to disable the check can lead to unexpected behavior and "
 "even crashes.  It should only be used during extension module development."
 msgstr ""
+"El uso de esta función para desactivar la comprobación puede provocar un "
+"comportamiento inesperado e incluso fallos. Solo debe utilizarse durante el "
+"desarrollo de módulos de extensión."
 
 #: ../Doc/library/importlib.rst:1494
 msgid ""
@@ -2293,7 +2424,6 @@ msgstr ""
 "módulo tiene acceso a un atributo."
 
 #: ../Doc/library/importlib.rst:1497
-#, fuzzy
 msgid ""
 "This class **only** works with loaders that define :meth:`~importlib.abc."
 "Loader.exec_module` as control over what module type is used for the module "
@@ -2306,14 +2436,14 @@ msgid ""
 "raised if such a substitution is detected."
 msgstr ""
 "Esta clase **solo** funciona con cargadores que definen :meth:`~importlib."
-"abc.Loader.exec_module` ya que se requiere control sobre qué tipo de módulo "
-"se usa para el módulo. Por esas mismas razones, el método del cargador :meth:"
-"`~importlib.abc.Loader.create_module` debe retornar ``None`` o un tipo para "
-"el cual su atributo ``__class__`` se puede mutar junto con no usar :term:"
+"abc.Loader.exec_module`, ya que se requiere control sobre qué tipo de módulo "
+"se usa para el módulo. Por esas mismas razones, el método :meth:`~importlib."
+"abc.Loader.create_module` del cargador debe retornar ``None`` o un tipo para "
+"el cual se pueda mutar su atributo ``__class__`` junto con no usar :term:"
 "`slots <__slots__>`. Finalmente, los módulos que sustituyen el objeto "
-"colocado en :attr:`sys.modules` no funcionarán ya que no hay forma de "
+"colocado en :data:`sys.modules` no funcionarán ya que no hay forma de "
 "reemplazar correctamente las referencias del módulo en todo el intérprete de "
-"forma segura; :exc:`ValueError` se genera si se detecta tal sustitución."
+"manera segura; :exc:`ValueError` se lanza si se detecta dicha sustitución."
 
 #: ../Doc/library/importlib.rst:1508
 msgid ""
@@ -2341,14 +2471,13 @@ msgstr ""
 "BuiltinImporter` y :class:`importlib.machinery.ExtensionFileLoader`."
 
 #: ../Doc/library/importlib.rst:1523
-#, fuzzy
 msgid ""
 "A class method which returns a callable that creates a lazy loader. This is "
 "meant to be used in situations where the loader is passed by class instead "
 "of by instance. ::"
 msgstr ""
-"Un método estático que devuelve un invocable que crea un cargador diferido. "
-"Esto está destinado a utilizarse en situaciones en las que el cargador se "
+"Un método de clase que retorna un elemento invocable que crea un cargador "
+"diferido. Está pensado para usarse en situaciones en las que el cargador se "
 "pasa por clase en lugar de por instancia. ::"
 
 #: ../Doc/library/importlib.rst:1528
@@ -2358,6 +2487,10 @@ msgid ""
 "lazy_loader = importlib.util.LazyLoader.factory(loader)\n"
 "finder = importlib.machinery.FileFinder(path, (lazy_loader, suffixes))"
 msgstr ""
+"suffixes = importlib.machinery.SOURCE_SUFFIXES\n"
+"loader = importlib.machinery.SourceFileLoader\n"
+"lazy_loader = importlib.util.LazyLoader.factory(loader)\n"
+"finder = importlib.machinery.FileFinder(path, (lazy_loader, suffixes))"
 
 #: ../Doc/library/importlib.rst:1536
 msgid "Examples"
@@ -2380,6 +2513,9 @@ msgid ""
 "\n"
 "itertools = importlib.import_module('itertools')"
 msgstr ""
+"import importlib\n"
+"\n"
+"itertools = importlib.import_module('itertools')"
 
 #: ../Doc/library/importlib.rst:1550
 msgid "Checking if a module can be imported"
@@ -2420,6 +2556,22 @@ msgid ""
 "else:\n"
 "    print(f\"can't find the {name!r} module\")"
 msgstr ""
+"import importlib.util\n"
+"import sys\n"
+"\n"
+"# Con fines ilustrativos.\n"
+"name = 'itertools'\n"
+"\n"
+"if name in sys.modules:\n"
+"print(f\"{name!r} already in sys.modules\")\n"
+"elif (spec := importlib.util.find_spec(name)) is not None:\n"
+"# Si eligió realizar la importación real ...\n"
+"module = importlib.util.module_from_spec(spec)\n"
+"sys.modules[name] = module\n"
+"spec.loader.exec_module(module)\n"
+"print(f\"{name!r} ha sido importado\")\n"
+"else:\n"
+"print(f\"no puede ser encontrado el módulo {name!r}\")"
 
 #: ../Doc/library/importlib.rst:1578
 msgid "Importing a source file directly"
@@ -2434,15 +2586,20 @@ msgid ""
 "`runpy.run_path` when the global namespace resulting from running a Python "
 "file is appropriate."
 msgstr ""
+"Esta receta debe usarse con precaución: es una aproximación de una "
+"declaración de importación donde se especifica directamente la ruta del "
+"archivo, en lugar de buscar :data:`sys.path`. Primero se deben considerar "
+"alternativas, como modificar :data:`sys.path` cuando se requiere un módulo "
+"adecuado o usar :func:`runpy.run_path` cuando el espacio de nombres global "
+"resultante de la ejecución de un archivo Python es apropiado."
 
 #: ../Doc/library/importlib.rst:1587
-#, fuzzy
 msgid ""
 "To import a Python source file directly from a path, use the following "
 "recipe::"
 msgstr ""
-"Para importar un archivo fuente de Python directamente, use la siguiente "
-"receta::"
+"Para importar un archivo fuente de Python directamente desde una ruta, use "
+"la siguiente receta:"
 
 #: ../Doc/library/importlib.rst:1589
 msgid ""
@@ -2466,6 +2623,25 @@ msgid ""
 "# Similar outcome as `import json`.\n"
 "json = import_from_path(module_name, file_path)"
 msgstr ""
+"import importlib.util\n"
+"import sys\n"
+"\n"
+"\n"
+"def import_from_path(module_name, file_path):\n"
+"spec = importlib.util.spec_from_file_location(module_name, file_path)\n"
+"module = importlib.util.module_from_spec(spec)\n"
+"sys.modules[module_name] = module\n"
+"spec.loader.exec_module(module)\n"
+"return module\n"
+"\n"
+"\n"
+"# Sólo con fines ilustrativos. (el uso de `json` es arbitrario).\n"
+"import json\n"
+"file_path = json.__file__\n"
+"module_name = json.__name__\n"
+"\n"
+"# Resultado similar a `import json`.\n"
+"json = import_from_path(module_name, file_path)"
 
 #: ../Doc/library/importlib.rst:1611
 msgid "Implementing lazy imports"
@@ -2494,13 +2670,28 @@ msgid ""
 ">>> lazy_typing.TYPE_CHECKING\n"
 "False"
 msgstr ""
+">>> import importlib.util\n"
+">>> import sys\n"
+">>> def lazy_import(name):\n"
+"...spec = importlib.util.find_spec(name)\n"
+"...loader = importlib.util.LazyLoader(spec.loader)\n"
+"...spec.loader = loader\n"
+"...module = importlib.util.module_from_spec(spec)\n"
+"...sys.modules[name] = module\n"
+"...loader.exec_module(module)\n"
+"...return module\n"
+"...\n"
+">>> lazy_typing = lazy_import(\"typing\")\n"
+">>> #lazy_typing es un objeto de módulo real,\n"
+">>> #pero aún no está cargado en la memoria.\n"
+">>> lazy_typing.TYPE_CHECKING\n"
+"False"
 
 #: ../Doc/library/importlib.rst:1634
 msgid "Setting up an importer"
 msgstr "Configurar un importador"
 
 #: ../Doc/library/importlib.rst:1636
-#, fuzzy
 msgid ""
 "For deep customizations of import, you typically want to implement an :term:"
 "`importer`. This means managing both the :term:`finder` and :term:`loader` "
@@ -2513,17 +2704,17 @@ msgid ""
 "will use them (for creating an importer for yourself, read the documentation "
 "for the appropriate classes defined within this package)::"
 msgstr ""
-"Para personalizaciones profundas de la importación, normalmente desea "
-"implementar un :term:`importador`. Esto significa administrar tanto el lado :"
-"term:`finder` como :term:`loader` de las cosas. Para los buscadores, hay dos "
-"sabores para elegir según sus necesidades: un :term:`meta path finder` o un :"
-"term:`path entry finder`. El primero es lo que pondrías en :attr:`sys."
-"meta_path` mientras que el segundo es lo que creas usando un :term:`path "
-"entry hook` en :attr:`sys.path_hooks` que funciona con :attr:`sys .path` "
-"entradas para crear potencialmente un buscador. Este ejemplo le mostrará "
-"cómo registrar sus propios importadores para que import los utilice (para "
-"crear un importador para usted, lea la documentación de las clases "
-"apropiadas definidas dentro de este paquete):"
+"Para personalizaciones profundas de importación, normalmente querrá "
+"implementar un :term:`importador`. Esto significa gestionar tanto el :term:"
+"`buscador` como el :term:`cargador`. Para los buscadores hay dos opciones "
+"para elegir según sus necesidades: un :term:`meta path finder` o un :term:"
+"`path entry finder`. El primero es lo que pondría en :data:`sys.meta_path` "
+"mientras que el segundo es lo que crea utilizando un :term:`path entry hook` "
+"en :data:`sys.path_hooks` que funciona con entradas :data:`sys.path` para "
+"crear potencialmente un buscador. Este ejemplo le mostrará cómo registrar "
+"sus propios importadores para que la importación los utilice (para crear un "
+"importador para usted, lea la documentación de las clases apropiadas "
+"definidas dentro de este paquete)::"
 
 #: ../Doc/library/importlib.rst:1647
 msgid ""
@@ -2548,6 +2739,26 @@ msgid ""
 "# of priority.\n"
 "sys.path_hooks.append(SpamPathEntryFinder.path_hook(loader_details))"
 msgstr ""
+"import importlib.machinery\n"
+"import sys\n"
+"\n"
+"# Sólo con fines ilustrativos.\n"
+"SpamMetaPathFinder = importlib.machinery.PathFinder\n"
+"SpamPathEntryFinder = importlib.machinery.FileFinder\n"
+"detalles_del_cargador = (importlib.machinery.SourceFileLoader,\n"
+"importlib.machinery.SOURCE_SUFFIXES)\n"
+"\n"
+"# Configuración de un meta buscador de rutas.\n"
+"# Asegúrese de colocar el buscador en la ubicación adecuada en la lista en términos "
+"de\n"
+"# prioridad.\n"
+"sys.meta_path.append(SpamMetaPathFinder)\n"
+"\n"
+"# Configuración de un buscador de entradas de ruta.\n"
+"# Asegúrese de colocar el gancho de ruta en la ubicación adecuada en la lista en "
+"términos\n"
+"# de prioridad.\n"
+"sys.path_hooks.append(SpamPathEntryFinder.path_hook(detalles_del_cargador))"
 
 #: ../Doc/library/importlib.rst:1668
 msgid "Approximating :func:`importlib.import_module`"
@@ -2598,11 +2809,40 @@ msgid ""
 "        setattr(parent_module, child_name, module)\n"
 "    return module"
 msgstr ""
+"import importlib.util\n"
+"import sys\n"
+"\n"
+"def import_module(name, package=None):\n"
+"\"\"\"Una implementación aproximada de la importación.\"\"\"\n"
+"nombre_absoluto = importlib.util.resolve_name(name, package)\n"
+"try:\n"
+"return sys.modules[nombre_absoluto]\n"
+"except KeyError:\n"
+"pass\n"
+"\n"
+"path = None\n"
+"if '.' in nombre_absoluto:\n"
+"parent_name, _, child_name = nombre_absoluto.rpartition('.')\n"
+"parent_module = import_module(parent_name)\n"
+"path = parent_module.__spec__.submodule_search_locations\n"
+"for finder in sys.meta_path:\n"
+"spec = finder.find_spec(nombre_absoluto, path)\n"
+"if spec is not None:\n"
+"break\n"
+"else:\n"
+"msg = f'Ningún módulo llamado {nombre_absoluto!r}'\n"
+"raise ModuleNotFoundError(msg, name=nombre_absoluto)\n"
+"module = importlib.util.module_from_spec(spec)\n"
+"sys.modules[nombre_absoluto] = module\n"
+"spec.loader.exec_module(module)\n"
+"if path is not None:\n"
+"setattr(parent_module, child_name, module)\n"
+"return module"
 
 #: ../Doc/library/importlib.rst:443
 msgid "universal newlines"
-msgstr ""
+msgstr "nuevas líneas universales"
 
 #: ../Doc/library/importlib.rst:443
 msgid "importlib.abc.InspectLoader.get_source method"
-msgstr ""
+msgstr "importlib.abc.InspectLoader.get_source method"