3

CAB (複合アプリケーション ブロック) ベースのスマート クライアント winform アプリケーションがあります。

ソフトウェア要件の 1 つは、ユーザーがアプリケーションで提供されている言語オプションを変更したときにテキストを動的に置き換えることです。

東アジア(中国語/日本語)、ヨーロッパ言語(ロシア語、スペイン語、英語、オランダ語)を含む約6言語をサポートしています。

ローカリゼーションの深いレベルを理解した後、ローカリゼーションとは単にテキストを動的に置き換えるだけではないことを知りました。

ローカライズされたリソース オプションに基づいて Windows コントロールが作成されていることがわかりました。ITには、フォーマット、検証のような機能があります。

フォーム/ビューを閉じずにテキストを動的にローカライズすることをお勧めしますか? または、アプリケーションを再起動する必要がありますか? または、フォームを閉じてフォームを再度開きます

動的な言語の変更を奨励すべきではないのはなぜですか?

4

2 に答える 2

0

起動時にのみ言語をチェックし、適切なリソース (.resx) ファイルをロードして、アプリケーションのすべての文字列をロードします。これは独自の手段で行うことができます。または、.Net にはリソース ファイルを使用してこれを行う方法が組み込まれていると思います。

動的言語変更のために CPU 監視を浪費したくありません。ユーザーが PC の言語設定を変更する頻度はどれくらいですか? その場で言語を切り替えている場合は、アプリケーションを簡単に再起動できます。

私は自分の PC を箱から取り出したときにのみ英語に設定していることを知っています。また、どの国の人も同じように、つまり母国語を話す言語を選択することを期待しています。

于 2009-10-13T14:27:03.377 に答える
0

残念ながら、ロケールを動的に変更する良い解決策はありません。

Guy Smith- Ferrierは .NET の国際化 (文字通り) に関する本を書きました。彼のソリューションのコードは次のとおりです: http://www.dotneti18n.com/Downloads.aspx役に立たなくします。

最初の起動時に言語を Windows ロケールに設定し、設定に保存するだけで、ほとんどのユーザーにとって適切です。ユーザーがアプリ内から変更したい場合は、アプリケーションを 1 回再起動するだけで済みます。

于 2011-03-03T14:55:56.183 に答える