From 0c172e5d08ab9910271bf3638886a39a3addb3dd Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Sun, 28 Aug 2022 21:43:56 +0800 Subject: [PATCH] fix(crash): incorrect layout for feedbackLabel. Closes #1667. --- .../main/java/org/jackhuang/hmcl/game/LauncherHelper.java | 4 ++-- .../main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java | 8 ++++---- HMCL/src/main/resources/assets/lang/I18N.properties | 6 ++---- HMCL/src/main/resources/assets/lang/I18N_es.properties | 2 +- HMCL/src/main/resources/assets/lang/I18N_ja.properties | 2 +- HMCL/src/main/resources/assets/lang/I18N_ru.properties | 2 +- HMCL/src/main/resources/assets/lang/I18N_zh.properties | 4 ++-- HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties | 5 +++-- 8 files changed, 16 insertions(+), 17 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 684a38f81..c36cc6487 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/LauncherHelper.java @@ -175,10 +175,10 @@ public final class LauncherHelper { try { return account.logIn(); } catch (CredentialExpiredException e) { - LOG.info("Credential has expired: " + e); + LOG.log(Level.INFO, "Credential has expired", e); return DialogController.logIn(account); } catch (AuthenticationException e) { - LOG.warning("Authentication failed, try playing offline: " + e); + LOG.log(Level.WARNING, "Authentication failed, try playing offline", e); return account.playOffline().orElseThrow(() -> e); } }).withStage("launch.state.logging_in")) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java index 4a598ab96..280a4b015 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java @@ -137,7 +137,7 @@ public class GameCrashWindow extends Stage { if (exception != null) { LOG.log(Level.WARNING, "Failed to analyze crash report", exception); - reasonTextFlow.getChildren().setAll(new Text(i18n("game.crash.reason.unknown"))); + reasonTextFlow.getChildren().setAll(FXUtils.parseSegment(i18n("game.crash.reason.unknown"), Controllers::onHyperlinkAction)); } else { List results = pair.getKey(); Set keywords = pair.getValue(); @@ -177,7 +177,7 @@ public class GameCrashWindow extends Stage { if (!keywords.isEmpty()) { reasonTextFlow.getChildren().setAll(new Text(i18n("game.crash.reason.stacktrace", String.join(", ", keywords)))); } else { - reasonTextFlow.getChildren().setAll(new Text(i18n("game.crash.reason.unknown"))); + reasonTextFlow.getChildren().setAll(FXUtils.parseSegment(i18n("game.crash.reason.unknown"), Controllers::onHyperlinkAction)); } feedbackLabel.setVisible(true); @@ -350,7 +350,7 @@ public class GameCrashWindow extends Stage { gameDirPane.setPadding(new Insets(8)); VBox.setVgrow(gameDirPane, Priority.ALWAYS); - gameDirPane.getChildren().setAll(gameDir, javaDir, new VBox(reasonTitle, reasonTextFlow)); + gameDirPane.getChildren().setAll(gameDir, javaDir, new VBox(reasonTitle, reasonTextFlow, feedbackLabel)); } HBox toolBar = new HBox(); @@ -368,7 +368,7 @@ public class GameCrashWindow extends Stage { toolBar.setPadding(new Insets(8)); toolBar.setSpacing(8); toolBar.getStyleClass().add("jfx-tool-bar"); - toolBar.getChildren().setAll(exportGameCrashInfoButton, logButton, feedbackLabel); + toolBar.getChildren().setAll(exportGameCrashInfoButton, logButton); } getChildren().setAll(titlePane, infoPane, moddedPane, gameDirPane, toolBar); diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index a4f943ada..acf2837a4 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -62,7 +62,7 @@ account.create.yggdrasil=Add a Mojang account account.create.offline=Add an offline account account.create.authlibInjector=Create an authlib-injector account account.email=Email -account.failed=Error code\: %d +account.failed=Failed to login account.failed.character_deleted=The character has already been deleted. account.failed.connect_authentication_server=Unable to contact authentication servers, your Internet connection may be down. account.failed.connect_injector_server=Unable to connect to the authentication server. Please check your network and make sure you entered the correct URL. @@ -548,9 +548,7 @@ game.crash.reason.too_old_java=The game crashed because you are using a historic You need to switch to a newer version (%1$s) of Java in the game settings and then relaunch the game. You can download Java from here. game.crash.reason.unknown=We are not able to figure out why the game crashed, please refer to the game logs.\n\ \n\ -When asking someone else for help, please share the full game log and related crash report file with them\!\n\ -\n\ -Is this crash caused by a common issue that almost everyone gets? You can provide your logs in a new GitHub issue to improve the launcher. +When asking someone else for help, please share the full game log and related crash report file with them\!\n game.crash.reason.unsatisfied_link_error=Unable to launch Minecraft due to missing libraries\: %1$s.\n\ \n\ If you have modified native library settings, please make sure these libraries do exist. Or, please try to launch again after reverting it back to default.\n\ diff --git a/HMCL/src/main/resources/assets/lang/I18N_es.properties b/HMCL/src/main/resources/assets/lang/I18N_es.properties index 847dc1608..a5c30cacc 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_es.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_es.properties @@ -62,7 +62,7 @@ account.create.yggdrasil=Añadir una cuenta de Mojang account.create.offline=Añadir una cuenta offline account.create.authlibInjector=Crear una cuenta authlib-injector account.email=Correo electrónico -account.failed=Código de error\: %d +account.failed=error de inicio de sesion account.failed.character_deleted=El personaje ya ha sido eliminado. account.failed.connect_authentication_server=No se ha podido conectar con los servidores de autenticación, es posible que la conexión a Internet esté caída. account.failed.connect_injector_server=No se ha podido conectar con el servidor de autenticación. Por favor, compruebe su red y asegúrese de que ha introducido la URL correcta. diff --git a/HMCL/src/main/resources/assets/lang/I18N_ja.properties b/HMCL/src/main/resources/assets/lang/I18N_ja.properties index eeda080d5..0006a349b 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_ja.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_ja.properties @@ -60,7 +60,7 @@ account.create.yggdrasil=Mojang Login account.create.offline=Offline account.create.authlibInjector=サードパーティーアカウントを追加 account.email=メールアドレス -account.failed=エラーコード:%d +account.failed=ログインに失敗しました account.failed.character_deleted=キャラクターが削除されました。 account.failed.connect_authentication_server=認証サーバーに接続できません。インターネット接続を確認してください。 account.failed.connect_injector_server=認証サーバーに接続できません。ネットワークをチェックして、URLが正しいことを確認してください。 diff --git a/HMCL/src/main/resources/assets/lang/I18N_ru.properties b/HMCL/src/main/resources/assets/lang/I18N_ru.properties index bb72405d3..8ba6ed586 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_ru.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_ru.properties @@ -60,7 +60,7 @@ account.create.yggdrasil=Добавление аккаунта Mojang account.create.offline=Добавление офлайн аккаунта account.create.authlibInjector=Добавление аккаунта authlib-injector account.email=Электронная почта -account.failed=Код ошибки: %d +account.failed=Авторизация не удалась account.failed.character_deleted=Персонаж был удалён. account.failed.connect_authentication_server=Невозможно подключиться к серверу авторизации. Проверьте сетевое подключение. account.failed.connect_injector_server=Невозможно подключиться к серверу авторизации. Проверьте сетевое подключение и убедитесь, что ссылка указана правильно. diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index 266934f65..a8aef6508 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -60,7 +60,7 @@ account.create.yggdrasil=添加 Mojang 帳戶 account.create.offline=添加離線模式帳戶 account.create.authlibInjector=添加外置登入帳戶 (authlib-injector) account.email=電子信箱 -account.failed=錯誤碼: %d +account.failed=登錄失敗 account.failed.character_deleted=已刪除此角色 account.failed.connect_authentication_server=無法連線至認證伺服器,可能是網路問題,請檢查設備能否正常上網或使用代理服務 account.failed.connect_injector_server=無法連線至認證伺服器,可能是網路故障,請檢查設備能否正常上網、檢查網址是否輸入錯誤或使用代理服務 @@ -409,7 +409,7 @@ game.crash.reason.out_of_memory=當前遊戲因為記憶體不足,無法繼續 game.crash.reason.resolution_too_high=當前遊戲因為材質包解析度過高,無法繼續運行\n你可以更換一個解析度更低的材質,或者更換一個視訊記憶體更大的顯示卡。 game.crash.reason.stacktrace=原因未知,請點擊日誌按鈕查看詳細訊息。\n下面是一些關鍵字,其中可能包含 Mod 名稱,你可以透過搜索的方式查找有關訊息。\n%s game.crash.reason.too_old_java=當前遊戲因為 Java 虛擬機版本過低,無法繼續運行。\n你需要在遊戲設置中更換 %1$s 或更新版本的 Java 虛擬機,並重新啟動遊戲。如果沒有下載安裝,你可以點擊 此處 下載微軟 JDK。 -game.crash.reason.unknown=原因未知,請點擊日誌按鈕查看詳細訊息。\n不要將本界面截圖給他人!如果你要求助他人,請你點擊左下角導出遊戲崩潰訊息後將導出的文件發送給他人以供分析!\n你可以向我們提供遊戲崩潰日誌以提升 HMCL 的日誌分析能力。 +game.crash.reason.unknown=原因未知,請點擊日誌按鈕查看詳細訊息。\n不要將本界面截圖給他人!如果你要求助他人,請你點擊左下角導出遊戲崩潰訊息後將導出的文件發送給他人以供分析! game.crash.reason.unsatisfied_link_error=當前遊戲因為缺少本地庫,無法繼續運行。\n這些本地庫缺失:%1$s。\n如果你在遊戲設置中修改了本地庫路徑選項,請你修改回預設模式。\n如果已經在預設模式下,請檢查本地庫缺失是否是 Mod 引起的,或由 HMCL 引起的。如果你確定是 HMCL 引起的,建議你向我們回饋。\n如果你確實需要自訂本地庫路徑,你需要保證其中包含缺失的本地庫。 game.crash.title=遊戲意外退出 game.directory=遊戲路徑 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 8e14292bd..334d75e7b 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -60,7 +60,7 @@ account.create.yggdrasil=添加 Mojang 帐户 account.create.offline=添加离线模式帐户 account.create.authlibInjector=添加外置登录帐户 (authlib-injector) account.email=邮箱 -account.failed=错误码: %d +account.failed=登录失败 account.failed.character_deleted=此角色已被删除 account.failed.connect_authentication_server=无法连接认证服务器,可能是网络问题,请检查设备能否正常上网或使用代理服务 account.failed.connect_injector_server=无法连接认证服务器,可能是网络问题,请检查设备是否能正常上网,检查 URL 是否输入错误,或使用代理服务 @@ -70,6 +70,7 @@ account.failed.invalid_password=无效的密码 account.failed.invalid_token=请尝试登出并重新输入密码登录 account.failed.migration=你的帐号需要被迁移至微软帐号。如果你已经迁移,你需要使用微软登录方式登录迁移后的微软帐号。 account.failed.no_character=该帐号没有角色 +account.failed.server_disconnected=无法访问登录服务器。离线模式继续登录,或者 account.failed.server_response_malformed=无法解析认证服务器响应,可能是服务器故障 account.failed.wrong_account=登录了错误的帐号 account.hmcl.hint=你需要点击“登录”按钮,并在打开的网页中完成登录 @@ -409,7 +410,7 @@ game.crash.reason.out_of_memory=当前游戏因为内存不足,无法继续运 game.crash.reason.resolution_too_high=当前游戏因为材质包分辨率过高,无法继续运行\n你可以更换一个分辨率更低的材质,或者更换一个显存更大的显卡。 game.crash.reason.stacktrace=原因未知,请点击日志按钮查看详细信息。\n下面是一些关键词,其中可能包含 Mod 名称,你可以通过搜索的方式查找有关信息。\n%s game.crash.reason.too_old_java=当前游戏因为 Java 虚拟机版本过低,无法继续运行。\n你需要在游戏设置中更换 Java %1$s 或更新版本的 Java 虚拟机,并重新启动游戏。如果没有下载安装,你可以点击 此处 下载微软 JDK。 -game.crash.reason.unknown=原因未知,请点击日志按钮查看详细信息!\n!!!请不要将本界面[截图]给他人!!!如果你要求助他人,请你点击左下角导出游戏崩溃信息后将导出的文件发送给他人以供分析!!!\n查看了日志发现该问题很常见?你可以向我们提供游戏崩溃日志在反馈页面或 Github Issues 提交反馈以提升 HMCL 的日志分析能力 +game.crash.reason.unknown=原因未知,请点击日志按钮查看详细信息!\n!!!请不要将本界面【截图】给他人!!!如果你要求助他人,请你点击左下角导出游戏崩溃信息后将导出的文件发送给他人以供分析!!! game.crash.reason.unsatisfied_link_error=当前游戏因为缺少本地库,无法继续运行。\n这些本地库缺失:%1$s。\n如果你在游戏设置中修改了本地库路径选项,请你修改回预设模式。\n如果已经在预设模式下,请检查本地库缺失是否是 Mod 引起的,或由 HMCL 引起的。如果你确定是 HMCL 引起的,建议你向我们反馈。\n如果你确实需要自定义本地库路径,你需要保证其中包含缺失的本地库! game.crash.title=游戏意外退出 game.directory=游戏路径