2011-03-15 105 views
1

我有一个SL 4.0应用程序托管在IIS上,可以更改GUI语言。问题是托管在一台机器上,语言功能正常工作,而另一台机器不工作。这里面的一段代码:在Silverlight客户端中未正确加载资源文件

 Thread.CurrentThread.CurrentCulture = new CultureInfo(message.NewCulture); 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(message.NewCulture); 

Windows7的上它更新的UICulture与正确的资源文件和Windows Server 2008上没有。两个系统上的IIS设置似乎都是一样的。任何建议在哪里看?

+0

当您提到Windows Server 2008时,您是在服务器上本地运行还是Windows Server 2008托管Web应用程序,并且您是从客户端计算机运行它? – Aligned 2011-04-14 13:17:56

+0

@Kevin -Windows Server正在托管应用程序,我从单独的计算机(它具有Windows服务器或Windows 7作为操作系统,在不同的浏览器上尝试过)运行它 – tchrikch 2011-04-14 18:31:42

+0

所使用的文化基于客户端的计算机/浏览器设置。如果您在客户端上运行代码示例(SL),我不清楚您的问题。我认为你可能有错误的地方(即服务器)的代码。看起来像你这样做,但在你的代码片段中多一点可能会有所帮助。 – Aligned 2011-04-14 18:47:00

回答

1

您可能想看看Tim Heuer撰写的有关该主题的博客条目。

http://timheuer.com/blog/archive/2009/08/26/silverlight-string-localization.aspx

使用这个博客帖子,我能够得到的时间和最小的努力短时间内实现全球化/本地化。

听起来你需要看看设计器中的访问修饰符部分。您需要将其设置为Public才能在XAML绑定中使用它。还要检查所有RESX文件在文件的属性中是否标记为Embedded Resource。

另外请确保您的字符串资源字典具有扩展类似的东西: enter image description here

附:我希望你能阅读蒂姆的博客文章,他比我解释的更详细。另外,从我个人的经历来看,我无法动态地重新加载语言,直到我看到标题为“公共修改器替代方法和动态设置文化”的博客文章部分。

+0

thx,但我使用该博客条目构建我的本地化:)但是,我稍后做了一些更改,但核心保持不变。不幸的是,没有任何帮助,仍然在一些机器本地化工程完美和其他失败。无论如何,我几乎已经忘记了博客条目+1 – tchrikch 2011-04-13 06:53:13

0

R - 单击包含您的本地化文件的程序集,选择卸载项目,然后编辑项目文件。项目文件采用XML格式。寻找一个与SupportedCultures相关的XML标签(或类似的东西)。确保你的文化在列表中。

本地化不想为我踢,直到我得到解决。

+0

thx的建议,但我已经做了几次 – tchrikch 2011-03-18 15:24:53