Hallo zusammen!
Ich will eine Liste aller Sprachen herausbekommen. Nun hats ja vor langer Zeit eine Änderung der ISO-Codes für die Sprachkürzel gegeben (Hebräisch, Indonesisch, Jiddisch). Aus Kompatibilitätsgründen werden diese mitgeführt. Ich will nun nur eine Funktion haben, die mir die richtigen Kürzel zurückliefert (keine doppelten Einträge). Als Endergebnis will ich die Auflistung der Sprachen haben.
Ich hab jetzt aber zwei Beispiele dazu gefunden. Im Ersten Beispiel werden mir alle (auch die alten) Codes ausgegeben.
[Java] String[] languageCodes = Locale.getISOLanguages();
List<Language> languages = new ArrayList<Language>(languageCodes.length);
for (String lang : languageCodes) {
System.out.println(lang);
languages.add(new Language(lang, new Locale(lang, "").getDisplayLanguage(Locale.ENGLISH)));
}
[/Java]
Im Zweiten passiert das nicht.
[Java]
for (String lang : Locale.getISOLanguages()) {
Locale loc = new Locale(lang);
System.out.println(loc.getDisplayLanguage(Locale.ENGLISH));
}[/Java]
Warum geht es im Zweiten und was ist der große Unterschied? Das immer ein neues Locale-Objekt erzeugt wird?
Ich möchte, dass das erste Beispiel die gleichen richtigen Ausgaben macht, wie das zweite. Könnt ihr mir dabei helfen?
Dann hätte ich noch eine Frage: Warum kann ich getIso3Languages() nicht aufrufen? Falsche Java-Version? Falsches Paket?
Grüße
testing
PS: Anhang
Language-Klasse:
[Java]public class Language {
private String languageCode;
private String name;
public Language() { }
public Language(String languageCode, String name) {
this.languageCode = languageCode;
this.name = name;
}
public String getLanguageCode() {
return languageCode;
}
public void setLanguageCode(String languageCode) {
this.languageCode = languageCode;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return languageCode + ", " + name;
}
}[/Java]
Quellen:
Bashan's Technology Blog: Getting Languages list in Java
Gmane -- Mail To News And Back Again
Ich will eine Liste aller Sprachen herausbekommen. Nun hats ja vor langer Zeit eine Änderung der ISO-Codes für die Sprachkürzel gegeben (Hebräisch, Indonesisch, Jiddisch). Aus Kompatibilitätsgründen werden diese mitgeführt. Ich will nun nur eine Funktion haben, die mir die richtigen Kürzel zurückliefert (keine doppelten Einträge). Als Endergebnis will ich die Auflistung der Sprachen haben.
Ich hab jetzt aber zwei Beispiele dazu gefunden. Im Ersten Beispiel werden mir alle (auch die alten) Codes ausgegeben.
[Java] String[] languageCodes = Locale.getISOLanguages();
List<Language> languages = new ArrayList<Language>(languageCodes.length);
for (String lang : languageCodes) {
System.out.println(lang);
languages.add(new Language(lang, new Locale(lang, "").getDisplayLanguage(Locale.ENGLISH)));
}
[/Java]
Im Zweiten passiert das nicht.
[Java]
for (String lang : Locale.getISOLanguages()) {
Locale loc = new Locale(lang);
System.out.println(loc.getDisplayLanguage(Locale.ENGLISH));
}[/Java]
Warum geht es im Zweiten und was ist der große Unterschied? Das immer ein neues Locale-Objekt erzeugt wird?
Ich möchte, dass das erste Beispiel die gleichen richtigen Ausgaben macht, wie das zweite. Könnt ihr mir dabei helfen?
Dann hätte ich noch eine Frage: Warum kann ich getIso3Languages() nicht aufrufen? Falsche Java-Version? Falsches Paket?
Grüße
testing
PS: Anhang
Language-Klasse:
[Java]public class Language {
private String languageCode;
private String name;
public Language() { }
public Language(String languageCode, String name) {
this.languageCode = languageCode;
this.name = name;
}
public String getLanguageCode() {
return languageCode;
}
public void setLanguageCode(String languageCode) {
this.languageCode = languageCode;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return languageCode + ", " + name;
}
}[/Java]
Quellen:
Bashan's Technology Blog: Getting Languages list in Java
Gmane -- Mail To News And Back Again