@intlify/eslint-plugin-vue-i18n
May 27, 2026 · View on GitHub
4.5.0
Minor Changes
- #732
e0c6a3fThanks @andreww2012! - refactor: replace lodash with vanilla js
4.4.0
Minor Changes
- #731
d753ca3Thanks @lukashass! - chore(deps): allow yaml-eslint-parser ^2.0.0
Patch Changes
- #734
1c6e0a8Thanks @SAY-5! - fix(no-raw-text): trim leading and trailing whitespace in warning message for readability
4.3.0
Minor Changes
- #714
de92326Thanks @Roman3349! - chore(deps): allow jsonc-eslint-parser ^3.0.0
4.2.0
Minor Changes
-
#697
b8dd9e8Thanks @samuelwei! - add support for eslint v10 -
#689
bb9e1dfThanks @Jerc92! - Addvalid-plural-formsrule to validate plural form counts per localeThis rule enforces that plural messages have the correct number of forms for each locale, helping prevent runtime errors when vue-i18n's
pluralRulesfunction returns an out-of-bounds index.- Defaults to
[2, 3]for all locales (matches vue-i18n's built-in pluralization) - Use
pluralFormCountsto configure locale-specific overrides - Arrays allow multiple valid counts (e.g.,
[2, 4]for languages supporting both binary and full pluralization)
Configuration example:
{ "@intlify/vue-i18n/valid-plural-forms": [ "error", { "pluralFormCounts": { "sl": [2, 4], "sr-latn": [2, 3] } } ] } - Defaults to
Patch Changes
- #692
8d175b3Thanks @GeniusTimo! - fix: narrow types of provided configs
4.1.1
Patch Changes
- #683
5338eb2Thanks @LuckyWindsck! - Fix the output type of recommend config
4.1.0
Minor Changes
-
#637
383e682Thanks @mcler! - Improved to apply no-dynamic-keys rule to non-Vue files as well. -
#652
98b9f70Thanks @andreww2012! - fix(no-raw-text): disallow extra properties in rule options
4.0.1
Patch Changes
4.0.0
Major Changes
-
#556
ccc4737Thanks @renovate! - fix(deps): update dependency @intlify/core-base to v10 -
#595
384dd5cThanks @renovate! - fix(deps): update dependency @intlify/message-compiler to v11 -
#616
1d4beb7Thanks @ota-meshi! - Drop support for vue-i18n v8 syntax -
#583
9a5601eThanks @ota-meshi! - docs!: Add Versioning Policy -
#557
baaa5feThanks @renovate! - fix(deps): update dependency @intlify/message-compiler to v10 -
#585
13d8975Thanks @ota-meshi! - feat!: update config -
#614
3172959Thanks @renovate! - chore(deps): update dependency vue-eslint-parser to v10 -
#587
9baee55Thanks @ota-meshi! - feat!: rename configs -
#615
4ff816fThanks @ota-meshi! - Change parser dependencies to peerDependencies
Minor Changes
4.0.0-next.2
Major Changes
-
#616
1d4beb7Thanks @ota-meshi! - Drop support for vue-i18n v8 syntax -
#614
3172959Thanks @renovate! - chore(deps): update dependency vue-eslint-parser to v10 -
#615
4ff816fThanks @ota-meshi! - Change parser dependencies to peerDependencies
Minor Changes
4.0.0-next.1
Major Changes
-
#595
384dd5cThanks @renovate! - fix(deps): update dependency @intlify/message-compiler to v11 -
#583
9a5601eThanks @ota-meshi! - docs!: Add Versioning Policy -
#587
9baee55Thanks @ota-meshi! - feat!: rename configs
4.0.0-next.0
Major Changes
-
#556
ccc4737Thanks @renovate! - fix(deps): update dependency @intlify/core-base to v10 -
#557
baaa5feThanks @renovate! - fix(deps): update dependency @intlify/message-compiler to v10 -
#585
13d8975Thanks @ota-meshi! - feat!: update config
3.2.0
Minor Changes
3.1.0
Minor Changes
3.0.0
Major Changes
-
#513
3f0c57fThanks @kazupon! - breaking: drop support for versions less than node v18 -
#520
7642d29Thanks @ota-meshi! - breaking: update recommended config -
#514
e45f983Thanks @kazupon! - breaking: drop support for versions less than eslint v8
Minor Changes
-
#499
296e6f6Thanks @kazupon! - feat:no-deprecated-modulo-syntaxrule -
#471
a12cbecThanks @advisciglio! - fix: adds I18nT keyword into key collection -
#492
30ad848Thanks @oikalyptus! - add lowercase option to key-format-style rule -
#510
61b0c94Thanks @kazupon! - feat: addno-deprecated-tcrule -
#463
a488f15Thanks @ota-meshi! - feat: add support for eslint v9 -
#497
c392a38Thanks @ota-meshi! - fix:no-unused-keysrule not working when using flat config
Patch Changes
-
#394
3774e88Thanks @wolfgangwalther! - fix: no-missing-keys rule reports false positive with trailing dot -
#459
8b3d347Thanks @renovate! - fix(deps): update dependency @eslint/eslintrc to v3 -
#474
ebd7353Thanks @ota-meshi! - fix: wrong suggestion for remove all unused keys invue-i18n/no-unused-keysrule -
#413
0fadd81Thanks @dargmuesli! - Pin@intlifydependencies to tagbetato try to prevent renovate from downgrading. -
#515
b451cdbThanks @kazupon! - fix:no-deprecated-tcrule wrong category -
#433
68a4a1bThanks @wolfgangwalther! - fix(deps): Make import-fresh a proper dependency
3.0.0-next.14
Major Changes
- #520
7642d29Thanks @ota-meshi! - feat!: update recommended config
3.0.0-next.13
Major Changes
-
#513
3f0c57fThanks @kazupon! - breaking: drop support for versions less than node v18 -
#514
e45f983Thanks @kazupon! - breaking: drop support for versions less than eslint v8
Patch Changes
3.0.0-next.12
Minor Changes
3.0.0-next.11
Minor Changes
3.0.0-next.10
Minor Changes
- #497
c392a38Thanks @ota-meshi! - fix:no-unused-keysrule not working when using flat config
3.0.0-next.9
Minor Changes
- #492
30ad848Thanks @oikalyptus! - add lowercase option to key-format-style rule
3.0.0-next.8
Minor Changes
3.0.0-next.7
Patch Changes
- #474
ebd7353Thanks @ota-meshi! - fix: wrong suggestion for remove all unused keys invue-i18n/no-unused-keysrule
3.0.0-next.6
Minor Changes
- #471
a12cbecThanks @advisciglio! - fix: adds I18nT keyword into key collection
3.0.0-next.5
Minor Changes
- #463
a488f15Thanks @ota-meshi! - feat: add support for eslint v9
Patch Changes
3.0.0-next.4
Patch Changes
- #433
68a4a1bThanks @wolfgangwalther! - fix(deps): Make import-fresh a proper dependency
3.0.0-next.3
Patch Changes
- #413
0fadd81Thanks @dargmuesli! - Pin@intlifydependencies to tagbetato try to prevent renovate from downgrading.
3.0.0-next.2
Patch Changes
- #394
3774e88Thanks @wolfgangwalther! - fix: no-missing-keys rule reports false positive with trailing dot
v3.0.0-beta.1 (2023-06-18)
:boom: Breaking Change
- #382 feat(deps): update @intlify dependencies to v9.3.0-beta.19 (@dargmuesli)
- #371 ci: use node 20, and drop support for node 14 (@dargmuesli)
Committers: 4
- Jonas Thelemann (@dargmuesli)
- Magomed Chemurziev (@ItMaga)
- Rémi Tran (@trinketmage)
- Yosuke Ota (@ota-meshi)
v2.0.0 (2022-05-18)
:boom: Breaking Change
- #324 fix(deps): update dependency vue-eslint-parser to v9 (@renovate[bot])
- #318 Drop support for Node.js v12 (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v1.4.1 (2022-04-07)
:bug: Bug Fixes
- #315 Fix crash with null value in no-raw-text rule (@ota-meshi)
- #313 Fix false positives in no-missing-keys (@ota-meshi)
- #312 Fix false negatives when using parsers other than vue-eslint-parser in no-missing-keys (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v1.4.0 (2022-03-06)
:bug: Bug Fixes
- #302 Fix false positives and false negatives for no-missing-keys and no-unused-keys rules (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v1.3.0 (2022-02-11)
:star: Features
- #289 Add splitByDots option to key-format-style rule (@ota-meshi)
- #288 Add ignores option to no-unused-keys rule (@ota-meshi)
- #287 Add no-unknown-locale rule (@ota-meshi)
- #286 Add sfc-locale-attr rule (@ota-meshi)
:pencil: Documentation
- #274 Fix unordered list formatting in docs (@FloEdelmann)
Committers: 2
- Flo Edelmann (@FloEdelmann)
- Yosuke Ota (@ota-meshi)
v1.2.0 (2021-11-18)
:star: Features
- #267 Add
prefer-sfc-lang-attrrule (@ota-meshi) - #270 feat: support
localePatternoption for locale structured with directory (@kazupon)
Committers: 2
- Yosuke Ota (@ota-meshi)
- kazuya kawaguchi (@kazupon)
v1.1.0 (2021-11-16)
:star: Features
- #259 Add
attributesoption tono-raw-textrule (@ota-meshi) - #257 Add
SCREAMING_SNAKE_CASEoption tokey-format-stylerule (@ota-meshi)
:bug: Bug Fixes
- #256 Fix bug when using delimited-like path. (@ota-meshi)
- #253 Fix false negatives for
<i18n-t keypath>inno-missing-keyrule (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v1.0.1 (2021-10-29)
:bug: Bug Fixes
- #252 Fix false positives for
<i18n-t keypath>inno-unused-keyrule (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v1.0.0 (2021-10-29)
:boom: Breaking Change
- #243 fix(deps): update dependency vue-eslint-parser to v8 (@renovate[bot])
- #247 Drop support for Node <v12, v13, and v15 (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.15.0 (2021-09-08)
:star: Features
- #232 feat: support suggestion for
no-raw-textrule (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.14.0 (2021-09-08)
:star: Features
:bug: Bug Fixes
- #230 Fix false positives for non component template in
no-raw-textrule. (@ota-meshi)
Committers: 2
- Yosuke Ota (@ota-meshi)
- kazuya kawaguchi (@kazupon)
v0.13.0 (2021-08-22)
:star: Features
- #221 Add support for eslint v8(beta) (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.12.0 (2021-07-27)
:gear: Updates
- #205 Upgrade @intlify/message-compiler and @intlify/message-resolver
- #206 Replace ESLint CLIEngine with @eslint/eslintrc
- #211 update dependency yaml-eslint-parser to ^0.4.0
v0.11.1 (2021-03-18)
:bug: Bug Fixes
- #173 fix: add debug as dependency (@lukashass)
Committers: 2
- Lukas (@lukashass)
- Yosuke Ota (@ota-meshi)
v0.11.0 (2021-02-23)
:star: Features
- #166 Add no-deprecated-i18n-places-prop rule (@ota-meshi)
- #167 Add no-i18n-t-path-prop rule (@ota-meshi)
- #165 Add no-deprecated-i18n-place-attr rule (@ota-meshi)
- #164 Add no-deprecated-i18n-component rule (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.10.0 (2021-01-04)
:star: Features
- #149 Add
prefer-linked-key-with-parenrule (@ota-meshi) - #148 Add
no-missing-keys-in-other-localesrule (@ota-meshi) - #148 Change
no-missing-keysrule to not report if there is one matching key (@ota-meshi) - #147 Add
valid-message-syntaxrule (@ota-meshi) - #145 Supports vue-i18n v9 message format (@ota-meshi)
:bug: Bug Fixes
- #150 Fix false negatives for member expression in
no-dynamic-keysrule (@ota-meshi)
:pencil: Documentation
- #153 Replace documentation example with
vue-eslint-editor(@ota-meshi) - #144 Chores: Add to documentation that eslint-plugin-jsonc and eslint-plugin-yml can be used (@ota-meshi)
- #122 Docs: Fix typo and dead link (@mfmfuyu)
Committers: 2
- Yosuke Ota (@ota-meshi)
- fuyu (@mfmfuyu)
v0.9.0 (2020-08-17)
:star: Features
- #114 Add support for multiple locale directories (@ota-meshi)
- #116 Add
@intlify/vue-i18n/key-format-stylerule (@ota-meshi) - #112 Add
@intlify/vue-i18n/no-duplicate-keys-in-localerule and change@intlify/vue-i18n/no-missing-keysrule to not report if there is one matching key in each locale (@ota-meshi)
:bug: Bug Fixes
- #115 Fix false positives when key contains object in YAML in
no-unused-keysrule. (@ota-meshi) - #111 Fix false negatives in
<i18n>block without<template>inno-unused-keysrule. (@ota-meshi)
:pencil: Documentation
- #110 Add TypeScript FAQ. (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.8.1 (2020-08-07)
:bug: Bug Fixes
- #99 Fix release does not include build files. (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.8.0 (2020-08-07)
:star: Features
- #94 Add support YAML and JSON5 resources. (@ota-meshi)
:bug: Bug Fixes
- #92 Fix false positives of key used in
<i18n>component inno-unused-keysrule. (@ota-meshi)
:zap: Improvement Features
- #93 Change
no-missing-keysandno-dynamic-keysrules to also verify keys used in the<i18n-t>component. (@ota-meshi) - #87 Change to apply update when resource file is updated. (@ota-meshi)
:pencil: Documentation
Committers: 2
- Yosuke Ota (@ota-meshi)
- azu (@azu)
v0.7.0 (2020-07-27)
:star: Features
- #83 Add
enableFixoption to@intlify/vue-i18n/no-unused-keysrule (@ota-meshi) - #80 Add support for
<i18n>blocks of SFC. (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.6.0 (2020-07-19)
:bug: Bug Fixes
- #76 Fix false positives for linked keys in no-unused-keys rule (@ota-meshi)
:zap: Improvement Features
- #75 Change "settings['vue-i18n'].localeDir" to can specify object options. (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.5.0 (2020-07-12)
:bug: Bug Fixes
- #71 Fixed missing namespace in recommended config. (@ota-meshi)
Committers: 1
- Yosuke Ota (@ota-meshi)
v0.4.1 (2020-04-19)
:pencil: Documentation
Committers: 1
- Justin Lebar (@jlebar)
v0.4.0 (2020-01-22)
:boom: Breaking Change
Committers: 2
- @dependabot-preview[bot]
- kazuya kawaguchi (@kazupon)
0.3.0 (2019-10-02)
:star: New Features
- rule: No raw text ignore options (#31) by @stevelacey (34b7a25), closes #31
0.2.3 (2019-07-22)
:bug: Bug Fixes
0.2.2 (2019-07-22)
:bug: Bug Fixes
0.2.1 (2019-07-16)
:bug: Bug Fixes
- rule: fix no-raw-text bug (bc6a830)
0.2.0 (2019-07-12)
:star: New Features
:zap: Improvements
0.1.1 (2019-05-08)
:bug: Bug Fixes
- no-missing-keys: fix plugin crashes on missing nested path (#7) by @williamchong007 (ed02d94), closes #7
0.1.0 (2019-04-10)
:star: New Features
- rule: add no-dynamic-keys rule (7612dfd)
- rule: add no-html-messages rule (e75546f)
- rule: add no-missing-key rule (d35001d)
- rule: add no-unused-key rule (09ee649)
- rule: add no-v-html rule (f9636da)
:up: Updates
- add docs deploy script (39b503f)
- tweak line error messages (eb9b528)
- config: recommended config file (2e5c3c5)
- no-dynamic-keys: support i18n functional component (1fc1589)
- no-missing-keys: support i18n functional component (d6f08ea)
- add generation scripts (2b0ff7d)
- change recommended rule level (9d310aa)
- change rule category (17a1aed)
- generation scripts (3dee7c4)
- rule name (e5cb3d0)