# Internationalization Skill

## Purpose
Extract hardcoded strings and set up i18n infrastructure for multi-language support.

## Process

### 1. String Extraction
Scan source files for hardcoded user-facing strings:
- JSX text content
- Placeholder attributes
- Alt text
- ARIA labels
- Error messages

### 2. Key Naming Convention
Use dot-notation namespaced keys:
- common.submit, common.cancel
- auth.login.title, auth.login.email_label
- cart.item_count (with pluralization)

### 3. React Integration (react-i18next)
```tsx
import { useTranslation } from "react-i18next";

function App() {
  const { t } = useTranslation();
  return <h1>{t("home.welcome")}</h1>;
}
```

### 4. Pluralization
```json
{
  "cart.items": "{{count}} item",
  "cart.items_plural": "{{count}} items"
}
```

### 5. Date and Number Formatting
Use Intl API for locale-aware formatting:
- Intl.NumberFormat for currency
- Intl.DateTimeFormat for dates
- Intl.RelativeTimeFormat for "2 hours ago"

## Translation File Structure
```
locales/
  en/
    common.json
    auth.json
  ja/
    common.json
    auth.json
```