diff --git a/experimental/n/ntcham_azerty/HISTORY.md b/experimental/n/ntcham_azerty/HISTORY.md
new file mode 100644
index 0000000000..7f10955f9e
--- /dev/null
+++ b/experimental/n/ntcham_azerty/HISTORY.md
@@ -0,0 +1,6 @@
+Ntcham (AZERTY) Change History
+====================
+
+0.6.0 (2026-08-06)
+----------------------
+* Initial design by Lorna Evans
diff --git a/experimental/n/ntcham_azerty/LICENSE.md b/experimental/n/ntcham_azerty/LICENSE.md
new file mode 100644
index 0000000000..a9f11ed709
--- /dev/null
+++ b/experimental/n/ntcham_azerty/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright © 2026 Wycliffe Togo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/experimental/n/ntcham_azerty/README.md b/experimental/n/ntcham_azerty/README.md
new file mode 100644
index 0000000000..f01c100220
--- /dev/null
+++ b/experimental/n/ntcham_azerty/README.md
@@ -0,0 +1,30 @@
+Ntcham (AZERTY) keyboard
+==============
+
+(c) Wycliffe Togo
+
+Description
+-----------
+
+Ce clavier prend en charge la langue ntcham du Togo sur un clavier AZERTY (français).
+
+This keyboard supports the Ntcham language of Togo for an AZERTY (French) Keyboard.
+
+Links
+-----
+https://keyman.com/keyboards/ntcham_azerty
+
+Supported Platforms
+-------------------
+ * Windows
+ * macOS
+ * Linux
+ * Web
+ * iPhone
+ * iPad
+ * Android phone
+ * Android tablet
+ * Mobile devices
+ * Desktop devices
+ * Tablet devices
+
diff --git a/experimental/n/ntcham_azerty/ntcham_azerty.kpj b/experimental/n/ntcham_azerty/ntcham_azerty.kpj
new file mode 100644
index 0000000000..a94b8065db
--- /dev/null
+++ b/experimental/n/ntcham_azerty/ntcham_azerty.kpj
@@ -0,0 +1,9 @@
+
+
Ce clavier prend en charge la langue ntcham du Togo sur un clavier AZERTY (français).
+This keyboard supports the Ntcham language of Togo for an AZERTY (French) Keyboard.
+ + +Ce clavier utilise des touches mortes (combinaisons de touches) pour produire les caractères accentués et les lettres spécifiques à la langue ntcham. Par exemple :
+ +This keyboard makes use of multi-key input. For example:
+Les différentes dispositions disponibles sont les suivantes :
+ +On mobile phone, keys with a little dot on the top right can be pressed and held for more keys.
+ diff --git a/experimental/n/ntcham_azerty/source/ntcham_azerty.ico b/experimental/n/ntcham_azerty/source/ntcham_azerty.ico new file mode 100644 index 0000000000..4837f0195f Binary files /dev/null and b/experimental/n/ntcham_azerty/source/ntcham_azerty.ico differ diff --git a/experimental/n/ntcham_azerty/source/ntcham_azerty.keyman-touch-layout b/experimental/n/ntcham_azerty/source/ntcham_azerty.keyman-touch-layout new file mode 100644 index 0000000000..94f53a2372 --- /dev/null +++ b/experimental/n/ntcham_azerty/source/ntcham_azerty.keyman-touch-layout @@ -0,0 +1,1323 @@ +{ + "phone": { + "font": "Charis", + "layer": [ + { + "id": "default", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_Q", + "text": "a", + "hint": "á", + "sk": [ + { + "id": "U_00E1" + }, + { + "id": "U_0101" + }, + { + "id": "U_00E0" + }, + { + "id": "U_00E3" + }, + { + "id": "U_00E3_0301" + }, + { + "id": "U_00E3_0304" + }, + { + "id": "U_00E3_0300" + } + ] + }, + { + "id": "U_0251", + "hint": "ɑ́", + "sk": [ + { + "id": "U_0251_0301" + }, + { + "id": "U_0251_0304" + }, + { + "id": "U_0251_0300" + }, + { + "id": "U_0251_0303" + }, + { + "id": "U_0251_0303_0301" + }, + { + "id": "U_0251_0303_0304" + }, + { + "id": "U_0251_0303_0300" + } + ] + }, + { + "id": "K_B", + "text": "b", + "hint": "b́", + "sk": [ + { + "id": "U_0062_0301" + }, + { + "id": "U_0062_0304" + }, + { + "id": "U_0062_0300" + } + ] + }, + { + "id": "K_C", + "text": "c", + "hint": "ç ©", + "sk": [ + { + "id": "U_00E7" + }, + { + "id": "U_00A9" + } + ] + }, + { + "id": "K_D", + "text": "d" + }, + { + "id": "K_E", + "text": "e", + "hint": "é", + "sk": [ + { + "id": "U_00E9" + }, + { + "id": "U_0113" + }, + { + "id": "U_00E8" + }, + { + "id": "U_1EBD" + }, + { + "id": "U_1EBD_0301" + }, + { + "id": "U_1EBD_0304" + }, + { + "id": "U_1EBD_0300" + } + ] + }, + { + "id": "K_F", + "text": "f" + }, + { + "id": "K_G", + "text": "g" + }, + { + "id": "U_0067_0062" + }, + { + "id": "K_I", + "text": "i", + "hint": "í", + "sk": [ + { + "id": "U_00ED" + }, + { + "id": "U_012B" + }, + { + "id": "U_00EC" + }, + { + "id": "U_0129" + }, + { + "id": "U_0129_0301" + }, + { + "id": "U_0129_0304" + }, + { + "id": "U_0129_0300" + } + ] + }, + { + "id": "U_0269", + "hint": "ɩ́", + "sk": [ + { + "id": "U_0269_0301" + }, + { + "id": "U_0269_0304" + }, + { + "id": "U_0269_0300" + }, + { + "id": "U_0269_0303" + }, + { + "id": "U_0269_0303_0301" + }, + { + "id": "U_0269_0303_0304" + }, + { + "id": "U_0269_0303_0300" + } + ] + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_J", + "text": "j" + }, + { + "id": "K_K", + "text": "k" + }, + { + "id": "U_006B_0070" + }, + { + "id": "K_L", + "text": "l", + "hint": "ĺ", + "sk": [ + { + "id": "U_013A" + }, + { + "id": "U_006C_0304" + }, + { + "id": "U_006C_0300" + } + ] + }, + { + "id": "U_006D", + "text": "m", + "hint": "ḿ", + "sk": [ + { + "id": "U_1E3F" + }, + { + "id": "U_006D_0304" + }, + { + "id": "U_006D_0300" + } + ] + }, + { + "id": "K_N", + "text": "n", + "hint": "ń", + "sk": [ + { + "id": "U_0144" + }, + { + "id": "U_006E_0304" + }, + { + "id": "U_01F9" + } + ] + }, + { + "id": "U_006E_0079" + }, + { + "id": "U_014B" + }, + { + "id": "U_014B_006D" + }, + { + "id": "K_O", + "text": "o", + "hint": "ó", + "sk": [ + { + "id": "U_00F3" + }, + { + "id": "U_014D" + }, + { + "id": "U_00F2" + }, + { + "id": "U_00F5" + }, + { + "id": "U_1E4D" + }, + { + "id": "U_022D" + }, + { + "id": "U_00F5_0300" + } + ] + }, + { + "id": "U_0254", + "hint": "ɔ́", + "sk": [ + { + "id": "U_0254_0301" + }, + { + "id": "U_0254_0304" + }, + { + "id": "U_0254_0300" + }, + { + "id": "U_0254_0303" + }, + { + "id": "U_0254_0303_0301" + }, + { + "id": "U_0254_0303_0304" + }, + { + "id": "U_0254_0303_0300" + } + ] + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 1, + "nextlayer": "shift" + }, + { + "id": "K_P", + "text": "p" + }, + { + "id": "K_R", + "text": "r", + "hint": "ŕ ®", + "sk": [ + { + "id": "U_0155" + }, + { + "id": "U_0072_0304" + }, + { + "id": "U_0072_0300" + }, + { + "id": "U_00AE" + } + ] + }, + { + "id": "K_S", + "text": "s", + "hint": "§", + "sk": [ + { + "id": "U_00A7" + } + ] + }, + { + "id": "K_T", + "text": "t" + }, + { + "id": "K_U", + "text": "u", + "hint": "ú µ", + "sk": [ + { + "id": "U_00FA" + }, + { + "id": "U_016B" + }, + { + "id": "U_00F9" + }, + { + "id": "U_0169" + }, + { + "id": "U_1E79" + }, + { + "id": "U_0169_0304" + }, + { + "id": "U_0169_0300" + }, + { + "id": "U_00B5" + } + ] + }, + { + "id": "U_028B", + "hint": "ʋ́", + "sk": [ + { + "id": "U_028B_0301" + }, + { + "id": "U_028B_0304" + }, + { + "id": "U_028B_0300" + }, + { + "id": "U_028B_0303" + }, + { + "id": "U_028B_0303_0301" + }, + { + "id": "U_028B_0303_0304" + }, + { + "id": "U_028B_0303_0300" + } + ] + }, + { + "id": "K_Z", + "text": "w" + }, + { + "id": "K_Y", + "text": "y" + }, + { + "id": "K_W", + "text": "z", + "hint": "hqvx", + "sk": [ + { + "id": "U_0068" + }, + { + "id": "U_0071" + }, + { + "id": "U_0076" + }, + { + "id": "U_0078" + } + ] + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "width": 100, + "sp": 1 + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_NUMLOCK", + "text": "*123*", + "width": 150, + "sp": 1, + "nextlayer": "numeric" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "width": 120, + "sp": 1 + }, + { + "id": "K_SPACE", + "text": "", + "width": 610, + "sp": 0 + }, + { + "id": "U_002E", + "text": ".", + "sk": [ + { + "text": ",", + "id": "U_002C" + }, + { + "text": "!", + "id": "U_0021" + }, + { + "text": "?", + "id": "U_003F" + }, + { + "text": "'", + "id": "U_0027" + }, + { + "text": "\"", + "id": "U_0022" + }, + { + "text": "\\", + "id": "U_005C" + }, + { + "text": ":", + "id": "U_003A" + }, + { + "text": ";", + "id": "U_003B" + } + ] + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + }, + { + "id": "shift", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_Q", + "text": "A", + "hint": "Á", + "sk": [ + { + "id": "U_00C1" + }, + { + "id": "U_0100" + }, + { + "id": "U_00C0" + }, + { + "id": "U_00C3" + }, + { + "id": "U_00C3_0301" + }, + { + "id": "U_00C3_0304" + }, + { + "id": "U_00C3_0300" + } + ] + }, + { + "id": "U_2C6D", + "hint": "Ɑ́", + "sk": [ + { + "id": "U_2C6D_0303" + }, + { + "id": "U_2C6D_0303_0301" + }, + { + "id": "U_2C6D_0303_0304" + }, + { + "id": "U_2C6D_0303_0300" + } + ] + }, + { + "id": "K_B", + "text": "B", + "hint": "B́", + "sk": [ + { + "id": "U_0042_0301" + }, + { + "id": "U_0042_0304" + }, + { + "id": "U_0042_0300" + } + ] + }, + { + "id": "K_C", + "text": "C" + }, + { + "id": "K_D", + "text": "D" + }, + { + "id": "K_E", + "text": "E", + "hint": "É", + "sk": [ + { + "id": "U_00C9" + }, + { + "id": "U_0112" + }, + { + "id": "U_00C8" + }, + { + "id": "U_1EBC" + }, + { + "id": "U_1EBC_0301" + }, + { + "id": "U_1EBC_0304" + }, + { + "id": "U_1EBC_0300" + } + ] + }, + { + "id": "K_F", + "text": "F" + }, + { + "id": "K_G", + "text": "G" + }, + { + "id": "U_0047_0062", + "hint": "GB", + "sk": [ + { + "id": "U_0047_0042" + } + ] + }, + { + "id": "K_I", + "text": "I", + "hint": "Í", + "sk": [ + { + "id": "U_00CD" + }, + { + "id": "U_012A" + }, + { + "id": "U_00CC" + }, + { + "id": "U_0128" + }, + { + "id": "U_0128_0301" + }, + { + "id": "U_0128_0304" + }, + { + "id": "U_0128_0300" + } + ] + }, + { + "id": "U_0196", + "hint": "Ɩ́", + "sk": [ + { + "id": "U_0196_0301" + }, + { + "id": "U_0196_0304" + }, + { + "id": "U_0196_0300" + }, + { + "id": "U_0196_0303" + }, + { + "id": "U_0196_0303_0301" + }, + { + "id": "U_0196_0303_0304" + }, + { + "id": "U_0196_0303_0300" + } + ] + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "K_J", + "text": "J" + }, + { + "id": "K_K", + "text": "K" + }, + { + "id": "U_004B_0070", + "hint": "KP", + "sk": [ + { + "id": "U_004B_0050" + } + ] + }, + { + "id": "K_L", + "text": "L", + "hint": "Ĺ", + "sk": [ + { + "id": "U_0139" + }, + { + "id": "U_004C_0304" + }, + { + "id": "U_004C_0300" + } + ] + }, + { + "id": "U_004D", + "text": "M", + "hint": "Ḿ", + "sk": [ + { + "id": "U_1E3E" + }, + { + "id": "U_004D_0304" + }, + { + "id": "U_004D_0300" + } + ] + }, + { + "id": "K_N", + "text": "N", + "hint": "Ń", + "sk": [ + { + "id": "U_0143" + }, + { + "id": "U_004E_0304" + }, + { + "id": "U_01F8" + } + ] + }, + { + "id": "U_004E_0079" + }, + { + "id": "U_014A" + }, + { + "id": "U_014A_006D", + "hint": "ŊM", + "sk": [ + { + "id": "U_014A_004D" + } + ] + }, + { + "id": "K_O", + "text": "O", + "hint": "Ó", + "sk": [ + { + "id": "U_00D3" + }, + { + "id": "U_014C" + }, + { + "id": "U_00D2" + }, + { + "id": "U_00D5" + }, + { + "id": "U_1E4C" + }, + { + "id": "U_022C" + }, + { + "id": "U_00D5_0300" + } + ] + }, + { + "id": "U_0186", + "hint": "Ɔ́", + "sk": [ + { + "id": "U_0186_0301" + }, + { + "id": "U_0186_0304" + }, + { + "id": "U_0186_0300" + }, + { + "id": "U_0186_0303" + }, + { + "id": "U_0186_0303_0301" + }, + { + "id": "U_0186_0303_0304" + }, + { + "id": "U_0186_0303_0300" + } + ] + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "K_SHIFT", + "text": "*Shift*", + "sp": 2, + "nextlayer": "default" + }, + { + "id": "K_P", + "text": "P" + }, + { + "id": "K_R", + "text": "R", + "hint": "Ŕ", + "sk": [ + { + "id": "U_0154" + }, + { + "id": "U_0052_0304" + }, + { + "id": "U_0052_0300" + } + ] + }, + { + "id": "K_S", + "text": "S" + }, + { + "id": "K_T", + "text": "T" + }, + { + "id": "K_U", + "text": "U", + "hint": "Ú", + "sk": [ + { + "id": "U_00DA" + }, + { + "id": "U_016A" + }, + { + "id": "U_00D9" + }, + { + "id": "U_0168" + }, + { + "id": "U_1E78" + }, + { + "id": "U_0168_0304" + }, + { + "id": "U_0168_0300" + } + ] + }, + { + "id": "U_01B2", + "hint": "Ʋ́", + "sk": [ + { + "id": "U_01B2_0301" + }, + { + "id": "U_01B2_0304" + }, + { + "id": "U_01B2_0300" + }, + { + "id": "U_01B2_0303" + }, + { + "id": "U_01B2_0303_0301" + }, + { + "id": "U_01B2_0303_0304" + }, + { + "id": "U_01B2_0303_0300" + } + ] + }, + { + "id": "K_Z", + "text": "W" + }, + { + "id": "K_Y", + "text": "Y" + }, + { + "id": "K_W", + "text": "Z", + "hint": "HQVX", + "sk": [ + { + "id": "U_0048" + }, + { + "text": "Q", + "id": "U_0051" + }, + { + "text": "V", + "id": "U_0056" + }, + { + "text": "X", + "id": "U_0058" + } + ] + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "sp": 1 + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_NUMLOCK", + "text": "*123*", + "width": 150, + "sp": 1, + "nextlayer": "numeric" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "width": 120, + "sp": 1 + }, + { + "id": "K_SPACE", + "text": "", + "width": 610, + "sp": 0 + }, + { + "id": "U_002E", + "text": ".", + "sk": [ + { + "text": ",", + "id": "U_002C" + }, + { + "text": "!", + "id": "U_0021" + }, + { + "text": "?", + "id": "U_003F" + }, + { + "text": "'", + "id": "U_0027" + }, + { + "text": "\"", + "id": "U_0022" + }, + { + "text": "\\", + "id": "U_005C" + }, + { + "text": ":", + "id": "U_003A" + }, + { + "text": ";", + "id": "U_003B" + } + ] + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + }, + { + "id": "numeric", + "row": [ + { + "id": 1, + "key": [ + { + "id": "K_1", + "text": "1", + "sk": [ + { + "id": "U_00B9" + } + ] + }, + { + "id": "K_2", + "text": "2", + "sk": [ + { + "id": "U_00B2" + } + ] + }, + { + "id": "K_3", + "text": "3", + "sk": [ + { + "id": "U_00B3" + } + ] + }, + { + "id": "K_4", + "text": "4" + }, + { + "id": "K_5", + "text": "5" + }, + { + "id": "K_6", + "text": "6", + "sk": [ + { + "text": "^", + "id": "U_005E" + } + ] + }, + { + "id": "K_7", + "text": "7" + }, + { + "id": "K_8", + "text": "8" + }, + { + "id": "K_9", + "text": "9" + }, + { + "id": "K_0", + "text": "0", + "sk": [ + { + "id": "U_00B0" + } + ] + } + ] + }, + { + "id": 2, + "key": [ + { + "id": "U_0024", + "text": "$", + "pad": 50, + "sk": [ + { + "text": "€", + "id": "U_20AC" + }, + { + "id": "U_00A3" + }, + { + "id": "U_00A4" + } + ] + }, + { + "id": "U_0040", + "text": "@" + }, + { + "id": "U_0023", + "text": "#" + }, + { + "id": "U_0025", + "text": "%" + }, + { + "id": "U_0026", + "text": "&" + }, + { + "id": "U_005F", + "text": "_", + "sk": [ + { + "id": "U_2026" + } + ] + }, + { + "id": "U_003D", + "text": "=" + }, + { + "id": "U_007C", + "text": "|" + }, + { + "id": "U_005C", + "text": "\\" + }, + { + "id": "T_new_177", + "text": "", + "width": 10, + "sp": 10 + } + ] + }, + { + "id": 3, + "key": [ + { + "id": "U_005B", + "text": "[", + "pad": 110, + "sk": [ + { + "text": "«", + "id": "U_00AB" + }, + { + "id": "U_2039" + }, + { + "text": "<", + "id": "U_003C" + }, + { + "text": "{", + "id": "U_007B" + }, + { + "id": "U_201C" + }, + { + "id": "U_2018" + } + ] + }, + { + "id": "U_0028", + "text": "(" + }, + { + "id": "U_0029", + "text": ")" + }, + { + "id": "U_005D", + "text": "]", + "sk": [ + { + "text": "»", + "id": "U_00BB" + }, + { + "id": "U_203A" + }, + { + "text": ">", + "id": "U_003E" + }, + { + "text": "}", + "id": "U_007D" + }, + { + "id": "U_201D" + }, + { + "id": "U_2019" + } + ] + }, + { + "id": "U_002B", + "text": "+" + }, + { + "id": "U_002D", + "text": "-", + "sk": [ + { + "id": "U_2014" + } + ] + }, + { + "id": "U_002A", + "text": "*", + "sk": [ + { + "id": "U_2020" + } + ] + }, + { + "id": "U_002F", + "text": "/" + }, + { + "id": "K_BKSP", + "text": "*BkSp*", + "width": 100, + "sp": 1 + } + ] + }, + { + "id": 4, + "key": [ + { + "id": "K_LOWER", + "text": "*abc*", + "width": 150, + "sp": 1, + "nextlayer": "default" + }, + { + "id": "K_LOPT", + "text": "*Menu*", + "width": 120, + "sp": 1 + }, + { + "id": "K_SPACE", + "text": "", + "width": 610, + "sp": 0 + }, + { + "id": "K_ENTER", + "text": "*Enter*", + "width": 150, + "sp": 1 + } + ] + } + ] + } + ], + "fontsize": "" + } +} \ No newline at end of file diff --git a/experimental/n/ntcham_azerty/source/ntcham_azerty.kmn b/experimental/n/ntcham_azerty/source/ntcham_azerty.kmn new file mode 100644 index 0000000000..4c60c22777 --- /dev/null +++ b/experimental/n/ntcham_azerty/source/ntcham_azerty.kmn @@ -0,0 +1,274 @@ +store(&VERSION) '17.0' +store(&NAME) 'Ntcham (AZERTY)' +store(©RIGHT) '© Wycliffe Togo' +store(&BITMAP) 'ntcham_azerty.ico' +store(&LAYOUTFILE) 'ntcham_azerty.keyman-touch-layout' +store(&KEYBOARDVERSION) '0.6.0' +store(&TARGETS) 'any' +store(&VISUALKEYBOARD) 'ntcham_azerty.kvks' +store(&CasedKeys) [K_A]..[K_Z] [K_0]..[K_9] [K_HYPHEN] [K_EQUAL] [K_LBRKT] [K_RBRKT] [K_BKSLASH] [K_QUOTE] [K_COMMA] [K_PERIOD] [K_COLON] +c Technically, [K_SLASH] should be in the above list, but I'm choosing not to add it to avoid confusion. + +begin Unicode > use(main) + +store(base-mark) "abeiouABEIOUlLmMnNrR" U+0251 U+0269 U+014B U+0254 U+028B U+2C6D U+0196 U+0186 U+01B2 U+014A +store(base-vowel-mark) "aeiouAEIOU" U+0251 U+0269 U+0254 U+028B U+2C6D U+0196 U+0186 U+01B2 + + + + +store(blmnrOuMacron) "blmnrBLMNR" U+0254 U+0186 +store(blmrOuGrave) "blmrBLMR" U+0254 U+0186 + + +c Special characters +store(specialKBase) [K_Q] [K_I] [K_N] [K_O] [K_U] [SHIFT K_Q] [SHIFT K_I] [SHIFT K_O] [SHIFT K_U] [SHIFT K_N] +store(specialK) [RALT K_Q] [RALT K_I] [RALT K_N] [RALT K_O] [RALT K_U] [SHIFT RALT K_Q] [SHIFT RALT K_I] [SHIFT RALT K_O] [SHIFT RALT K_U] [SHIFT RALT K_N] +store(specialU) U+0251 U+0269 U+014B U+0254 U+028B U+2C6D U+0196 U+0186 U+01B2 U+014A + + +group(main) using keys + +c ɑɩŋɔʋ ++ any(specialK) > index(specialU,1) +U+003B + any(specialKBase) > index(specialU,2) + +c acute aeiou b l m n ɑɩŋɔʋ +any(base-mark) + [K_LBRKT] > context U+0301 use(nfc) +any(base-mark) + [SHIFT K_LBRKT] > context U+0301 use(nfc) + + +c macrons aeiou blmn ɑɩŋɔʋ +any(base-mark) + [K_RBRKT] > context U+0304 use(nfc) +any(base-mark) + [SHIFT K_RBRKT] > context U+0304 use(nfc) + +c grave +any(base-mark) + [K_BKSLASH] > context U+0300 use(nfc) +any(base-mark) + [SHIFT K_BKSLASH] > context U+0300 use(nfc) + +c tilde aeiou ɔ +any(base-vowel-mark) + [K_BKQUOTE] > context U+0303 use(nfc) +any(base-vowel-mark) + [SHIFT K_BKQUOTE] > context U+0303 use(nfc) + +any(base-vowel-mark) U+0303 + [K_BKSLASH] > context U+0300 use(nfc) +any(base-vowel-mark) U+0303 + [SHIFT K_BKSLASH] > context U+0300 use(nfc) +any(base-vowel-mark) U+0303 + [K_LBRKT] > context U+0301 use(nfc) +any(base-vowel-mark) U+0303 + [SHIFT K_LBRKT] > context U+0301 use(nfc) +any(base-vowel-mark) U+0303 + [K_RBRKT] > context U+0304 use(nfc) +any(base-vowel-mark) U+0303 + [SHIFT K_RBRKT] > context U+0304 use(nfc) + +any(baseTildeU) + [K_BKSLASH] > context U+0300 use(nfc) +any(baseTildeU) + [SHIFT K_BKSLASH] > context U+0300 use(nfc) +any(baseTildeU) + [K_LBRKT] > context U+0301 use(nfc) +any(baseTildeU) + [SHIFT K_LBRKT] > context U+0301 use(nfc) +any(baseTildeU) + [K_RBRKT] > context U+0304 use(nfc) +any(baseTildeU) + [SHIFT K_RBRKT] > context U+0304 use(nfc) + ++ [K_0] > U+00E0 ++ [SHIFT K_0] > U+0030 ++ [RALT K_0] > U+0040 + ++ [K_1] > U+0026 ++ [SHIFT K_1] > U+0031 ++ [RALT K_1] > U+00B9 ++ [SHIFT RALT K_1] > U+2018 + ++ [K_2] > U+00E9 ++ [SHIFT K_2] > U+0032 ++ [RALT K_2] > U+007E ++ [SHIFT RALT K_2] > U+2019 + ++ [K_3] > U+0022 ++ [SHIFT K_3] > U+0033 ++ [RALT K_3] > U+0023 ++ [SHIFT RALT K_3] > U+00AB + ++ [K_4] > U+0027 ++ [SHIFT K_4] > U+0034 ++ [RALT K_4] > U+007B ++ [SHIFT RALT K_4] > U+00BB + ++ [K_5] > U+0028 ++ [SHIFT K_5] > U+0035 ++ [RALT K_5] > U+005B + ++ [K_6] > U+002D ++ [SHIFT K_6] > U+0036 ++ [RALT K_6] > U+007C + ++ [K_7] > U+00E8 ++ [SHIFT K_7] > U+0037 ++ [RALT K_7] > U+0060 + ++ [K_8] > U+005F ++ [SHIFT K_8] > U+0038 ++ [RALT K_8] > U+005C + ++ [K_9] > U+00E7 ++ [SHIFT K_9] > U+0039 ++ [RALT K_9] > U+005E + ++ [K_Q] > U+0061 ++ [SHIFT K_Q] > U+0041 + ++ [K_B] > U+0062 ++ [SHIFT K_B] > U+0042 + ++ [K_C] > U+0063 ++ [SHIFT K_C] > U+0043 ++ [RALT K_C] > U+00A9 + ++ [K_D] > U+0064 ++ [SHIFT K_D] > U+0044 + ++ [K_E] > U+0065 ++ [SHIFT K_E] > U+0045 ++ [RALT K_E] > U+20AC + ++ [K_F] > U+0066 ++ [SHIFT K_F] > U+0046 + ++ [K_G] > U+0067 ++ [SHIFT K_G] > U+0047 + ++ [K_H] > U+0068 ++ [SHIFT K_H] > U+0048 + ++ [K_I] > U+0069 ++ [SHIFT K_I] > U+0049 + ++ [K_J] > U+006a ++ [SHIFT K_J] > U+004a + ++ [K_K] > U+006b ++ [SHIFT K_K] > U+004b + ++ [K_L] > U+006c ++ [SHIFT K_L] > U+004c + ++ [SHIFT K_COLON] > U+004d ++ [K_COLON] > U+006d + + ++ [K_N] > U+006e ++ [SHIFT K_N] > U+004e + ++ [K_O] > U+006f ++ [SHIFT K_O] > U+004f + ++ [K_P] > U+0070 ++ [SHIFT K_P] > U+0050 + ++ [K_A] > U+0071 ++ [SHIFT K_A] > U+0051 ++ [RALT K_A] > U+2014 ++ [SHIFT RALT K_A] > U+2013 + ++ [K_R] > U+0072 ++ [SHIFT K_R] > U+0052 ++ [RALT K_R] > U+00ae + ++ [K_S] > U+0073 ++ [SHIFT K_S] > U+0053 ++ [RALT K_S] > U+201C ++ [SHIFT RALT K_S] > U+201D + ++ [K_T] > U+0074 ++ [SHIFT K_T] > U+0054 + ++ [K_U] > U+0075 ++ [SHIFT K_U] > U+0055 + ++ [K_V] > U+0076 ++ [SHIFT K_V] > U+0056 + ++ [K_Z] > U+0077 ++ [SHIFT K_Z] > U+0057 + ++ [K_X] > U+0078 ++ [SHIFT K_X] > U+0058 ++ [SHIFT RALT K_X] > U+203A ++ [RALT K_X] > U+2039 + ++ [K_Y] > U+0079 ++ [SHIFT K_Y] > U+0059 + ++ [K_W] > U+007a ++ [SHIFT K_W] > U+005a ++ [RALT K_W] > U+2026 ++ [SHIFT RALT K_W] > U+2020 + ++ [K_M] > U+002c ++ [SHIFT K_M] > U+003F + ++ [K_EQUAL] > U+003D ++ [SHIFT K_EQUAL] > U+002B ++ [RALT K_EQUAL] > U+007D + ++ [K_COMMA] > U+003b ++ [SHIFT K_COMMA] > U+002E + ++ [K_HYPHEN] > U+0029 ++ [SHIFT K_HYPHEN] > U+00B0 ++ [RALT K_HYPHEN] > U+005D + ++ [K_PERIOD] > U+003A ++ [SHIFT K_PERIOD] > U+002F + ++ [CAPS SHIFT K_SLASH] > U+00A7 ++ [NCAPS SHIFT K_SLASH] > U+00A7 ++ [NCAPS K_SLASH] > U+0021 ++ [CAPS K_SLASH] > U+0021 + ++ [SHIFT K_BKQUOTE] > U+0024 ++ [K_BKQUOTE] > U+00B2 ++ [RALT K_BKQUOTE] > U+00B2 ++ [SHIFT RALT K_BKQUOTE] > U+00B3 + ++ [K_LBRKT] > U+005E c U+0301 ++ [SHIFT K_LBRKT] > U+00A8 c U+0301 + ++ [K_RBRKT] > U+0024 c U+0304 ++ [SHIFT K_RBRKT] > U+00A3 c U+0304 ++ [RALT K_RBRKT] > U+00A3 + ++ [K_BKSLASH] > U+002A c U+0300 ++ [SHIFT K_BKSLASH] > U+00B5 c U+0300 ++ [RALT K_BKSLASH] > U+00A4 + ++ [K_QUOTE] > U+00F9 ++ [SHIFT K_QUOTE] > U+0025 ++ [RALT K_QUOTE] > U+002A ++ [RALT SHIFT K_QUOTE] > U+00B5 + ++ [K_OE2] > U+003C ++ [SHIFT K_OE2] > U+003E ++ [RALT K_OE2] > U+00AB ++ [SHIFT RALT K_OE2] > U+00BB + + +group(nfc) + +store(baseAcuteK) "aeiouAEIOUlLmMnNrR" +store(baseAcuteU) U+00E1 U+00E9 U+00ED U+00F3 U+00FA U+00C1 U+00C9 U+00CD U+00D3 U+00DA U+013A U+0139 U+1E3F U+1E3E U+0144 U+0143 U+0155 U+0154 +any(baseAcuteK) U+0301 > index(baseAcuteU,1) + +store(baseGraveK) "aeiouAEIOUnN" +store(baseGraveU) U+00E0 U+00E8 U+00EC U+00F2 U+00F9 U+00C0 U+00C8 U+00CC U+00D2 U+00D9 U+01F9 U+01F8 +any(baseGraveK) U+0300 > index(baseGraveU,1) + +store(baseMacronK) "aeiouAEIOU" +store(baseMacronU) U+0101 U+0113 U+012B U+014D U+016B U+0100 U+0112 U+012A U+014C U+016A +any(baseMacronK) U+0304 > index(baseMacronU,1) + +store(baseTildeK) "aeiouAEIOU" +store(baseTildeU) U+00E3 U+1EBD U+0129 U+00F5 U+0169 U+00C3 U+1EBC U+0128 U+00D5 U+0168 +any(baseTildeK) U+0303 > index(baseTildeU,1) + +store(baseTildeMacronK) "Õõ" +store(baseTildeMacronU) U+022C U+022D +any(baseTildeMacronK) U+0304 > index(baseTildeMacronU,1) + +store(baseTildeAcuteK) "ÕõŨũ" +store(baseTildeAcuteU) U+1E4C U+1E4D U+1E78 U+1E79 +any(baseTildeAcuteK) U+0301 > index(baseTildeAcuteU,1) diff --git a/experimental/n/ntcham_azerty/source/ntcham_azerty.kps b/experimental/n/ntcham_azerty/source/ntcham_azerty.kps new file mode 100644 index 0000000000..427923d905 --- /dev/null +++ b/experimental/n/ntcham_azerty/source/ntcham_azerty.kps @@ -0,0 +1,181 @@ + +Ce clavier prend en charge la langue ntcham du Togo sur un clavier AZERTY (français).
++This keyboard supports the Ntcham language of Togo for +an AZERTY (French) Keyboard. +
+ + + + diff --git a/experimental/n/ntcham_azerty/source/welcome/LayoutU_.png b/experimental/n/ntcham_azerty/source/welcome/LayoutU_.png new file mode 100644 index 0000000000..2aa505bc70 Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/LayoutU_.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/LayoutU_RA.png b/experimental/n/ntcham_azerty/source/welcome/LayoutU_RA.png new file mode 100644 index 0000000000..14b30561b7 Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/LayoutU_RA.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/LayoutU_S.png b/experimental/n/ntcham_azerty/source/welcome/LayoutU_S.png new file mode 100644 index 0000000000..04d19d5611 Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/LayoutU_S.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/LayoutU_SRA.png b/experimental/n/ntcham_azerty/source/welcome/LayoutU_SRA.png new file mode 100644 index 0000000000..9518aa9b88 Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/LayoutU_SRA.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/mobile_default.png b/experimental/n/ntcham_azerty/source/welcome/mobile_default.png new file mode 100644 index 0000000000..93a98f2745 Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/mobile_default.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/mobile_longpress.png b/experimental/n/ntcham_azerty/source/welcome/mobile_longpress.png new file mode 100644 index 0000000000..afa3ff9acb Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/mobile_longpress.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/mobile_numeric.png b/experimental/n/ntcham_azerty/source/welcome/mobile_numeric.png new file mode 100644 index 0000000000..a27b5eaba4 Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/mobile_numeric.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/mobile_shift.png b/experimental/n/ntcham_azerty/source/welcome/mobile_shift.png new file mode 100644 index 0000000000..04584d02f1 Binary files /dev/null and b/experimental/n/ntcham_azerty/source/welcome/mobile_shift.png differ diff --git a/experimental/n/ntcham_azerty/source/welcome/welcome.htm b/experimental/n/ntcham_azerty/source/welcome/welcome.htm new file mode 100644 index 0000000000..79794d78e5 --- /dev/null +++ b/experimental/n/ntcham_azerty/source/welcome/welcome.htm @@ -0,0 +1,88 @@ + + + + +Ce clavier prend en charge la langue ntcham du Togo sur un clavier AZERTY (français).
+This keyboard supports the Ntcham language of Togo for an AZERTY (French) Keyboard.
+ + +Ce clavier utilise des touches mortes (combinaisons de touches) pour produire les caractères accentués et les lettres spécifiques à la langue ntcham. Par exemple :
+ +This keyboard makes use of multi-key input. For example:
+Les différentes dispositions disponibles sont les suivantes :
+ +On mobile phone, keys with a little dot on the top right can be pressed and held for more keys.
+ + + + + \ No newline at end of file