Visual Studio 2008で国際化対応のアプリを開発しています。


FormのLocalizableやLanguageのプロパティを設定し、多言語のリソースを登録することで、問題なく動作しています。

これから動的にFormに追加したオブジェクトを多言語に対応することになりました。

Dim label = New Label()
label.Text = "日本語テキスト"
Me.Controls.Add(label)

上記のようなLabelを動的に追加するとします。
この時、英語のTextも登録したいのですが、やり方がわかりません。

サンプルコードを提供してください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/10/04 11:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:tasklight No.1

回答回数323ベストアンサー獲得回数40

ResourceManagerクラスを用います。

id:bokudoraenon No.2

回答回数10ベストアンサー獲得回数0

ポイント70pt

私はVS2003, 2005, 2010で国内&海外向けアプリ(別々ではなく、ひとつのアプリ)を開発しています。

ResourceManagerを使うのはひとつの手だと思います。ソースはたとえば↓にあります。

http://www1.kokusaika.jp/advisory/org/ja/dotnet_resource.html

http://msdn.microsoft.com/ja-jp/library/system.resources.resourc...

他には、Web.configや他の外だしファイルの項目、あるいはセッションなどをキーにして言語などを読み取り表示/ロジックを切り替える、という方法を私はとることもあります。

少し状況が違うかもですが、参考になればうれしいです。

id:ma_kobayashi

ResourceManagerでGetStringを使えば、リソースファイルで定義されたカルチャ固有の文字列などを取得できますが、私はそれらをランタイムでリソースに登録したいです。たとえば、ResourceManagerからAddStringができれば、問題解決となりますが、そのような機能はないようで、困っています。

2010/09/27 14:17:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません