1

私は次の状況に直面しています:

  • 複数のプロジェクトを持つ複雑な MVC アプリケーション
  • 複数の言語を処理できる必要があります (すべての言語が既に定義されているわけではありません)。
  • リソース キーは常に利用可能ですが、言語ごとに値が異なります。
  • サービス層と Web 層にはリソースが必要です
  • リソースは独自のプロジェクトにあります リソースは公開されており、ビルド アクションが埋め込まれたリソースとカスタム ツール PublicResXFileCodeGenerator

ゲームチェンジャー:

  • 各言語のリソース テキストは Web フロントエンドで編集可能で、その場で利用できる必要があります

そして、ここに問題があります。フロントエンドでの各リソースの内容の読み取りと表示は問題ありません。

セット CultureInfo に代わってローカライズされたリソース ファイルを読み取ります。

var resourceSet = ResourceFile.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, false);

とにかくリソースファイルを変更することは可能ですか? 別のアプローチは何でしょうか?データベースの方法?

このアプローチを見つけました。ただし、リソース用に別のプロジェクトがあり、複数のプロジェクトでそれらを必要とするため、おそらく私たちの環境では機能しません。

データベースの方法についての私の(単純な)考え:

  • すべての ViewModel に必要なすべての文字列は、ViewModelBase >:/ で定義されます。
  • コントローラーはビューごとに必要な文字列を取得し、リポジトリからロケールを設定し、それらをビューモデルに設定します
  • ビューは ViewModel.Key ごとにリソースにアクセスします

何かご意見は?

ありがとう!

4

2 に答える 2

2

とにかくリソースファイルを変更することは可能ですか?

いいえ、リソース ファイルではありません。を記述してcustom resource provider、たとえばデータベースなどの別のストレージに保存できます。

于 2013-03-01T16:55:40.840 に答える
0

遅い回答: すべてのリソースをデータベースに保存し、カスタム リソース プロバイダーをコーディングしました。

于 2015-03-26T10:50:50.637 に答える