Inno setup Inno设置-如何在自定义页面中显示本地化RTF文本

Inno setup Inno设置-如何在自定义页面中显示本地化RTF文本,inno-setup,Inno Setup,如何使用此代码显示相同的文本,具有相同的结构(字体等),但使用不同的语言?例如:语言选择器中的英语和西班牙语 (文本位于RTFText:=前面) var iCustomCompage1:TWizardPage; RichEditViewer1:TRichEditViewer; 程序初始化; 开始 {创建自定义向导页} ISCustomPage1:=CreateCustomPageWPWelcome,‘ISCustomPage1_标题’、‘ISCustomPage1_描述’; {RichEditV

如何使用此代码显示相同的文本,具有相同的结构(字体等),但使用不同的语言?例如:语言选择器中的英语和西班牙语

(文本位于
RTFText:=
前面)

var
iCustomCompage1:TWizardPage;
RichEditViewer1:TRichEditViewer;
程序初始化;
开始
{创建自定义向导页}
ISCustomPage1:=CreateCustomPageWPWelcome,‘ISCustomPage1_标题’、‘ISCustomPage1_描述’;
{RichEditViewer1}
RichEditViewer1:=TRichEditViewer.Create(WizardForm);
用RichEditViewer1做什么
开始
父项:=isCustomCompage1.曲面;
左:=ScaleX(0);
Top:=ScaleY(0);
宽度:=ScaleX(417);
高度:=ScaleY(241);
只读:=真;
RTFText:={\rtf1\ansi\ansicpg1252\deff0{\FONTBL{\f0\fnil\fcharset204{*\fname Times New Roman;}Times New Roman CYR;}{\f1\fnil\fcharset0 Times New Roman;}{\f2 fnil\fcharset0 Tahoma;}{\f3\fnil\fcharset0@BatangChe;}}+\13}10+
“{\colortbl;\red0\green0\blue128;\red0\green0\blue255;}”+#13#10+
“\viewkind4\uc1\pard\cf1\lang1034\ul\b\f0\fs36 C\f1 o\f0 mo usar este C\f1 \”f3\f0 digo para mostrar el mismo texto,con la mism esttructure(fuentes等)pero en different成语?\par”+#13#10+
'\cf0\ulnone\b0\f2\fs24\par'+#13#10+
“\par”+#13#10+
“\cf2\b\f3\fs20 Por ejemplo:ingl”e9s y espa“f1在习惯用法选择器中。\par'+#13#10”+
'}' + #13#10 +
'';
结束;
RichEditViewer1.TabOrder:=0;
结束;

更好的选择是使用两个
.rtf
文件(英语和西班牙语)并根据语言选择器的语言加载每个文件吗?

对于自定义页面的标题和说明,请在语言文件中定义,方法与中相同

然后使用代码中的函数使用这些自定义消息

对于RTF文本,最好的解决方案是创建单独的
.RTF
文件,并根据所选语言加载适当的文件

[语言]
名称:"eng",;messages文件:“Idiomas\English.isl”
名称:“水疗中心”;messages文件:“Idiomas\西班牙语.isl”
[档案]
资料来源:“eng.rtf”;标志:dontcopy
资料来源:“spa.rtf”;标志:dontcopy
[守则]
变量
iCustomCompage1:TWizardPage;
RichEditViewer1:TRichEditViewer;
程序初始化;
变量
RtfName:字符串;
Rtf:AnsiString;
开始
{创建自定义向导页}
iCustomComplage1:=
创建自定义页面(
wpWelcome,CustomMessage('ISCustomCompage1_标题'),
CustomMessage('isCustomCompage1_Description');
{RichEditViewer1}
RichEditViewer1:=TRichEditViewer.Create(WizardForm);
用RichEditViewer1做什么
开始
父项:=isCustomCompage1.曲面;
左:=ScaleX(0);
Top:=ScaleY(0);
宽度:=ScaleX(417);
高度:=ScaleY(241);
只读:=真;
滚动条:=ssVertical;
RtfName:=ActiveLanguage+'.rtf';
提取临时文件(RtfName);
如果LoadStringFromFile(ExpandConstant({tmp}\'+RtfName),则为Rtf
开始
UseRichEdit:=True;
RTFText:=Rtf;
结束;
结束;
结束;


@Martin已经回答了您的问题,包括您在编辑中添加的附加信息。你应该更仔细地阅读他的答案。起初我把文本放在东西(字体等)的中间是错误的。但是你不能在回答了原来的问题后改变整个问题。这对那些花时间回答你的人来说是不公平的,当你的编辑使他们的答案无效时,这会让他们看起来很愚蠢(并使他们失去了选票)。(对您来说,更好的选择是使用实际的.RTF文件,您可以将其解压缩到{temp}文件夹,并在安装时加载以获取包含所有格式的文本。这样您在编写时就可以实际看到格式化的富文本。)是的,更好的选择是使用两个.RTF文件(英语和西班牙语)并根据语言选择器的语言加载每个文本。TRichEditViewer从TMemo派生,TMemo支持LoadFromFile,这将允许您在运行时轻松加载文本。您所需要的只是一个可以调用的函数,该函数将返回正确的文件名,然后可以从{temp}加载该文件。您好,我创建了一个自定义页面,并从RTF文件加载了内容。但页面上只显示文本部分。图像将替换为空。我使用MS Word打开RTF文件,并通过插入-->图片插入图片。这与图像文件格式有关吗?我试过使用.jpg和.png。@DeeJay007请发布一个新问题,包括。
[CustomMessages]
ISCustomPage1_Caption=Some caption
ISCustomPage1_Description=Some description