diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj b/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj
index 126b97147..2c6e25745 100644
--- a/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj
@@ -68,6 +68,7 @@
+
diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Services/CultureSelectorFactory.cs b/src/Orchard.Web/Modules/Orchard.Localization/Services/CultureSelectorFactory.cs
new file mode 100644
index 000000000..c0d269c76
--- /dev/null
+++ b/src/Orchard.Web/Modules/Orchard.Localization/Services/CultureSelectorFactory.cs
@@ -0,0 +1,37 @@
+using System.Web.Routing;
+using Orchard.DisplayManagement;
+using Orchard.DisplayManagement.Implementation;
+using Orchard.Environment.Extensions;
+using Orchard.UI.Admin;
+
+namespace Orchard.Localization.Services {
+ [OrchardFeature("Orchard.Localization.CutlureSelector")]
+ public class AdminCultureSelectorFactory : ShapeDisplayEvents {
+ private readonly WorkContext _workContext;
+
+ public AdminCultureSelectorFactory(
+ IWorkContextAccessor workContextAccessor,
+ IShapeFactory shapeFactory) {
+ _workContext = workContextAccessor.GetContext();
+ Shape = shapeFactory;
+ }
+ dynamic Shape { get; set; }
+
+ private bool IsActivable() {
+ // activate on front-end only
+ if (AdminFilter.IsApplied(new RequestContext(_workContext.HttpContext, new RouteData())))
+ return true;
+
+ return false;
+ }
+
+ public override void Displaying(ShapeDisplayingContext context) {
+ context.ShapeMetadata.OnDisplaying(displayedContext => {
+ if (IsActivable() && displayedContext.ShapeMetadata.Type == "Layout") {
+ _workContext.Layout.Header.Add(Shape.UICultureSelector());
+ }
+ });
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml b/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml
index b5f60f2b6..13c22e83f 100644
--- a/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml
+++ b/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml
@@ -1,5 +1,4 @@
@model dynamic
-@using Orchard.Environment.Descriptor.Models
@using Orchard.Localization
@using Orchard.Security;
@using Orchard.DisplayManagement.Descriptors;
@@ -29,10 +28,6 @@
Model.Header.Add(Display.Header());
Model.Header.Add(Display.User(CurrentUser: WorkContext.CurrentUser));
-
- var shellDescriptor = WorkContext.Resolve();
- if (shellDescriptor.Features.Any(x => x.Name == "Orchard.Localization.CutlureSelector")) { Model.Header.Add(Display.UICultureSelector()); }
-
Model.Footer.Add(Display.OrchardVersion());
if (Model.Title != null) {
@@ -74,7 +69,7 @@
}
@if (Model.Content != null) {
-