mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-23 07:10:46 +00:00
Fix language fallback'ing
This commit is contained in:
parent
a269ff9563
commit
2416dd66e5
@ -48,11 +48,13 @@ public final class Language {
|
||||
|
||||
try {
|
||||
InputStream file = Grasscutter.class.getResourceAsStream("/languages/" + fileName);
|
||||
if(file == null) {
|
||||
String translationContents = Utils.readFromInputStream(file);
|
||||
if(translationContents.equals("empty")) {
|
||||
file = Grasscutter.class.getResourceAsStream("/languages/" + fallback);
|
||||
translationContents = Utils.readFromInputStream(file);
|
||||
}
|
||||
|
||||
languageData = Grasscutter.getGsonFactory().fromJson(Utils.readFromInputStream(file), JsonObject.class);
|
||||
languageData = Grasscutter.getGsonFactory().fromJson(translationContents, JsonObject.class);
|
||||
} catch (Exception exception) {
|
||||
Grasscutter.getLogger().warn("Failed to load language file: " + fileName, exception);
|
||||
}
|
||||
|
@ -18,6 +18,8 @@ import io.netty.buffer.Unpooled;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import static emu.grasscutter.utils.Language.translate;
|
||||
|
||||
@SuppressWarnings({"UnusedReturnValue", "BooleanMethodIsAlwaysInverted"})
|
||||
@ -253,7 +255,9 @@ public final class Utils {
|
||||
* @param stream The input stream.
|
||||
* @return The string.
|
||||
*/
|
||||
public static String readFromInputStream(InputStream stream) {
|
||||
public static String readFromInputStream(@Nullable InputStream stream) {
|
||||
if(stream == null) return "empty";
|
||||
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8))) {
|
||||
String line; while ((line = reader.readLine()) != null) {
|
||||
@ -261,6 +265,8 @@ public final class Utils {
|
||||
} stream.close();
|
||||
} catch (IOException e) {
|
||||
Grasscutter.getLogger().warn("Failed to read from input stream.");
|
||||
} catch (NullPointerException ignored) {
|
||||
return "empty";
|
||||
} return stringBuilder.toString();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user