Changements cassants dans v11
Déprécation du mode d'API hérité
Raison
Le mode d'API hérité était le mode d'API compatible avec v8 pour Vue 2. Lorsque v9 a été publié, l'API héritée a été fournie pour faciliter la migration de v8 à v9.
Le mode d'API hérité sera déprécié dans v11, car les versions précédentes de vue-i18n ont déjà fourni ce qui suit pour supporter la migration vers le mode de l'API de composition
- Migration du mode d'API hérité vers l'API de composition : https://vue-i18n.intlify.dev/guide/migration/vue3.html
- Utilisation de l'API de composition : https://vue-i18n.intlify.dev/guide/advanced/composition.html
Pour des raisons de compatibilité, le mode d'API hérité continue de fonctionner dans v11, mais sera supprimé entièrement dans v12, donc le mode d'API hérité ne fonctionnera plus après cette version.
Déprécation de la directive personnalisée v-t
Raison
L'avantage de v-t était qu'il pouvait optimiser les performances en utilisant la transformation du compilateur vue et la pré-traduction de vue-i18n-extension.
Cette fonctionnalité était prise en charge depuis Vue 2. Pour plus de détails, voir l'article de blog : https://medium.com/@kazu_pon/performance-optimization-of-vue-i18n-83099eb45c2d
Dans Vue 3, en raison de l'API de composition, la pré-traduction de vue-i18n-extension est désormais limitée uniquement à la portée globale.
De plus, l'optimisation du Virtual DOM de Vue 3 a été introduite, et l'optimisation fournie par vue-i18n-extension n'est plus très efficace. Nous devons exiger des paramètres pour le SSR, les avantages d'utiliser v-t ont disparu. Et l'expérience développeur (DX) des modèles utilisant v-t n'est pas bonne. Les directives personnalisées ne fonctionnent pas avec la complétion de clés dans les éditeurs (par exemple vscode).
Pour des raisons de compatibilité, le mode v-t continue de fonctionner dans v11, mais sera supprimé entièrement dans v12, donc v-t ne fonctionnera plus après cette version.
Pour la migration
Vous pouvez utiliser eslint-plugin-vue-i18n.
eslint-plugin-vue-i18n dispose de la règle @intlify/vue-i18n/no-deprecated-v-t. https://eslint-plugin-vue-i18n.intlify.dev/rules/no-deprecated-v-t.html
Vous devez avoir migré avec eslint avant de passer à vue-i18n v11
Suppression de tc et $tc pour le mode d'API hérité
Raison : Ces APIs ont déjà été dépréciées dans un avertissement concernant leur suppression dans v11. La documentation indique : https://vue-i18n.intlify.dev/guide/migration/breaking10.html#deprecate-tc-and-tc-for-legacy-api-mode