我有一个解析XML的服务,并使用SAXParseException
(exception.getMessage()
返回相同的内容)来生成包含解析器错误列表(exception.getLocalizedMessage()
)的报告,这些错误可供人类阅读和理解。如何使用英语以外的语言本地化此异常消息?
答案 0 :(得分:3)
我找到了解决方案。首先需要从XMLSchemaMessages.properties
获取Apache Xerces
。我从http://xerces.apache.org/下载了Xerces-J-src.2.11.0.tar.gz
,解压缩并从位置获取此文件:...\src\org\apache\xerces\impl\msg
。
现在将此文件重命名为 XMLSchemaMessages_pl.properties 或本地化您需要并放置在类路径中。我在Maven中有项目,所以我将此文件放入:src\main\resources\com\sun\org\apache\xerces\internal\impl\msg
。
就是这样。在异常消息中将显示对此文件的更改。
答案 1 :(得分:2)
根据java doc,您需要扩展SAXParseException
并覆盖getLocalizedMessage
,默认实现返回与getMessage
相同的内容。
编辑:
您可以为每种语言提供单独的属性文件,每种语言都可以code
和local message
。
根据{{1}}和部分SAXParseException
举起locale
时,会返回相应的code
。
message