Hi, ich habe für die Mehrsprachigkeit eines Java Programmes die eingebaute Funktion von eclipse benutzt.
Das funktioniert ja auch schön und gut.
Aber ich möchte, dass der Benutzer es selbst festlegen kann welche Sprache das Programm hat (ohne dass er im Code es manuell ändert). Dafür habe ich mir überlegt eine Konfigurationsdatei zu benutzen. Bei jedem Start soll zuerst der Inhalt der Datei gelesen werden und daraufhin entschieden werden, welche properties Datei er zu benutzen hat. Leider klappt es nicht.
Ich denke jetzt, dass ich mit dieser Idee leider vermutlich komplett auf dem Holzweg bin und brauche deshalb Hilfe...
Also beim Wechseln der Sprache innerhalb des Programmes soll dann nur der Inhalt der Konfigurationsdatei verändert werden und beim erneuten Start des Programmes die "neue" Sprache geladen und auch benutzt werden...
Vielen Dank bereits fuer das Lesen und (hoffentlich) weiterhelfen..
Java:
package model;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class LanguageChooser {
public static String BUNDLE_NAME = "model.de_language"; //$NON-NLS-1$
private static ResourceBundle RESOURCE_BUNDLE = ResourceBundle
.getBundle(BUNDLE_NAME);
public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}
Das funktioniert ja auch schön und gut.
Aber ich möchte, dass der Benutzer es selbst festlegen kann welche Sprache das Programm hat (ohne dass er im Code es manuell ändert). Dafür habe ich mir überlegt eine Konfigurationsdatei zu benutzen. Bei jedem Start soll zuerst der Inhalt der Datei gelesen werden und daraufhin entschieden werden, welche properties Datei er zu benutzen hat. Leider klappt es nicht.
Java:
private static String location = System.getProperty("user.dir");
public static void loadConfig() {
try {
BufferedReader datei = new BufferedReader(new FileReader(location +".conf"));
while ((content = datei.readLine()) != null) {
text = content;
}
datei.close();
if (text == "german")
{
model.LanguageChooser.BUNDLE_NAME = "model.de_language";
}
else if (text == "english")
{
model.LanguageChooser.BUNDLE_NAME = "model.en_language";
}
else if (text == "french")
{
model.LanguageChooser.BUNDLE_NAME = "model.fr_language";
}
else if (text == "italian")
{
model.LanguageChooser.BUNDLE_NAME = "model.it_language";
}
else if (text == "italian")
{
model.LanguageChooser.BUNDLE_NAME = "model.ru_language";
}
//Konfigurationsdatei hat einen ungueltigen Wert fuehrt zur Standartsprache deutsch
else
{
model.LanguageChooser.BUNDLE_NAME = "model.de_language";
}
} catch (FileNotFoundException e) {
// kann nicht vorkommen, da dies bereits davor abgefangen wird
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Fehler beim Laden der Konfigurationsdatei.");
}
}
Ich denke jetzt, dass ich mit dieser Idee leider vermutlich komplett auf dem Holzweg bin und brauche deshalb Hilfe...
Also beim Wechseln der Sprache innerhalb des Programmes soll dann nur der Inhalt der Konfigurationsdatei verändert werden und beim erneuten Start des Programmes die "neue" Sprache geladen und auch benutzt werden...
Vielen Dank bereits fuer das Lesen und (hoffentlich) weiterhelfen..