A localização que vive fora do produto
Levar um app nativo a dez mercados transforma a localização em dez projetos. Cada mercado tem seu próprio catálogo de strings, sua própria passada de layout para absorver alemão mais longo ou chinês mais denso, e sua própria ficha e capturas de loja. Adicionar árabe ou hebraico significa reestruturar cada tela da direita para a esquerda e recertificar a compilação. O custo de falar outro idioma é um novo ciclo de lançamento.
O runtime de mini-programa inverte a unidade da localização. Os pacotes de idioma viajam dentro do pacote e o runtime resolve o correto na inicialização e em cada mudança de idioma. Uma só compilação pode saudar o usuário em inglês, chinês, espanhol, português ou árabe — e o mesmo programa roda inalterado em cada super-app que suporte esses idiomas.
O que é realmente o i18n dentro do pacote
O runtime fornece uma camada de localização: os desenvolvedores empacotam recursos de tradução por idioma, declaram uma cadeia de fallback e o runtime escolhe a melhor correspondência para o idioma preferido do usuário. O runtime central @miniprogram-i18n do WeChat, por exemplo, expõe um motor de tradução com t(key), setLocale e um idioma de fallback para que strings ausentes degradem com elegância em vez de ficarem em branco. O SDK IAPMiniProgram da Alipay leva isso mais longe: adapta a UI do SDK, os metadados do programa e o conteúdo do pacote, e inclui árabe com direção de layout automática da direita para a esquerda.
É a mesma disciplina da internacionalização web —as diretrizes RTL do W3C e as APIs Intl da MDN— mas o runtime a aplica uniformemente dentro da super-app em vez de deixar cada equipe montar seu próprio pipeline.
Onde a diferença aparece
| Passo | App nativo | Runtime de mini-programa (i18n no pacote) |
|---|---|---|
| Catálogo de strings | Compilação por mercado | Arquivos de idioma em um pacote |
| RTL (árabe, hebraico) | Reestruturar e recertificar | O runtime inverte a direção |
| Novo idioma | Novo ciclo de versão | Adicionar pacote, sem reconstruir |
| Fallback | Manual por tela | Cadeia de fallback declarada |
| Suporte de super-app | Ficha por loja | Mesmo pacote, várias super-apps |
O resultado é que entrar em um mercado vira uma tarefa de conteúdo, não um programa de engenharia: solta um pacote de idioma e o runtime cuida da resolução e da direção.
Por que o integrado supera o acrescentado
Uma camada de localização dentro do pacote significa que o desenvolvedor escreve o produto uma vez e publica idiomas como dados. Também significa que a cadeia de fallback —correspondência exata, mesma língua base, padrão— é imposta pelo runtime, então uma tradução ausente nunca quebra uma tela. O mesmo pacote renderiza corretamente em cada super-app que suporte os idiomas declarados, sem divergência entre lojas.
Como a Cross Mini App aplica
A Cross Mini App dá aos programas um runtime com uma camada de localização integrada: pacotes de idioma, uma cadeia de fallback e tratamento RTL viajam dentro do pacote, então uma só compilação alcança um público global. Você escreve o conteúdo uma vez; o runtime saúda cada usuário em seu idioma e direção. Você para de reconstruir o app para adicionar um mercado e passa a adicionar idiomas como dados.
Essa é a diferença entre dez versões localizadas e um programa que fala com todos.