diff --git a/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs index fa6f0a17f..11105654e 100644 --- a/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.Localization/RuleEngine/CultureRuleProvider.cs @@ -27,6 +27,10 @@ namespace Orchard.Localization.RuleEngine { if (String.Equals(ruleContext.FunctionName, "culture-isrtl", StringComparison.OrdinalIgnoreCase)) { ProcessCurrentCultureIsRtl(ruleContext); } + + if (String.Equals(ruleContext.FunctionName, "culture-lang", StringComparison.OrdinalIgnoreCase)) { + ProcessLanguageCode(ruleContext); + } } private void ProcessCurrentCultureIsRtl(dynamic ruleContext) { @@ -48,6 +52,15 @@ namespace Orchard.Localization.RuleEngine { .Any(c => c.Name == currentUserCulture.Name); } + private void ProcessLanguageCode(dynamic ruleContext) { + var currentUserCulture = CultureInfo.GetCultureInfo(_workContext.CurrentCulture); + + ruleContext.Result = ((object[])ruleContext.Arguments) + .Cast() + .Select(CultureInfo.GetCultureInfo) + .Any(c => c.Name == currentUserCulture.TwoLetterISOLanguageName); + } + private void ProcessCultureId(dynamic ruleContext) { var currentUserCulture = CultureInfo.GetCultureInfo(_workContext.CurrentCulture);