---
name: I18n
slug: i18n
category: Frontend
description: I18n updates Lingui catalogs and fixes translations across locales. Use when adding new messages, correcting translations, or verifying no missing keys.
github: "https://github.com/d-kimuson/claude-code-viewer/tree/main/.claude/skills/i18n"
language: TypeScript
stars: 1272
forks: 157
install: "npx degit https://github.com/d-kimuson/claude-code-viewer/tree/main/.claude/skills/i18n ~/.claude/skills/i18n"
installs_to: ~/.claude/skills/i18n
source_path: .claude/skills/i18n/SKILL.md
collection_size: 3
category_size: 567
collection_url: "https://dirskills.com/collections/d-kimuson/claude-code-viewer"
added: 2026-08-20T07:55:08.628Z
last_synced: 2026-08-20T07:55:08.628Z
canonical_url: "https://dirskills.com/skills/i18n"
---

# I18n

I18n updates Lingui catalogs and fixes translations across locales. Use when adding new messages, correcting translations, or verifying no missing keys.

**Install:**

```bash
npx degit https://github.com/d-kimuson/claude-code-viewer/tree/main/.claude/skills/i18n ~/.claude/skills/i18n
```

## README

## Core rules

- English (`en`) is the source catalog. Do not alter keys; only update translations.
- Preserve placeholders and ICU syntax exactly (e.g., `{name}`, `{count, plural, one {...} other {...}}`).
- Keep technical terms in English when appropriate (API, TypeScript, React).

## Translation updates

- Update `src/lib/i18n/locales/{locale}/messages.json` only; do not edit compiled outputs by hand.
- Use `./scripts/put-transtation.js` to safely update a specific entry without loading the full file into context.

## Verification

- Run `pnpm lingui:extract` when new messages are added.
- Run `pnpm lingui:compile` to regenerate compiled catalogs.
- Run `scripts/lingui-check.sh` to verify no missing translations.
- Run `scripts/i18n-check-key-equals-translation.sh` to ensure key != translation in all locales.
