如何在asp.net网络应用程序中使用动态本地化

时间:2009-11-01 18:37:17

标签: c# localization

我已将名为language.resx的资源文件添加到我的App_GlobalResources文件夹,这使我能够访问App_GlobalResoureces.Language.MyString等字符串。我如何让这种动态?因此,如果我有一个名为ResourceID的字符串,如何从资源文件中提取正确的资源?

到目前为止,我试过这个:

string s = "MyString";

System.Resources.ResourceManager = new System.Resources.ResourceManager("App_GlobalResources.Language", System.Reflection.Assembly.GetExecutingAssembly());
string lang = mngr.GetString(s);

但这不起作用(它说找不到命名空间或其他东西)。

有人建议使用数据库,但我不想要这个,因为它只是我要翻译的几个枚举。

3 个答案:

答案 0 :(得分:1)

怎么样:

string s = "MyString";
var mngr = new System.Resources.ResourceManager("Resources.Language", 
    System.Reflection.Assembly.Load("App_GlobalResources"));
string lang = mngr.GetString(s);

答案 1 :(得分:0)

这很容易让人感到尴尬。为什么这个非常简单的东西总是很难找到

正确的代码是:

App_GlobalResources.Language.ResourceManager.GetString("MyString");

答案 2 :(得分:0)

这是Visual Studio生成的代理代码。如果你想自己找到这个文件(我认为你的动态意思是什么)你可以像代码sinnpet aobe那样做。实际上,我通过复制为资源文件生成的属性的“get”访问器的内容来获取此代码:)