.agent-os/skills/i18n-localization/SKILL.md
Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.
npx skillsauth add ab-aswini/agent-kit-p1 i18n-localizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Internationalization (i18n) and Localization (L10n) best practices.
| Term | Meaning | | ---------- | ---------------------------------------------- | | i18n | Internationalization - making app translatable | | L10n | Localization - actual translations | | Locale | Language + Region (en-US, tr-TR) | | RTL | Right-to-left languages (Arabic, Hebrew) |
| Project Type | i18n Needed? | | ----------------- | ------------------ | | Public web app | ✅ Yes | | SaaS product | ✅ Yes | | Internal tool | ⚠️ Maybe | | Single-region app | ⚠️ Consider future | | Personal project | ❌ Optional |
import { useTranslation } from "react-i18next";
function Welcome() {
const { t } = useTranslation();
return <h1>{t("welcome.title")}</h1>;
}
import { useTranslations } from "next-intl";
export default function Page() {
const t = useTranslations("Home");
return <h1>{t("title")}</h1>;
}
from gettext import gettext as _
print(_("Welcome to our app"))
locales/
├── en/
│ ├── common.json
│ ├── auth.json
│ └── errors.json
├── tr/
│ ├── common.json
│ ├── auth.json
│ └── errors.json
└── ar/ # RTL
└── ...
| Issue | Solution | | ------------------- | ---------------------------- | | Missing translation | Fallback to default language | | Hardcoded strings | Use linter/checker script | | Date format | Use Intl.DateTimeFormat | | Number format | Use Intl.NumberFormat | | Pluralization | Use ICU message format |
/* CSS Logical Properties */
.container {
margin-inline-start: 1rem; /* Not margin-left */
padding-inline-end: 1rem; /* Not padding-right */
}
[dir="rtl"] .icon {
transform: scaleX(-1);
}
Before shipping:
| Script | Purpose | Command |
| ------------------------- | ----------------------------------------------- | ----------------------------------------------- |
| scripts/i18n_checker.py | Detect hardcoded strings & missing translations | python scripts/i18n_checker.py <project_path> |
development
Web application testing principles. E2E, Playwright, deep audit strategies.
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
testing
Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.
development
# Testing Skill > Loaded by: QA Division agents | Version: 1.0 ## Test Pyramid ``` / E2E \ <- Few, slow, expensive / Integr. \ <- Some, moderate / Unit \ <- Many, fast, cheap ``` ## Unit Test Pattern (Arrange, Act, Assert) ```python def test_user_creation(): # Arrange user_data = {"name": "Alice", "email": "[email protected]"} # Act user = UserService.create(user_data) # Assert assert user.name == "Alice" assert user.id is