稳定字符,如“,`{}`和“
当语言布局改为从右到左的语言时; 在一些标准编辑位置(例如Google Chrome的地址栏),只需更改语言布局,就可以使用<
, {
和[
自动变为>
, }
和}
等字符。
有没有办法防止这种情况并使这些字符稳定?
我第一次没有明白你的意思,因为我对此很熟悉。 如果可以期待结果,我认为没关系。
该行为是Unicode双向算法的标准。 因此,主要的BiDi方向取自该段中的第一个强者角色。
-
所以我认为在这种情况下会发生这种情况:
-
带有空文本框的第一个方向取自语言环境/语言配置。 正如你所说,阿拉伯语是一种RTL语言。 所以光标在右边。
-
输入
<
但显示为>
。 它是一个中性炭,所以没有影响方向。 为什么要翻转? 简短的回答:Unicode标准,:)无论如何都接受。 好吧它的名字是Less-than sign ,所以......在RTL /阿拉伯语中,公式从右侧开始,它应该被翻转。 你觉得怎么样......不是吗?!!! -
输入拉丁字符
g
。 它是一个强大的L (左)字符,因此该段被检测为LTR。 -
退格键删除
g
。 但请注意光标所在的位置。
现在,示例
[
,它被错误地命名为左方括号 。 它应该是一些像开放方括号 (它是BiDi中性和RTL翻转) -
所有开发人员都试图遵循标准。 所以现在他们将强制文本框为RTL或LTR,Auto对大多数用户来说是最好的。
-
所以对你而言,我能提供的最好的事情是使用Unicode BiDi Control Char。
U+200F right-to-left mark (RLM)
-
在空地址栏中, 按Ctrl + Shift + u ,小下划线
u
显示,输入200f
然后输入 -
请参阅
<
没有翻转为LTR。
Ctrl + Shift + u特定于GTK / Gnome。 KDE错过了这样的选项,似乎没有修复,因为这个错误报告提到了KDE / Qt / Xorg之间的冲突需要在Kubuntu中插入任意Unicode字符的方法 。
-
-
因为它只是几个字符的问题,您可以重新映射不需要的键或映射未使用的键。 例如,我正在使用美国英语(国际AltGr死键)
-
打开其
xkb
布局文件进行编辑:sudo nano /usr/share/X11/xkb/symbols/us
-
查找具有相同名称的组定义:
xkb_symbols "altgr-intl" { name[Group1]= "English (international AltGr dead keys)";
-
让我们看一下
r
(易记)的例子: AltGr + r →RLM, Shift + AltGr + r →LRM。 而不是ë
&Ë
。 更换:key
{ [ r, R, ediaeresis, Ediaeresis ] }; 附:
key
{ [ r, R, U200F, U200E ] }; -
更新xkb
sudo dpkg-reconfigure xkb-data
-
切换到另一个布局然后返回,它将立即激活。
笔记:
-
如果您希望能够在两种布局中使用它,请使用相同的方法将它们添加到阿拉伯语布局中。
-
您可以使用
U+061C arabic letter mark (ALM)
代替RLM,因为您是阿拉伯语用户。 -
xkb
支持其他Unicode代码输入格式,0x100200f
eq。U200F
(即0x100
作为前缀) -
为了避免通过
xkb-data
更新覆盖修改后的键映射,最好是创建一个新的自定义XKB映射。 请参阅如何添加新的键盘布局(自定义键盘布局定义)或在ubuntu上创建新键盘布局所需的步骤是什么? -
可以添加所有其他Unicode控制字符。 某些应用程序已在多行输入文本框的弹出菜单中有一个选项。 Poedit示例:
-
很高兴阅读以进一步了解:
- 维基百科:双向文本
- 了解Unicode中的双向(BIDI)文本
参考文献:
- Unicode双向算法
-
如何输入键盘上没有的任何Unicode,请参阅匈牙利版面上无法键入“ć”
-
Howto:自定义键盘布局定义
- 维基百科:Unicode输入
- 重新配置键盘布局 - 13.10,14.04
- Wikibooks:FOSS本地化/附件B:技术方面 (参考号为
0x100
前缀)