2

だから私は多言語である必要があるプログラムを持っています。私が必要としているものと Web で見つけたものとの唯一の違いは、私のプログラムが実行されるすべてのコンピューターが EN のローカライズに設定されていることです。

英語を話す従業員と同じように、プログラムを使用するスペイン語を話す従業員がいます。そのため、コンピューターのローカリゼーションに基づいて何かをセットアップすることはできません。すべてコードで行う必要があります。

私が持っているすべてのフォームに対して XML ファイル (実際には単なるデータセット) を作成し、各データ テーブルを選択可能な言語にすることを考えていました。各テーブルには、必要なラベル/チェックボックスなどを設定するための情報 (コントロール名、プロパティ、およびテキスト) があります。新しいフォーム コントロールを作成する必要があります。これにより、汎用関数を使用して、可能であればこれらすべてのコントロールの名前を変更することができます。

<DataSet>
   <English>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hello</Text>
   </English>
   <English>
     <ControlName>labelBye</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Bye</Text>
   </English>
   <Spanish>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hola</Text>
   </Spanish>
</DataSet>

また、各フォームのリソース ファイル内の文字列についてもあまり知りませんでした。そこからそれを行い、.Net関数を使用してこれを達成できますか?

ですから、私が書いたばかりのプログラムに戻ってこれを入れたくないので、たくさんの提案をお待ちしています。この吸盤ですでに多くの時間を費やした後、戻って機能を追加するのは嫌いです...

ありがとう

4

3 に答える 3

2

コードで必要なカルチャを設定できます。たとえば、次のようになります。

Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");

詳細については、この MSDN の記事を参照してください。

于 2008-11-14T19:39:34.793 に答える
1

それは苦痛ですが、難しくはありません。VS2008のWinFormデザイナー内で、フォームを選択し、そのプロパティを表示して、Localizable = Trueを設定します(ファイルの背後にある部分的なクラス/コードを表示すると、次のような新しい行が表示されます)

  resources.ApplyResources(this, "$this")

次に、サポートするロケールごとに、[言語]を選択し、デフォルトのローカルで必要な変更をローカライズします。

Windowsでは、ユーザーが指定されたアプリケーションに別のロケールを指定できると思います。私は最後にこれをWindows2000で試しました。

于 2008-11-17T03:11:40.543 に答える
0

Windows ではマシン カルチャ EN を使用できますが、ブラウザでは、PC の個々のユーザーが好みのカルチャを選択できます (とにかく IE と Firefox)。PC の他のすべては英語です IE で、[ツール]、[オプション] に移動し、[全般] タブの [言語] ボタンをクリックします。言語の優先階層を指定できます。

それ以外の場合は、ジョーの答えに進みます。

于 2008-11-17T15:15:17.400 に答える