Desktop i18n

SkillDev tools

Lets 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.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Desktop i18nStart free
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

  • system is the default preference.
  • Resolve supported operating-system languages to their locale and fall back to en-US for every unsupported language.
  • Persist only explicit locale selections. Removing the preference restores system-language behavior.
  • Apply changes immediately and update the document lang attribute.

Update catalogs

From apps/desktop:

  1. Run npm run i18n:scan after adding or changing t() sources.
  2. Translate every empty entry in src/i18n/locales/en-US.json.
  3. Never edit src/i18n/generated/catalog.json or zh-CN.json manually; scanning owns them.
  4. 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