/install i18ncheck
\r \r
I18nCheck -- Internationalization & Localization Readiness Scanner\r
\r I18nCheck scans codebases for internationalization issues: hardcoded UI strings, missing translation keys, locale-sensitive date/number formatting, RTL layout issues, string concatenation for translations, missing lang attributes, non-Unicode encodings, locale-dependent comparisons, missing pluralization, and timezone-naive datetime usage. It uses regex-based pattern matching against 90+ i18n patterns across JS/TS, Python, Java, Go, Ruby, and PHP. 100% local. Zero telemetry.\r \r
Commands\r
\r
Free Tier (No license required)\r
\r
i18ncheck scan [file|directory]\r
One-shot i18n scan of files or directories.\r \r How to execute:\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" scan [target]\r
```\r
\r
**What it does:**\r
1. Accepts a file path or directory (defaults to current directory)\r
2. Discovers all source files (skips .git, node_modules, binaries, images, .min.js)\r
3. Runs 90+ i18n detection patterns against each file\r
4. Respects .gitignore and allowlist files\r
5. Calculates an i18n readiness score (0-100) per file and overall\r
6. Grades: A (90-100), B (80-89), C (70-79), D (60-69), F (\x3C60)\r
7. Outputs findings with: file, line number, check ID, severity, description, recommendation\r
8. Exit code 0 if score >= 70, exit code 1 if too many issues found\r
9. Free tier limited to 5 files per scan\r
\r
**Example usage scenarios:**\r
- "Scan my code for i18n issues" -> runs `i18ncheck scan .`\r
- "Check this file for hardcoded strings" -> runs `i18ncheck scan src/components/Header.tsx`\r
- "Find internationalization problems in my project" -> runs `i18ncheck scan src/`\r
- "Are there any untranslated strings in my app?" -> runs `i18ncheck scan .`\r
- "Check for RTL layout issues" -> runs `i18ncheck scan .`\r
\r
#### `i18ncheck hook`\r
Install git pre-commit hooks that scan staged files for i18n issues before every commit.\r
\r
**How to execute:**\r
```bash\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" hook install\r
```\r
\r
**What it does:**\r
1. Copies lefthook config to project root\r
2. Installs lefthook pre-commit hook\r
3. On every commit: scans all staged files for i18n issues, blocks commit if critical/high findings, shows remediation advice\r
\r
#### `i18ncheck report [directory]`\r
Generate a markdown i18n readiness report with findings, severity breakdown, and remediation steps.\r
\r
**How to execute:**\r
```bash\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" report [directory]\r
```\r
\r
**What it does:**\r
1. Runs full scan of the directory\r
2. Generates a formatted markdown report from template\r
3. Includes per-file breakdowns, i18n readiness scores, remediation priority\r
4. Output suitable for i18n audits and localization planning\r
\r
### Pro Tier ($19/user/month -- requires I18NCHECK_LICENSE_KEY)\r
\r
#### `i18ncheck watch [directory]`\r
Continuous monitoring mode that watches for file changes and scans in real-time.\r
\r
**How to execute:**\r
```bash\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" watch [directory]\r
```\r
\r
**What it does:**\r
1. Validates Pro+ license\r
2. Watches the directory for file changes using filesystem events\r
3. Automatically scans changed files for i18n issues\r
4. Reports new issues as they are introduced\r
5. Runs until interrupted (Ctrl+C)\r
\r
#### `i18ncheck ci [directory]`\r
CI/CD integration mode with strict exit codes and machine-parseable output.\r
\r
**How to execute:**\r
```bash\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" ci [directory]\r
```\r
\r
**What it does:**\r
1. Validates Pro+ license\r
2. Runs full scan with all patterns\r
3. Exit code 0 = clean (score >= 70), exit code 1 = issues found\r
4. Output is formatted for CI log parsing\r
5. Supports severity threshold configuration\r
\r
### Team Tier ($39/user/month -- requires I18NCHECK_LICENSE_KEY with team tier)\r
\r
#### `i18ncheck team-report [directory]`\r
Generate aggregate team i18n metrics and trend reports.\r
\r
**How to execute:**\r
```bash\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" team-report [directory]\r
```\r
\r
**What it does:**\r
1. Validates Team+ license\r
2. Scans directory with all patterns\r
3. Generates team-level metrics: top issues by category, worst files, trends\r
4. Produces a comprehensive markdown report for team leads\r
5. Includes remediation priority matrix\r
\r
#### `i18ncheck baseline [directory]`\r
Establish a baseline of known i18n issues for incremental improvement tracking.\r
\r
**How to execute:**\r
```bash\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" baseline [directory]\r
```\r
\r
**What it does:**\r
1. Validates Team+ license\r
2. Scans directory and records all current findings as baseline\r
3. Saves baseline to .i18ncheck-baseline.json\r
4. Future scans only report NEW issues not in the baseline\r
5. Useful for legacy codebases with known i18n debt\r
\r
#### `i18ncheck status`\r
Show license and configuration information.\r
\r
```bash\r
bash "\x3CSKILL_DIR>/scripts/i18ncheck.sh" status\r
```\r
\r
## Detected Pattern Categories\r
\r
I18nCheck detects 90+ i18n patterns across 6 categories:\r
\r
| Category | Examples | Severity |\r
|----------|----------|----------|\r
| **Hardcoded Strings (HS)** | JSX/TSX hardcoded text, alert()/confirm() strings, hardcoded placeholder/label/button text, template literal UI text | Critical/High |\r
| **Translation Keys (TK)** | Missing t()/i18n() calls, untranslated aria-label, missing translation JSON keys, orphaned/duplicate keys, inconsistent key naming | High/Medium |\r
| **Date & Number Formatting (DF)** | toLocaleDateString() without locale, hardcoded MM/DD/YYYY, manual number formatting, hardcoded currency symbols, timezone-naive Date ops | High/Medium |\r
| **RTL & Layout (RL)** | Missing dir/lang attributes, hardcoded left/right CSS, text-align without RTL, float without logical alternatives, margin-left/right instead of inline | High/Medium |\r
| **String Concatenation (SC)** | Concatenated translated messages, template literal interpolation in translations, printf without i18n, word order assumptions, if/else plurals | High/Medium |\r
| **Encoding & Locale (EN)** | Non-UTF-8 charset, locale-dependent toLowerCase, ASCII-only regex for intl text, hardcoded locale IDs, missing Unicode normalization | Medium/Low |\r
\r
## Configuration\r
\r
Users can configure I18nCheck in `~/.openclaw/openclaw.json`:\r
\r
```json\r
{\r
"skills": {\r
"entries": {\r
"i18ncheck": {\r
"enabled": true,\r
"apiKey": "YOUR_LICENSE_KEY_HERE",\r
"config": {\r
"severityThreshold": "high",\r
"ignorePatterns": ["**/test/**", "**/fixtures/**", "**/*.test.*"],\r
"ignoreChecks": [],\r
"allowlistFile": ".i18ncheck-allowlist",\r
"reportFormat": "markdown"\r
}\r
}\r
}\r
}\r
}\r
```\r
\r
## Important Notes\r
\r
- **Free tier** works immediately with no configuration\r
- **All scanning happens locally** -- no code is sent to external servers\r
- **License validation is offline** -- no phone-home or network calls\r
- Pattern matching only -- no AST parsing, no external dependencies beyond bash\r
- Supports scanning JS/TS, Python, Java, Go, Ruby, and PHP in a single pass\r
- Git hooks use **lefthook** which must be installed (see install metadata above)\r
- Exit codes: 0 = clean (score >= 70), 1 = i18n issues detected (for CI/CD integration)\r
\r
## Error Handling\r
\r
- If lefthook is not installed and user tries `hook install`, prompt to install it\r
- If license key is invalid or expired, show clear message with link to https://i18ncheck.pages.dev/renew\r
- If a file is binary, skip it automatically with no warning\r
- If no scannable files found in target, report clean scan with info message\r
- If .i18ncheck-allowlist is missing, skip allowlist filtering gracefully\r
\r
## When to Use I18nCheck\r
\r
The user might say things like:\r
- "Scan my code for i18n issues"\r
- "Find hardcoded strings in my project"\r
- "Check for internationalization problems"\r
- "Are there untranslated strings in my app?"\r
- "Scan for localization issues"\r
- "Check RTL layout support"\r
- "Find date formatting issues for i18n"\r
- "Detect locale-sensitive code"\r
- "Check if my app is ready for localization"\r
- "Find string concatenation in translations"\r
- "Scan for non-UTF-8 encoding issues"\r
- "Check for missing lang attributes"\r
- "Find timezone-naive datetime usage"\r
- "Run an i18n audit on my codebase"\r
- "Set up pre-commit hooks for i18n checks"\r
- "Generate an i18n readiness report"\r
- "Baseline existing i18n issues in my legacy project"\r
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install i18ncheck - 安装完成后,直接呼叫该 Skill 的名称或使用
/i18ncheck触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
i18ncheck 是什么?
Internationalization & localization readiness scanner -- detects hardcoded strings, missing translations, locale-sensitive formatting, RTL issues, string con... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 94 次。
如何安装 i18ncheck?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install i18ncheck」即可一键安装,无需额外配置。
i18ncheck 是免费的吗?
是的,i18ncheck 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
i18ncheck 支持哪些平台?
i18ncheck 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(darwin, linux, win32)。
谁开发了 i18ncheck?
由 suhteevah(@suhteevah)开发并维护,当前版本 v1.0.2。