2009-08-11 11 views
2

私はC#でアプリケーションを作成していますが、多言語化したいと思います。私は最初に2つのオプションを持っています。すべてのクラスファイルのための別々のリソースファイルを作成し、2つ目はアプリケーション全体の共通リソースファイルを作成します。C#.NETを使用した多言語ウィンドウアプリケーション

どのオプションが最適かわからないので、誰かがこのことについて私に助言できますか?多言語機能を実現する他の方法がある場合は、私にも知らせてください。

乾杯:)私の経験で

答えて

1

、一つの場所にあなたのローカライズされたすべてのリソースを持っていることが容易です。しばしば、アプリケーションはいくつかの場所で使用される文字列を持ちます。 1つの場所にすべてのリソースがある場合は、繰り返しの文字列を一度変換するだけで済みます。

1

IDEに組み込まれている組み込みローカライズ機能を使用することをお勧めします。それは厄介なことができますが、それは仕事を完了します。言語ごとに別々のDLLを生成します。

UI文字列がない場合、固有の識別子に関連付けられた言語文字列を含むすべての言語を含む単一のXMLファイルがあります。

1

私はSoftwarebuero Jollans(http://jollans.com/tiki/tiki-index.php)から「多言語アドイン」を使用しました。それは非常によくサポートされている商用製品です。 Visual StudioのアプリケーションからExcelスプレッドシートにストリングをエクスポートして翻訳し、スプレッドシートをアプリケーションに再インポートすることができます。言語は埋め込まれたリソースに自動的にコンパイルされます。

1

私は各アセンブリ(必要な場合)に単一のリソースファイルを作成します。

リソースファイルのクラスをVSに作成させると、コンパイル時にリソースに安全にアクセスできます。 (あなたは各文字列のプロパティを取得します)。私はあなたがBuild Actionでこれを行うと思います。生成されたクラスは内部クラスです。したがって、リソースはアセンブリ内でのみアクセスされますが、それは理にかなっています。

1

1つのリソースファイルを使用し、すべてのフォームとコンポーネントがローカライズ可能であることを確認してください。これにより、サードパーティのツールを使用してアプリケーションをローカライズすることができます。

私たちは職場でVisual Localizeを使用します。翻訳後にテキストリソースをエクスポートして再読み込みできるだけでなく、新しいテキストサイズに合わせてダイアログのサイズを変更したり並べ替えたりすることもできます。例えば。ドイツ語は英語で同じテキストよりも1時間半長い。

1

gettextをラップして使用しました。ポジティブなことは、新しい翻訳を加えるだけですべてが機能することです。 1つは、その場で言語を変更することができます。また、翻訳者にとっては簡単なテキストファイルを送信するだけで簡単に編集できます。

まだプロジェクトにはリリースしていませんが、興味があると思うかもしれません。