6

ベース言語が英語の WinForms アプリケーションがあります。フォームをドイツ語にローカライズしました。ドイツ語のいくつかの単語は、英語の同等のものよりもはるかに長いため、ドイツ語版のフォームでいくつかのコントロールを移動する必要がありました. 問題は、英語のコントロールを動かしたときに、ドイツ語のローカリゼーションがその動きを反映していないことです (明らかに)。

しかし、いくつかのコントロールが誤って移動されたため、それらをリセットしたいので、英語フォームの動きがドイツ語フォームにも反映されます。

ドイツ語フォーム上の 1 つのコントロールの位置とサイズ (またはすべてのプロパティ) をリセットして、コントロールが英語フォーム上で移動したときにフォームの両方の言語バージョン上で移動するようにするにはどうすればよいですか? ローカライズされた .resx ファイルを掘り下げて、コントロールのすべてのプロパティ割り当てを削除する以外に方法はありますか?

4

4 に答える 4

6

私は、Visual Studio 開発者向けのローカライズ製品の作成者です (完全な開示のために)。ローカライズされた ".resx" ファイルからプロパティを削除すると、Visual Studio フォーム デザイナーで削除するか、".resx" ファイル自体で手動で削除すると、コントロールはそのプロパティの既定の言語の値に再び従います。ただし、これを処理する特定の機能はありません。コントロールごとに自分で行う必要があります。ただし、Visual Studio は不安定な場合があり、この問題やその他の問題のためにさまざまなバグがあるため、デザイナーを使用してそれらを削除しても、常に機能するとは限りません (前回、状況を確認しました)。ドイツ語コントロールの "Location" プロパティをデフォルト言語の "

于 2013-01-18T18:20:49.947 に答える
2

コントロールを変更する必要のない方法で UI を作成すると、今後の開発が容易になると思います。次に、ラベルを翻訳するだけで、制御位置を台無しにすることはできません。

たとえば、ラベルを対応する編集フィールドの左側ではなく上部に配置し、ボタンをすべてのテキストを処理するのに十分な大きさにします。また、ドイツ語のテキストをより小さなサイズに書き換えることを検討してください。

于 2013-01-18T09:18:05.557 に答える
0

最新のローカリゼーション ツールが役立ちます。フォームはツールで視覚的に表示され、サイズと位置の値を編集できます (これらが明示的に設定されている場合)。自動サイズ コントロールは表示されますが、サイズ/場所は編集できません。

ローカリゼーションを念頭に置いてソフトウェアを設計することが重要です。実行時にフォームを大幅に変更することを回避します。ハードコーディングされた文字列や連結された文字列などは避けてください。

ローカリゼーション ツールは、ソース コードまたはコンパイル済みバイナリを検査します。翻訳するフォーム、文字列、メニューなどを見つけます。それらを翻訳のために言語学者に提示し、翻訳されたソースコードまたはバイナリを返します (何から始めたかによって異なります)。ツールは、言語フォルダーなどの .net 命名規則を理解します。

「.net ソフトウェア ローカリゼーション」を検索して、その作業を行うことができる便利なツールを見つけてください。

于 2013-01-18T11:38:05.957 に答える