Silverlight不会正确读取我的资源文件

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

不幸的是,它只从英文文件中获取本地化的字符串。 为什么?


我最终通过阅读大量的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>
链接地址: http://www.djcxy.com/p/95375.html

上一篇: Silverlight doesn't read my resource file correctly

下一篇: Have a Form opened multiple times with different Localizations in Visual Studio