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">
<NuxtPage />
</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'
const locale = defineLocale<Messages>({
name: 'My custom locale',
code: 'en',
dir: 'ltr',
messages: {
// implement pairs
}
})
</script>
<template>
<UApp :locale="locale">
<NuxtPage />
</UApp>
</template>
code, vous devez y passer le code iso de la langue.- x
hiHindi (langue anglaise) - x
de-AT: allemand (langue) tel qu 'il est utilisé en Autriche (région)
Extend régional
Vous pouvez personnaliser une locale existante en remplaçant son messages ou code à l'aide de l'utilitaire 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>
Localisation dynamique
Pour basculer dynamiquement entre les langues, vous pouvez utiliser le module Nuxt I18n.
Installer le paquet Nuxt I18n
pnpm add @nuxtjs/i18n
yarn add @nuxtjs/i18n
npm install @nuxtjs/i18n
bun add @nuxtjs/i18n
Ajouter le module Nuxt I18n dans votre nuxt.config.ts
export default defineNuxtConfig({
modules: [
'@nuxt/ui',
'@nuxtjs/i18n'
],
css: ['~/assets/css/main.css'],
i18n: {
locales: [{
code: 'de',
name: 'Deutsch'
}, {
code: 'en',
name: 'English'
}, {
code: 'fr',
name: 'Français'
}]
}
})
Définir le prop locale avec useI18n
<script setup lang="ts">
import * as locales from '@nuxt/ui/locale'
const { locale } = useI18n()
</script>
<template>
<UApp :locale="locales[locale]">
<NuxtPage />
</UApp>
</template>
Localisation automatique des liens: badge{label="4.7+" class="align-text-top"}
Lorsque @nuxtjs/i18n est installé, le composant Link localise automatiquement les liens internes à l'aide de l'assistant $localePath.Cela signifie que vous n'avez pas besoin d'envelopper manuellement vos liens avec localePath() ou localeRoute().
<template>
<!-- Automatically becomes /en/about or /fr/about based on current locale -->
<ULink to="/about">About</ULink>
<UButton to="/contact">Contact</UButton>
</template>
localePath() ou localeRoute() si nécessaire.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 * 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]">
<NuxtPage />
</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>