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:
parent
b509f108d0
commit
f7c2d8eb69
@ -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>();
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user