我想知道是否可以(以及使用哪种工具)在 Java 中执行类型安全 i18n。也许不清楚所以这里有一些细节,假设我们使用基于MessageFormat
1) 使用类型安全参数进行翻译
我想避免有一个接口,比如String translate(Object key,Object... values)
没有类型的值。应该不可能使用错误的参数类型进行调用。
注意我可以指定所有键的类型。我正在寻找的解决方案应该是可扩展的,并且不应显着增加后端启动时间。
2)应该在编译时知道哪些键仍在使用
我不希望我的翻译键库像许多网站的 CSS 一样,永远增长和增长,每个人都害怕删除键,因为我们不容易知道它们是否仍然有用。
在 JS/React 领域有babel-plugin-react-intl允许在编译时提取仍然在代码中找到的翻译键。然后我们可以使用我们的翻译后端/SaaS 来区分这些密钥,并自动删除未使用的密钥。在 Java 领域有什么类似的经历吗?
我在找:
- 关于我遇到的这两个问题,您拥有的任何可以使 i18n 在 Java 中更易于管理的技巧
- 当前可能帮助我解决问题的工具
- 如果工具不存在,如何实现自定义的提示
此外,Enum 是否适合存储大量固定的翻译键列表?