为其他语言加载资源

4

我有一个应用程序,它与翻译资源一起工作。这很好地发挥了作用。 现在,我有一个特殊的要求。为此,我必须加载另一种语言的资源-dll(例如,应用程序以英语启动和工作,然后我还必须加载德语翻译)并查找其翻译。

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

3个回答

4

您需要加载资源管理器,如果需要获取特定语言的资源,则需要使用特定的区域设置进行请求,使用如下:

GetObject(String, CultureInfo)

您可以使用以下方式创建所需的文化:
new CultureInfo(string name)

或者

CultureInfo.CreateSpecificCulture(string name)

或者

CultureInfo.GetCultureInfo(string name)

名称是文化名称: "en"表示英语, "de"表示德语...您可以在以下链接中查看完整列表: 文化


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

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

`


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接