ResourceBundle VerständnisProblem?

Alexander_87

Mitglied
Hi Community,

ich wurde ins kalte Wasser gestoßen... mal wieder...

Ich habe eine Anwendung, in der mehrere Sprachen eingestellt werden können.
Hierfür soll ich via ResourceBundle die Spracheinstellung übernehmen.

Hierfür habe ich mal testweise zwei Files angelegt:
Translation_de.properties //Logischerweiße die deutsche Übersetzung
Translation_en.properties //Hier folglich die englische

Wenn ich jetzt in einem Testprogramm folgendes ausführe:
Code:
String baseName = "ressource.Translation";
		
		try{
			ResourceBundle bundle = ResourceBundle.getBundle( baseName ); 
			System.out.println( bundle.getString("1") ); 
		} 
		catch ( MissingResourceException e ) { 
			System.err.println( e ); 
		}

Bekomme ich den folgenden Fehler:
java.util.MissingResourceException: Can't find bundle for base name ressource.Translation, locale de_DE

--> das locale de_DE heißt ja soweit ich weiß, dass ich die Sprache Deutsch und das Land Deutschland habe.

Ich würde ja wagen zu behaupten, dass mein Programm die Datei nicht finden kann, aber eigentlich ist diese ja vorhanden. Kann es sein, dass das irgendetwas mit den Spracheinstellungen zu tun hat?

Kann es sein, dass ich die Datei umbennen muss?

Ein zweiter Punkt, ich möchte, wenn zur gewählten Sprache keine Übersetzung vorhanden ist, dass standardmäßig Englisch dargestellt wird, wie kann ich das implementieren?
--> Geht ja über Locale.setDefault(Locale.ENGLISH); oder?

Danke schonmal für eure Hilfe

Gruß Alex
 
Zuletzt bearbeitet:
Neues Problem

So, ich hab jetzt nochmal ein neues Problem.

Angenommen ich habe als .properties eine Liste in dieser Art:
Code:
String1 = Erklärung1
String2 = Erklärung2
String3 = Erklärung3
String4 = Erklärung4
String5 = Erklärung5
...
StringX = ErklärungX
Kann ich durch eine Schleife einen Durchlauf erzwignen, die mir bei String1 das laufen anfängt und bei StringX aufhört?

Ich möchte eine Art Übersetzer schreiben.
Dabei sollen der Reihe nach alles Erklärungen übersetzt werden, aber dazu muss ich immer die passende Erklärung zum String bekommen, weiß jemand ob / wie das zu machen ist?

Danke schonmal für eure Hilfe!

Gruß Alex
 
Das sind property Dateien, du könntest einfach ein Properties.load() verwenden, oder einfach die Methode #getKeys()

Java:
Enumeration<String> allKeys = bundle.getKeys();
while(allKeys.hasMoreElements()) {
	String key = allKeys.nextElement();
	System.out.println(key.toUpperCase() + " -> " + bundle.getString(key));
}

Wie willste denn dann die Übersetzung machen? Kurz bei dict.cc oder dict.leo.org anklingeln? ;-)
 
Zuletzt bearbeitet von einem Moderator:
Genau sowas habe ich gesucht! Danke!

Naja das Tool ist im Prinzip nur ein Programm, was eine Liste durchgehen soll, die Begriffe anzeigen und dann soll ein User die Übersetzung eintragen, könnte man auch einfach in einer Excel-Tabelle machen, aber ich soll es über ein solches Programm machen...
 
Zuletzt bearbeitet:
Zurück