update settings for all RTL languages.
This commit is contained in:
parent
aff99acfae
commit
94b03d2a6b
|
@ -35,12 +35,11 @@ namespace Oqtane.Extensions
|
||||||
.AddSupportedCultures(supportedCultures)
|
.AddSupportedCultures(supportedCultures)
|
||||||
.AddSupportedUICultures(supportedCultures);
|
.AddSupportedUICultures(supportedCultures);
|
||||||
|
|
||||||
for (var i = 0; i < options.SupportedCultures.Count; i++)
|
foreach(var culture in options.SupportedCultures)
|
||||||
{
|
{
|
||||||
if (options.SupportedCultures[i].Name.Equals("fa-IR", StringComparison.OrdinalIgnoreCase))
|
if (culture.TextInfo.IsRightToLeft)
|
||||||
{
|
{
|
||||||
options.SupportedCultures[i] = PersianCulture.GetPersianCultureInfo();
|
RightToLeftCulture.ResolveFormat(culture);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace Oqtane.Infrastructure
|
|
||||||
{
|
|
||||||
public class PersianCulture
|
|
||||||
{
|
|
||||||
public static CultureInfo GetPersianCultureInfo()
|
|
||||||
{
|
|
||||||
var persianCultureInfo = new CultureInfo("fa-IR");
|
|
||||||
|
|
||||||
SetPersianDateTimeFormatInfo(persianCultureInfo.DateTimeFormat);
|
|
||||||
SetNumberFormatInfo(persianCultureInfo.NumberFormat);
|
|
||||||
|
|
||||||
var cal = new PersianCalendar();
|
|
||||||
|
|
||||||
FieldInfo fieldInfo = persianCultureInfo.GetType().GetField("_calendar", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
||||||
if (fieldInfo != null)
|
|
||||||
{
|
|
||||||
fieldInfo.SetValue(persianCultureInfo, cal);
|
|
||||||
}
|
|
||||||
|
|
||||||
FieldInfo info = persianCultureInfo.DateTimeFormat.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
||||||
if (info != null)
|
|
||||||
{
|
|
||||||
info.SetValue(persianCultureInfo.DateTimeFormat, cal);
|
|
||||||
}
|
|
||||||
|
|
||||||
return persianCultureInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SetPersianDateTimeFormatInfo(DateTimeFormatInfo persianDateTimeFormatInfo)
|
|
||||||
{
|
|
||||||
persianDateTimeFormatInfo.MonthNames = new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", string.Empty };
|
|
||||||
persianDateTimeFormatInfo.MonthGenitiveNames = persianDateTimeFormatInfo.MonthNames;
|
|
||||||
persianDateTimeFormatInfo.AbbreviatedMonthNames = persianDateTimeFormatInfo.MonthNames;
|
|
||||||
persianDateTimeFormatInfo.AbbreviatedMonthGenitiveNames = persianDateTimeFormatInfo.MonthNames;
|
|
||||||
|
|
||||||
persianDateTimeFormatInfo.DayNames = new[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
|
|
||||||
persianDateTimeFormatInfo.AbbreviatedDayNames = new[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
|
|
||||||
persianDateTimeFormatInfo.ShortestDayNames = persianDateTimeFormatInfo.AbbreviatedDayNames;
|
|
||||||
persianDateTimeFormatInfo.FirstDayOfWeek = DayOfWeek.Saturday;
|
|
||||||
|
|
||||||
persianDateTimeFormatInfo.AMDesignator = "ق.ظ";
|
|
||||||
persianDateTimeFormatInfo.PMDesignator = "ب.ظ";
|
|
||||||
|
|
||||||
persianDateTimeFormatInfo.DateSeparator = "/";
|
|
||||||
persianDateTimeFormatInfo.TimeSeparator = ":";
|
|
||||||
|
|
||||||
persianDateTimeFormatInfo.FullDateTimePattern = "tt hh:mm:ss yyyy mmmm dd dddd";
|
|
||||||
persianDateTimeFormatInfo.YearMonthPattern = "yyyy, MMMM";
|
|
||||||
persianDateTimeFormatInfo.MonthDayPattern = "dd MMMM";
|
|
||||||
|
|
||||||
persianDateTimeFormatInfo.LongDatePattern = "dddd, dd MMMM,yyyy";
|
|
||||||
persianDateTimeFormatInfo.ShortDatePattern = "yyyy/MM/dd";
|
|
||||||
|
|
||||||
persianDateTimeFormatInfo.LongTimePattern = "hh:mm:ss tt";
|
|
||||||
persianDateTimeFormatInfo.ShortTimePattern = "hh:mm tt";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SetNumberFormatInfo(NumberFormatInfo persianNumberFormatInfo)
|
|
||||||
{
|
|
||||||
persianNumberFormatInfo.NumberDecimalSeparator = "/";
|
|
||||||
persianNumberFormatInfo.DigitSubstitution = DigitShapes.NativeNational;
|
|
||||||
persianNumberFormatInfo.NumberNegativePattern = 0;
|
|
||||||
persianNumberFormatInfo.NegativeSign = "-";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Oqtane.Infrastructure
|
||||||
|
{
|
||||||
|
public class RightToLeftCulture
|
||||||
|
{
|
||||||
|
public static CultureInfo ResolveFormat(CultureInfo cultureInfo)
|
||||||
|
{
|
||||||
|
SetNumberFormatInfo(cultureInfo.NumberFormat);
|
||||||
|
SetCalenar(cultureInfo);
|
||||||
|
|
||||||
|
return cultureInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetCalenar(CultureInfo cultureInfo)
|
||||||
|
{
|
||||||
|
var calendar = new RightToLeftCultureCalendar();
|
||||||
|
|
||||||
|
var fieldInfo = cultureInfo.GetType().GetField("_calendar", BindingFlags.NonPublic | BindingFlags.Instance);
|
||||||
|
if (fieldInfo != null)
|
||||||
|
{
|
||||||
|
fieldInfo.SetValue(cultureInfo, calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
var info = cultureInfo.DateTimeFormat.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance);
|
||||||
|
if (info != null)
|
||||||
|
{
|
||||||
|
info.SetValue(cultureInfo.DateTimeFormat, calendar);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetNumberFormatInfo(NumberFormatInfo persianNumberFormatInfo)
|
||||||
|
{
|
||||||
|
persianNumberFormatInfo.NumberDecimalSeparator = ".";
|
||||||
|
persianNumberFormatInfo.DigitSubstitution = DigitShapes.NativeNational;
|
||||||
|
persianNumberFormatInfo.NumberNegativePattern = 0;
|
||||||
|
persianNumberFormatInfo.NegativeSign = "-";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@ using System;
|
||||||
|
|
||||||
namespace Oqtane.Infrastructure
|
namespace Oqtane.Infrastructure
|
||||||
{
|
{
|
||||||
public class PersianCalendar : System.Globalization.PersianCalendar
|
public class RightToLeftCultureCalendar : System.Globalization.PersianCalendar
|
||||||
{
|
{
|
||||||
public override int GetYear(DateTime time)
|
public override int GetYear(DateTime time)
|
||||||
{
|
{
|
Loading…
Reference in New Issue
Block a user