Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aiskillstore avatar

Internationalization Helper

  • 1 installs
  • 404 repo stars
  • Updated August 5, 2026
  • aiskillstore/marketplace

internationalization-helper is a Claude Code skill that extracts hardcoded strings, manages translation files and checks locale coverage for multi-language apps.

About

internationalization-helper is a Claude Code skill for adding and managing internationalization (i18n) and localization in multi-language apps. A developer uses it to find hardcoded strings, extract them into translation files, detect the i18n framework, and check for missing translations across locales. It also covers pluralization, locale-aware date/number formatting and RTL support.

  • Extracts hardcoded strings into translation files for i18n
  • Detects the i18n framework and checks locale coverage
  • Covers pluralization, locale formatting and RTL support

Internationalization Helper by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,914 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

internationalization-helper capabilities & compatibility

Capabilities
string extraction · translation coverage · locale formatting · rtl support
Use cases
frontend · translation
From the docs

What internationalization-helper says it does

Helps manage internationalization (i18n) and localization (l10n) in multi-language applications.
SKILL.md
Compare locale files to find missing translations:
SKILL.md
npx skills add https://github.com/aiskillstore/marketplace --skill internationalization-helper

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars404
Last updatedAugust 5, 2026
Repositoryaiskillstore/marketplace

What it does

Extract hardcoded strings and manage translation files for a multi-language app.

Who is it for?

Adding i18n to a multi-language app and finding untranslated strings

When should I use this skill?

Adding new languages, finding untranslated strings, or managing translation files

What you get

  • translation files
  • extracted i18n keys
  • locale coverage report

By the numbers

  • 10 numbered instruction steps
  • 4 JS/React i18n frameworks listed

Files

SKILL.mdMarkdownGitHub ↗

Internationalization Helper

Helps manage internationalization (i18n) and localization (l10n) in multi-language applications.

When to Use

  • User requests i18n support
  • Adding new languages
  • Finding untranslated strings
  • Managing translation files
  • User mentions "translation", "i18n", "l10n", "locale"

Instructions

1. Detect i18n Framework

JavaScript/React:

  • react-i18next
  • react-intl (FormatJS)
  • i18next
  • LinguiJS

Vue:

  • vue-i18n

Python:

  • gettext
  • Django i18n
  • Flask-Babel

Ruby/Rails:

  • I18n gem (built-in)

Look for imports, config files, or translation directories.

2. Find Hardcoded Strings

Search for untranslated text:

// Bad: Hardcoded
<button>Submit</button>
<p>Welcome, {user.name}!</p>

// Good: Translated
<button>{t('common.submit')}</button>
<p>{t('welcome.message', { name: user.name })}</p>

Search patterns:

  • Strings in JSX/template tags
  • Alert/error messages
  • Form labels and placeholders
  • Button text
  • Validation messages

Exclude: code comments, console.log, test strings

3. Extract to Translation Files

React-i18next format (JSON):

{
  "common": {
    "submit": "Submit",
    "cancel": "Cancel"
  },
  "welcome": {
    "message": "Welcome, {{name}}!"
  }
}

Gettext format (.po):

msgid "submit_button"
msgstr "Submit"

msgid "welcome_message"
msgstr "Welcome, %(name)s!"

4. Organize Translation Keys

Best practices:

  • Namespace by feature: users.profile.title
  • Group common strings: common.buttons.save
  • Describe context, not content: errors.login.invalid not errors.wrong_password
  • Consistent naming convention

5. Check Translation Coverage

Compare locale files to find missing translations:

en.json: 150 keys
es.json: 142 keys (missing 8)
fr.json: 150 keys ✓

Missing in es.json:
- users.profile.bio
- settings.privacy.title
[...]

6. Handle Pluralization

Different languages have different plural rules:

// react-i18next
t('items', { count: 0 })  // "0 items"
t('items', { count: 1 })  // "1 item"
t('items', { count: 5 })  // "5 items"

// Translation file
{
  "items_zero": "{{count}} items",
  "items_one": "{{count}} item",
  "items_other": "{{count}} items"
}

7. Date, Time, Number Formatting

Use locale-aware formatting:

// Numbers
const price = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD'
}).format(29.99);

// Dates
const date = new Intl.DateTimeFormat('fr-FR').format(new Date());

8. RTL (Right-to-Left) Support

For Arabic, Hebrew:

  • CSS: direction: rtl;
  • HTML: <html dir="rtl">
  • Logical properties: margin-inline-start instead of margin-left

9. Generate Translation Template

Create template for new locale:

# Copy keys from base language, empty values
cp locales/en.json locales/de.json
# Mark for translation

10. Best Practices

  • Keep translations in separate files
  • Use keys, not source text as keys
  • Provide context to translators
  • Test with long strings (German often longer)
  • Use ICU MessageFormat for complex strings
  • Avoid concatenating translated strings
  • Extract all user-facing text

Supporting Files

  • templates/i18n-config.js: Configuration examples
  • templates/locale-file.json: Translation file template

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.