我正在将相对较大的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集成项目似乎不太受欢迎 - 需要更改消息以使用命名参数
有人可以推荐其他一些图书馆吗?