Java JRE: как добавить локализованные ресурсы в стандартные ресурсы JRE - PullRequest
2 голосов
/ 27 июля 2011

Мне нужно, чтобы JRE использовал переведенные версии ресурса JRE, который доступен только на английском языке.

Согласно документу ResourceBundle.java это легко: добавить локализованные ресурсы с правильным суффиксом локали. Например, стандарт

  • XMLSchemaMessages.properties

станет переведенной версией:

  • XMLSchemaMessages_FR.properties

и т. Д.

РЕДАКТИРОВАТЬ: этот конкретный файл живет в: ком \ ВС \ орг \ Apache \ Xerces \ внутренний \ осущ \ тзд \ XMLSchemaMessages.properties

Мой вопрос: как мне сделать эти дополнительные ресурсы видимыми для JRE?

Заранее спасибо за любую помощь. - ура

Ответы [ 2 ]

2 голосов
/ 12 января 2014

Приведенные выше ответы заняли у меня некоторое время, чтобы потренироваться.

Просто для того, чтобы другим было проще, вот краткое изложение того, как отображать сообщения об ошибках, относящиеся к локали, если вы попытаетесь выполнить синтаксический анализ XML-документаСхема XML с внутренним синтаксическим анализатором Xerces в Java:

Найдите соответствующий файл свойств в формате

XMLSchemaMessages_<lower_case_language_code>.properties

Для итальянского языка я обнаружил XMLSchemaMessages_it.properties на следующем сайте (который может быть старой версией,но у меня это сработало)

http://grepcode.com/file/repo1.maven.org/maven2/com.sun.xml.parsers/jaxp-ri/1.4.5/com/sun/org/apache/xerces/internal/impl/msg/XMLSchemaMessages_it.properties

Затем я создал структуру каталогов во временном каталоге для хранения нового файла

com\sun\org\apache\xerces\internal\impl\msg

Поскольку файлы JAR и ZIP-файлы имеют одинаковый формат (и я ленивый, и сегодня я использовал Windows), затем я заархивировал вышеупомянутый каталог com, создав файл с именем com.zip.Затем я изменил имя файла

rename com.zip to XMLSchemaMessages_Locale.jar

, а затем переместил новый файл jar на

C:\Program Files\Java\jdk1.7.0_04\jre\lib\ext

Конечно, указанный выше путь зависит от вашей платформы и конкретной версии Java (яиспользовала Windows 7).

Вместо архивации, если у вас есть JDK, вы можете легко собрать файл jar с помощью командной строки jar , из Unix, Linux или Windows.

2 голосов
/ 27 июля 2011

Предполагая, что Xerces использует ResourceBundle для получения сообщений, вы должны поместить новый файл в

com\sun\org\apache\xerces\internal\impl\msg\XMLSchemaMessages<locale>.properties 

, где locale - правильный идентификатор нужной вам локали.

Затем укажите точное местоположение, куда загружается пакет ресурсов XMLSchemaMessages, и установите точку останова, чтобы вы пошагово проходили процедуру загрузки ResourceBundle в JRE (здесь рекомендуется JDK, поэтому у вас есть источник для среды выполнения)и вы можете видеть, что ищется.

Примечание. Здесь вы имеете дело с анализатором XML для конкретного поставщика, то есть это будет зависеть от Oracle и может даже работать только на некоторых версиях Java.Вы хотели бы добавить свой собственный анализатор XML и вместо этого локализовать его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...