دوسویه bidi
الگوریتم متن دوسویهی یونیکد: ترتیب درست نمایش وقتی فارسی و انگلیسی کنار هم میآیند.
واردسازی دوسویه
متن در حافظه به ترتیبی ذخیره میشود که تایپ شده، اما وقتی فارسی و انگلیسی کنار هم میآیند، ترتیبی که روی صفحه دیده میشود با آن فرق دارد. مرورگرها و ویرایشگرها این جابهجایی را با «الگوریتم دوسویهی یونیکد» انجام میدهند.
اگر خودتان متن را روی صفحهای رسم میکنید که این کار را انجام نمیدهد، مثلاً روی تصویر، در پایانه یا روی یک نمایشگر ساده، بستهی دوسویه همان الگوریتم را اجرا میکند و به شما میگوید هر نویسه کجا قرار میگیرد.
هر روال یک «جهت بند» میگیرد: جهت خودکار جهت را از نخستین حرف قوی متن حدس میزند، و دو جهت دیگر آن را از پیش تعیین میکنند. «تراز» هر نویسه یک عدد است: زوج یعنی چپ به راست و فرد یعنی راست به چپ.
پایاها و متغیرها
جهت خودکار DirAuto
پایا جهت خودکار: صحیح۳۲ = 0واردسازی دوسویه
روال ریشه:
م := "abc سلام"
سرچاپ دوسویه.تراز بند(م، دوسویه.جهت خودکار)، دوسویه.تراز بند("سلام abc"، دوسویه.جهت خودکار)
سرچاپ دوسویه.تراز بند(م، دوسویه.جهت راست به چپ)، دوسویه.تراز بند("سلام"، دوسویه.جهت چپ به راست)
سرچاپ دوسویه.ترازها(م، دوسویه.جهت چپ به راست)
سرچاپ دوسویه.ترتیب دیداری(م، دوسویه.جهت چپ به راست)
سرچاپ دوسویه.بازچینش(م، دوسویه.جهت چپ به راست)
پایانجهت چپ به راست DirLTR
پایا جهت چپ به راست: صحیح۳۲ = 1نمونهی این مورد همراه با موارد بالاتر آمده است: bidi-Reorder.salam
جهت راست به چپ DirRTL
پایا جهت راست به چپ: صحیح۳۲ = 2نمونهی این مورد همراه با موارد بالاتر آمده است: bidi-Reorder.salam
روالها
تراز بند ParagraphLevel
روال تراز بند(s: رشته، dir: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: bidi-Reorder.salam
ترازها Levels
روال ترازها(s: رشته، dir: صحیح): وکتور<صحیح>نمونهی این مورد همراه با موارد بالاتر آمده است: bidi-Reorder.salam
ترتیب دیداری VisualOrder
روال ترتیب دیداری(s: رشته، dir: صحیح): وکتور<صحیح>i، شمارهی نویسهای است که در جای i دیده میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: bidi-Reorder.salam
بازچینش Reorder
روال بازچینش(s: رشته، dir: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: bidi-Reorder.salam