diff --git a/TRANSLATORS b/TRANSLATORS index 5b6d02a546..31c67f507d 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -15,6 +15,7 @@ Xavi Francisco (@srxavi) Manuel Kaufmann (@humitos) Pablo Lobariñas (@Qkolnek) Alvar Maciel (@alvarmaciel @amaciel) +Juan Sebastián Marquez (@juansemarquez) Cristián Maureira-Fredes (@cmaureir) Cristian Andrés Maximiliano Mayuti (@mayuti) Omar Mendo (@beejeke) @@ -37,4 +38,4 @@ Leonardo Gomez (@gomezgleonardob) Luis Sánchez (@LuisAISanchez) José Miguel Hernández Cabrera (@miguelheca) Naryie Vásquez Martínez (@narvmtz) -Xavi Rambla Centellas (@xavirambla) \ No newline at end of file +Xavi Rambla Centellas (@xavirambla) diff --git a/dictionaries/library_zipapp.txt b/dictionaries/library_zipapp.txt new file mode 100644 index 0000000000..c2be192983 --- /dev/null +++ b/dictionaries/library_zipapp.txt @@ -0,0 +1,13 @@ +distutils +exe +invocable +pip +preprocesador +Python +script +sobreescribe +sobreescribir +Windows +zip +Zip +zipapp diff --git a/library/zipapp.po b/library/zipapp.po index 96e6076cd5..3e064a8d61 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -1,29 +1,31 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. -# Maintained by the python-doc-es workteam. +# Maintained by the python-doc-es workteam. # docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ # Check https://github.com/PyCampES/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-07-16 09:53-0300\n" "Language-Team: python-doc-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" +"Last-Translator: \n" +"Language: es\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/library/zipapp.rst:2 msgid ":mod:`zipapp` --- Manage executable Python zip archives" -msgstr "" +msgstr ":mod:`zipapp` --- Gestiona archivadores zip ejecutables de Python" #: ../Doc/library/zipapp.rst:9 msgid "**Source code:** :source:`Lib/zipapp.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/zipapp.py`" #: ../Doc/library/zipapp.rst:16 msgid "" @@ -32,10 +34,15 @@ msgid "" "`. The module provides both a :ref:`zipapp-" "command-line-interface` and a :ref:`zipapp-python-api`." msgstr "" +"Este módulo provee herramientas para administrar la creación de archivos zip " +"que contengan código Python, los que pueden ser :ref:`ejecutados " +"directamente por el intérprete de Python `. El " +"módulo provee tanto una :ref:`zipapp-command-line-interface` y una :ref:" +"`zipapp-python-api`." #: ../Doc/library/zipapp.rst:23 msgid "Basic Example" -msgstr "" +msgstr "Ejemplo básico" #: ../Doc/library/zipapp.rst:25 msgid "" @@ -44,15 +51,21 @@ msgid "" "code. When run, the archive will execute the ``main`` function from the " "module ``myapp`` in the archive." msgstr "" +"El siguiente ejemplo muestra cómo la :ref:`zipapp-command-line-interface` " +"puede utilizarse para crear un archivador ejecutable de un directorio que " +"contenga código en Python. Al ponerse en funcionamiento, el archivador " +"ejecutará la función ``main`` del módulo ``myapp`` en el archivador." #: ../Doc/library/zipapp.rst:40 msgid "Command-Line Interface" -msgstr "" +msgstr "Interfaz de línea de comando" #: ../Doc/library/zipapp.rst:42 msgid "" "When called as a program from the command line, the following form is used:" msgstr "" +"En la ejecución como programa desde la línea de comandos, se utiliza el " +"siguiente formato:" #: ../Doc/library/zipapp.rst:48 msgid "" @@ -61,10 +74,14 @@ msgid "" "copied to the target archive (or the contents of its shebang line will be " "displayed if the --info option is specified)." msgstr "" +"Si *source* es un directorio, se creará un archivador zip para los " +"contenidos de *source*. Si *source* es un archivo, debería ser un " +"archivador, y se copiará al archivador de destino (o los contenidos de su " +"línea *shebang* se mostrarán si se especifica la opción --info)." #: ../Doc/library/zipapp.rst:53 msgid "The following options are understood:" -msgstr "" +msgstr "Se aceptan las siguientes opciones:" #: ../Doc/library/zipapp.rst:59 msgid "" @@ -73,12 +90,19 @@ msgid "" "extension ``.pyz`` added. If an explicit filename is given, it is used as " "is (so a ``.pyz`` extension should be included if required)." msgstr "" +"Escribe la salida a un archivo llamado *output*. Si esta opción no está " +"especificada, el nombre del archivo de salida será el mismo que la entrada " +"*source*, con la extensión ``.pyz`` agregada. Si se provee de un nombre de " +"archivo explícito, se usa tal como está (por lo que una extensión ``.pyz`` " +"debería incluirse si esto se requiere)." #: ../Doc/library/zipapp.rst:64 msgid "" "An output filename must be specified if the *source* is an archive (and in " "that case, *output* must not be the same as *source*)." msgstr "" +"Un nombre de archivo de salida debe especificarse si *source* es un " +"archivador (y en ese caso, *output* no debería ser igual que *source*)." #: ../Doc/library/zipapp.rst:69 msgid "" @@ -86,6 +110,10 @@ msgid "" "run. Also, on POSIX, make the archive executable. The default is to write " "no ``#!`` line, and not make the file executable." msgstr "" +"Agrega una línea ``#!`` al archivador especificando *interpreter* como " +"comando a ejecutar. También en POSIX, convierte al archivador en ejecutable. " +"La opción por defecto es no escribir una línea ``#!``, y no hacer que el " +"archivo sea ejecutable." #: ../Doc/library/zipapp.rst:75 msgid "" @@ -94,20 +122,28 @@ msgid "" "a package/module in the archive, and \"fn\" is a callable in the given " "module. The ``__main__.py`` file will execute that callable." msgstr "" +"Escribe un archivo ``__main__.py`` en el archivador que ejecuta *mainfn*. " +"El argumento *mainfn* debería tener la forma \"pkg.mod:fn\", donde \"pkg.mod" +"\" is un paquete/módulo en el archivador, y \"fn\" es un invocable " +"(*callable*) en ese módulo. El archivo ``__main__.py`` ejecutará ese " +"invocable." #: ../Doc/library/zipapp.rst:80 msgid ":option:`--main` cannot be specified when copying an archive." -msgstr "" +msgstr ":option:`--main` no puede especificarse al copiar un archivador." #: ../Doc/library/zipapp.rst:84 msgid "" "Compress files with the deflate method, reducing the size of the output " "file. By default, files are stored uncompressed in the archive." msgstr "" +"Comprime los archivos con el método *deflate*, lo que reduce el tamaño del " +"archivo de salida. Por defecto, los archivos se guardan sin comprimir en el " +"archivador." #: ../Doc/library/zipapp.rst:87 msgid ":option:`--compress` has no effect when copying an archive." -msgstr "" +msgstr ":option:`--compress` no surte efecto al copiar un archivador." #: ../Doc/library/zipapp.rst:93 msgid "" @@ -115,24 +151,29 @@ msgid "" "In this case, any other options are ignored and SOURCE must be an archive, " "not a directory." msgstr "" +"Muestra el intérprete incrustado en el archivador, para diagnósticos. En " +"este caso cualquier otra opción se ignora, y SOURCE debe ser un archivador, " +"no un directorio." #: ../Doc/library/zipapp.rst:99 msgid "Print a short usage message and exit." -msgstr "" +msgstr "Muestra un breve mensaje sobre el modo de uso, y sale." #: ../Doc/library/zipapp.rst:105 msgid "Python API" -msgstr "" +msgstr "API de Python" #: ../Doc/library/zipapp.rst:107 msgid "The module defines two convenience functions:" -msgstr "" +msgstr "El módulo define dos funciones convenientes:" #: ../Doc/library/zipapp.rst:112 msgid "" "Create an application archive from *source*. The source can be any of the " "following:" msgstr "" +"Crea un archivador de aplicación a partir de *source*. Este *source* " +"(origen), puede ser cualquiera de los siguientes:" #: ../Doc/library/zipapp.rst:115 msgid "" @@ -140,6 +181,9 @@ msgid "" "directory, in which case a new application archive will be created from the " "content of that directory." msgstr "" +"El nombre de un directorio, o un :term:`path-like object` que se refiera a " +"un directorio, en cuyo caso un nuevo archivador de aplicación se creará a " +"partir del contenido de dicho directorio." #: ../Doc/library/zipapp.rst:118 msgid "" @@ -148,6 +192,11 @@ msgid "" "target (modifying it to reflect the value given for the *interpreter* " "argument). The file name should include the ``.pyz`` extension, if required." msgstr "" +"El nombre de un archivador de aplicación existente o un :term:`path-like " +"object` que refiera a dicho archivo, en cuyo caso el archivo se copiará al " +"destino (modificándolo para reflejar el valor dado por el argumento " +"*interpreter*. El nombre de archivo debería incluir la extensión ``.pyz``, " +"si se requiere." #: ../Doc/library/zipapp.rst:122 msgid "" @@ -155,23 +204,32 @@ msgid "" "should be an application archive, and the file object is assumed to be " "positioned at the start of the archive." msgstr "" +"Un objeto archivo abierto para lectura en modo bytes. El contenido del " +"archivo debería ser un archivador de aplicación. Se infiere que el objeto " +"archivo está posicionado al comienzo del archivador." #: ../Doc/library/zipapp.rst:126 msgid "" "The *target* argument determines where the resulting archive will be written:" msgstr "" +"El argumento *target* determina dónde quedará escrito el archivador " +"resultante:" #: ../Doc/library/zipapp.rst:129 msgid "" "If it is the name of a file, or a :term:`path-like object`, the archive will " "be written to that file." msgstr "" +"Si es el nombre de un archivo, o un :term:`path-like object`, el archivador " +"será escrito a ese archivo." #: ../Doc/library/zipapp.rst:131 msgid "" "If it is an open file object, the archive will be written to that file " "object, which must be open for writing in bytes mode." msgstr "" +"Si es un objeto archivo abierto, el archivador se escribirá en ese objeto " +"archivo, el cual debe estar abierto para escritura en modo bytes." #: ../Doc/library/zipapp.rst:133 msgid "" @@ -179,6 +237,9 @@ msgid "" "the target will be a file with the same name as the source, with a ``.pyz`` " "extension added." msgstr "" +"Si el destino (*target*) se omite (o es ``None``), el origen (*source*) debe " +"ser un directorio, y el destino será un archivo con el mismo nombre que el " +"origen, con la extensión ``.pyz`` añadida." #: ../Doc/library/zipapp.rst:137 msgid "" @@ -190,6 +251,13 @@ msgid "" "is specified, and the target is a filename, the executable bit of the target " "file will be set." msgstr "" +"El argumento *interpreter* especifica el nombre del intérprete Python con el " +"que el archivador será ejecutado. Se escribe como una línea *\"shebang\"* al " +"comienzo del archivador. En POSIX, el Sistema Operativo será quien lo " +"interprete, y en Windows será gestionado por el lanzador Python. Omitir el " +"*interpreter* tendrá como consecuencia que no se escribirá ninguna línea " +"*shebang*. Si se especifica un intérprete y el destino (*target*) es un " +"nombre de archivo, el bit de ejecución del archivo destino será activado." #: ../Doc/library/zipapp.rst:145 msgid "" @@ -202,6 +270,14 @@ msgid "" "a directory and does not contain a ``__main__.py`` file, as otherwise the " "resulting archive would not be executable." msgstr "" +"El argumento *main* especifica el nombre de un invocable (*callable*) que se " +"utilizará como programa principal para el archivador. Solamente se puede " +"especificar si el origen (*source*) es un directorio que no contiene un " +"archivo ``__main__.py``. El argumento *main* debería tener la forma \"pkg." +"module:callable\", y el archivador será ejecutado importando \"pkg.module\" " +"y ejecutando el *callable* sin argumentos. Es un error omitir *main* si el " +"origen es un directorio que no contiene un archivo ``__main__.py``, ya que " +"esto resultaría en un archivador no ejecutable." #: ../Doc/library/zipapp.rst:155 msgid "" @@ -209,6 +285,10 @@ msgid "" "a Path object representing the path to the file being added (relative to the " "source directory). It should return ``True`` if the file is to be added." msgstr "" +"El argumento opcional *filter* especifica una función *callback* que se pasa " +"como objeto Path, para representar el *path* (ruta) al archivo que se está " +"añadiendo (ruta relativa al directorio origen, *source*). Debería retornar " +"``True`` si el archivo será añadido." #: ../Doc/library/zipapp.rst:160 msgid "" @@ -217,12 +297,17 @@ msgid "" "method; otherwise, files are stored uncompressed. This argument has no " "effect when copying an existing archive." msgstr "" +"El argumento opcional *compressed* determina si los archivos están " +"comprimidos. Si se define como ``True``, los archivos en el archivador serán " +"comprimidos con el método deflate." #: ../Doc/library/zipapp.rst:165 msgid "" "If a file object is specified for *source* or *target*, it is the caller's " "responsibility to close it after calling create_archive." msgstr "" +"Si se especifica un objeto archivo para *source* o * target*, es " +"responsabilidad de quien invoca cerrarlo luego de invocar a create_archive." #: ../Doc/library/zipapp.rst:168 msgid "" @@ -231,10 +316,15 @@ msgid "" "directory, if the target is a file object it will be passed to the ``zipfile." "ZipFile`` class, and must supply the methods needed by that class." msgstr "" +"Al copiar un archivador existente, los objetos archivo provistos, solamente " +"necesitan los métodos ``read`` y ``readline``, o bien ``write``. Al crear un " +"archivador a partir de un directorio, si el destino (*target*) es un objeto " +"archivo, éste se pasará a la clase ``zipfile.ZipFile``, y debe proveer los " +"métodos que esa clase necesita." #: ../Doc/library/zipapp.rst:174 msgid "Added the *filter* and *compressed* arguments." -msgstr "" +msgstr "Añadidos los argumentos *filter* y *compressed*." #: ../Doc/library/zipapp.rst:179 msgid "" @@ -243,30 +333,39 @@ msgid "" "argument can be a filename or a file-like object open for reading in bytes " "mode. It is assumed to be at the start of the archive." msgstr "" +"Retorna el intérprete especificado en la línea ``#!`` al comienzo del " +"archivador. Si no hay línea ``#!``, retorna :const:`None`. El argumento " +"*archive* (archivador), puede ser un nombre de archivo o un objeto tipo " +"archivo abierto para lectura en modo bytes. Se supone que está al principio " +"del archivador." #: ../Doc/library/zipapp.rst:188 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/library/zipapp.rst:190 msgid "Pack up a directory into an archive, and run it." -msgstr "" +msgstr "Empaqueta un directorio en un archivador, y lo ejecuta." #: ../Doc/library/zipapp.rst:198 msgid "The same can be done using the :func:`create_archive` function::" -msgstr "" +msgstr "Lo mismo puede lograrse utilizando la función :func:`create_archive`::" #: ../Doc/library/zipapp.rst:203 msgid "" "To make the application directly executable on POSIX, specify an interpreter " "to use." msgstr "" +"Para que la aplicación sea ejecutable directamente en POSIX, especifica un " +"intérprete." #: ../Doc/library/zipapp.rst:212 msgid "" "To replace the shebang line on an existing archive, create a modified " "archive using the :func:`create_archive` function::" msgstr "" +"Para reemplazar la línea *shebang* en un archivador existente, cree un " +"archivador modificado, utilizando la función :func:`create_archive`::" #: ../Doc/library/zipapp.rst:218 msgid "" @@ -277,10 +376,17 @@ msgid "" "but production code should do so. Also, this method will only work if the " "archive fits in memory::" msgstr "" +"Para actualizar el archivo en el lugar, reemplaza en memoria utilizando un " +"objeto :class:`BytesIO`, y luego sobreescribe el origen (*source*). Nótese " +"que hay un riesgo al sobreescribir un archivo en el lugar, ya que un error " +"resultará en la pérdida del archivo original. Este código no ofrece " +"protección contra este tipo de errores, sino que el código de producción " +"debería hacerlo. Además, este método solamente funcionará si el archivador " +"cabe en la memoria::" #: ../Doc/library/zipapp.rst:236 msgid "Specifying the Interpreter" -msgstr "" +msgstr "Especificar el intérprete" #: ../Doc/library/zipapp.rst:238 msgid "" @@ -289,6 +395,10 @@ msgid "" "Python launcher for Windows supports most common forms of POSIX ``#!`` line, " "but there are other issues to consider:" msgstr "" +"Nótese que si se especifica el intérprete y luego se distribuye el " +"archivador de aplicación, es necesario asegurarse de que el intérprete " +"utilizado es portable. El lanzador Python para Windows soporta las formas " +"más comunes de líneas ``#!`` POSIX, pero hay otras cuestiones a considerar:" #: ../Doc/library/zipapp.rst:243 msgid "" @@ -297,6 +407,10 @@ msgid "" "may have either Python 2 or Python 3 as their default, and write your code " "to work under both versions." msgstr "" +"Si se utiliza \"/usr/bin/env python\" (u otras formas del comando \"python" +"\", como \"/usr/bin/python\"), es necesario considerar que los usuarios " +"quizá tengan tanto Python2 como Python3 como versión por defecto, y el " +"código debe escribirse bajo ambas versiones." #: ../Doc/library/zipapp.rst:247 msgid "" @@ -304,6 +418,10 @@ msgid "" "application will not work for users who do not have that version. (This may " "be what you want if you have not made your code Python 2 compatible)." msgstr "" +"Si se utiliza una versión específica, por ejemplo \"/usr/bin/env python3\", " +"la aplicación no funcionará para los usuarios que no tengan esa versión. " +"(Esta puede ser la opción deseada si no se hecho el código compatible con " +"Python 2)." #: ../Doc/library/zipapp.rst:250 msgid "" @@ -311,16 +429,22 @@ msgid "" "exact version like \"/usr/bin/env python3.4\" as you will need to change " "your shebang line for users of Python 3.5, for example." msgstr "" +"No hay manera de decir \"python X.Y o posterior\", así que se debe ser " +"cuidadoso al utilizar una versión exacta, tal como \"/usr/bin/env " +"python3.4\", ya que será necesario cambiar la línea *shebang* para usuarios " +"de Python 3.5, por ejemplo." #: ../Doc/library/zipapp.rst:254 msgid "" "Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env " "python3\", depending on whether your code is written for Python 2 or 3." msgstr "" +"Normalmente, se debería utilizar \"/usr/bin/env python2\" o \"/usr/bin/env " +"python3\", según si el código está escrito para Python 2 ó 3." #: ../Doc/library/zipapp.rst:259 msgid "Creating Standalone Applications with zipapp" -msgstr "" +msgstr "Creando aplicaciones independientes con zipapp" #: ../Doc/library/zipapp.rst:261 msgid "" @@ -330,10 +454,15 @@ msgid "" "this is to bundle all of the application's dependencies into the archive, " "along with the application code." msgstr "" +"Utilizando el módulo :mod:`zipapp`, es posible crear programas Python auto-" +"contenidos, que pueden ser distribuidos a usuarios finales que solo " +"necesitarán una versión adecuada de Python instalada en sus sistemas. La " +"clave es empaquetar todas las dependencias de la aplicación dentro del " +"archivador, junto al código de la misma." #: ../Doc/library/zipapp.rst:267 msgid "The steps to create a standalone archive are as follows:" -msgstr "" +msgstr "Los pasos para crear un archivador independiente son los siguientes:" #: ../Doc/library/zipapp.rst:269 msgid "" @@ -341,12 +470,17 @@ msgid "" "directory containing a ``__main__.py`` file, and any supporting application " "code." msgstr "" +"Crea tu aplicación en un directorio normalmente, tal que tengas una " +"directorio ``myapp`` que contenga un archivo ``__main__.py``, y cualquier " +"código extra de la aplicación." #: ../Doc/library/zipapp.rst:273 msgid "" "Install all of your application's dependencies into the ``myapp`` directory, " "using pip:" msgstr "" +"Instala todas las dependencias de la aplicación en el directorio ``myapp``, " +"usando pip:" #: ../Doc/library/zipapp.rst:280 msgid "" @@ -354,6 +488,9 @@ msgid "" "file - if not, you can just list the dependencies manually on the pip " "command line)." msgstr "" +"(se supone que tienes los requisitos de tu proyecto en un archivo " +"``requirements.txt``, de lo contrario, puedes listar manualmente las " +"dependencias en la línea de comandos de pip)." #: ../Doc/library/zipapp.rst:284 msgid "" @@ -362,10 +499,14 @@ msgid "" "as you won't be making any further use of pip they aren't required - " "although it won't do any harm if you leave them." msgstr "" +"Opcionalmente, borra los directorios ``.dist-info`` creados por pip en el " +"directorio ``myapp``. Éstos tienen metadatos para que pip gestione los " +"paquetes, y como ya no se utilizará pip, no hace falta que permanezcan " +"(aunque no causará ningún problema si los dejas)." #: ../Doc/library/zipapp.rst:289 msgid "Package the application using:" -msgstr "" +msgstr "Empaqueta la aplicación utilizando:" #: ../Doc/library/zipapp.rst:295 msgid "" @@ -373,6 +514,10 @@ msgid "" "with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" "interpreter` for details. It can be shipped to users as a single file." msgstr "" +"Esto producirá un ejecutable independiente, que puede ser ejecutado en " +"cualquier máquina que disponga del intérprete apropiado. Véase :ref:`zipapp-" +"specifying-the-interpreter` para más detalles. Puede enviarse a los usuarios " +"como un solo archivo." #: ../Doc/library/zipapp.rst:299 msgid "" @@ -382,10 +527,15 @@ msgid "" "fact that the Python interpreter registers the ``.pyz`` and ``.pyzw`` file " "extensions when installed." msgstr "" +"En Unix, el archivo ``myapp.pyz`` será ejecutable tal como está. Puede ser " +"renombrado, para quitar la extensión ``.pyz`` si se prefiere un nombre de " +"comando \"simple\". En Windows, el archivo ``myapp.pyz[w]`` es ejecutable, " +"ya que el intérprete Python registra las extensiones ``.pyz`` y ``pyzw`` al " +"ser instalado." #: ../Doc/library/zipapp.rst:307 msgid "Making a Windows executable" -msgstr "" +msgstr "Hacer un ejecutable para Windows" #: ../Doc/library/zipapp.rst:309 msgid "" @@ -395,6 +545,11 @@ msgid "" "run(['myapp'])`` won't find your application - you need to explicitly " "specify the extension)." msgstr "" +"En Windows, registrar la extensión ``.pyz`` es opcional, y además hay " +"ciertos sitios que no reconocen las extensiones registradas de manera " +"\"transparente\" (el ejemplo más simple es que ``subprocess.run(['myapp'])`` " +"no va a encontrar la aplicación, es necesario especificar explícitamente la " +"extensión)." #: ../Doc/library/zipapp.rst:315 msgid "" @@ -406,16 +561,26 @@ msgid "" "onto the end of it, you end up with a single-file executable that runs your " "application." msgstr "" +"Por lo tanto, en Windows, suele ser preferible crear un ejecutable a partir " +"del zipapp. Esto es relativamente fácil, aunque requiere un compilador de C. " +"La estrategia básica se basa en que los archivos zip pueden tener datos " +"arbitrarios antepuestos, y los archivos exe de Windows pueden tener datos " +"arbitrarios agregados. Entonces, si se crea un lanzador adecuado mudando el " +"archivo ``.pyz`` al final del mismo, se obtiene un solo archivo ejecutable " +"que corre la aplicación." #: ../Doc/library/zipapp.rst:322 msgid "A suitable launcher can be as simple as the following::" -msgstr "" +msgstr "Un lanzador adecuado puede ser así de simple::" #: ../Doc/library/zipapp.rst:347 msgid "" "If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI " "executable, and without it, a console executable." msgstr "" +"Si se define el símbolo de preprocesador ``WINDOWS``, se generará una GUI " +"(interfaz gráfica de usuario) ejecutable, y sin este símbolo, un ejecutable " +"de consola." #: ../Doc/library/zipapp.rst:350 msgid "" @@ -423,6 +588,9 @@ msgid "" "line tools, or you can take advantage of the fact that distutils knows how " "to compile Python source::" msgstr "" +"Para compilar el ejecutable, se puede usar únicamente la línea de comando " +"estándar MSVC, o se puede aprovechar la ventaja de que distutils sabe cómo " +"compilar código fuente Python::" #: ../Doc/library/zipapp.rst:377 msgid "" @@ -430,6 +598,9 @@ msgid "" "with any version of Python 3.x. All it needs is for Python (``python3." "dll``) to be on the user's ``PATH``." msgstr "" +"El lanzador resultante utiliza \"Limited ABI\", así que correrá sin cambios " +"con cualquier versión de Python 3.x. Todo lo que necesita es que Python " +"(``python3.dll``) esté en el ``PATH`` del usuario." #: ../Doc/library/zipapp.rst:381 msgid "" @@ -438,10 +609,14 @@ msgid "" "distribution. This will run on any PC with the appropriate architecture (32 " "bit or 64 bit)." msgstr "" +"Para una distribución completamente independiente, se puede distribuir el " +"lanzador con la aplicación incluida, empaquetada con la distribución " +"\"*embedded*\" de Python. Va a funcionar en cualquier PC con la arquitectura " +"adecuada (32 o 64 bits)." #: ../Doc/library/zipapp.rst:387 msgid "Caveats" -msgstr "" +msgstr "Advertencias" #: ../Doc/library/zipapp.rst:389 msgid "" @@ -449,6 +624,9 @@ msgid "" "a single file. In most, if not all, cases they can be addressed without " "needing major changes to your application." msgstr "" +"Hay algunas limitaciones para empaquetar la aplicación en un solo archivo. " +"In la mayoría, si no en todos los casos, se pueden abordar sin que haga " +"falta ningún cambio importante en la aplicación." #: ../Doc/library/zipapp.rst:393 msgid "" @@ -463,6 +641,18 @@ msgid "" "(and potentially pick the correct version to add to ``sys.path`` at runtime, " "based on the user's machine)." msgstr "" +"Si la aplicación depende de un paquete que incluye una extensión C, ese " +"paquete no puede ser ejecutado desde un archivo zip (esta es una limitación " +"del sistema operativo, dado que el código ejecutable debe estar presente en " +"el sistema de archivos para que el *loader* del SO lo pueda cargar). En este " +"caso, se puede excluir la dependencia del archivo zip, y requerir que los " +"usuarios la tengan instalada, o bien distribuirla conjuntamente con el " +"archivo zip, y agregar código al ``__main__.py`` para que incluya el " +"directorio que contiene el módulo descomprimido en ``sys.path``. En este " +"caso, será necesario asegurarse de distribuir los binarios adecuados para la/" +"s arquitectura/s a las que esté destinada la aplicación (y potencialmente " +"elegir la versión correcta para agregar a ``sys.path`` en tiempo de " +"ejecución, basándose en la máquina del usuario)." #: ../Doc/library/zipapp.rst:403 msgid "" @@ -471,6 +661,10 @@ msgid "" "the default behaviour of the installer) or you should bundle your " "application with the embedded distribution." msgstr "" +"Al distribuir ejecutables Windows tal como se describe más arriba, hay que " +"asegurarse de que los usuarios tienen ``python3.dll`` en su PATH (lo cual no " +"es una opción por defecto en el instalador), o bien empaquetar la aplicación " +"con la distribución *embedded*." #: ../Doc/library/zipapp.rst:408 msgid "" @@ -482,10 +676,17 @@ msgid "" "`multiprocessing.set_executable` to let the module know where to find the " "standard Python interpreter." msgstr "" +"El lanzador que se sugiere más arriba, utiliza la API de incrustación de " +"Python (*Python embedding API*). Esto significa que ``sys.executable`` será " +"la aplicación, y *no* el intérprete Python convencional. El código y sus " +"dependencias deben estar preparados para esta posibilidad. Por ejemplo, si " +"la aplicación utiliza el módulo :mod:`multiprocessing`, necesitará invocar " +"a :func:`multiprocessing.set_executable` para permitir que el módulo sepa " +"dónde encontrar el intérprete Python estándar." #: ../Doc/library/zipapp.rst:418 msgid "The Python Zip Application Archive Format" -msgstr "" +msgstr "El formato de archivado Zip de aplicaciones Python" #: ../Doc/library/zipapp.rst:420 msgid "" @@ -497,6 +698,13 @@ msgid "" "be placed on :data:`sys.path` and thus further modules can be imported from " "the zip file." msgstr "" +"Python puede ejecutar archivadores zip que contengan un archivo ``__main__." +"py`` desde la versión 2.6. Para que sea ejecutada por Python, basta con que " +"una aplicación de archivador sea un archivo zip estándar que contenga un " +"archivo ``__main__.py``, el cual será ejecutado como punto de entrada para " +"la aplicación. Como es usual para cualquier script Python, el elemento padre " +"del script (en este caso, el archivo zip), será ubicado en :data:`sys.path`, " +"por lo que pueden importarse otros módulos desde el archivo zip." #: ../Doc/library/zipapp.rst:427 msgid "" @@ -504,10 +712,14 @@ msgid "" "The zip application format uses this ability to prepend a standard POSIX " "\"shebang\" line to the file (``#!/path/to/interpreter``)." msgstr "" +"El formato de archivo zip, permite que se antepongan al archivo datos " +"arbitrarios. El formato de aplicación zip utiliza esta capacidad para " +"anteponer una línea \"*shebang*\" POSIX estándar al archivo (``#!/ruta/al/" +"interprete``)." #: ../Doc/library/zipapp.rst:431 msgid "Formally, the Python zip application format is therefore:" -msgstr "" +msgstr "Formalmente, el Formato de archivado Zip de aplicaciones Python es:" #: ../Doc/library/zipapp.rst:433 msgid "" @@ -518,6 +730,12 @@ msgid "" "encoded in UTF-8 on Windows, and in :func:`sys.getfilesystemencoding()` on " "POSIX." msgstr "" +"Una línea *shebang* opcional, conteniendo los caracteres``b'#!'`` seguidos " +"por un nombre de intérprete, y luego un carácter de nueva línea " +"(``b'\\n'``). El nombre del intérprete puede ser cualquiera que sea " +"aceptable para el procesamiento de *shebang* del Sistema Operativo, o el " +"lanzador Python en Windows. El intérprete debería estar codificado en UTF-8 " +"en Windows, y en :func:`sys.getfilesystemencoding()` en POSIX." #: ../Doc/library/zipapp.rst:438 msgid "" @@ -526,12 +744,20 @@ msgid "" "in the \"root\" of the zipfile - i.e., it cannot be in a subdirectory). The " "zipfile data can be compressed or uncompressed." msgstr "" +"Los datos estándares de archivo zip, tal como se generan en el módulo :mod:" +"`zipfile`. El contenido del archivo zip *debe* incluir un archivo llamado " +"``__main__.py`` (que debe estar en la \"raíz\" del archivo zip, es decir, no " +"puede estar en un subdirectorio). El los datos del archivo zip pueden estar " +"comprimidos o no." #: ../Doc/library/zipapp.rst:443 msgid "" "If an application archive has a shebang line, it may have the executable bit " "set on POSIX systems, to allow it to be executed directly." msgstr "" +"Si un archivador de aplicación tiene una línea de shebang, puede tener el " +"bit de ejecución activado en los sistemas POSIX, para permitir que sea " +"ejecutado directamente." #: ../Doc/library/zipapp.rst:446 msgid "" @@ -539,3 +765,7 @@ msgid "" "application archives - the module is a convenience, but archives in the " "above format created by any means are acceptable to Python." msgstr "" +"No se requiere que las herramientas de este módulo sean las que se utilicen " +"para crear archivadores de aplicación. El módulo es útil, pero cualquier " +"archivo que esté en el formato descripto anteriormente es aceptable para " +"Python, no importa cómo haya sido creado."