v10.0.0
We are excited to announce the release of Vue I18n v10.
We had many contributors.
Thanks for your contributing ❤️
Summary
petite-vue-i18n
General Availability
petite-vue-i18n
is an alternative distribution of Vue I18n, providing only minimal features.
If you don't need the full functionality of vue-i18n and are just looking for basic translation features with a smaller footprint, this will suit your use case.
For more details, please see the docs.
JIT Compilation Enabled by Default
JIT compilation was introduced in v9.3, but it was not enabled by default.
However, it had the following issues:
- CSP restrictions: Difficult to work with service/web workers, edge-side runtimes of CDNs, etc.
- Backend integration: Hard to fetch messages from a backend (e.g., a database via API) and localize them dynamically.
Starting from v10, JIT compilation is enabled by default.
Support for Generated Locale Types
We provide an interface to extend the Locale type in TypeScript, similar to ComponentCustomProperties
in Vue.
This feature is useful when using vue-i18n as part of a framework.
For more details, see the PR for the Nuxt I18n use case.
Changes to $t
and t
Overload Signatures for Legacy API Mode
In Vue I18n v9, $t
and t
had different overload signatures in Composition API mode compared to Legacy API mode.
When migrating from Legacy API mode to Composition API mode, these differences sometimes caused confusion.
Starting from v10, Legacy API mode will use the same $t
and t
overload signatures as Composition API mode.
For details on the signature pattern, see the migration guide.
Deprecation of tc
and $tc
for Legacy API Mode
The t
and $t
functions already support pluralization, so tc
and $tc
can be replaced.
In v10, tc
and $tc
still exist to aid in migration, but they will be fully removed in v11.
If you use them, Vue I18n will display a console warning in your application.
For migration instructions, see the docs.
Dropping Deprecated Features from v9
Some features were marked as deprecated in v9 with warnings.
These deprecated features will be completely removed in v10.
For more details on the deprecated features, see the docs.
🌟 Features
- feat: move to GA from experimental for petite-vue-i18n by @kazupon in #1862
- feat!: default enable for JIT compilation by @kazupon in #1852
- feat: support generated locale type by @BobbieGoede in #1890
- feat!: change
$t
overloaded signature for Legacy API mode by @kazupon in #1832
❗ Braeking Changes
- breaking: drop translation component
<i18n>
v8.x compatibility by @kazupon in #1844 - breaking: drop
te
behavior v8.x compatibility on v9 by @kazupon in #1845 - feat!: deprecate
tc
and$tc
for Legacy API mode by @kazupon in #1839 - breaking: drop fully
formatter
option codes on Legacy API by @kazupon in #1826 - breaking: drop fully
preserveDirectiveContent
option codes on Legacy API by @kazupon in #1827 - breaking: drop fully
preserve
modifier codes onv-t
directive by @kazupon in #1828 - breaking: drop fully
getChoiceIndex
on Legacy API by @kazupon in #1829 - breaking: drop vue-i18n-bridge by @kazupon in #1816
- breaking: drop
allowComposition
option by @kazupon in #1817 - breaking: drop modulo syntax by @kazupon in #1814
⚡ Improvement Features
- perf: more bundle size optimization by @kazupon in #1851
- fix: type errors by @kazupon in #1935
- fix(devtools): change vue-devtools label by @kazupon in #1885
- fix: vue-i18n type definition for vue package by @kazupon in #1888
- fix: translation interface typing by @kazupon in #1837
- fix: reduce devtools pkgs and size by @kazupon in #1823
✏️ Documentation & Sample Updates
- Improved the global and local Scope descriptions by @pankajrlal in #1925
- Update ja-JP.json by @awsssrD in #1914
- Update en-US.json by @awsssrD in #1913
- chore: fix module augmentation example comment by @BobbieGoede in #1898
- Added a comment about pluralRules to the code in pluralization docs by @M1h4n1k in #1873
- docs: fix typos by @SimonVadier in #1863
- docs: add scoping for custom directive by @kazupon in #1867
- Update tools.md by @felixhaeberle in #1866
- Fix typos, syntax by @TheoKondak in #1881
- fix: typo in migration breaking changes v10 by @khylias in #1854
- docs: fix typo on vue i18n name by @r-moret in #1848
- docs: add favicon by @BobbieGoede in #1824
- docs: fix typos by @BobbieGoede in #1825
- Update started.md to fix typo by @steveclarke in #1822
🐛 Bug Fixes
- fix: fallback linked message params by @kazupon in #1926
- fix(types):
$t
types by @mitjans in #1883 - fix: cannot reduce message-compiler bundle size for runtime by @kazupon in #1860
- fix: allow empty default message by @kazupon in #1849
- fix: remove unnecessary types from petite-vue-i18n by @kazupon in #1833
- fix: Not load devtools on Node.js by @kazupon in #1843
- fix(types): allow spyOn of "useI18n()" by @pinguet62 in #1815
New Contributors
- @pinguet62 made their first contribution in #1815
- @steveclarke made their first contribution in #1822
- @r-moret made their first contribution in #1848
- @khylias made their first contribution in #1854
- @SimonVadier made their first contribution in #1863
- @felixhaeberle made their first contribution in #1866
- @mitjans made their first contribution in #1883
- @TheoKondak made their first contribution in #1881
- @M1h4n1k made their first contribution in #1873
- @awsssrD made their first contribution in #1914
- @pankajrlal made their first contribution in #1925
Full Changelog: v9.13.1...v10.0.0