SuperAPI AI 工具集

i18n-strings-and-catalogs

前端与建站

查看项目

更新于 10-18 18:02

技能介绍

本技能面向 React Native 应用的国际化(i18n)层,提供一整套规则、模板与检查脚本,把界面文本、无障碍属性、导航标题、通知、Toast 等所有可见或朗读内容统一收口到 react-intl 消息目录,避免硬编码字符串和代码内选择复数形式。

主要能力:

  • 键名规范:使用 <area>.<element>[.<variant>] 形式的语义键,并保证每个语言目录拥有相同的键集合且排序一致。
  • 复数与数字:要求用 ICU plural 表达计数名词,覆盖每种语言的 CLDR 复数类别(如阿拉伯语六种、日语一种);数字必须带类型标注或作为复数 # 使用。
  • 格式化隔离:react-intl 及 Intl API 只允许在 src/i18n/ 内使用,日期时间仅在边缘格式化并需要显式时区,polyfill 需按应用支持的语言强制加载,且 Jest 与真机环境保持一致。
  • 本地化配置:通过 languages.ts、digits.ts 等配置语言、数字系统和书写方向,权限用途字符串与应用名称也放入目录并由 app.config 生成。
  • 校验与测试:提供 check-catalogs.mjs、check-i18n-code.mjs、同步脚本和 Jest 测试,输出 PASS/FAIL 行,便于 CI 门禁。

使用方式(首次接入):阅读 references/runtime-and-provider.md,安装 react-intl 与 @formatjs/intl-* polyfill、expo-localization 及开发依赖;复制 templates/src/i18n/ 下的目录、polyfill、语言解析、t() 与 <T>、日期格式、translate-now.ts 等模板及测试;设置 package.json 的 main 与 i18n:verify 脚本;在语言配置中声明 LANGUAGES、SOURCE_LANGUAGE 等;在根布局挂载 I18nProvider。新增语言时需补全目录文件、locale-data 导入、数字系统行、自称与方向。新增界面文本先从既有键查找,无则先写源语言文本再补全各语言,并保证占位符与复数类别一致。

适用场景:需要多语言支持、无障碍文本完整、复数规则复杂(阿拉伯语、俄语、波兰语等)或对 Jest 与真机格式化一致性有要求的 React Native/Expo 项目。

限制:资料主要围绕 React Native、Expo、Hermes 与 Jest 环境;需按安装表安装依赖并复制模板;部分主题(如权限流程)仅在任务涉及权限时交由其他技能处理;额外平台或非 Expo 场景的具体适配资料暂未提供。