| name | skill-localization |
| description | Internationalization (i18n) and localization (l10n) strategy, string externalization, plural and gender handling, right-to-left text support, cultural adaptation, translation workflow, locale-specific testing. Use when adding multi-language support, managing translations, or expanding to new locales. |
| version | 1.0.0 |
Skill: Localization (i18n/l10n)
String externalization + translation workflow + cultural adaptation = global product.
String Externalization
Don't embed strings in code:
message = "Hello, " + user.name
message = t("greeting", name=user.name)
Translation File Format
greeting: "Hello, {name}"
hello_world: "Hello, World!"
greeting: "Hola, {name}"
hello_world: "¡Hola, Mundo!"
greeting: "Bonjour, {name}"
hello_world: "Bonjour, le monde!"
Pluralization
messages:
en:
item_count:
one: "You have 1 item"
other: "You have {count} items"
es:
item_count:
one: "Tienes 1 artículo"
other: "Tienes {count} artículos"
Right-to-Left (RTL) Support
<html dir="auto">
...
</html>
<html lang="ar" dir="rtl">
</html>
body {
direction: rtl;
text-align: right;
}
Dates & Times
en-US: 01/15/2024
en-GB: 15/01/2024
de-DE: 15.01.2024
Use locale-aware formatting:
from babel.dates import format_date
format_date(date, format='medium', locale='de_DE')
Translation Workflow
- Extract: Find translatable strings
- Upload: To translation platform (Crowdin, Transifex)
- Translate: Humans + review
- Download: Translated files
- Test: Each locale
- Deploy: With fallback to English
Status: Ready for localization work
Best for: i18n implementation, translation management, global expansion