Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Ao integrar o servidor MCP Intlayer ao seu assistente de IA, você pode recuperar todos os documentos diretamente de ChatGPT, DeepSeek, Cursor, VSCode, etc.
Ver a documentação do servidor MCPO conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsSe você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentaçãoCopiar o Markdown do documento para a área de transferência
Mapeador de Locale
O Mapeador de Locale é uma ferramenta poderosa que ajuda você a trabalhar com dados de internacionalização na sua aplicação Intlayer. Ele fornece três funções principais para transformar e organizar dados específicos de locale: localeMap, localeFlatMap e localeRecord.
Como o Mapeador de Locale Funciona
O Mapeador de Locale opera sobre um objeto LocaleData que contém todas as informações necessárias sobre um locale:
Copiar o código para a área de transferência
type LocaleData = { locale: LocalesValues; // Código do locale atual (ex.: 'en', 'fr') defaultLocale: LocalesValues; // Código do locale padrão isDefault: boolean; // Indica se este é o locale padrão locales: LocalesValues[]; // Array de todos os locales disponíveis urlPrefix: string; // Prefixo de URL para este locale (ex.: '/fr' ou '')};
As funções do mapeador geram automaticamente esses dados para cada locale na sua configuração, levando em consideração:
- Sua lista de locales configurados
- A configuração do locale padrão
- Se o locale padrão deve ser prefixado nas URLs
Funções Principais
localeMap
Transforma cada locale em um único objeto usando uma função mapeadora.
Copiar o código para a área de transferência
localeMap<T>( mapper: (locale: LocaleData) => T, locales?: LocalesValues[], defaultLocale?: LocalesValues, prefixDefault?: boolean): T[]
Exemplo: Criando objetos de rotas
Copiar o código para a área de transferência
import { localeMap } from "intlayer";const routes = localeMap((localizedData) => ({ path: localizedData.urlPrefix, name: localizedData.locale, isDefault: localizedData.isDefault, locales: localizedData.locales, defaultLocale: localizedData.defaultLocale,}));// Resultado:// [// { path: '/', name: 'en', isDefault: true, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },// { path: '/fr', name: 'fr', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },// { path: '/es', name: 'es', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' }// ]
localeFlatMap
Similar to localeMap, but the mapper function returns an array of objects that gets flattened into a single array.
Copiar o código para a área de transferência
localeFlatMap<T>( mapper: (locale: LocaleData) => T[], locales?: LocalesValues[], defaultLocale?: LocalesValues, prefixDefault?: boolean): T[]
Exemplo: Criando múltiplas rotas por localidade
Copiar o código para a área de transferência
import { localeFlatMap } from "intlayer";const routes = localeFlatMap((localizedData) => [ { path: localizedData.urlPrefix, name: localizedData.locale, isDefault: localizedData.isDefault, }, { path: `${localizedData.urlPrefix}/about`, name: `${localizedData.locale}-about`, isDefault: localizedData.isDefault, },]);// Resultado:// [// { path: '/', name: 'en', isDefault: true },// { path: '/about', name: 'en-about', isDefault: true },// { path: '/fr', name: 'fr', isDefault: false },// { path: '/fr/about', name: 'fr-about', isDefault: false },// { path: '/es', name: 'es', isDefault: false },// { path: '/es/about', name: 'es-about', isDefault: false }// ]
localeRecord
Cria um objeto record onde cada localidade é uma chave que mapeia para um valor transformado pela função mapper.
Copiar o código para a área de transferência
localeRecord<T>( mapper: (locale: LocaleData) => T, locales?: Locales[], defaultLocale?: Locales, prefixDefault?: boolean): Record<Locales, T>
Exemplo: Carregando arquivos de tradução
Copiar o código para a área de transferência
import { localeRecord } from "intlayer";const translations = localeRecord(({ locale }) => require(`./translations/${locale}.json`));// Resultado:// {// en: { welcome: 'Welcome', hello: 'Hello' },// fr: { welcome: 'Bienvenue', hello: 'Bonjour' },// es: { welcome: 'Bienvenido', hello: 'Hola' }// }
Configurando o Locale Mapper
O Locale Mapper usa automaticamente a configuração do seu Intlayer, mas você pode sobrescrever os padrões passando parâmetros:
Usando Configuração Padrão
Copiar o código para a área de transferência
import { localeMap } from "intlayer";// Usa a configuração do intlayer.config.tsconst routes = localeMap((data) => ({ path: data.urlPrefix, locale: data.locale,}));
Sobrescrevendo a Configuração
Copiar o código para a área de transferência
import { localeMap } from "intlayer";// Sobrescreve os locais e o local padrãoconst customRoutes = localeMap( (data) => ({ path: data.urlPrefix, locale: data.locale }), // ["en", "fr", "de"], // Locais personalizados "en", // Local padrão personalizado true // Prefixar local padrão nas URLs);
Exemplos Avançados de Uso
Criando Menus de Navegação
Copiar o código para a área de transferência
import { localeMap } from "intlayer";const navigationItems = localeMap((data) => ({ label: data.locale.toUpperCase(), href: data.urlPrefix || "/", isActive: data.isDefault, flag: `/flags/${data.locale}.svg`,}));
Gerando Dados para Sitemap
Copiar o código para a área de transferência
import { localeFlatMap } from "intlayer";const sitemapUrls = localeFlatMap((data) => [ { url: `${data.urlPrefix}/`, lastmod: new Date().toISOString(), changefreq: "daily", priority: data.isDefault ? 1.0 : 0.8, }, { url: `${data.urlPrefix}/about`, lastmod: new Date().toISOString(), changefreq: "monthly", priority: data.isDefault ? 0.8 : 0.6, },]);
Carregamento Dinâmico de Traduções
Copiar o código para a área de transferência
import { localeRecord } from "intlayer";const translationModules = localeRecord(({ locale }) => ({ messages: import(`./locales/${locale}/messages.json`), validation: import(`./locales/${locale}/validation.json`), metadata: { locale, direction: ["ar", "he", "fa"].includes(locale) ? "rtl" : "ltr", },}));
Integração com Configuração
O Locale Mapper integra-se perfeitamente com a sua configuração Intlayer:
- Locales: Usa automaticamente configuration.internationalization.locales
- Local Padrão: Usa configuration.internationalization.defaultLocale
- Prefixo de URL: Respeita configuration.middleware.prefixDefault
Isso garante consistência em toda a sua aplicação e reduz a duplicação de configuração.
Histórico da Documentação
Versão | Data | Alterações |
---|---|---|
5.7.2 | 2025-07-27 | Adiciona documentação do locale mapper |