Internationalisation (i18n)
Utilisation
locale.Localité
Utilisez la prop locale avec la locale que vous souhaitez utiliser à partir de @nuxt/ui/locale:
<script setup lang="ts">
import { fr } from '@nuxt/ui/locale'
</script>
<template>
<UApp :locale="fr">
<RouterView />
</UApp>
</template>
code (par exemple, en, en-GB, fr) qui détermine le format de date/heure dans des composants tels que Calendar, InputDate et InputTime.Custom locale (région personnalisée)
Vous pouvez créer vos propres paramètres régionaux en utilisant l'utilitaire defineLocale:
<script setup lang="ts">
import type { Messages } from '@nuxt/ui'
import { defineLocale } from '@nuxt/ui/composables'
const locale = defineLocale<Messages>({
name: 'My custom locale',
code: 'en',
dir: 'ltr',
messages: {
// implement pairs
}
})
</script>
<template>
<UApp :locale="locale">
<RouterView />
</UApp>
</template>
code, vous devez y passer le code iso de la langue.- x
hiHindi (langue anglaise) de-AT: allemand (langue) tel qu 'utilisé en Autriche (région)
Extend régional
Vous pouvez personnaliser un paramètre régional existant en remplaçant son messages ou code à l'aide de l'utilitaire extendLocale:
<script setup lang="ts">
import { en } from '@nuxt/ui/locale'
import { extendLocale } from '@nuxt/ui/composables'
const locale = extendLocale(en, {
code: 'en-AU',
messages: {
commandPalette: {
placeholder: 'Search a component...'
}
}
})
</script>
<template>
<UApp :locale="locale">
<RouterView />
</UApp>
</template>
Localisation dynamique
Pour basculer dynamiquement entre les langues, vous pouvez utiliser le plugin Vue I18n.
Installer le paquet Vue I18n
pnpm add vue-i18n@11
yarn add vue-i18n@11
npm install vue-i18n@11
bun add vue-i18n@11
Utilisez le plugin Vue I18n dans votre main.ts
import { createApp } from 'vue'
import { createRouter, createWebHistory } from 'vue-router'
import { createI18n } from 'vue-i18n'
import ui from '@nuxt/ui/vue-plugin'
import App from './App.vue'
const app = createApp(App)
const router = createRouter({
routes: [],
history: createWebHistory()
})
const i18n = createI18n({
legacy: false,
locale: 'en',
availableLocales: ['en', 'de'],
messages: {
en: {
// ...
},
de: {
// ...
}
}
})
app.use(router)
app.use(i18n)
app.use(ui)
app.mount('#app')
Définir le prop locale avec useI18n
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
import * as locales from '@nuxt/ui/locale'
const { locale } = useI18n()
</script>
<template>
<UApp :locale="locales[locale]">
<RouterView />
</UApp>
</template>
Direction dynamique
Chaque locale possède une propriété dir qui sera utilisée par le composant App pour définir la directionnalité de tous les composants.
Dans une application multilingue, vous pouvez définir les attributs lang et dir sur l'élément <html> de manière dynamique en fonction des paramètres régionaux de l'utilisateur, ce que vous pouvez faire avec le composable useHead:
<script setup lang="ts">
import { computed } from 'vue'
import { useI18n } from 'vue-i18n'
import { useHead } from '@unhead/vue'
import * as locales from '@nuxt/ui/locale'
const { locale } = useI18n()
const lang = computed(() => locales[locale.value].code)
const dir = computed(() => locales[locale.value].dir)
useHead({
htmlAttrs: {
lang,
dir
}
})
</script>
<template>
<UApp :locale="locales[locale]">
<RouterView />
</UApp>
</template>
Langues supportées
By default, the en locale is used.
arazbebgbncackbcsdadede-ATde-CHelenen-GBeseteufa-IRfifrglhehihrhuhyidisitjakakkkmkokylbloltlvmnmsnb-NOnlplptpt-BRroruskslsqsvtgthtrug-CNukuruzvizh-CNzh-TWsrc/runtime/locale/. pnpm cli make locale --code <code>