3
我正在開發一個ASP.NET webapp,它具有多語言功能,允許網站管理員在運行時創建新語言。ASP.NET在運行時創建資源
,我想的方法是如下:
- 用戶選擇一個可用的(未創建)語言。
- 當用戶確認後,應用程序會自動複製一組現有資源,用新文化替換文件名。例如:default.aspx.en-us.resx爲default.aspx.es-ar.resx。
- 用戶編輯最近創建的資源。
目前我遇到了第2步的麻煩。我已經完成了複製資源,但這些新資源被忽略。我認爲發生這種情況是因爲新資源未包含在正在運行的程序集中,因此被忽略。
當我在本地項目中測試以下代碼時,我將不得不手動將新資源添加到解決方案,然後重新編譯以使其工作。
有誰知道如何使這項工作?
這是所提到的副本的代碼。
string _dir = path_ + "App_LocalResources\\\\";
DirectoryInfo _dirInfo = new DirectoryInfo(_dir);
foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) {
_file.CopyTo(_dir + _file.Name.Replace("en-us", idioma_.Cultura));
}
string _dir2 = path_ + "App_GlobalResources\\\\";
_dirInfo = new DirectoryInfo(_dir2);
foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) {
_file.CopyTo(_dir2 + _file.Name.Replace("en-us", idioma_.Cultura));
}
非常感謝。
在你的項目中,有哪些特性'構建Action','複製到輸出Directory','自定義Tool',和'自定義工具Namespace'設置爲您的.ResX文件? – McGarnagle
默認的resx文件具有以下屬性:Build acttion:「Content」,複製到輸出目錄:「不要複製」,自定義工具:-nothing-,自定義工具命名空間:-nothing- – Javier
爲了補充我的問題,過程正常。問題是複製後,當我更改語言時,這些新的資源文件將被忽略並且不會被讀取。 – Javier