What problem does it solve? Flutter apps shipping multiple locales or RTL languages (Arabic, Persian, Hebrew, Sorani Kurdish) silently break: hardcoded strings bypass translation, physical left/right geometry fails to mirror, Persian and Arabic digits get mixed up, and raw numeric input like ۱۲۳ crashes int.parse. This Skill enforces one contract — store canonical, localize at render — so every string, number, date, and layout is correct by construction. ## Core Features & Use Cases - ARB workflow with compile-time safety: Template-first app_en.arb authoring, nullable-getter: false so a missing key is a compile error, ICU plural/select instead of string concatenation, and a check_arb_parity.sh script that gates key and placeholder parity across all locales. - RTL by construction: Directional-only geometry (EdgeInsetsDirectional, AlignmentDirectional, Icons.adaptive), FSI/PDI bidi isolation for technical IDs, and a check_i18n_bans.sh grep gate that rejects physical-side APIs, legacy bidi embeddings, and runtime font fetches. - Numerals and calendars: Per-locale NumberFormat with pinned numbering systems (fa/ckb share the Extended Arabic-Indic block), normalizeToAscii before any numeric parse, and UTC-epoch storage with Jalali/Hijri projection only at render. - Use Case: Adding a new screen to an app shipping English, German, Persian, Arabic, and Sorani Kurdish — the Skill walks you through adding the ARB keys with typed placeholders, mirroring translations with correct Arabic six-category plurals, building the layout with directional geometry, and passing both parity and ban checks before the PR. ## Quick Start Ask the AI to add a new localized string with a plural count to your Flutter app's ARB files and build the RTL-safe widget that displays it.