【发布时间】:2012-09-18 21:50:55
【问题描述】:
适用于 Windows 应用商店应用的 .NET API 中不存在 CultureInfo.GetCultures。我们如何才能阅读所有可用的文化?
我了解语言列表和主要应用程序语言。我可以通过这种方式阅读应用程序可用的所有语言。但我需要阅读系统上可用的所有文化(语言)。以前使用 CultureInfo.GetCultures 很容易。
【问题讨论】:
-
EnumSystemLocalesEx可用。我不知道这是否以某种方式投射到.NET;我没有看到任何 Windows 运行时 API。 -
谢谢,詹姆斯。看起来我们必须使用 Win32 api。微软可能会在未来将此添加到 WinRT。
-
为什么需要这个?你对结果做了什么?
-
@Eric:我只是需要它来为我的新书做一个演示应用程序。如果您的问题指向是否需要在现实世界的应用程序中检索所有文化,我怀疑这是否会经常发生在 Windows 应用商店应用程序中。但你永远不知道。无论如何我找到了解决方案(请参阅我自己的答案)。
-
鉴于有大约 6000 种语言,随着 Microsoft 添加对新语言的支持,我们最终会遇到枚举语言没有帮助的地步。有专门的列表而不是通用列表(请参阅 Windows.System.UserProfile.GlobalizationPreferences.Languages 和 Windows.Globalization.ApplicationLanguages)。 Windows.Globalization.Language.IsWellFormed 还针对 BCP47 格式良好的约束进行验证。如果有这些未涵盖的场景,我很想了解它们。
标签: c# windows-runtime microsoft-metro windows-store-apps