2014/09/28

インストーラ作成ツール Wix Bundleの日本語化について

 ここんとこ忙しくて、とんと更新できていませんでした。
 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 コメント:

コメントを投稿