Wixというインストールツールについて調べていたんですが、MSIは比較的簡単に作れたのですが、関連モジュール(MSIで提供されている再配布可能なサードパーティー製ソフト)を同梱させる方法を調べて少々苦労しました。
MSI形式のインストーラは、別のMSIを同梱するようなことはできないようです。
MSM形式(マージモジュール)なら同梱可能なんですが、今回必要な関連モジュールはMSMでは提供されていないのです。
いやこまった。
通常、複数からなるMSIを対象とする場合はsetup.exeなどのインストールラッパーを使うようです。
exeですから、そちらでいろいろな判断をしながら対象となるMSIを処理対象とするのでしょう。
WixにもBundleというラッパー機能があり、こちらを使えば複数MSIからなるインストーラを作れます。
ここまでは比較的簡単に調べられたのですが、Bundleは英語メッセージしか対応していないようで、日本語対応の方法がわからない。
ネットで探し回したのですが、どこにも書いていないんですねぇ。
英語メッセージでもInstallやSuccesfulなど簡単な単語なので、これでも良いのですが、やっぱり日本語化の方法も何とかしたいわけでソースに手を出すことにしてみました。
Wixはオープンソースなのでソースが見れます。
WiX Toolset配布サイトのwix38-debugをダウンロードするとソースが入っています。
今回利用のBundle機能は「BalExtension」というモジュールなので、これを手がかりに調べてみると、次のパスにメッセージが記載されたリソースファイルがあるではないですか!!
wix38-debug\src\ext\BalExtension\wixstdba\Resources\HyperlinkTheme.wxl
こちらは、Language = 1033 となっているので英語圏のものですね。
ロケールIDは以下のサイトで参照できます。
ロケールID MSサイト
こちらの内容を次のようにひたすら日本語になおしていき、先頭のロケールIDを変えれば立派なロケールファイルになります。
原文
<string id="Caption">[WixBundleName] Setup</string>日本語文
<string id="Caption">[WixBundleName] セットアップ</string>先頭行のロケールID ja-ja 1041が日本語
<wixlocalization culture="ja-jp" language="1041" xmlns="http://schemas.microsoft.com/wix/2006/localization"></wixlocalization>できあがったロケールファイルを"HyperlinkTheme_ja.wxl"として保存しておきます。インストーラ用のwxsに以下のように読みこめば日本語化できました。
<bootstrapperapplicationref id="WixStandardBootstrapperApplication.HyperlinkLicense"> <bal:wixstandardbootstrapperapplication br="" licenseurl="" nbsp="" suppressoptionsui="yes"> LocalizationFile="HyperlinkTheme_ja.wxl" /> </bal:wixstandardbootstrapperapplication></bootstrapperapplicationref>
インストーラって面倒な設定を代替してくれるものでもあるので、社内のシステム管理にも色々利用していきたいと思います。
それではまた。
今回日本語化しましたロケールファイルですが、公開が可能かどうか社内で検討してみます。
0 コメント:
コメントを投稿