我正在将相对较大的 java 应用程序迁移到 React,并且需要在 React 应用程序中实现国际化。当然,React 中有许多可用于 i18n 的库,例如 FormaJS 和 i18next,但我发现它们中的大多数都没有满足我的要求:
所有翻译已经以 java 资源包的形式完成,其中键和消息如下所示:
simpleKey = Hi! multiParamterKey = Dear {0}, I have {1} messages for you formattingKey = Ticket {0,number,#} has been closed multiLineKey = Dear {0}, \n\ \n\ Have a nice day \n\ otherKey = ...
我们不需要复数,但希望避免用
{0}
命名参数替换数字参数{key1}
,如果可能的话,因为它可能会很棘手,尤其是涉及格式(formattingKey)的地方。我也必须使用现有的密钥。该库应支持后备翻译的语言环境。即,如果我将德语语言环境设置为备用语言环境并翻译英语的键,则 _en 文件/源中的所有缺失键都应使用 _ge 文件/源进行翻译
(理想情况下)库应允许动态更改后备和当前语言环境
(理想情况下)库应该允许使用 ajax 加载包
我决定反对 FormatJS 主要是因为 id 不支持后备语言环境。它有一个默认翻译的概念,在使用时应该在组件中提供。
我接近决定反对 i18next,因为 - React 集成项目似乎不是很受欢迎 - 需要更改消息以使用命名参数
谁能推荐一些其他的图书馆?