次の問題の適切な解決策を探しています。
いくつかのクライアントで使用される ASP.NET MVC Web アプリケーションがあります。アプリケーション内で、クライアントはログインし、情報を含むいくつかのページを表示し、いくつかのフォームに入力できます。これはすべてうまくいきます。
ただし、クライアントのプロパティ (この場合はタイプ) に応じて、ビューに異なるテキストを表示することが必要です。これらのテキストは多言語にすることができ、ユーザーはアプリケーションで言語を変更できます。
私はこれに対していくつかの解決策を考え出しましたが、最善のアイデアが何であるかはわかりません。これらはこれまでの私の考えです:
データベースに情報を保存する
この場合、キー、クライアントのタイプ、言語、およびそれ自体のテキストを含むテーブル (たとえば、'ProgramTexts') を作成します。私のコントローラーでは、そのビューで使用されているキーを取得し、ViewModel に設定して、そのビューモデルをビューに渡します。ビューでは、ViewModel で指定された変数の値を簡単に表示できます。
これは小さなサイトではうまくいくと思いますが、多くの異なるコントローラーとビューでは少し分厚いようです. ビューから直接テキストを「呼び出す」ほうがよいのですが、ビューからデータベース呼び出しを行うのはあまり良くありません。
リソース ファイル
私の他のアイデアは、ローカリゼーション機能が組み込まれているため、リソース ファイルを使用することです。ただし、追加の変数 (この場合は型) に基づいて、リソースから変数を取得する方法がわかりません。
これを達成する方法について別のアイデアを持っている人はいますか?