2

Pitch: Pokémon Arena no navegador — o que aprendemos ao levar um jogo 3D para pt-BR

Somos a equipe do Pokémon Arena, um jogo de Pokémon feito por fãs, com exploração e batalhas em 3D no navegador. A edição em português do Brasil está disponível para testar gratuitamente, inclusive como convidado. Queremos compartilhar algumas decisões da localização e ouvir quem já passou por problemas parecidos em aplicações web.

Exploração no mundo 3D

A base técnica

O cliente usa JavaScript e Three.js/WebGL, com interface HTML/CSS sobre o mundo 3D. O servidor usa PHP e MySQL. A edição brasileira parte da base em inglês e recebe um conjunto de arquivos específicos de idioma, configuração e apresentação.

Um script de construção gera essa camada a partir dos arquivos-base e dos catálogos traduzidos. Isso ajuda a reproduzir a edição, mas atualizar a base ainda exige reaplicar a camada e verificar os fluxos: não é uma sincronização automática entre sites.

Localização acontece em mais de um lugar

Há um dicionário de strings no PHP e um catálogo no cliente para textos que aparecem dinamicamente na interface. Um glossário comum ajuda a manter nomes de itens, tipos e comandos consistentes entre as duas partes.

Uma dificuldade prática: verificar o HTML inicial não cobre uma janela que só aparece depois de uma batalha. Nosso processo precisa incluir os estados que criam texto durante o uso: diálogos, mensagens temporárias, menus e resultados. Ainda estamos revisando a tradução e queremos receber relatos de frases fora de contexto ou em outro idioma.

Três detalhes que foram além de traduzir frases

1. Validação dos nomes. A expressão de validação foi ajustada para aceitar letras latinas acentuadas. Traduzir a interface e rejeitar um nome como João deixaria uma parte importante da experiência sem localização.

2. Espaço para os rótulos. A camada de CSS permite quebra de linha nos botões e títulos. No celular, vale verificar o rótulo traduzido junto com a área de toque e os controles ao redor. Uma frase compreensível pode continuar quebrando o layout.

3. Cache entre edições. Como várias edições compartilham a infraestrutura, o código usa um namespace nas operações de cache APCu. Separar os bancos de dados resolve apenas uma parte do isolamento; as chaves do cache também precisam distinguir cada edição.

O HTML também recebe lang="pt-BR", para identificar o idioma corretamente para o navegador e tecnologias assistivas.

Batalha 3D

O que queremos melhorar

Estamos procurando feedback sobre clareza das instruções, tamanho dos textos no celular e trechos que escaparam da tradução. O desempenho também varia conforme o aparelho; modelo, navegador e a etapa em que o problema apareceu ajudam muito num relato.

Para quem mantém aplicações em vários idiomas: como vocês testam textos criados dinamicamente sem depender só de percorrer cada tela manualmente?

Teste a edição pt-BR: https://pokemonarena.net/

Projeto de fãs, sem afiliação com Nintendo, Game Freak ou The Pokémon Company.

Carregando publicação patrocinada...