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 :
un fichier dâinitialisation unique
des fichiers de traductions séparés par langue
une langue courante stockée globalement
un changement de langue persistant
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-i18n2. Structure simple
Exemple dâarborescence :
src/
i18n/
index.js
locales/
fr.js
en.js
main.js
App.vue3. 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.valuele 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