متن دوسویه ( به انگلیسی: Bidirectional text ) به متنی گفته می شود که شامل هر دو جهت نگارش باشد، یعنی هم راست به چپ باشد و هم چپ به راست. چنین متنی معمولاً دارای گونه های مختلف الفبا است، اما ممکن است بوستروفیدن ( به انگلیسی: Boustrophedon ) نیز باشد.
برخی سامانه های نوشتاری جهان از جمله الفبای فارسی، خط عربی و الفبای عبری، به شکل راست به چپ نوشته می شوند که در آن ها نوشته ها در سمت راست صفحه ها آغاز می گردند و در سمت چپ پایان می یابند و از این جهت با اکثر زبان های جهان که چپ به راست هستند متفاوتند. هنگامی که متن راست به چپ با متن چپ به راست در یک بند ترکیب شوند ( مثلا یک متن فارسی با یک متن انگلیسی ) ، هر کدامشان با جهت خودشان نوشته خواهند شد که به چنین متنی متن دوسویه می گویند.
بسیاری از برنامه های رایانه ای نمی توانند متن دوسویه را به درستی نمایش دهند. برای نمونه، نام سارا در عبری ( שרה ) از راست به چپ به صورت شین ( ש ) رِش ( ר ) هه ( ה ) هجی می شود اما برخی مرورگرهای وب ممکن است این متن عبری را برعکس نمایش دهند.
پشتیبانی از متن دوسویه به توانایی یک برنامهٔ رایانه ای در نمایش درست متن دوسویه گفته می شود.
رایانه های نخستین تنها برای پشتیبانی از یک نوع خط طراحی شده بودند که معمولاً چپ به راست و تنها بر مبنای الفبای لاتین بود. افزودن کدبندی های نویسهٔ تازه، موجب شد برخی از خط های چپ به راست دیگر نیز پشتیبانی شوند، اما از نوشتارهای راست به چپ مانند فارسی یا عبری به این سادگی پشتیبانی نمی شد و ترکیب اینگونه نوشتارها عملی نبود. نوشتارهای راست به چپ نخستین بار در کدبندی هایی مانند ایزو/آی ئی سی ۸۸۵۹ - ۶ و ایزو/آی ئی سی ۸۸۵۹ - ۸ معرفی شدند که حروف را معمولاً به همان ترتیب خواندن و نوشتن ذخیره می کردند.
برعکس کردن ترتیب نمایش کاراکترهای چپ به راست که به راست به چپ شدن آن ها منجر می شود به سادگی امکان پذیر است، اما چنین کاری به قیمت ناتوانی در نمایش صحیح نوشتارهای چپ به راست ( لاتین ) تمام خواهد شد. با پشتیبانی از متن دوسویه، امکان ترکیب نوشتارهای گوناگون در یک صفحه، بدون توجه به سوی نوشتاریشان، فراهم آمده. به ویژه استاندارد یونیکد که مبانی پشتیبانی کامل از متن دوسویه را فراهم می آورد و قوانین مشخصی برای کدبندی و نمایش ترکیب نوشتارهای چپ به راست و راست به چپ دارد.
در کدبندی یونیکد، تمام نویسه ها به جز نشانه های سجاوندی، به ترتیبی که نوشته می شوند ذخیره می گردند. این یعنی سوی نوشتن نویسه ها در داخل خودشان ذخیره می شود. در چنین مواردی، نویسه را نویسهٔ قوی می گویند. با این حال، نشانه های سجاوندی ممکن است هم در نوشتارهای چپ به راست نمایان شوند و هم راست به چپ؛ به این نویسه ها، نویسه های ضعیف می گویند زیرا شامل هیچگونه اطلاعاتی در مورد جهت شان نیستند و تصمیم گیری در مورد جهت آن ها بر عهدهٔ نرم افزار خواهد بود. گاهی اوقات بر اثر اشتباه در الگوریتمی که برای تشخیص جهت نویسه های ضعیف به کار می رود، شاهد خطاهایی در نمایش هستیم. این الگوریتم ها جهت نویسه های ضعیف را با توجه به نویسه های قوی چپ به راست و راست به چپ تعیین می کنند. در این الگوریتم ها هر بخش از نویسه های به هم پیوستهٔ قوی را یک ران ( به انگلیسی: run ) می گویند. یک نویسهٔ ضعیف که بین دو نویسهٔ قوی هم سو جای بگیرد، جهت آن ها را به ارث خواهد برد. نویسهٔ ضعیفی که بین دو نویسهٔ قوی با سوهای متفاوت جای داشته باشد، سوی نوشتار اصلی را به ارث خواهد برد ( در یک سند راست به چپ، این نویسه راست به چپ خواهد شد و در یک سند چپ به راست، چپ به راست ) . اگر پس از یک نویسهٔ ضعیف، نویسهٔ ضعیف دیگری وجود داشته باشد، الگوریتم به دنبال نخستین نویسهٔ قوی همسایه خواهد گشت. این روند گاهی منجر به خطاهای ناخواسته در نمایش می شود. می توان با نویسه های شبه قوی جلوی چنین خطاهایی را گرفت. به این نویسه های شبه قوی در نویسه های کنترلی یونیکد، نشانه ( به انگلیسی: mark ) گفته می شود. از نشانه های U+200E ( نشانهٔ چپ به راست ) ( اچ تی ام ال: & #8206; & lrm; LRM ) یا U+200F ( نشانهٔ راست به چپ ) ( اچ تی ام ال: & #8207; & rlm; RLM ) می توان در کنار نویسهٔ ضعیف محصورشده استفاده کرد تا سوی نوشتاری آن ها را به ارث برد.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفبرخی سامانه های نوشتاری جهان از جمله الفبای فارسی، خط عربی و الفبای عبری، به شکل راست به چپ نوشته می شوند که در آن ها نوشته ها در سمت راست صفحه ها آغاز می گردند و در سمت چپ پایان می یابند و از این جهت با اکثر زبان های جهان که چپ به راست هستند متفاوتند. هنگامی که متن راست به چپ با متن چپ به راست در یک بند ترکیب شوند ( مثلا یک متن فارسی با یک متن انگلیسی ) ، هر کدامشان با جهت خودشان نوشته خواهند شد که به چنین متنی متن دوسویه می گویند.
بسیاری از برنامه های رایانه ای نمی توانند متن دوسویه را به درستی نمایش دهند. برای نمونه، نام سارا در عبری ( שרה ) از راست به چپ به صورت شین ( ש ) رِش ( ר ) هه ( ה ) هجی می شود اما برخی مرورگرهای وب ممکن است این متن عبری را برعکس نمایش دهند.
پشتیبانی از متن دوسویه به توانایی یک برنامهٔ رایانه ای در نمایش درست متن دوسویه گفته می شود.
رایانه های نخستین تنها برای پشتیبانی از یک نوع خط طراحی شده بودند که معمولاً چپ به راست و تنها بر مبنای الفبای لاتین بود. افزودن کدبندی های نویسهٔ تازه، موجب شد برخی از خط های چپ به راست دیگر نیز پشتیبانی شوند، اما از نوشتارهای راست به چپ مانند فارسی یا عبری به این سادگی پشتیبانی نمی شد و ترکیب اینگونه نوشتارها عملی نبود. نوشتارهای راست به چپ نخستین بار در کدبندی هایی مانند ایزو/آی ئی سی ۸۸۵۹ - ۶ و ایزو/آی ئی سی ۸۸۵۹ - ۸ معرفی شدند که حروف را معمولاً به همان ترتیب خواندن و نوشتن ذخیره می کردند.
برعکس کردن ترتیب نمایش کاراکترهای چپ به راست که به راست به چپ شدن آن ها منجر می شود به سادگی امکان پذیر است، اما چنین کاری به قیمت ناتوانی در نمایش صحیح نوشتارهای چپ به راست ( لاتین ) تمام خواهد شد. با پشتیبانی از متن دوسویه، امکان ترکیب نوشتارهای گوناگون در یک صفحه، بدون توجه به سوی نوشتاریشان، فراهم آمده. به ویژه استاندارد یونیکد که مبانی پشتیبانی کامل از متن دوسویه را فراهم می آورد و قوانین مشخصی برای کدبندی و نمایش ترکیب نوشتارهای چپ به راست و راست به چپ دارد.
در کدبندی یونیکد، تمام نویسه ها به جز نشانه های سجاوندی، به ترتیبی که نوشته می شوند ذخیره می گردند. این یعنی سوی نوشتن نویسه ها در داخل خودشان ذخیره می شود. در چنین مواردی، نویسه را نویسهٔ قوی می گویند. با این حال، نشانه های سجاوندی ممکن است هم در نوشتارهای چپ به راست نمایان شوند و هم راست به چپ؛ به این نویسه ها، نویسه های ضعیف می گویند زیرا شامل هیچگونه اطلاعاتی در مورد جهت شان نیستند و تصمیم گیری در مورد جهت آن ها بر عهدهٔ نرم افزار خواهد بود. گاهی اوقات بر اثر اشتباه در الگوریتمی که برای تشخیص جهت نویسه های ضعیف به کار می رود، شاهد خطاهایی در نمایش هستیم. این الگوریتم ها جهت نویسه های ضعیف را با توجه به نویسه های قوی چپ به راست و راست به چپ تعیین می کنند. در این الگوریتم ها هر بخش از نویسه های به هم پیوستهٔ قوی را یک ران ( به انگلیسی: run ) می گویند. یک نویسهٔ ضعیف که بین دو نویسهٔ قوی هم سو جای بگیرد، جهت آن ها را به ارث خواهد برد. نویسهٔ ضعیفی که بین دو نویسهٔ قوی با سوهای متفاوت جای داشته باشد، سوی نوشتار اصلی را به ارث خواهد برد ( در یک سند راست به چپ، این نویسه راست به چپ خواهد شد و در یک سند چپ به راست، چپ به راست ) . اگر پس از یک نویسهٔ ضعیف، نویسهٔ ضعیف دیگری وجود داشته باشد، الگوریتم به دنبال نخستین نویسهٔ قوی همسایه خواهد گشت. این روند گاهی منجر به خطاهای ناخواسته در نمایش می شود. می توان با نویسه های شبه قوی جلوی چنین خطاهایی را گرفت. به این نویسه های شبه قوی در نویسه های کنترلی یونیکد، نشانه ( به انگلیسی: mark ) گفته می شود. از نشانه های U+200E ( نشانهٔ چپ به راست ) ( اچ تی ام ال: & #8206; & lrm; LRM ) یا U+200F ( نشانهٔ راست به چپ ) ( اچ تی ام ال: & #8207; & rlm; RLM ) می توان در کنار نویسهٔ ضعیف محصورشده استفاده کرد تا سوی نوشتاری آن ها را به ارث برد.
wiki: متن دوسویه