|
1 | 1 | # v10.0.0 (2024-09-10T04:41:41Z) |
2 | 2 |
|
3 | | -This changelog is generated by [GitHub Releases](https://github.com/intlify/vue-i18n/releases/tag/v10.0.0) |
| 3 | +We are excited to announce the release of Vue I18n v10. |
| 4 | +We had many contributors. |
4 | 5 |
|
5 | | -<!-- Release notes generated using configuration in .github/release.yml at v10.0.0 --> |
| 6 | +Thanks for your contributing ❤️ |
6 | 7 |
|
7 | | -## What's Changed |
| 8 | +# Summary |
8 | 9 |
|
9 | | -### 🌟 Features |
| 10 | +## `petite-vue-i18n` General Availability |
10 | 11 |
|
11 | | -- feat!: change `$t` overloaded signature for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n/pull/1832 |
12 | | -- feat!: default enable for JIT compilation by @kazupon in https://github.com/intlify/vue-i18n/pull/1852 |
13 | | -- feat: move to GA from experimental for petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n/pull/1862 |
14 | | -- feat: support generated locale type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1890 |
| 12 | +`petite-vue-i18n` is an alternative distribution of Vue I18n, providing only minimal features. |
15 | 13 |
|
16 | | -### 🐛 Bug Fixes |
| 14 | +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. |
17 | 15 |
|
18 | | -- fix(types): allow spyOn of "useI18n()" by @pinguet62 in https://github.com/intlify/vue-i18n/pull/1815 |
19 | | -- fix: remove unnecessary types from petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n/pull/1833 |
20 | | -- fix: Not load devtools on Node.js by @kazupon in https://github.com/intlify/vue-i18n/pull/1843 |
21 | | -- fix: allow empty default message by @kazupon in https://github.com/intlify/vue-i18n/pull/1849 |
22 | | -- fix: cannot reduce message-compiler bundle size for runtime by @kazupon in https://github.com/intlify/vue-i18n/pull/1860 |
23 | | -- fix(types): `$t` types by @mitjans in https://github.com/intlify/vue-i18n/pull/1883 |
24 | | -- fix: fallback linked message params by @kazupon in https://github.com/intlify/vue-i18n/pull/1926 |
| 16 | +For more details, please see the [docs](https://vue-i18n.intlify.dev/guide/advanced/lite). |
25 | 17 |
|
26 | | -### 💥 Breaking Changes |
| 18 | +## JIT Compilation Enabled by Default |
27 | 19 |
|
28 | | -- breaking: drop modulo syntax by @kazupon in https://github.com/intlify/vue-i18n/pull/1814 |
29 | | -- breaking: drop vue-i18n-bridge by @kazupon in https://github.com/intlify/vue-i18n/pull/1816 |
30 | | -- breaking: drop `allowComposition` option by @kazupon in https://github.com/intlify/vue-i18n/pull/1817 |
31 | | -- breaking: drop fully `formatter` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n/pull/1826 |
32 | | -- breaking: drop fully `preserveDirectiveContent` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n/pull/1827 |
33 | | -- breaking: drop fully `preserve` modifier codes on `v-t` directive by @kazupon in https://github.com/intlify/vue-i18n/pull/1828 |
34 | | -- breaking: drop fully `getChoiceIndex` on Legacy API by @kazupon in https://github.com/intlify/vue-i18n/pull/1829 |
35 | | -- breaking: drop translation component `<i18n>` v8.x compatibility by @kazupon in https://github.com/intlify/vue-i18n/pull/1844 |
36 | | -- breaking: drop `te` behavior v8.x compatibility on v9 by @kazupon in https://github.com/intlify/vue-i18n/pull/1845 |
| 20 | +JIT compilation was introduced in v9.3, but it was not enabled by default. |
37 | 21 |
|
38 | | -### ⚠️ Deprecated Features |
| 22 | +However, it had the following issues: |
39 | 23 |
|
40 | | -- feat!: deprecate `tc` and `$tc` for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n/pull/1839 |
| 24 | +- CSP restrictions: Difficult to work with service/web workers, edge-side runtimes of CDNs, etc. |
| 25 | +- Backend integration: Hard to fetch messages from a backend (e.g., a database via API) and localize them dynamically. |
41 | 26 |
|
42 | | -### ⚡ Improvement Features |
| 27 | +Starting from v10, JIT compilation is enabled by default. |
43 | 28 |
|
44 | | -- fix: reduce devtools pkgs and size by @kazupon in https://github.com/intlify/vue-i18n/pull/1823 |
45 | | -- fix: translation interface typing by @kazupon in https://github.com/intlify/vue-i18n/pull/1837 |
46 | | -- fix(devtools): change vue-devtools label by @kazupon in https://github.com/intlify/vue-i18n/pull/1885 |
47 | | -- fix: vue-i18n type definition for vue package by @kazupon in https://github.com/intlify/vue-i18n/pull/1888 |
48 | | -- fix: type errors by @kazupon in https://github.com/intlify/vue-i18n/pull/1935 |
| 29 | +## Support for Generated Locale Types |
49 | 30 |
|
50 | | -### 📈 Performance Fixes |
| 31 | +We provide an interface to extend the Locale type in TypeScript, similar to `ComponentCustomProperties` in Vue. |
51 | 32 |
|
52 | | -- perf: more bundle size optimization by @kazupon in https://github.com/intlify/vue-i18n/pull/1851 |
| 33 | +This feature is useful when using vue-i18n as part of a framework. |
53 | 34 |
|
54 | | -### 📝️ Documentations |
| 35 | +For more details, see the [PR](https://github.com/intlify/vue-i18n/pull/1890) for the Nuxt I18n use case. |
| 36 | + |
| 37 | +## Changes to `$t` and `t` Overload Signatures for Legacy API Mode |
| 38 | + |
| 39 | +In Vue I18n v9, `$t` and `t` had different overload signatures in Composition API mode compared to Legacy API mode. |
| 40 | + |
| 41 | +When migrating from Legacy API mode to Composition API mode, these differences sometimes caused confusion. |
| 42 | + |
| 43 | +Starting from v10, Legacy API mode will use the same `$t` and `t` overload signatures as Composition API mode. |
| 44 | + |
| 45 | +For details on the signature pattern, see the [migration guide](https://vue-i18n.intlify.dev/guide/migration/breaking10.html#change-t-and-t-overloaded-signature-for-legacy-api-mode). |
| 46 | + |
| 47 | +## Deprecation of `tc` and `$tc` for Legacy API Mode |
55 | 48 |
|
56 | | -- docs: add favicon by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1824 |
57 | | -- docs: fix typos by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1825 |
58 | | -- Update started.md to fix typo by @steveclarke in https://github.com/intlify/vue-i18n/pull/1822 |
59 | | -- docs: fix typo on vue i18n name by @r-moret in https://github.com/intlify/vue-i18n/pull/1848 |
60 | | -- fix: typo in migration breaking changes v10 by @khylias in https://github.com/intlify/vue-i18n/pull/1854 |
| 49 | +The `t` and `$t` functions already support pluralization, so `tc` and `$tc` can be replaced. |
| 50 | + |
| 51 | +In v10, `tc` and `$tc` still exist to aid in migration, but they will be fully removed in v11. |
| 52 | + |
| 53 | +If you use them, Vue I18n will display a console warning in your application. |
| 54 | + |
| 55 | +For migration instructions, see the [docs](https://vue-i18n.intlify.dev/guide/migration/breaking10.html#deprecate-tc-and-tc-for-legacy-api-mode). |
| 56 | + |
| 57 | +## Dropping Deprecated Features from v9 |
| 58 | + |
| 59 | +Some features were marked as deprecated in v9 with warnings. |
| 60 | + |
| 61 | +These deprecated features will be completely removed in v10. |
| 62 | + |
| 63 | +For more details on the deprecated features, see the [docs](https://vue-i18n.intlify.dev/guide/migration/breaking10.html#drop-modulo-syntax). |
| 64 | + |
| 65 | +# 🌟 Features |
| 66 | + |
| 67 | +- feat: move to GA from experimental for petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1862 |
| 68 | +- feat!: default enable for JIT compilation by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1852 |
| 69 | +- feat: support generated locale type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1890 |
| 70 | +- feat!: change `$t` overloaded signature for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1832 |
| 71 | + |
| 72 | +# ❗ Braeking Changes |
| 73 | + |
| 74 | +- breaking: drop translation component `<i18n>` v8.x compatibility by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1844 |
| 75 | +- breaking: drop `te` behavior v8.x compatibility on v9 by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1845 |
| 76 | +- feat!: deprecate `tc` and `$tc` for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1839 |
| 77 | +- breaking: drop fully `formatter` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1826 |
| 78 | +- breaking: drop fully `preserveDirectiveContent` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1827 |
| 79 | +- breaking: drop fully `preserve` modifier codes on `v-t` directive by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1828 |
| 80 | +- breaking: drop fully `getChoiceIndex` on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1829 |
| 81 | +- breaking: drop vue-i18n-bridge by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1816 |
| 82 | +- breaking: drop `allowComposition` option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1817 |
| 83 | +- breaking: drop modulo syntax by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1814 |
| 84 | + |
| 85 | +# ⚡ Improvement Features |
| 86 | + |
| 87 | +- perf: more bundle size optimization by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1851 |
| 88 | +- fix: type errors by @kazupon in https://github.com/intlify/vue-i18n/pull/1935 |
| 89 | +- fix(devtools): change vue-devtools label by @kazupon in https://github.com/intlify/vue-i18n/pull/1885 |
| 90 | +- fix: vue-i18n type definition for vue package by @kazupon in https://github.com/intlify/vue-i18n/pull/1888 |
| 91 | +- fix: translation interface typing by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1837 |
| 92 | +- fix: reduce devtools pkgs and size by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1823 |
| 93 | + |
| 94 | +# ✏️ Documentation & Sample Updates |
| 95 | + |
| 96 | +- Improved the global and local Scope descriptions by @pankajrlal in https://github.com/intlify/vue-i18n/pull/1925 |
| 97 | +- Update ja-JP.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1914 |
| 98 | +- Update en-US.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1913 |
| 99 | +- chore: fix module augmentation example comment by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1898 |
| 100 | +- Added a comment about pluralRules to the code in pluralization docs by @M1h4n1k in https://github.com/intlify/vue-i18n/pull/1873 |
61 | 101 | - docs: fix typos by @SimonVadier in https://github.com/intlify/vue-i18n/pull/1863 |
62 | 102 | - docs: add scoping for custom directive by @kazupon in https://github.com/intlify/vue-i18n/pull/1867 |
63 | 103 | - Update tools.md by @felixhaeberle in https://github.com/intlify/vue-i18n/pull/1866 |
64 | 104 | - Fix typos, syntax by @TheoKondak in https://github.com/intlify/vue-i18n/pull/1881 |
65 | | -- Added a comment about pluralRules to the code in pluralization docs by @M1h4n1k in https://github.com/intlify/vue-i18n/pull/1873 |
66 | | -- chore: fix module augmentation example comment by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1898 |
67 | | -- Improved the global and local Scope descriptions by @pankajrlal in https://github.com/intlify/vue-i18n/pull/1925 |
| 105 | +- fix: typo in migration breaking changes v10 by @khylias in https://github.com/intlify/vue-i18n-next/pull/1854 |
| 106 | +- docs: fix typo on vue i18n name by @r-moret in https://github.com/intlify/vue-i18n-next/pull/1848 |
| 107 | +- docs: add favicon by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1824 |
| 108 | +- docs: fix typos by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1825 |
| 109 | +- Update started.md to fix typo by @steveclarke in https://github.com/intlify/vue-i18n-next/pull/1822 |
68 | 110 |
|
69 | | -### 🍭 Examples |
| 111 | +# 🐛 Bug Fixes |
70 | 112 |
|
71 | | -- Update ja-JP.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1914 |
72 | | -- Update en-US.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1913 |
| 113 | +- fix: fallback linked message params by @kazupon in https://github.com/intlify/vue-i18n/pull/1926 |
| 114 | +- fix(types): `$t` types by @mitjans in https://github.com/intlify/vue-i18n/pull/1883 |
| 115 | +- fix: cannot reduce message-compiler bundle size for runtime by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1860 |
| 116 | +- fix: allow empty default message by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1849 |
| 117 | +- fix: remove unnecessary types from petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1833 |
| 118 | +- fix: Not load devtools on Node.js by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1843 |
| 119 | +- fix(types): allow spyOn of "useI18n()" by @pinguet62 in https://github.com/intlify/vue-i18n-next/pull/1815 |
73 | 120 |
|
74 | | -## New Contributors |
| 121 | +# New Contributors |
75 | 122 |
|
76 | 123 | - @pinguet62 made their first contribution in https://github.com/intlify/vue-i18n/pull/1815 |
77 | 124 | - @steveclarke made their first contribution in https://github.com/intlify/vue-i18n/pull/1822 |
|
0 commit comments