41 lines
1.9 KiB
C#
41 lines
1.9 KiB
C#
using System.Globalization;
|
|
using System.Reflection;
|
|
|
|
namespace NetinaShop.AdminPanel.PWA.Extensions;
|
|
|
|
public static class PersianCultureInfo
|
|
{
|
|
public static CultureInfo GetPersianCulture()
|
|
{
|
|
var culture = new CultureInfo("fa-IR");
|
|
DateTimeFormatInfo formatInfo = culture.DateTimeFormat;
|
|
formatInfo.AbbreviatedDayNames = new[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
|
|
formatInfo.DayNames = new[] { "یکشنبه", "دوشنبه", "سه شنبه", "چهار شنبه", "پنجشنبه", "جمعه", "شنبه" };
|
|
var monthNames = new[]
|
|
{
|
|
"فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن",
|
|
"اسفند",
|
|
"",
|
|
};
|
|
formatInfo.AbbreviatedMonthNames =
|
|
formatInfo.MonthNames =
|
|
formatInfo.MonthGenitiveNames = formatInfo.AbbreviatedMonthGenitiveNames = monthNames;
|
|
formatInfo.AMDesignator = "ق.ظ";
|
|
formatInfo.PMDesignator = "ب.ظ";
|
|
formatInfo.ShortDatePattern = "yyyy/MM/dd";
|
|
formatInfo.LongDatePattern = "dddd, dd MMMM,yyyy";
|
|
formatInfo.FirstDayOfWeek = DayOfWeek.Saturday;
|
|
System.Globalization.Calendar cal = new PersianCalendar();
|
|
FieldInfo fieldInfo = culture.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
if (fieldInfo != null)
|
|
fieldInfo.SetValue(culture, cal);
|
|
FieldInfo info = formatInfo.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
if (info != null)
|
|
info.SetValue(formatInfo, cal);
|
|
culture.NumberFormat.NumberDecimalSeparator = "/";
|
|
culture.NumberFormat.DigitSubstitution = DigitShapes.NativeNational;
|
|
culture.NumberFormat.NumberNegativePattern = 0;
|
|
return culture;
|
|
}
|
|
|
|
} |