一個非常簡單的事情,我無法讓它工作。我想全球化我的DLL,因此我正在使用資源文件+ ResourceManager。Resourcemanager正在返回相同的資源,雖然指定了CultureInfo
我調用ResourceManager這樣的:
var p = new ResourceManager("Appname.Default", Assembly.GetExecutingAssembly());
獲取字符串這樣
System.Diagnostics.Debug.WriteLine(p.GetString("greeting"));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl-NL")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("en")));
並返回的字符串相同的4倍。我的文件被稱爲
Default.resx
Default.en.resx
Default.nl.resx
Default.nl-NL.resx
所有文件設置都是一樣的,但提到 - 只用在默認文件資源。
我在這裏忽略了什麼?
是.resx文件實際上得到編譯成附屬程序集?查看bin \ Debug文件夾並查找名稱爲en,nl和nl-NL的子目錄。 –
嘗試通過'Default.ResourceManager.GetString'獲取翻譯。很有可能你正在創建的資源管理器會得到一些錯誤的參數。 –