Localization Guide: Suporte de Idioma e Configuração
Localization em Mindustry cobre o sistema do jogo para traduzir e apresentar texto, editores dentro do jogo e assets específicos de localidade. Uma boa localização garante que os jogadores vejam menus, mensagens e elementos de UI no idioma escolhido e que funcionalidades dependentes de localidade (como assets regionais ou comportamento do editor) funcionem de maneira previsível.
Locais suportados e apresentação de texto
- Mindustry oferece suporte a múltiplas localidades. Cada localidade fornece strings traduzidas para elementos da UI, nomes de construções e itens, tooltips e mensagens do sistema.
- Quando uma tradução para uma string está faltando na localidade selecionada, o jogo recorre ao idioma padrão (tipicamente English).
- Arquivos de localidade controlam não só as traduções brutas, mas também a formatação de números, datas e outras convenções de exibição quando aplicável.
Localização do editor in-game
- O editor Visual (in-game) — aberto pelo ícone de lápis — é localizado para facilitar o uso em várias plataformas. Ele fornece uma interface gráfica para editar logic processors e é recomendado para jogadores novos.
- Vantagens do editor in-game (visual):
- Interface gráfica em blocos adequada para iniciantes.
- Seleção simples de variáveis com todas as variáveis disponíveis exibidas.
- Manipulação intuitiva do fluxo de controle (por exemplo, Jump).
- Usável em dispositivos móveis.
- O editor visual permite importação/exportação via clipboard para que jogadores possam transferir código de lógica entre instâncias e localidades sem redigitar manualmente.
Assets específicos de localidade e dados de regiões
- Alguns assets do jogo e configurações são marcados por região. Por exemplo, certas definições de mapa ou região podem referenciar uma região de sombra nomeada para carregar; usar um valor null indica a região de sombra normal/padrão.
- Dados de localidade podem incluir nomes de regiões (por exemplo, "Serpulo") e outras strings específicas de mapa. Estes devem ser traduzidos de forma consistente para evitar confundir jogadores que trocam de localidade.
Tradução de dados numéricos e de jogabilidade
- Arquivos de localização não devem alterar números de jogabilidade ou propriedades mecânicas. Texto descritivo é localizado, mas valores mostrados na UI (damage, speed, capacity) devem ser apresentados exatamente como definidos pelos dados do jogo.
- Para elementos com propriedades complexas (por exemplo, atributos de fluidos como flammability, explosivity, viscosity, heat capacity e temperature), a camada de localização exibe rótulos e unidades; ela não altera essas mecânicas.
Trabalhando com valores null e ausentes
- Alguns campos de configuração aceitam null para indicar comportamento padrão (por exemplo, um nome de região "shadow" null para indicar a sombra normal). Tradutores e localizadores devem preservar a semântica null e não substituir por strings vazias ou texto localizado onde o motor espera null.
Boas práticas para tradutores
- Mantenha tokens de placeholder intactos (por exemplo, {0}, %s) e preserve a ordenação se a gramática do idioma alvo exigir.
- Não traduza identificadores brutos, chaves técnicas ou nomes de arquivos.
- Mantenha consistência para termos de jogabilidade (nomes de construções, nomes de itens, nomes de regiões). Use as traduções canônicas estabelecidas para nomes próprios como Serpulo.
- Teste traduções no editor visual e no jogo para assegurar que a UI se encaixa nas restrições de layout e em telas móveis.
- Use importação/exportação via clipboard para validar trechos de lógica entre localidades sem introduzir problemas de codificação.
Testes e manutenção
- Verifique traduções no jogo, checando menus, tooltips e o editor de lógica visual.
- Assegure que quaisquer referências a assets específicas de localidade (por exemplo, nomes de regiões de shadow) carreguem corretamente e que comportamentos null/padrão permaneçam intactos.
- Mantenha arquivos de localização sincronizados com atualizações do jogo para evitar strings faltando ou placeholders incompatíveis.