Je travaille sur une application J2SE (pensez à l'application de style kiosque) qui utilise intensément les bundles de ressources et i18n. Cela inclut non seulement les traductions, mais aussi le formatage et d'autres problèmes liés à l'i18n. Nous avons mis en place une logique personnalisée pour homogénéiser le chargement des ressources, mais c'est assez simple. Le problème que j'ai est le MissingResourceException
. Même si je contourne la logique personnalisée en place dans l'application et appelez directement dans la classe ResourceBundle
pour charger ce groupe spécifique, Java n'est pas en mesure de le charger pour un environnement local spécifique. Voici l'exception de la racine avec trace de la pile:Java Missing Resource
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)
Le regroupement de ressources est dans un répertoire « version1 » placé dans un dossier de classe dans Eclipse qui est au sommet de mon chemin de classe. Ce dossier contient d'autres groupes de ressources qui sont chargés correctement à l'aide de la même logique de chargement du groupe de ressources, ainsi que de nombreuses configurations XML qui se chargent également correctement lorsqu'elles sont chargées à l'aide du chargeur de classes système. Les fichiers pertinents pour l'ensemble des ressources sont les suivantes:
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
Quand mon application démarre dans l'environnement local polonais, tout va bien. Si je me connecte en tant qu'utilisateur avec les paramètres régionaux polonais, tout va bien. Si je me connecte en tant qu'utilisateur britannique, l'application tente de charger tous les paquets en_GB (traductions, formateurs, etc.) et échoue sur ce paquet. Il ne peut pas trouver FormatResource_en_GB.properties
, ce qui est clairement dans le chemin de la classe: la liste de fichiers ci-dessus est un copier-coller à partir de la ligne de commande.
Un dernier problème que je trouve intéressant est que si je définis FormatResource_en_US.properties
dans le répertoire version1, alors même le fichier FormatResource_pl_PL.properties
ne se charge pas et l'application ne démarre même pas.
Vous avez des idées?