Skip to content

Commit

Permalink
docs: updage changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
kazupon committed Sep 10, 2024
1 parent 65f4e9f commit 5c967c7
Showing 1 changed file with 96 additions and 49 deletions.
145 changes: 96 additions & 49 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,124 @@
# v10.0.0 (2024-09-10T04:41:41Z)

This changelog is generated by [GitHub Releases](https://github.com/intlify/vue-i18n/releases/tag/v10.0.0)
We are excited to announce the release of Vue I18n v10.
We had many contributors.

<!-- Release notes generated using configuration in .github/release.yml at v10.0.0 -->
Thanks for your contributing ❤️

## What's Changed
# Summary

### 🌟 Features
## `petite-vue-i18n` General Availability

- feat!: change `$t` overloaded signature for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n/pull/1832
- feat!: default enable for JIT compilation by @kazupon in https://github.com/intlify/vue-i18n/pull/1852
- feat: move to GA from experimental for petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n/pull/1862
- feat: support generated locale type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1890
`petite-vue-i18n` is an alternative distribution of Vue I18n, providing only minimal features.

### 🐛 Bug Fixes
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.

- fix(types): allow spyOn of "useI18n()" by @pinguet62 in https://github.com/intlify/vue-i18n/pull/1815
- fix: remove unnecessary types from petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n/pull/1833
- fix: Not load devtools on Node.js by @kazupon in https://github.com/intlify/vue-i18n/pull/1843
- fix: allow empty default message by @kazupon in https://github.com/intlify/vue-i18n/pull/1849
- fix: cannot reduce message-compiler bundle size for runtime by @kazupon in https://github.com/intlify/vue-i18n/pull/1860
- fix(types): `$t` types by @mitjans in https://github.com/intlify/vue-i18n/pull/1883
- fix: fallback linked message params by @kazupon in https://github.com/intlify/vue-i18n/pull/1926
For more details, please see the [docs](https://vue-i18n.intlify.dev/guide/advanced/lite).

### 💥 Breaking Changes
## JIT Compilation Enabled by Default

- breaking: drop modulo syntax by @kazupon in https://github.com/intlify/vue-i18n/pull/1814
- breaking: drop vue-i18n-bridge by @kazupon in https://github.com/intlify/vue-i18n/pull/1816
- breaking: drop `allowComposition` option by @kazupon in https://github.com/intlify/vue-i18n/pull/1817
- breaking: drop fully `formatter` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n/pull/1826
- breaking: drop fully `preserveDirectiveContent` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n/pull/1827
- breaking: drop fully `preserve` modifier codes on `v-t` directive by @kazupon in https://github.com/intlify/vue-i18n/pull/1828
- breaking: drop fully `getChoiceIndex` on Legacy API by @kazupon in https://github.com/intlify/vue-i18n/pull/1829
- breaking: drop translation component `<i18n>` v8.x compatibility by @kazupon in https://github.com/intlify/vue-i18n/pull/1844
- breaking: drop `te` behavior v8.x compatibility on v9 by @kazupon in https://github.com/intlify/vue-i18n/pull/1845
JIT compilation was introduced in v9.3, but it was not enabled by default.

### ⚠️ Deprecated Features
However, it had the following issues:

- feat!: deprecate `tc` and `$tc` for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n/pull/1839
- 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.

### ⚡ Improvement Features
Starting from v10, JIT compilation is enabled by default.

- fix: reduce devtools pkgs and size by @kazupon in https://github.com/intlify/vue-i18n/pull/1823
- fix: translation interface typing by @kazupon in https://github.com/intlify/vue-i18n/pull/1837
- fix(devtools): change vue-devtools label by @kazupon in https://github.com/intlify/vue-i18n/pull/1885
- fix: vue-i18n type definition for vue package by @kazupon in https://github.com/intlify/vue-i18n/pull/1888
- fix: type errors by @kazupon in https://github.com/intlify/vue-i18n/pull/1935
## Support for Generated Locale Types

### 📈 Performance Fixes
We provide an interface to extend the Locale type in TypeScript, similar to `ComponentCustomProperties` in Vue.

- perf: more bundle size optimization by @kazupon in https://github.com/intlify/vue-i18n/pull/1851
This feature is useful when using vue-i18n as part of a framework.

### 📝️ Documentations
For more details, see the [PR](https://github.com/intlify/vue-i18n/pull/1890) 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](https://vue-i18n.intlify.dev/guide/migration/breaking10.html#change-t-and-t-overloaded-signature-for-legacy-api-mode).

## Deprecation of `tc` and `$tc` for Legacy API Mode

- docs: add favicon by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1824
- docs: fix typos by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1825
- Update started.md to fix typo by @steveclarke in https://github.com/intlify/vue-i18n/pull/1822
- docs: fix typo on vue i18n name by @r-moret in https://github.com/intlify/vue-i18n/pull/1848
- fix: typo in migration breaking changes v10 by @khylias in https://github.com/intlify/vue-i18n/pull/1854
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](https://vue-i18n.intlify.dev/guide/migration/breaking10.html#deprecate-tc-and-tc-for-legacy-api-mode).

## 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](https://vue-i18n.intlify.dev/guide/migration/breaking10.html#drop-modulo-syntax).

# 🌟 Features

- feat: move to GA from experimental for petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1862
- feat!: default enable for JIT compilation by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1852
- feat: support generated locale type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1890
- feat!: change `$t` overloaded signature for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1832

# ❗ Braeking Changes

- breaking: drop translation component `<i18n>` v8.x compatibility by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1844
- breaking: drop `te` behavior v8.x compatibility on v9 by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1845
- feat!: deprecate `tc` and `$tc` for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1839
- breaking: drop fully `formatter` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1826
- breaking: drop fully `preserveDirectiveContent` option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1827
- breaking: drop fully `preserve` modifier codes on `v-t` directive by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1828
- breaking: drop fully `getChoiceIndex` on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1829
- breaking: drop vue-i18n-bridge by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1816
- breaking: drop `allowComposition` option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1817
- breaking: drop modulo syntax by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1814

# ⚡ Improvement Features

- perf: more bundle size optimization by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1851
- fix: type errors by @kazupon in https://github.com/intlify/vue-i18n/pull/1935
- fix(devtools): change vue-devtools label by @kazupon in https://github.com/intlify/vue-i18n/pull/1885
- fix: vue-i18n type definition for vue package by @kazupon in https://github.com/intlify/vue-i18n/pull/1888
- fix: translation interface typing by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1837
- fix: reduce devtools pkgs and size by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1823

# ✏️ Documentation & Sample Updates

- Improved the global and local Scope descriptions by @pankajrlal in https://github.com/intlify/vue-i18n/pull/1925
- Update ja-JP.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1914
- Update en-US.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1913
- chore: fix module augmentation example comment by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1898
- Added a comment about pluralRules to the code in pluralization docs by @M1h4n1k in https://github.com/intlify/vue-i18n/pull/1873
- docs: fix typos by @SimonVadier in https://github.com/intlify/vue-i18n/pull/1863
- docs: add scoping for custom directive by @kazupon in https://github.com/intlify/vue-i18n/pull/1867
- Update tools.md by @felixhaeberle in https://github.com/intlify/vue-i18n/pull/1866
- Fix typos, syntax by @TheoKondak in https://github.com/intlify/vue-i18n/pull/1881
- Added a comment about pluralRules to the code in pluralization docs by @M1h4n1k in https://github.com/intlify/vue-i18n/pull/1873
- chore: fix module augmentation example comment by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1898
- Improved the global and local Scope descriptions by @pankajrlal in https://github.com/intlify/vue-i18n/pull/1925
- fix: typo in migration breaking changes v10 by @khylias in https://github.com/intlify/vue-i18n-next/pull/1854
- docs: fix typo on vue i18n name by @r-moret in https://github.com/intlify/vue-i18n-next/pull/1848
- docs: add favicon by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1824
- docs: fix typos by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1825
- Update started.md to fix typo by @steveclarke in https://github.com/intlify/vue-i18n-next/pull/1822

### 🍭 Examples
# 🐛 Bug Fixes

- Update ja-JP.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1914
- Update en-US.json by @awsssrD in https://github.com/intlify/vue-i18n/pull/1913
- fix: fallback linked message params by @kazupon in https://github.com/intlify/vue-i18n/pull/1926
- fix(types): `$t` types by @mitjans in https://github.com/intlify/vue-i18n/pull/1883
- fix: cannot reduce message-compiler bundle size for runtime by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1860
- fix: allow empty default message by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1849
- fix: remove unnecessary types from petite-vue-i18n by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1833
- fix: Not load devtools on Node.js by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1843
- fix(types): allow spyOn of "useI18n()" by @pinguet62 in https://github.com/intlify/vue-i18n-next/pull/1815

## New Contributors
# New Contributors

- @pinguet62 made their first contribution in https://github.com/intlify/vue-i18n/pull/1815
- @steveclarke made their first contribution in https://github.com/intlify/vue-i18n/pull/1822
Expand Down

0 comments on commit 5c967c7

Please sign in to comment.