package net.sf.openrocket.l10n;
import java.util.Locale;
+import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
public class ResourceBundleTranslator implements Translator {
private final ResourceBundle bundle;
+ private final ResourceBundle english;
/**
* Create a ResourceBundleTranslator using the default Locale.
*/
public ResourceBundleTranslator(String baseName, Locale locale) {
this.bundle = ResourceBundle.getBundle(baseName, locale);
+ this.english = ResourceBundle.getBundle(baseName, Locale.ROOT);
}
return bundle.getString(key);
}
+ @Override
+ public synchronized String get(String base, String text) {
+ String key = base + "." + L10N.normalize(text);
+ try {
+ return bundle.getString(key);
+ } catch (MissingResourceException e) {
+ return text;
+ }
+ }
+
+ @Override
+ public synchronized String getBaseText(String base, String translation) {
+ String prefix = base + ".";
+ for (String key : bundle.keySet()) {
+ if (key.startsWith(prefix)) {
+ String value = bundle.getString(key);
+ if (value.equals(translation)) {
+ return english.getString(key);
+ }
+ }
+ }
+ return translation;
+ }
}