我为英语(MyResourcesFile1.resx)和法语(MyResourcesFile1.fr.resx)创建了.resx文件。两者都有公共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;
不幸的是,它只接受英文文件中的本地化字符串。为什么呢?
答案 0 :(得分:1)
我最后通过阅读很多Microsoft文档来使它工作。
Visual Studio 2010没有(还)一个菜单来添加Silverlight项目支持的语言。要让您的应用程序使用所有资源文件,需要对其进行修改。第一步是使用NotePad打开项目解决方案。完成后,搜索 SupportedCultures 。在括号内,您可以添加所需的语言(无需添加默认语言)。所以我现在看起来像这样:
<SupportedCultures>fr
</SupportedCultures>
重新加载项目并编译。如果像在应用程序启动时那样设置线程,则会正确加载和显示资源。我认为它不能动态改变,但对我来说没有必要。
答案 1 :(得分:0)
其中一个选项是App.xaml.cs中的设置文化,您可以在其中设置对象标记。
<object ...>
...
<param name="culture" value="de-de" />
<param name="uiculture" value="de-de" />
...
</object>