在我的[run]
部分,我有这个条目:
Filename: "{win}\hh.exe"; \
Parameters: "{app}\MeetSchedAssist.chm::/msa-revision-history.htm"; \
WorkingDir: "{app}"; \
Flags: nowait postinstall runmaximized; \
Description: "{cm:ViewChangeHistory}"
当我用英语运行我的安装程序时,它看起来很好:
一位用户刚刚录制了一段视频,将其安装在日本计算机上:
有两个问题:
在英国定制的邮件文件(UTF-8编码)有:
English.ViewChangeHistory=View Change History
在日本的自定义消息文件(UTF-8编码的)具有:
Japanese.ViewChangeHistory=変更履歴を表示
Why is it not displaying correctly? I am using the most recent version of Inno Setup Unicode. I do know that the user is using a Ultra HD monitor.
Also, I am rebuilding the run list like this:
type
TRunEntry = record
Caption: string;
Checked: Boolean;
Object: TObject;
end;
procedure RebuildRunList;
var
RunEntries: array of TRunEntry;
I: Integer;
begin
// Save run list ...
SetArrayLength(RunEntries, WizardForm.RunList.Items.Count);
for I := 0 to WizardForm.RunList.Items.Count - 1 do
begin
RunEntries[I].Caption := WizardForm.RunList.ItemCaption[I];
RunEntries[I].Checked := WizardForm.RunList.Checked[I];
RunEntries[I].Object := WizardForm.RunList.ItemObject[I];
end;
// ... clear it ...
WizardForm.RunList.Items.Clear;
// ... and re-create
for I := 0 to GetArrayLength(RunEntries) - 1 do
begin
// the first three entries are radio buttons
if (I = 0) or (I = 1) or (I = 2) then
begin
WizardForm.RunList.AddRadioButton(
RunEntries[I].Caption, '', 0, RunEntries[I].Checked, True, RunEntries[I].Object);
end
else
begin
WizardForm.RunList.AddCheckBox(
RunEntries[I].Caption, '', 0, RunEntries[I].Checked, True, True, True,
RunEntries[I].Object);
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
// Only now is the RunList populated.
// Two entries are on 64-bit systems only.
if IsWin64 then RebuildRunList;
end;
end;
I commented out the code that rebuilds the run list and it made no difference on my PC:
However, the skinning works correctly. So the button position matter must be related to the users using a ultra HD configuration and and/or scaled text.
Then I commentted out the skinning code and tried again on my PC. No change:
I really don't understand why this is happening!
I include the custom messages like this:
[CustomMessages]
#include AddBackslash(SourcePath) + ".\l.jpn\CustomMessagesJapanese.txt"
This depends on how you're including the text.
According to http://www.jrsoftware.org/ishelp/topic_unicode.htm, it is not legal to save an ISL file in UTF-8.
您必须将其保存为使用文件中指定的代码页编码的 ANSI。
或者,您可以直接在您的 iss 文件中使用 UTF-8 字符串,方法是直接在本地 [Messages] 或 [CustomMessages] 部分中使用 Language.Key 值,如下所示:
[CustomMessages]
English.ViewChangeHistory=View Change History
Japanese.ViewChangeHistory=変更履歴を表示
您还可以#include 使用相同格式的外部文件。
在这两种情况下(无论是直接在 iss 文件中还是在 #included 文件中),您都需要确保将文件保存为带有 BOM 的 UTF-8。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句