mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-14 10:54:50 +08:00
- Invalidating cultures cache when site cultures are modified (add,delete).
--HG-- branch : dev
This commit is contained in:
@@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web;
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.Caching;
|
||||
using Orchard.Data;
|
||||
using Orchard.Localization.Records;
|
||||
using Orchard.Settings;
|
||||
@@ -12,10 +13,12 @@ namespace Orchard.Localization.Services {
|
||||
public class DefaultCultureManager : ICultureManager {
|
||||
private readonly IRepository<CultureRecord> _cultureRepository;
|
||||
private readonly IEnumerable<ICultureSelector> _cultureSelectors;
|
||||
private readonly ISignals _signals;
|
||||
|
||||
public DefaultCultureManager(IRepository<CultureRecord> cultureRepository, IEnumerable<ICultureSelector> cultureSelectors) {
|
||||
public DefaultCultureManager(IRepository<CultureRecord> cultureRepository, IEnumerable<ICultureSelector> cultureSelectors, ISignals signals) {
|
||||
_cultureRepository = cultureRepository;
|
||||
_cultureSelectors = cultureSelectors;
|
||||
_signals = signals;
|
||||
}
|
||||
|
||||
protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; }
|
||||
@@ -30,6 +33,7 @@ namespace Orchard.Localization.Services {
|
||||
throw new ArgumentException("cultureName");
|
||||
}
|
||||
_cultureRepository.Create(new CultureRecord { Culture = cultureName });
|
||||
_signals.Trigger("culturesChanged");
|
||||
}
|
||||
|
||||
public void DeleteCulture(string cultureName) {
|
||||
@@ -38,8 +42,10 @@ namespace Orchard.Localization.Services {
|
||||
}
|
||||
|
||||
var culture = _cultureRepository.Get(cr => cr.Culture == cultureName);
|
||||
if (culture != null)
|
||||
if (culture != null) {
|
||||
_cultureRepository.Delete(culture);
|
||||
_signals.Trigger("culturesChanged");
|
||||
}
|
||||
}
|
||||
|
||||
public string GetCurrentCulture(HttpContext requestContext) {
|
||||
|
@@ -14,6 +14,7 @@ namespace Orchard.Localization.Services {
|
||||
private readonly IExtensionManager _extensionManager;
|
||||
private readonly ICacheManager _cacheManager;
|
||||
private readonly ShellSettings _shellSettings;
|
||||
private readonly ISignals _signals;
|
||||
const string CoreLocalizationFilePathFormat = "/Core/App_Data/Localization/{0}/orchard.core.po";
|
||||
const string ModulesLocalizationFilePathFormat = "/Modules/{0}/App_Data/Localization/{1}/orchard.module.po";
|
||||
const string RootLocalizationFilePathFormat = "/App_Data/Localization/{0}/orchard.root.po";
|
||||
@@ -24,12 +25,14 @@ namespace Orchard.Localization.Services {
|
||||
IWebSiteFolder webSiteFolder,
|
||||
IExtensionManager extensionManager,
|
||||
ICacheManager cacheManager,
|
||||
ShellSettings shellSettings) {
|
||||
ShellSettings shellSettings,
|
||||
ISignals signals) {
|
||||
_cultureManager = cultureManager;
|
||||
_webSiteFolder = webSiteFolder;
|
||||
_extensionManager = extensionManager;
|
||||
_cacheManager = cacheManager;
|
||||
_shellSettings = shellSettings;
|
||||
_signals = signals;
|
||||
}
|
||||
|
||||
// This will translate a string into a string in the target cultureName.
|
||||
@@ -96,6 +99,7 @@ namespace Orchard.Localization.Services {
|
||||
Translations = LoadTranslationsForCulture(culture, ctx)
|
||||
});
|
||||
}
|
||||
ctx.Monitor(_signals.When("culturesChanged"));
|
||||
return cultures;
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user