Windows runtime 如何枚举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以下是我为

我正在将现有应用程序移植到“WinRT”平台。此应用程序搜索卫星资源DLL,以确定哪些语言已本地化

在WinRT应用程序中,是否有一种等效的机制可以枚举具有可用资源的语言

编辑

仍在寻找如何做到这一点,但同时,我希望这些文章能帮助我更好地理解WinRT资源:


您可以尝试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,我认为这正是我想要的。