Basic steps to localizing OTRS and other softwares into Persian

1. Ability to save and retrieve Persian texts.

2. Supporting right-to-left direction and right alignment.

3. Supporting Persian (Jalali) calendar in both getting dates from user and displaying dates to him (her).

4. Displaying Persian numeric digits ۰۱۲۳۴۵۶۷۸۹ instead of English numeric digits 0123456789.

5. Translating software itself into Persian. This include menu and button captions, messages and etc.

 

Advanced steps for localizing softwares may be achieved by implementing Iranian standard ISIRI 6219 and other related standards.

OTRS has done steps 1,2 and 5 but needs to go through steps 3 and 4. For step 3 (Persian Calendar) there exists a Perl module named Date-Jalali-0.01 written by Ahmad Anvari for converting Gregorian and Persian calendar to each other. Ahmad has also written another Perl module named Lingua-FA-Number-1.0 for converting English and Persian numeric digits to each other that can be used to implement step 4.

 

See also:

1. Persian Computing group: A community of people specialized in Persian standards, localization and internationalization.

‭Localizing OTRS into Persian (Farsi)

‭‭Mawlānā Jalāl ad-Dīn Muḥammad Balkhī

OTRS core framework has been previously translated into Persian (Farsi) by Hooman Mesgari and Amir Shams Parsa. It was even enabled to work bi-directional (RTL, LTR) by some other people. This translation worked well but at this time needed to be updated. There is about 1600 entries in "fa.pm" (June 2009, v2.3.4) that about 130 entries were new and has not been translated into Persian (Farsi) yet. In addition to OTRS core framework itself, there exists several modules that should be translated including ITSM and FAQ modules.

In order to complete/update this translations, I as a 2 year OTRS user decided to translate/update OTRS core framework and its modules. I used translation files that I have downloaded from CVS at 2009, 21 June. And now list of works I have done:

OTRS core framework (fa.pm):

  • ~130 new entries (there is ~1600 entries totally)
  • ~15 translation corrections related to words "stat", "role", and "lock"
  • 2 correction of Persian letter "ARABIC LETTER FARSI YEH", U+06CC
  • ~130 correction of ZWNJ character mostly in words that include HA (ها)
  • ~25 correction of Persian (Farsi) numeric characters like "۰۱۲۳۴۵۶۷۸۹"

Modules translated to Persian (Farsi):

  1. fa.pm
  2. fa_GeneralCatalog.pm
  3. fa_ImportExport.pm
  4. fa_ITSMConfigItem.pm
  5. fa_ITSMCore.pm
  6. fa_ITSMLocation.pm
  7. fa_ITSMService.pm
  8. fa_ITSMTicket.pm
  9. fa_FAQ.pm

Note:

  1. All module translations are based on German versions.
  2. My primary translations could be found here.
  3. I have sent back these translations to internationalization mailing list and don’t know when they will check-in them to CVS.
  4. If anyone find any wrong translation, please let me know.
  5. I have done this with the help of my friend Masoud Ramezani
  6. I used FARDIS project to do some tasks in this process.
  7. CVS address of above modules are based on Farsi versions. So if they don’t work, please replace "fa" with "de" or "en" in their URLs.

‫‫DatePicker استاندارد دات نت برای تقویم ایرانی

DatePicker یک بار دیگر بعد از آن که خودمان نتوانستیم یکی دیگر از نیازهای کامپیوتری‌مان را برطرف کنیم، مایکروسافت به یاریمان آمد و این بار قرار است DatePicker و Calendar مخصوص ما ایرانی‌های زبر و زرنگ(!) را به صورت استاندارد و بدون باگ برایمان بسازد. من در اینجا شنیده‌ام که این امکان در دات نت ۴٫۰ اضافه خواهد شد. واقعا دست مایکروسافت و بقیه توسعه دهندگان دنیا درد نکند که بعد از آن همه تنبلی و تفرقه در ایجاد یک کدپیج استاندارد و واحد (ایران سیستم، سایه و پانیذ را به یاد می‌آورید؟) برایمان کدپیج یک دست درست کرد. دستش درد نکند که برایمان کلاس PersianCalendar درست کرد و حالا هم می‌خواهد در بازار قمر در عقرب DatePickerهای وطنی برایمان یک نسخه محلی شده از DatePicker بسازد. تازه آن هم بدون هیچ چشم داشتی حتی در حد ۱ سنت! ای کاش مجانا یک سری نرم افزار مالی-اداری مخصوص قوانین اداری ایران هم درست می‌کردند تا رسما در این آشفته بازار را ببندیم!

‫WPF بهتر است یا WinForms؟

 ‫معماری wpf

wpf به عنوان رقیبی جدی برای winforms از framework 3.0 به مجموعه دات‌نت اضافه شد. winforms از ابتدای تولد دات‌نت وجود داشته و تا حالا رشد خیلی زیادی کرده است. منابع بسیار زیادی درباره آن وجود دارد، برنامه نویسان زیادی به آن تسلط پیدا کرده اند و تعداد بسیار زیادی برنامه نوشته شده با آن موجود است. در آن سوی این رقابت wpf قرار دارد. wpf به زعم خیلی ها جایگزین winforms است و مایکروسافت با وجود آن دیگر winforms را توسعه نخواهد داد و صرفا به پشتیبانی آن اکتفا می‌کند. wpf به مذاق طراحان UI و عشاق گرافیک های آن چنانی بسیار خوش آمده است. ما هم به علت در پیش رو داشتن پروژه‌های جدید ویندوزی و به خاطر اینکه از قافله جهانی عقب نمانیم نظرات بعضی از مدافعان و مخالفان را بررسی کرده و به جهت فهم خودمان و استفاده دیگران خلاصه وار در اینجا می آوریم:

۱- wpf فقط روی ویندوز ویستا، ویندوز 2008، win xp sp2 و آخرین RDP ویندوز 2003 کار می‌کند.
۲- بسیار گفته شده که wpf در حوزه کنترل‌های کار با دیتا مثل DataGrid کمبودهای زیادی دارد. البته با وجود این ضعف گفته می‌شود که wpf در DataBindingهای آبجکتی مرسوم در دنیای Domain Drivern Design خیلی خوب عمل می‌کند. این مدل DataBinding از همان نوعی است که همراه با ORMهایی مثل NHibernate و LINQ رایج شده است.
۳- استدلال تعدادی از افراد برای عدم استفاده از wpf عدم علاقه آنها به دست کشیدن از دانسته‌ها و مهارت‌های قبلی‌شان در winforms و یادگیری تکنولوژی جدید wpf است. اگر شما هم مثل ما تجربه چندان با ارزشی روی winforms ندارید می‌توانید با انگیزه بیشتری به wpf فکر کنید.
۴- wpf یک عمو زاده دارد به نام SilverLight که هر دو در استفاده از XAML مشترک هستند. هر چند که SilverLight زیرمجموعه‌ای از wpf محسوب می‌شود ولی می‌توانید امیدوار باشید که با یادگیری wpf خود به خود کمی هم SilverLight یاد گرفته‌اید.
۵- wpf برای تولید و نمایش UI از خیلی از امکانات DirectX ،GPU و حافظه کارت گرافیک استفاده می‌کند و رابطه خیلی خوبی با پخش انواع فایل تصویری، ویدیویی، صوتی و انیمیشن دارد.
۶- ادعا می شود که کد منطق برنامه و کد Prsesentation در wpf کاملا از هم جداست. یعنی می توان کد XAML را به فردی که هیچ اطلاعاتی راجع به C#‎ ندارد سپرد تا آن را با Expression Blend حسابی عمل بیاورد. کد سی‌شارپ هم می‌تواند توسط یک برنامه‌نویس متعارف در Visual Studio توسعه پیدا کند.
۷- علی القاعده در برنامه های فارسی و آنهایی که از تقویم شمسی استفاده می‌کنند مشکلات زیادی وجود خواهد داشت. چون هنوز هیچ‌کس یک DatePicker فارسی با wpf ننوشته است و رفتار بقیه کنترل‌ها هم در محیط‌های پیچیده راست به چپ نویسی معلوم نیست. البته در مستندات خود wpf ذکر شده که پشتیبانی خیلی خوبی از یونیکد و مسایل localization وجود دارد.
۸- اگر خیلی از ژیگول‌بازی‌های wpf و wpfدوستان خوشتان نمی آید اصلا نامید نشوید چون winforms حالا حالاها زنده خواهد بود. همان طور که هنوز VB6 و حتی FoxPro زنده هستند.
۹- اگر برای اتمام پروژه ای عجله دارید از wpf استفاده نکنید چون ممکن است بدجوری شما را غافل‌گیر کند.
۱۰- برای یادگیری از کتاب زیر شروع کنید (بنا به توصیه دوستان wpf):
Windows Presentaion Foundation Unleashed by Adam Nathan
۱۱- بعضی امکانات جدید به wpf اضافه شده‌اند که من هنوز از بیشتر آنها سر در نمی‌آورم:

  • UI Automation
  • UI Virtualization
  • Routed Events
  • Attached Properties
  • Property change notification
  • XBAP