i18n-rtl-l10n
Installation
SKILL.md
i18n, RTL & Localization
One contract: store canonical, localize at render. Every conversion and formatting lives in
one l10n layer; feature widgets receive value objects and already-localized strings, never raw
formatting logic. RTL is a layout discipline, not a translation task — author with logical
geometry so it mirrors by construction. Applies to any app that ships more than one locale or any
RTL locale (Arabic, Persian, Hebrew, Sorani Kurdish, Urdu).
Read the reference for the task at hand:
references/arb-and-icu.md— the ARB add/translate workflow,l10n.yaml, ICU plural/select, placeholder typing.references/rtl-and-bidi.md— the directional-geometry allow/ban table, icon mirroring, bidi isolation, CustomPainter pinned LTR, RTL charts.references/numerals-and-calendars.md— digit systems, separator traps, format/parse, calendar projection.references/unsupported-locales.md— shipping a localeflutter_localizationshas no data for: the probe, the vendored delegate trio, delegate ordering, font coverage.
Run scripts/check_arb_parity.sh and scripts/check_i18n_bans.sh before a PR.