2016-04-18 8 views
0

に.wxlファイル内の文字列の値を表示しません。インストーラを多言語(Windowsの地域設定に応じて言語を表示する1つの.msiファイル)にローカライズしました。ローカライズmultilangualのWiXインストーラは、私はWiXのツールセット3.10を使用した.msiインストーラを作成し、正しい言語

私はDA-DK.mstファイルを作成していたし、私は1つのmultilangualインストーラはデンマークと英語の両方で動作しますが、私は二つの問題

を持っているので、私は英語の.msiファイルに言語を埋め込むためにwisubstg.vbsを使用 WixUI_da-DK.wxlの言語ファイルからその値を取得した文字列は、正しい言語を表示しません。常に英語のデフォルト言語値を表示します。

その他の問題は、いくつかの形でデンマーク語で。 Cut off built in text

ここでの問題は、どのようにそれを修正するにはどうですか? launch is alwyas in english あなたのテキストは、あなたのUIの大きさを変更する必要が切り取らなっている場合はこれが.wxsファイル

<UI> 

      <UIRef Id="WixUI_InstallDir"/> 
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="2">1</Publish> 
      <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">1</Publish> 
      <Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish> 
     </UI> 

     <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" /> 
     <Icon Id="icon.ico" SourceFile=".....\Images\Img_app.ico"/> 
     <Property Id="ARPPRODUCTICON" Value="icon.ico" /> 

     <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="!(loc.LaunchApp)" /> 
     <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" /> 

<!-- end snippet --> 

答えて

1

から私のUIです。あなたがそのテキストを表示するために使用しているものは何でも制御

は、その幅より大きな数を作ります。 UIコントロールまたは表示されているテキストについての情報が不十分なため、「Launch App Name」テキストが常に英語であるとコメントすることはできません。使用しているUIに関する情報を追加する必要があります。


はここでは定義され、この制御を持ってbrowsedlg.wxsでWiXの https://github.com/wixtoolset/wix3/tree/develop/src/ext/UIExtension/wixlib

のデフォルトのダイアログへのリンクです。

<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgDescription)" /> 

残念ながら、デンマークはここので、テキストオフインストーラのカットについてはかなりの長さで、楕円を使用しています。

これを修正する最も簡単な方法は、AppNameBrowseDlg.wxsという名前の新しいwxsファイルをプロジェクトに追加して、https://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib/BrowseDlg.wxsからxml全体をコピーすることです。 <ダイアログ> Idを「AppNameBrowseDlg」に変更する必要があります。今度は、説明コントロールの幅を大きくして、デンマークのテキストが適切に収まるようにします。

この新しいダイアログを使用するには、別のwxsファイルを追加する必要があります。このファイルをAppName_InstallDir.wxsという名前で呼び出すと、https://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib/WixUI_InstallDir.wxsのコピーになります。ここでは、Idはちょうど変更

をAppName_InstallDirする<UI>を変更する必要があります。また、これらの行を変更する必要があります< DialogRef ID = "BrowseDlg" > < DialogRef ID = "AppNameBrowseDlg" >

<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish> 
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 

<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish> 

これは、本質的に対話し、UI definを複製あなたのAppNameBrowseDlg

を参照しますあなたのインストーラで使用していたものです。あなたのプロダクトでは、UIRefを "AppName_InstallDir"に変更するだけで、デフォルトのbrowsedlgをデンマーク語のテキストに合ったものに置き換えた定義済みのUIが使用されます。私はまた、WixUIのbrowsedlgの記述コントロールがより広いことを尋ねて、ここでwixの改善を提出することを検討します。https://github.com/wixtoolset/issues/issues

英語のmsiを他の言語のベースとして使用しているため、起動テキストが英語に固執しています。このチェックボックスの実装方法は、チェックボックスコントロールのテキスト値が設定されているプロパティから英語のテキストをハードコーディングすることを意味します。 msiをローカライズする方法は、おそらく複数の文字列テーブルを作成し、実行時に適切なテーブルから文字列を選択することです。しかし、チェックボックスは文字列テーブルからそのテキスト値を取得しません。代わりに、 "LaunchApp"の値に設定されたプロパティの値からです。 (ちなみに、msiのデンマーク版をベースとして使用した場合、このテキストは常にデンマーク語になります)。

これは、Wix BrowseDlgを変更したのと同じ方法で修正できます。この場合、我々はここでhttps://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib/ExitDialog.wxs

あなたはAppNameExitDialogにダイアログ同上の名前を変更する必要がありますし、我々はあなたがしたい、この制御で

<Control Id="OptionalCheckBox" Type="CheckBox" X="135" Y="190" Width="220" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]"> 
    <Condition Action="show">WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed</Condition> 
</Control> 

を見てみたいからAppNameExitDialog.wxsにExitDialogをコピーしたいですまた、以下の

<Control Id="OptionalCheckBox" Type="CheckBox" X="135" Y="190" Width="220" Height="40" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="!(loc.LaunchApp)" /> 

に変更し、Windowsインストーラを使用すると、リンクのスクリーンショットで見る灰色っぽいものより他の色として自動的にチェックボックスの背景を表示することができません。テキストの背後にあるこのグレーを取り除きたいのであれば、実際にチェックボックスコントロールの幅と高さをチェックボックスのサイズ程度に変更し、テキストを ""に設定することができます。次に、チェックボックスのテキストの移動先のUIコントロールに別のTextコントロールを追加する必要があります。あなたはテキストの背後に灰色の背景がないでしょう。これの欠点は、グレー領域のどこかをクリックする前に、チェックされているかどうかを切り替えるには実際のチェックボックスをクリックする必要があることです。適切にあなたがあなたのAppName_InstallDir.wxsファイルに移動し、代わりにAppNameExitDlgこともExitDialogを参照>を公開1 <を変更するにはExitDialog参照を変更する必要があり、この新しいダイアログを参照するには、再度

、。

これが役に立ちます。 gitリポジトリは、wixが本当にどのように動作するかを理解するのに非常に便利です。

+0

インストーラのUIを含む.wxsファイルの一部を追加しました – Laila

+0

UIのサイズを変更する方法について検索しましたが、何も見つかりませんでした。あなたはお付き合いのダイアログを追加する必要があるのですか? – Laila

+0

水平ルールより下の更新で解答を更新しました。これは役に立ちます:] –