&tag(WPF,ローカライズ);
*目次 [#p359e173]
#contents
*参考情報 [#c9965a00]
-[[WPF のグローバリゼーションおよびローカリゼーションの概要:http://msdn.microsoft.com/ja-jp/library/ms788718.aspx]]…Microsoftのドキュメント。
-[[WPF Localization Guidance:http://wpflocalization.codeplex.com/]]…英語だが最初に目を通しておいて損はない(?)
-[[東京ダメりーまん@メーカー勤務 WPFのローカライズ:http://floatingplankton.blog72.fc2.com/blog-entry-26.html]]…ランタイムに切り替えない。
-[[WPF Runtime Localization - CodeProject:http://www.codeproject.com/KB/WPF/WPFLocalize.aspx]]…ランタイムに切り替える。
--[[WPFの国際化対応 - 匣の向こう側 - あまりに.NETな:http://d.hatena.ne.jp/akiramei/20081021/1224601501]]上記記事の日本語解説。
-[[WPF Localization Using RESX Files - CodeProject:http://www.codeproject.com/KB/WPF/WPF_Resx_Localization.aspx]]
-[[Simple WPF Localization - CodeProject:http://www.codeproject.com/KB/WPF/WPF_Localization.aspx]]

*基本 [#w7c6f05d]
-大別して、LocBamlというMicrosoft製コマンドラインツールを使う方法か、resxファイルを使う方法に分けられそう。
-LocBamlを使う方法は、アプリがほとんど完成してからリソースをCSVに書き出し翻訳してからマージする。
-resxファイルを使う方法は、Resources.resx、Resources.ja.resに1つずつ文字列リソースを定義していく方法。

*resxファイルでローカライズ [#i52235d6]
**画像ファイル・XMLファイルなどのローカライズ [#k2e37c28]
-resxファイルで文字列リソースを定義できるだけでなく、画像やテキストファイルなどを追加することができる(そのためのGUIもある)。
-[[Silverlight Quick Tip: Resources in RESX files – Image Resources for Localization - Alex Golesh's Blog About Silverlight Development:http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2009/07/14/silverlight-quick-tip-resx-image-resources.aspx]]にあるように、resxごとに異なるファイルを埋め込めばよいと思われる。

**デフォルトを日本語リソースとして英語リソースを追加する [#ea664474]
-Resources.resxに英語リソース、Resources.ja.resxに日本語リソースをに記述するのが自然な流れ(?)
-しかし日本語版作成→英語化の流れだと、Resources.resxに日本語リソース、Resources.en.resxに英語リソースを記述しないといけなくなる場合もある。
-この場合フランス語環境で起動するとデフォルトの日本語リソースが使われる。英語リソースを使いたい場合、プログラムでCurrentUICultureをセットしてやるといい。[[Visual C#でのWindowsアプリの国際化 - Nikep's blog:http://www.nikep.net/srdpty/index.php?/archives/18-Visual-CWindows.html]]より、CurrentUICultureが日本語でも英語でも無い場合英語を使うよう設定する。
#pre{{
// check culture and set en, if not ja.
if (!Thread.CurrentThread.CurrentUICulture.Name.StartsWith("ja") &&
     !Thread.CurrentThread.CurrentUICulture.Name.StartsWith("en")) {
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en", false);
}
}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS