@myeasyfarm/eslint-plugin-tolgee
v0.2.3
Published
ESLint rules for Tolgee i18n — enforce translation keys and string-argument t() calls.
Readme
@myeasyfarm/eslint-plugin-tolgee
ESLint rules for Tolgee i18n. Catches missing or dynamic translation keys and standardises t() call shape across a codebase.
Install
npm install --save-dev @myeasyfarm/eslint-plugin-tolgee eslintRequires:
- Node
>=20 - ESLint
>=9(flat config) - For TypeScript / JSX sources:
@typescript-eslint/parser(consumer-provided)
Usage (flat config)
// eslint.config.mjs
import tolgee from '@myeasyfarm/eslint-plugin-tolgee'
import tsParser from '@typescript-eslint/parser'
export default [
{
files: ['**/*.{ts,tsx}'],
languageOptions: {
parser: tsParser,
parserOptions: {
ecmaFeatures: { jsx: true },
},
},
plugins: {
tolgee,
},
rules: {
'tolgee/require-key': 'error',
'tolgee/prefer-string-arguments': 'error',
'tolgee/no-dynamic-key': 'error',
'tolgee/enforce-placeholders': 'error',
'tolgee/no-unused-placeholder-params': 'error',
'tolgee/no-tag-interpolation-in-t-call': 'error',
'tolgee/no-self-closing-tags': 'error',
},
},
]Or use the bundled preset:
import tolgee from '@myeasyfarm/eslint-plugin-tolgee'
export default [tolgee.configs.recommended]Rules
| Rule | Description | Autofix |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | :-----: |
| tolgee/require-key | Enforces a non-empty hash-derived key on t(), tolgee.t(), and <T>. | ✅ |
| tolgee/prefer-string-arguments | Rewrites t({ key, defaultValue }) to t(key, defaultValue). | ✅ |
| tolgee/no-dynamic-key | Requires the translation key to be a string literal at the call site. | ❌ |
| tolgee/enforce-placeholders | Requires every ICU placeholder in defaultValue to have a matching key in the params object. | ❌ |
| tolgee/no-unused-placeholder-params | Reports params keys that are not referenced as ICU placeholders in defaultValue. | ❌ |
| tolgee/no-tag-interpolation-in-t-call | Disallows JSX values in the params of t() / tolgee.t(); tag interpolation works only on <T>. | ❌ |
| tolgee/no-self-closing-tags | Disallows <name/> inside translation defaults — Tolgee does not parse self-closing tags. Autofixes to <name></name>. | ✅ |
Configs
| Config | Contents |
| ------------- | --------------------------- |
| recommended | All seven rules at error. |
Contributing
npm install
npm test
npm run buildLicense
MIT — see LICENSE.
