1

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

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

编辑

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

http://www.silverlightrecipes.com/2012/03/building-global-windows-8-metro-xaml.html http://www.silverlightrecipes.com/2012/04/building-global-windows-8-metro -xaml.html http://www.silverlightrecipes.com/2012/04/pri-files-deep-dive-building-global.html

4

2 回答 2

1

你可以试试 Windows.Globalization.ApplicationLanguages.Languages

于 2013-07-08T16:58:23.363 回答
0

以下是我为查找资源字符串的所有值而得出的结论,由资源字符串的语言索引:

就我而言,“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;
    }
于 2013-07-09T18:23:24.470 回答