mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
chore: add new lint rule - check hardcoded text
This commit is contained in:
@@ -42,6 +42,9 @@
|
||||
`__fixtures__/` дописать их туда же.
|
||||
- design-tokens правила применяются к тем же scoped-путям
|
||||
(`src/lib/components/**`, `src/routes/**`).
|
||||
- `i18n/no-hardcoded-user-text` применяется к `src/lib/components/**` (`/kit`
|
||||
исключён как витрина с намеренно hardcoded-подписями) и настраивается опцией
|
||||
`allowWords` —brand не хардкодится в правиле.
|
||||
|
||||
## Правила плагина design-tokens
|
||||
|
||||
@@ -60,7 +63,9 @@
|
||||
(ESLint лезет в `<style>`-блоки через постпрефес postcss AST от
|
||||
`svelte-eslint-parser`; stylelint прогоняется по всем CSS-файлам.)
|
||||
|
||||
## Правило плагина i18n (`i18n/dict-consistency`)
|
||||
## Плагин i18n (`i18n/`)
|
||||
|
||||
### `i18n/dict-consistency`
|
||||
|
||||
Кросс-языковой линтер словарей `lib/i18n/` (историческая модель и завершённые
|
||||
фазы: `docs/archive/plan-preview-i18n.md`). Сравнивает каждый словарь со
|
||||
@@ -97,6 +102,28 @@
|
||||
тестах подаются модифицированные варианты `en.ts`/`ru.ts` против эталонных на
|
||||
диске.
|
||||
|
||||
### `i18n/no-hardcoded-user-text`
|
||||
|
||||
Запрещает пользовательский текст, зашитый в шаблон: литерал в Svelte-тексте или
|
||||
в строковом значении пользовательского атрибута молча уедет в RU-локаль. Пилот
|
||||
report-only (`warn`), baseline — 0 срабатываний.
|
||||
|
||||
- Поверхность: узлы `SvelteText` (включая текстовые части смешанного контента) и
|
||||
строковые литералы атрибутов из `i18n/lists.js` (`label`, `title`,
|
||||
`placeholder`, `aria-label`, `alt`, `description`, `emptyText`, `hint`,
|
||||
`eyebrow`, `suffix`, `unit`, `error`). Технические атрибуты (`variant`,
|
||||
`tone`, `type`, `icon`, `size`, `href`, `class`) не проверяются, значения в
|
||||
скобках (`{expr}`) тоже — они считаются в другом месте.
|
||||
- Исключения списком, а не «на глаз»: форматы и единицы (`PNG`, `px`, `×`),
|
||||
имена файлов и версии (`result.png`, `v0.1.0`), размеры (`512×512`),
|
||||
registry-строки и прочие ALL CAPS идентификаторы (`BACKGROUND`), а также
|
||||
`/kit` — витрина компонентов с намеренно латинскими подписями.
|
||||
- Опция `allowWords: string[]` — brand и прочие собственные имена. Название
|
||||
продукта передаётся конфигом, а не зашито в правило.
|
||||
- Содержимое `<style>` и `<script>` пропускается: там код, а не копирайт.
|
||||
- Тесты: `__tests__/no-hardcoded-user-text.test.ts` — `RuleTester` на
|
||||
svelte-eslint-parser плюс прямые кейсы `hasUserWords`.
|
||||
|
||||
## Токены-префиксы (целевой словарь дизайна)
|
||||
|
||||
- Цвета: `--color-*`, бренд `--brand-main` / `--brand-alt` — единственные две
|
||||
|
||||
Reference in New Issue
Block a user