Agent skill · software engineering · lobehub
i18n
Use for user-facing strings and react-i18next locale keys, namespaces, interpolation, translations or bun run i18n.
Why this skill is useful
Provides specific patterns and conventions for internationalization in react-i18next that the AI wouldn't reliably generate on its own.
What it needs
About 2k tokens when loaded. Last updated 2026-08-07. 81,352 stars on the source repository.
What this skill does
LobeHub Internationalization Guide Default language: English (en-US) Framework: react-i18next Only edit files in packages/locales/src/default/ - Never hand-write translations in locales/ JSON (except en-US/zh-CN previews); generated locales change only through lobe-i18n, plus the key deletions described in Changing an existing key's English text Leave generated locales to the daily auto-i18n.yml workflow by default; run bun run i18n manually only when they are needed immediately Key Naming Convention Flat keys with dot notation (not nested objects): Patterns: {feature}.{context}.{action status} Parameters: Use {{variableName}} syntax Avoid key conflicts: Workflow 1. Add keys to packages/locales/src/default/{namespace}.ts 2. Export new namespace in packages/locales/src/default/index.ts 3. For dev preview: manually translate locales/zh-CN/{namespace}.json and locales/en-US/{namespace}.json 4. Leave all other locales to .github/workflows/auto-i18n.yml, which runs daily and opens an automated translation PR 5. Run bun run i18n manually only when the branch needs those translations immediately; it is slow and requires OPENAIAPIKEY Changing an existing key's English text lobe-i18n (both the daily workflow and bun run i18n) only translates keys that are missing from a locale. It never re-translates a key whose English value changed, so editing an existing value leaves every generated locale on the old text indefinitely (e.g. expanded settingsSearch.tabKeywords. stayed stale in 16 locales for weeks). When a change alters an existing key's meaning or content (not just a typo), do one of: Rename the key, so it is missing everywhere and gets translated fresh. Re-translate it in the same PR: delete the key from every generated locales//{namespace}.json (all except en-US/zh-CN), run bun run i18n, and commit only those keys — the run also fills unrelated missing keys, which belong to the daily workflow PR. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills lobehub/i18n--845801