質問

だから、多言語に対応する必要のあるプログラムがあります。私が必要としているものとウェブ上で見つけたものとの唯一の違いは、プログラムを実行するすべてのコンピューターが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関数を使用できますか?

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

ありがとう

役に立ちましたか?

解決

コードで必要なカルチャを設定できます。例:

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

詳細については、こちらのMSDN記事をご覧ください。情報。

他のヒント

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

  resources.ApplyResources(this, "$this")

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

Windowsでは、ユーザーが指定されたアプリケーションに異なるロケールを指定できると考えています。 Windows 2000でこれを最後に試しました。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top