mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
- Making Localizer T properties public so the culture aware localizer can be injected.
- Some improvements to the resource manager. --HG-- branch : dev
This commit is contained in:
@@ -14,7 +14,7 @@ namespace Orchard.Core.Common.Drivers {
|
|||||||
|
|
||||||
private readonly IOrchardServices _services;
|
private readonly IOrchardServices _services;
|
||||||
private readonly IRoutableService _routableService;
|
private readonly IRoutableService _routableService;
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
protected override string Prefix {
|
protected override string Prefix {
|
||||||
get { return "Routable"; }
|
get { return "Routable"; }
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace Orchard.Core.Navigation.Controllers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public ActionResult Index(NavigationManagementViewModel model) {
|
public ActionResult Index(NavigationManagementViewModel model) {
|
||||||
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Not allowed to manage the main menu")))
|
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Not allowed to manage the main menu")))
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Orchard.Core.Navigation.Drivers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual IUser CurrentUser { get; set; }
|
public virtual IUser CurrentUser { get; set; }
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
protected override DriverResult Editor(MenuPart part) {
|
protected override DriverResult Editor(MenuPart part) {
|
||||||
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, CurrentUser, part))
|
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, CurrentUser, part))
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace Orchard.Blogs.Controllers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; }
|
protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; }
|
||||||
public IOrchardServices Services { get; set; }
|
public IOrchardServices Services { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace Orchard.Blogs.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public IOrchardServices Services { get; set; }
|
public IOrchardServices Services { get; set; }
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public ActionResult Create() {
|
public ActionResult Create() {
|
||||||
if (!Services.Authorizer.Authorize(Permissions.EditBlogPost, T("Not allowed to create blog post")))
|
if (!Services.Authorizer.Authorize(Permissions.EditBlogPost, T("Not allowed to create blog post")))
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace Orchard.Blogs.Controllers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
//TODO: (erikpo) Should think about moving the slug parameters and get calls and null checks up into a model binder or action filter
|
//TODO: (erikpo) Should think about moving the slug parameters and get calls and null checks up into a model binder or action filter
|
||||||
public ActionResult Item(string blogSlug, string postSlug) {
|
public ActionResult Item(string blogSlug, string postSlug) {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace Orchard.Blogs.Drivers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
protected override ContentType GetContentType() {
|
protected override ContentType GetContentType() {
|
||||||
return ContentType;
|
return ContentType;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace Orchard.Blogs.Drivers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
protected override ContentType GetContentType() {
|
protected override ContentType GetContentType() {
|
||||||
return ContentType;
|
return ContentType;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace Orchard.MetaData.Controllers
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
//
|
//
|
||||||
// GET: /ContentTypeList/
|
// GET: /ContentTypeList/
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace Orchard.Modules.Controllers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
public IOrchardServices Services { get; set; }
|
public IOrchardServices Services { get; set; }
|
||||||
|
|
||||||
public ActionResult Index() {
|
public ActionResult Index() {
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace Orchard.Modules.Services {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
public IOrchardServices Services { get; set; }
|
public IOrchardServices Services { get; set; }
|
||||||
|
|
||||||
public IModule GetModuleByName(string moduleName) {
|
public IModule GetModuleByName(string moduleName) {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace Orchard.MultiTenancy.Controllers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
public IOrchardServices Services { get; set; }
|
public IOrchardServices Services { get; set; }
|
||||||
|
|
||||||
public ActionResult Index() {
|
public ActionResult Index() {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace Orchard.Pages.Controllers {
|
|||||||
|
|
||||||
protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; }
|
protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; }
|
||||||
public IOrchardServices Services { get; private set; }
|
public IOrchardServices Services { get; private set; }
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public ActionResult List(PagesOptions options) {
|
public ActionResult List(PagesOptions options) {
|
||||||
// Default options
|
// Default options
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Orchard.Pages.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public IOrchardServices Services { get; set; }
|
public IOrchardServices Services { get; set; }
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public ActionResult Item(string slug) {
|
public ActionResult Item(string slug) {
|
||||||
if (!Services.Authorizer.Authorize(StandardPermissions.AccessFrontEnd, T("Couldn't view page")))
|
if (!Services.Authorizer.Authorize(StandardPermissions.AccessFrontEnd, T("Couldn't view page")))
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace Orchard.Pages.Drivers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
protected override ContentType GetContentType() {
|
protected override ContentType GetContentType() {
|
||||||
return ContentType;
|
return ContentType;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Orchard.Pages.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public IOrchardServices Services { get; private set; }
|
public IOrchardServices Services { get; private set; }
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public string GetProviderName() {
|
public string GetProviderName() {
|
||||||
return "PageHomePageProvider";
|
return "PageHomePageProvider";
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ namespace Orchard.Setup.Controllers {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
private ActionResult IndexViewResult(SetupViewModel model) {
|
private ActionResult IndexViewResult(SetupViewModel model) {
|
||||||
string message;
|
string message;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace Orchard.Setup.Services {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public ShellSettings Prime() {
|
public ShellSettings Prime() {
|
||||||
return _shellSettings;
|
return _shellSettings;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace Orchard.Themes.Services {
|
|||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
public void ZoneRendering(ZoneRenderContext context) {
|
public void ZoneRendering(ZoneRenderContext context) {
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ namespace Orchard.Environment.Topology {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ILogger Logger { get; set; }
|
public ILogger Logger { get; set; }
|
||||||
private Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
|
||||||
#region Implementation of IShellDescriptorCache
|
#region Implementation of IShellDescriptorCache
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,53 @@
|
|||||||
namespace Orchard.Localization.Services {
|
using System.Collections.Generic;
|
||||||
|
using Orchard.FileSystems.WebSite;
|
||||||
|
|
||||||
|
namespace Orchard.Localization.Services {
|
||||||
public class DefaultResourceManager : IResourceManager {
|
public class DefaultResourceManager : IResourceManager {
|
||||||
// This will use the .po files shortly.
|
private readonly IWebSiteFolder _webSiteFolder;
|
||||||
public string GetLocalizedString(string key, string cultureName) {
|
private readonly ICultureManager _cultureManager;
|
||||||
if (cultureName.Equals("en-US")) {
|
private readonly IList<CultureDictionary> _cultures;
|
||||||
return key;
|
const string CoreLocalizationFilePathFormat = "/Core/App_Data/Localization/{0}/orchard.core.po";
|
||||||
|
|
||||||
|
public DefaultResourceManager(ICultureManager cultureManager, IWebSiteFolder webSiteFolder) {
|
||||||
|
_cultureManager = cultureManager;
|
||||||
|
_webSiteFolder = webSiteFolder;
|
||||||
|
_cultures = new List<CultureDictionary>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetLocalizedString(string scope, string text, string cultureName) {
|
||||||
|
if (_cultures.Count == 0) {
|
||||||
|
LoadCultures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cultureName.Equals("en-US")) {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void LoadCultures() {
|
||||||
|
foreach (var culture in _cultureManager.ListCultures()) {
|
||||||
|
_cultures.Add(new CultureDictionary {
|
||||||
|
CultureName = culture,
|
||||||
|
Translations = LoadTranslationsForCulture(culture)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private IDictionary<string, string> LoadTranslationsForCulture(string culture) {
|
||||||
|
string path = string.Format(CoreLocalizationFilePathFormat, culture);
|
||||||
|
string text = _webSiteFolder.ReadFile(path);
|
||||||
|
return ParseLocalizationStream(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IDictionary<string, string> ParseLocalizationStream(string text) {
|
||||||
|
return new Dictionary<string, string>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CultureDictionary {
|
||||||
|
public string CultureName { get; set; }
|
||||||
|
public IDictionary<string, string> Translations { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
namespace Orchard.Localization.Services {
|
namespace Orchard.Localization.Services {
|
||||||
public interface IResourceManager : IDependency {
|
public interface IResourceManager : IDependency {
|
||||||
string GetLocalizedString(string key, string cultureName);
|
string GetLocalizedString(string scope, string text, string cultureName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Orchard.Localization {
|
|||||||
Logger.Debug("{0} localizing '{1}'", _scope, textHint);
|
Logger.Debug("{0} localizing '{1}'", _scope, textHint);
|
||||||
|
|
||||||
string currentCulture = _cultureManager.GetCurrentCulture(HttpContext.Current);
|
string currentCulture = _cultureManager.GetCurrentCulture(HttpContext.Current);
|
||||||
var localizedFormat = _resourceManager.GetLocalizedString(textHint, currentCulture);
|
var localizedFormat = _resourceManager.GetLocalizedString(_scope, textHint, currentCulture);
|
||||||
|
|
||||||
return args.Length < 1
|
return args.Length < 1
|
||||||
? new LocalizedString(localizedFormat)
|
? new LocalizedString(localizedFormat)
|
||||||
|
|||||||
Reference in New Issue
Block a user