diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj b/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj
index 23d76e8bd..a9ee78c64 100644
--- a/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj
@@ -13,6 +13,7 @@
Orchard.Localization
Orchard.Localization
v4.0
+ false
true
@@ -53,6 +54,7 @@
+
diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Projections/CurrentCultureFilter.cs b/src/Orchard.Web/Modules/Orchard.Localization/Projections/CurrentCultureFilter.cs
new file mode 100644
index 000000000..e327ddc0c
--- /dev/null
+++ b/src/Orchard.Web/Modules/Orchard.Localization/Projections/CurrentCultureFilter.cs
@@ -0,0 +1,45 @@
+using System;
+using Orchard.ContentManagement;
+using Orchard.Events;
+using Orchard.Localization.Models;
+using Orchard.Localization.Services;
+
+namespace Orchard.Localization.Projections {
+ public interface IFilterProvider : IEventHandler {
+ void Describe(dynamic describe);
+ }
+
+ public class CurrentCultureFilter : IFilterProvider {
+ private readonly IWorkContextAccessor _workContextAccessor;
+ private readonly ICultureManager _cultureManager;
+
+ public CurrentCultureFilter(IWorkContextAccessor workContextAccessor, ICultureManager cultureManager) {
+ _workContextAccessor = workContextAccessor;
+ _cultureManager = cultureManager;
+ T = NullLocalizer.Instance;
+ }
+
+ public Localizer T { get; set; }
+
+ public void Describe(dynamic describe) {
+ describe.For("Localization", T("Localization"), T("Localization"))
+ .Element("ForCurrentCulture", T("For current culture"), T("Localized content items for current culture"),
+ (Action)ApplyFilter,
+ (Func)DisplayFilter,
+ null
+ );
+ }
+
+ public void ApplyFilter(dynamic context) {
+ string currentCulture = _workContextAccessor.GetContext().CurrentCulture;
+ var currentCultureId = _cultureManager.GetCultureByName(currentCulture).Id;
+
+ var query = (IHqlQuery)context.Query;
+ context.Query = query.Where(x => x.ContentPartRecord(), x => x.Eq("CultureId", currentCultureId));
+ }
+
+ public LocalizedString DisplayFilter(dynamic context) {
+ return T("For current culture");
+ }
+ }
+}
\ No newline at end of file