3

VS2008 でデスクトップ アプリ (C#) をローカライズしようとしています。

フォームを複数の言語にローカライズする方法をマスターしました。また、一般的な文字列用のプロジェクト リソース ファイルも持っていますが、このファイルの複数の言語バージョンを作成する方法がわかりません。

どこにも文書化されていないようです。

その結果、たとえばアプリケーションのドイツ語版を作成したい場合、一般的なリソース ファイル (Properties/Resources.resx) を編集し、アプリケーションをビルドおよびデプロイしてから、一般的なリソース ファイルを再編集する必要があるようです。英語に戻ります。

新しいドイツ語バージョンを作りたいと思うたびに、同じことをしなければなりません。これは、フォームをローカライズするためのツールと比較して非常に扱いにくいように思われるため、VS2008 にはもっと良い方法があると確信しています。誰がそれが何であるか知っていますか?

4

3 に答える 3

3

そうです、私は質問を読み違えました。

その場合、プロジェクトに新しい項目を追加するか、既存のリソース ファイルの既存のコピーを追加して、最初に VS の外部で名前を変更する必要があるかもしれません。

「リソースファイル」を選択

Resource.de-DE.resx という名前を付けます

作成したら、Properties フォルダーに移動できます。

ファイルを開き、上部のアクセス修飾子を内部に変更すると、「コード生成なし」に設定されます

ドイツ語の翻訳を含む文字列を新しいリソース ファイルに追加します。

コンパイルし、言語またはスレッドの UI カルチャが変更された場合は、言語リソース ファイルの正しい値を使用する必要があります。

私の簡単な小さなテストは問題なく機能し、必要に応じて切り替えました。

于 2008-12-11T03:54:10.713 に答える
2

サテライト リソース DLLを使用できます(注: C++ でのみ使用しました)。
これは、サポートする言語ごとに異なるリソース DLL を持つことができるシステムです。アプリケーション内にはそれ以上のリソースはありません (少なくともローカライズが必要なリソースはありません)。そのため、翻訳チームはリソース DLL を適切な言語に翻訳するだけで済みます。

于 2008-12-10T11:08:33.613 に答える
1

実際、Visual Studio にはこれが組み込まれています。言語をローカライズしたいフォームで、プロパティ Localizable を true に変更します。

次に、Language プロパティを、リソース ファイルを設定する言語に変更します。あなたの場合は、ドイツ語を選択してください。

フォーム上のすべてのテキストをドイツ語のテキストに変更します。これにより、言語プロパティも変更する言語ごとに追加の resx ファイルが作成されます。

終了したら、別の翻訳済みフォーム リソース ファイルの別の言語に変更するか、デフォルトに戻すことができます。

異なる言語を使用するように設定されたマシンでコンピューターを実行すると、一致する resx ファイルが検索され、リソース ファイルで提供されたテキストを使用するようにすべてのコントロールが切り替えられます。

CurrentThread の CurrentUICulture を変更して、これをテストすることもできます。

こちらも MSDN の優れたウォークスルーです:
http://msdn.microsoft.com/en-us/library/y99d1cd3(VS.80).aspx

于 2008-12-10T16:43:44.937 に答える