加载其他语言的资源

时间:2011-01-23 16:17:42

标签: c# resources load translation

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

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:4)

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

GetObject(String, CultureInfo)

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

new CultureInfo(string name)

或者

CultureInfo.CreateSpecificCulture(string name)

或者

CultureInfo.GetCultureInfo(string name)

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

答案 1 :(得分:1)

using System.Resources;
using System.Reflection;

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

答案 2 :(得分:1)

你可以使用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"));

`