Chatbox i18n Translator
chatboxai/chatbox
Translates new or changed i18n keys from a Chatbox Pro diff, staged changes or a commit range, writing the locale JSON files directly with a built-in glossary.
Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.
$ npx skills add letehaha/moneymatter --skill i18n-before-release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install letehaha/moneymatter i18n-before-release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/i18n-before-release .claude/skills/i18n-before-release && rm -rf skills-srcUse ~/.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/
Install the "i18n-before-release" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/i18n-before-release into .claude/skills/i18n-before-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "i18n-before-release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/i18n-before-releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add letehaha/moneymatter --skill i18n-before-release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install letehaha/moneymatter i18n-before-release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/i18n-before-release .agents/skills/i18n-before-release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "i18n-before-release" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/i18n-before-release into .agents/skills/i18n-before-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "i18n-before-release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letehaha/moneymatter --skill i18n-before-release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install letehaha/moneymatter i18n-before-release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/i18n-before-release .cursor/skills/i18n-before-release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "i18n-before-release" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/i18n-before-release into .cursor/skills/i18n-before-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "i18n-before-release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/letehaha/moneymatter.git --path .claude/skills/i18n-before-release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add letehaha/moneymatter --skill i18n-before-release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install letehaha/moneymatter i18n-before-release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/i18n-before-release .gemini/skills/i18n-before-release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "i18n-before-release" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/i18n-before-release into .gemini/skills/i18n-before-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "i18n-before-release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install letehaha/moneymatter i18n-before-releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add letehaha/moneymatter --skill i18n-before-release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/i18n-before-release .github/skills/i18n-before-release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "i18n-before-release" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/i18n-before-release into .github/skills/i18n-before-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "i18n-before-release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letehaha/moneymatter --skill i18n-before-release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install letehaha/moneymatter i18n-before-release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/i18n-before-release .opencode/skills/i18n-before-release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "i18n-before-release" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/i18n-before-release into .opencode/skills/i18n-before-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "i18n-before-release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
i18n-before-releaseOccasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.
I18n Before Release is an agent skill from letehaha/moneymatter. Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents. Not a required release step – uk is translated alongside en during feature work, so this is a safety net. Trigger on "/i18n-before-release", "actualize i18n", "fill missing translations", "strip unused translation keys".
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in Frontend & Design, covering Internationalization and Translation. The repository describes itself as: Open-source, self-hosted budget tracker and personal finance app. Bank sync, multi-currency, investments, and a built-in MCP server for Claude and ChatGPT. The licence is AGPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3bcd627. It shows what the files ask for, not the result of running them.
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.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodegitnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
I18n Before Release loads about 1.1k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 537 words of instructions outside code blocks.
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.
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.
The full file from letehaha/moneymatter at commit 3bcd627, republished under its AGPL-3.0 licence (© letehaha). 537 words, ~1,139 tokens.
.claude/skills/i18n-before-release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Occasional i18n catch-up (a safety net, not a required release step – uk is translated alongside en during feature work): strip unused en keys, then fill any missing translations in the in-house translated locales. All key detection is done by .claude/skills/i18n-before-release/i18n-audit.mjs (run from repo root) — never parse or diff locale JSON files yourself, and never read locale files directly (a hook blocks them; only the i18n-editor subagent may touch them).
node .claude/skills/i18n-before-release/i18n-audit.mjs unusedThe report has two buckets:
packages/{frontend,backend}/src. Candidates for removal.'prefix.' + concatenation). Treat these as used; do NOT review or strip them. Only mention the count.Sanity-check the UNUSED bucket: pick ~5 keys from it and grep the codebase for each (search the full dotted path and the leaf segment). If any spot-check finds a real usage the script missed, STOP and report the gap to the user instead of stripping.
Show the user the UNUSED count and a compact list (key ids only), then ask via AskUserQuestion whether to strip all of them, skip stripping, or let them pick exclusions. On approval:
# write approved ids (fe:/be: prefixed, one per line) to a scratchpad file, then:
node .claude/skills/i18n-before-release/i18n-audit.mjs strip --keys-file <scratchpad-file>
node .claude/skills/i18n-before-release/i18n-audit.mjs prune-extrastrip removes the keys from en and mirrors the removal into every other locale. prune-extra then drops any non-en keys/files that have no en counterpart.
node .claude/skills/i18n-before-release/i18n-audit.mjs missingmissing only ever reports the locales in the script's TRANSLATED_LOCALES set (uk).
Every other locale — es, id, both Chinese variants, anything added later — is community-translated
in Crowdin and is deliberately not our work. Never widen the pass to a locale the script omits,
and never hand a subagent a locale code it didn't report.
If nothing is missing, skip to step 5.
Spawn one i18n-editor subagent per locale reported in step 3, in parallel (they edit disjoint file trees). Prompt for each:
This is an explicit pre-release bulk-translate pass into locale
<code>— editing non-en locale files IS the assignment; treat en as read-only source. Runnode .claude/skills/i18n-before-release/i18n-audit.mjs missing --json --locale <code>from the repo root to get your full work list: every missing key with its target file (frontend chunk path relative topackages/frontend/src/i18n/locales/chunks/<code>/, orpackages/backend/src/i18n/locales/<code>.jsonfor backend) and the en source value. Translate each value into<code>and insert it at the same key path, preserving{named}interpolation placeholders,@:linked-message references, and vue-i18n|plural separators verbatim in structure. Read files withcat -n(Read tool is hook-blocked), edit with Edit, validate JSON after. Report a per-file count of added keys.
Translation quality notes: match the tone of existing translations in the same file; domain terms (account, transaction, portfolio, holding) should reuse the wording already established in that locale.
node .claude/skills/i18n-before-release/i18n-audit.mjs missingMust print "All locales are complete". If keys remain, re-spawn the affected locale's subagent once with the remaining list; if it still fails, report which keys are stuck instead of retrying further. (This run also re-parses every locale file, so it doubles as JSON validation.)
Report: keys stripped, keys pruned, keys translated per locale. Remind the user to review git diff, commit themselves (never commit for them), and run npm run i18n:crowdin:upload to sync translations to Crowdin.
© letehaha, 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
SKILL.md and 1 other file in .claude/skills/i18n-before-release of letehaha/moneymatter.
Open the folder on GitHubat commit 3bcd627
I18n Before Release 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| I18n Before Release this skillletehaha/moneymatter | 163 | — | ~1.1k | Automated safety check: Pass | AGPL-3.0 | |
| Chatbox i18n Translatorchatboxai/chatbox | 42k | — | ~508 | Automated safety check: Pass | GPL-3.0 | |
| Internationalization Workflow with i18niOfficeAI/AionUi | 33k | 1 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Enforce Rules For I18nmoeru-ai/airi | 50k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn | 7.5k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Translation ReviewDevolutions/UniGetUI | 26k | — | ~1.3k | Automated safety check: Pass | MIT |
chatboxai/chatbox
Translates new or changed i18n keys from a Chatbox Pro diff, staged changes or a commit range, writing the locale JSON files directly with a built-in glossary.
iOfficeAI/AionUi
Standards for keeping all user-facing text translatable: read the i18n config first, use namespaced keys, reuse shared strings and follow the key naming rules.
moeru-ai/airi
Review pending AIRI translations on Crowdin in a batch, then sync them into the repository.
javaht/claude-desktop-zh-cn
Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.
Devolutions/UniGetUI
Reviews UniGetUI .json language files for localization quality, detects parity issues, English-equal entries, wrong-script content, and cross-language outliers, then generates a dataset for…
langflow-ai/langflow
Add, change, or review user-facing text in the Langflow frontend using the i18n system (i18next / react-i18next).
letehaha/moneymatter
Deep-dive specification planner. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Add a new tool to the MoneyMatter MCP server. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Hunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns.
letehaha/moneymatter
Frontend conventions and component usage rules. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Creates backend e2e tests for new or existing endpoints. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Smart PRD generator. An agent skill from letehaha/moneymatter.
Categories
Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents. I18n Before Release is an agent skill from letehaha/moneymatter. Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.
I18n Before Release fits situations like: /i18n-before-release; fill missing translations; strip unused translation keys.
Run `npx skills add letehaha/moneymatter --skill i18n-before-release -a claude-code`. Or copy the skill folder (.claude/skills/i18n-before-release in letehaha/moneymatter) into .claude/skills/i18n-before-release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add letehaha/moneymatter --skill i18n-before-release -a codex`. Or copy the skill folder (.claude/skills/i18n-before-release in letehaha/moneymatter) into .agents/skills/i18n-before-release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letehaha/moneymatter --skill i18n-before-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/i18n-before-release, .gemini/skills/i18n-before-release, .github/skills/i18n-before-release and .opencode/skills/i18n-before-release in your project.
Going by SKILL.md and its folder, I18n Before Release needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, git and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
I18n Before Release 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.
About 1.1k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with I18n Before Release: Chatbox i18n Translator (chatboxai/chatbox, 42k stars), Internationalization Workflow with i18n (iOfficeAI/AionUi, 33k stars), Enforce Rules For I18n (moeru-ai/airi, 50k stars) and Claude Desktop Chinese Localization (javaht/claude-desktop-zh-cn, 7.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
letehaha (a GitHub user) maintains it in letehaha/moneymatter, which has 163 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.
Source: letehaha/moneymatter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.