5

DisplayAttributeコード全体にハードコードされた文字列とハードコードされたメッセージ文字列を含む多くのデータ注釈を使用して、まだローカライズできない ASP.NET MVC アプリケーションを構築しています。

ここで、アプリケーションがローカライズ可能でなければならないという要件がありますが、それでもユーザーがフィールドの表示とテキストをカスタマイズできるようにする必要があります。

RESXこれまでのところ、カスタムのファイルを使用することを検討していますIResourceProvider。Rick Strahl はそれについて良い記事を書いています。このアプローチでは、アプリケーションは標準RESXファイルを使用して開発されますが、実行時にアプリケーションが文字列を必要とする場合、カスタム プロバイダーは DB にクエリを実行してカスタマイズを探し、見つかった場合はそれらを使用します。

良い解決策のように思えますが、それは自然なことではありません。もっと良い代替案があるのではないかと思います。

これに対する基準はありますか?

4

1 に答える 1

1

静的な値をデフォルトとして使用し、ローカライズされた値をデータベースでチェックすることの何が不自然でしょうか? 誰かが db のリソースを台無しにして、たとえば、何らかの方法でそれらの 1 つを削除した場合、表示するデフォルトのテキストが常に表示されるため、私にとっては良いアプローチです。

リソースが少ない場所にあると何かを見落としやすいため、データベースベースのテキストのみを使用して、コードのデフォルトの変更とデータベースの翻訳を気にしないで、いつでも別の方法でそれを行うことができます。おそらく2年前にnopCommerceのコードをチェックしていたとき、彼らがデータベースからのリソースのみでローカリゼーションを行っているのを見ました。今はどうなっているのかわかりませんが、ソースコードをダウンロードして確認できます。

1 年前に開発した WinForms アプリでは、さまざまな言語の XML ファイルを使用していました。これは、技術者ではないネイティブが新しい​​言語ファイルを作成できるようにすることを顧客が望んでいたためです。また、アプリに組み込まれたローカリゼーション ツールを作成しましたが、Web サイトの場合はデータベースを使用するのが最適です。データベースに既にアクセスしており、データを簡単に操作できるからです。

このトピックの詳細については、このブログ投稿を参照してください。

于 2013-02-04T13:11:01.293 に答える