2009/08/17

آشنایی با نویسه‌های ویژه یونی‌کد برای متون راست به چپ

farsi در ضمیمه شماره ۹ استاندارد یونی‌کد که در آن الگوریتم دو جهته (مخصوص متون راست به چپ) معرفی شده ۷ نویسه مخصوص کار با متون راست‌نویس مثل فارسی و عربی معرفی شده است. این نویسه‌ها نقش بسیار مهمی در نمایش صحیح متون راست به چپ دارند. در واقع بدون وجود آنها نمی‌توان متون راست به چپ را به طور کاملاً صحیح نمایش داد. متون و نویسه‌ها در استاندارد یونی‌کد بر اساس ترتیب معنایی (منطقی) ذخیره می‌شوند. ترتیب منطقی یعنی همان ترتیبی که حروف از ذهن خواننده یا نویسنده متن می‌گذرد. حال هر گاه بخواهیم متون ذخیره شده را در صفحه نمایش یا چاپگر نمایش دهیم باید ترتیب منطقی را با یک روش مناسب به ترتیب دیداری تبدیل کنیم. این روش همان چیزی است که در الگوریتم دوجهته یونی‌کد یعنی الگوریتم دوجهته توضیح داده شده است.
در بعضی شرایط خاص نمی‌توان ترتیب دیداری درستی از ترتیب منطقی (معنایی) به دست آورد. به همین علت الگوریتم دوجهته از تعدادی نویسه ویژه یونی‌کد برای رفع این مشکل استفاده می‌کند. این نویسه‌ها فقط در تصحیح شیوه نمایش کلمات استفاده می‌شوند و هیچ تاثیری روی مرتب‌سازی، جستجو یا دیگر پردازش‌های متنی نباید داشته باشد. در واقع پیوست الف استاندارد ماتصا ۶۲۱۹ که با توجه به الگوریتم دوجهته ضمیمه شماره ۹ نوشته شده تاکید می‌کند که کاربردها باید این نویسه‌ها را در هر پردازشی غیر از استخراج نحوه صحیح نمایش در نظر نگرفته و به آن توجهی نکنند. ضمیمه شماره ۹ و این نویسه‌ها رسماً بخشی از استاندارد ملی ایران یعنی ماتصا ۶۲۱۹ (ISIRI 6219) را تشکیل می‌دهند. علاوه بر این استاندارد ماتصا ۹۱۴۷ (ISIRI 9147) هم ۷ کلید را به تحریر این نویسه‌ها اختصاص داده که همگی با ترکیب کلید ALT راست تحریر می‌شوند. دقت شود که کاربرد اصلی این نویسه‌ها و الگوریتم دو جهته در متون راست به چپ مثل فارسی و عربی و متون ترکیبی فارسی-انگلیسی است به خصوص در مواردی که پای اعداد و علائم هم به وسط می‌آید. این نویسه‌ها در متون صرفاً چپ به راست مثل انگلیسی هیچ کاربردی ندارند.
جالب است بدانید طراح اصلی این الگوریتم شخصی است به نام مارک دیویس (Mark Davis) که هم اکنون در گوگل کار می‌کند. این شخص نه فارسی بلد است، نه عربی، نه عبری و نه هیچ زبان راست به چپ دیگری! قصه طراحی الگوریتم دوجهته ضمیمه شماره ۹ توسط مارک دیویس مرا به یاد داستان تصحیح مثنوی معنوی توسط رینولد نیکلسون و تصحیح شاهنامه فردوسی در مسکو (و علی القاعده توسط روس‌ها) می‌اندازد!


و اما خود نویسه‌ها:

نام به کار رفته در ماتصا ۶۲۱۹ نام مخفف استفاده شده در الگوریتم دوجهته کد یونی‌کد
زیرمتن چپ به راست LRE U+202A
زیرمتن راست به چپ RLE U+202B
پایان زیر متن PDF U+202C
زیرمتن اکیداً چپ به راست LRO U+202D
زیرمتن اکیداً راست به چپ RLO U+202E
نشانه‌ی چپ به راست LRM U+200E
نشانه‌ی راست به چپ RLM U+200F

 

مطالعه بیشتر:
الگوریتم دوجهته (ضمیمه شماره ۹ استاندارد یونیکد)
استاندارد ماتصا ۶۲۱۹
استاندارد ماتصا ۹۱۴۷
نوشته حاجلو راجع به به هم ریختگی متون فارسی-انگلیسی

پ. ن.: در این نوشته از اصطلاحات و واژگان استاندارد ماتصا ۶۲۱۹ استفاده شده است.




2009/08/14

ماتصا ۹۱۴۷ استانداردی برای صفحه کلید

isiriماتصا ۹۱۴۷ یا همان ISIRI 9147 جدیدترین استانداردی است که موسسه استاندارد و تحقیقات صنعتی ایران برای چیدمان حروف و علائم خط فارسی بر روی صفحه کلید کامپیوتر منتشر کرده است. این استاندارد در سال ۱۳۸۶ انتشار یافته است. و در حال حاضر (مرداد ۱۳۸۸) آخرین و جدیدترین استاندارد در این زمینه محسوب می‌شود. ماتصا ۹۱۴۷ جایگزین استاندارد قدیمی‌تر ماتصا ۲۹۰۱ (ISIRI 2901) شده و آن را باطل اعلام کرده است. البته استاندارد ۹۱۴۷ فرق خیلی زیادی با استاندارد ۲۹۰۱ نداشته و به اصطلاح Backward Compatible است. کسانی که دستشان به ۲۹۰۱ عادت کرده می‌توانند امیدوار باشند که خیلی زود به ۹۱۴۷ هم عادت می‌کنند.
متاسفانه این استاندارد برخلاف استاندارد ۶۲۱۹ هنوز در بین کاربران، خصوصاً کاربران ویندوز رواج خیلی زیادی پیدا نکرده است. علت این امر تنبلی کاربران و بی‌توجهی مدیران IT کشور در همه سطوح است. متاسفانه بیشتر کاربران فکر می‌کننده آنچه که در ویندوز برایشان مهیاست همان استاندارد واقعی است. در نتیجه فکر می‌کنند ماتصا ۹۱۴۷ صرفاً یک ابداع جدید است که نباید آن را زیاد جدی گرفت. تعدادی از کاربران هم چون این صفحه کلید، صفحه کلید پیش‌فرض ویندوزهای ویستا، ایکس‌پی یا ۹۸ نیست و یا این که چون به لحاظ فنی با نصب درایور آن مشکل دارند، از آن استفاده نمی‌کنند.
ماتصا ۹۱۴۷ با توجه به استاندارد ماتصا ۶۲۱۹ یعنی استاندارد «فناوری اطلاعات - تبادل و شیوه‌ی نمایش اطلاعات فارسی بر اساس یونی‌کد» است. در صورت استفاده از چیدمان‌های غیر استاندارد، کاراکترهای غیر استاندارد (خارج از استاندارد ۶۲۱۹) هم تولید می‌شود. حضور تعداد زیادی «ي» دو نقطه عربی و «ك» عربی گواه بر استفاده از صفحه کلیدهای غیر استاندارد رایج در ویندوز است.
ماتصا ۹۱۴۷ علاوه بر این که جای هر کدام از کاراکترهای مجاز را بر روی صفحه کلید به وضوح مشخص و استاندارد کرده، چند کار مهم دیگر را هم انجام داده است:
۱- حروف صرفاً عربی و غیر مجاز در استاندارد ۶۲۱۹ هم در چیدمان ۹۱۴۷ حضور دارند. این حروف در کار با متون غیر استاندارد و ناسازگار با ماتصا ۶۲۱۹ و تبدیل و جستجو در متون غیر استاندارد و همچنین تحریر متون عربی کاربرد فراوانی دارند.
۲- علائم پرکاربرد غیر فارسی مثل «@»، سمی‌کالن، دابل کوتیشن و… هم در آرایش صفحه کلید موجود هستند، بدون وجود این کاراکترها در استاندارد برای ورود آنها باید یک بار صفحه کلید به انگلیسی عوض و دوباره به فارسی برگردانده می‌شد.
۳- اعداد موجود در ردیف بالایی صفحه کلید اعداد فارسی واقعی (و نه انگلیسی و نه عربی) را وارد می‌کنند و کلیدهای عددی ماشین حسابی هم همان اعداد انگلیسی همیشگی را وارد می‌کنند. ممکن است خیلی از ویندوزها اعداد فارسی و انگلیسی را به ظاهر به یک شکل و آن هم به شکل فارسی نمایش دهند. این قضیه فقط ظاهری است و اصل اطلاعات به همان صورت نادرست انگلیسی ذخیره می‌شود. علت این رفتار ویندوز، وجود Regional Settings است.
۴- کاراکترهای ویژه کار با متون دو جهته که در الگوریتم شماره ۹ یونیکد معرفی شده است در این چیدمان موجود بوده و به خوبی پشتیبانی می‌شوند. این کاراکترها در صورتی که کاربران با نقش آنها آشنا باشند کاربرد فراوانی در حل مشکلات راست به چپ نویسی متون فارسی در محیط کامپیوتر و اینترنت دارند. مثلاً با کمک این سری کاراکترهای می‌توان در صفحات مطلقاً چپ به راست (انگلیسی)، به راحتی متون ترکیبی فارسی-انگلیسی را بدون هر گونه مشکل و درهم‌ریختگی وارد کرد.

خوشبختانه ماتصا ۹۱۴۷ در بیشتر لینوکس‌ها رعایت و پشتیبانی می‌شود. برای استفاده از این استاندارد در لینوکس به راهنماهای موجود مراجعه فرمایید. برای استفاده از این استاندارد در ویندوزهای مختلف از جمله ایکس‌پی، ویستا و ویندوز ۷ از درایور مخصوصی که از این آدرس قابل دریافت است استفاده نمایید.

مطالعه بیشتر:
۱- چیدمان استاندارد ۹۱۴۷ (عکس)
۲- ماتصا ۶۲۱۹ (سایت سازمان استاندارد)
۳- ماتصا ۶۲۱۹ (وبلاگ خودم)
۴- صفحه فارسی‌وب درباره استانداردهای دوقلوی ۶۲۱۹ و ۹۱۴۷
۵- درایور ۹۱۴۷ قابل نصب در همه ویندوزها از ایکس‌پی تا ویندوز ۷
۶- ابزارک فردیس که می‌تواند در تشخیص کد یونیکد کاراکترها مفید باشد
۷- بخش «استاندارد فارسی» در سایت iDevCenter