Ổn định các ký tự như `<>`, `{}` và `[]`


8

Khi bố cục ngôn ngữ được thay đổi sang ngôn ngữ từ phải sang trái; ở một số nơi chỉnh sửa tiêu chuẩn (ví dụ như thanh địa chỉ của Google Chrome), nhân vật thích <, {[tự động trở thành >, }]chỉ bằng cách thay đổi cách bố trí ngôn ngữ.

Có cách nào để ngăn chặn điều này và làm cho các nhân vật này ổn định?


Bạn có thể thêm một showcase với ảnh chụp màn hình.
user.dz

1
@Sneetsher: cần một bộ phim. thêm tiếng Ả Rập vào các ngôn ngữ trong thanh địa chỉ Chromium, gõ charater <alone. Sau đó thay đổi bố cục sang tiếng Anh.
nano - hợp nhất tôi

Câu trả lời:


8

Tôi đã không hiểu ý bạn lần đầu tiên vì tôi đã quen với điều đó. Tôi nghĩ rằng nó sẽ ổn, nếu bạn có thể mong đợi kết quả.

Hành vi đó là một tiêu chuẩn từ Thuật toán hai chiều Unicode . Vì vậy, hướng BiDi chiếm ưu thế được lấy từ nhân vật mạnh đầu tiên trong đoạn văn.

  • Vì vậy, những gì tôi nghĩ rằng nó xảy ra trong trường hợp này:

    1. Hướng đầu tiên với hộp văn bản trống được lấy từ cấu hình ngôn ngữ / ngôn ngữ. Như bạn đã nói tiếng Ả Rập là một ngôn ngữ RTL. Vì vậy, con trỏ bên phải.

      hộp văn bản trống ban đầu, hướng RTL

    2. Đầu vào <nhưng nó cho thấy như >. Nó là một char trung tính nên không ảnh hưởng đến hướng. Tại sao nó bị lật? Câu trả lời ngắn: Chuẩn Unicode, :) chấp nhận điều đó. Chà, tên của nó là Ít hơn dấu , vì vậy ... Trong RTL / tiếng Ả Rập, công thức bắt đầu từ phía bên phải, nên được lật. Bạn nghĩ gì ... không? !!!

      hộp văn bản với ký tự trung tính

    3. Nhập một ký tự Latin g. Đó là một char L (trái) mạnh mẽ , vì vậy đoạn này được phát hiện là LTR.

      hộp văn bản với ký tự bên trái mạnh mẽ

    4. Xóa lùi để xóa g. Nhưng chú ý nơi con trỏ.

      hộp văn bản với ký tự trung tính thầu sau khi loại bỏ một ký tự bên trái mạnh

    Bây giờ, ví dụ [, nó đã được đặt tên sai Dấu ngoặc vuông . Nó phải là một số thứ như khung hình vuông mở (Đó là BiDi trung tính và được lật trong RTL)

Tất cả các nhà phát triển cố gắng làm theo tiêu chuẩn. Vì vậy, ngày nay họ sẽ buộc hộp văn bản là RTL hoặc LTR, Auto là tốt nhất cho hầu hết người dùng.

  • Vì vậy, đối với bạn, điều tốt nhất tôi có thể cung cấp là sử dụng Unicode BiDi Control Char's.

    U+200F right-to-left mark (RLM)
    
    1. Trong thanh địa chỉ trống, Ctrl+ Shift+ u, phần gạch chân nhỏ uhiển thị, nhập 200frồiEnter

      Đầu vào Unicode GTK / Gnome

    2. Xem <đã không lật như LTR.

      GTK / Gnome lực hướng RTL

    Ctrl+ Shift+ ulà GTK / Gnome cụ thể. KDE bỏ lỡ tùy chọn như vậy và dường như chưa được sửa, vì báo cáo lỗi này đề cập đến xung đột giữa KDE / Qt / Xorg Cần cách chèn các ký tự Unicode tùy ý trong Kubfox .

  • Vì đó chỉ là vấn đề của một vài ký tự, bạn có thể sắp xếp lại các phím không cần thiết hoặc ánh xạ các phím không sử dụng. Ví dụ: tôi đang sử dụng tiếng Anh Mỹ (khóa chết AltGr quốc tế)

    1. Mở xkbtệp bố cục của nó để chỉnh sửa:

      sudo nano /usr/share/X11/xkb/symbols/us
      
    2. Tìm định nghĩa nhóm có cùng tên:

      xkb_symbols "altgr-intl" {
      
          name[Group1]= "English (international AltGr dead keys)";
      
    3. Hãy xem ví dụ cho r(dễ nhớ) ,: AltGr+ r→ RLM, Shift+ AltGr+ r→ LRM. Thay vì ë& Ë. Thay thế:

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

      Với:

      key <AD04> { [        r, R,           U200F,        U200E           ] };
      
    4. Cập nhật xkb

      sudo dpkg-reconfigure xkb-data
      
    5. Chuyển sang bố cục khác sau đó quay lại, nó sẽ được kích hoạt ngay lập tức.

    Ghi chú:

    • Sử dụng cùng một phương pháp để thêm chúng vào bố cục tiếng Ả Rập, nếu bạn muốn có thể sử dụng nó từ cả hai bố cục.

    • Bạn có thể sử dụng U+061C ؜ ‭arabic letter mark (ALM)thay vì RLM vì bạn là người dùng Ả Rập.

    • xkbhỗ trợ định dạng nhập mã Unicode khác, 0x100200feq. U200F(tức 0x100là tiền tố)

    • Để tránh ghi đè lên bản đồ khóa đã sửa đổi bằng các xkb-databản cập nhật, cách tốt nhất là tạo bản đồ XKB tùy chỉnh mới. Xem Cách thêm bố cục bàn phím mới (Định nghĩa bố cục bàn phím tùy chỉnh) hoặc Các bước cần thiết để tạo bố cục bàn phím mới trên ubfox là gì?

    • Có thể thêm tất cả các ký tự điều khiển Unicode khác. Một số ứng dụng đã có một tùy chọn trong Menu Popup của Hộp văn bản nhập nhiều dòng. Ví dụ Poedit:

      poedit, menu ký tự điều khiển thầu

Rất vui để đọc để hiểu thêm:

Người giới thiệu:


cảm ơn. đối với tôi ctrl + shift + u không hoạt động trong KDE. có lẽ đó là sự thống nhất hoặc gnome cụ thể. Thật tuyệt vời nếu một số ký tự, ví dụ ', [] {}' có thể từ chối các phương pháp điều trị cụ thể theo hướng (và luôn được xem là ltr), để chúng tương thích hơn với các ký hiệu bàn phím và ít gây nhầm lẫn hơn.
nano - hợp nhất tôi

1
Bạn đã đúng, Dường như không được sửa trong KDE, vì báo cáo lỗi này đề cập đến xung đột giữa KDE / Qt / Xorg Cần cách chèn các ký tự unicode tùy ý trong Kubfox . Tôi sẽ tìm kiếm nếu có bất kỳ cách giải quyết.
user.dz

@MinimusHeximus, tôi đã cập nhật câu trả lời của mình với cách giải quyết đầu vào Unicode bằng xkb. Tôi chỉ có Gnome / Unity. Xin vui lòng, cho tôi biết nếu nó không hoạt động trong KDE.
user.dz

1
Có vẻ như tôi phải sử dụng một cái gì đó như 0x100200Fthay vào đó, tôi không biết nếu nó giống như U200F.
nano - hợp nhất tôi

1
@MinimusHeximus, vâng, nó giống nhau " (Trên thực tế, đây có thể là một cách hiệu quả hơn để thêm các từ khóa mới.) Giá trị Unicode phải được thêm tiền tố vào" 0x100 "để mô tả các từ khóa cho một ký tự. ", Ref: Wikibooks: FOSS Localization / Phụ lục B: Các khía cạnh kỹ thuật . Cảm ơn bạn tôi đã học được những điều mới từ bạn.
user.dz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.