为其他语言加载资源

问题描述:

我有一个应用程序,它可以与资源进行翻译。这很好。 现在,我有一个特殊的要求。为此,我必须加载另一种语言的资源dll(例如,应用程序启动并使用英语,然后我还必须加载德语翻译)并查看它以进行翻译。为其他语言加载资源

有没有简单的方法来做到这一点?

你需要加载的ResourceManager,如果你需要的资源为特定的语言,你需要使用特定的文化,要求他们使用:

GetObject(String, CultureInfo) 

您可以创建文化你需要使用:

new CultureInfo(string name) 

或者

CultureInfo.CreateSpecificCulture(string name) 

或者

CultureInfo.GetCultureInfo(string name) 

名称是区域性名称:“恩”英语,“德”德国...你可以看到下面的链接的完整列表:cultures

using System.Resources; 
using System.Reflection; 

Assembly gerResAssembly = Assembly.LoadFrom("YourGerResourceAssembly.dll"); 
var resMgr = new ResourceManager("StringResources.Strings", gerResAssembly); 
string gerString = resMgr.GetString("TheNameOfTheString"); 

你可以把它,与GetString 一起调用您需要的具体CultureInfo。 例如:

using System.Resources; 
using System.Reflection; 

Assembly gerResAssembly = Assembly.LoadFrom("YourGerResourceAssembly.dll"); 
var resMgr = new ResourceManager("StringResources.Strings", gerResAssembly); 

// for example german: 
string strDE = resMgr.GetString("TheNameOfTheString", new CultureInfo("de")); 
// for example spanish 
string strES = resMgr.GetString("TheNameOfTheString", new CultureInfo("es")); 

`