mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
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:

committed by
Sebastien Ros

parent
7f9628ba3d
commit
9f2a9b0550
@@ -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)) {
|
||||
|
@@ -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
|
@@ -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" />
|
||||
|
@@ -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) {
|
@@ -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
|
||||
});
|
||||
})
|
||||
|
@@ -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"))'
|
||||
});
|
||||
|
@@ -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" />
|
||||
|
Reference in New Issue
Block a user