یکی از امکانات جالب پرنیان در فارسیسازی مایکروسافت پراجکت تصحیح نمایش راست به چپ است. در اغلب نرمافرارهای مجموعهی آفیس امکان تنظیم قابلبندی متن به صورت راست به چپ (RTL)
و یا چپ به راست (LTR)
پیشبینی شده است. این تنظیم بدان معنا است که آیا متن یک متن راست به چپ است یا بر عکس. این تنظیم به خصوص در نمایش متنهای مخلوط از دو زبان کاربرد دارد مثلا فارسی و لاتین. در این حالت متن ممکن است به زبان فارسی باشد که در آن کلمات لایتن هم بکار رفته و یا متن لاتین باشد که در آن کلمات فارسی هم بکار رفته باشد. برای مثال به دو متن زیر توجه کنید: کلمهی Book
در انگلیسی به معنای کتاب است. The word کتاب means book in Persian.
اولین عبارت به صور RTL
و دومی به شکل LTR
قالببندی شدهاند و به درستی نمایش داده میشوند. اگر این تنظیمها درست انتخاب نشوند به شکل اشتباهی نمایش داده خواهند شد: کلمهی Book در انگلیسی به معنای کتاب است.
The word
کتاب means book in Persian.
این موضوع اهمیت امکان تنظیم RTL
را میرساند. متاسفانه در مایکروسافت پراجکت این امکان وجود ندارد. یعنی جایی نیست که شما بتوانید از طریق آن جهت متنها را مشخص کنید. به همین خاطر مثلا در وارد کردن اسامی فعایتها در صورتیکه
این اسامی شامل کلمات لاتین باشند دچار مشکل میشوید. پرنیان این مشکل را حل میکند. برای اینکار پرنیان فرض میکند عباراتی که با حروف فارسی آغاز شدهاند RTL
و در غیر اینصورت LTR
هستند. این موضوع در شکل روبرو نمایش داده شده است. در اینجا نام فعالیتها بر حسب حرف اول متن به دو شکل RTL
و LTR
نمایش داده شدهاند. این امکان تاثیر دیگری هم دارد. از آنجاییکه متنهای بدو حروف مشخص، مانند اعداد به صورت RTL
نمایش داده میشوند. مواردی نظیرتاریخ هم با اعداد فارسی نمایش داده خواهند شد. امکان تصحیح رفتار راست به چپ مانند سایر امکانات پرنیان از طریق جعبه ابزار پرنیان قابل تنظیم است. شما میتوانید آنر از طریق انتخاب RTL Corrections
فعال یا غیر فعال کنید. جزئیات فنی
جزئیات فنی این موضوع به نحوهی نمایش متنها برمیگردد. نکتهی کلیدی آنست که روی حافظهی کامپیوتر متنها همیشه به صورت ترتیب حروف آن نگاهداری میشوند. برای مثال حرف "ک" در کلمهی "کتاب" به عنوان حرف اول درست مانند حرف "B
" در کلمهی "Book"
در خانهی اول حافظه و حروف بعدی به ترتیب بعد از آن قرار میگیرد. این به خاطر آن است که ارزش اطلاعاتی متن درست حفظ شود و بتوان عملیاتی نظیر مرتبسازی را به سادگی انجام داد. تنها به هنگام نمایش است که ترتیب نمایسی حروف مشخص میشود. در مورد کلمهی کتاب، حروف معکوس شده و اول حرف "ب" و در انتها حرف "ک" چاپ میشود. (چاپ را چپ به راست فرض کنید.) حتی مواردی نظیر حروف اول، وسط و آخر تنها به هنگام چاپ تعیین میشوند و به هنگام ذخیره سازی حرف همواره به شکل ساده (تنها) ذخیره میشوند. همهی اینکارها بر اساس الگوریتمهایی که در استانداردها یونیکد معرفی شدهاند صورت میگیرد. این الگوریتمها مشخص میکنند که حروف چگونه پردازش شده و نهایتا تبدیل به مجموعهای از گیلیفهای (Glyph)
قابل چاپ میشوند. انتخابهای RTL
و LTR
از ورودیهای این الگوریتمها هستند و تاثیر به سزایی در خروجی آن دارند. مایکروسافت پراجکت متنهای خود را با استفاده از تابع DrawText
ترسیم میکند. پرنیان این تابع را بازنویسی میکند و مطابق آنچه در شکل زیر نشان داده شده است، بر حسب نیاز از انتخاب DT_RTLREADING
استفاده میکند. ![](http://www.gnco.ir/wp-content/uploads/2018/10/071397_1457_MSP2.png)