Improves error handling when unable to load a language and always uses english as backup language to make sure the plugin won't crash when an invalid language is chosen
This commit is contained in:
parent
341a445d16
commit
4f5cb84d02
@ -65,7 +65,7 @@ public class LanguageLoader {
|
|||||||
|
|
||||||
loadedStringTranslations = load(chosenLanguage);
|
loadedStringTranslations = load(chosenLanguage);
|
||||||
// We have a default hashMap used for when new text is added.
|
// We have a default hashMap used for when new text is added.
|
||||||
InputStream inputStream = getClass().getResourceAsStream("/lang/" + chosenLanguage + ".txt");
|
InputStream inputStream = getClass().getResourceAsStream("/lang/en.txt");
|
||||||
if (inputStream != null) {
|
if (inputStream != null) {
|
||||||
loadedBackupStrings = load("en", inputStream);
|
loadedBackupStrings = load("en", inputStream);
|
||||||
} else {
|
} else {
|
||||||
@ -89,10 +89,17 @@ public class LanguageLoader {
|
|||||||
* @return <p>The string in the user's preferred language</p>
|
* @return <p>The string in the user's preferred language</p>
|
||||||
*/
|
*/
|
||||||
public String getString(String name) {
|
public String getString(String name) {
|
||||||
String val = loadedStringTranslations.get(name);
|
String value = null;
|
||||||
if (val == null && loadedBackupStrings != null) val = loadedBackupStrings.get(name);
|
if (loadedStringTranslations != null) {
|
||||||
if (val == null) return "";
|
value = loadedStringTranslations.get(name);
|
||||||
return val;
|
}
|
||||||
|
if (value == null && loadedBackupStrings != null) {
|
||||||
|
value = loadedBackupStrings.get(name);
|
||||||
|
}
|
||||||
|
if (value == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -115,7 +122,14 @@ public class LanguageLoader {
|
|||||||
Map<String, String> currentLanguageValues = load(language);
|
Map<String, String> currentLanguageValues = load(language);
|
||||||
|
|
||||||
InputStream inputStream = getClass().getResourceAsStream("/lang/" + language + ".txt");
|
InputStream inputStream = getClass().getResourceAsStream("/lang/" + language + ".txt");
|
||||||
if (inputStream == null) return;
|
if (inputStream == null) {
|
||||||
|
Stargate.log.info("The language " + language + " is not available. You can add a custom language " +
|
||||||
|
"by creating a new text file in the lang directory.");
|
||||||
|
if (Stargate.debug) {
|
||||||
|
Stargate.log.info("Ubabke to load /lang/" + language + ".txt");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
boolean updated = false;
|
boolean updated = false;
|
||||||
FileOutputStream fileOutputStream = null;
|
FileOutputStream fileOutputStream = null;
|
||||||
@ -238,6 +252,9 @@ public class LanguageLoader {
|
|||||||
}
|
}
|
||||||
readLanguageFile(inputStreamReader, strings);
|
readLanguageFile(inputStreamReader, strings);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
if (Stargate.debug) {
|
||||||
|
Stargate.log.info("Unable to load chosen language");
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
} finally {
|
} finally {
|
||||||
if (fileInputStream != null) {
|
if (fileInputStream != null) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user