وارد شوید

تنها برای اعضای سایت.

hosting از تخفیف های ویژه هاستینگ از سرورهای بزرگ دنیا برخوردار شوید.

کاربران انلاین

هم اکنون 0 کاربر و 4 میهمان انلاین هستند.

تاریخ شمسی (تقویم جلالی)

آقای موسوی در نسخه قبلی سایت‌تون (یکی دو ماه پیش) فایلی برای تاریخ شمسی برای دروپال 6 گذاشته بودید (که البته توضیح داده بودین که تاریخ تمام قسمت‌های سایت از جمله بخش انگلیسی رو شمسی می‌کنه). آیا updateای برای اون دارید؟
در ضمن متوجه شدم که در ترجمه اینترفیس دروپال و همچنین همون تاریخ فارسی جایی که کاما لازم بود از کامای انگلیسی "," استفاده کرده بودید. فکر می‌کنم بهتره داخل متن فارسی از کامای فارسی «،» استفاده بشه.
یک نکته هم در مورد فرمت تاریخ: همون‌طور که مستحضرید در سایت‌های خارجی تاریخ رو با فرمت‌های مختلفی می‌نویسند که یکی از اونها جدا کردن سال و ماه و روز با ‌اسلش "/" هست. این توی صفحه‌های چپ‌به‌راست مشکلی به‌وجود نمی‌یاره ولی به محض استفاده اون در قالب‌های راست‌به‌چپ -rtl- تاریخ 1368/11/9 بسته به مرورگر (فایرفاکس یا اینترنت اکسپلورر) در یکی درست و در دیگری برعکس دیده می‌شه. برای حل این مشکل فکر می‌کنم بهتر باشه تاریخ رو با جداکننده نقطه "." فرمت‌بندی بکنیم. سایت‌های خارجی هم posted on 2008.01.29 استفاده می‌کنند و در صورت استفاده اون برای تاریخ فارسی این نقطه در هر دو مرورگر پراستفاده امروزی به‌صورت یک کامای برعکس (در حقیقت ممیز فارسی یا عربی هست مثل ممیز عدد 19.5) دیده خواهد شد اینطوری 1386.11.9 . ببخشید که عرضم طولانی شد.

نظرات

حتما

تصویر alimosavi

سلام
ممنون از نکته هایی که عنوان کردید. خودم تا حالا بهش توجه نکرده بودم.

نه برای اون فایل هنوز بروز رسانی ندارم. ( من وقتم یکم محدوده توی این چد روز وگرنه کامل درستش می کردم)

نگاه کنید من سر یک دوراهی کامل موندم . نمی دونم از کدوم راه برم.
خوشحال می شم دیگران ( اونایی که واردند ) نظر بدهند.

یک راه برای هجری کردن تاریخ اینه که داخل هسته ( یعنی پوشه include ) تاریخ رو با فرمت هجری تبدیل کرد که تموم قسمت های دروپال رو تحت تاثیر خودش قرار می ده. ( و مشکلات زیادی برای تکمیل کردنش پیش راه هست )

راه دوم اینه که داخل قالب ها طوری تنظیم کرد که با تعویض زبان تنها نمایش دادن تاریخ ها عوض بشه . اینطوره اصل دروپال کاراشو با تاریخ میلادی انجام می ده ولی نمایشش در جاهایی که بخوای بصورت هجری شمسی انجام می گیره.

حالا خودم موندم از کدوم یک از این را ها استفاده کنم.

برای تبدیل تاریخ با تبدیل زبان نیز هنوز وقت نکردم از نویسنده های اصلی دروپال بپرسم ببینم متغیرهای گولوبال رو چی تعریف کردن. در اولین فرصتی که (از شر کنکور ارشد راحت شدم) حتما اینکارو پیگیری می کنم.

تا اون زمان فکر کنم از همین پکیج های فعلی اگر استفاده کنید مشکلی پیش نخواهد آمد.

راه دوم به نظر

راه دوم به نظر من خیلی بهتره. منظور ما از فارسی (شمسی - خورشیدی جلالی -...) شدن تاریخ، نشون دادن اونها در front end هست به کاربران. کل سیستم رو فارسی کردن بسیار کار طولانی خواهد شد. من شخصاً ترجیح می‌دم یک سیستم (مثل دروپال) فقط قادر باشه معادل تاریخ میلادی رو به تاریخ فارسی (شمسی) نشون بده. بقیه کارهای داخلی، حتی داخل پانل ادمین به تاریخ میلادی باشه. اینطوری سیستم universalتر خواهد شد.
در مورد انواع فرمت‌بندی تاریخ هم خواستید من در خدمتتون هستم.

سلام

تصویر alimosavi

من هم راه دوم رو ترجیح می دم .
ولی اینجا یک مورد هست که کار خودم هست

باید ببینم می شه توی موتور قالب تاریخ رو جا کرد یا نه . اگر این امکان نباشه باید روی تک تک قالب ها این کارو کرد که اصلا بصرفه نیست.
سعی می کنم در اولین فرصت دنبالشو بگیرم.

موضوع تقویم

موضوع تقویم شمسی رو بهتره اینجا ادامه بدیم که به یک نتیجه‌ای منجر بشه:

Non-Gregorian Dates and Calendars
این لینک یک صفحه ویکی‌یه، باید برای ویرایش اون در groups.drupal.org عضو شد. آقای موسوی فکر کنم اگر پروژه Irdate رو اینجا ادامه بدید یا لااقل بحث‌اش سایت دروپال ادامه پیدا کنه بهتر باشه. یه پروژه‌ای رو هم شروع کردن که لینک‌اش تو همون صفحه هست.

تاریخ شمسی و غیر فعال شدن validation

سلام

توسط کدی که دوست محترم گذاشته بودند مشکل سایت من در نمایش تاریخ شمسی به ازای تغییر زبان سایت برطرف شد .
ولی هنوز مشکل اصلی که توی ویرایش محتوا به وجود میاد هست و اینکه هسته دروپال فرمت تاریخ شمسی را درک نمی کنه و خطا میده.
البته comment شما را توی سایت رسمی دروپال دیدم و اونجا گفته بودید که برای رفع مشکل validation را غیر فعال کردید.
آیا امکانی هست که موقتا بشه تنها validation مربوط به فیلد تاریخ را غیر فعال کرد؟
چون حتی توی نسخه فارسی شده drupal هم بعد از جایگزین کردن فایلهای مربوط به تاریخ شمسی ، validation کل سایت غیر فعال می شه.

باز هم ممنون

آسونتر

تصویر alimosavi

سلام

می شه یک استاندارد برای فارسی توی دروپال تعریف کرد که ارور نگیره.

خب اینراه خیلی آسونتره تا ایکه تنها یک المان رو از استاندرد خارج کنی.

من سعی می کنم روش اون رو پیدا کنم . ولی اگر دوستانی هم هستند که وقت اینکارو دارند من از کمکشون استقبال می کنم

خب به نظر میاد باید یک تابع جدید با نام

function valid_date($date)

ایجاد بشه و هرجا که به فرمت قالب اشاره کرده این تابع و برای مقایسه فراخوانی بشه .

غیرفعال کردن validation از روی فیلد تاریخ شمسی

آقای موسوی از راهنمایی شما ممنون
امکان غیرفعال کردن validation روی فیلد تاریخ را پیدا کردم . یعنی اینکه فایل include/form را تغییر ندیم و از همون فایل اصلی هسته دروپال استفاده کنیم و در عوض فایل modules/node/node.module تابع node_validate را اینطور تغییر بدیم.
خط 1994
if (!empty($node->date) && strtotime($node->date) <= 0 (
جایگزین کنیم با
if (!empty($node->date) && strtotime($node->date) <= 0 && $locale !='fa’)

به این ترتیب فقط validation از روی فیلد تاریخ و تنها در زبان فارسی غیرفعال می شه.

تقویم شمسی با پشتیبانی چند زبانه

سلام من هنوز هم نظرم این هست که این روش جهت نمایش تاریخ مناسب نیست و نباید این تغییرات رو در هسته داد ولی فعلا که فرصت نکردم وقت بزارم روش برای این که همین تقویم بتونه پشتیبانی چند زبانه رو هم بکنه در بخشی از فایل common.inc که تغییرات مربوط به فارسی رو دادید به صورت زیر تغییر بدید:

  global $locale;
  switch ($locale)
  {
  case 'fa':
  for ($i = 0; $i < $max; $i++) {
    $c = $format[$i];
    if (strpos('AaDFlM', $c) !== FALSE) {
      $date .= t(jdate($c, $timestamp));
    }
    else if (strpos('BdgGhHiIjLmnsStTUwWYyz', $c) !== FALSE) {
      $date .= jdate($c, $timestamp);
    }
    else if ($c == 'r') {
      $date .= format_date($timestamp - $timezone, 'custom', 'D, d M Y H:i:s O', $timezone);
    }
    else if ($c == 'O') {
      $date .= sprintf('%s%02d%02d', ($timezone < 0 ? '-' : '+'), abs($timezone / 3600), abs($timezone % 3600) / 60);
    }
    else if ($c == 'Z') {
      $date .= $timezone;
    }
    else if ($c == '\\') {
      $date .= $format[++$i];
    }
    else {
      $date .= $c;
    }
  }
  break;
  default:
   for ($i = 0; $i < $max; $i++) {
    $c = $format[$i];
    if (strpos('AaDFlM', $c) !== FALSE) {
      $date .= t(gmdate($c, $timestamp));
    }
    else if (strpos('BdgGhHiIjLmnsStTUwWYyz', $c) !== FALSE) {
      $date .= gmdate($c, $timestamp);
    }
    else if ($c == 'r') {
      $date .= format_date($timestamp - $timezone, 'custom', 'D, d M Y H:i:s O', $timezone);
    }
    else if ($c == 'O') {
      $date .= sprintf('%s%02d%02d', ($timezone < 0 ? '-' : '+'), abs($timezone / 3600), abs($timezone % 3600) / 60);
    }
    else if ($c == 'Z') {
      $date .= $timezone;
    }
    else if ($c == '\\') {
      $date .= $format[++$i];
    }
    else {
      $date .= $c;
    }
  }

  break;
  }

تشکر

تصویر alimosavi

ممنون و تشکر.

البته من بیشتر منتظرم چون چندتا از بچه ها دارن روی یک ماجول جدید کار می کنند شاید زود کامل شه.

ولی اگر کامل نشد از همی کدهای شما استفاده می کنیم.

برای تقویم جلالی موضوع جدی تر است

به نظر من در مورد تقویم جلالی موضوع جدی تر است
ما باید راه حلی داشته باشیم که کلیه این موارد رو پوشش بده:
1-امکان انتخاب این که یک عنصر تاریخی ایجاد شده به صورت جلالی نمایش داده شود یا میلادی (برای مثال ممکن است بخواهیم در سایت بخش نمایشگاههای بین المللی یا هر چیز مرتبط با بین الملل را قرار دهیم در این صورت باید تاریخ حتی برای سایت فارسی به صورت میلادی باشد در نتیجه باید هر دو نوع فرمت خروجی و هر دو نوع فرمت ورودی را داشته باشیم و با theming تعیین کنیم کدامیک نمایش داده شود)
2-امکان انتخاب و ورود تاریخ با استفاده از تقویم (ماژول jscalendarبرای تقویم میلادی این کار را انجام می دهد)
3-امکان تاریخ جلالی برای فرمها به صورت form element
4-امکان تاریخ جلالی برای ماژول وب فرم به صورت web form element
5-امکان تاریخ جلالی برای ماژول cck به صورت cck element
(متاسفانه تقویم فارسی باید برای هر کدام از این سه به صورت جدا پیاده سازی شود چون هر کدام از اینها روش جدا برای پیاده سازی اجزای خود دارند.)
6-ذخیره سازی در هر صورت باید به صورت تاریخ میلادی باشد
7-باید امکان validation تاریخ های فارسی نیز به فیلد ها اضافه بشه
8-این کارها نباید با دستکاری هسته صورت بگیره

بنده از عزیزانی که در حال کار در این زمینه هستند یا تمایل به همکاری در این زمینه رو دارند درخواست می کنم در این پست بنده رو در جریان بگذارند تا یک تیم قوی و منسجم تشکیل بدیم و هرچه سریع تر بتونیم این امکان رو به سیستم دوست داشتنی دروپال اضافه کنیم.
به نظرم برای آماده سازی دروپال برای کاربران فارسی از هر کار دیگری مهم تر در حال حاضر کار روی سیستم تقویم دروپال باشه

همکاری

سلام
من مدت زیادی نیست که روی دروپال کار می کنم و هنوز خیلی کامل با نحوه develop اون آشنا نشدم . ولی اگر مایل بودید می تونم توی این زمینه همکاری کنم.
چون واقعا همونطور که خودتون گفتید مهمترین بخش دروپال برای کاربران فارسی همون تقویم هست .

سلام

تصویر alimosavi

سلام

پس به این نتیجه رسیدیم . هر گونه تغییر در هسته ممنوع

پس ما باید به فکر ایجاد کردن یک خصوصیت جدید برای نمایش مختلف تاریخ در موتور phptemplate باشیم .
فکر می کنم این راه آسونترین و سریعترین راه هست.

مثل خصوصیت جدید راست به چپ خودکار که در موتور جدید دروپال 6 قرار گرفته .

البته باید روش فکر بشه.

اگر نمایش تاریخ بصورت ظاهری باشه هیچ نیازی به valuation درست کردن برای تاریخ فارسی نیست.

خب همه کسایی که از php سر در میارن بیان بهترین راه رو پیشنهاد بدن و کم هزینه ترین را رو.

اون ماجولی که قبلا در حال سخت بود مثل اینکه حالا حالا ها نمی خواد تموم بشه پس ما باید خودمون دست روی دست بگزاریم.

این نکته هم باید بگم : اگر کار ما ( بر روی تاریخ ) جواب بده دروپال اولین cms خواهد بود که بصورت ریشه ای به حل مشکل تاریخ هجری شمسی می پردازیم .

من هم از تموم افرادی که تخصص دارند دعوت به همکاری می کنم.

زود تر بچه ها یک حرکتی بکنید

سلام آقای موسوی
اول این که من کل لینکهایی که در زمینه تقویم جلالی و چند تقویم در سایت دروپال بحث شده اینجا می گذارم، تا ببینید چه درخواستهایی شده و تا به حال چه کارهایی انجام شده:
http://drupal.org/node/205500
http://drupal.org/project/holidays
http://drupal.org/node/115564
http://drupal.org/node/219239
http://drupal.org/node/242965
http://groups.drupal.org/node/10607
دوم: تغییر در phptemplate رو اصلا صلاح نمی دونم چون از تغییر تو هسته دروپال هم بد تره (همون معایبی که تغییر در هسته داره رو داره ولی مزیتهایی که تغییر در هسته در اختیارمون قرار می ده رو نداره) به نظر من باید همه کار از طریق یک ماژول اضافه انجام بشه و این کار هم با استفاده از پیاده سازی تعدادی hook قابل انجام هست (ما باید کاری شبیه به کاری که ادیتور هایی مثل fckeditor که نحوه ورود اطلاعات در textbox ها رو به کل تغییر می دهند بدون این که تغییری در هسته یا جای دیگر لازم باشه) یکی از نوشته های بالا مربوط به همین موضوع هستش
سوم: به نظر من validation فیلد تاریخ و integration اون با jscalendar و ابزارهایی مشابه لازم هست.

ماجول

تصویر alimosavi

سلام

خب من پروژه ی http://drupal.org/project/persiandate رو ساختم تا ماجولی به همین نام برای تاریخ هجری ایجاد کنیم.

از دوستانی که مایل به همکاری هستند دعوت می کنم تا user name خودشون رو در سایت اصلی برام به پیام خصوصی بفرستند

با این حساب شما چهارمیش رو راه انداختین

سلام آقای موسوی تا کنون 3 پروژه دیگر هم در این زمینه راه اندازی شده 2 تای اونها توسط کاربران فارسی زبان ایرانی ایجاد شده ولی از همین مرحله جلوتر نرفته و یکی دیگه که ماژولی کلی تر هست و برای پشتیبانی چند تقویم مختلف هست به نام holydays که وضع بهتری داره
بسیار خوب، چارچوب کار چیه؟

چه می شه کرد

تصویر alimosavi

سلام

چه می شه کرد. الان حدود چند ماهی هست منتظریم تا یکی از این پروژه ها به ثمر برسه.

آقای هادی فرنود که جزو اولین کاربران دروپال توی ایران بودند نزدیک به یک سال پیش با توسعه دهندگان دروپال صحبت کرده بودند و آنها هم قول مساعد برای پیشبینی تاریخ هجری در هسته دادن در حالی که هنوز هم خبری نیست.
ما مجبوریم که خودمون شروع کنید .

در هر حال این قضیه باید زودتر حل شود چه توسط ما چه توسط افراد دیگر.

مژده! تقویم و تاریخ جلالی

به زودی ماژول تقویم و تاریخ جلالی که در سایت HTTP://ITPNews.com استفاده کردم، به زودی نسخه sable اون رو در سایت قرار میدم، این ماژول بدون هیچ دستکاری در کد اصلی سایت امکانات فارسی سازی را به سایت اضافه می کند:)

موفق باشيد

تصویر alimosavi

سلام

اميدوارم در اين زمينه موفق باشيد
فكر مي كنم شما بصورت فيلد cck اين ماجول رو درست كرديد درسته ؟

در ماجول آدرس دهي يك نكته رو در سايتتون رعايت نكرديد و اون نام فارسي براي عنواين خبري است كه به آدرس طولاني كه اصلا براي seo سايت مناسب نيست منجر شده. اين مشكل سايت رو با پيكربندي درست اين ماجول حل كنيد

در مورد آدرس دهی فارسی

سلام آقای موسوی من تصور نمی کنم آدرسهای فارسی در url مشکلی برای سئو داشته باشه بر عکس اسم فارسی به سئو کمک هم می کنه برای مثال به سایت http://www.wikipedia.org و به صفحات فارسی اش بروید این صفحات رنکهای بالایی دارند و من تصور می کنم مقدار زیادی از آنها رو مدیون همین نامگذاری فارسی صفحات هستند. (این صفحات در مرورگر فایرفاکس و مرورگر متنی جستجوگرها به صورت فارسی و به درستی نمایش داده می شه و به جستجو گرها در data mining کمک می کنه در حالی که اگر ما برای صفحات اسمهای فارسی انتخاب کنیم هیچ کمکی به جستجوگرها نکرده ایم )