internationalization-helperlisted
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