UI を英語以外の 5 つの異なる言語で表示する必要があるという要件があります。
2 つの DLL を作成しました
Component.dll
Component.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
!
これに対する解決策はありますか?私は何かを逃したことがありますか。