
使用環境 visualstudio2010
表題の件で質問させてください
多言語対応アプリケーションを日本語OS、英語OSで対応できるように日本語、英語両方のリソースファイルを作成し、使用するPCのOSで判断してサテライトアセンブリを切り替えたいと考えています
visualstudio2010を用いて日本語OSのPCではコード内に
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
と表記し言語の切り替えを確認できましたが、
実際英語OSのPCで発行したアプリケーションを立ち上げると日本語のまま表記されています
発行したアプリケーションのDLLには英語リソースファイルは抜けなく入っておりました
参考リンク
上記リンクを参考にいたしました
使用するOSで自動的にリソースを切り替えるということは可能でしょうか?
大変わかりにくく説明不足な点ばかりだと思いますがよろしければアドバイス宜しくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。


退会済みユーザー
2018/02/19 01:09

回答1件
0
ベストアンサー
以下の記事は ASP.NET Web Forms アプリのカスタムコントロールの多言語化の例です・・・(基本的には同じはず)
多言語対応カスタムコンロトール
http://surferonwww.info/BlogEngine/post/2010/12/06/Multi-Languages-Web-Custom-Control.aspx
記事のようにリソースファイルを作りコンパイルすると、記事の一番下の画像のように、カスタムコントロール本体のアセンブリと en-US, fr-FR, ja-JP フォルダ(中身はローカライズされたリソースのサテライトアセンブリ)が生成されます。
多分このあたりまでは質問者さんがご自分の開発環境で行ったのとほぼ同じだと想像しています。
ローカライズされる仕組みは、リソースマネージャが実行時に、現在のアプリを処理しているスレッドのカルチャ情報 (CurrentUICulture) を参照してローカライズされたリソースを検索し、UI に表示されるテキストを取得するということだそうです。
なので、質問者さんがご自分の開発環境で、
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
としたときは、リソースマネージャが実行時に、現在のアプリを処理しているスレッドの CurrentUICulture は en-us と判断し、当該リソースからテキストを取得して、
言語の切り替えを確認できましたが
ということになったと想像しています。
ここまで想像は合っているでしょうか?
とすると、
実際英語OSのPCで発行したアプリケーションを立ち上げると日本語のまま表記されています
ということの原因として考えられるのは:
(1) そもそも多言語化できてない or
(2) アプリを処理しているスレッドのカルチャが en-us になってない or
(3) en-us のサテライトアセンブリがない
ぐらいですが、(1) はなさそう、(3) は、
発行したアプリケーションのDLLには英語リソースファイルは抜けなく入っておりました
とのことですのでこれもなさそうということで、先の私のコメントで (2) を確認してはいかがでしょうと提案しました。
今回自分が作成したプログラムではないのですが
とのことですがソースコードに手を加えることができるなら以下のようなコードを追加して ci がどうなるか調べてみてはいかがでしょう。
CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentUICulture;
投稿2018/02/19 01:44
編集2018/02/19 10:00
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2018/02/20 09:02 編集

退会済みユーザー
2018/02/22 00:28 編集

退会済みユーザー
2018/02/22 01:52

退会済みユーザー
2018/02/26 02:29 編集

退会済みユーザー
2018/02/26 03:07

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。