Use the defineLocale utility to create a custom locale with your own translations.
<script setup lang="ts">
import type { Messages } from '@nuxt/ui'
const locale = defineLocale<Messages>({
name: 'My custom locale',
code: 'en',
dir: 'ltr',
messages: {
// implement pairs
}
})
</script>
<template>
<UApp :locale="locale">
<NuxtPage />
</UApp>
</template>
defineLocale<M>(options: DefineLocaleOptions<M>): Locale<M>
Creates a new locale object with the provided options.
'English', 'Français').'en', 'fr', 'de-AT').'ltr'.Messages type from @nuxt/ui for type safety.Returns: A Locale<M> object that can be passed to the locale prop of the App component.
Here's a complete example of creating a custom locale:
<script setup lang="ts">
import type { Messages } from '@nuxt/ui'
const locale = defineLocale<Messages>({
name: 'Español',
code: 'es',
dir: 'ltr',
messages: {
alert: {
close: 'Cerrar'
},
modal: {
close: 'Cerrar'
},
commandPalette: {
back: 'Atrás',
close: 'Cerrar',
noData: 'Sin datos',
noMatch: 'Sin resultados',
placeholder: 'Escribe un comando o busca…'
}
// ... other component messages
}
})
</script>
<template>
<UApp :locale="locale">
<NuxtPage />
</UApp>
</template>