Hallo zusammen,
ich habe mit eine Übersetzung für meine Java Swing Anwendung implementiert welche wiefolgt aussieht
Die Import deklarationen habe ich entfernt.
Translation.java
Der Aufruf
Meine Idee für eine Optimierung
Immer wenn jetzt der String "Hallo" verwendet werden soll wird die Variable "TXT_HALLO" verwendet.
Was haltet Ihr davon ?
ich habe mit eine Übersetzung für meine Java Swing Anwendung implementiert welche wiefolgt aussieht
Die Import deklarationen habe ich entfernt.
Translation.java
Java:
public final class Translation {
private PropertieHandler propertieHandler = PropertieHandler.getInstance();
private static Translation instance;
private static Logger logger = Logger.getInstance();
private Sprache sprache;
private ResourceBundle bundle;
private Translation() {
loadSprache();
this.bundle = loadResourceBundle();
initOptionPaneButtons();
}
public static Translation getInstance() {
if (instance == null) {
instance = new Translation();
}
return instance;
}
public void setSprache(final Sprache inSprache) {
this.sprache = inSprache;
this.bundle = loadResourceBundle();
}
public String getText(final String text) {
String result = null;
try {
result = this.bundle.getString(text);
} catch (MissingResourceException | NullPointerException e) {
logger.log(Level.ERROR, e, Translation.class);
} finally {
if (result == null) {
result = "!!".concat(text).concat("!!");
}
}
return result;
}
private void loadSprache() {
Integer spracheId = this.propertieHandler.getIntegerPropertie(MouseRecorderStatics.SPRACHE);
this.sprache = Sprache.getSpracheByIndex(spracheId);
setSprache(this.sprache);
}
private ResourceBundle loadResourceBundle() {
ResourceBundle innerBundle = null;
File file = new File(MouseRecorderStatics.LANGUAGE_PATH);
ClassLoader loader = null;
try {
URL[] urls = { file.toURI().toURL() };
loader = new URLClassLoader(urls);
innerBundle = ResourceBundle.getBundle(MouseRecorderStatics.LANGUAGE_FILE_SUFFIX, this.sprache.getLocale(), loader);
} catch (MalformedURLException e) {
logger.log(Level.ERROR, e, Translation.class);
}
return innerBundle;
}
public Sprache getSprache() {
return this.sprache;
}
private void initOptionPaneButtons() {
UIManager.put("OptionPane.yesButtonText", bundle.getString("Yes"));
UIManager.put("OptionPane.noButtonText", bundle.getString("No"));
UIManager.put("OptionPane.cancelButtonText", bundle.getString("Cancel"));
}
}
Der Aufruf
Java:
public void t(){
Translation translation = Translation.getInstance();
translation.getText("Hallo");
}
Meine Idee für eine Optimierung
Java:
public static final String TXT_HALLO = "Hallo";
public void t(){
Translation translation = Translation.getInstance();
translation.getText(TXT_HALLO);
}
Immer wenn jetzt der String "Hallo" verwendet werden soll wird die Variable "TXT_HALLO" verwendet.
Was haltet Ihr davon ?