diff --git a/src/Orchard.Web/Core/App_Data/Localization/fr-FR/orchard.core.po b/src/Orchard.Web/Core/App_Data/Localization/fr/orchard.core.po similarity index 100% rename from src/Orchard.Web/Core/App_Data/Localization/fr-FR/orchard.core.po rename to src/Orchard.Web/Core/App_Data/Localization/fr/orchard.core.po diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs index 089dca490..b4c7569f8 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs @@ -160,7 +160,7 @@ namespace Orchard.Setup.Services { // add default culture var cultureManager = environment.Resolve(); cultureManager.AddCulture("en-US"); - cultureManager.AddCulture("fr-FR"); + cultureManager.AddCulture("fr"); var contentManager = environment.Resolve(); diff --git a/src/Orchard/Localization/Commands/CultureCommands.cs b/src/Orchard/Localization/Commands/CultureCommands.cs new file mode 100644 index 000000000..841187d55 --- /dev/null +++ b/src/Orchard/Localization/Commands/CultureCommands.cs @@ -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(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 \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)); + } + } +} + diff --git a/src/Orchard/Localization/Services/DefaultCultureManager.cs b/src/Orchard/Localization/Services/DefaultCultureManager.cs index e689ab82b..c1a7e1523 100644 --- a/src/Orchard/Localization/Services/DefaultCultureManager.cs +++ b/src/Orchard/Localization/Services/DefaultCultureManager.cs @@ -71,7 +71,7 @@ namespace Orchard.Localization.Services { // "" or // "-" or // "--" - 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; diff --git a/src/Orchard/Localization/Services/ICultureManager.cs b/src/Orchard/Localization/Services/ICultureManager.cs index 0ae822a42..e866e78c6 100644 --- a/src/Orchard/Localization/Services/ICultureManager.cs +++ b/src/Orchard/Localization/Services/ICultureManager.cs @@ -10,5 +10,6 @@ namespace Orchard.Localization.Services { string GetCurrentCulture(HttpContext requestContext); CultureRecord GetCultureById(int id); string GetSiteCulture(); + bool IsValidCulture(string cultureName); } } diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index e9337076f..b94b67613 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -406,6 +406,7 @@ +