2009-05-07 46 views
1

我已經得到了以下非標準的設置(VS2008,.NET 3.5 SP1):棘手的問題與ASP.NET Web表單資源和本地化

有一個叫MainSite主網項目,並有幾個「插件」具有不同名稱的Web項目。

當構建這些插件時,我有一個自定義生成步驟,調用aspnet_compiler.exeaspnet_merge.exe。這導致了兩個.DLL文件 - plugin_name .dll和plugin_name _deploy.dll。第一個包含代碼隱藏類,第二個包含從.ascx文件生成的代碼。

然後將這些插件.DLL複製到/MainSite/bin/Plugins/文件夾中。在運行時(應用程序啓動),MainSite應用程序在此文件夾中查找並動態加載所有.DLL文件。

我所有的表單都在插件中,在.ascx文件中。主應用程序只是一個根據需要加載這些.ascx usercontrols的框架。

現在需要本地化。理想情況下,我想有以下幾點:

  • 製作時在Visual Studio中的資源,應該有各種形式(.ascx文件)單獨的資源文件,以便更容易爲人們本地化的形式平行。
  • .ascx文件中的meta:resourcekey方法非常適合本地化控件;
  • .NET中的自動資源語言/文化回退機制應該是可用的;
  • 編譯結果應該是這樣的:所有插件的文件都可以複製到/MainSite/bin/Plugins/文件夾中。如果每個語言/文化都有一個.DLL文件,並且它們必須放在某些特定的子文件夾中 - 只要來自不同插件的.DLL沒有碰撞名稱就沒有問題。

有關如何實現此目的的任何想法?

回答

1

顯然可以在.NET中實現自定義資源提供程序。 Here是一篇文章,其中包含指向解釋整個過程的各種其他文章的鏈接。實際上,您從meta:resourcekey獲取值,並從您想要的任何位置獲取價值。例如,上面的文章將所有本地化信息存儲在數據庫中。