From 66dd0dc203b3ed6d55d6464f2fd22e2542ff0036 Mon Sep 17 00:00:00 2001 From: kuddev Date: Wed, 23 Sep 2026 14:11:28 +0800 Subject: [PATCH] fix(installer): localize context submenu failure messages --- scripts/installer-migration.iss | 4 ++-- scripts/installer.iss | 4 ++++ scripts/tests/installer-migration-fixture.iss | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/installer-migration.iss b/scripts/installer-migration.iss index c281776..07f0288 100644 --- a/scripts/installer-migration.iss +++ b/scripts/installer-migration.iss @@ -384,7 +384,7 @@ begin Menu := Root + '\PebrelWslMenu'; { Never overwrite an unknown installation or an edited submenu. } if RegKeyExists(HKCU, Menu) and not IsOwnedWslMenu(Menu, Executable) then - RaiseException('An unowned or edited WSL context menu was preserved: ' + Menu); + RaiseException(FmtMessage(CustomMessage('WslMenuConflict'), [Menu])); RemoveOwnedWslContextMenusAt(Root, Executable); if GetArrayLength(Distros) = 0 then Exit; @@ -392,7 +392,7 @@ begin not RegWriteStringValue(HKCU, Menu, 'Icon', Executable + ',0') or not RegWriteStringValue(HKCU, Menu, 'SubCommands', '') or not RegWriteStringValue(HKCU, Menu, 'PebrelOwner', Executable) then - RaiseException('Unable to register the WSL context submenu.'); + RaiseException(CustomMessage('WslMenuRegistrationFailed')); for Index := 0 to GetArrayLength(Distros) - 1 do begin Distro := Distros[Index]; { 键名用序号而不是发行版名:注册表键名里带空格与非 ASCII 只会给自己找麻烦, diff --git a/scripts/installer.iss b/scripts/installer.iss index bd5f026..e9e5028 100644 --- a/scripts/installer.iss +++ b/scripts/installer.iss @@ -78,6 +78,8 @@ english.InstallFont=Install Maple Mono font for the current user english.AddToPath=Add Pebrel to the user PATH english.OpenInPebrel=Open in Pebrel english.OpenInPebrelWsl=Open in Pebrel (WSL) +english.WslMenuConflict=An existing WSL submenu belongs to another installation or was edited, so it was preserved: %1. +english.WslMenuRegistrationFailed=Unable to register the WSL context submenu. english.LaunchProgram=Launch Pebrel english.UninstallProgram=Uninstall Pebrel english.CloseLegacyProgram=Close the application at %1, then retry the installation. @@ -90,6 +92,8 @@ chinesesimplified.InstallFont=为当前用户安装 Maple Mono 字体 chinesesimplified.AddToPath=将 Pebrel 添加到当前用户 PATH chinesesimplified.OpenInPebrel=在 Pebrel 中打开 chinesesimplified.OpenInPebrelWsl=在 Pebrel 中打开(WSL) +chinesesimplified.WslMenuConflict=现有 WSL 子菜单属于其他安装或已被修改,因此已保留:%1。 +chinesesimplified.WslMenuRegistrationFailed=无法注册 WSL 右键子菜单。 chinesesimplified.LaunchProgram=启动 Pebrel chinesesimplified.UninstallProgram=卸载 Pebrel chinesesimplified.CloseLegacyProgram=请关闭 %1 中运行的程序,然后重试安装。 diff --git a/scripts/tests/installer-migration-fixture.iss b/scripts/tests/installer-migration-fixture.iss index 69a2aaa..8052f54 100644 --- a/scripts/tests/installer-migration-fixture.iss +++ b/scripts/tests/installer-migration-fixture.iss @@ -17,6 +17,8 @@ SetupLogging=no [CustomMessages] OpenInPebrelWsl=Open in Pebrel (WSL) +WslMenuConflict=Preserved an edited or foreign submenu: %1. +WslMenuRegistrationFailed=Unable to register the WSL context submenu. [Code] #include "..\installer-migration.iss"