我有一个UWP应用程序,其中包含我们支持的每种语言的资源文件。如果我将目标机器上的语言更改为法语(fr-FR),我会正确地看到应用程序中加载的所有法语字符串。这一切都按预期工作。
然而,在我们的应用程序的另一个地方,我们根据"语言"加载特定文件。来自资源管理器的属性,如下所示:
var rc = ResourceManager.Current.MainResourceMap.GetSubtree("Files").GetValue("File.txt", ResourceContext.GetForCurrentView());
var lang = rc.Qualifiers.FirstOrDefault(q => q.QualifierName == "Language").QualifierValue;
// Get the file
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///" + lang + "/File.txt"));
在磁盘上我有一个不同的副本" File.txt"每种语言:
en-US \ File.txt
fr-FR \ File.txt
等
但是我只能获得要读取的en-US文件。如何用法语编译我们的应用程序,所以上面的代码片段为“语言”限定符返回“fr-FR”?
答案 0 :(得分:0)
我认为您正在尝试执行本文中描述的操作:
[WinRT] How to get the language code actually used to resolve a resource
它也适用于UWP应用程序。
但是对我而言,Windows.Globalization.ApplicationLanguages.Languages更好。您可以使用以下内容获取语言:
var fr=Windows.Globalization.ApplicationLanguages.Languages[0];