1
0
mirror of https://github.com/mitb-archive/filebot synced 2025-03-09 22:09:47 -04:00

* more resilient error handling in case of illegal user locale

This commit is contained in:
Reinhard Pointner 2012-03-02 04:51:19 +00:00
parent b509f108d0
commit f7c2d8eb69
2 changed files with 18 additions and 16 deletions

View File

@ -18,40 +18,40 @@ public class Language {
private final String code; private final String code;
private final String name; private final String name;
public Language(String code, String name) { public Language(String code, String name) {
this.code = code; this.code = code;
this.name = name; this.name = name;
} }
public String getCode() { public String getCode() {
return code; return code;
} }
public String getName() { public String getName() {
return name; return name;
} }
@Override @Override
public String toString() { public String toString() {
return name; return name;
} }
public Locale toLocale() { public Locale toLocale() {
return new Locale(getCode()); return new Locale(getCode());
} }
@Override @Override
public Language clone() { public Language clone() {
return new Language(code, name); return new Language(code, name);
} }
public static final Comparator<Language> ALPHABETIC_ORDER = new Comparator<Language>() { public static final Comparator<Language> ALPHABETIC_ORDER = new Comparator<Language>() {
@Override @Override
@ -60,18 +60,18 @@ public class Language {
} }
}; };
public static Language getLanguage(String code) { public static Language getLanguage(String code) {
ResourceBundle bundle = ResourceBundle.getBundle(Language.class.getName()); ResourceBundle bundle = ResourceBundle.getBundle(Language.class.getName());
try { try {
return new Language(code, bundle.getString(code + ".name")); return new Language(code, bundle.getString(code + ".name"));
} catch (Exception e) { } catch (Exception e) {
return null; return new Language(code, new Locale(code).getDisplayLanguage(Locale.ROOT));
} }
} }
public static List<Language> getLanguages(String... codes) { public static List<Language> getLanguages(String... codes) {
Language[] languages = new Language[codes.length]; Language[] languages = new Language[codes.length];
@ -82,7 +82,7 @@ public class Language {
return asList(languages); return asList(languages);
} }
public static Language getLanguageByName(String name) { public static Language getLanguageByName(String name) {
for (Language it : availableLanguages()) { for (Language it : availableLanguages()) {
if (name.equalsIgnoreCase(it.getName())) if (name.equalsIgnoreCase(it.getName()))
@ -92,7 +92,7 @@ public class Language {
return null; return null;
} }
public static String getISO3LanguageCodeByName(String languageName) { public static String getISO3LanguageCodeByName(String languageName) {
Language language = Language.getLanguageByName(languageName); Language language = Language.getLanguageByName(languageName);
if (language != null) { if (language != null) {
@ -106,19 +106,19 @@ public class Language {
return null; return null;
} }
public static List<Language> availableLanguages() { public static List<Language> availableLanguages() {
ResourceBundle bundle = ResourceBundle.getBundle(Language.class.getName()); ResourceBundle bundle = ResourceBundle.getBundle(Language.class.getName());
return getLanguages(bundle.getString("languages.all").split(",")); return getLanguages(bundle.getString("languages.all").split(","));
} }
public static List<Language> commonLanguages() { public static List<Language> commonLanguages() {
ResourceBundle bundle = ResourceBundle.getBundle(Language.class.getName()); ResourceBundle bundle = ResourceBundle.getBundle(Language.class.getName());
return getLanguages(bundle.getString("languages.common").split(",")); return getLanguages(bundle.getString("languages.common").split(","));
} }
public static List<Language> preferredLanguages() { public static List<Language> preferredLanguages() {
Set<String> codes = new LinkedHashSet<String>(); Set<String> codes = new LinkedHashSet<String>();

View File

@ -235,7 +235,9 @@ public class RenamePanel extends JComponent {
@Override @Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
setIcon(ResourceManager.getFlagIcon(((Language) value).getCode())); if (value != null) {
setIcon(ResourceManager.getFlagIcon(((Language) value).getCode()));
}
return this; return this;
} }
}); });