我正在开发一个 ASP.NET webapp,它具有多语言功能,允许网站管理员在运行时创建新语言。
我正在考虑的方法如下:
- 用户选择一种可用的(未创建的)语言。
- 当用户确认时,应用程序会自动复制一组现有资源,将文件名替换为新的文化。例如: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));
}
非常感谢。