Install
openclaw skills install i18ncheckInternationalization & localization readiness scanner -- detects hardcoded strings, missing translations, locale-sensitive formatting, RTL issues, string concatenation in translations, and i18n anti-patterns across all languages
openclaw skills install i18ncheckI18nCheck 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.
i18ncheck scan [file|directory]One-shot i18n scan of files or directories.
How to execute:
bash "<SKILL_DIR>/scripts/i18ncheck.sh" scan [target]
What it does:
Example usage scenarios:
i18ncheck scan .i18ncheck scan src/components/Header.tsxi18ncheck scan src/i18ncheck scan .i18ncheck scan .i18ncheck hookInstall git pre-commit hooks that scan staged files for i18n issues before every commit.
How to execute:
bash "<SKILL_DIR>/scripts/i18ncheck.sh" hook install
What it does:
i18ncheck report [directory]Generate a markdown i18n readiness report with findings, severity breakdown, and remediation steps.
How to execute:
bash "<SKILL_DIR>/scripts/i18ncheck.sh" report [directory]
What it does:
i18ncheck watch [directory]Continuous monitoring mode that watches for file changes and scans in real-time.
How to execute:
bash "<SKILL_DIR>/scripts/i18ncheck.sh" watch [directory]
What it does:
i18ncheck ci [directory]CI/CD integration mode with strict exit codes and machine-parseable output.
How to execute:
bash "<SKILL_DIR>/scripts/i18ncheck.sh" ci [directory]
What it does:
i18ncheck team-report [directory]Generate aggregate team i18n metrics and trend reports.
How to execute:
bash "<SKILL_DIR>/scripts/i18ncheck.sh" team-report [directory]
What it does:
i18ncheck baseline [directory]Establish a baseline of known i18n issues for incremental improvement tracking.
How to execute:
bash "<SKILL_DIR>/scripts/i18ncheck.sh" baseline [directory]
What it does:
i18ncheck statusShow license and configuration information.
bash "<SKILL_DIR>/scripts/i18ncheck.sh" status
I18nCheck detects 90+ i18n patterns across 6 categories:
| Category | Examples | Severity |
|---|---|---|
| Hardcoded Strings (HS) | JSX/TSX hardcoded text, alert()/confirm() strings, hardcoded placeholder/label/button text, template literal UI text | Critical/High |
| Translation Keys (TK) | Missing t()/i18n() calls, untranslated aria-label, missing translation JSON keys, orphaned/duplicate keys, inconsistent key naming | High/Medium |
| Date & Number Formatting (DF) | toLocaleDateString() without locale, hardcoded MM/DD/YYYY, manual number formatting, hardcoded currency symbols, timezone-naive Date ops | High/Medium |
| 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 |
| String Concatenation (SC) | Concatenated translated messages, template literal interpolation in translations, printf without i18n, word order assumptions, if/else plurals | High/Medium |
| Encoding & Locale (EN) | Non-UTF-8 charset, locale-dependent toLowerCase, ASCII-only regex for intl text, hardcoded locale IDs, missing Unicode normalization | Medium/Low |
Users can configure I18nCheck in ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"i18ncheck": {
"enabled": true,
"apiKey": "YOUR_LICENSE_KEY_HERE",
"config": {
"severityThreshold": "high",
"ignorePatterns": ["**/test/**", "**/fixtures/**", "**/*.test.*"],
"ignoreChecks": [],
"allowlistFile": ".i18ncheck-allowlist",
"reportFormat": "markdown"
}
}
}
}
}
hook install, prompt to install itThe user might say things like: