Ir para o conteúdo principal

Princípios Básicos de Internacionalização

Tradução Beta Não Oficial

Esta página foi traduzida por PageTurner AI (beta). Não é oficialmente endossada pelo projeto. Encontrou um erro? Reportar problema →

O Que É Internacionalização e Por Que Ela Importa?

Software internacionalizado suporta os idiomas e costumes culturais de pessoas em todo o mundo. A web alcança todas as partes do globo. Aplicações web internacionalizadas proporcionam uma ótima experiência de usuário para pessoas em qualquer lugar.

Software localizado adapta-se a um idioma e cultura específicos, traduzindo textos para a língua do usuário e formatando dados de acordo com suas expectativas. Um aplicativo normalmente é localizado para um pequeno conjunto de localidades.

A especificação ECMA-402 de internacionalização JavaScript oferece uma excelente visão geral.

Localidades: Idioma e Região

Uma "localidade" refere-se às expectativas linguísticas e culturais de uma região. Ela é representada por um "código de localidade" definido no UTS LDML.

Este código consiste em várias partes separadas por hífens (-). A primeira parte é uma string curta que representa o idioma. A segunda parte, opcional, é uma string curta que representa a região. Além disso, várias extensões e variantes podem ser especificadas.

Para orientações sobre como escolher os componentes corretos de localidade, consulte o artigo da W3C sobre seleção de tags de idioma.

Tipicamente, aplicações web são localizadas apenas para o idioma ou combinação idioma-região. Exemplos desses códigos de localidade incluem:

  • en para inglês

  • en-US para inglês como falado nos Estados Unidos

  • en-GB para inglês como falado no Reino Unido

  • es-AR para espanhol como falado na Argentina

  • ar-001 para árabe como falado mundialmente

  • ar-AE para árabe como falado nos Emirados Árabes Unidos

A maioria das aplicações internacionalizadas suporta apenas uma pequena lista de localidades.

Tradução de Strings

Provavelmente, seu aplicativo possui textos em linguagens naturais como inglês ou japonês. Para suportar outras localidades, você precisará traduzir essas strings.

O FormatJS fornece um mecanismo que permite escrever o "software" principal do seu aplicativo sem código especial para diferentes traduções. As considerações para cada localidade são encapsuladas em suas strings traduzidas e em nossas bibliotecas.

const messages = {
en: {
GREETING: 'Hello {name}',
},
fr: {
GREETING: 'Bonjour {name}',
},
}

Utilizamos a sintaxe de mensagens ICU, também empregada em Java, C, PHP e várias outras plataformas.

Agrupamento de Strings Traduzidas

É comum organizar suas traduções principalmente por localidade, pois você só precisa das traduções para a localidade atual do usuário. Nossas integrações com bibliotecas de componentes e templates são projetadas para trabalhar com traduções de uma única localidade. Se seu aplicativo for complexo, você pode subdividir ainda mais as traduções, por exemplo, por página ou seção do site.

Estrutura do Código

A formatação e apresentação real de dados e strings traduzidas geralmente seguem estas etapas:

  1. Determine a localidade do usuário, conforme descrito no guia de Ambientes de Execução.

  2. Configure uma das integrações do FormatJS com os seguintes dados:

    • a localidade atual do usuário
    • strings traduzidas para essa localidade
    • opcionalmente, formatos personalizados
  3. Chame o template engine, passando os dados que precisam de formatação.