M
m.a.k.
Gast
Hallo zusammen.
Ich hatte diese Frage nebenläufig in einem anderen Thread bereits gestellt, aber sie scheint aufgrund der Überschrift und des Hauptthemas untergegangen zu sein. Da da Frage allerdings für mich sehr wichtig ist, mache ich dafür noch einmal einen neuen Thread auf:
Also, es geht darum dass ich ein Programm schreiben möchte, welches von Anfang an mehrere Sprachen unterstützt. Hierfür benutze ich ListResourceBundles, auf welche ich über einen selbstgeschriebenen TextProvider zugreife. Diesem übergebe ich den Namen des Objekts und der Basisklasse, welche das Objekt enthält, und der TextProvider liefert mir den Text für das Objekt in der aktuell ausgewählten Sprache zurück.
Mein Problem ist nun folgendes: Wenn ich die Klassen für die ListResourceBundles in den Hauptpfad meiner Anwendung lege, dann läuft alles problemlos. Sobald ich diese allerdings in ein Package auslagere, werden sie nicht mehr gefunden. Ich erhalte dann folgende Fehlermeldung:
"Can't find bundle for base name MainMenu, locale de"
Ich weiß nicht, was ich falsch mache und die Code-Samples auf der offziellen SUN Seite helfen mir da leider auch nicht weiter. Hier ein paar Code Schnipsel um zu illustrieren, wie ich das ganze realisiert habe:
Eine meiner Ressourcen-Dateien:
Der Ausschnitt aus dem Text-Provider, wo ich auf die Ressourcen zugreife:
Ich hoffe, jemand findet da den Fehler und kann mir bei meinem Problem weiterhelfen. Ich sitze da jetzt schon einige Tage dran und komme nicht vorwärts ;(
Gruß
Markus
Ich hatte diese Frage nebenläufig in einem anderen Thread bereits gestellt, aber sie scheint aufgrund der Überschrift und des Hauptthemas untergegangen zu sein. Da da Frage allerdings für mich sehr wichtig ist, mache ich dafür noch einmal einen neuen Thread auf:
Also, es geht darum dass ich ein Programm schreiben möchte, welches von Anfang an mehrere Sprachen unterstützt. Hierfür benutze ich ListResourceBundles, auf welche ich über einen selbstgeschriebenen TextProvider zugreife. Diesem übergebe ich den Namen des Objekts und der Basisklasse, welche das Objekt enthält, und der TextProvider liefert mir den Text für das Objekt in der aktuell ausgewählten Sprache zurück.
Mein Problem ist nun folgendes: Wenn ich die Klassen für die ListResourceBundles in den Hauptpfad meiner Anwendung lege, dann läuft alles problemlos. Sobald ich diese allerdings in ein Package auslagere, werden sie nicht mehr gefunden. Ich erhalte dann folgende Fehlermeldung:
"Can't find bundle for base name MainMenu, locale de"
Ich weiß nicht, was ich falsch mache und die Code-Samples auf der offziellen SUN Seite helfen mir da leider auch nicht weiter. Hier ein paar Code Schnipsel um zu illustrieren, wie ich das ganze realisiert habe:
Eine meiner Ressourcen-Dateien:
Code:
public class MainMenu_de extends ListResourceBundle
{
public Object[][] getContents()
{
return contents;
}
static final Object[][] contents =
{
// LOCALIZE THIS
//window title
{"MainMenu", "Hauptmenü"},
//u.s.w.
// END OF MATERIAL TO LOCALIZE
};
}
Der Ausschnitt aus dem Text-Provider, wo ich auf die Ressourcen zugreife:
Code:
ResourceBundle res; //resource bundle for specified base and selected language
try
{
//get the resource bundle
if(strCurrentLanguage == GERMAN)
res = ResourceBundle.getBundle(strBaseName, Locale.GERMAN);
else
res = ResourceBundle.getBundle(strBaseName, Locale.ENGLISH);
//get the string for the specified object
return(res.getString(strObj));
}
catch(java.util.MissingResourceException e)
{
System.out.println(e.getMessage());
return(getDefaultCaption());
}
Ich hoffe, jemand findet da den Fehler und kann mir bei meinem Problem weiterhelfen. Ich sitze da jetzt schon einige Tage dran und komme nicht vorwärts ;(
Gruß
Markus