ตัวอักษรที่ทำให้เสถียรเช่น `<>`, `{} 'และ` []'


8

เมื่อรูปแบบภาษาเปลี่ยนเป็นภาษาจากขวาไปซ้าย ในบางสถานที่การแก้ไขมาตรฐาน (เช่นแถบที่อยู่ของ Google Chrome) ตัวอักษรเช่น<, {และ[โดยอัตโนมัติกลายเป็น>, }และ]เพียงแค่รูปแบบภาษามีการเปลี่ยนแปลง

มีวิธีป้องกันหรือไม่และทำให้ตัวละครเหล่านี้มีความเสถียรหรือไม่?


คุณช่วยเพิ่มตู้โชว์ด้วยสกรีนช็อตได้ไหม
user.dz

1
@Sneetsher: ต้องการฟิล์ม เพิ่มภาษาอารบิกให้กับภาษาในแถบที่อยู่ของ Chromium พิมพ์อักขระ charater <เพียงอย่างเดียว จากนั้นเปลี่ยนเค้าโครงเป็นภาษาอังกฤษ
นาโน - รวมฉันเข้ากับ

คำตอบ:


8

ฉันไม่ได้สิ่งที่คุณหมายถึงเป็นครั้งแรกเพราะฉันคุ้นเคยกับสิ่งนั้น ฉันคิดว่ามันจะโอเคถ้าคุณคาดหวังผลลัพธ์

ว่าพฤติกรรมเป็นมาตรฐานจากUnicode สองทิศทางอัลกอริทึม ดังนั้นทิศทาง BiDi ที่โดดเด่นจึงถูกนำมาจากตัวละครที่แข็งแกร่งเป็นอันดับแรกในย่อหน้า

  • ดังนั้นสิ่งที่ฉันคิดว่ามันเกิดขึ้นในกรณีนี้:

    1. ทิศทางแรกพร้อมช่องข้อความว่างถูกนำมาจากการกำหนดค่าภาษา / ภาษา อย่างที่คุณพูดภาษาอารบิกเป็นภาษา RTL เคอร์เซอร์ทางด้านขวา

      กล่องข้อความเปล่าเริ่มต้นทิศทาง RTL

    2. ขาเข้าแต่มันก็แสดงให้เห็นว่าเป็น< >มันเป็นถ่านที่เป็นกลางจึงไม่มีผลกับทิศทาง ทำไมมันพลิก? คำตอบสั้น ๆ : มาตรฐาน Unicode, :) ยอมรับต่อไป ชื่อของมันคือเครื่องหมายน้อยกว่าดังนั้น ... ใน RTL / อารบิกการเริ่มต้นของสูตรจากด้านขวามันควรจะพลิก คุณคิดว่าอะไร ... ไม่? !!!

      กล่องข้อความที่มีตัวอักษรเป็นกลาง bidi

    3. gใส่ถ่านละติน มันเป็นถ่านL (ซ้าย) ที่แข็งแกร่งดังนั้นตรวจจับย่อหน้านี้เป็น LTR

      กล่องข้อความที่มีตัวละครด้านซ้ายที่แข็งแกร่ง

    4. Backspace gลบ แต่สังเกตุตำแหน่งของเคอร์เซอร์

      กล่องข้อความที่มีอักขระเป็นกลาง bidi หลังจากลบอักขระซ้ายที่แข็งแกร่ง

    ตอนนี้ตัวอย่างเช่น[มันเป็นชื่อผิดซ้ายวงเล็บเหลี่ยม มันควรจะมีบางอย่างเช่นOpen square bracket (เป็น BiDi ที่เป็นกลางและพลิกเป็น RTL)

นักพัฒนาทั้งหมดพยายามปฏิบัติตามมาตรฐาน ดังนั้นตอนนี้พวกเขาจะบังคับให้กล่องข้อความเป็น RTL หรือ LTR อัตโนมัติเป็นสิ่งที่ดีที่สุดสำหรับผู้ใช้ส่วนใหญ่

  • ดังนั้นสำหรับคุณสิ่งที่ดีที่สุดที่ฉันสามารถนำเสนอคือใช้ Unicode BiDi Control Char's

    U+200F right-to-left mark (RLM)
    
    1. ในแถบที่อยู่ที่ว่างเปล่าCtrl+ Shift+ u, ขีดเส้นใต้เล็ก ๆuให้แสดงขึ้นมา200fแล้วใส่Enter

      อินพุต GTK / Gnome Unicode

    2. ดู<ไม่พลิกเป็น LTR

      ทิศทาง RTL ของ GTK / Gnome

    Ctrl+ Shift+ uเป็น GTK / Gnome เฉพาะ พลาดท่าของ KDE สำหรับตัวเลือกดังกล่าวและดูเหมือนว่าจะไม่ได้รับการแก้ไขตามที่รายงานข้อผิดพลาดนี้พูดถึงความขัดแย้งระหว่าง KDE / Qt / Xorg วิธีที่ต้องใส่ตัวอักษร Unicode พลการใน Kubuntu

  • เนื่องจากเป็นเพียงไม่กี่ตัวอักษรคุณสามารถทำการแมปคีย์ที่ไม่ต้องการหรือแมปที่ไม่ได้ใช้ ตัวอย่างเช่นฉันใช้US English (แป้นกด AltGr ระหว่างประเทศ)

    1. เปิดxkbไฟล์เลย์เอาต์เพื่อแก้ไข:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. ค้นหานิยามกลุ่มที่มีชื่อเดียวกัน:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. ลองดูตัวอย่างสำหรับr(จำได้ง่าย), AltGr+ + r→ RLM, Shift+ AltGr+ r→ LRM แทนที่จะ&ë Ëแทนที่:

      key <AD04> { [        r, R,           ediaeresis,   Ediaeresis      ] };
      

      ด้วย:

      key <AD04> { [        r, R,           U200F,        U200E           ] };
      
    4. อัปเดต xkb

      sudo dpkg-reconfigure xkb-data
      
    5. เปลี่ยนเป็นเค้าโครงอื่นแล้วย้อนกลับมาจะทำงานทันที

    หมายเหตุ:

ดีใจที่ได้อ่านเพื่อความเข้าใจเพิ่มเติม:

อ้างอิง:


ขอบคุณ สำหรับฉัน ctrl + shift + u ไม่ทำงานใน KDE อาจเป็นเอกภาพหรือคำพังเพยที่เฉพาะเจาะจง มันน่าอัศจรรย์หากตัวละครบางตัวเช่น ', [] {}' สามารถเลือกที่จะไม่รับการรักษาเฉพาะทางได้ (และจะถูกปรับเป็น ltr เสมอ) เพื่อให้เข้ากันได้กับสัญลักษณ์บนแป้นพิมพ์และสับสนน้อยกว่า
นาโน - รวมฉันเข้ากับ

1
คุณมีสิทธิมันดูเหมือนจะไม่ได้รับการแก้ไขใน KDE เป็นรายงานข้อผิดพลาดนี้พูดถึงความขัดแย้งระหว่าง KDE / Qt / Xorg วิธีที่ต้องใส่ตัวอักษร Unicode พลการใน Kubuntu ฉันจะค้นหาว่ามีวิธีแก้ปัญหาหรือไม่
user.dz

@MinimusHeximus ฉันอัปเดตคำตอบด้วย Unicode อินพุตวิธีแก้ไขโดยใช้ xkb ฉันมีเพียง Gnome / Unity กรุณาแจ้งให้เราทราบหากมันไม่ทำงานใน KDE
user.dz

1
ดูเหมือนว่าฉันต้องใช้บางสิ่งบางอย่าง0x100200Fแทนฉันไม่รู้ว่ามันเหมือนกันU200Fหรือไม่
นาโน - รวมฉันเข้ากับ

1
@MinimusHeximus ใช่มันเหมือนกัน " (อันที่จริงนี่อาจเป็นวิธีที่มีประสิทธิภาพมากกว่าสำหรับการเพิ่ม keysyms ใหม่) ค่า Unicode จะต้องนำหน้าด้วย" 0x100 "เพื่ออธิบาย keysym สำหรับอักขระเดียว ", Ref: วิกิพีเดีย: FOSS Localization / ภาคผนวก B: ด้านเทคนิค ขอบคุณฉันเรียนรู้สิ่งใหม่จากคุณ
user.dz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.