4

我正在将相对较大的 java 应用程序迁移到 React,并且需要在 React 应用程序中实现国际化。当然,React 中有许多可用于 i18n 的库,例如 FormaJS 和 i18next,但我发现它们中的大多数都没有满足我的要求:

  1. 所有翻译已经以 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)的地方。我也必须使用现有的密钥。

  2. 该库应支持后备翻译的语言环境。即,如果我将德语语言环境设置为备用语言环境并翻译英语的键,则 _en 文件/源中的所有缺失键都应使用 _ge 文件/源进行翻译

  3. (理想情况下)库应允许动态更改后备和当前语言环境

  4. (理想情况下)库应该允许使用 ajax 加载包

我决定反对 FormatJS 主要是因为 id 不支持后备语言环境。它有一个默认翻译的概念,在使用时应该在组件中提供。

我接近决定反对 i18next,因为 - React 集成项目似乎不是很受欢迎 - 需要更改消息以使用命名参数

谁能推荐一些其他的图书馆?

4

0 回答 0