none
アプリケーション上で右クリックメニューが英語表示になってしまう現象について RRS feed

  • 質問

  • お世話になります。

    Visual Studio 2010(Visual Basic)で作成したアプリケーション上でマウスの右クリックによりコピー・貼り付け等を行おうとすると、右クリックメニュー(コンテキストメニュー)がCopy・Paste等の英語表記になってしまいます。
    (日本語表記されるようにしたい)

    同じ資源を複数の端末で利用しておりますが、日本語表示される端末と英語表示される端末があり、設定の違い等を調べてみたのですが、これといった相違見当たりませんでした。。。

    以下、英語表記になってしまう端末の情報です

      ○その他のプログラム(IEやメモ帳など)を使用するときは問題なく日本語表記になります。
      ○インストールされているFramework
        ・.Net Framework 2.0 Service Pack 2(日本語Language Pack(Service Pack 2))
        ・.Net Framework 3.0 Service Pack 2(日本語Language Pack(Service Pack 2))
        ・.Net Framework 3.5 Service Pack 1(日本語Language Pack(Service Pack 1))
        ・.Net Framework 4  (フル版)     (日本語Language Pack)

    ちなみに、作成した.Netアプリケーションの対象フレームワークは「.NET Framework 4 Client Profile」となっております。
    .Net Framework 4 日本語 Language Packの再インストール(修復)を行ってみましたが改善しませんでした。

    確認すべき点や改善方法がありましたら、教えていただけないでしょうか。
    よろしくお願いいたします。

    2012年4月4日 7:02

回答

  • 初回の質問の文中に記載しておりますが、VB以外のアプリケーションでは正常に日本語表示されるようなんです。。。

    すみません。見落としていました。

    「VB のアプリだけが起きる」とは読み取れるのですが、(1)VB で作った一つのアプリだけで起きるのか、(2)VB で作ったすべてのアプリで起きるのか、どちらでしょうか?
    新規にプロジェクトを作って、テキストボックスだけを貼り付けたアプリで現象が起きないのであれば、あなたが作ったアプリ独特の現象ですので、第三者には特定できません。その場合は、あなたのアプリで何か特別なことをしていないかを、情報を出していくことが必要になってきます。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。

    • 回答としてマーク CC_Obata 2012年4月12日 9:04
    2012年4月11日 13:54
    モデレータ

すべての返信

  • > ちなみに、作成した.Netアプリケーションの対象フレームワークは「.NET Framework 4 Client Profile」となっております。

    .NET Framework 4 Client Profileにも日本語Language Packがありますが、それはインストールされていないのでしょうか。
    それをインストールしてみるか、対象フレームワークを.Net Framework 4にしてビルドしなおすかしてみるのはいかがでしょうか。
    2012年4月9日 9:31
  • 回答ありがとうございます。

    確認してみましたところ、.NET Framework 4の適用状況については以下のようになっており、問題なさそうでした。
    (分かりずらい記載ですみませんでした)

     ・Microsoft .NET Framework 4 Client Profile
     ・Microsoft .NET Framework 4 Client Profile Language Pack - 日本語
     ・Microsoft .NET Framework 4 Extended
     ・Microsoft .NET Framework 4 Extended Language Pack - 日本語

    また、対象フレームワークは現在は「.NET Framework 4 Client Profile」となっているようです。
    純粋な「.NET Framework 4」に変更することも検討してみようと思いますが、
    同じ資源で日本語表示されている端末があるのが気になるところです。。。

    2012年4月10日 4:13
  • # 自信がなく放置してましたが解決されていないようなので。

    インストールされている.NET Frameworkは関係なくて、コントロールパネルの「地域と言語」の設定を反映して英語表示されている可能性があります。…と思って手元で試しましたが再現できませんでした。念のため、日本語で表示される端末と英語で表示される端末とでコントロールパネルの設定内容を見比べてみてください。

    2012年4月10日 4:38
  • 回答ありがとうございます。

    端末の言語設定を比較してみましたが、両方とも「日本」となっており問題ありませんでした。。。

    2012年4月10日 9:29
  • VB のアプリだけなんでしょうか?

    エクスプローラーのアドレスバーとか、IE のアドレスバーとか、メモ帳とか、開く・保存ダイアログのテキスト入力部分とか、これらの部分で右クリックしたときは日本語で正常に表示されるのでしょうか?

    とりあえず、スレッドの CurrentUICulture を英語に変えて右クリックメニューが変化するかを検証しましたが、変化しないことを確認しました。このことより、.NET Framework の言語パックに依存しないと考えられます。
    (例外ダイアログなどは英語にきちんとなるのでスレッドに設定が反映されているのは確か)

    TextBox 全般に対して効果があるというところからすると、常駐しているツール、導入しているソフトウェアが何か影響を与えているのではないかと予想し、先のほかのアプリではどうなのですか?という質問に至りました。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。

    2012年4月10日 13:47
    モデレータ
  • 回答ありがとうございます。

    初回の質問の文中に記載しておりますが、VB以外のアプリケーションでは正常に日本語表示されるようなんです。。。

    VBのアプリ以外でも同様の現象の発生するものが見つかれば共通点から原因が見えてくるかもしれませんね。
    機会があれば、他アプリも色々と見直してみようと思います。

    2012年4月10日 23:53
  • 簡単に「地域と言語」と挙げましたが、Windows内部ではNLS Terminologyに挙げられているように言語に絡む設定は10種類近くあります。右クリックメニューがこのうちのどの部分を参照して英語と判断しているのやら、ということだと思っています。
    # もちろん自信はありません。案外app.configとかに言語指定が入ってたり…?
    2012年4月11日 2:20
  • 初回の質問の文中に記載しておりますが、VB以外のアプリケーションでは正常に日本語表示されるようなんです。。。

    すみません。見落としていました。

    「VB のアプリだけが起きる」とは読み取れるのですが、(1)VB で作った一つのアプリだけで起きるのか、(2)VB で作ったすべてのアプリで起きるのか、どちらでしょうか?
    新規にプロジェクトを作って、テキストボックスだけを貼り付けたアプリで現象が起きないのであれば、あなたが作ったアプリ独特の現象ですので、第三者には特定できません。その場合は、あなたのアプリで何か特別なことをしていないかを、情報を出していくことが必要になってきます。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。

    • 回答としてマーク CC_Obata 2012年4月12日 9:04
    2012年4月11日 13:54
    モデレータ
  • 追加情報ありがとうございます。

    言語に絡む設定だけでもそんなにあるんですね。。。
    とりあえず、今回の原因は別にありましたが、大変勉強になりました。

    ありがとうございました。

    2012年4月12日 8:47
  • 追加情報ありがとうございます。

    Azuleanさんの回答がきっかけとなり、原因が判明いたしました。

    今回問題になったシステムでは、ユーザーコントロールを作成し、大半のアプリケーション内でそのユーザーコントロールを使用するといった形をとっております。
    このユーザーコントロールの基(継承元)となっているコントロールはVisualStudio標準のコントロールではなく、このコントロールでエラーメッセージやマウス右クリックのメニューを日本語表示するためには、それ専用のDLLを配置しておく必要があります。

    この日本語化用のDLLはシステム導入時にセットアップしておいたのですが、あらためて調査したところ何故かファイルが消えてしまっておりました。。。
    おそらく人為的な作業ミスにより消えてしまったと思われます。

    ユーザコントロールを大半のアプリケーションで使用していたことから、「VBアプリケーションのみ英語表示されてしまう」という誤解をまねいておりました。。。

    日本語化用のDLLファイルの存在は、十分把握していたのですが、まさか消えているとは思いませんでした。。。
    まず初めに確認すべきところでした。。。大変失礼いたしました。

    何れにしても原因が分かりホッとしております。
    ご協力していただいたみなさんありがとうございました!

    2012年4月12日 9:04