3

我正在开发一个 ASP.NET webapp,它具有多语言功能,允许网站管理员在运行时创建新语言。

我正在考虑的方法如下:

  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));
}

非常感谢。

4

1 回答 1

0

创建或编辑资源文件的方式与读取数据不同。为了创建或编辑资源文件,您应该以与创建或编辑 XML 文件相同的方式进行操作,因为资源文件具有特定的结构化 XML 元素。

也许这篇文章会帮助你...

于 2012-09-24T12:44:44.630 回答