[英]Silverlight doesn't read my resource file correctly
我有為英語(MyResourcesFile1.resx)和法語(MyResourcesFile1.fr.resx)創建的.resx文件。 兩者都具有對Public的Access Modifier
,並且都是Embedded Resource
。
在app.xaml.cs中,甚至Application_Startup都包含:
var languageInfo = new CultureInfo("fr");
Thread.CurrentThread.CurrentCulture = languageInfo;
Thread.CurrentThread.CurrentUICulture = languageInfo;
在Silverlight代碼的許多地方,我使用Visual Studio提供的生成的屬性。
string myString = MyResourcesFile1.MyPropertyValue;
不幸的是,它僅從英語文件中獲取本地化的字符串。 為什么?
通過閱讀很多Microsoft文檔,我終於使它起作用了。
Visual Studio 2010還沒有菜單來添加Silverlight項目支持的語言。 為了使您的應用程序可以處理所有資源文件,需要對其進行修改。 第一步是使用NotePad打開項目解決方案。 完成后,搜索SupportedCultures 。 在括號內,您可以添加所需的語言(無需添加默認語言)。 所以我的現在看起來像這樣:
<SupportedCultures>fr
</SupportedCultures>
重新加載項目並進行編譯。 如果像我在“應用程序啟動”中一樣設置線程,則資源將正確加載並顯示。 我認為它不能動態更改,但對我來說不是必需的。
其中一個選項是安裝App.xaml.cs中的設置區域性,您可以在其中設置對象標記。
<object ...>
...
<param name="culture" value="de-de" />
<param name="uiculture" value="de-de" />
...
</object>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.