extendLocale
既存のロケールをカスタム翻訳で拡張するユーティリティ。
使用法
自動インポートされたextendLocaleユーティリティを使用して、特定のプロパティまたはメッセージをオーバーライドして既存のロケールをカスタマイズします。
<script setup lang="ts">
import { en } from '@nuxt/ui/locale'
const locale = extendLocale(en, {
code: 'en-AU',
messages: {
commandPalette: {
placeholder: 'Search a component...'
}
}
})
</script>
<template>
<UApp :locale="locale">
<NuxtPage />
</UApp>
</template>
これは以下のような場合に便利です。
- 言語の地域バリアントを作成します例
enからen-AU - ロケール全体を再定義せずに特定の翻訳を上書きする
- アプリケーションのコンポーネントラベルをカスタマイズする
API
extendLocale<M>(locale: Locale<M>, options: Partial<DefineLocaleOptions<DeepPartial<M>>>): Locale<M>
既存のロケールをオプションで拡張し、メッセージを深くマージします。
パラメータ
locale
Locale<M> required
拡張するベースロケール。
@nuxt/ui/localeからインポートします。options
Partial<DefineLocaleOptions<DeepPartial<M>>> required
オーバーライドするプロパティ
name
string
ロケールの表示名を上書きします。
code
string
ロケールのISOコードを上書きします例
'en-GB'``'fr-CA'。dir
'ltr' | 'rtl'
ロケールのテキスト方向を上書きします。
messages
DeepPartial<M>
部分メッセージは、ベースロケールとマージするオブジェクトです。オーバーライドするメッセージのみを指定します。
戻り値マージされたプロパティを持つ新しいLocale<M>オブジェクト。
例
以下は、オーストラリアのバリアントの英語ロケールを拡張した例です:
<script setup lang="ts">
import { en } from '@nuxt/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>
<UApp :locale="locale">
<NuxtPage />
</UApp>
</template>
extendLocaleユーティリティはディープマージを使用しているので、オーバーライドしたいメッセージを指定するだけで済みます。その他のメッセージはすべてベースロケールから継承されます。