Introdução
Recupere os idiomas configurados em seu projeto para habilitar conteúdo multilíngue e detecção de localidade.
Mais informações sobre a interface do usuário do módulo https://doc.oneentry.cloud/docs/category/languages
🎯 O que este módulo faz?
O módulo Locales permite que você gerencie o suporte a múltiplos idiomas em seu projeto OneEntry - recupere os idiomas disponíveis, detecte a localidade do usuário e construa aplicações internacionalizadas que fornecem conteúdo em vários idiomas.
Pense nisso como seu gerenciador de idiomas - em vez de codificar idiomas no seu aplicativo, você busca a lista de idiomas ativos do OneEntry dinamicamente, permitindo que seu conteúdo se adapte automaticamente a diferentes localidades (inglês, russo, árabe, espanhol, etc.).
📖 Explicação Simples
Em aplicações modernas, você frequentemente precisa suportar múltiplos idiomas:
- 🌍 Sites de e-commerce - Atenda clientes em diferentes países (inglês, francês, alemão)
- 📱 Aplicativos móveis - Adapte a interface ao idioma do dispositivo do usuário
- 🌐 Sites - Mostre conteúdo no idioma preferido do visitante
- 📚 Documentação - Forneça ajuda em múltiplos idiomas
- 🎮 Jogos - Traduza a interface e o conteúdo
O problema com a codificação rígida de idiomas:
Problemas:
- 🔄 Difícil de atualizar - É necessário reimplantar para adicionar novos idiomas
- 🌍 Não sincronizado - Os idiomas do aplicativo podem diferir dos idiomas do CMS
- ❌ Desajustes de tradução - O conteúdo existe no CMS, mas não no aplicativo
- 🔧 Manutenção manual - Atualize o código toda vez que os idiomas mudarem
A solução Locales:
Benefícios:
- 🔄 Sempre em sincronia - Os idiomas correspondem ao que está configurado no OneEntry
- 🌍 Dinâmico - Adicione/remova idiomas sem mudanças no código
- ✅ Validado - Mostre apenas idiomas que têm conteúdo
- 🎯 Centralizado - Gerencie idiomas em um só lugar
✨ Conceitos Chave
O que é uma Localidade?
Uma localidade é uma combinação de idioma e região que determina como o conteúdo é exibido:
- Código do Idioma - Código de idioma ISO 639-1 (por exemplo,
en,ru,ar) - Código da Região - Código de país ISO 3166-1 (por exemplo,
US,GB,RU) - Identificador de Localidade - Formato combinado:
idioma_REGIÃO(por exemplo,en_US,ru_RU,ar_SA)
Exemplos:
| Código da Localidade | Idioma | Região | Descrição |
|---|---|---|---|
en_US | Inglês | Estados Unidos | Inglês Americano |
en_GB | Inglês | Grã-Bretanha | Inglês Britânico |
ru_RU | Russo | Rússia | Russo |
es_ES | Espanhol | Espanha | Espanhol Europeu |
es_MX | Espanhol | México | Espanhol Mexicano |
ar_SA | Árabe | Arábia Saudita | Árabe (Arábia Saudita) |
fr_FR | Francês | França | Francês |
de_DE | Alemão | Alemanha | Alemão |
Estrutura da Localidade
Cada localidade no OneEntry tem:
{
id: 146, // unique ID
shortCode: 'en', // short code
code: 'en_US', // full code
name: 'English (USA)', // name
nativeName: 'English (USA)', // native name
isActive: true, // is active
image: null, // image
position: 1, // position
}
Por que usar o módulo Locales?
| Benefício | Descrição |
|---|---|
| Suporte a múltiplos idiomas | Forneça conteúdo no idioma preferido do usuário |
| Lista de idiomas dinâmica | Idiomas sincronizados com a configuração do OneEntry |
| Detecção de localidade padrão | Identifique automaticamente o idioma padrão |
| Filtragem de localidade ativa | Mostre apenas idiomas habilitados |
| Gerenciamento centralizado | Atualize idiomas no painel de administração, não no código |
| Experiência do usuário | Permita que os usuários escolham seu idioma |
Casos de Uso Comuns
| Caso de Uso | Descrição | Exemplo |
|---|---|---|
| Seletor de Idioma | Menu suspenso para alternar idiomas | Cabeçalho do site com bandeiras de idiomas |
| Localização de Conteúdo | Busque conteúdo no idioma do usuário | Postagens de blog em inglês ou russo |
| Roteamento | Estrutura de URL por idioma | /en/about, /ru/about |
| Lógica de Fallback | Mostre o idioma padrão se a tradução estiver ausente | Mostre inglês se o espanhol não estiver disponível |
| Preferências do Usuário | Lembre-se da escolha de idioma do usuário | Salve a localidade em cookies/localStorage |
📋 O que você precisa saber
As Localidades são configuradas no Painel de Administração
Você não pode criar localidades via SDK - elas são configuradas no painel de administração do OneEntry:
OneEntry Admin Panel → Settings → Languages → Add Language → Select Locale
O SDK é para buscar informações de localidade, não para criar localidades.
Localidades Ativas vs. Inativas
Nem todas as localidades configuradas podem estar ativas:
| Status | Significado | Quando Usar |
|---|---|---|
Ativa (isActive: true) | Localidade está habilitada e tem conteúdo | Mostrar no seletor de idiomas |
Inativa (isActive: false) | Localidade está desabilitada ou sendo preparada | Ocultar dos usuários |
Melhor prática: Sempre filtre por isActive ao construir seletores de idiomas
Localidade Padrão
Todo projeto OneEntry tem uma localidade padrão:
- Localidade padrão (
isDefault: true) - O idioma principal - Usada quando nenhuma localidade é especificada
- Fallback quando a tradução está ausente
Código da Localidade vs. Código Curto
Cada localidade tem dois formatos de código:
| Campo | Formato | Exemplo | Uso Para |
|---|---|---|---|
code | idioma_REGIÃO | en_US, ru_RU | Identificação completa da localidade |
shortCode | idioma | en, ru | Identificação apenas do idioma |
📊 Tabela de Referência Rápida
| Método | Descrição | Caso de Uso |
|---|---|---|
| getLocales() | Obter todas as localidades (ativas e inativas) | Buscar idiomas disponíveis |
❓ Perguntas Frequentes (FAQ)
Como adiciono novos idiomas ao meu projeto?
Você não pode adicionar localidades via SDK. As localidades são configuradas no painel de administração do OneEntry.
Como defino o idioma padrão?
Você não pode definir a localidade padrão via SDK. A localidade padrão é configurada no painel de administração do OneEntry:
Nota: Apenas uma localidade pode ser padrão por vez.
Devo mostrar localidades inativas para os usuários?
Não! Sempre filtre por isActive:
Por quê? Localidades inativas podem:
- Estar em desenvolvimento (conteúdo não pronto)
- Estar temporariamente desabilitadas
- Não ter traduções para todo o conteúdo
Como lido com traduções ausentes?
Use lógica de fallback
Posso armazenar em cache localidades?
Sim! As localidades raramente mudam, então o cache é recomendado.
Posso usar Locales com Next.js i18n?
Sim! Integre localidades do OneEntry com Next.js.
Como agrupo localidades por idioma?
Agrupe variantes do mesmo idioma
E se eu precisar traduzir elementos da interface (não conteúdo do CMS)?
O módulo Locales do OneEntry é apenas para localidades de conteúdo do CMS. Para tradução da interface:
Opção 1: Use a biblioteca i18n (react-i18next, next-i18next)
Opção 2: Armazene traduções da interface no OneEntry
Crie um tipo de página "traduções" e busque strings de tradução
💡 Notas Importantes
As Localidades são Somente Leitura
O módulo Locales é somente leitura:
- ✅ Buscar localidades
- ✅ Filtrar por status ativo
- ✅ Encontrar localidade padrão
- ❌ Não pode criar localidades
- ❌ Não pode atualizar localidades
- ❌ Não pode excluir localidades
Para modificar: Use o painel de administração do OneEntry.
Sempre Filtre Localidades Ativas
Mostre apenas localidades ativas para os usuários
Por quê? Localidades inativas podem não ter traduções completas.
O Cache é Recomendado
As localidades raramente mudam - implemente cache
Sincronize com Localidades de Conteúdo
Garanta que os idiomas da interface correspondam ao conteúdo disponível
🎓 Melhores Práticas
- Sempre filtre localidades ativas - Mostre apenas idiomas habilitados
- Armazene localidades em cache - Elas raramente mudam, cache para desempenho
- Use a localidade padrão como fallback - Lide com traduções ausentes
- Salve a preferência do usuário - Lembre-se da escolha de idioma
- Valide códigos de localidade - Verifique se a localidade existe antes de usar
- Detecte o idioma do navegador - Selecione automaticamente o idioma do usuário
- Agrupe por idioma - Mostre variantes de idioma de forma lógica
Definição do módulo Locales
O módulo 'Locales' permite suporte a múltiplos idiomas no OneEntry.
Graças ao suporte a múltiplos idiomas na Plataforma OneEntry, você pode personalizar flexivelmente a interface do seu painel e gerenciar idiomas de forma conveniente em seu projeto. Nesta seção, você pode aprender sobre os princípios de trabalho com idiomas.
const { Locales } = defineOneEntry( "sua-url-do-projeto", { "token": "seu-token-de-aplicativo" });
🔗 Documentação Relacionada
- Módulo de Páginas - Busque conteúdo de página localizado
- Módulo de Produtos - Gerencie produtos multilíngues
- Módulo GeneralTypes - Classificação de tipos de entidade
- Módulo Admins - Usuários administradores que gerenciam localidades