← ClaudeAtlas

internationalization-helperlisted

Extracts hardcoded strings for i18n, manages translation files, and ensures locale coverage. Use when working with multi-language apps, translations, or user mentions i18n, localization, or languages.
aiskillstore/marketplace · ★ 329 · Data & Documents · score 82
Install: claude install-skill aiskillstore/marketplace
# 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: ```javascript // 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):** ```json { "common": { "submit": "Submit", "cancel": "Cancel" }, "welcome": { "message": "Welcome, {{name}}!" } } ``` **Gettext format (.po):** ```po msgid "submit_button" msgstr "Submit" msgid "welcome_message" msgstr "Welcome, %(name)s!" ``` ### 4. Organize Translation Keys **Best practices:** - Namespace by feature: `users.profile