加载其他语言的资源

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

是否有捷径可寻?

您需要加载资源管理器,如果您需要特定语言的资源,则需要使用特定文化来请求它们,使用:

GetObject(String, CultureInfo) 

您可以使用以下方法创建所需的文化:

 new CultureInfo(string name) 

要么

 CultureInfo.CreateSpecificCulture(string name) 

要么

 CultureInfo.GetCultureInfo(string name) 

名称是文化名称:“en”英语,“de”德语…您可以在以下链接中查看完整列表: culture

 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")); 

`