Я работаю над приложением J2SE (например, в стиле киоска), которое интенсивно использует пакеты ресурсов и i18n.Это включает в себя не только переводы, но и форматирование и другие проблемы i18n.У нас есть собственная логика для гомогенизации загрузки ресурсов, но она довольно проста.У меня есть проблема MissingResourceException
.Даже если я обойду пользовательскую логику, установленную в приложении, и вызову напрямую в класс ResourceBundle
, чтобы загрузить этот конкретный пакет, Java не сможет загрузить его для определенной локали.Вот корневое исключение с трассировкой стека:
Caused by: java.util.MissingResourceException: Can't find bundle for base name version1/FormatResource, locale en_GB
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:836)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:726)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:576)
Пакет ресурсов находится в каталоге "version1", расположенном в папке классов в Eclipse, которая находится в верхней части моего пути к классам.Эта папка содержит другие пакеты ресурсов, которые нормально загружаются с использованием той же логики загрузки пакетов ресурсов, а также многочисленные XML-конфигурации, которые также хорошо загружаются при загрузке с помощью загрузчика системного класса.Соответствующие файлы для пакета ресурсов:
FormatResource_cs_CZ.properties
FormatResource_en_GB.properties
FormatResource_fr_BE.properties
FormatResource_fr_FR.properties
FormatResource_hu_HU.properties
FormatResource_nl_BE.properties
FormatResource_nl_NL.properties
FormatResource_pl_PL.properties
FormatResource_sk_SK.properties
Когда мое приложение запускается в польском языке, все в порядке.Если я захожу как пользователь с польским языком, все в порядке.Если я войду в систему как британский пользователь, приложение попытается загрузить все пакеты en_GB (переводы, средства форматирования и т. Д.) И завершится сбоем в этом пакете.Он не может найти FormatResource_en_GB.properties
, что явно указывается в пути к классам: приведенный выше список файлов является копией и вставкой из командной строки.
Еще одна проблема, которая мне кажется интересной, заключается в том, что если я определю FormatResource_en_US.properties
в каталоге version1 даже файл FormatResource_pl_PL.properties
не загружается и приложение даже не запускается.
У кого-нибудь есть идеи?