2 * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
\r
4 * The program is provided "as is" without any warranty express or
\r
5 * implied, including the warranty of non-infringement and the implied
\r
6 * warranties of merchantibility and fitness for a particular purpose.
\r
7 * IBM will not be liable for any damages suffered by you as a result
\r
8 * of using the Program. In no event will IBM be liable for any
\r
9 * special, indirect or consequential damages or lost profits even if
\r
10 * IBM has been advised of the possibility of their occurrence. IBM
\r
11 * will not be liable for any third party claims against you.
\r
15 * (C) Copyright IBM Corp. 1998, All Rights Reserved
\r
18 package com.ibm.richtext.textpanel;
\r
21 For any incoming character C
\r
22 if you can map C using the following FakeArabicTable, return
\r
24 else if C is from A through Z, return FakeArabicTable(lowercase(C))
\r
28 FakeArabicTable is defined by the following mapping
\r
30 0 0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
\r
31 1 0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
\r
32 2 0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
\r
33 3 0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
\r
34 4 0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
\r
35 5 0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
\r
36 6 0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
\r
37 7 0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
\r
38 8 0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
\r
39 9 0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
\r
41 % 066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
\r
42 . 066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
\r
43 , 060C;ARABIC COMMA;Po;0;R;;;;;N;;;;;
\r
44 - 0640;ARABIC TATWEEL;Lm;0;R;;;;;N;;;;;
\r
45 ' 0652;ARABIC SUKUN;Mn;34;R;;;;;N;;;;;
\r
46 " 0651;ARABIC SHADDA;Mn;33;R;;;;;N;ARABIC SHADDAH;;;;
\r
47 ; 061B;ARABIC SEMICOLON;Po;0;R;;;;;N;;;;;
\r
48 ? 061F;ARABIC QUESTION MARK;Po;0;R;;;;;N;;;;;
\r
50 a 0627;ARABIC LETTER ALEF;Lo;0;R;;;;;N;;;;;
\r
51 A 0639;ARABIC LETTER AIN;Lo;0;R;;;;;N;;;;;
\r
52 b 0628;ARABIC LETTER BEH;Lo;0;R;;;;;N;ARABIC LETTER BAA;;;;
\r
53 c 0635;ARABIC LETTER SAD;Lo;0;R;;;;;N;;;;;
\r
54 d 062F;ARABIC LETTER DAL;Lo;0;R;;;;;N;;;;;
\r
55 D 0630;ARABIC LETTER THAL;Lo;0;R;;;;;N;;;;;
\r
56 E 064B;ARABIC FATHATAN;Mn;27;R;;;;;N;;;;;
\r
57 e 064E;ARABIC FATHA;Mn;30;R;;;;;N;ARABIC FATHAH;;;;
\r
58 f 0641;ARABIC LETTER FEH;Lo;0;R;;;;;N;ARABIC LETTER FA;;;;
\r
59 g 063A;ARABIC LETTER GHAIN;Lo;0;R;;;;;N;;;;;
\r
60 h 062D;ARABIC LETTER HAH;Lo;0;R;;;;;N;ARABIC LETTER HAA;;;;
\r
61 H 0647;ARABIC LETTER HEH;Lo;0;R;;;;;N;ARABIC LETTER HA;;;;
\r
62 I 064D;ARABIC KASRATAN;Mn;29;R;;;;;N;;;;;
\r
63 i 0650;ARABIC KASRA;Mn;32;R;;;;;N;ARABIC KASRAH;;;;
\r
64 j 062C;ARABIC LETTER JEEM;Lo;0;R;;;;;N;;;;;
\r
65 K 062E;ARABIC LETTER KHAH;Lo;0;R;;;;;N;ARABIC LETTER KHAA;;;;
\r
66 k 0643;ARABIC LETTER KAF;Lo;0;R;;;;;N;ARABIC LETTER CAF;;;;
\r
67 l 0644;ARABIC LETTER LAM;Lo;0;R;;;;;N;;;;;
\r
68 m 0645;ARABIC LETTER MEEM;Lo;0;R;;;;;N;;;;;
\r
69 n 0646;ARABIC LETTER NOON;Lo;0;R;;;;;N;;;;;
\r
70 o 064F;ARABIC DAMMA;Mn;31;R;;;;;N;ARABIC DAMMAH;;;;
\r
71 p 0628;ARABIC LETTER BEH;Lo;0;R;;;;;N;ARABIC LETTER BAA;;;;
\r
72 q 0642;ARABIC LETTER QAF;Lo;0;R;;;;;N;;;;;
\r
73 r 0631;ARABIC LETTER REH;Lo;0;R;;;;;N;ARABIC LETTER RA;;;;
\r
74 s 0633;ARABIC LETTER SEEN;Lo;0;R;;;;;N;;;;;
\r
75 S 0634;ARABIC LETTER SHEEN;Lo;0;R;;;;;N;;;;;
\r
76 t 062A;ARABIC LETTER TEH;Lo;0;R;;;;;N;ARABIC LETTER TAA;;;;
\r
77 T 062B;ARABIC LETTER THEH;Lo;0;R;;;;;N;ARABIC LETTER THAA;;;;
\r
78 U 064C;ARABIC DAMMATAN;Mn;28;R;;;;;N;;;;;
\r
79 u 064F;ARABIC DAMMA;Mn;31;R;;;;;N;ARABIC DAMMAH;;;;
\r
80 v 0641;ARABIC LETTER FEH;Lo;0;R;;;;;N;ARABIC LETTER FA;;;;
\r
81 w 0648;ARABIC LETTER WAW;Lo;0;R;;;;;N;;;;;
\r
82 x 0633;ARABIC LETTER SEEN;Lo;0;R;;;;;N;;;;;
\r
83 y 064A;ARABIC LETTER YEH;Lo;0;R;;;;;N;ARABIC LETTER YA;;;;
\r
84 z 0632;ARABIC LETTER ZAIN;Lo;0;R;;;;;N;;;;;
\r
85 Z 0638;ARABIC LETTER ZAH;Lo;0;R;;;;;N;ARABIC LETTER DHAH;;;;
\r
90 * This class implements KeyRemap to produce transliterated Arabic
\r
91 * characters from Latin-1 characters.
\r
94 // NOTE: this class eliminates Arabic vowels which look ugly
\r
95 // in the font in which we happen to be demo'ing. It's totally
\r
97 final class HackArabicTransliteration extends KeyRemap {
\r
99 static final String COPYRIGHT =
\r
100 "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved";
\r
101 public char remap(char c) {
\r
104 case '0': return '\u0660'; // ARABIC-INDIC DIGIT ZERO
\r
105 case '1': return '\u0661'; // ARABIC-INDIC DIGIT ONE
\r
106 case '2': return '\u0662'; // ARABIC-INDIC DIGIT TWO
\r
107 case '3': return '\u0663'; // ARABIC-INDIC DIGIT THREE
\r
108 case '4': return '\u0664'; // ARABIC-INDIC DIGIT FOUR
\r
109 case '5': return '\u0665'; // ARABIC-INDIC DIGIT FIVE
\r
110 case '6': return '\u0666'; // ARABIC-INDIC DIGIT SIX
\r
111 case '7': return '\u0667'; // ARABIC-INDIC DIGIT SEVEN
\r
112 case '8': return '\u0668'; // ARABIC-INDIC DIGIT EIGHT
\r
113 case '9': return '\u0669'; // ARABIC-INDIC DIGIT NINE
\r
115 case '%': return '\u066A'; // ARABIC PERCENT SIGN
\r
116 // the Traditional Arabic font does not contain this character
\r
117 // case '.': return '\u066B'; // ARABIC DECIMAL SEPARATOR
\r
118 case ',': return '\u060C'; // ARABIC COMMA
\r
119 case '-': return '\u0640'; // ARABIC TATWEEL
\r
120 case '\'': return '\u0652'; // ARABIC SUKUN
\r
121 case '"': return '\u0651'; // ARABIC SHADDA
\r
122 case ';': return '\u061B'; // ARABIC SEMICOLON
\r
123 case '?': return '\u061F'; // ARABIC QUESTION MARK
\r
125 case 'a': return '\u0627'; // ARABIC LETTER ALEF
\r
126 case 'A': return '\u0639'; // ARABIC LETTER AIN
\r
127 case 'b': return '\u0628'; // ARABIC LETTER BEH
\r
128 case 'B': return '\u0628'; // ARABIC LETTER BEH
\r
129 case 'c': return '\u0635'; // ARABIC LETTER SAD
\r
130 case 'C': return '\u0635'; // ARABIC LETTER SAD
\r
131 case 'd': return '\u062F'; // ARABIC LETTER DAL
\r
132 case 'D': return '\u0630'; // ARABIC LETTER THAL
\r
133 case 'e': //return '\u064E'; // ARABIC FATHA
\r
134 case 'E': //return '\u064B'; // ARABIC FATHATAN
\r
135 case 'f': return '\u0641'; // ARABIC LETTER FEH
\r
136 case 'F': return '\u0641'; // ARABIC LETTER FEH
\r
137 case 'g': return '\u063A'; // ARABIC LETTER GHAIN
\r
138 case 'G': return '\u063A'; // ARABIC LETTER GHAIN
\r
139 case 'h': return '\u062D'; // ARABIC LETTER HAH
\r
140 case 'H': return '\u0647'; // ARABIC LETTER HEH
\r
141 case 'i': //return '\u0650'; // ARABIC KASRA
\r
142 case 'I': //return '\u064D'; // ARABIC KASRATAN
\r
143 case 'j': return '\u062C'; // ARABIC LETTER JEEM
\r
144 case 'J': return '\u062C'; // ARABIC LETTER JEEM
\r
145 case 'k': return '\u0643'; // ARABIC LETTER KAF
\r
146 case 'K': return '\u062E'; // ARABIC LETTER KHAH
\r
147 case 'l': return '\u0644'; // ARABIC LETTER LAM
\r
148 case 'L': return '\u0644'; // ARABIC LETTER LAM
\r
149 case 'm': return '\u0645'; // ARABIC LETTER MEEM
\r
150 case 'M': return '\u0645'; // ARABIC LETTER MEEM
\r
151 case 'n': return '\u0646'; // ARABIC LETTER NOON
\r
152 case 'N': return '\u0646'; // ARABIC LETTER NOON
\r
153 case 'o': //return '\u064F'; // ARABIC DAMMA
\r
154 case 'O': //return '\u064F'; // ARABIC DAMMA
\r
155 case 'p': return '\u0628'; // ARABIC LETTER BEH
\r
156 case 'P': return '\u0628'; // ARABIC LETTER BEH
\r
157 case 'q': return '\u0642'; // ARABIC LETTER QAF
\r
158 case 'Q': return '\u0642'; // ARABIC LETTER QAF
\r
159 case 'r': return '\u0631'; // ARABIC LETTER REH
\r
160 case 'R': return '\u0631'; // ARABIC LETTER REH
\r
161 case 's': return '\u0633'; // ARABIC LETTER SEEN
\r
162 case 'S': return '\u0634'; // ARABIC LETTER SHEEN
\r
163 case 't': return '\u062A'; // ARABIC LETTER TEH
\r
164 case 'T': return '\u062B'; // ARABIC LETTER THEH
\r
165 case 'U': //return '\u064C'; // ARABIC DAMMATAN
\r
166 case 'u': //return '\u064F'; // ARABIC DAMMA
\r
167 case 'v': return '\u0641'; // ARABIC LETTER FEH
\r
168 case 'V': return '\u0641'; // ARABIC LETTER FEH
\r
169 case 'w': return '\u0648'; // ARABIC LETTER WAW
\r
170 case 'W': return '\u0648'; // ARABIC LETTER WAW
\r
171 case 'x': return '\u0633'; // ARABIC LETTER SEEN
\r
172 case 'X': return '\u0633'; // ARABIC LETTER SEEN
\r
173 case 'y': return '\u064A'; // ARABIC LETTER YEH
\r
174 case 'Y': return '\u064A'; // ARABIC LETTER YEH
\r
175 case 'z': return '\u0632'; // ARABIC LETTER ZAIN
\r
176 case 'Z': return '\u0638'; // ARABIC LETTER ZAH
\r