Importando traduções

Jogos e internacionalização

O mundo é cheio de diferentes idiomas e culturas, por isso hoje em dia os jogos são lançados em vários idiomas. Para resolver isso, texto internacionalizado precisa ser suportado em qualquer game engine moderna.

Em aplicações desktop ou mobile regulares, internacionalização de texto é normalmente localizada em arquivos de recursos (ou arquivos .po para GNU). Jogos, no entanto, podem utilizar muito mais texto do que aplicações, então devem suportar métodos eficientes para lidar com grande quantidade de textos em múltiplos idiomas.

Existem duas abordagens para gerar jogos e aplicações multi-idiomas. Ambas são baseadas em um sistema de chave:valor. O primeiro é utilizar uma das linguagens como chave (normalmente Inglês), o segundo é usar um identificador específico. A primeira abordagem é provavelmente mais fácil para desenvolver se o jogo for lançado primeiro em inglês, e depois em outros idiomas, mas um completo pesadelo se estiver trabalhando com muitos idiomas ao mesmo tempo.

Em geral, jogos usam a segunda abordagem e um ID único é utilizado para cada string. Isto permite que você revise o texto enquanto ele está sendo traduzido para outros idiomas. O ID único pode ser um número, uma string, ou uma string com número (que é uma string de qualquer forma).

Nota

Se você precisar de um formato de arquivo mais poderoso, o Godot também suporta carregar traduções escritas no formato gettext .po. Veja Localization using gettext para detalhes.

Formato de tradução

Para permitir suporte eficiente a traduções, o Godot possui um importador especial que pode ler arquivos CSV. Todos os editores de planilhas (seja ele LibreOffice, Microsoft Office, Google Docs, etc.) podem exportar para este formato, então o único requisito é que os arquivos tenham uma organização especial. Os arquivos CSV devem ser salvos com codificação UTF-8 sem uma marca de ordem de byte.

Aviso

Por padrão, o Microsoft Excel sempre salvará arquivos CSV com codificação ANSI em vez de UTF-8. Não há uma maneira integrada de fazer isso, mas há soluções como descritas aqui.

Recomendamos utilizar o LibreOffice ou Google Sheets em seu lugar.

Arquivos CSV devem ser formatados da seguinte forma:

chaves

<lang1>

<lang2>

<langN>

KEY1

string

string

string

KEY2

string

string

string

KEYN

string

string

string

As tags "lang" precisam representar um idioma, que precisa ser uma dos locales válidos suportados pela engine. As tags "KEY" devem ser únicas e representar uma string universalmente (elas geralmente são em caixa alta, para diferenciar de outras strings). Estas chaves serão substituídas durante a execução pela string traduzida correspondente. Note que a caixa é importante, "KEY1" e "Key1" serão chaves diferentes. A célula superior esquerda é ignorada e pode ser deixada vazia ou com algum conteúdo. Aqui está um exemplo:

chaves

en

es

ja

SAUDAÇÃO

Hello, friend!

Hola, amigo!

こんにちは

PERGUNTAR

How are you?

Cómo está?

元気ですか

DESPEDIDA

Goodbye

Adiós

さようなら

CITAÇÃO

"Hello" said the man.

"Hola" dijo el hombre.

「こんにちは」男は言いました

O mesmo exemplo é mostrado abaixo como um arquivo de texto simples separado por vírgula, que deve ser o resultado da edição acima em uma planilha. Ao editar a versão de texto simples, certifique-se de fechar com aspas duplas qualquer mensagem que contenha vírgula, quebras de linha ou aspas duplas, para que as vírgulas não sejam analisadas como delimitadores, quebras de linha não criam novas entradas e aspas duplas não são tratadas como caracteres de fechamento. Certifique-se de evitar quaisquer aspas duplas que uma mensagem pode conter, precedendo-as com outra aspas dupla. Alternativamente, você pode selecionar outro delimitador do que a vírgula nas opções de importação.

keys,en,es,ja
GREET,"Hello, friend!","Hola, amigo!",こんにちは
ASK,How are you?,Cómo está?,元気ですか
BYE,Goodbye,Adiós,さようなら
QUOTE,"""Hello"" said the man.","""Hola"" dijo el hombre.",「こんにちは」男は言いました

Importador de CSV

O Godot tratará arquivos CSV como traduções por padrão. Ele irá importá-los e gerar um ou mais arquivos de recursos de tradução comprimidos ao lado dele.

A importação também adicionará a tradução à lista de traduções para carregar quando o jogo for iniciado, especificado em project.godot (ou nas configurações do projeto). Godot permite carregar e remover traduções em tempo de execução também.

Selecione o arquivo .csv e acesse a dock Importar para definir as opções de importação. Você pode alternar a compressão das traduções importadas e selecionar o delimitador para usar ao analisar o arquivo CSV.

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

Certifique-se de clicar em Reimportar após qualquer alteração nessas opções.