Pular para o conteúdo
Development

O parágrafo que pulou a tradução porque nunca foi perguntado

Por Victor Da Luz•
astroi18ndev-logsite

Um leitor percebeu isso num screenshot antes de mim: o rodapé em espanhol tinha uma tagline traduzida, uma navegação traduzida, um link “Preferencias de análisis” traduzido, e então, bem no meio de tudo isso, um parágrafo inteiro em inglês explicando como funciona o analytics do site.

A passada de i18n que lançou o locale em espanhol deste site passou por toda string que conseguiu encontrar em ui.ts, o objeto de strings compartilhado de onde todo componente puxa seus textos. Ela encontrou a tagline. Encontrou os rótulos de navegação. Encontrou o rótulo do botão “Analytics preferences”. Ela não encontrou a descrição de analytics, porque esse parágrafo nunca esteve em ui.ts. Ele estava fixado diretamente em Footer.astro, três linhas de texto em inglês sentadas bem ao lado de uma chamada {strings.footer.tagline} que parecia, à primeira vista, estar fazendo o mesmo trabalho.

Essa é a parte que vale a pena lembrar: uma string fixada ao lado de uma traduzida não parece quebrada. Não gera um erro de build. Não falha numa checagem de tipos. Ela simplesmente renderiza silenciosamente no idioma errado, para sempre, até alguém ler a página no locale que ela deveria suportar e perceber a costura.

A correção foi mecânica assim que encontrada: adicionar footer.analyticsDescription à interface de strings compartilhada, escrever a tradução em espanhol, trocar o parágrafo fixado por {strings.footer.analyticsDescription}. Três linhas alteradas. O bug estava no ar desde que o locale em espanhol foi lançado.

Nenhuma mudança de processo saiu disso dessa vez. É um lembrete de que “traduzido” e “fazer grep por strings em inglês fixadas em todo componente, não só nos que uma checklist lembrou de visitar” não são a mesma auditoria.

Leitura relacionada

Você também pode achar útil

AdGuard

AdGuard para iOS

Bloqueio de anúncios e rastreadores em todo o sistema no iOS, sem necessidade de um servidor DNS separado.

Como afiliado da AdGuard, ganho com compras qualificadas.

Saiba mais
Proton

Proton Mail

E-mail criptografado de ponta a ponta, com arquitetura de acesso zero.

Como parceiro da Proton, ganho com compras qualificadas dos serviços de privacidade e segurança da Proton (Pass, Mail, VPN, Drive).

Saiba mais
Proton

Proton Drive

Armazenamento em nuvem criptografado, da equipe por trás do Proton Mail.

Como parceiro da Proton, ganho com compras qualificadas dos serviços de privacidade e segurança da Proton (Pass, Mail, VPN, Drive).

Saiba mais