Agent skill

Locale Tui Localization

by Ayuilos in Ayuilos/Miffan

A skill your agent uses when users request i18n/localization updates for Android string resources: adding localized keys, translating strings.xml, filling missing translations, or moving hardcoded…

AGPL-3.0Auto-check passedFrontend & Design

Install Locale Tui Localization

skills CLI
$ npx skills add Ayuilos/Miffan --skill locale-tui-localization -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Ayuilos/Miffan locale-tui-localization --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Ayuilos/Miffan.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/locale-tui-localization .claude/skills/locale-tui-localization && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
locale-tui-localization
GitHub stars
217
Token cost
~1.1k tokens
SKILL.md length
521 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
AGPL-3.0

At a glance

A skill your agent uses when users request i18n/localization updates for Android string resources: adding localized keys, translating strings.xml, filling missing translations, or moving hardcoded…

  • Works in 5 steps: Collect what needs text: new keys from… → Name keys by page or feature prefix… → Translate. Translation is cheap work;… → …
  • Users request i18n/localization updates for Android string resources: adding localized keys
  • SKILL.md covers When to use, Commands, Workflow and Translation guidelines, plus 1 more section
  • Calls uv; needs OPENAI_API_KEY

What it does

Locale Tui Localization is an agent skill from Ayuilos/Miffan. Use this skill when users request i18n/localization updates for Android string resources: adding localized keys, translating strings.xml, filling missing translations, or moving hardcoded UI text into resources.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Internationalization and Translation. It works with Android, OpenAI and Kotlin. The repository describes itself as: RikkaHub fork,Android AI 客户端。支持 ChatGPT 订阅登录使用、跨应用划词悬浮翻译、助手工作区文件隔离、远程云电脑控制、文档与 HTML 预览、可定制动态角色。 The licence is AGPL-3.0.

When your agent uses it

  • Users request i18n/localization updates for Android string resources: adding localized keys
  • Translating strings.xml
  • Filling missing translations
  • Moving hardcoded UI text into resources

Example prompts

  • “/locale-tui-localization”

Requirements

  • A credential in OPENAI_API_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Collect what needs text: new keys from the task, missing, or hardcoded. Of the
  2. Name keys by page or feature prefix (setting_page_, im_, whale_theme_, …), reusing
  3. Translate. Translation is cheap work; pick the cheapest model that does it well
  4. Apply with --dry-run first, then for real. Replace the literals in code with
  5. Verify: missing reports the module complete, and `./gradlew :app:lintDebug

What it can do on your machine

Read from SKILL.md and the folder at commit 36c7f3e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OPENAI_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Locale Tui Localization loads about 1.1k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 521 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Ayuilos/Miffan at commit 36c7f3e, republished under its AGPL-3.0 licence (© Ayuilos). 521 words, ~1,085 tokens.

Download SKILL.mdSave it as .claude/skills/locale-tui-localization/SKILL.md (or your agent's skills folder).
name
locale-tui-localization
description
Use this skill when users request i18n/localization updates for Android string resources: adding localized keys, translating strings.xml, filling missing translations, or moving hardcoded UI text into resources.

Localization

You write the translations yourself, or delegate them to a model you choose. locale-tui only validates and writes strings.xml; this workflow never calls a translation API and needs no OPENAI_API_KEY.

When to use

  • Adding a user-visible string (all configured languages, unless the user says otherwise).
  • Translating or fixing strings.xml across locales.
  • Finding untranslated text: missing keys, or Chinese literals hardcoded in Kotlin.

Commands

Run from the repository root.

bash
uv run --directory locale-tui src/main.py missing [-m app] [--json]   # missing keys, Chinese English sources
uv run --directory locale-tui src/main.py hardcoded [-m app]          # Chinese string literals in source
uv run --directory locale-tui src/main.py apply strings.json [-m app] [--dry-run]

Modules and languages come from locale-tui/config.yml (currently values, values-zh, values-zh-rTW, values-ja, values-ko-rKR, values-ru; modules app, search, ...).

apply takes {"key": {"values": "English", "values-zh": "…", …}}. New keys need every language; existing keys may update only some. It escapes ' and ", rejects placeholder mismatches (%1$s, %d, …), unknown language codes and Chinese English sources, and writes each file once. Write the JSON under the job's temporary directory, not the repository.

Workflow

  1. Collect what needs text: new keys from the task, missing, or hardcoded. Of the hardcoded hits, move only user-visible text (labels, messages, content descriptions, accessibility labels) into resources. Leave search keywords, provider and brand names, prompts and data meant for models, log messages and debug-only pages in code.
  2. Name keys by page or feature prefix (setting_page_, im_, whale_theme_, …), reusing an existing key when the text and meaning match.
  3. Translate. Translation is cheap work; pick the cheapest model that does it well:
    • Up to about 10 strings: translate them yourself in the same turn; a sub-agent costs more to start than it saves.
    • Larger batches: split them by feature and hand each group to a sub-agent on a small model. Use haiku by default, including character and brand copy, and give it the tone notes from the guidelines below. Move up to sonnet only for a group that haiku already got wrong. Never use the top-tier model (Opus) for translation.
    • An agent without sub-agents translates the batches itself.
    • Sub-agents return JSON only. You merge their results and run apply once, so no two writers touch the same strings.xml.
    • Give whoever translates the glossary below and the surrounding screen, so short labels are translated in context.
  4. Apply with --dry-run first, then for real. Replace the literals in code with stringResource(R.string.…) (Compose) or context.getString(…) outside composition.
  5. Verify: missing reports the module complete, and ./gradlew :app:lintDebug :app:assembleDebug passes. Report the files and keys changed.
Show full SKILL.md (142 more words)Show less

Translation guidelines

  • App context: an AI chat client for many model providers, with an IM-style "Easy chat" mode and companion characters (Miffan the rice bowl, the "Blue Whale" 蓝色大肥鱼).
  • Keep placeholders, \n and escapes exactly. Keep UI text concise; match the source's tone (friendly, plain, no exclamation spam).
  • Do not translate brand or technical names: OpenAI, Anthropic, OpenRouter, MCP, API, Token.
  • Chinese AI terms: prompt → 提示词 (not 提示), context → 上下文, model → 模型, inference → 推理. Easy chat → 轻松聊天 / 輕鬆聊天 / かんたんチャット / 간편 채팅 / Простой чат.
  • Traditional Chinese uses Taiwan vocabulary (資料, 設定, 訊息), not converted Simplified.
  • Language names in pickers are endonyms and stay untranslated (translatable="false").

Constraints

  • English (values) is the source; never leave Chinese as the English text.
  • If the user asks to skip localization, add only values (and values-zh when useful) and say so.
  • Never commit API keys or translation scratch files.

© Ayuilos, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/locale-tui-localization of Ayuilos/Miffan.

Open the folder on GitHubat commit 36c7f3e

Compare with similar skills

Locale Tui Localization next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Locale Tui Localization compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Locale Tui Localization this skillAyuilos/Miffan217—~1.1kAutomated safety check: PassAGPL-3.0
Jtackanner/jta133—~2.4kAutomated safety check: NotesMIT
Fluent MigrationBrowserWorks/waterfox-android3791 repos~4.2kAutomated safety check: PassCustom licence
Dpis LocalizationKwensiu/DPIS111—~1.5kAutomated safety check: PassGPL-3.0
Frontend DevelopmentOpenHands/OpenHands90k—~324Automated safety check: PassMIT
LobeHub Internationalizationlobehub/lobehub83k—~885Automated safety check: PassCustom licence

Similar skills

  • Jta

    ckanner/jta

    Translate JSON i18n files to multiple languages with AI-powered quality optimization.

    133 GitHub stars~2.4k tokensUpdated 11 mo ago
    Frontend & DesignAuto-check: notes
  • Fluent Migration

    BrowserWorks/waterfox-android

    A skill your agent uses when a patch or local changes rename, restructure, move, or replace Fluent (.ftl) strings - or migrate legacy .properties strings to Fluent - and you need a migration recipe…

    379 GitHub starsUsed in 1 repo~4.2k tokens
    Frontend & DesignAuto-check passed
  • Dpis Localization

    Kwensiu/DPIS

    Project-local DPIS localization workflow. An agent skill from Kwensiu/DPIS.

    111 GitHub stars~1.5k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Frontend Development

    OpenHands/OpenHands

    This skill should be used when the user asks to "add UI copy", "add a translation", "optimize the frontend bundle", "change onboarding", "change conversation UI", "add a query key", "change MSW…

    90k GitHub stars~324 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Rules for adding and editing LobeHub's user-facing strings with react-i18next: flat dot-notation keys, the default locale folder, namespaces and when to run bun run i18n.

    83k GitHub stars~885 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Audit I18n

    garfiec/Librechat-Mobile

    Audit localization / i18n coverage across the compose-resources surface (10 modules x 9 locales).

    111 GitHub stars~7.2k tokensUpdated today
    Frontend & DesignAuto-check: notes

More from Ayuilos/Miffan

  • Publish Release

    Ayuilos/Miffan

    Publish a GitHub release for this fork, with a bilingual changelog that separates fork-owned changes from changes introduced by upstream merges.

    217 GitHub stars~680 tokensUpdated yesterday
    Auto-check passed
  • A skill your agent uses when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, streaming responses…

    217 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check passed
  • Gemini API Dev

    Ayuilos/Miffan

    A skill your agent uses when building applications with Gemini API hosted models, including Gemini and Gemma 4, working with multimodal content (text, images, audio, video), implementing function…

    217 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Questions about Locale Tui Localization

What does Locale Tui Localization do?

A skill your agent uses when users request i18n/localization updates for Android string resources: adding localized keys, translating strings.xml, filling missing translations, or moving hardcoded…. Locale Tui Localization is an agent skill from Ayuilos/Miffan.xml, filling missing translations, or moving hardcoded UI text into resources.

When should I use Locale Tui Localization?

Locale Tui Localization fits situations like: users request i18n/localization updates for Android string resources: adding localized keys; translating strings.xml; filling missing translations; moving hardcoded UI text into resources.

How do I install Locale Tui Localization in Claude Code?

Run `npx skills add Ayuilos/Miffan --skill locale-tui-localization -a claude-code`. Or copy the skill folder (.agents/skills/locale-tui-localization in Ayuilos/Miffan) into .claude/skills/locale-tui-localization in your project. Claude Code loads it when a task matches its description.

How do I install Locale Tui Localization in Codex?

Run `npx skills add Ayuilos/Miffan --skill locale-tui-localization -a codex`. Or copy the skill folder (.agents/skills/locale-tui-localization in Ayuilos/Miffan) into .agents/skills/locale-tui-localization in your project. Codex loads it when a task matches its description.

Can I use Locale Tui Localization in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Ayuilos/Miffan --skill locale-tui-localization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/locale-tui-localization, .gemini/skills/locale-tui-localization, .github/skills/locale-tui-localization and .opencode/skills/locale-tui-localization in your project.

What does Locale Tui Localization need to run?

Going by SKILL.md and its folder, Locale Tui Localization needs the command-line tools its instructions call (uv) and credentials named OPENAI_API_KEY. Our summary lists: A credential in OPENAI_API_KEY.

Does Locale Tui Localization access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Locale Tui Localization safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Locale Tui Localization use?

Locale Tui Localization is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Locale Tui Localization use?

About 1.1k tokens (SKILL.md is roughly 4.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Locale Tui Localization?

Skills that share tags, products or a category with Locale Tui Localization: Jta (ckanner/jta, 133 stars), Fluent Migration (BrowserWorks/waterfox-android, 379 stars), Dpis Localization (Kwensiu/DPIS, 111 stars) and Frontend Development (OpenHands/OpenHands, 90k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Locale Tui Localization?

Ayuilos (a GitHub user) maintains it in Ayuilos/Miffan, which has 217 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.

Source: Ayuilos/Miffan on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.