Agent skill

Roo Translation

by zgsm-ai in zgsm-ai/costrict

Provides comprehensive guidelines for translating and localizing CoStrict extension strings.

Apache-2.0Auto-check passedWriting & Content

Install Roo Translation

skills CLI
$ npx skills add zgsm-ai/costrict --skill roo-translation -a claude-code

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

GitHub CLI
$ gh skill install zgsm-ai/costrict roo-translation --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/zgsm-ai/costrict.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.roo/skills/roo-translation .claude/skills/roo-translation && 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
roo-translation
GitHub stars
4.5k
Token cost
~1.8k tokens
SKILL.md length
856 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

Provides comprehensive guidelines for translating and localizing CoStrict extension strings.

  • Works in 5 steps: First add or modify English strings,… → Use this process for each localization… → Flag or comment if an English source… → …
  • Tasks involve i18n
  • SKILL.md covers When to Use This Skill, When NOT to Use This Skill, Supported Languages and… and Brand Voice, Tone, and Word…, plus 8 more sections
  • Calls node

What it does

Roo Translation is an agent skill from zgsm-ai/costrict. Provides comprehensive guidelines for translating and localizing CoStrict extension strings. Use when tasks involve i18n, translation, localization, adding new languages, or updating existing translation files. This skill covers both core extension (src/i18n/locales/) and WebView UI (webview-ui/src/i18n/locales/) localization.

Its SKILL.md is about 1.8k 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 Writing & Content, covering Translation and Internationalization. It works with Visual Studio Code, DeepSeek, Google Gemini and MiniMax. The repository describes itself as: Costrict - strict AI coder for enterprises, quality first, including AI Agent, AI CodeReview, AI Completion. The licence is Apache-2.0.

When your agent uses it

  • Tasks involve i18n
  • Adding new languages
  • Updating existing translation files

Example prompts

  • “Use the roo-translation skill to provide comprehensive guidelines for translating and localizing CoStrict extension strings”
  • “/roo-translation”

Workflow steps

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

  1. First add or modify English strings, then ask for confirmation before translating to all other languages
  2. Use this process for each localization task
  3. Flag or comment if an English source string is incomplete ("please see this...") to avoid truncated or unclear translations
  4. For UI elements, distinguish between
  5. Preserve the original perspective: If text is a user command directed at the software, ensure the translation maintains this direction

What it can do on your machine

Read from SKILL.md and the folder at commit dd38f54. 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:

    • node

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

  • Network

    No URLs in SKILL.md.

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Roo Translation loads about 1.8k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 856 words of instructions outside code blocks.

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

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 zgsm-ai/costrict at commit dd38f54, republished under its Apache-2.0 licence (© zgsm-ai). 856 words, ~1,824 tokens.

Download SKILL.mdSave it as .claude/skills/roo-translation/SKILL.md (or your agent's skills folder).
name
roo-translation
description
Provides comprehensive guidelines for translating and localizing CoStrict extension strings. Use when tasks involve i18n, translation, localization, adding new languages, or updating existing translation files. This skill covers both core extension (src/i18n/locales/) and WebView UI (webview-ui/src/i18n/locales/) localization.

CoStrict Translation Skill

When to Use This Skill

Use this skill when the task involves:

  • Adding new translatable strings to the CoStrict extension
  • Translating existing strings to new languages
  • Updating or fixing translations in existing language files
  • Understanding i18n patterns used in the codebase
  • Working with localization files in either core extension or WebView UI

When NOT to Use This Skill

Do NOT use this skill when:

  • Working on non-translation code changes
  • The task doesn't involve i18n or localization
  • You're only reading translation files for reference without modifying them

Supported Languages and Locations

Localize all strings into the following locale files: ca, de, en, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW

The VSCode extension has two main areas that require localization:

ComponentPathPurpose
Core Extensionsrc/i18n/locales/Extension backend strings
WebView UIwebview-ui/src/i18n/locales/User interface strings

Brand Voice, Tone, and Word Choice

For detailed brand voice, tone, and word choice guidance, refer to the guidance file:

This guidance file is loaded at runtime and should be consulted for the latest brand and style standards.

Voice, Style and Tone Guidelines

  • Always use informal speech (e.g., "du" instead of "Sie" in German) for all translations
  • Maintain a direct and concise style that mirrors the tone of the original text
  • Carefully account for colloquialisms and idiomatic expressions in both source and target languages
  • Aim for culturally relevant and meaningful translations rather than literal translations
  • Preserve the personality and voice of the original content
  • Use natural-sounding language that feels native to speakers of the target language
Terms to Keep in English
  • Don't translate the word "token" as it means something specific in English that all languages will understand
  • Don't translate domain-specific words (especially technical terms like "Prompt") that are commonly used in English in the target language

Core Extension Localization (src/)

  • Located in src/i18n/locales/
  • NOT ALL strings in core source need internationalization - only user-facing messages
  • Internal error messages, debugging logs, and developer-facing messages should remain in English
  • The t() function is used with namespaces like 'core:errors.missingToolParameter'
  • Be careful when modifying interpolation variables; they must remain consistent across all translations
  • Some strings in formatResponse.ts are intentionally not internationalized since they're internal
  • When updating strings in core.json, maintain all existing interpolation variables
  • Check string usages in the codebase before making changes to ensure you're not breaking functionality

WebView UI Localization (webview-ui/src/)

  • Located in webview-ui/src/i18n/locales/
  • Uses standard React i18next patterns with the useTranslation hook
  • All user interface strings should be internationalized
  • Always use the Trans component with named components for text with embedded components
Trans Component Example

Translation string:

json
"changeSettings": "You can always change this at the bottom of the <settingsLink>settings</settingsLink>"

React component usage:

tsx
<Trans
	i18nKey="welcome:telemetry.changeSettings"
	components={{
		settingsLink: <VSCodeLink href="#" onClick={handleOpenSettings} />,
	}}
/>

Technical Implementation

  • Use namespaces to organize translations logically
  • Handle pluralization using i18next's built-in capabilities
  • Implement proper interpolation for variables using {{variable}} syntax
  • Don't include defaultValue. The en translations are the fallback
  • Always use apply_diff instead of write_to_file when editing existing translation files (much faster and more reliable)
  • When using apply_diff, carefully identify the exact JSON structure to edit to avoid syntax errors
  • Placeholders (like {{variable}}) must remain exactly identical to the English source to maintain code integration and prevent syntax errors
Show full SKILL.md (341 more words)Show less

Translation Workflow

  1. First add or modify English strings, then ask for confirmation before translating to all other languages

  2. Use this process for each localization task:

    1. Identify where the string appears in the UI/codebase
    2. Understand the context and purpose of the string
    3. Update English translation first
    4. Use the search_files tool to find JSON keys that are near new keys in English translations but do not yet exist in the other language files for apply_diff SEARCH context
    5. Create appropriate translations for all other supported languages utilizing the search_files result using apply_diff without reading every file
    6. Do not output the translated text into the chat, just modify the files
    7. Validate your changes with the missing translations script
  3. Flag or comment if an English source string is incomplete ("please see this...") to avoid truncated or unclear translations

  4. For UI elements, distinguish between:

    • Button labels: Use short imperative commands ("Save", "Cancel")
    • Tooltip text: Can be slightly more descriptive
  5. Preserve the original perspective: If text is a user command directed at the software, ensure the translation maintains this direction

Validation

Always validate your translation work by running the missing translations script:

bash
node scripts/find-missing-translations.js

Address any missing translations identified by the script to ensure complete coverage across all locales.

Common Pitfalls to Avoid

  • Switching between formal and informal addressing styles - always stay informal ("du" not "Sie")
  • Translating or altering technical terms and brand names that should remain in English
  • Modifying or removing placeholders like {{variable}} - these must remain identical
  • Translating domain-specific terms that are commonly used in English in the target language
  • Changing the meaning or nuance of instructions or error messages
  • Forgetting to maintain consistent terminology throughout the translation

Translator's Checklist

  • ✓ Used informal tone consistently ("du" not "Sie")
  • ✓ Preserved all placeholders exactly as in the English source
  • ✓ Maintained consistent terminology with existing translations
  • ✓ Kept technical terms and brand names unchanged where appropriate
  • ✓ Preserved the original perspective (user→system vs system→user)
  • ✓ Adapted the text appropriately for UI context (buttons vs tooltips)
  • ✓ Ran the missing translations script to validate completeness

© zgsm-ai, Apache-2.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 .roo/skills/roo-translation of zgsm-ai/costrict.

Open the folder on GitHubat commit dd38f54

Compare with similar skills

Roo Translation 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.

Roo Translation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Roo Translation this skillzgsm-ai/costrict4.5k—~1.8kAutomated safety check: PassApache-2.0
Jtackanner/jta133—~2.4kAutomated safety check: NotesMIT
Add LocaleSwttch/swttch211—~1.3kAutomated safety check: PassAGPL-3.0
Translation Diff ExportDevolutions/UniGetUI26k—~1.1kAutomated safety check: PassMIT
Translation Diff TranslateDevolutions/UniGetUI26k—~934Automated safety check: PassMIT
Plane UI Translationmakeplane/plane61k—~16kAutomated safety check: PassAGPL-3.0

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
  • Add Locale

    Swttch/swttch

    Add a new UI language/locale to the claude-code-gui webview i18n system, or extend/verify an existing one.

    211 GitHub stars~1.3k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Translation Diff Export

    Devolutions/UniGetUI

    Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.

    26k GitHub stars~1.1k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Translation Diff Translate

    Devolutions/UniGetUI

    Translates a sparse UniGetUI JSON language patch, writes completed entries into the working copy, preserves placeholders and terminology, and prepares the patch for merge-back.

    26k GitHub stars~934 tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Plane UI Translation

    makeplane/plane

    Sets the rules for translating and updating Plane's UI strings across locales: do-not-translate terms, plural forms, placeholders and AI translation review.

    61k GitHub stars~16k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed
  • Translate

    tagspaces/tagspaces

    Translate new or untranslated i18n strings from the English locale files (core.json + peri.json) into all other locales, maintaining consistency with each language's existing translations.

    5.3k GitHub stars~2.2k tokensUpdated today
    Writing & ContentAuto-check passed

More from zgsm-ai/costrict

  • Evals Context

    zgsm-ai/costrict

    Provides context about the CoStrict evals system structure in this monorepo.

    4.5k GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Roo Conflict Resolution

    zgsm-ai/costrict

    Provides comprehensive guidelines for resolving merge conflicts intelligently using git history and commit context.

    4.5k GitHub stars~2.3k tokensUpdated 11 days ago
    Auto-check passed

Questions about Roo Translation

What does Roo Translation do?

Provides comprehensive guidelines for translating and localizing CoStrict extension strings. Roo Translation is an agent skill from zgsm-ai/costrict. Provides comprehensive guidelines for translating and localizing CoStrict extension strings.

When should I use Roo Translation?

Roo Translation fits situations like: tasks involve i18n; adding new languages; updating existing translation files.

How do I install Roo Translation in Claude Code?

Run `npx skills add zgsm-ai/costrict --skill roo-translation -a claude-code`. Or copy the skill folder (.roo/skills/roo-translation in zgsm-ai/costrict) into .claude/skills/roo-translation in your project. Claude Code loads it when a task matches its description.

How do I install Roo Translation in Codex?

Run `npx skills add zgsm-ai/costrict --skill roo-translation -a codex`. Or copy the skill folder (.roo/skills/roo-translation in zgsm-ai/costrict) into .agents/skills/roo-translation in your project. Codex loads it when a task matches its description.

Can I use Roo Translation 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 zgsm-ai/costrict --skill roo-translation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/roo-translation, .gemini/skills/roo-translation, .github/skills/roo-translation and .opencode/skills/roo-translation in your project.

What does Roo Translation need to run?

Going by SKILL.md and its folder, Roo Translation needs the command-line tools its instructions call (node).

Does Roo Translation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Roo Translation 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 Roo Translation use?

Roo Translation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Roo Translation use?

About 1.8k tokens (SKILL.md is roughly 7.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 Roo Translation?

Skills that share tags, products or a category with Roo Translation: Jta (ckanner/jta, 133 stars), Add Locale (Swttch/swttch, 211 stars), Translation Diff Export (Devolutions/UniGetUI, 26k stars) and Translation Diff Translate (Devolutions/UniGetUI, 26k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Roo Translation?

zgsm-ai (a GitHub organization) maintains it in zgsm-ai/costrict, which has 4,450 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 30, 2026.

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