Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Persian
  4. ‫مشکل در تاریخ جلالی {فوری}
Forum Updated to NodeBB v4.3 + New Features

‫مشکل در تاریخ جلالی {فوری}

Scheduled Pinned Locked Moved Persian
10 Posts 4 Posters 4.7k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    soroush
    wrote on last edited by
    #1

    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}. الان چی‌کار کنم؟

    1 Reply Last reply
    0
    • A Offline
      A Offline
      absfrm
      wrote on last edited by
      #2

      p{direction: rtl; text-align: right}. راستش تا الان من سیستمی به دقت PHP توی تقویم جلالی ندیدم!
      بذار ببینم از چه منطقی استفاده کرده.آنالیز که کردم ارسال می کنم.
      البته توی KDE هم هست

      If You Want You Can!

      1 Reply Last reply
      0
      • S Offline
        S Offline
        soroush
        wrote on last edited by
        #3

        [quote author="abbas farahmand" date="1345893067"]p{direction: rtl; text-align: right}. راستش تا الان من سیستمی به دقت PHP توی تقویم جلالی ندیدم!
        بذار ببینم از چه منطقی استفاده کرده.آنالیز که کردم ارسال می کنم.
        البته توی KDE هم هست[/quote]

        p{direction: rtl; text-align: right}. الگوریتم مشکل نداره.
        تو نحوهٔ پیاده‌سازی مشکل هست...

        1 Reply Last reply
        0
        • A Offline
          A Offline
          absfrm
          wrote on last edited by
          #4

          p{direction: rtl; text-align: right}. خب میخوای "اینجا":http://boplo.ir/php/jcalendar-jalali-time-converter-class/ رو ببین طرف چجوری تو PHP پیاده سازی کرده
          شاید تونستی الگو بگیری
          اگه علمم بیشتر بود حتما کمک میکردم.شرمنده :(

          If You Want You Can!

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mohsen
            wrote on last edited by
            #5

            p{direction: rtl; text-align:right}. من دقیق نفهمیدم مشکلت چیه ولی چیزی که به ذهنم میرسه

            p{direction:rtl; text-align: right}. 1- سعی کن از بین المللی بودن فاصله نگیری چون اونوقت کدت توی سورس کیوت قرار نمیگیره
            2- یه مقدار generic تر و منعطف تر کار کن. برای این مساله یک فانکشن بساز مثل setLanguageFile که یک فایل xml بگیره و برنامه نویس خودش ترجمه رو ست کنه
            3- با عدد ماه ها کار کن

            1 Reply Last reply
            0
            • S Offline
              S Offline
              soroush
              wrote on last edited by
              #6

              [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}. بیاد. و اگر کسی ترجمهٔ افغانی بارگذاری کرد، باید
              @
              "اسد"
              @

              رو توی خروجی‌ش ببینه. همین‌طور برای چینی و یونانی و غیره. در صورتی که اسامی ثابت باشه، نمیشه ترجمه‌شون کرد. اگر از فریم‌ورک ترجمه استفاده کنم ناجور میشه. یعنی کاربرای دیگهٔ کیوت اینو قبول نمی‌کنن. کسی نمیاد اسامی ماه‌های جلالی رو بشینه ترجمه کنه برای زبان خودش.

              1 Reply Last reply
              0
              • S Offline
                S Offline
                soroush
                wrote on last edited by
                #7

                p{direction: rtl; text-align:right}. فکر می‌کنم در مرحلهٔ اول باید صرفاً تقویمی با اسامی لاتین داشته باشیم. چون اضافه کردن tr() برای کدهای رسمی کیوت تقاضای خیلی سنگینی هست. احتمال قبول شدنش هم کمه. در این صورت حتا توی ترجمهٔ فارسی کیوت هم اسامی به شکل «فروردین» «اردیبهشت» و ... نخواهیم داشت.

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mohsen
                  wrote on last edited by
                  #8

                  p{direction:rtl; text-align: right}. پس بهترین کار استفاده از همون اسم ها به انگلیسی هست و قرار دادن واسط ترجمه از xml. البته از نظر من اسم تو کد سطح core اصلا مهم نیست چون نبودنش کلا یک آرایه 12 تایی برای اسم ماه ها هست. این مشکل بیشتر تو سطح gui مطرح هست که کاربر کنترلی رو اشیاء گرافیکی نداره

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    soroush
                    wrote on last edited by
                    #9

                    p{direction:rtl; text-align: right}. با چند نفر صحبت کردم میگن وقتش خیلی وخت پیش تموم شده. باید بمونه برای 5.1 !

                    1 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      dlfo
                      wrote on last edited by
                      #10

                      [quote author="soroush" date="1345979552"]با چند نفر صحبت کردم میگن وقتش خیلی وخت پیش تموم شده. باید بمونه برای 5.1 ![/quote]

                      p{direction: rtl; text-align: right}. ممنون از شما به خاطر وقتی که میگذارید. امیدوارم این تلاش شما به نتیجه برسه، حالا یک کم دیرتر اشکالی نداره.

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved