CultureInfo:比较包括 parent

CultureInfo: Compare including parent

我想知道是否有解决此问题的简单方法。我们有一个数据库,其中包含一些不同语言的字符串。它们有一个语言代码(例如:"en""en-us"、...)和一个值。我想匹配用户拥有的最接近的语言。

比如我在数据库中有如下信息:

en-GB = Boot
en = Trunk
nl = Kofferbak
de = Kofferraum

我想将 "en-US"(来自用户)与 "en"(在数据库中)匹配,"en-GB""en-GB""nl-NL"nl-BEnl,依此类推。

我已经在使用 CultureInfo,但似乎没有执行此操作的方法。我可以检查文化的 parent,但我希望对此有一个更简单的解决方案。

似乎没有针对此问题的内置解决方案。所以,我自己用扩展方法解决了这个问题:

public static class CultureInfoExtensions
{
    public static bool MatchesWith(this CultureInfo cultureInfo, CultureInfo matchCandidate)
    {
        if (cultureInfo == CultureInfo.InvariantCulture)
        {
            return false;
        }

        return cultureInfo.Equals(matchCandidate) || cultureInfo.Parent.MatchesWith(matchCandidate);
    }
}

与会遇到此问题的其他人分享此信息,因为网上没有太多关于此的主题。