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:
- 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
- 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 supportawait 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.
Opção 2: Framework de i18n no nível do código
Seção intitulada “Opção 2: Framework de i18n no nível do código”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á:
- Escolher um framework — a IA usa
i18nextcomreact-i18next(o padrão do Proyecta) - Criar os arquivos de catálogo em
src/locales/(um JSON por idioma) - Envolver os textos em chamadas
t()(do hookuseTranslationdo react-i18next) - Adicionar um componente de seleção de idioma
- Configurar o roteamento de URL com prefixos de locale
- Tratar layouts RTL (
dir="rtl") para árabe, hebraico etc. - Formatar números, datas e moedas de acordo com o locale
Tradução automática com a IA
Seção intitulada “Tradução automática com a IA”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.
Combinando as duas abordagens
Seção intitulada “Combinando as duas abordagens”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.
Boas práticas
Seção intitulada “Boas práticas”- Defina seu idioma base e finalize os textos primeiro. Traduzir algo em constante mudança é trabalhoso.
- Faça traduções em lote. Não traduza conforme você avança — espere até que uma feature esteja estável.
- Teste RTL cedo se você oferece suporte a árabe ou hebraico. Bugs de RTL só aparecem quando você realmente verifica.
- Inclua
langedirna tag<html>. Navegadores e leitores de tela dependem disso. - Use
Intlpara formatação. Não implemente formatação de datas ou moedas manualmente — useIntl.DateTimeFormateIntl.NumberFormat.
Em breve
Seção intitulada “Em breve”- 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