自定义键盘变体(用于阿拉伯语音译)不起作用

用户名

我尝试在Ubuntu 18.04.1 LTS中设置自定义键盘布局,以便能够出于科学目的编写阿拉伯语音译(请参阅:https ://en.wikipedia.org/wiki/Romanization_of_Arabic https://en.wikipedia.org / wiki / DIN_31635)因此,我需要能够键入特殊字符。

我或多或少遵循了以下指示:

我做了什么:

  1. 当我说德语时,我使用gedit和root权限在/ usr / share / X11 / xkb / symbols /中打开了“ de”。

  2. 在此文件中,我在末尾插入了以下内容并进行了保存(之前是原始文件的备份):

    // Deutsch mit orientalistischer Umschrift
    partial alphanumeric_keys
    xkb_symbols "german_orient" {
    
        include "de(basic)"
    
        name[Group1]="Deutsch (Orientalistische Umschrift)";
    
        key <BKSL> { [numbersign, apostrophe, U+02BE,   dead_breve ]    };
        key <AE12>  { [dead_acute, dead_grave, U+02BF,  dead_ogonek ]   };
        key <AC11>  { [adiaeresis, Adiaeresis, U+0304, dead_caron ] };
        key <AB10>  { [minus, underscore, U+0331, emdash ] };
        key <AC10>  { [odiaeresis, Odiaeresis, U+0307, dead_belowdot ] };
        key <AB09>  { [period, colon, U+0323, division ] };
        key <AB08>  { [comma, semicolon, U+030C, multiply   ] };
        key <AC06>  { [h, H, U+032E, NoSymbol ] };
    };
    

    与此处列出的每个键的德语标准键盘布局相比,根据我的需要更改了第三项(=与AltGr一起按下键)。顺便说一句,我通过在互联网上查找特殊字符得到了Unicode代码。

  3. 然后我打开evdev.xml/usr/share/X11/xkb/rules/以同样的方式

  4. 在此文件中,我搜索了德语(de)布局条目,并在其末尾(意味着之前</layout>插入了以下内容并保存了该文件:

    <variant>
     <configItem>
     <name>german_orient</name>
     <description>Deutsch (Orientalistische Umschrift)</description>
     </configItem>
    </variant>
    
  5. 然后,我在终端中键入以下命令,然后按Enter键,sudo dpkg-reconfigure xkb-data因为在许多有关该主题的教程中都建议这样做

  6. 然后我重新启动。

  7. 然后,我在Ubuntu首选项中添加了新的键盘布局“ Deutsch(Orientalistische Umschrift)”(意思是:德语(东方音译))

结果不是我所希望的:

我不仅不能用分配的键来写特殊字符。我想我以某种方式“破坏”了“ de”键盘布局,因为无论我激活标准的德国布局还是通过super + space激活“ Deutsch(Orientalistische Umschrift)”布局,该系统似乎都已退回到默认的英语键盘布局。因此,即使激活了其中一种德语版式,我写的字母还是根据英语版式(例如,字母“ z”和“ y”已切换)。

因此,最后,我使用已经制作的两个文件的备份取消了更改,现在一切恢复正常。

但是由于我需要能够出于专业目的快速编写阿拉伯语音译,并且至少就我所知,没有可用于此目的的键盘布局可供下载(因为使用Linux的该领域的学者数量很少)我需要这里有人的帮助,告诉我要进行哪些更改才能使自定义键盘布局起作用。

我在Linux上仍然是菜鸟,如果错过了明显的事情,对不起。无论如何,在此先感谢您的帮助!

更新:我自己找到了一个解决方案

我自己找到了一个解决方案,因此我会将其发布在这里,因为其他人可能会从中受益

安装KeyboardLayoutEditor并编辑键盘布局文件

  1. 我从https://github.com/simos/keyboardlayouteditor下载并安装了KeyboardLayoutEditor

    • 当我尝试运行它时,我注意到缺少一些必须首先安装且未在要求中列出的软件包。
  2. 运行KeyboardLayoutEditor并加载合适的语言布局文件(以我为例)

    • 然后选择要编辑的变体(在我的情况下为“基本”,因为我认为添加自己的变体时可能会出错)
  3. 然后单击“开始Charakter Map”按钮,它将加载Gucharmap(我必须首先通过Ubuntu软件中心安装它才能正常工作)

  4. 现在,选择要添加到某个键的字符(您也可以通过输入Unicode代码在Gucharmap中搜索符号)

  5. 并将其拖放到KeyboardLayoutEditor中适当键的4个位置之一(有关最终代码,请参见下文)

    • 顺便说一句,我认为应用程序在这里犯了一些错误。因为将某些字符拖到某个键上,它并没有将正确的unicode代码写入去文件中,而是将相应的死键字符写了一些名称。(例如,它写的是“ dead_belowdot”而不是U0323,尽管我在Gucharmap中选择了后者,并将其拖到了上面。我想这是一个错误。
    • 结果是
      • 使用这些死键特殊字符,我必须先键入它们,然后再输入希望它们出现在上方或下方的字母。
      • 其他插入的具有正确unicode码的字符可以通过首先键入字母然后输入我想在上方或下方添加的特殊字符来键入。这是我习惯的行为,因此我尝试修复死键版本:
    • 我的解决方案是手动编辑去文件,将所有错误插入的死键版本替换为组合字符版本的正确unicode代码。现在,我可以输入字母,然后添加特殊字符。
  6. 插入所有字符后,您可以保存文件

    • 在我的情况下,KeyboardLayoutEditor不仅将更改保存到“ de-file”中的“ basic”变体中,还覆盖了整个“ de-file”,从而删除了所有其他变体
    • 尽管我认为我不需要其他我不喜欢的变体。因此,我将在de-File中编写的代码KeyboardLayoutEditor复制到了我的de_backup中,替换了其中的“ basic”部分,然后将de_backup保存为“ de”,从而替换了旧的“ de”。
    • 这次不必编辑evdev.xml,因为已经编辑了现有的变体,因此不必向文件中添加新的变体/布局。
  7. 然后我sudo dpkg-reconfigure xkb-data在控制台中使用了命令

  8. 终于我重新启动了

结果:Ethingthin现在就像魅力一样发挥作用!:)

一些想法

我不知道为什么这次通过使用KeyboardLayoutEditor起作用。

  1. 我的第一个猜测是,它起作用是因为我没有尝试向键盘布局文件(de)添加新的变体,而是编辑了现有的变体,从而避免了在编辑de-file和evdev-xml时可能出现的错误。

  2. 我的第二个猜测是它起作用,因为KeyboardLayout编辑器编写的Unicode代码与我第一次手动编辑去文件时的代码不同。

    • 例如,我插入的unicode代码如下所示:U + 02BE
    • 应用程序编写的unicode代码如下所示:U02BE
    • 也许通过省略“ +”,它起作用了吗?因为我是菜鸟,所以不知道。
    • 一些知识渊博的人可能会在下面的代码中看到一个不同的原因。

我在键盘布局文件中插入的有效代码(在我的情况下为de)

(这是最终版本,其中我已经手动纠正了应用程序所犯的错误)

//////////////////////////////////////////////////////////////////////////////    ///
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com    /p/keyboardlayouteditor
//

xkb_symbols "basic"
{
    name[Group1] = "German";
    include "latin(type4)"
    include "level3(ralt_switch)"
    include "kpdl(comma)"
key <AB01> { [              y,              Y, guillemotright,          U203A ] }; // y Y » › 
key <AB02> { [              x,              X,  guillemotleft,          U2039 ] }; // x X « ‹ 
key <AB04> { [              v,              V, doublelowquotemark, singlelowquotemark ] }; // v V „ ‚ 
key <AB05> { [              b,              B, leftdoublequotemark, leftsinglequotemark ] }; // b B “ ‘ 
key <AB06> { [              n,              N, rightdoublequotemark, rightsinglequotemark ] }; // n N ” ’ 
key <AB08> { [          comma,      semicolon,     U030C,       multiply ] }; // , ; Dˇ × 
key <AB09> { [         period,          colon,  U0323,       division ] }; // . : D? ÷ 
key <AB10> { [          minus,     underscore,          U0331,         emdash ] }; // - _ ̱ — 
key <AC02> { [              s,              S,          U017F,          U1E9E ] }; // s S ſ ẞ 
key <AC06> { [       h,       H,          U032E                 ] }; //   ̮ 
key <AC07> { [              j,              J,  dead_belowdot,  dead_abovedot ] }; // j J D? D˙ 
key <AC10> { [     odiaeresis,     Odiaeresis,  U0307,  dead_belowdot ] }; // ö Ö D˙ D? 
key <AC11> { [     adiaeresis,     Adiaeresis,    U0304,     dead_caron ] }; // ä Ä Dˉ Dˇ 
key <AD03> { [              e,              E,       EuroSign,       EuroSign ] }; // e E € € 
key <AD06> { [              z,              Z,      leftarrow,            yen ] }; // z Z ← ¥ 
key <AD11> { [     udiaeresis,       Udiaeresis, dead_diaeresis, dead_abovering ] }; // ü  D¨ D˚ 
key <AD12> { [           plus,       asterisk,     asciitilde,         macron ] }; // + * ~ ¯ 
key <AE02> { [           KP_2,       quotedbl,    twosuperior,      oneeighth ] }; // 2 " ² ⅛ 
key <AE03> { [           KP_3,        section,  threesuperior,       sterling ] }; // 3 § ³ £ 
key <AE04> { [           KP_4,         dollar,     onequarter,       currency ] }; // 4 $ ¼ ¤ 
key <AE11> { [         ssharp,       question,      backslash,   questiondown ] }; // ß ? \ ¿ 
key <AE12> { [     dead_acute,     dead_grave,          U02BF,    dead_ogonek ] }; // D´ D` ʿ D˛ 
key <BKSL> { [     numbersign,     apostrophe,          U02BE,     dead_breve ] }; // # ' ʾ D˘ 
key <LSGT> { [           less,        greater,            bar, dead_belowmacron ] }; // < > | Dˍ 
key <TLDE> { [ dead_circumflex,         degree,          U2032,          U2033 ] }; // D^ ° ′ ″ 
};
用户名

更新:我自己找到了一个解决方案

我自己找到了一个解决方案,因此我会将其发布在这里,因为其他人可能会从中受益

安装KeyboardLayoutEditor并编辑键盘布局文件

  1. 我从https://github.com/simos/keyboardlayouteditor下载并安装了KeyboardLayoutEditor

    • 当我尝试运行它时,我注意到缺少一些必须首先安装且未在要求中列出的软件包。
  2. 运行KeyboardLayoutEditor并加载合适的语言布局文件(以我为例)

    • 然后选择要编辑的变体(在我的情况下为“基本”,因为我认为添加自己的变体时可能会出错)
  3. 然后单击“开始Charakter Map”按钮,它将加载Gucharmap(我必须首先通过Ubuntu软件中心安装它才能正常工作)

  4. 现在,选择要添加到某个键的字符(您也可以通过输入Unicode代码在Gucharmap中搜索符号)

  5. 并将其拖放到KeyboardLayoutEditor中适当键的4个位置之一(有关最终代码,请参见下文)

    • 顺便说一句,我认为应用程序在这里犯了一些错误。因为将某些字符拖到某个键上,它并没有将正确的unicode代码写入去文件中,而是将相应的死键字符写了一些名称。(例如,它写的是“ dead_belowdot”而不是U0323,尽管我在Gucharmap中选择了后者,并将其拖到了上面。我想这是一个错误。
    • 结果是
      • 使用这些死键特殊字符,我必须先键入它们,然后再输入希望它们出现在上方或下方的字母。
      • 其他插入的具有正确unicode码的字符可以通过首先键入字母然后输入我想在上方或下方添加的特殊字符来键入。这是我习惯的行为,因此我尝试修复死键版本:
    • 我的解决方案是手动编辑去文件,将所有错误插入的死键版本替换为组合字符版本的正确unicode代码。现在,我可以输入字母,然后添加特殊字符。
  6. 插入所有字符后,您可以保存文件

    • 在我的情况下,KeyboardLayoutEditor不仅将更改保存到“ de-file”中的“ basic”变体中,还覆盖了整个“ de-file”,从而删除了所有其他变体
    • 尽管我认为我不需要其他我不喜欢的变体。因此,我将在de-File中编写的代码KeyboardLayoutEditor复制到了我的de_backup中,替换了其中的“ basic”部分,然后将de_backup保存为“ de”,从而替换了旧的“ de”。
    • 这次不必编辑evdev.xml,因为已经编辑了现有的变体,因此不必向文件中添加新的变体/布局。
  7. 然后我sudo dpkg-reconfigure xkb-data在控制台中使用了命令

  8. 终于我重新启动了

结果:Ethingthin现在就像魅力一样发挥作用!:)

一些想法

我不知道为什么这次通过使用KeyboardLayoutEditor起作用。

  1. 我的第一个猜测是,它起作用是因为我没有尝试向键盘布局文件(de)添加新的变体,而是编辑了现有的变体,从而避免了在编辑de-file和evdev-xml时可能出现的错误。

  2. 我的第二个猜测是它起作用,因为KeyboardLayout编辑器编写的Unicode代码与我第一次手动编辑去文件时的代码不同。

    • 例如,我插入的unicode代码如下所示:U + 02BE
    • 应用程序编写的unicode代码如下所示:U02BE
    • 也许通过省略“ +”,它起作用了吗?因为我是菜鸟,所以不知道。
    • 一些知识渊博的人可能会在下面的代码中看到一个不同的原因。

更新:根据古纳尔·贾马尔森(Gunnar Hjalmarsson)的说法,我的第二个猜测可能是正确的问题,即+号

我在键盘布局文件中插入的有效代码(本例中为de)

(这是最终版本,其中我已经手动纠正了应用程序所犯的错误)

//////////////////////////////////////////////////////////////////////////////    ///
//
// Generated keyboard layout file with the Keyboard Layout Editor.
// For more about the software, see http://code.google.com    /p/keyboardlayouteditor
//

xkb_symbols "basic"
{
    name[Group1] = "German";
    include "latin(type4)"
    include "level3(ralt_switch)"
    include "kpdl(comma)"
key <AB01> { [              y,              Y, guillemotright,          U203A ] }; // y Y » › 
key <AB02> { [              x,              X,  guillemotleft,          U2039 ] }; // x X « ‹ 
key <AB04> { [              v,              V, doublelowquotemark, singlelowquotemark ] }; // v V „ ‚ 
key <AB05> { [              b,              B, leftdoublequotemark, leftsinglequotemark ] }; // b B “ ‘ 
key <AB06> { [              n,              N, rightdoublequotemark, rightsinglequotemark ] }; // n N ” ’ 
key <AB08> { [          comma,      semicolon,     U030C,       multiply ] }; // , ; Dˇ × 
key <AB09> { [         period,          colon,  U0323,       division ] }; // . : D? ÷ 
key <AB10> { [          minus,     underscore,          U0331,         emdash ] }; // - _ ̱ — 
key <AC02> { [              s,              S,          U017F,          U1E9E ] }; // s S ſ ẞ 
key <AC06> { [       h,       H,          U032E                 ] }; //   ̮ 
key <AC07> { [              j,              J,  dead_belowdot,  dead_abovedot ] }; // j J D? D˙ 
key <AC10> { [     odiaeresis,     Odiaeresis,  U0307,  dead_belowdot ] }; // ö Ö D˙ D? 
key <AC11> { [     adiaeresis,     Adiaeresis,    U0304,     dead_caron ] }; // ä Ä Dˉ Dˇ 
key <AD03> { [              e,              E,       EuroSign,       EuroSign ] }; // e E € € 
key <AD06> { [              z,              Z,      leftarrow,            yen ] }; // z Z ← ¥ 
key <AD11> { [     udiaeresis,       Udiaeresis, dead_diaeresis, dead_abovering ] }; // ü  D¨ D˚ 
key <AD12> { [           plus,       asterisk,     asciitilde,         macron ] }; // + * ~ ¯ 
key <AE02> { [           KP_2,       quotedbl,    twosuperior,      oneeighth ] }; // 2 " ² ⅛ 
key <AE03> { [           KP_3,        section,  threesuperior,       sterling ] }; // 3 § ³ £ 
key <AE04> { [           KP_4,         dollar,     onequarter,       currency ] }; // 4 $ ¼ ¤ 
key <AE11> { [         ssharp,       question,      backslash,   questiondown ] }; // ß ? \ ¿ 
key <AE12> { [     dead_acute,     dead_grave,          U02BF,    dead_ogonek ] }; // D´ D` ʿ D˛ 
key <BKSL> { [     numbersign,     apostrophe,          U02BE,     dead_breve ] }; // # ' ʾ D˘ 
key <LSGT> { [           less,        greater,            bar, dead_belowmacron ] }; // < > | Dˍ 
key <TLDE> { [ dead_circumflex,         degree,          U2032,          U2033 ] }; // D^ ° ′ ″ 
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

阿拉伯语的订购列表不起作用

来自分类Dev

Android 4.1.2 Phonegap(Cordova)中的自定义波斯和阿拉伯字体不起作用

来自分类Dev

是否有用于输入阿拉伯语的英语化音译输入法?

来自分类Dev

fontFamily 没有为阿拉伯语语言环境选择正确的自定义字体

来自分类Dev

android-阿拉伯语语音识别

来自分类Dev

基于jQuery的阿拉伯语键盘

来自分类Dev

在C#中的自定义代码表中将阿拉伯语转换为十六进制的最佳方法

来自分类Dev

切换到从右到左的布局(阿拉伯语)时,工具栏不会翻转自定义导航图标箭头

来自分类Dev

UICollectionView在自定义键盘扩展中不起作用

来自分类Dev

创建自定义键盘布局不起作用

来自分类Dev

UIScreenEdgePanGestureRecognizer在自定义键盘扩展中不起作用

来自分类Dev

创建自定义键盘布局不起作用

来自分类Dev

自定义键盘快捷方式不起作用

来自分类Dev

UICollectionView在自定义键盘扩展中不起作用

来自分类Dev

正则表达式阿拉伯语语音匹配

来自分类Dev

如何考虑阿拉伯语语音删除重复的行

来自分类Dev

正则表达式阿拉伯语语音匹配

来自分类Dev

如何考虑阿拉伯语语音删除重复的行

来自分类Dev

iOS阿拉伯语Pushnotification

来自分类Dev

iOS阿拉伯语Pushnotification

来自分类Dev

笔尖镜像阿拉伯语

来自分类Dev

Redis阿拉伯语解码

来自分类Dev

Linewrap在带有阿拉伯字母的JTextPane中不起作用

来自分类Dev

发送阿拉伯文字电子邮件不起作用

来自分类Dev

SpannableStringBuilder setSpan在阿拉伯文本上不起作用

来自分类Dev

iOS自动使用自定义阿拉伯/西里尔字母字体

来自分类Dev

如何使我的编辑文本以编程方式使用阿拉伯语键盘?

来自分类Dev

如何在键盘中输入阿拉伯语上标和下标字母?

来自分类Dev

如何在键盘中输入阿拉伯语上标和下标字母?

Related 相关文章

  1. 1

    阿拉伯语的订购列表不起作用

  2. 2

    Android 4.1.2 Phonegap(Cordova)中的自定义波斯和阿拉伯字体不起作用

  3. 3

    是否有用于输入阿拉伯语的英语化音译输入法?

  4. 4

    fontFamily 没有为阿拉伯语语言环境选择正确的自定义字体

  5. 5

    android-阿拉伯语语音识别

  6. 6

    基于jQuery的阿拉伯语键盘

  7. 7

    在C#中的自定义代码表中将阿拉伯语转换为十六进制的最佳方法

  8. 8

    切换到从右到左的布局(阿拉伯语)时,工具栏不会翻转自定义导航图标箭头

  9. 9

    UICollectionView在自定义键盘扩展中不起作用

  10. 10

    创建自定义键盘布局不起作用

  11. 11

    UIScreenEdgePanGestureRecognizer在自定义键盘扩展中不起作用

  12. 12

    创建自定义键盘布局不起作用

  13. 13

    自定义键盘快捷方式不起作用

  14. 14

    UICollectionView在自定义键盘扩展中不起作用

  15. 15

    正则表达式阿拉伯语语音匹配

  16. 16

    如何考虑阿拉伯语语音删除重复的行

  17. 17

    正则表达式阿拉伯语语音匹配

  18. 18

    如何考虑阿拉伯语语音删除重复的行

  19. 19

    iOS阿拉伯语Pushnotification

  20. 20

    iOS阿拉伯语Pushnotification

  21. 21

    笔尖镜像阿拉伯语

  22. 22

    Redis阿拉伯语解码

  23. 23

    Linewrap在带有阿拉伯字母的JTextPane中不起作用

  24. 24

    发送阿拉伯文字电子邮件不起作用

  25. 25

    SpannableStringBuilder setSpan在阿拉伯文本上不起作用

  26. 26

    iOS自动使用自定义阿拉伯/西里尔字母字体

  27. 27

    如何使我的编辑文本以编程方式使用阿拉伯语键盘?

  28. 28

    如何在键盘中输入阿拉伯语上标和下标字母?

  29. 29

    如何在键盘中输入阿拉伯语上标和下标字母?

热门标签

归档