Desktop i18n
SkillDev toolsLets your agent add and review translations, locale files, and language settings for a desktop app.
Use Desktop i18n in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Desktop i18n and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Desktop i18n skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Implement and review Cursor BYOK desktop localization, including t() usage, locale catalogs, system-language selection, translation completeness, and language settings under apps/desktop.
What this skill tells your AI
The instructions your AI receives, as published by leookun/cursor-byok in .agents/skills/i18n/SKILL.md and read by ahel’s review.
Keep localization organized as:
apps/desktop/
├── plugins/static-i18n-plugin.ts
└── src/i18n/
├── I18nRoot.tsx
├── runtime.ts
├── store.ts
├── generated/catalog.json
└── locales/
├── zh-CN.json
└── en-US.json
Author messages
- Use the global
t()function with a static Simplified Chinese string literal:t("保存"). - Do not import or locally declare
t. - Keep calls inside render paths when the result must update after a language change. Do not translate module-level UI constants.
- Use named placeholders with a static object:
t("第 {page} 页", { page }). - Preserve every placeholder name exactly in all translations.
- Wrap all user-visible labels, descriptions, tooltips, empty states, validation messages, and accessibility labels. Do not wrap protocol tokens, model IDs, URLs, or product names that should remain unchanged.
Locale behavior
systemis the default preference.- Resolve supported operating-system languages to their locale and fall back to
en-USfor every unsupported language. - Persist only explicit locale selections. Removing the preference restores system-language behavior.
- Apply changes immediately and update the document
langattribute.
Update catalogs
From apps/desktop:
- Run
npm run i18n:scanafter adding or changingt()sources. - Translate every empty entry in
src/i18n/locales/en-US.json. - Never edit
src/i18n/generated/catalog.jsonorzh-CN.jsonmanually; scanning owns them. - Run
npm run check. A normal build must fail on a missing translation or mismatched placeholder.
When adding another locale, add it to the plugin's supported locales, runtime locale type and messages, locale resolver, settings options, and provide a complete locale JSON file.
Signals
- GitHub stars
- 3k
- Forks
- 494
- Last commit
- Sep 2026
- Hacker News mentions
- 5
Advanced
- Item type
- skill
- Key
i18n-leookun- Source
- github.com/leookun/cursor-byok
github.com/leookun/cursor-byok