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 2 days ago
02 Oct 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
216 releases · first in 2020
One column per quarter.
fix: backport CVE-2025-53892 (escapeParameterHtml DOM XSS hardening) to master by @vulgraph in #2470
Intl.PluralRules by @kazupon in #2400n/$n and d/$d formatting by @kazupon in #2418$n overloads use DefineNumberFormat instead of DefineDateTimeFormat by @babu-ch in #2459register* global functions in favor of createI18n options by @kazupon in #2445n and $n typings by @kazupon in #2174vitest/node types to fix Vitest 4 type errors by @haoqunjiang in #2303useI18n implementation with provide-inject fully by @kazupon in #2357n() and $n() with undefined should not throw errors by @kazupon in #2417shallowRef server-side for datetimeFormats by @BobbieGoede in #2333rt link by @Nikita0x in #2393availableLocales by @kazupon in #2420Full Changelog: v12.0.0-alpha.2...v12.0.0-alpha.4
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0-alpha.3 -->
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0-alpha.3 -->
n and $n typings by @kazupon in https://github.com/intlify/vue-i18n/pull/2174Full Changelog: https://github.com/intlify/vue-i18n/compare/v12.0.0-alpha.2...v12.0.0-alpha.3
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0-alpha.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0-alpha.2 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v12.0.0-alpha.1...v12.0.0-alpha.2
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0-alpha.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0-alpha.1 -->
availableLocales using computed property by @mnenie in https://github.com/intlify/vue-i18n/pull/2058ComponentCustomProperties['$i18n'] type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/2093mangle option name from minify option name by @kazupon in https://github.com/intlify/vue-i18n/pull/2064v-t limitations and reactivity behavior by @docnoe in https://github.com/intlify/vue-i18n/pull/2118Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.0.1...v12.0.0-alpha.1
fix(core-base): map locale unions without the UnionToTuple round-trip by @kazupon in #2651
fix(core-base): cache locale chains by fallback identity by @kazupon in #2635
Full Changelog: v11.4.10...v11.4.12
fix(core-base): avoid throwing on AST keys in devtools groupId by @kazupon in #2603
fix(core-base): invalidate locale chain cache when fallback changes by @kazupon in #2577
Full Changelog: v11.4.8...v11.4.9
refactor: extract security sanitizer module by @kazupon in #2555
Full Changelog: v11.4.7...v11.4.8
Full Changelog : v11.4.6...v11.4.7
Full Changelog: v11.4.6...v11.4.7
Full Changelog : v11.4.5...v11.4.6
Full Changelog: v11.4.5...v11.4.6
fix(core-base): respect part option when format key is omitted in number / datetime by @kazupon in #2522
part option when format key is omitted in number/datetime by @kazupon in #2522Full Changelog: v11.4.4...v11.4.5
fix(security): harden javascript URL sanitization by @kazupon in #2503
chore!: drop Node.js 20 support by @kazupon in #2478
fix(formatter): pass component children as slots by @kazupon in #2474
fix(i18n-t): pass component children as slots by @kazupon in #2473
<!-- Release notes generated using configuration in .github/release.yml at v11.4.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.4.0 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.3.2...v11.4.0
<!-- Release notes generated using configuration in .github/release.yml at v11.3.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.3.2 -->
register* functions tree-shaking for intlify/core by @kazupon in https://github.com/intlify/vue-i18n/pull/2464Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.3.1...v11.3.2
<!-- Release notes generated using configuration in .github/release.yml at v11.3.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.3.1 -->
$n overloads use DefineNumberFormat instead of DefineDateTimeFormat by @kazupon in https://github.com/intlify/vue-i18n/pull/2461Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.3.0...v11.3.1
<!-- Release notes generated using configuration in .github/release.yml at v11.3.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.3.0 -->
@intlify/devtools-types dependencies by @kazupon in https://github.com/intlify/vue-i18n/pull/2411n() and $n() with undefined should not throw errors by @kazupon in https://github.com/intlify/vue-i18n/pull/2429! breaks n/$n and d/$d formatting by @kazupon in https://github.com/intlify/vue-i18n/pull/2434shallowRef server-side for datetimeFormats by @kazupon in https://github.com/intlify/vue-i18n/pull/2428Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.2.8...v11.3.0
<!-- Release notes generated using configuration in .github/release.yml at v11.2.8 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.2.8 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.2.7...v11.2.8
<!-- Release notes generated using configuration in .github/release.yml at v11.2.7 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.2.7 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.2.6...v11.2.7
<!-- Release notes generated using configuration in .github/release.yml at v11.2.6 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.2.6 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.2.5...v11.2.6
<!-- Release notes generated using configuration in .github/release.yml at v11.2.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.2.2 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.2.1...v11.2.2
<!-- Release notes generated using configuration in .github/release.yml at v11.2.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.2.1 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.2.0...v11.2.1
<!-- Release notes generated using configuration in .github/release.yml at v11.1.12 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.12 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.11...v11.1.12
<!-- Release notes generated using configuration in .github/release.yml at v11.1.11 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.11 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.10...v11.1.11
<!-- Release notes generated using configuration in .github/release.yml at v11.1.10 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.10 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.9...v11.1.10
<!-- Release notes generated using configuration in .github/release.yml at v11.1.9 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.9 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.8...v11.1.9
<!-- Release notes generated using configuration in .github/release.yml at v11.1.8 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.8 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.7...v11.1.8
<!-- Release notes generated using configuration in .github/release.yml at v11.1.7 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.7 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.6...v11.1.7
<!-- Release notes generated using configuration in .github/release.yml at v11.1.6 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.6 -->
useI18n calling on local scope by @kazupon in https://github.com/intlify/vue-i18n/pull/2203Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.5...v11.1.6
<!-- Release notes generated using configuration in .github/release.yml at v11.1.5 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.5 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.4...v11.1.5
<!-- Release notes generated using configuration in .github/release.yml at v11.1.4 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.4 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.3...v11.1.4
<!-- Release notes generated using configuration in .github/release.yml at v11.1.3 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.3 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.2...v11.1.3
<!-- Release notes generated using configuration in .github/release.yml at v11.1.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.2 -->
handleFlatJson, about details see https://github.com/intlify/vue-i18n/security/advisories/GHSA-p2ph-7g93-hw3mFull Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.1...v11.1.2
<!-- Release notes generated using configuration in .github/release.yml at v11.1.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.1 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.1.0...v11.1.1
<!-- Release notes generated using configuration in .github/release.yml at v11.1.0 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.1.0 -->
ComponentCustomProperties['$i18n'] type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/2094Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.0.1...v11.1.0
<!-- Release notes generated using configuration in .github/release.yml at v11.0.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.0.1 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.0.0...v11.0.1
fix: security vulnerability fix porting by @kazupon in https://github.com/intlify/vue-i18n/pull/2034
<!-- Release notes generated using configuration in .github/release.yml at v11.0.0 -->
We are excited to announce the release of Vue I18n v11. We had many contributors.
Thanks for your contributing ❤️
The Legacy API mode was the API mode compatible with v8 for Vue 2. When v9 was released, the Legacy API was provided to smooth the migration from v8 to v9.
Legacy API mode will be deprecated in v11, as previous vue-i18n releases have already provided the following to support migration to Composition API mode
For compatibility, Legacy API mode still works in v11, but will be removed entirely in v12, so Legacy API mode will not work after that version.
v-tThe advantage of v-t was that it could optimize performance using the vue compiler transform and the pre-translation of vue-i18n-extension.
This feature was supported from Vue 2. About details see the blog article
In Vue 3, due to the Composition API, the pre-translation of vue-i18n-extension is now limited only for global scope.
In addition, Vue 3 Virtual DOM optimization has been introduced, and the optimization provided by vue-i18n-extension is no longer very effective. We need to require settings for SSR, the benefits of using v-t have disappeared. And DX of templates using v-t is not good. Custom directives do not work with key completion in editors (e.g. vscode).
For compatibility, v-t mode still works in v11, but will be removed entirely in v12, so v-t will not work after that version.
tc and $tc for Legacy API modeThese APIs had already deprecated in warning about being dropped in v11. docs says
Vue I18n v8 is no longer supported after 2025. Vue I18n v9 and Vue I18n v10 is in maintenance mode after 2025 July.
With the release of Vue I18n v11, that version will become mainstream.
The maintenance detail status of Vue I18n v9 and Vue I18n v10 is as follows:
<img src="https://raw.githubusercontent.com/intlify/vue-i18n/master/docs/public/lifecycle2025.svg" />
You can check the maintenance status on the docs
$tc and tc by @kazupon in https://github.com/intlify/vue-i18n/pull/2017v-t custom directive by @kazupon in https://github.com/intlify/vue-i18n/pull/2045tm function should accept DefineLocaleMessage key type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/2014Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.4...v11.0.0
feat!: deprecate v-t custom directive by @kazupon in https://github.com/intlify/vue-i18n/pull/2045
<!-- Release notes generated using configuration in .github/release.yml at v11.0.0-rc.1 -->
v-t custom directive by @kazupon in https://github.com/intlify/vue-i18n/pull/2045Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.0.0-beta.2...v11.0.0-rc.1
fix: security vulnerability fix porting by @kazupon in https://github.com/intlify/vue-i18n/pull/2034
<!-- Release notes generated using configuration in .github/release.yml at v11.0.0-beta.2 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.0.0-beta.1...v11.0.0-beta.2
<!-- Release notes generated using configuration in .github/release.yml at v11.0.0-beta.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v11.0.0-beta.1 -->
$tc and tc by @kazupon in https://github.com/intlify/vue-i18n/pull/2017Full Changelog: https://github.com/intlify/vue-i18n/compare/v11.0.0-beta.0...v11.0.0-beta.1
feat!: deprecate Legacy API mode by @kazupon in https://github.com/intlify/vue-i18n/pull/2016
<!-- Release notes generated using configuration in .github/release.yml at v11.0.0-beta.0 -->
tm function should accept DefineLocaleMessage key type by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/2014Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.4...v11.0.0-beta.0
<!-- Release notes generated using configuration in .github/release.yml at v10.0.8 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.8 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.7...v10.0.8
<!-- Release notes generated using configuration in .github/release.yml at v10.0.7 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.7 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.6...v10.0.7
<!-- Release notes generated using configuration in .github/release.yml at v10.0.6 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.6 -->
handleFlatJson, about details see https://github.com/intlify/vue-i18n/security/advisories/GHSA-p2ph-7g93-hw3mFull Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.5...v10.0.6
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 v10.0.5 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.4...v10.0.5
<!-- Release notes generated using configuration in .github/release.yml at v10.0.4 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.4 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.3...v10.0.4
<!-- Release notes generated using configuration in .github/release.yml at v10.0.3 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.3 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.2...v10.0.3
<!-- Release notes generated using configuration in .github/release.yml at v10.0.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.2 -->
deepCopy mutates src arguments by @BobbieGoede in https://github.com/intlify/vue-i18n/pull/1947Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.1...v10.0.2
<!-- Release notes generated using configuration in .github/release.yml at v10.0.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.1 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.0...v10.0.1
fix: typo in migration breaking changes v10 by @khylias in https://github.com/intlify/vue-i18n-next/pull/1854
We are excited to announce the release of Vue I18n v10. We had many contributors.
Thanks for your contributing ❤️
petite-vue-i18n General Availabilitypetite-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 was introduced in v9.3, but it was not enabled by default.
However, it had the following issues:
Starting from v10, JIT compilation is enabled by default.
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.
$t and t Overload Signatures for Legacy API ModeIn 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.
tc and $tc for Legacy API ModeThe 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.
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.
$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/1839formatter 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/1829allowComposition option by @kazupon in https://github.com/intlify/vue-i18n-next/pull/1817$t types by @mitjans in https://github.com/intlify/vue-i18n/pull/1883Full Changelog: https://github.com/intlify/vue-i18n/compare/v9.13.1...v10.0.0
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-rc.1 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-rc.1 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.0-beta.6...v10.0.0-rc.1
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.6 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.6 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.0-beta.5...v10.0.0-beta.6
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.5 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.5 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.0-beta.4...v10.0.0-beta.5
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.4 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.4 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.0-beta.3...v10.0.0-beta.4
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.3 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.3 -->
Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.0-beta.2...v10.0.0-beta.3
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.2 -->
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.2 -->
$t types by @mitjans in https://github.com/intlify/vue-i18n/pull/1883Full Changelog: https://github.com/intlify/vue-i18n/compare/v10.0.0-beta.1...v10.0.0-beta.2
fix: typo in migration breaking changes v10 by @khylias in https://github.com/intlify/vue-i18n-next/pull/1854
<!-- Release notes generated using configuration in .github/release.yml at v10.0.0-beta.1 -->
Full Changelog: https://github.com/intlify/vue-i18n-next/compare/v10.0.0-alpha.5...v10.0.0-beta.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →