From b4e793439645d5b367368cf207bdf8f12ba457a3 Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 13 Oct 2021 21:32:36 +0800 Subject: [PATCH] Improve display Java version --- .../org/jackhuang/hmcl/game/LauncherHelper.java | 3 ++- .../hmcl/ui/versions/VersionSettingsPage.java | 15 +++++++++++++-- .../main/resources/assets/lang/I18N.properties | 3 ++- .../main/resources/assets/lang/I18N_es.properties | 2 +- .../main/resources/assets/lang/I18N_ru.properties | 2 +- .../main/resources/assets/lang/I18N_zh.properties | 3 ++- .../resources/assets/lang/I18N_zh_CN.properties | 3 ++- 7 files changed, 23 insertions(+), 8 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java index 2499ffb7e..8b576fd29 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -432,7 +432,8 @@ public final class LauncherHelper { } } - if (javaVersion.getBits() != Architecture.SYSTEM_ARCH.getBits()) { + if (Architecture.SYSTEM_ARCH == Architecture.X86_64 + && javaVersion.getPlatform().getArchitecture() == Architecture.X86) { Controllers.dialog(i18n("launch.advice.different_platform"), i18n("message.warning"), MessageType.ERROR, continueAction); suggested = true; } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java index e8083d2f4..0411e704c 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/VersionSettingsPage.java @@ -48,6 +48,7 @@ import org.jackhuang.hmcl.util.Logging; import org.jackhuang.hmcl.util.io.FileUtils; import org.jackhuang.hmcl.util.javafx.BindingMapping; import org.jackhuang.hmcl.util.javafx.SafeStringConverter; +import org.jackhuang.hmcl.util.platform.Architecture; import org.jackhuang.hmcl.util.platform.JavaVersion; import org.jackhuang.hmcl.util.platform.OperatingSystem; import org.jackhuang.hmcl.util.versioning.VersionNumber; @@ -545,9 +546,19 @@ public final class VersionSettingsPage extends StackPane implements DecoratorPag memoryStatus.set(OperatingSystem.getPhysicalMemoryStatus().orElse(OperatingSystem.PhysicalMemoryStatus.INVALID)); Task.supplyAsync(JavaVersion::getJavas).thenAcceptAsync(Schedulers.javafx(), list -> { + boolean isX86 = (Architecture.CURRENT_ARCH == Architecture.X86 || Architecture.CURRENT_ARCH == Architecture.X86_64) + && list.stream() + .map(java -> java.getPlatform().getArchitecture()) + .allMatch(arch -> arch == Architecture.X86 || arch == Architecture.X86_64); + + // boolean showSystem = list.stream().anyMatch(java -> java.getPlatform().getOperatingSystem() != OperatingSystem.CURRENT_OS); + List> options = list.stream() - .map(javaVersion -> new MultiFileItem.Option<>(javaVersion.getVersion() + i18n("settings.game.java_directory.bit", - javaVersion.getBits().getBit()), javaVersion) + .map(javaVersion -> new MultiFileItem.Option<>( + i18n("settings.game.java_directory.template", + javaVersion.getVersion(), + isX86 ? i18n("settings.game.java_directory.bit",javaVersion.getBits().getBit()) + : javaVersion.getPlatform().getArchitecture().getDisplayName()), javaVersion) .setSubtitle(javaVersion.getBinary().toString())) .collect(Collectors.toList()); options.add(0, javaAutoDeterminedOption); diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index 25635abbb..90eaf265a 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -829,8 +829,9 @@ settings.game.exploration=Explore settings.game.fullscreen=Fullscreen settings.game.java_directory=Java Directory settings.game.java_directory.auto=Automatically selected -settings.game.java_directory.bit=, %s-Bit +settings.game.java_directory.bit=%s-Bit settings.game.java_directory.choose=Choose Java Directory. +settings.game.java_directory.template=%s (%s) settings.game.management=Manage settings.game.working_directory=Working Directory settings.game.working_directory.choose=Choose Working Directory diff --git a/HMCL/src/main/resources/assets/lang/I18N_es.properties b/HMCL/src/main/resources/assets/lang/I18N_es.properties index 386ea89e5..8d89c10c9 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_es.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_es.properties @@ -355,7 +355,7 @@ settings.game.dimension=Dimensiones de ventana de juego settings.game.exploration=Explorar settings.game.fullscreen=Pantalla completa settings.game.java_directory=Directorio Java -settings.game.java_directory.bit=, %s-Bit +settings.game.java_directory.bit=%s-Bit settings.game.java_directory.choose=Escoja directorio Java. settings.game.management=Gestionar settings.game.working_directory=Directorio de función diff --git a/HMCL/src/main/resources/assets/lang/I18N_ru.properties b/HMCL/src/main/resources/assets/lang/I18N_ru.properties index 911d3bbc3..2562b20fb 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_ru.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_ru.properties @@ -372,7 +372,7 @@ settings.game.dimension=Размер окна игры settings.game.exploration=Исследовать settings.game.fullscreen=На весь экран settings.game.java_directory=Каталог Java -settings.game.java_directory.bit=, %s-бит +settings.game.java_directory.bit=%s-бит settings.game.java_directory.choose=Выбор каталога Java. settings.game.management=Управление settings.game.working_directory=Рабочий каталог diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index 55a7a6ff9..3542b4a37 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -828,8 +828,9 @@ settings.game.exploration=瀏覽 settings.game.fullscreen=全螢幕 settings.game.java_directory=Java 路徑 settings.game.java_directory.auto=自動選擇合適的 Java -settings.game.java_directory.bit=,%s 位 +settings.game.java_directory.bit=%s 位 settings.game.java_directory.choose=選擇 Java 路徑 +settings.game.java_directory.template=%s(%s) settings.game.management=管理 settings.game.working_directory=執行路徑(版本隔離,修改後請自行移動相關遊戲檔案,如存檔模組設定等) settings.game.working_directory.choose=選擇執行路徑 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index a6ebf7159..ff73ca8c1 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -828,8 +828,9 @@ settings.game.exploration=浏览 settings.game.fullscreen=全屏 settings.game.java_directory=Java 路径 settings.game.java_directory.auto=自动选择合适的 Java -settings.game.java_directory.bit=,%s 位 +settings.game.java_directory.bit=%s 位 settings.game.java_directory.choose=选择 Java 路径 +settings.game.java_directory.template=%s(%s) settings.game.management=管理 settings.game.working_directory=版本隔离(修改后请自行移动相关游戏文件,如存档模组配置等) settings.game.working_directory.choose=选择运行路径