用途:为 Web 与移动应用实现完整的希伯来语国际化(i18n),适用于需要支持希伯来语 RTL 布局、复数规则、日期与货币本地化的项目。
主要能力:
- 框架配置:React(react-intl、react-i18next)、Vue(vue-i18n)、Next.js App Router(next-intl)、Angular。方向应设置在根 <html> 元素上,运行时切换语言需同步更新 lang 与 dir。
- 复数:希伯来语有 one、two、other 三类(CLDR 42 起已移除 many)。ICU 用 {count, plural, one {...} two {...} other {...}};i18next 用 _one/_two/_other 后缀;vue-i18n 用管道分隔并注册 pluralRules 映射。
- 日期时间:Intl.DateTimeFormat('he-IL') 短日期为点分隔 DD.MM.YYYY;Intl.DateTimeFormat('he-IL-u-ca-hebrew') 可直接输出希伯来历;以色列工作周为周日至周四。
- 数字与货币:Intl.NumberFormat('he-IL') 与 currency ILS。注意格式化结果含不可见方向标记与不换行空格,比较或导出前可用 s.replace(/[\u200E\u200F]/g, '') 清理,切勿反向 parseFloat。
- RTL:使用 CSS 逻辑属性(margin-inline-start、text-start 等)与 Tailwind 的 ms-/me-/ps-/pe-/text-start;flex 会按 dir 自动反转。
- 双向文本:混排 LTR 内容用 dir="ltr" 或 bdi,自由文本输入用 dir="auto",邮箱/电话/URL 等固定 LTR 字段设 dir="ltr"。
- 框架 RTL:Vuetify 通过 locale.rtl.he;Angular 用 BidiModule;React Native 调用 I18nManager.allowRTL(true) 与 forceRTL(true),需重载后生效。
使用方式:安装并配置对应 i18n 框架,创建 he.json 消息文件(ICU 或对应语法),在根元素设置 dir 与 lang,替换硬编码文案为翻译键;可运行附带的 python scripts/generate_i18n.py 生成消息文件骨架。
限制与注意:React Native Hermes 引擎缺少 Intl.PluralRules,需检查并添加 polyfill(如 intl-pluralrules);i18next v24 起缺 Intl.PluralRules 时无回退,_two 会静默失效;vue-i18n 11.x 默认 legacy 模式忽略 pluralRules,需关闭 legacy;小数量词(如 0.5)Intl 会归为 one,应单独措辞。具体定价、平台支持范围等资料暂未提供。