我正在开发一个ASP.NET Web应用程序,它具有多语言功能,允许Web管理员在运行时创建新语言。 我考虑的方法如下:
1.用户选择一个可用(未创建)语言。 2.用户确认后,应用程序自动复制一组现有资源,并将文件名替换为新文化的名称。例如:default.aspx.en-us.resx 到 default.aspx.es-ar.resx。 3.用户编辑最近创建的资源。
目前我遇到步骤2的问题。我已经成功复制了资源,但这些新资源被忽略。我认为这是因为新资源未包含在运行程序集中,因此被忽略了。当我在本地项目中测试以下代码时,我需要手动将新资源添加到解决方案中,然后重新编译才能使其正常工作。
有人知道如何使其正常工作吗?
以下是所提及的复制代码。
非常感谢您。
1.用户选择一个可用(未创建)语言。 2.用户确认后,应用程序自动复制一组现有资源,并将文件名替换为新文化的名称。例如:default.aspx.en-us.resx 到 default.aspx.es-ar.resx。 3.用户编辑最近创建的资源。
目前我遇到步骤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));
}
非常感谢您。
Build Action
、Copy To Output Directory
、Custom Tool
和Custom Tool Namespace
设置为什么? - McGarnagle