用途:为 Flutter 应用建立统一的国际化(i18n)、从右至左(RTL)与本地化(l10n)契约,适用于任何发布多种语言或 RTL 语言(阿拉伯语、波斯语、希伯来语、索拉尼库尔德语、乌尔都语)的应用。
主要能力与规则:所有面向用户的字符串必须经 gen-l10n 生成、通过 AppLocalizations 读取;先在模板 app_en.arb 中添加 key 与 @元数据,再在 l10n.yaml 中设 nullable-getter: false,使缺失 key 成为编译错误。各语言文件必须保持 key 与 {placeholder} 名称一致,用 ICU plural/select 构建句子与复数,禁止字符串拼接。方向由 locale 决定,不可硬编码根 Directionality;几何一律使用 EdgeInsetsDirectional、AlignmentDirectional、TextAlign.start/end、Icons.adaptive.* 等逻辑方向 API。存储统一为 UTC epoch 加 ASCII 数字,日历与数字系统仅作显示投影;解析或存储前先将数字与分隔符规范化为 ASCII。强 LTR 片段(账号、电话、URL 等)仅在视图层用 FSI/PDI 隔离,隔离字符不得进入存储。字体需自带覆盖各脚本并配置 fallback,禁止运行时拉取。flutter_localizations 未支持的 locale 需借助邻近脚本内嵌三套 delegate(Material、Cupertino、Widgets)并置于 Global* 之前;否则会断言失败或方向静默回退为 LTR。
使用方式:按 references 目录查阅 arb-and-icu、rtl-and-bidi、numerals-and-calendars、unsupported-locales;提交 PR 前运行 scripts/check_arb_parity.sh 与 scripts/check_i18n_bans.sh,并用 flutter gen-l10n、flutter analyze 校验。
限制:资料未提供该技能的收费、价格或安装命令等事实。