diff --git a/src/Orchard.Web/Core/Shapes/Views/Document.cshtml b/src/Orchard.Web/Core/Shapes/Views/Document.cshtml
index 6e53b65a0..43ea91b09 100644
--- a/src/Orchard.Web/Core/Shapes/Views/Document.cshtml
+++ b/src/Orchard.Web/Core/Shapes/Views/Document.cshtml
@@ -1,4 +1,4 @@
-@using System.Globalization
+@using Orchard.Localization
@using Orchard.Mvc.Html;
@using Orchard.UI.Resources;
@{
@@ -7,10 +7,10 @@
string title = Convert.ToString(Model.Title);
string siteName = Convert.ToString(WorkContext.CurrentSite.SiteName);
- bool isRtl = CultureInfo.GetCultureInfo(WorkContext.CurrentCulture).TextInfo.IsRightToLeft;
+ bool isRtl = WorkContext.CurrentCultureInfo().TextInfo.IsRightToLeft;
}
-
+
@Html.Title(title, siteName)
diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Services/AdminDirectionalityFactory.cs b/src/Orchard.Web/Modules/Orchard.Localization/Services/AdminDirectionalityFactory.cs
index 0cfbe3150..2914f21da 100644
--- a/src/Orchard.Web/Modules/Orchard.Localization/Services/AdminDirectionalityFactory.cs
+++ b/src/Orchard.Web/Modules/Orchard.Localization/Services/AdminDirectionalityFactory.cs
@@ -1,3 +1,4 @@
+using System;
using System.Globalization;
using System.Web.Routing;
using Orchard.ContentManagement;
@@ -8,7 +9,7 @@ using Orchard.UI.Admin;
namespace Orchard.Localization.Services {
[OrchardFeature("Orchard.Localization.CutlureSelector")]
- public class AdminDirectionalityFactory : ShapeFactoryEvents {
+ public class AdminDirectionalityFactory : ShapeDisplayEvents {
private readonly ILocalizationService _localizationService;
private readonly ICultureManager _cultureManager;
private readonly WorkContext _workContext;
@@ -34,33 +35,32 @@ namespace Orchard.Localization.Services {
return false;
}
- public override void Creating(ShapeCreatingContext context) {
- }
-
- public override void Created(ShapeCreatedContext context) {
- if (!IsActivable()) {
- return;
- }
-
- if (context.ShapeType != "Zone")
- return;
-
- ContentItem contentItem = context.Shape.ContentItem;
-
- // if not, check for ContentPart
- if (contentItem == null) {
- ContentPart contentPart = context.Shape.ContentPart;
- if (contentPart != null) {
- contentItem = contentPart.ContentItem;
+ public override void Displaying(ShapeDisplayingContext context) {
+ context.ShapeMetadata.OnDisplaying(displayedContext => {
+ if (!IsActivable()) {
+ return;
}
- }
+
+ if (context.ShapeMetadata.Type != "Zone")
+ return;
- var culture = (contentItem != null) ? _localizationService.GetContentCulture(contentItem) : _cultureManager.GetSiteCulture();
+ ContentItem contentItem = context.Shape.ContentItem;
- var cultureInfo = CultureInfo.GetCultureInfo(culture);
+ // if not, check for ContentPart
+ if (contentItem == null) {
+ ContentPart contentPart = context.Shape.ContentPart;
+ if (contentPart != null) {
+ contentItem = contentPart.ContentItem;
+ }
+ }
- if (cultureInfo.TextInfo.IsRightToLeft)
- context.Shape.Attributes.Add("dir", "rtl");
+ var culture = (contentItem != null) ? _localizationService.GetContentCulture(contentItem) : _cultureManager.GetSiteCulture();
+
+ var cultureInfo = CultureInfo.GetCultureInfo(culture);
+
+ if (cultureInfo.TextInfo.IsRightToLeft)
+ _workContext.Layout.Content.Attributes.Add("dir", "rtl");
+ });
}
}
}
\ No newline at end of file
diff --git a/src/Orchard.Web/Modules/TinyMce/Views/Body-Html.Editor.cshtml b/src/Orchard.Web/Modules/TinyMce/Views/Body-Html.Editor.cshtml
index de5c3871f..7e71f508f 100644
--- a/src/Orchard.Web/Modules/TinyMce/Views/Body-Html.Editor.cshtml
+++ b/src/Orchard.Web/Modules/TinyMce/Views/Body-Html.Editor.cshtml
@@ -27,7 +27,7 @@
diff --git a/src/Orchard/Localization/HtmlLocalizationExtensions.cs b/src/Orchard/Localization/HtmlLocalizationExtensions.cs
index 439c2f5a6..a3381f8b1 100644
--- a/src/Orchard/Localization/HtmlLocalizationExtensions.cs
+++ b/src/Orchard/Localization/HtmlLocalizationExtensions.cs
@@ -5,36 +5,22 @@ using Orchard.ContentManagement.Aspects;
using Orchard.Mvc.Html;
namespace Orchard.Localization {
- public static class HtmlLocalizationExtensions {
- ///
- /// The dir attribute specifies the text direction.
- ///
- /// Returns rtl or ltr based on if your content has an ILocalizableAspect or not.
- ///
- /// Returns rtl or ltr
- public static string Directionality(this HtmlHelper html) {
- return html.Directionality(null);
+ public static class LocalizationExtensions {
+ public static CultureInfo CurrentCultureInfo(this WorkContext workContext) {
+ return CultureInfo.GetCultureInfo(workContext.CurrentCulture);
}
- ///
- /// The dir attribute specifies the text direction of the element's content.
- ///
- /// Returns rtl or ltr based on if your content has an ILocalizableAspect or not.
- ///
- /// Returns rtl or ltr
- public static string Directionality(this HtmlHelper html, IContent content) {
- return CultureInfo.GetCultureInfo(html.ContentCulture(content)).TextInfo.IsRightToLeft ? "rtl" : "ltr";
+ public static string GetTextDirection(this WorkContext workContext) {
+ return workContext.GetTextDirection(null);
}
- public static string ContentCulture(this HtmlHelper html, IContent content) {
- var workContext = html.GetWorkContext();
-
+ public static string GetTextDirection(this WorkContext workContext, IContent content) {
var culture = workContext.CurrentSite.SiteCulture;
if (content != null && content.Has()) {
- return content.As().Culture;
+ culture = content.As().Culture;
}
- return culture;
+ return CultureInfo.GetCultureInfo(culture).TextInfo.IsRightToLeft ? "rtl" : "ltr"; ;
}
}
}
\ No newline at end of file