しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

WPF の多言語化

川西 裕幸のブログ : LocBAML で紹介されている方法を試してみました。ターゲットは MiniTwitter です。

とりあえず UICulture を指定して、msbuild を使って x:Uid を自動的に追加してもらいます。XAML に対して行われるので、リソースディクショナリにも自動で付加されます。後はサテライトアセンブリをビルドして LocBAML を使って x:Uid とプロパティの値が書かれた CSV を出力するんですが、MiniTwitter はテーマ用の XAML を埋め込んでいるのでかなりのサイズになってしまいました。

x:Uid が付加された XAML を見てみると CommandBinding などローカライズに関係ないものにまで付加されていて、それがさらにサテライトアセンブリを肥大化させていたようですCSV ファイルが肥大化していました。なので必要なオブジェクトにのみ、手動で x:Uid を付加するほうがよさそうです。

追記

多言語化はしばらく後回しになりそう。テーマとの依存関係の問題やらが浮き彫りとなったので、テーマ周りの改善をしてからまた挑みたいです。