【发布时间】:2010-09-08 07:18:55
【问题描述】:
我有一个要求,我的 UI 应该以除英语之外的 5 种不同语言显示。
我创建了两个 DLL
Component.dllComponent.resources.dll
Component.resources.dll 只包含 UI 中显示的所有字符串和一个类
public class PResources
{
private static System.Resources.ResourceManager resourceMgr = new System.Resources.ResourceManager(typeof(PEditResources));
/// <summary>
/// Get NLS String method string method
/// </summary>
/// <param name="identifier"></param>
/// <returns></returns>
public static string GetNLSString(string identifier)
{
return resourceMgr.GetString(identifier, Thread.CurrentThread.CurrentUICulture);
}
/// <summary>
/// Returns the NLS Resource Mgr.
/// </summary>
/// <returns></returns>
public static System.Resources.ResourceManager GetNLSResourceMgr()
{
return resourceMgr;
}
}
在Component.dll 中显示标签文本我使用以下
label1.text = PResources.GetNLSString("IDS_LABEL1");
在英语中它工作得很好...... 但是当语言设置更改为法语或其他时,显示的字符串仍然是英文文本。
注意:Component.Resources.dll 字符串被翻译成所有语言。
当我调试时...我发现GetNLSString 函数Thread.Current.UICulture 是法语...但是resourceMgr 对象仍然指向英语.dll 路径并且Thread.Current.Culture 是英语!
有什么解决办法吗?我错过了什么吗?
【问题讨论】:
标签: c# dll internationalization culture uiculture