XMLを解析し、人間が読んで理解できるパーサーエラーのリスト(SAXParseException
正確に)を使用してexception.getMessage()
(同じものを返す)レポートを作成するサービスがあります。exception.getLocalizedMessage()
この例外メッセージを英語以外の言語にローカライズするには?
2 に答える
私は解決策を見つけました。最初に から取得する必要があり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
。
それだけです。このファイルへの変更は、例外メッセージに表示されます。
Java docに従って、を拡張SAXParseException
してオーバーライドする必要がありますgetLocalizedMessage
。デフォルトの実装は と同じものを返しますgetMessage
。
編集:言語ごとに個別のプロパティファイルを作成でき、それぞれにcode
とlocal message
. を上げると、と someSAXParseException
に基づいて、適切な が返されます。locale
code
message
MySAXParseException ex = new MySAXParseException(<code>);