检测到多个原因时提示 (#2293)

This commit is contained in:
zkitefly 2023-06-23 18:21:28 +08:00 committed by GitHub
parent 95b85c13eb
commit 9549819571
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 18 additions and 0 deletions

View File

@ -151,11 +151,18 @@ public class GameCrashWindow extends Stage {
Set<String> keywords = pair.getValue();
List<Node> segments = new ArrayList<>();
boolean hasMultipleRules = results.stream().map(CrashReportAnalyzer.Result::getRule).distinct().count() > 1;
if (hasMultipleRules) {
segments.addAll(FXUtils.parseSegment(i18n("game.crash.reason.multiple"), Controllers::onHyperlinkAction));
}
for (CrashReportAnalyzer.Result result : results) {
switch (result.getRule()) {
case TOO_OLD_JAVA:
segments.addAll(FXUtils.parseSegment(i18n("game.crash.reason.too_old_java",
CrashReportAnalyzer.getJavaVersionFromMajorVersion(Integer.parseInt(result.getMatcher().group("expected")))), Controllers::onHyperlinkAction));
segments.add(new Text("\n"));
break;
case MOD_RESOLUTION_CONFLICT:
case MOD_RESOLUTION_MISSING:
@ -164,19 +171,23 @@ public class GameCrashWindow extends Stage {
translateFabricModId(result.getMatcher().group("sourcemod")),
parseFabricModId(result.getMatcher().group("destmod")),
parseFabricModId(result.getMatcher().group("destmod"))), Controllers::onHyperlinkAction));
segments.add(new Text("\n"));
break;
case MOD_RESOLUTION_MISSING_MINECRAFT:
segments.addAll(FXUtils.parseSegment(i18n("game.crash.reason." + result.getRule().name().toLowerCase(Locale.ROOT),
translateFabricModId(result.getMatcher().group("mod")),
result.getMatcher().group("version")), Controllers::onHyperlinkAction));
segments.add(new Text("\n"));
break;
case TWILIGHT_FOREST_OPTIFINE:
segments.addAll(FXUtils.parseSegment(i18n("game.crash.reason.mod", "OptiFine"), Controllers::onHyperlinkAction));
segments.add(new Text("\n"));
break;
default:
segments.addAll(FXUtils.parseSegment(i18n("game.crash.reason." + result.getRule().name().toLowerCase(Locale.ROOT),
Arrays.stream(result.getRule().getGroupNames()).map(groupName -> result.getMatcher().group(groupName))
.toArray()), Controllers::onHyperlinkAction));
segments.add(new Text("\n"));
break;
}
segments.add(new Text("\n"));

View File

@ -407,6 +407,7 @@ game.crash.feedback=Is it a common issue that almost everyone has had? Please le
game.crash.info=Crash Info
game.crash.reason=Crash Cause
game.crash.reason.analyzing=Analyzing...
game.crash.reason.multiple=Multiple reasons detected:\n\n
game.crash.reason.block=The game crashed due to a block.\n\
\n\
You can try to remove this block using MCEdit or delete that mod that added it.\n\

View File

@ -365,6 +365,7 @@ game.crash.feedback=¿Es un problema común que casi todo el mundo ha tenido? Po
game.crash.info=Información sobre el fallo
game.crash.reason=Causa del fallo
game.crash.reason.analyzing=Analizando...
game.crash.reason.multiple=Se detectaron múltiples razones:\n\n
game.crash.reason.block=El juego se ha bloqueado debido a un error.\
\n\
Puede tratar de eliminar este bloque utilizando MCEdit o eliminar el mod que lo ha añadido.\n\

View File

@ -334,6 +334,7 @@ game.crash.feedback=問題は非常に一般的ですが、理由がわかりま
game.crash.info=ゲームステータス
game.crash.reason=クラッシュアナライザー
game.crash.reason.analyzing=分析中..
game.crash.reason.multiple=複数の理由が検出されました:\n\n
game.crash.reason.block=ブロックが原因でゲームを実行できません。\nMCEditでこのブロックを削除するか、関連するModを直接削除できます。\nブロックタイプ%1$s \nブロックの場所%2$s
game.crash.reason.bootstrap_failed=mod %1$s がクラッシュしたため、ゲームを実行できません。\n削除または更新を試みることができます。
game.crash.reason.config=modが構成ファイルを解析できないため、ゲームを実行できません。\nMod %1$s は構成ファイル %2$s を解析できません。

View File

@ -336,6 +336,7 @@ game.crash.feedback=Проблема настолько распростране
game.crash.info=Статус игры
game.crash.reason=Анализатор сбоев
game.crash.reason.analyzing=Анализирование...
game.crash.reason.multiple=Обнаружено несколько причин:\n\n
game.crash.reason.block=Невозможно запустить игру из-за блока.\nУдалите этот блок с помощью MCEdit или удалите мод связанный с ним напрямую.\nТип блока: %1$s\nРасположение блока: %2$s
game.crash.reason.bootstrap_failed=Невозможно запустить игру из-за сбоя мода %1$s.\nПопробуйте удалить или обновить его.
game.crash.reason.config=Невозможно запустить игру из-за того, что мод не может разобрать файл конфигурации.\nМод %1$s не может разобрать свой файл конфигурации %2$s.

View File

@ -392,6 +392,7 @@ game.crash.feedback=查看了日誌發現問題很常見?歡迎在 <a href="ht
game.crash.info=遊戲訊息
game.crash.reason=崩潰原因
game.crash.reason.analyzing=分析中...
game.crash.reason.multiple=檢測到多個原因:\n\n
game.crash.reason.block=當前遊戲因為某個方塊不能正常工作,無法繼續運行。\n你可以嘗試通過 MCEdit 工具編輯存檔刪除該方塊,或者直接刪除相應的 Mod。\n方塊類型%1$s\n方塊坐標%2$s
game.crash.reason.bootstrap_failed=當前遊戲因為模組 %1$s 錯誤,無法繼續運行。\n你可以嘗試刪除或更新該模組以解決問題。
game.crash.reason.config=當前遊戲因為無法解析模組配置文件,無法繼續運行\n模組 %1$s 的配置文件 %2$s 無法被解析。

View File

@ -393,6 +393,8 @@ game.crash.info=游戏信息
game.crash.reason=崩溃原因
game.crash.reason.analyzing=分析中……
game.crash.reason.block=当前游戏因为某个方块不能正常工作,无法继续运行。\n你可以尝试通过 <a href="https://podshot.github.io/MCEdit-Unified">MCEdit</a> 工具编辑存档删除该方块,或者直接删除相应的 Mod。\n方块类型%1$s\n方块坐标%2$s \n你可以在 <a href="https://docs.hmcl.net/help.html ">此处</a> 寻求帮助。
game.crash.reason.multiple=检测到多个原因:\n\n
game.crash.reason.block=当前游戏因为某个方块不能正常工作,无法继续运行。\n你可以尝试通过 <a href="https://www.mcedit.net">MCEdit</a> 工具编辑存档删除该方块,或者直接删除相应的 Mod。\n方块类型%1$s\n方块坐标%2$s \n你可以在 <a href="https://docs.hmcl.net/help.html ">此处</a> 寻求帮助。
game.crash.reason.bootstrap_failed=当前游戏因为模组 %1$s 错误,无法继续运行。\n你可以尝试删除或更新该模组以解决问题。\n你可以在 <a href="https://docs.hmcl.net/help.html ">此处</a> 寻求帮助。
game.crash.reason.config=当前游戏因为无法解析模组配置文件,无法继续运行\n模组 %1$s 的配置文件 %2$s 无法被解析。\n你可以在 <a href="https://docs.hmcl.net/help.html ">此处</a> 寻求帮助。
game.crash.reason.debug_crash=当前游戏因为手动触发崩溃,无法继续运行。\n事实上游戏并没有问题问题都是你造成的