From d24ee0a448b044003a92ab20ad9de65dbdf5e5dc Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Mon, 14 Sep 2026 07:39:19 +0500 Subject: [PATCH] chore: add i18n dict consistency lint rule --- docs/backlog.md | 2 +- web/eslint-plugins/README.md | 33 +- .../__fixtures__/src/lib/i18n/de.ts | 24 ++ .../__fixtures__/src/lib/i18n/dict.ts | 16 + .../__fixtures__/src/lib/i18n/en.ts | 24 ++ .../__fixtures__/src/lib/i18n/ru.ts | 24 ++ .../__tests__/dict-consistency.test.ts | 146 ++++++++ web/eslint-plugins/i18n/dict-consistency.js | 341 ++++++++++++++++++ web/eslint-plugins/i18n/index.js | 20 + web/eslint.config.js | 21 +- 10 files changed, 648 insertions(+), 3 deletions(-) create mode 100644 web/eslint-plugins/__fixtures__/src/lib/i18n/de.ts create mode 100644 web/eslint-plugins/__fixtures__/src/lib/i18n/dict.ts create mode 100644 web/eslint-plugins/__fixtures__/src/lib/i18n/en.ts create mode 100644 web/eslint-plugins/__fixtures__/src/lib/i18n/ru.ts create mode 100644 web/eslint-plugins/__tests__/dict-consistency.test.ts create mode 100644 web/eslint-plugins/i18n/dict-consistency.js create mode 100644 web/eslint-plugins/i18n/index.js diff --git a/docs/backlog.md b/docs/backlog.md index 8fbb7b7..de0f0d4 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -2,7 +2,7 @@ ## lint и прочие правила -- [ ] Кросс-языковой линтер словарей (warn-only: паритет ключей, пустые +- [x] Кросс-языковой линтер словарей (warn-only: паритет ключей, пустые значения, совпадение `{placeholder}`-переменных между всеми локалями) — правило `i18n/dict-consistency`, детали в §Фаза 8 `docs/plan-preview-i18n.md` diff --git a/web/eslint-plugins/README.md b/web/eslint-plugins/README.md index 4a8c9fc..d4a0b40 100644 --- a/web/eslint-plugins/README.md +++ b/web/eslint-plugins/README.md @@ -9,9 +9,11 @@ - `web/eslint-plugins/` — локальные ESLint-плагины. - `design-tokens/` — правила для `