2011-11-10 2 views
0

ローカライズされたコントロールがあります。私はVS Netデザイナーを使用して、MyControl.cs、MyControl.Designer.cs、MyControl.resx、MyControl.xx.resxをデフォルト以外の言語にします。C#コントロールで追加の文字列をローカライズ

表示されている文字列の中にはダイナミックなものがあり、その上でstring.Formatを呼び出す必要があります(たとえば、「He​​llo、今日は{0}になりますか? 「本」または「テレビを見る」)。これらのダイナミックな文字列はどのように扱うべきですか?

今のところ、デザイナーのラベルに書式設定する文字列を追加しましたが、置換文字列をどこに配置するのかわかりません。私は彼らのためだけに独立したresxファイルを作成することができましたが、それはちょうどいくつかの文字列の混乱のように感じます。私は自分のアプリケーション全体でこのような文字列すべてに対して独立したresxファイルを用意することもできますが、それはポプリのようなもので、あまりにも厄介です。

クリーンな方法は、単純に既存のMyControl.resxとMyControl.xx.resxにそれらの文字列を追加することですが、私は知らない:それが安全かどう

  • (すなわちVSネットデザイナーの意志混乱するかどうかこれらの文字列にアクセスするにはどうすればいいですか(InitializeComponentではコントロールのために使用されていますが、コントロールには関係しない文字列を使用できます)マジックストリングの使用を避けることができますか?)
+2

ローカライズされた置換文字列をローカライズされた形式に置き換える代わりに、フレーズ全体をローカライズすることをお勧めします。いくつかの言語は、現在のアプローチが問題を引き起こす可能性があるほど英語とは異なる構造になっています。 –

答えて

0

私はあなたがResourceManagerを探していると思います。リンクにもあなたの事例があります

関連する問題