I1

i18n-expert

A comprehensive tool to configure i18n frameworks and audit localization coverage in React/TS applications.

Install

mkdir -p .claude/skills/i18n-expert && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3899" && unzip -o skill.zip -d .claude/skills/i18n-expert && rm skill.zip

Installs to .claude/skills/i18n-expert

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

This skill should be used when setting up, auditing, or enforcing internationalization/localization in UI codebases (React/TS, i18next or similar, JSON locales), including installing/configuring the i18n framework, replacing hard-coded strings, ensuring en-US/zh-CN coverage, mapping error codes to localized messages, and validating key parity, pluralization, and formatting.
376 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Configure i18n framework providers and routing strategies
  • Audit codebases for hard-coded strings and missing translation keys
  • Implement pluralization and formatting using library-specific helpers
  • Map application error codes to localized UI messages
  • Organize locale files into structured namespaces
  • Localize accessibility attributes like aria-labels and placeholders

How it works

The process involves auditing the codebase for hard-coded strings, replacing them with translation keys, and ensuring parity across locale files using automated scripts and manual verification.

Inputs & outputs

You give it
Source code directory and target locale files
You get back
Configured i18n provider, updated locale files, and refactored UI components

When to use i18n-expert

  • Initialize i18n in a new project
  • Audit existing code for hard-coded strings
  • Verify en-US and zh-CN translation keys

About this skill

I18n Expert

Overview

Deliver a complete i18n setup + audit pass: configure the i18n framework, replace user-facing strings with keys, ensure locale parity, and validate pluralization/formatting for en-US and zh-CN.

Core Capabilities

  • Library selection and setup (React, Next.js, Vue).
  • Key architecture and locale file organization.
  • Translation generation and quality strategy (AI, professional, manual).
  • Routing and language detection/switching.
  • SEO and metadata localization (when applicable).
  • RTL support (only if RTL locales are in scope).

Scope Inputs (ask if unclear)

  • Framework and routing style.
  • Existing i18n state (none, partial, legacy).
  • Target locales (default: en-US + zh-CN).
  • Translation quality needs (AI vs professional vs manual).
  • Locale formats in use (JSON, YAML, PO, XLIFF).
  • Formality/cultural requirements (if any).

Workflow (Audit -> Fix -> Validate)

  1. Confirm scope and locale targets
  • Identify the i18n framework and locale locations.
  • Confirm locales; default to en-US + zh-CN when specified.
  1. Setup i18n baseline (if missing)
  • Choose a framework-appropriate library (e.g., React: react-i18next; Next.js: next-intl; Vue: vue-i18n).
  • Install packages and create the i18n entry/config file.
  • Wire the provider at the app root and load locale resources.
  • Add a language switcher and persistence (route/param/localStorage) as appropriate.
  • Establish locale file layout and key namespaces.
  • If routing is locale-aware, define the locale segment strategy early (subpath, subdomain, query param).
  • If metadata is user-facing, include translation for titles/descriptions.
  1. Audit key usage and locale parity
  • Run:
    python scripts/i18n_audit.py --src <src-root> --locale <path/to/en-US.json> --locale <path/to/zh-CN.json>
    
  • Treat missing keys/parity gaps as blockers.
  • Manually verify dynamic keys (t(var)).
  1. Find raw user-facing strings
  • Search:
    rg -n --glob '<src>/**/*.{ts,tsx,js,jsx}' "<[^>]+>[^<{]*[A-Za-z][^<{]*<"
    rg -n --glob '<src>/**/*.{ts,tsx,js,jsx}' "aria-label=\"[^\"]+\"|title=\"[^\"]+\"|placeholder=\"[^\"]+\""
    
  • Localize accessibility labels.
  1. Replace strings with keys
  • Use t('namespace.key') for UI text.
  • For plurals use t('key', { count }) + _one/_other keys.
  • Use Intl/app formatters for time/date/number.
  1. Localize error handling (critical)
  • Map error codes to localized keys; show localized UI only.
  • Log raw error details only.
  • Provide localized fallback for unknown codes.
  1. Update locale files
  • Add missing keys in both locales.
  • Keep placeholders consistent; avoid renames unless requested.
  • Generate translations using the agreed method; preserve placeholders and plural rules.
  1. Validate
  • Re-run the audit until missing/parity issues are zero.
  • Validate JSON (e.g., python -m json.tool <file>).
  • Update tests asserting visible text.

Guardrails

  • Never expose raw error.message to UI; show localized strings only.
  • Do not add extra locales unless explicitly requested.
  • Prefer structured namespaces (e.g., errors.*, buttons.*, workspace.*).
  • Keep translations concise and consistent.
  • Some technical/brand terms should remain untranslated (e.g., product name, API, MCP, Bash).

Deliverables (expected outputs)

  • i18n config/provider wiring.
  • Locale files for each target language.
  • Replaced UI strings with stable keys.
  • Language switcher and persistence (if applicable).
  • Updated tests for visible text.

Architecture Guidance (keep concise)

  • Key structure: prefer nested namespaces by area (e.g., common.buttons.save, pricing.tier.pro).
  • File layout: one file per locale or per-locale namespaces; keep keys in sync across locales.
  • Placeholders: preserve {name}/{{name}} exactly; validate plurals by locale rules.
  • Formatting: use Intl/app helpers for date, time, number, and list formatting.
  • SEO/metadata: localize titles and descriptions if the app exposes them.
  • RTL: only needed for RTL locales; use logical CSS properties and test layout.
  • Non-web surfaces (Electron main-process dialogs, CLI prompts, native menus) need localization too.

Performance Notes (short)

  • Lazy-load locale bundles when the app supports it.
  • Split large locale files by namespace.

Failure Modes (watchlist)

  • Missing translations: fall back to default locale and log warnings.
  • RTL layout issues: verify logical CSS and test pages.
  • SEO missing: ensure alternates and metadata are localized when applicable.

Validation Checklist (short)

  • No missing keys and no raw UI strings.
  • Locale switching works and persists.
  • Plurals and formatting verified in both locales.
  • Fallback locale configured.

Resources

scripts/

  • scripts/i18n_audit.py: Extracts t('key') usage and compares against locale JSON files.

When not to use it

  • Translating technical brand terms or product names
  • Adding locales not explicitly requested by the user

Prerequisites

UI codebase in React, Next.js, or VueTarget locale files in JSON, YAML, PO, or XLIFF format

Limitations

  • Requires manual verification of dynamic keys
  • RTL support is restricted to explicitly scoped locales

How it compares

Unlike manual string replacement, this workflow uses automated audit scripts to detect missing keys and parity gaps across multiple locale files.

Compared to similar skills

i18n-expert side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
i18n-expert (this skill)26moReviewIntermediate
frontend-developer04moNo flagsIntermediate
skills03moNo flagsBeginner
roier-seo46moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

ppt-creator

daymade

Create professional slide decks from topics or documents. Generates structured content with data-driven charts, speaker notes, and complete PPTX files. Applies persuasive storytelling principles (Pyramid Principle, assertion-evidence). Supports multiple formats (Marp, PowerPoint). Use for presentations, pitches, slide decks, or keynotes.

75110

macos-cleaner

daymade

Analyze and reclaim macOS disk space through intelligent cleanup recommendations. This skill should be used when users report disk space issues, need to clean up their Mac, or want to understand what's consuming storage. Focus on safe, interactive analysis with user confirmation before any deletions.

1631

qa-expert

daymade

This skill should be used when establishing comprehensive QA testing processes for any software project. Use when creating test strategies, writing test cases following Google Testing Standards, executing test plans, tracking bugs with P0-P4 classification, calculating quality metrics, or generating progress reports. Includes autonomous execution capability via master prompts and complete documentation templates for third-party QA team handoffs. Implements OWASP security testing and achieves 90% coverage targets.

1427

repomix-unmixer

daymade

Extracts files from repomix-packed repositories, restoring original directory structures from XML/Markdown/JSON formats. Activates when users need to unmix repomix files, extract packed repositories, restore file structures from repomix output, or reverse the repomix packing process.

524

teams-channel-post-writer

daymade

Creates educational Teams channel posts for internal knowledge sharing about Claude Code features, tools, and best practices. Applies when writing posts, announcements, or documentation to teach colleagues effective Claude Code usage, announce new features, share productivity tips, or document lessons learned. Provides templates, writing guidelines, and structured approaches emphasizing concrete examples, underlying principles, and connections to best practices like context engineering. Activates for content involving Teams posts, channel announcements, feature documentation, or tip sharing.

591

twitter-reader

daymade

Fetch Twitter/X post content by URL using jina.ai API to bypass JavaScript restrictions. Use when Claude needs to retrieve tweet content including author, timestamp, post text, images, and thread replies. Supports individual posts or batch fetching from x.com or twitter.com URLs.

552

You might also like

Search skills

Search the agent skills registry