QA@IT

Visual Studio 2012 Express でフォームの国際化ができません

3036 PV

Visual Studio 2012 Express for Windows Desktopをインストールして、アプリの開発をしようと思ったのですが、
対象のフレームワークを .NET Framework 3.0に変更すると、Form の ローカライズがうまく動作しません。

新しいプロジェクトを作成した段階では、対象のフレームワークは4.5に設定されていますが、
そのままフォームのローカライズの設定を行った際には、正常に動作します。
(標準と、日本語(ja-JP)の言語を設定したところ、日本語の内容で表示されました)

次にプロジェクトのプロパティから、対象のフレームワークを3.0に変更すると、以下の参照設定が使えないとエラーになりましたので、参照設定とソースのusing部分を削除しました。

  • Microsoft.CSharp
  • System.Core
  • System.Data.DataSetExtensions
  • System.Xml.Linq

この状態で、エラーも警告もなく動作するようになったのですが、標準のリソースに設定した内容でフォームが表示されてしまいます。

参照設定を削除したのがまずかったのかと思ったのですが、このままの状態で対象のフレームワークを4.5に戻すと、きちんと日本語で表示されるようになります。

ちなみに、フレームワークのバージョンが4.0でも日本語で表示されましたが、3.5ではダメでした。

フリーソフトをターゲットに考えていますので、できれば現時点で標準で対応している3.0で開発できればと思っています。

開発環境はWindows7になります。
64ビット版と32ビット版両方で試しましたが、同じ結果でした。

どなたか解決方法をご存知の方がいましたら御教授願えますでしょうか。

よろしくお願いします。

追記:
こちらにソースコードと、画面のキャプチャをおきました。
https://skydrive.live.com/redir?resid=6E664F12D3D4CA83!474
一応、フレームワークのバージョンを表示するようにしてみたのですが、ターゲットをVersion3.0にしたのに、2.xxで表示されていますが、何か関係あるのでしょうか?

回答

追記

Visual Studio 2012 Express for Desktop で再現しました。

http://connect.microsoft.com/VisualStudio/feedback/details/768995/localization-not-working-in-vs-2012-express-when-targeting-net-2-0-3-0-3-5-in-win8

というのがあがっていて、VS2012 Update 1で解決すると書いてあるんですが、Update 3を当てたところ解決しませんでした。Windowsの再起動してなかったからか、Update 1を個別に充てる必要があるのか、デグレードしてるのかは不明ですが、とりあえず大元はバグの様ですね。
(Update 3に Update 1の内容含まれていないのかな…)

ちょっとすっきりしないですが、まだUpdateを当てていない場合は Updateを当ててみたほうがいいかもしれません。
また年末にはVS2013も出てきますのでそちらに期待…やはりすっきりしないですね。


Visual Studio 2012 Proでやってみましたが問題なくできました。
Windows 8で実行しました。

  • FormのLoacalizableプロパティをTrueに
  • FormのLanguageを規定値に設定
    • button1のTextを適当な文字列に設定
  • FormのLanguageを日本語(日本)に
    • button1のTextを区別がつくような別の文字に設定
  • FormのLanguageをドイツに
    • button1のTextを区別がつくような別の文字に設定

ターゲットアセンブリを3.0に(エラーとなったアセンブリ参照は削除)。
実行すると日本語(日本)で設定したものが表示されます。

OSの違いがありますが、ひとまず gtprkhtさんが実施したローカライズ手順は上記の方法でいいですか?

あと個人的には理由がなければ 3.5の方が良いと思います。
一応 XPでも 3.5 SP1まで提供されてますし、なにより 3.0だとLINQが使えないんですよね。

編集 履歴 (2)
  • 御回答ありがとうございます。

    行った手順は提示して頂いた通りの内容となります。

    違いは、標準と日本語の2か国語でしか試していないのと、OSと、Visual studioのエディションぐらいでしょうか。

    よろしくお願いします。
    -
  • Win7のVS2010Proでやってみましたが問題なく動きました。同じ環境じゃないですが参考までに。 -
  • flied_onionさん確認ありがとうございます。
    Expressエディションなのが原因なのですかね?
    それとも私の端末(2台ありますがどちらもダメでした)の環境が問題なのでしょうか?
    切り分けができない状態です。
    よろしくお願いします。
    -
  • Win7+VS2012Express for Desktopで試したところ確かに発生しました。作成したソリューションをWin8のVS2012Proでリビルドしたら直りました。現在ExpressにUpdate3を適用中です。 -
  • Update3当てても起こりました。ちょっと回答に追記します。 -
  • flied_onion 様、色々と調べて頂き本当に感謝です。
    結論としてはバグということで了解しました。
    無償なので文句も言えるわけでもなく、そういうものだとして別途対応を考えたいと思います。
    ありがとうございました。
    -
  • 無償とはいえ製品ですから、MSDNフォーラムなどにフィードバックか質問を投稿してみてもいいかもしれませんね。上のConnectへのリンクも貼りつつ、Update 3当てたけど直らないですとか。日本語のフォーラムもありますので。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。