1

現在、フォームのローカライズに取り組んでいます。ただし、これを正しく行う方法については多少混乱しています。

コントロール プロパティをリソース ファイルに自動的にエクスポートできると思っていましたが、これは手作業のようです。

私の現在のアプローチは、文字列型でリソース ファイルに書き込み可能なすべてのコントロール プロパティを追加することです。これは、フォーム上のすべてのコントロールと子コントロールを再帰的に列挙し、プロパティを反映することによって行われます。

しかし、これはやや複雑に思えます。他の人はどのようにこれを行っているのだろうかと思います。

私の質問: コントロール テキストのローカリゼーションにリソース ファイルを使用する場合のベスト プラクティスは何ですか?

編集:私が間違っていることがわかります。Displaytext は各リソース ファイルに自動的にコピーされると思いました。ただし、変更されたフィールドのみがコピーされるようです。

基本的に、言語を特定の設定に設定し、すべてのコントロールの DisplayText を変更し、言語を (デフォルト) に戻すと、変更が保存されます。

コメントありがとうございます。

4

3 に答える 3

4

実際、フォームのローカライズはそれほど難しくありません。「Localizable」プロパティを「true」に設定します。これにより、フォーム上のコントロールのローカライズ可能なすべてのプロパティがリソースファイルに移行されます。現在のリソースファイルは、ロケールに依存しないファイルです。次に、フォームのプロパティで別の言語を選択し、すべてのコントロールのキャプションとテキストをそれらの翻訳されたバリアントに置き換えることができます。これにより、適切なロケール依存のリソースファイルが作成されて使用されます。

Thread.CurrentThreadのCurrentCultureプロパティとCurrentUICultureプロパティを設定することで、インターフェイスが表示される言語を選択できます。

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");

インターフェイスはそれに応じて適応します。

于 2009-09-22T09:49:48.487 に答える
1

すでにこれを行っています。

フォームまたはUserControlデザイナでローカライズ可能をオンにします。

次に、言語を変更すると(デザイナーでも)、適切なlangXXX.resxが自動的に作成されます。

于 2009-09-22T09:47:50.707 に答える
1

フォームをローカライズ可能にする必要があります(プロパティパネルで、ローカライズ可能をtrueに設定します)。次に、ローカライズする言語を選択する必要があります。必要なすべてのリソースファイルは自動的に生成されます

于 2009-09-22T09:48:22.827 に答える