Agent skill

Internationalization

by rampstackco in rampstackco/claude-skills

Plan and run a multi-language or multi-region site. An agent skill from rampstackco/claude-skills.

MITAuto-check passedFrontend & Design

Install Internationalization

skills CLI
$ npx skills add rampstackco/claude-skills --skill internationalization -a claude-code

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

GitHub CLI
$ gh skill install rampstackco/claude-skills internationalization --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/rampstackco/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/internationalization .claude/skills/internationalization && 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
internationalization
GitHub stars
935
Token cost
~3.1k tokens
SKILL.md length
1,498 words
Files
3 (incl. references)
Skills in repo
103
Repo updated
First seen
Licence
MIT

At a glance

Plan and run a multi-language or multi-region site. An agent skill from rampstackco/claude-skills.

  • Works in 10 steps: Decide which locales → Pick URL structure → Pick content structure → …
  • Adding new locales
  • SKILL.md covers When to use, When NOT to use, Required inputs and The framework: 5 layers, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • Adding new locales
  • Choosing URL structure for languages (subfolders vs subdomains vs ccTLDs)
  • Implementing hreflang
  • Planning translation workflow

Example prompts

  • “/internationalization”

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Decide which locales
  2. Pick URL structure
  3. Pick content structure
  4. Set up hreflang and canonicals
  5. Set up translation workflow
  6. Localize beyond translation
  7. Implement language switcher
  8. Test
  9. Launch and monitor
  10. Maintain

What it can do on your machine

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

    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.

  • 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

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.

Always · name and description, kept in context so the agent knows when to use it
~153
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.3k

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 rampstackco/claude-skills at commit 482c9bf, republished under its MIT licence (© rampstackco). 1,498 words, ~3,092 tokens.

Download SKILL.mdSave it as .claude/skills/internationalization/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
internationalization
description
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 triggers when international audiences underperform or translations are stale.
category
cross-cutting
catalog_summary
Locale strategy, hreflang, translation workflow, RTL design
display_order
3

Internationalization

Add languages and regions in a way that works for users, search engines, and the team maintaining the content. Stack-agnostic.


When to use

  • Adding the first non-English (or non-default) language
  • Adding additional locales to an existing internationalized site
  • Choosing URL structure for languages
  • Implementing hreflang tags
  • Designing translation workflow
  • Handling currency, date, time, and number formats
  • Designing or fixing layout for RTL languages
  • Auditing an internationalization rollout that's underperforming

When NOT to use

  • Single-language site (use other skills)
  • Domain strategy that's not language-driven (use domain-strategy)
  • Content strategy independent of locale (use content-strategy)
  • Marketing copy production (use content-and-copy)

Required inputs

  • The locales in scope (language + region, e.g., en-US, de-DE, fr-CA)
  • Business reason per locale (priority, audience size)
  • Existing site architecture
  • Translation resources (in-house, agency, AI-assisted, community)
  • Content volume and update frequency

The framework: 5 layers

Internationalization touches everything. Five layers, each with their own decisions.

Layer 1: URL structure

How locales are reflected in URLs.

PatternExampleWhen
ccTLDexample.de, example.frStrong country focus, distinct legal entities, willing to maintain separate domains
Subdomainde.example.com, fr.example.comLogical separation, willing to host separately, common for large sites
Subfolderexample.com/de/, example.com/fr/SEO equity unified, simplest to manage, default for most
URL parameterexample.com?lang=deAvoid; 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:

  • Language only (/de/) or language plus region (/de-de/, /de-at/, /de-ch/)?
  • Default locale: at the apex (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).

Layer 2: Content structure

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:

  • How content models are designed (does each piece have parent/translation relationships?)
  • How translation is managed (workflow assumes the structure)
  • How the team coordinates
Layer 3: hreflang and canonicals

Telling search engines what's translated vs distinct.

hreflang specifies the language and optional region for each version.

html
<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:

  • Every page lists every translated equivalent (including itself)
  • Pages must reciprocate (page A says page B is its German version; page B says page A is its English version)
  • x-default is the fallback for users in unspecified regions
  • Each page has its own canonical pointing to itself (not to the default language)

hreflang 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:

  • Self-referential per page
  • Don't canonical the German page to the English page (search engines won't index the German page)
Layer 4: Translation workflow

How content gets translated, kept fresh, and quality-controlled.

Sources of translation:

  • In-house translators (full-time staff)
  • Translation agency (paid per word, professional)
  • Community contributors (volunteer, variable quality, free)
  • AI-assisted plus human review (cheap, fast, growing in quality)
  • AI only (acceptable for some content, not for brand-critical)

Workflow stages:

  1. Source content authored in the source language
  2. Translation requested through a TMS (translation management system) or spreadsheet
  3. Translation produced with translation memory (avoids retranslating reused phrases)
  4. Review by a second translator or in-region staff
  5. Localization beyond translation (currency, units, examples, cultural references)
  6. Publishing in the destination locale
  7. Update propagation when source content changes

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.

Layer 5: Locale-aware UX

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.


Workflow

Step 1: Decide which locales

Don't add languages just because you can. Each locale has ongoing maintenance cost.

  • Audience research: where are visitors and prospects?
  • Business priority: which markets are growth targets?
  • Content readiness: do you have the resources to maintain it?
  • Legal: do regulations require localization (GDPR, accessibility laws)?
Show full SKILL.md (584 more words)Show less
Step 2: Pick URL structure

Subfolder for most. Document the choice and rationale.

Step 3: Pick content structure

Mirror, subset, or local. Be honest about what's sustainable.

Step 4: Set up hreflang and canonicals

Implement before launching the second locale, even if it's just one extra page.

Step 5: Set up translation workflow

Pick a TMS or spreadsheet system. Document the workflow. Designate translators and reviewers.

Step 6: Localize beyond translation

For each locale:

  • Currency, numbers, dates, units
  • Locale-specific images if needed
  • Address forms
  • Customer service hours and contact
Step 7: Implement language switcher
  • Prominent in the header or footer
  • Shows the current locale clearly
  • Lists all available locales in their own language
  • Persists the choice (cookie or local storage)
  • Doesn't auto-redirect based on browser; suggests instead
Step 8: Test
  • Each locale renders correctly
  • hreflang links are valid (use a checker)
  • Canonicals are self-referential per page
  • Currency and dates are correct
  • RTL layout is correct (for RTL locales)
  • Language switcher works and persists
  • Search-engine perspective: each locale is crawlable and indexable
Step 9: Launch and monitor

Per locale:

  • Indexing rate
  • Traffic from intended geographies
  • Engagement metrics in the locale
  • Translation freshness (when did source content change without translation update?)
Step 10: Maintain
  • Translation update cadence (when source changes, when translations follow)
  • Quarterly review of locale performance
  • Sunset locales that aren't viable (better than maintaining a dead locale poorly)

Failure patterns

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.


Output format

An internationalization plan includes:

  • Locale list: with priority and audience rationale
  • URL structure: chosen pattern and reason
  • Content structure: mirror, subset, or local
  • hreflang plan: how it's implemented
  • Translation workflow: sources, stages, tools
  • Localization checklist: beyond translation (currency, dates, etc.)
  • Language switcher design: position, behavior, persistence
  • Test plan: what's verified per locale
  • Maintenance plan: update cadence, drift detection

Reference files

  • 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

Files

SKILL.md and 2 other files (references) in skills/internationalization of rampstackco/claude-skills.

  • SKILL.md
  • README.md
  • references/locale-checklist.md

Open the folder on GitHubat commit 482c9bf

Compare with similar skills

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.

Internationalization compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Internationalization this skillrampstackco/claude-skills935—~3.1kAutomated safety check: PassMIT
Chatbox i18n Translatorchatboxai/chatbox42k—~508Automated safety check: PassGPL-3.0
Enforce Rules For I18nmoeru-ai/airi50k—~1.5kAutomated safety check: PassMIT
Translation ReviewDevolutions/UniGetUI26k—~1.3kAutomated safety check: PassMIT
Lingui Best PracticesB0und/WikiSpeedrun1332 repos~4.2kAutomated safety check: PassMIT
Ok Script I18nAliceJump/ok-end-field554—~828Automated safety check: PassAGPL-3.0

Similar skills

  • 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.

    42k GitHub stars~508 tokensUpdated 13 days ago
    Frontend & DesignAuto-check passed
  • Review pending AIRI translations on Crowdin in a batch, then sync them into the repository.

    50k GitHub stars~1.5k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Translation Review

    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…

    26k GitHub stars~1.3k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Lingui Best Practices

    B0und/WikiSpeedrun

    Implement internationalization with Lingui in React and JavaScript applications.

    133 GitHub starsUsed in 2 repos~4.2k tokens
    Frontend & DesignAuto-check passed
  • Ok Script I18n

    AliceJump/ok-end-field

    Maintain gettext translations for ok-script task UI and runtime messages.

    554 GitHub stars~828 tokensUpdated today
    Frontend & DesignAuto-check passed
  • I18next Localization

    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…

    242 GitHub stars~1.6k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from rampstackco/claude-skills

All 103 skills in this repo
  • After Action Report

    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.

    935 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Analytics Strategy

    rampstackco/claude-skills

    Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.

    935 GitHub starsUsed in 1 repo~2.4k tokens
    Auto-check passed
  • Brand Style Guide

    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.

    935 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Brand Voice

    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.

    935 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Content And Copy

    rampstackco/claude-skills

    Write or edit website copy, blog content, and editorial pieces with attention to voice, structure, and goal.

    935 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Content Strategy

    rampstackco/claude-skills

    Develop a content strategy covering editorial positioning, content pillars, formats, calendar, governance, and topical authority planning.

    935 GitHub stars~2.6k tokensUpdated today
    Auto-check passed

Questions about Internationalization

What does Internationalization do?

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.

When should I use Internationalization?

Internationalization fits situations like: adding new locales; choosing URL structure for languages (subfolders vs subdomains vs ccTLDs); implementing hreflang; planning translation workflow.

How do I install Internationalization in Claude Code?

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.

How do I install Internationalization in Codex?

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.

Can I use Internationalization 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 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.

What does Internationalization need to run?

SKILL.md names no scripts, command-line tools or credentials: Internationalization is instructions for the agent only.

Does Internationalization 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 Internationalization 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 Internationalization use?

Internationalization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Internationalization use?

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.

What are the alternatives to Internationalization?

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.

Who maintains Internationalization?

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.