- Adding a culture command handler with a few commands related to culture management.

- Moving fr-FR culture to fr

--HG--
branch : dev
This commit is contained in:
Suha Can
2010-07-07 11:15:48 -07:00
parent 75d7f6bc68
commit 857c59de45
6 changed files with 53 additions and 2 deletions

View File

@@ -160,7 +160,7 @@ namespace Orchard.Setup.Services {
// add default culture
var cultureManager = environment.Resolve<ICultureManager>();
cultureManager.AddCulture("en-US");
cultureManager.AddCulture("fr-FR");
cultureManager.AddCulture("fr");
var contentManager = environment.Resolve<IContentManager>();

View File

@@ -0,0 +1,49 @@
using System.Linq;
using JetBrains.Annotations;
using Orchard.Commands;
using Orchard.Localization.Services;
using Orchard.Settings;
namespace Orchard.Localization.Commands {
public class CultureCommands : DefaultOrchardCommandHandler {
private readonly ICultureManager _cultureManager;
protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; }
public CultureCommands(ICultureManager cultureManager) {
_cultureManager = cultureManager;
}
[CommandHelp("cultures list \r\n\t" + "List site cultures")]
[CommandName("cultures list")]
public void ListCultures() {
Context.Output.WriteLine(T("Listing Cultures:"));
string cultures = _cultureManager.ListCultures().Aggregate<string, string>(null, (current, culture) => current + culture + " ");
Context.Output.WriteLine(cultures);
}
[CommandHelp("cultures get site culture \r\n\t" + "Get culture for the site")]
[CommandName("cultures get site culture")]
public void GetSiteCulture() {
Context.Output.WriteLine(T("Site Culture is {0}", CurrentSite.SiteCulture));
}
[CommandHelp("cultures set site culture <culture-name> \r\n\t" + "Set culture for the site")]
[CommandName("cultures set site culture")]
public void SetSiteCulture(string cultureName) {
Context.Output.WriteLine(T("Setting site culture to {0}", cultureName));
if (!_cultureManager.IsValidCulture(cultureName)) {
Context.Output.WriteLine(T("Supplied culture name {0} is not valid.", cultureName));
return;
}
CurrentSite.SiteCulture = cultureName;
Context.Output.WriteLine(T("Site culture set to {0} successfully", cultureName));
}
}
}

View File

@@ -71,7 +71,7 @@ namespace Orchard.Localization.Services {
// "<languagecode2>" or
// "<languagecode2>-<country/regioncode2>" or
// "<languagecode2>-<scripttag>-<country/regioncode2>"
private static bool IsValidCulture(string cultureName) {
public bool IsValidCulture(string cultureName) {
Regex cultureRegex = new Regex(@"\w{2}(-\w{2,})*");
if (cultureRegex.IsMatch(cultureName)) {
return true;

View File

@@ -10,5 +10,6 @@ namespace Orchard.Localization.Services {
string GetCurrentCulture(HttpContext requestContext);
CultureRecord GetCultureById(int id);
string GetSiteCulture();
bool IsValidCulture(string cultureName);
}
}

View File

@@ -406,6 +406,7 @@
<Compile Include="Environment\Extensions\Compilers\CSharpExtensionBuildProviderShim.cs" />
<Compile Include="Environment\Extensions\Compilers\ProjectFileDescriptor.cs" />
<Compile Include="Environment\Extensions\Compilers\IProjectFileParser.cs" />
<Compile Include="Localization\Commands\CultureCommands.cs" />
<Compile Include="Utility\DependencyOrderingUtility.cs" />
<Compile Include="Environment\IOrchardHostContainer.cs" />
<Compile Include="Environment\IShim.cs" />