La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Productividad · 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

Documentación 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 guardadas