我创建了一个简单的 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 文化下运行。我会试着找出我们的原因。