簡體   English   中英

SAXParseException已本地化

[英]SAXParseException localized

我提供的服務可以使用人類讀取和理解的XML。並使用exception.getMessage()生成帶有解析器錯誤列表的報告(精確地為SAXParseException exception.getMessage()exception.getLocalizedMessage()返回相同的結果)。 如何用英語以外的其他語言本地化此異常消息?

我找到了解決方案。 首先需要從Apache Xerces獲取XMLSchemaMessages.properties 我從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

就這樣。 對該文件的更改將在異常消息中可見。

根據Java文檔 ,您需要擴展SAXParseException並覆蓋getLocalizedMessage ,默認實現返回與getMessage相同的結果。

編輯:您可以為每種語言使用單獨的屬性文件,並且在每種語言中可以包含codelocal message 當根據locale和一些code引發SAXParseException ,將返回適當的message

MySAXParseException ex = new MySAXParseException(<code>);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM