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.
Plan and run a multi-language or multi-region site. An agent skill from rampstackco/claude-skills.
$ npx skills add rampstackco/claude-skills --skill internationalization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rampstackco/claude-skills internationalization --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/rampstackco/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/internationalization .claude/skills/internationalization && 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 "internationalization" agent skill from https://github.com/rampstackco/claude-skills/tree/main/skills/internationalization into .claude/skills/internationalization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internationalization", 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/rampstackco/claude-skills/tree/main/skills/internationalizationType 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 rampstackco/claude-skills --skill internationalization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rampstackco/claude-skills internationalization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rampstackco/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/internationalization .agents/skills/internationalization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "internationalization" agent skill from https://github.com/rampstackco/claude-skills/tree/main/skills/internationalization into .agents/skills/internationalization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internationalization", 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 rampstackco/claude-skills --skill internationalization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rampstackco/claude-skills internationalization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rampstackco/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/internationalization .cursor/skills/internationalization && 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 "internationalization" agent skill from https://github.com/rampstackco/claude-skills/tree/main/skills/internationalization into .cursor/skills/internationalization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internationalization", 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/rampstackco/claude-skills.git --path skills/internationalization--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 rampstackco/claude-skills --skill internationalization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rampstackco/claude-skills internationalization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rampstackco/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/internationalization .gemini/skills/internationalization && 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 "internationalization" agent skill from https://github.com/rampstackco/claude-skills/tree/main/skills/internationalization into .gemini/skills/internationalization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internationalization", 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 rampstackco/claude-skills internationalizationInstalls 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 rampstackco/claude-skills --skill internationalization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rampstackco/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/internationalization .github/skills/internationalization && 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 "internationalization" agent skill from https://github.com/rampstackco/claude-skills/tree/main/skills/internationalization into .github/skills/internationalization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internationalization", 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 rampstackco/claude-skills --skill internationalization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rampstackco/claude-skills internationalization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rampstackco/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/internationalization .opencode/skills/internationalization && 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 "internationalization" agent skill from https://github.com/rampstackco/claude-skills/tree/main/skills/internationalization into .opencode/skills/internationalization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "internationalization", 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.
internationalizationPlan and run a multi-language or multi-region site. An agent skill from rampstackco/claude-skills.
Internationalization is an agent skill from rampstackco/claude-skills. Plan and run a multi-language or multi-region site. Use this skill when adding new locales, choosing URL structure for languages (subfolders vs subdomains vs ccTLDs), implementing hreflang, planning translation workflow, handling currency and date formats, designing for RTL languages, or auditing a stalled internationalization rollout. Triggers on internationalization, i18n, localization, l10n, hreflang, multi-language, translation workflow, RTL, locale, ccTLD, subfolder vs subdomain, language switcher. Also…
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `README.md` and `references/locale-checklist.md`).
It sits in Frontend & Design, covering Internationalization and Translation. The repository describes itself as: Stack-agnostic Claude Skills covering the full website lifecycle: brand, design, content, SEO, dev, ops, growth, and research. Build, ship, audit, optimize. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 482c9bf. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are html).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Internationalization loads about 3.1k tokens when it runs, and up to ~5.3k if it reads all its reference files. Until then it costs about 153 tokens; SKILL.md has 1,498 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 rampstackco/claude-skills at commit 482c9bf, republished under its MIT licence (© rampstackco). 1,498 words, ~3,092 tokens.
.claude/skills/internationalization/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Add languages and regions in a way that works for users, search engines, and the team maintaining the content. Stack-agnostic.
domain-strategy)content-strategy)content-and-copy)en-US, de-DE, fr-CA)Internationalization touches everything. Five layers, each with their own decisions.
How locales are reflected in URLs.
| Pattern | Example | When |
|---|---|---|
| ccTLD | example.de, example.fr | Strong country focus, distinct legal entities, willing to maintain separate domains |
| Subdomain | de.example.com, fr.example.com | Logical separation, willing to host separately, common for large sites |
| Subfolder | example.com/de/, example.com/fr/ | SEO equity unified, simplest to manage, default for most |
| URL parameter | example.com?lang=de | Avoid; weak SEO signal |
For most sites: subfolder is the default. Subdomain or ccTLD only when there's a specific reason (legal, infrastructure, or brand).
Within the chosen pattern, decide:
/de/) or language plus region (/de-de/, /de-at/, /de-ch/)?example.com) or in a folder (example.com/en/)?The default-locale-at-apex pattern is common but causes hreflang complexity (the apex needs an x-default and the canonical for the default language).
How content is organized across locales.
Pattern A: Mirror. Every page in every locale. The translation IS the page. Suitable for marketing sites with controlled content.
Pattern B: Subset. Some content in all locales, some only in select locales. Common for product pages (only available products), blog (some posts translated), or regulatory differences.
Pattern C: Local. Each locale has its own content largely independent of other locales. Common for media or community sites.
Most marketing sites are A. Most large sites end up at B by necessity. C is for sites with strong regional editorial.
The pattern affects:
Telling search engines what's translated vs distinct.
hreflang specifies the language and optional region for each version.
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page">
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/page">
<link rel="alternate" hreflang="de-DE" href="https://example.com/de-de/page">
<link rel="alternate" hreflang="x-default" href="https://example.com/en-us/page">Rules:
x-default is the fallback for users in unspecified regionshreflang can be in the HTML head, in HTTP headers, or in the XML sitemap. Sitemap is best for large sites; HTML head is fine for small.
Canonicals:
How content gets translated, kept fresh, and quality-controlled.
Sources of translation:
Workflow stages:
The TMS pays off above ~10K words of total content. Below that, spreadsheets and disciplined naming are fine.
Update propagation is the hardest part. Source content changes. Translations go stale. Without a process, you end up with locales drifting from the source.
Beyond translation, the experience must adapt.
Currency: display in the local currency where applicable. EUR for European locales, JPY for Japanese, etc. Don't show USD to French users for a French-locale page.
Numbers: thousand separators and decimals differ. 1,000.50 in en-US is 1.000,50 in de-DE.
Dates and times: format and order vary. MM/DD/YYYY in en-US, DD/MM/YYYY in en-GB, YYYY-MM-DD (ISO) is universal but unfamiliar to many.
Names and addresses: field order and required components differ. Country-aware address forms.
Phone numbers: E.164 international format universally; display formatting per locale.
Units: metric vs imperial. Most of the world is metric; the US is imperial. Some products serve both.
Right-to-left (RTL) languages: Arabic, Hebrew, Persian, Urdu. Layout flips: navigation moves right, text aligns right, icons that imply direction may flip too. CSS logical properties (margin-inline-start instead of margin-left) make this manageable.
Language switcher: prominent but not intrusive. Show locale names in their own language ("Deutsch" not "German"). Persist the choice. Don't auto-redirect based on browser language without offering a way back.
Cultural sensitivity: colors, imagery, examples, references that don't translate. Avoid hand gestures in product imagery. Avoid country-specific references unless localized.
Don't add languages just because you can. Each locale has ongoing maintenance cost.
Subfolder for most. Document the choice and rationale.
Mirror, subset, or local. Be honest about what's sustainable.
Implement before launching the second locale, even if it's just one extra page.
Pick a TMS or spreadsheet system. Document the workflow. Designate translators and reviewers.
For each locale:
Per locale:
Auto-redirect based on browser language. User is in Germany, prefers English. Site forces German. Frustrating. Suggest, don't redirect.
Single canonical to default language. Search engines can't index the translations. Self-canonical per page.
Reciprocal hreflang missing. German page lists English as its translation, English page doesn't list German. Search engines treat the relationship as unconfirmed.
hreflang language without region when region matters. hreflang="es" is fine if there's one Spanish version. If you have es-ES (Spain) and es-MX (Mexico), use both with regions.
Auto-translated content treated as final. Machine translation is an acceptable starting point. Human review is necessary for any user-facing content.
Currency baked into copy. "$99/month" in body text breaks for European users. Use templated currency that adapts.
Hardcoded date formats. "January 5, 2024" in code. Doesn't adapt. Use a date formatting library that respects locale.
Field labels left in source language. Translated body, untranslated form labels. Inconsistent. Translate UI strings as part of localization.
Untranslated error messages. User submits a form, gets an error in English on a French page. Frustrating. Translate UI states.
Untranslated emails. Site is in French; transactional emails are English. Translate emails to match.
Forgotten locales in CMS. Editors forget to update one locale. Drift. Use a TMS or workflow that surfaces drift.
Locale switcher that doesn't work mid-flow. User is on the German checkout, switches to French, lands on French homepage. Try to land on the same page in the new locale.
RTL layouts that don't actually flip. Margin and padding hardcoded for LTR. Use CSS logical properties.
Sunset language without redirect. Discontinuing French; old French URLs 404. Redirect to the closest equivalent in another supported language.
An internationalization plan includes:
references/locale-checklist.md: Per-locale checklist of everything that needs to adapt beyond translation, organized by category (URL, content, UX, format, legal).© rampstackco, MIT. 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 2 other files (references) in skills/internationalization of rampstackco/claude-skills.
Open the folder on GitHubat commit 482c9bf
Internationalization 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 |
|---|---|---|---|---|---|---|
| Internationalization this skillrampstackco/claude-skills | 935 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Chatbox i18n Translatorchatboxai/chatbox | 42k | — | ~508 | Automated safety check: Pass | GPL-3.0 | |
| Enforce Rules For I18nmoeru-ai/airi | 50k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Translation ReviewDevolutions/UniGetUI | 26k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Lingui Best PracticesB0und/WikiSpeedrun | 133 | 2 repos | ~4.2k | Automated safety check: Pass | MIT | |
| Ok Script I18nAliceJump/ok-end-field | 554 | — | ~828 | Automated safety check: Pass | AGPL-3.0 |
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.
moeru-ai/airi
Review pending AIRI translations on Crowdin in a batch, then sync them into the repository.
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…
B0und/WikiSpeedrun
Implement internationalization with Lingui in React and JavaScript applications.
AliceJump/ok-end-field
Maintain gettext translations for ok-script task UI and runtime messages.
i18next/i18next-cli
Takes an app from hardcoded strings to a localized, continuously translated one with i18next (Locize optional): stack detection, config, wrapping strings in t(), key extraction, Locize sync, and AI…
rampstackco/claude-skills
Run a structured after-action review (postmortem, retrospective) on a launch, incident, or completed project to capture timeline, root cause analysis, contributing factors, and actionable lessons.
rampstackco/claude-skills
Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.
rampstackco/claude-skills
Build or audit a comprehensive brand style guide that documents the full brand system including story, logo system, color, typography, imagery, voice, applications, and dos/don'ts.
rampstackco/claude-skills
Develop or document a complete brand voice and tone system covering voice attributes, tone shifts by context, vocabulary preferences, grammar rules, and copy examples.
rampstackco/claude-skills
Write or edit website copy, blog content, and editorial pieces with attention to voice, structure, and goal.
rampstackco/claude-skills
Develop a content strategy covering editorial positioning, content pillars, formats, calendar, governance, and topical authority planning.
Categories
Plan and run a multi-language or multi-region site. An agent skill from rampstackco/claude-skills. Internationalization is an agent skill from rampstackco/claude-skills. Plan and run a multi-language or multi-region site.
Internationalization fits situations like: adding new locales; choosing URL structure for languages (subfolders vs subdomains vs ccTLDs); implementing hreflang; planning translation workflow.
Run `npx skills add rampstackco/claude-skills --skill internationalization -a claude-code`. Or copy the skill folder (skills/internationalization in rampstackco/claude-skills) into .claude/skills/internationalization in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rampstackco/claude-skills --skill internationalization -a codex`. Or copy the skill folder (skills/internationalization in rampstackco/claude-skills) into .agents/skills/internationalization 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 rampstackco/claude-skills --skill internationalization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/internationalization, .gemini/skills/internationalization, .github/skills/internationalization and .opencode/skills/internationalization in your project.
SKILL.md names no scripts, command-line tools or credentials: Internationalization is instructions for the agent only.
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.
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.
Internationalization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Internationalization: Chatbox i18n Translator (chatboxai/chatbox, 42k stars), Enforce Rules For I18n (moeru-ai/airi, 50k stars), Translation Review (Devolutions/UniGetUI, 26k stars) and Lingui Best Practices (B0und/WikiSpeedrun, 133 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rampstackco (a GitHub organization) maintains it in rampstackco/claude-skills, which has 935 GitHub stars. The repository holds 103 skills in this directory. The repository was last updated on October 7, 2026.
Source: rampstackco/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.