Silverlight无法正确读取我的资源文件

时间:2011-12-13 14:28:40

标签: c# silverlight c#-4.0 silverlight-4.0 localization

我为英语(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;

不幸的是,它只接受英文文件中的本地化字符串。为什么呢?

2 个答案:

答案 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>