稳定字符,如<<>`,`{}`和`[]`


8

语言布局从右到左更改为语言时;在一些标准的编辑场所(如谷歌浏览器的地址栏),人物像<{[自动成为>}]只是通过改变语言布局。

有没有办法防止这种情况并使这些字符稳定?


您可以添加带屏幕截图的展示柜吗?
user.dz 2014年

1
@Sneetsher:需要一部电影。在Chromium地址栏中为语言添加阿拉伯语,请单独输入字符<。然后将布局更改为英语。
nano-将我合并

Answers:


8

我第一次没有明白你的意思,因为我对此很熟悉。如果可以预期的结果,我认为可以。

该行为是Unicode双向算法的标准。因此,主要的BiDi方向是从该段落中的第一个强角色得出的。

  • 所以我认为在这种情况下会发生什么:

    1. 文本框为空的第一个方向来自语言环境/语言配置。如您所说,阿拉伯语是RTL语言。因此,将光标放在右侧。

      初始空白文本框,RTL方向

    2. 输入,<但显示为>。它是中性字符,因此不会影响方向。为什么它被翻转?简短的答案:Unicode标准,:)仍然接受。好吧,它的名称是小于号,因此...在RTL /阿拉伯语中,公式从右侧开始,应该翻转。您怎么看……不?!

      具有比迪中性字符的文本框

    3. 输入拉丁字符g。这是一个很强的L(左)字符,因此该段被检测为LTR。

      具有强左字符的文本框

    4. 退格键删除g。但是请注意光标所在的位置。

      移除强左字符后,带有比迪中性字符的文本框

    现在,例如[,它被错误地命名为Left方括号。应该是像方括号这样的东西(BiDi是中性的,在RTL中是翻转的)

所有开发人员都尝试遵循标准。因此,无论如何,它们都将强制文本框为RTL或LTR,对于大多数用户而言,“自动”是最好的。

  • 因此,对您来说,我能提供的最好的方法是使用Unicode BiDi Control Char。

    U+200F right-to-left mark (RLM)
    
    1. 在空白的地址栏中,Ctrl+ Shift+ u,出现带下划线的小框,然后u输入200fEnter

      GTK / Gnome Unicode输入

    2. 看到<没有翻转为LTR。

      GTK / Gnome强制RTL方向

    Ctrl+ Shift+ u是特定于GTK / Gnome的。KDE错过了这种选项,而且似乎没有得到解决,因为此错误报告提到了KDE / Qt / Xorg Need在Kubuntu中插入任意Unicode字符之间的冲突。

  • 由于只是几个字符,您可以重新映射不需要的键或映射未使用的键。例如,我使用的是美国英语(国际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+ rLRM。代替ëË。更换:

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

      带有:

      key <AD04> { [        r, R,           U200F,        U200E           ] };
      
    4. 更新xkb

      sudo dpkg-reconfigure xkb-data
      
    5. 切换到另一个布局然后返回,它将立即处于活动状态。

    笔记:

    • 如果您希望能够从两种布局中使用它,请使用相同的方法将它们添加到阿拉伯布局中。

    • 如果U+061C ؜ ‭arabic letter mark (ALM)您是阿拉伯用户,则可以使用而不是RLM。

    • xkb支持其他Unicode码输入格式,0x100200fEQ。U200F(即0x100作为前缀)

    • 为了避免通过xkb-data更新覆盖修改后的键映射,最好的方法是创建一个新的自定义XKB映射。请参阅如何添加新的键盘布局(自定义键盘布局定义)在ubuntu上创建新的键盘布局需要什么步骤?

    • 可以添加所有其他Unicode控制字符。某些应用程序在多行输入文本框的弹出菜单中已经有一个选项。示例Poedit:

      poedit,bidi控制字符菜单

很高兴阅读以进一步了解:

参考文献:


谢谢。对我来说ctrl + shift + u在KDE中不起作用。可能是单位或侏儒特定的。如果某些字符(例如',[] {}')可以退出特定于方向的处理(并且始终将其重新分类为ltr),以使它们与键盘符号更兼容并且减少混乱,那真是太棒了。
nano-将我合并

1
没错,这似乎并未在KDE中修复,因为此错误报告提到了KDE / Qt / Xorg之间的冲突。需要在Kubuntu中插入任意unicode字符的方法。我将搜索是否有任何解决方法。
user.dz 2014年

@MinimusHeximus,我使用xkb使用Unicode输入解决方法更新了答案。我只有侏儒/团结。请让我知道它是否在KDE中不起作用。
user.dz 2014年

1
似乎我必须改用类似的方法0x100200F,但我不知道它是否与相同U200F
合并我

1
@MinimusHeximus,是的,它是相同的“ (事实上,这可能是增加新的键符更有效的方式。)的Unicode值必须以前缀‘为0x100’来形容键符单个字符。参”:Wikibooks:FOSS本地化/附录B:技术方面。谢谢,我从您那里学到了新东西。
user.dz 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.