我正在尝试在 .NET
类库中实现全局化。在 .NET
Web 应用程序中,这似乎工作正常。我可以在 App_GlobalResources
下添加多个资源文件。
例如
LocalizedText.resx
LocalizedText.fr.resx
但是资源文件在类库中的处理方式有所不同。我通过
添加资源文件
1) 打开类库的属性
2) 单击资源选项卡
3) 点击链接创建“默认资源文件”
对于这一模型,它似乎只想允许一个默认资源文件。我可以重命名文件,并且似乎可以绕过这个“一个文件”限制,但如果我生成与上面名称相同的资源文件,则似乎没有为“LocalizedText.fr”生成代码.resx” 文件。如果我像这样在代码中引用一个字符串......
myControl.Text = Properties.LocalizedText.MyLocalizedText;
它引用 LocalizedText.resx 文件来获取值(忽略我将区域性设置为法语)。我猜测无论什么自动生成设计器文件的代码,都会看到已经有一个“LocalizedText”类,并且不会生成必要的代码。
有没有一种方法(相当于 Web 应用程序项目)可以在类库中使用多个资源文件,为每种文化命名不同,并且能够在代码中轻松访问它(相信 .NET
根据文化信息进行适当切换)?
非常感谢
最佳答案
首先:在项目中创建一个名为“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);
关于asp.net - 类库中的本地化/资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812415/