راست-به-چپ نویسی برای همیشه!

آیا درج کاراکترهای LTRM و RTLM برای نوشتن هر متنی در دو جهت (راست به چپ و چپ به راست) کافی است؟

– خیر! برای یادگیری دو کاراکتر جدید یونیکد آماده هستین؟
این دو کاراکتر را مدیون دوست خوبمون آقای «سجاد احمدی» هستیم که مسئله‌ی «زیرنویس‌ها» را مطرح کرد:

خب یک سوال.
برای زیرنویس فیلم‌ها که به فرمت معمول ‏srt هستن، معمولا کل خط چپ به راست در نظر گرفته میشه.
اگه واژه انگلیسی میان جمله بیاد نوشته به هم می‌ریزه مثلا:
اینجا KLKB است.ما به کمک احتیاج داریم
ولی اونچه که موقع پخش نشان داده میشه اینه:
است.ما به کمک احتیاج داریم ‏KLKB اینجا
در واقع تمام واژه های فارسی بعد از واژه انگلیسی اول میاد بعد واژه انگلیسی میاد و بعد واژه های فارسی قبل از انگلیسی.این به تعداد واژه های انگلیسی داخل جمله تعمیم هم پیدا می کنه.
چه راه حلی برای این مشکل پیشنهاد می‌کنی؟

در متون زیرنویس متن به صورت پیش‌فرض چپ به راست در نظر گرفته می‌شود و همین باعث بروز این مشکل است؛ راه حل این مشکل در دو کاراکتر LRE و RLE نهفته است:

اول اینکه این متون می‌بایست با انکدینگ unicode ذخیره شوند، در غیر اینصورت تلاشتان بی‌فایده خواهد بود. در مرحله‌ی بعد، می‌بایست پیش از شروع جمله کاراکتر Right-to-Left Embedding درج شود و سپس شروع به نوشتن جمله‌ نمایید. این روش در اکثر پخش کننده‌های ویدیویی بدون اشکال نمایش داده می‌شود.

right-to-left subtitle shows correctly with unicode encoding and rle character in the beginning
right-to-left subtitle

سوال: چطور کاراکتر Right-to-Left Embedding  و Left-to-Right Embedding را درج کنیم؟

 کاراکتر در صفحه کلید استاندارد فارسی  در صفحه کلید ویندوز
 Left-to-Right Embedding ‪ alt + [  ؟؟
 Right-to-Left Embedding ‪ alt + ]  ؟؟

*‌ توجه دارین که این کلید‌ها در صفحه کلید فارسی استاندارد (لینوکس) عمل خواهند کرد.
** منظور از alt کلید alt سمت راست صفحه کلید است. (درود بر شاهین آزاد به خاطر تذکر این مطلب)
*** متاسفانه هنوز کلید‌های معادل این کاراکترها را در صفحه‌ کلید ویندوز پیدا نکرده‌ام.

این کاراکترها چند جای دیگر هم به کار می‌آیند:

  • در فروم‌ها یا کادرهای متنی‌ای که امکان راست به چپ نویسی در آن‌ها وجود ندارد (مثل فروم kmplayer)
  • در کلاینت‌های twitter و Identica یا کلاینت‌های IRC و…

فراموش نکنید با تمرین و تجربه نحوه‌ی درج این کاراکترها را یاد بگیرید تا قدرت فارسی نویسی‌مان را باز هم بهبود داده باشیم.

کاربر ویندوز! نرم افزار صفحه کلید استاندارد فارسی حاصل تلاش احسان اخگری منتظر دانلود شماست 😉

ویدیو آموزش درج کاراکترهای LTR و RTL

در پست قبل راجه به نحوه‌ی درج چند کاراکتر مفید مطلبی مطرح کردم، عده‌ای از دوستان (که همیشه به من و به این وبلاگ لطف داشتند و دارند) به من اطلاع دادند که ظاهرا توضیحات کافی نبوده است. به همین مناسبت تصمیم گرفتم در یک ویدیو نحوه‌ی درج کاراکترهای LTR و RTL را آموزش بدهم.
البته من تلاش کردم حجم این ویدیو بالا نرود تا کاربرانی که به اینترنت پرسرعت دسترسی ندارند، به زحمت نیافتند و این خود یکی از دلایلی بود که در این ویدیو به آموزش درج سایر کاراکترها نپرداختم. حجم این ویدیو حدود ۴.۷ مگابایت شده است. امیدوارم که مفید واقع شود.

حجم ویدیو: ۴٫۷MB

insert LTR and LRTL characters

"1222" مرتبه دانلود شده

چند کاراکتر برای بهبود فارسی‌ نویسی در لینوکس و ویندوز

مواردی که قصد دارم مطرح کنم به شما کاربر فارسی‌ زبان کمک می‌کند؛ البته نه اینکه دردسر کمتری با تایپ متون ترکیبی فارسی-انگلیسی داشته باشید، ولی نتیجه‌ی کارتان شکیل‌تر و خواننده‌ پسند‌تر خواهد بود. ترفند‌های مورد نظر من شامل این موارد می‌شود:

  • درج نیم‌فاصله
  • درج کاراکتر left to right mark
  • درج کاراکتر right to left mark
  • درج کاراکتر کشیــــــــده یا (همان تطویل)

توجه: درج کارکترهای نیم فاصله، ltr mark و rtl mark بدون نصب هیچ نرم افزار اضافه‌ای بر روی سیستم شما چه ویندوز باشد چه لینوکس، امکان‌پذیر است. 🙂

نیم‌فاصله: از نظر ماهیتی، جزئی از زبان فارسی است. به کلماتی مثل «می‌شود»، «دست‌های نقره‌ای» و «فارسی‌نویسی» توجه کنید. بین «می‌» و «شود» یک نیم‌فاصله وجود دارد، همچنین بین «دست» و «های» و «نقره» و «ای».

این دو نوشته را مقایسه کنید:

«اصل مزیت نیم‌فاصله این است که خوانایی متن را بالا می‌برد. عموما کاربران نمی‌دانند استفاده از نیم‌فاصله چقدر می تواند خواندن متن را آسان کند.»

«اصل مزیت نیم‌فاصله این است که خوانایی متن را بالا می‌برد. عموما کاربران نمی‌دانند استفاده از نیم‌فاصله چقدر می‌تواند خواندن متن را آسان کند.»

به انتهای خطوط توجه کردید؟ «می‌شود» یک کلمه است، به همین دلیل نمی‌بایست از یک کاراکتر فاصله برای جدا کردن دو بخش آن کلمه استفاده شود. در واقع فاصله برای جدا کردن کلمات استفاده می‌شود. در این موارد می‌بایست از «نیم‌فاصله» کمک بگیریم.

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

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

این کشور USA (united states of america) نام داشت که می‌بایست USA (united states of america)‎ تایپ می‌شد.

یا new? در حالیکه new?‎ مد نظرتان بوده است.

این نوشته‌ها به خاطر درج نشدن کاراکتر Left to Right Mark که یک کاراکتر در استاندارد یونیکد است به این روز افتاده‌اند. این کاراکتر در واقع به مفسر متن اعلام می‌کند که آنچه تایپ شده می‌بایست به صورت چپ-به-راست نمایش داده شود.

و کاراکتر دیگری نیز وجود دارد که خواهر همین کاراکتر است: Right to Left Mark، این کاراکتر به مفسر متن می‌گوید آنچه تایپ شده می‌بایست به صورت راست-به-چپ نمایش داده شود.

این کاراکتر به جملاتی مثل this، that و the other کمک می‌کند و آن‌ها را به شکل this،‏ that و the other نمایش می‌دهد.

گاهی ممکن است بخواهید کلمه‌ای را به صورت طـــــــولانــــــــــــــــــــــــــی  بنویسید. کارکتر «کشیده» در صورتی که به طور صحیح استفاده شود، می‌تواند به خواناتر شدن متن نیز کمک کند.

اما چطور این کاراکترها را درج کنیم؟  با کمک جدول زیر کلید‌های مناسب را پیدا کنید:

کاراکتر/  سیستم عامل در ویندوز در لینوکس
نیم‌فاصله ctrl + shift + 2 shift + space
Left to Right Mark ctrl + shift + 3 alt + (‎
Right to Left Mark ctrl + shift + 4 alt + )‎
کشیده (تطویل) shift + j shift + -‎

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

هشدار۲: منظور از alt در اینجا دکمه alt سمت راست صفحه کلید است. (با تشکر از دوست خوبم، شاهین آزاد که این مطلب را تذکر دادن)

در ابتدا استفاده از این کاراکترها آسان به نظر نمی‌رسد، ولی با کمی تمرین و پشتکار به آن‌ها مسلط خواهید شد. وجود مهارت درج این کاراکترها به شما اجازه می‌دهد تا بتوانید در هر ویراستار متنی‌ (که از یونیکد پشتیبانی کند)، بدون نگرانی متن دلخواهتان را بنویسید. من با کمک این ابزارها می‌توانم از google docs استفاده کنم و هیچ مشکلی با libreOffice یا سایر بسته‌های اداری نداشته باشم.

در مورد کارکاکتر LTRM و RTLM در ویکی پدیا بیشتر بخوانید…

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

برای نوشتن این مقاله از این منابع نیز کمک گرفتم:

Free Online Unicode Character Map

Web Design Group

DecodeUnicode.org

پانوشت۱: کاربران ویندوز می‌توانند با نصب کردن نرم افزار صفحه کلید استاندارد فارسی که با تلاش آقای احسان اخگری نوشته شده است، از صفحه کلید استاندارد فارسی استفاده کرده و کاراکترها را مشابه آنچه در لینوکس وجود دارد درج نمایند؛ با تشکر از دوست خوبم آقای علی موسوی بخاطر معرفی این لینک مفید.