1<?xml version="1.0" encoding="UTF-8"?> 2<!-- 3 Note: conformsTo= references a previous release here, 4 because this keyboard does not depend on schema or data from later CLDR versions. 5--> 6<keyboard3 xmlns="https://schemas.unicode.org/cldr/45/keyboard3" locale="bn" conformsTo="45"> 7 <!-- 8 History: 9 Based on 10 https://github.com/keymanapp/ldml-keyboards-dev/blob/master/keyboards/sil-bengali/bn-t-k0-cldr-phonetic.ldml 11 --> 12 <locales> 13 <locale id="as" /> 14 <locale id="syl" /> 15 </locales> 16 <version number="1.3.0" /> 17 <info name="SIL Bengali-Assamese Phonetic" indicator="bn" layout="QWERTY" /> 18 19 <displays> 20 <display keyId="au-lengthener" display="ৗ" /> 21 <display keyId="vis-hasant" display="্" /> <!-- TODO: distinguish from regular hasant? --> 22 <display keyId="more" display="…" /> 23 </displays> 24 25 <keys> 26 <import base="cldr" path="45/keys-Zyyy-punctuation.xml" /> 27 <import base="cldr" path="45/keys-Zyyy-currency.xml" /> 28 29 <key id="1" output="১" /> 30 <key id="2" output="২" /> 31 <key id="3" output="৩" /> 32 <key id="4" output="৪" /> 33 <key id="5" output="৫" /> 34 <key id="6" output="৬" /> 35 <key id="7" output="৭" /> 36 <key id="8" output="৮" /> 37 <key id="9" output="৯" /> 38 <key id="0" output="০" /> 39 40 <!-- special keys and marks --> 41 <key id="au-lengthener" output="\m{A}" /> 42 <key id="candrabindu" output="\u{0981}" /> <!-- n̐ --> 43 <key id="hasant" output="\u{09CD}" /> 44 <key id="more" output="\m{q}" /> <!-- 'additional characters' --> 45 <key id="nukta" output="\u{09BC}" /> 46 <key id="vis-hasant" output="\m{X}" /> 47 48 <!-- key names based on https://www.loc.gov/catdir/cpso/romanization/bengali.pdf + Assamese for /wa/ --> 49 <key id="ā" output="\u{09BE}" /> 50 <key id="ai" output="\u{09C8}" /> 51 <key id="au" output="\u{09CC}" /> 52 <key id="ba" output="ব" /> 53 <key id="bha" output="ভ" /> 54 <key id="ca" output="চ" /> 55 <key id="cha" output="ছ" /> 56 <key id="ḍa" output="ড" /> 57 <key id="da" output="দ" /> 58 <key id="dahri" output="।" /> 59 <key id="ḍha" output="ঢ" /> 60 <key id="dha" output="ধ" /> 61 <key id="e" output="\u{09C7}" /> 62 <key id="ga" output="গ" /> 63 <key id="gha" output="ঘ" /> 64 <key id="ha" output="হ" /> 65 <key id="i" output="\u{09BF}" /> 66 <key id="ī" output="\u{09C0}" /> 67 <key id="ja" output="জ" /> 68 <key id="jha" output="ঝ" /> 69 <key id="ka" output="ক" /> 70 <key id="kha" output="খ" /> 71 <key id="la" output="ল" /> 72 <key id="ṃ" output="\u{0982}" /> 73 <key id="ma" output="ম" /> 74 <key id="ṅa" output="ঙ" /> 75 <key id="ña" output="ঞ" /> 76 <key id="ṇa" output="ণ" /> 77 <key id="na" output="ন" /> 78 <key id="o" output="\u{09CB}" /> 79 <key id="pa" output="প" /> 80 <key id="pha" output="ফ" /> 81 <key id="ṛ" output="\u{09C3}" /> 82 <key id="ra" output="র" /> 83 <key id="śa" output="শ" /> 84 <key id="sa" output="স" /> 85 <key id="sha" output="ষ" /> 86 <key id="ṭa" output="ট" /> 87 <key id="ta" output="ত" /> 88 <key id="ṭha" output="ঠ" /> 89 <key id="tha" output="থ" /> 90 <key id="u" output="\u{09C1}" /> 91 <key id="ū" output="\u{09C2}" /> 92 <key id="wa" output="ৱ" /> <!-- Assamese transliteration --> 93 <key id="ya" output="য" /> 94 <key id="ẏa" output="য়" /> <!-- Missing in Keyman version of file--> 95 </keys> 96 <layers formId="us"> 97 <layer modifiers="none"> 98 <row keys="candrabindu 1 2 3 4 5 6 7 8 9 0 hyphen equal" /> 99 <row keys="more wa e ra ta ya u i o pa open-square close-square backslash" /> 100 <row keys="ā sa da ṭa ga ha ja ka la semi-colon apos" /> 101 <row keys="śa hasant ca ḍa ba na ma comma dahri slash" /> 102 <row keys="space" /> 103 </layer> 104 <layer modifiers="shift"> 105 <row 106 keys="ṃ bang at hash dollar percent caret amp asterisk open-paren close-paren underscore plus" /> 107 <row keys="gap ña ai ṛ tha ẏa ū ī au pha open-curly close-curly pipe" /> 108 <row keys="au-lengthener sha dha ṭha gha gap jha kha gap colon double-quote" /> 109 <row keys="gap vis-hasant cha ḍha bha ṇa ṅa open-angle nukta question" /> 110 <row keys="space" /> 111 </layer> 112 </layers> 113 114 <transforms type="simple"> 115 <transformGroup> 116 <transform from="\u{09C7}\m{A}" to="\u{09CC}" /> <!-- E + au-lengthener = AU --> 117 <!-- <transform from="\u{09C7}\u{09BE}" to="\u09CB" /> --> <!-- E + A = O This is handled by normalization. --> 118 119 <!-- these suport the 'q' key --> 120 <transform from="\m{q}:" to="\u{0983}" /> 121 <transform from="\m{q}L" to="ৡ" /> 122 <transform from="\m{q}।" to="॥" /> 123 <transform from="\m{q}ড" to="ড়" /> 124 <transform from="\m{q}ঢ" to="ঢ়" /> 125 <transform from="\m{q}ত" to="ৎ" /> 126 <transform from="\m{q}য" to="য়" /> 127 <transform from="\m{q}র" to="ৰ" /> 128 <transform from="\m{q}ল" to="ঌ" /> 129 <transform from="\m{q}\u{09BE}" to="অ" /> 130 <transform from="\m{q}\u{09BF}" to="ই" /> 131 <transform from="\m{q}\u{09C0}" to="ঈ" /> 132 <transform from="\m{q}\u{09C1}" to="উ" /> 133 <transform from="\m{q}\u{09C2}" to="ঊ" /> 134 <transform from="\m{q}\u{09C3}" to="ৠ" /> 135 <transform from="\m{q}\u{09C7}" to="এ" /> 136 <transform from="\m{q}\u{09C8}" to="ঐ" /> 137 <transform from="\m{q}\u{09CB}" to="ও" /> 138 <transform from="\m{q}\u{09CC}" to="ঔ" /> 139 <transform from="\m{q}\m{A}" to="আ" /> 140 <transform from="\m{q}\m{X}" to="\u{09CD}\u{200C}" /> <!-- virama + zwnj--> 141 </transformGroup> 142 <transformGroup> 143 <!-- Nukta is tertiary, that is, it follows a tertiaryBase sequence --> 144 <reorder from="\u{09BC}" tertiary="3"/> 145 <!-- 146 virama (hasant) followed by any other spacing chars has order 10, because this sequence goes after the consonant to which the virama pertains. 147 For example: 148 149 U+099A U+09CD U+099B 150 CA virama CHA 151 0 10 10 152 --> 153 <reorder from="\u{09CD}[\u{0980}\u{0985}-\u{098C}\u{098F}\u{0990}\u{0993}-\u{09A8}\u{09AA}-\u{09B0}\u{09B2}\u{09B6}-\u{09B9}\u{09BD}\u{09DC}\u{09DD}\u{09DF}-\u{09E1}\u{09E6}-\u{09F1}\u{09FC}]" order="10" tertiaryBase="true"/> 154 <!-- 10: virama + zwj/zwnj + spacing mark is also 10--> 155 <reorder from="\u{09CD}[\u{200C}\u{200D}][\u{0980}\u{0985}-\u{098C}\u{098F}\u{0990}\u{0993}-\u{09A8}\u{09AA}-\u{09B0}\u{09B2}\u{09B6}-\u{09B9}\u{09BD}\u{09DC}\u{09DD}\u{09DF}-\u{09E1}\u{09E6}-\u{09F1}\u{09FC}]" order="10" tertiaryBase="true"/> 156 <!-- 120: A virama not followed by a spacing mark goes further to the right (past the sandhi mark, below) --> 157 <reorder from="\u{09CD}" order="120" tertiaryBase="true"/> 158 <!-- The next three rules make sure the DVs are in the correct order--> 159 <!-- 60: left side dependent vowels --> 160 <reorder from="[\u{09BF}\u{09C7}\u{09C8}]" order="60"/> 161 <!-- 70: lower dependent vowels --> 162 <reorder from="[\u{09C1}-\u{09C4}\u{09E2}\u{09E3}]" order="70"/> 163 <!-- 75: right side dependent vowels. Note U+09D7 AU LENGTH MARK is included due to NFD --> 164 <reorder from="[\u{09BE}\u{09C0}\u{09CB}\u{09CC}\u{09D7}]" order="75"/> 165 <!-- 85: candrabindu --> 166 <reorder from="\u{0981}" order="85"/> 167 <!-- 95: anusvara and visarga --> 168 <reorder from="[\u{0982}\u{0983}]" order="95"/> 169 <!-- 117: sandhi mark --> 170 <reorder from="\u{09FE}" order="117"/> 171 </transformGroup> 172 </transforms> 173</keyboard3> 174