NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4793 most downloaded on npm
@intlify/shared
Last release today
16 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
215 releases · first in 2020
One column per quarter.
feat!: deprecate tc and $tc for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1839
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-alpha.4 -->
$t overloaded signature for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1832<i18n> v8.x compatibility by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1844te behavior v8.x compatibility on v9 by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1845tc and $tc for Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1839Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v10.0.0-alpha.3...v10.0.0-alpha.4
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-alpha.3 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-alpha.3 -->
formatter option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1826preserveDirectiveContent option codes on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1827preserve modifier codes on v-t directive by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1828getChoiceIndex on Legacy API by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1829Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v10.0.0-alpha.2...v10.0.0-alpha.3
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-alpha.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-alpha.2 -->
allowComposition option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1817Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v10.0.0-alpha.1...v10.0.0-alpha.2
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-alpha.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-alpha.1 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.13.1...v10.0.0-alpha.1
<!-- Release notes generated using configuration in .github/release.yml at v9.14.5 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.14.5 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v9.14.4...v9.14.5
<!-- Release notes generated using configuration in .github/release.yml at v9.14.4 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.14.4 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v9.14.3...v9.14.4
<!-- Release notes generated using configuration in .github/release.yml at v9.14.3 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.14.3 -->
handleFlatJson, about details see https://github.com/intlify/vue-i18n/security/advisories/GHSA-p2ph-7g93-hw3mFull Changelog: https://github.com/intlify/vue-i18n/compare/v9.14.2...v9.14.3
fix: XSS vulnerability with prototype pollution on AST: https://github.com/intlify/vue-i18n/security/advisories/GHSA-9r9m-ffp6-9x4v
<!-- Release notes generated using configuration in .github/release.yml at v9.14.2 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v9.14.1...v9.14.2
<!-- Release notes generated using configuration in .github/release.yml at v9.14.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.14.1 -->
deepCopy mutates src arguments by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1975Full Changelog: https://github.com/intlify/vue-i18n/compare/v9.14.0...v9.14.1
<!-- Release notes generated using configuration in .github/release.yml at v9.14.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.14.0 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v9.13.1...v9.14.0
<!-- Release notes generated using configuration in .github/release.yml at v9.13.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.13.1 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.13.0...v9.13.1
<!-- Release notes generated using configuration in .github/release.yml at v9.13.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.13.0 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.12.1...v9.13.0
<!-- Release notes generated using configuration in .github/release.yml at v9.12.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.12.1 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.12.0...v9.12.1
fix: deprecate named interpolation with modulo syntax by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1795
<!-- Release notes generated using configuration in .github/release.yml at v9.12.0 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.11.1...v9.12.0
<!-- Release notes generated using configuration in .github/release.yml at v9.11.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.11.1 -->
.d.ts by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1794Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.11.0...v9.11.1
<!-- Release notes generated using configuration in .github/release.yml at v9.11.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.11.0 -->
scope prop by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1786Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.10.2...v9.11.0
<!-- Release notes generated using configuration in .github/release.yml at v9.10.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.10.2 -->
message-compiler by @BobbieGoede in https://github.com/intlify/vue-i18n-next/pull/1766Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.10.1...v9.10.2
<!-- Release notes generated using configuration in .github/release.yml at v9.10.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.10.1 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.10.0...v9.10.1
<!-- Release notes generated using configuration in .github/release.yml at v9.10.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.10.0 -->
te behavior compatibility before v9.6 by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1751Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.9.1...v9.10.0
<!-- Release notes generated using configuration in .github/release.yml at v9.9.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.9.1 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.9.0...v9.9.1
<!-- Release notes generated using configuration in .github/release.yml at v9.9.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.9.0 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.8.0...v9.9.0
<!-- Release notes generated using configuration in .github/release.yml at v9.8.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.8.0 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.7.1...v9.8.0
<!-- Release notes generated using configuration in .github/release.yml at v9.7.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.7.1 -->
@intlify/core conditional exports by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1639Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.7.0...v9.7.1
<!-- Release notes generated using configuration in .github/release.yml at v9.7.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.7.0 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.6.5...v9.7.0
<!-- Release notes generated using configuration in .github/release.yml at v9.6.5 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.6.5 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.6.4...v9.6.5
<!-- Release notes generated using configuration in .github/release.yml at v9.6.4 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.6.4 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.6.3...v9.6.4
<!-- Release notes generated using configuration in .github/release.yml at v9.6.3 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.6.3 -->
/* #__PURE__*/ comment timing by @newives in https://github.com/intlify/vue-i18n-next/pull/1623Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.6.2...v9.6.3
<!-- Release notes generated using configuration in .github/release.yml at v9.6.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.6.2 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.6.1...v9.6.2
<!-- Release notes generated using configuration in .github/release.yml at v9.6.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.6.1 -->
te logic strictly by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1612te fallback to root by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1613Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.6.0...v9.6.1
<!-- Release notes generated using configuration in .github/release.yml at v9.6.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.6.0 -->
@intlfy/core-base (@intlify/core) by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1594@vite-ignore magic comment by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1590setLocaleMessage by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1601te by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1602Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.5.0...v9.6.0
<!-- Release notes generated using configuration in .github/release.yml at v9.5.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.5.0 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.4.1...v9.5.0
<!-- Release notes generated using configuration in .github/release.yml at v9.4.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.4.1 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.4.0...v9.4.1
<!-- Release notes generated using configuration in .github/release.yml at v9.4.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.4.0 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0...v9.4.0
The following plugin or loader for bundler is deprecated because it can be replaced by the `unplugin-vue-i18n`.
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0 -->
We are excited to announce the release of Vue I18n v9.3, finally !! This release includes some new features, bug fixes, improvements, and document fixes.
We had commited with 37 contributors. Thanks for your contributing ❤️
In the following, we introduce some of the new features:
cjs / mjs)We provide CommonJS and Native ESM dual module packages for Node.js. This supports both require and import for loading modules in Node.js.
Supports JIT (Just In Time) style compilation of message formats. This mean, removes the CSP limitation and allows for use in environments such as Service worker, Web worker, and Edge.
It mean also now supports the use-case where locale messages are dynamically retrieved from the backend via the API.
For more information, please see the docs
The performance of JIT-style compilation is close to that of conventional AOT (Ahead Of Time) style compilation, and you can improve the performance to nearly 3x with combination of JIT + AOT.
Below are the compile performance benchmark results for vue-i18n:
> node ./benchmark/index.mjs
compilation:
compile simple message x 396,898 ops/sec ±0.31% (98 runs sampled)
compile complex message x 60,036 ops/sec ±0.34% (99 runs sampled)
simple pattern on 1000 resources (AOT):
resolve time with core x 279,919 ops/sec ±0.19% (99 runs sampled)
resolve time on composition x 93,963 ops/sec ±0.48% (93 runs sampled)
resolve time on composition with compile cache x 230,928 ops/sec ±0.20% (100 runs sampled)
simple pattern on 1000 resources (JIT):
resolve time with core x 277,813 ops/sec ±0.18% (99 runs sampled)
resolve time on composition x 91,959 ops/sec ±0.43% (97 runs sampled)
resolve time on composition with compile cache x 227,117 ops/sec ±0.15% (99 runs sampled)
simple pattern on 1000 resources (JIT + AOT):
resolve time with core x 319,061 ops/sec ±0.18% (100 runs sampled)
resolve time on composition x 204,529 ops/sec ±0.22% (95 runs sampled)
resolve time on composition with compile cache x 204,652 ops/sec ±0.30% (100 runs sampled)
complex pattern on 1000 resources (AOT):
resolve time with core x 240,427 ops/sec ±0.37% (100 runs sampled)
resolve time on composition x 33,959 ops/sec ±0.45% (94 runs sampled)
resolve time on composition with compile cache x 200,980 ops/sec ±0.15% (99 runs sampled)
complex pattern on 1000 resources (JIT):
resolve time with core x 225,739 ops/sec ±0.25% (99 runs sampled)
resolve time on composition x 36,379 ops/sec ±0.49% (97 runs sampled)
resolve time on composition with compile cache x 191,653 ops/sec ±0.24% (100 runs sampled)
complex pattern on 1000 resources (JIT + AOT):
resolve time with core x 278,542 ops/sec ±0.20% (98 runs sampled)
resolve time on composition x 92,781 ops/sec ±0.31% (98 runs sampled)
resolve time on composition with compile cache x 92,865 ops/sec ±0.33% (98 runs sampled)
You can clone Vue I18n and run the benchmark with pnpm build:type && pnpm benchmark to check.
Starting with v9.3, Vue I18n will give message format customization as an experimental feature. This will allow for extending to the message format:
import { createI18n } from 'vue-i18n'
import { messageCompiler } from './compilation'
const i18n = createI18n({
legacy: false,
locale: 'en',
messageCompiler,
messages: {
en: {
hello: 'hello world!',
greeting: 'hi, {name}!',
photo: `You have {numPhotos, plural,
=0 {no photos.}
=1 {one photo.}
other {# photos.}
}`
}
}
})
About details, please see the docs
messageCompiler option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1497Export v-t type definitions and API $te to support Vue I18n extending for third vendors and your Vue applications.
v-t directive type by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1511$te as global on composition mode by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1222allowComposition optionThe allowComposition option will be removed in Vue I18n v10. We have accordingly output a warning if you are using it.
If you are using Vue I18n Legacy API to migrate to the Composition API, please make sure you have done so with the Vue I18n v9 version.
allowComposition option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1496The following plugin or loader for bundler is deprecated because it can be replaced by the unplugin-vue-i18n.
These will only be taken as hot fixes in the future, and no additional functionality will be added.
globalThis with bundler by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1413TranslateVNodeSymbol by @DamianGlowala in https://github.com/intlify/vue-i18n-next/pull/1236optionalDependencies by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1184isMessageAST more strictly by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1509rt by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1455<i18n-t>, <i18n-n> and <i18n-d> by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1416Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.2.2...v9.3.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.27 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.27 -->
messageCompiler option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1497v-t directive type by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1511isMessageAST more strictly by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1509Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.26...v9.3.0-beta.27
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.26 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.26 -->
allowComposition option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1496Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.25...v9.3.0-beta.26
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.25 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.25 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.24...v9.3.0-beta.25
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.24 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.24 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.23...v9.3.0-beta.24
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.23 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.23 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.22...v9.3.0-beta.23
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.22 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.22 -->
rt by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1455Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.21...v9.3.0-beta.22
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.21 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.21 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.20...v9.3.0-beta.21
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.20 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.20 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.19...v9.3.0-beta.20
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.19 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.19 -->
<i18n-t>, <i18n-n> and <i18n-d> by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1416Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.18...v9.3.0-beta.19
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.18 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.18 -->
globalThis with bundler by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1413Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.17...v9.3.0-beta.18
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.17 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.17 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.16...v9.3.0-beta.17
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.16 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.16 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.15...v9.3.0-beta.16
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.15 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.15 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.14...v9.3.0-beta.15
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.14 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.14 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.13...v9.3.0-beta.14
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.13 -->
<!-- Release notes generated using configuration in .github/release.yml at v9.3.0-beta.13 -->
This is new release flow test release
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v9.3.0-beta.12...v9.3.0-beta.13
Your coding agent can read these notes before it upgrades. Set up the MCP server →