diff --git a/TRANSLATORS b/TRANSLATORS
index 46f1e73140..b29459b155 100644
--- a/TRANSLATORS
+++ b/TRANSLATORS
@@ -107,6 +107,7 @@ Willian Garcia (@wgarcia1309)
Ana Medina Bernal (@ana-med)
Juan Biondi (@yeyeto2788)
Hugo Valencia Vargas(@psicobloc)
+Pedro Aaron (@paaaron)
Azul Maia Vallejos Salgado (@bleucode)
Iracema Caballero (@iracaballero)
Andreu Vallbona Plazas (@avallbona)
diff --git a/dictionaries/library_codeop.txt b/dictionaries/library_codeop.txt
new file mode 100644
index 0000000000..9abf3d55de
--- /dev/null
+++ b/dictionaries/library_codeop.txt
@@ -0,0 +1 @@
+filename
diff --git a/library/codeop.po b/library/codeop.po
index a7b21c6dbf..20a80fe661 100644
--- a/library/codeop.po
+++ b/library/codeop.po
@@ -6,7 +6,6 @@
# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get
# the list of volunteers
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.8\n"
@@ -22,11 +21,11 @@ msgstr ""
#: ../Doc/library/codeop.rst:2
msgid ":mod:`codeop` --- Compile Python code"
-msgstr ""
+msgstr ":mod:`codeop` --- Compila código Python"
#: ../Doc/library/codeop.rst:10
msgid "**Source code:** :source:`Lib/codeop.py`"
-msgstr ""
+msgstr "**Código fuente:** :source:`Lib/codeop.py`"
#: ../Doc/library/codeop.rst:14
msgid ""
@@ -36,32 +35,45 @@ msgid ""
"include such a loop in your program you probably want to use the :mod:`code` "
"module instead."
msgstr ""
+"El módulo :mod:`codeop` proporciona herramientas para emular el bucle "
+"principal del intérprete de Python (también conocido como read-eval-print), "
+"tal como se hace en el módulo :mod:`code`. Por lo tanto, este módulo no "
+"está diseñado para utilizarlo directamente; si desea incluir un ciclo de "
+"este tipo en su programa, probablemente es mejor utilizar el módulo :mod:"
+"`code` en su lugar."
#: ../Doc/library/codeop.rst:20
msgid "There are two parts to this job:"
-msgstr ""
+msgstr "Esta actividad consta de dos partes:"
#: ../Doc/library/codeop.rst:22
msgid ""
"Being able to tell if a line of input completes a Python statement: in "
"short, telling whether to print '``>>>``' or '``...``' next."
msgstr ""
+"Ser capaz de identificar si una línea de entrada completa una sentencia de "
+"Python: en resumen, decir si se debe imprimir a continuación '``>>>``' o "
+"'``...``' ."
#: ../Doc/library/codeop.rst:25
msgid ""
"Remembering which future statements the user has entered, so subsequent "
"input can be compiled with these in effect."
msgstr ""
+"Recordar qué sentencias posteriores ha ingresado el usuario, para que estas "
+"entradas sean incluidas al momento de compilar."
#: ../Doc/library/codeop.rst:28
msgid ""
"The :mod:`codeop` module provides a way of doing each of these things, and a "
"way of doing them both."
msgstr ""
+"El módulo :mod:`codeop` proporciona formas de realizar estas dos partes, "
+"tanto de forma independiente, como en conjunto."
#: ../Doc/library/codeop.rst:31
msgid "To do just the former:"
-msgstr ""
+msgstr "Para hacer lo anterior:"
#: ../Doc/library/codeop.rst:35
msgid ""
@@ -71,6 +83,11 @@ msgid ""
"``''``. Returns ``None`` if *source* is *not* valid Python code, but "
"is a prefix of valid Python code."
msgstr ""
+"Intenta compilar *source*, que debe ser una cadena de caracteres de código "
+"Python y retorna un objeto si *source* es código Python válido. En este "
+"caso, el atributo del nombre del archivo del objeto va a ser *filename*, el "
+"cuál por defecto es ``''``. Retorna ``None`` si *source* no es código "
+"Python válido, pero es un prefijo de código Python válido."
#: ../Doc/library/codeop.rst:41
msgid ""
@@ -78,6 +95,9 @@ msgid ""
"`SyntaxError` is raised if there is invalid Python syntax, and :exc:"
"`OverflowError` or :exc:`ValueError` if there is an invalid literal."
msgstr ""
+"Si hay un problema con *source*, se lanzará una excepción. :exc:"
+"`SyntaxError` se lanza si hay una sintaxis de Python no válida, y :exc:"
+"`OverflowError` o :exc:`ValueError` si hay un literal no válido."
#: ../Doc/library/codeop.rst:45
msgid ""
@@ -86,6 +106,9 @@ msgid ""
"an :term:`expression` (``'eval'``). Any other value will cause :exc:"
"`ValueError` to be raised."
msgstr ""
+"El argumento *symbol* determina si *source* se compila como una declaración "
+"(``'single'``, el valor predeterminado) o como un :term:`expression` "
+"(``'eval'``). Cualquier otro valor hará que se lance :exc:`ValueError`."
#: ../Doc/library/codeop.rst:52
msgid ""
@@ -95,6 +118,12 @@ msgid ""
"backslash followed by two newlines may be followed by arbitrary garbage. "
"This will be fixed once the API for the parser is better."
msgstr ""
+"Es posible (pero no probable) que el analizador deje de analizar con un "
+"resultado exitoso antes de llegar al final de la fuente; en este caso, los "
+"símbolos finales pueden ignorarse en lugar de provocar un error. Por "
+"ejemplo, una barra invertida seguida de dos nuevas líneas puede ir seguida "
+"de basura arbitraria. Esto se solucionará una vez que la API para el "
+"analizador sea mejor."
#: ../Doc/library/codeop.rst:61
msgid ""
@@ -104,6 +133,11 @@ msgid ""
"the instance 'remembers' and compiles all subsequent program texts with the "
"statement in force."
msgstr ""
+"Las instancias de esta clase tienen :meth:`__call__` métodos idénticos en "
+"firma a la función incorporada :func:`compile`, pero con la diferencia de "
+"que si la instancia compila el texto del programa que contiene una "
+"instrucción :mod:`__future__`, la instancia 'recuerda' y compila todos los "
+"textos de programa posteriores con la declaración en vigor."
#: ../Doc/library/codeop.rst:70
msgid ""
@@ -112,3 +146,8 @@ msgid ""
"program text containing a ``__future__`` statement, the instance 'remembers' "
"and compiles all subsequent program texts with the statement in force."
msgstr ""
+"Las instancias de esta clase tienen :meth:`__call__` métodos idénticos en "
+"firma a :func:`compile_command`; la diferencia es que si la instancia "
+"compila un texto de programa que contiene una declaración ``__future__``, la "
+"instancia 'recuerda' y compila todos los textos de programa posteriores con "
+"la declaración en vigor."