我需要 JRE 来使用仅提供英文版本的 JRE 资源的翻译版本。
根据 ResourceBundle.java 文档,这很简单:添加具有正确语言环境后缀的本地化资源。例如,标准
- XMLSchemaMessages.properties
将成为翻译版本:
- XMLSchemaMessages_FR.properties
等等。
编辑:这个特定文件位于: com\sun\org\apache\xerces\internal\impl\msg\XMLSchemaMessages.properties
我的问题是:如何让这些额外资源对 JRE 可见?
在此先感谢您的帮助。 --干杯
最佳答案
假设Xerces 使用ResourceBundle 来获取消息,您应该将一个新文件放入
com\sun\org\apache\xerces\internal\impl\msg\XMLSchemaMessages<locale>.properties
其中 locale 是您需要的语言环境的正确标识符。
然后确定加载 XMLSchemaMessages 资源包的确切位置,并设置一个断点,这样您就可以在 JRE 中单步执行 ResourceBundle 加载过程(这里推荐使用 JDK,这样您就有了运行时的源代码),您可以查看正在搜索的内容。
注意:您在这里处理的是特定于供应商的 XML 解析器,这意味着这将是特定于 Oracle 的,甚至可能只适用于某些 Java 版本。是否考虑引入您自己的验证 XML 解析器并将其本地化?
关于localization - Java JRE : How to add localized resources to stantard JRE resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848106/