Pular para o conteúdo

Internacionalização

Adicione suporte a múltiplos idiomas ao seu app. Use a Proyecta Content API para localização editorial ou peça à IA para configurar um framework de i18n diretamente no código.

O Proyecta oferece duas abordagens complementares para internacionalizar os apps que você cria:

  1. Localização de conteúdo via Proyecta Content API — para conteúdo editorial (posts de blog, FAQs, textos de marketing) que precisa ser traduzido para múltiplos idiomas
  2. i18n no nível do código via um framework de tradução — para strings de UI, datas, moedas e troca de idioma em tempo de execução

Ambas funcionam hoje. Qual você precisa depende do que está sendo traduzido.

O próprio Proyecta é entregue com 24 locales, então o produto domina bem o tema de i18n. Os mesmos padrões se aplicam aos apps que você cria dentro dele.

Opção 1: Localização de conteúdo (Proyecta Content API)

Seção intitulada “Opção 1: Localização de conteúdo (Proyecta Content API)”

Se você está criando um site com muito conteúdo — blog, base de conhecimento, páginas de marketing, catálogo de produtos — use o suporte nativo a locales da Content API.

// Create the locales you support
await proyecta.content.locales.create({
/* code: 'en', name: 'English' */
});
await proyecta.content.locales.create({
/* code: 'es', name: 'Español' */
});
await proyecta.content.locales.create({
/* code: 'fr', name: 'Français' */
});
// Then create entries that exist in multiple locales — fetch the right
// translation per request based on the user's locale.

Essa é a escolha certa quando:

  • Editores que não escrevem código precisam traduzir conteúdo
  • Você quer que as traduções sejam versionáveis
  • Você precisa de publicação específica por locale (publicação agendada estará disponível em breve — atualmente as entradas exigem publicação manual via API)

Veja Gerenciamento de Conteúdo para a Content API completa.

Para strings de UI — labels, botões, mensagens de erro, datas, moedas — peça à IA para configurar um framework de i18n diretamente no seu projeto:

Add internationalization to my app.
Support English, Spanish, French, and Arabic.
Add message catalogs in src/locales/.
Add a language switcher in the header.
Use locale-prefixed URLs like /en/about and /es/about.
Make sure RTL layout works correctly for Arabic.

A IA irá:

  1. Escolher um framework — a IA usa i18next com react-i18next (o padrão do Proyecta)
  2. Criar os arquivos de catálogo em src/locales/ (um JSON por idioma)
  3. Envolver os textos em chamadas t() (do hook useTranslation do react-i18next)
  4. Adicionar um componente de seleção de idioma
  5. Configurar o roteamento de URL com prefixos de locale
  6. Tratar layouts RTL (dir="rtl") para árabe, hebraico etc.
  7. Formatar números, datas e moedas de acordo com o locale

Assim que o idioma base estiver pronto, a IA é excelente para gerar os demais arquivos de catálogo:

  • "Translate every string in src/locales/en.json into Spanish, French, German, and Japanese. Use natural, idiomatic phrasing — don't translate brand names."
  • "My app is fully built in English. Add Spanish translations for everything and an es/ route prefix."

Para conteúdos críticos (textos jurídicos, médicos, financeiros), peça a um tradutor humano que revise o resultado da IA antes de publicar.

A maioria dos apps reais usa as duas: i18n no nível do código para a interface do sistema (botões, erros, navegação) e a Content API para conteúdo editorial (artigos, descrições de produtos). Elas coexistem de forma limpa — seu framework de i18n cuida dos arquivos de catálogo em tempo de build, e a Content API serve as entradas localizadas em tempo de execução.

  1. Defina seu idioma base e finalize os textos primeiro. Traduzir algo em constante mudança é trabalhoso.
  2. Faça traduções em lote. Não traduza conforme você avança — espere até que uma feature esteja estável.
  3. Teste RTL cedo se você oferece suporte a árabe ou hebraico. Bugs de RTL só aparecem quando você realmente verifica.
  4. Inclua lang e dir na tag <html>. Navegadores e leitores de tela dependem disso.
  5. Use Intl para formatação. Não implemente formatação de datas ou moedas manualmente — use Intl.DateTimeFormat e Intl.NumberFormat.
  • UI de gerenciamento de locales no builder — escolha locales, veja a cobertura de traduções e edite catálogos sem sair do Proyecta
  • Tradução automática ao salvar para novas strings
  • Templates de projeto prontos para i18n com o framework já configurado