مشکل در تاریخ جلالی {فوری}
-
p{direction: rtl; text-align: right}. کلاس QDate اسامی ماهها رو از Locale سیستم میگیره. کلاس QJalaliDate اگر قرار باشه اینطور کار کنه بهجای Farvardin و غیره میگیره January و ... در صورتی که کاربران Locale سیستمشون رو روی Asia/Tehran تنظیم بکنن، اونوخت اسامی لاتین ماهها درست در میاد.
p{direction: rtl; text-align: right}. اما هیچکس نمیاد سیستمش رو روی Locale ایران تنظیم بکنه! برای این که اسلامی لاتین ماهها رو درست داشته باشیم مجبورم یک طور دیگه بنویسم. مثلاً یک QStringList ثابت. در اینصورت مشکل اینه که با تعویض Locale سیستم باز هم اسامی ثابت میمونه.
p{direction: rtl; text-align: right}. راهحلی که به ذهن من میرسه اینه که یک لیست قابل ترجمه از اسامی ماههای جلالی داشته باشیم. و هروقت Locale عوض شد، اسم ماه عوض نشه! بلکه به جاش ترجمه بشه. اینطوری منطقیتره. فقط یک مشکلی داره! اون هم این که باید دو ریلیز صبر کنیم تا همهٔ ترجمهها به روز بشن. یک ریلیز برای وجود تاریخ شمسی و در ریلیز بعدی، ترجمههای تاریخ شمسی. یک مشکل دیگه هم این که همهٔ توسعهدهندههای زبانها دیگه اسامی ماهها رو توی لیست ترجمه میبینن و با خودشون میگن این دیگه چیه؟! شاید مناسب نباشه. اما اگر قابل ترجمه نباشه، اونوخت ثابت خواهند بود. یعنی نمیشه چیزی رو که توی کیوت برای ترجمه مارک نشده، فقط توی ترجمهٔ فارسی گذاشت. یا همه یا هیچ!
p{direction: rtl; text-align: right}. الان چیکار کنم؟
-
[quote author="abbas farahmand" date="1345893067"]p{direction: rtl; text-align: right}. راستش تا الان من سیستمی به دقت PHP توی تقویم جلالی ندیدم!
بذار ببینم از چه منطقی استفاده کرده.آنالیز که کردم ارسال می کنم.
البته توی KDE هم هست[/quote]p{direction: rtl; text-align: right}. الگوریتم مشکل نداره.
تو نحوهٔ پیادهسازی مشکل هست... -
p{direction: rtl; text-align: right}. خب میخوای "اینجا":http://boplo.ir/php/jcalendar-jalali-time-converter-class/ رو ببین طرف چجوری تو PHP پیاده سازی کرده
شاید تونستی الگو بگیری
اگه علمم بیشتر بود حتما کمک میکردم.شرمنده :( -
p{direction: rtl; text-align:right}. من دقیق نفهمیدم مشکلت چیه ولی چیزی که به ذهنم میرسه
p{direction:rtl; text-align: right}. 1- سعی کن از بین المللی بودن فاصله نگیری چون اونوقت کدت توی سورس کیوت قرار نمیگیره
2- یه مقدار generic تر و منعطف تر کار کن. برای این مساله یک فانکشن بساز مثل setLanguageFile که یک فایل xml بگیره و برنامه نویس خودش ترجمه رو ست کنه
3- با عدد ماه ها کار کن -
[quote author="Mohsen" date="1345896390"]p{direction: rtl; text-align:right}. من دقیق نفهمیدم مشکلت چیه ولی چیزی که به ذهنم میرسه
p{direction:rtl; text-align: right}. 1- سعی کن از بین المللی بودن فاصله نگیری چون اونوقت کدت توی سورس کیوت قرار نمیگیره
2- یه مقدار generic تر و منعطف تر کار کن. برای این مساله یک فانکشن بساز مثل setLanguageFile که یک فایل xml بگیره و برنامه نویس خودش ترجمه رو ست کنه
3- با عدد ماه ها کار کن[/quote]p{direction: rtl; text-align:right}. الان مشکل اسم ماههاست. قاعدتاً باید اینطور باشه که توی کد زیر در صورتی که ماه قبل اجرا شده باشه:
@
qDebug() << QJalaliDate::currentDate().longMonthName()
@p{direction: rtl; text-align:right}. خروجی به شکل
@
"Mordad"
@p{direction: rtl; text-align:right}. داشته باشه. در صورتی که کاربری ترجمهٔ فارسی کیوت رو لود کرد، این اسم باید به شکل
@
"مرداد"
@p{direction: rtl; text-align:right}. بیاد. و اگر کسی ترجمهٔ افغانی بارگذاری کرد، باید
@
"اسد"
@رو توی خروجیش ببینه. همینطور برای چینی و یونانی و غیره. در صورتی که اسامی ثابت باشه، نمیشه ترجمهشون کرد. اگر از فریمورک ترجمه استفاده کنم ناجور میشه. یعنی کاربرای دیگهٔ کیوت اینو قبول نمیکنن. کسی نمیاد اسامی ماههای جلالی رو بشینه ترجمه کنه برای زبان خودش.
-
p{direction: rtl; text-align:right}. فکر میکنم در مرحلهٔ اول باید صرفاً تقویمی با اسامی لاتین داشته باشیم. چون اضافه کردن tr() برای کدهای رسمی کیوت تقاضای خیلی سنگینی هست. احتمال قبول شدنش هم کمه. در این صورت حتا توی ترجمهٔ فارسی کیوت هم اسامی به شکل «فروردین» «اردیبهشت» و ... نخواهیم داشت.
-
p{direction:rtl; text-align: right}. پس بهترین کار استفاده از همون اسم ها به انگلیسی هست و قرار دادن واسط ترجمه از xml. البته از نظر من اسم تو کد سطح core اصلا مهم نیست چون نبودنش کلا یک آرایه 12 تایی برای اسم ماه ها هست. این مشکل بیشتر تو سطح gui مطرح هست که کاربر کنترلی رو اشیاء گرافیکی نداره
-
[quote author="soroush" date="1345979552"]با چند نفر صحبت کردم میگن وقتش خیلی وخت پیش تموم شده. باید بمونه برای 5.1 ![/quote]
p{direction: rtl; text-align: right}. ممنون از شما به خاطر وقتی که میگذارید. امیدوارم این تلاش شما به نتیجه برسه، حالا یک کم دیرتر اشکالی نداره.