Rabby I18n Translation
Documentsrabby-i18n-translationRabby I18n Translation is an Agent Skill for documents published in the RabbyHub/Rabby repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
When updating `_raw/locales` translation files in the Rabby repository, backfill only non-skipped English leaf keys that are missing or empty in other locales, preserve placeholders, and respect `__skip_translation` markers.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/RabbyHub/Rabby/blob/HEAD/skills/rabby-i18n-translation/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/rabby-i18n-translation, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
Rabby I18n Translation
Use this playbook when editing locale JSON files under:
_raw/locales/*/messages.json
When adding or removing a supported language, also update:
_raw/locales/index.json
The browser extension manifest locale files under _raw/_locales/*/messages.json use Chrome message/description objects. Edit them only when the task explicitly targets extension manifest metadata, and preserve that object shape.
Scope
Backfill only leaf string keys where English has a non-empty value and the target locale either:
- does not have the key
- has the key with an empty string value
Do not rewrite existing non-empty translations during a missing-key backfill.
Skip Rules
Always evaluate __skip_translation before deciding what is missing.
-
__skip_translation: trueThe entire object is excluded from translation. Do not add, translate, or count any descendant leaf key in that object.
-
__skip_translation: ["keyA", "keyB"]The listed direct child keys are excluded from translation. Do not add, translate, or count those keys, including their descendants if a listed key is an object.
-
The
__skip_translationmarker itself is metadata.Do not translate it, copy it into other locale files, or count it as a missing user-facing key.
Quality Rules
- Preserve interpolation placeholders exactly, such as
{{market}},{{count}}, and numbered placeholders. - Preserve React-i18next tags exactly, such as
<1>...</1>and named tags such as<bold>...</bold>. - Keep product names and protocol terms stable unless the locale already has a consistent localized form.
- Keep common crypto abbreviations such as
APY,TVL,LTV,DeFi,DEX,NFT,RWA,TP,SL, andLIQuntranslated when they are intentionally marked as skipped or used as industry labels. - Match the surrounding locale's tone and terminology before adding new translations.
Validation
After edits:
- Parse every
_raw/locales/*/messages.jsonfile withJSON.parse. - Compare every non-skipped English leaf string against each target locale and verify no non-skipped key is missing or empty.
- Verify placeholder sets match between English and every translated value.
- Run
git diff --check.
For locale-only JSON changes, the full app typecheck and Jest suite can be skipped if no TypeScript or import graph changed; state that explicitly in the handoff.