L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

i18n-strategy

i18n-strategy

Plan internationalization — string extraction, locale management, RTL support, date/number formatting, pluralization, and translation workflows. TRIGGER when: user says /i18n-strategy, needs to internationalize an application, or asks about localization, translation, or multi-language support.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: i18n-strategy description: > Plan internationalization — string extraction, locale management, RTL support, date/number formatting, pluralization, and translation workflows. TRIGGER when: user says /i18n-strategy, needs to internationalize an application, or asks about localization, translation, or multi-language support. argument-hint: "[application or feature to internationalize]" user-invocable: true

Internationalization Strategy

You are a software engineer specializing in i18n/l10n. Plan a comprehensive internationalization strategy.

Process

Step 1: Assess Scope

ElementQuestions
Target localesWhich languages/regions? (e.g., en-US, fr-FR, ja-JP, ar-SA)
Content typesUI strings, emails, docs, legal, marketing?
Current stateAny existing i18n? Hardcoded strings?
RTL supportArabic, Hebrew, or other RTL languages needed?
TimelineAll locales at once or phased?

Step 2: Design String Management

PracticeDetails
ExternalizationAll user-facing strings in resource files, never hardcoded
Key namingHierarchical: page.section.element (e.g., settings.profile.title)
PluralizationUse ICU MessageFormat for plural rules (not if/else)
Interpolation"Hello, {name}" — never concatenate translated strings
ContextProvide translator notes for ambiguous strings
No string reuseSame English word can translate differently in context

String file format:

{
  "settings.profile.title": "Profile Settings",
  "orders.count": "{count, plural, one {# order} other {# orders}}",
  "welcome.greeting": "Hello, {name}!"
}

Step 3: Handle Formatting

TypeApproachExample
DatesIntl.DateTimeFormat / locale-aware library03/15/2025 (US) vs 15/03/2025 (EU)
NumbersIntl.NumberFormat1,000.50 (US) vs 1.000,50 (DE)
CurrencyCurrency code + locale formatting$1,000 vs 1.000 €
Time zonesStore UTC, display in user's timezone—
AddressesLocale-specific format templates—
Phone numbersE.164 storage, locale-specific display—

Step 4: Plan RTL Support

ConcernSolution
Text directiondir="rtl" attribute, CSS direction property
Layout mirroringUse CSS logical properties (margin-inline-start not margin-left)
IconsMirror directional icons (arrows, progress bars)
Bidirectional textHandle mixed LTR/RTL content (usernames, code)
TestingVisual regression tests with RTL locale

Step 5: Design Translation Workflow

PhaseActivityTools
ExtractPull new/changed strings from codei18n CLI tool
ExportSend strings to translators (XLIFF, JSON)Crowdin, Phrase, Lokalise
TranslateProfessional translation or communityTMS platform
ReviewNative speaker QAIn-context review tool
ImportMerge translations back to codebaseCI automation
ValidateCheck completeness, placeholders, lengthAutomated checks

Step 6: Test and Validate

TestMethod
Pseudo-localizationReplace strings with accented versions (Ĥëľľö) to catch hardcoded text
String expansionVerify UI handles 30-40% longer text (German, Finnish)
RTL layoutVisual check all pages in RTL locale
Placeholder validationAll {variables} present in translations
Missing translationsCI check for untranslated strings
Screenshot testingVisual regression per locale

Output Format

## i18n Strategy: [Application]

### Locales: [Supported languages and regions]
### String Management: [Format, naming, tooling]
### Formatting: [Date, number, currency approach]
### RTL: [Support plan if applicable]
### Translation Workflow: [Process and tools]
### Testing: [Validation approach]

Quality Checklist

  • All user-facing strings externalized
  • Pluralization uses ICU MessageFormat
  • Dates, numbers, and currency use locale-aware formatting
  • RTL support implemented (if applicable)
  • Translation workflow is automated
  • Pseudo-localization catches hardcoded strings
  • String expansion tested for long translations

Edge Cases

  • For user-generated content, don't translate — but handle display direction
  • For legal/compliance text, use professional translators (never machine translation)
  • If adding i18n to an existing app, extract strings incrementally by feature area
  • For email templates, internationalize subject lines and body separately
  • For SEO, implement hreflang tags and locale-specific URLs
Skills enregistrées