• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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