This commit is contained in:
MeysamMoghaddam
2025-10-13 08:42:31 +03:30
parent f74975bb08
commit b9a0cdff83
4 changed files with 113 additions and 86 deletions

View File

@@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Net;
using System.Reflection;
using System.Text.RegularExpressions;
@@ -9,6 +10,38 @@ namespace FrontOffice.Main.Utilities;
public static class Extensions
{
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;
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;
}
public static string ExtractUserFriendlyMessage(this string errorMessage)
{
// کلیدواژه‌ای که بعد از آن بخش مورد نظر شروع می‌شود