Home > C# > 目的別資料 > 地域設定

MSBuild作業を使用する

WPFのための地域設定の手引き Localization Guidance for WPF

原文

WPF Localization Guidance 「Rick StrahlとMichele Leroux Bustamante(2009年6月)」の和訳です。
地域設定の実装の参考にしてください。

関連ファイル

MSBuild作業を使用する

Using an MSBuild Task

先程のセクションで説明されるバッチファイルは、 地域設定されたBAMLリソースとResxリソースを結合する処理の進行過程を見ることがより簡単になります。 別の方法は、MsBuildタスクを使用することです。 それは、設定にもう少し作業がありますが、その時、あなたが、ビルド処理を利用することができるように 、サテライト・アセンブリ出力は、それに、構築され、さらに統合されており、信頼できます。

先に述べたと同じCodeProject記事は、(http://www.codeproject.com/KB/WPF/LocBamlClickOnce.aspx) ツールのようないくつかの他の役に立つ作業と一緒に、どのように、この作業を実行するかを示します。 それは、エクスポートされたCSVの結果を、以前に地域設定されたCSVコンテンツと同期することができます。 本記事の概念は、類似したビルド・スクリプトをつくるために使用されています。

Figure 16は、わずかに単純なビルド・スクリプトを具体的に説明します。 それは、LocBamlの生成とサテライト・アセンブリの結合だけを処理します。

FIGURE 16:

サテライト・アセンブリを作成するLocBamlを実行するためにMsBuild Targetを使用します。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
	<!-- Adds the build action 'LocBamlCsv' -->
	<!-- ビルド動作『LocBamlCsv』を追加します -->
	<ItemGroup> 
		<AvailableItemName Include="LocBamlCsv"/> 
	</ItemGroup> 

	<Target Name="AfterBuild" 
		DependsOnTargets="$(CreateSatelliteAssembliesDependsOn)" >
		
	<!-- Locbaml needs the runtime assemblies in the output dir --> 
	<!-- Locbamlは、出力ディレクトリにランタイム・アセンブリを必要とします。--> 
	<Copy SourceFiles="$(ProjectDir)..\Tools\LocBaml.exe" 
		DestinationFolder="$(OutputPath)" />

<!-- generate a .resources file for .csv merged output -->
<!-- .csvの出力を結合した.resourcesファイルを生成します。 -->
<Exec Command="LocBaml /generate 
..\..\$(IntermediateOutputPath)$(TargetName).g.$(UICulture).resources 
/trans:%(LocBamlCsv.FullPath) /out:..\..\$(IntermediateOutputPath) 
/cul:%(LocBamlCsv.Culture)" 
		WorkingDirectory="$(OutputPath)" 
		ContinueOnError="true"/>

	<Exec Command="al /template:$(TargetName).exe /culture:%(LocBamlCsv.Culture) 
	/out:..\..\$(OutputPath)%(LocBamlCsv.Culture)\$(TargetName).resources.dll 
	/embed:$(TargetName).g.%(LocBamlCsv.Culture).resources 
	/embed:$(TargetName).Properties.Resources.%(LocBamlCsv.Culture).resources" 
		WorkingDirectory="$(IntermediateOutputPath)" 
		ContinueOnError="true"/> 

</Target> 
</Project>

このビルド・ターゲットを使用するために、次に示す準備が必要です。:

  • LocBaml.exeは、あなたのプロジェクトと同じフォルダ・レベルの、\Toolsフォルダの中に存在する必要があります。
  • 地域設定されたCSVファイルは、プロジェクト・ルート下で\Resフォルダに存在する必要があります。 それぞれのカルチャ.csvファイルは、.csv拡張子(すなわち、de.csv)を追加した、カルチャ識別子で名前を付ける必要があります。
  • あなたのプロジェクト・ファイルの存在するターゲットの後に、ビルド・ターゲットを追加します。:
    <Import Project="$(ProjectDir)LocBamlCsv.Target.xml" />
  • あなたが、エクスポートして、それを結合したい、それぞれのカルチャためにアイテム・エントリを追加します。:
  • <LocBamlCsv Include="Res\de.csv">
     	<Culture>de</Culture>
     </LocBamlCsv> 
    </code>
  • あなたは、手動で、al.exeコマンド・ライン内の、任意の追加のResxファイルを追加する必要があります。
    /embed:$(TargetName).MyResources.%(LocBamlCsv.Culture).resources

あなたは、これを処理するために、手動でプロジェクト・ファイルとLocBamlCsv.Target.xmlファイルを編集する必要があります。 あなたは、どのように、これが、完全なプロジェクトに設定されるか見るために、WpfLocalizationLocBamlプロジェクトを確認することができます。

ビルド作業は、対象とする出力フォルダ(bin\Debugやbin\Release)に、LocBaml.exeをコピーします。 そして、そこから、LocBamlを実行します。それは、続いて、中間の(obj\DebugやRelease)フォルダに、出力リソースを作成します。 アセンブリ・リンカは、続いて、最終的なサテライト・リソース・アセンブリを構築するために呼び出されます。それには、地域設定されたResxとBAMLリソースが含まれています。

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」