Windows runtime 如何枚举WinRT应用程序中可用的语言/文化资源?
我正在将现有应用程序移植到“WinRT”平台。此应用程序搜索卫星资源DLL,以确定哪些语言已本地化 在WinRT应用程序中,是否有一种等效的机制可以枚举具有可用资源的语言 编辑 仍在寻找如何做到这一点,但同时,我希望这些文章能帮助我更好地理解WinRT资源:Windows runtime 如何枚举WinRT应用程序中可用的语言/文化资源?,windows-runtime,windows-store-apps,Windows Runtime,Windows Store Apps,我正在将现有应用程序移植到“WinRT”平台。此应用程序搜索卫星资源DLL,以确定哪些语言已本地化 在WinRT应用程序中,是否有一种等效的机制可以枚举具有可用资源的语言 编辑 仍在寻找如何做到这一点,但同时,我希望这些文章能帮助我更好地理解WinRT资源: 您可以尝试Windows.Globalization.ApplicationLanguages.Languages您可以尝试Windows.Globalization.ApplicationLanguages.Languages以下是我为
您可以尝试Windows.Globalization.ApplicationLanguages.Languages您可以尝试Windows.Globalization.ApplicationLanguages.Languages以下是我为检索资源字符串的所有值而想到的方法,这些值由资源字符串的语言索引: 在我的例子中,“resourceKey”是这样的字符串:
string resourceKey = "Namespace/Resources/thekeyhere";
如果要检查此项,可以检索ResourceMap中的所有键
private static Dictionary<string, string> GetResourceValuesByLanguage(string resourceKey)
{
var languages = new Dictionary<string, string>();
var markerResource = ResourceManager.Current.MainResourceMap[resourceKey];
var candidates = markerResource.Candidates;
foreach (var c in candidates)
{
var lq = c.Qualifiers.FirstOrDefault(q => q.QualifierName == "Language");
if (lq != null)
languages[lq.QualifierValue] = c.ValueAsString;
}
return languages;
}
私有静态字典GetResourceValuesByLanguage(字符串resourceKey)
{
var languages=新字典();
var markerResource=ResourceManager.Current.MainResourceMap[resourceKey];
var候选者=markerResource.candidates;
foreach(候选人中的var c)
{
var lq=c.Qualifiers.FirstOrDefault(q=>q.QualifierName==“语言”);
如果(lq!=null)
语言[lq.QualifierValue]=c.ValueAsString;
}
返回语言;
}
以下是我在搜索资源字符串的所有值时想到的方法,这些值由资源字符串的语言索引:
在我的例子中,“resourceKey”是这样的字符串:
string resourceKey = "Namespace/Resources/thekeyhere";
如果要检查此项,可以检索ResourceMap中的所有键
private static Dictionary<string, string> GetResourceValuesByLanguage(string resourceKey)
{
var languages = new Dictionary<string, string>();
var markerResource = ResourceManager.Current.MainResourceMap[resourceKey];
var candidates = markerResource.Candidates;
foreach (var c in candidates)
{
var lq = c.Qualifiers.FirstOrDefault(q => q.QualifierName == "Language");
if (lq != null)
languages[lq.QualifierValue] = c.ValueAsString;
}
return languages;
}
私有静态字典GetResourceValuesByLanguage(字符串resourceKey)
{
var languages=新字典();
var markerResource=ResourceManager.Current.MainResourceMap[resourceKey];
var候选者=markerResource.candidates;
foreach(候选人中的var c)
{
var lq=c.Qualifiers.FirstOrDefault(q=>q.QualifierName==“语言”);
如果(lq!=null)
语言[lq.QualifierValue]=c.ValueAsString;
}
返回语言;
}
谢谢-不是这样,但该属性的文档让我找到了ApplicationLanguages.ManifestLanguages,我认为这正是我想要的。谢谢-不是这样,但该属性的文档让我找到了ApplicationLanguages.ManifestLanguages,我认为这正是我想要的。