Closed hussain1368 closed 1 year ago
در خصوص قسمت دوم، امکان اینکه بصورت پراپرتی ازش استفاده بشه نیست، حداقل فعلا نتونستم ازش نتیجه بگیرم راه حلی که وجود داره اینه که بصورت توکار از اسامی افغانستان پشتیبانی بشه و با تغییر کالچر برنامه اسامی تغییر کنه که این براحتی شدنی هست نظری در این خصوص دارید؟ همینطور بنظر میرسه افغانستان شامل 3 تا کالچر هست fa-AF ps-AF prs-AF ایا هرسه باید پشتیبانی بشه؟ ایا اسامی ماه و روز در هر سه یکسان هست؟ ایا تاریخ افغانستان با تاریخ ایران یکسان هست؟ ینی الان 10 خرداد هست ایا تو افغانستان هم 10 خرداد هست یا اینکه از تقویم اختصاصی خودشون استفاده میکنن؟ اگر از تقویم اختصاصی استفاده میکنن، پیاده سازی این ویژگی دیگه نیاز نیست چون کاربردی نداره
تاریخ ایران و افغانستان دقیقا یکسان هست. بله امروز در افغانستان هم 10 خرداد هست. تنها چیزی که فرق میکنه نام ماه ها هست که بجای نامهای پهلوی از نامهای صور فلکی استفاده میشود ، یعنی حمل، ثور، جوزا و ... در مورد اینکه گفتید "توکار" استفاده بشه، منظورتان اینه که باید در سورس کود تغییر بیارم و اون رو خودم کومپیال کنم؟ یعنی دیگه از پیکیج ناگت نمیتوانم استفاده کنم؟ من قبلا از در جاوا اسکریپت از تقویم ایرانی استفاده کردم اما چون جاوا اسکریت مستقیم از سورس کود اجرا میشه میشد که نام ماه ها رو از داخل سورس تغییر بدم اما در سی شارپ پکیج کمپایل شده هست.
نه منظورم از توکار به این صورت هست که اسامی داخل سورس کد نوشته میشه و با تغییر کالچر بصورت خودکار اسامی متناسب با کالچر نمایش داده میشه شما از همون بسته ناگت استفاده میکنید فقط قبل از اینکه برنامه اجرا بشه کد زیر رو بنویسید
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("fa-AF");
در خصوص کدهای زبان که نوشتم اطلاعی ندارید؟ ایا دری و پشتو هم مثل هم هستن؟
دری و پشتو دو تا زبان رسمی در افغانستان هستند. اما نام ماه ها در بین دو زبان مشترک هستند از هر طریقی که ممکن باشه عالی خواهد بود. چه از طریق تغییر کالچر و چه از طریق پراپرتی
لطفا اسامی ماه هارو به ترتیب (فروردین، اردیبهشت ...) برام بنویسید چون من اطلاعی از اسامی دقیق ندارم همچنین ایا اسامی روزهای هفته مثل ایران (شنبه، یکشنبه ...) هست؟ بین صبح و عصر که تو افغانستان تفاوتی نیست؟ منظور کلمه صبح و عصر هست
فروردین => حمل اردیبهشت => ثور خرداد => جوزا تیر => سرطان مرداد => اسد شهریور => سنبله مهر => میزان آبان => عقرب آذر => قوس دی => جدی بهمن => دلو اسفند => حوت
همچنین اسامی ایام هفته و صبح و عصر در دری و پشتو و فارسی همه یکسان هستند ممنونم از زحمات شما
پشتیبانی از اسامی رو اضافه کردم
توسط هرکدوم از کدهای زیر میتونید از تقویم فارسی با نام های افغانستان استفاده کنید
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("fa-AF");
یا
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("ps-AF");
یا
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("prs-AF");
البته اگر بتونم راه حل ساده تر و بهتری پیدا بکنم قطعا جایگزین میشه، نحوه استفاده هم بزودی در مستندات نوشته میشه از اینجا میتونید پیگیری کنید
https://hosseini.ninja/handycontrol/persianToolkit/persianCalendar/
بسته ناگت هم انشالله یکی دو هفته ای اپلود میکنم
ممنون از زحمات شما. منتظر بروزرسانی ناگت هستم
سلام و صبح بخیر هنوز از بروزرسانی بسته ناگت خبری نیست؟ تشکر
سلام روز بخیر چند روزی هست کمی سرم شلوغ هست انشالله تا چند روز اینده بسته ناگت رو اپلود میکنم اگر خیلی عجله دارید میتونید از بسته ناگت شبانه استفاده کنید تا کارتون راه بیوفته دستورالعمل استفاده رو اینجا توضیح دادم https://hosseini.ninja/handycontrol/quick_start/#Nuget-Nightly-Builds
سلام و صبح بخیر هنوز از بروزرسانی بسته ناگت خبری نیست؟ تشکر
بسته ناگت نسخه 3.3.6 منتشر شد https://www.nuget.org/packages/HandyControls/3.3.6
تشکر از اینکه اطلاع دادید
یک اتفاق عجیب افتاده. وقتی از استایل متریال استفاده میشه ماه های افغانستان نشان داده نمیشه اما با استایل دیفالت درسته
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
var culture = new CultureInfo("prs-AF");
//culture.NumberFormat = new CultureInfo("en-US").NumberFormat;
//culture.DateTimeFormat = new CultureInfo("en-US").DateTimeFormat;
System.Threading.Thread.CurrentThread.CurrentCulture = culture;
base.OnStartup(e);
}
}
در حالت ماه، همه چیز درسته، باز بررسی میکنم
من یک نگاهی انداختم. ماه های ایرانی دو جا تعریف شدن:
PersianCalendarHelper and PersianDateTime
فکر کنم این یکی از قلم افتاده:
private static readonly string[] months =
{"", "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"};
PersianDateTime مربوط به تقویم نیست و خودش شامل یه کلاس هلپر برای کار با تاریخ هست کلا ارتباطی با تقویم نداره
مشکل مربوط به متریال دیزاین هستش قسمت PART_HeaderButton و CurrentDateTextBlock و CalendarYearMonthConverter سه قسمت اضافی هستن که داخل قالب پیشفرض تقویم وجود ندارن و متریال دیزاین خودش این قسمت هارو اضافه کرده و با روش خودشون اون رو پر میکنن در نتیجه شما باید از تیم متریال دیزاین بخواین که اسامی نام های افغان رو چک کنن و راه تغییر زبان تقویم رو ازشون بپرسید چون مثل اینکه Language="fa-AF" جواب نمیده
ممنون. حتما همین کارو میکنم
سلام مجدد
سورس متریال کیت رو دیدم. کالچر خودش رو از این میگیره
XmlLanguage.GetSpecificCulture
بالاخره مجبور شدم تمام فایلهای زیر رو کپی کنم و داخل پروژه خودم تغییرشان بدم
CalendarYearMonthConverter.cs
MaterialDateDisplay.cs
MaterialDateDisplay.xaml
همچنین چون
PersianCalendarHelper
شما هم از نوع
internal
بود مجبور شدم اونم کپی کنم.
شما راهی بلد نیستین که بتونیم کالچر
XmlLanguage
رو سفارشی کنیم؟ من خیلی سیرچ کردم و به نتیجه نرسیدم. گرچند فعلا کارم پیش میره اما خیلی کود از داخل هر دو پکیج زیاد بیرون آوردم. نمیدونم روش خوبی هست یا نه
ن والا راهی به ذهنم نمیرسه البته فکر نکنم نیاز باشه همه چیو کپی کنید شاید بتونید اون متدهای اصلی که دخیل هستند رو یجوری override کنید تا مشکل حل بشه
من هم تلاش کردم همون کار کنم. اما مشکل اینجاست که همه کلاسایی و متودایی که کپی کردم یکی از این سه حالت داشتن private, internal, sealed
سلام ممنونم از زحمات شما بابت این پکیج میشه لطف کنین بگین چجوری میشه فرمت تاریخ را از شورت به لانگ تغییر داد ممنون؟