Claude-skill-registry 1k-i18n
Internationalization and translation management for OneKey. Use when adding translations, displaying text, handling locales, or managing translation keys. NEVER modify auto-generated translation files. Triggers on i18n, translation, locale, formatMessage, useIntl, ETranslations, text, string, hardcode, intl, translate, language, localization, internationalization.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/1k-i18n" ~/.claude/skills/majiayu000-claude-skill-registry-1k-i18n && rm -rf "$T"
manifest:
skills/data/1k-i18n/SKILL.mdsource content
Internationalization (i18n)
Guidelines for internationalization and translation management in OneKey.
Critical Restrictions
ABSOLUTELY FORBIDDEN (auto-generated files):
// ❌ NEVER modify these files - they are AUTO-GENERATED // @onekeyhq/shared/src/locale/enum/translations.ts // @onekeyhq/shared/src/locale/json/*.json // ❌ NEVER hardcode text strings <Text>Confirm</Text> // ✅ CORRECT - Always use translation keys import { ETranslations } from '@onekeyhq/shared/src/locale'; intl.formatMessage({ id: ETranslations.global__confirm })
Consequences of violation:
- Translation system corruption
- Loss of translation work
- Build failures in i18n pipeline
- Breaking localization for international users
Quick Reference
Using Translations in Components
import { useIntl } from 'react-intl'; import { ETranslations } from '@onekeyhq/shared/src/locale'; function MyComponent() { const intl = useIntl(); return ( <SizableText> {intl.formatMessage({ id: ETranslations.global__confirm })} </SizableText> ); }
Using formatMessage Outside Components
import { appLocale } from '@onekeyhq/shared/src/locale/appLocale'; import { ETranslations } from '@onekeyhq/shared/src/locale'; const message = appLocale.intl.formatMessage({ id: ETranslations.global__cancel, });
Translation Workflow
- Design provides translation key like
prime::restore_purchases - Run sync command:
yarn fetch:locale - Convert key format:
→prime::restore_purchasesETranslations.prime_restore_purchases - Use in code:
{intl.formatMessage({ id: ETranslations.prime_restore_purchases })}
Translation Key Naming Pattern
namespace__action_description Examples: - global__confirm - global__cancel - swap__select_token - wallet__create_wallet - settings__dark_mode
Detailed Guide
For comprehensive i18n guidelines and examples, see i18n.md.
Topics covered:
- Translation management restrictions
- Using translations in components
- Translation key naming conventions
- Locale handling and fallbacks
- Code examples
- Workflow summary
Key Files
| Purpose | File Path |
|---|---|
| Translation enum (auto-generated) | |
| Locale JSON (auto-generated) | |
| App locale | |
| Default locale | |
Related Skills
- Date formatting with locale support/1k-date-formatting
- General coding patterns/1k-coding-patterns