gpt4 book ai didi

.net - Silverlight 本地化错误?

转载 作者:行者123 更新时间:2023-12-01 04:14:45 25 4
gpt4 key购买 nike

我有一个非常奇怪的问题,看起来可能是 Silverlight 错误。我在一个从 VS2010 创建的简单应用程序中复制了这个,Silverlight 应用程序项目默认模板。

在应用程序中,我有两个 .resx 文件,“Strings.resx”和“Strings.de.resx”。他们每个人都有一个键“SomeString”,如下所示:

Strings.resx - SomeString - “一些测试字符串”

Strings.de.resx - SomeString - “一些 DE 测试字符串”

在单个应用程序 MainPage.xaml 上,我只是在 MainPage 的类构造函数中添加了一个 TextBlock,我在这样的代码中使用了它:

   Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
txt.Text = Strings.SomeString;

Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
txt.Text = Strings.SomeString;

使用调试器逐步执行此操作会显示 txt.Text 首先是“某些 DE 测试字符串”,然后是“某些测试字符串”。所以一切正常。

但是,我在我的机器上安装了德语语言包。现在,如果我在机器的区域设置中将系统语言更改为“Deutsch”并注销/登录以使更改生效,则相同的代码的工作方式不同:从资源中检索相同的字符串“某些 DE 测试字符串”两次。基本上,将当前文化/uiculture 设置为“en-US”的第二个设置什么都不做,仍然会检索德语字符串。

所以实际上,如果我想要一个应用程序,用户可以独立于系统语言更改显示语言,我不能这样做,因为检索到了不正确的资源。

同样,在 Windows 操作系统语言设置为英语的情况下,一切正常,我可以更改文化并且可以正常工作,加载正确的字符串资源。当 Windows 操作系统语言设置为 Deutsch(尚未检查其他语言)时,我无法加载英文字符串资源。

该问题在 Vista 和 Windows 7 机器上都表现出来,尚未在其他机器上测试过。

ps:csproj文件改成 <SupportedCultures>en,en-US,de,de-DE</SupportedCultures>
知道我做错了什么吗?

最佳答案

我认为您的问题来自您的 Silverlight 程序集的默认文化:您是否在将 Windows 文化从 en 更改为 de 后重新编译了应用程序?

尝试检查程序集中性文化,并手动设置:

[assembly: NeutralResourcesLanguage("en")]

在 assemblyInfo.cs 文件中

关于.net - Silverlight 本地化错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4387907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com