質問

いくつかの文字列リソースがあります。ユーザーウェルカム文字列。デフォルトでは「Hello」になりますが、顧客Xには「Greetings」になります。

.NETのリソース実装を使用したい文字列を定数、ファイル、または好きな場所に配置し、さらに階層モデルを自分のニーズに合わせます。顧客Xのリソースはユーザーの歓迎文字列をオーバーライドします。

唯一の問題-.NETのリソースはi18n向けであり、現在の文化に基づいて階層から選択しているようです。

今のところ、顧客ごとにフラットなリソースを維持し、自分で階層をマッピングしますが、より良い解決策はありますか?

役に立ちましたか?

解決

複数のResourceManagerを持つことを妨げるものは何もありませんが、あなたが言うように、それはl18n向けに設計されています。個人的には、特にGACのサテライトアセンブリと展開に関しては、resxに多くの問題がありました。私が抱えているもう1つの問題は、このシステムの剛性です。dllを再コンパイルしてxmlをいじるのに必要な新しい文字列が必要になった場合、顧客は時間をサポートするために必要なものを修正することに柔軟性がありません。

resxスタッフが持つ階層ベースのソリューションは、「en-US」からフォールバックすることを意味します。 「en」へそして最後に不変式では、それ以上のフォールバックはなく、2つの異なる「en-US」を定義できません。同じ文字列の1つのリソースファイル。このソリューションをハックして、「en-US」を使用できます。顧客Xおよび「en-AU」の場合顧客Yの場合、1つのリソースとして出荷しますが、これは地獄のように面倒です。

顧客ごとに異なるサテライトアセンブリをコンパイルし、これを何らかの方法で機能させることができます。

個人的には、sqliteまたはmssqlを使用してローカライズするためのデータベースバックアップソリューションを好み、最初の文字列のルックアップ後にいくつかのキャッシュを実行するようにします。

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