为其他语言加载资源
问题描述:
我有一个应用程序,它可以与资源进行翻译。这很好。 现在,我有一个特殊的要求。为此,我必须加载另一种语言的资源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"));
`