&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つずつ文字列リソースを定義していく方法。 *rexファイルでローカライズ [#i52235d6] **画像ファイル・XMLファイルなどのローカライズ [#k2e37c28] -[[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); } }}