[Schmitzm-commits] r1086 - trunk/src/schmitzm/lang
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Sat Oct 9 22:00:59 CEST 2010
Author: mojays
Date: 2010-10-09 22:00:58 +0200 (Sat, 09 Oct 2010)
New Revision: 1086
Modified:
trunk/src/schmitzm/lang/ResourceProvider.java
Log:
Workaround in ResourceProvider replaced by using ResourceBundle.Control.getNoFallbackControl(..).
Hope, this also deals with all ResourceProvider functionalitie, like #resetResourceBundle(..).
Little test in Xulu was successful.
Modified: trunk/src/schmitzm/lang/ResourceProvider.java
===================================================================
--- trunk/src/schmitzm/lang/ResourceProvider.java 2010-10-09 17:46:52 UTC (rev 1085)
+++ trunk/src/schmitzm/lang/ResourceProvider.java 2010-10-09 20:00:58 UTC (rev 1086)
@@ -88,7 +88,10 @@
* @version 1.0
*/
public class ResourceProvider {
- /**
+ /** Default {@link ResourceBundle.Control} with no fallback */
+ private static final ResourceBundle.Control RBC_NOFALLBACK = ResourceBundle.Control.getNoFallbackControl( ResourceBundle.Control.FORMAT_DEFAULT );
+
+ /**
* Enthaelt automatisch alle erzeugten {@link ResourceProvider}. Wird im
* Konstruktor von {@link ResourceProvider} automatisch befuellt.<br>
*/
@@ -451,38 +454,41 @@
}
try {
- // PROBLEM: ResourceBundle.getBundle(.) faellt zunaechst auf
- // das Bundle in der DefaultLocale zurueck, bevor
- // auf den FallBack (Root) zurueckgegriffen wird.
- // -> wird die Methode fuer eine explizite Locale aufgerufen,
- // die es nicht gibt, liefert sie nicht den FallBack,
- // sondern die DefaultLocale
- //
- // Workaround: Wenn "requestedLocale" gesetzt und von der
- // DefaultLocale abweicht, wird die DefaultLocale
- // "kurzzeitig" umgestellt, so dass auf den
- // FallBack zurueckgegriffen wird
- Locale resetDefaultLocale = null;
- if ( requestedLocale != null && !requestedLocale.equals(Locale.getDefault()) ) {
- resetDefaultLocale = Locale.getDefault();
- Locale.setDefault(requestedLocale);
- }
+// Workaround replaced by using: RBC_NOFALLBACK := ResourceBundle.Control.getNoFallbackControl(..)
+// I hope this also deals with all ResourceProvider functionalitie, like #resetResourceBundle(..)
+//
+// // PROBLEM: ResourceBundle.getBundle(.) faellt zunaechst auf
+// // das Bundle in der DefaultLocale zurueck, bevor
+// // auf den FallBack (Root) zurueckgegriffen wird.
+// // -> wird die Methode fuer eine explizite Locale aufgerufen,
+// // die es nicht gibt, liefert sie nicht den FallBack,
+// // sondern die DefaultLocale
+// //
+// // Workaround: Wenn "requestedLocale" gesetzt und von der
+// // DefaultLocale abweicht, wird die DefaultLocale
+// // "kurzzeitig" umgestellt, so dass auf den
+// // FallBack zurueckgegriffen wird
+// Locale resetDefaultLocale = null;
+// if ( requestedLocale != null && !requestedLocale.equals(Locale.getDefault()) ) {
+// resetDefaultLocale = Locale.getDefault();
+// Locale.setDefault(requestedLocale);
+// }
// Ressource im gesetzten Bundle suchen
final ResourceBundle pBundle = ResourceBundle.getBundle(
- primaryBundle, locale);
+ primaryBundle, locale, RBC_NOFALLBACK);
- // Ende von Workaroud: Wenn DefaulLocale umgestellt wurde, wieder
- // zurueck-switchen
- if ( resetDefaultLocale != null )
- Locale.setDefault(resetDefaultLocale);
+// // Ende von Workaroud: Wenn DefaulLocale umgestellt wurde, wieder
+// // zurueck-switchen
+// if ( resetDefaultLocale != null )
+// Locale.setDefault(resetDefaultLocale);
return pBundle.getObject(prefix + key);
} catch (final MissingResourceException err) {
// Ressource im Standard-Bundle suchen
try {
return ResourceBundle.getBundle(defaultResourceBundle,
- locale).getObject(key);
+ locale, RBC_NOFALLBACK).getObject(key);
} catch (final MissingResourceException err2) {
// Wenn Ressource auch im Standard-Bundle nicht vorhanden ist,
// Fehler werfen (oder ignorieren)
More information about the Schmitzm-commits
mailing list