mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
- Localizer to use CultureManager, ResourceManager to translate strings.
- Stub ResourceManager implementation. - Some test updates. --HG-- branch : dev
This commit is contained in:
@@ -87,7 +87,7 @@ namespace Orchard.Tests.Localization {
|
||||
}
|
||||
|
||||
public class TestCultureSelector : ICultureSelector {
|
||||
public CultureSelectorResult GetCulture(RequestContext context) {
|
||||
public CultureSelectorResult GetCulture(HttpContext context) {
|
||||
return new CultureSelectorResult { Priority = 1, CultureName = "en-US" };
|
||||
}
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web;
|
||||
using System.Web.Routing;
|
||||
using Orchard.Data;
|
||||
using Orchard.Localization.Records;
|
||||
@@ -28,7 +29,7 @@ namespace Orchard.Localization {
|
||||
_cultureRepository.Create(new CultureRecord { Culture = cultureName });
|
||||
}
|
||||
|
||||
public string GetCurrentCulture(RequestContext requestContext) {
|
||||
public string GetCurrentCulture(HttpContext requestContext) {
|
||||
var requestCulture = _cultureSelectors
|
||||
.Select(x => x.GetCulture(requestContext))
|
||||
.Where(x => x != null)
|
||||
|
11
src/Orchard/Localization/DefaultResourceManager.cs
Normal file
11
src/Orchard/Localization/DefaultResourceManager.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Orchard.Localization {
|
||||
public class DefaultResourceManager : IResourceManager {
|
||||
// This will use the .po files shortly.
|
||||
public string GetLocalizedString(string key, string cultureName) {
|
||||
if (cultureName.Equals("en-US")) {
|
||||
return key;
|
||||
}
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,10 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Web.Routing;
|
||||
using System.Web;
|
||||
|
||||
namespace Orchard.Localization {
|
||||
public interface ICultureManager : IDependency {
|
||||
IEnumerable<string> ListCultures();
|
||||
void AddCulture(string cultureName);
|
||||
string GetCurrentCulture(RequestContext requestContext);
|
||||
string GetCurrentCulture(HttpContext requestContext);
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
using System.Web.Routing;
|
||||
using System.Web;
|
||||
|
||||
namespace Orchard.Localization {
|
||||
public class CultureSelectorResult {
|
||||
@@ -7,6 +7,6 @@ namespace Orchard.Localization {
|
||||
}
|
||||
|
||||
public interface ICultureSelector : IDependency {
|
||||
CultureSelectorResult GetCulture(RequestContext context);
|
||||
CultureSelectorResult GetCulture(HttpContext context);
|
||||
}
|
||||
}
|
||||
|
5
src/Orchard/Localization/IResourceManager.cs
Normal file
5
src/Orchard/Localization/IResourceManager.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace Orchard.Localization {
|
||||
public interface IResourceManager : IDependency {
|
||||
string GetLocalizedString(string key, string cultureName);
|
||||
}
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using System.Web.Routing;
|
||||
using System.Web;
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.Settings;
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace Orchard.Localization {
|
||||
public class SiteCultureSelector : ICultureSelector {
|
||||
protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; }
|
||||
|
||||
public CultureSelectorResult GetCulture(RequestContext context) {
|
||||
public CultureSelectorResult GetCulture(HttpContext context) {
|
||||
string currentCultureName = CurrentSite.SiteCulture;
|
||||
|
||||
if (String.IsNullOrEmpty(currentCultureName)) {
|
||||
|
@@ -1,11 +1,16 @@
|
||||
using System.Web;
|
||||
using Orchard.Logging;
|
||||
|
||||
namespace Orchard.Localization {
|
||||
public class Text : IText {
|
||||
private readonly string _scope;
|
||||
private readonly ICultureManager _cultureManager;
|
||||
private readonly IResourceManager _resourceManager;
|
||||
|
||||
public Text(string scope) {
|
||||
public Text(string scope, ICultureManager cultureManager, IResourceManager resourceManager) {
|
||||
_scope = scope;
|
||||
_cultureManager = cultureManager;
|
||||
_resourceManager = resourceManager;
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
||||
|
||||
@@ -14,8 +19,8 @@ namespace Orchard.Localization {
|
||||
public LocalizedString Get(string textHint, params object[] args) {
|
||||
Logger.Debug("{0} localizing '{1}'", _scope, textHint);
|
||||
|
||||
//todo: actually localize the textHint
|
||||
var localizedFormat = textHint;
|
||||
string currentCulture = _cultureManager.GetCurrentCulture(HttpContext.Current);
|
||||
var localizedFormat = _resourceManager.GetLocalizedString(textHint, currentCulture);
|
||||
|
||||
return args.Length < 1
|
||||
? new LocalizedString(localizedFormat)
|
||||
|
@@ -144,8 +144,10 @@
|
||||
<Compile Include="Environment\State\ShellStateCoordinator.cs" />
|
||||
<Compile Include="IDependency.cs" />
|
||||
<Compile Include="Localization\DefaultCultureManager.cs" />
|
||||
<Compile Include="Localization\DefaultResourceManager.cs" />
|
||||
<Compile Include="Localization\ICultureManager.cs" />
|
||||
<Compile Include="Localization\ICultureSelector.cs" />
|
||||
<Compile Include="Localization\IResourceManager.cs" />
|
||||
<Compile Include="Localization\Records\CultureRecord.cs" />
|
||||
<Compile Include="Localization\SiteCultureSelector.cs" />
|
||||
<Compile Include="Mvc\Html\ThemeExtensions.cs" />
|
||||
|
Reference in New Issue
Block a user