类库中的本地化/资源文件

时间:2014-07-17 19:57:15

标签: asp.net c#-4.0 web localization

我正在尝试在.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根据文化信息适当切换)?

非常感谢

1 个答案:

答案 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);