Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Este documento está desatualizado, a versão base foi atualizada em 20 de janeiro de 2026.
Ir para a documentação em inglêsHistórico de versões
- "Adicionados formatadores para Vue"v5.8.020/08/2025
- "Adicionada documentação dos formatadores"v5.8.018/08/2025
- "Adicionar documentação do formatador de listas"v5.8.020/08/2025
- "Adicionar utilitários adicionais do Intl (DisplayNames, Collator, PluralRules)"v5.8.020/08/2025
- "Adicionar utilitários de locale (getLocaleName, getLocaleLang, getLocaleFromPath, etc.)"v5.8.020/08/2025
- "Adicionar utilitários para manipulação de conteúdo (getContent, getTranslation, getIntlayer, etc.)"v5.8.020/08/2025
O 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
Formatadores Intlayer
Visão Geral
O Intlayer fornece um conjunto de helpers leves construídos sobre as APIs nativas Intl, além de um wrapper Intl em cache para evitar a construção repetida de formatadores pesados. Esses utilitários são totalmente sensíveis à localidade e podem ser usados a partir do pacote principal intlayer.
Importação
Se estiver a usar React, os hooks também estão disponíveis; veja react-intlayer/format.
Intl em Cache
O Intl exportado é um wrapper leve e em cache em torno do Intl global. Ele memoiza instâncias de NumberFormat, DateTimeFormat, RelativeTimeFormat, ListFormat, DisplayNames, Collator e PluralRules, o que evita reconstruir o mesmo formatador repetidamente.
Como a construção do formatador é relativamente dispendiosa, este cache melhora o desempenho sem alterar o comportamento. O wrapper expõe a mesma API do Intl nativo, portanto o uso é idêntico.
- O cache é por processo e transparente para os chamadores.
Se Intl.DisplayNames não estiver disponível no ambiente, um único aviso para desenvolvedores é exibido (considere um polyfill).
Exemplos:
Utilitários adicionais do Intl
Além dos auxiliares de formatadores, você também pode usar diretamente o wrapper Intl em cache para outros recursos do Intl:
Intl.DisplayNames
Para nomes localizados de idiomas, regiões, moedas e scripts:
Intl.Collator
Para comparação e ordenação de strings sensíveis ao local:
Intl.PluralRules
Para determinar formas plurais em diferentes locais:
Utilitários de Localidade
getLocaleName(displayLocale, targetLocale?)
Obtém o nome localizado de uma localidade em outra localidade:
- displayLocale: O locale para o qual obter o nome
- targetLocale: O locale para exibir o nome (padrão é displayLocale)
getLocaleLang(locale?)
Extrai o código de idioma de uma string de locale:
- locale: O locale do qual extrair o idioma (padrão é o locale atual)
getLocaleFromPath(inputUrl)
Extrai o segmento de locale de uma URL ou pathname:
- inputUrl: A string completa da URL ou caminho para processar
- returns: O locale detectado ou o locale padrão se nenhum locale for encontrado
getPathWithoutLocale(inputUrl, locales?)
Remove o segmento de locale de uma URL ou caminho:
- inputUrl: A string completa da URL ou caminho para processar
- locales: Array opcional de locales suportados (padrão para os locales configurados)
- returns: A URL sem o segmento de locale
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
Gera uma URL localizada para o locale atual:
- url: A URL original para localizar
- currentLocale: O locale atual
- locales: Array opcional de locales suportados (padrão para os locales configurados)
- defaultLocale: Locale padrão opcional (padrão para o locale padrão configurado)
- prefixDefault: Se deve prefixar o locale padrão (padrão para o valor configurado)
getHTMLTextDir(locale?)
Retorna a direção do texto para um locale:
- locale: O locale para obter a direção do texto (padrão para o locale atual)
- returns:
"ltr","rtl"ou"auto"
Utilitários para Manipulação de Conteúdo
getContent(node, nodeProps, locale?)
Transforma um nó de conteúdo com todos os plugins disponíveis (tradução, enumeração, inserção, etc.):
- node: O nó de conteúdo a ser transformado
- nodeProps: Propriedades para o contexto da transformação
- locale: Locale opcional (padrão para o locale padrão configurado)
getTranslation(languageContent, locale?, fallback?)
Extrai conteúdo para um locale específico a partir de um objeto de conteúdo multilíngue:
- languageContent: Objeto que mapeia locales para conteúdo
- locale: Locale alvo (padrão para o locale padrão configurado)
- fallback: Se deve retornar ao locale padrão (padrão é true)
getIntlayer(dictionaryKey, locale?, plugins?)
Recupera e transforma conteúdo de um dicionário pela chave:
- dictionaryKey: A chave do dicionário a ser recuperada
- locale: Locale opcional (padrão para o locale padrão configurado)
- plugins: Array opcional de plugins de transformação personalizados
getIntlayerAsync(dictionaryKey, locale?, plugins?)
Recupera conteúdo de um dicionário remoto de forma assíncrona:
- dictionaryKey: A chave do dicionário a ser recuperada
- locale: Locale opcional (padrão para o locale padrão configurado)
- plugins: Array opcional de plugins de transformação personalizados
Formatadores
Todos os helpers abaixo são exportados de intlayer.
number(value, options?)
Formata um valor numérico usando agrupamento e decimais sensíveis ao locale.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Exemplos:
percentage(value, options?)
Formata um número como uma string percentual.
Comportamento: valores maiores que 1 são interpretados como percentuais inteiros e normalizados (ex.: 25 → 25%, 0.25 → 25%).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Exemplos:
currency(value, options?)
Formata um valor como moeda localizada. O padrão é USD com duas casas decimais.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Campos comuns:
currency(por exemplo,"EUR"),currencyDisplay("symbol" | "code" | "name")
- Campos comuns:
Exemplos:
date(date, optionsOrPreset?)
Formata um valor de data/hora com Intl.DateTimeFormat.
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }ou um dos predefinidos:- Predefinidos:
"short" | "long" | "dateOnly" | "timeOnly" | "full"
- Predefinidos:
Exemplos:
relativeTime(from, to = new Date(), options?)
Formata o tempo relativo entre dois instantes com Intl.RelativeTimeFormat.
- Passe "now" como o primeiro argumento e o alvo como o segundo para obter uma frase natural.
- from:
Date | string | number - to:
Date | string | number(padrão énew Date()) - options:
{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }- O
unitpadrão é"second".
- O
Exemplos:
units(value, options?)
Formata um valor numérico como uma string de unidade localizada usando Intl.NumberFormat com style: 'unit'.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Campos comuns:
unit(ex.:"kilometer","byte"),unitDisplay("short" | "narrow" | "long") - Padrões:
unit: 'day',unitDisplay: 'short',useGrouping: false
- Campos comuns:
Exemplos:
compact(value, options?)
Formata um número usando notação compacta (ex.: 1.2K, 1M).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }(usanotation: 'compact'internamente)
Exemplos:
list(values, options?)
Formata um array de valores em uma string de lista localizada usando Intl.ListFormat.
- values:
(string | number)[] - options:
Intl.ListFormatOptions & { locale?: LocalesValues }- Campos comuns:
type("conjunction" | "disjunction" | "unit"),style("long" | "short" | "narrow") - Padrões:
type: 'conjunction',style: 'long'
- Campos comuns:
Exemplos:
Notas
- Todos os helpers aceitam entradas do tipo
string; elas são internamente convertidas para números ou datas. - O locale padrão é o configurado em
internationalization.defaultLocale, caso não seja fornecido. - Essas utilidades são wrappers simples; para formatações avançadas, utilize diretamente as opções padrão do
Intl.
Pontos de entrada e re-exportações (@index.ts)
Os formatadores estão no pacote core e são re-exportados por pacotes de nível superior para manter as importações ergonômicas em diferentes runtimes:
Exemplos:
React
Componentes cliente:
Componentes servidor (ou runtime React Server):
Esses hooks irão considerar a localidade doIntlayerProviderouIntlayerServerProvider
Vue
Componentes cliente:
Esses composables irão considerar o locale do IntlayerProvider injetado