2009-05-07 8 views
1

私は、以下の非標準の設定(VS2008、.NET 3.5 SP1)を持っている:トリッキーASP.NET Webフォームのリソースに問題とローカリゼーション

MainSiteと呼ばれるメインのWebプロジェクトがあると、「プラグイン」のいくつかがあります。異なる名前のWebプロジェクト。

これらのプラグインをビルドするときは、aspnet_compiler.exeaspnet_merge.exeを呼び出すカスタムビルドステップがあります。これにより、2つの.DLLファイルが生成されます。プラグイン名 .dllおよびプラグイン名 _deploy.dll。最初のコードにはコードビハインドクラスが含まれ、2つ目には.ascxファイルから生成されたコードが含まれます。

これらのプラグイン.DLLは/MainSite/bin/Plugins/フォルダにコピーされます。実行時(アプリケーションの起動時)に、MainSiteアプリケーションはこのフォルダを検索し、そこですべての.DLLファイルを動的にロードします。

すべてのフォームは、プラグイン、.ascxファイル内にあります。主なアプリケーションは、必要に応じてこれらの.ascxユーザーコントロールを読み込むスケルトンです。

ローカライゼーションが必要になりました。理想的には私は次のことを持っているしたいと思います:

  • のVisual Studioのリソースを作成するとき、人々はでフォームをローカライズすることがより簡単になるように、すべてのフォーム(た.ascxファイル)のための個別のリソースファイルがあるはずです平行。
  • .ascxファイルのnice meta:resourcekeyメソッドは、コントロールのローカライズに非常に便利です。
  • .NETの自動リソース言語/カルチャのフォールバックメカニズムを使用する必要があります。
  • コンパイル結果は、すべてのプラグインのファイルを/MainSite/bin/Plugins/フォルダにコピーできるようにする必要があります。すべての言語/文化に対応する.DLLファイルがあり、特定のサブフォルダに格納されている場合は、別のプラグインの.DLLに衝突する名前がない限り問題ありません。

どのようにこれを達成するためのアイデアですか?

答えて

1

.NETでカスタムリソースプロバイダを実装することは明らかです。 Hereは、プロセス全体を説明するさまざまな他の記事へのリンクを含む記事です。実際には、meta:resourcekeyから値を取得し、必要な値を取得します。上記の記事では、すべてのローカライズ情報をDBに格納しています。

関連する問題