Importar traducciones

Juegos e internacionalización

El mundo está lleno de diferentes mercados y culturas y, para maximizar profits™, hoy en día los juegos se lanzan en varios idiomas. Para resolver esto, el texto internacionalizado debe ser soportado en cualquier motor de juegos moderno.

En las aplicaciones normales de escritorio o móviles, el texto internacionalizado se encuentra normalmente en archivos fuente (o archivos .po para asuntos de GNU). Sin embargo, los juegos pueden necesitar un volumen de texto mayor que las aplicaciones en diferentes órdenes de magnitud, por lo que deben ser compatibles con métodos eficaces para manejar una gran cantidad de texto multilingüe.

Existen dos enfoques para generar juegos y aplicaciones multilingües. Ambos se basan en un sistema key:value. La primera es usar uno de los idiomas como clave (generalmente inglés), la segunda es usar un identificador específico. El primer enfoque es probablemente más fácil para el desarrollo si un juego se lanza primero en inglés y luego en otros idiomas, pero es una completa pesadilla si se trabaja con varios idiomas al mismo tiempo.

En general, los juegos utilizan el segundo método y se utiliza un ID único para cada cadena. Esto le permite revisar el texto mientras se está traduciendo a otros idiomas. El ID único puede ser un número, una cadena o una cadena con un número (de todos modos es sólo una cadena única).

Nota

If you need a more powerful file format, Godot also supports loading translations written in the gettext .po format. See Localization using gettext for details.

Formato de traducción

Para completar la imagen y permitir un soporte eficiente para las traducciones, Godot tiene un importador especial que puede leer archivos CSV. Todos los editores de hojas de cálculo (ya sea Libreoffice, Microsoft Office, Google Docs, etc.) pueden exportar a este formato, por lo que el único requisito es que los archivos tengan un arreglo especial. Los archivos CSV deben guardarse en codificación UTF-8 y estar formateados de la siguiente manera:

keys <lang1> <lang2> <langN>
KEY1 string string string
KEY2 string string string
KEYN string string string

The «lang» tags must represent a language, which must be one of the valid locales supported by the engine. The «KEY» tags must be unique and represent a string universally (they are usually in uppercase, to differentiate from other strings). These keys will be replaced at runtime by the matching translated string. Note that the case is important, «KEY1» and «Key1» will be different keys. The top-left cell is ignored and can be left empty or having any content. Here’s an example:

keys en es ja
GREET Hello, friend! Hola, amigo! こんにちは
ASK How are you? Cómo está? 元気ですか
BYE Goodbye Adiós さようなら

The same example is shown below as a comma-separated plain text file, which should be the result of editing the above in a spreadsheet. When editing the plain text version, be sure to enclose any message that contains a comma with double quotes, so that the comma is not parsed as delimiter. Alternatively, you can select another delimiter in the import options.

keys,en,es,ja
GREET,"Hello, friend!","Hola, amigo!",こんにちは
ASK,How are you?,Cómo está?,元気ですか
BYE,Goodbye,Adiós,さようなら

Importador CSV

Godot tratará los archivos CSV como traducciones por defecto. Los importará y generará uno o más archivos de recursos de traducción comprimidos junto a ellos.

La importación también agregará la traducción a la lista de traducciones a cargar cuando se ejecute el juego, especificado en project.godot (o en los ajustes del proyecto). Godot también permite cargar y eliminar traducciones en tiempo de ejecución.

Select the .csv file and access the «Import» dock to define import options. You can toggle the compression of the imported translations, and select the delimiter to use when parsing the CSV file.

../../../_images/import_csv.png

Be sure to click «Reimport» after any change to these options.