extendLocale

Um utilitário para estender um locale existente com traduções personalizadas.

Uso

Use o utilitário extendLocale para personalizar um locale existente sobrescrevendo propriedades ou mensagens específicas.

<script setup lang="ts">
import { en } from '@nitro/ui/locale'

const locale = extendLocale(en, {
  code: 'en-AU',
  messages: {
    commandPalette: {
      placeholder: 'Search a component...'
    }
  }
})
</script>

<template>
  <NApp :locale="locale">
    <NuxtPage />
  </NApp>
</template>

Isso é útil quando você quer:

  • Create a regional variant of a language (e.g., en-AU from en)
  • Override specific translations without redefining the entire locale
  • Customize component labels for your application
Saiba mais sobre internacionalização na documentação de integração com i18n.

API

extendLocale<M>(locale: Locale<M>, options: Partial<DefineLocaleOptions<DeepPartial<M>>>): Locale<M>

Estende um locale existente com as opções fornecidas, mesclando as mensagens em profundidade.

Parâmetros

locale
Locale<M> required
The base locale to extend. Import from @nitro/ui/locale.
options
Partial<DefineLocaleOptions<DeepPartial<M>>> required
The properties to override:

Returns: A new Locale<M> object with the merged properties.

Exemplo

Aqui está um exemplo estendendo o locale em inglês para uma variante australiana:

<script setup lang="ts">
import { en } from '@nitro/ui/locale'

const locale = extendLocale(en, {
  name: 'English (Australia)',
  code: 'en-AU',
  messages: {
    colorMode: {
      dark: 'Dark',
      light: 'Light',
      system: 'System'
    },
    selectMenu: {
      search: 'Search…',
      noData: 'No results found',
      noMatch: 'No matching results'
    }
  }
})
</script>

<template>
  <NApp :locale="locale">
    <NuxtPage />
  </NApp>
</template>
O utilitário extendLocale usa mesclagem profunda, então você só precisa especificar as mensagens que quer sobrescrever. Todas as outras mensagens serão herdadas do locale base.