asp.net - 类库中的本地化/资源文件

标签 asp.net c#-4.0 web localization

我正在尝试在 .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/

相关文章:

html - 连接到笔记本电脑上的本地主机服务器时,HTML按钮在移动设备上不起作用

asp.net - 在 ASP.NET 中使用 AjaxControlToolkit 的异步 AJAXFileUpload 控件返回数据

asp.net - IIS 中默认阻止哪些文件扩展名

asp.net-mvc - 从基本页面在不同 Controller 之间保留数据

django - 访问本地网络中 ubuntu 服务器上托管的网页

javascript - 如何隐藏 url 不出现在地址栏中(使用 javascript)

ASP.NET 如何将容器值作为 javascript 参数传递

c# - Selenium 无法连接到本地主机以测试 ASP.NET

c# - 如何读取 Excel 电子表格中的单个列?

c# - 编译器在传递方法时无法确定泛型类型