2016-12-21 7 views
0

私はfollwing痛みのポイントを持っているローカリゼーションのための.resxリソースファイルを使用する場合:各ラベルについては私の.resxリソースファイルの痛点が

  1. 、私はそれぞれ異なる言語ファイルにエントリを作成する必要があります。エントリーの名前をコピーするという点で人的ミスが発生しやすく、同じラベルの異なる言語バージョンを1か所に追加する方が簡単です。たとえば:

    var lbl_Hello = new { en = "Hello, fr = "Bonjour" };

  2. 私は、Visual Studioの検索を使用してRESXビジュアルエディタ内の名前または値を検索するために見えることはできません。

これを克服する代替手段はありますか?

+0

私の答えの編集をご覧ください。 Ciao – Vi100

答えて

0

私はあなたの痛みを感じます。マイクロソフトがこれほど長年に渡ってこれに対してより良い選択肢を提供していなかったのはばかげている。 .NET Coreローカリゼーションでも.resxファイルが使用されます。私の代わりにこれは、あなたが追跡したい言語をforeach言語で1つのテーブルで作成することです。その後、静的変数(辞書)の形式でパイプライン(.NETコア)またはコンフィグレーションフェーズ(古いASP)にすぐにメモリにロードするか、有効期限のないローカル/共有キャッシュに挿入します。

EDIT

ローカライズするための文字列の量は非常に大きなものではなく、あなたが完璧ではなくAN上でそれらを持つよりも、彼らは静的クラス自体にインライン化置くことができるすべての言語で利用可能なそれらのすべてを持っている場合外部リソース(データベースまたはファイル)。しかし、この文字列を外部リソースに持たせることは明らかな利点の1つで、アプリケーションを再コンパイルせずに置き換えることができます。

さらに、提供したいすべてのavailables言語ですべての文字列を翻訳することはありません。次に、データベースまたは外部ファイルにリソースが割り当てられている場合、必要な権限を持つ一部のユーザーが翻訳を変更または完了できるようにユーザーインターフェイスを提供できます。

+0

データベースをロードするのではなく、静的クラスそのものにディクショナリを保持するというあなたの意見は何ですか?静的な型指定も提供します。 –

関連する問題