【发布时间】:2023-03-20 07:57:01
【问题描述】:
我创建了一个简单的 Windows 商店应用程序,其中包含 3 种语言:英语、德语和俄语。我没有使用完整的文化名称,如 ru-RU、en-US 或 de-DE,但我只是指定语言:ru、en、de。所以我有以下资源文件结构:
prj-folder
\ strings
\ de
\ Resource.resw
\ en
\ Resource.resw
\ ru
\ Resource.resw
在清单中,我将默认文化设置为“en”。我的开发工作站具有美国文化,因此如果运行该应用程序,所有内容都是英文的(正如预期的那样,顺便说一句)。
为了测试其他文化,我在App.ctor 中添加了以下代码:
public App()
{
InitializeComponent();
var culture = new CultureInfo("ru-RU");
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = culture.Name;
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
// ...
}
效果很好。我可以看到俄语或德语的所有内容。
我已经发布了我的应用程序 - 今天它已出现在商店中。在开发工作站(en-US)上,一切都按预期工作。但!在带有德语(de-DE 文化)的工作站上 - 一切都是英语:Windows Store 中的描述和应用程序中的 UI。我不知道我的本地化出了什么问题,也不知道为什么一切都是英文的。
注意:这可能很重要。我在应用程序的更新中添加了德语和俄语。第一个版本只有一种语言 - 英语,默认文化是 en-US。
更新: 似乎问题与使用德语 Windows 8 的设备有关。大多数应用程序都在 de-DE 文化下运行,但我的应用程序在 en-US 文化下运行。我会试着找出我们的原因。
【问题讨论】:
-
等待更新发布到市场,您将拥有自己的语言。
-
嗯。您可以通过从商店下载自己的应用来重现该行为吗?
-
@linkerro 更新当然已经在商店里了
-
@Vlad 是的,我在德语 Windows 8 上进行了更新 - 英语;然后我卸载了应用程序并再次安装 - 再次英语
-
@ie.: 那么你可以附加一个调试器并查看线程的 UI Culture 是什么?
标签: c# localization windows-8 windows-runtime windows-store