]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/tools/misc/src/com/ibm/icu/dev/tool/ime/indic/GurmukhiInputMethodDescriptor.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / tools / misc / src / com / ibm / icu / dev / tool / ime / indic / GurmukhiInputMethodDescriptor.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2000-2004, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 \r
8 package com.ibm.icu.dev.tool.ime.indic;\r
9 \r
10 import java.util.Locale;\r
11 \r
12 public class GurmukhiInputMethodDescriptor extends IndicIMDescriptor\r
13 {\r
14     private static final Locale GURMUKHI = new Locale("pa", "IN"); // pa = Punjabi\r
15 \r
16     public GurmukhiInputMethodDescriptor() {\r
17     super(GURMUKHI, "Gurmukhi"); \r
18     }\r
19 \r
20     private static char[] keyboardMap;\r
21     private static char[][] substitutionTable;\r
22     private static char[] joinWithNukta;\r
23     private static char[] nuktaForm;\r
24 \r
25     protected IndicInputMethodImpl getImpl() {\r
26     if (keyboardMap == null) {\r
27         keyboardMap = new char[] {\r
28         /* 00 */ '\u0000',\r
29         /* 01 */ '\u0001',\r
30         /* 02 */ '\u0002',\r
31         /* 03 */ '\u0003',\r
32         /* 04 */ '\u0004',\r
33         /* 05 */ '\u0005',\r
34         /* 06 */ '\u0006',\r
35         /* 07 */ '\u0007',\r
36         /* 08 */ '\u0008',\r
37         /* 09 */ '\u0009',\r
38         /* 0A */ '\012',\r
39         /* 0B */ '\u000B',\r
40         /* 0C */ '\u000C',\r
41         /* 0D */ '\015',\r
42         /* 0E */ '\u000E',\r
43         /* 0F */ '\u000F',\r
44         /* 10 */ '\u0010',\r
45         /* 11 */ '\u0011',\r
46         /* 12 */ '\u0012',\r
47         /* 13 */ '\u0013',\r
48         /* 14 */ '\u0014',\r
49         /* 15 */ '\u0015',\r
50         /* 16 */ '\u0016',\r
51         /* 17 */ '\u0017',\r
52         /* 18 */ '\u0018',\r
53         /* 19 */ '\u0019',\r
54         /* 1A */ '\u001A',\r
55         /* 1B */ '\u001B',\r
56         /* 1C */ '\u001C',\r
57         /* 1D */ '\u001D',\r
58         /* 1E */ '\u001E',\r
59         /* 1F */ '\u001F',\r
60         /* 20 */ '\u0020',\r
61         /* 21 */ '\u0A0D',   // '!'\r
62         /* 22 */ '\u0A20',   // '"'\r
63         /* 23 */ '\uFF00',   // '#'\r
64         /* 24 */ '\uFFFF',   // '$'\r
65         /* 25 */ '\uFFFF',   // '%'\r
66         /* 26 */ '\uFFFF',   // '&'\r
67         /* 27 */ '\u0A1F',   // '''\r
68         /* 28 */ '\u0028',   // '('\r
69         /* 29 */ '\u0029',   // ')'\r
70         /* 2A */ '\uFFFF',   // '*'\r
71         /* 2B */ '\u0A0B',   // '+'\r
72         /* 2C */ '\u002C',   // ','\r
73         /* 2D */ '\u002D',   // '-'\r
74         /* 2E */ '\u002E',   // '.'\r
75         /* 2F */ '\u0A2F',   // '/'\r
76         /* 30 */ '\u0A66',   // '0'\r
77         /* 31 */ '\u0A67',   // '1'\r
78         /* 32 */ '\u0A68',   // '2'\r
79         /* 33 */ '\u0A69',   // '3'\r
80         /* 34 */ '\u0A6A',   // '4'\r
81         /* 35 */ '\u0A6B',   // '5'\r
82         /* 36 */ '\u0A6C',   // '6'\r
83         /* 37 */ '\u0A6D',   // '7'\r
84         /* 38 */ '\u0A6E',   // '8'\r
85         /* 39 */ '\u0A6F',   // '9'\r
86         /* 3A */ '\u0A1B',   // ':'\r
87         /* 3B */ '\u0A1A',   // ';'\r
88         /* 3C */ '\u0A37',   // '<'\r
89         /* 3D */ '\u0A43',   // '='\r
90         /* 3E */ '\u0964',   // '>'  (Devanagari danda)\r
91         /* 3F */ '\u0A5F',   // '?'\r
92         /* 40 */ '\u0A45',   // '@'\r
93         /* 41 */ '\u0A13',   // 'A'\r
94         /* 42 */ '\u0A34',   // 'B'\r
95         /* 43 */ '\u0A23',   // 'C'\r
96         /* 44 */ '\u0A05',   // 'D'\r
97         /* 45 */ '\u0A06',   // 'E'\r
98         /* 46 */ '\u0A07',   // 'F'\r
99         /* 47 */ '\u0A09',   // 'G'\r
100         /* 48 */ '\u0A2B',   // 'H'\r
101         /* 49 */ '\u0A18',   // 'I'\r
102         /* 4A */ '\u0A31',   // 'J'\r
103         /* 4B */ '\u0A16',   // 'K'\r
104         /* 4C */ '\u0A25',   // 'L'\r
105         /* 4D */ '\u0A36',   // 'M'\r
106         /* 4E */ '\u0A33',   // 'N'\r
107         /* 4F */ '\u0A27',   // 'O'\r
108         /* 50 */ '\u0A1D',   // 'P'\r
109         /* 51 */ '\u0A14',   // 'Q'\r
110         /* 52 */ '\u0A08',   // 'R'\r
111         /* 53 */ '\u0A0F',   // 'S'\r
112         /* 54 */ '\u0A0A',   // 'T'\r
113         /* 55 */ '\u0A19',   // 'U'\r
114         /* 56 */ '\u0A29',   // 'V'\r
115         /* 57 */ '\u0A10',   // 'W'\r
116         /* 58 */ '\u0A01',   // 'X'\r
117         /* 59 */ '\u0A2D',   // 'Y'\r
118         /* 5A */ '\u0A0E',   // 'Z'\r
119         /* 5B */ '\u0A21',   // '['\r
120         /* 5C */ '\u0A49',   // '\'\r
121         /* 5D */ '\u0A3C',   // ']'\r
122         /* 5E */ '\uFFFF',   // '^'\r
123         /* 5F */ '\u0A03',   // '_'\r
124         /* 60 */ '\u0A4A',   // '`'\r
125         /* 61 */ '\u0A4B',   // 'a'\r
126         /* 62 */ '\u0A35',   // 'b'\r
127         /* 63 */ '\u0A2E',   // 'c'\r
128         /* 64 */ '\u0A4D',   // 'd'\r
129         /* 65 */ '\u0A3E',   // 'e'\r
130         /* 66 */ '\u0A3F',   // 'f'\r
131         /* 67 */ '\u0A41',   // 'g'\r
132         /* 68 */ '\u0A2A',   // 'h'\r
133         /* 69 */ '\u0A17',   // 'i'\r
134         /* 6A */ '\u0A30',   // 'j'\r
135         /* 6B */ '\u0A15',   // 'k'\r
136         /* 6C */ '\u0A24',   // 'l'\r
137         /* 6D */ '\u0A38',   // 'm'\r
138         /* 6E */ '\u0A32',   // 'n'\r
139         /* 6F */ '\u0A26',   // 'o'\r
140         /* 70 */ '\u0A1C',   // 'p'\r
141         /* 71 */ '\u0A4C',   // 'q'\r
142         /* 72 */ '\u0A40',   // 'r'\r
143         /* 73 */ '\u0A47',   // 's'\r
144         /* 74 */ '\u0A42',   // 't'\r
145         /* 75 */ '\u0A39',   // 'u'\r
146         /* 76 */ '\u0A28',   // 'v'\r
147         /* 77 */ '\u0A48',   // 'w'\r
148         /* 78 */ '\u0A70',   // 'x' (Gurmukhi TIPPI rather than BINDI)\r
149         /* 79 */ '\u0A2C',   // 'y'\r
150         /* 7A */ '\u0A46',   // 'z'\r
151         /* 7B */ '\u0A22',   // '{'\r
152         /* 7C */ '\u0A11',   // '|'\r
153         /* 7D */ '\u0A1E',   // '}'\r
154         /* 7E */ '\u0A12',   // '~'\r
155         /* 7F */ '\u007F'    // '\7f'\r
156         };\r
157 \r
158         char[] RA_SUB = {'\u0A4D', '\u0A30'};\r
159 \r
160         substitutionTable = new char[][] {\r
161         RA_SUB\r
162         };\r
163 \r
164         // The following characters followed by Nukta should be replaced\r
165         // by the corresponding character as defined in ISCII91\r
166         char LETTER_KHA            = '\u0A16';\r
167         char LETTER_GA             = '\u0A17';\r
168         char LETTER_JA             = '\u0A1C';\r
169         char LETTER_DDA            = '\u0A21';\r
170         char LETTER_PHA            = '\u0A2B';\r
171 \r
172         // The following characters replace the above characters followed by Nukta. These\r
173         // are defined in one to one correspondence order.\r
174         // NOTE: the inscript keyboard doc. lists a KA + NUKTA and a DDHA + NUKTA\r
175         // neither of which seem to have Unicode code points...\r
176         char LETTER_KHHA           = '\u0A59';\r
177         char LETTER_GHHA           = '\u0A5A';\r
178         char LETTER_ZA             = '\u0A5B';\r
179         char LETTER_RRA            = '\u0A5C';\r
180         char LETTER_FA             = '\u0A5E';\r
181 \r
182         joinWithNukta = new char[] {\r
183         LETTER_KHA,\r
184         LETTER_GA,\r
185         LETTER_JA,\r
186         LETTER_DDA,\r
187         LETTER_PHA\r
188         };\r
189     \r
190         nuktaForm = new char[] {\r
191         LETTER_KHHA,\r
192         LETTER_GHHA,\r
193         LETTER_ZA,\r
194         LETTER_RRA,\r
195         LETTER_FA\r
196         };\r
197     }\r
198 \r
199         return new IndicInputMethodImpl(keyboardMap, joinWithNukta, nuktaForm, substitutionTable);\r
200     }\r
201 }\r
202 \r