Fixed bug that caused calendars picker to not be localized when gregorian calendar was used.

Added more overloads to DateTimeShapes to preserve backward compatibility.
Moved the legacy LocalizationDateTimeFormatProvider into module Orchard.Localization and created feature Orchard.Localization.DateTimeFormat to enable it.
This commit is contained in:
Daniel Stolt
2014-02-13 00:26:18 +01:00
committed by Sebastien Ros
parent 7f9628ba3d
commit 9f2a9b0550
7 changed files with 27 additions and 14 deletions

View File

@@ -28,7 +28,8 @@ namespace Orchard.Core.Shapes {
public Localizer T { get; set; }
[Shape]
public IHtmlString DateTimeRelative(dynamic Display, DateTime DateTimeUtc) {
public IHtmlString DateTimeRelative(dynamic Display, DateTime DateTimeUtc, DateTime dateTimeUtc) {
DateTimeUtc = DateTimeUtc != System.DateTime.MinValue ? DateTimeUtc : dateTimeUtc; // Both capitalizations retained for compatibility.
var time = _clock.UtcNow - DateTimeUtc;
if (time.TotalDays > 7 || time.TotalDays < -7)
@@ -60,7 +61,7 @@ namespace Orchard.Core.Shapes {
}
[Shape]
public IHtmlString DateTime(DateTime DateTimeUtc, LocalizedString CustomFormat = null) {
public IHtmlString DateTime(DateTime DateTimeUtc, LocalizedString CustomFormat) {
//using a LocalizedString forces the caller to use a localizable format
if (CustomFormat == null || String.IsNullOrWhiteSpace(CustomFormat.Text)) {

View File

@@ -3,8 +3,15 @@ AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.7.2
OrchardVersion: 1.4
OrchardVersion: 1.7.2
Description: The localization module enables the localization of content items.
FeatureDescription: Localize content items.
Dependencies: Settings
Category: Content
Features:
Orchard.Localization:
Description: Enables localization of content items.
Category: Content
Dependencies: Settings
Name: Content Localization
Orchard.Localization.DateTimeFormat:
Description: Enables localization of date/time formats and names of days and months.
Category: Content
Name: Date/Time Format Localization

View File

@@ -75,6 +75,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ResourceManifest.cs" />
<Compile Include="Services\ILocalizationService.cs" />
<Compile Include="Services\LocalizationDateTimeFormatProvider.cs" />
<Compile Include="Services\LocalizationService.cs" />
<Compile Include="ViewModels\AddLocalizationViewModel.cs" />
<Compile Include="ViewModels\ContentLocalizationsViewModel.cs" />

View File

@@ -1,13 +1,17 @@
using System;
using System.Collections.Generic;
using Orchard.Environment.Extensions;
namespace Orchard.Localization.Services {
/// <summary>
/// Provides an implementation of IDateTimeFormatProvider which uses Localizer to obtain
/// property values. The strings used to resolve values through Localizer can be changed
/// for other cultures using the normal string localization process.
/// for other cultures using the normal string localization process. This is useful for
/// adding additional or different translations than those provided by CultureInfo.
/// </summary>
[OrchardFeature("Orchard.Localization.DateTimeFormat")]
[OrchardSuppressDependency("Orchard.Localization.Services.CultureDateTimeFormatProvider")]
public class LocalizationDateTimeFormatProvider : IDateTimeFormatProvider {
public LocalizationDateTimeFormatProvider(IOrchardServices orchardServices) {

View File

@@ -128,7 +128,7 @@
var dayNamesMin = FormatJsList(dateTimeFormatProvider.DayNamesMin.ToArray());
var firstDay = Convert.ToInt32(dateTimeFormatProvider.FirstDay);
<text>
$.calendars.calendars.@(calendarName).prototype.regional[''] = {
$.calendars.calendars.@(calendarName).prototype.regional['@HttpUtility.JavaScriptStringEncode(currentCulture.Name)'] = {
monthNames: [@Html.Raw(monthNames)], // Names of months for drop-down and formatting
monthNamesShort: [@Html.Raw(monthNamesShort)], // Short namese of months
dayNames: [@Html.Raw(dayNames)], // Names of days
@@ -141,7 +141,7 @@
</text>
}
$.calendars.picker.regional[''] = {
$.calendars.picker.regional['@HttpUtility.JavaScriptStringEncode(currentCulture.Name)'] = {
prevText: '@HttpUtility.JavaScriptStringEncode(T("Prev").Text)', // Display text for previous month link
prevStatus: '@HttpUtility.JavaScriptStringEncode(T("Show the previous month").Text)', // Tooltip text for previous month link
prevJumpText: '@HttpUtility.JavaScriptStringEncode(T("<<").Text)', // Display text for previous year link
@@ -167,9 +167,9 @@
isRTL: @(currentCulture.TextInfo.IsRightToLeft ? "true" : "false") // True if right-to-left language, false if left-to-right
};
$.calendars.picker.setDefaults($.calendars.picker.regional['']);
$.calendars.picker.setDefaults($.calendars.picker.regional['@HttpUtility.JavaScriptStringEncode(currentCulture.Name)']);
$.calendars.picker.setDefaults({
calendar: $.calendars.instance(calendarName, localizationName),
calendar: $.calendars.instance(calendarName, '@HttpUtility.JavaScriptStringEncode(currentCulture.Name)'),
dateFormat: dateFormat
});
})

View File

@@ -13,6 +13,7 @@
Script.Require("jQueryTimeEntry");
var currentCulture = CultureInfo.GetCultureInfo(WorkContext.CurrentCulture);
var dateTimeFormatProvider = WorkContext.Resolve<IDateTimeFormatProvider>();
var amPmNames = FormatJsList(dateTimeFormatProvider.AmPmDesignators.ToArray());
}
@@ -26,7 +27,7 @@
<script type="text/javascript">
//<![CDATA[
$(function() {
$.timeEntry.regional[''] = {
$.timeEntry.regional['@HttpUtility.JavaScriptStringEncode(currentCulture.Name)'] = {
show24Hours: @(dateTimeFormatProvider.Use24HourTime ? "true" : "false"),
separator: '@HttpUtility.JavaScriptStringEncode(dateTimeFormatProvider.TimeSeparator)',
ampmPrefix: '@HttpUtility.JavaScriptStringEncode(dateTimeFormatProvider.AmPmPrefix)',
@@ -39,7 +40,7 @@
'@HttpUtility.JavaScriptStringEncode(T("Decrement").Text)'
]
};
$.timeEntry.setDefaults($.timeEntry.regional['']);
$.timeEntry.setDefaults($.timeEntry.regional['@HttpUtility.JavaScriptStringEncode(currentCulture.Name)']);
$.timeEntry.setDefaults({
spinnerImage: '@HttpUtility.JavaScriptStringEncode(Url.Content("~/Modules/Orchard.jQuery/Styles/images/spinnerDefault.png"))'
});

View File

@@ -270,7 +270,6 @@
<Compile Include="Localization\Services\CurrentCultureWorkContext.cs" />
<Compile Include="Localization\Services\DefaultCalendarManager.cs" />
<Compile Include="Localization\Services\CultureDateTimeFormatProvider.cs" />
<None Include="Localization\Services\LocalizationDateTimeFormatProvider.cs" />
<Compile Include="Localization\Services\DefaultDateServices.cs" />
<Compile Include="Localization\Services\DefaultLocalizedStringManager.cs" />
<Compile Include="Localization\Services\ICalendarSelector.cs" />