多言語化の仕組みがあるのこれをつかいます。 wxl形式のXMLファイルを用意し、ビルド時にコマンドラインオプションで指定すれば変更できます。
文言の変更
例えばWiX チュートリアル 日本語訳 Lesson 2 ユーザー・インタフェイス / 1. 最初のステップにある、Sample-2-1-WixUI.zipはWixUI_InstallDir
という組み込みのダイアログセットを使っています。
この文言を変えるには
<?xml version="1.0" encoding="utf-8"?> <WixLocalization Culture="ja-jp" xmlns="http://schemas.microsoft.com/wix/2006/localization"> <String Id="WelcomeDlgTitle">{\WixUI_Font_Bigger}[ProductName] セットアップ ウィザードへようこそ、おいでませり</String> </WixLocalization>
上記のようなmy-lang.wxl
ファイルを用意します。
リンク時に-loc
オプションを指定します。
light.exe -ext WixUIExtension -cultures:ja-JP .\SampleWixUI.wixobj -loc .\my-lang.wxl
-cultures:ja-JP
オプションをつけておけば、組み込みの言語設定を使いつつ、一部だけ上書きできます。
Idの探し方
変えたい文言のIdを見つけるにはどうすればいいでしょうか? wix3/WixUI_ja-jp.wxl at c02e48ec301a60eba88a3b519d47e88eeaa4c978 · wixtoolset/wix3 · GitHub に現在使われている文言が含まれています。 文言からIdが検索できます。
ただし複数のダイアログで同じ文言を使っていることがあります。例えばようこそ
で検索すると次のように3つの定義が見つかります。
<String Id="MaintenanceWelcomeDlgTitle" Overridable="yes">{\WixUI_Font_Bigger}[ProductName] セットアップ ウィザードへようこそ</String> <String Id="PrepareDlgTitle" Overridable="yes">{\WixUI_Font_Bigger}[ProductName] セットアップ ウィザードへようこそ</String> <String Id="WelcomeDlgTitle" Overridable="yes">{\WixUI_Font_Bigger}[ProductName] セットアップ ウィザードへようこそ</String>
Id
の前半部分でどのダイアログで使われている文言か判別できます。
WelcomeDlg
は今回変更したダイアログです。
MaintenanceWelcomeDlg
は修正インストールしたときに最初に表示されるダイアログです*1。
PrepareDlg
は、なんでしょうね?わかりません。
参考
*1:「アプリと機能」から「変更」を選んで起動したときの画面だと思いますがSample-2-1-WixUIをインストールしても「変更」は選べません。