From 48e2fcc601f9d58140258746008e601d7418a7e6 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Sat, 15 Aug 2020 17:04:29 +0800 Subject: [PATCH] Set Locale.default to selected language e6d11fe9a35cc94ecd8c67b1008cef48f1fb79a4 is broken because Locale.default is not set by HMCL at all. This commit fixes the bug. Note that now if we want to obtain the system language, we must use Locales.DEFAULT rather than Locale.getDefault(). --- .../main/java/org/jackhuang/hmcl/setting/Settings.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java index b46830dad..6623d5dab 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java @@ -25,6 +25,8 @@ import org.jackhuang.hmcl.util.io.FileUtils; import static org.jackhuang.hmcl.setting.ConfigHolder.config; +import java.util.Locale; + public class Settings { private static Settings instance; @@ -44,6 +46,9 @@ public class Settings { } private Settings() { + config().localizationProperty().addListener(unused -> updateSystemLocale()); + updateSystemLocale(); + DownloadProviders.init(); ProxyManager.init(); Accounts.init(); @@ -74,4 +79,8 @@ public class Settings { return null; } } + + private static void updateSystemLocale() { + Locale.setDefault(config().getLocalization().getLocale()); + } }