Pascal Script を使用してカスタム ウィザード ページを作成する Inno Setup インストーラーがあります。インストーラーは、他の言語をサポートするために適切なパターンを使用しているようです。ただし、 で作成されたカスタム ウィザード ページにCreateCustomPage()
は、ターゲット言語 (この場合はロシア語) の文字列ではなく、文字化けした文字が表示されます。
文字列は[CustomMessages]
、各言語のインクルード ファイルを使用してセクションに格納されます。私は Inno Setup の初心者ですが、ストリングは Inno Setup の例と一致する方法でセットアップされているように見えます。
とにかく、カスタム ウィザード ページとそのコントロールは、次のようなコードを使用して作成されます。
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:MyStringConstant}'),
ExpandConstant('{cm:MyOtherStringConstant}')
);
次に、文字列インクルード ファイル (ロシア語の場合) で、文字列は次のように定義されます。
[CustomMessages]
ru.MyStringConstant=<Russian string>
ru.MyOtherStringConstant=<Russian string>
しかし、インストーラーを実行すると、カスタム ウィザード ページの文字列が、適切なロシア語テキストではなく、文字化けした文字 (UTF-8 文字が Ansi として解釈されているかのように) で表示されます。
インストーラーの他のページ (つまり、 で作成されていないページCreateCustomPage()
) は正しく表示されます。
ExpandConstant()
それで、私の質問は、 UTF-8 文字列を使用する場合、何か特別なことをする必要がありますか? または、セクションから UTF-8 文字列を取得するために使用するより良い関数はあります[CustomMessages]
か?