diff --git a/src/main/java/org/jcnc/jnotepad/LunchApp.java b/src/main/java/org/jcnc/jnotepad/LunchApp.java index 4f0e9e8..24b90d5 100644 --- a/src/main/java/org/jcnc/jnotepad/LunchApp.java +++ b/src/main/java/org/jcnc/jnotepad/LunchApp.java @@ -42,9 +42,6 @@ public class LunchApp extends Application { scene = new Scene(root, width, length); Application.setUserAgentStylesheet(new PrimerLight().getUserAgentStylesheet()); scene.getStylesheets().add(Objects.requireNonNull(getClass().getResource("/css/styles.css")).toExternalForm()); - - ViewManager viewManager = ViewManager.getInstance(scene); - viewManager.initScreen(scene); initUIComponents(); @@ -57,8 +54,14 @@ public class LunchApp extends Application { } private void initUIComponents() { + + //1. 加载语言 LocalizationController.initLocal(); + //2. 加载组件 + ViewManager viewManager = ViewManager.getInstance(scene); + viewManager.initScreen(scene); + // 使用线程池加载关联文件并创建文本区域 List rawParameters = getParameters().getRaw(); controller.openAssociatedFileAndCreateTextArea(rawParameters); diff --git a/src/main/java/org/jcnc/jnotepad/app/i18n/UIResourceBundle.java b/src/main/java/org/jcnc/jnotepad/app/i18n/UIResourceBundle.java index c82c308..a0ec173 100644 --- a/src/main/java/org/jcnc/jnotepad/app/i18n/UIResourceBundle.java +++ b/src/main/java/org/jcnc/jnotepad/app/i18n/UIResourceBundle.java @@ -6,7 +6,6 @@ import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.StringProperty; import javafx.beans.value.ChangeListener; -import org.jcnc.jnotepad.controller.i18n.LocalizationController; import java.util.Locale; import java.util.ResourceBundle; @@ -34,7 +33,7 @@ public class UIResourceBundle { } private UIResourceBundle() { - this.resetLocal(); + } /** @@ -62,11 +61,11 @@ public class UIResourceBundle { /** * 重置当前local */ - public final void resetLocal() { - if (this.currentLocale == LocalizationController.getCurrentLocal()) { + public final void resetLocal(Locale toLocal) { + if (this.currentLocale == toLocal) { return; } - this.currentLocale = LocalizationController.getCurrentLocal(); + this.currentLocale = toLocal; ResourceBundle resourceBundle = ResourceBundle.getBundle(BASENAME, currentLocale); this.setResources(resourceBundle); diff --git a/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java b/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java index 3af1d3a..da1daa1 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java +++ b/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java @@ -49,6 +49,7 @@ public class LocalizationController { /** * 设置当前语言配置 + * * @param locale 当前语言Local对象 */ public static void setCurrentLocal(Locale locale) { @@ -64,30 +65,16 @@ public class LocalizationController { } Locale.setDefault(locale); - UIResourceBundle.getInstance().resetLocal(); + UIResourceBundle.getInstance().resetLocal(getCurrentLocal()); LOCALIZATION_CONFIG.setLanguage(SUPPORT_LANGUAGES.get(locale)); } - /** - * 设置当前语言配置 - * @param language 当前语言自定义字符形式 - */ - public static void setCurrentLanguage(String language) { - Locale locale = SUPPORT_LOCALES.get(language); - if (locale != null) { - setCurrentLocal(locale); - } - } - private LocalizationController() { this.appConfigController = AppConfigController.getInstance(); } private final AppConfigController appConfigController; - public static LocalizationController getLocalizationConfig() { - return LOCALIZATION_CONFIG; - } private void setLanguage(String language) { appConfigController.updateLanguage(language); @@ -95,6 +82,7 @@ public class LocalizationController { /** * 查询当前语言配置 + * * @return appConfig中的当前语言配置 */ public String getLanguage() { diff --git a/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java b/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java index b9c8c7f..ae07a03 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java +++ b/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java @@ -32,7 +32,6 @@ public class JNotepadMenuBar extends MenuBar { private static final JNotepadMenuBar MENU_BAR = new JNotepadMenuBar(); - LocalizationController localizationController = LocalizationController.getLocalizationConfig(); AppConfigController appConfigController = AppConfigController.getInstance(); Logger logger = LogUtil.getLogger(this.getClass());