Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Editor and documentation localization

El objetivo de Godot es poner el desarrollo de juegos al alcance de todo el mundo, incluidas las personas que no saben o no se sienten cómodas con el inglés. Por ello, hacemos todo lo posible para que los recursos más importantes estén disponibles en muchos idiomas, gracias al esfuerzo de traducción de la comunidad.

Estos recursos incluyen:

  1. La interfaz del editor Godot <https://hosted.weblate.org/projects/godot-engine/godot/> __ (aproximadamente 15.000 palabras).

  2. La documentación se puede traducir en cualquier idioma en Hosted Weblate.

  3. La referencia de clases, disponible tanto online como en el editor (aproximadamente 200.000 palabras).

Para gestionar las traducciones, utilizamos el formato de archivo GNU gettext (archivos PO), y la plataforma de localización de código abierto Weblate basada en la web, que permite la fácil colaboración de muchos colaboradores para completar la traducción de los distintos componentes, y mantenerlos actualizados. Haga clic en los enlaces en negrita de arriba para acceder a cada recurso en Weblate.

Esta página ofrece una visión general del flujo de trabajo de traducción en Weblate, así como algunas instrucciones específicas de los recursos sobre, por ejemplo, cómo manejar algunas palabras clave o la localización de imágenes.

Truco

Traducir todo el contenido oficial de Godot implica un esfuerzo enorme, por lo que aconsejamos priorizar los recursos tal y como se enumeran a continuación: primero la interfaz del editor, luego la documentación online y, finalmente, la referencia de clases si hay suficientes traductores para mantenerla actualizada.

Uso de Weblate para traducciones

Mientras que nuestras traducciones finalmente se encuentran en los repositorios Git del motor Godot y su documentación, todas las actualizaciones de traducciones se gestionan a través de Weblate y, por lo tanto, no se aceptan solicitudes de extracción directas en los repositorios Git. Las traducciones se sincronizan manualmente entre Weblate y los repositorios de Godot por parte de los mantenedores.

Por lo tanto, debes registrarte en Weblate para contribuir a las traducciones de Godot.

Una vez que hayas iniciado sesión, ve al recurso de Godot al que deseas contribuir (en esta página usaremos la traducción del editor como ejemplo) para encontrar la lista de todos los idiomas disponibles:

../../_images/l10n_01_language_list.png

Ver también

Si deseas obtener más detalles sobre el flujo de trabajo de traducción en Weblate, siéntete libre de consultar la documentación oficial en translation workflow.

Agregar un nuevo idioma

Si tu idioma ya está listado, haz clic en su nombre para acceder a la vista general y omite el resto de esta sección.

Si tu idioma no está en la lista, desplázate hacia la parte inferior de la lista de idiomas y haz clic en el botón "Comenzar nueva traducción". Luego, selecciona el idioma al que deseas traducir:

../../_images/l10n_02_new_translation.png

Importante

Si tu idioma se habla en varios países con solo variaciones regionales limitadas, considera agregarlo con su variante genérica (por ejemplo, "fr" para francés) en lugar de una variante regional (por ejemplo, "fr_FR" para francés (Francia), "fr_CA" para francés (Canadá) o "fr_DZ" para francés (Argelia)).

Godot tiene una gran cantidad de contenido para traducir, por lo que duplicar el trabajo para las variantes regionales solo se debe hacer si las variaciones del idioma son lo suficientemente significativas. Además, si una traducción se realiza para una variante regional, solo estará disponible automáticamente para los usuarios ubicados en esa región (o que tengan configurado su idioma del sistema para esa región).

Cuando las variaciones regionales son lo suficientemente significativas como para justificar traducciones separadas, recomendamos centrarse en completar primero la variante genérica si es posible, luego duplicar la traducción completamente completada para las variantes regionales y realizar las ediciones relevantes. Esta es generalmente una buena estrategia para idiomas como el español (trabajar en es primero, luego duplicarlo a es_AR, es_ES, es_MX, etc., si es necesario) o el portugués (pt_BR vs pt_PT).

Interfaz de traducción

Una vez que se ha seleccionado un idioma, verás una vista general del estado de la traducción, incluido cuántas cadenas quedan por traducir o revisar. Cada elemento se puede hacer clic y se puede usar para navegar por la lista correspondiente. También puedes hacer clic en el botón "Traducir" para empezar con la lista de cadenas que necesitan acción.

../../_images/l10n_03_translation_overview.png

Después de seleccionar una lista y hacer clic en "Traducir", verás la interfaz principal de traducción donde ocurre todo el trabajo:

../../_images/l10n_04_translation_interface.png

En esa página, tienes:

  • Una barra de herramientas que te permite navegar por las cadenas de la lista actual, cambiar a otra lista predefinida o realizar una búsqueda personalizada, entre otras opciones. También hay un modo de edición "Zen" con una interfaz simplificada.

  • El texto actual en el que estás trabajando en el panel "Traducción". Por defecto, debería aparecer la cadena de origen en inglés y un cuadro de edición para tu idioma. Si estás familiarizado con otros idiomas, puedes agregarlos en la configuración de usuario para tener más contexto para la traducción. Una vez que hayas terminado de editar la cadena actual, presiona "Guardar" para confirmar los cambios y pasar a la siguiente entrada. Alternativamente, usa el botón "Saltar" para omitirla. La casilla de verificación "Necesita edición" significa que la cadena original ha sido actualizada y, por lo tanto, la traducción necesita revisión para tener en cuenta esos cambios (en la jerga de PO, estas son las llamadas cadenas "difusas"). Estas cadenas no se utilizarán en la traducción hasta que se corrijan.

  • El panel inferior contiene diversas herramientas que pueden ayudar con el esfuerzo de traducción, como el contexto de cadenas cercanas (generalmente del mismo editor de herramientas o página de documentación, por lo que podrían usar términos similares), comentarios de otros traductores, traducciones automáticas y una lista de todas las otras traducciones existentes para esa cadena.

  • En la parte superior derecha, el glosario muestra términos para los cuales se ha agregado una entrada previamente y que están incluidos en la cadena actual. Por ejemplo, si has decidido con otros traductores usar una traducción específica para el término "node" en Godot, puedes agregarlo al glosario para asegurarte de que otros traductores utilicen la misma convención.

  • El panel inferior derecho incluye información sobre la cadena de origen. El elemento más relevante es la "ubicación de la cadena de origen", que te enlaza a la cadena original en GitHub. Es posible que necesites buscar la cadena en la página para localizarla y ver su contexto circundante.

Localización de contenido original

Los archivos PO son una lista ordenada de cadenas de origen (msgid) y sus traducciones (msgstr), y por defecto, Weblate presentará las cadenas en ese orden. Por lo tanto, puede ser útil comprender cómo se organiza el contenido en los archivos PO para ayudarte a localizar el contenido original y usarlo como referencia al traducir.

Importante

Es primordial apoyarse del contexto original al traducir, ya que muchas palabras tienen diferentes posibles traducciones dependiendo del contexto. Usar la traducción incorrecta puede realmente perjudicar al usuario y hacer más difícil comprender que si estuviese en Inglés. Usar el contexto también hace que el esfuerzo de traducción sea fácil y más agradable, ya que puedes ver directamente si la traducción que escribiste tiene sentido en el contexto.

  • La plantilla de traducción de la interfaz del editor se genera mediante el análisis de todo el código fuente de C++ en orden alfabético, por lo que todas las cadenas definidas en un archivo determinado se agruparán juntas. Por ejemplo, si la "ubicación de la cadena de origen" indica editor/code_editor.cpp, la cadena actual (y las cercanas) está definida en el archivo de código editor/code_editor.cpp y, por lo tanto, está relacionada con los editores de código en Godot (GDScript, shaders).

  • La plantilla de traducción de la documentación en línea se genera a partir de los archivos RST de origen en el mismo orden que se ve en la tabla de contenidos, por lo que, por ejemplo, las primeras cadenas son de la página principal de la documentación. El flujo de trabajo recomendado es encontrar una cadena única que corresponda a una página que deseas traducir, y luego traducir todas las cadenas con la misma ubicación de la cadena de origen mientras comparas con la versión en línea de esa página en inglés. Un ejemplo de ubicación de la cadena de origen podría ser getting_started/step_by_step/nodes_and_scenes.rst para la página Nodos y Escenas.

  • La plantilla de traducción de la referencia de clases se genera a partir de los archivos XML de origen en orden alfabético, que también es el mismo orden que se encuentra en la tabla de contenidos de la versión en línea. Por lo tanto, puedes ubicar la cadena de origen correspondiente a la descripción breve de una clase determinada para encontrar la primera cadena que debes traducir, y todas las demás descripciones de esa clase estarán en las cadenas siguientes en Weblate. Por ejemplo, las descripciones para la clase Node2D tendrían la ubicación de la cadena de origen doc/classes/Node2D.xml.

Una herramienta útil para ubicar páginas o clases específicas es utilizar la función de búsqueda avanzada de Weblate, y especialmente la consulta "Location strings" (cadenas de ubicación), (que también se puede utilizar con el token location:. Por ejemplo, para buscar en la ubicación nodes_and_scenes.rst, puedes usar la consulta location:nodes_and_scenes.rst):

../../_images/l10n_05_search_location.png ../../_images/l10n_06_browse_by_location.png

Nota

Cuando una cadena de origen se utiliza en varias ubicaciones de origen, todas se concatenarán en una sola. Por ejemplo, la consulta location:nodes_and_scenes.rst mencionada anteriormente aterrizaría primero en la cadena de origen "Introduction" que se utiliza en docenas de páginas, incluyendo algunas que vienen antes de nodes_and_scenes.rst en la plantilla. Al hacer clic en el botón "Siguiente", llegaríamos a la cadena de origen del título "Scene and nodes" que se muestra arriba. Por lo tanto, puede ocurrir que un párrafo o título de sección en particular no esté en la ubicación que esperarías cuando leas la versión en línea de una página.

Respetando la sintaxis del marcado

Cada recurso de traducción proviene de un formato de código fuente diferente, y tener algunas nociones sobre el lenguaje de marcado utilizado para cada recurso es importante para evitar crear errores de sintaxis en tus traducciones.

Interfaz del editor (C ++)

Las traducciones del editor provienen de cadenas de C++ y pueden usar lo siguiente:

  • Especificadores de formato C, como %s (una cadena) o %d (un número). Estos especificadores se reemplazan por contenido en tiempo de ejecución y deben conservarse y colocarse en su traducción donde sea necesario para que sea significativa después de la sustitución. Es posible que deba consultar la ubicación de la cadena fuente para comprender qué tipo de contenido se sustituirá si no está claro en la oración. Ejemplo (%s se sustituirá por un nombre de archivo o ruta):

    # PO file:
    "There is no '%s' file."
    
    # Weblate:
    There is no '%s' file.
    
  • Caracteres de escape C como \n (salto de línea) o \t (tabulación). En el editor de Weblate, los caracteres \n se reemplazan por (retorno) y \t por . Las tabulaciones no se utilizan mucho, pero asegúrese de utilizar saltos de línea de la misma manera que la cadena original en inglés (Weblate emitirá una advertencia si no lo hace). Los saltos de línea a veces se utilizan para espaciado vertical o para envolver manualmente líneas largas que de lo contrario serían demasiado extensas, especialmente en las traducciones del editor. Ejemplo:

    # PO file:
    "Scene '%s' is currently being edited.\n"
    "Changes will only take effect when reloaded."
    
    # Weblate:
    Scene '%s' is currently being edited.↵
    Changes will only take effect when reloaded.
    

Nota

Solo el orden lógico de los caracteres importa; en el texto de derecha a izquierda, los especificadores de formato pueden mostrarse como s%.

Documentación en línea (RST)

Las traducciones de la documentación provienen de archivos de reStructuredText (RST), que también utilizan su propia sintaxis de marcado para dar estilo al texto, crear enlaces internos y externos, etc. Aquí hay algunos ejemplos:

# "development" is styled bold.
# "Have a look here" is a link pointing to https://docs.godotengine.org/en/latest.
# You should translate "Have a look here", but not the URL, unless there is
# a matching URL for the same content in your language.
# Note: The `, <, >, and _ characters all have a meaning in the hyperlink
# syntax and should be preserved.

Looking for the documentation of the current **development** branch?
`Have a look here <https://docs.godotengine.org/en/latest>`_.

# "|supported|" is an inline reference to an image and should stay unchanged.
# "master" uses the markup for inline code, and will be styled as such.
# Note: Inline code in RST uses 2 backticks on each side, unlike Markdown.
# Single backticks are used for hyperlinks.

|supported| Backwards-compatible new features (backported from the ``master``
branch) as well as bug, security, and platform support fixes.

# The :ref: Sphinx "role" is used for internal references to other pages of
# the documentation.
# It can be used with only the reference name of a page (which should not be
# changed), in which case the title of that page will be displayed:

See :ref:`doc_ways_to_contribute`.

# Or it can be used with an optional custom title, which should thus be translated:

See :ref:`how to contribute <doc_ways_to_contribute>`.

# You may encounter other Sphinx roles, such as :kbd: used for shortcut keys.
# You can translate the content between backticks to match the usual key names,
# if it's different from the English one.

Save the scene. Click Scene -> Save, or press :kbd:`Ctrl + S` on Windows/Linux
or :kbd:`Cmd + S` on macOS.

Ver también

Puedes consultar el primer de reStructuredText de Sphinx para obtener una breve descripción de la sintaxis de marcado que puedes encontrar en las cadenas de origen. Es posible que te encuentres especialmente con el marcado en línea (negrita, cursiva, código en línea) y el marcado de hipervínculos internos y externos.

Referencia de clase (BBCode)

La referencia de clases se documenta en el repositorio principal de Godot utilizando archivos XML, y con un marcado similar a BBCode para el estilo y las referencias internas.

Algunas de las etiquetas utilizadas son del BBCode original (por ejemplo, [b]Negrita[/b] y [i]Itálicas[/i]), mientras que otras son específicas de Godot y se utilizan para funciones avanzadas, como código en línea (por ejemplo, [code]true[/code]), enlaces a otra clase (por ejemplo, [Node2D]) o a una propiedad en una clase específica (por ejemplo, [member Node2D.position]), o para bloques de código de varias líneas. Ejemplo:

Returns a color according to the standardized [code]name[/code] with [code]alpha[/code] ranging from 0 to 1.
[codeblock]
red = ColorN("red", 1)
[/codeblock]
Supported color names are the same as the constants defined in [Color].

En el ejemplo anterior, [code]name[/code], [code]alpha[/code], y [Color] no deben traducirse, ya que se refieren respectivamente a nombres de argumentos y una clase de la API de Godot. De manera similar, el contenido del [codeblock] no debe traducirse, ya que ColorN es una función de la API de Godot y "red" es uno de los colores con nombre que admite. Como máximo, puedes traducir el nombre de la variable que contiene el resultado (red = ...).

También ten en cuenta que en el XML, cada línea es un párrafo, por lo que no debes agregar saltos de línea si no forman parte de la traducción original.

Ver también

See our documentation for class reference writers for the list of BBCode-like tags which are used throughout the class reference.

Traducción y pruebas sin conexión

Si bien recomendamos utilizar la interfaz de Weblate para escribir las traducciones, también tienes la posibilidad de descargar el archivo PO localmente para traducirlo con tu aplicación preferida de edición de PO, como Poedit o Lokalize.

Para descargar el archivo PO localmente, ve a la visión general de traducción para tu idioma y selecciona el primer elemento en el menú "Archivos":

../../_images/l10n_07_download_po_file.png

Una vez que hayas terminado con una serie de ediciones, utiliza el elemento "Subir traducción" en el mismo menú y selecciona tu archivo. Elige "Agregar como traducción" como modo de carga del archivo.

Nota

Si ha pasado un tiempo significativo entre la descarga del archivo PO y la carga de la versión editada, existe el riesgo de sobrescribir las traducciones realizadas por otros colaboradores en el ínterin. Por eso, recomendamos utilizar la interfaz en línea para que siempre trabajes con la última versión.

Si deseas probar los cambios localmente (especialmente para la traducción del editor), puedes utilizar el archivo PO descargado y compilar Godot desde el código fuente.

Renombra el archivo PO de traducción del editor a <lang>.po (por ejemplo, eo.po para Esperanto) y colócalo en la carpeta editor/translations/ (GitHub).

También puedes probar los cambios en la referencia de clases de la misma manera, renombrando el archivo PO de manera similar y colocándolo en la carpeta doc/translations/ (GitHub).

Localización de imágenes de documentación

La documentación en línea incluye muchas imágenes, que pueden ser capturas de pantalla del editor de Godot, gráficos personalizados u otro tipo de contenido visual. Algunas de estas imágenes pueden incluir texto y, por lo tanto, pueden ser relevantes para localizar en tu idioma.

Los encargados de la documentación sincronizan las cadenas traducidas manualmente en el repositorio godot-docs-l10n.

Nota

El flujo de trabajo no es el más sencillo y requiere cierto conocimiento de Git. Planeamos trabajar en una herramienta web simplificada que se pueda utilizar para gestionar la localización de imágenes de una manera conveniente, abstrayendo estos pasos.

Para traducir una imagen, primero debes ubicarla en la documentación original en inglés. Para hacerlo, navega a la página relevante en la documentación, por ejemplo, Una primera mirada al editor de Godot. Haz clic en el enlace "Edit on GitHub" en la esquina superior derecha:

../../_images/l10n_08_edit_on_github.png

En GitHub, haz clic en la imagen que deseas traducir. Si es relevante, haz clic en "Download" para descargarla localmente y editarla con una herramienta de edición de imágenes. Toma nota de la ruta completa de la imagen, ya que se necesitará más adelante (aquí getting_started/step_by_step/img/project_manager_first_open.png).

../../_images/l10n_09_path_to_image.png

Crea tu versión localizada de la imagen, ya sea editando la versión en inglés o tomando una captura de pantalla del editor con tu idioma, si es una captura de pantalla del editor. Algunas imágenes también pueden tener archivos fuente disponibles en formato SVG, así que puedes buscar en la carpeta img/ que los contiene para verificar eso.

Nombra tu imagen localizada igual que la original, pero agrega el código de idioma antes de la extensión, por ejemplo, project_manager_first_open.png se convertiría en project_manager_first_open.fr.png para la localización en francés.

Finalmente, en godot-docs-l10n, recrea la misma estructura de carpetas que la imagen original dentro de la subcarpeta images (GitHub). Coloca tu imagen traducida allí. En nuestro ejemplo, el resultado final sería images/getting_started/step_by_step/img/project_manager_first_open.fr.png.

Repite este proceso para otras imágenes y luego crea una solicitud de extracción (Pull Request).