For the complete documentation index, see llms.txt. This page is also available as Markdown.

Internationalisation en VueJs

Pour une application Vue.js en Composition API, le plus simple est d’utiliser Vue I18n en mode Composition API, avec createI18n({ legacy: false }), puis useI18n() dans les composants.

Approche recommandée

Structurer l’i18n autour de 5 idĂ©es :

  1. un fichier d’initialisation unique

  2. des fichiers de traductions séparés par langue

  3. une langue courante stockée globalement

  4. un changement de langue persistant

  5. des clés de traduction stables et métiers

Vue I18n gĂšre les messages, mais aussi les formats de dates et de nombres, ce qui est utile pour une vraie application multilingue.


1. Installation

npm install vue-i18n

2. Structure simple

Exemple d’arborescence :

src/
  i18n/
    index.js
    locales/
      fr.js
      en.js
  main.js
  App.vue

3. Déclarer les traductions

src/i18n/locales/fr.js

src/i18n/locales/en.js

4. Configurer Vue I18n en Composition API

src/i18n/index.js

Le point important ici est bien legacy: false, nécessaire pour utiliser useI18n() avec la Composition API.

5. Brancher le plugin dans l’application

src/main.js

6. Utilisation dans un composant avec Composition API

App.vue

La fonction t() sert Ă  traduire, et locale.value permet de changer la langue courante en Composition API.

7. Ajouter des dates et nombres localisés

Tu peux aller plus loin en définissant aussi des formats :

Puis dans un composant :

Vue I18n expose bien des fonctions dédiées aux dates et aux nombres dans son API Composition.

8. Bonnes pratiques

Utiliser des clés métiers stables

Éviter :

PréfÚrer :

Ou :

9. Possibilité avec un router

Il est possible aussi synchroniser la langue avec l’URL :

  • /fr/...

  • /en/...

Dans ce cas :

  • la route porte la locale

  • un guard met Ă  jour i18n.global.locale.value

  • le changement de langue redirige vers la mĂȘme route avec un autre prĂ©fixe

C’est souvent la meilleure solution pour :

  • le SEO

  • le partage de lien

  • la cohĂ©rence navigation/langue

Mis Ă  jour