From feb364eae08a062c8141b48a04ef8eda1022ed4e Mon Sep 17 00:00:00 2001 From: songdragon Date: Sun, 27 Aug 2023 21:58:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=88=A0=E9=99=A4=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E5=8A=9F=E8=83=BD=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i18n/LocalizationController.java | 19 +++++++++++++ .../jnotepad/ui/menu/JNotepadMenuBar.java | 28 ++++--------------- 2 files changed, 25 insertions(+), 22 deletions(-) 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 f780409..3af1d3a 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java +++ b/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java @@ -40,11 +40,22 @@ public class LocalizationController { return Locale.getDefault(); } + /** + * 初始化语言配置 + */ public static void initLocal() { setCurrentLocal(null); } + /** + * 设置当前语言配置 + * @param locale 当前语言Local对象 + */ public static void setCurrentLocal(Locale locale) { + if (locale != null && locale.equals(getCurrentLocal())) { + // 要更新的语言与当前语言一致,则不执行 + return; + } if (locale == null) { locale = SUPPORT_LOCALES.get(LOCALIZATION_CONFIG.getLanguage()); } @@ -57,6 +68,10 @@ public class LocalizationController { LOCALIZATION_CONFIG.setLanguage(SUPPORT_LANGUAGES.get(locale)); } + /** + * 设置当前语言配置 + * @param language 当前语言自定义字符形式 + */ public static void setCurrentLanguage(String language) { Locale locale = SUPPORT_LOCALES.get(language); if (locale != null) { @@ -78,6 +93,10 @@ public class LocalizationController { appConfigController.updateLanguage(language); } + /** + * 查询当前语言配置 + * @return appConfig中的当前语言配置 + */ public String getLanguage() { return appConfigController.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 9160ed6..b9c8c7f 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java +++ b/src/main/java/org/jcnc/jnotepad/ui/menu/JNotepadMenuBar.java @@ -285,16 +285,14 @@ public class JNotepadMenuBar extends MenuBar { // 设置窗口为置顶 primaryStage.setAlwaysOnTop(after); }); - englishItem.setOnAction(actionEvent -> { - setCurrentLanguage(ENGLISH); - toggleLanguage(actionEvent); - }); - chineseItem.setOnAction(actionEvent -> { - setCurrentLanguage(CHINESE); - toggleLanguage(actionEvent); - }); + englishItem.setOnAction(this::toggleLanguage); + chineseItem.setOnAction(this::toggleLanguage); } + /** + * 切换语言 + * @param actionEvent 点击事件 + */ private void toggleLanguage(ActionEvent actionEvent) { if (actionEvent == null) { return; @@ -306,20 +304,6 @@ public class JNotepadMenuBar extends MenuBar { LocalizationController.setCurrentLocal((Locale) languageItem.getUserData()); } - /** - * 设置当前语言
- * - * @param language 要设置的语言 - * @since 2023/8/26 16:16 - */ - private void setCurrentLanguage(String language) { - // 如果当前已是该语言则不执行该方法 - if (localizationController.getLanguage().equals(language)) { - return; - } - LocalizationController.setCurrentLanguage(language); - AppConfigController.getInstance().updateLanguage(language); - } /** * 根据当前选中tab,更新菜单选项