我正在尝试在.NET
类库中实现全球化。在.NET
Web应用程序中,这似乎工作正常。我可以在App_GlobalResources
下添加多个资源文件。
e.g。
LocalizedText.resx
LocalizedText.fr.resx
但是,类库中的资源文件处理方式不同。我通过
添加资源文件
1)打开类库的属性
2)点击资源标签
3)单击链接以创建“默认资源文件”
使用此模型似乎只想允许一个默认资源文件。我可以重命名文件并且似乎绕过这个“一个文件”限制但是如果我生成具有与上面相同名称的资源文件,则似乎没有为“LocalizedText.fr生成代码.resx“档案。如果我在代码中引用一个字符串,就像这样......
myControl.Text = Properties.LocalizedText.MyLocalizedText;
它引用了 LocalizedText.resx 文件的值(忽略了我将文化集设置为法语的事实)。我猜测,无论自动生成设计器文件的代码,都会发现已经 “LocalizedText”类,并且不生成必要的代码。
我没有办法(相当于Web应用程序项目)在类库中使用多个资源文件,对每种文化命名不同,并且能够在代码中轻松访问它(信任.NET
根据文化信息适当切换)?
非常感谢
答案 0 :(得分:0)
首先:在项目中创建一个名为“ MyFolder”的文件夹。
第二:将名为“ MyResourceFile”的资源文件添加到该文件夹。
第三:要在其中访问资源值的地方,导入:
using System.Reflection;
using System.Resources;
using MyProject.MyFolder.MyResourceFile;
并创建一个可以访问您的资源的属性。像这样:
public static ResourceManager oResourceManager = new ResourceManager("MyProject.MyFolder.MyResourceFile", typeof(MyResourceFile).Assembly);
第四:从您的媒体资源中获取数据:
oResourceManager.GetString("ResourceKey", System.Globalization.CultureInfo.CurrentCulture);