From cc6da3c7db716c000118d93378669f635009f4eb Mon Sep 17 00:00:00 2001 From: Nicholas Mayne Date: Sun, 12 Oct 2014 16:00:56 +0100 Subject: [PATCH] #19694: Adding a language check in culture-lang('en') for example Work Item: 19694 --- .../RuleEngine/CultureRuleProvider.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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);