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-BE
与 nl
,依此类推。
我已经在使用 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);
}
}
与会遇到此问题的其他人分享此信息,因为网上没有太多关于此的主题。
我想知道是否有解决此问题的简单方法。我们有一个数据库,其中包含一些不同语言的字符串。它们有一个语言代码(例如:"en"
、"en-us"
、...)和一个值。我想匹配用户拥有的最接近的语言。
比如我在数据库中有如下信息:
en-GB = Boot
en = Trunk
nl = Kofferbak
de = Kofferraum
我想将 "en-US"
(来自用户)与 "en"
(在数据库中)匹配,"en-GB"
与 "en-GB"
、"nl-NL"
和 nl-BE
与 nl
,依此类推。
我已经在使用 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);
}
}
与会遇到此问题的其他人分享此信息,因为网上没有太多关于此的主题。