From 0fe0c8fdb5c2ce9090394034a505427b1aeab176 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Wed, 12 May 2010 15:35:56 +0800 Subject: Generate PinyinParserTable with bopomofo --- src/PinyinParserTable.h | 1142 +++++++++++++++++++++++++++++++++++++++++++++++ src/Types.h | 1 + 2 files changed, 1143 insertions(+) (limited to 'src') diff --git a/src/PinyinParserTable.h b/src/PinyinParserTable.h index d6d1c7c..11dc23d 100644 --- a/src/PinyinParserTable.h +++ b/src/PinyinParserTable.h @@ -1,6 +1,7 @@ static const Pinyin pinyin_table[] = { { /* 0 */ text : "a", + bopomofo : "ㄚ", sheng : "", yun : "a", sheng_id : PINYIN_ID_ZERO, @@ -14,6 +15,7 @@ static const Pinyin pinyin_table[] = { }, { /* 1 */ text : "agn", + bopomofo : "", sheng : "", yun : "ang", sheng_id : PINYIN_ID_ZERO, @@ -27,6 +29,7 @@ static const Pinyin pinyin_table[] = { }, { /* 2 */ text : "ai", + bopomofo : "ㄞ", sheng : "", yun : "ai", sheng_id : PINYIN_ID_ZERO, @@ -40,6 +43,7 @@ static const Pinyin pinyin_table[] = { }, { /* 3 */ text : "amg", + bopomofo : "", sheng : "", yun : "ang", sheng_id : PINYIN_ID_ZERO, @@ -53,6 +57,7 @@ static const Pinyin pinyin_table[] = { }, { /* 4 */ text : "an", + bopomofo : "ㄢ", sheng : "", yun : "an", sheng_id : PINYIN_ID_ZERO, @@ -66,6 +71,7 @@ static const Pinyin pinyin_table[] = { }, { /* 5 */ text : "ang", + bopomofo : "ㄤ", sheng : "", yun : "ang", sheng_id : PINYIN_ID_ZERO, @@ -79,6 +85,7 @@ static const Pinyin pinyin_table[] = { }, { /* 6 */ text : "ao", + bopomofo : "ㄠ", sheng : "", yun : "ao", sheng_id : PINYIN_ID_ZERO, @@ -92,6 +99,7 @@ static const Pinyin pinyin_table[] = { }, { /* 7 */ text : "b", + bopomofo : "ㄅ", sheng : "b", yun : "", sheng_id : PINYIN_ID_B, @@ -105,6 +113,7 @@ static const Pinyin pinyin_table[] = { }, { /* 8 */ text : "ba", + bopomofo : "ㄅㄚ", sheng : "b", yun : "a", sheng_id : PINYIN_ID_B, @@ -118,6 +127,7 @@ static const Pinyin pinyin_table[] = { }, { /* 9 */ text : "bagn", + bopomofo : "", sheng : "b", yun : "ang", sheng_id : PINYIN_ID_B, @@ -131,6 +141,7 @@ static const Pinyin pinyin_table[] = { }, { /* 10 */ text : "bai", + bopomofo : "ㄅㄞ", sheng : "b", yun : "ai", sheng_id : PINYIN_ID_B, @@ -144,6 +155,7 @@ static const Pinyin pinyin_table[] = { }, { /* 11 */ text : "bamg", + bopomofo : "", sheng : "b", yun : "ang", sheng_id : PINYIN_ID_B, @@ -157,6 +169,7 @@ static const Pinyin pinyin_table[] = { }, { /* 12 */ text : "ban", + bopomofo : "ㄅㄢ", sheng : "b", yun : "an", sheng_id : PINYIN_ID_B, @@ -170,6 +183,7 @@ static const Pinyin pinyin_table[] = { }, { /* 13 */ text : "bang", + bopomofo : "ㄅㄤ", sheng : "b", yun : "ang", sheng_id : PINYIN_ID_B, @@ -183,6 +197,7 @@ static const Pinyin pinyin_table[] = { }, { /* 14 */ text : "bao", + bopomofo : "ㄅㄠ", sheng : "b", yun : "ao", sheng_id : PINYIN_ID_B, @@ -196,6 +211,7 @@ static const Pinyin pinyin_table[] = { }, { /* 15 */ text : "begn", + bopomofo : "", sheng : "b", yun : "eng", sheng_id : PINYIN_ID_B, @@ -209,6 +225,7 @@ static const Pinyin pinyin_table[] = { }, { /* 16 */ text : "bei", + bopomofo : "ㄅㄟ", sheng : "b", yun : "ei", sheng_id : PINYIN_ID_B, @@ -222,6 +239,7 @@ static const Pinyin pinyin_table[] = { }, { /* 17 */ text : "bemg", + bopomofo : "", sheng : "b", yun : "eng", sheng_id : PINYIN_ID_B, @@ -235,6 +253,7 @@ static const Pinyin pinyin_table[] = { }, { /* 18 */ text : "ben", + bopomofo : "ㄅㄣ", sheng : "b", yun : "en", sheng_id : PINYIN_ID_B, @@ -248,6 +267,7 @@ static const Pinyin pinyin_table[] = { }, { /* 19 */ text : "beng", + bopomofo : "ㄅㄥ", sheng : "b", yun : "eng", sheng_id : PINYIN_ID_B, @@ -261,6 +281,7 @@ static const Pinyin pinyin_table[] = { }, { /* 20 */ text : "bi", + bopomofo : "ㄅㄧ", sheng : "b", yun : "i", sheng_id : PINYIN_ID_B, @@ -274,6 +295,7 @@ static const Pinyin pinyin_table[] = { }, { /* 21 */ text : "bian", + bopomofo : "ㄅㄧㄢ", sheng : "b", yun : "ian", sheng_id : PINYIN_ID_B, @@ -287,6 +309,7 @@ static const Pinyin pinyin_table[] = { }, { /* 22 */ text : "biang", + bopomofo : "", sheng : "b", yun : "iang", sheng_id : PINYIN_ID_B, @@ -300,6 +323,7 @@ static const Pinyin pinyin_table[] = { }, { /* 23 */ text : "biao", + bopomofo : "ㄅㄧㄠ", sheng : "b", yun : "iao", sheng_id : PINYIN_ID_B, @@ -313,6 +337,7 @@ static const Pinyin pinyin_table[] = { }, { /* 24 */ text : "bie", + bopomofo : "ㄅㄧㄝ", sheng : "b", yun : "ie", sheng_id : PINYIN_ID_B, @@ -326,6 +351,7 @@ static const Pinyin pinyin_table[] = { }, { /* 25 */ text : "bign", + bopomofo : "", sheng : "b", yun : "ing", sheng_id : PINYIN_ID_B, @@ -339,6 +365,7 @@ static const Pinyin pinyin_table[] = { }, { /* 26 */ text : "bimg", + bopomofo : "", sheng : "b", yun : "ing", sheng_id : PINYIN_ID_B, @@ -352,6 +379,7 @@ static const Pinyin pinyin_table[] = { }, { /* 27 */ text : "bin", + bopomofo : "ㄅㄧㄣ", sheng : "b", yun : "in", sheng_id : PINYIN_ID_B, @@ -365,6 +393,7 @@ static const Pinyin pinyin_table[] = { }, { /* 28 */ text : "bing", + bopomofo : "ㄅㄧㄥ", sheng : "b", yun : "ing", sheng_id : PINYIN_ID_B, @@ -378,6 +407,7 @@ static const Pinyin pinyin_table[] = { }, { /* 29 */ text : "bo", + bopomofo : "ㄅㄛ", sheng : "b", yun : "o", sheng_id : PINYIN_ID_B, @@ -391,6 +421,7 @@ static const Pinyin pinyin_table[] = { }, { /* 30 */ text : "bu", + bopomofo : "ㄅㄨ", sheng : "b", yun : "u", sheng_id : PINYIN_ID_B, @@ -404,6 +435,7 @@ static const Pinyin pinyin_table[] = { }, { /* 31 */ text : "c", + bopomofo : "", sheng : "c", yun : "", sheng_id : PINYIN_ID_C, @@ -417,6 +449,7 @@ static const Pinyin pinyin_table[] = { }, { /* 32 */ text : "ca", + bopomofo : "ㄘㄚ", sheng : "c", yun : "a", sheng_id : PINYIN_ID_C, @@ -430,6 +463,7 @@ static const Pinyin pinyin_table[] = { }, { /* 33 */ text : "cagn", + bopomofo : "", sheng : "c", yun : "ang", sheng_id : PINYIN_ID_C, @@ -443,6 +477,7 @@ static const Pinyin pinyin_table[] = { }, { /* 34 */ text : "cai", + bopomofo : "ㄘㄞ", sheng : "c", yun : "ai", sheng_id : PINYIN_ID_C, @@ -456,6 +491,7 @@ static const Pinyin pinyin_table[] = { }, { /* 35 */ text : "camg", + bopomofo : "", sheng : "c", yun : "ang", sheng_id : PINYIN_ID_C, @@ -469,6 +505,7 @@ static const Pinyin pinyin_table[] = { }, { /* 36 */ text : "can", + bopomofo : "ㄘㄢ", sheng : "c", yun : "an", sheng_id : PINYIN_ID_C, @@ -482,6 +519,7 @@ static const Pinyin pinyin_table[] = { }, { /* 37 */ text : "cang", + bopomofo : "ㄘㄤ", sheng : "c", yun : "ang", sheng_id : PINYIN_ID_C, @@ -495,6 +533,7 @@ static const Pinyin pinyin_table[] = { }, { /* 38 */ text : "cao", + bopomofo : "ㄘㄠ", sheng : "c", yun : "ao", sheng_id : PINYIN_ID_C, @@ -508,6 +547,7 @@ static const Pinyin pinyin_table[] = { }, { /* 39 */ text : "ce", + bopomofo : "ㄘㄜ", sheng : "c", yun : "e", sheng_id : PINYIN_ID_C, @@ -521,6 +561,7 @@ static const Pinyin pinyin_table[] = { }, { /* 40 */ text : "cegn", + bopomofo : "", sheng : "c", yun : "eng", sheng_id : PINYIN_ID_C, @@ -534,6 +575,7 @@ static const Pinyin pinyin_table[] = { }, { /* 41 */ text : "cemg", + bopomofo : "", sheng : "c", yun : "eng", sheng_id : PINYIN_ID_C, @@ -547,6 +589,7 @@ static const Pinyin pinyin_table[] = { }, { /* 42 */ text : "cen", + bopomofo : "ㄘㄣ", sheng : "c", yun : "en", sheng_id : PINYIN_ID_C, @@ -560,6 +603,7 @@ static const Pinyin pinyin_table[] = { }, { /* 43 */ text : "ceng", + bopomofo : "ㄘㄥ", sheng : "c", yun : "eng", sheng_id : PINYIN_ID_C, @@ -573,6 +617,7 @@ static const Pinyin pinyin_table[] = { }, { /* 44 */ text : "ch", + bopomofo : "", sheng : "ch", yun : "", sheng_id : PINYIN_ID_CH, @@ -586,6 +631,7 @@ static const Pinyin pinyin_table[] = { }, { /* 45 */ text : "cha", + bopomofo : "ㄔㄚ", sheng : "ch", yun : "a", sheng_id : PINYIN_ID_CH, @@ -599,6 +645,7 @@ static const Pinyin pinyin_table[] = { }, { /* 46 */ text : "chagn", + bopomofo : "", sheng : "ch", yun : "ang", sheng_id : PINYIN_ID_CH, @@ -612,6 +659,7 @@ static const Pinyin pinyin_table[] = { }, { /* 47 */ text : "chai", + bopomofo : "ㄔㄞ", sheng : "ch", yun : "ai", sheng_id : PINYIN_ID_CH, @@ -625,6 +673,7 @@ static const Pinyin pinyin_table[] = { }, { /* 48 */ text : "chamg", + bopomofo : "", sheng : "ch", yun : "ang", sheng_id : PINYIN_ID_CH, @@ -638,6 +687,7 @@ static const Pinyin pinyin_table[] = { }, { /* 49 */ text : "chan", + bopomofo : "ㄔㄢ", sheng : "ch", yun : "an", sheng_id : PINYIN_ID_CH, @@ -651,6 +701,7 @@ static const Pinyin pinyin_table[] = { }, { /* 50 */ text : "chang", + bopomofo : "ㄔㄤ", sheng : "ch", yun : "ang", sheng_id : PINYIN_ID_CH, @@ -664,6 +715,7 @@ static const Pinyin pinyin_table[] = { }, { /* 51 */ text : "chao", + bopomofo : "ㄔㄠ", sheng : "ch", yun : "ao", sheng_id : PINYIN_ID_CH, @@ -677,6 +729,7 @@ static const Pinyin pinyin_table[] = { }, { /* 52 */ text : "che", + bopomofo : "ㄔㄜ", sheng : "ch", yun : "e", sheng_id : PINYIN_ID_CH, @@ -690,6 +743,7 @@ static const Pinyin pinyin_table[] = { }, { /* 53 */ text : "chegn", + bopomofo : "", sheng : "ch", yun : "eng", sheng_id : PINYIN_ID_CH, @@ -703,6 +757,7 @@ static const Pinyin pinyin_table[] = { }, { /* 54 */ text : "chemg", + bopomofo : "", sheng : "ch", yun : "eng", sheng_id : PINYIN_ID_CH, @@ -716,6 +771,7 @@ static const Pinyin pinyin_table[] = { }, { /* 55 */ text : "chen", + bopomofo : "ㄔㄣ", sheng : "ch", yun : "en", sheng_id : PINYIN_ID_CH, @@ -729,6 +785,7 @@ static const Pinyin pinyin_table[] = { }, { /* 56 */ text : "cheng", + bopomofo : "ㄔㄥ", sheng : "ch", yun : "eng", sheng_id : PINYIN_ID_CH, @@ -742,6 +799,7 @@ static const Pinyin pinyin_table[] = { }, { /* 57 */ text : "chi", + bopomofo : "ㄔ", sheng : "ch", yun : "i", sheng_id : PINYIN_ID_CH, @@ -755,6 +813,7 @@ static const Pinyin pinyin_table[] = { }, { /* 58 */ text : "chogn", + bopomofo : "", sheng : "ch", yun : "ong", sheng_id : PINYIN_ID_CH, @@ -768,6 +827,7 @@ static const Pinyin pinyin_table[] = { }, { /* 59 */ text : "chomg", + bopomofo : "", sheng : "ch", yun : "ong", sheng_id : PINYIN_ID_CH, @@ -781,6 +841,7 @@ static const Pinyin pinyin_table[] = { }, { /* 60 */ text : "chong", + bopomofo : "ㄔㄨㄥ", sheng : "ch", yun : "ong", sheng_id : PINYIN_ID_CH, @@ -794,6 +855,7 @@ static const Pinyin pinyin_table[] = { }, { /* 61 */ text : "chou", + bopomofo : "ㄔㄡ", sheng : "ch", yun : "ou", sheng_id : PINYIN_ID_CH, @@ -807,6 +869,7 @@ static const Pinyin pinyin_table[] = { }, { /* 62 */ text : "chu", + bopomofo : "ㄔㄨ", sheng : "ch", yun : "u", sheng_id : PINYIN_ID_CH, @@ -820,6 +883,7 @@ static const Pinyin pinyin_table[] = { }, { /* 63 */ text : "chuagn", + bopomofo : "", sheng : "ch", yun : "uang", sheng_id : PINYIN_ID_CH, @@ -833,6 +897,7 @@ static const Pinyin pinyin_table[] = { }, { /* 64 */ text : "chuai", + bopomofo : "ㄔㄨㄞ", sheng : "ch", yun : "uai", sheng_id : PINYIN_ID_CH, @@ -846,6 +911,7 @@ static const Pinyin pinyin_table[] = { }, { /* 65 */ text : "chuamg", + bopomofo : "", sheng : "ch", yun : "uang", sheng_id : PINYIN_ID_CH, @@ -859,6 +925,7 @@ static const Pinyin pinyin_table[] = { }, { /* 66 */ text : "chuan", + bopomofo : "ㄔㄨㄢ", sheng : "ch", yun : "uan", sheng_id : PINYIN_ID_CH, @@ -872,6 +939,7 @@ static const Pinyin pinyin_table[] = { }, { /* 67 */ text : "chuang", + bopomofo : "ㄔㄨㄤ", sheng : "ch", yun : "uang", sheng_id : PINYIN_ID_CH, @@ -885,6 +953,7 @@ static const Pinyin pinyin_table[] = { }, { /* 68 */ text : "chuei", + bopomofo : "", sheng : "ch", yun : "ui", sheng_id : PINYIN_ID_CH, @@ -898,6 +967,7 @@ static const Pinyin pinyin_table[] = { }, { /* 69 */ text : "chuen", + bopomofo : "", sheng : "ch", yun : "un", sheng_id : PINYIN_ID_CH, @@ -911,6 +981,7 @@ static const Pinyin pinyin_table[] = { }, { /* 70 */ text : "chui", + bopomofo : "ㄔㄨㄟ", sheng : "ch", yun : "ui", sheng_id : PINYIN_ID_CH, @@ -924,6 +995,7 @@ static const Pinyin pinyin_table[] = { }, { /* 71 */ text : "chun", + bopomofo : "ㄔㄨㄣ", sheng : "ch", yun : "un", sheng_id : PINYIN_ID_CH, @@ -937,6 +1009,7 @@ static const Pinyin pinyin_table[] = { }, { /* 72 */ text : "chuo", + bopomofo : "ㄔㄨㄛ", sheng : "ch", yun : "uo", sheng_id : PINYIN_ID_CH, @@ -950,6 +1023,7 @@ static const Pinyin pinyin_table[] = { }, { /* 73 */ text : "ci", + bopomofo : "ㄘ", sheng : "c", yun : "i", sheng_id : PINYIN_ID_C, @@ -963,6 +1037,7 @@ static const Pinyin pinyin_table[] = { }, { /* 74 */ text : "cogn", + bopomofo : "", sheng : "c", yun : "ong", sheng_id : PINYIN_ID_C, @@ -976,6 +1051,7 @@ static const Pinyin pinyin_table[] = { }, { /* 75 */ text : "comg", + bopomofo : "", sheng : "c", yun : "ong", sheng_id : PINYIN_ID_C, @@ -989,6 +1065,7 @@ static const Pinyin pinyin_table[] = { }, { /* 76 */ text : "cong", + bopomofo : "ㄘㄨㄥ", sheng : "c", yun : "ong", sheng_id : PINYIN_ID_C, @@ -1002,6 +1079,7 @@ static const Pinyin pinyin_table[] = { }, { /* 77 */ text : "cou", + bopomofo : "ㄘㄡ", sheng : "c", yun : "ou", sheng_id : PINYIN_ID_C, @@ -1015,6 +1093,7 @@ static const Pinyin pinyin_table[] = { }, { /* 78 */ text : "cu", + bopomofo : "ㄘㄨ", sheng : "c", yun : "u", sheng_id : PINYIN_ID_C, @@ -1028,6 +1107,7 @@ static const Pinyin pinyin_table[] = { }, { /* 79 */ text : "cuai", + bopomofo : "", sheng : "c", yun : "uai", sheng_id : PINYIN_ID_C, @@ -1041,6 +1121,7 @@ static const Pinyin pinyin_table[] = { }, { /* 80 */ text : "cuan", + bopomofo : "ㄘㄨㄢ", sheng : "c", yun : "uan", sheng_id : PINYIN_ID_C, @@ -1054,6 +1135,7 @@ static const Pinyin pinyin_table[] = { }, { /* 81 */ text : "cuang", + bopomofo : "", sheng : "c", yun : "uang", sheng_id : PINYIN_ID_C, @@ -1067,6 +1149,7 @@ static const Pinyin pinyin_table[] = { }, { /* 82 */ text : "cuei", + bopomofo : "", sheng : "c", yun : "ui", sheng_id : PINYIN_ID_C, @@ -1080,6 +1163,7 @@ static const Pinyin pinyin_table[] = { }, { /* 83 */ text : "cuen", + bopomofo : "", sheng : "c", yun : "un", sheng_id : PINYIN_ID_C, @@ -1093,6 +1177,7 @@ static const Pinyin pinyin_table[] = { }, { /* 84 */ text : "cui", + bopomofo : "ㄘㄨㄟ", sheng : "c", yun : "ui", sheng_id : PINYIN_ID_C, @@ -1106,6 +1191,7 @@ static const Pinyin pinyin_table[] = { }, { /* 85 */ text : "cun", + bopomofo : "ㄘㄨㄣ", sheng : "c", yun : "un", sheng_id : PINYIN_ID_C, @@ -1119,6 +1205,7 @@ static const Pinyin pinyin_table[] = { }, { /* 86 */ text : "cuo", + bopomofo : "ㄘㄨㄛ", sheng : "c", yun : "uo", sheng_id : PINYIN_ID_C, @@ -1132,6 +1219,7 @@ static const Pinyin pinyin_table[] = { }, { /* 87 */ text : "d", + bopomofo : "ㄉ", sheng : "d", yun : "", sheng_id : PINYIN_ID_D, @@ -1145,6 +1233,7 @@ static const Pinyin pinyin_table[] = { }, { /* 88 */ text : "da", + bopomofo : "ㄉㄚ", sheng : "d", yun : "a", sheng_id : PINYIN_ID_D, @@ -1158,6 +1247,7 @@ static const Pinyin pinyin_table[] = { }, { /* 89 */ text : "dagn", + bopomofo : "", sheng : "d", yun : "ang", sheng_id : PINYIN_ID_D, @@ -1171,6 +1261,7 @@ static const Pinyin pinyin_table[] = { }, { /* 90 */ text : "dai", + bopomofo : "ㄉㄞ", sheng : "d", yun : "ai", sheng_id : PINYIN_ID_D, @@ -1184,6 +1275,7 @@ static const Pinyin pinyin_table[] = { }, { /* 91 */ text : "damg", + bopomofo : "", sheng : "d", yun : "ang", sheng_id : PINYIN_ID_D, @@ -1197,6 +1289,7 @@ static const Pinyin pinyin_table[] = { }, { /* 92 */ text : "dan", + bopomofo : "ㄉㄢ", sheng : "d", yun : "an", sheng_id : PINYIN_ID_D, @@ -1210,6 +1303,7 @@ static const Pinyin pinyin_table[] = { }, { /* 93 */ text : "dang", + bopomofo : "ㄉㄤ", sheng : "d", yun : "ang", sheng_id : PINYIN_ID_D, @@ -1223,6 +1317,7 @@ static const Pinyin pinyin_table[] = { }, { /* 94 */ text : "dao", + bopomofo : "ㄉㄠ", sheng : "d", yun : "ao", sheng_id : PINYIN_ID_D, @@ -1236,6 +1331,7 @@ static const Pinyin pinyin_table[] = { }, { /* 95 */ text : "de", + bopomofo : "ㄉㄜ", sheng : "d", yun : "e", sheng_id : PINYIN_ID_D, @@ -1249,6 +1345,7 @@ static const Pinyin pinyin_table[] = { }, { /* 96 */ text : "degn", + bopomofo : "", sheng : "d", yun : "eng", sheng_id : PINYIN_ID_D, @@ -1262,6 +1359,7 @@ static const Pinyin pinyin_table[] = { }, { /* 97 */ text : "dei", + bopomofo : "ㄉㄟ", sheng : "d", yun : "ei", sheng_id : PINYIN_ID_D, @@ -1275,6 +1373,7 @@ static const Pinyin pinyin_table[] = { }, { /* 98 */ text : "demg", + bopomofo : "", sheng : "d", yun : "eng", sheng_id : PINYIN_ID_D, @@ -1288,6 +1387,7 @@ static const Pinyin pinyin_table[] = { }, { /* 99 */ text : "den", + bopomofo : "ㄉㄣ", sheng : "d", yun : "en", sheng_id : PINYIN_ID_D, @@ -1301,6 +1401,7 @@ static const Pinyin pinyin_table[] = { }, { /* 100 */ text : "deng", + bopomofo : "ㄉㄥ", sheng : "d", yun : "eng", sheng_id : PINYIN_ID_D, @@ -1314,6 +1415,7 @@ static const Pinyin pinyin_table[] = { }, { /* 101 */ text : "di", + bopomofo : "ㄉㄧ", sheng : "d", yun : "i", sheng_id : PINYIN_ID_D, @@ -1327,6 +1429,7 @@ static const Pinyin pinyin_table[] = { }, { /* 102 */ text : "dia", + bopomofo : "ㄉㄧㄚ", sheng : "d", yun : "ia", sheng_id : PINYIN_ID_D, @@ -1340,6 +1443,7 @@ static const Pinyin pinyin_table[] = { }, { /* 103 */ text : "dian", + bopomofo : "ㄉㄧㄢ", sheng : "d", yun : "ian", sheng_id : PINYIN_ID_D, @@ -1353,6 +1457,7 @@ static const Pinyin pinyin_table[] = { }, { /* 104 */ text : "diang", + bopomofo : "", sheng : "d", yun : "iang", sheng_id : PINYIN_ID_D, @@ -1366,6 +1471,7 @@ static const Pinyin pinyin_table[] = { }, { /* 105 */ text : "diao", + bopomofo : "ㄉㄧㄠ", sheng : "d", yun : "iao", sheng_id : PINYIN_ID_D, @@ -1379,6 +1485,7 @@ static const Pinyin pinyin_table[] = { }, { /* 106 */ text : "die", + bopomofo : "ㄉㄧㄝ", sheng : "d", yun : "ie", sheng_id : PINYIN_ID_D, @@ -1392,6 +1499,7 @@ static const Pinyin pinyin_table[] = { }, { /* 107 */ text : "dign", + bopomofo : "", sheng : "d", yun : "ing", sheng_id : PINYIN_ID_D, @@ -1405,6 +1513,7 @@ static const Pinyin pinyin_table[] = { }, { /* 108 */ text : "dimg", + bopomofo : "", sheng : "d", yun : "ing", sheng_id : PINYIN_ID_D, @@ -1418,6 +1527,7 @@ static const Pinyin pinyin_table[] = { }, { /* 109 */ text : "din", + bopomofo : "ㄉㄧㄣ", sheng : "d", yun : "in", sheng_id : PINYIN_ID_D, @@ -1431,6 +1541,7 @@ static const Pinyin pinyin_table[] = { }, { /* 110 */ text : "ding", + bopomofo : "ㄉㄧㄥ", sheng : "d", yun : "ing", sheng_id : PINYIN_ID_D, @@ -1444,6 +1555,7 @@ static const Pinyin pinyin_table[] = { }, { /* 111 */ text : "diou", + bopomofo : "", sheng : "d", yun : "iu", sheng_id : PINYIN_ID_D, @@ -1457,6 +1569,7 @@ static const Pinyin pinyin_table[] = { }, { /* 112 */ text : "diu", + bopomofo : "ㄉㄧㄡ", sheng : "d", yun : "iu", sheng_id : PINYIN_ID_D, @@ -1470,6 +1583,7 @@ static const Pinyin pinyin_table[] = { }, { /* 113 */ text : "dogn", + bopomofo : "", sheng : "d", yun : "ong", sheng_id : PINYIN_ID_D, @@ -1483,6 +1597,7 @@ static const Pinyin pinyin_table[] = { }, { /* 114 */ text : "domg", + bopomofo : "", sheng : "d", yun : "ong", sheng_id : PINYIN_ID_D, @@ -1496,6 +1611,7 @@ static const Pinyin pinyin_table[] = { }, { /* 115 */ text : "dong", + bopomofo : "ㄉㄨㄥ", sheng : "d", yun : "ong", sheng_id : PINYIN_ID_D, @@ -1509,6 +1625,7 @@ static const Pinyin pinyin_table[] = { }, { /* 116 */ text : "dou", + bopomofo : "ㄉㄡ", sheng : "d", yun : "ou", sheng_id : PINYIN_ID_D, @@ -1522,6 +1639,7 @@ static const Pinyin pinyin_table[] = { }, { /* 117 */ text : "du", + bopomofo : "ㄉㄨ", sheng : "d", yun : "u", sheng_id : PINYIN_ID_D, @@ -1535,6 +1653,7 @@ static const Pinyin pinyin_table[] = { }, { /* 118 */ text : "duan", + bopomofo : "ㄉㄨㄢ", sheng : "d", yun : "uan", sheng_id : PINYIN_ID_D, @@ -1548,6 +1667,7 @@ static const Pinyin pinyin_table[] = { }, { /* 119 */ text : "duang", + bopomofo : "", sheng : "d", yun : "uang", sheng_id : PINYIN_ID_D, @@ -1561,6 +1681,7 @@ static const Pinyin pinyin_table[] = { }, { /* 120 */ text : "duei", + bopomofo : "", sheng : "d", yun : "ui", sheng_id : PINYIN_ID_D, @@ -1574,6 +1695,7 @@ static const Pinyin pinyin_table[] = { }, { /* 121 */ text : "duen", + bopomofo : "", sheng : "d", yun : "un", sheng_id : PINYIN_ID_D, @@ -1587,6 +1709,7 @@ static const Pinyin pinyin_table[] = { }, { /* 122 */ text : "dui", + bopomofo : "ㄉㄨㄟ", sheng : "d", yun : "ui", sheng_id : PINYIN_ID_D, @@ -1600,6 +1723,7 @@ static const Pinyin pinyin_table[] = { }, { /* 123 */ text : "dun", + bopomofo : "ㄉㄨㄣ", sheng : "d", yun : "un", sheng_id : PINYIN_ID_D, @@ -1613,6 +1737,7 @@ static const Pinyin pinyin_table[] = { }, { /* 124 */ text : "duo", + bopomofo : "ㄉㄨㄛ", sheng : "d", yun : "uo", sheng_id : PINYIN_ID_D, @@ -1626,6 +1751,7 @@ static const Pinyin pinyin_table[] = { }, { /* 125 */ text : "e", + bopomofo : "ㄜ", sheng : "", yun : "e", sheng_id : PINYIN_ID_ZERO, @@ -1639,6 +1765,7 @@ static const Pinyin pinyin_table[] = { }, { /* 126 */ text : "ei", + bopomofo : "ㄟ", sheng : "", yun : "ei", sheng_id : PINYIN_ID_ZERO, @@ -1652,6 +1779,7 @@ static const Pinyin pinyin_table[] = { }, { /* 127 */ text : "en", + bopomofo : "ㄣ", sheng : "", yun : "en", sheng_id : PINYIN_ID_ZERO, @@ -1665,6 +1793,7 @@ static const Pinyin pinyin_table[] = { }, { /* 128 */ text : "er", + bopomofo : "ㄦ", sheng : "", yun : "er", sheng_id : PINYIN_ID_ZERO, @@ -1678,6 +1807,7 @@ static const Pinyin pinyin_table[] = { }, { /* 129 */ text : "f", + bopomofo : "ㄈ", sheng : "f", yun : "", sheng_id : PINYIN_ID_F, @@ -1691,6 +1821,7 @@ static const Pinyin pinyin_table[] = { }, { /* 130 */ text : "fa", + bopomofo : "ㄈㄚ", sheng : "f", yun : "a", sheng_id : PINYIN_ID_F, @@ -1704,6 +1835,7 @@ static const Pinyin pinyin_table[] = { }, { /* 131 */ text : "fagn", + bopomofo : "", sheng : "f", yun : "ang", sheng_id : PINYIN_ID_F, @@ -1717,6 +1849,7 @@ static const Pinyin pinyin_table[] = { }, { /* 132 */ text : "fai", + bopomofo : "", sheng : "f", yun : "ai", sheng_id : PINYIN_ID_F, @@ -1730,6 +1863,7 @@ static const Pinyin pinyin_table[] = { }, { /* 133 */ text : "famg", + bopomofo : "", sheng : "f", yun : "ang", sheng_id : PINYIN_ID_F, @@ -1743,6 +1877,7 @@ static const Pinyin pinyin_table[] = { }, { /* 134 */ text : "fan", + bopomofo : "ㄈㄢ", sheng : "f", yun : "an", sheng_id : PINYIN_ID_F, @@ -1756,6 +1891,7 @@ static const Pinyin pinyin_table[] = { }, { /* 135 */ text : "fang", + bopomofo : "ㄈㄤ", sheng : "f", yun : "ang", sheng_id : PINYIN_ID_F, @@ -1769,6 +1905,7 @@ static const Pinyin pinyin_table[] = { }, { /* 136 */ text : "fao", + bopomofo : "", sheng : "f", yun : "ao", sheng_id : PINYIN_ID_F, @@ -1782,6 +1919,7 @@ static const Pinyin pinyin_table[] = { }, { /* 137 */ text : "fe", + bopomofo : "ㄈㄜ", sheng : "f", yun : "e", sheng_id : PINYIN_ID_F, @@ -1795,6 +1933,7 @@ static const Pinyin pinyin_table[] = { }, { /* 138 */ text : "fegn", + bopomofo : "", sheng : "f", yun : "eng", sheng_id : PINYIN_ID_F, @@ -1808,6 +1947,7 @@ static const Pinyin pinyin_table[] = { }, { /* 139 */ text : "fei", + bopomofo : "ㄈㄟ", sheng : "f", yun : "ei", sheng_id : PINYIN_ID_F, @@ -1821,6 +1961,7 @@ static const Pinyin pinyin_table[] = { }, { /* 140 */ text : "femg", + bopomofo : "", sheng : "f", yun : "eng", sheng_id : PINYIN_ID_F, @@ -1834,6 +1975,7 @@ static const Pinyin pinyin_table[] = { }, { /* 141 */ text : "fen", + bopomofo : "ㄈㄣ", sheng : "f", yun : "en", sheng_id : PINYIN_ID_F, @@ -1847,6 +1989,7 @@ static const Pinyin pinyin_table[] = { }, { /* 142 */ text : "feng", + bopomofo : "ㄈㄥ", sheng : "f", yun : "eng", sheng_id : PINYIN_ID_F, @@ -1860,6 +2003,7 @@ static const Pinyin pinyin_table[] = { }, { /* 143 */ text : "fo", + bopomofo : "ㄈㄛ", sheng : "f", yun : "o", sheng_id : PINYIN_ID_F, @@ -1873,6 +2017,7 @@ static const Pinyin pinyin_table[] = { }, { /* 144 */ text : "fong", + bopomofo : "", sheng : "f", yun : "ong", sheng_id : PINYIN_ID_F, @@ -1886,6 +2031,7 @@ static const Pinyin pinyin_table[] = { }, { /* 145 */ text : "fou", + bopomofo : "ㄈㄡ", sheng : "f", yun : "ou", sheng_id : PINYIN_ID_F, @@ -1899,6 +2045,7 @@ static const Pinyin pinyin_table[] = { }, { /* 146 */ text : "fu", + bopomofo : "ㄈㄨ", sheng : "f", yun : "u", sheng_id : PINYIN_ID_F, @@ -1912,6 +2059,7 @@ static const Pinyin pinyin_table[] = { }, { /* 147 */ text : "fua", + bopomofo : "", sheng : "f", yun : "ua", sheng_id : PINYIN_ID_F, @@ -1925,6 +2073,7 @@ static const Pinyin pinyin_table[] = { }, { /* 148 */ text : "fuai", + bopomofo : "", sheng : "f", yun : "uai", sheng_id : PINYIN_ID_F, @@ -1938,6 +2087,7 @@ static const Pinyin pinyin_table[] = { }, { /* 149 */ text : "fuan", + bopomofo : "", sheng : "f", yun : "uan", sheng_id : PINYIN_ID_F, @@ -1951,6 +2101,7 @@ static const Pinyin pinyin_table[] = { }, { /* 150 */ text : "fuang", + bopomofo : "", sheng : "f", yun : "uang", sheng_id : PINYIN_ID_F, @@ -1964,6 +2115,7 @@ static const Pinyin pinyin_table[] = { }, { /* 151 */ text : "fuei", + bopomofo : "", sheng : "f", yun : "ui", sheng_id : PINYIN_ID_F, @@ -1977,6 +2129,7 @@ static const Pinyin pinyin_table[] = { }, { /* 152 */ text : "fuen", + bopomofo : "", sheng : "f", yun : "un", sheng_id : PINYIN_ID_F, @@ -1990,6 +2143,7 @@ static const Pinyin pinyin_table[] = { }, { /* 153 */ text : "fui", + bopomofo : "", sheng : "f", yun : "ui", sheng_id : PINYIN_ID_F, @@ -2003,6 +2157,7 @@ static const Pinyin pinyin_table[] = { }, { /* 154 */ text : "fun", + bopomofo : "", sheng : "f", yun : "un", sheng_id : PINYIN_ID_F, @@ -2016,6 +2171,7 @@ static const Pinyin pinyin_table[] = { }, { /* 155 */ text : "fuo", + bopomofo : "", sheng : "f", yun : "uo", sheng_id : PINYIN_ID_F, @@ -2029,6 +2185,7 @@ static const Pinyin pinyin_table[] = { }, { /* 156 */ text : "g", + bopomofo : "ㄍ", sheng : "g", yun : "", sheng_id : PINYIN_ID_G, @@ -2042,6 +2199,7 @@ static const Pinyin pinyin_table[] = { }, { /* 157 */ text : "ga", + bopomofo : "ㄍㄚ", sheng : "g", yun : "a", sheng_id : PINYIN_ID_G, @@ -2055,6 +2213,7 @@ static const Pinyin pinyin_table[] = { }, { /* 158 */ text : "gagn", + bopomofo : "", sheng : "g", yun : "ang", sheng_id : PINYIN_ID_G, @@ -2068,6 +2227,7 @@ static const Pinyin pinyin_table[] = { }, { /* 159 */ text : "gai", + bopomofo : "ㄍㄞ", sheng : "g", yun : "ai", sheng_id : PINYIN_ID_G, @@ -2081,6 +2241,7 @@ static const Pinyin pinyin_table[] = { }, { /* 160 */ text : "gamg", + bopomofo : "", sheng : "g", yun : "ang", sheng_id : PINYIN_ID_G, @@ -2094,6 +2255,7 @@ static const Pinyin pinyin_table[] = { }, { /* 161 */ text : "gan", + bopomofo : "ㄍㄢ", sheng : "g", yun : "an", sheng_id : PINYIN_ID_G, @@ -2107,6 +2269,7 @@ static const Pinyin pinyin_table[] = { }, { /* 162 */ text : "gang", + bopomofo : "ㄍㄤ", sheng : "g", yun : "ang", sheng_id : PINYIN_ID_G, @@ -2120,6 +2283,7 @@ static const Pinyin pinyin_table[] = { }, { /* 163 */ text : "gao", + bopomofo : "ㄍㄠ", sheng : "g", yun : "ao", sheng_id : PINYIN_ID_G, @@ -2133,6 +2297,7 @@ static const Pinyin pinyin_table[] = { }, { /* 164 */ text : "ge", + bopomofo : "ㄍㄜ", sheng : "g", yun : "e", sheng_id : PINYIN_ID_G, @@ -2146,6 +2311,7 @@ static const Pinyin pinyin_table[] = { }, { /* 165 */ text : "gegn", + bopomofo : "", sheng : "g", yun : "eng", sheng_id : PINYIN_ID_G, @@ -2159,6 +2325,7 @@ static const Pinyin pinyin_table[] = { }, { /* 166 */ text : "gei", + bopomofo : "ㄍㄟ", sheng : "g", yun : "ei", sheng_id : PINYIN_ID_G, @@ -2172,6 +2339,7 @@ static const Pinyin pinyin_table[] = { }, { /* 167 */ text : "gemg", + bopomofo : "", sheng : "g", yun : "eng", sheng_id : PINYIN_ID_G, @@ -2185,6 +2353,7 @@ static const Pinyin pinyin_table[] = { }, { /* 168 */ text : "gen", + bopomofo : "ㄍㄣ", sheng : "g", yun : "en", sheng_id : PINYIN_ID_G, @@ -2198,6 +2367,7 @@ static const Pinyin pinyin_table[] = { }, { /* 169 */ text : "geng", + bopomofo : "ㄍㄥ", sheng : "g", yun : "eng", sheng_id : PINYIN_ID_G, @@ -2211,6 +2381,7 @@ static const Pinyin pinyin_table[] = { }, { /* 170 */ text : "gogn", + bopomofo : "", sheng : "g", yun : "ong", sheng_id : PINYIN_ID_G, @@ -2224,6 +2395,7 @@ static const Pinyin pinyin_table[] = { }, { /* 171 */ text : "gomg", + bopomofo : "", sheng : "g", yun : "ong", sheng_id : PINYIN_ID_G, @@ -2237,6 +2409,7 @@ static const Pinyin pinyin_table[] = { }, { /* 172 */ text : "gong", + bopomofo : "ㄍㄨㄥ", sheng : "g", yun : "ong", sheng_id : PINYIN_ID_G, @@ -2250,6 +2423,7 @@ static const Pinyin pinyin_table[] = { }, { /* 173 */ text : "gou", + bopomofo : "ㄍㄡ", sheng : "g", yun : "ou", sheng_id : PINYIN_ID_G, @@ -2263,6 +2437,7 @@ static const Pinyin pinyin_table[] = { }, { /* 174 */ text : "gu", + bopomofo : "ㄍㄨ", sheng : "g", yun : "u", sheng_id : PINYIN_ID_G, @@ -2276,6 +2451,7 @@ static const Pinyin pinyin_table[] = { }, { /* 175 */ text : "gua", + bopomofo : "ㄍㄨㄚ", sheng : "g", yun : "ua", sheng_id : PINYIN_ID_G, @@ -2289,6 +2465,7 @@ static const Pinyin pinyin_table[] = { }, { /* 176 */ text : "guagn", + bopomofo : "", sheng : "g", yun : "uang", sheng_id : PINYIN_ID_G, @@ -2302,6 +2479,7 @@ static const Pinyin pinyin_table[] = { }, { /* 177 */ text : "guai", + bopomofo : "ㄍㄨㄞ", sheng : "g", yun : "uai", sheng_id : PINYIN_ID_G, @@ -2315,6 +2493,7 @@ static const Pinyin pinyin_table[] = { }, { /* 178 */ text : "guamg", + bopomofo : "", sheng : "g", yun : "uang", sheng_id : PINYIN_ID_G, @@ -2328,6 +2507,7 @@ static const Pinyin pinyin_table[] = { }, { /* 179 */ text : "guan", + bopomofo : "ㄍㄨㄢ", sheng : "g", yun : "uan", sheng_id : PINYIN_ID_G, @@ -2341,6 +2521,7 @@ static const Pinyin pinyin_table[] = { }, { /* 180 */ text : "guang", + bopomofo : "ㄍㄨㄤ", sheng : "g", yun : "uang", sheng_id : PINYIN_ID_G, @@ -2354,6 +2535,7 @@ static const Pinyin pinyin_table[] = { }, { /* 181 */ text : "guei", + bopomofo : "", sheng : "g", yun : "ui", sheng_id : PINYIN_ID_G, @@ -2367,6 +2549,7 @@ static const Pinyin pinyin_table[] = { }, { /* 182 */ text : "guen", + bopomofo : "", sheng : "g", yun : "un", sheng_id : PINYIN_ID_G, @@ -2380,6 +2563,7 @@ static const Pinyin pinyin_table[] = { }, { /* 183 */ text : "gui", + bopomofo : "ㄍㄨㄟ", sheng : "g", yun : "ui", sheng_id : PINYIN_ID_G, @@ -2393,6 +2577,7 @@ static const Pinyin pinyin_table[] = { }, { /* 184 */ text : "gun", + bopomofo : "ㄍㄨㄣ", sheng : "g", yun : "un", sheng_id : PINYIN_ID_G, @@ -2406,6 +2591,7 @@ static const Pinyin pinyin_table[] = { }, { /* 185 */ text : "guo", + bopomofo : "ㄍㄨㄛ", sheng : "g", yun : "uo", sheng_id : PINYIN_ID_G, @@ -2419,6 +2605,7 @@ static const Pinyin pinyin_table[] = { }, { /* 186 */ text : "h", + bopomofo : "ㄏ", sheng : "h", yun : "", sheng_id : PINYIN_ID_H, @@ -2432,6 +2619,7 @@ static const Pinyin pinyin_table[] = { }, { /* 187 */ text : "ha", + bopomofo : "ㄏㄚ", sheng : "h", yun : "a", sheng_id : PINYIN_ID_H, @@ -2445,6 +2633,7 @@ static const Pinyin pinyin_table[] = { }, { /* 188 */ text : "hagn", + bopomofo : "", sheng : "h", yun : "ang", sheng_id : PINYIN_ID_H, @@ -2458,6 +2647,7 @@ static const Pinyin pinyin_table[] = { }, { /* 189 */ text : "hai", + bopomofo : "ㄏㄞ", sheng : "h", yun : "ai", sheng_id : PINYIN_ID_H, @@ -2471,6 +2661,7 @@ static const Pinyin pinyin_table[] = { }, { /* 190 */ text : "hamg", + bopomofo : "", sheng : "h", yun : "ang", sheng_id : PINYIN_ID_H, @@ -2484,6 +2675,7 @@ static const Pinyin pinyin_table[] = { }, { /* 191 */ text : "han", + bopomofo : "ㄏㄢ", sheng : "h", yun : "an", sheng_id : PINYIN_ID_H, @@ -2497,6 +2689,7 @@ static const Pinyin pinyin_table[] = { }, { /* 192 */ text : "hang", + bopomofo : "ㄏㄤ", sheng : "h", yun : "ang", sheng_id : PINYIN_ID_H, @@ -2510,6 +2703,7 @@ static const Pinyin pinyin_table[] = { }, { /* 193 */ text : "hao", + bopomofo : "ㄏㄠ", sheng : "h", yun : "ao", sheng_id : PINYIN_ID_H, @@ -2523,6 +2717,7 @@ static const Pinyin pinyin_table[] = { }, { /* 194 */ text : "he", + bopomofo : "ㄏㄜ", sheng : "h", yun : "e", sheng_id : PINYIN_ID_H, @@ -2536,6 +2731,7 @@ static const Pinyin pinyin_table[] = { }, { /* 195 */ text : "hegn", + bopomofo : "", sheng : "h", yun : "eng", sheng_id : PINYIN_ID_H, @@ -2549,6 +2745,7 @@ static const Pinyin pinyin_table[] = { }, { /* 196 */ text : "hei", + bopomofo : "ㄏㄟ", sheng : "h", yun : "ei", sheng_id : PINYIN_ID_H, @@ -2562,6 +2759,7 @@ static const Pinyin pinyin_table[] = { }, { /* 197 */ text : "hemg", + bopomofo : "", sheng : "h", yun : "eng", sheng_id : PINYIN_ID_H, @@ -2575,6 +2773,7 @@ static const Pinyin pinyin_table[] = { }, { /* 198 */ text : "hen", + bopomofo : "ㄏㄣ", sheng : "h", yun : "en", sheng_id : PINYIN_ID_H, @@ -2588,6 +2787,7 @@ static const Pinyin pinyin_table[] = { }, { /* 199 */ text : "heng", + bopomofo : "ㄏㄥ", sheng : "h", yun : "eng", sheng_id : PINYIN_ID_H, @@ -2601,6 +2801,7 @@ static const Pinyin pinyin_table[] = { }, { /* 200 */ text : "ho", + bopomofo : "", sheng : "h", yun : "o", sheng_id : PINYIN_ID_H, @@ -2614,6 +2815,7 @@ static const Pinyin pinyin_table[] = { }, { /* 201 */ text : "hogn", + bopomofo : "", sheng : "h", yun : "ong", sheng_id : PINYIN_ID_H, @@ -2627,6 +2829,7 @@ static const Pinyin pinyin_table[] = { }, { /* 202 */ text : "homg", + bopomofo : "", sheng : "h", yun : "ong", sheng_id : PINYIN_ID_H, @@ -2640,6 +2843,7 @@ static const Pinyin pinyin_table[] = { }, { /* 203 */ text : "hong", + bopomofo : "ㄏㄨㄥ", sheng : "h", yun : "ong", sheng_id : PINYIN_ID_H, @@ -2653,6 +2857,7 @@ static const Pinyin pinyin_table[] = { }, { /* 204 */ text : "hou", + bopomofo : "ㄏㄡ", sheng : "h", yun : "ou", sheng_id : PINYIN_ID_H, @@ -2666,6 +2871,7 @@ static const Pinyin pinyin_table[] = { }, { /* 205 */ text : "hu", + bopomofo : "ㄏㄨ", sheng : "h", yun : "u", sheng_id : PINYIN_ID_H, @@ -2679,6 +2885,7 @@ static const Pinyin pinyin_table[] = { }, { /* 206 */ text : "hua", + bopomofo : "ㄏㄨㄚ", sheng : "h", yun : "ua", sheng_id : PINYIN_ID_H, @@ -2692,6 +2899,7 @@ static const Pinyin pinyin_table[] = { }, { /* 207 */ text : "huagn", + bopomofo : "", sheng : "h", yun : "uang", sheng_id : PINYIN_ID_H, @@ -2705,6 +2913,7 @@ static const Pinyin pinyin_table[] = { }, { /* 208 */ text : "huai", + bopomofo : "ㄏㄨㄞ", sheng : "h", yun : "uai", sheng_id : PINYIN_ID_H, @@ -2718,6 +2927,7 @@ static const Pinyin pinyin_table[] = { }, { /* 209 */ text : "huamg", + bopomofo : "", sheng : "h", yun : "uang", sheng_id : PINYIN_ID_H, @@ -2731,6 +2941,7 @@ static const Pinyin pinyin_table[] = { }, { /* 210 */ text : "huan", + bopomofo : "ㄏㄨㄢ", sheng : "h", yun : "uan", sheng_id : PINYIN_ID_H, @@ -2744,6 +2955,7 @@ static const Pinyin pinyin_table[] = { }, { /* 211 */ text : "huang", + bopomofo : "ㄏㄨㄤ", sheng : "h", yun : "uang", sheng_id : PINYIN_ID_H, @@ -2757,6 +2969,7 @@ static const Pinyin pinyin_table[] = { }, { /* 212 */ text : "huei", + bopomofo : "", sheng : "h", yun : "ui", sheng_id : PINYIN_ID_H, @@ -2770,6 +2983,7 @@ static const Pinyin pinyin_table[] = { }, { /* 213 */ text : "huen", + bopomofo : "", sheng : "h", yun : "un", sheng_id : PINYIN_ID_H, @@ -2783,6 +2997,7 @@ static const Pinyin pinyin_table[] = { }, { /* 214 */ text : "hui", + bopomofo : "ㄏㄨㄟ", sheng : "h", yun : "ui", sheng_id : PINYIN_ID_H, @@ -2796,6 +3011,7 @@ static const Pinyin pinyin_table[] = { }, { /* 215 */ text : "hun", + bopomofo : "ㄏㄨㄣ", sheng : "h", yun : "un", sheng_id : PINYIN_ID_H, @@ -2809,6 +3025,7 @@ static const Pinyin pinyin_table[] = { }, { /* 216 */ text : "huo", + bopomofo : "ㄏㄨㄛ", sheng : "h", yun : "uo", sheng_id : PINYIN_ID_H, @@ -2822,6 +3039,7 @@ static const Pinyin pinyin_table[] = { }, { /* 217 */ text : "j", + bopomofo : "ㄐ", sheng : "j", yun : "", sheng_id : PINYIN_ID_J, @@ -2835,6 +3053,7 @@ static const Pinyin pinyin_table[] = { }, { /* 218 */ text : "ji", + bopomofo : "ㄐㄧ", sheng : "j", yun : "i", sheng_id : PINYIN_ID_J, @@ -2848,6 +3067,7 @@ static const Pinyin pinyin_table[] = { }, { /* 219 */ text : "jia", + bopomofo : "ㄐㄧㄚ", sheng : "j", yun : "ia", sheng_id : PINYIN_ID_J, @@ -2861,6 +3081,7 @@ static const Pinyin pinyin_table[] = { }, { /* 220 */ text : "jiagn", + bopomofo : "", sheng : "j", yun : "iang", sheng_id : PINYIN_ID_J, @@ -2874,6 +3095,7 @@ static const Pinyin pinyin_table[] = { }, { /* 221 */ text : "jiamg", + bopomofo : "", sheng : "j", yun : "iang", sheng_id : PINYIN_ID_J, @@ -2887,6 +3109,7 @@ static const Pinyin pinyin_table[] = { }, { /* 222 */ text : "jian", + bopomofo : "ㄐㄧㄢ", sheng : "j", yun : "ian", sheng_id : PINYIN_ID_J, @@ -2900,6 +3123,7 @@ static const Pinyin pinyin_table[] = { }, { /* 223 */ text : "jiang", + bopomofo : "ㄐㄧㄤ", sheng : "j", yun : "iang", sheng_id : PINYIN_ID_J, @@ -2913,6 +3137,7 @@ static const Pinyin pinyin_table[] = { }, { /* 224 */ text : "jiao", + bopomofo : "ㄐㄧㄠ", sheng : "j", yun : "iao", sheng_id : PINYIN_ID_J, @@ -2926,6 +3151,7 @@ static const Pinyin pinyin_table[] = { }, { /* 225 */ text : "jie", + bopomofo : "ㄐㄧㄝ", sheng : "j", yun : "ie", sheng_id : PINYIN_ID_J, @@ -2939,6 +3165,7 @@ static const Pinyin pinyin_table[] = { }, { /* 226 */ text : "jign", + bopomofo : "", sheng : "j", yun : "ing", sheng_id : PINYIN_ID_J, @@ -2952,6 +3179,7 @@ static const Pinyin pinyin_table[] = { }, { /* 227 */ text : "jimg", + bopomofo : "", sheng : "j", yun : "ing", sheng_id : PINYIN_ID_J, @@ -2965,6 +3193,7 @@ static const Pinyin pinyin_table[] = { }, { /* 228 */ text : "jin", + bopomofo : "ㄐㄧㄣ", sheng : "j", yun : "in", sheng_id : PINYIN_ID_J, @@ -2978,6 +3207,7 @@ static const Pinyin pinyin_table[] = { }, { /* 229 */ text : "jing", + bopomofo : "ㄐㄧㄥ", sheng : "j", yun : "ing", sheng_id : PINYIN_ID_J, @@ -2991,6 +3221,7 @@ static const Pinyin pinyin_table[] = { }, { /* 230 */ text : "jiogn", + bopomofo : "", sheng : "j", yun : "iong", sheng_id : PINYIN_ID_J, @@ -3004,6 +3235,7 @@ static const Pinyin pinyin_table[] = { }, { /* 231 */ text : "jiomg", + bopomofo : "", sheng : "j", yun : "iong", sheng_id : PINYIN_ID_J, @@ -3017,6 +3249,7 @@ static const Pinyin pinyin_table[] = { }, { /* 232 */ text : "jiong", + bopomofo : "ㄐㄩㄥ", sheng : "j", yun : "iong", sheng_id : PINYIN_ID_J, @@ -3030,6 +3263,7 @@ static const Pinyin pinyin_table[] = { }, { /* 233 */ text : "jiou", + bopomofo : "", sheng : "j", yun : "iu", sheng_id : PINYIN_ID_J, @@ -3043,6 +3277,7 @@ static const Pinyin pinyin_table[] = { }, { /* 234 */ text : "jiu", + bopomofo : "ㄐㄧㄡ", sheng : "j", yun : "iu", sheng_id : PINYIN_ID_J, @@ -3056,6 +3291,7 @@ static const Pinyin pinyin_table[] = { }, { /* 235 */ text : "ju", + bopomofo : "ㄐㄩ", sheng : "j", yun : "u", sheng_id : PINYIN_ID_J, @@ -3069,6 +3305,7 @@ static const Pinyin pinyin_table[] = { }, { /* 236 */ text : "juan", + bopomofo : "ㄐㄩㄢ", sheng : "j", yun : "uan", sheng_id : PINYIN_ID_J, @@ -3082,6 +3319,7 @@ static const Pinyin pinyin_table[] = { }, { /* 237 */ text : "juang", + bopomofo : "", sheng : "j", yun : "uang", sheng_id : PINYIN_ID_J, @@ -3095,6 +3333,7 @@ static const Pinyin pinyin_table[] = { }, { /* 238 */ text : "jue", + bopomofo : "ㄐㄩㄝ", sheng : "j", yun : "ue", sheng_id : PINYIN_ID_J, @@ -3108,6 +3347,7 @@ static const Pinyin pinyin_table[] = { }, { /* 239 */ text : "juen", + bopomofo : "", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3121,6 +3361,7 @@ static const Pinyin pinyin_table[] = { }, { /* 240 */ text : "jun", + bopomofo : "ㄐㄩㄣ", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3134,6 +3375,7 @@ static const Pinyin pinyin_table[] = { }, { /* 241 */ text : "jv", + bopomofo : "", sheng : "j", yun : "u", sheng_id : PINYIN_ID_J, @@ -3147,6 +3389,7 @@ static const Pinyin pinyin_table[] = { }, { /* 242 */ text : "jvan", + bopomofo : "", sheng : "j", yun : "uan", sheng_id : PINYIN_ID_J, @@ -3160,6 +3403,7 @@ static const Pinyin pinyin_table[] = { }, { /* 243 */ text : "jvang", + bopomofo : "", sheng : "j", yun : "uang", sheng_id : PINYIN_ID_J, @@ -3173,6 +3417,7 @@ static const Pinyin pinyin_table[] = { }, { /* 244 */ text : "jve", + bopomofo : "", sheng : "j", yun : "ue", sheng_id : PINYIN_ID_J, @@ -3186,6 +3431,7 @@ static const Pinyin pinyin_table[] = { }, { /* 245 */ text : "jven", + bopomofo : "", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3199,6 +3445,7 @@ static const Pinyin pinyin_table[] = { }, { /* 246 */ text : "jvn", + bopomofo : "", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3212,6 +3459,7 @@ static const Pinyin pinyin_table[] = { }, { /* 247 */ text : "k", + bopomofo : "ㄎ", sheng : "k", yun : "", sheng_id : PINYIN_ID_K, @@ -3225,6 +3473,7 @@ static const Pinyin pinyin_table[] = { }, { /* 248 */ text : "ka", + bopomofo : "ㄎㄚ", sheng : "k", yun : "a", sheng_id : PINYIN_ID_K, @@ -3238,6 +3487,7 @@ static const Pinyin pinyin_table[] = { }, { /* 249 */ text : "kagn", + bopomofo : "", sheng : "k", yun : "ang", sheng_id : PINYIN_ID_K, @@ -3251,6 +3501,7 @@ static const Pinyin pinyin_table[] = { }, { /* 250 */ text : "kai", + bopomofo : "ㄎㄞ", sheng : "k", yun : "ai", sheng_id : PINYIN_ID_K, @@ -3264,6 +3515,7 @@ static const Pinyin pinyin_table[] = { }, { /* 251 */ text : "kamg", + bopomofo : "", sheng : "k", yun : "ang", sheng_id : PINYIN_ID_K, @@ -3277,6 +3529,7 @@ static const Pinyin pinyin_table[] = { }, { /* 252 */ text : "kan", + bopomofo : "ㄎㄢ", sheng : "k", yun : "an", sheng_id : PINYIN_ID_K, @@ -3290,6 +3543,7 @@ static const Pinyin pinyin_table[] = { }, { /* 253 */ text : "kang", + bopomofo : "ㄎㄤ", sheng : "k", yun : "ang", sheng_id : PINYIN_ID_K, @@ -3303,6 +3557,7 @@ static const Pinyin pinyin_table[] = { }, { /* 254 */ text : "kao", + bopomofo : "ㄎㄠ", sheng : "k", yun : "ao", sheng_id : PINYIN_ID_K, @@ -3316,6 +3571,7 @@ static const Pinyin pinyin_table[] = { }, { /* 255 */ text : "ke", + bopomofo : "ㄎㄜ", sheng : "k", yun : "e", sheng_id : PINYIN_ID_K, @@ -3329,6 +3585,7 @@ static const Pinyin pinyin_table[] = { }, { /* 256 */ text : "kegn", + bopomofo : "", sheng : "k", yun : "eng", sheng_id : PINYIN_ID_K, @@ -3342,6 +3599,7 @@ static const Pinyin pinyin_table[] = { }, { /* 257 */ text : "kei", + bopomofo : "ㄎㄟ", sheng : "k", yun : "ei", sheng_id : PINYIN_ID_K, @@ -3355,6 +3613,7 @@ static const Pinyin pinyin_table[] = { }, { /* 258 */ text : "kemg", + bopomofo : "", sheng : "k", yun : "eng", sheng_id : PINYIN_ID_K, @@ -3368,6 +3627,7 @@ static const Pinyin pinyin_table[] = { }, { /* 259 */ text : "ken", + bopomofo : "ㄎㄣ", sheng : "k", yun : "en", sheng_id : PINYIN_ID_K, @@ -3381,6 +3641,7 @@ static const Pinyin pinyin_table[] = { }, { /* 260 */ text : "keng", + bopomofo : "ㄎㄥ", sheng : "k", yun : "eng", sheng_id : PINYIN_ID_K, @@ -3394,6 +3655,7 @@ static const Pinyin pinyin_table[] = { }, { /* 261 */ text : "kogn", + bopomofo : "", sheng : "k", yun : "ong", sheng_id : PINYIN_ID_K, @@ -3407,6 +3669,7 @@ static const Pinyin pinyin_table[] = { }, { /* 262 */ text : "komg", + bopomofo : "", sheng : "k", yun : "ong", sheng_id : PINYIN_ID_K, @@ -3420,6 +3683,7 @@ static const Pinyin pinyin_table[] = { }, { /* 263 */ text : "kong", + bopomofo : "ㄎㄨㄥ", sheng : "k", yun : "ong", sheng_id : PINYIN_ID_K, @@ -3433,6 +3697,7 @@ static const Pinyin pinyin_table[] = { }, { /* 264 */ text : "kou", + bopomofo : "ㄎㄡ", sheng : "k", yun : "ou", sheng_id : PINYIN_ID_K, @@ -3446,6 +3711,7 @@ static const Pinyin pinyin_table[] = { }, { /* 265 */ text : "ku", + bopomofo : "ㄎㄨ", sheng : "k", yun : "u", sheng_id : PINYIN_ID_K, @@ -3459,6 +3725,7 @@ static const Pinyin pinyin_table[] = { }, { /* 266 */ text : "kua", + bopomofo : "ㄎㄨㄚ", sheng : "k", yun : "ua", sheng_id : PINYIN_ID_K, @@ -3472,6 +3739,7 @@ static const Pinyin pinyin_table[] = { }, { /* 267 */ text : "kuagn", + bopomofo : "", sheng : "k", yun : "uang", sheng_id : PINYIN_ID_K, @@ -3485,6 +3753,7 @@ static const Pinyin pinyin_table[] = { }, { /* 268 */ text : "kuai", + bopomofo : "ㄎㄨㄞ", sheng : "k", yun : "uai", sheng_id : PINYIN_ID_K, @@ -3498,6 +3767,7 @@ static const Pinyin pinyin_table[] = { }, { /* 269 */ text : "kuamg", + bopomofo : "", sheng : "k", yun : "uang", sheng_id : PINYIN_ID_K, @@ -3511,6 +3781,7 @@ static const Pinyin pinyin_table[] = { }, { /* 270 */ text : "kuan", + bopomofo : "ㄎㄨㄢ", sheng : "k", yun : "uan", sheng_id : PINYIN_ID_K, @@ -3524,6 +3795,7 @@ static const Pinyin pinyin_table[] = { }, { /* 271 */ text : "kuang", + bopomofo : "ㄎㄨㄤ", sheng : "k", yun : "uang", sheng_id : PINYIN_ID_K, @@ -3537,6 +3809,7 @@ static const Pinyin pinyin_table[] = { }, { /* 272 */ text : "kuei", + bopomofo : "", sheng : "k", yun : "ui", sheng_id : PINYIN_ID_K, @@ -3550,6 +3823,7 @@ static const Pinyin pinyin_table[] = { }, { /* 273 */ text : "kuen", + bopomofo : "", sheng : "k", yun : "un", sheng_id : PINYIN_ID_K, @@ -3563,6 +3837,7 @@ static const Pinyin pinyin_table[] = { }, { /* 274 */ text : "kui", + bopomofo : "ㄎㄨㄟ", sheng : "k", yun : "ui", sheng_id : PINYIN_ID_K, @@ -3576,6 +3851,7 @@ static const Pinyin pinyin_table[] = { }, { /* 275 */ text : "kun", + bopomofo : "ㄎㄨㄣ", sheng : "k", yun : "un", sheng_id : PINYIN_ID_K, @@ -3589,6 +3865,7 @@ static const Pinyin pinyin_table[] = { }, { /* 276 */ text : "kuo", + bopomofo : "ㄎㄨㄛ", sheng : "k", yun : "uo", sheng_id : PINYIN_ID_K, @@ -3602,6 +3879,7 @@ static const Pinyin pinyin_table[] = { }, { /* 277 */ text : "l", + bopomofo : "ㄌ", sheng : "l", yun : "", sheng_id : PINYIN_ID_L, @@ -3615,6 +3893,7 @@ static const Pinyin pinyin_table[] = { }, { /* 278 */ text : "la", + bopomofo : "ㄌㄚ", sheng : "l", yun : "a", sheng_id : PINYIN_ID_L, @@ -3628,6 +3907,7 @@ static const Pinyin pinyin_table[] = { }, { /* 279 */ text : "lagn", + bopomofo : "", sheng : "l", yun : "ang", sheng_id : PINYIN_ID_L, @@ -3641,6 +3921,7 @@ static const Pinyin pinyin_table[] = { }, { /* 280 */ text : "lai", + bopomofo : "ㄌㄞ", sheng : "l", yun : "ai", sheng_id : PINYIN_ID_L, @@ -3654,6 +3935,7 @@ static const Pinyin pinyin_table[] = { }, { /* 281 */ text : "lamg", + bopomofo : "", sheng : "l", yun : "ang", sheng_id : PINYIN_ID_L, @@ -3667,6 +3949,7 @@ static const Pinyin pinyin_table[] = { }, { /* 282 */ text : "lan", + bopomofo : "ㄌㄢ", sheng : "l", yun : "an", sheng_id : PINYIN_ID_L, @@ -3680,6 +3963,7 @@ static const Pinyin pinyin_table[] = { }, { /* 283 */ text : "lang", + bopomofo : "ㄌㄤ", sheng : "l", yun : "ang", sheng_id : PINYIN_ID_L, @@ -3693,6 +3977,7 @@ static const Pinyin pinyin_table[] = { }, { /* 284 */ text : "lao", + bopomofo : "ㄌㄠ", sheng : "l", yun : "ao", sheng_id : PINYIN_ID_L, @@ -3706,6 +3991,7 @@ static const Pinyin pinyin_table[] = { }, { /* 285 */ text : "le", + bopomofo : "ㄌㄜ", sheng : "l", yun : "e", sheng_id : PINYIN_ID_L, @@ -3719,6 +4005,7 @@ static const Pinyin pinyin_table[] = { }, { /* 286 */ text : "legn", + bopomofo : "", sheng : "l", yun : "eng", sheng_id : PINYIN_ID_L, @@ -3732,6 +4019,7 @@ static const Pinyin pinyin_table[] = { }, { /* 287 */ text : "lei", + bopomofo : "ㄌㄟ", sheng : "l", yun : "ei", sheng_id : PINYIN_ID_L, @@ -3745,6 +4033,7 @@ static const Pinyin pinyin_table[] = { }, { /* 288 */ text : "lemg", + bopomofo : "", sheng : "l", yun : "eng", sheng_id : PINYIN_ID_L, @@ -3758,6 +4047,7 @@ static const Pinyin pinyin_table[] = { }, { /* 289 */ text : "len", + bopomofo : "ㄌㄣ", sheng : "l", yun : "en", sheng_id : PINYIN_ID_L, @@ -3771,6 +4061,7 @@ static const Pinyin pinyin_table[] = { }, { /* 290 */ text : "leng", + bopomofo : "ㄌㄥ", sheng : "l", yun : "eng", sheng_id : PINYIN_ID_L, @@ -3784,6 +4075,7 @@ static const Pinyin pinyin_table[] = { }, { /* 291 */ text : "li", + bopomofo : "ㄌㄧ", sheng : "l", yun : "i", sheng_id : PINYIN_ID_L, @@ -3797,6 +4089,7 @@ static const Pinyin pinyin_table[] = { }, { /* 292 */ text : "lia", + bopomofo : "ㄌㄧㄚ", sheng : "l", yun : "ia", sheng_id : PINYIN_ID_L, @@ -3810,6 +4103,7 @@ static const Pinyin pinyin_table[] = { }, { /* 293 */ text : "liagn", + bopomofo : "", sheng : "l", yun : "iang", sheng_id : PINYIN_ID_L, @@ -3823,6 +4117,7 @@ static const Pinyin pinyin_table[] = { }, { /* 294 */ text : "liamg", + bopomofo : "", sheng : "l", yun : "iang", sheng_id : PINYIN_ID_L, @@ -3836,6 +4131,7 @@ static const Pinyin pinyin_table[] = { }, { /* 295 */ text : "lian", + bopomofo : "ㄌㄧㄢ", sheng : "l", yun : "ian", sheng_id : PINYIN_ID_L, @@ -3849,6 +4145,7 @@ static const Pinyin pinyin_table[] = { }, { /* 296 */ text : "liang", + bopomofo : "ㄌㄧㄤ", sheng : "l", yun : "iang", sheng_id : PINYIN_ID_L, @@ -3862,6 +4159,7 @@ static const Pinyin pinyin_table[] = { }, { /* 297 */ text : "liao", + bopomofo : "ㄌㄧㄠ", sheng : "l", yun : "iao", sheng_id : PINYIN_ID_L, @@ -3875,6 +4173,7 @@ static const Pinyin pinyin_table[] = { }, { /* 298 */ text : "lie", + bopomofo : "ㄌㄧㄝ", sheng : "l", yun : "ie", sheng_id : PINYIN_ID_L, @@ -3888,6 +4187,7 @@ static const Pinyin pinyin_table[] = { }, { /* 299 */ text : "lign", + bopomofo : "", sheng : "l", yun : "ing", sheng_id : PINYIN_ID_L, @@ -3901,6 +4201,7 @@ static const Pinyin pinyin_table[] = { }, { /* 300 */ text : "limg", + bopomofo : "", sheng : "l", yun : "ing", sheng_id : PINYIN_ID_L, @@ -3914,6 +4215,7 @@ static const Pinyin pinyin_table[] = { }, { /* 301 */ text : "lin", + bopomofo : "ㄌㄧㄣ", sheng : "l", yun : "in", sheng_id : PINYIN_ID_L, @@ -3927,6 +4229,7 @@ static const Pinyin pinyin_table[] = { }, { /* 302 */ text : "ling", + bopomofo : "ㄌㄧㄥ", sheng : "l", yun : "ing", sheng_id : PINYIN_ID_L, @@ -3940,6 +4243,7 @@ static const Pinyin pinyin_table[] = { }, { /* 303 */ text : "liou", + bopomofo : "", sheng : "l", yun : "iu", sheng_id : PINYIN_ID_L, @@ -3953,6 +4257,7 @@ static const Pinyin pinyin_table[] = { }, { /* 304 */ text : "liu", + bopomofo : "ㄌㄧㄡ", sheng : "l", yun : "iu", sheng_id : PINYIN_ID_L, @@ -3966,6 +4271,7 @@ static const Pinyin pinyin_table[] = { }, { /* 305 */ text : "lo", + bopomofo : "ㄌㄛ", sheng : "l", yun : "o", sheng_id : PINYIN_ID_L, @@ -3979,6 +4285,7 @@ static const Pinyin pinyin_table[] = { }, { /* 306 */ text : "logn", + bopomofo : "", sheng : "l", yun : "ong", sheng_id : PINYIN_ID_L, @@ -3992,6 +4299,7 @@ static const Pinyin pinyin_table[] = { }, { /* 307 */ text : "lomg", + bopomofo : "", sheng : "l", yun : "ong", sheng_id : PINYIN_ID_L, @@ -4005,6 +4313,7 @@ static const Pinyin pinyin_table[] = { }, { /* 308 */ text : "long", + bopomofo : "ㄌㄨㄥ", sheng : "l", yun : "ong", sheng_id : PINYIN_ID_L, @@ -4018,6 +4327,7 @@ static const Pinyin pinyin_table[] = { }, { /* 309 */ text : "lou", + bopomofo : "ㄌㄡ", sheng : "l", yun : "ou", sheng_id : PINYIN_ID_L, @@ -4031,6 +4341,7 @@ static const Pinyin pinyin_table[] = { }, { /* 310 */ text : "lu", + bopomofo : "ㄌㄨ", sheng : "l", yun : "u", sheng_id : PINYIN_ID_L, @@ -4044,6 +4355,7 @@ static const Pinyin pinyin_table[] = { }, { /* 311 */ text : "luan", + bopomofo : "ㄌㄨㄢ", sheng : "l", yun : "uan", sheng_id : PINYIN_ID_L, @@ -4057,6 +4369,7 @@ static const Pinyin pinyin_table[] = { }, { /* 312 */ text : "luang", + bopomofo : "", sheng : "l", yun : "uang", sheng_id : PINYIN_ID_L, @@ -4070,6 +4383,7 @@ static const Pinyin pinyin_table[] = { }, { /* 313 */ text : "lue", + bopomofo : "", sheng : "l", yun : "üe", sheng_id : PINYIN_ID_L, @@ -4083,6 +4397,7 @@ static const Pinyin pinyin_table[] = { }, { /* 314 */ text : "luei", + bopomofo : "", sheng : "l", yun : "ui", sheng_id : PINYIN_ID_L, @@ -4096,6 +4411,7 @@ static const Pinyin pinyin_table[] = { }, { /* 315 */ text : "luen", + bopomofo : "", sheng : "l", yun : "un", sheng_id : PINYIN_ID_L, @@ -4109,6 +4425,7 @@ static const Pinyin pinyin_table[] = { }, { /* 316 */ text : "lui", + bopomofo : "", sheng : "l", yun : "ui", sheng_id : PINYIN_ID_L, @@ -4122,6 +4439,7 @@ static const Pinyin pinyin_table[] = { }, { /* 317 */ text : "lun", + bopomofo : "ㄌㄨㄣ", sheng : "l", yun : "un", sheng_id : PINYIN_ID_L, @@ -4135,6 +4453,7 @@ static const Pinyin pinyin_table[] = { }, { /* 318 */ text : "luo", + bopomofo : "ㄌㄨㄛ", sheng : "l", yun : "uo", sheng_id : PINYIN_ID_L, @@ -4148,6 +4467,7 @@ static const Pinyin pinyin_table[] = { }, { /* 319 */ text : "lv", + bopomofo : "ㄌㄩ", sheng : "l", yun : "ü", sheng_id : PINYIN_ID_L, @@ -4161,6 +4481,7 @@ static const Pinyin pinyin_table[] = { }, { /* 320 */ text : "lve", + bopomofo : "ㄌㄩㄝ", sheng : "l", yun : "üe", sheng_id : PINYIN_ID_L, @@ -4174,6 +4495,7 @@ static const Pinyin pinyin_table[] = { }, { /* 321 */ text : "m", + bopomofo : "ㄇ", sheng : "m", yun : "", sheng_id : PINYIN_ID_M, @@ -4187,6 +4509,7 @@ static const Pinyin pinyin_table[] = { }, { /* 322 */ text : "ma", + bopomofo : "ㄇㄚ", sheng : "m", yun : "a", sheng_id : PINYIN_ID_M, @@ -4200,6 +4523,7 @@ static const Pinyin pinyin_table[] = { }, { /* 323 */ text : "magn", + bopomofo : "", sheng : "m", yun : "ang", sheng_id : PINYIN_ID_M, @@ -4213,6 +4537,7 @@ static const Pinyin pinyin_table[] = { }, { /* 324 */ text : "mai", + bopomofo : "ㄇㄞ", sheng : "m", yun : "ai", sheng_id : PINYIN_ID_M, @@ -4226,6 +4551,7 @@ static const Pinyin pinyin_table[] = { }, { /* 325 */ text : "mamg", + bopomofo : "", sheng : "m", yun : "ang", sheng_id : PINYIN_ID_M, @@ -4239,6 +4565,7 @@ static const Pinyin pinyin_table[] = { }, { /* 326 */ text : "man", + bopomofo : "ㄇㄢ", sheng : "m", yun : "an", sheng_id : PINYIN_ID_M, @@ -4252,6 +4579,7 @@ static const Pinyin pinyin_table[] = { }, { /* 327 */ text : "mang", + bopomofo : "ㄇㄤ", sheng : "m", yun : "ang", sheng_id : PINYIN_ID_M, @@ -4265,6 +4593,7 @@ static const Pinyin pinyin_table[] = { }, { /* 328 */ text : "mao", + bopomofo : "ㄇㄠ", sheng : "m", yun : "ao", sheng_id : PINYIN_ID_M, @@ -4278,6 +4607,7 @@ static const Pinyin pinyin_table[] = { }, { /* 329 */ text : "me", + bopomofo : "ㄇㄜ", sheng : "m", yun : "e", sheng_id : PINYIN_ID_M, @@ -4291,6 +4621,7 @@ static const Pinyin pinyin_table[] = { }, { /* 330 */ text : "megn", + bopomofo : "", sheng : "m", yun : "eng", sheng_id : PINYIN_ID_M, @@ -4304,6 +4635,7 @@ static const Pinyin pinyin_table[] = { }, { /* 331 */ text : "mei", + bopomofo : "ㄇㄟ", sheng : "m", yun : "ei", sheng_id : PINYIN_ID_M, @@ -4317,6 +4649,7 @@ static const Pinyin pinyin_table[] = { }, { /* 332 */ text : "memg", + bopomofo : "", sheng : "m", yun : "eng", sheng_id : PINYIN_ID_M, @@ -4330,6 +4663,7 @@ static const Pinyin pinyin_table[] = { }, { /* 333 */ text : "men", + bopomofo : "ㄇㄣ", sheng : "m", yun : "en", sheng_id : PINYIN_ID_M, @@ -4343,6 +4677,7 @@ static const Pinyin pinyin_table[] = { }, { /* 334 */ text : "meng", + bopomofo : "ㄇㄥ", sheng : "m", yun : "eng", sheng_id : PINYIN_ID_M, @@ -4356,6 +4691,7 @@ static const Pinyin pinyin_table[] = { }, { /* 335 */ text : "mi", + bopomofo : "ㄇㄧ", sheng : "m", yun : "i", sheng_id : PINYIN_ID_M, @@ -4369,6 +4705,7 @@ static const Pinyin pinyin_table[] = { }, { /* 336 */ text : "mian", + bopomofo : "ㄇㄧㄢ", sheng : "m", yun : "ian", sheng_id : PINYIN_ID_M, @@ -4382,6 +4719,7 @@ static const Pinyin pinyin_table[] = { }, { /* 337 */ text : "miang", + bopomofo : "", sheng : "m", yun : "iang", sheng_id : PINYIN_ID_M, @@ -4395,6 +4733,7 @@ static const Pinyin pinyin_table[] = { }, { /* 338 */ text : "miao", + bopomofo : "ㄇㄧㄠ", sheng : "m", yun : "iao", sheng_id : PINYIN_ID_M, @@ -4408,6 +4747,7 @@ static const Pinyin pinyin_table[] = { }, { /* 339 */ text : "mie", + bopomofo : "ㄇㄧㄝ", sheng : "m", yun : "ie", sheng_id : PINYIN_ID_M, @@ -4421,6 +4761,7 @@ static const Pinyin pinyin_table[] = { }, { /* 340 */ text : "mign", + bopomofo : "", sheng : "m", yun : "ing", sheng_id : PINYIN_ID_M, @@ -4434,6 +4775,7 @@ static const Pinyin pinyin_table[] = { }, { /* 341 */ text : "mimg", + bopomofo : "", sheng : "m", yun : "ing", sheng_id : PINYIN_ID_M, @@ -4447,6 +4789,7 @@ static const Pinyin pinyin_table[] = { }, { /* 342 */ text : "min", + bopomofo : "ㄇㄧㄣ", sheng : "m", yun : "in", sheng_id : PINYIN_ID_M, @@ -4460,6 +4803,7 @@ static const Pinyin pinyin_table[] = { }, { /* 343 */ text : "ming", + bopomofo : "ㄇㄧㄥ", sheng : "m", yun : "ing", sheng_id : PINYIN_ID_M, @@ -4473,6 +4817,7 @@ static const Pinyin pinyin_table[] = { }, { /* 344 */ text : "miou", + bopomofo : "", sheng : "m", yun : "iu", sheng_id : PINYIN_ID_M, @@ -4486,6 +4831,7 @@ static const Pinyin pinyin_table[] = { }, { /* 345 */ text : "miu", + bopomofo : "ㄇㄧㄡ", sheng : "m", yun : "iu", sheng_id : PINYIN_ID_M, @@ -4499,6 +4845,7 @@ static const Pinyin pinyin_table[] = { }, { /* 346 */ text : "mo", + bopomofo : "ㄇㄛ", sheng : "m", yun : "o", sheng_id : PINYIN_ID_M, @@ -4512,6 +4859,7 @@ static const Pinyin pinyin_table[] = { }, { /* 347 */ text : "mou", + bopomofo : "ㄇㄡ", sheng : "m", yun : "ou", sheng_id : PINYIN_ID_M, @@ -4525,6 +4873,7 @@ static const Pinyin pinyin_table[] = { }, { /* 348 */ text : "mu", + bopomofo : "ㄇㄨ", sheng : "m", yun : "u", sheng_id : PINYIN_ID_M, @@ -4538,6 +4887,7 @@ static const Pinyin pinyin_table[] = { }, { /* 349 */ text : "n", + bopomofo : "ㄋ", sheng : "n", yun : "", sheng_id : PINYIN_ID_N, @@ -4551,6 +4901,7 @@ static const Pinyin pinyin_table[] = { }, { /* 350 */ text : "na", + bopomofo : "ㄋㄚ", sheng : "n", yun : "a", sheng_id : PINYIN_ID_N, @@ -4564,6 +4915,7 @@ static const Pinyin pinyin_table[] = { }, { /* 351 */ text : "nagn", + bopomofo : "", sheng : "n", yun : "ang", sheng_id : PINYIN_ID_N, @@ -4577,6 +4929,7 @@ static const Pinyin pinyin_table[] = { }, { /* 352 */ text : "nai", + bopomofo : "ㄋㄞ", sheng : "n", yun : "ai", sheng_id : PINYIN_ID_N, @@ -4590,6 +4943,7 @@ static const Pinyin pinyin_table[] = { }, { /* 353 */ text : "namg", + bopomofo : "", sheng : "n", yun : "ang", sheng_id : PINYIN_ID_N, @@ -4603,6 +4957,7 @@ static const Pinyin pinyin_table[] = { }, { /* 354 */ text : "nan", + bopomofo : "ㄋㄢ", sheng : "n", yun : "an", sheng_id : PINYIN_ID_N, @@ -4616,6 +4971,7 @@ static const Pinyin pinyin_table[] = { }, { /* 355 */ text : "nang", + bopomofo : "ㄋㄤ", sheng : "n", yun : "ang", sheng_id : PINYIN_ID_N, @@ -4629,6 +4985,7 @@ static const Pinyin pinyin_table[] = { }, { /* 356 */ text : "nao", + bopomofo : "ㄋㄠ", sheng : "n", yun : "ao", sheng_id : PINYIN_ID_N, @@ -4642,6 +4999,7 @@ static const Pinyin pinyin_table[] = { }, { /* 357 */ text : "ne", + bopomofo : "ㄋㄜ", sheng : "n", yun : "e", sheng_id : PINYIN_ID_N, @@ -4655,6 +5013,7 @@ static const Pinyin pinyin_table[] = { }, { /* 358 */ text : "negn", + bopomofo : "", sheng : "n", yun : "eng", sheng_id : PINYIN_ID_N, @@ -4668,6 +5027,7 @@ static const Pinyin pinyin_table[] = { }, { /* 359 */ text : "nei", + bopomofo : "ㄋㄟ", sheng : "n", yun : "ei", sheng_id : PINYIN_ID_N, @@ -4681,6 +5041,7 @@ static const Pinyin pinyin_table[] = { }, { /* 360 */ text : "nemg", + bopomofo : "", sheng : "n", yun : "eng", sheng_id : PINYIN_ID_N, @@ -4694,6 +5055,7 @@ static const Pinyin pinyin_table[] = { }, { /* 361 */ text : "nen", + bopomofo : "ㄋㄣ", sheng : "n", yun : "en", sheng_id : PINYIN_ID_N, @@ -4707,6 +5069,7 @@ static const Pinyin pinyin_table[] = { }, { /* 362 */ text : "neng", + bopomofo : "ㄋㄥ", sheng : "n", yun : "eng", sheng_id : PINYIN_ID_N, @@ -4720,6 +5083,7 @@ static const Pinyin pinyin_table[] = { }, { /* 363 */ text : "ni", + bopomofo : "ㄋㄧ", sheng : "n", yun : "i", sheng_id : PINYIN_ID_N, @@ -4733,6 +5097,7 @@ static const Pinyin pinyin_table[] = { }, { /* 364 */ text : "nia", + bopomofo : "ㄋㄧㄚ", sheng : "n", yun : "ia", sheng_id : PINYIN_ID_N, @@ -4746,6 +5111,7 @@ static const Pinyin pinyin_table[] = { }, { /* 365 */ text : "niagn", + bopomofo : "", sheng : "n", yun : "iang", sheng_id : PINYIN_ID_N, @@ -4759,6 +5125,7 @@ static const Pinyin pinyin_table[] = { }, { /* 366 */ text : "niamg", + bopomofo : "", sheng : "n", yun : "iang", sheng_id : PINYIN_ID_N, @@ -4772,6 +5139,7 @@ static const Pinyin pinyin_table[] = { }, { /* 367 */ text : "nian", + bopomofo : "ㄋㄧㄢ", sheng : "n", yun : "ian", sheng_id : PINYIN_ID_N, @@ -4785,6 +5153,7 @@ static const Pinyin pinyin_table[] = { }, { /* 368 */ text : "niang", + bopomofo : "ㄋㄧㄤ", sheng : "n", yun : "iang", sheng_id : PINYIN_ID_N, @@ -4798,6 +5167,7 @@ static const Pinyin pinyin_table[] = { }, { /* 369 */ text : "niao", + bopomofo : "ㄋㄧㄠ", sheng : "n", yun : "iao", sheng_id : PINYIN_ID_N, @@ -4811,6 +5181,7 @@ static const Pinyin pinyin_table[] = { }, { /* 370 */ text : "nie", + bopomofo : "ㄋㄧㄝ", sheng : "n", yun : "ie", sheng_id : PINYIN_ID_N, @@ -4824,6 +5195,7 @@ static const Pinyin pinyin_table[] = { }, { /* 371 */ text : "nign", + bopomofo : "", sheng : "n", yun : "ing", sheng_id : PINYIN_ID_N, @@ -4837,6 +5209,7 @@ static const Pinyin pinyin_table[] = { }, { /* 372 */ text : "nimg", + bopomofo : "", sheng : "n", yun : "ing", sheng_id : PINYIN_ID_N, @@ -4850,6 +5223,7 @@ static const Pinyin pinyin_table[] = { }, { /* 373 */ text : "nin", + bopomofo : "ㄋㄧㄣ", sheng : "n", yun : "in", sheng_id : PINYIN_ID_N, @@ -4863,6 +5237,7 @@ static const Pinyin pinyin_table[] = { }, { /* 374 */ text : "ning", + bopomofo : "ㄋㄧㄥ", sheng : "n", yun : "ing", sheng_id : PINYIN_ID_N, @@ -4876,6 +5251,7 @@ static const Pinyin pinyin_table[] = { }, { /* 375 */ text : "niou", + bopomofo : "", sheng : "n", yun : "iu", sheng_id : PINYIN_ID_N, @@ -4889,6 +5265,7 @@ static const Pinyin pinyin_table[] = { }, { /* 376 */ text : "niu", + bopomofo : "ㄋㄧㄡ", sheng : "n", yun : "iu", sheng_id : PINYIN_ID_N, @@ -4902,6 +5279,7 @@ static const Pinyin pinyin_table[] = { }, { /* 377 */ text : "no", + bopomofo : "", sheng : "n", yun : "o", sheng_id : PINYIN_ID_N, @@ -4915,6 +5293,7 @@ static const Pinyin pinyin_table[] = { }, { /* 378 */ text : "nogn", + bopomofo : "", sheng : "n", yun : "ong", sheng_id : PINYIN_ID_N, @@ -4928,6 +5307,7 @@ static const Pinyin pinyin_table[] = { }, { /* 379 */ text : "nomg", + bopomofo : "", sheng : "n", yun : "ong", sheng_id : PINYIN_ID_N, @@ -4941,6 +5321,7 @@ static const Pinyin pinyin_table[] = { }, { /* 380 */ text : "nong", + bopomofo : "ㄋㄨㄥ", sheng : "n", yun : "ong", sheng_id : PINYIN_ID_N, @@ -4954,6 +5335,7 @@ static const Pinyin pinyin_table[] = { }, { /* 381 */ text : "nou", + bopomofo : "ㄋㄡ", sheng : "n", yun : "ou", sheng_id : PINYIN_ID_N, @@ -4967,6 +5349,7 @@ static const Pinyin pinyin_table[] = { }, { /* 382 */ text : "nu", + bopomofo : "ㄋㄨ", sheng : "n", yun : "u", sheng_id : PINYIN_ID_N, @@ -4980,6 +5363,7 @@ static const Pinyin pinyin_table[] = { }, { /* 383 */ text : "nuan", + bopomofo : "ㄋㄨㄢ", sheng : "n", yun : "uan", sheng_id : PINYIN_ID_N, @@ -4993,6 +5377,7 @@ static const Pinyin pinyin_table[] = { }, { /* 384 */ text : "nuang", + bopomofo : "", sheng : "n", yun : "uang", sheng_id : PINYIN_ID_N, @@ -5006,6 +5391,7 @@ static const Pinyin pinyin_table[] = { }, { /* 385 */ text : "nue", + bopomofo : "", sheng : "n", yun : "üe", sheng_id : PINYIN_ID_N, @@ -5019,6 +5405,7 @@ static const Pinyin pinyin_table[] = { }, { /* 386 */ text : "nuen", + bopomofo : "", sheng : "n", yun : "un", sheng_id : PINYIN_ID_N, @@ -5032,6 +5419,7 @@ static const Pinyin pinyin_table[] = { }, { /* 387 */ text : "nun", + bopomofo : "ㄋㄨㄣ", sheng : "n", yun : "un", sheng_id : PINYIN_ID_N, @@ -5045,6 +5433,7 @@ static const Pinyin pinyin_table[] = { }, { /* 388 */ text : "nuo", + bopomofo : "ㄋㄨㄛ", sheng : "n", yun : "uo", sheng_id : PINYIN_ID_N, @@ -5058,6 +5447,7 @@ static const Pinyin pinyin_table[] = { }, { /* 389 */ text : "nv", + bopomofo : "ㄋㄩ", sheng : "n", yun : "ü", sheng_id : PINYIN_ID_N, @@ -5071,6 +5461,7 @@ static const Pinyin pinyin_table[] = { }, { /* 390 */ text : "nve", + bopomofo : "ㄋㄩㄝ", sheng : "n", yun : "üe", sheng_id : PINYIN_ID_N, @@ -5084,6 +5475,7 @@ static const Pinyin pinyin_table[] = { }, { /* 391 */ text : "o", + bopomofo : "ㄛ", sheng : "", yun : "o", sheng_id : PINYIN_ID_ZERO, @@ -5097,6 +5489,7 @@ static const Pinyin pinyin_table[] = { }, { /* 392 */ text : "ou", + bopomofo : "ㄡ", sheng : "", yun : "ou", sheng_id : PINYIN_ID_ZERO, @@ -5110,6 +5503,7 @@ static const Pinyin pinyin_table[] = { }, { /* 393 */ text : "p", + bopomofo : "ㄆ", sheng : "p", yun : "", sheng_id : PINYIN_ID_P, @@ -5123,6 +5517,7 @@ static const Pinyin pinyin_table[] = { }, { /* 394 */ text : "pa", + bopomofo : "ㄆㄚ", sheng : "p", yun : "a", sheng_id : PINYIN_ID_P, @@ -5136,6 +5531,7 @@ static const Pinyin pinyin_table[] = { }, { /* 395 */ text : "pagn", + bopomofo : "", sheng : "p", yun : "ang", sheng_id : PINYIN_ID_P, @@ -5149,6 +5545,7 @@ static const Pinyin pinyin_table[] = { }, { /* 396 */ text : "pai", + bopomofo : "ㄆㄞ", sheng : "p", yun : "ai", sheng_id : PINYIN_ID_P, @@ -5162,6 +5559,7 @@ static const Pinyin pinyin_table[] = { }, { /* 397 */ text : "pamg", + bopomofo : "", sheng : "p", yun : "ang", sheng_id : PINYIN_ID_P, @@ -5175,6 +5573,7 @@ static const Pinyin pinyin_table[] = { }, { /* 398 */ text : "pan", + bopomofo : "ㄆㄢ", sheng : "p", yun : "an", sheng_id : PINYIN_ID_P, @@ -5188,6 +5587,7 @@ static const Pinyin pinyin_table[] = { }, { /* 399 */ text : "pang", + bopomofo : "ㄆㄤ", sheng : "p", yun : "ang", sheng_id : PINYIN_ID_P, @@ -5201,6 +5601,7 @@ static const Pinyin pinyin_table[] = { }, { /* 400 */ text : "pao", + bopomofo : "ㄆㄠ", sheng : "p", yun : "ao", sheng_id : PINYIN_ID_P, @@ -5214,6 +5615,7 @@ static const Pinyin pinyin_table[] = { }, { /* 401 */ text : "pegn", + bopomofo : "", sheng : "p", yun : "eng", sheng_id : PINYIN_ID_P, @@ -5227,6 +5629,7 @@ static const Pinyin pinyin_table[] = { }, { /* 402 */ text : "pei", + bopomofo : "ㄆㄟ", sheng : "p", yun : "ei", sheng_id : PINYIN_ID_P, @@ -5240,6 +5643,7 @@ static const Pinyin pinyin_table[] = { }, { /* 403 */ text : "pemg", + bopomofo : "", sheng : "p", yun : "eng", sheng_id : PINYIN_ID_P, @@ -5253,6 +5657,7 @@ static const Pinyin pinyin_table[] = { }, { /* 404 */ text : "pen", + bopomofo : "ㄆㄣ", sheng : "p", yun : "en", sheng_id : PINYIN_ID_P, @@ -5266,6 +5671,7 @@ static const Pinyin pinyin_table[] = { }, { /* 405 */ text : "peng", + bopomofo : "ㄆㄥ", sheng : "p", yun : "eng", sheng_id : PINYIN_ID_P, @@ -5279,6 +5685,7 @@ static const Pinyin pinyin_table[] = { }, { /* 406 */ text : "pi", + bopomofo : "ㄆㄧ", sheng : "p", yun : "i", sheng_id : PINYIN_ID_P, @@ -5292,6 +5699,7 @@ static const Pinyin pinyin_table[] = { }, { /* 407 */ text : "pian", + bopomofo : "ㄆㄧㄢ", sheng : "p", yun : "ian", sheng_id : PINYIN_ID_P, @@ -5305,6 +5713,7 @@ static const Pinyin pinyin_table[] = { }, { /* 408 */ text : "piang", + bopomofo : "", sheng : "p", yun : "iang", sheng_id : PINYIN_ID_P, @@ -5318,6 +5727,7 @@ static const Pinyin pinyin_table[] = { }, { /* 409 */ text : "piao", + bopomofo : "ㄆㄧㄠ", sheng : "p", yun : "iao", sheng_id : PINYIN_ID_P, @@ -5331,6 +5741,7 @@ static const Pinyin pinyin_table[] = { }, { /* 410 */ text : "pie", + bopomofo : "ㄆㄧㄝ", sheng : "p", yun : "ie", sheng_id : PINYIN_ID_P, @@ -5344,6 +5755,7 @@ static const Pinyin pinyin_table[] = { }, { /* 411 */ text : "pign", + bopomofo : "", sheng : "p", yun : "ing", sheng_id : PINYIN_ID_P, @@ -5357,6 +5769,7 @@ static const Pinyin pinyin_table[] = { }, { /* 412 */ text : "pimg", + bopomofo : "", sheng : "p", yun : "ing", sheng_id : PINYIN_ID_P, @@ -5370,6 +5783,7 @@ static const Pinyin pinyin_table[] = { }, { /* 413 */ text : "pin", + bopomofo : "ㄆㄧㄣ", sheng : "p", yun : "in", sheng_id : PINYIN_ID_P, @@ -5383,6 +5797,7 @@ static const Pinyin pinyin_table[] = { }, { /* 414 */ text : "ping", + bopomofo : "ㄆㄧㄥ", sheng : "p", yun : "ing", sheng_id : PINYIN_ID_P, @@ -5396,6 +5811,7 @@ static const Pinyin pinyin_table[] = { }, { /* 415 */ text : "po", + bopomofo : "ㄆㄛ", sheng : "p", yun : "o", sheng_id : PINYIN_ID_P, @@ -5409,6 +5825,7 @@ static const Pinyin pinyin_table[] = { }, { /* 416 */ text : "pou", + bopomofo : "ㄆㄡ", sheng : "p", yun : "ou", sheng_id : PINYIN_ID_P, @@ -5422,6 +5839,7 @@ static const Pinyin pinyin_table[] = { }, { /* 417 */ text : "pu", + bopomofo : "ㄆㄨ", sheng : "p", yun : "u", sheng_id : PINYIN_ID_P, @@ -5435,6 +5853,7 @@ static const Pinyin pinyin_table[] = { }, { /* 418 */ text : "q", + bopomofo : "ㄑ", sheng : "q", yun : "", sheng_id : PINYIN_ID_Q, @@ -5448,6 +5867,7 @@ static const Pinyin pinyin_table[] = { }, { /* 419 */ text : "qi", + bopomofo : "ㄑㄧ", sheng : "q", yun : "i", sheng_id : PINYIN_ID_Q, @@ -5461,6 +5881,7 @@ static const Pinyin pinyin_table[] = { }, { /* 420 */ text : "qia", + bopomofo : "ㄑㄧㄚ", sheng : "q", yun : "ia", sheng_id : PINYIN_ID_Q, @@ -5474,6 +5895,7 @@ static const Pinyin pinyin_table[] = { }, { /* 421 */ text : "qiagn", + bopomofo : "", sheng : "q", yun : "iang", sheng_id : PINYIN_ID_Q, @@ -5487,6 +5909,7 @@ static const Pinyin pinyin_table[] = { }, { /* 422 */ text : "qiamg", + bopomofo : "", sheng : "q", yun : "iang", sheng_id : PINYIN_ID_Q, @@ -5500,6 +5923,7 @@ static const Pinyin pinyin_table[] = { }, { /* 423 */ text : "qian", + bopomofo : "ㄑㄧㄢ", sheng : "q", yun : "ian", sheng_id : PINYIN_ID_Q, @@ -5513,6 +5937,7 @@ static const Pinyin pinyin_table[] = { }, { /* 424 */ text : "qiang", + bopomofo : "ㄑㄧㄤ", sheng : "q", yun : "iang", sheng_id : PINYIN_ID_Q, @@ -5526,6 +5951,7 @@ static const Pinyin pinyin_table[] = { }, { /* 425 */ text : "qiao", + bopomofo : "ㄑㄧㄠ", sheng : "q", yun : "iao", sheng_id : PINYIN_ID_Q, @@ -5539,6 +5965,7 @@ static const Pinyin pinyin_table[] = { }, { /* 426 */ text : "qie", + bopomofo : "ㄑㄧㄝ", sheng : "q", yun : "ie", sheng_id : PINYIN_ID_Q, @@ -5552,6 +5979,7 @@ static const Pinyin pinyin_table[] = { }, { /* 427 */ text : "qign", + bopomofo : "", sheng : "q", yun : "ing", sheng_id : PINYIN_ID_Q, @@ -5565,6 +5993,7 @@ static const Pinyin pinyin_table[] = { }, { /* 428 */ text : "qimg", + bopomofo : "", sheng : "q", yun : "ing", sheng_id : PINYIN_ID_Q, @@ -5578,6 +6007,7 @@ static const Pinyin pinyin_table[] = { }, { /* 429 */ text : "qin", + bopomofo : "ㄑㄧㄣ", sheng : "q", yun : "in", sheng_id : PINYIN_ID_Q, @@ -5591,6 +6021,7 @@ static const Pinyin pinyin_table[] = { }, { /* 430 */ text : "qing", + bopomofo : "ㄑㄧㄥ", sheng : "q", yun : "ing", sheng_id : PINYIN_ID_Q, @@ -5604,6 +6035,7 @@ static const Pinyin pinyin_table[] = { }, { /* 431 */ text : "qiogn", + bopomofo : "", sheng : "q", yun : "iong", sheng_id : PINYIN_ID_Q, @@ -5617,6 +6049,7 @@ static const Pinyin pinyin_table[] = { }, { /* 432 */ text : "qiomg", + bopomofo : "", sheng : "q", yun : "iong", sheng_id : PINYIN_ID_Q, @@ -5630,6 +6063,7 @@ static const Pinyin pinyin_table[] = { }, { /* 433 */ text : "qiong", + bopomofo : "ㄑㄩㄥ", sheng : "q", yun : "iong", sheng_id : PINYIN_ID_Q, @@ -5643,6 +6077,7 @@ static const Pinyin pinyin_table[] = { }, { /* 434 */ text : "qiou", + bopomofo : "", sheng : "q", yun : "iu", sheng_id : PINYIN_ID_Q, @@ -5656,6 +6091,7 @@ static const Pinyin pinyin_table[] = { }, { /* 435 */ text : "qiu", + bopomofo : "ㄑㄧㄡ", sheng : "q", yun : "iu", sheng_id : PINYIN_ID_Q, @@ -5669,6 +6105,7 @@ static const Pinyin pinyin_table[] = { }, { /* 436 */ text : "qu", + bopomofo : "ㄑㄩ", sheng : "q", yun : "u", sheng_id : PINYIN_ID_Q, @@ -5682,6 +6119,7 @@ static const Pinyin pinyin_table[] = { }, { /* 437 */ text : "quan", + bopomofo : "ㄑㄩㄢ", sheng : "q", yun : "uan", sheng_id : PINYIN_ID_Q, @@ -5695,6 +6133,7 @@ static const Pinyin pinyin_table[] = { }, { /* 438 */ text : "quang", + bopomofo : "", sheng : "q", yun : "uang", sheng_id : PINYIN_ID_Q, @@ -5708,6 +6147,7 @@ static const Pinyin pinyin_table[] = { }, { /* 439 */ text : "que", + bopomofo : "ㄑㄩㄝ", sheng : "q", yun : "ue", sheng_id : PINYIN_ID_Q, @@ -5721,6 +6161,7 @@ static const Pinyin pinyin_table[] = { }, { /* 440 */ text : "quen", + bopomofo : "", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -5734,6 +6175,7 @@ static const Pinyin pinyin_table[] = { }, { /* 441 */ text : "qun", + bopomofo : "ㄑㄩㄣ", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -5747,6 +6189,7 @@ static const Pinyin pinyin_table[] = { }, { /* 442 */ text : "qv", + bopomofo : "", sheng : "q", yun : "u", sheng_id : PINYIN_ID_Q, @@ -5760,6 +6203,7 @@ static const Pinyin pinyin_table[] = { }, { /* 443 */ text : "qvan", + bopomofo : "", sheng : "q", yun : "uan", sheng_id : PINYIN_ID_Q, @@ -5773,6 +6217,7 @@ static const Pinyin pinyin_table[] = { }, { /* 444 */ text : "qvang", + bopomofo : "", sheng : "q", yun : "uang", sheng_id : PINYIN_ID_Q, @@ -5786,6 +6231,7 @@ static const Pinyin pinyin_table[] = { }, { /* 445 */ text : "qve", + bopomofo : "", sheng : "q", yun : "ue", sheng_id : PINYIN_ID_Q, @@ -5799,6 +6245,7 @@ static const Pinyin pinyin_table[] = { }, { /* 446 */ text : "qven", + bopomofo : "", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -5812,6 +6259,7 @@ static const Pinyin pinyin_table[] = { }, { /* 447 */ text : "qvn", + bopomofo : "", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -5825,6 +6273,7 @@ static const Pinyin pinyin_table[] = { }, { /* 448 */ text : "r", + bopomofo : "", sheng : "r", yun : "", sheng_id : PINYIN_ID_R, @@ -5838,6 +6287,7 @@ static const Pinyin pinyin_table[] = { }, { /* 449 */ text : "ra", + bopomofo : "", sheng : "r", yun : "a", sheng_id : PINYIN_ID_R, @@ -5851,6 +6301,7 @@ static const Pinyin pinyin_table[] = { }, { /* 450 */ text : "ragn", + bopomofo : "", sheng : "r", yun : "ang", sheng_id : PINYIN_ID_R, @@ -5864,6 +6315,7 @@ static const Pinyin pinyin_table[] = { }, { /* 451 */ text : "rai", + bopomofo : "", sheng : "r", yun : "ai", sheng_id : PINYIN_ID_R, @@ -5877,6 +6329,7 @@ static const Pinyin pinyin_table[] = { }, { /* 452 */ text : "ramg", + bopomofo : "", sheng : "r", yun : "ang", sheng_id : PINYIN_ID_R, @@ -5890,6 +6343,7 @@ static const Pinyin pinyin_table[] = { }, { /* 453 */ text : "ran", + bopomofo : "ㄖㄢ", sheng : "r", yun : "an", sheng_id : PINYIN_ID_R, @@ -5903,6 +6357,7 @@ static const Pinyin pinyin_table[] = { }, { /* 454 */ text : "rang", + bopomofo : "ㄖㄤ", sheng : "r", yun : "ang", sheng_id : PINYIN_ID_R, @@ -5916,6 +6371,7 @@ static const Pinyin pinyin_table[] = { }, { /* 455 */ text : "rao", + bopomofo : "ㄖㄠ", sheng : "r", yun : "ao", sheng_id : PINYIN_ID_R, @@ -5929,6 +6385,7 @@ static const Pinyin pinyin_table[] = { }, { /* 456 */ text : "re", + bopomofo : "ㄖㄜ", sheng : "r", yun : "e", sheng_id : PINYIN_ID_R, @@ -5942,6 +6399,7 @@ static const Pinyin pinyin_table[] = { }, { /* 457 */ text : "regn", + bopomofo : "", sheng : "r", yun : "eng", sheng_id : PINYIN_ID_R, @@ -5955,6 +6413,7 @@ static const Pinyin pinyin_table[] = { }, { /* 458 */ text : "rei", + bopomofo : "", sheng : "r", yun : "ei", sheng_id : PINYIN_ID_R, @@ -5968,6 +6427,7 @@ static const Pinyin pinyin_table[] = { }, { /* 459 */ text : "remg", + bopomofo : "", sheng : "r", yun : "eng", sheng_id : PINYIN_ID_R, @@ -5981,6 +6441,7 @@ static const Pinyin pinyin_table[] = { }, { /* 460 */ text : "ren", + bopomofo : "ㄖㄣ", sheng : "r", yun : "en", sheng_id : PINYIN_ID_R, @@ -5994,6 +6455,7 @@ static const Pinyin pinyin_table[] = { }, { /* 461 */ text : "reng", + bopomofo : "ㄖㄥ", sheng : "r", yun : "eng", sheng_id : PINYIN_ID_R, @@ -6007,6 +6469,7 @@ static const Pinyin pinyin_table[] = { }, { /* 462 */ text : "ri", + bopomofo : "ㄖ", sheng : "r", yun : "i", sheng_id : PINYIN_ID_R, @@ -6020,6 +6483,7 @@ static const Pinyin pinyin_table[] = { }, { /* 463 */ text : "ria", + bopomofo : "", sheng : "r", yun : "ia", sheng_id : PINYIN_ID_R, @@ -6033,6 +6497,7 @@ static const Pinyin pinyin_table[] = { }, { /* 464 */ text : "rian", + bopomofo : "", sheng : "r", yun : "ian", sheng_id : PINYIN_ID_R, @@ -6046,6 +6511,7 @@ static const Pinyin pinyin_table[] = { }, { /* 465 */ text : "riang", + bopomofo : "", sheng : "r", yun : "iang", sheng_id : PINYIN_ID_R, @@ -6059,6 +6525,7 @@ static const Pinyin pinyin_table[] = { }, { /* 466 */ text : "riao", + bopomofo : "", sheng : "r", yun : "iao", sheng_id : PINYIN_ID_R, @@ -6072,6 +6539,7 @@ static const Pinyin pinyin_table[] = { }, { /* 467 */ text : "rie", + bopomofo : "", sheng : "r", yun : "ie", sheng_id : PINYIN_ID_R, @@ -6085,6 +6553,7 @@ static const Pinyin pinyin_table[] = { }, { /* 468 */ text : "rin", + bopomofo : "", sheng : "r", yun : "in", sheng_id : PINYIN_ID_R, @@ -6098,6 +6567,7 @@ static const Pinyin pinyin_table[] = { }, { /* 469 */ text : "ring", + bopomofo : "", sheng : "r", yun : "ing", sheng_id : PINYIN_ID_R, @@ -6111,6 +6581,7 @@ static const Pinyin pinyin_table[] = { }, { /* 470 */ text : "riou", + bopomofo : "", sheng : "r", yun : "iu", sheng_id : PINYIN_ID_R, @@ -6124,6 +6595,7 @@ static const Pinyin pinyin_table[] = { }, { /* 471 */ text : "riu", + bopomofo : "", sheng : "r", yun : "iu", sheng_id : PINYIN_ID_R, @@ -6137,6 +6609,7 @@ static const Pinyin pinyin_table[] = { }, { /* 472 */ text : "ro", + bopomofo : "", sheng : "r", yun : "o", sheng_id : PINYIN_ID_R, @@ -6150,6 +6623,7 @@ static const Pinyin pinyin_table[] = { }, { /* 473 */ text : "rogn", + bopomofo : "", sheng : "r", yun : "ong", sheng_id : PINYIN_ID_R, @@ -6163,6 +6637,7 @@ static const Pinyin pinyin_table[] = { }, { /* 474 */ text : "romg", + bopomofo : "", sheng : "r", yun : "ong", sheng_id : PINYIN_ID_R, @@ -6176,6 +6651,7 @@ static const Pinyin pinyin_table[] = { }, { /* 475 */ text : "rong", + bopomofo : "ㄖㄨㄥ", sheng : "r", yun : "ong", sheng_id : PINYIN_ID_R, @@ -6189,6 +6665,7 @@ static const Pinyin pinyin_table[] = { }, { /* 476 */ text : "rou", + bopomofo : "ㄖㄡ", sheng : "r", yun : "ou", sheng_id : PINYIN_ID_R, @@ -6202,6 +6679,7 @@ static const Pinyin pinyin_table[] = { }, { /* 477 */ text : "ru", + bopomofo : "ㄖㄨ", sheng : "r", yun : "u", sheng_id : PINYIN_ID_R, @@ -6215,6 +6693,7 @@ static const Pinyin pinyin_table[] = { }, { /* 478 */ text : "ruan", + bopomofo : "ㄖㄨㄢ", sheng : "r", yun : "uan", sheng_id : PINYIN_ID_R, @@ -6228,6 +6707,7 @@ static const Pinyin pinyin_table[] = { }, { /* 479 */ text : "ruang", + bopomofo : "", sheng : "r", yun : "uang", sheng_id : PINYIN_ID_R, @@ -6241,6 +6721,7 @@ static const Pinyin pinyin_table[] = { }, { /* 480 */ text : "rue", + bopomofo : "", sheng : "r", yun : "üe", sheng_id : PINYIN_ID_R, @@ -6254,6 +6735,7 @@ static const Pinyin pinyin_table[] = { }, { /* 481 */ text : "ruei", + bopomofo : "", sheng : "r", yun : "ui", sheng_id : PINYIN_ID_R, @@ -6267,6 +6749,7 @@ static const Pinyin pinyin_table[] = { }, { /* 482 */ text : "ruen", + bopomofo : "", sheng : "r", yun : "un", sheng_id : PINYIN_ID_R, @@ -6280,6 +6763,7 @@ static const Pinyin pinyin_table[] = { }, { /* 483 */ text : "rui", + bopomofo : "ㄖㄨㄟ", sheng : "r", yun : "ui", sheng_id : PINYIN_ID_R, @@ -6293,6 +6777,7 @@ static const Pinyin pinyin_table[] = { }, { /* 484 */ text : "run", + bopomofo : "ㄖㄨㄣ", sheng : "r", yun : "un", sheng_id : PINYIN_ID_R, @@ -6306,6 +6791,7 @@ static const Pinyin pinyin_table[] = { }, { /* 485 */ text : "ruo", + bopomofo : "ㄖㄨㄛ", sheng : "r", yun : "uo", sheng_id : PINYIN_ID_R, @@ -6319,6 +6805,7 @@ static const Pinyin pinyin_table[] = { }, { /* 486 */ text : "rv", + bopomofo : "", sheng : "r", yun : "ü", sheng_id : PINYIN_ID_R, @@ -6332,6 +6819,7 @@ static const Pinyin pinyin_table[] = { }, { /* 487 */ text : "rve", + bopomofo : "", sheng : "r", yun : "üe", sheng_id : PINYIN_ID_R, @@ -6345,6 +6833,7 @@ static const Pinyin pinyin_table[] = { }, { /* 488 */ text : "s", + bopomofo : "", sheng : "s", yun : "", sheng_id : PINYIN_ID_S, @@ -6358,6 +6847,7 @@ static const Pinyin pinyin_table[] = { }, { /* 489 */ text : "sa", + bopomofo : "ㄙㄚ", sheng : "s", yun : "a", sheng_id : PINYIN_ID_S, @@ -6371,6 +6861,7 @@ static const Pinyin pinyin_table[] = { }, { /* 490 */ text : "sagn", + bopomofo : "", sheng : "s", yun : "ang", sheng_id : PINYIN_ID_S, @@ -6384,6 +6875,7 @@ static const Pinyin pinyin_table[] = { }, { /* 491 */ text : "sai", + bopomofo : "ㄙㄞ", sheng : "s", yun : "ai", sheng_id : PINYIN_ID_S, @@ -6397,6 +6889,7 @@ static const Pinyin pinyin_table[] = { }, { /* 492 */ text : "samg", + bopomofo : "", sheng : "s", yun : "ang", sheng_id : PINYIN_ID_S, @@ -6410,6 +6903,7 @@ static const Pinyin pinyin_table[] = { }, { /* 493 */ text : "san", + bopomofo : "ㄙㄢ", sheng : "s", yun : "an", sheng_id : PINYIN_ID_S, @@ -6423,6 +6917,7 @@ static const Pinyin pinyin_table[] = { }, { /* 494 */ text : "sang", + bopomofo : "ㄙㄤ", sheng : "s", yun : "ang", sheng_id : PINYIN_ID_S, @@ -6436,6 +6931,7 @@ static const Pinyin pinyin_table[] = { }, { /* 495 */ text : "sao", + bopomofo : "ㄙㄠ", sheng : "s", yun : "ao", sheng_id : PINYIN_ID_S, @@ -6449,6 +6945,7 @@ static const Pinyin pinyin_table[] = { }, { /* 496 */ text : "se", + bopomofo : "ㄙㄜ", sheng : "s", yun : "e", sheng_id : PINYIN_ID_S, @@ -6462,6 +6959,7 @@ static const Pinyin pinyin_table[] = { }, { /* 497 */ text : "segn", + bopomofo : "", sheng : "s", yun : "eng", sheng_id : PINYIN_ID_S, @@ -6475,6 +6973,7 @@ static const Pinyin pinyin_table[] = { }, { /* 498 */ text : "sei", + bopomofo : "", sheng : "s", yun : "ei", sheng_id : PINYIN_ID_S, @@ -6488,6 +6987,7 @@ static const Pinyin pinyin_table[] = { }, { /* 499 */ text : "semg", + bopomofo : "", sheng : "s", yun : "eng", sheng_id : PINYIN_ID_S, @@ -6501,6 +7001,7 @@ static const Pinyin pinyin_table[] = { }, { /* 500 */ text : "sen", + bopomofo : "ㄙㄣ", sheng : "s", yun : "en", sheng_id : PINYIN_ID_S, @@ -6514,6 +7015,7 @@ static const Pinyin pinyin_table[] = { }, { /* 501 */ text : "seng", + bopomofo : "ㄙㄥ", sheng : "s", yun : "eng", sheng_id : PINYIN_ID_S, @@ -6527,6 +7029,7 @@ static const Pinyin pinyin_table[] = { }, { /* 502 */ text : "sh", + bopomofo : "", sheng : "sh", yun : "", sheng_id : PINYIN_ID_SH, @@ -6540,6 +7043,7 @@ static const Pinyin pinyin_table[] = { }, { /* 503 */ text : "sha", + bopomofo : "ㄕㄚ", sheng : "sh", yun : "a", sheng_id : PINYIN_ID_SH, @@ -6553,6 +7057,7 @@ static const Pinyin pinyin_table[] = { }, { /* 504 */ text : "shagn", + bopomofo : "", sheng : "sh", yun : "ang", sheng_id : PINYIN_ID_SH, @@ -6566,6 +7071,7 @@ static const Pinyin pinyin_table[] = { }, { /* 505 */ text : "shai", + bopomofo : "ㄕㄞ", sheng : "sh", yun : "ai", sheng_id : PINYIN_ID_SH, @@ -6579,6 +7085,7 @@ static const Pinyin pinyin_table[] = { }, { /* 506 */ text : "shamg", + bopomofo : "", sheng : "sh", yun : "ang", sheng_id : PINYIN_ID_SH, @@ -6592,6 +7099,7 @@ static const Pinyin pinyin_table[] = { }, { /* 507 */ text : "shan", + bopomofo : "ㄕㄢ", sheng : "sh", yun : "an", sheng_id : PINYIN_ID_SH, @@ -6605,6 +7113,7 @@ static const Pinyin pinyin_table[] = { }, { /* 508 */ text : "shang", + bopomofo : "ㄕㄤ", sheng : "sh", yun : "ang", sheng_id : PINYIN_ID_SH, @@ -6618,6 +7127,7 @@ static const Pinyin pinyin_table[] = { }, { /* 509 */ text : "shao", + bopomofo : "ㄕㄠ", sheng : "sh", yun : "ao", sheng_id : PINYIN_ID_SH, @@ -6631,6 +7141,7 @@ static const Pinyin pinyin_table[] = { }, { /* 510 */ text : "she", + bopomofo : "ㄕㄜ", sheng : "sh", yun : "e", sheng_id : PINYIN_ID_SH, @@ -6644,6 +7155,7 @@ static const Pinyin pinyin_table[] = { }, { /* 511 */ text : "shegn", + bopomofo : "", sheng : "sh", yun : "eng", sheng_id : PINYIN_ID_SH, @@ -6657,6 +7169,7 @@ static const Pinyin pinyin_table[] = { }, { /* 512 */ text : "shei", + bopomofo : "ㄕㄟ", sheng : "sh", yun : "ei", sheng_id : PINYIN_ID_SH, @@ -6670,6 +7183,7 @@ static const Pinyin pinyin_table[] = { }, { /* 513 */ text : "shemg", + bopomofo : "", sheng : "sh", yun : "eng", sheng_id : PINYIN_ID_SH, @@ -6683,6 +7197,7 @@ static const Pinyin pinyin_table[] = { }, { /* 514 */ text : "shen", + bopomofo : "ㄕㄣ", sheng : "sh", yun : "en", sheng_id : PINYIN_ID_SH, @@ -6696,6 +7211,7 @@ static const Pinyin pinyin_table[] = { }, { /* 515 */ text : "sheng", + bopomofo : "ㄕㄥ", sheng : "sh", yun : "eng", sheng_id : PINYIN_ID_SH, @@ -6709,6 +7225,7 @@ static const Pinyin pinyin_table[] = { }, { /* 516 */ text : "shi", + bopomofo : "ㄕ", sheng : "sh", yun : "i", sheng_id : PINYIN_ID_SH, @@ -6722,6 +7239,7 @@ static const Pinyin pinyin_table[] = { }, { /* 517 */ text : "shong", + bopomofo : "", sheng : "sh", yun : "ong", sheng_id : PINYIN_ID_SH, @@ -6735,6 +7253,7 @@ static const Pinyin pinyin_table[] = { }, { /* 518 */ text : "shou", + bopomofo : "ㄕㄡ", sheng : "sh", yun : "ou", sheng_id : PINYIN_ID_SH, @@ -6748,6 +7267,7 @@ static const Pinyin pinyin_table[] = { }, { /* 519 */ text : "shu", + bopomofo : "ㄕㄨ", sheng : "sh", yun : "u", sheng_id : PINYIN_ID_SH, @@ -6761,6 +7281,7 @@ static const Pinyin pinyin_table[] = { }, { /* 520 */ text : "shua", + bopomofo : "ㄕㄨㄚ", sheng : "sh", yun : "ua", sheng_id : PINYIN_ID_SH, @@ -6774,6 +7295,7 @@ static const Pinyin pinyin_table[] = { }, { /* 521 */ text : "shuagn", + bopomofo : "", sheng : "sh", yun : "uang", sheng_id : PINYIN_ID_SH, @@ -6787,6 +7309,7 @@ static const Pinyin pinyin_table[] = { }, { /* 522 */ text : "shuai", + bopomofo : "ㄕㄨㄞ", sheng : "sh", yun : "uai", sheng_id : PINYIN_ID_SH, @@ -6800,6 +7323,7 @@ static const Pinyin pinyin_table[] = { }, { /* 523 */ text : "shuamg", + bopomofo : "", sheng : "sh", yun : "uang", sheng_id : PINYIN_ID_SH, @@ -6813,6 +7337,7 @@ static const Pinyin pinyin_table[] = { }, { /* 524 */ text : "shuan", + bopomofo : "ㄕㄨㄢ", sheng : "sh", yun : "uan", sheng_id : PINYIN_ID_SH, @@ -6826,6 +7351,7 @@ static const Pinyin pinyin_table[] = { }, { /* 525 */ text : "shuang", + bopomofo : "ㄕㄨㄤ", sheng : "sh", yun : "uang", sheng_id : PINYIN_ID_SH, @@ -6839,6 +7365,7 @@ static const Pinyin pinyin_table[] = { }, { /* 526 */ text : "shuei", + bopomofo : "", sheng : "sh", yun : "ui", sheng_id : PINYIN_ID_SH, @@ -6852,6 +7379,7 @@ static const Pinyin pinyin_table[] = { }, { /* 527 */ text : "shuen", + bopomofo : "", sheng : "sh", yun : "un", sheng_id : PINYIN_ID_SH, @@ -6865,6 +7393,7 @@ static const Pinyin pinyin_table[] = { }, { /* 528 */ text : "shui", + bopomofo : "ㄕㄨㄟ", sheng : "sh", yun : "ui", sheng_id : PINYIN_ID_SH, @@ -6878,6 +7407,7 @@ static const Pinyin pinyin_table[] = { }, { /* 529 */ text : "shun", + bopomofo : "ㄕㄨㄣ", sheng : "sh", yun : "un", sheng_id : PINYIN_ID_SH, @@ -6891,6 +7421,7 @@ static const Pinyin pinyin_table[] = { }, { /* 530 */ text : "shuo", + bopomofo : "ㄕㄨㄛ", sheng : "sh", yun : "uo", sheng_id : PINYIN_ID_SH, @@ -6904,6 +7435,7 @@ static const Pinyin pinyin_table[] = { }, { /* 531 */ text : "si", + bopomofo : "ㄙ", sheng : "s", yun : "i", sheng_id : PINYIN_ID_S, @@ -6917,6 +7449,7 @@ static const Pinyin pinyin_table[] = { }, { /* 532 */ text : "sogn", + bopomofo : "", sheng : "s", yun : "ong", sheng_id : PINYIN_ID_S, @@ -6930,6 +7463,7 @@ static const Pinyin pinyin_table[] = { }, { /* 533 */ text : "somg", + bopomofo : "", sheng : "s", yun : "ong", sheng_id : PINYIN_ID_S, @@ -6943,6 +7477,7 @@ static const Pinyin pinyin_table[] = { }, { /* 534 */ text : "song", + bopomofo : "ㄙㄨㄥ", sheng : "s", yun : "ong", sheng_id : PINYIN_ID_S, @@ -6956,6 +7491,7 @@ static const Pinyin pinyin_table[] = { }, { /* 535 */ text : "sou", + bopomofo : "ㄙㄡ", sheng : "s", yun : "ou", sheng_id : PINYIN_ID_S, @@ -6969,6 +7505,7 @@ static const Pinyin pinyin_table[] = { }, { /* 536 */ text : "su", + bopomofo : "ㄙㄨ", sheng : "s", yun : "u", sheng_id : PINYIN_ID_S, @@ -6982,6 +7519,7 @@ static const Pinyin pinyin_table[] = { }, { /* 537 */ text : "sua", + bopomofo : "", sheng : "s", yun : "ua", sheng_id : PINYIN_ID_S, @@ -6995,6 +7533,7 @@ static const Pinyin pinyin_table[] = { }, { /* 538 */ text : "suai", + bopomofo : "", sheng : "s", yun : "uai", sheng_id : PINYIN_ID_S, @@ -7008,6 +7547,7 @@ static const Pinyin pinyin_table[] = { }, { /* 539 */ text : "suan", + bopomofo : "ㄙㄨㄢ", sheng : "s", yun : "uan", sheng_id : PINYIN_ID_S, @@ -7021,6 +7561,7 @@ static const Pinyin pinyin_table[] = { }, { /* 540 */ text : "suang", + bopomofo : "", sheng : "s", yun : "uang", sheng_id : PINYIN_ID_S, @@ -7034,6 +7575,7 @@ static const Pinyin pinyin_table[] = { }, { /* 541 */ text : "suei", + bopomofo : "", sheng : "s", yun : "ui", sheng_id : PINYIN_ID_S, @@ -7047,6 +7589,7 @@ static const Pinyin pinyin_table[] = { }, { /* 542 */ text : "suen", + bopomofo : "", sheng : "s", yun : "un", sheng_id : PINYIN_ID_S, @@ -7060,6 +7603,7 @@ static const Pinyin pinyin_table[] = { }, { /* 543 */ text : "sui", + bopomofo : "ㄙㄨㄟ", sheng : "s", yun : "ui", sheng_id : PINYIN_ID_S, @@ -7073,6 +7617,7 @@ static const Pinyin pinyin_table[] = { }, { /* 544 */ text : "sun", + bopomofo : "ㄙㄨㄣ", sheng : "s", yun : "un", sheng_id : PINYIN_ID_S, @@ -7086,6 +7631,7 @@ static const Pinyin pinyin_table[] = { }, { /* 545 */ text : "suo", + bopomofo : "ㄙㄨㄛ", sheng : "s", yun : "uo", sheng_id : PINYIN_ID_S, @@ -7099,6 +7645,7 @@ static const Pinyin pinyin_table[] = { }, { /* 546 */ text : "t", + bopomofo : "ㄊ", sheng : "t", yun : "", sheng_id : PINYIN_ID_T, @@ -7112,6 +7659,7 @@ static const Pinyin pinyin_table[] = { }, { /* 547 */ text : "ta", + bopomofo : "ㄊㄚ", sheng : "t", yun : "a", sheng_id : PINYIN_ID_T, @@ -7125,6 +7673,7 @@ static const Pinyin pinyin_table[] = { }, { /* 548 */ text : "tagn", + bopomofo : "", sheng : "t", yun : "ang", sheng_id : PINYIN_ID_T, @@ -7138,6 +7687,7 @@ static const Pinyin pinyin_table[] = { }, { /* 549 */ text : "tai", + bopomofo : "ㄊㄞ", sheng : "t", yun : "ai", sheng_id : PINYIN_ID_T, @@ -7151,6 +7701,7 @@ static const Pinyin pinyin_table[] = { }, { /* 550 */ text : "tamg", + bopomofo : "", sheng : "t", yun : "ang", sheng_id : PINYIN_ID_T, @@ -7164,6 +7715,7 @@ static const Pinyin pinyin_table[] = { }, { /* 551 */ text : "tan", + bopomofo : "ㄊㄢ", sheng : "t", yun : "an", sheng_id : PINYIN_ID_T, @@ -7177,6 +7729,7 @@ static const Pinyin pinyin_table[] = { }, { /* 552 */ text : "tang", + bopomofo : "ㄊㄤ", sheng : "t", yun : "ang", sheng_id : PINYIN_ID_T, @@ -7190,6 +7743,7 @@ static const Pinyin pinyin_table[] = { }, { /* 553 */ text : "tao", + bopomofo : "ㄊㄠ", sheng : "t", yun : "ao", sheng_id : PINYIN_ID_T, @@ -7203,6 +7757,7 @@ static const Pinyin pinyin_table[] = { }, { /* 554 */ text : "te", + bopomofo : "ㄊㄜ", sheng : "t", yun : "e", sheng_id : PINYIN_ID_T, @@ -7216,6 +7771,7 @@ static const Pinyin pinyin_table[] = { }, { /* 555 */ text : "tegn", + bopomofo : "", sheng : "t", yun : "eng", sheng_id : PINYIN_ID_T, @@ -7229,6 +7785,7 @@ static const Pinyin pinyin_table[] = { }, { /* 556 */ text : "temg", + bopomofo : "", sheng : "t", yun : "eng", sheng_id : PINYIN_ID_T, @@ -7242,6 +7799,7 @@ static const Pinyin pinyin_table[] = { }, { /* 557 */ text : "ten", + bopomofo : "", sheng : "t", yun : "en", sheng_id : PINYIN_ID_T, @@ -7255,6 +7813,7 @@ static const Pinyin pinyin_table[] = { }, { /* 558 */ text : "teng", + bopomofo : "ㄊㄥ", sheng : "t", yun : "eng", sheng_id : PINYIN_ID_T, @@ -7268,6 +7827,7 @@ static const Pinyin pinyin_table[] = { }, { /* 559 */ text : "ti", + bopomofo : "ㄊㄧ", sheng : "t", yun : "i", sheng_id : PINYIN_ID_T, @@ -7281,6 +7841,7 @@ static const Pinyin pinyin_table[] = { }, { /* 560 */ text : "tian", + bopomofo : "ㄊㄧㄢ", sheng : "t", yun : "ian", sheng_id : PINYIN_ID_T, @@ -7294,6 +7855,7 @@ static const Pinyin pinyin_table[] = { }, { /* 561 */ text : "tiang", + bopomofo : "", sheng : "t", yun : "iang", sheng_id : PINYIN_ID_T, @@ -7307,6 +7869,7 @@ static const Pinyin pinyin_table[] = { }, { /* 562 */ text : "tiao", + bopomofo : "ㄊㄧㄠ", sheng : "t", yun : "iao", sheng_id : PINYIN_ID_T, @@ -7320,6 +7883,7 @@ static const Pinyin pinyin_table[] = { }, { /* 563 */ text : "tie", + bopomofo : "ㄊㄧㄝ", sheng : "t", yun : "ie", sheng_id : PINYIN_ID_T, @@ -7333,6 +7897,7 @@ static const Pinyin pinyin_table[] = { }, { /* 564 */ text : "tign", + bopomofo : "", sheng : "t", yun : "ing", sheng_id : PINYIN_ID_T, @@ -7346,6 +7911,7 @@ static const Pinyin pinyin_table[] = { }, { /* 565 */ text : "timg", + bopomofo : "", sheng : "t", yun : "ing", sheng_id : PINYIN_ID_T, @@ -7359,6 +7925,7 @@ static const Pinyin pinyin_table[] = { }, { /* 566 */ text : "tin", + bopomofo : "", sheng : "t", yun : "in", sheng_id : PINYIN_ID_T, @@ -7372,6 +7939,7 @@ static const Pinyin pinyin_table[] = { }, { /* 567 */ text : "ting", + bopomofo : "ㄊㄧㄥ", sheng : "t", yun : "ing", sheng_id : PINYIN_ID_T, @@ -7385,6 +7953,7 @@ static const Pinyin pinyin_table[] = { }, { /* 568 */ text : "togn", + bopomofo : "", sheng : "t", yun : "ong", sheng_id : PINYIN_ID_T, @@ -7398,6 +7967,7 @@ static const Pinyin pinyin_table[] = { }, { /* 569 */ text : "tomg", + bopomofo : "", sheng : "t", yun : "ong", sheng_id : PINYIN_ID_T, @@ -7411,6 +7981,7 @@ static const Pinyin pinyin_table[] = { }, { /* 570 */ text : "tong", + bopomofo : "ㄊㄨㄥ", sheng : "t", yun : "ong", sheng_id : PINYIN_ID_T, @@ -7424,6 +7995,7 @@ static const Pinyin pinyin_table[] = { }, { /* 571 */ text : "tou", + bopomofo : "ㄊㄡ", sheng : "t", yun : "ou", sheng_id : PINYIN_ID_T, @@ -7437,6 +8009,7 @@ static const Pinyin pinyin_table[] = { }, { /* 572 */ text : "tu", + bopomofo : "ㄊㄨ", sheng : "t", yun : "u", sheng_id : PINYIN_ID_T, @@ -7450,6 +8023,7 @@ static const Pinyin pinyin_table[] = { }, { /* 573 */ text : "tuan", + bopomofo : "ㄊㄨㄢ", sheng : "t", yun : "uan", sheng_id : PINYIN_ID_T, @@ -7463,6 +8037,7 @@ static const Pinyin pinyin_table[] = { }, { /* 574 */ text : "tuang", + bopomofo : "", sheng : "t", yun : "uang", sheng_id : PINYIN_ID_T, @@ -7476,6 +8051,7 @@ static const Pinyin pinyin_table[] = { }, { /* 575 */ text : "tuei", + bopomofo : "", sheng : "t", yun : "ui", sheng_id : PINYIN_ID_T, @@ -7489,6 +8065,7 @@ static const Pinyin pinyin_table[] = { }, { /* 576 */ text : "tuen", + bopomofo : "", sheng : "t", yun : "un", sheng_id : PINYIN_ID_T, @@ -7502,6 +8079,7 @@ static const Pinyin pinyin_table[] = { }, { /* 577 */ text : "tui", + bopomofo : "ㄊㄨㄟ", sheng : "t", yun : "ui", sheng_id : PINYIN_ID_T, @@ -7515,6 +8093,7 @@ static const Pinyin pinyin_table[] = { }, { /* 578 */ text : "tun", + bopomofo : "ㄊㄨㄣ", sheng : "t", yun : "un", sheng_id : PINYIN_ID_T, @@ -7528,6 +8107,7 @@ static const Pinyin pinyin_table[] = { }, { /* 579 */ text : "tuo", + bopomofo : "ㄊㄨㄛ", sheng : "t", yun : "uo", sheng_id : PINYIN_ID_T, @@ -7541,6 +8121,7 @@ static const Pinyin pinyin_table[] = { }, { /* 580 */ text : "w", + bopomofo : "", sheng : "w", yun : "", sheng_id : PINYIN_ID_W, @@ -7554,6 +8135,7 @@ static const Pinyin pinyin_table[] = { }, { /* 581 */ text : "wa", + bopomofo : "ㄨㄚ", sheng : "w", yun : "a", sheng_id : PINYIN_ID_W, @@ -7567,6 +8149,7 @@ static const Pinyin pinyin_table[] = { }, { /* 582 */ text : "wagn", + bopomofo : "", sheng : "w", yun : "ang", sheng_id : PINYIN_ID_W, @@ -7580,6 +8163,7 @@ static const Pinyin pinyin_table[] = { }, { /* 583 */ text : "wai", + bopomofo : "ㄨㄞ", sheng : "w", yun : "ai", sheng_id : PINYIN_ID_W, @@ -7593,6 +8177,7 @@ static const Pinyin pinyin_table[] = { }, { /* 584 */ text : "wamg", + bopomofo : "", sheng : "w", yun : "ang", sheng_id : PINYIN_ID_W, @@ -7606,6 +8191,7 @@ static const Pinyin pinyin_table[] = { }, { /* 585 */ text : "wan", + bopomofo : "ㄨㄢ", sheng : "w", yun : "an", sheng_id : PINYIN_ID_W, @@ -7619,6 +8205,7 @@ static const Pinyin pinyin_table[] = { }, { /* 586 */ text : "wang", + bopomofo : "ㄨㄤ", sheng : "w", yun : "ang", sheng_id : PINYIN_ID_W, @@ -7632,6 +8219,7 @@ static const Pinyin pinyin_table[] = { }, { /* 587 */ text : "wegn", + bopomofo : "", sheng : "w", yun : "eng", sheng_id : PINYIN_ID_W, @@ -7645,6 +8233,7 @@ static const Pinyin pinyin_table[] = { }, { /* 588 */ text : "wei", + bopomofo : "ㄨㄟ", sheng : "w", yun : "ei", sheng_id : PINYIN_ID_W, @@ -7658,6 +8247,7 @@ static const Pinyin pinyin_table[] = { }, { /* 589 */ text : "wemg", + bopomofo : "", sheng : "w", yun : "eng", sheng_id : PINYIN_ID_W, @@ -7671,6 +8261,7 @@ static const Pinyin pinyin_table[] = { }, { /* 590 */ text : "wen", + bopomofo : "ㄨㄣ", sheng : "w", yun : "en", sheng_id : PINYIN_ID_W, @@ -7684,6 +8275,7 @@ static const Pinyin pinyin_table[] = { }, { /* 591 */ text : "weng", + bopomofo : "ㄨㄥ", sheng : "w", yun : "eng", sheng_id : PINYIN_ID_W, @@ -7697,6 +8289,7 @@ static const Pinyin pinyin_table[] = { }, { /* 592 */ text : "wo", + bopomofo : "ㄨㄛ", sheng : "w", yun : "o", sheng_id : PINYIN_ID_W, @@ -7710,6 +8303,7 @@ static const Pinyin pinyin_table[] = { }, { /* 593 */ text : "wu", + bopomofo : "ㄨ", sheng : "w", yun : "u", sheng_id : PINYIN_ID_W, @@ -7723,6 +8317,7 @@ static const Pinyin pinyin_table[] = { }, { /* 594 */ text : "x", + bopomofo : "ㄒ", sheng : "x", yun : "", sheng_id : PINYIN_ID_X, @@ -7736,6 +8331,7 @@ static const Pinyin pinyin_table[] = { }, { /* 595 */ text : "xi", + bopomofo : "ㄒㄧ", sheng : "x", yun : "i", sheng_id : PINYIN_ID_X, @@ -7749,6 +8345,7 @@ static const Pinyin pinyin_table[] = { }, { /* 596 */ text : "xia", + bopomofo : "ㄒㄧㄚ", sheng : "x", yun : "ia", sheng_id : PINYIN_ID_X, @@ -7762,6 +8359,7 @@ static const Pinyin pinyin_table[] = { }, { /* 597 */ text : "xiagn", + bopomofo : "", sheng : "x", yun : "iang", sheng_id : PINYIN_ID_X, @@ -7775,6 +8373,7 @@ static const Pinyin pinyin_table[] = { }, { /* 598 */ text : "xiamg", + bopomofo : "", sheng : "x", yun : "iang", sheng_id : PINYIN_ID_X, @@ -7788,6 +8387,7 @@ static const Pinyin pinyin_table[] = { }, { /* 599 */ text : "xian", + bopomofo : "ㄒㄧㄢ", sheng : "x", yun : "ian", sheng_id : PINYIN_ID_X, @@ -7801,6 +8401,7 @@ static const Pinyin pinyin_table[] = { }, { /* 600 */ text : "xiang", + bopomofo : "ㄒㄧㄤ", sheng : "x", yun : "iang", sheng_id : PINYIN_ID_X, @@ -7814,6 +8415,7 @@ static const Pinyin pinyin_table[] = { }, { /* 601 */ text : "xiao", + bopomofo : "ㄒㄧㄠ", sheng : "x", yun : "iao", sheng_id : PINYIN_ID_X, @@ -7827,6 +8429,7 @@ static const Pinyin pinyin_table[] = { }, { /* 602 */ text : "xie", + bopomofo : "ㄒㄧㄝ", sheng : "x", yun : "ie", sheng_id : PINYIN_ID_X, @@ -7840,6 +8443,7 @@ static const Pinyin pinyin_table[] = { }, { /* 603 */ text : "xign", + bopomofo : "", sheng : "x", yun : "ing", sheng_id : PINYIN_ID_X, @@ -7853,6 +8457,7 @@ static const Pinyin pinyin_table[] = { }, { /* 604 */ text : "ximg", + bopomofo : "", sheng : "x", yun : "ing", sheng_id : PINYIN_ID_X, @@ -7866,6 +8471,7 @@ static const Pinyin pinyin_table[] = { }, { /* 605 */ text : "xin", + bopomofo : "ㄒㄧㄣ", sheng : "x", yun : "in", sheng_id : PINYIN_ID_X, @@ -7879,6 +8485,7 @@ static const Pinyin pinyin_table[] = { }, { /* 606 */ text : "xing", + bopomofo : "ㄒㄧㄥ", sheng : "x", yun : "ing", sheng_id : PINYIN_ID_X, @@ -7892,6 +8499,7 @@ static const Pinyin pinyin_table[] = { }, { /* 607 */ text : "xiogn", + bopomofo : "", sheng : "x", yun : "iong", sheng_id : PINYIN_ID_X, @@ -7905,6 +8513,7 @@ static const Pinyin pinyin_table[] = { }, { /* 608 */ text : "xiomg", + bopomofo : "", sheng : "x", yun : "iong", sheng_id : PINYIN_ID_X, @@ -7918,6 +8527,7 @@ static const Pinyin pinyin_table[] = { }, { /* 609 */ text : "xiong", + bopomofo : "ㄒㄩㄥ", sheng : "x", yun : "iong", sheng_id : PINYIN_ID_X, @@ -7931,6 +8541,7 @@ static const Pinyin pinyin_table[] = { }, { /* 610 */ text : "xiou", + bopomofo : "", sheng : "x", yun : "iu", sheng_id : PINYIN_ID_X, @@ -7944,6 +8555,7 @@ static const Pinyin pinyin_table[] = { }, { /* 611 */ text : "xiu", + bopomofo : "ㄒㄧㄡ", sheng : "x", yun : "iu", sheng_id : PINYIN_ID_X, @@ -7957,6 +8569,7 @@ static const Pinyin pinyin_table[] = { }, { /* 612 */ text : "xu", + bopomofo : "ㄒㄩ", sheng : "x", yun : "u", sheng_id : PINYIN_ID_X, @@ -7970,6 +8583,7 @@ static const Pinyin pinyin_table[] = { }, { /* 613 */ text : "xuan", + bopomofo : "ㄒㄩㄢ", sheng : "x", yun : "uan", sheng_id : PINYIN_ID_X, @@ -7983,6 +8597,7 @@ static const Pinyin pinyin_table[] = { }, { /* 614 */ text : "xuang", + bopomofo : "", sheng : "x", yun : "uang", sheng_id : PINYIN_ID_X, @@ -7996,6 +8611,7 @@ static const Pinyin pinyin_table[] = { }, { /* 615 */ text : "xue", + bopomofo : "ㄒㄩㄝ", sheng : "x", yun : "ue", sheng_id : PINYIN_ID_X, @@ -8009,6 +8625,7 @@ static const Pinyin pinyin_table[] = { }, { /* 616 */ text : "xuen", + bopomofo : "", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8022,6 +8639,7 @@ static const Pinyin pinyin_table[] = { }, { /* 617 */ text : "xun", + bopomofo : "ㄒㄩㄣ", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8035,6 +8653,7 @@ static const Pinyin pinyin_table[] = { }, { /* 618 */ text : "xv", + bopomofo : "", sheng : "x", yun : "u", sheng_id : PINYIN_ID_X, @@ -8048,6 +8667,7 @@ static const Pinyin pinyin_table[] = { }, { /* 619 */ text : "xvan", + bopomofo : "", sheng : "x", yun : "uan", sheng_id : PINYIN_ID_X, @@ -8061,6 +8681,7 @@ static const Pinyin pinyin_table[] = { }, { /* 620 */ text : "xvang", + bopomofo : "", sheng : "x", yun : "uang", sheng_id : PINYIN_ID_X, @@ -8074,6 +8695,7 @@ static const Pinyin pinyin_table[] = { }, { /* 621 */ text : "xve", + bopomofo : "", sheng : "x", yun : "ue", sheng_id : PINYIN_ID_X, @@ -8087,6 +8709,7 @@ static const Pinyin pinyin_table[] = { }, { /* 622 */ text : "xven", + bopomofo : "", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8100,6 +8723,7 @@ static const Pinyin pinyin_table[] = { }, { /* 623 */ text : "xvn", + bopomofo : "", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8113,6 +8737,7 @@ static const Pinyin pinyin_table[] = { }, { /* 624 */ text : "y", + bopomofo : "", sheng : "y", yun : "", sheng_id : PINYIN_ID_Y, @@ -8126,6 +8751,7 @@ static const Pinyin pinyin_table[] = { }, { /* 625 */ text : "ya", + bopomofo : "ㄧㄚ", sheng : "y", yun : "a", sheng_id : PINYIN_ID_Y, @@ -8139,6 +8765,7 @@ static const Pinyin pinyin_table[] = { }, { /* 626 */ text : "yagn", + bopomofo : "", sheng : "y", yun : "ang", sheng_id : PINYIN_ID_Y, @@ -8152,6 +8779,7 @@ static const Pinyin pinyin_table[] = { }, { /* 627 */ text : "yamg", + bopomofo : "", sheng : "y", yun : "ang", sheng_id : PINYIN_ID_Y, @@ -8165,6 +8793,7 @@ static const Pinyin pinyin_table[] = { }, { /* 628 */ text : "yan", + bopomofo : "ㄧㄢ", sheng : "y", yun : "an", sheng_id : PINYIN_ID_Y, @@ -8178,6 +8807,7 @@ static const Pinyin pinyin_table[] = { }, { /* 629 */ text : "yang", + bopomofo : "ㄧㄤ", sheng : "y", yun : "ang", sheng_id : PINYIN_ID_Y, @@ -8191,6 +8821,7 @@ static const Pinyin pinyin_table[] = { }, { /* 630 */ text : "yao", + bopomofo : "ㄧㄠ", sheng : "y", yun : "ao", sheng_id : PINYIN_ID_Y, @@ -8204,6 +8835,7 @@ static const Pinyin pinyin_table[] = { }, { /* 631 */ text : "ye", + bopomofo : "ㄧㄝ", sheng : "y", yun : "e", sheng_id : PINYIN_ID_Y, @@ -8217,6 +8849,7 @@ static const Pinyin pinyin_table[] = { }, { /* 632 */ text : "yi", + bopomofo : "ㄧ", sheng : "y", yun : "i", sheng_id : PINYIN_ID_Y, @@ -8230,6 +8863,7 @@ static const Pinyin pinyin_table[] = { }, { /* 633 */ text : "yign", + bopomofo : "", sheng : "y", yun : "ing", sheng_id : PINYIN_ID_Y, @@ -8243,6 +8877,7 @@ static const Pinyin pinyin_table[] = { }, { /* 634 */ text : "yimg", + bopomofo : "", sheng : "y", yun : "ing", sheng_id : PINYIN_ID_Y, @@ -8256,6 +8891,7 @@ static const Pinyin pinyin_table[] = { }, { /* 635 */ text : "yin", + bopomofo : "ㄧㄣ", sheng : "y", yun : "in", sheng_id : PINYIN_ID_Y, @@ -8269,6 +8905,7 @@ static const Pinyin pinyin_table[] = { }, { /* 636 */ text : "ying", + bopomofo : "ㄧㄥ", sheng : "y", yun : "ing", sheng_id : PINYIN_ID_Y, @@ -8282,6 +8919,7 @@ static const Pinyin pinyin_table[] = { }, { /* 637 */ text : "yo", + bopomofo : "ㄧㄛ", sheng : "y", yun : "o", sheng_id : PINYIN_ID_Y, @@ -8295,6 +8933,7 @@ static const Pinyin pinyin_table[] = { }, { /* 638 */ text : "yogn", + bopomofo : "", sheng : "y", yun : "ong", sheng_id : PINYIN_ID_Y, @@ -8308,6 +8947,7 @@ static const Pinyin pinyin_table[] = { }, { /* 639 */ text : "yomg", + bopomofo : "", sheng : "y", yun : "ong", sheng_id : PINYIN_ID_Y, @@ -8321,6 +8961,7 @@ static const Pinyin pinyin_table[] = { }, { /* 640 */ text : "yong", + bopomofo : "ㄩㄥ", sheng : "y", yun : "ong", sheng_id : PINYIN_ID_Y, @@ -8334,6 +8975,7 @@ static const Pinyin pinyin_table[] = { }, { /* 641 */ text : "you", + bopomofo : "ㄧㄡ", sheng : "y", yun : "ou", sheng_id : PINYIN_ID_Y, @@ -8347,6 +8989,7 @@ static const Pinyin pinyin_table[] = { }, { /* 642 */ text : "yu", + bopomofo : "ㄩ", sheng : "y", yun : "u", sheng_id : PINYIN_ID_Y, @@ -8360,6 +9003,7 @@ static const Pinyin pinyin_table[] = { }, { /* 643 */ text : "yuan", + bopomofo : "ㄩㄢ", sheng : "y", yun : "uan", sheng_id : PINYIN_ID_Y, @@ -8373,6 +9017,7 @@ static const Pinyin pinyin_table[] = { }, { /* 644 */ text : "yuang", + bopomofo : "", sheng : "y", yun : "uang", sheng_id : PINYIN_ID_Y, @@ -8386,6 +9031,7 @@ static const Pinyin pinyin_table[] = { }, { /* 645 */ text : "yue", + bopomofo : "ㄩㄝ", sheng : "y", yun : "ue", sheng_id : PINYIN_ID_Y, @@ -8399,6 +9045,7 @@ static const Pinyin pinyin_table[] = { }, { /* 646 */ text : "yuen", + bopomofo : "", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -8412,6 +9059,7 @@ static const Pinyin pinyin_table[] = { }, { /* 647 */ text : "yun", + bopomofo : "ㄩㄣ", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -8425,6 +9073,7 @@ static const Pinyin pinyin_table[] = { }, { /* 648 */ text : "yv", + bopomofo : "", sheng : "y", yun : "u", sheng_id : PINYIN_ID_Y, @@ -8438,6 +9087,7 @@ static const Pinyin pinyin_table[] = { }, { /* 649 */ text : "yvan", + bopomofo : "", sheng : "y", yun : "uan", sheng_id : PINYIN_ID_Y, @@ -8451,6 +9101,7 @@ static const Pinyin pinyin_table[] = { }, { /* 650 */ text : "yvang", + bopomofo : "", sheng : "y", yun : "uang", sheng_id : PINYIN_ID_Y, @@ -8464,6 +9115,7 @@ static const Pinyin pinyin_table[] = { }, { /* 651 */ text : "yve", + bopomofo : "", sheng : "y", yun : "ue", sheng_id : PINYIN_ID_Y, @@ -8477,6 +9129,7 @@ static const Pinyin pinyin_table[] = { }, { /* 652 */ text : "yven", + bopomofo : "", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -8490,6 +9143,7 @@ static const Pinyin pinyin_table[] = { }, { /* 653 */ text : "yvn", + bopomofo : "", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -8503,6 +9157,7 @@ static const Pinyin pinyin_table[] = { }, { /* 654 */ text : "z", + bopomofo : "", sheng : "z", yun : "", sheng_id : PINYIN_ID_Z, @@ -8516,6 +9171,7 @@ static const Pinyin pinyin_table[] = { }, { /* 655 */ text : "za", + bopomofo : "ㄗㄚ", sheng : "z", yun : "a", sheng_id : PINYIN_ID_Z, @@ -8529,6 +9185,7 @@ static const Pinyin pinyin_table[] = { }, { /* 656 */ text : "zagn", + bopomofo : "", sheng : "z", yun : "ang", sheng_id : PINYIN_ID_Z, @@ -8542,6 +9199,7 @@ static const Pinyin pinyin_table[] = { }, { /* 657 */ text : "zai", + bopomofo : "ㄗㄞ", sheng : "z", yun : "ai", sheng_id : PINYIN_ID_Z, @@ -8555,6 +9213,7 @@ static const Pinyin pinyin_table[] = { }, { /* 658 */ text : "zamg", + bopomofo : "", sheng : "z", yun : "ang", sheng_id : PINYIN_ID_Z, @@ -8568,6 +9227,7 @@ static const Pinyin pinyin_table[] = { }, { /* 659 */ text : "zan", + bopomofo : "ㄗㄢ", sheng : "z", yun : "an", sheng_id : PINYIN_ID_Z, @@ -8581,6 +9241,7 @@ static const Pinyin pinyin_table[] = { }, { /* 660 */ text : "zang", + bopomofo : "ㄗㄤ", sheng : "z", yun : "ang", sheng_id : PINYIN_ID_Z, @@ -8594,6 +9255,7 @@ static const Pinyin pinyin_table[] = { }, { /* 661 */ text : "zao", + bopomofo : "ㄗㄠ", sheng : "z", yun : "ao", sheng_id : PINYIN_ID_Z, @@ -8607,6 +9269,7 @@ static const Pinyin pinyin_table[] = { }, { /* 662 */ text : "ze", + bopomofo : "ㄗㄜ", sheng : "z", yun : "e", sheng_id : PINYIN_ID_Z, @@ -8620,6 +9283,7 @@ static const Pinyin pinyin_table[] = { }, { /* 663 */ text : "zegn", + bopomofo : "", sheng : "z", yun : "eng", sheng_id : PINYIN_ID_Z, @@ -8633,6 +9297,7 @@ static const Pinyin pinyin_table[] = { }, { /* 664 */ text : "zei", + bopomofo : "ㄗㄟ", sheng : "z", yun : "ei", sheng_id : PINYIN_ID_Z, @@ -8646,6 +9311,7 @@ static const Pinyin pinyin_table[] = { }, { /* 665 */ text : "zemg", + bopomofo : "", sheng : "z", yun : "eng", sheng_id : PINYIN_ID_Z, @@ -8659,6 +9325,7 @@ static const Pinyin pinyin_table[] = { }, { /* 666 */ text : "zen", + bopomofo : "ㄗㄣ", sheng : "z", yun : "en", sheng_id : PINYIN_ID_Z, @@ -8672,6 +9339,7 @@ static const Pinyin pinyin_table[] = { }, { /* 667 */ text : "zeng", + bopomofo : "ㄗㄥ", sheng : "z", yun : "eng", sheng_id : PINYIN_ID_Z, @@ -8685,6 +9353,7 @@ static const Pinyin pinyin_table[] = { }, { /* 668 */ text : "zh", + bopomofo : "", sheng : "zh", yun : "", sheng_id : PINYIN_ID_ZH, @@ -8698,6 +9367,7 @@ static const Pinyin pinyin_table[] = { }, { /* 669 */ text : "zha", + bopomofo : "ㄓㄚ", sheng : "zh", yun : "a", sheng_id : PINYIN_ID_ZH, @@ -8711,6 +9381,7 @@ static const Pinyin pinyin_table[] = { }, { /* 670 */ text : "zhagn", + bopomofo : "", sheng : "zh", yun : "ang", sheng_id : PINYIN_ID_ZH, @@ -8724,6 +9395,7 @@ static const Pinyin pinyin_table[] = { }, { /* 671 */ text : "zhai", + bopomofo : "ㄓㄞ", sheng : "zh", yun : "ai", sheng_id : PINYIN_ID_ZH, @@ -8737,6 +9409,7 @@ static const Pinyin pinyin_table[] = { }, { /* 672 */ text : "zhamg", + bopomofo : "", sheng : "zh", yun : "ang", sheng_id : PINYIN_ID_ZH, @@ -8750,6 +9423,7 @@ static const Pinyin pinyin_table[] = { }, { /* 673 */ text : "zhan", + bopomofo : "ㄓㄢ", sheng : "zh", yun : "an", sheng_id : PINYIN_ID_ZH, @@ -8763,6 +9437,7 @@ static const Pinyin pinyin_table[] = { }, { /* 674 */ text : "zhang", + bopomofo : "ㄓㄤ", sheng : "zh", yun : "ang", sheng_id : PINYIN_ID_ZH, @@ -8776,6 +9451,7 @@ static const Pinyin pinyin_table[] = { }, { /* 675 */ text : "zhao", + bopomofo : "ㄓㄠ", sheng : "zh", yun : "ao", sheng_id : PINYIN_ID_ZH, @@ -8789,6 +9465,7 @@ static const Pinyin pinyin_table[] = { }, { /* 676 */ text : "zhe", + bopomofo : "ㄓㄜ", sheng : "zh", yun : "e", sheng_id : PINYIN_ID_ZH, @@ -8802,6 +9479,7 @@ static const Pinyin pinyin_table[] = { }, { /* 677 */ text : "zhegn", + bopomofo : "", sheng : "zh", yun : "eng", sheng_id : PINYIN_ID_ZH, @@ -8815,6 +9493,7 @@ static const Pinyin pinyin_table[] = { }, { /* 678 */ text : "zhei", + bopomofo : "ㄓㄟ", sheng : "zh", yun : "ei", sheng_id : PINYIN_ID_ZH, @@ -8828,6 +9507,7 @@ static const Pinyin pinyin_table[] = { }, { /* 679 */ text : "zhemg", + bopomofo : "", sheng : "zh", yun : "eng", sheng_id : PINYIN_ID_ZH, @@ -8841,6 +9521,7 @@ static const Pinyin pinyin_table[] = { }, { /* 680 */ text : "zhen", + bopomofo : "ㄓㄣ", sheng : "zh", yun : "en", sheng_id : PINYIN_ID_ZH, @@ -8854,6 +9535,7 @@ static const Pinyin pinyin_table[] = { }, { /* 681 */ text : "zheng", + bopomofo : "ㄓㄥ", sheng : "zh", yun : "eng", sheng_id : PINYIN_ID_ZH, @@ -8867,6 +9549,7 @@ static const Pinyin pinyin_table[] = { }, { /* 682 */ text : "zhi", + bopomofo : "ㄓ", sheng : "zh", yun : "i", sheng_id : PINYIN_ID_ZH, @@ -8880,6 +9563,7 @@ static const Pinyin pinyin_table[] = { }, { /* 683 */ text : "zhogn", + bopomofo : "", sheng : "zh", yun : "ong", sheng_id : PINYIN_ID_ZH, @@ -8893,6 +9577,7 @@ static const Pinyin pinyin_table[] = { }, { /* 684 */ text : "zhomg", + bopomofo : "", sheng : "zh", yun : "ong", sheng_id : PINYIN_ID_ZH, @@ -8906,6 +9591,7 @@ static const Pinyin pinyin_table[] = { }, { /* 685 */ text : "zhong", + bopomofo : "ㄓㄨㄥ", sheng : "zh", yun : "ong", sheng_id : PINYIN_ID_ZH, @@ -8919,6 +9605,7 @@ static const Pinyin pinyin_table[] = { }, { /* 686 */ text : "zhou", + bopomofo : "ㄓㄡ", sheng : "zh", yun : "ou", sheng_id : PINYIN_ID_ZH, @@ -8932,6 +9619,7 @@ static const Pinyin pinyin_table[] = { }, { /* 687 */ text : "zhu", + bopomofo : "ㄓㄨ", sheng : "zh", yun : "u", sheng_id : PINYIN_ID_ZH, @@ -8945,6 +9633,7 @@ static const Pinyin pinyin_table[] = { }, { /* 688 */ text : "zhua", + bopomofo : "ㄓㄨㄚ", sheng : "zh", yun : "ua", sheng_id : PINYIN_ID_ZH, @@ -8958,6 +9647,7 @@ static const Pinyin pinyin_table[] = { }, { /* 689 */ text : "zhuagn", + bopomofo : "", sheng : "zh", yun : "uang", sheng_id : PINYIN_ID_ZH, @@ -8971,6 +9661,7 @@ static const Pinyin pinyin_table[] = { }, { /* 690 */ text : "zhuai", + bopomofo : "ㄓㄨㄞ", sheng : "zh", yun : "uai", sheng_id : PINYIN_ID_ZH, @@ -8984,6 +9675,7 @@ static const Pinyin pinyin_table[] = { }, { /* 691 */ text : "zhuamg", + bopomofo : "", sheng : "zh", yun : "uang", sheng_id : PINYIN_ID_ZH, @@ -8997,6 +9689,7 @@ static const Pinyin pinyin_table[] = { }, { /* 692 */ text : "zhuan", + bopomofo : "ㄓㄨㄢ", sheng : "zh", yun : "uan", sheng_id : PINYIN_ID_ZH, @@ -9010,6 +9703,7 @@ static const Pinyin pinyin_table[] = { }, { /* 693 */ text : "zhuang", + bopomofo : "ㄓㄨㄤ", sheng : "zh", yun : "uang", sheng_id : PINYIN_ID_ZH, @@ -9023,6 +9717,7 @@ static const Pinyin pinyin_table[] = { }, { /* 694 */ text : "zhuei", + bopomofo : "", sheng : "zh", yun : "ui", sheng_id : PINYIN_ID_ZH, @@ -9036,6 +9731,7 @@ static const Pinyin pinyin_table[] = { }, { /* 695 */ text : "zhuen", + bopomofo : "", sheng : "zh", yun : "un", sheng_id : PINYIN_ID_ZH, @@ -9049,6 +9745,7 @@ static const Pinyin pinyin_table[] = { }, { /* 696 */ text : "zhui", + bopomofo : "ㄓㄨㄟ", sheng : "zh", yun : "ui", sheng_id : PINYIN_ID_ZH, @@ -9062,6 +9759,7 @@ static const Pinyin pinyin_table[] = { }, { /* 697 */ text : "zhun", + bopomofo : "ㄓㄨㄣ", sheng : "zh", yun : "un", sheng_id : PINYIN_ID_ZH, @@ -9075,6 +9773,7 @@ static const Pinyin pinyin_table[] = { }, { /* 698 */ text : "zhuo", + bopomofo : "ㄓㄨㄛ", sheng : "zh", yun : "uo", sheng_id : PINYIN_ID_ZH, @@ -9088,6 +9787,7 @@ static const Pinyin pinyin_table[] = { }, { /* 699 */ text : "zi", + bopomofo : "ㄗ", sheng : "z", yun : "i", sheng_id : PINYIN_ID_Z, @@ -9101,6 +9801,7 @@ static const Pinyin pinyin_table[] = { }, { /* 700 */ text : "zogn", + bopomofo : "", sheng : "z", yun : "ong", sheng_id : PINYIN_ID_Z, @@ -9114,6 +9815,7 @@ static const Pinyin pinyin_table[] = { }, { /* 701 */ text : "zomg", + bopomofo : "", sheng : "z", yun : "ong", sheng_id : PINYIN_ID_Z, @@ -9127,6 +9829,7 @@ static const Pinyin pinyin_table[] = { }, { /* 702 */ text : "zong", + bopomofo : "ㄗㄨㄥ", sheng : "z", yun : "ong", sheng_id : PINYIN_ID_Z, @@ -9140,6 +9843,7 @@ static const Pinyin pinyin_table[] = { }, { /* 703 */ text : "zou", + bopomofo : "ㄗㄡ", sheng : "z", yun : "ou", sheng_id : PINYIN_ID_Z, @@ -9153,6 +9857,7 @@ static const Pinyin pinyin_table[] = { }, { /* 704 */ text : "zu", + bopomofo : "ㄗㄨ", sheng : "z", yun : "u", sheng_id : PINYIN_ID_Z, @@ -9166,6 +9871,7 @@ static const Pinyin pinyin_table[] = { }, { /* 705 */ text : "zua", + bopomofo : "", sheng : "z", yun : "ua", sheng_id : PINYIN_ID_Z, @@ -9179,6 +9885,7 @@ static const Pinyin pinyin_table[] = { }, { /* 706 */ text : "zuai", + bopomofo : "", sheng : "z", yun : "uai", sheng_id : PINYIN_ID_Z, @@ -9192,6 +9899,7 @@ static const Pinyin pinyin_table[] = { }, { /* 707 */ text : "zuan", + bopomofo : "ㄗㄨㄢ", sheng : "z", yun : "uan", sheng_id : PINYIN_ID_Z, @@ -9205,6 +9913,7 @@ static const Pinyin pinyin_table[] = { }, { /* 708 */ text : "zuang", + bopomofo : "", sheng : "z", yun : "uang", sheng_id : PINYIN_ID_Z, @@ -9218,6 +9927,7 @@ static const Pinyin pinyin_table[] = { }, { /* 709 */ text : "zuei", + bopomofo : "", sheng : "z", yun : "ui", sheng_id : PINYIN_ID_Z, @@ -9231,6 +9941,7 @@ static const Pinyin pinyin_table[] = { }, { /* 710 */ text : "zuen", + bopomofo : "", sheng : "z", yun : "un", sheng_id : PINYIN_ID_Z, @@ -9244,6 +9955,7 @@ static const Pinyin pinyin_table[] = { }, { /* 711 */ text : "zui", + bopomofo : "ㄗㄨㄟ", sheng : "z", yun : "ui", sheng_id : PINYIN_ID_Z, @@ -9257,6 +9969,7 @@ static const Pinyin pinyin_table[] = { }, { /* 712 */ text : "zun", + bopomofo : "ㄗㄨㄣ", sheng : "z", yun : "un", sheng_id : PINYIN_ID_Z, @@ -9270,6 +9983,7 @@ static const Pinyin pinyin_table[] = { }, { /* 713 */ text : "zuo", + bopomofo : "ㄗㄨㄛ", sheng : "z", yun : "uo", sheng_id : PINYIN_ID_Z, @@ -9283,6 +9997,434 @@ static const Pinyin pinyin_table[] = { }, }; +static const Pinyin * bopomofo_table[] = { + &pinyin_table[7], // "ㄅ" => "b" + &pinyin_table[8], // "ㄅㄚ" => "ba" + &pinyin_table[29], // "ㄅㄛ" => "bo" + &pinyin_table[10], // "ㄅㄞ" => "bai" + &pinyin_table[16], // "ㄅㄟ" => "bei" + &pinyin_table[14], // "ㄅㄠ" => "bao" + &pinyin_table[12], // "ㄅㄢ" => "ban" + &pinyin_table[18], // "ㄅㄣ" => "ben" + &pinyin_table[13], // "ㄅㄤ" => "bang" + &pinyin_table[19], // "ㄅㄥ" => "beng" + &pinyin_table[20], // "ㄅㄧ" => "bi" + &pinyin_table[24], // "ㄅㄧㄝ" => "bie" + &pinyin_table[23], // "ㄅㄧㄠ" => "biao" + &pinyin_table[21], // "ㄅㄧㄢ" => "bian" + &pinyin_table[27], // "ㄅㄧㄣ" => "bin" + &pinyin_table[28], // "ㄅㄧㄥ" => "bing" + &pinyin_table[30], // "ㄅㄨ" => "bu" + &pinyin_table[393], // "ㄆ" => "p" + &pinyin_table[394], // "ㄆㄚ" => "pa" + &pinyin_table[415], // "ㄆㄛ" => "po" + &pinyin_table[396], // "ㄆㄞ" => "pai" + &pinyin_table[402], // "ㄆㄟ" => "pei" + &pinyin_table[400], // "ㄆㄠ" => "pao" + &pinyin_table[416], // "ㄆㄡ" => "pou" + &pinyin_table[398], // "ㄆㄢ" => "pan" + &pinyin_table[404], // "ㄆㄣ" => "pen" + &pinyin_table[399], // "ㄆㄤ" => "pang" + &pinyin_table[405], // "ㄆㄥ" => "peng" + &pinyin_table[406], // "ㄆㄧ" => "pi" + &pinyin_table[410], // "ㄆㄧㄝ" => "pie" + &pinyin_table[409], // "ㄆㄧㄠ" => "piao" + &pinyin_table[407], // "ㄆㄧㄢ" => "pian" + &pinyin_table[413], // "ㄆㄧㄣ" => "pin" + &pinyin_table[414], // "ㄆㄧㄥ" => "ping" + &pinyin_table[417], // "ㄆㄨ" => "pu" + &pinyin_table[321], // "ㄇ" => "m" + &pinyin_table[322], // "ㄇㄚ" => "ma" + &pinyin_table[346], // "ㄇㄛ" => "mo" + &pinyin_table[329], // "ㄇㄜ" => "me" + &pinyin_table[324], // "ㄇㄞ" => "mai" + &pinyin_table[331], // "ㄇㄟ" => "mei" + &pinyin_table[328], // "ㄇㄠ" => "mao" + &pinyin_table[347], // "ㄇㄡ" => "mou" + &pinyin_table[326], // "ㄇㄢ" => "man" + &pinyin_table[333], // "ㄇㄣ" => "men" + &pinyin_table[327], // "ㄇㄤ" => "mang" + &pinyin_table[334], // "ㄇㄥ" => "meng" + &pinyin_table[335], // "ㄇㄧ" => "mi" + &pinyin_table[339], // "ㄇㄧㄝ" => "mie" + &pinyin_table[338], // "ㄇㄧㄠ" => "miao" + &pinyin_table[345], // "ㄇㄧㄡ" => "miu" + &pinyin_table[336], // "ㄇㄧㄢ" => "mian" + &pinyin_table[342], // "ㄇㄧㄣ" => "min" + &pinyin_table[343], // "ㄇㄧㄥ" => "ming" + &pinyin_table[348], // "ㄇㄨ" => "mu" + &pinyin_table[129], // "ㄈ" => "f" + &pinyin_table[130], // "ㄈㄚ" => "fa" + &pinyin_table[143], // "ㄈㄛ" => "fo" + &pinyin_table[137], // "ㄈㄜ" => "fe" + &pinyin_table[139], // "ㄈㄟ" => "fei" + &pinyin_table[145], // "ㄈㄡ" => "fou" + &pinyin_table[134], // "ㄈㄢ" => "fan" + &pinyin_table[141], // "ㄈㄣ" => "fen" + &pinyin_table[135], // "ㄈㄤ" => "fang" + &pinyin_table[142], // "ㄈㄥ" => "feng" + &pinyin_table[146], // "ㄈㄨ" => "fu" + &pinyin_table[87], // "ㄉ" => "d" + &pinyin_table[88], // "ㄉㄚ" => "da" + &pinyin_table[95], // "ㄉㄜ" => "de" + &pinyin_table[90], // "ㄉㄞ" => "dai" + &pinyin_table[97], // "ㄉㄟ" => "dei" + &pinyin_table[94], // "ㄉㄠ" => "dao" + &pinyin_table[116], // "ㄉㄡ" => "dou" + &pinyin_table[92], // "ㄉㄢ" => "dan" + &pinyin_table[99], // "ㄉㄣ" => "den" + &pinyin_table[93], // "ㄉㄤ" => "dang" + &pinyin_table[100], // "ㄉㄥ" => "deng" + &pinyin_table[101], // "ㄉㄧ" => "di" + &pinyin_table[102], // "ㄉㄧㄚ" => "dia" + &pinyin_table[106], // "ㄉㄧㄝ" => "die" + &pinyin_table[105], // "ㄉㄧㄠ" => "diao" + &pinyin_table[112], // "ㄉㄧㄡ" => "diu" + &pinyin_table[103], // "ㄉㄧㄢ" => "dian" + &pinyin_table[109], // "ㄉㄧㄣ" => "din" + &pinyin_table[110], // "ㄉㄧㄥ" => "ding" + &pinyin_table[117], // "ㄉㄨ" => "du" + &pinyin_table[124], // "ㄉㄨㄛ" => "duo" + &pinyin_table[122], // "ㄉㄨㄟ" => "dui" + &pinyin_table[118], // "ㄉㄨㄢ" => "duan" + &pinyin_table[123], // "ㄉㄨㄣ" => "dun" + &pinyin_table[115], // "ㄉㄨㄥ" => "dong" + &pinyin_table[546], // "ㄊ" => "t" + &pinyin_table[547], // "ㄊㄚ" => "ta" + &pinyin_table[554], // "ㄊㄜ" => "te" + &pinyin_table[549], // "ㄊㄞ" => "tai" + &pinyin_table[553], // "ㄊㄠ" => "tao" + &pinyin_table[571], // "ㄊㄡ" => "tou" + &pinyin_table[551], // "ㄊㄢ" => "tan" + &pinyin_table[552], // "ㄊㄤ" => "tang" + &pinyin_table[558], // "ㄊㄥ" => "teng" + &pinyin_table[559], // "ㄊㄧ" => "ti" + &pinyin_table[563], // "ㄊㄧㄝ" => "tie" + &pinyin_table[562], // "ㄊㄧㄠ" => "tiao" + &pinyin_table[560], // "ㄊㄧㄢ" => "tian" + &pinyin_table[567], // "ㄊㄧㄥ" => "ting" + &pinyin_table[572], // "ㄊㄨ" => "tu" + &pinyin_table[579], // "ㄊㄨㄛ" => "tuo" + &pinyin_table[577], // "ㄊㄨㄟ" => "tui" + &pinyin_table[573], // "ㄊㄨㄢ" => "tuan" + &pinyin_table[578], // "ㄊㄨㄣ" => "tun" + &pinyin_table[570], // "ㄊㄨㄥ" => "tong" + &pinyin_table[349], // "ㄋ" => "n" + &pinyin_table[350], // "ㄋㄚ" => "na" + &pinyin_table[357], // "ㄋㄜ" => "ne" + &pinyin_table[352], // "ㄋㄞ" => "nai" + &pinyin_table[359], // "ㄋㄟ" => "nei" + &pinyin_table[356], // "ㄋㄠ" => "nao" + &pinyin_table[381], // "ㄋㄡ" => "nou" + &pinyin_table[354], // "ㄋㄢ" => "nan" + &pinyin_table[361], // "ㄋㄣ" => "nen" + &pinyin_table[355], // "ㄋㄤ" => "nang" + &pinyin_table[362], // "ㄋㄥ" => "neng" + &pinyin_table[363], // "ㄋㄧ" => "ni" + &pinyin_table[364], // "ㄋㄧㄚ" => "nia" + &pinyin_table[370], // "ㄋㄧㄝ" => "nie" + &pinyin_table[369], // "ㄋㄧㄠ" => "niao" + &pinyin_table[376], // "ㄋㄧㄡ" => "niu" + &pinyin_table[367], // "ㄋㄧㄢ" => "nian" + &pinyin_table[373], // "ㄋㄧㄣ" => "nin" + &pinyin_table[368], // "ㄋㄧㄤ" => "niang" + &pinyin_table[374], // "ㄋㄧㄥ" => "ning" + &pinyin_table[382], // "ㄋㄨ" => "nu" + &pinyin_table[388], // "ㄋㄨㄛ" => "nuo" + &pinyin_table[383], // "ㄋㄨㄢ" => "nuan" + &pinyin_table[387], // "ㄋㄨㄣ" => "nun" + &pinyin_table[380], // "ㄋㄨㄥ" => "nong" + &pinyin_table[389], // "ㄋㄩ" => "nv" + &pinyin_table[390], // "ㄋㄩㄝ" => "nve" + &pinyin_table[277], // "ㄌ" => "l" + &pinyin_table[278], // "ㄌㄚ" => "la" + &pinyin_table[305], // "ㄌㄛ" => "lo" + &pinyin_table[285], // "ㄌㄜ" => "le" + &pinyin_table[280], // "ㄌㄞ" => "lai" + &pinyin_table[287], // "ㄌㄟ" => "lei" + &pinyin_table[284], // "ㄌㄠ" => "lao" + &pinyin_table[309], // "ㄌㄡ" => "lou" + &pinyin_table[282], // "ㄌㄢ" => "lan" + &pinyin_table[289], // "ㄌㄣ" => "len" + &pinyin_table[283], // "ㄌㄤ" => "lang" + &pinyin_table[290], // "ㄌㄥ" => "leng" + &pinyin_table[291], // "ㄌㄧ" => "li" + &pinyin_table[292], // "ㄌㄧㄚ" => "lia" + &pinyin_table[298], // "ㄌㄧㄝ" => "lie" + &pinyin_table[297], // "ㄌㄧㄠ" => "liao" + &pinyin_table[304], // "ㄌㄧㄡ" => "liu" + &pinyin_table[295], // "ㄌㄧㄢ" => "lian" + &pinyin_table[301], // "ㄌㄧㄣ" => "lin" + &pinyin_table[296], // "ㄌㄧㄤ" => "liang" + &pinyin_table[302], // "ㄌㄧㄥ" => "ling" + &pinyin_table[310], // "ㄌㄨ" => "lu" + &pinyin_table[318], // "ㄌㄨㄛ" => "luo" + &pinyin_table[311], // "ㄌㄨㄢ" => "luan" + &pinyin_table[317], // "ㄌㄨㄣ" => "lun" + &pinyin_table[308], // "ㄌㄨㄥ" => "long" + &pinyin_table[319], // "ㄌㄩ" => "lv" + &pinyin_table[320], // "ㄌㄩㄝ" => "lve" + &pinyin_table[156], // "ㄍ" => "g" + &pinyin_table[157], // "ㄍㄚ" => "ga" + &pinyin_table[164], // "ㄍㄜ" => "ge" + &pinyin_table[159], // "ㄍㄞ" => "gai" + &pinyin_table[166], // "ㄍㄟ" => "gei" + &pinyin_table[163], // "ㄍㄠ" => "gao" + &pinyin_table[173], // "ㄍㄡ" => "gou" + &pinyin_table[161], // "ㄍㄢ" => "gan" + &pinyin_table[168], // "ㄍㄣ" => "gen" + &pinyin_table[162], // "ㄍㄤ" => "gang" + &pinyin_table[169], // "ㄍㄥ" => "geng" + &pinyin_table[174], // "ㄍㄨ" => "gu" + &pinyin_table[175], // "ㄍㄨㄚ" => "gua" + &pinyin_table[185], // "ㄍㄨㄛ" => "guo" + &pinyin_table[177], // "ㄍㄨㄞ" => "guai" + &pinyin_table[183], // "ㄍㄨㄟ" => "gui" + &pinyin_table[179], // "ㄍㄨㄢ" => "guan" + &pinyin_table[184], // "ㄍㄨㄣ" => "gun" + &pinyin_table[180], // "ㄍㄨㄤ" => "guang" + &pinyin_table[172], // "ㄍㄨㄥ" => "gong" + &pinyin_table[247], // "ㄎ" => "k" + &pinyin_table[248], // "ㄎㄚ" => "ka" + &pinyin_table[255], // "ㄎㄜ" => "ke" + &pinyin_table[250], // "ㄎㄞ" => "kai" + &pinyin_table[257], // "ㄎㄟ" => "kei" + &pinyin_table[254], // "ㄎㄠ" => "kao" + &pinyin_table[264], // "ㄎㄡ" => "kou" + &pinyin_table[252], // "ㄎㄢ" => "kan" + &pinyin_table[259], // "ㄎㄣ" => "ken" + &pinyin_table[253], // "ㄎㄤ" => "kang" + &pinyin_table[260], // "ㄎㄥ" => "keng" + &pinyin_table[265], // "ㄎㄨ" => "ku" + &pinyin_table[266], // "ㄎㄨㄚ" => "kua" + &pinyin_table[276], // "ㄎㄨㄛ" => "kuo" + &pinyin_table[268], // "ㄎㄨㄞ" => "kuai" + &pinyin_table[274], // "ㄎㄨㄟ" => "kui" + &pinyin_table[270], // "ㄎㄨㄢ" => "kuan" + &pinyin_table[275], // "ㄎㄨㄣ" => "kun" + &pinyin_table[271], // "ㄎㄨㄤ" => "kuang" + &pinyin_table[263], // "ㄎㄨㄥ" => "kong" + &pinyin_table[186], // "ㄏ" => "h" + &pinyin_table[187], // "ㄏㄚ" => "ha" + &pinyin_table[194], // "ㄏㄜ" => "he" + &pinyin_table[189], // "ㄏㄞ" => "hai" + &pinyin_table[196], // "ㄏㄟ" => "hei" + &pinyin_table[193], // "ㄏㄠ" => "hao" + &pinyin_table[204], // "ㄏㄡ" => "hou" + &pinyin_table[191], // "ㄏㄢ" => "han" + &pinyin_table[198], // "ㄏㄣ" => "hen" + &pinyin_table[192], // "ㄏㄤ" => "hang" + &pinyin_table[199], // "ㄏㄥ" => "heng" + &pinyin_table[205], // "ㄏㄨ" => "hu" + &pinyin_table[206], // "ㄏㄨㄚ" => "hua" + &pinyin_table[216], // "ㄏㄨㄛ" => "huo" + &pinyin_table[208], // "ㄏㄨㄞ" => "huai" + &pinyin_table[214], // "ㄏㄨㄟ" => "hui" + &pinyin_table[210], // "ㄏㄨㄢ" => "huan" + &pinyin_table[215], // "ㄏㄨㄣ" => "hun" + &pinyin_table[211], // "ㄏㄨㄤ" => "huang" + &pinyin_table[203], // "ㄏㄨㄥ" => "hong" + &pinyin_table[217], // "ㄐ" => "j" + &pinyin_table[218], // "ㄐㄧ" => "ji" + &pinyin_table[219], // "ㄐㄧㄚ" => "jia" + &pinyin_table[225], // "ㄐㄧㄝ" => "jie" + &pinyin_table[224], // "ㄐㄧㄠ" => "jiao" + &pinyin_table[234], // "ㄐㄧㄡ" => "jiu" + &pinyin_table[222], // "ㄐㄧㄢ" => "jian" + &pinyin_table[228], // "ㄐㄧㄣ" => "jin" + &pinyin_table[223], // "ㄐㄧㄤ" => "jiang" + &pinyin_table[229], // "ㄐㄧㄥ" => "jing" + &pinyin_table[235], // "ㄐㄩ" => "ju" + &pinyin_table[238], // "ㄐㄩㄝ" => "jue" + &pinyin_table[236], // "ㄐㄩㄢ" => "juan" + &pinyin_table[240], // "ㄐㄩㄣ" => "jun" + &pinyin_table[232], // "ㄐㄩㄥ" => "jiong" + &pinyin_table[418], // "ㄑ" => "q" + &pinyin_table[419], // "ㄑㄧ" => "qi" + &pinyin_table[420], // "ㄑㄧㄚ" => "qia" + &pinyin_table[426], // "ㄑㄧㄝ" => "qie" + &pinyin_table[425], // "ㄑㄧㄠ" => "qiao" + &pinyin_table[435], // "ㄑㄧㄡ" => "qiu" + &pinyin_table[423], // "ㄑㄧㄢ" => "qian" + &pinyin_table[429], // "ㄑㄧㄣ" => "qin" + &pinyin_table[424], // "ㄑㄧㄤ" => "qiang" + &pinyin_table[430], // "ㄑㄧㄥ" => "qing" + &pinyin_table[436], // "ㄑㄩ" => "qu" + &pinyin_table[439], // "ㄑㄩㄝ" => "que" + &pinyin_table[437], // "ㄑㄩㄢ" => "quan" + &pinyin_table[441], // "ㄑㄩㄣ" => "qun" + &pinyin_table[433], // "ㄑㄩㄥ" => "qiong" + &pinyin_table[594], // "ㄒ" => "x" + &pinyin_table[595], // "ㄒㄧ" => "xi" + &pinyin_table[596], // "ㄒㄧㄚ" => "xia" + &pinyin_table[602], // "ㄒㄧㄝ" => "xie" + &pinyin_table[601], // "ㄒㄧㄠ" => "xiao" + &pinyin_table[611], // "ㄒㄧㄡ" => "xiu" + &pinyin_table[599], // "ㄒㄧㄢ" => "xian" + &pinyin_table[605], // "ㄒㄧㄣ" => "xin" + &pinyin_table[600], // "ㄒㄧㄤ" => "xiang" + &pinyin_table[606], // "ㄒㄧㄥ" => "xing" + &pinyin_table[612], // "ㄒㄩ" => "xu" + &pinyin_table[615], // "ㄒㄩㄝ" => "xue" + &pinyin_table[613], // "ㄒㄩㄢ" => "xuan" + &pinyin_table[617], // "ㄒㄩㄣ" => "xun" + &pinyin_table[609], // "ㄒㄩㄥ" => "xiong" + &pinyin_table[682], // "ㄓ" => "zhi" + &pinyin_table[669], // "ㄓㄚ" => "zha" + &pinyin_table[676], // "ㄓㄜ" => "zhe" + &pinyin_table[671], // "ㄓㄞ" => "zhai" + &pinyin_table[678], // "ㄓㄟ" => "zhei" + &pinyin_table[675], // "ㄓㄠ" => "zhao" + &pinyin_table[686], // "ㄓㄡ" => "zhou" + &pinyin_table[673], // "ㄓㄢ" => "zhan" + &pinyin_table[680], // "ㄓㄣ" => "zhen" + &pinyin_table[674], // "ㄓㄤ" => "zhang" + &pinyin_table[681], // "ㄓㄥ" => "zheng" + &pinyin_table[687], // "ㄓㄨ" => "zhu" + &pinyin_table[688], // "ㄓㄨㄚ" => "zhua" + &pinyin_table[698], // "ㄓㄨㄛ" => "zhuo" + &pinyin_table[690], // "ㄓㄨㄞ" => "zhuai" + &pinyin_table[696], // "ㄓㄨㄟ" => "zhui" + &pinyin_table[692], // "ㄓㄨㄢ" => "zhuan" + &pinyin_table[697], // "ㄓㄨㄣ" => "zhun" + &pinyin_table[693], // "ㄓㄨㄤ" => "zhuang" + &pinyin_table[685], // "ㄓㄨㄥ" => "zhong" + &pinyin_table[57], // "ㄔ" => "chi" + &pinyin_table[45], // "ㄔㄚ" => "cha" + &pinyin_table[52], // "ㄔㄜ" => "che" + &pinyin_table[47], // "ㄔㄞ" => "chai" + &pinyin_table[51], // "ㄔㄠ" => "chao" + &pinyin_table[61], // "ㄔㄡ" => "chou" + &pinyin_table[49], // "ㄔㄢ" => "chan" + &pinyin_table[55], // "ㄔㄣ" => "chen" + &pinyin_table[50], // "ㄔㄤ" => "chang" + &pinyin_table[56], // "ㄔㄥ" => "cheng" + &pinyin_table[62], // "ㄔㄨ" => "chu" + &pinyin_table[72], // "ㄔㄨㄛ" => "chuo" + &pinyin_table[64], // "ㄔㄨㄞ" => "chuai" + &pinyin_table[70], // "ㄔㄨㄟ" => "chui" + &pinyin_table[66], // "ㄔㄨㄢ" => "chuan" + &pinyin_table[71], // "ㄔㄨㄣ" => "chun" + &pinyin_table[67], // "ㄔㄨㄤ" => "chuang" + &pinyin_table[60], // "ㄔㄨㄥ" => "chong" + &pinyin_table[516], // "ㄕ" => "shi" + &pinyin_table[503], // "ㄕㄚ" => "sha" + &pinyin_table[510], // "ㄕㄜ" => "she" + &pinyin_table[505], // "ㄕㄞ" => "shai" + &pinyin_table[512], // "ㄕㄟ" => "shei" + &pinyin_table[509], // "ㄕㄠ" => "shao" + &pinyin_table[518], // "ㄕㄡ" => "shou" + &pinyin_table[507], // "ㄕㄢ" => "shan" + &pinyin_table[514], // "ㄕㄣ" => "shen" + &pinyin_table[508], // "ㄕㄤ" => "shang" + &pinyin_table[515], // "ㄕㄥ" => "sheng" + &pinyin_table[519], // "ㄕㄨ" => "shu" + &pinyin_table[520], // "ㄕㄨㄚ" => "shua" + &pinyin_table[530], // "ㄕㄨㄛ" => "shuo" + &pinyin_table[522], // "ㄕㄨㄞ" => "shuai" + &pinyin_table[528], // "ㄕㄨㄟ" => "shui" + &pinyin_table[524], // "ㄕㄨㄢ" => "shuan" + &pinyin_table[529], // "ㄕㄨㄣ" => "shun" + &pinyin_table[525], // "ㄕㄨㄤ" => "shuang" + &pinyin_table[462], // "ㄖ" => "ri" + &pinyin_table[456], // "ㄖㄜ" => "re" + &pinyin_table[455], // "ㄖㄠ" => "rao" + &pinyin_table[476], // "ㄖㄡ" => "rou" + &pinyin_table[453], // "ㄖㄢ" => "ran" + &pinyin_table[460], // "ㄖㄣ" => "ren" + &pinyin_table[454], // "ㄖㄤ" => "rang" + &pinyin_table[461], // "ㄖㄥ" => "reng" + &pinyin_table[477], // "ㄖㄨ" => "ru" + &pinyin_table[485], // "ㄖㄨㄛ" => "ruo" + &pinyin_table[483], // "ㄖㄨㄟ" => "rui" + &pinyin_table[478], // "ㄖㄨㄢ" => "ruan" + &pinyin_table[484], // "ㄖㄨㄣ" => "run" + &pinyin_table[475], // "ㄖㄨㄥ" => "rong" + &pinyin_table[699], // "ㄗ" => "zi" + &pinyin_table[655], // "ㄗㄚ" => "za" + &pinyin_table[662], // "ㄗㄜ" => "ze" + &pinyin_table[657], // "ㄗㄞ" => "zai" + &pinyin_table[664], // "ㄗㄟ" => "zei" + &pinyin_table[661], // "ㄗㄠ" => "zao" + &pinyin_table[703], // "ㄗㄡ" => "zou" + &pinyin_table[659], // "ㄗㄢ" => "zan" + &pinyin_table[666], // "ㄗㄣ" => "zen" + &pinyin_table[660], // "ㄗㄤ" => "zang" + &pinyin_table[667], // "ㄗㄥ" => "zeng" + &pinyin_table[704], // "ㄗㄨ" => "zu" + &pinyin_table[713], // "ㄗㄨㄛ" => "zuo" + &pinyin_table[711], // "ㄗㄨㄟ" => "zui" + &pinyin_table[707], // "ㄗㄨㄢ" => "zuan" + &pinyin_table[712], // "ㄗㄨㄣ" => "zun" + &pinyin_table[702], // "ㄗㄨㄥ" => "zong" + &pinyin_table[73], // "ㄘ" => "ci" + &pinyin_table[32], // "ㄘㄚ" => "ca" + &pinyin_table[39], // "ㄘㄜ" => "ce" + &pinyin_table[34], // "ㄘㄞ" => "cai" + &pinyin_table[38], // "ㄘㄠ" => "cao" + &pinyin_table[77], // "ㄘㄡ" => "cou" + &pinyin_table[36], // "ㄘㄢ" => "can" + &pinyin_table[42], // "ㄘㄣ" => "cen" + &pinyin_table[37], // "ㄘㄤ" => "cang" + &pinyin_table[43], // "ㄘㄥ" => "ceng" + &pinyin_table[78], // "ㄘㄨ" => "cu" + &pinyin_table[86], // "ㄘㄨㄛ" => "cuo" + &pinyin_table[84], // "ㄘㄨㄟ" => "cui" + &pinyin_table[80], // "ㄘㄨㄢ" => "cuan" + &pinyin_table[85], // "ㄘㄨㄣ" => "cun" + &pinyin_table[76], // "ㄘㄨㄥ" => "cong" + &pinyin_table[531], // "ㄙ" => "si" + &pinyin_table[489], // "ㄙㄚ" => "sa" + &pinyin_table[496], // "ㄙㄜ" => "se" + &pinyin_table[491], // "ㄙㄞ" => "sai" + &pinyin_table[495], // "ㄙㄠ" => "sao" + &pinyin_table[535], // "ㄙㄡ" => "sou" + &pinyin_table[493], // "ㄙㄢ" => "san" + &pinyin_table[500], // "ㄙㄣ" => "sen" + &pinyin_table[494], // "ㄙㄤ" => "sang" + &pinyin_table[501], // "ㄙㄥ" => "seng" + &pinyin_table[536], // "ㄙㄨ" => "su" + &pinyin_table[545], // "ㄙㄨㄛ" => "suo" + &pinyin_table[543], // "ㄙㄨㄟ" => "sui" + &pinyin_table[539], // "ㄙㄨㄢ" => "suan" + &pinyin_table[544], // "ㄙㄨㄣ" => "sun" + &pinyin_table[534], // "ㄙㄨㄥ" => "song" + &pinyin_table[0], // "ㄚ" => "a" + &pinyin_table[391], // "ㄛ" => "o" + &pinyin_table[125], // "ㄜ" => "e" + &pinyin_table[2], // "ㄞ" => "ai" + &pinyin_table[126], // "ㄟ" => "ei" + &pinyin_table[6], // "ㄠ" => "ao" + &pinyin_table[392], // "ㄡ" => "ou" + &pinyin_table[4], // "ㄢ" => "an" + &pinyin_table[127], // "ㄣ" => "en" + &pinyin_table[5], // "ㄤ" => "ang" + &pinyin_table[128], // "ㄦ" => "er" + &pinyin_table[632], // "ㄧ" => "yi" + &pinyin_table[625], // "ㄧㄚ" => "ya" + &pinyin_table[637], // "ㄧㄛ" => "yo" + &pinyin_table[631], // "ㄧㄝ" => "ye" + &pinyin_table[630], // "ㄧㄠ" => "yao" + &pinyin_table[641], // "ㄧㄡ" => "you" + &pinyin_table[628], // "ㄧㄢ" => "yan" + &pinyin_table[635], // "ㄧㄣ" => "yin" + &pinyin_table[629], // "ㄧㄤ" => "yang" + &pinyin_table[636], // "ㄧㄥ" => "ying" + &pinyin_table[593], // "ㄨ" => "wu" + &pinyin_table[581], // "ㄨㄚ" => "wa" + &pinyin_table[592], // "ㄨㄛ" => "wo" + &pinyin_table[583], // "ㄨㄞ" => "wai" + &pinyin_table[588], // "ㄨㄟ" => "wei" + &pinyin_table[585], // "ㄨㄢ" => "wan" + &pinyin_table[590], // "ㄨㄣ" => "wen" + &pinyin_table[586], // "ㄨㄤ" => "wang" + &pinyin_table[591], // "ㄨㄥ" => "weng" + &pinyin_table[642], // "ㄩ" => "yu" + &pinyin_table[645], // "ㄩㄝ" => "yue" + &pinyin_table[643], // "ㄩㄢ" => "yuan" + &pinyin_table[647], // "ㄩㄣ" => "yun" + &pinyin_table[640], // "ㄩㄥ" => "yong" +}; static const Pinyin *special_table[][4] = { { &pinyin_table[4], &pinyin_table[0], &pinyin_table[0], &pinyin_table[350], }, /* an a => a na */ { &pinyin_table[4], &pinyin_table[2], &pinyin_table[0], &pinyin_table[352], }, /* an ai => a nai */ diff --git a/src/Types.h b/src/Types.h index b4b47f3..c8cd928 100644 --- a/src/Types.h +++ b/src/Types.h @@ -107,6 +107,7 @@ namespace PY { struct Pinyin { const gchar *text; + const gchar *bopomofo; const gchar *sheng; const gchar *yun; const gchar sheng_id; -- cgit From e37e15be51cab2dfe85785b17a4707c09de402cd Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Wed, 12 May 2010 17:34:38 +0800 Subject: Generate some fuzzy bopomofo --- src/PinyinParserTable.h | 162 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 108 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/PinyinParserTable.h b/src/PinyinParserTable.h index 11dc23d..4a8444a 100644 --- a/src/PinyinParserTable.h +++ b/src/PinyinParserTable.h @@ -309,7 +309,7 @@ static const Pinyin pinyin_table[] = { }, { /* 22 */ text : "biang", - bopomofo : "", + bopomofo : "ㄅㄧㄤ", sheng : "b", yun : "iang", sheng_id : PINYIN_ID_B, @@ -1107,7 +1107,7 @@ static const Pinyin pinyin_table[] = { }, { /* 79 */ text : "cuai", - bopomofo : "", + bopomofo : "ㄘㄨㄞ", sheng : "c", yun : "uai", sheng_id : PINYIN_ID_C, @@ -1135,7 +1135,7 @@ static const Pinyin pinyin_table[] = { }, { /* 81 */ text : "cuang", - bopomofo : "", + bopomofo : "ㄘㄨㄤ", sheng : "c", yun : "uang", sheng_id : PINYIN_ID_C, @@ -1457,7 +1457,7 @@ static const Pinyin pinyin_table[] = { }, { /* 104 */ text : "diang", - bopomofo : "", + bopomofo : "ㄉㄧㄤ", sheng : "d", yun : "iang", sheng_id : PINYIN_ID_D, @@ -1667,7 +1667,7 @@ static const Pinyin pinyin_table[] = { }, { /* 119 */ text : "duang", - bopomofo : "", + bopomofo : "ㄉㄨㄤ", sheng : "d", yun : "uang", sheng_id : PINYIN_ID_D, @@ -1849,7 +1849,7 @@ static const Pinyin pinyin_table[] = { }, { /* 132 */ text : "fai", - bopomofo : "", + bopomofo : "ㄈㄞ", sheng : "f", yun : "ai", sheng_id : PINYIN_ID_F, @@ -1905,7 +1905,7 @@ static const Pinyin pinyin_table[] = { }, { /* 136 */ text : "fao", - bopomofo : "", + bopomofo : "ㄈㄠ", sheng : "f", yun : "ao", sheng_id : PINYIN_ID_F, @@ -2017,7 +2017,7 @@ static const Pinyin pinyin_table[] = { }, { /* 144 */ text : "fong", - bopomofo : "", + bopomofo : "ㄈㄨㄥ", sheng : "f", yun : "ong", sheng_id : PINYIN_ID_F, @@ -2059,7 +2059,7 @@ static const Pinyin pinyin_table[] = { }, { /* 147 */ text : "fua", - bopomofo : "", + bopomofo : "ㄈㄨㄚ", sheng : "f", yun : "ua", sheng_id : PINYIN_ID_F, @@ -2073,7 +2073,7 @@ static const Pinyin pinyin_table[] = { }, { /* 148 */ text : "fuai", - bopomofo : "", + bopomofo : "ㄈㄨㄞ", sheng : "f", yun : "uai", sheng_id : PINYIN_ID_F, @@ -2087,7 +2087,7 @@ static const Pinyin pinyin_table[] = { }, { /* 149 */ text : "fuan", - bopomofo : "", + bopomofo : "ㄈㄨㄢ", sheng : "f", yun : "uan", sheng_id : PINYIN_ID_F, @@ -2101,7 +2101,7 @@ static const Pinyin pinyin_table[] = { }, { /* 150 */ text : "fuang", - bopomofo : "", + bopomofo : "ㄈㄨㄤ", sheng : "f", yun : "uang", sheng_id : PINYIN_ID_F, @@ -2143,7 +2143,7 @@ static const Pinyin pinyin_table[] = { }, { /* 153 */ text : "fui", - bopomofo : "", + bopomofo : "ㄈㄨㄟ", sheng : "f", yun : "ui", sheng_id : PINYIN_ID_F, @@ -2157,7 +2157,7 @@ static const Pinyin pinyin_table[] = { }, { /* 154 */ text : "fun", - bopomofo : "", + bopomofo : "ㄈㄨㄣ", sheng : "f", yun : "un", sheng_id : PINYIN_ID_F, @@ -2171,7 +2171,7 @@ static const Pinyin pinyin_table[] = { }, { /* 155 */ text : "fuo", - bopomofo : "", + bopomofo : "ㄈㄨㄛ", sheng : "f", yun : "uo", sheng_id : PINYIN_ID_F, @@ -2801,7 +2801,7 @@ static const Pinyin pinyin_table[] = { }, { /* 200 */ text : "ho", - bopomofo : "", + bopomofo : "ㄏㄛ", sheng : "h", yun : "o", sheng_id : PINYIN_ID_H, @@ -3319,7 +3319,7 @@ static const Pinyin pinyin_table[] = { }, { /* 237 */ text : "juang", - bopomofo : "", + bopomofo : "ㄐㄩㄤ", sheng : "j", yun : "uang", sheng_id : PINYIN_ID_J, @@ -4369,7 +4369,7 @@ static const Pinyin pinyin_table[] = { }, { /* 312 */ text : "luang", - bopomofo : "", + bopomofo : "ㄌㄨㄤ", sheng : "l", yun : "uang", sheng_id : PINYIN_ID_L, @@ -4425,7 +4425,7 @@ static const Pinyin pinyin_table[] = { }, { /* 316 */ text : "lui", - bopomofo : "", + bopomofo : "ㄌㄨㄟ", sheng : "l", yun : "ui", sheng_id : PINYIN_ID_L, @@ -4719,7 +4719,7 @@ static const Pinyin pinyin_table[] = { }, { /* 337 */ text : "miang", - bopomofo : "", + bopomofo : "ㄇㄧㄤ", sheng : "m", yun : "iang", sheng_id : PINYIN_ID_M, @@ -5279,7 +5279,7 @@ static const Pinyin pinyin_table[] = { }, { /* 377 */ text : "no", - bopomofo : "", + bopomofo : "ㄋㄛ", sheng : "n", yun : "o", sheng_id : PINYIN_ID_N, @@ -5377,7 +5377,7 @@ static const Pinyin pinyin_table[] = { }, { /* 384 */ text : "nuang", - bopomofo : "", + bopomofo : "ㄋㄨㄤ", sheng : "n", yun : "uang", sheng_id : PINYIN_ID_N, @@ -5713,7 +5713,7 @@ static const Pinyin pinyin_table[] = { }, { /* 408 */ text : "piang", - bopomofo : "", + bopomofo : "ㄆㄧㄤ", sheng : "p", yun : "iang", sheng_id : PINYIN_ID_P, @@ -6133,7 +6133,7 @@ static const Pinyin pinyin_table[] = { }, { /* 438 */ text : "quang", - bopomofo : "", + bopomofo : "ㄑㄩㄤ", sheng : "q", yun : "uang", sheng_id : PINYIN_ID_Q, @@ -6287,7 +6287,7 @@ static const Pinyin pinyin_table[] = { }, { /* 449 */ text : "ra", - bopomofo : "", + bopomofo : "ㄖㄚ", sheng : "r", yun : "a", sheng_id : PINYIN_ID_R, @@ -6315,7 +6315,7 @@ static const Pinyin pinyin_table[] = { }, { /* 451 */ text : "rai", - bopomofo : "", + bopomofo : "ㄖㄞ", sheng : "r", yun : "ai", sheng_id : PINYIN_ID_R, @@ -6413,7 +6413,7 @@ static const Pinyin pinyin_table[] = { }, { /* 458 */ text : "rei", - bopomofo : "", + bopomofo : "ㄖㄟ", sheng : "r", yun : "ei", sheng_id : PINYIN_ID_R, @@ -6483,7 +6483,7 @@ static const Pinyin pinyin_table[] = { }, { /* 463 */ text : "ria", - bopomofo : "", + bopomofo : "ㄖㄧㄚ", sheng : "r", yun : "ia", sheng_id : PINYIN_ID_R, @@ -6497,7 +6497,7 @@ static const Pinyin pinyin_table[] = { }, { /* 464 */ text : "rian", - bopomofo : "", + bopomofo : "ㄖㄧㄢ", sheng : "r", yun : "ian", sheng_id : PINYIN_ID_R, @@ -6511,7 +6511,7 @@ static const Pinyin pinyin_table[] = { }, { /* 465 */ text : "riang", - bopomofo : "", + bopomofo : "ㄖㄧㄤ", sheng : "r", yun : "iang", sheng_id : PINYIN_ID_R, @@ -6525,7 +6525,7 @@ static const Pinyin pinyin_table[] = { }, { /* 466 */ text : "riao", - bopomofo : "", + bopomofo : "ㄖㄧㄠ", sheng : "r", yun : "iao", sheng_id : PINYIN_ID_R, @@ -6539,7 +6539,7 @@ static const Pinyin pinyin_table[] = { }, { /* 467 */ text : "rie", - bopomofo : "", + bopomofo : "ㄖㄧㄝ", sheng : "r", yun : "ie", sheng_id : PINYIN_ID_R, @@ -6553,7 +6553,7 @@ static const Pinyin pinyin_table[] = { }, { /* 468 */ text : "rin", - bopomofo : "", + bopomofo : "ㄖㄧㄣ", sheng : "r", yun : "in", sheng_id : PINYIN_ID_R, @@ -6567,7 +6567,7 @@ static const Pinyin pinyin_table[] = { }, { /* 469 */ text : "ring", - bopomofo : "", + bopomofo : "ㄖㄧㄥ", sheng : "r", yun : "ing", sheng_id : PINYIN_ID_R, @@ -6595,7 +6595,7 @@ static const Pinyin pinyin_table[] = { }, { /* 471 */ text : "riu", - bopomofo : "", + bopomofo : "ㄖㄧㄡ", sheng : "r", yun : "iu", sheng_id : PINYIN_ID_R, @@ -6609,7 +6609,7 @@ static const Pinyin pinyin_table[] = { }, { /* 472 */ text : "ro", - bopomofo : "", + bopomofo : "ㄖㄛ", sheng : "r", yun : "o", sheng_id : PINYIN_ID_R, @@ -6707,7 +6707,7 @@ static const Pinyin pinyin_table[] = { }, { /* 479 */ text : "ruang", - bopomofo : "", + bopomofo : "ㄖㄨㄤ", sheng : "r", yun : "uang", sheng_id : PINYIN_ID_R, @@ -6805,7 +6805,7 @@ static const Pinyin pinyin_table[] = { }, { /* 486 */ text : "rv", - bopomofo : "", + bopomofo : "ㄖㄩ", sheng : "r", yun : "ü", sheng_id : PINYIN_ID_R, @@ -6819,7 +6819,7 @@ static const Pinyin pinyin_table[] = { }, { /* 487 */ text : "rve", - bopomofo : "", + bopomofo : "ㄖㄩㄝ", sheng : "r", yun : "üe", sheng_id : PINYIN_ID_R, @@ -6973,7 +6973,7 @@ static const Pinyin pinyin_table[] = { }, { /* 498 */ text : "sei", - bopomofo : "", + bopomofo : "ㄙㄟ", sheng : "s", yun : "ei", sheng_id : PINYIN_ID_S, @@ -7239,7 +7239,7 @@ static const Pinyin pinyin_table[] = { }, { /* 517 */ text : "shong", - bopomofo : "", + bopomofo : "ㄕㄨㄥ", sheng : "sh", yun : "ong", sheng_id : PINYIN_ID_SH, @@ -7519,7 +7519,7 @@ static const Pinyin pinyin_table[] = { }, { /* 537 */ text : "sua", - bopomofo : "", + bopomofo : "ㄙㄨㄚ", sheng : "s", yun : "ua", sheng_id : PINYIN_ID_S, @@ -7533,7 +7533,7 @@ static const Pinyin pinyin_table[] = { }, { /* 538 */ text : "suai", - bopomofo : "", + bopomofo : "ㄙㄨㄞ", sheng : "s", yun : "uai", sheng_id : PINYIN_ID_S, @@ -7561,7 +7561,7 @@ static const Pinyin pinyin_table[] = { }, { /* 540 */ text : "suang", - bopomofo : "", + bopomofo : "ㄙㄨㄤ", sheng : "s", yun : "uang", sheng_id : PINYIN_ID_S, @@ -7799,7 +7799,7 @@ static const Pinyin pinyin_table[] = { }, { /* 557 */ text : "ten", - bopomofo : "", + bopomofo : "ㄊㄣ", sheng : "t", yun : "en", sheng_id : PINYIN_ID_T, @@ -7855,7 +7855,7 @@ static const Pinyin pinyin_table[] = { }, { /* 561 */ text : "tiang", - bopomofo : "", + bopomofo : "ㄊㄧㄤ", sheng : "t", yun : "iang", sheng_id : PINYIN_ID_T, @@ -7925,7 +7925,7 @@ static const Pinyin pinyin_table[] = { }, { /* 566 */ text : "tin", - bopomofo : "", + bopomofo : "ㄊㄧㄣ", sheng : "t", yun : "in", sheng_id : PINYIN_ID_T, @@ -8037,7 +8037,7 @@ static const Pinyin pinyin_table[] = { }, { /* 574 */ text : "tuang", - bopomofo : "", + bopomofo : "ㄊㄨㄤ", sheng : "t", yun : "uang", sheng_id : PINYIN_ID_T, @@ -8597,7 +8597,7 @@ static const Pinyin pinyin_table[] = { }, { /* 614 */ text : "xuang", - bopomofo : "", + bopomofo : "ㄒㄩㄤ", sheng : "x", yun : "uang", sheng_id : PINYIN_ID_X, @@ -9017,7 +9017,7 @@ static const Pinyin pinyin_table[] = { }, { /* 644 */ text : "yuang", - bopomofo : "", + bopomofo : "ㄧㄩㄤ", sheng : "y", yun : "uang", sheng_id : PINYIN_ID_Y, @@ -9871,7 +9871,7 @@ static const Pinyin pinyin_table[] = { }, { /* 705 */ text : "zua", - bopomofo : "", + bopomofo : "ㄗㄨㄚ", sheng : "z", yun : "ua", sheng_id : PINYIN_ID_Z, @@ -9885,7 +9885,7 @@ static const Pinyin pinyin_table[] = { }, { /* 706 */ text : "zuai", - bopomofo : "", + bopomofo : "ㄗㄨㄞ", sheng : "z", yun : "uai", sheng_id : PINYIN_ID_Z, @@ -9913,7 +9913,7 @@ static const Pinyin pinyin_table[] = { }, { /* 708 */ text : "zuang", - bopomofo : "", + bopomofo : "ㄗㄨㄤ", sheng : "z", yun : "uang", sheng_id : PINYIN_ID_Z, @@ -9997,7 +9997,7 @@ static const Pinyin pinyin_table[] = { }, }; -static const Pinyin * bopomofo_table[] = { +static const Pinyin *bopomofo_table[] = { &pinyin_table[7], // "ㄅ" => "b" &pinyin_table[8], // "ㄅㄚ" => "ba" &pinyin_table[29], // "ㄅㄛ" => "bo" @@ -10013,6 +10013,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[23], // "ㄅㄧㄠ" => "biao" &pinyin_table[21], // "ㄅㄧㄢ" => "bian" &pinyin_table[27], // "ㄅㄧㄣ" => "bin" + &pinyin_table[22], // "ㄅㄧㄤ" => "biang" &pinyin_table[28], // "ㄅㄧㄥ" => "bing" &pinyin_table[30], // "ㄅㄨ" => "bu" &pinyin_table[393], // "ㄆ" => "p" @@ -10031,6 +10032,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[409], // "ㄆㄧㄠ" => "piao" &pinyin_table[407], // "ㄆㄧㄢ" => "pian" &pinyin_table[413], // "ㄆㄧㄣ" => "pin" + &pinyin_table[408], // "ㄆㄧㄤ" => "piang" &pinyin_table[414], // "ㄆㄧㄥ" => "ping" &pinyin_table[417], // "ㄆㄨ" => "pu" &pinyin_table[321], // "ㄇ" => "m" @@ -10051,19 +10053,30 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[345], // "ㄇㄧㄡ" => "miu" &pinyin_table[336], // "ㄇㄧㄢ" => "mian" &pinyin_table[342], // "ㄇㄧㄣ" => "min" + &pinyin_table[337], // "ㄇㄧㄤ" => "miang" &pinyin_table[343], // "ㄇㄧㄥ" => "ming" &pinyin_table[348], // "ㄇㄨ" => "mu" &pinyin_table[129], // "ㄈ" => "f" &pinyin_table[130], // "ㄈㄚ" => "fa" &pinyin_table[143], // "ㄈㄛ" => "fo" &pinyin_table[137], // "ㄈㄜ" => "fe" + &pinyin_table[132], // "ㄈㄞ" => "fai" &pinyin_table[139], // "ㄈㄟ" => "fei" + &pinyin_table[136], // "ㄈㄠ" => "fao" &pinyin_table[145], // "ㄈㄡ" => "fou" &pinyin_table[134], // "ㄈㄢ" => "fan" &pinyin_table[141], // "ㄈㄣ" => "fen" &pinyin_table[135], // "ㄈㄤ" => "fang" &pinyin_table[142], // "ㄈㄥ" => "feng" &pinyin_table[146], // "ㄈㄨ" => "fu" + &pinyin_table[147], // "ㄈㄨㄚ" => "fua" + &pinyin_table[155], // "ㄈㄨㄛ" => "fuo" + &pinyin_table[148], // "ㄈㄨㄞ" => "fuai" + &pinyin_table[153], // "ㄈㄨㄟ" => "fui" + &pinyin_table[149], // "ㄈㄨㄢ" => "fuan" + &pinyin_table[154], // "ㄈㄨㄣ" => "fun" + &pinyin_table[150], // "ㄈㄨㄤ" => "fuang" + &pinyin_table[144], // "ㄈㄨㄥ" => "fong" &pinyin_table[87], // "ㄉ" => "d" &pinyin_table[88], // "ㄉㄚ" => "da" &pinyin_table[95], // "ㄉㄜ" => "de" @@ -10082,12 +10095,14 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[112], // "ㄉㄧㄡ" => "diu" &pinyin_table[103], // "ㄉㄧㄢ" => "dian" &pinyin_table[109], // "ㄉㄧㄣ" => "din" + &pinyin_table[104], // "ㄉㄧㄤ" => "diang" &pinyin_table[110], // "ㄉㄧㄥ" => "ding" &pinyin_table[117], // "ㄉㄨ" => "du" &pinyin_table[124], // "ㄉㄨㄛ" => "duo" &pinyin_table[122], // "ㄉㄨㄟ" => "dui" &pinyin_table[118], // "ㄉㄨㄢ" => "duan" &pinyin_table[123], // "ㄉㄨㄣ" => "dun" + &pinyin_table[119], // "ㄉㄨㄤ" => "duang" &pinyin_table[115], // "ㄉㄨㄥ" => "dong" &pinyin_table[546], // "ㄊ" => "t" &pinyin_table[547], // "ㄊㄚ" => "ta" @@ -10096,21 +10111,26 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[553], // "ㄊㄠ" => "tao" &pinyin_table[571], // "ㄊㄡ" => "tou" &pinyin_table[551], // "ㄊㄢ" => "tan" + &pinyin_table[557], // "ㄊㄣ" => "ten" &pinyin_table[552], // "ㄊㄤ" => "tang" &pinyin_table[558], // "ㄊㄥ" => "teng" &pinyin_table[559], // "ㄊㄧ" => "ti" &pinyin_table[563], // "ㄊㄧㄝ" => "tie" &pinyin_table[562], // "ㄊㄧㄠ" => "tiao" &pinyin_table[560], // "ㄊㄧㄢ" => "tian" + &pinyin_table[566], // "ㄊㄧㄣ" => "tin" + &pinyin_table[561], // "ㄊㄧㄤ" => "tiang" &pinyin_table[567], // "ㄊㄧㄥ" => "ting" &pinyin_table[572], // "ㄊㄨ" => "tu" &pinyin_table[579], // "ㄊㄨㄛ" => "tuo" &pinyin_table[577], // "ㄊㄨㄟ" => "tui" &pinyin_table[573], // "ㄊㄨㄢ" => "tuan" &pinyin_table[578], // "ㄊㄨㄣ" => "tun" + &pinyin_table[574], // "ㄊㄨㄤ" => "tuang" &pinyin_table[570], // "ㄊㄨㄥ" => "tong" &pinyin_table[349], // "ㄋ" => "n" &pinyin_table[350], // "ㄋㄚ" => "na" + &pinyin_table[377], // "ㄋㄛ" => "no" &pinyin_table[357], // "ㄋㄜ" => "ne" &pinyin_table[352], // "ㄋㄞ" => "nai" &pinyin_table[359], // "ㄋㄟ" => "nei" @@ -10133,6 +10153,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[388], // "ㄋㄨㄛ" => "nuo" &pinyin_table[383], // "ㄋㄨㄢ" => "nuan" &pinyin_table[387], // "ㄋㄨㄣ" => "nun" + &pinyin_table[384], // "ㄋㄨㄤ" => "nuang" &pinyin_table[380], // "ㄋㄨㄥ" => "nong" &pinyin_table[389], // "ㄋㄩ" => "nv" &pinyin_table[390], // "ㄋㄩㄝ" => "nve" @@ -10159,8 +10180,10 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[302], // "ㄌㄧㄥ" => "ling" &pinyin_table[310], // "ㄌㄨ" => "lu" &pinyin_table[318], // "ㄌㄨㄛ" => "luo" + &pinyin_table[316], // "ㄌㄨㄟ" => "lui" &pinyin_table[311], // "ㄌㄨㄢ" => "luan" &pinyin_table[317], // "ㄌㄨㄣ" => "lun" + &pinyin_table[312], // "ㄌㄨㄤ" => "luang" &pinyin_table[308], // "ㄌㄨㄥ" => "long" &pinyin_table[319], // "ㄌㄩ" => "lv" &pinyin_table[320], // "ㄌㄩㄝ" => "lve" @@ -10206,6 +10229,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[263], // "ㄎㄨㄥ" => "kong" &pinyin_table[186], // "ㄏ" => "h" &pinyin_table[187], // "ㄏㄚ" => "ha" + &pinyin_table[200], // "ㄏㄛ" => "ho" &pinyin_table[194], // "ㄏㄜ" => "he" &pinyin_table[189], // "ㄏㄞ" => "hai" &pinyin_table[196], // "ㄏㄟ" => "hei" @@ -10238,6 +10262,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[238], // "ㄐㄩㄝ" => "jue" &pinyin_table[236], // "ㄐㄩㄢ" => "juan" &pinyin_table[240], // "ㄐㄩㄣ" => "jun" + &pinyin_table[237], // "ㄐㄩㄤ" => "juang" &pinyin_table[232], // "ㄐㄩㄥ" => "jiong" &pinyin_table[418], // "ㄑ" => "q" &pinyin_table[419], // "ㄑㄧ" => "qi" @@ -10253,6 +10278,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[439], // "ㄑㄩㄝ" => "que" &pinyin_table[437], // "ㄑㄩㄢ" => "quan" &pinyin_table[441], // "ㄑㄩㄣ" => "qun" + &pinyin_table[438], // "ㄑㄩㄤ" => "quang" &pinyin_table[433], // "ㄑㄩㄥ" => "qiong" &pinyin_table[594], // "ㄒ" => "x" &pinyin_table[595], // "ㄒㄧ" => "xi" @@ -10268,6 +10294,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[615], // "ㄒㄩㄝ" => "xue" &pinyin_table[613], // "ㄒㄩㄢ" => "xuan" &pinyin_table[617], // "ㄒㄩㄣ" => "xun" + &pinyin_table[614], // "ㄒㄩㄤ" => "xuang" &pinyin_table[609], // "ㄒㄩㄥ" => "xiong" &pinyin_table[682], // "ㄓ" => "zhi" &pinyin_table[669], // "ㄓㄚ" => "zha" @@ -10326,20 +10353,36 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[524], // "ㄕㄨㄢ" => "shuan" &pinyin_table[529], // "ㄕㄨㄣ" => "shun" &pinyin_table[525], // "ㄕㄨㄤ" => "shuang" + &pinyin_table[517], // "ㄕㄨㄥ" => "shong" &pinyin_table[462], // "ㄖ" => "ri" + &pinyin_table[449], // "ㄖㄚ" => "ra" + &pinyin_table[472], // "ㄖㄛ" => "ro" &pinyin_table[456], // "ㄖㄜ" => "re" + &pinyin_table[451], // "ㄖㄞ" => "rai" + &pinyin_table[458], // "ㄖㄟ" => "rei" &pinyin_table[455], // "ㄖㄠ" => "rao" &pinyin_table[476], // "ㄖㄡ" => "rou" &pinyin_table[453], // "ㄖㄢ" => "ran" &pinyin_table[460], // "ㄖㄣ" => "ren" &pinyin_table[454], // "ㄖㄤ" => "rang" &pinyin_table[461], // "ㄖㄥ" => "reng" + &pinyin_table[463], // "ㄖㄧㄚ" => "ria" + &pinyin_table[467], // "ㄖㄧㄝ" => "rie" + &pinyin_table[466], // "ㄖㄧㄠ" => "riao" + &pinyin_table[471], // "ㄖㄧㄡ" => "riu" + &pinyin_table[464], // "ㄖㄧㄢ" => "rian" + &pinyin_table[468], // "ㄖㄧㄣ" => "rin" + &pinyin_table[465], // "ㄖㄧㄤ" => "riang" + &pinyin_table[469], // "ㄖㄧㄥ" => "ring" &pinyin_table[477], // "ㄖㄨ" => "ru" &pinyin_table[485], // "ㄖㄨㄛ" => "ruo" &pinyin_table[483], // "ㄖㄨㄟ" => "rui" &pinyin_table[478], // "ㄖㄨㄢ" => "ruan" &pinyin_table[484], // "ㄖㄨㄣ" => "run" + &pinyin_table[479], // "ㄖㄨㄤ" => "ruang" &pinyin_table[475], // "ㄖㄨㄥ" => "rong" + &pinyin_table[486], // "ㄖㄩ" => "rv" + &pinyin_table[487], // "ㄖㄩㄝ" => "rve" &pinyin_table[699], // "ㄗ" => "zi" &pinyin_table[655], // "ㄗㄚ" => "za" &pinyin_table[662], // "ㄗㄜ" => "ze" @@ -10352,10 +10395,13 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[660], // "ㄗㄤ" => "zang" &pinyin_table[667], // "ㄗㄥ" => "zeng" &pinyin_table[704], // "ㄗㄨ" => "zu" + &pinyin_table[705], // "ㄗㄨㄚ" => "zua" &pinyin_table[713], // "ㄗㄨㄛ" => "zuo" + &pinyin_table[706], // "ㄗㄨㄞ" => "zuai" &pinyin_table[711], // "ㄗㄨㄟ" => "zui" &pinyin_table[707], // "ㄗㄨㄢ" => "zuan" &pinyin_table[712], // "ㄗㄨㄣ" => "zun" + &pinyin_table[708], // "ㄗㄨㄤ" => "zuang" &pinyin_table[702], // "ㄗㄨㄥ" => "zong" &pinyin_table[73], // "ㄘ" => "ci" &pinyin_table[32], // "ㄘㄚ" => "ca" @@ -10369,14 +10415,17 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[43], // "ㄘㄥ" => "ceng" &pinyin_table[78], // "ㄘㄨ" => "cu" &pinyin_table[86], // "ㄘㄨㄛ" => "cuo" + &pinyin_table[79], // "ㄘㄨㄞ" => "cuai" &pinyin_table[84], // "ㄘㄨㄟ" => "cui" &pinyin_table[80], // "ㄘㄨㄢ" => "cuan" &pinyin_table[85], // "ㄘㄨㄣ" => "cun" + &pinyin_table[81], // "ㄘㄨㄤ" => "cuang" &pinyin_table[76], // "ㄘㄨㄥ" => "cong" &pinyin_table[531], // "ㄙ" => "si" &pinyin_table[489], // "ㄙㄚ" => "sa" &pinyin_table[496], // "ㄙㄜ" => "se" &pinyin_table[491], // "ㄙㄞ" => "sai" + &pinyin_table[498], // "ㄙㄟ" => "sei" &pinyin_table[495], // "ㄙㄠ" => "sao" &pinyin_table[535], // "ㄙㄡ" => "sou" &pinyin_table[493], // "ㄙㄢ" => "san" @@ -10384,10 +10433,13 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[494], // "ㄙㄤ" => "sang" &pinyin_table[501], // "ㄙㄥ" => "seng" &pinyin_table[536], // "ㄙㄨ" => "su" + &pinyin_table[537], // "ㄙㄨㄚ" => "sua" &pinyin_table[545], // "ㄙㄨㄛ" => "suo" + &pinyin_table[538], // "ㄙㄨㄞ" => "suai" &pinyin_table[543], // "ㄙㄨㄟ" => "sui" &pinyin_table[539], // "ㄙㄨㄢ" => "suan" &pinyin_table[544], // "ㄙㄨㄣ" => "sun" + &pinyin_table[540], // "ㄙㄨㄤ" => "suang" &pinyin_table[534], // "ㄙㄨㄥ" => "song" &pinyin_table[0], // "ㄚ" => "a" &pinyin_table[391], // "ㄛ" => "o" @@ -10410,6 +10462,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[635], // "ㄧㄣ" => "yin" &pinyin_table[629], // "ㄧㄤ" => "yang" &pinyin_table[636], // "ㄧㄥ" => "ying" + &pinyin_table[644], // "ㄧㄩㄤ" => "yuang" &pinyin_table[593], // "ㄨ" => "wu" &pinyin_table[581], // "ㄨㄚ" => "wa" &pinyin_table[592], // "ㄨㄛ" => "wo" @@ -10425,6 +10478,7 @@ static const Pinyin * bopomofo_table[] = { &pinyin_table[647], // "ㄩㄣ" => "yun" &pinyin_table[640], // "ㄩㄥ" => "yong" }; + static const Pinyin *special_table[][4] = { { &pinyin_table[4], &pinyin_table[0], &pinyin_table[0], &pinyin_table[350], }, /* an a => a na */ { &pinyin_table[4], &pinyin_table[2], &pinyin_table[0], &pinyin_table[352], }, /* an ai => a nai */ -- cgit From 5a3d87178bf076bd7d2e59ff53d5eb49f36f3a1a Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Wed, 12 May 2010 20:44:00 +0800 Subject: Use wchar_t for bopomofo --- src/PinyinParserTable.h | 1428 +++++++++++++++++++++++------------------------ src/Types.h | 2 +- 2 files changed, 715 insertions(+), 715 deletions(-) (limited to 'src') diff --git a/src/PinyinParserTable.h b/src/PinyinParserTable.h index 4a8444a..6e175e2 100644 --- a/src/PinyinParserTable.h +++ b/src/PinyinParserTable.h @@ -1,7 +1,7 @@ static const Pinyin pinyin_table[] = { { /* 0 */ text : "a", - bopomofo : "ㄚ", + bopomofo : L"ㄚ", sheng : "", yun : "a", sheng_id : PINYIN_ID_ZERO, @@ -15,7 +15,7 @@ static const Pinyin pinyin_table[] = { }, { /* 1 */ text : "agn", - bopomofo : "", + bopomofo : L"", sheng : "", yun : "ang", sheng_id : PINYIN_ID_ZERO, @@ -29,7 +29,7 @@ static const Pinyin pinyin_table[] = { }, { /* 2 */ text : "ai", - bopomofo : "ㄞ", + bopomofo : L"ㄞ", sheng : "", yun : "ai", sheng_id : PINYIN_ID_ZERO, @@ -43,7 +43,7 @@ static const Pinyin pinyin_table[] = { }, { /* 3 */ text : "amg", - bopomofo : "", + bopomofo : L"", sheng : "", yun : "ang", sheng_id : PINYIN_ID_ZERO, @@ -57,7 +57,7 @@ static const Pinyin pinyin_table[] = { }, { /* 4 */ text : "an", - bopomofo : "ㄢ", + bopomofo : L"ㄢ", sheng : "", yun : "an", sheng_id : PINYIN_ID_ZERO, @@ -71,7 +71,7 @@ static const Pinyin pinyin_table[] = { }, { /* 5 */ text : "ang", - bopomofo : "ㄤ", + bopomofo : L"ㄤ", sheng : "", yun : "ang", sheng_id : PINYIN_ID_ZERO, @@ -85,7 +85,7 @@ static const Pinyin pinyin_table[] = { }, { /* 6 */ text : "ao", - bopomofo : "ㄠ", + bopomofo : L"ㄠ", sheng : "", yun : "ao", sheng_id : PINYIN_ID_ZERO, @@ -99,7 +99,7 @@ static const Pinyin pinyin_table[] = { }, { /* 7 */ text : "b", - bopomofo : "ㄅ", + bopomofo : L"ㄅ", sheng : "b", yun : "", sheng_id : PINYIN_ID_B, @@ -113,7 +113,7 @@ static const Pinyin pinyin_table[] = { }, { /* 8 */ text : "ba", - bopomofo : "ㄅㄚ", + bopomofo : L"ㄅㄚ", sheng : "b", yun : "a", sheng_id : PINYIN_ID_B, @@ -127,7 +127,7 @@ static const Pinyin pinyin_table[] = { }, { /* 9 */ text : "bagn", - bopomofo : "", + bopomofo : L"", sheng : "b", yun : "ang", sheng_id : PINYIN_ID_B, @@ -141,7 +141,7 @@ static const Pinyin pinyin_table[] = { }, { /* 10 */ text : "bai", - bopomofo : "ㄅㄞ", + bopomofo : L"ㄅㄞ", sheng : "b", yun : "ai", sheng_id : PINYIN_ID_B, @@ -155,7 +155,7 @@ static const Pinyin pinyin_table[] = { }, { /* 11 */ text : "bamg", - bopomofo : "", + bopomofo : L"", sheng : "b", yun : "ang", sheng_id : PINYIN_ID_B, @@ -169,7 +169,7 @@ static const Pinyin pinyin_table[] = { }, { /* 12 */ text : "ban", - bopomofo : "ㄅㄢ", + bopomofo : L"ㄅㄢ", sheng : "b", yun : "an", sheng_id : PINYIN_ID_B, @@ -183,7 +183,7 @@ static const Pinyin pinyin_table[] = { }, { /* 13 */ text : "bang", - bopomofo : "ㄅㄤ", + bopomofo : L"ㄅㄤ", sheng : "b", yun : "ang", sheng_id : PINYIN_ID_B, @@ -197,7 +197,7 @@ static const Pinyin pinyin_table[] = { }, { /* 14 */ text : "bao", - bopomofo : "ㄅㄠ", + bopomofo : L"ㄅㄠ", sheng : "b", yun : "ao", sheng_id : PINYIN_ID_B, @@ -211,7 +211,7 @@ static const Pinyin pinyin_table[] = { }, { /* 15 */ text : "begn", - bopomofo : "", + bopomofo : L"", sheng : "b", yun : "eng", sheng_id : PINYIN_ID_B, @@ -225,7 +225,7 @@ static const Pinyin pinyin_table[] = { }, { /* 16 */ text : "bei", - bopomofo : "ㄅㄟ", + bopomofo : L"ㄅㄟ", sheng : "b", yun : "ei", sheng_id : PINYIN_ID_B, @@ -239,7 +239,7 @@ static const Pinyin pinyin_table[] = { }, { /* 17 */ text : "bemg", - bopomofo : "", + bopomofo : L"", sheng : "b", yun : "eng", sheng_id : PINYIN_ID_B, @@ -253,7 +253,7 @@ static const Pinyin pinyin_table[] = { }, { /* 18 */ text : "ben", - bopomofo : "ㄅㄣ", + bopomofo : L"ㄅㄣ", sheng : "b", yun : "en", sheng_id : PINYIN_ID_B, @@ -267,7 +267,7 @@ static const Pinyin pinyin_table[] = { }, { /* 19 */ text : "beng", - bopomofo : "ㄅㄥ", + bopomofo : L"ㄅㄥ", sheng : "b", yun : "eng", sheng_id : PINYIN_ID_B, @@ -281,7 +281,7 @@ static const Pinyin pinyin_table[] = { }, { /* 20 */ text : "bi", - bopomofo : "ㄅㄧ", + bopomofo : L"ㄅㄧ", sheng : "b", yun : "i", sheng_id : PINYIN_ID_B, @@ -295,7 +295,7 @@ static const Pinyin pinyin_table[] = { }, { /* 21 */ text : "bian", - bopomofo : "ㄅㄧㄢ", + bopomofo : L"ㄅㄧㄢ", sheng : "b", yun : "ian", sheng_id : PINYIN_ID_B, @@ -309,7 +309,7 @@ static const Pinyin pinyin_table[] = { }, { /* 22 */ text : "biang", - bopomofo : "ㄅㄧㄤ", + bopomofo : L"ㄅㄧㄤ", sheng : "b", yun : "iang", sheng_id : PINYIN_ID_B, @@ -323,7 +323,7 @@ static const Pinyin pinyin_table[] = { }, { /* 23 */ text : "biao", - bopomofo : "ㄅㄧㄠ", + bopomofo : L"ㄅㄧㄠ", sheng : "b", yun : "iao", sheng_id : PINYIN_ID_B, @@ -337,7 +337,7 @@ static const Pinyin pinyin_table[] = { }, { /* 24 */ text : "bie", - bopomofo : "ㄅㄧㄝ", + bopomofo : L"ㄅㄧㄝ", sheng : "b", yun : "ie", sheng_id : PINYIN_ID_B, @@ -351,7 +351,7 @@ static const Pinyin pinyin_table[] = { }, { /* 25 */ text : "bign", - bopomofo : "", + bopomofo : L"", sheng : "b", yun : "ing", sheng_id : PINYIN_ID_B, @@ -365,7 +365,7 @@ static const Pinyin pinyin_table[] = { }, { /* 26 */ text : "bimg", - bopomofo : "", + bopomofo : L"", sheng : "b", yun : "ing", sheng_id : PINYIN_ID_B, @@ -379,7 +379,7 @@ static const Pinyin pinyin_table[] = { }, { /* 27 */ text : "bin", - bopomofo : "ㄅㄧㄣ", + bopomofo : L"ㄅㄧㄣ", sheng : "b", yun : "in", sheng_id : PINYIN_ID_B, @@ -393,7 +393,7 @@ static const Pinyin pinyin_table[] = { }, { /* 28 */ text : "bing", - bopomofo : "ㄅㄧㄥ", + bopomofo : L"ㄅㄧㄥ", sheng : "b", yun : "ing", sheng_id : PINYIN_ID_B, @@ -407,7 +407,7 @@ static const Pinyin pinyin_table[] = { }, { /* 29 */ text : "bo", - bopomofo : "ㄅㄛ", + bopomofo : L"ㄅㄛ", sheng : "b", yun : "o", sheng_id : PINYIN_ID_B, @@ -421,7 +421,7 @@ static const Pinyin pinyin_table[] = { }, { /* 30 */ text : "bu", - bopomofo : "ㄅㄨ", + bopomofo : L"ㄅㄨ", sheng : "b", yun : "u", sheng_id : PINYIN_ID_B, @@ -435,7 +435,7 @@ static const Pinyin pinyin_table[] = { }, { /* 31 */ text : "c", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "", sheng_id : PINYIN_ID_C, @@ -449,7 +449,7 @@ static const Pinyin pinyin_table[] = { }, { /* 32 */ text : "ca", - bopomofo : "ㄘㄚ", + bopomofo : L"ㄘㄚ", sheng : "c", yun : "a", sheng_id : PINYIN_ID_C, @@ -463,7 +463,7 @@ static const Pinyin pinyin_table[] = { }, { /* 33 */ text : "cagn", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "ang", sheng_id : PINYIN_ID_C, @@ -477,7 +477,7 @@ static const Pinyin pinyin_table[] = { }, { /* 34 */ text : "cai", - bopomofo : "ㄘㄞ", + bopomofo : L"ㄘㄞ", sheng : "c", yun : "ai", sheng_id : PINYIN_ID_C, @@ -491,7 +491,7 @@ static const Pinyin pinyin_table[] = { }, { /* 35 */ text : "camg", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "ang", sheng_id : PINYIN_ID_C, @@ -505,7 +505,7 @@ static const Pinyin pinyin_table[] = { }, { /* 36 */ text : "can", - bopomofo : "ㄘㄢ", + bopomofo : L"ㄘㄢ", sheng : "c", yun : "an", sheng_id : PINYIN_ID_C, @@ -519,7 +519,7 @@ static const Pinyin pinyin_table[] = { }, { /* 37 */ text : "cang", - bopomofo : "ㄘㄤ", + bopomofo : L"ㄘㄤ", sheng : "c", yun : "ang", sheng_id : PINYIN_ID_C, @@ -533,7 +533,7 @@ static const Pinyin pinyin_table[] = { }, { /* 38 */ text : "cao", - bopomofo : "ㄘㄠ", + bopomofo : L"ㄘㄠ", sheng : "c", yun : "ao", sheng_id : PINYIN_ID_C, @@ -547,7 +547,7 @@ static const Pinyin pinyin_table[] = { }, { /* 39 */ text : "ce", - bopomofo : "ㄘㄜ", + bopomofo : L"ㄘㄜ", sheng : "c", yun : "e", sheng_id : PINYIN_ID_C, @@ -561,7 +561,7 @@ static const Pinyin pinyin_table[] = { }, { /* 40 */ text : "cegn", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "eng", sheng_id : PINYIN_ID_C, @@ -575,7 +575,7 @@ static const Pinyin pinyin_table[] = { }, { /* 41 */ text : "cemg", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "eng", sheng_id : PINYIN_ID_C, @@ -589,7 +589,7 @@ static const Pinyin pinyin_table[] = { }, { /* 42 */ text : "cen", - bopomofo : "ㄘㄣ", + bopomofo : L"ㄘㄣ", sheng : "c", yun : "en", sheng_id : PINYIN_ID_C, @@ -603,7 +603,7 @@ static const Pinyin pinyin_table[] = { }, { /* 43 */ text : "ceng", - bopomofo : "ㄘㄥ", + bopomofo : L"ㄘㄥ", sheng : "c", yun : "eng", sheng_id : PINYIN_ID_C, @@ -617,7 +617,7 @@ static const Pinyin pinyin_table[] = { }, { /* 44 */ text : "ch", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "", sheng_id : PINYIN_ID_CH, @@ -631,7 +631,7 @@ static const Pinyin pinyin_table[] = { }, { /* 45 */ text : "cha", - bopomofo : "ㄔㄚ", + bopomofo : L"ㄔㄚ", sheng : "ch", yun : "a", sheng_id : PINYIN_ID_CH, @@ -645,7 +645,7 @@ static const Pinyin pinyin_table[] = { }, { /* 46 */ text : "chagn", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "ang", sheng_id : PINYIN_ID_CH, @@ -659,7 +659,7 @@ static const Pinyin pinyin_table[] = { }, { /* 47 */ text : "chai", - bopomofo : "ㄔㄞ", + bopomofo : L"ㄔㄞ", sheng : "ch", yun : "ai", sheng_id : PINYIN_ID_CH, @@ -673,7 +673,7 @@ static const Pinyin pinyin_table[] = { }, { /* 48 */ text : "chamg", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "ang", sheng_id : PINYIN_ID_CH, @@ -687,7 +687,7 @@ static const Pinyin pinyin_table[] = { }, { /* 49 */ text : "chan", - bopomofo : "ㄔㄢ", + bopomofo : L"ㄔㄢ", sheng : "ch", yun : "an", sheng_id : PINYIN_ID_CH, @@ -701,7 +701,7 @@ static const Pinyin pinyin_table[] = { }, { /* 50 */ text : "chang", - bopomofo : "ㄔㄤ", + bopomofo : L"ㄔㄤ", sheng : "ch", yun : "ang", sheng_id : PINYIN_ID_CH, @@ -715,7 +715,7 @@ static const Pinyin pinyin_table[] = { }, { /* 51 */ text : "chao", - bopomofo : "ㄔㄠ", + bopomofo : L"ㄔㄠ", sheng : "ch", yun : "ao", sheng_id : PINYIN_ID_CH, @@ -729,7 +729,7 @@ static const Pinyin pinyin_table[] = { }, { /* 52 */ text : "che", - bopomofo : "ㄔㄜ", + bopomofo : L"ㄔㄜ", sheng : "ch", yun : "e", sheng_id : PINYIN_ID_CH, @@ -743,7 +743,7 @@ static const Pinyin pinyin_table[] = { }, { /* 53 */ text : "chegn", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "eng", sheng_id : PINYIN_ID_CH, @@ -757,7 +757,7 @@ static const Pinyin pinyin_table[] = { }, { /* 54 */ text : "chemg", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "eng", sheng_id : PINYIN_ID_CH, @@ -771,7 +771,7 @@ static const Pinyin pinyin_table[] = { }, { /* 55 */ text : "chen", - bopomofo : "ㄔㄣ", + bopomofo : L"ㄔㄣ", sheng : "ch", yun : "en", sheng_id : PINYIN_ID_CH, @@ -785,7 +785,7 @@ static const Pinyin pinyin_table[] = { }, { /* 56 */ text : "cheng", - bopomofo : "ㄔㄥ", + bopomofo : L"ㄔㄥ", sheng : "ch", yun : "eng", sheng_id : PINYIN_ID_CH, @@ -799,7 +799,7 @@ static const Pinyin pinyin_table[] = { }, { /* 57 */ text : "chi", - bopomofo : "ㄔ", + bopomofo : L"ㄔ", sheng : "ch", yun : "i", sheng_id : PINYIN_ID_CH, @@ -813,7 +813,7 @@ static const Pinyin pinyin_table[] = { }, { /* 58 */ text : "chogn", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "ong", sheng_id : PINYIN_ID_CH, @@ -827,7 +827,7 @@ static const Pinyin pinyin_table[] = { }, { /* 59 */ text : "chomg", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "ong", sheng_id : PINYIN_ID_CH, @@ -841,7 +841,7 @@ static const Pinyin pinyin_table[] = { }, { /* 60 */ text : "chong", - bopomofo : "ㄔㄨㄥ", + bopomofo : L"ㄔㄨㄥ", sheng : "ch", yun : "ong", sheng_id : PINYIN_ID_CH, @@ -855,7 +855,7 @@ static const Pinyin pinyin_table[] = { }, { /* 61 */ text : "chou", - bopomofo : "ㄔㄡ", + bopomofo : L"ㄔㄡ", sheng : "ch", yun : "ou", sheng_id : PINYIN_ID_CH, @@ -869,7 +869,7 @@ static const Pinyin pinyin_table[] = { }, { /* 62 */ text : "chu", - bopomofo : "ㄔㄨ", + bopomofo : L"ㄔㄨ", sheng : "ch", yun : "u", sheng_id : PINYIN_ID_CH, @@ -883,7 +883,7 @@ static const Pinyin pinyin_table[] = { }, { /* 63 */ text : "chuagn", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "uang", sheng_id : PINYIN_ID_CH, @@ -897,7 +897,7 @@ static const Pinyin pinyin_table[] = { }, { /* 64 */ text : "chuai", - bopomofo : "ㄔㄨㄞ", + bopomofo : L"ㄔㄨㄞ", sheng : "ch", yun : "uai", sheng_id : PINYIN_ID_CH, @@ -911,7 +911,7 @@ static const Pinyin pinyin_table[] = { }, { /* 65 */ text : "chuamg", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "uang", sheng_id : PINYIN_ID_CH, @@ -925,7 +925,7 @@ static const Pinyin pinyin_table[] = { }, { /* 66 */ text : "chuan", - bopomofo : "ㄔㄨㄢ", + bopomofo : L"ㄔㄨㄢ", sheng : "ch", yun : "uan", sheng_id : PINYIN_ID_CH, @@ -939,7 +939,7 @@ static const Pinyin pinyin_table[] = { }, { /* 67 */ text : "chuang", - bopomofo : "ㄔㄨㄤ", + bopomofo : L"ㄔㄨㄤ", sheng : "ch", yun : "uang", sheng_id : PINYIN_ID_CH, @@ -953,7 +953,7 @@ static const Pinyin pinyin_table[] = { }, { /* 68 */ text : "chuei", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "ui", sheng_id : PINYIN_ID_CH, @@ -967,7 +967,7 @@ static const Pinyin pinyin_table[] = { }, { /* 69 */ text : "chuen", - bopomofo : "", + bopomofo : L"", sheng : "ch", yun : "un", sheng_id : PINYIN_ID_CH, @@ -981,7 +981,7 @@ static const Pinyin pinyin_table[] = { }, { /* 70 */ text : "chui", - bopomofo : "ㄔㄨㄟ", + bopomofo : L"ㄔㄨㄟ", sheng : "ch", yun : "ui", sheng_id : PINYIN_ID_CH, @@ -995,7 +995,7 @@ static const Pinyin pinyin_table[] = { }, { /* 71 */ text : "chun", - bopomofo : "ㄔㄨㄣ", + bopomofo : L"ㄔㄨㄣ", sheng : "ch", yun : "un", sheng_id : PINYIN_ID_CH, @@ -1009,7 +1009,7 @@ static const Pinyin pinyin_table[] = { }, { /* 72 */ text : "chuo", - bopomofo : "ㄔㄨㄛ", + bopomofo : L"ㄔㄨㄛ", sheng : "ch", yun : "uo", sheng_id : PINYIN_ID_CH, @@ -1023,7 +1023,7 @@ static const Pinyin pinyin_table[] = { }, { /* 73 */ text : "ci", - bopomofo : "ㄘ", + bopomofo : L"ㄘ", sheng : "c", yun : "i", sheng_id : PINYIN_ID_C, @@ -1037,7 +1037,7 @@ static const Pinyin pinyin_table[] = { }, { /* 74 */ text : "cogn", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "ong", sheng_id : PINYIN_ID_C, @@ -1051,7 +1051,7 @@ static const Pinyin pinyin_table[] = { }, { /* 75 */ text : "comg", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "ong", sheng_id : PINYIN_ID_C, @@ -1065,7 +1065,7 @@ static const Pinyin pinyin_table[] = { }, { /* 76 */ text : "cong", - bopomofo : "ㄘㄨㄥ", + bopomofo : L"ㄘㄨㄥ", sheng : "c", yun : "ong", sheng_id : PINYIN_ID_C, @@ -1079,7 +1079,7 @@ static const Pinyin pinyin_table[] = { }, { /* 77 */ text : "cou", - bopomofo : "ㄘㄡ", + bopomofo : L"ㄘㄡ", sheng : "c", yun : "ou", sheng_id : PINYIN_ID_C, @@ -1093,7 +1093,7 @@ static const Pinyin pinyin_table[] = { }, { /* 78 */ text : "cu", - bopomofo : "ㄘㄨ", + bopomofo : L"ㄘㄨ", sheng : "c", yun : "u", sheng_id : PINYIN_ID_C, @@ -1107,7 +1107,7 @@ static const Pinyin pinyin_table[] = { }, { /* 79 */ text : "cuai", - bopomofo : "ㄘㄨㄞ", + bopomofo : L"ㄘㄨㄞ", sheng : "c", yun : "uai", sheng_id : PINYIN_ID_C, @@ -1121,7 +1121,7 @@ static const Pinyin pinyin_table[] = { }, { /* 80 */ text : "cuan", - bopomofo : "ㄘㄨㄢ", + bopomofo : L"ㄘㄨㄢ", sheng : "c", yun : "uan", sheng_id : PINYIN_ID_C, @@ -1135,7 +1135,7 @@ static const Pinyin pinyin_table[] = { }, { /* 81 */ text : "cuang", - bopomofo : "ㄘㄨㄤ", + bopomofo : L"ㄘㄨㄤ", sheng : "c", yun : "uang", sheng_id : PINYIN_ID_C, @@ -1149,7 +1149,7 @@ static const Pinyin pinyin_table[] = { }, { /* 82 */ text : "cuei", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "ui", sheng_id : PINYIN_ID_C, @@ -1163,7 +1163,7 @@ static const Pinyin pinyin_table[] = { }, { /* 83 */ text : "cuen", - bopomofo : "", + bopomofo : L"", sheng : "c", yun : "un", sheng_id : PINYIN_ID_C, @@ -1177,7 +1177,7 @@ static const Pinyin pinyin_table[] = { }, { /* 84 */ text : "cui", - bopomofo : "ㄘㄨㄟ", + bopomofo : L"ㄘㄨㄟ", sheng : "c", yun : "ui", sheng_id : PINYIN_ID_C, @@ -1191,7 +1191,7 @@ static const Pinyin pinyin_table[] = { }, { /* 85 */ text : "cun", - bopomofo : "ㄘㄨㄣ", + bopomofo : L"ㄘㄨㄣ", sheng : "c", yun : "un", sheng_id : PINYIN_ID_C, @@ -1205,7 +1205,7 @@ static const Pinyin pinyin_table[] = { }, { /* 86 */ text : "cuo", - bopomofo : "ㄘㄨㄛ", + bopomofo : L"ㄘㄨㄛ", sheng : "c", yun : "uo", sheng_id : PINYIN_ID_C, @@ -1219,7 +1219,7 @@ static const Pinyin pinyin_table[] = { }, { /* 87 */ text : "d", - bopomofo : "ㄉ", + bopomofo : L"ㄉ", sheng : "d", yun : "", sheng_id : PINYIN_ID_D, @@ -1233,7 +1233,7 @@ static const Pinyin pinyin_table[] = { }, { /* 88 */ text : "da", - bopomofo : "ㄉㄚ", + bopomofo : L"ㄉㄚ", sheng : "d", yun : "a", sheng_id : PINYIN_ID_D, @@ -1247,7 +1247,7 @@ static const Pinyin pinyin_table[] = { }, { /* 89 */ text : "dagn", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "ang", sheng_id : PINYIN_ID_D, @@ -1261,7 +1261,7 @@ static const Pinyin pinyin_table[] = { }, { /* 90 */ text : "dai", - bopomofo : "ㄉㄞ", + bopomofo : L"ㄉㄞ", sheng : "d", yun : "ai", sheng_id : PINYIN_ID_D, @@ -1275,7 +1275,7 @@ static const Pinyin pinyin_table[] = { }, { /* 91 */ text : "damg", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "ang", sheng_id : PINYIN_ID_D, @@ -1289,7 +1289,7 @@ static const Pinyin pinyin_table[] = { }, { /* 92 */ text : "dan", - bopomofo : "ㄉㄢ", + bopomofo : L"ㄉㄢ", sheng : "d", yun : "an", sheng_id : PINYIN_ID_D, @@ -1303,7 +1303,7 @@ static const Pinyin pinyin_table[] = { }, { /* 93 */ text : "dang", - bopomofo : "ㄉㄤ", + bopomofo : L"ㄉㄤ", sheng : "d", yun : "ang", sheng_id : PINYIN_ID_D, @@ -1317,7 +1317,7 @@ static const Pinyin pinyin_table[] = { }, { /* 94 */ text : "dao", - bopomofo : "ㄉㄠ", + bopomofo : L"ㄉㄠ", sheng : "d", yun : "ao", sheng_id : PINYIN_ID_D, @@ -1331,7 +1331,7 @@ static const Pinyin pinyin_table[] = { }, { /* 95 */ text : "de", - bopomofo : "ㄉㄜ", + bopomofo : L"ㄉㄜ", sheng : "d", yun : "e", sheng_id : PINYIN_ID_D, @@ -1345,7 +1345,7 @@ static const Pinyin pinyin_table[] = { }, { /* 96 */ text : "degn", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "eng", sheng_id : PINYIN_ID_D, @@ -1359,7 +1359,7 @@ static const Pinyin pinyin_table[] = { }, { /* 97 */ text : "dei", - bopomofo : "ㄉㄟ", + bopomofo : L"ㄉㄟ", sheng : "d", yun : "ei", sheng_id : PINYIN_ID_D, @@ -1373,7 +1373,7 @@ static const Pinyin pinyin_table[] = { }, { /* 98 */ text : "demg", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "eng", sheng_id : PINYIN_ID_D, @@ -1387,7 +1387,7 @@ static const Pinyin pinyin_table[] = { }, { /* 99 */ text : "den", - bopomofo : "ㄉㄣ", + bopomofo : L"ㄉㄣ", sheng : "d", yun : "en", sheng_id : PINYIN_ID_D, @@ -1401,7 +1401,7 @@ static const Pinyin pinyin_table[] = { }, { /* 100 */ text : "deng", - bopomofo : "ㄉㄥ", + bopomofo : L"ㄉㄥ", sheng : "d", yun : "eng", sheng_id : PINYIN_ID_D, @@ -1415,7 +1415,7 @@ static const Pinyin pinyin_table[] = { }, { /* 101 */ text : "di", - bopomofo : "ㄉㄧ", + bopomofo : L"ㄉㄧ", sheng : "d", yun : "i", sheng_id : PINYIN_ID_D, @@ -1429,7 +1429,7 @@ static const Pinyin pinyin_table[] = { }, { /* 102 */ text : "dia", - bopomofo : "ㄉㄧㄚ", + bopomofo : L"ㄉㄧㄚ", sheng : "d", yun : "ia", sheng_id : PINYIN_ID_D, @@ -1443,7 +1443,7 @@ static const Pinyin pinyin_table[] = { }, { /* 103 */ text : "dian", - bopomofo : "ㄉㄧㄢ", + bopomofo : L"ㄉㄧㄢ", sheng : "d", yun : "ian", sheng_id : PINYIN_ID_D, @@ -1457,7 +1457,7 @@ static const Pinyin pinyin_table[] = { }, { /* 104 */ text : "diang", - bopomofo : "ㄉㄧㄤ", + bopomofo : L"ㄉㄧㄤ", sheng : "d", yun : "iang", sheng_id : PINYIN_ID_D, @@ -1471,7 +1471,7 @@ static const Pinyin pinyin_table[] = { }, { /* 105 */ text : "diao", - bopomofo : "ㄉㄧㄠ", + bopomofo : L"ㄉㄧㄠ", sheng : "d", yun : "iao", sheng_id : PINYIN_ID_D, @@ -1485,7 +1485,7 @@ static const Pinyin pinyin_table[] = { }, { /* 106 */ text : "die", - bopomofo : "ㄉㄧㄝ", + bopomofo : L"ㄉㄧㄝ", sheng : "d", yun : "ie", sheng_id : PINYIN_ID_D, @@ -1499,7 +1499,7 @@ static const Pinyin pinyin_table[] = { }, { /* 107 */ text : "dign", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "ing", sheng_id : PINYIN_ID_D, @@ -1513,7 +1513,7 @@ static const Pinyin pinyin_table[] = { }, { /* 108 */ text : "dimg", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "ing", sheng_id : PINYIN_ID_D, @@ -1527,7 +1527,7 @@ static const Pinyin pinyin_table[] = { }, { /* 109 */ text : "din", - bopomofo : "ㄉㄧㄣ", + bopomofo : L"ㄉㄧㄣ", sheng : "d", yun : "in", sheng_id : PINYIN_ID_D, @@ -1541,7 +1541,7 @@ static const Pinyin pinyin_table[] = { }, { /* 110 */ text : "ding", - bopomofo : "ㄉㄧㄥ", + bopomofo : L"ㄉㄧㄥ", sheng : "d", yun : "ing", sheng_id : PINYIN_ID_D, @@ -1555,7 +1555,7 @@ static const Pinyin pinyin_table[] = { }, { /* 111 */ text : "diou", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "iu", sheng_id : PINYIN_ID_D, @@ -1569,7 +1569,7 @@ static const Pinyin pinyin_table[] = { }, { /* 112 */ text : "diu", - bopomofo : "ㄉㄧㄡ", + bopomofo : L"ㄉㄧㄡ", sheng : "d", yun : "iu", sheng_id : PINYIN_ID_D, @@ -1583,7 +1583,7 @@ static const Pinyin pinyin_table[] = { }, { /* 113 */ text : "dogn", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "ong", sheng_id : PINYIN_ID_D, @@ -1597,7 +1597,7 @@ static const Pinyin pinyin_table[] = { }, { /* 114 */ text : "domg", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "ong", sheng_id : PINYIN_ID_D, @@ -1611,7 +1611,7 @@ static const Pinyin pinyin_table[] = { }, { /* 115 */ text : "dong", - bopomofo : "ㄉㄨㄥ", + bopomofo : L"ㄉㄨㄥ", sheng : "d", yun : "ong", sheng_id : PINYIN_ID_D, @@ -1625,7 +1625,7 @@ static const Pinyin pinyin_table[] = { }, { /* 116 */ text : "dou", - bopomofo : "ㄉㄡ", + bopomofo : L"ㄉㄡ", sheng : "d", yun : "ou", sheng_id : PINYIN_ID_D, @@ -1639,7 +1639,7 @@ static const Pinyin pinyin_table[] = { }, { /* 117 */ text : "du", - bopomofo : "ㄉㄨ", + bopomofo : L"ㄉㄨ", sheng : "d", yun : "u", sheng_id : PINYIN_ID_D, @@ -1653,7 +1653,7 @@ static const Pinyin pinyin_table[] = { }, { /* 118 */ text : "duan", - bopomofo : "ㄉㄨㄢ", + bopomofo : L"ㄉㄨㄢ", sheng : "d", yun : "uan", sheng_id : PINYIN_ID_D, @@ -1667,7 +1667,7 @@ static const Pinyin pinyin_table[] = { }, { /* 119 */ text : "duang", - bopomofo : "ㄉㄨㄤ", + bopomofo : L"ㄉㄨㄤ", sheng : "d", yun : "uang", sheng_id : PINYIN_ID_D, @@ -1681,7 +1681,7 @@ static const Pinyin pinyin_table[] = { }, { /* 120 */ text : "duei", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "ui", sheng_id : PINYIN_ID_D, @@ -1695,7 +1695,7 @@ static const Pinyin pinyin_table[] = { }, { /* 121 */ text : "duen", - bopomofo : "", + bopomofo : L"", sheng : "d", yun : "un", sheng_id : PINYIN_ID_D, @@ -1709,7 +1709,7 @@ static const Pinyin pinyin_table[] = { }, { /* 122 */ text : "dui", - bopomofo : "ㄉㄨㄟ", + bopomofo : L"ㄉㄨㄟ", sheng : "d", yun : "ui", sheng_id : PINYIN_ID_D, @@ -1723,7 +1723,7 @@ static const Pinyin pinyin_table[] = { }, { /* 123 */ text : "dun", - bopomofo : "ㄉㄨㄣ", + bopomofo : L"ㄉㄨㄣ", sheng : "d", yun : "un", sheng_id : PINYIN_ID_D, @@ -1737,7 +1737,7 @@ static const Pinyin pinyin_table[] = { }, { /* 124 */ text : "duo", - bopomofo : "ㄉㄨㄛ", + bopomofo : L"ㄉㄨㄛ", sheng : "d", yun : "uo", sheng_id : PINYIN_ID_D, @@ -1751,7 +1751,7 @@ static const Pinyin pinyin_table[] = { }, { /* 125 */ text : "e", - bopomofo : "ㄜ", + bopomofo : L"ㄜ", sheng : "", yun : "e", sheng_id : PINYIN_ID_ZERO, @@ -1765,7 +1765,7 @@ static const Pinyin pinyin_table[] = { }, { /* 126 */ text : "ei", - bopomofo : "ㄟ", + bopomofo : L"ㄟ", sheng : "", yun : "ei", sheng_id : PINYIN_ID_ZERO, @@ -1779,7 +1779,7 @@ static const Pinyin pinyin_table[] = { }, { /* 127 */ text : "en", - bopomofo : "ㄣ", + bopomofo : L"ㄣ", sheng : "", yun : "en", sheng_id : PINYIN_ID_ZERO, @@ -1793,7 +1793,7 @@ static const Pinyin pinyin_table[] = { }, { /* 128 */ text : "er", - bopomofo : "ㄦ", + bopomofo : L"ㄦ", sheng : "", yun : "er", sheng_id : PINYIN_ID_ZERO, @@ -1807,7 +1807,7 @@ static const Pinyin pinyin_table[] = { }, { /* 129 */ text : "f", - bopomofo : "ㄈ", + bopomofo : L"ㄈ", sheng : "f", yun : "", sheng_id : PINYIN_ID_F, @@ -1821,7 +1821,7 @@ static const Pinyin pinyin_table[] = { }, { /* 130 */ text : "fa", - bopomofo : "ㄈㄚ", + bopomofo : L"ㄈㄚ", sheng : "f", yun : "a", sheng_id : PINYIN_ID_F, @@ -1835,7 +1835,7 @@ static const Pinyin pinyin_table[] = { }, { /* 131 */ text : "fagn", - bopomofo : "", + bopomofo : L"", sheng : "f", yun : "ang", sheng_id : PINYIN_ID_F, @@ -1849,7 +1849,7 @@ static const Pinyin pinyin_table[] = { }, { /* 132 */ text : "fai", - bopomofo : "ㄈㄞ", + bopomofo : L"ㄈㄞ", sheng : "f", yun : "ai", sheng_id : PINYIN_ID_F, @@ -1863,7 +1863,7 @@ static const Pinyin pinyin_table[] = { }, { /* 133 */ text : "famg", - bopomofo : "", + bopomofo : L"", sheng : "f", yun : "ang", sheng_id : PINYIN_ID_F, @@ -1877,7 +1877,7 @@ static const Pinyin pinyin_table[] = { }, { /* 134 */ text : "fan", - bopomofo : "ㄈㄢ", + bopomofo : L"ㄈㄢ", sheng : "f", yun : "an", sheng_id : PINYIN_ID_F, @@ -1891,7 +1891,7 @@ static const Pinyin pinyin_table[] = { }, { /* 135 */ text : "fang", - bopomofo : "ㄈㄤ", + bopomofo : L"ㄈㄤ", sheng : "f", yun : "ang", sheng_id : PINYIN_ID_F, @@ -1905,7 +1905,7 @@ static const Pinyin pinyin_table[] = { }, { /* 136 */ text : "fao", - bopomofo : "ㄈㄠ", + bopomofo : L"ㄈㄠ", sheng : "f", yun : "ao", sheng_id : PINYIN_ID_F, @@ -1919,7 +1919,7 @@ static const Pinyin pinyin_table[] = { }, { /* 137 */ text : "fe", - bopomofo : "ㄈㄜ", + bopomofo : L"ㄈㄜ", sheng : "f", yun : "e", sheng_id : PINYIN_ID_F, @@ -1933,7 +1933,7 @@ static const Pinyin pinyin_table[] = { }, { /* 138 */ text : "fegn", - bopomofo : "", + bopomofo : L"", sheng : "f", yun : "eng", sheng_id : PINYIN_ID_F, @@ -1947,7 +1947,7 @@ static const Pinyin pinyin_table[] = { }, { /* 139 */ text : "fei", - bopomofo : "ㄈㄟ", + bopomofo : L"ㄈㄟ", sheng : "f", yun : "ei", sheng_id : PINYIN_ID_F, @@ -1961,7 +1961,7 @@ static const Pinyin pinyin_table[] = { }, { /* 140 */ text : "femg", - bopomofo : "", + bopomofo : L"", sheng : "f", yun : "eng", sheng_id : PINYIN_ID_F, @@ -1975,7 +1975,7 @@ static const Pinyin pinyin_table[] = { }, { /* 141 */ text : "fen", - bopomofo : "ㄈㄣ", + bopomofo : L"ㄈㄣ", sheng : "f", yun : "en", sheng_id : PINYIN_ID_F, @@ -1989,7 +1989,7 @@ static const Pinyin pinyin_table[] = { }, { /* 142 */ text : "feng", - bopomofo : "ㄈㄥ", + bopomofo : L"ㄈㄥ", sheng : "f", yun : "eng", sheng_id : PINYIN_ID_F, @@ -2003,7 +2003,7 @@ static const Pinyin pinyin_table[] = { }, { /* 143 */ text : "fo", - bopomofo : "ㄈㄛ", + bopomofo : L"ㄈㄛ", sheng : "f", yun : "o", sheng_id : PINYIN_ID_F, @@ -2017,7 +2017,7 @@ static const Pinyin pinyin_table[] = { }, { /* 144 */ text : "fong", - bopomofo : "ㄈㄨㄥ", + bopomofo : L"ㄈㄨㄥ", sheng : "f", yun : "ong", sheng_id : PINYIN_ID_F, @@ -2031,7 +2031,7 @@ static const Pinyin pinyin_table[] = { }, { /* 145 */ text : "fou", - bopomofo : "ㄈㄡ", + bopomofo : L"ㄈㄡ", sheng : "f", yun : "ou", sheng_id : PINYIN_ID_F, @@ -2045,7 +2045,7 @@ static const Pinyin pinyin_table[] = { }, { /* 146 */ text : "fu", - bopomofo : "ㄈㄨ", + bopomofo : L"ㄈㄨ", sheng : "f", yun : "u", sheng_id : PINYIN_ID_F, @@ -2059,7 +2059,7 @@ static const Pinyin pinyin_table[] = { }, { /* 147 */ text : "fua", - bopomofo : "ㄈㄨㄚ", + bopomofo : L"ㄈㄨㄚ", sheng : "f", yun : "ua", sheng_id : PINYIN_ID_F, @@ -2073,7 +2073,7 @@ static const Pinyin pinyin_table[] = { }, { /* 148 */ text : "fuai", - bopomofo : "ㄈㄨㄞ", + bopomofo : L"ㄈㄨㄞ", sheng : "f", yun : "uai", sheng_id : PINYIN_ID_F, @@ -2087,7 +2087,7 @@ static const Pinyin pinyin_table[] = { }, { /* 149 */ text : "fuan", - bopomofo : "ㄈㄨㄢ", + bopomofo : L"ㄈㄨㄢ", sheng : "f", yun : "uan", sheng_id : PINYIN_ID_F, @@ -2101,7 +2101,7 @@ static const Pinyin pinyin_table[] = { }, { /* 150 */ text : "fuang", - bopomofo : "ㄈㄨㄤ", + bopomofo : L"ㄈㄨㄤ", sheng : "f", yun : "uang", sheng_id : PINYIN_ID_F, @@ -2115,7 +2115,7 @@ static const Pinyin pinyin_table[] = { }, { /* 151 */ text : "fuei", - bopomofo : "", + bopomofo : L"", sheng : "f", yun : "ui", sheng_id : PINYIN_ID_F, @@ -2129,7 +2129,7 @@ static const Pinyin pinyin_table[] = { }, { /* 152 */ text : "fuen", - bopomofo : "", + bopomofo : L"", sheng : "f", yun : "un", sheng_id : PINYIN_ID_F, @@ -2143,7 +2143,7 @@ static const Pinyin pinyin_table[] = { }, { /* 153 */ text : "fui", - bopomofo : "ㄈㄨㄟ", + bopomofo : L"ㄈㄨㄟ", sheng : "f", yun : "ui", sheng_id : PINYIN_ID_F, @@ -2157,7 +2157,7 @@ static const Pinyin pinyin_table[] = { }, { /* 154 */ text : "fun", - bopomofo : "ㄈㄨㄣ", + bopomofo : L"ㄈㄨㄣ", sheng : "f", yun : "un", sheng_id : PINYIN_ID_F, @@ -2171,7 +2171,7 @@ static const Pinyin pinyin_table[] = { }, { /* 155 */ text : "fuo", - bopomofo : "ㄈㄨㄛ", + bopomofo : L"ㄈㄨㄛ", sheng : "f", yun : "uo", sheng_id : PINYIN_ID_F, @@ -2185,7 +2185,7 @@ static const Pinyin pinyin_table[] = { }, { /* 156 */ text : "g", - bopomofo : "ㄍ", + bopomofo : L"ㄍ", sheng : "g", yun : "", sheng_id : PINYIN_ID_G, @@ -2199,7 +2199,7 @@ static const Pinyin pinyin_table[] = { }, { /* 157 */ text : "ga", - bopomofo : "ㄍㄚ", + bopomofo : L"ㄍㄚ", sheng : "g", yun : "a", sheng_id : PINYIN_ID_G, @@ -2213,7 +2213,7 @@ static const Pinyin pinyin_table[] = { }, { /* 158 */ text : "gagn", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "ang", sheng_id : PINYIN_ID_G, @@ -2227,7 +2227,7 @@ static const Pinyin pinyin_table[] = { }, { /* 159 */ text : "gai", - bopomofo : "ㄍㄞ", + bopomofo : L"ㄍㄞ", sheng : "g", yun : "ai", sheng_id : PINYIN_ID_G, @@ -2241,7 +2241,7 @@ static const Pinyin pinyin_table[] = { }, { /* 160 */ text : "gamg", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "ang", sheng_id : PINYIN_ID_G, @@ -2255,7 +2255,7 @@ static const Pinyin pinyin_table[] = { }, { /* 161 */ text : "gan", - bopomofo : "ㄍㄢ", + bopomofo : L"ㄍㄢ", sheng : "g", yun : "an", sheng_id : PINYIN_ID_G, @@ -2269,7 +2269,7 @@ static const Pinyin pinyin_table[] = { }, { /* 162 */ text : "gang", - bopomofo : "ㄍㄤ", + bopomofo : L"ㄍㄤ", sheng : "g", yun : "ang", sheng_id : PINYIN_ID_G, @@ -2283,7 +2283,7 @@ static const Pinyin pinyin_table[] = { }, { /* 163 */ text : "gao", - bopomofo : "ㄍㄠ", + bopomofo : L"ㄍㄠ", sheng : "g", yun : "ao", sheng_id : PINYIN_ID_G, @@ -2297,7 +2297,7 @@ static const Pinyin pinyin_table[] = { }, { /* 164 */ text : "ge", - bopomofo : "ㄍㄜ", + bopomofo : L"ㄍㄜ", sheng : "g", yun : "e", sheng_id : PINYIN_ID_G, @@ -2311,7 +2311,7 @@ static const Pinyin pinyin_table[] = { }, { /* 165 */ text : "gegn", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "eng", sheng_id : PINYIN_ID_G, @@ -2325,7 +2325,7 @@ static const Pinyin pinyin_table[] = { }, { /* 166 */ text : "gei", - bopomofo : "ㄍㄟ", + bopomofo : L"ㄍㄟ", sheng : "g", yun : "ei", sheng_id : PINYIN_ID_G, @@ -2339,7 +2339,7 @@ static const Pinyin pinyin_table[] = { }, { /* 167 */ text : "gemg", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "eng", sheng_id : PINYIN_ID_G, @@ -2353,7 +2353,7 @@ static const Pinyin pinyin_table[] = { }, { /* 168 */ text : "gen", - bopomofo : "ㄍㄣ", + bopomofo : L"ㄍㄣ", sheng : "g", yun : "en", sheng_id : PINYIN_ID_G, @@ -2367,7 +2367,7 @@ static const Pinyin pinyin_table[] = { }, { /* 169 */ text : "geng", - bopomofo : "ㄍㄥ", + bopomofo : L"ㄍㄥ", sheng : "g", yun : "eng", sheng_id : PINYIN_ID_G, @@ -2381,7 +2381,7 @@ static const Pinyin pinyin_table[] = { }, { /* 170 */ text : "gogn", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "ong", sheng_id : PINYIN_ID_G, @@ -2395,7 +2395,7 @@ static const Pinyin pinyin_table[] = { }, { /* 171 */ text : "gomg", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "ong", sheng_id : PINYIN_ID_G, @@ -2409,7 +2409,7 @@ static const Pinyin pinyin_table[] = { }, { /* 172 */ text : "gong", - bopomofo : "ㄍㄨㄥ", + bopomofo : L"ㄍㄨㄥ", sheng : "g", yun : "ong", sheng_id : PINYIN_ID_G, @@ -2423,7 +2423,7 @@ static const Pinyin pinyin_table[] = { }, { /* 173 */ text : "gou", - bopomofo : "ㄍㄡ", + bopomofo : L"ㄍㄡ", sheng : "g", yun : "ou", sheng_id : PINYIN_ID_G, @@ -2437,7 +2437,7 @@ static const Pinyin pinyin_table[] = { }, { /* 174 */ text : "gu", - bopomofo : "ㄍㄨ", + bopomofo : L"ㄍㄨ", sheng : "g", yun : "u", sheng_id : PINYIN_ID_G, @@ -2451,7 +2451,7 @@ static const Pinyin pinyin_table[] = { }, { /* 175 */ text : "gua", - bopomofo : "ㄍㄨㄚ", + bopomofo : L"ㄍㄨㄚ", sheng : "g", yun : "ua", sheng_id : PINYIN_ID_G, @@ -2465,7 +2465,7 @@ static const Pinyin pinyin_table[] = { }, { /* 176 */ text : "guagn", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "uang", sheng_id : PINYIN_ID_G, @@ -2479,7 +2479,7 @@ static const Pinyin pinyin_table[] = { }, { /* 177 */ text : "guai", - bopomofo : "ㄍㄨㄞ", + bopomofo : L"ㄍㄨㄞ", sheng : "g", yun : "uai", sheng_id : PINYIN_ID_G, @@ -2493,7 +2493,7 @@ static const Pinyin pinyin_table[] = { }, { /* 178 */ text : "guamg", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "uang", sheng_id : PINYIN_ID_G, @@ -2507,7 +2507,7 @@ static const Pinyin pinyin_table[] = { }, { /* 179 */ text : "guan", - bopomofo : "ㄍㄨㄢ", + bopomofo : L"ㄍㄨㄢ", sheng : "g", yun : "uan", sheng_id : PINYIN_ID_G, @@ -2521,7 +2521,7 @@ static const Pinyin pinyin_table[] = { }, { /* 180 */ text : "guang", - bopomofo : "ㄍㄨㄤ", + bopomofo : L"ㄍㄨㄤ", sheng : "g", yun : "uang", sheng_id : PINYIN_ID_G, @@ -2535,7 +2535,7 @@ static const Pinyin pinyin_table[] = { }, { /* 181 */ text : "guei", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "ui", sheng_id : PINYIN_ID_G, @@ -2549,7 +2549,7 @@ static const Pinyin pinyin_table[] = { }, { /* 182 */ text : "guen", - bopomofo : "", + bopomofo : L"", sheng : "g", yun : "un", sheng_id : PINYIN_ID_G, @@ -2563,7 +2563,7 @@ static const Pinyin pinyin_table[] = { }, { /* 183 */ text : "gui", - bopomofo : "ㄍㄨㄟ", + bopomofo : L"ㄍㄨㄟ", sheng : "g", yun : "ui", sheng_id : PINYIN_ID_G, @@ -2577,7 +2577,7 @@ static const Pinyin pinyin_table[] = { }, { /* 184 */ text : "gun", - bopomofo : "ㄍㄨㄣ", + bopomofo : L"ㄍㄨㄣ", sheng : "g", yun : "un", sheng_id : PINYIN_ID_G, @@ -2591,7 +2591,7 @@ static const Pinyin pinyin_table[] = { }, { /* 185 */ text : "guo", - bopomofo : "ㄍㄨㄛ", + bopomofo : L"ㄍㄨㄛ", sheng : "g", yun : "uo", sheng_id : PINYIN_ID_G, @@ -2605,7 +2605,7 @@ static const Pinyin pinyin_table[] = { }, { /* 186 */ text : "h", - bopomofo : "ㄏ", + bopomofo : L"ㄏ", sheng : "h", yun : "", sheng_id : PINYIN_ID_H, @@ -2619,7 +2619,7 @@ static const Pinyin pinyin_table[] = { }, { /* 187 */ text : "ha", - bopomofo : "ㄏㄚ", + bopomofo : L"ㄏㄚ", sheng : "h", yun : "a", sheng_id : PINYIN_ID_H, @@ -2633,7 +2633,7 @@ static const Pinyin pinyin_table[] = { }, { /* 188 */ text : "hagn", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "ang", sheng_id : PINYIN_ID_H, @@ -2647,7 +2647,7 @@ static const Pinyin pinyin_table[] = { }, { /* 189 */ text : "hai", - bopomofo : "ㄏㄞ", + bopomofo : L"ㄏㄞ", sheng : "h", yun : "ai", sheng_id : PINYIN_ID_H, @@ -2661,7 +2661,7 @@ static const Pinyin pinyin_table[] = { }, { /* 190 */ text : "hamg", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "ang", sheng_id : PINYIN_ID_H, @@ -2675,7 +2675,7 @@ static const Pinyin pinyin_table[] = { }, { /* 191 */ text : "han", - bopomofo : "ㄏㄢ", + bopomofo : L"ㄏㄢ", sheng : "h", yun : "an", sheng_id : PINYIN_ID_H, @@ -2689,7 +2689,7 @@ static const Pinyin pinyin_table[] = { }, { /* 192 */ text : "hang", - bopomofo : "ㄏㄤ", + bopomofo : L"ㄏㄤ", sheng : "h", yun : "ang", sheng_id : PINYIN_ID_H, @@ -2703,7 +2703,7 @@ static const Pinyin pinyin_table[] = { }, { /* 193 */ text : "hao", - bopomofo : "ㄏㄠ", + bopomofo : L"ㄏㄠ", sheng : "h", yun : "ao", sheng_id : PINYIN_ID_H, @@ -2717,7 +2717,7 @@ static const Pinyin pinyin_table[] = { }, { /* 194 */ text : "he", - bopomofo : "ㄏㄜ", + bopomofo : L"ㄏㄜ", sheng : "h", yun : "e", sheng_id : PINYIN_ID_H, @@ -2731,7 +2731,7 @@ static const Pinyin pinyin_table[] = { }, { /* 195 */ text : "hegn", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "eng", sheng_id : PINYIN_ID_H, @@ -2745,7 +2745,7 @@ static const Pinyin pinyin_table[] = { }, { /* 196 */ text : "hei", - bopomofo : "ㄏㄟ", + bopomofo : L"ㄏㄟ", sheng : "h", yun : "ei", sheng_id : PINYIN_ID_H, @@ -2759,7 +2759,7 @@ static const Pinyin pinyin_table[] = { }, { /* 197 */ text : "hemg", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "eng", sheng_id : PINYIN_ID_H, @@ -2773,7 +2773,7 @@ static const Pinyin pinyin_table[] = { }, { /* 198 */ text : "hen", - bopomofo : "ㄏㄣ", + bopomofo : L"ㄏㄣ", sheng : "h", yun : "en", sheng_id : PINYIN_ID_H, @@ -2787,7 +2787,7 @@ static const Pinyin pinyin_table[] = { }, { /* 199 */ text : "heng", - bopomofo : "ㄏㄥ", + bopomofo : L"ㄏㄥ", sheng : "h", yun : "eng", sheng_id : PINYIN_ID_H, @@ -2801,7 +2801,7 @@ static const Pinyin pinyin_table[] = { }, { /* 200 */ text : "ho", - bopomofo : "ㄏㄛ", + bopomofo : L"ㄏㄛ", sheng : "h", yun : "o", sheng_id : PINYIN_ID_H, @@ -2815,7 +2815,7 @@ static const Pinyin pinyin_table[] = { }, { /* 201 */ text : "hogn", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "ong", sheng_id : PINYIN_ID_H, @@ -2829,7 +2829,7 @@ static const Pinyin pinyin_table[] = { }, { /* 202 */ text : "homg", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "ong", sheng_id : PINYIN_ID_H, @@ -2843,7 +2843,7 @@ static const Pinyin pinyin_table[] = { }, { /* 203 */ text : "hong", - bopomofo : "ㄏㄨㄥ", + bopomofo : L"ㄏㄨㄥ", sheng : "h", yun : "ong", sheng_id : PINYIN_ID_H, @@ -2857,7 +2857,7 @@ static const Pinyin pinyin_table[] = { }, { /* 204 */ text : "hou", - bopomofo : "ㄏㄡ", + bopomofo : L"ㄏㄡ", sheng : "h", yun : "ou", sheng_id : PINYIN_ID_H, @@ -2871,7 +2871,7 @@ static const Pinyin pinyin_table[] = { }, { /* 205 */ text : "hu", - bopomofo : "ㄏㄨ", + bopomofo : L"ㄏㄨ", sheng : "h", yun : "u", sheng_id : PINYIN_ID_H, @@ -2885,7 +2885,7 @@ static const Pinyin pinyin_table[] = { }, { /* 206 */ text : "hua", - bopomofo : "ㄏㄨㄚ", + bopomofo : L"ㄏㄨㄚ", sheng : "h", yun : "ua", sheng_id : PINYIN_ID_H, @@ -2899,7 +2899,7 @@ static const Pinyin pinyin_table[] = { }, { /* 207 */ text : "huagn", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "uang", sheng_id : PINYIN_ID_H, @@ -2913,7 +2913,7 @@ static const Pinyin pinyin_table[] = { }, { /* 208 */ text : "huai", - bopomofo : "ㄏㄨㄞ", + bopomofo : L"ㄏㄨㄞ", sheng : "h", yun : "uai", sheng_id : PINYIN_ID_H, @@ -2927,7 +2927,7 @@ static const Pinyin pinyin_table[] = { }, { /* 209 */ text : "huamg", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "uang", sheng_id : PINYIN_ID_H, @@ -2941,7 +2941,7 @@ static const Pinyin pinyin_table[] = { }, { /* 210 */ text : "huan", - bopomofo : "ㄏㄨㄢ", + bopomofo : L"ㄏㄨㄢ", sheng : "h", yun : "uan", sheng_id : PINYIN_ID_H, @@ -2955,7 +2955,7 @@ static const Pinyin pinyin_table[] = { }, { /* 211 */ text : "huang", - bopomofo : "ㄏㄨㄤ", + bopomofo : L"ㄏㄨㄤ", sheng : "h", yun : "uang", sheng_id : PINYIN_ID_H, @@ -2969,7 +2969,7 @@ static const Pinyin pinyin_table[] = { }, { /* 212 */ text : "huei", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "ui", sheng_id : PINYIN_ID_H, @@ -2983,7 +2983,7 @@ static const Pinyin pinyin_table[] = { }, { /* 213 */ text : "huen", - bopomofo : "", + bopomofo : L"", sheng : "h", yun : "un", sheng_id : PINYIN_ID_H, @@ -2997,7 +2997,7 @@ static const Pinyin pinyin_table[] = { }, { /* 214 */ text : "hui", - bopomofo : "ㄏㄨㄟ", + bopomofo : L"ㄏㄨㄟ", sheng : "h", yun : "ui", sheng_id : PINYIN_ID_H, @@ -3011,7 +3011,7 @@ static const Pinyin pinyin_table[] = { }, { /* 215 */ text : "hun", - bopomofo : "ㄏㄨㄣ", + bopomofo : L"ㄏㄨㄣ", sheng : "h", yun : "un", sheng_id : PINYIN_ID_H, @@ -3025,7 +3025,7 @@ static const Pinyin pinyin_table[] = { }, { /* 216 */ text : "huo", - bopomofo : "ㄏㄨㄛ", + bopomofo : L"ㄏㄨㄛ", sheng : "h", yun : "uo", sheng_id : PINYIN_ID_H, @@ -3039,7 +3039,7 @@ static const Pinyin pinyin_table[] = { }, { /* 217 */ text : "j", - bopomofo : "ㄐ", + bopomofo : L"ㄐ", sheng : "j", yun : "", sheng_id : PINYIN_ID_J, @@ -3053,7 +3053,7 @@ static const Pinyin pinyin_table[] = { }, { /* 218 */ text : "ji", - bopomofo : "ㄐㄧ", + bopomofo : L"ㄐㄧ", sheng : "j", yun : "i", sheng_id : PINYIN_ID_J, @@ -3067,7 +3067,7 @@ static const Pinyin pinyin_table[] = { }, { /* 219 */ text : "jia", - bopomofo : "ㄐㄧㄚ", + bopomofo : L"ㄐㄧㄚ", sheng : "j", yun : "ia", sheng_id : PINYIN_ID_J, @@ -3081,7 +3081,7 @@ static const Pinyin pinyin_table[] = { }, { /* 220 */ text : "jiagn", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "iang", sheng_id : PINYIN_ID_J, @@ -3095,7 +3095,7 @@ static const Pinyin pinyin_table[] = { }, { /* 221 */ text : "jiamg", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "iang", sheng_id : PINYIN_ID_J, @@ -3109,7 +3109,7 @@ static const Pinyin pinyin_table[] = { }, { /* 222 */ text : "jian", - bopomofo : "ㄐㄧㄢ", + bopomofo : L"ㄐㄧㄢ", sheng : "j", yun : "ian", sheng_id : PINYIN_ID_J, @@ -3123,7 +3123,7 @@ static const Pinyin pinyin_table[] = { }, { /* 223 */ text : "jiang", - bopomofo : "ㄐㄧㄤ", + bopomofo : L"ㄐㄧㄤ", sheng : "j", yun : "iang", sheng_id : PINYIN_ID_J, @@ -3137,7 +3137,7 @@ static const Pinyin pinyin_table[] = { }, { /* 224 */ text : "jiao", - bopomofo : "ㄐㄧㄠ", + bopomofo : L"ㄐㄧㄠ", sheng : "j", yun : "iao", sheng_id : PINYIN_ID_J, @@ -3151,7 +3151,7 @@ static const Pinyin pinyin_table[] = { }, { /* 225 */ text : "jie", - bopomofo : "ㄐㄧㄝ", + bopomofo : L"ㄐㄧㄝ", sheng : "j", yun : "ie", sheng_id : PINYIN_ID_J, @@ -3165,7 +3165,7 @@ static const Pinyin pinyin_table[] = { }, { /* 226 */ text : "jign", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "ing", sheng_id : PINYIN_ID_J, @@ -3179,7 +3179,7 @@ static const Pinyin pinyin_table[] = { }, { /* 227 */ text : "jimg", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "ing", sheng_id : PINYIN_ID_J, @@ -3193,7 +3193,7 @@ static const Pinyin pinyin_table[] = { }, { /* 228 */ text : "jin", - bopomofo : "ㄐㄧㄣ", + bopomofo : L"ㄐㄧㄣ", sheng : "j", yun : "in", sheng_id : PINYIN_ID_J, @@ -3207,7 +3207,7 @@ static const Pinyin pinyin_table[] = { }, { /* 229 */ text : "jing", - bopomofo : "ㄐㄧㄥ", + bopomofo : L"ㄐㄧㄥ", sheng : "j", yun : "ing", sheng_id : PINYIN_ID_J, @@ -3221,7 +3221,7 @@ static const Pinyin pinyin_table[] = { }, { /* 230 */ text : "jiogn", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "iong", sheng_id : PINYIN_ID_J, @@ -3235,7 +3235,7 @@ static const Pinyin pinyin_table[] = { }, { /* 231 */ text : "jiomg", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "iong", sheng_id : PINYIN_ID_J, @@ -3249,7 +3249,7 @@ static const Pinyin pinyin_table[] = { }, { /* 232 */ text : "jiong", - bopomofo : "ㄐㄩㄥ", + bopomofo : L"ㄐㄩㄥ", sheng : "j", yun : "iong", sheng_id : PINYIN_ID_J, @@ -3263,7 +3263,7 @@ static const Pinyin pinyin_table[] = { }, { /* 233 */ text : "jiou", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "iu", sheng_id : PINYIN_ID_J, @@ -3277,7 +3277,7 @@ static const Pinyin pinyin_table[] = { }, { /* 234 */ text : "jiu", - bopomofo : "ㄐㄧㄡ", + bopomofo : L"ㄐㄧㄡ", sheng : "j", yun : "iu", sheng_id : PINYIN_ID_J, @@ -3291,7 +3291,7 @@ static const Pinyin pinyin_table[] = { }, { /* 235 */ text : "ju", - bopomofo : "ㄐㄩ", + bopomofo : L"ㄐㄩ", sheng : "j", yun : "u", sheng_id : PINYIN_ID_J, @@ -3305,7 +3305,7 @@ static const Pinyin pinyin_table[] = { }, { /* 236 */ text : "juan", - bopomofo : "ㄐㄩㄢ", + bopomofo : L"ㄐㄩㄢ", sheng : "j", yun : "uan", sheng_id : PINYIN_ID_J, @@ -3319,7 +3319,7 @@ static const Pinyin pinyin_table[] = { }, { /* 237 */ text : "juang", - bopomofo : "ㄐㄩㄤ", + bopomofo : L"ㄐㄩㄤ", sheng : "j", yun : "uang", sheng_id : PINYIN_ID_J, @@ -3333,7 +3333,7 @@ static const Pinyin pinyin_table[] = { }, { /* 238 */ text : "jue", - bopomofo : "ㄐㄩㄝ", + bopomofo : L"ㄐㄩㄝ", sheng : "j", yun : "ue", sheng_id : PINYIN_ID_J, @@ -3347,7 +3347,7 @@ static const Pinyin pinyin_table[] = { }, { /* 239 */ text : "juen", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3361,7 +3361,7 @@ static const Pinyin pinyin_table[] = { }, { /* 240 */ text : "jun", - bopomofo : "ㄐㄩㄣ", + bopomofo : L"ㄐㄩㄣ", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3375,7 +3375,7 @@ static const Pinyin pinyin_table[] = { }, { /* 241 */ text : "jv", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "u", sheng_id : PINYIN_ID_J, @@ -3389,7 +3389,7 @@ static const Pinyin pinyin_table[] = { }, { /* 242 */ text : "jvan", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "uan", sheng_id : PINYIN_ID_J, @@ -3403,7 +3403,7 @@ static const Pinyin pinyin_table[] = { }, { /* 243 */ text : "jvang", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "uang", sheng_id : PINYIN_ID_J, @@ -3417,7 +3417,7 @@ static const Pinyin pinyin_table[] = { }, { /* 244 */ text : "jve", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "ue", sheng_id : PINYIN_ID_J, @@ -3431,7 +3431,7 @@ static const Pinyin pinyin_table[] = { }, { /* 245 */ text : "jven", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3445,7 +3445,7 @@ static const Pinyin pinyin_table[] = { }, { /* 246 */ text : "jvn", - bopomofo : "", + bopomofo : L"", sheng : "j", yun : "un", sheng_id : PINYIN_ID_J, @@ -3459,7 +3459,7 @@ static const Pinyin pinyin_table[] = { }, { /* 247 */ text : "k", - bopomofo : "ㄎ", + bopomofo : L"ㄎ", sheng : "k", yun : "", sheng_id : PINYIN_ID_K, @@ -3473,7 +3473,7 @@ static const Pinyin pinyin_table[] = { }, { /* 248 */ text : "ka", - bopomofo : "ㄎㄚ", + bopomofo : L"ㄎㄚ", sheng : "k", yun : "a", sheng_id : PINYIN_ID_K, @@ -3487,7 +3487,7 @@ static const Pinyin pinyin_table[] = { }, { /* 249 */ text : "kagn", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "ang", sheng_id : PINYIN_ID_K, @@ -3501,7 +3501,7 @@ static const Pinyin pinyin_table[] = { }, { /* 250 */ text : "kai", - bopomofo : "ㄎㄞ", + bopomofo : L"ㄎㄞ", sheng : "k", yun : "ai", sheng_id : PINYIN_ID_K, @@ -3515,7 +3515,7 @@ static const Pinyin pinyin_table[] = { }, { /* 251 */ text : "kamg", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "ang", sheng_id : PINYIN_ID_K, @@ -3529,7 +3529,7 @@ static const Pinyin pinyin_table[] = { }, { /* 252 */ text : "kan", - bopomofo : "ㄎㄢ", + bopomofo : L"ㄎㄢ", sheng : "k", yun : "an", sheng_id : PINYIN_ID_K, @@ -3543,7 +3543,7 @@ static const Pinyin pinyin_table[] = { }, { /* 253 */ text : "kang", - bopomofo : "ㄎㄤ", + bopomofo : L"ㄎㄤ", sheng : "k", yun : "ang", sheng_id : PINYIN_ID_K, @@ -3557,7 +3557,7 @@ static const Pinyin pinyin_table[] = { }, { /* 254 */ text : "kao", - bopomofo : "ㄎㄠ", + bopomofo : L"ㄎㄠ", sheng : "k", yun : "ao", sheng_id : PINYIN_ID_K, @@ -3571,7 +3571,7 @@ static const Pinyin pinyin_table[] = { }, { /* 255 */ text : "ke", - bopomofo : "ㄎㄜ", + bopomofo : L"ㄎㄜ", sheng : "k", yun : "e", sheng_id : PINYIN_ID_K, @@ -3585,7 +3585,7 @@ static const Pinyin pinyin_table[] = { }, { /* 256 */ text : "kegn", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "eng", sheng_id : PINYIN_ID_K, @@ -3599,7 +3599,7 @@ static const Pinyin pinyin_table[] = { }, { /* 257 */ text : "kei", - bopomofo : "ㄎㄟ", + bopomofo : L"ㄎㄟ", sheng : "k", yun : "ei", sheng_id : PINYIN_ID_K, @@ -3613,7 +3613,7 @@ static const Pinyin pinyin_table[] = { }, { /* 258 */ text : "kemg", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "eng", sheng_id : PINYIN_ID_K, @@ -3627,7 +3627,7 @@ static const Pinyin pinyin_table[] = { }, { /* 259 */ text : "ken", - bopomofo : "ㄎㄣ", + bopomofo : L"ㄎㄣ", sheng : "k", yun : "en", sheng_id : PINYIN_ID_K, @@ -3641,7 +3641,7 @@ static const Pinyin pinyin_table[] = { }, { /* 260 */ text : "keng", - bopomofo : "ㄎㄥ", + bopomofo : L"ㄎㄥ", sheng : "k", yun : "eng", sheng_id : PINYIN_ID_K, @@ -3655,7 +3655,7 @@ static const Pinyin pinyin_table[] = { }, { /* 261 */ text : "kogn", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "ong", sheng_id : PINYIN_ID_K, @@ -3669,7 +3669,7 @@ static const Pinyin pinyin_table[] = { }, { /* 262 */ text : "komg", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "ong", sheng_id : PINYIN_ID_K, @@ -3683,7 +3683,7 @@ static const Pinyin pinyin_table[] = { }, { /* 263 */ text : "kong", - bopomofo : "ㄎㄨㄥ", + bopomofo : L"ㄎㄨㄥ", sheng : "k", yun : "ong", sheng_id : PINYIN_ID_K, @@ -3697,7 +3697,7 @@ static const Pinyin pinyin_table[] = { }, { /* 264 */ text : "kou", - bopomofo : "ㄎㄡ", + bopomofo : L"ㄎㄡ", sheng : "k", yun : "ou", sheng_id : PINYIN_ID_K, @@ -3711,7 +3711,7 @@ static const Pinyin pinyin_table[] = { }, { /* 265 */ text : "ku", - bopomofo : "ㄎㄨ", + bopomofo : L"ㄎㄨ", sheng : "k", yun : "u", sheng_id : PINYIN_ID_K, @@ -3725,7 +3725,7 @@ static const Pinyin pinyin_table[] = { }, { /* 266 */ text : "kua", - bopomofo : "ㄎㄨㄚ", + bopomofo : L"ㄎㄨㄚ", sheng : "k", yun : "ua", sheng_id : PINYIN_ID_K, @@ -3739,7 +3739,7 @@ static const Pinyin pinyin_table[] = { }, { /* 267 */ text : "kuagn", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "uang", sheng_id : PINYIN_ID_K, @@ -3753,7 +3753,7 @@ static const Pinyin pinyin_table[] = { }, { /* 268 */ text : "kuai", - bopomofo : "ㄎㄨㄞ", + bopomofo : L"ㄎㄨㄞ", sheng : "k", yun : "uai", sheng_id : PINYIN_ID_K, @@ -3767,7 +3767,7 @@ static const Pinyin pinyin_table[] = { }, { /* 269 */ text : "kuamg", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "uang", sheng_id : PINYIN_ID_K, @@ -3781,7 +3781,7 @@ static const Pinyin pinyin_table[] = { }, { /* 270 */ text : "kuan", - bopomofo : "ㄎㄨㄢ", + bopomofo : L"ㄎㄨㄢ", sheng : "k", yun : "uan", sheng_id : PINYIN_ID_K, @@ -3795,7 +3795,7 @@ static const Pinyin pinyin_table[] = { }, { /* 271 */ text : "kuang", - bopomofo : "ㄎㄨㄤ", + bopomofo : L"ㄎㄨㄤ", sheng : "k", yun : "uang", sheng_id : PINYIN_ID_K, @@ -3809,7 +3809,7 @@ static const Pinyin pinyin_table[] = { }, { /* 272 */ text : "kuei", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "ui", sheng_id : PINYIN_ID_K, @@ -3823,7 +3823,7 @@ static const Pinyin pinyin_table[] = { }, { /* 273 */ text : "kuen", - bopomofo : "", + bopomofo : L"", sheng : "k", yun : "un", sheng_id : PINYIN_ID_K, @@ -3837,7 +3837,7 @@ static const Pinyin pinyin_table[] = { }, { /* 274 */ text : "kui", - bopomofo : "ㄎㄨㄟ", + bopomofo : L"ㄎㄨㄟ", sheng : "k", yun : "ui", sheng_id : PINYIN_ID_K, @@ -3851,7 +3851,7 @@ static const Pinyin pinyin_table[] = { }, { /* 275 */ text : "kun", - bopomofo : "ㄎㄨㄣ", + bopomofo : L"ㄎㄨㄣ", sheng : "k", yun : "un", sheng_id : PINYIN_ID_K, @@ -3865,7 +3865,7 @@ static const Pinyin pinyin_table[] = { }, { /* 276 */ text : "kuo", - bopomofo : "ㄎㄨㄛ", + bopomofo : L"ㄎㄨㄛ", sheng : "k", yun : "uo", sheng_id : PINYIN_ID_K, @@ -3879,7 +3879,7 @@ static const Pinyin pinyin_table[] = { }, { /* 277 */ text : "l", - bopomofo : "ㄌ", + bopomofo : L"ㄌ", sheng : "l", yun : "", sheng_id : PINYIN_ID_L, @@ -3893,7 +3893,7 @@ static const Pinyin pinyin_table[] = { }, { /* 278 */ text : "la", - bopomofo : "ㄌㄚ", + bopomofo : L"ㄌㄚ", sheng : "l", yun : "a", sheng_id : PINYIN_ID_L, @@ -3907,7 +3907,7 @@ static const Pinyin pinyin_table[] = { }, { /* 279 */ text : "lagn", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "ang", sheng_id : PINYIN_ID_L, @@ -3921,7 +3921,7 @@ static const Pinyin pinyin_table[] = { }, { /* 280 */ text : "lai", - bopomofo : "ㄌㄞ", + bopomofo : L"ㄌㄞ", sheng : "l", yun : "ai", sheng_id : PINYIN_ID_L, @@ -3935,7 +3935,7 @@ static const Pinyin pinyin_table[] = { }, { /* 281 */ text : "lamg", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "ang", sheng_id : PINYIN_ID_L, @@ -3949,7 +3949,7 @@ static const Pinyin pinyin_table[] = { }, { /* 282 */ text : "lan", - bopomofo : "ㄌㄢ", + bopomofo : L"ㄌㄢ", sheng : "l", yun : "an", sheng_id : PINYIN_ID_L, @@ -3963,7 +3963,7 @@ static const Pinyin pinyin_table[] = { }, { /* 283 */ text : "lang", - bopomofo : "ㄌㄤ", + bopomofo : L"ㄌㄤ", sheng : "l", yun : "ang", sheng_id : PINYIN_ID_L, @@ -3977,7 +3977,7 @@ static const Pinyin pinyin_table[] = { }, { /* 284 */ text : "lao", - bopomofo : "ㄌㄠ", + bopomofo : L"ㄌㄠ", sheng : "l", yun : "ao", sheng_id : PINYIN_ID_L, @@ -3991,7 +3991,7 @@ static const Pinyin pinyin_table[] = { }, { /* 285 */ text : "le", - bopomofo : "ㄌㄜ", + bopomofo : L"ㄌㄜ", sheng : "l", yun : "e", sheng_id : PINYIN_ID_L, @@ -4005,7 +4005,7 @@ static const Pinyin pinyin_table[] = { }, { /* 286 */ text : "legn", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "eng", sheng_id : PINYIN_ID_L, @@ -4019,7 +4019,7 @@ static const Pinyin pinyin_table[] = { }, { /* 287 */ text : "lei", - bopomofo : "ㄌㄟ", + bopomofo : L"ㄌㄟ", sheng : "l", yun : "ei", sheng_id : PINYIN_ID_L, @@ -4033,7 +4033,7 @@ static const Pinyin pinyin_table[] = { }, { /* 288 */ text : "lemg", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "eng", sheng_id : PINYIN_ID_L, @@ -4047,7 +4047,7 @@ static const Pinyin pinyin_table[] = { }, { /* 289 */ text : "len", - bopomofo : "ㄌㄣ", + bopomofo : L"ㄌㄣ", sheng : "l", yun : "en", sheng_id : PINYIN_ID_L, @@ -4061,7 +4061,7 @@ static const Pinyin pinyin_table[] = { }, { /* 290 */ text : "leng", - bopomofo : "ㄌㄥ", + bopomofo : L"ㄌㄥ", sheng : "l", yun : "eng", sheng_id : PINYIN_ID_L, @@ -4075,7 +4075,7 @@ static const Pinyin pinyin_table[] = { }, { /* 291 */ text : "li", - bopomofo : "ㄌㄧ", + bopomofo : L"ㄌㄧ", sheng : "l", yun : "i", sheng_id : PINYIN_ID_L, @@ -4089,7 +4089,7 @@ static const Pinyin pinyin_table[] = { }, { /* 292 */ text : "lia", - bopomofo : "ㄌㄧㄚ", + bopomofo : L"ㄌㄧㄚ", sheng : "l", yun : "ia", sheng_id : PINYIN_ID_L, @@ -4103,7 +4103,7 @@ static const Pinyin pinyin_table[] = { }, { /* 293 */ text : "liagn", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "iang", sheng_id : PINYIN_ID_L, @@ -4117,7 +4117,7 @@ static const Pinyin pinyin_table[] = { }, { /* 294 */ text : "liamg", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "iang", sheng_id : PINYIN_ID_L, @@ -4131,7 +4131,7 @@ static const Pinyin pinyin_table[] = { }, { /* 295 */ text : "lian", - bopomofo : "ㄌㄧㄢ", + bopomofo : L"ㄌㄧㄢ", sheng : "l", yun : "ian", sheng_id : PINYIN_ID_L, @@ -4145,7 +4145,7 @@ static const Pinyin pinyin_table[] = { }, { /* 296 */ text : "liang", - bopomofo : "ㄌㄧㄤ", + bopomofo : L"ㄌㄧㄤ", sheng : "l", yun : "iang", sheng_id : PINYIN_ID_L, @@ -4159,7 +4159,7 @@ static const Pinyin pinyin_table[] = { }, { /* 297 */ text : "liao", - bopomofo : "ㄌㄧㄠ", + bopomofo : L"ㄌㄧㄠ", sheng : "l", yun : "iao", sheng_id : PINYIN_ID_L, @@ -4173,7 +4173,7 @@ static const Pinyin pinyin_table[] = { }, { /* 298 */ text : "lie", - bopomofo : "ㄌㄧㄝ", + bopomofo : L"ㄌㄧㄝ", sheng : "l", yun : "ie", sheng_id : PINYIN_ID_L, @@ -4187,7 +4187,7 @@ static const Pinyin pinyin_table[] = { }, { /* 299 */ text : "lign", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "ing", sheng_id : PINYIN_ID_L, @@ -4201,7 +4201,7 @@ static const Pinyin pinyin_table[] = { }, { /* 300 */ text : "limg", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "ing", sheng_id : PINYIN_ID_L, @@ -4215,7 +4215,7 @@ static const Pinyin pinyin_table[] = { }, { /* 301 */ text : "lin", - bopomofo : "ㄌㄧㄣ", + bopomofo : L"ㄌㄧㄣ", sheng : "l", yun : "in", sheng_id : PINYIN_ID_L, @@ -4229,7 +4229,7 @@ static const Pinyin pinyin_table[] = { }, { /* 302 */ text : "ling", - bopomofo : "ㄌㄧㄥ", + bopomofo : L"ㄌㄧㄥ", sheng : "l", yun : "ing", sheng_id : PINYIN_ID_L, @@ -4243,7 +4243,7 @@ static const Pinyin pinyin_table[] = { }, { /* 303 */ text : "liou", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "iu", sheng_id : PINYIN_ID_L, @@ -4257,7 +4257,7 @@ static const Pinyin pinyin_table[] = { }, { /* 304 */ text : "liu", - bopomofo : "ㄌㄧㄡ", + bopomofo : L"ㄌㄧㄡ", sheng : "l", yun : "iu", sheng_id : PINYIN_ID_L, @@ -4271,7 +4271,7 @@ static const Pinyin pinyin_table[] = { }, { /* 305 */ text : "lo", - bopomofo : "ㄌㄛ", + bopomofo : L"ㄌㄛ", sheng : "l", yun : "o", sheng_id : PINYIN_ID_L, @@ -4285,7 +4285,7 @@ static const Pinyin pinyin_table[] = { }, { /* 306 */ text : "logn", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "ong", sheng_id : PINYIN_ID_L, @@ -4299,7 +4299,7 @@ static const Pinyin pinyin_table[] = { }, { /* 307 */ text : "lomg", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "ong", sheng_id : PINYIN_ID_L, @@ -4313,7 +4313,7 @@ static const Pinyin pinyin_table[] = { }, { /* 308 */ text : "long", - bopomofo : "ㄌㄨㄥ", + bopomofo : L"ㄌㄨㄥ", sheng : "l", yun : "ong", sheng_id : PINYIN_ID_L, @@ -4327,7 +4327,7 @@ static const Pinyin pinyin_table[] = { }, { /* 309 */ text : "lou", - bopomofo : "ㄌㄡ", + bopomofo : L"ㄌㄡ", sheng : "l", yun : "ou", sheng_id : PINYIN_ID_L, @@ -4341,7 +4341,7 @@ static const Pinyin pinyin_table[] = { }, { /* 310 */ text : "lu", - bopomofo : "ㄌㄨ", + bopomofo : L"ㄌㄨ", sheng : "l", yun : "u", sheng_id : PINYIN_ID_L, @@ -4355,7 +4355,7 @@ static const Pinyin pinyin_table[] = { }, { /* 311 */ text : "luan", - bopomofo : "ㄌㄨㄢ", + bopomofo : L"ㄌㄨㄢ", sheng : "l", yun : "uan", sheng_id : PINYIN_ID_L, @@ -4369,7 +4369,7 @@ static const Pinyin pinyin_table[] = { }, { /* 312 */ text : "luang", - bopomofo : "ㄌㄨㄤ", + bopomofo : L"ㄌㄨㄤ", sheng : "l", yun : "uang", sheng_id : PINYIN_ID_L, @@ -4383,7 +4383,7 @@ static const Pinyin pinyin_table[] = { }, { /* 313 */ text : "lue", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "üe", sheng_id : PINYIN_ID_L, @@ -4397,7 +4397,7 @@ static const Pinyin pinyin_table[] = { }, { /* 314 */ text : "luei", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "ui", sheng_id : PINYIN_ID_L, @@ -4411,7 +4411,7 @@ static const Pinyin pinyin_table[] = { }, { /* 315 */ text : "luen", - bopomofo : "", + bopomofo : L"", sheng : "l", yun : "un", sheng_id : PINYIN_ID_L, @@ -4425,7 +4425,7 @@ static const Pinyin pinyin_table[] = { }, { /* 316 */ text : "lui", - bopomofo : "ㄌㄨㄟ", + bopomofo : L"ㄌㄨㄟ", sheng : "l", yun : "ui", sheng_id : PINYIN_ID_L, @@ -4439,7 +4439,7 @@ static const Pinyin pinyin_table[] = { }, { /* 317 */ text : "lun", - bopomofo : "ㄌㄨㄣ", + bopomofo : L"ㄌㄨㄣ", sheng : "l", yun : "un", sheng_id : PINYIN_ID_L, @@ -4453,7 +4453,7 @@ static const Pinyin pinyin_table[] = { }, { /* 318 */ text : "luo", - bopomofo : "ㄌㄨㄛ", + bopomofo : L"ㄌㄨㄛ", sheng : "l", yun : "uo", sheng_id : PINYIN_ID_L, @@ -4467,7 +4467,7 @@ static const Pinyin pinyin_table[] = { }, { /* 319 */ text : "lv", - bopomofo : "ㄌㄩ", + bopomofo : L"ㄌㄩ", sheng : "l", yun : "ü", sheng_id : PINYIN_ID_L, @@ -4481,7 +4481,7 @@ static const Pinyin pinyin_table[] = { }, { /* 320 */ text : "lve", - bopomofo : "ㄌㄩㄝ", + bopomofo : L"ㄌㄩㄝ", sheng : "l", yun : "üe", sheng_id : PINYIN_ID_L, @@ -4495,7 +4495,7 @@ static const Pinyin pinyin_table[] = { }, { /* 321 */ text : "m", - bopomofo : "ㄇ", + bopomofo : L"ㄇ", sheng : "m", yun : "", sheng_id : PINYIN_ID_M, @@ -4509,7 +4509,7 @@ static const Pinyin pinyin_table[] = { }, { /* 322 */ text : "ma", - bopomofo : "ㄇㄚ", + bopomofo : L"ㄇㄚ", sheng : "m", yun : "a", sheng_id : PINYIN_ID_M, @@ -4523,7 +4523,7 @@ static const Pinyin pinyin_table[] = { }, { /* 323 */ text : "magn", - bopomofo : "", + bopomofo : L"", sheng : "m", yun : "ang", sheng_id : PINYIN_ID_M, @@ -4537,7 +4537,7 @@ static const Pinyin pinyin_table[] = { }, { /* 324 */ text : "mai", - bopomofo : "ㄇㄞ", + bopomofo : L"ㄇㄞ", sheng : "m", yun : "ai", sheng_id : PINYIN_ID_M, @@ -4551,7 +4551,7 @@ static const Pinyin pinyin_table[] = { }, { /* 325 */ text : "mamg", - bopomofo : "", + bopomofo : L"", sheng : "m", yun : "ang", sheng_id : PINYIN_ID_M, @@ -4565,7 +4565,7 @@ static const Pinyin pinyin_table[] = { }, { /* 326 */ text : "man", - bopomofo : "ㄇㄢ", + bopomofo : L"ㄇㄢ", sheng : "m", yun : "an", sheng_id : PINYIN_ID_M, @@ -4579,7 +4579,7 @@ static const Pinyin pinyin_table[] = { }, { /* 327 */ text : "mang", - bopomofo : "ㄇㄤ", + bopomofo : L"ㄇㄤ", sheng : "m", yun : "ang", sheng_id : PINYIN_ID_M, @@ -4593,7 +4593,7 @@ static const Pinyin pinyin_table[] = { }, { /* 328 */ text : "mao", - bopomofo : "ㄇㄠ", + bopomofo : L"ㄇㄠ", sheng : "m", yun : "ao", sheng_id : PINYIN_ID_M, @@ -4607,7 +4607,7 @@ static const Pinyin pinyin_table[] = { }, { /* 329 */ text : "me", - bopomofo : "ㄇㄜ", + bopomofo : L"ㄇㄜ", sheng : "m", yun : "e", sheng_id : PINYIN_ID_M, @@ -4621,7 +4621,7 @@ static const Pinyin pinyin_table[] = { }, { /* 330 */ text : "megn", - bopomofo : "", + bopomofo : L"", sheng : "m", yun : "eng", sheng_id : PINYIN_ID_M, @@ -4635,7 +4635,7 @@ static const Pinyin pinyin_table[] = { }, { /* 331 */ text : "mei", - bopomofo : "ㄇㄟ", + bopomofo : L"ㄇㄟ", sheng : "m", yun : "ei", sheng_id : PINYIN_ID_M, @@ -4649,7 +4649,7 @@ static const Pinyin pinyin_table[] = { }, { /* 332 */ text : "memg", - bopomofo : "", + bopomofo : L"", sheng : "m", yun : "eng", sheng_id : PINYIN_ID_M, @@ -4663,7 +4663,7 @@ static const Pinyin pinyin_table[] = { }, { /* 333 */ text : "men", - bopomofo : "ㄇㄣ", + bopomofo : L"ㄇㄣ", sheng : "m", yun : "en", sheng_id : PINYIN_ID_M, @@ -4677,7 +4677,7 @@ static const Pinyin pinyin_table[] = { }, { /* 334 */ text : "meng", - bopomofo : "ㄇㄥ", + bopomofo : L"ㄇㄥ", sheng : "m", yun : "eng", sheng_id : PINYIN_ID_M, @@ -4691,7 +4691,7 @@ static const Pinyin pinyin_table[] = { }, { /* 335 */ text : "mi", - bopomofo : "ㄇㄧ", + bopomofo : L"ㄇㄧ", sheng : "m", yun : "i", sheng_id : PINYIN_ID_M, @@ -4705,7 +4705,7 @@ static const Pinyin pinyin_table[] = { }, { /* 336 */ text : "mian", - bopomofo : "ㄇㄧㄢ", + bopomofo : L"ㄇㄧㄢ", sheng : "m", yun : "ian", sheng_id : PINYIN_ID_M, @@ -4719,7 +4719,7 @@ static const Pinyin pinyin_table[] = { }, { /* 337 */ text : "miang", - bopomofo : "ㄇㄧㄤ", + bopomofo : L"ㄇㄧㄤ", sheng : "m", yun : "iang", sheng_id : PINYIN_ID_M, @@ -4733,7 +4733,7 @@ static const Pinyin pinyin_table[] = { }, { /* 338 */ text : "miao", - bopomofo : "ㄇㄧㄠ", + bopomofo : L"ㄇㄧㄠ", sheng : "m", yun : "iao", sheng_id : PINYIN_ID_M, @@ -4747,7 +4747,7 @@ static const Pinyin pinyin_table[] = { }, { /* 339 */ text : "mie", - bopomofo : "ㄇㄧㄝ", + bopomofo : L"ㄇㄧㄝ", sheng : "m", yun : "ie", sheng_id : PINYIN_ID_M, @@ -4761,7 +4761,7 @@ static const Pinyin pinyin_table[] = { }, { /* 340 */ text : "mign", - bopomofo : "", + bopomofo : L"", sheng : "m", yun : "ing", sheng_id : PINYIN_ID_M, @@ -4775,7 +4775,7 @@ static const Pinyin pinyin_table[] = { }, { /* 341 */ text : "mimg", - bopomofo : "", + bopomofo : L"", sheng : "m", yun : "ing", sheng_id : PINYIN_ID_M, @@ -4789,7 +4789,7 @@ static const Pinyin pinyin_table[] = { }, { /* 342 */ text : "min", - bopomofo : "ㄇㄧㄣ", + bopomofo : L"ㄇㄧㄣ", sheng : "m", yun : "in", sheng_id : PINYIN_ID_M, @@ -4803,7 +4803,7 @@ static const Pinyin pinyin_table[] = { }, { /* 343 */ text : "ming", - bopomofo : "ㄇㄧㄥ", + bopomofo : L"ㄇㄧㄥ", sheng : "m", yun : "ing", sheng_id : PINYIN_ID_M, @@ -4817,7 +4817,7 @@ static const Pinyin pinyin_table[] = { }, { /* 344 */ text : "miou", - bopomofo : "", + bopomofo : L"", sheng : "m", yun : "iu", sheng_id : PINYIN_ID_M, @@ -4831,7 +4831,7 @@ static const Pinyin pinyin_table[] = { }, { /* 345 */ text : "miu", - bopomofo : "ㄇㄧㄡ", + bopomofo : L"ㄇㄧㄡ", sheng : "m", yun : "iu", sheng_id : PINYIN_ID_M, @@ -4845,7 +4845,7 @@ static const Pinyin pinyin_table[] = { }, { /* 346 */ text : "mo", - bopomofo : "ㄇㄛ", + bopomofo : L"ㄇㄛ", sheng : "m", yun : "o", sheng_id : PINYIN_ID_M, @@ -4859,7 +4859,7 @@ static const Pinyin pinyin_table[] = { }, { /* 347 */ text : "mou", - bopomofo : "ㄇㄡ", + bopomofo : L"ㄇㄡ", sheng : "m", yun : "ou", sheng_id : PINYIN_ID_M, @@ -4873,7 +4873,7 @@ static const Pinyin pinyin_table[] = { }, { /* 348 */ text : "mu", - bopomofo : "ㄇㄨ", + bopomofo : L"ㄇㄨ", sheng : "m", yun : "u", sheng_id : PINYIN_ID_M, @@ -4887,7 +4887,7 @@ static const Pinyin pinyin_table[] = { }, { /* 349 */ text : "n", - bopomofo : "ㄋ", + bopomofo : L"ㄋ", sheng : "n", yun : "", sheng_id : PINYIN_ID_N, @@ -4901,7 +4901,7 @@ static const Pinyin pinyin_table[] = { }, { /* 350 */ text : "na", - bopomofo : "ㄋㄚ", + bopomofo : L"ㄋㄚ", sheng : "n", yun : "a", sheng_id : PINYIN_ID_N, @@ -4915,7 +4915,7 @@ static const Pinyin pinyin_table[] = { }, { /* 351 */ text : "nagn", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "ang", sheng_id : PINYIN_ID_N, @@ -4929,7 +4929,7 @@ static const Pinyin pinyin_table[] = { }, { /* 352 */ text : "nai", - bopomofo : "ㄋㄞ", + bopomofo : L"ㄋㄞ", sheng : "n", yun : "ai", sheng_id : PINYIN_ID_N, @@ -4943,7 +4943,7 @@ static const Pinyin pinyin_table[] = { }, { /* 353 */ text : "namg", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "ang", sheng_id : PINYIN_ID_N, @@ -4957,7 +4957,7 @@ static const Pinyin pinyin_table[] = { }, { /* 354 */ text : "nan", - bopomofo : "ㄋㄢ", + bopomofo : L"ㄋㄢ", sheng : "n", yun : "an", sheng_id : PINYIN_ID_N, @@ -4971,7 +4971,7 @@ static const Pinyin pinyin_table[] = { }, { /* 355 */ text : "nang", - bopomofo : "ㄋㄤ", + bopomofo : L"ㄋㄤ", sheng : "n", yun : "ang", sheng_id : PINYIN_ID_N, @@ -4985,7 +4985,7 @@ static const Pinyin pinyin_table[] = { }, { /* 356 */ text : "nao", - bopomofo : "ㄋㄠ", + bopomofo : L"ㄋㄠ", sheng : "n", yun : "ao", sheng_id : PINYIN_ID_N, @@ -4999,7 +4999,7 @@ static const Pinyin pinyin_table[] = { }, { /* 357 */ text : "ne", - bopomofo : "ㄋㄜ", + bopomofo : L"ㄋㄜ", sheng : "n", yun : "e", sheng_id : PINYIN_ID_N, @@ -5013,7 +5013,7 @@ static const Pinyin pinyin_table[] = { }, { /* 358 */ text : "negn", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "eng", sheng_id : PINYIN_ID_N, @@ -5027,7 +5027,7 @@ static const Pinyin pinyin_table[] = { }, { /* 359 */ text : "nei", - bopomofo : "ㄋㄟ", + bopomofo : L"ㄋㄟ", sheng : "n", yun : "ei", sheng_id : PINYIN_ID_N, @@ -5041,7 +5041,7 @@ static const Pinyin pinyin_table[] = { }, { /* 360 */ text : "nemg", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "eng", sheng_id : PINYIN_ID_N, @@ -5055,7 +5055,7 @@ static const Pinyin pinyin_table[] = { }, { /* 361 */ text : "nen", - bopomofo : "ㄋㄣ", + bopomofo : L"ㄋㄣ", sheng : "n", yun : "en", sheng_id : PINYIN_ID_N, @@ -5069,7 +5069,7 @@ static const Pinyin pinyin_table[] = { }, { /* 362 */ text : "neng", - bopomofo : "ㄋㄥ", + bopomofo : L"ㄋㄥ", sheng : "n", yun : "eng", sheng_id : PINYIN_ID_N, @@ -5083,7 +5083,7 @@ static const Pinyin pinyin_table[] = { }, { /* 363 */ text : "ni", - bopomofo : "ㄋㄧ", + bopomofo : L"ㄋㄧ", sheng : "n", yun : "i", sheng_id : PINYIN_ID_N, @@ -5097,7 +5097,7 @@ static const Pinyin pinyin_table[] = { }, { /* 364 */ text : "nia", - bopomofo : "ㄋㄧㄚ", + bopomofo : L"ㄋㄧㄚ", sheng : "n", yun : "ia", sheng_id : PINYIN_ID_N, @@ -5111,7 +5111,7 @@ static const Pinyin pinyin_table[] = { }, { /* 365 */ text : "niagn", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "iang", sheng_id : PINYIN_ID_N, @@ -5125,7 +5125,7 @@ static const Pinyin pinyin_table[] = { }, { /* 366 */ text : "niamg", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "iang", sheng_id : PINYIN_ID_N, @@ -5139,7 +5139,7 @@ static const Pinyin pinyin_table[] = { }, { /* 367 */ text : "nian", - bopomofo : "ㄋㄧㄢ", + bopomofo : L"ㄋㄧㄢ", sheng : "n", yun : "ian", sheng_id : PINYIN_ID_N, @@ -5153,7 +5153,7 @@ static const Pinyin pinyin_table[] = { }, { /* 368 */ text : "niang", - bopomofo : "ㄋㄧㄤ", + bopomofo : L"ㄋㄧㄤ", sheng : "n", yun : "iang", sheng_id : PINYIN_ID_N, @@ -5167,7 +5167,7 @@ static const Pinyin pinyin_table[] = { }, { /* 369 */ text : "niao", - bopomofo : "ㄋㄧㄠ", + bopomofo : L"ㄋㄧㄠ", sheng : "n", yun : "iao", sheng_id : PINYIN_ID_N, @@ -5181,7 +5181,7 @@ static const Pinyin pinyin_table[] = { }, { /* 370 */ text : "nie", - bopomofo : "ㄋㄧㄝ", + bopomofo : L"ㄋㄧㄝ", sheng : "n", yun : "ie", sheng_id : PINYIN_ID_N, @@ -5195,7 +5195,7 @@ static const Pinyin pinyin_table[] = { }, { /* 371 */ text : "nign", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "ing", sheng_id : PINYIN_ID_N, @@ -5209,7 +5209,7 @@ static const Pinyin pinyin_table[] = { }, { /* 372 */ text : "nimg", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "ing", sheng_id : PINYIN_ID_N, @@ -5223,7 +5223,7 @@ static const Pinyin pinyin_table[] = { }, { /* 373 */ text : "nin", - bopomofo : "ㄋㄧㄣ", + bopomofo : L"ㄋㄧㄣ", sheng : "n", yun : "in", sheng_id : PINYIN_ID_N, @@ -5237,7 +5237,7 @@ static const Pinyin pinyin_table[] = { }, { /* 374 */ text : "ning", - bopomofo : "ㄋㄧㄥ", + bopomofo : L"ㄋㄧㄥ", sheng : "n", yun : "ing", sheng_id : PINYIN_ID_N, @@ -5251,7 +5251,7 @@ static const Pinyin pinyin_table[] = { }, { /* 375 */ text : "niou", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "iu", sheng_id : PINYIN_ID_N, @@ -5265,7 +5265,7 @@ static const Pinyin pinyin_table[] = { }, { /* 376 */ text : "niu", - bopomofo : "ㄋㄧㄡ", + bopomofo : L"ㄋㄧㄡ", sheng : "n", yun : "iu", sheng_id : PINYIN_ID_N, @@ -5279,7 +5279,7 @@ static const Pinyin pinyin_table[] = { }, { /* 377 */ text : "no", - bopomofo : "ㄋㄛ", + bopomofo : L"ㄋㄛ", sheng : "n", yun : "o", sheng_id : PINYIN_ID_N, @@ -5293,7 +5293,7 @@ static const Pinyin pinyin_table[] = { }, { /* 378 */ text : "nogn", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "ong", sheng_id : PINYIN_ID_N, @@ -5307,7 +5307,7 @@ static const Pinyin pinyin_table[] = { }, { /* 379 */ text : "nomg", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "ong", sheng_id : PINYIN_ID_N, @@ -5321,7 +5321,7 @@ static const Pinyin pinyin_table[] = { }, { /* 380 */ text : "nong", - bopomofo : "ㄋㄨㄥ", + bopomofo : L"ㄋㄨㄥ", sheng : "n", yun : "ong", sheng_id : PINYIN_ID_N, @@ -5335,7 +5335,7 @@ static const Pinyin pinyin_table[] = { }, { /* 381 */ text : "nou", - bopomofo : "ㄋㄡ", + bopomofo : L"ㄋㄡ", sheng : "n", yun : "ou", sheng_id : PINYIN_ID_N, @@ -5349,7 +5349,7 @@ static const Pinyin pinyin_table[] = { }, { /* 382 */ text : "nu", - bopomofo : "ㄋㄨ", + bopomofo : L"ㄋㄨ", sheng : "n", yun : "u", sheng_id : PINYIN_ID_N, @@ -5363,7 +5363,7 @@ static const Pinyin pinyin_table[] = { }, { /* 383 */ text : "nuan", - bopomofo : "ㄋㄨㄢ", + bopomofo : L"ㄋㄨㄢ", sheng : "n", yun : "uan", sheng_id : PINYIN_ID_N, @@ -5377,7 +5377,7 @@ static const Pinyin pinyin_table[] = { }, { /* 384 */ text : "nuang", - bopomofo : "ㄋㄨㄤ", + bopomofo : L"ㄋㄨㄤ", sheng : "n", yun : "uang", sheng_id : PINYIN_ID_N, @@ -5391,7 +5391,7 @@ static const Pinyin pinyin_table[] = { }, { /* 385 */ text : "nue", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "üe", sheng_id : PINYIN_ID_N, @@ -5405,7 +5405,7 @@ static const Pinyin pinyin_table[] = { }, { /* 386 */ text : "nuen", - bopomofo : "", + bopomofo : L"", sheng : "n", yun : "un", sheng_id : PINYIN_ID_N, @@ -5419,7 +5419,7 @@ static const Pinyin pinyin_table[] = { }, { /* 387 */ text : "nun", - bopomofo : "ㄋㄨㄣ", + bopomofo : L"ㄋㄨㄣ", sheng : "n", yun : "un", sheng_id : PINYIN_ID_N, @@ -5433,7 +5433,7 @@ static const Pinyin pinyin_table[] = { }, { /* 388 */ text : "nuo", - bopomofo : "ㄋㄨㄛ", + bopomofo : L"ㄋㄨㄛ", sheng : "n", yun : "uo", sheng_id : PINYIN_ID_N, @@ -5447,7 +5447,7 @@ static const Pinyin pinyin_table[] = { }, { /* 389 */ text : "nv", - bopomofo : "ㄋㄩ", + bopomofo : L"ㄋㄩ", sheng : "n", yun : "ü", sheng_id : PINYIN_ID_N, @@ -5461,7 +5461,7 @@ static const Pinyin pinyin_table[] = { }, { /* 390 */ text : "nve", - bopomofo : "ㄋㄩㄝ", + bopomofo : L"ㄋㄩㄝ", sheng : "n", yun : "üe", sheng_id : PINYIN_ID_N, @@ -5475,7 +5475,7 @@ static const Pinyin pinyin_table[] = { }, { /* 391 */ text : "o", - bopomofo : "ㄛ", + bopomofo : L"ㄛ", sheng : "", yun : "o", sheng_id : PINYIN_ID_ZERO, @@ -5489,7 +5489,7 @@ static const Pinyin pinyin_table[] = { }, { /* 392 */ text : "ou", - bopomofo : "ㄡ", + bopomofo : L"ㄡ", sheng : "", yun : "ou", sheng_id : PINYIN_ID_ZERO, @@ -5503,7 +5503,7 @@ static const Pinyin pinyin_table[] = { }, { /* 393 */ text : "p", - bopomofo : "ㄆ", + bopomofo : L"ㄆ", sheng : "p", yun : "", sheng_id : PINYIN_ID_P, @@ -5517,7 +5517,7 @@ static const Pinyin pinyin_table[] = { }, { /* 394 */ text : "pa", - bopomofo : "ㄆㄚ", + bopomofo : L"ㄆㄚ", sheng : "p", yun : "a", sheng_id : PINYIN_ID_P, @@ -5531,7 +5531,7 @@ static const Pinyin pinyin_table[] = { }, { /* 395 */ text : "pagn", - bopomofo : "", + bopomofo : L"", sheng : "p", yun : "ang", sheng_id : PINYIN_ID_P, @@ -5545,7 +5545,7 @@ static const Pinyin pinyin_table[] = { }, { /* 396 */ text : "pai", - bopomofo : "ㄆㄞ", + bopomofo : L"ㄆㄞ", sheng : "p", yun : "ai", sheng_id : PINYIN_ID_P, @@ -5559,7 +5559,7 @@ static const Pinyin pinyin_table[] = { }, { /* 397 */ text : "pamg", - bopomofo : "", + bopomofo : L"", sheng : "p", yun : "ang", sheng_id : PINYIN_ID_P, @@ -5573,7 +5573,7 @@ static const Pinyin pinyin_table[] = { }, { /* 398 */ text : "pan", - bopomofo : "ㄆㄢ", + bopomofo : L"ㄆㄢ", sheng : "p", yun : "an", sheng_id : PINYIN_ID_P, @@ -5587,7 +5587,7 @@ static const Pinyin pinyin_table[] = { }, { /* 399 */ text : "pang", - bopomofo : "ㄆㄤ", + bopomofo : L"ㄆㄤ", sheng : "p", yun : "ang", sheng_id : PINYIN_ID_P, @@ -5601,7 +5601,7 @@ static const Pinyin pinyin_table[] = { }, { /* 400 */ text : "pao", - bopomofo : "ㄆㄠ", + bopomofo : L"ㄆㄠ", sheng : "p", yun : "ao", sheng_id : PINYIN_ID_P, @@ -5615,7 +5615,7 @@ static const Pinyin pinyin_table[] = { }, { /* 401 */ text : "pegn", - bopomofo : "", + bopomofo : L"", sheng : "p", yun : "eng", sheng_id : PINYIN_ID_P, @@ -5629,7 +5629,7 @@ static const Pinyin pinyin_table[] = { }, { /* 402 */ text : "pei", - bopomofo : "ㄆㄟ", + bopomofo : L"ㄆㄟ", sheng : "p", yun : "ei", sheng_id : PINYIN_ID_P, @@ -5643,7 +5643,7 @@ static const Pinyin pinyin_table[] = { }, { /* 403 */ text : "pemg", - bopomofo : "", + bopomofo : L"", sheng : "p", yun : "eng", sheng_id : PINYIN_ID_P, @@ -5657,7 +5657,7 @@ static const Pinyin pinyin_table[] = { }, { /* 404 */ text : "pen", - bopomofo : "ㄆㄣ", + bopomofo : L"ㄆㄣ", sheng : "p", yun : "en", sheng_id : PINYIN_ID_P, @@ -5671,7 +5671,7 @@ static const Pinyin pinyin_table[] = { }, { /* 405 */ text : "peng", - bopomofo : "ㄆㄥ", + bopomofo : L"ㄆㄥ", sheng : "p", yun : "eng", sheng_id : PINYIN_ID_P, @@ -5685,7 +5685,7 @@ static const Pinyin pinyin_table[] = { }, { /* 406 */ text : "pi", - bopomofo : "ㄆㄧ", + bopomofo : L"ㄆㄧ", sheng : "p", yun : "i", sheng_id : PINYIN_ID_P, @@ -5699,7 +5699,7 @@ static const Pinyin pinyin_table[] = { }, { /* 407 */ text : "pian", - bopomofo : "ㄆㄧㄢ", + bopomofo : L"ㄆㄧㄢ", sheng : "p", yun : "ian", sheng_id : PINYIN_ID_P, @@ -5713,7 +5713,7 @@ static const Pinyin pinyin_table[] = { }, { /* 408 */ text : "piang", - bopomofo : "ㄆㄧㄤ", + bopomofo : L"ㄆㄧㄤ", sheng : "p", yun : "iang", sheng_id : PINYIN_ID_P, @@ -5727,7 +5727,7 @@ static const Pinyin pinyin_table[] = { }, { /* 409 */ text : "piao", - bopomofo : "ㄆㄧㄠ", + bopomofo : L"ㄆㄧㄠ", sheng : "p", yun : "iao", sheng_id : PINYIN_ID_P, @@ -5741,7 +5741,7 @@ static const Pinyin pinyin_table[] = { }, { /* 410 */ text : "pie", - bopomofo : "ㄆㄧㄝ", + bopomofo : L"ㄆㄧㄝ", sheng : "p", yun : "ie", sheng_id : PINYIN_ID_P, @@ -5755,7 +5755,7 @@ static const Pinyin pinyin_table[] = { }, { /* 411 */ text : "pign", - bopomofo : "", + bopomofo : L"", sheng : "p", yun : "ing", sheng_id : PINYIN_ID_P, @@ -5769,7 +5769,7 @@ static const Pinyin pinyin_table[] = { }, { /* 412 */ text : "pimg", - bopomofo : "", + bopomofo : L"", sheng : "p", yun : "ing", sheng_id : PINYIN_ID_P, @@ -5783,7 +5783,7 @@ static const Pinyin pinyin_table[] = { }, { /* 413 */ text : "pin", - bopomofo : "ㄆㄧㄣ", + bopomofo : L"ㄆㄧㄣ", sheng : "p", yun : "in", sheng_id : PINYIN_ID_P, @@ -5797,7 +5797,7 @@ static const Pinyin pinyin_table[] = { }, { /* 414 */ text : "ping", - bopomofo : "ㄆㄧㄥ", + bopomofo : L"ㄆㄧㄥ", sheng : "p", yun : "ing", sheng_id : PINYIN_ID_P, @@ -5811,7 +5811,7 @@ static const Pinyin pinyin_table[] = { }, { /* 415 */ text : "po", - bopomofo : "ㄆㄛ", + bopomofo : L"ㄆㄛ", sheng : "p", yun : "o", sheng_id : PINYIN_ID_P, @@ -5825,7 +5825,7 @@ static const Pinyin pinyin_table[] = { }, { /* 416 */ text : "pou", - bopomofo : "ㄆㄡ", + bopomofo : L"ㄆㄡ", sheng : "p", yun : "ou", sheng_id : PINYIN_ID_P, @@ -5839,7 +5839,7 @@ static const Pinyin pinyin_table[] = { }, { /* 417 */ text : "pu", - bopomofo : "ㄆㄨ", + bopomofo : L"ㄆㄨ", sheng : "p", yun : "u", sheng_id : PINYIN_ID_P, @@ -5853,7 +5853,7 @@ static const Pinyin pinyin_table[] = { }, { /* 418 */ text : "q", - bopomofo : "ㄑ", + bopomofo : L"ㄑ", sheng : "q", yun : "", sheng_id : PINYIN_ID_Q, @@ -5867,7 +5867,7 @@ static const Pinyin pinyin_table[] = { }, { /* 419 */ text : "qi", - bopomofo : "ㄑㄧ", + bopomofo : L"ㄑㄧ", sheng : "q", yun : "i", sheng_id : PINYIN_ID_Q, @@ -5881,7 +5881,7 @@ static const Pinyin pinyin_table[] = { }, { /* 420 */ text : "qia", - bopomofo : "ㄑㄧㄚ", + bopomofo : L"ㄑㄧㄚ", sheng : "q", yun : "ia", sheng_id : PINYIN_ID_Q, @@ -5895,7 +5895,7 @@ static const Pinyin pinyin_table[] = { }, { /* 421 */ text : "qiagn", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "iang", sheng_id : PINYIN_ID_Q, @@ -5909,7 +5909,7 @@ static const Pinyin pinyin_table[] = { }, { /* 422 */ text : "qiamg", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "iang", sheng_id : PINYIN_ID_Q, @@ -5923,7 +5923,7 @@ static const Pinyin pinyin_table[] = { }, { /* 423 */ text : "qian", - bopomofo : "ㄑㄧㄢ", + bopomofo : L"ㄑㄧㄢ", sheng : "q", yun : "ian", sheng_id : PINYIN_ID_Q, @@ -5937,7 +5937,7 @@ static const Pinyin pinyin_table[] = { }, { /* 424 */ text : "qiang", - bopomofo : "ㄑㄧㄤ", + bopomofo : L"ㄑㄧㄤ", sheng : "q", yun : "iang", sheng_id : PINYIN_ID_Q, @@ -5951,7 +5951,7 @@ static const Pinyin pinyin_table[] = { }, { /* 425 */ text : "qiao", - bopomofo : "ㄑㄧㄠ", + bopomofo : L"ㄑㄧㄠ", sheng : "q", yun : "iao", sheng_id : PINYIN_ID_Q, @@ -5965,7 +5965,7 @@ static const Pinyin pinyin_table[] = { }, { /* 426 */ text : "qie", - bopomofo : "ㄑㄧㄝ", + bopomofo : L"ㄑㄧㄝ", sheng : "q", yun : "ie", sheng_id : PINYIN_ID_Q, @@ -5979,7 +5979,7 @@ static const Pinyin pinyin_table[] = { }, { /* 427 */ text : "qign", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "ing", sheng_id : PINYIN_ID_Q, @@ -5993,7 +5993,7 @@ static const Pinyin pinyin_table[] = { }, { /* 428 */ text : "qimg", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "ing", sheng_id : PINYIN_ID_Q, @@ -6007,7 +6007,7 @@ static const Pinyin pinyin_table[] = { }, { /* 429 */ text : "qin", - bopomofo : "ㄑㄧㄣ", + bopomofo : L"ㄑㄧㄣ", sheng : "q", yun : "in", sheng_id : PINYIN_ID_Q, @@ -6021,7 +6021,7 @@ static const Pinyin pinyin_table[] = { }, { /* 430 */ text : "qing", - bopomofo : "ㄑㄧㄥ", + bopomofo : L"ㄑㄧㄥ", sheng : "q", yun : "ing", sheng_id : PINYIN_ID_Q, @@ -6035,7 +6035,7 @@ static const Pinyin pinyin_table[] = { }, { /* 431 */ text : "qiogn", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "iong", sheng_id : PINYIN_ID_Q, @@ -6049,7 +6049,7 @@ static const Pinyin pinyin_table[] = { }, { /* 432 */ text : "qiomg", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "iong", sheng_id : PINYIN_ID_Q, @@ -6063,7 +6063,7 @@ static const Pinyin pinyin_table[] = { }, { /* 433 */ text : "qiong", - bopomofo : "ㄑㄩㄥ", + bopomofo : L"ㄑㄩㄥ", sheng : "q", yun : "iong", sheng_id : PINYIN_ID_Q, @@ -6077,7 +6077,7 @@ static const Pinyin pinyin_table[] = { }, { /* 434 */ text : "qiou", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "iu", sheng_id : PINYIN_ID_Q, @@ -6091,7 +6091,7 @@ static const Pinyin pinyin_table[] = { }, { /* 435 */ text : "qiu", - bopomofo : "ㄑㄧㄡ", + bopomofo : L"ㄑㄧㄡ", sheng : "q", yun : "iu", sheng_id : PINYIN_ID_Q, @@ -6105,7 +6105,7 @@ static const Pinyin pinyin_table[] = { }, { /* 436 */ text : "qu", - bopomofo : "ㄑㄩ", + bopomofo : L"ㄑㄩ", sheng : "q", yun : "u", sheng_id : PINYIN_ID_Q, @@ -6119,7 +6119,7 @@ static const Pinyin pinyin_table[] = { }, { /* 437 */ text : "quan", - bopomofo : "ㄑㄩㄢ", + bopomofo : L"ㄑㄩㄢ", sheng : "q", yun : "uan", sheng_id : PINYIN_ID_Q, @@ -6133,7 +6133,7 @@ static const Pinyin pinyin_table[] = { }, { /* 438 */ text : "quang", - bopomofo : "ㄑㄩㄤ", + bopomofo : L"ㄑㄩㄤ", sheng : "q", yun : "uang", sheng_id : PINYIN_ID_Q, @@ -6147,7 +6147,7 @@ static const Pinyin pinyin_table[] = { }, { /* 439 */ text : "que", - bopomofo : "ㄑㄩㄝ", + bopomofo : L"ㄑㄩㄝ", sheng : "q", yun : "ue", sheng_id : PINYIN_ID_Q, @@ -6161,7 +6161,7 @@ static const Pinyin pinyin_table[] = { }, { /* 440 */ text : "quen", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -6175,7 +6175,7 @@ static const Pinyin pinyin_table[] = { }, { /* 441 */ text : "qun", - bopomofo : "ㄑㄩㄣ", + bopomofo : L"ㄑㄩㄣ", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -6189,7 +6189,7 @@ static const Pinyin pinyin_table[] = { }, { /* 442 */ text : "qv", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "u", sheng_id : PINYIN_ID_Q, @@ -6203,7 +6203,7 @@ static const Pinyin pinyin_table[] = { }, { /* 443 */ text : "qvan", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "uan", sheng_id : PINYIN_ID_Q, @@ -6217,7 +6217,7 @@ static const Pinyin pinyin_table[] = { }, { /* 444 */ text : "qvang", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "uang", sheng_id : PINYIN_ID_Q, @@ -6231,7 +6231,7 @@ static const Pinyin pinyin_table[] = { }, { /* 445 */ text : "qve", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "ue", sheng_id : PINYIN_ID_Q, @@ -6245,7 +6245,7 @@ static const Pinyin pinyin_table[] = { }, { /* 446 */ text : "qven", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -6259,7 +6259,7 @@ static const Pinyin pinyin_table[] = { }, { /* 447 */ text : "qvn", - bopomofo : "", + bopomofo : L"", sheng : "q", yun : "un", sheng_id : PINYIN_ID_Q, @@ -6273,7 +6273,7 @@ static const Pinyin pinyin_table[] = { }, { /* 448 */ text : "r", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "", sheng_id : PINYIN_ID_R, @@ -6287,7 +6287,7 @@ static const Pinyin pinyin_table[] = { }, { /* 449 */ text : "ra", - bopomofo : "ㄖㄚ", + bopomofo : L"ㄖㄚ", sheng : "r", yun : "a", sheng_id : PINYIN_ID_R, @@ -6301,7 +6301,7 @@ static const Pinyin pinyin_table[] = { }, { /* 450 */ text : "ragn", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "ang", sheng_id : PINYIN_ID_R, @@ -6315,7 +6315,7 @@ static const Pinyin pinyin_table[] = { }, { /* 451 */ text : "rai", - bopomofo : "ㄖㄞ", + bopomofo : L"ㄖㄞ", sheng : "r", yun : "ai", sheng_id : PINYIN_ID_R, @@ -6329,7 +6329,7 @@ static const Pinyin pinyin_table[] = { }, { /* 452 */ text : "ramg", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "ang", sheng_id : PINYIN_ID_R, @@ -6343,7 +6343,7 @@ static const Pinyin pinyin_table[] = { }, { /* 453 */ text : "ran", - bopomofo : "ㄖㄢ", + bopomofo : L"ㄖㄢ", sheng : "r", yun : "an", sheng_id : PINYIN_ID_R, @@ -6357,7 +6357,7 @@ static const Pinyin pinyin_table[] = { }, { /* 454 */ text : "rang", - bopomofo : "ㄖㄤ", + bopomofo : L"ㄖㄤ", sheng : "r", yun : "ang", sheng_id : PINYIN_ID_R, @@ -6371,7 +6371,7 @@ static const Pinyin pinyin_table[] = { }, { /* 455 */ text : "rao", - bopomofo : "ㄖㄠ", + bopomofo : L"ㄖㄠ", sheng : "r", yun : "ao", sheng_id : PINYIN_ID_R, @@ -6385,7 +6385,7 @@ static const Pinyin pinyin_table[] = { }, { /* 456 */ text : "re", - bopomofo : "ㄖㄜ", + bopomofo : L"ㄖㄜ", sheng : "r", yun : "e", sheng_id : PINYIN_ID_R, @@ -6399,7 +6399,7 @@ static const Pinyin pinyin_table[] = { }, { /* 457 */ text : "regn", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "eng", sheng_id : PINYIN_ID_R, @@ -6413,7 +6413,7 @@ static const Pinyin pinyin_table[] = { }, { /* 458 */ text : "rei", - bopomofo : "ㄖㄟ", + bopomofo : L"ㄖㄟ", sheng : "r", yun : "ei", sheng_id : PINYIN_ID_R, @@ -6427,7 +6427,7 @@ static const Pinyin pinyin_table[] = { }, { /* 459 */ text : "remg", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "eng", sheng_id : PINYIN_ID_R, @@ -6441,7 +6441,7 @@ static const Pinyin pinyin_table[] = { }, { /* 460 */ text : "ren", - bopomofo : "ㄖㄣ", + bopomofo : L"ㄖㄣ", sheng : "r", yun : "en", sheng_id : PINYIN_ID_R, @@ -6455,7 +6455,7 @@ static const Pinyin pinyin_table[] = { }, { /* 461 */ text : "reng", - bopomofo : "ㄖㄥ", + bopomofo : L"ㄖㄥ", sheng : "r", yun : "eng", sheng_id : PINYIN_ID_R, @@ -6469,7 +6469,7 @@ static const Pinyin pinyin_table[] = { }, { /* 462 */ text : "ri", - bopomofo : "ㄖ", + bopomofo : L"ㄖ", sheng : "r", yun : "i", sheng_id : PINYIN_ID_R, @@ -6483,7 +6483,7 @@ static const Pinyin pinyin_table[] = { }, { /* 463 */ text : "ria", - bopomofo : "ㄖㄧㄚ", + bopomofo : L"ㄖㄧㄚ", sheng : "r", yun : "ia", sheng_id : PINYIN_ID_R, @@ -6497,7 +6497,7 @@ static const Pinyin pinyin_table[] = { }, { /* 464 */ text : "rian", - bopomofo : "ㄖㄧㄢ", + bopomofo : L"ㄖㄧㄢ", sheng : "r", yun : "ian", sheng_id : PINYIN_ID_R, @@ -6511,7 +6511,7 @@ static const Pinyin pinyin_table[] = { }, { /* 465 */ text : "riang", - bopomofo : "ㄖㄧㄤ", + bopomofo : L"ㄖㄧㄤ", sheng : "r", yun : "iang", sheng_id : PINYIN_ID_R, @@ -6525,7 +6525,7 @@ static const Pinyin pinyin_table[] = { }, { /* 466 */ text : "riao", - bopomofo : "ㄖㄧㄠ", + bopomofo : L"ㄖㄧㄠ", sheng : "r", yun : "iao", sheng_id : PINYIN_ID_R, @@ -6539,7 +6539,7 @@ static const Pinyin pinyin_table[] = { }, { /* 467 */ text : "rie", - bopomofo : "ㄖㄧㄝ", + bopomofo : L"ㄖㄧㄝ", sheng : "r", yun : "ie", sheng_id : PINYIN_ID_R, @@ -6553,7 +6553,7 @@ static const Pinyin pinyin_table[] = { }, { /* 468 */ text : "rin", - bopomofo : "ㄖㄧㄣ", + bopomofo : L"ㄖㄧㄣ", sheng : "r", yun : "in", sheng_id : PINYIN_ID_R, @@ -6567,7 +6567,7 @@ static const Pinyin pinyin_table[] = { }, { /* 469 */ text : "ring", - bopomofo : "ㄖㄧㄥ", + bopomofo : L"ㄖㄧㄥ", sheng : "r", yun : "ing", sheng_id : PINYIN_ID_R, @@ -6581,7 +6581,7 @@ static const Pinyin pinyin_table[] = { }, { /* 470 */ text : "riou", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "iu", sheng_id : PINYIN_ID_R, @@ -6595,7 +6595,7 @@ static const Pinyin pinyin_table[] = { }, { /* 471 */ text : "riu", - bopomofo : "ㄖㄧㄡ", + bopomofo : L"ㄖㄧㄡ", sheng : "r", yun : "iu", sheng_id : PINYIN_ID_R, @@ -6609,7 +6609,7 @@ static const Pinyin pinyin_table[] = { }, { /* 472 */ text : "ro", - bopomofo : "ㄖㄛ", + bopomofo : L"ㄖㄛ", sheng : "r", yun : "o", sheng_id : PINYIN_ID_R, @@ -6623,7 +6623,7 @@ static const Pinyin pinyin_table[] = { }, { /* 473 */ text : "rogn", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "ong", sheng_id : PINYIN_ID_R, @@ -6637,7 +6637,7 @@ static const Pinyin pinyin_table[] = { }, { /* 474 */ text : "romg", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "ong", sheng_id : PINYIN_ID_R, @@ -6651,7 +6651,7 @@ static const Pinyin pinyin_table[] = { }, { /* 475 */ text : "rong", - bopomofo : "ㄖㄨㄥ", + bopomofo : L"ㄖㄨㄥ", sheng : "r", yun : "ong", sheng_id : PINYIN_ID_R, @@ -6665,7 +6665,7 @@ static const Pinyin pinyin_table[] = { }, { /* 476 */ text : "rou", - bopomofo : "ㄖㄡ", + bopomofo : L"ㄖㄡ", sheng : "r", yun : "ou", sheng_id : PINYIN_ID_R, @@ -6679,7 +6679,7 @@ static const Pinyin pinyin_table[] = { }, { /* 477 */ text : "ru", - bopomofo : "ㄖㄨ", + bopomofo : L"ㄖㄨ", sheng : "r", yun : "u", sheng_id : PINYIN_ID_R, @@ -6693,7 +6693,7 @@ static const Pinyin pinyin_table[] = { }, { /* 478 */ text : "ruan", - bopomofo : "ㄖㄨㄢ", + bopomofo : L"ㄖㄨㄢ", sheng : "r", yun : "uan", sheng_id : PINYIN_ID_R, @@ -6707,7 +6707,7 @@ static const Pinyin pinyin_table[] = { }, { /* 479 */ text : "ruang", - bopomofo : "ㄖㄨㄤ", + bopomofo : L"ㄖㄨㄤ", sheng : "r", yun : "uang", sheng_id : PINYIN_ID_R, @@ -6721,7 +6721,7 @@ static const Pinyin pinyin_table[] = { }, { /* 480 */ text : "rue", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "üe", sheng_id : PINYIN_ID_R, @@ -6735,7 +6735,7 @@ static const Pinyin pinyin_table[] = { }, { /* 481 */ text : "ruei", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "ui", sheng_id : PINYIN_ID_R, @@ -6749,7 +6749,7 @@ static const Pinyin pinyin_table[] = { }, { /* 482 */ text : "ruen", - bopomofo : "", + bopomofo : L"", sheng : "r", yun : "un", sheng_id : PINYIN_ID_R, @@ -6763,7 +6763,7 @@ static const Pinyin pinyin_table[] = { }, { /* 483 */ text : "rui", - bopomofo : "ㄖㄨㄟ", + bopomofo : L"ㄖㄨㄟ", sheng : "r", yun : "ui", sheng_id : PINYIN_ID_R, @@ -6777,7 +6777,7 @@ static const Pinyin pinyin_table[] = { }, { /* 484 */ text : "run", - bopomofo : "ㄖㄨㄣ", + bopomofo : L"ㄖㄨㄣ", sheng : "r", yun : "un", sheng_id : PINYIN_ID_R, @@ -6791,7 +6791,7 @@ static const Pinyin pinyin_table[] = { }, { /* 485 */ text : "ruo", - bopomofo : "ㄖㄨㄛ", + bopomofo : L"ㄖㄨㄛ", sheng : "r", yun : "uo", sheng_id : PINYIN_ID_R, @@ -6805,7 +6805,7 @@ static const Pinyin pinyin_table[] = { }, { /* 486 */ text : "rv", - bopomofo : "ㄖㄩ", + bopomofo : L"ㄖㄩ", sheng : "r", yun : "ü", sheng_id : PINYIN_ID_R, @@ -6819,7 +6819,7 @@ static const Pinyin pinyin_table[] = { }, { /* 487 */ text : "rve", - bopomofo : "ㄖㄩㄝ", + bopomofo : L"ㄖㄩㄝ", sheng : "r", yun : "üe", sheng_id : PINYIN_ID_R, @@ -6833,7 +6833,7 @@ static const Pinyin pinyin_table[] = { }, { /* 488 */ text : "s", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "", sheng_id : PINYIN_ID_S, @@ -6847,7 +6847,7 @@ static const Pinyin pinyin_table[] = { }, { /* 489 */ text : "sa", - bopomofo : "ㄙㄚ", + bopomofo : L"ㄙㄚ", sheng : "s", yun : "a", sheng_id : PINYIN_ID_S, @@ -6861,7 +6861,7 @@ static const Pinyin pinyin_table[] = { }, { /* 490 */ text : "sagn", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "ang", sheng_id : PINYIN_ID_S, @@ -6875,7 +6875,7 @@ static const Pinyin pinyin_table[] = { }, { /* 491 */ text : "sai", - bopomofo : "ㄙㄞ", + bopomofo : L"ㄙㄞ", sheng : "s", yun : "ai", sheng_id : PINYIN_ID_S, @@ -6889,7 +6889,7 @@ static const Pinyin pinyin_table[] = { }, { /* 492 */ text : "samg", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "ang", sheng_id : PINYIN_ID_S, @@ -6903,7 +6903,7 @@ static const Pinyin pinyin_table[] = { }, { /* 493 */ text : "san", - bopomofo : "ㄙㄢ", + bopomofo : L"ㄙㄢ", sheng : "s", yun : "an", sheng_id : PINYIN_ID_S, @@ -6917,7 +6917,7 @@ static const Pinyin pinyin_table[] = { }, { /* 494 */ text : "sang", - bopomofo : "ㄙㄤ", + bopomofo : L"ㄙㄤ", sheng : "s", yun : "ang", sheng_id : PINYIN_ID_S, @@ -6931,7 +6931,7 @@ static const Pinyin pinyin_table[] = { }, { /* 495 */ text : "sao", - bopomofo : "ㄙㄠ", + bopomofo : L"ㄙㄠ", sheng : "s", yun : "ao", sheng_id : PINYIN_ID_S, @@ -6945,7 +6945,7 @@ static const Pinyin pinyin_table[] = { }, { /* 496 */ text : "se", - bopomofo : "ㄙㄜ", + bopomofo : L"ㄙㄜ", sheng : "s", yun : "e", sheng_id : PINYIN_ID_S, @@ -6959,7 +6959,7 @@ static const Pinyin pinyin_table[] = { }, { /* 497 */ text : "segn", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "eng", sheng_id : PINYIN_ID_S, @@ -6973,7 +6973,7 @@ static const Pinyin pinyin_table[] = { }, { /* 498 */ text : "sei", - bopomofo : "ㄙㄟ", + bopomofo : L"ㄙㄟ", sheng : "s", yun : "ei", sheng_id : PINYIN_ID_S, @@ -6987,7 +6987,7 @@ static const Pinyin pinyin_table[] = { }, { /* 499 */ text : "semg", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "eng", sheng_id : PINYIN_ID_S, @@ -7001,7 +7001,7 @@ static const Pinyin pinyin_table[] = { }, { /* 500 */ text : "sen", - bopomofo : "ㄙㄣ", + bopomofo : L"ㄙㄣ", sheng : "s", yun : "en", sheng_id : PINYIN_ID_S, @@ -7015,7 +7015,7 @@ static const Pinyin pinyin_table[] = { }, { /* 501 */ text : "seng", - bopomofo : "ㄙㄥ", + bopomofo : L"ㄙㄥ", sheng : "s", yun : "eng", sheng_id : PINYIN_ID_S, @@ -7029,7 +7029,7 @@ static const Pinyin pinyin_table[] = { }, { /* 502 */ text : "sh", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "", sheng_id : PINYIN_ID_SH, @@ -7043,7 +7043,7 @@ static const Pinyin pinyin_table[] = { }, { /* 503 */ text : "sha", - bopomofo : "ㄕㄚ", + bopomofo : L"ㄕㄚ", sheng : "sh", yun : "a", sheng_id : PINYIN_ID_SH, @@ -7057,7 +7057,7 @@ static const Pinyin pinyin_table[] = { }, { /* 504 */ text : "shagn", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "ang", sheng_id : PINYIN_ID_SH, @@ -7071,7 +7071,7 @@ static const Pinyin pinyin_table[] = { }, { /* 505 */ text : "shai", - bopomofo : "ㄕㄞ", + bopomofo : L"ㄕㄞ", sheng : "sh", yun : "ai", sheng_id : PINYIN_ID_SH, @@ -7085,7 +7085,7 @@ static const Pinyin pinyin_table[] = { }, { /* 506 */ text : "shamg", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "ang", sheng_id : PINYIN_ID_SH, @@ -7099,7 +7099,7 @@ static const Pinyin pinyin_table[] = { }, { /* 507 */ text : "shan", - bopomofo : "ㄕㄢ", + bopomofo : L"ㄕㄢ", sheng : "sh", yun : "an", sheng_id : PINYIN_ID_SH, @@ -7113,7 +7113,7 @@ static const Pinyin pinyin_table[] = { }, { /* 508 */ text : "shang", - bopomofo : "ㄕㄤ", + bopomofo : L"ㄕㄤ", sheng : "sh", yun : "ang", sheng_id : PINYIN_ID_SH, @@ -7127,7 +7127,7 @@ static const Pinyin pinyin_table[] = { }, { /* 509 */ text : "shao", - bopomofo : "ㄕㄠ", + bopomofo : L"ㄕㄠ", sheng : "sh", yun : "ao", sheng_id : PINYIN_ID_SH, @@ -7141,7 +7141,7 @@ static const Pinyin pinyin_table[] = { }, { /* 510 */ text : "she", - bopomofo : "ㄕㄜ", + bopomofo : L"ㄕㄜ", sheng : "sh", yun : "e", sheng_id : PINYIN_ID_SH, @@ -7155,7 +7155,7 @@ static const Pinyin pinyin_table[] = { }, { /* 511 */ text : "shegn", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "eng", sheng_id : PINYIN_ID_SH, @@ -7169,7 +7169,7 @@ static const Pinyin pinyin_table[] = { }, { /* 512 */ text : "shei", - bopomofo : "ㄕㄟ", + bopomofo : L"ㄕㄟ", sheng : "sh", yun : "ei", sheng_id : PINYIN_ID_SH, @@ -7183,7 +7183,7 @@ static const Pinyin pinyin_table[] = { }, { /* 513 */ text : "shemg", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "eng", sheng_id : PINYIN_ID_SH, @@ -7197,7 +7197,7 @@ static const Pinyin pinyin_table[] = { }, { /* 514 */ text : "shen", - bopomofo : "ㄕㄣ", + bopomofo : L"ㄕㄣ", sheng : "sh", yun : "en", sheng_id : PINYIN_ID_SH, @@ -7211,7 +7211,7 @@ static const Pinyin pinyin_table[] = { }, { /* 515 */ text : "sheng", - bopomofo : "ㄕㄥ", + bopomofo : L"ㄕㄥ", sheng : "sh", yun : "eng", sheng_id : PINYIN_ID_SH, @@ -7225,7 +7225,7 @@ static const Pinyin pinyin_table[] = { }, { /* 516 */ text : "shi", - bopomofo : "ㄕ", + bopomofo : L"ㄕ", sheng : "sh", yun : "i", sheng_id : PINYIN_ID_SH, @@ -7239,7 +7239,7 @@ static const Pinyin pinyin_table[] = { }, { /* 517 */ text : "shong", - bopomofo : "ㄕㄨㄥ", + bopomofo : L"ㄕㄨㄥ", sheng : "sh", yun : "ong", sheng_id : PINYIN_ID_SH, @@ -7253,7 +7253,7 @@ static const Pinyin pinyin_table[] = { }, { /* 518 */ text : "shou", - bopomofo : "ㄕㄡ", + bopomofo : L"ㄕㄡ", sheng : "sh", yun : "ou", sheng_id : PINYIN_ID_SH, @@ -7267,7 +7267,7 @@ static const Pinyin pinyin_table[] = { }, { /* 519 */ text : "shu", - bopomofo : "ㄕㄨ", + bopomofo : L"ㄕㄨ", sheng : "sh", yun : "u", sheng_id : PINYIN_ID_SH, @@ -7281,7 +7281,7 @@ static const Pinyin pinyin_table[] = { }, { /* 520 */ text : "shua", - bopomofo : "ㄕㄨㄚ", + bopomofo : L"ㄕㄨㄚ", sheng : "sh", yun : "ua", sheng_id : PINYIN_ID_SH, @@ -7295,7 +7295,7 @@ static const Pinyin pinyin_table[] = { }, { /* 521 */ text : "shuagn", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "uang", sheng_id : PINYIN_ID_SH, @@ -7309,7 +7309,7 @@ static const Pinyin pinyin_table[] = { }, { /* 522 */ text : "shuai", - bopomofo : "ㄕㄨㄞ", + bopomofo : L"ㄕㄨㄞ", sheng : "sh", yun : "uai", sheng_id : PINYIN_ID_SH, @@ -7323,7 +7323,7 @@ static const Pinyin pinyin_table[] = { }, { /* 523 */ text : "shuamg", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "uang", sheng_id : PINYIN_ID_SH, @@ -7337,7 +7337,7 @@ static const Pinyin pinyin_table[] = { }, { /* 524 */ text : "shuan", - bopomofo : "ㄕㄨㄢ", + bopomofo : L"ㄕㄨㄢ", sheng : "sh", yun : "uan", sheng_id : PINYIN_ID_SH, @@ -7351,7 +7351,7 @@ static const Pinyin pinyin_table[] = { }, { /* 525 */ text : "shuang", - bopomofo : "ㄕㄨㄤ", + bopomofo : L"ㄕㄨㄤ", sheng : "sh", yun : "uang", sheng_id : PINYIN_ID_SH, @@ -7365,7 +7365,7 @@ static const Pinyin pinyin_table[] = { }, { /* 526 */ text : "shuei", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "ui", sheng_id : PINYIN_ID_SH, @@ -7379,7 +7379,7 @@ static const Pinyin pinyin_table[] = { }, { /* 527 */ text : "shuen", - bopomofo : "", + bopomofo : L"", sheng : "sh", yun : "un", sheng_id : PINYIN_ID_SH, @@ -7393,7 +7393,7 @@ static const Pinyin pinyin_table[] = { }, { /* 528 */ text : "shui", - bopomofo : "ㄕㄨㄟ", + bopomofo : L"ㄕㄨㄟ", sheng : "sh", yun : "ui", sheng_id : PINYIN_ID_SH, @@ -7407,7 +7407,7 @@ static const Pinyin pinyin_table[] = { }, { /* 529 */ text : "shun", - bopomofo : "ㄕㄨㄣ", + bopomofo : L"ㄕㄨㄣ", sheng : "sh", yun : "un", sheng_id : PINYIN_ID_SH, @@ -7421,7 +7421,7 @@ static const Pinyin pinyin_table[] = { }, { /* 530 */ text : "shuo", - bopomofo : "ㄕㄨㄛ", + bopomofo : L"ㄕㄨㄛ", sheng : "sh", yun : "uo", sheng_id : PINYIN_ID_SH, @@ -7435,7 +7435,7 @@ static const Pinyin pinyin_table[] = { }, { /* 531 */ text : "si", - bopomofo : "ㄙ", + bopomofo : L"ㄙ", sheng : "s", yun : "i", sheng_id : PINYIN_ID_S, @@ -7449,7 +7449,7 @@ static const Pinyin pinyin_table[] = { }, { /* 532 */ text : "sogn", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "ong", sheng_id : PINYIN_ID_S, @@ -7463,7 +7463,7 @@ static const Pinyin pinyin_table[] = { }, { /* 533 */ text : "somg", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "ong", sheng_id : PINYIN_ID_S, @@ -7477,7 +7477,7 @@ static const Pinyin pinyin_table[] = { }, { /* 534 */ text : "song", - bopomofo : "ㄙㄨㄥ", + bopomofo : L"ㄙㄨㄥ", sheng : "s", yun : "ong", sheng_id : PINYIN_ID_S, @@ -7491,7 +7491,7 @@ static const Pinyin pinyin_table[] = { }, { /* 535 */ text : "sou", - bopomofo : "ㄙㄡ", + bopomofo : L"ㄙㄡ", sheng : "s", yun : "ou", sheng_id : PINYIN_ID_S, @@ -7505,7 +7505,7 @@ static const Pinyin pinyin_table[] = { }, { /* 536 */ text : "su", - bopomofo : "ㄙㄨ", + bopomofo : L"ㄙㄨ", sheng : "s", yun : "u", sheng_id : PINYIN_ID_S, @@ -7519,7 +7519,7 @@ static const Pinyin pinyin_table[] = { }, { /* 537 */ text : "sua", - bopomofo : "ㄙㄨㄚ", + bopomofo : L"ㄙㄨㄚ", sheng : "s", yun : "ua", sheng_id : PINYIN_ID_S, @@ -7533,7 +7533,7 @@ static const Pinyin pinyin_table[] = { }, { /* 538 */ text : "suai", - bopomofo : "ㄙㄨㄞ", + bopomofo : L"ㄙㄨㄞ", sheng : "s", yun : "uai", sheng_id : PINYIN_ID_S, @@ -7547,7 +7547,7 @@ static const Pinyin pinyin_table[] = { }, { /* 539 */ text : "suan", - bopomofo : "ㄙㄨㄢ", + bopomofo : L"ㄙㄨㄢ", sheng : "s", yun : "uan", sheng_id : PINYIN_ID_S, @@ -7561,7 +7561,7 @@ static const Pinyin pinyin_table[] = { }, { /* 540 */ text : "suang", - bopomofo : "ㄙㄨㄤ", + bopomofo : L"ㄙㄨㄤ", sheng : "s", yun : "uang", sheng_id : PINYIN_ID_S, @@ -7575,7 +7575,7 @@ static const Pinyin pinyin_table[] = { }, { /* 541 */ text : "suei", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "ui", sheng_id : PINYIN_ID_S, @@ -7589,7 +7589,7 @@ static const Pinyin pinyin_table[] = { }, { /* 542 */ text : "suen", - bopomofo : "", + bopomofo : L"", sheng : "s", yun : "un", sheng_id : PINYIN_ID_S, @@ -7603,7 +7603,7 @@ static const Pinyin pinyin_table[] = { }, { /* 543 */ text : "sui", - bopomofo : "ㄙㄨㄟ", + bopomofo : L"ㄙㄨㄟ", sheng : "s", yun : "ui", sheng_id : PINYIN_ID_S, @@ -7617,7 +7617,7 @@ static const Pinyin pinyin_table[] = { }, { /* 544 */ text : "sun", - bopomofo : "ㄙㄨㄣ", + bopomofo : L"ㄙㄨㄣ", sheng : "s", yun : "un", sheng_id : PINYIN_ID_S, @@ -7631,7 +7631,7 @@ static const Pinyin pinyin_table[] = { }, { /* 545 */ text : "suo", - bopomofo : "ㄙㄨㄛ", + bopomofo : L"ㄙㄨㄛ", sheng : "s", yun : "uo", sheng_id : PINYIN_ID_S, @@ -7645,7 +7645,7 @@ static const Pinyin pinyin_table[] = { }, { /* 546 */ text : "t", - bopomofo : "ㄊ", + bopomofo : L"ㄊ", sheng : "t", yun : "", sheng_id : PINYIN_ID_T, @@ -7659,7 +7659,7 @@ static const Pinyin pinyin_table[] = { }, { /* 547 */ text : "ta", - bopomofo : "ㄊㄚ", + bopomofo : L"ㄊㄚ", sheng : "t", yun : "a", sheng_id : PINYIN_ID_T, @@ -7673,7 +7673,7 @@ static const Pinyin pinyin_table[] = { }, { /* 548 */ text : "tagn", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "ang", sheng_id : PINYIN_ID_T, @@ -7687,7 +7687,7 @@ static const Pinyin pinyin_table[] = { }, { /* 549 */ text : "tai", - bopomofo : "ㄊㄞ", + bopomofo : L"ㄊㄞ", sheng : "t", yun : "ai", sheng_id : PINYIN_ID_T, @@ -7701,7 +7701,7 @@ static const Pinyin pinyin_table[] = { }, { /* 550 */ text : "tamg", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "ang", sheng_id : PINYIN_ID_T, @@ -7715,7 +7715,7 @@ static const Pinyin pinyin_table[] = { }, { /* 551 */ text : "tan", - bopomofo : "ㄊㄢ", + bopomofo : L"ㄊㄢ", sheng : "t", yun : "an", sheng_id : PINYIN_ID_T, @@ -7729,7 +7729,7 @@ static const Pinyin pinyin_table[] = { }, { /* 552 */ text : "tang", - bopomofo : "ㄊㄤ", + bopomofo : L"ㄊㄤ", sheng : "t", yun : "ang", sheng_id : PINYIN_ID_T, @@ -7743,7 +7743,7 @@ static const Pinyin pinyin_table[] = { }, { /* 553 */ text : "tao", - bopomofo : "ㄊㄠ", + bopomofo : L"ㄊㄠ", sheng : "t", yun : "ao", sheng_id : PINYIN_ID_T, @@ -7757,7 +7757,7 @@ static const Pinyin pinyin_table[] = { }, { /* 554 */ text : "te", - bopomofo : "ㄊㄜ", + bopomofo : L"ㄊㄜ", sheng : "t", yun : "e", sheng_id : PINYIN_ID_T, @@ -7771,7 +7771,7 @@ static const Pinyin pinyin_table[] = { }, { /* 555 */ text : "tegn", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "eng", sheng_id : PINYIN_ID_T, @@ -7785,7 +7785,7 @@ static const Pinyin pinyin_table[] = { }, { /* 556 */ text : "temg", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "eng", sheng_id : PINYIN_ID_T, @@ -7799,7 +7799,7 @@ static const Pinyin pinyin_table[] = { }, { /* 557 */ text : "ten", - bopomofo : "ㄊㄣ", + bopomofo : L"ㄊㄣ", sheng : "t", yun : "en", sheng_id : PINYIN_ID_T, @@ -7813,7 +7813,7 @@ static const Pinyin pinyin_table[] = { }, { /* 558 */ text : "teng", - bopomofo : "ㄊㄥ", + bopomofo : L"ㄊㄥ", sheng : "t", yun : "eng", sheng_id : PINYIN_ID_T, @@ -7827,7 +7827,7 @@ static const Pinyin pinyin_table[] = { }, { /* 559 */ text : "ti", - bopomofo : "ㄊㄧ", + bopomofo : L"ㄊㄧ", sheng : "t", yun : "i", sheng_id : PINYIN_ID_T, @@ -7841,7 +7841,7 @@ static const Pinyin pinyin_table[] = { }, { /* 560 */ text : "tian", - bopomofo : "ㄊㄧㄢ", + bopomofo : L"ㄊㄧㄢ", sheng : "t", yun : "ian", sheng_id : PINYIN_ID_T, @@ -7855,7 +7855,7 @@ static const Pinyin pinyin_table[] = { }, { /* 561 */ text : "tiang", - bopomofo : "ㄊㄧㄤ", + bopomofo : L"ㄊㄧㄤ", sheng : "t", yun : "iang", sheng_id : PINYIN_ID_T, @@ -7869,7 +7869,7 @@ static const Pinyin pinyin_table[] = { }, { /* 562 */ text : "tiao", - bopomofo : "ㄊㄧㄠ", + bopomofo : L"ㄊㄧㄠ", sheng : "t", yun : "iao", sheng_id : PINYIN_ID_T, @@ -7883,7 +7883,7 @@ static const Pinyin pinyin_table[] = { }, { /* 563 */ text : "tie", - bopomofo : "ㄊㄧㄝ", + bopomofo : L"ㄊㄧㄝ", sheng : "t", yun : "ie", sheng_id : PINYIN_ID_T, @@ -7897,7 +7897,7 @@ static const Pinyin pinyin_table[] = { }, { /* 564 */ text : "tign", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "ing", sheng_id : PINYIN_ID_T, @@ -7911,7 +7911,7 @@ static const Pinyin pinyin_table[] = { }, { /* 565 */ text : "timg", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "ing", sheng_id : PINYIN_ID_T, @@ -7925,7 +7925,7 @@ static const Pinyin pinyin_table[] = { }, { /* 566 */ text : "tin", - bopomofo : "ㄊㄧㄣ", + bopomofo : L"ㄊㄧㄣ", sheng : "t", yun : "in", sheng_id : PINYIN_ID_T, @@ -7939,7 +7939,7 @@ static const Pinyin pinyin_table[] = { }, { /* 567 */ text : "ting", - bopomofo : "ㄊㄧㄥ", + bopomofo : L"ㄊㄧㄥ", sheng : "t", yun : "ing", sheng_id : PINYIN_ID_T, @@ -7953,7 +7953,7 @@ static const Pinyin pinyin_table[] = { }, { /* 568 */ text : "togn", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "ong", sheng_id : PINYIN_ID_T, @@ -7967,7 +7967,7 @@ static const Pinyin pinyin_table[] = { }, { /* 569 */ text : "tomg", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "ong", sheng_id : PINYIN_ID_T, @@ -7981,7 +7981,7 @@ static const Pinyin pinyin_table[] = { }, { /* 570 */ text : "tong", - bopomofo : "ㄊㄨㄥ", + bopomofo : L"ㄊㄨㄥ", sheng : "t", yun : "ong", sheng_id : PINYIN_ID_T, @@ -7995,7 +7995,7 @@ static const Pinyin pinyin_table[] = { }, { /* 571 */ text : "tou", - bopomofo : "ㄊㄡ", + bopomofo : L"ㄊㄡ", sheng : "t", yun : "ou", sheng_id : PINYIN_ID_T, @@ -8009,7 +8009,7 @@ static const Pinyin pinyin_table[] = { }, { /* 572 */ text : "tu", - bopomofo : "ㄊㄨ", + bopomofo : L"ㄊㄨ", sheng : "t", yun : "u", sheng_id : PINYIN_ID_T, @@ -8023,7 +8023,7 @@ static const Pinyin pinyin_table[] = { }, { /* 573 */ text : "tuan", - bopomofo : "ㄊㄨㄢ", + bopomofo : L"ㄊㄨㄢ", sheng : "t", yun : "uan", sheng_id : PINYIN_ID_T, @@ -8037,7 +8037,7 @@ static const Pinyin pinyin_table[] = { }, { /* 574 */ text : "tuang", - bopomofo : "ㄊㄨㄤ", + bopomofo : L"ㄊㄨㄤ", sheng : "t", yun : "uang", sheng_id : PINYIN_ID_T, @@ -8051,7 +8051,7 @@ static const Pinyin pinyin_table[] = { }, { /* 575 */ text : "tuei", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "ui", sheng_id : PINYIN_ID_T, @@ -8065,7 +8065,7 @@ static const Pinyin pinyin_table[] = { }, { /* 576 */ text : "tuen", - bopomofo : "", + bopomofo : L"", sheng : "t", yun : "un", sheng_id : PINYIN_ID_T, @@ -8079,7 +8079,7 @@ static const Pinyin pinyin_table[] = { }, { /* 577 */ text : "tui", - bopomofo : "ㄊㄨㄟ", + bopomofo : L"ㄊㄨㄟ", sheng : "t", yun : "ui", sheng_id : PINYIN_ID_T, @@ -8093,7 +8093,7 @@ static const Pinyin pinyin_table[] = { }, { /* 578 */ text : "tun", - bopomofo : "ㄊㄨㄣ", + bopomofo : L"ㄊㄨㄣ", sheng : "t", yun : "un", sheng_id : PINYIN_ID_T, @@ -8107,7 +8107,7 @@ static const Pinyin pinyin_table[] = { }, { /* 579 */ text : "tuo", - bopomofo : "ㄊㄨㄛ", + bopomofo : L"ㄊㄨㄛ", sheng : "t", yun : "uo", sheng_id : PINYIN_ID_T, @@ -8121,7 +8121,7 @@ static const Pinyin pinyin_table[] = { }, { /* 580 */ text : "w", - bopomofo : "", + bopomofo : L"", sheng : "w", yun : "", sheng_id : PINYIN_ID_W, @@ -8135,7 +8135,7 @@ static const Pinyin pinyin_table[] = { }, { /* 581 */ text : "wa", - bopomofo : "ㄨㄚ", + bopomofo : L"ㄨㄚ", sheng : "w", yun : "a", sheng_id : PINYIN_ID_W, @@ -8149,7 +8149,7 @@ static const Pinyin pinyin_table[] = { }, { /* 582 */ text : "wagn", - bopomofo : "", + bopomofo : L"", sheng : "w", yun : "ang", sheng_id : PINYIN_ID_W, @@ -8163,7 +8163,7 @@ static const Pinyin pinyin_table[] = { }, { /* 583 */ text : "wai", - bopomofo : "ㄨㄞ", + bopomofo : L"ㄨㄞ", sheng : "w", yun : "ai", sheng_id : PINYIN_ID_W, @@ -8177,7 +8177,7 @@ static const Pinyin pinyin_table[] = { }, { /* 584 */ text : "wamg", - bopomofo : "", + bopomofo : L"", sheng : "w", yun : "ang", sheng_id : PINYIN_ID_W, @@ -8191,7 +8191,7 @@ static const Pinyin pinyin_table[] = { }, { /* 585 */ text : "wan", - bopomofo : "ㄨㄢ", + bopomofo : L"ㄨㄢ", sheng : "w", yun : "an", sheng_id : PINYIN_ID_W, @@ -8205,7 +8205,7 @@ static const Pinyin pinyin_table[] = { }, { /* 586 */ text : "wang", - bopomofo : "ㄨㄤ", + bopomofo : L"ㄨㄤ", sheng : "w", yun : "ang", sheng_id : PINYIN_ID_W, @@ -8219,7 +8219,7 @@ static const Pinyin pinyin_table[] = { }, { /* 587 */ text : "wegn", - bopomofo : "", + bopomofo : L"", sheng : "w", yun : "eng", sheng_id : PINYIN_ID_W, @@ -8233,7 +8233,7 @@ static const Pinyin pinyin_table[] = { }, { /* 588 */ text : "wei", - bopomofo : "ㄨㄟ", + bopomofo : L"ㄨㄟ", sheng : "w", yun : "ei", sheng_id : PINYIN_ID_W, @@ -8247,7 +8247,7 @@ static const Pinyin pinyin_table[] = { }, { /* 589 */ text : "wemg", - bopomofo : "", + bopomofo : L"", sheng : "w", yun : "eng", sheng_id : PINYIN_ID_W, @@ -8261,7 +8261,7 @@ static const Pinyin pinyin_table[] = { }, { /* 590 */ text : "wen", - bopomofo : "ㄨㄣ", + bopomofo : L"ㄨㄣ", sheng : "w", yun : "en", sheng_id : PINYIN_ID_W, @@ -8275,7 +8275,7 @@ static const Pinyin pinyin_table[] = { }, { /* 591 */ text : "weng", - bopomofo : "ㄨㄥ", + bopomofo : L"ㄨㄥ", sheng : "w", yun : "eng", sheng_id : PINYIN_ID_W, @@ -8289,7 +8289,7 @@ static const Pinyin pinyin_table[] = { }, { /* 592 */ text : "wo", - bopomofo : "ㄨㄛ", + bopomofo : L"ㄨㄛ", sheng : "w", yun : "o", sheng_id : PINYIN_ID_W, @@ -8303,7 +8303,7 @@ static const Pinyin pinyin_table[] = { }, { /* 593 */ text : "wu", - bopomofo : "ㄨ", + bopomofo : L"ㄨ", sheng : "w", yun : "u", sheng_id : PINYIN_ID_W, @@ -8317,7 +8317,7 @@ static const Pinyin pinyin_table[] = { }, { /* 594 */ text : "x", - bopomofo : "ㄒ", + bopomofo : L"ㄒ", sheng : "x", yun : "", sheng_id : PINYIN_ID_X, @@ -8331,7 +8331,7 @@ static const Pinyin pinyin_table[] = { }, { /* 595 */ text : "xi", - bopomofo : "ㄒㄧ", + bopomofo : L"ㄒㄧ", sheng : "x", yun : "i", sheng_id : PINYIN_ID_X, @@ -8345,7 +8345,7 @@ static const Pinyin pinyin_table[] = { }, { /* 596 */ text : "xia", - bopomofo : "ㄒㄧㄚ", + bopomofo : L"ㄒㄧㄚ", sheng : "x", yun : "ia", sheng_id : PINYIN_ID_X, @@ -8359,7 +8359,7 @@ static const Pinyin pinyin_table[] = { }, { /* 597 */ text : "xiagn", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "iang", sheng_id : PINYIN_ID_X, @@ -8373,7 +8373,7 @@ static const Pinyin pinyin_table[] = { }, { /* 598 */ text : "xiamg", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "iang", sheng_id : PINYIN_ID_X, @@ -8387,7 +8387,7 @@ static const Pinyin pinyin_table[] = { }, { /* 599 */ text : "xian", - bopomofo : "ㄒㄧㄢ", + bopomofo : L"ㄒㄧㄢ", sheng : "x", yun : "ian", sheng_id : PINYIN_ID_X, @@ -8401,7 +8401,7 @@ static const Pinyin pinyin_table[] = { }, { /* 600 */ text : "xiang", - bopomofo : "ㄒㄧㄤ", + bopomofo : L"ㄒㄧㄤ", sheng : "x", yun : "iang", sheng_id : PINYIN_ID_X, @@ -8415,7 +8415,7 @@ static const Pinyin pinyin_table[] = { }, { /* 601 */ text : "xiao", - bopomofo : "ㄒㄧㄠ", + bopomofo : L"ㄒㄧㄠ", sheng : "x", yun : "iao", sheng_id : PINYIN_ID_X, @@ -8429,7 +8429,7 @@ static const Pinyin pinyin_table[] = { }, { /* 602 */ text : "xie", - bopomofo : "ㄒㄧㄝ", + bopomofo : L"ㄒㄧㄝ", sheng : "x", yun : "ie", sheng_id : PINYIN_ID_X, @@ -8443,7 +8443,7 @@ static const Pinyin pinyin_table[] = { }, { /* 603 */ text : "xign", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "ing", sheng_id : PINYIN_ID_X, @@ -8457,7 +8457,7 @@ static const Pinyin pinyin_table[] = { }, { /* 604 */ text : "ximg", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "ing", sheng_id : PINYIN_ID_X, @@ -8471,7 +8471,7 @@ static const Pinyin pinyin_table[] = { }, { /* 605 */ text : "xin", - bopomofo : "ㄒㄧㄣ", + bopomofo : L"ㄒㄧㄣ", sheng : "x", yun : "in", sheng_id : PINYIN_ID_X, @@ -8485,7 +8485,7 @@ static const Pinyin pinyin_table[] = { }, { /* 606 */ text : "xing", - bopomofo : "ㄒㄧㄥ", + bopomofo : L"ㄒㄧㄥ", sheng : "x", yun : "ing", sheng_id : PINYIN_ID_X, @@ -8499,7 +8499,7 @@ static const Pinyin pinyin_table[] = { }, { /* 607 */ text : "xiogn", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "iong", sheng_id : PINYIN_ID_X, @@ -8513,7 +8513,7 @@ static const Pinyin pinyin_table[] = { }, { /* 608 */ text : "xiomg", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "iong", sheng_id : PINYIN_ID_X, @@ -8527,7 +8527,7 @@ static const Pinyin pinyin_table[] = { }, { /* 609 */ text : "xiong", - bopomofo : "ㄒㄩㄥ", + bopomofo : L"ㄒㄩㄥ", sheng : "x", yun : "iong", sheng_id : PINYIN_ID_X, @@ -8541,7 +8541,7 @@ static const Pinyin pinyin_table[] = { }, { /* 610 */ text : "xiou", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "iu", sheng_id : PINYIN_ID_X, @@ -8555,7 +8555,7 @@ static const Pinyin pinyin_table[] = { }, { /* 611 */ text : "xiu", - bopomofo : "ㄒㄧㄡ", + bopomofo : L"ㄒㄧㄡ", sheng : "x", yun : "iu", sheng_id : PINYIN_ID_X, @@ -8569,7 +8569,7 @@ static const Pinyin pinyin_table[] = { }, { /* 612 */ text : "xu", - bopomofo : "ㄒㄩ", + bopomofo : L"ㄒㄩ", sheng : "x", yun : "u", sheng_id : PINYIN_ID_X, @@ -8583,7 +8583,7 @@ static const Pinyin pinyin_table[] = { }, { /* 613 */ text : "xuan", - bopomofo : "ㄒㄩㄢ", + bopomofo : L"ㄒㄩㄢ", sheng : "x", yun : "uan", sheng_id : PINYIN_ID_X, @@ -8597,7 +8597,7 @@ static const Pinyin pinyin_table[] = { }, { /* 614 */ text : "xuang", - bopomofo : "ㄒㄩㄤ", + bopomofo : L"ㄒㄩㄤ", sheng : "x", yun : "uang", sheng_id : PINYIN_ID_X, @@ -8611,7 +8611,7 @@ static const Pinyin pinyin_table[] = { }, { /* 615 */ text : "xue", - bopomofo : "ㄒㄩㄝ", + bopomofo : L"ㄒㄩㄝ", sheng : "x", yun : "ue", sheng_id : PINYIN_ID_X, @@ -8625,7 +8625,7 @@ static const Pinyin pinyin_table[] = { }, { /* 616 */ text : "xuen", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8639,7 +8639,7 @@ static const Pinyin pinyin_table[] = { }, { /* 617 */ text : "xun", - bopomofo : "ㄒㄩㄣ", + bopomofo : L"ㄒㄩㄣ", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8653,7 +8653,7 @@ static const Pinyin pinyin_table[] = { }, { /* 618 */ text : "xv", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "u", sheng_id : PINYIN_ID_X, @@ -8667,7 +8667,7 @@ static const Pinyin pinyin_table[] = { }, { /* 619 */ text : "xvan", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "uan", sheng_id : PINYIN_ID_X, @@ -8681,7 +8681,7 @@ static const Pinyin pinyin_table[] = { }, { /* 620 */ text : "xvang", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "uang", sheng_id : PINYIN_ID_X, @@ -8695,7 +8695,7 @@ static const Pinyin pinyin_table[] = { }, { /* 621 */ text : "xve", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "ue", sheng_id : PINYIN_ID_X, @@ -8709,7 +8709,7 @@ static const Pinyin pinyin_table[] = { }, { /* 622 */ text : "xven", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8723,7 +8723,7 @@ static const Pinyin pinyin_table[] = { }, { /* 623 */ text : "xvn", - bopomofo : "", + bopomofo : L"", sheng : "x", yun : "un", sheng_id : PINYIN_ID_X, @@ -8737,7 +8737,7 @@ static const Pinyin pinyin_table[] = { }, { /* 624 */ text : "y", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "", sheng_id : PINYIN_ID_Y, @@ -8751,7 +8751,7 @@ static const Pinyin pinyin_table[] = { }, { /* 625 */ text : "ya", - bopomofo : "ㄧㄚ", + bopomofo : L"ㄧㄚ", sheng : "y", yun : "a", sheng_id : PINYIN_ID_Y, @@ -8765,7 +8765,7 @@ static const Pinyin pinyin_table[] = { }, { /* 626 */ text : "yagn", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "ang", sheng_id : PINYIN_ID_Y, @@ -8779,7 +8779,7 @@ static const Pinyin pinyin_table[] = { }, { /* 627 */ text : "yamg", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "ang", sheng_id : PINYIN_ID_Y, @@ -8793,7 +8793,7 @@ static const Pinyin pinyin_table[] = { }, { /* 628 */ text : "yan", - bopomofo : "ㄧㄢ", + bopomofo : L"ㄧㄢ", sheng : "y", yun : "an", sheng_id : PINYIN_ID_Y, @@ -8807,7 +8807,7 @@ static const Pinyin pinyin_table[] = { }, { /* 629 */ text : "yang", - bopomofo : "ㄧㄤ", + bopomofo : L"ㄧㄤ", sheng : "y", yun : "ang", sheng_id : PINYIN_ID_Y, @@ -8821,7 +8821,7 @@ static const Pinyin pinyin_table[] = { }, { /* 630 */ text : "yao", - bopomofo : "ㄧㄠ", + bopomofo : L"ㄧㄠ", sheng : "y", yun : "ao", sheng_id : PINYIN_ID_Y, @@ -8835,7 +8835,7 @@ static const Pinyin pinyin_table[] = { }, { /* 631 */ text : "ye", - bopomofo : "ㄧㄝ", + bopomofo : L"ㄧㄝ", sheng : "y", yun : "e", sheng_id : PINYIN_ID_Y, @@ -8849,7 +8849,7 @@ static const Pinyin pinyin_table[] = { }, { /* 632 */ text : "yi", - bopomofo : "ㄧ", + bopomofo : L"ㄧ", sheng : "y", yun : "i", sheng_id : PINYIN_ID_Y, @@ -8863,7 +8863,7 @@ static const Pinyin pinyin_table[] = { }, { /* 633 */ text : "yign", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "ing", sheng_id : PINYIN_ID_Y, @@ -8877,7 +8877,7 @@ static const Pinyin pinyin_table[] = { }, { /* 634 */ text : "yimg", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "ing", sheng_id : PINYIN_ID_Y, @@ -8891,7 +8891,7 @@ static const Pinyin pinyin_table[] = { }, { /* 635 */ text : "yin", - bopomofo : "ㄧㄣ", + bopomofo : L"ㄧㄣ", sheng : "y", yun : "in", sheng_id : PINYIN_ID_Y, @@ -8905,7 +8905,7 @@ static const Pinyin pinyin_table[] = { }, { /* 636 */ text : "ying", - bopomofo : "ㄧㄥ", + bopomofo : L"ㄧㄥ", sheng : "y", yun : "ing", sheng_id : PINYIN_ID_Y, @@ -8919,7 +8919,7 @@ static const Pinyin pinyin_table[] = { }, { /* 637 */ text : "yo", - bopomofo : "ㄧㄛ", + bopomofo : L"ㄧㄛ", sheng : "y", yun : "o", sheng_id : PINYIN_ID_Y, @@ -8933,7 +8933,7 @@ static const Pinyin pinyin_table[] = { }, { /* 638 */ text : "yogn", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "ong", sheng_id : PINYIN_ID_Y, @@ -8947,7 +8947,7 @@ static const Pinyin pinyin_table[] = { }, { /* 639 */ text : "yomg", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "ong", sheng_id : PINYIN_ID_Y, @@ -8961,7 +8961,7 @@ static const Pinyin pinyin_table[] = { }, { /* 640 */ text : "yong", - bopomofo : "ㄩㄥ", + bopomofo : L"ㄩㄥ", sheng : "y", yun : "ong", sheng_id : PINYIN_ID_Y, @@ -8975,7 +8975,7 @@ static const Pinyin pinyin_table[] = { }, { /* 641 */ text : "you", - bopomofo : "ㄧㄡ", + bopomofo : L"ㄧㄡ", sheng : "y", yun : "ou", sheng_id : PINYIN_ID_Y, @@ -8989,7 +8989,7 @@ static const Pinyin pinyin_table[] = { }, { /* 642 */ text : "yu", - bopomofo : "ㄩ", + bopomofo : L"ㄩ", sheng : "y", yun : "u", sheng_id : PINYIN_ID_Y, @@ -9003,7 +9003,7 @@ static const Pinyin pinyin_table[] = { }, { /* 643 */ text : "yuan", - bopomofo : "ㄩㄢ", + bopomofo : L"ㄩㄢ", sheng : "y", yun : "uan", sheng_id : PINYIN_ID_Y, @@ -9017,7 +9017,7 @@ static const Pinyin pinyin_table[] = { }, { /* 644 */ text : "yuang", - bopomofo : "ㄧㄩㄤ", + bopomofo : L"ㄧㄩㄤ", sheng : "y", yun : "uang", sheng_id : PINYIN_ID_Y, @@ -9031,7 +9031,7 @@ static const Pinyin pinyin_table[] = { }, { /* 645 */ text : "yue", - bopomofo : "ㄩㄝ", + bopomofo : L"ㄩㄝ", sheng : "y", yun : "ue", sheng_id : PINYIN_ID_Y, @@ -9045,7 +9045,7 @@ static const Pinyin pinyin_table[] = { }, { /* 646 */ text : "yuen", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -9059,7 +9059,7 @@ static const Pinyin pinyin_table[] = { }, { /* 647 */ text : "yun", - bopomofo : "ㄩㄣ", + bopomofo : L"ㄩㄣ", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -9073,7 +9073,7 @@ static const Pinyin pinyin_table[] = { }, { /* 648 */ text : "yv", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "u", sheng_id : PINYIN_ID_Y, @@ -9087,7 +9087,7 @@ static const Pinyin pinyin_table[] = { }, { /* 649 */ text : "yvan", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "uan", sheng_id : PINYIN_ID_Y, @@ -9101,7 +9101,7 @@ static const Pinyin pinyin_table[] = { }, { /* 650 */ text : "yvang", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "uang", sheng_id : PINYIN_ID_Y, @@ -9115,7 +9115,7 @@ static const Pinyin pinyin_table[] = { }, { /* 651 */ text : "yve", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "ue", sheng_id : PINYIN_ID_Y, @@ -9129,7 +9129,7 @@ static const Pinyin pinyin_table[] = { }, { /* 652 */ text : "yven", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -9143,7 +9143,7 @@ static const Pinyin pinyin_table[] = { }, { /* 653 */ text : "yvn", - bopomofo : "", + bopomofo : L"", sheng : "y", yun : "un", sheng_id : PINYIN_ID_Y, @@ -9157,7 +9157,7 @@ static const Pinyin pinyin_table[] = { }, { /* 654 */ text : "z", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "", sheng_id : PINYIN_ID_Z, @@ -9171,7 +9171,7 @@ static const Pinyin pinyin_table[] = { }, { /* 655 */ text : "za", - bopomofo : "ㄗㄚ", + bopomofo : L"ㄗㄚ", sheng : "z", yun : "a", sheng_id : PINYIN_ID_Z, @@ -9185,7 +9185,7 @@ static const Pinyin pinyin_table[] = { }, { /* 656 */ text : "zagn", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "ang", sheng_id : PINYIN_ID_Z, @@ -9199,7 +9199,7 @@ static const Pinyin pinyin_table[] = { }, { /* 657 */ text : "zai", - bopomofo : "ㄗㄞ", + bopomofo : L"ㄗㄞ", sheng : "z", yun : "ai", sheng_id : PINYIN_ID_Z, @@ -9213,7 +9213,7 @@ static const Pinyin pinyin_table[] = { }, { /* 658 */ text : "zamg", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "ang", sheng_id : PINYIN_ID_Z, @@ -9227,7 +9227,7 @@ static const Pinyin pinyin_table[] = { }, { /* 659 */ text : "zan", - bopomofo : "ㄗㄢ", + bopomofo : L"ㄗㄢ", sheng : "z", yun : "an", sheng_id : PINYIN_ID_Z, @@ -9241,7 +9241,7 @@ static const Pinyin pinyin_table[] = { }, { /* 660 */ text : "zang", - bopomofo : "ㄗㄤ", + bopomofo : L"ㄗㄤ", sheng : "z", yun : "ang", sheng_id : PINYIN_ID_Z, @@ -9255,7 +9255,7 @@ static const Pinyin pinyin_table[] = { }, { /* 661 */ text : "zao", - bopomofo : "ㄗㄠ", + bopomofo : L"ㄗㄠ", sheng : "z", yun : "ao", sheng_id : PINYIN_ID_Z, @@ -9269,7 +9269,7 @@ static const Pinyin pinyin_table[] = { }, { /* 662 */ text : "ze", - bopomofo : "ㄗㄜ", + bopomofo : L"ㄗㄜ", sheng : "z", yun : "e", sheng_id : PINYIN_ID_Z, @@ -9283,7 +9283,7 @@ static const Pinyin pinyin_table[] = { }, { /* 663 */ text : "zegn", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "eng", sheng_id : PINYIN_ID_Z, @@ -9297,7 +9297,7 @@ static const Pinyin pinyin_table[] = { }, { /* 664 */ text : "zei", - bopomofo : "ㄗㄟ", + bopomofo : L"ㄗㄟ", sheng : "z", yun : "ei", sheng_id : PINYIN_ID_Z, @@ -9311,7 +9311,7 @@ static const Pinyin pinyin_table[] = { }, { /* 665 */ text : "zemg", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "eng", sheng_id : PINYIN_ID_Z, @@ -9325,7 +9325,7 @@ static const Pinyin pinyin_table[] = { }, { /* 666 */ text : "zen", - bopomofo : "ㄗㄣ", + bopomofo : L"ㄗㄣ", sheng : "z", yun : "en", sheng_id : PINYIN_ID_Z, @@ -9339,7 +9339,7 @@ static const Pinyin pinyin_table[] = { }, { /* 667 */ text : "zeng", - bopomofo : "ㄗㄥ", + bopomofo : L"ㄗㄥ", sheng : "z", yun : "eng", sheng_id : PINYIN_ID_Z, @@ -9353,7 +9353,7 @@ static const Pinyin pinyin_table[] = { }, { /* 668 */ text : "zh", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "", sheng_id : PINYIN_ID_ZH, @@ -9367,7 +9367,7 @@ static const Pinyin pinyin_table[] = { }, { /* 669 */ text : "zha", - bopomofo : "ㄓㄚ", + bopomofo : L"ㄓㄚ", sheng : "zh", yun : "a", sheng_id : PINYIN_ID_ZH, @@ -9381,7 +9381,7 @@ static const Pinyin pinyin_table[] = { }, { /* 670 */ text : "zhagn", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "ang", sheng_id : PINYIN_ID_ZH, @@ -9395,7 +9395,7 @@ static const Pinyin pinyin_table[] = { }, { /* 671 */ text : "zhai", - bopomofo : "ㄓㄞ", + bopomofo : L"ㄓㄞ", sheng : "zh", yun : "ai", sheng_id : PINYIN_ID_ZH, @@ -9409,7 +9409,7 @@ static const Pinyin pinyin_table[] = { }, { /* 672 */ text : "zhamg", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "ang", sheng_id : PINYIN_ID_ZH, @@ -9423,7 +9423,7 @@ static const Pinyin pinyin_table[] = { }, { /* 673 */ text : "zhan", - bopomofo : "ㄓㄢ", + bopomofo : L"ㄓㄢ", sheng : "zh", yun : "an", sheng_id : PINYIN_ID_ZH, @@ -9437,7 +9437,7 @@ static const Pinyin pinyin_table[] = { }, { /* 674 */ text : "zhang", - bopomofo : "ㄓㄤ", + bopomofo : L"ㄓㄤ", sheng : "zh", yun : "ang", sheng_id : PINYIN_ID_ZH, @@ -9451,7 +9451,7 @@ static const Pinyin pinyin_table[] = { }, { /* 675 */ text : "zhao", - bopomofo : "ㄓㄠ", + bopomofo : L"ㄓㄠ", sheng : "zh", yun : "ao", sheng_id : PINYIN_ID_ZH, @@ -9465,7 +9465,7 @@ static const Pinyin pinyin_table[] = { }, { /* 676 */ text : "zhe", - bopomofo : "ㄓㄜ", + bopomofo : L"ㄓㄜ", sheng : "zh", yun : "e", sheng_id : PINYIN_ID_ZH, @@ -9479,7 +9479,7 @@ static const Pinyin pinyin_table[] = { }, { /* 677 */ text : "zhegn", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "eng", sheng_id : PINYIN_ID_ZH, @@ -9493,7 +9493,7 @@ static const Pinyin pinyin_table[] = { }, { /* 678 */ text : "zhei", - bopomofo : "ㄓㄟ", + bopomofo : L"ㄓㄟ", sheng : "zh", yun : "ei", sheng_id : PINYIN_ID_ZH, @@ -9507,7 +9507,7 @@ static const Pinyin pinyin_table[] = { }, { /* 679 */ text : "zhemg", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "eng", sheng_id : PINYIN_ID_ZH, @@ -9521,7 +9521,7 @@ static const Pinyin pinyin_table[] = { }, { /* 680 */ text : "zhen", - bopomofo : "ㄓㄣ", + bopomofo : L"ㄓㄣ", sheng : "zh", yun : "en", sheng_id : PINYIN_ID_ZH, @@ -9535,7 +9535,7 @@ static const Pinyin pinyin_table[] = { }, { /* 681 */ text : "zheng", - bopomofo : "ㄓㄥ", + bopomofo : L"ㄓㄥ", sheng : "zh", yun : "eng", sheng_id : PINYIN_ID_ZH, @@ -9549,7 +9549,7 @@ static const Pinyin pinyin_table[] = { }, { /* 682 */ text : "zhi", - bopomofo : "ㄓ", + bopomofo : L"ㄓ", sheng : "zh", yun : "i", sheng_id : PINYIN_ID_ZH, @@ -9563,7 +9563,7 @@ static const Pinyin pinyin_table[] = { }, { /* 683 */ text : "zhogn", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "ong", sheng_id : PINYIN_ID_ZH, @@ -9577,7 +9577,7 @@ static const Pinyin pinyin_table[] = { }, { /* 684 */ text : "zhomg", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "ong", sheng_id : PINYIN_ID_ZH, @@ -9591,7 +9591,7 @@ static const Pinyin pinyin_table[] = { }, { /* 685 */ text : "zhong", - bopomofo : "ㄓㄨㄥ", + bopomofo : L"ㄓㄨㄥ", sheng : "zh", yun : "ong", sheng_id : PINYIN_ID_ZH, @@ -9605,7 +9605,7 @@ static const Pinyin pinyin_table[] = { }, { /* 686 */ text : "zhou", - bopomofo : "ㄓㄡ", + bopomofo : L"ㄓㄡ", sheng : "zh", yun : "ou", sheng_id : PINYIN_ID_ZH, @@ -9619,7 +9619,7 @@ static const Pinyin pinyin_table[] = { }, { /* 687 */ text : "zhu", - bopomofo : "ㄓㄨ", + bopomofo : L"ㄓㄨ", sheng : "zh", yun : "u", sheng_id : PINYIN_ID_ZH, @@ -9633,7 +9633,7 @@ static const Pinyin pinyin_table[] = { }, { /* 688 */ text : "zhua", - bopomofo : "ㄓㄨㄚ", + bopomofo : L"ㄓㄨㄚ", sheng : "zh", yun : "ua", sheng_id : PINYIN_ID_ZH, @@ -9647,7 +9647,7 @@ static const Pinyin pinyin_table[] = { }, { /* 689 */ text : "zhuagn", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "uang", sheng_id : PINYIN_ID_ZH, @@ -9661,7 +9661,7 @@ static const Pinyin pinyin_table[] = { }, { /* 690 */ text : "zhuai", - bopomofo : "ㄓㄨㄞ", + bopomofo : L"ㄓㄨㄞ", sheng : "zh", yun : "uai", sheng_id : PINYIN_ID_ZH, @@ -9675,7 +9675,7 @@ static const Pinyin pinyin_table[] = { }, { /* 691 */ text : "zhuamg", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "uang", sheng_id : PINYIN_ID_ZH, @@ -9689,7 +9689,7 @@ static const Pinyin pinyin_table[] = { }, { /* 692 */ text : "zhuan", - bopomofo : "ㄓㄨㄢ", + bopomofo : L"ㄓㄨㄢ", sheng : "zh", yun : "uan", sheng_id : PINYIN_ID_ZH, @@ -9703,7 +9703,7 @@ static const Pinyin pinyin_table[] = { }, { /* 693 */ text : "zhuang", - bopomofo : "ㄓㄨㄤ", + bopomofo : L"ㄓㄨㄤ", sheng : "zh", yun : "uang", sheng_id : PINYIN_ID_ZH, @@ -9717,7 +9717,7 @@ static const Pinyin pinyin_table[] = { }, { /* 694 */ text : "zhuei", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "ui", sheng_id : PINYIN_ID_ZH, @@ -9731,7 +9731,7 @@ static const Pinyin pinyin_table[] = { }, { /* 695 */ text : "zhuen", - bopomofo : "", + bopomofo : L"", sheng : "zh", yun : "un", sheng_id : PINYIN_ID_ZH, @@ -9745,7 +9745,7 @@ static const Pinyin pinyin_table[] = { }, { /* 696 */ text : "zhui", - bopomofo : "ㄓㄨㄟ", + bopomofo : L"ㄓㄨㄟ", sheng : "zh", yun : "ui", sheng_id : PINYIN_ID_ZH, @@ -9759,7 +9759,7 @@ static const Pinyin pinyin_table[] = { }, { /* 697 */ text : "zhun", - bopomofo : "ㄓㄨㄣ", + bopomofo : L"ㄓㄨㄣ", sheng : "zh", yun : "un", sheng_id : PINYIN_ID_ZH, @@ -9773,7 +9773,7 @@ static const Pinyin pinyin_table[] = { }, { /* 698 */ text : "zhuo", - bopomofo : "ㄓㄨㄛ", + bopomofo : L"ㄓㄨㄛ", sheng : "zh", yun : "uo", sheng_id : PINYIN_ID_ZH, @@ -9787,7 +9787,7 @@ static const Pinyin pinyin_table[] = { }, { /* 699 */ text : "zi", - bopomofo : "ㄗ", + bopomofo : L"ㄗ", sheng : "z", yun : "i", sheng_id : PINYIN_ID_Z, @@ -9801,7 +9801,7 @@ static const Pinyin pinyin_table[] = { }, { /* 700 */ text : "zogn", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "ong", sheng_id : PINYIN_ID_Z, @@ -9815,7 +9815,7 @@ static const Pinyin pinyin_table[] = { }, { /* 701 */ text : "zomg", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "ong", sheng_id : PINYIN_ID_Z, @@ -9829,7 +9829,7 @@ static const Pinyin pinyin_table[] = { }, { /* 702 */ text : "zong", - bopomofo : "ㄗㄨㄥ", + bopomofo : L"ㄗㄨㄥ", sheng : "z", yun : "ong", sheng_id : PINYIN_ID_Z, @@ -9843,7 +9843,7 @@ static const Pinyin pinyin_table[] = { }, { /* 703 */ text : "zou", - bopomofo : "ㄗㄡ", + bopomofo : L"ㄗㄡ", sheng : "z", yun : "ou", sheng_id : PINYIN_ID_Z, @@ -9857,7 +9857,7 @@ static const Pinyin pinyin_table[] = { }, { /* 704 */ text : "zu", - bopomofo : "ㄗㄨ", + bopomofo : L"ㄗㄨ", sheng : "z", yun : "u", sheng_id : PINYIN_ID_Z, @@ -9871,7 +9871,7 @@ static const Pinyin pinyin_table[] = { }, { /* 705 */ text : "zua", - bopomofo : "ㄗㄨㄚ", + bopomofo : L"ㄗㄨㄚ", sheng : "z", yun : "ua", sheng_id : PINYIN_ID_Z, @@ -9885,7 +9885,7 @@ static const Pinyin pinyin_table[] = { }, { /* 706 */ text : "zuai", - bopomofo : "ㄗㄨㄞ", + bopomofo : L"ㄗㄨㄞ", sheng : "z", yun : "uai", sheng_id : PINYIN_ID_Z, @@ -9899,7 +9899,7 @@ static const Pinyin pinyin_table[] = { }, { /* 707 */ text : "zuan", - bopomofo : "ㄗㄨㄢ", + bopomofo : L"ㄗㄨㄢ", sheng : "z", yun : "uan", sheng_id : PINYIN_ID_Z, @@ -9913,7 +9913,7 @@ static const Pinyin pinyin_table[] = { }, { /* 708 */ text : "zuang", - bopomofo : "ㄗㄨㄤ", + bopomofo : L"ㄗㄨㄤ", sheng : "z", yun : "uang", sheng_id : PINYIN_ID_Z, @@ -9927,7 +9927,7 @@ static const Pinyin pinyin_table[] = { }, { /* 709 */ text : "zuei", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "ui", sheng_id : PINYIN_ID_Z, @@ -9941,7 +9941,7 @@ static const Pinyin pinyin_table[] = { }, { /* 710 */ text : "zuen", - bopomofo : "", + bopomofo : L"", sheng : "z", yun : "un", sheng_id : PINYIN_ID_Z, @@ -9955,7 +9955,7 @@ static const Pinyin pinyin_table[] = { }, { /* 711 */ text : "zui", - bopomofo : "ㄗㄨㄟ", + bopomofo : L"ㄗㄨㄟ", sheng : "z", yun : "ui", sheng_id : PINYIN_ID_Z, @@ -9969,7 +9969,7 @@ static const Pinyin pinyin_table[] = { }, { /* 712 */ text : "zun", - bopomofo : "ㄗㄨㄣ", + bopomofo : L"ㄗㄨㄣ", sheng : "z", yun : "un", sheng_id : PINYIN_ID_Z, @@ -9983,7 +9983,7 @@ static const Pinyin pinyin_table[] = { }, { /* 713 */ text : "zuo", - bopomofo : "ㄗㄨㄛ", + bopomofo : L"ㄗㄨㄛ", sheng : "z", yun : "uo", sheng_id : PINYIN_ID_Z, diff --git a/src/Types.h b/src/Types.h index c8cd928..eea0cb0 100644 --- a/src/Types.h +++ b/src/Types.h @@ -107,7 +107,7 @@ namespace PY { struct Pinyin { const gchar *text; - const gchar *bopomofo; + const wchar_t *bopomofo; const gchar *sheng; const gchar *yun; const gchar sheng_id; -- cgit From a360dbe761107cd98530c24f2c115dd5c7613dca Mon Sep 17 00:00:00 2001 From: BYVoid Date: Thu, 13 May 2010 11:18:30 +0800 Subject: add Bopomofo Support --- src/Bopomofo.h | 66 ++++++++ src/BopomofoEditor.cc | 416 ++++++++++++++++++++++++++++++++++++++++++++++++ src/BopomofoEditor.h | 101 ++++++++++++ src/Makefile.am | 3 + src/PinyinEditor.cc | 19 +++ src/PinyinEditor.h | 28 +--- src/PinyinEngine.cc | 11 +- src/PinyinParser.cc | 66 ++++++++ src/PinyinParser.h | 7 + src/PinyinParserTable.h | 1 - 10 files changed, 691 insertions(+), 27 deletions(-) create mode 100644 src/Bopomofo.h create mode 100644 src/BopomofoEditor.cc create mode 100644 src/BopomofoEditor.h (limited to 'src') diff --git a/src/Bopomofo.h b/src/Bopomofo.h new file mode 100644 index 0000000..37c2cb9 --- /dev/null +++ b/src/Bopomofo.h @@ -0,0 +1,66 @@ +/* + * Bopomofo.h + * + * Created on: 2010-5-12 + * Author: byvoid + */ + +#ifndef BOPOMOFO_H_ +#define BOPOMOFO_H_ + +#define MAX_BOPOMOFO_LEN (4) + +#define BOPOMOFO_ZERO (0) +#define BOPOMOFO_B (1) +#define BOPOMOFO_P (2) +#define BOPOMOFO_M (3) +#define BOPOMOFO_F (4) +#define BOPOMOFO_D (5) +#define BOPOMOFO_T (6) +#define BOPOMOFO_N (7) +#define BOPOMOFO_L (8) +#define BOPOMOFO_G (9) +#define BOPOMOFO_K (10) +#define BOPOMOFO_H (11) +#define BOPOMOFO_J (12) +#define BOPOMOFO_Q (13) +#define BOPOMOFO_X (14) +#define BOPOMOFO_ZH (15) +#define BOPOMOFO_CH (16) +#define BOPOMOFO_SH (17) +#define BOPOMOFO_R (18) +#define BOPOMOFO_Z (19) +#define BOPOMOFO_C (20) +#define BOPOMOFO_S (21) +#define BOPOMOFO_I (22) +#define BOPOMOFO_U (23) +#define BOPOMOFO_V (24) +#define BOPOMOFO_A (25) +#define BOPOMOFO_O (26) +#define BOPOMOFO_E (27) +#define BOPOMOFO_E2 (28) +#define BOPOMOFO_AI (29) +#define BOPOMOFO_EI (30) +#define BOPOMOFO_AO (31) +#define BOPOMOFO_OU (32) +#define BOPOMOFO_AN (33) +#define BOPOMOFO_EN (34) +#define BOPOMOFO_ANG (35) +#define BOPOMOFO_ENG (36) +#define BOPOMOFO_ER (37) +#define BOPOMOFO_TONE_2 (38) +#define BOPOMOFO_TONE_3 (39) +#define BOPOMOFO_TONE_4 (40) +#define BOPOMOFO_TONE_5 (41) + +const static wchar_t bopomofo_char[] = { + L'\0',L'ㄅ',L'ㄆ',L'ㄇ',L'ㄈ',L'ㄉ',L'ㄊ',L'ㄋ',L'ㄌ',L'ㄍ',L'ㄎ', + L'ㄏ',L'ㄐ',L'ㄑ',L'ㄒ',L'ㄓ',L'ㄔ',L'ㄕ',L'ㄖ',L'ㄗ',L'ㄘ',L'ㄙ', + + L'ㄧ',L'ㄨ',L'ㄩ',L'ㄚ',L'ㄛ',L'ㄜ',L'ㄝ',L'ㄞ',L'ㄟ',L'ㄠ',L'ㄡ', + L'ㄢ',L'ㄣ',L'ㄤ',L'ㄥ',L'ㄦ', + + L'ˊ',L'ˇ',L'ˋ',L'˙', +}; + +#endif /* BOPOMOFO_H_ */ diff --git a/src/BopomofoEditor.cc b/src/BopomofoEditor.cc new file mode 100644 index 0000000..af5757e --- /dev/null +++ b/src/BopomofoEditor.cc @@ -0,0 +1,416 @@ +#include "Config.h" +#include "BopomofoEditor.h" +#include "SimpTradConverter.h" + +namespace PY { + +BopomofoEditor::BopomofoEditor (PinyinProperties & props) + : PinyinEditor (props) +{ +} + +BopomofoEditor::~BopomofoEditor (void) +{ +} + +void +BopomofoEditor::reset (void) +{ + PinyinEditor::reset (); +} + +gboolean +BopomofoEditor::insert (gint ch) +{ + /* is full */ + if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) + return TRUE; + + gint key = get_bopomofo_keyboard_map(ch); + if (key >= BOPOMOFO_TONE_2 && key <= BOPOMOFO_TONE_5) { + if (m_cursor == 0) + return TRUE; /* invalid format: tone should not be the first character */ + key = get_bopomofo_keyboard_map(m_text.c_str()[m_cursor - 1]); + if (key >= BOPOMOFO_TONE_2 && key <= BOPOMOFO_TONE_5) + return TRUE; /* invalid format: two tone character should not be together */ + } + + m_text.insert (m_cursor++, ch); + + if (G_UNLIKELY (!(Config::option () & PINYIN_INCOMPLETE_PINYIN))) { + updateSpecialPhrases (); + updatePinyin (); + } + else if (G_LIKELY (m_cursor <= m_pinyin_len + 2)) { + updateSpecialPhrases (); + updatePinyin (); + } + else { + if (updateSpecialPhrases ()) { + update (); + } + else { + updatePreeditText (); + updateAuxiliaryText (); + } + } + return TRUE; +} + +gboolean +BopomofoEditor::removeCharBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + + m_cursor --; + m_text.erase (m_cursor, 1); + + updateSpecialPhrases (); + updatePinyin (); + + return TRUE; +} + +gboolean +BopomofoEditor::removeCharAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return FALSE; + + m_text.erase (m_cursor, 1); + updatePreeditText (); + updateAuxiliaryText (); + + return TRUE; +} + +gboolean +BopomofoEditor::removeWordBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + + guint cursor; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + cursor = m_pinyin_len; + } + else { + const Pinyin & p = *m_pinyin.back (); + cursor = m_cursor - p.len; + m_pinyin_len -= p.len; + m_pinyin.pop_back (); + } + + m_text.erase (cursor, m_cursor - cursor); + m_cursor = cursor; + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + return TRUE; +} + +gboolean +BopomofoEditor::removeWordAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return FALSE; + + m_text.erase (m_cursor, -1); + updatePreeditText (); + updateAuxiliaryText (); + return TRUE; +} + +gboolean +BopomofoEditor::moveCursorLeft (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + + m_cursor --; + updateSpecialPhrases (); + updatePinyin (); + + return TRUE; +} + +gboolean +BopomofoEditor::moveCursorRight (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return FALSE; + + m_cursor ++; + + updateSpecialPhrases (); + updatePinyin (); + + return TRUE; +} + +gboolean +BopomofoEditor::moveCursorLeftByWord (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + + if (G_UNLIKELY (m_cursor > m_pinyin_len)) { + m_cursor = m_pinyin_len; + return TRUE; + } + + const Pinyin & p = *m_pinyin.back (); + m_cursor -= p.len; + m_pinyin_len -= p.len; + m_pinyin.pop_back (); + + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + + return TRUE; +} + +gboolean +BopomofoEditor::moveCursorRightByWord (void) +{ + return moveCursorToEnd (); +} + +gboolean +BopomofoEditor::moveCursorToBegin (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + + m_cursor = 0; + m_pinyin.clear (); + m_pinyin_len = 0; + + updateSpecialPhrases (); + updatePhraseEditor (); + update (); + + return TRUE; +} + +gboolean +BopomofoEditor::moveCursorToEnd (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return FALSE; + + m_cursor = m_text.length (); + updateSpecialPhrases (); + updatePinyin (); + + return TRUE; +} + +gboolean +BopomofoEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) +{ + switch (keyval) { + /* Bopomofo */ + case IBUS_a ... IBUS_z: + case IBUS_0 ... IBUS_9: + case IBUS_comma: + case IBUS_period: + case IBUS_slash: + case IBUS_semicolon: + case IBUS_minus: + return processBopomofo (keyval, keycode, modifiers); + + default: + return PinyinEditor::processKeyEvent (keyval, keycode, modifiers); + } +} + +#define CMSHM_MASK \ + (IBUS_CONTROL_MASK | \ + IBUS_MOD1_MASK | \ + IBUS_SUPER_MASK | \ + IBUS_HYPER_MASK | \ + IBUS_META_MASK) + +#define CMSHM_FILTER(modifiers) \ + (modifiers & (CMSHM_MASK)) + +/** + * process bopomofo + */ +inline gboolean +BopomofoEditor::processBopomofo (guint keyval, guint keycode, guint modifiers) +{ + if (G_UNLIKELY (CMSHM_FILTER(modifiers) != 0)) + return m_text ? TRUE : FALSE; + + return insert (keyval); +} + +void +BopomofoEditor::updatePinyin (void) +{ + if (G_UNLIKELY (m_text.empty ())) { + m_pinyin.clear (); + m_pinyin_len = 0; + } + else { + bopomofo.clear(); + for(String::iterator i = m_text.begin();i != m_text.end(); ++i) { + bopomofo += bopomofo_char[get_bopomofo_keyboard_map(*i)]; + } + + m_pinyin_len = PinyinParser::parse_bopomofo(bopomofo, // bopomofo + m_cursor, // text length + Config::option (), // option + m_pinyin, // result + MAX_PHRASE_LEN); // max result length + } + + updatePhraseEditor (); + update (); +} + +void +BopomofoEditor::updateAuxiliaryText (void) +{ + if (G_UNLIKELY (m_text.empty () || + m_lookup_table.size () == 0)) { + hideAuxiliaryText (); + return; + } + + m_buffer.clear (); + + updateAuxiliaryTextBefore (m_buffer); + + for (String::iterator i = m_text.begin();i!=m_text.end();i++) { + if (m_cursor == i - m_text.begin()) + m_buffer << '|'; + m_buffer.appendUnichar(bopomofo_char[get_bopomofo_keyboard_map(*i)]); + } + if (m_cursor == m_text.length()) + m_buffer << '|'; + + updateAuxiliaryTextAfter (m_buffer); + + StaticText aux_text (m_buffer); + Editor::updateAuxiliaryText (aux_text, TRUE); +} + +void +BopomofoEditor::commit (void) +{ + if (G_UNLIKELY (empty ())) + return; + + m_buffer.clear (); + + m_buffer << m_phrase_editor.selectedString (); + + const gchar *p; + + if (m_selected_special_phrase.empty ()) { + p = textAfterPinyin (m_buffer.utf8Length ()); + } + else { + m_buffer << m_selected_special_phrase; + p = textAfterCursor (); + } + + while (*p != '\0') { + m_buffer.appendUnichar ((gunichar)bopomofo_char[get_bopomofo_keyboard_map(*p++)]); + } + + m_phrase_editor.commit (); + reset (); + PinyinEditor::commit ((const gchar *)m_buffer); +} + +void +BopomofoEditor::updatePreeditText (void) +{ + PinyinEditor::updatePreeditText(); +#if 0 + /* preedit text = selected phrases + highlight candidate + rest text */ + if (G_UNLIKELY (m_phrase_editor.empty () && m_text.empty ())) { + hidePreeditText (); + return; + } + + guint edit_begin = 0; + guint edit_end = 0; + + m_buffer.clear (); + + /* add selected phrases */ + m_buffer << m_phrase_editor.selectedString (); + + if (G_UNLIKELY (! m_selected_special_phrase.empty ())) { + /* add selected special phrase */ + m_buffer << m_selected_special_phrase; + edit_begin = m_buffer.utf8Length (); + + /* append text after cursor */ + m_buffer << textAfterCursor (); + } + else { + edit_begin = m_buffer.utf8Length (); + if (m_lookup_table.size () > 0) { + guint cursor = m_lookup_table.cursorPos (); + + if (cursor < m_special_phrases.size ()) { + m_buffer << m_special_phrases[cursor].c_str (); + edit_end = m_buffer.utf8Length (); + /* append text after cursor */ + m_buffer << textAfterCursor (); + } + else { + const Phrase & candidate = m_phrase_editor.candidate (cursor - m_special_phrases.size ()); + if (m_text.size () == m_cursor) { + /* cursor at end */ + if (m_props.modeSimp ()) + m_buffer << candidate; + else + SimpTradConverter::simpToTrad (candidate, m_buffer); + edit_end = m_buffer.utf8Length (); + + /* append rest text */ + m_buffer << textAfterPinyin (edit_end); + } + else { + guint candidate_end = edit_begin + candidate.len; + m_buffer << m_pinyin[edit_begin]->sheng << m_pinyin[edit_begin]->yun; + + for (guint i = edit_begin + 1; i < candidate_end; i++) { + m_buffer << ' ' << m_pinyin[i]->sheng << m_pinyin[i]->yun; + } + m_buffer << ' ' << textAfterPinyin (candidate_end); + edit_end = m_buffer.utf8Length (); + } + } + } + else { + m_buffer << textAfterPinyin (); + } + } + + StaticText preedit_text (m_buffer); + /* underline */ + preedit_text.appendAttribute (IBUS_ATTR_TYPE_UNDERLINE, IBUS_ATTR_UNDERLINE_SINGLE, 0, -1); + + /* candidate */ + if (edit_begin < edit_end) { + preedit_text.appendAttribute (IBUS_ATTR_TYPE_FOREGROUND, 0x00000000, + edit_begin, edit_end); + preedit_text.appendAttribute (IBUS_ATTR_TYPE_BACKGROUND, 0x00c8c8f0, + edit_begin, edit_end); + } + Editor::updatePreeditText (preedit_text, edit_begin, TRUE); +#endif +} + +}; diff --git a/src/BopomofoEditor.h b/src/BopomofoEditor.h new file mode 100644 index 0000000..9516233 --- /dev/null +++ b/src/BopomofoEditor.h @@ -0,0 +1,101 @@ +#ifndef __PY_BOPOMOFO_EDITOR_H_ +#define __PY_BOPOMOFO_EDITOR_H_ + +#include "PinyinEditor.h" + +namespace PY { + +#include "Bopomofo.h" + +class BopomofoEditor : public PinyinEditor { + +public: + BopomofoEditor (PinyinProperties & props); + ~BopomofoEditor (void); + +public: + /* virtual functions */ + virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers); + virtual void reset (void); + +protected: + std::wstring bopomofo; + + virtual void updatePinyin (void); + virtual void updateAuxiliaryText (void); + virtual void updatePreeditText (void); + virtual void commit (void); + + gboolean insert (gint ch); + + gboolean removeCharBefore (void); + gboolean removeCharAfter (void); + gboolean removeWordBefore (void); + gboolean removeWordAfter (void); + + gboolean moveCursorLeft (void); + gboolean moveCursorRight (void); + gboolean moveCursorLeftByWord (void); + gboolean moveCursorRightByWord (void); + gboolean moveCursorToBegin (void); + gboolean moveCursorToEnd (void); + + gboolean processBopomofo (guint keyval, guint keycode, guint modifiers); + + gint get_bopomofo_keyboard_map(gint ch) { + switch(ch){ + case IBUS_1: return BOPOMOFO_B; + case IBUS_q: return BOPOMOFO_P; + case IBUS_a: return BOPOMOFO_M; + case IBUS_z: return BOPOMOFO_F; + case IBUS_2: return BOPOMOFO_D; + case IBUS_w: return BOPOMOFO_T; + case IBUS_s: return BOPOMOFO_N; + case IBUS_x: return BOPOMOFO_L; + case IBUS_e: return BOPOMOFO_G; + case IBUS_d: return BOPOMOFO_K; + case IBUS_c: return BOPOMOFO_H; + case IBUS_r: return BOPOMOFO_J; + case IBUS_f: return BOPOMOFO_Q; + case IBUS_v: return BOPOMOFO_X; + case IBUS_5: return BOPOMOFO_ZH; + case IBUS_t: return BOPOMOFO_CH; + case IBUS_g: return BOPOMOFO_SH; + case IBUS_b: return BOPOMOFO_R; + case IBUS_y: return BOPOMOFO_Z; + case IBUS_h: return BOPOMOFO_C; + case IBUS_n: return BOPOMOFO_S; + + case IBUS_u: return BOPOMOFO_I; + case IBUS_j: return BOPOMOFO_U; + case IBUS_m: return BOPOMOFO_V; + case IBUS_8: return BOPOMOFO_A; + case IBUS_i: return BOPOMOFO_O; + case IBUS_k: return BOPOMOFO_E; + case IBUS_comma: return BOPOMOFO_E2; + case IBUS_9: return BOPOMOFO_AI; + case IBUS_o: return BOPOMOFO_EI; + case IBUS_l: return BOPOMOFO_AO; + case IBUS_period: return BOPOMOFO_OU; + case IBUS_0: return BOPOMOFO_AN; + case IBUS_p: return BOPOMOFO_EN; + case IBUS_semicolon: return BOPOMOFO_ANG; + case IBUS_slash: return BOPOMOFO_ENG; + case IBUS_minus: return BOPOMOFO_ER; + + case IBUS_3: return BOPOMOFO_TONE_2; + case IBUS_4: return BOPOMOFO_TONE_3; + case IBUS_6: return BOPOMOFO_TONE_4; + case IBUS_7: return BOPOMOFO_TONE_5; + + default: + return 0; + } + } + + +}; + +}; + +#endif diff --git a/src/Makefile.am b/src/Makefile.am index 3cd72e6..c86b82e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -34,6 +34,7 @@ libexec_PROGRAMS = ibus-engine-pinyin ibus_engine_c_sources = \ + BopomofoEditor.cc \ Config.cc \ Database.cc \ DoublePinyinEditor.cc \ @@ -55,10 +56,12 @@ ibus_engine_c_sources = \ SpecialPhraseTable.cc \ $(NULL) ibus_engine_built_h_sources = \ + Bopomofo.h \ PinyinParserTable.h \ SimpTradConverterTable.h \ $(NULL) ibus_engine_h_sources = \ + BopomofoEditor.h \ Bus.h \ Config.h \ Database.h \ diff --git a/src/PinyinEditor.cc b/src/PinyinEditor.cc index 4e5bc3b..07fd16d 100644 --- a/src/PinyinEditor.cc +++ b/src/PinyinEditor.cc @@ -325,6 +325,25 @@ PinyinEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) } } +gboolean +PinyinEditor::updateSpecialPhrases (void) { + if (!m_selected_special_phrase.empty ()) + return FALSE; + + guint size = m_special_phrases.size (); + guint begin = m_phrase_editor.cursorInChar (); + guint end = m_cursor; + + m_special_phrases.clear (); + if (begin < end) { + SpecialPhraseTable::instance ().lookup ( + m_text.substr (begin, m_cursor - begin), + m_special_phrases); + } + + return size != m_special_phrases.size () || size != 0; +} + void PinyinEditor::updatePreeditText (void) { diff --git a/src/PinyinEditor.h b/src/PinyinEditor.h index 1ae3fb0..d8a1c15 100644 --- a/src/PinyinEditor.h +++ b/src/PinyinEditor.h @@ -39,37 +39,15 @@ protected: gboolean processSpace (guint keyval, guint keycode, guint modifiers); gboolean processOthers (guint keyval, guint keycode, guint modifiers); - void updatePreeditText (void); - void updateAuxiliaryText (void); - void updateLookupTable (void); gboolean fillLookupTableByPage (void); void updatePhraseEditor (void) { m_phrase_editor.update (m_pinyin); } - - gboolean updateSpecialPhrases (void) { - if (!m_selected_special_phrase.empty ()) - return FALSE; - - guint size = m_special_phrases.size (); - guint begin = m_phrase_editor.cursorInChar (); - guint end = m_cursor; - - m_special_phrases.clear (); - if (begin < end) { - SpecialPhraseTable::instance ().lookup ( - m_text.substr (begin, m_cursor - begin), - m_special_phrases); - } - - return size != m_special_phrases.size () || size != 0; - } - + gboolean updateSpecialPhrases (void); gboolean selectCandidate (guint i); gboolean selectCandidateInPage (guint i); gboolean resetCandidate (guint i); gboolean resetCandidateInPage (guint i); - void commit (void); void commit (const gchar *str); const String & text (void) const { return m_text; } @@ -89,6 +67,10 @@ protected: operator gboolean (void) const { return ! empty (); } /* virtual functions */ + virtual void updatePreeditText (void); + virtual void updateAuxiliaryText (void); + virtual void updateLookupTable (void); + virtual void commit (void); virtual gboolean insert (gint ch) = 0; virtual gboolean removeCharBefore (void) = 0; virtual gboolean removeCharAfter (void) = 0; diff --git a/src/PinyinEngine.cc b/src/PinyinEngine.cc index aa9f247..d279e66 100644 --- a/src/PinyinEngine.cc +++ b/src/PinyinEngine.cc @@ -7,8 +7,10 @@ #include "ExtEditor.h" #include "FullPinyinEditor.h" #include "DoublePinyinEditor.h" +#include "BopomofoEditor.h" #include "PinyinEngine.h" #include "HalfFullConverter.h" +#include "SimpTradConverter.h" #include "Config.h" #include "Text.h" #include "Util.h" @@ -27,7 +29,8 @@ PinyinEngine::PinyinEngine (IBusEngine *engine) gint i; /* create editors */ if (Config::doublePinyin ()) - m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + //m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + m_editors[MODE_INIT].reset (new BopomofoEditor (m_props)); else m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); @@ -128,8 +131,10 @@ PinyinEngine::focusIn (void) { /* reset pinyin editor */ if (Config::doublePinyin ()) { - if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { - m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + //if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { + // m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { + m_editors[MODE_INIT].reset (new BopomofoEditor (m_props)); connectEditorSignals (m_editors[MODE_INIT]); } } diff --git a/src/PinyinParser.cc b/src/PinyinParser.cc index d6d1e3e..fe8e31b 100644 --- a/src/PinyinParser.cc +++ b/src/PinyinParser.cc @@ -7,6 +7,7 @@ namespace PY { +#include "Bopomofo.h" #include "PinyinParserTable.h" static gboolean @@ -260,5 +261,70 @@ PinyinParser::isPinyin (gint sheng, gint yun, guint option) return NULL; } +static int +bopomofo_cmp (const void *p1, const void *p2) +{ + const wchar_t *s1 = (wchar_t *) p1; + const Pinyin *s2 = *(const Pinyin **) p2; + + return std::wcscmp (s1,s2->bopomofo); +} + +gboolean +PinyinParser::isBopomofoToneChar (const wchar_t ch) +{ + return ch == bopomofo_char[BOPOMOFO_TONE_2] + || ch == bopomofo_char[BOPOMOFO_TONE_3] + || ch == bopomofo_char[BOPOMOFO_TONE_4] + || ch == bopomofo_char[BOPOMOFO_TONE_5]; +} + +guint +PinyinParser::parse_bopomofo (const std::wstring &bopomofo, + gint len, + guint option, + PinyinArray &result, + guint max) +{ + std::wstring::const_iterator bpmf = bopomofo.begin(); + const std::wstring::const_iterator end = bpmf + len; + const Pinyin **bs_res; + wchar_t buf[MAX_BOPOMOFO_LEN + 1]; + gint i,j; + + result.clear (); + + if (G_UNLIKELY (len < 0)) + len = bopomofo.length(); + + for (; bpmf < end && result.size () < max; ) { + for (i = MAX_BOPOMOFO_LEN; i>0; i--){ + if (bpmf + i > end) + continue; + + for (j=0;jlen); + bpmf += i; + } + + return bpmf - bopomofo.begin(); }; +}; diff --git a/src/PinyinParser.h b/src/PinyinParser.h index e27f24b..ebf0815 100644 --- a/src/PinyinParser.h +++ b/src/PinyinParser.h @@ -16,6 +16,13 @@ public: PinyinArray &result, // store pinyin in result guint max); // max length of the result static const Pinyin * isPinyin (gint sheng, gint yun, guint option); + static guint parse_bopomofo (const std::wstring &bopomofo, + gint len, + guint option, + PinyinArray &result, + guint max); + static gboolean isBopomofoToneChar (const wchar_t ch); + }; }; #endif diff --git a/src/PinyinParserTable.h b/src/PinyinParserTable.h index 6e175e2..8e7548f 100644 --- a/src/PinyinParserTable.h +++ b/src/PinyinParserTable.h @@ -11438,4 +11438,3 @@ static const Pinyin *special_table[][4] = { { &pinyin_table[712], &pinyin_table[125], &pinyin_table[704], &pinyin_table[357], }, /* zun e => zu ne */ { &pinyin_table[712], &pinyin_table[126], &pinyin_table[704], &pinyin_table[359], }, /* zun ei => zu nei */ }; - -- cgit From 44eb3a3beaaf8a9ee66a633783b3e6dd03a9e1f1 Mon Sep 17 00:00:00 2001 From: BYVoid Date: Thu, 13 May 2010 17:41:57 +0800 Subject: Bopomofo --- src/BopomofoEditor.cc | 35 ++++++++++++++++++----------------- src/BopomofoEditor.h | 2 +- src/PinyinEditor.cc | 2 +- src/PinyinEngine.cc | 1 - src/PinyinParser.cc | 4 +++- src/PinyinParser.h | 2 +- 6 files changed, 24 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/BopomofoEditor.cc b/src/BopomofoEditor.cc index af5757e..c5432aa 100644 --- a/src/BopomofoEditor.cc +++ b/src/BopomofoEditor.cc @@ -26,11 +26,11 @@ BopomofoEditor::insert (gint ch) if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) return TRUE; - gint key = get_bopomofo_keyboard_map(ch); + gint key = keyvalToBopomofo(ch); if (key >= BOPOMOFO_TONE_2 && key <= BOPOMOFO_TONE_5) { if (m_cursor == 0) return TRUE; /* invalid format: tone should not be the first character */ - key = get_bopomofo_keyboard_map(m_text.c_str()[m_cursor - 1]); + key = keyvalToBopomofo(m_text.c_str()[m_cursor - 1]); if (key >= BOPOMOFO_TONE_2 && key <= BOPOMOFO_TONE_5) return TRUE; /* invalid format: two tone character should not be together */ } @@ -260,10 +260,10 @@ BopomofoEditor::updatePinyin (void) else { bopomofo.clear(); for(String::iterator i = m_text.begin();i != m_text.end(); ++i) { - bopomofo += bopomofo_char[get_bopomofo_keyboard_map(*i)]; + bopomofo += bopomofo_char[keyvalToBopomofo(*i)]; } - m_pinyin_len = PinyinParser::parse_bopomofo(bopomofo, // bopomofo + m_pinyin_len = PinyinParser::parseBopomofo(bopomofo, // bopomofo m_cursor, // text length Config::option (), // option m_pinyin, // result @@ -290,7 +290,7 @@ BopomofoEditor::updateAuxiliaryText (void) for (String::iterator i = m_text.begin();i!=m_text.end();i++) { if (m_cursor == i - m_text.begin()) m_buffer << '|'; - m_buffer.appendUnichar(bopomofo_char[get_bopomofo_keyboard_map(*i)]); + m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*i)]); } if (m_cursor == m_text.length()) m_buffer << '|'; @@ -322,7 +322,7 @@ BopomofoEditor::commit (void) } while (*p != '\0') { - m_buffer.appendUnichar ((gunichar)bopomofo_char[get_bopomofo_keyboard_map(*p++)]); + m_buffer.appendUnichar ((gunichar)bopomofo_char[keyvalToBopomofo(*p++)]); } m_phrase_editor.commit (); @@ -333,8 +333,6 @@ BopomofoEditor::commit (void) void BopomofoEditor::updatePreeditText (void) { - PinyinEditor::updatePreeditText(); -#if 0 /* preedit text = selected phrases + highlight candidate + rest text */ if (G_UNLIKELY (m_phrase_editor.empty () && m_text.empty ())) { hidePreeditText (); @@ -379,22 +377,26 @@ BopomofoEditor::updatePreeditText (void) edit_end = m_buffer.utf8Length (); /* append rest text */ - m_buffer << textAfterPinyin (edit_end); + if (m_cursor >= MAX_PHRASE_LEN) { + for (const gchar *p=m_text.c_str() + MAX_PHRASE_LEN; *p ;++p) { + m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*p)]); + } + } } else { - guint candidate_end = edit_begin + candidate.len; - m_buffer << m_pinyin[edit_begin]->sheng << m_pinyin[edit_begin]->yun; - - for (guint i = edit_begin + 1; i < candidate_end; i++) { - m_buffer << ' ' << m_pinyin[i]->sheng << m_pinyin[i]->yun; + for (const gchar *p=m_text.c_str(); *p ;++p) { + if (p - m_text.c_str() == m_cursor) + m_buffer << ' '; + m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*p)]); } - m_buffer << ' ' << textAfterPinyin (candidate_end); edit_end = m_buffer.utf8Length (); } } } else { - m_buffer << textAfterPinyin (); + for (const gchar *p=m_text.c_str() + m_pinyin_len; *p ;++p) { + m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*p)]); + } } } @@ -410,7 +412,6 @@ BopomofoEditor::updatePreeditText (void) edit_begin, edit_end); } Editor::updatePreeditText (preedit_text, edit_begin, TRUE); -#endif } }; diff --git a/src/BopomofoEditor.h b/src/BopomofoEditor.h index 9516233..2ff9838 100644 --- a/src/BopomofoEditor.h +++ b/src/BopomofoEditor.h @@ -42,7 +42,7 @@ protected: gboolean processBopomofo (guint keyval, guint keycode, guint modifiers); - gint get_bopomofo_keyboard_map(gint ch) { + gint keyvalToBopomofo(gint ch) { switch(ch){ case IBUS_1: return BOPOMOFO_B; case IBUS_q: return BOPOMOFO_P; diff --git a/src/PinyinEditor.cc b/src/PinyinEditor.cc index 07fd16d..bef4112 100644 --- a/src/PinyinEditor.cc +++ b/src/PinyinEditor.cc @@ -400,7 +400,7 @@ PinyinEditor::updatePreeditText (void) for (guint i = edit_begin + 1; i < candidate_end; i++) { m_buffer << ' ' << m_pinyin[i]->sheng << m_pinyin[i]->yun; } - m_buffer << ' ' << textAfterPinyin (candidate_end); + m_buffer << '|' << textAfterPinyin (candidate_end); edit_end = m_buffer.utf8Length (); } } diff --git a/src/PinyinEngine.cc b/src/PinyinEngine.cc index d279e66..ec84bb5 100644 --- a/src/PinyinEngine.cc +++ b/src/PinyinEngine.cc @@ -10,7 +10,6 @@ #include "BopomofoEditor.h" #include "PinyinEngine.h" #include "HalfFullConverter.h" -#include "SimpTradConverter.h" #include "Config.h" #include "Text.h" #include "Util.h" diff --git a/src/PinyinParser.cc b/src/PinyinParser.cc index fe8e31b..e2c4f97 100644 --- a/src/PinyinParser.cc +++ b/src/PinyinParser.cc @@ -280,7 +280,7 @@ PinyinParser::isBopomofoToneChar (const wchar_t ch) } guint -PinyinParser::parse_bopomofo (const std::wstring &bopomofo, +PinyinParser::parseBopomofo (const std::wstring &bopomofo, gint len, guint option, PinyinArray &result, @@ -320,6 +320,8 @@ PinyinParser::parse_bopomofo (const std::wstring &bopomofo, if (G_UNLIKELY (bs_res != NULL)) break; } + if (G_UNLIKELY (bs_res == NULL)) + break; result.append(*bs_res,bpmf - bopomofo.begin() ,(*bs_res)->len); bpmf += i; } diff --git a/src/PinyinParser.h b/src/PinyinParser.h index ebf0815..4379741 100644 --- a/src/PinyinParser.h +++ b/src/PinyinParser.h @@ -16,7 +16,7 @@ public: PinyinArray &result, // store pinyin in result guint max); // max length of the result static const Pinyin * isPinyin (gint sheng, gint yun, guint option); - static guint parse_bopomofo (const std::wstring &bopomofo, + static guint parseBopomofo (const std::wstring &bopomofo, gint len, guint option, PinyinArray &result, -- cgit From c18e74986fb1e608e313497d3b3914ab22a4854b Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Thu, 13 May 2010 19:15:39 +0800 Subject: Make bopomofo as a separate input engine. --- src/BopomofoEditor.cc | 2 +- src/Engine.cc | 24 ++++++++++++++++++++++-- src/Engine.h | 1 + src/Main.cc | 11 +++++++++++ src/PinyinEngine.cc | 43 +++++++++++++++++++++++++++---------------- src/PinyinEngine.h | 2 ++ src/pinyin.xml.in.in | 11 +++++++++++ 7 files changed, 75 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/BopomofoEditor.cc b/src/BopomofoEditor.cc index c5432aa..519b70e 100644 --- a/src/BopomofoEditor.cc +++ b/src/BopomofoEditor.cc @@ -287,7 +287,7 @@ BopomofoEditor::updateAuxiliaryText (void) updateAuxiliaryTextBefore (m_buffer); - for (String::iterator i = m_text.begin();i!=m_text.end();i++) { + for (String::iterator i = m_text.begin(); i != m_text.end(); i++) { if (m_cursor == i - m_text.begin()) m_buffer << '|'; m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*i)]); diff --git a/src/Engine.cc b/src/Engine.cc index 7894df0..7b6bcf5 100644 --- a/src/Engine.cc +++ b/src/Engine.cc @@ -36,6 +36,10 @@ struct _IBusPinyinEngineClass { /* functions prototype */ static void ibus_pinyin_engine_class_init (IBusPinyinEngineClass *klass); static void ibus_pinyin_engine_init (IBusPinyinEngine *pinyin); +static GObject* ibus_pinyin_engine_constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params); + static void ibus_pinyin_engine_destroy (IBusPinyinEngine *pinyin); static gboolean ibus_pinyin_engine_process_key_event (IBusEngine *engine, @@ -84,10 +88,11 @@ G_DEFINE_TYPE (IBusPinyinEngine, ibus_pinyin_engine, IBUS_TYPE_ENGINE) static void ibus_pinyin_engine_class_init (IBusPinyinEngineClass *klass) { - // GObjectClass *object_class = G_OBJECT_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); IBusObjectClass *ibus_object_class = IBUS_OBJECT_CLASS (klass); IBusEngineClass *engine_class = IBUS_ENGINE_CLASS (klass); + object_class->constructor = ibus_pinyin_engine_constructor; ibus_object_class->destroy = (IBusObjectDestroyFunc) ibus_pinyin_engine_destroy; engine_class->process_key_event = ibus_pinyin_engine_process_key_event; @@ -115,7 +120,22 @@ ibus_pinyin_engine_init (IBusPinyinEngine *pinyin) { if (g_object_is_floating (pinyin)) g_object_ref_sink (pinyin); // make engine sink - new (& (pinyin->engine)) PinyinEngine (IBUS_ENGINE (pinyin)); +} + +static GObject* +ibus_pinyin_engine_constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + IBusPinyinEngine *engine; + + engine = (IBusPinyinEngine *) G_OBJECT_CLASS (ibus_pinyin_engine_parent_class)->constructor ( + type, + n_construct_params, + construct_params); + new (& (engine->engine)) PinyinEngine (IBUS_ENGINE (engine)); + + return (GObject *) engine; } static void diff --git a/src/Engine.h b/src/Engine.h index 0b39081..b05ab6e 100644 --- a/src/Engine.h +++ b/src/Engine.h @@ -10,6 +10,7 @@ namespace PY { (PY::ibus_pinyin_engine_get_type ()) GType ibus_pinyin_engine_get_type (void); + }; #endif diff --git a/src/Main.cc b/src/Main.cc index c53f44b..99625a4 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -72,15 +72,26 @@ start_component (void) "Peng Huang ", PKGDATADIR"/icons/ibus-pinyin.svg", "us")); + ibus_component_add_engine (component, + ibus_engine_desc_new ("bopomofo-debug", + N_("Bopomofo (debug)"), + N_("Bopomofo input method (debug)"), + "zh_CN", + "GPL", + "Peng Huang ", + PKGDATADIR"/icons/ibus-pinyin.svg", // TODO: need a new icon + "us")); factory = ibus_factory_new (ibus_bus_get_connection (bus)); if (ibus) { ibus_factory_add_engine (factory, "pinyin", IBUS_TYPE_PINYIN_ENGINE); + ibus_factory_add_engine (factory, "bopomofo", IBUS_TYPE_PINYIN_ENGINE); ibus_bus_request_name (bus, "org.freedesktop.IBus.Pinyin", 0); } else { ibus_factory_add_engine (factory, "pinyin-debug", IBUS_TYPE_PINYIN_ENGINE); + ibus_factory_add_engine (factory, "bopomofo-debug", IBUS_TYPE_PINYIN_ENGINE); ibus_bus_register_component (bus, component); } diff --git a/src/PinyinEngine.cc b/src/PinyinEngine.cc index ec84bb5..0b5ed3f 100644 --- a/src/PinyinEngine.cc +++ b/src/PinyinEngine.cc @@ -2,6 +2,7 @@ #include #include +#include #include #include "RawEditor.h" #include "ExtEditor.h" @@ -23,15 +24,25 @@ PinyinEngine::PinyinEngine (IBusEngine *engine) : m_engine (engine), m_prev_pressed_key (IBUS_VoidSymbol), m_input_mode (MODE_INIT), + m_bopomofo (FALSE), m_fallback_editor (new FallbackEditor (m_props)) { gint i; + + /* Is it bopomofo engine */ + m_bopomofo = std::strcmp (ibus_engine_get_name (engine), "bopomofo") == 0 || + std::strcmp (ibus_engine_get_name (engine), "bopomofo-debug") == 0; + /* create editors */ - if (Config::doublePinyin ()) - //m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + if (!m_bopomofo) { + if (Config::doublePinyin ()) + m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + else + m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); + } + else { m_editors[MODE_INIT].reset (new BopomofoEditor (m_props)); - else - m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); + } m_editors[MODE_RAW].reset (new RawEditor (m_props)); m_editors[MODE_EXTENSION].reset (new ExtEditor (m_props)); @@ -129,21 +140,21 @@ void PinyinEngine::focusIn (void) { /* reset pinyin editor */ - if (Config::doublePinyin ()) { - //if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { - // m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); - if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { - m_editors[MODE_INIT].reset (new BopomofoEditor (m_props)); - connectEditorSignals (m_editors[MODE_INIT]); + if (!m_bopomofo) { + if (Config::doublePinyin ()) { + if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { + m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + connectEditorSignals (m_editors[MODE_INIT]); + } } - } - else { - if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { - m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); - connectEditorSignals (m_editors[MODE_INIT]); + else { + if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { + m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); + connectEditorSignals (m_editors[MODE_INIT]); + } } + ibus_engine_register_properties (m_engine, m_props.properties ()); } - ibus_engine_register_properties (m_engine, m_props.properties ()); } diff --git a/src/PinyinEngine.h b/src/PinyinEngine.h index 6f2d0b7..f39429c 100644 --- a/src/PinyinEngine.h +++ b/src/PinyinEngine.h @@ -84,6 +84,8 @@ private: MODE_LAST, } m_input_mode; + gboolean m_bopomofo; + EditorPtr m_editors[MODE_LAST]; EditorPtr m_fallback_editor; }; diff --git a/src/pinyin.xml.in.in b/src/pinyin.xml.in.in index 9e04313..ff7746c 100644 --- a/src/pinyin.xml.in.in +++ b/src/pinyin.xml.in.in @@ -22,6 +22,17 @@ Pinyin input method 99 + + bopomofo + zh + GPL + Peng Huang <shawn.p.huang@gmail.com> + ${pkgdatadir}/icons/ibus-pinyin.svg + us + Bopomofo + Bopomofo input method + 99 + -- cgit From 35e5f6a5e90dde1b3683774247a4d9bb304bcc3c Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Fri, 14 May 2010 10:44:01 +0800 Subject: Create BopomofoEngine --- src/BopomofoEngine.cc | 290 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/BopomofoEngine.h | 83 +++++++++++++++ src/Engine.cc | 27 +++-- src/Engine.h | 87 +++++++++++++++ src/Makefile.am | 4 +- src/PinyinEngine.cc | 68 +++++------- src/PinyinEngine.h | 24 ++--- 7 files changed, 516 insertions(+), 67 deletions(-) create mode 100644 src/BopomofoEngine.cc create mode 100644 src/BopomofoEngine.h (limited to 'src') diff --git a/src/BopomofoEngine.cc b/src/BopomofoEngine.cc new file mode 100644 index 0000000..dc54266 --- /dev/null +++ b/src/BopomofoEngine.cc @@ -0,0 +1,290 @@ +/* vim:set et sts=4: */ + +#include +#include +#include +#include +#include "RawEditor.h" +#include "ExtEditor.h" +#include "FullPinyinEditor.h" +#include "DoublePinyinEditor.h" +#include "BopomofoEditor.h" +#include "BopomofoEngine.h" +#include "HalfFullConverter.h" +#include "Config.h" +#include "Text.h" +#include "Util.h" + +#define _(text) (dgettext (GETTEXT_PACKAGE, text)) + +namespace PY { + +/* constructor */ +BopomofoEngine::BopomofoEngine (IBusEngine *engine) + : Engine (engine), + m_prev_pressed_key (IBUS_VoidSymbol), + m_input_mode (MODE_INIT), + m_fallback_editor (new FallbackEditor (m_props)) +{ + gint i; + + /* create editors */ + m_editors[MODE_INIT].reset (new BopomofoEditor (m_props)); + + m_editors[MODE_RAW].reset (new RawEditor (m_props)); + m_editors[MODE_EXTENSION].reset (new ExtEditor (m_props)); + + m_props.signalUpdateProperty ().connect (bind (&BopomofoEngine::slotUpdateProperty, this, _1)); + + for (i = MODE_INIT; i < MODE_LAST; i++) { + connectEditorSignals (m_editors[i]); + } + + connectEditorSignals (m_fallback_editor); +} + +/* destructor */ +BopomofoEngine::~BopomofoEngine (void) +{ +} + + +#define CASHM_MASK \ + (IBUS_CONTROL_MASK | \ + IBUS_MOD1_MASK | \ + IBUS_SUPER_MASK | \ + IBUS_HYPER_MASK | \ + IBUS_META_MASK) + +gboolean +BopomofoEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) +{ + gboolean retval = FALSE; + + /* check Shift + Release hotkey, + * and then ignore other Release key event */ + if (modifiers & IBUS_RELEASE_MASK) { + /* press and release keyval are same, + * and no other key event between the press and release ket event*/ + if (m_prev_pressed_key == keyval) { + if (keyval == IBUS_Shift_L || keyval == IBUS_Shift_R) { + if (!m_editors[MODE_INIT]->text ().empty ()) + m_editors[MODE_INIT]->reset (); + m_props.toggleModeChinese (); + } + } + return TRUE; + } + + if (m_props.modeChinese ()) { + if (m_input_mode == MODE_INIT && + ((modifiers & CASHM_MASK) == 0)) { + const String & text = m_editors[MODE_INIT]->text (); + if (text.empty ()) { + #if 0 + if (keyval == IBUS_i) { + m_input_mode = MODE_EXTENSION; + } + #endif + } + else { + if (m_prev_pressed_key != IBUS_period) { + if ((keyval == IBUS_at || keyval == IBUS_colon)) { + m_input_mode = MODE_RAW; + m_editors[MODE_RAW]->setText (text, text.length ()); + m_editors[MODE_INIT]->reset (); + } + } + else { + if ((keyval >= IBUS_a && keyval <= IBUS_z) || + (keyval >= IBUS_A && keyval <= IBUS_Z)) { + String tmp = text; + tmp += "."; + m_input_mode = MODE_RAW; + m_editors[MODE_RAW]->setText (tmp, tmp.length ()); + m_editors[MODE_INIT]->reset (); + } + } + } + } + retval = m_editors[m_input_mode]->processKeyEvent (keyval, keycode, modifiers); + if (G_UNLIKELY (retval && + m_input_mode != MODE_INIT && + m_editors[m_input_mode]->text ().empty ())) + m_input_mode = MODE_INIT; + } + + if (G_UNLIKELY (!retval)) + retval = m_fallback_editor->processKeyEvent (keyval, keycode, modifiers); + + /* store ignored key event by editors */ + m_prev_pressed_key = retval ? IBUS_VoidSymbol : keyval; + + return retval; +} + +void +BopomofoEngine::focusIn (void) +{ +} + +void +BopomofoEngine::pageUp (void) +{ + m_editors[m_input_mode]->pageUp (); +} + +void +BopomofoEngine::pageDown (void) +{ + m_editors[m_input_mode]->pageDown (); +} + +void +BopomofoEngine::cursorUp (void) +{ + m_editors[m_input_mode]->cursorUp (); +} + +void +BopomofoEngine::cursorDown (void) +{ + m_editors[m_input_mode]->cursorDown (); +} + +inline void +BopomofoEngine::showSetupDialog (void) +{ + g_spawn_command_line_async (LIBEXECDIR"/ibus-setup-pinyin", NULL); +} + +gboolean +BopomofoEngine::propertyActivate (const gchar *prop_name, guint prop_state) +{ + const static std::string setup ("setup"); + if (m_props.propertyActivate (prop_name, prop_state)) { + return TRUE; + } + else if (setup == prop_name) { + showSetupDialog (); + return TRUE; + } + return FALSE; +} + +void +BopomofoEngine::candidateClicked (guint index, guint button, guint state) +{ + m_editors[m_input_mode]->candidateClicked (index, button, state); +} + +void +BopomofoEngine::slotCommitText (Text & text) +{ + commitText (text); + if (m_input_mode != MODE_INIT) + m_input_mode = MODE_INIT; + if (text.text ()) + static_cast (m_fallback_editor.get ())->setPrevCommittedChar (*text.text ()); + else + static_cast (m_fallback_editor.get ())->setPrevCommittedChar (0); +} + +void +BopomofoEngine::slotUpdatePreeditText (Text & text, guint cursor, gboolean visible) +{ + updatePreeditText (text, cursor, visible); +} + +void +BopomofoEngine::slotShowPreeditText (void) +{ + showPreeditText (); +} + +void +BopomofoEngine::slotHidePreeditText (void) +{ + hidePreeditText (); +} + +void +BopomofoEngine::slotUpdateAuxiliaryText (Text & text, gboolean visible) +{ + updateAuxiliaryText (text, visible); +} + +void +BopomofoEngine::slotShowAuxiliaryText (void) +{ + showAuxiliaryText (); +} + +void +BopomofoEngine::slotHideAuxiliaryText (void) +{ + hideAuxiliaryText (); +} + +void +BopomofoEngine::slotUpdateLookupTable (LookupTable & table, gboolean visible) +{ + updateLookupTable (table, visible); +} + +void +BopomofoEngine::slotUpdateLookupTableFast (LookupTable & table, gboolean visible) +{ + updateLookupTableFast (table, visible); +} + +void +BopomofoEngine::slotShowLookupTable (void) +{ + showLookupTable (); +} + +void +BopomofoEngine::slotHideLookupTable (void) +{ + hideLookupTable (); +} + +void +BopomofoEngine::slotUpdateProperty (Property & prop) +{ + updateProperty (prop); +} + +void +BopomofoEngine::connectEditorSignals (EditorPtr editor) +{ + editor->signalCommitText ().connect ( + bind (&BopomofoEngine::slotCommitText, this, _1)); + + editor->signalUpdatePreeditText ().connect ( + bind (&BopomofoEngine::slotUpdatePreeditText, this, _1, _2, _3)); + editor->signalShowPreeditText ().connect ( + bind (&BopomofoEngine::slotShowPreeditText, this)); + editor->signalHidePreeditText ().connect ( + bind (&BopomofoEngine::slotHidePreeditText, this)); + + editor->signalUpdateAuxiliaryText ().connect ( + bind (&BopomofoEngine::slotUpdateAuxiliaryText, this, _1, _2)); + editor->signalShowAuxiliaryText ().connect ( + bind (&BopomofoEngine::slotShowAuxiliaryText, this)); + editor->signalHideAuxiliaryText ().connect ( + bind (&BopomofoEngine::slotHideAuxiliaryText, this)); + + editor->signalUpdateLookupTable ().connect ( + bind (&BopomofoEngine::slotUpdateLookupTable, this, _1, _2)); + editor->signalUpdateLookupTableFast ().connect ( + bind (&BopomofoEngine::slotUpdateLookupTableFast, this, _1, _2)); + editor->signalShowLookupTable ().connect ( + bind (&BopomofoEngine::slotShowLookupTable, this)); + editor->signalHideLookupTable ().connect ( + bind (&BopomofoEngine::slotHideLookupTable, this)); +} + +}; + diff --git a/src/BopomofoEngine.h b/src/BopomofoEngine.h new file mode 100644 index 0000000..1134ea5 --- /dev/null +++ b/src/BopomofoEngine.h @@ -0,0 +1,83 @@ +/* vim:set et sts=4: */ +#ifndef __PY_BOPOMOFO_ENGINE_H__ +#define __PY_BOPOMOFO_ENGINE_H__ + +#include "Engine.h" + +namespace PY { + +class BopomofoEngine : public Engine { +public: + BopomofoEngine (IBusEngine *engine); + ~BopomofoEngine (void); + + gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers); + void focusIn (void); + void focusOut (void) { + reset (); + } + + void reset (void) { + m_prev_pressed_key = IBUS_VoidSymbol; + m_input_mode = MODE_INIT; + for (gint i = 0; i < MODE_LAST; i++) { + m_editors[i]->reset (); + } + m_fallback_editor->reset (); + } + + + void enable (void) {} + void disable (void) {} + void pageUp (void); + void pageDown (void); + void cursorUp (void); + void cursorDown (void); + + gboolean propertyActivate (const gchar *prop_name, guint prop_state); + void candidateClicked (guint index, guint button, guint state); + +private: + gboolean processPunct (guint keyval, guint keycode, guint modifiers); + +private: + void showSetupDialog (void); + void connectEditorSignals (EditorPtr editor); + +private: + void slotCommitText (Text & text); + void slotUpdatePreeditText (Text & text, guint cursor, gboolean visible); + void slotShowPreeditText (void); + void slotHidePreeditText (void); + void slotUpdateAuxiliaryText (Text & text, gboolean visible); + void slotShowAuxiliaryText (void); + void slotHideAuxiliaryText (void); + void slotUpdateLookupTable (LookupTable &table, gboolean visible); + void slotUpdateLookupTableFast (LookupTable &table, gboolean visible); + void slotShowLookupTable (void); + void slotHideLookupTable (void); + void slotUpdateProperty (Property & prop); + +private: + PinyinProperties m_props; + + guint m_prev_pressed_key; + + enum { + MODE_INIT = 0, // init mode + MODE_RAW, // raw mode + #if 0 + MODE_ENGLISH, // press v into English input mode + MODE_STROKE, // press u into stroke input mode + #endif + MODE_EXTENSION, // press i into extension input mode + MODE_LAST, + } m_input_mode; + + EditorPtr m_editors[MODE_LAST]; + EditorPtr m_fallback_editor; +}; + +}; + +#endif diff --git a/src/Engine.cc b/src/Engine.cc index 7b6bcf5..175fc6e 100644 --- a/src/Engine.cc +++ b/src/Engine.cc @@ -4,6 +4,7 @@ #include #include "Engine.h" #include "PinyinEngine.h" +#include "BopomofoEngine.h" namespace PY { /* code of engine class of GObject */ @@ -26,7 +27,7 @@ struct _IBusPinyinEngine { IBusEngine parent; /* members */ - PinyinEngine engine; + Engine *engine; }; struct _IBusPinyinEngineClass { @@ -128,20 +129,28 @@ ibus_pinyin_engine_constructor (GType type, GObjectConstructParam *construct_params) { IBusPinyinEngine *engine; + const gchar *name; engine = (IBusPinyinEngine *) G_OBJECT_CLASS (ibus_pinyin_engine_parent_class)->constructor ( type, n_construct_params, construct_params); - new (& (engine->engine)) PinyinEngine (IBUS_ENGINE (engine)); + name = ibus_engine_get_name ((IBusEngine *) engine); + if (name && + (std::strcmp (name, "bopomofo") == 0 || std::strcmp (name, "bopomofo-debug") == 0)) { + engine->engine = new BopomofoEngine (IBUS_ENGINE (engine)); + } + else { + engine->engine = new PinyinEngine (IBUS_ENGINE (engine)); + } return (GObject *) engine; } static void ibus_pinyin_engine_destroy (IBusPinyinEngine *pinyin) { - pinyin->engine.~PinyinEngine (); + delete pinyin->engine; ((IBusObjectClass *) ibus_pinyin_engine_parent_class)->destroy ((IBusObject *)pinyin); } @@ -152,7 +161,7 @@ ibus_pinyin_engine_process_key_event (IBusEngine *engine, guint modifiers) { IBusPinyinEngine *pinyin = (IBusPinyinEngine *) engine; - return pinyin->engine.processKeyEvent (keyval, keycode, modifiers); + return pinyin->engine->processKeyEvent (keyval, keycode, modifiers); } static void @@ -161,7 +170,7 @@ ibus_pinyin_engine_property_activate (IBusEngine *engine, guint prop_state) { IBusPinyinEngine *pinyin = (IBusPinyinEngine *) engine; - pinyin->engine.propertyActivate (prop_name, prop_state); + pinyin->engine->propertyActivate (prop_name, prop_state); } static void ibus_pinyin_engine_candidate_clicked (IBusEngine *engine, @@ -170,7 +179,7 @@ ibus_pinyin_engine_candidate_clicked (IBusEngine *engine, guint state) { IBusPinyinEngine *pinyin = (IBusPinyinEngine *) engine; - pinyin->engine.candidateClicked (index, button, state); + pinyin->engine->candidateClicked (index, button, state); } #define FUNCTION(name, Name) \ @@ -178,7 +187,7 @@ ibus_pinyin_engine_candidate_clicked (IBusEngine *engine, ibus_pinyin_engine_##name (IBusEngine *engine) \ { \ IBusPinyinEngine *pinyin = (IBusPinyinEngine *) engine; \ - pinyin->engine.Name (); \ + pinyin->engine->Name (); \ ((IBusEngineClass *) ibus_pinyin_engine_parent_class) \ ->name (engine); \ } @@ -193,5 +202,9 @@ FUNCTION(cursor_up, cursorUp) FUNCTION(cursor_down, cursorDown) #undef FUNCTION +Engine::~Engine (void) +{ +} + }; diff --git a/src/Engine.h b/src/Engine.h index b05ab6e..0ae3906 100644 --- a/src/Engine.h +++ b/src/Engine.h @@ -4,6 +4,15 @@ #include +#include "Pointer.h" +#include "Database.h" +#include "LookupTable.h" +#include "Property.h" +#include "Config.h" +#include "Editor.h" +#include "FallbackEditor.h" +#include "PinyinProperties.h" + namespace PY { #define IBUS_TYPE_PINYIN_ENGINE \ @@ -11,6 +20,84 @@ namespace PY { GType ibus_pinyin_engine_get_type (void); +class Engine { +public: + Engine (IBusEngine *engine) : m_engine (engine) { + } + + virtual ~Engine (void); + + virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers) = 0; + virtual void focusIn (void) = 0; + virtual void focusOut (void) = 0; + virtual void reset (void) = 0; + + virtual void enable (void) = 0; + virtual void disable (void) = 0; + virtual void pageUp (void) = 0; + virtual void pageDown (void) = 0; + virtual void cursorUp (void) = 0; + virtual void cursorDown (void) = 0; + + virtual gboolean propertyActivate (const gchar *prop_name, guint prop_state) = 0; + virtual void candidateClicked (guint index, guint button, guint state) = 0; + +protected: + void commitText (Text & text) { + ibus_engine_commit_text (m_engine, text); + } + + void updatePreeditText (Text & text, guint cursor, gboolean visible) { + ibus_engine_update_preedit_text (m_engine, text, cursor, visible); + } + + void showPreeditText (void) { + ibus_engine_show_preedit_text (m_engine); + } + + void hidePreeditText (void) { + ibus_engine_hide_preedit_text (m_engine); + } + + void updateAuxiliaryText (Text & text, gboolean visible) { + ibus_engine_update_auxiliary_text (m_engine, text, visible); + } + + void showAuxiliaryText (void) { + ibus_engine_show_auxiliary_text (m_engine); + } + + void hideAuxiliaryText (void) { + ibus_engine_hide_auxiliary_text (m_engine); + } + + void updateLookupTable (LookupTable &table, gboolean visible) { + ibus_engine_update_lookup_table (m_engine, table, visible); + } + + void updateLookupTableFast (LookupTable &table, gboolean visible) { + ibus_engine_update_lookup_table_fast (m_engine, table, visible); + } + + void showLookupTable (void) { + ibus_engine_show_lookup_table (m_engine); + } + + void hideLookupTable (void) { + ibus_engine_hide_lookup_table (m_engine); + } + + void registerProperties (PropList & props) { + ibus_engine_register_properties (m_engine, props); + } + + void updateProperty (Property & prop) { + ibus_engine_update_property (m_engine, prop); + } + +protected: + Pointer m_engine; // engine pointer }; +}; #endif diff --git a/src/Makefile.am b/src/Makefile.am index c86b82e..5ccd36f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ libexec_PROGRAMS = ibus-engine-pinyin ibus_engine_c_sources = \ BopomofoEditor.cc \ + BopomofoEngine.cc \ Config.cc \ Database.cc \ DoublePinyinEditor.cc \ @@ -56,12 +57,13 @@ ibus_engine_c_sources = \ SpecialPhraseTable.cc \ $(NULL) ibus_engine_built_h_sources = \ - Bopomofo.h \ PinyinParserTable.h \ SimpTradConverterTable.h \ $(NULL) ibus_engine_h_sources = \ + Bopomofo.h \ BopomofoEditor.h \ + BopomofoEngine.h \ Bus.h \ Config.h \ Database.h \ diff --git a/src/PinyinEngine.cc b/src/PinyinEngine.cc index 0b5ed3f..c64e297 100644 --- a/src/PinyinEngine.cc +++ b/src/PinyinEngine.cc @@ -21,28 +21,17 @@ namespace PY { /* constructor */ PinyinEngine::PinyinEngine (IBusEngine *engine) - : m_engine (engine), + : Engine (engine), m_prev_pressed_key (IBUS_VoidSymbol), m_input_mode (MODE_INIT), - m_bopomofo (FALSE), m_fallback_editor (new FallbackEditor (m_props)) { gint i; - /* Is it bopomofo engine */ - m_bopomofo = std::strcmp (ibus_engine_get_name (engine), "bopomofo") == 0 || - std::strcmp (ibus_engine_get_name (engine), "bopomofo-debug") == 0; - - /* create editors */ - if (!m_bopomofo) { - if (Config::doublePinyin ()) - m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); - else - m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); - } - else { - m_editors[MODE_INIT].reset (new BopomofoEditor (m_props)); - } + if (Config::doublePinyin ()) + m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + else + m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); m_editors[MODE_RAW].reset (new RawEditor (m_props)); m_editors[MODE_EXTENSION].reset (new ExtEditor (m_props)); @@ -139,22 +128,19 @@ PinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) void PinyinEngine::focusIn (void) { - /* reset pinyin editor */ - if (!m_bopomofo) { - if (Config::doublePinyin ()) { - if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { - m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); - connectEditorSignals (m_editors[MODE_INIT]); - } + if (Config::doublePinyin ()) { + if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { + m_editors[MODE_INIT].reset (new DoublePinyinEditor (m_props)); + connectEditorSignals (m_editors[MODE_INIT]); } - else { - if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { - m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); - connectEditorSignals (m_editors[MODE_INIT]); - } + } + else { + if (dynamic_cast (m_editors[MODE_INIT].get ()) == NULL) { + m_editors[MODE_INIT].reset (new FullPinyinEditor (m_props)); + connectEditorSignals (m_editors[MODE_INIT]); } - ibus_engine_register_properties (m_engine, m_props.properties ()); } + registerProperties (m_props.properties ()); } @@ -211,7 +197,7 @@ PinyinEngine::candidateClicked (guint index, guint button, guint state) void PinyinEngine::slotCommitText (Text & text) { - ibus_engine_commit_text (m_engine, text); + commitText (text); if (m_input_mode != MODE_INIT) m_input_mode = MODE_INIT; if (text.text ()) @@ -223,67 +209,67 @@ PinyinEngine::slotCommitText (Text & text) void PinyinEngine::slotUpdatePreeditText (Text & text, guint cursor, gboolean visible) { - ibus_engine_update_preedit_text (m_engine, text, cursor, visible); + updatePreeditText (text, cursor, visible); } void PinyinEngine::slotShowPreeditText (void) { - ibus_engine_show_preedit_text (m_engine); + showPreeditText (); } void PinyinEngine::slotHidePreeditText (void) { - ibus_engine_hide_preedit_text (m_engine); + hidePreeditText (); } void PinyinEngine::slotUpdateAuxiliaryText (Text & text, gboolean visible) { - ibus_engine_update_auxiliary_text (m_engine, text, visible); + updateAuxiliaryText (text, visible); } void PinyinEngine::slotShowAuxiliaryText (void) { - ibus_engine_show_auxiliary_text (m_engine); + showAuxiliaryText (); } void PinyinEngine::slotHideAuxiliaryText (void) { - ibus_engine_hide_auxiliary_text (m_engine); + hideAuxiliaryText (); } void PinyinEngine::slotUpdateLookupTable (LookupTable & table, gboolean visible) { - ibus_engine_update_lookup_table (m_engine, table, visible); + updateLookupTable (table, visible); } void PinyinEngine::slotUpdateLookupTableFast (LookupTable & table, gboolean visible) { - ibus_engine_update_lookup_table_fast (m_engine, table, visible); + updateLookupTableFast (table, visible); } void PinyinEngine::slotShowLookupTable (void) { - ibus_engine_show_lookup_table (m_engine); + showLookupTable (); } void PinyinEngine::slotHideLookupTable (void) { - ibus_engine_hide_lookup_table (m_engine); + hideLookupTable (); } void PinyinEngine::slotUpdateProperty (Property & prop) { - ibus_engine_update_property (m_engine, prop); + updateProperty (prop); } void diff --git a/src/PinyinEngine.h b/src/PinyinEngine.h index f39429c..c74587a 100644 --- a/src/PinyinEngine.h +++ b/src/PinyinEngine.h @@ -1,20 +1,12 @@ /* vim:set et sts=4: */ -#ifndef __PY_PIN_YIN_ENGINE_H__ -#define __PY_PIN_YIN_ENGINE_H__ - -#include -#include "Pointer.h" -#include "Database.h" -#include "LookupTable.h" -#include "Property.h" -#include "Config.h" -#include "Editor.h" -#include "FallbackEditor.h" -#include "PinyinProperties.h" +#ifndef __PY_PINYIN_ENGINE_H__ +#define __PY_PINYIN_ENGINE_H__ + +#include "Engine.h" namespace PY { -class PinyinEngine { +class PinyinEngine : public Engine { public: PinyinEngine (IBusEngine *engine); ~PinyinEngine (void); @@ -25,7 +17,7 @@ public: reset (); } - void reset (gboolean need_update = TRUE) { + void reset (void) { m_prev_pressed_key = IBUS_VoidSymbol; m_input_mode = MODE_INIT; for (gint i = 0; i < MODE_LAST; i++) { @@ -67,10 +59,8 @@ private: void slotUpdateProperty (Property & prop); private: - Pointer m_engine; // engine pointer PinyinProperties m_props; - guint m_prev_pressed_key; enum { @@ -84,8 +74,6 @@ private: MODE_LAST, } m_input_mode; - gboolean m_bopomofo; - EditorPtr m_editors[MODE_LAST]; EditorPtr m_fallback_editor; }; -- cgit From 6b4b7a6a082851ac734de624602dd4e7d013ab95 Mon Sep 17 00:00:00 2001 From: BYVoid Date: Fri, 14 May 2010 10:55:49 +0800 Subject: Allow multiple tone character --- src/BopomofoEditor.cc | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'src') diff --git a/src/BopomofoEditor.cc b/src/BopomofoEditor.cc index 519b70e..9092c73 100644 --- a/src/BopomofoEditor.cc +++ b/src/BopomofoEditor.cc @@ -26,16 +26,7 @@ BopomofoEditor::insert (gint ch) if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) return TRUE; - gint key = keyvalToBopomofo(ch); - if (key >= BOPOMOFO_TONE_2 && key <= BOPOMOFO_TONE_5) { - if (m_cursor == 0) - return TRUE; /* invalid format: tone should not be the first character */ - key = keyvalToBopomofo(m_text.c_str()[m_cursor - 1]); - if (key >= BOPOMOFO_TONE_2 && key <= BOPOMOFO_TONE_5) - return TRUE; /* invalid format: two tone character should not be together */ - } - - m_text.insert (m_cursor++, ch); + m_text.insert (m_cursor++, keyvalToBopomofo(ch)); if (G_UNLIKELY (!(Config::option () & PINYIN_INCOMPLETE_PINYIN))) { updateSpecialPhrases (); -- cgit From ef13f112bc1a9a837bc116abe691670dd2c73f20 Mon Sep 17 00:00:00 2001 From: BYVoid Date: Fri, 14 May 2010 17:26:35 +0800 Subject: Add Input mode/Select mode for Bopomofo --- src/BopomofoEditor.cc | 212 ++++++++++++++++++++++++++++++++++++++++++++------ src/BopomofoEditor.h | 4 + src/BopomofoEngine.cc | 30 ------- src/PinyinParser.cc | 4 +- 4 files changed, 194 insertions(+), 56 deletions(-) (limited to 'src') diff --git a/src/BopomofoEditor.cc b/src/BopomofoEditor.cc index 9092c73..61eff78 100644 --- a/src/BopomofoEditor.cc +++ b/src/BopomofoEditor.cc @@ -2,11 +2,22 @@ #include "BopomofoEditor.h" #include "SimpTradConverter.h" +#define CMSHM_MASK \ + (IBUS_CONTROL_MASK | \ + IBUS_MOD1_MASK | \ + IBUS_SUPER_MASK | \ + IBUS_HYPER_MASK | \ + IBUS_META_MASK) + +#define CMSHM_FILTER(modifiers) \ + (modifiers & (CMSHM_MASK)) + namespace PY { BopomofoEditor::BopomofoEditor (PinyinProperties & props) : PinyinEditor (props) { + m_select_mode = FALSE; } BopomofoEditor::~BopomofoEditor (void) @@ -16,6 +27,7 @@ BopomofoEditor::~BopomofoEditor (void) void BopomofoEditor::reset (void) { + m_select_mode = FALSE; PinyinEditor::reset (); } @@ -26,7 +38,7 @@ BopomofoEditor::insert (gint ch) if (G_UNLIKELY (m_text.length () >= MAX_PINYIN_LEN)) return TRUE; - m_text.insert (m_cursor++, keyvalToBopomofo(ch)); + m_text.insert (m_cursor++, ch); if (G_UNLIKELY (!(Config::option () & PINYIN_INCOMPLETE_PINYIN))) { updateSpecialPhrases (); @@ -200,9 +212,131 @@ BopomofoEditor::moveCursorToEnd (void) return TRUE; } +inline gboolean +BopomofoEditor::processSpace (guint keyval, guint keycode, guint modifiers) +{ + if (!m_text) + return FALSE; + if (CMSHM_FILTER (modifiers) != 0) + return TRUE; + if (m_lookup_table.size () != 0) { + selectCandidate (m_lookup_table.cursorPos ()); + } + else { + commit (); + } + return TRUE; +} + +gboolean +BopomofoEditor::processNumber (guint keyval, guint keycode, guint modifiers) +{ + guint i; + + if (!m_text) + return FALSE; + + m_select_mode = TRUE; + + switch (keyval) { + case IBUS_0: + case IBUS_KP_0: + i = 9; + break; + case IBUS_1 ... IBUS_9: + i = keyval - IBUS_1; + break; + case IBUS_KP_1 ... IBUS_KP_9: + i = keyval - IBUS_KP_1; + break; + default: + return FALSE; + g_return_val_if_reached (FALSE); + } + + selectCandidateInPage (i); + + return TRUE; +} + +gboolean +BopomofoEditor::processNumberWithShift (guint keyval, guint keycode, guint modifiers) +{ + guint i; + + if (!m_text) + return FALSE; + if (G_UNLIKELY((modifiers & IBUS_SHIFT_MASK) == 0)) + return FALSE; + + m_select_mode = TRUE; + + switch (keyval) { + case IBUS_exclam: + i = 0; + break; + case IBUS_at: + i = 1; + break; + case IBUS_numbersign: + i = 2; + break; + case IBUS_dollar: + i = 3; + break; + case IBUS_percent: + i = 4; + break; + case IBUS_asciicircum: + i = 5; + break; + case IBUS_ampersand: + i = 6; + break; + case IBUS_asterisk: + i = 7; + break; + case IBUS_parenleft: + i = 8; + break; + case IBUS_parenright: + i = 9; + break; + default: + g_return_val_if_reached (FALSE); + } + + selectCandidateInPage (i); + + return TRUE; +} + +inline gboolean +BopomofoEditor::processBopomofo (guint keyval, guint keycode, guint modifiers) +{ + if (G_UNLIKELY (CMSHM_FILTER(modifiers) != 0)) + return m_text ? TRUE : FALSE; + + m_select_mode = FALSE; + + return insert (keyval); +} + gboolean BopomofoEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) { + modifiers &= (IBUS_SHIFT_MASK | + IBUS_CONTROL_MASK | + IBUS_MOD1_MASK | + IBUS_SUPER_MASK | + IBUS_HYPER_MASK | + IBUS_META_MASK | + IBUS_LOCK_MASK); + + if (m_select_mode == TRUE && keyval >= IBUS_0 && keyval <= IBUS_9) { + return processNumber (keyval, keycode, modifiers); + } + switch (keyval) { /* Bopomofo */ case IBUS_a ... IBUS_z: @@ -214,31 +348,55 @@ BopomofoEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) case IBUS_minus: return processBopomofo (keyval, keycode, modifiers); - default: + case IBUS_KP_0 ... IBUS_KP_9: + return processNumber (keyval, keycode, modifiers); + + case IBUS_exclam: + case IBUS_at: + case IBUS_numbersign: + case IBUS_dollar: + case IBUS_percent: + case IBUS_asciicircum: + case IBUS_ampersand: + case IBUS_asterisk: + case IBUS_parenleft: + case IBUS_parenright: + return processNumberWithShift (keyval, keycode, modifiers); + + case IBUS_space: + m_select_mode = TRUE; + return processSpace (keyval, keycode, modifiers); + + case IBUS_Up: + case IBUS_KP_Up: + case IBUS_Down: + case IBUS_KP_Down: + case IBUS_Page_Up: + case IBUS_KP_Page_Up: + case IBUS_Page_Down: + case IBUS_KP_Page_Down: + case IBUS_Tab: + m_select_mode = TRUE; return PinyinEditor::processKeyEvent (keyval, keycode, modifiers); - } -} -#define CMSHM_MASK \ - (IBUS_CONTROL_MASK | \ - IBUS_MOD1_MASK | \ - IBUS_SUPER_MASK | \ - IBUS_HYPER_MASK | \ - IBUS_META_MASK) - -#define CMSHM_FILTER(modifiers) \ - (modifiers & (CMSHM_MASK)) + case IBUS_BackSpace: + case IBUS_Delete: + case IBUS_KP_Delete: + case IBUS_Left: + case IBUS_KP_Left: + case IBUS_Right: + case IBUS_KP_Right: + case IBUS_Home: + case IBUS_KP_Home: + case IBUS_End: + case IBUS_KP_End: + m_select_mode = FALSE; + return PinyinEditor::processKeyEvent (keyval, keycode, modifiers); -/** - * process bopomofo - */ -inline gboolean -BopomofoEditor::processBopomofo (guint keyval, guint keycode, guint modifiers) -{ - if (G_UNLIKELY (CMSHM_FILTER(modifiers) != 0)) - return m_text ? TRUE : FALSE; + default: + return PinyinEditor::processKeyEvent (keyval, keycode, modifiers); + } - return insert (keyval); } void @@ -254,7 +412,7 @@ BopomofoEditor::updatePinyin (void) bopomofo += bopomofo_char[keyvalToBopomofo(*i)]; } - m_pinyin_len = PinyinParser::parseBopomofo(bopomofo, // bopomofo + m_pinyin_len = PinyinParser::parseBopomofo (bopomofo, // bopomofo m_cursor, // text length Config::option (), // option m_pinyin, // result @@ -278,7 +436,13 @@ BopomofoEditor::updateAuxiliaryText (void) updateAuxiliaryTextBefore (m_buffer); - for (String::iterator i = m_text.begin(); i != m_text.end(); i++) { + for (guint i = m_phrase_editor.cursor (); i < m_pinyin.size (); ++i) { + if (G_LIKELY (i != m_phrase_editor.cursor ())) + m_buffer << ','; + m_buffer << (gunichar *)m_pinyin[i]->bopomofo; + } + + for (String::iterator i = m_text.begin() + m_pinyin_len; i != m_text.end(); i++) { if (m_cursor == i - m_text.begin()) m_buffer << '|'; m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*i)]); diff --git a/src/BopomofoEditor.h b/src/BopomofoEditor.h index 2ff9838..436dc49 100644 --- a/src/BopomofoEditor.h +++ b/src/BopomofoEditor.h @@ -20,6 +20,7 @@ public: protected: std::wstring bopomofo; + gboolean m_select_mode; virtual void updatePinyin (void); virtual void updateAuxiliaryText (void); @@ -40,6 +41,9 @@ protected: gboolean moveCursorToBegin (void); gboolean moveCursorToEnd (void); + gboolean processSpace (guint keyval, guint keycode, guint modifiers); + gboolean processNumber (guint keyval, guint keycode, guint modifiers); + gboolean processNumberWithShift (guint keyval, guint keycode, guint modifiers); gboolean processBopomofo (guint keyval, guint keycode, guint modifiers); gint keyvalToBopomofo(gint ch) { diff --git a/src/BopomofoEngine.cc b/src/BopomofoEngine.cc index dc54266..4320202 100644 --- a/src/BopomofoEngine.cc +++ b/src/BopomofoEngine.cc @@ -77,36 +77,6 @@ BopomofoEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) } if (m_props.modeChinese ()) { - if (m_input_mode == MODE_INIT && - ((modifiers & CASHM_MASK) == 0)) { - const String & text = m_editors[MODE_INIT]->text (); - if (text.empty ()) { - #if 0 - if (keyval == IBUS_i) { - m_input_mode = MODE_EXTENSION; - } - #endif - } - else { - if (m_prev_pressed_key != IBUS_period) { - if ((keyval == IBUS_at || keyval == IBUS_colon)) { - m_input_mode = MODE_RAW; - m_editors[MODE_RAW]->setText (text, text.length ()); - m_editors[MODE_INIT]->reset (); - } - } - else { - if ((keyval >= IBUS_a && keyval <= IBUS_z) || - (keyval >= IBUS_A && keyval <= IBUS_Z)) { - String tmp = text; - tmp += "."; - m_input_mode = MODE_RAW; - m_editors[MODE_RAW]->setText (tmp, tmp.length ()); - m_editors[MODE_INIT]->reset (); - } - } - } - } retval = m_editors[m_input_mode]->processKeyEvent (keyval, keycode, modifiers); if (G_UNLIKELY (retval && m_input_mode != MODE_INIT && diff --git a/src/PinyinParser.cc b/src/PinyinParser.cc index e2c4f97..c482421 100644 --- a/src/PinyinParser.cc +++ b/src/PinyinParser.cc @@ -317,10 +317,10 @@ PinyinParser::parseBopomofo (const std::wstring &bopomofo, G_N_ELEMENTS (bopomofo_table), sizeof(bopomofo_table[0]), bopomofo_cmp); - if (G_UNLIKELY (bs_res != NULL)) + if (bs_res != NULL && check_flags (*bs_res, option)) break; } - if (G_UNLIKELY (bs_res == NULL)) + if (!(bs_res != NULL && check_flags (*bs_res, option))) break; result.append(*bs_res,bpmf - bopomofo.begin() ,(*bs_res)->len); bpmf += i; -- cgit From 301be52c7bc6c15fb7d41ce4d8d1330ec8af737e Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Fri, 14 May 2010 19:25:42 +0800 Subject: Add bopomofo icon --- src/Main.cc | 2 +- src/pinyin.xml.in.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Main.cc b/src/Main.cc index 99625a4..168731b 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -79,7 +79,7 @@ start_component (void) "zh_CN", "GPL", "Peng Huang ", - PKGDATADIR"/icons/ibus-pinyin.svg", // TODO: need a new icon + PKGDATADIR"/icons/ibus-bopomofo.svg", "us")); factory = ibus_factory_new (ibus_bus_get_connection (bus)); diff --git a/src/pinyin.xml.in.in b/src/pinyin.xml.in.in index ff7746c..ddfa035 100644 --- a/src/pinyin.xml.in.in +++ b/src/pinyin.xml.in.in @@ -27,7 +27,7 @@ zh GPL Peng Huang <shawn.p.huang@gmail.com> - ${pkgdatadir}/icons/ibus-pinyin.svg + ${pkgdatadir}/icons/ibus-bopomofo.svg us Bopomofo Bopomofo input method -- cgit From 98e590baa65b9fb133f71994877cd2068c505d7f Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Sun, 16 May 2010 08:42:44 +0800 Subject: Refine coding style in Database.cc --- src/Database.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/Database.cc b/src/Database.cc index ea56786..ff560c6 100644 --- a/src/Database.cc +++ b/src/Database.cc @@ -514,7 +514,7 @@ Database::query (const PinyinArray &pinyin, m_sql.clear (); gint id = pinyin_len - 1; m_sql << "SELECT * FROM (" - "SELECT 0 AS user_freq, * FROM main.py_phrase_" << id << " WHERE " << m_buffer<< " UNION ALL " + "SELECT 0 AS user_freq, * FROM main.py_phrase_" << id << " WHERE " << m_buffer << " UNION ALL " "SELECT * FROM userdb.py_phrase_" << id << " WHERE " << m_buffer << ") " "GROUP BY phrase ORDER BY user_freq DESC, freq DESC"; if (m > 0) @@ -554,9 +554,11 @@ Database::phraseSql (const Phrase & p, String & sql) << " VALUES(" << 0 /* user_freq */ << ",\"" << p.phrase << '"' /* phrase */ << ',' << p.freq; /* freq */ - for (guint i = 0; i < p.len; i++) { - sql << ',' << p.pinyin_id[i][0] << ',' << p.pinyin_id[i][1]; - } + + for (guint i = 0; i < p.len; i++) { + sql << ',' << p.pinyin_id[i][0] << ',' << p.pinyin_id[i][1]; + } + sql << ");\n"; sql << "UPDATE userdb.py_phrase_" << p.len - 1 -- cgit From ea3c000a332c8dd67147f479e1fdc13747d560c2 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Sun, 16 May 2010 09:16:48 +0800 Subject: Fix two build warnings. --- src/BopomofoEditor.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/BopomofoEditor.cc b/src/BopomofoEditor.cc index 61eff78..a93fe24 100644 --- a/src/BopomofoEditor.cc +++ b/src/BopomofoEditor.cc @@ -443,7 +443,7 @@ BopomofoEditor::updateAuxiliaryText (void) } for (String::iterator i = m_text.begin() + m_pinyin_len; i != m_text.end(); i++) { - if (m_cursor == i - m_text.begin()) + if (m_cursor == (guint)(i - m_text.begin ())) m_buffer << '|'; m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*i)]); } @@ -539,8 +539,8 @@ BopomofoEditor::updatePreeditText (void) } } else { - for (const gchar *p=m_text.c_str(); *p ;++p) { - if (p - m_text.c_str() == m_cursor) + for (const gchar *p = m_text.c_str(); *p; ++p) { + if ((guint) (p - m_text.c_str ()) == m_cursor) m_buffer << ' '; m_buffer.appendUnichar(bopomofo_char[keyvalToBopomofo(*p)]); } -- cgit From bb8f130fb94108cb1fa6863d14e1b2cd165a1594 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Sun, 16 May 2010 09:33:59 +0800 Subject: Add MODE_PUNCT in BopomofoEngine --- src/BopomofoEngine.cc | 11 ++++++++++ src/BopomofoEngine.h | 1 + src/Makefile.am | 2 ++ src/PunctEditor.cc | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 src/PunctEditor.cc (limited to 'src') diff --git a/src/BopomofoEngine.cc b/src/BopomofoEngine.cc index 4320202..5250de1 100644 --- a/src/BopomofoEngine.cc +++ b/src/BopomofoEngine.cc @@ -5,6 +5,7 @@ #include #include #include "RawEditor.h" +#include "PunctEditor.h" #include "ExtEditor.h" #include "FullPinyinEditor.h" #include "DoublePinyinEditor.h" @@ -30,6 +31,7 @@ BopomofoEngine::BopomofoEngine (IBusEngine *engine) /* create editors */ m_editors[MODE_INIT].reset (new BopomofoEditor (m_props)); + m_editors[MODE_PUNCT].reset (new PunctEditor (m_props)); m_editors[MODE_RAW].reset (new RawEditor (m_props)); m_editors[MODE_EXTENSION].reset (new ExtEditor (m_props)); @@ -77,6 +79,15 @@ BopomofoEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) } if (m_props.modeChinese ()) { + if (G_UNLIKELY (m_input_mode == MODE_INIT && + m_editors[MODE_INIT]->text ().empty () && + (modifiers & CASHM_MASK) == 0) && + keyval == IBUS_grave) { + /* if BopomofoEditor is empty and get a grave key, + * switch current editor to PunctEditor */ + m_input_mode = MODE_PUNCT; + } + retval = m_editors[m_input_mode]->processKeyEvent (keyval, keycode, modifiers); if (G_UNLIKELY (retval && m_input_mode != MODE_INIT && diff --git a/src/BopomofoEngine.h b/src/BopomofoEngine.h index 1134ea5..c3f510c 100644 --- a/src/BopomofoEngine.h +++ b/src/BopomofoEngine.h @@ -65,6 +65,7 @@ private: enum { MODE_INIT = 0, // init mode + MODE_PUNCT, // punct mode MODE_RAW, // raw mode #if 0 MODE_ENGLISH, // press v into English input mode diff --git a/src/Makefile.am b/src/Makefile.am index 5ccd36f..6c914c8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -51,6 +51,7 @@ ibus_engine_c_sources = \ PinyinEngine.cc \ PinyinParser.cc \ PinyinProperties.cc \ + PunctEditor.cc \ SimpTradConverter.cc \ DynamicSpecialPhrase.cc \ SpecialPhrase.cc \ @@ -88,6 +89,7 @@ ibus_engine_h_sources = \ PinyinProperties.h \ Pointer.h \ Property.h \ + PunctEditor.h \ RawEditor.h \ Regex.h \ Signal.h \ diff --git a/src/PunctEditor.cc b/src/PunctEditor.cc new file mode 100644 index 0000000..5b22ce5 --- /dev/null +++ b/src/PunctEditor.cc @@ -0,0 +1,60 @@ +#include "PunctEditor.h" + +namespace PY { + +PunctEditor::PunctEditor (PinyinProperties & props) + : Editor (props) +{ +} + +gboolean +PunctEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) +{ + return Editor::processKeyEvent (keyval, keycode, modifiers); +} + +void +PunctEditor::pageUp (void) +{ + Editor::pageUp (); +} + +void +PunctEditor::pageDown (void) +{ + Editor::pageDown (); +} + +void +PunctEditor::cursorUp (void) +{ + Editor::cursorUp (); +} + +void +PunctEditor::cursorDown (void) +{ + Editor::cursorDown (); +} + +void +PunctEditor::update (void) +{ + Editor::update (); +} + +void +PunctEditor::reset (void) +{ + Editor::reset (); +} + +void +PunctEditor::candidateClicked (guint index, guint button, guint state) +{ + Editor::candidateClicked (index, button, state); +} + +}; + + -- cgit From 40b35c83033ba26a661731f44405280ed91bd48a Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Sun, 16 May 2010 12:42:22 +0800 Subject: Add PunctTable.h --- src/PunctEditor.cc | 2 + src/PunctTable.h | 197 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 199 insertions(+) create mode 100644 src/PunctTable.h (limited to 'src') diff --git a/src/PunctEditor.cc b/src/PunctEditor.cc index 5b22ce5..45c7dba 100644 --- a/src/PunctEditor.cc +++ b/src/PunctEditor.cc @@ -2,6 +2,8 @@ namespace PY { +#include "PunctTable.h" + PunctEditor::PunctEditor (PinyinProperties & props) : Editor (props) { diff --git a/src/PunctTable.h b/src/PunctTable.h new file mode 100644 index 0000000..939c318 --- /dev/null +++ b/src/PunctTable.h @@ -0,0 +1,197 @@ +static const gchar * const +puncts[] = { + "", ",", "。", "「", "」", "、", ":", ";", "?", "!", NULL, + "!", "!", "﹗", "‼", "⁉", NULL, + "\"", "“", "”", """, NULL, + "#", "#", "﹟", "♯", NULL, + "$", "$", "€", "﹩", "¢", "£", "¥", NULL, + "%", "%", "﹪", "‰", "‱", "㏙", "㏗", NULL, + "&", "&", "﹠", NULL, + "(", "(", "︵", "﹙", NULL, + ")", ")", "︶", "﹚", NULL, + "*", "*", "×", "※", "╳", "﹡", "⁎", "⁑", "⁂", "⌘", NULL, + "+", "+", "±", "﹢", NULL, + ",", ",", "、", "﹐", "﹑", NULL, + "-", "…", "—", "-", "¯", "﹉", " ̄", "﹊", "ˍ", "–", "‥", NULL, + ".", "。", "·", "‧", "﹒", ".", NULL, + "/", "/", "÷", "↗", "↙", "∕", NULL, + "0", "0", NULL, + "1", "1", NULL, + "2", "2", NULL, + "3", "3", NULL, + "4", "4", NULL, + "5", "5", NULL, + "6", "6", NULL, + "7", "7", NULL, + "8", "8", NULL, + "9", "9", NULL, + ":", ":", "︰", "﹕", NULL, + ";", ";", "﹔", NULL, + "<", "<", "〈", "《", "︽", "︿", "﹤", NULL, + "=", "=", "≒", "≠", "≡", "≦", "≧", "﹦", NULL, + ">", ">", "〉", "》", "︾", "﹀", "﹥", NULL, + "?", "?", "﹖", "⁇", "⁈", NULL, + "@", "@", "⊕", "⊙", "㊣", "﹫", "◉", "◎", NULL, + "A", "A", NULL, + "B", "B", NULL, + "C", "C", NULL, + "D", "D", NULL, + "E", "E", NULL, + "F", "F", NULL, + "G", "G", NULL, + "H", "H", NULL, + "I", "I", NULL, + "J", "J", NULL, + "K", "K", NULL, + "L", "L", NULL, + "M", "M", NULL, + "N", "N", NULL, + "O", "O", NULL, + "P", "P", NULL, + "Q", "Q", NULL, + "R", "R", NULL, + "S", "S", NULL, + "T", "T", NULL, + "U", "U", NULL, + "V", "V", NULL, + "W", "W", NULL, + "X", "X", NULL, + "Y", "Y", NULL, + "Z", "Z", NULL, + "[", "「", "[", "『", "【", "「", "︻", "﹁", "﹃", NULL, + "'", "、", "‘", "’", NULL, + "\\", "\", "↖", "↘", "﹨", NULL, + "]", "」", "]", "』", "】", "」", "︼", "﹂", "﹄", NULL, + "^", "︿", "〈", "《", "︽", "﹤", "<", NULL, + "_", "_", "╴", "←", "→", NULL, + "`", "‵", "′", NULL, + "a", "a", NULL, + "b", "b", NULL, + "c", "c", NULL, + "d", "d", NULL, + "e", "e", NULL, + "f", "f", NULL, + "g", "g", NULL, + "h", "h", NULL, + "i", "i", NULL, + "j", "j", NULL, + "k", "k", NULL, + "l", "l", NULL, + "m", "m", NULL, + "n", "n", NULL, + "o", "o", NULL, + "p", "p", NULL, + "q", "q", NULL, + "r", "r", NULL, + "s", "s", NULL, + "t", "t", NULL, + "u", "u", NULL, + "v", "v", NULL, + "w", "w", NULL, + "x", "x", NULL, + "y", "y", NULL, + "z", "z", NULL, + "{", "{", "︷", "﹛", "〔", "﹝", "︹", NULL, + "|", "|", "↑", "↓", "∣", "∥", "︱", "︳", "︴", "¦", NULL, + "}", "}", "︸", "﹜", "〕", "﹞", "︺", NULL, + "~", "~", "﹋", "﹌", NULL, +}; + +static const gchar * const * const +punct_table[] = { + &puncts[0], // "" + &puncts[11], // "!" + &puncts[17], // "\"" + &puncts[22], // "#" + &puncts[27], // "$" + &puncts[35], // "%" + &puncts[43], // "&" + &puncts[47], // "(" + &puncts[52], // ")" + &puncts[57], // "*" + &puncts[68], // "+" + &puncts[73], // "," + &puncts[79], // "-" + &puncts[91], // "." + &puncts[98], // "/" + &puncts[105], // "0" + &puncts[108], // "1" + &puncts[111], // "2" + &puncts[114], // "3" + &puncts[117], // "4" + &puncts[120], // "5" + &puncts[123], // "6" + &puncts[126], // "7" + &puncts[129], // "8" + &puncts[132], // "9" + &puncts[135], // ":" + &puncts[140], // ";" + &puncts[144], // "<" + &puncts[152], // "=" + &puncts[161], // ">" + &puncts[169], // "?" + &puncts[175], // "@" + &puncts[184], // "A" + &puncts[187], // "B" + &puncts[190], // "C" + &puncts[193], // "D" + &puncts[196], // "E" + &puncts[199], // "F" + &puncts[202], // "G" + &puncts[205], // "H" + &puncts[208], // "I" + &puncts[211], // "J" + &puncts[214], // "K" + &puncts[217], // "L" + &puncts[220], // "M" + &puncts[223], // "N" + &puncts[226], // "O" + &puncts[229], // "P" + &puncts[232], // "Q" + &puncts[235], // "R" + &puncts[238], // "S" + &puncts[241], // "T" + &puncts[244], // "U" + &puncts[247], // "V" + &puncts[250], // "W" + &puncts[253], // "X" + &puncts[256], // "Y" + &puncts[259], // "Z" + &puncts[262], // "[" + &puncts[272], // "'" + &puncts[277], // "\\" + &puncts[283], // "]" + &puncts[293], // "^" + &puncts[301], // "_" + &puncts[307], // "`" + &puncts[311], // "a" + &puncts[314], // "b" + &puncts[317], // "c" + &puncts[320], // "d" + &puncts[323], // "e" + &puncts[326], // "f" + &puncts[329], // "g" + &puncts[332], // "h" + &puncts[335], // "i" + &puncts[338], // "j" + &puncts[341], // "k" + &puncts[344], // "l" + &puncts[347], // "m" + &puncts[350], // "n" + &puncts[353], // "o" + &puncts[356], // "p" + &puncts[359], // "q" + &puncts[362], // "r" + &puncts[365], // "s" + &puncts[368], // "t" + &puncts[371], // "u" + &puncts[374], // "v" + &puncts[377], // "w" + &puncts[380], // "x" + &puncts[383], // "y" + &puncts[386], // "z" + &puncts[389], // "{" + &puncts[397], // "|" + &puncts[408], // "}" + &puncts[416], // "~" +}; -- cgit From b3ac1d2c04008c989c215b2ff3e9f84585bc76ce Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Sun, 16 May 2010 12:57:00 +0800 Subject: Add PunctTable in Makefile.am --- src/Makefile.am | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 6c914c8..705f5b3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -59,6 +59,7 @@ ibus_engine_c_sources = \ $(NULL) ibus_engine_built_h_sources = \ PinyinParserTable.h \ + PunctTable.h \ SimpTradConverterTable.h \ $(NULL) ibus_engine_h_sources = \ @@ -164,8 +165,12 @@ CLEANFILES = \ PinyinParserTable.h: $(PYTHON) $(top_srcdir)/scripts/genpytable.py > $@ +PunctTable.h: + $(PYTHON) $(top_srcdir)/scripts/genpuncttable.py > $@ + SimpTradConverterTable.h: $(PYTHON) $(srcdir)/update-simptrad-table.py > $@ + update-simptrad-table: $(RM) ZhConversion.php ZhConversion.py SimpTradConverterTable.h $(MAKE) ZhConversion.php -- cgit From af19867e06534726ed91ab6c7b17bc5214ac53fa Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Sun, 16 May 2010 13:01:27 +0800 Subject: Add PunctEditor.h --- src/PunctEditor.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/PunctEditor.h (limited to 'src') diff --git a/src/PunctEditor.h b/src/PunctEditor.h new file mode 100644 index 0000000..e773158 --- /dev/null +++ b/src/PunctEditor.h @@ -0,0 +1,27 @@ +/* vim:set et sts=4: */ +#ifndef __PY_PUNCT_EDITOR__ +#define __PY_PUNCT_EDITOR__ + +#include +#include "Editor.h" + +namespace PY { + +class PunctEditor : public Editor { +public: + PunctEditor (PinyinProperties &props); + + virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers); + virtual void pageUp (void); + virtual void pageDown (void); + virtual void cursorUp (void); + virtual void cursorDown (void); + virtual void update (void); + virtual void reset (void); + virtual void candidateClicked (guint index, guint button, guint state); + +private: +}; + +}; +#endif -- cgit From 8df3e417526b436fadfb7eeced6bde5cc24577e0 Mon Sep 17 00:00:00 2001 From: BYVoid Date: Sun, 16 May 2010 23:02:07 +0800 Subject: implement PunctEditor for BopomofoEngine --- src/BopomofoEditor.cc | 40 ++--- src/PunctEditor.cc | 444 ++++++++++++++++++++++++++++++++++++++++++++++++-- src/PunctEditor.h | 28 +++- 3 files changed, 473 insertions(+), 39 deletions(-) (limited to 'src') diff --git a/src/BopomofoEditor.cc b/src/BopomofoEditor.cc index a93fe24..684180f 100644 --- a/src/BopomofoEditor.cc +++ b/src/BopomofoEditor.cc @@ -15,9 +15,9 @@ namespace PY { BopomofoEditor::BopomofoEditor (PinyinProperties & props) - : PinyinEditor (props) + : PinyinEditor (props), + m_select_mode (FALSE) { - m_select_mode = FALSE; } BopomofoEditor::~BopomofoEditor (void) @@ -251,7 +251,6 @@ BopomofoEditor::processNumber (guint keyval, guint keycode, guint modifiers) break; default: return FALSE; - g_return_val_if_reached (FALSE); } selectCandidateInPage (i); @@ -303,7 +302,7 @@ BopomofoEditor::processNumberWithShift (guint keyval, guint keycode, guint modif i = 9; break; default: - g_return_val_if_reached (FALSE); + return FALSE; } selectCandidateInPage (i); @@ -317,6 +316,9 @@ BopomofoEditor::processBopomofo (guint keyval, guint keycode, guint modifiers) if (G_UNLIKELY (CMSHM_FILTER(modifiers) != 0)) return m_text ? TRUE : FALSE; + if (keyvalToBopomofo(keyval) == BOPOMOFO_ZERO) + return FALSE; + m_select_mode = FALSE; return insert (keyval); @@ -333,36 +335,18 @@ BopomofoEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) IBUS_META_MASK | IBUS_LOCK_MASK); - if (m_select_mode == TRUE && keyval >= IBUS_0 && keyval <= IBUS_9) { - return processNumber (keyval, keycode, modifiers); - } + if (m_select_mode == TRUE && processNumber (keyval, keycode, modifiers) == TRUE) + return TRUE; + if (processNumberWithShift (keyval, keycode, modifiers) == TRUE) + return TRUE; + if (processBopomofo(keyval, keycode ,modifiers)) + return TRUE; switch (keyval) { /* Bopomofo */ - case IBUS_a ... IBUS_z: - case IBUS_0 ... IBUS_9: - case IBUS_comma: - case IBUS_period: - case IBUS_slash: - case IBUS_semicolon: - case IBUS_minus: - return processBopomofo (keyval, keycode, modifiers); - case IBUS_KP_0 ... IBUS_KP_9: return processNumber (keyval, keycode, modifiers); - case IBUS_exclam: - case IBUS_at: - case IBUS_numbersign: - case IBUS_dollar: - case IBUS_percent: - case IBUS_asciicircum: - case IBUS_ampersand: - case IBUS_asterisk: - case IBUS_parenleft: - case IBUS_parenright: - return processNumberWithShift (keyval, keycode, modifiers); - case IBUS_space: m_select_mode = TRUE; return processSpace (keyval, keycode, modifiers); diff --git a/src/PunctEditor.cc b/src/PunctEditor.cc index 45c7dba..5304b74 100644 --- a/src/PunctEditor.cc +++ b/src/PunctEditor.cc @@ -1,60 +1,484 @@ #include "PunctEditor.h" +#include + +#define CMSHM_MASK \ + (IBUS_CONTROL_MASK | \ + IBUS_MOD1_MASK | \ + IBUS_SUPER_MASK | \ + IBUS_HYPER_MASK | \ + IBUS_META_MASK) + +#define CMSHM_FILTER(modifiers) \ + (modifiers & (CMSHM_MASK)) namespace PY { #include "PunctTable.h" PunctEditor::PunctEditor (PinyinProperties & props) - : Editor (props) + : Editor (props), + m_punct_mode (FALSE), + m_lookup_table (Config::pageSize ()) +{ +} + +gboolean +PunctEditor::insert (gchar ch) { + m_text.insert (m_cursor++, ch); + update (); + return TRUE; +} + +inline gboolean +PunctEditor::processSpace (guint keyval, guint keycode, guint modifiers) +{ + if (!m_text) + return FALSE; + if (CMSHM_FILTER (modifiers) != 0) + return TRUE; + if (m_lookup_table.size () != 0) { + selectCandidate (m_lookup_table.cursorPos ()); + } + else { + commit (); + } + return TRUE; +} + +gboolean +PunctEditor::processPunct (guint keyval, guint keycode, guint modifiers) +{ + if (CMSHM_FILTER (modifiers) != 0) + return TRUE; + + if (m_punct_mode == FALSE) { + if (keyval == IBUS_grave) { + m_punct_mode = TRUE; + return insert('`'); + } + return FALSE; + } + + switch (keyval) { + case IBUS_grave: /* ` */ + case IBUS_asciitilde: /* ~ */ + case IBUS_exclam: /* ~ */ + case IBUS_at: /* @ */ + case IBUS_numbersign: /* # */ + case IBUS_dollar: /* $ */ + case IBUS_percent: /* % */ + case IBUS_asciicircum: /* ^ */ + case IBUS_ampersand: /* & */ + case IBUS_asterisk: /* * */ + case IBUS_parenleft: /* ( */ + case IBUS_parenright: /* ) */ + case IBUS_minus: /* - */ + case IBUS_underscore: /* _ */ + case IBUS_equal: /* = */ + case IBUS_plus: /* + */ + case IBUS_bracketleft: /* [ */ + case IBUS_bracketright: /* ] */ + case IBUS_braceleft: /* { */ + case IBUS_braceright: /* } */ + case IBUS_backslash: /* \ */ + case IBUS_bar: /* | */ + case IBUS_colon: /* : */ + case IBUS_semicolon: /* ; */ + case IBUS_apostrophe: /* ' */ + case IBUS_quotedbl: /* " */ + case IBUS_comma: /* , */ + case IBUS_period: /* . */ + case IBUS_less: /* < */ + case IBUS_greater: /* > */ + case IBUS_slash: /* / */ + case IBUS_question: /* ? */ + case IBUS_0...IBUS_9: + case IBUS_a...IBUS_z: + case IBUS_A...IBUS_Z: + return insert(keyval); + default: + return FALSE; + } } gboolean PunctEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) { - return Editor::processKeyEvent (keyval, keycode, modifiers); + modifiers &= (IBUS_SHIFT_MASK | + IBUS_CONTROL_MASK | + IBUS_MOD1_MASK | + IBUS_SUPER_MASK | + IBUS_HYPER_MASK | + IBUS_META_MASK | + IBUS_LOCK_MASK); + + printf("%d %d %d\n",keyval,keycode,modifiers); + + if (processPunct(keyval,keycode,modifiers) == TRUE) + return TRUE; + + switch (keyval) { + case IBUS_space: + return processSpace (keyval, keycode, modifiers); + + case IBUS_Return: + case IBUS_KP_Enter: + commit (); + return TRUE; + + case IBUS_BackSpace: + removeCharBefore (); + return TRUE; + + case IBUS_Delete: + case IBUS_KP_Delete: + removeCharAfter (); + return TRUE; + + case IBUS_Left: + case IBUS_KP_Left: + moveCursorLeft (); + return TRUE; + + case IBUS_Right: + case IBUS_KP_Right: + moveCursorRight (); + return TRUE; + + case IBUS_Home: + case IBUS_KP_Home: + moveCursorToBegin (); + return TRUE; + + case IBUS_End: + case IBUS_KP_End: + moveCursorToEnd (); + return TRUE; + + case IBUS_Up: + case IBUS_KP_Up: + cursorUp (); + return TRUE; + + case IBUS_Down: + case IBUS_KP_Down: + cursorDown (); + return TRUE; + + case IBUS_Page_Up: + case IBUS_KP_Page_Up: + pageUp (); + return TRUE; + + case IBUS_Page_Down: + case IBUS_KP_Page_Down: + case IBUS_Tab: + pageDown (); + return TRUE; + default: + return Editor::processKeyEvent (keyval, keycode, modifiers); + } } void PunctEditor::pageUp (void) { - Editor::pageUp (); + if (G_LIKELY (m_lookup_table.pageUp ())) { + updateLookupTableFast (m_lookup_table, TRUE); + updatePreeditText (); + updateAuxiliaryText (); + } } void PunctEditor::pageDown (void) { - Editor::pageDown (); + if (G_LIKELY( + (m_lookup_table.pageDown ()) || + (fillLookupTableByPage () && m_lookup_table.pageDown ()))) { + updateLookupTableFast (m_lookup_table, TRUE); + updatePreeditText (); + updateAuxiliaryText (); + } } void PunctEditor::cursorUp (void) { - Editor::cursorUp (); + if (G_LIKELY (m_lookup_table.cursorUp ())) { + updateLookupTableFast (m_lookup_table, TRUE); + updatePreeditText (); + updateAuxiliaryText (); + } } void PunctEditor::cursorDown (void) { - Editor::cursorDown (); + if (G_LIKELY ( + (m_lookup_table.cursorPos () == m_lookup_table.size () - 1) && + (fillLookupTableByPage () == FALSE))) { + return; + } + + if (G_LIKELY (m_lookup_table.cursorDown ())) { + updateLookupTableFast (m_lookup_table, TRUE); + updatePreeditText (); + updateAuxiliaryText (); + } } -void -PunctEditor::update (void) +gboolean +PunctEditor::moveCursorLeft (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + m_cursor --; + update(); + return TRUE; +} + +gboolean +PunctEditor::moveCursorRight (void) { - Editor::update (); + if (G_UNLIKELY (m_cursor == m_text.length ())) + return FALSE; + m_cursor ++; + update(); + return TRUE; +} + +gboolean +PunctEditor::moveCursorToBegin (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + m_cursor = 0; + update (); + return TRUE; +} + +gboolean +PunctEditor::moveCursorToEnd (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return FALSE; + m_cursor = m_text.length (); + update(); + return TRUE; +} + +gboolean +PunctEditor::removeCharBefore (void) +{ + if (G_UNLIKELY (m_cursor == 0)) + return FALSE; + + m_cursor --; + m_text.erase (m_cursor, 1); + if (m_text.empty()) + m_punct_mode = FALSE; + + update(); + + return TRUE; +} + +gboolean +PunctEditor::removeCharAfter (void) +{ + if (G_UNLIKELY (m_cursor == m_text.length ())) + return FALSE; + + m_text.erase (m_cursor, 1); + if (m_text.empty()) + m_punct_mode = FALSE; + + update(); + + return TRUE; } void PunctEditor::reset (void) { + m_punct_mode = FALSE; Editor::reset (); } void PunctEditor::candidateClicked (guint index, guint button, guint state) { - Editor::candidateClicked (index, button, state); + selectCandidateInPage(index); +} + +inline void +PunctEditor::commit (const gchar *str) +{ + StaticText text(str); + commitText (text); +} + +void +PunctEditor::commit (void) +{ + commit ((const gchar *)m_text); + reset(); +} + +inline gboolean +PunctEditor::selectCandidate (guint i) +{ + m_buffer.clear (); + m_buffer << m_punct_candidates[i]; + reset(); + commit ((const gchar *) m_buffer); + return FALSE; +} + +inline gboolean +PunctEditor::selectCandidateInPage (guint i) +{ + guint page_size = m_lookup_table.pageSize (); + guint cursor_pos = m_lookup_table.cursorPos (); + + if (G_UNLIKELY (i >= page_size)) + return FALSE; + i += (cursor_pos / page_size) * page_size; + + return selectCandidate (i); +} + +void +PunctEditor::update (void) +{ + updateLookupTable (); + updatePreeditText (); + updateAuxiliaryText (); +} + +void +PunctEditor::updateLookupTable (void) +{ + m_lookup_table.clear (); + m_lookup_table.setPageSize (Config::pageSize ()); + m_lookup_table.setOrientation (Config::orientation ()); + + fillLookupTableByPage (); + if (m_lookup_table.size ()) { + Editor::updateLookupTable (m_lookup_table, TRUE); + } + else { + hideLookupTable (); + } +} + +static int +punct_cmp (const void *p1, const void *p2) +{ + const gchar *s1 = (gchar *) p1; + const gchar *s2 = **(gchar ***) p2; + return strcmp(s1,s2); +} + +void +PunctEditor::getPunctCandidates (void) +{ + const gchar *** brs; + const gchar ** res; + m_punct_candidates.clear(); + + if (m_text.empty()) + return; + + brs = (const gchar ***) std::bsearch (m_text.c_str() + 1, punct_table, + G_N_ELEMENTS (punct_table), + sizeof(punct_table[0]), + punct_cmp); + if (brs == NULL) + return; + + for (res = (*brs) + 1 ;*res != NULL; ++res ) { + m_punct_candidates.push_back(*res); + } +} + +gboolean +PunctEditor::fillLookupTableByPage (void) +{ + guint filled_nr = m_lookup_table.size (); + guint page_size = m_lookup_table.pageSize (); + guint candidates_count; + + getPunctCandidates(); + candidates_count = m_punct_candidates.size(); + + guint need_nr = MIN (page_size, candidates_count - filled_nr); + g_assert (need_nr >= 0); + if (need_nr == 0) { + return FALSE; + } + + for (guint i = filled_nr; i < filled_nr + need_nr; i++) { + Text text (m_punct_candidates[i]); + text.appendAttribute (IBUS_ATTR_TYPE_FOREGROUND, 0x004466, 0, -1); + m_lookup_table.appendCandidate (text); + } + + return TRUE; +} + +void +PunctEditor::updateAuxiliaryText (void) +{ + if (G_UNLIKELY (m_punct_mode == FALSE)) { + hideAuxiliaryText (); + return; + } + + m_buffer.clear(); + for (String::iterator i = m_text.begin(); i!=m_text.end(); ++i) { + if (i - m_text.begin() == m_cursor) + m_buffer << '|'; + m_buffer << *i; + } + if (m_text.end() - m_text.begin() == m_cursor) + m_buffer << '|'; + + StaticText aux_text (m_buffer); + Editor::updateAuxiliaryText (aux_text, TRUE); +} + +void +PunctEditor::updatePreeditText (void) +{ + if (G_UNLIKELY (m_punct_mode == FALSE )) { + hidePreeditText (); + return; + } + + guint edit_begin = 0; + guint edit_end = 0; + + m_buffer.clear (); + if (m_lookup_table.size() != 0) { + guint cursor = m_lookup_table.cursorPos (); + m_buffer << m_punct_candidates[cursor]; + } + + StaticText preedit_text (m_buffer); + /* underline */ + preedit_text.appendAttribute (IBUS_ATTR_TYPE_UNDERLINE, IBUS_ATTR_UNDERLINE_SINGLE, 0, -1); + + /* candidate */ + if (edit_begin < edit_end) { + preedit_text.appendAttribute (IBUS_ATTR_TYPE_FOREGROUND, 0x00000000, + edit_begin, edit_end); + preedit_text.appendAttribute (IBUS_ATTR_TYPE_BACKGROUND, 0x00c8c8f0, + edit_begin, edit_end); + } + Editor::updatePreeditText (preedit_text, edit_begin, TRUE); } }; diff --git a/src/PunctEditor.h b/src/PunctEditor.h index e773158..773ee87 100644 --- a/src/PunctEditor.h +++ b/src/PunctEditor.h @@ -4,6 +4,7 @@ #include #include "Editor.h" +#include "PhraseEditor.h" namespace PY { @@ -20,7 +21,32 @@ public: virtual void reset (void); virtual void candidateClicked (guint index, guint button, guint state); -private: + virtual gboolean processPunct (guint keyval, guint keycode, guint modifiers); + virtual gboolean processSpace (guint keyval, guint keycode, guint modifiers); + virtual gboolean insert (gchar ch); + virtual void updateLookupTable (void); + virtual gboolean fillLookupTableByPage (void); + virtual void updateAuxiliaryText (void); + virtual void updatePreeditText (void); + virtual void getPunctCandidates (void); + virtual gboolean selectCandidate (guint i); + virtual gboolean selectCandidateInPage (guint i); + virtual void commit (const gchar *str); + virtual void commit (void); + virtual gboolean removeCharBefore (void); + virtual gboolean removeCharAfter (void); + virtual gboolean moveCursorLeft (void); + virtual gboolean moveCursorRight (void); + virtual gboolean moveCursorToBegin (void); + virtual gboolean moveCursorToEnd (void); + +protected: + gboolean m_punct_mode; + LookupTable m_lookup_table; + //PhraseEditor m_phrase_editor; + String m_buffer; + std::vector m_punct_candidates; + }; }; -- cgit From acf0cdaca6d0c75359f90f4a888c6c99fc47c49b Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 17 May 2010 07:12:59 +0800 Subject: Fix the order of punct_table --- src/PunctEditor.cc | 8 ++-- src/PunctTable.h | 108 ++++++++++++++++++++++++++--------------------------- 2 files changed, 57 insertions(+), 59 deletions(-) (limited to 'src') diff --git a/src/PunctEditor.cc b/src/PunctEditor.cc index 5304b74..22467bd 100644 --- a/src/PunctEditor.cc +++ b/src/PunctEditor.cc @@ -113,8 +113,6 @@ PunctEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) IBUS_META_MASK | IBUS_LOCK_MASK); - printf("%d %d %d\n",keyval,keycode,modifiers); - if (processPunct(keyval,keycode,modifiers) == TRUE) return TRUE; @@ -379,7 +377,7 @@ punct_cmp (const void *p1, const void *p2) { const gchar *s1 = (gchar *) p1; const gchar *s2 = **(gchar ***) p2; - return strcmp(s1,s2); + return std::strcmp (s1, s2); } void @@ -439,11 +437,11 @@ PunctEditor::updateAuxiliaryText (void) m_buffer.clear(); for (String::iterator i = m_text.begin(); i!=m_text.end(); ++i) { - if (i - m_text.begin() == m_cursor) + if (i - m_text.begin() == (gint) m_cursor) m_buffer << '|'; m_buffer << *i; } - if (m_text.end() - m_text.begin() == m_cursor) + if (m_text.end() - m_text.begin() == (gint) m_cursor) m_buffer << '|'; StaticText aux_text (m_buffer); diff --git a/src/PunctTable.h b/src/PunctTable.h index 939c318..1d1e533 100644 --- a/src/PunctTable.h +++ b/src/PunctTable.h @@ -7,6 +7,7 @@ puncts[] = { "$", "$", "€", "﹩", "¢", "£", "¥", NULL, "%", "%", "﹪", "‰", "‱", "㏙", "㏗", NULL, "&", "&", "﹠", NULL, + "'", "、", "‘", "’", NULL, "(", "(", "︵", "﹙", NULL, ")", ")", "︶", "﹚", NULL, "*", "*", "×", "※", "╳", "﹡", "⁎", "⁑", "⁂", "⌘", NULL, @@ -59,7 +60,6 @@ puncts[] = { "Y", "Y", NULL, "Z", "Z", NULL, "[", "「", "[", "『", "【", "「", "︻", "﹁", "﹃", NULL, - "'", "、", "‘", "’", NULL, "\\", "\", "↖", "↘", "﹨", NULL, "]", "」", "]", "』", "】", "」", "︼", "﹂", "﹄", NULL, "^", "︿", "〈", "《", "︽", "﹤", "<", NULL, @@ -106,59 +106,59 @@ punct_table[] = { &puncts[27], // "$" &puncts[35], // "%" &puncts[43], // "&" - &puncts[47], // "(" - &puncts[52], // ")" - &puncts[57], // "*" - &puncts[68], // "+" - &puncts[73], // "," - &puncts[79], // "-" - &puncts[91], // "." - &puncts[98], // "/" - &puncts[105], // "0" - &puncts[108], // "1" - &puncts[111], // "2" - &puncts[114], // "3" - &puncts[117], // "4" - &puncts[120], // "5" - &puncts[123], // "6" - &puncts[126], // "7" - &puncts[129], // "8" - &puncts[132], // "9" - &puncts[135], // ":" - &puncts[140], // ";" - &puncts[144], // "<" - &puncts[152], // "=" - &puncts[161], // ">" - &puncts[169], // "?" - &puncts[175], // "@" - &puncts[184], // "A" - &puncts[187], // "B" - &puncts[190], // "C" - &puncts[193], // "D" - &puncts[196], // "E" - &puncts[199], // "F" - &puncts[202], // "G" - &puncts[205], // "H" - &puncts[208], // "I" - &puncts[211], // "J" - &puncts[214], // "K" - &puncts[217], // "L" - &puncts[220], // "M" - &puncts[223], // "N" - &puncts[226], // "O" - &puncts[229], // "P" - &puncts[232], // "Q" - &puncts[235], // "R" - &puncts[238], // "S" - &puncts[241], // "T" - &puncts[244], // "U" - &puncts[247], // "V" - &puncts[250], // "W" - &puncts[253], // "X" - &puncts[256], // "Y" - &puncts[259], // "Z" - &puncts[262], // "[" - &puncts[272], // "'" + &puncts[47], // "'" + &puncts[52], // "(" + &puncts[57], // ")" + &puncts[62], // "*" + &puncts[73], // "+" + &puncts[78], // "," + &puncts[84], // "-" + &puncts[96], // "." + &puncts[103], // "/" + &puncts[110], // "0" + &puncts[113], // "1" + &puncts[116], // "2" + &puncts[119], // "3" + &puncts[122], // "4" + &puncts[125], // "5" + &puncts[128], // "6" + &puncts[131], // "7" + &puncts[134], // "8" + &puncts[137], // "9" + &puncts[140], // ":" + &puncts[145], // ";" + &puncts[149], // "<" + &puncts[157], // "=" + &puncts[166], // ">" + &puncts[174], // "?" + &puncts[180], // "@" + &puncts[189], // "A" + &puncts[192], // "B" + &puncts[195], // "C" + &puncts[198], // "D" + &puncts[201], // "E" + &puncts[204], // "F" + &puncts[207], // "G" + &puncts[210], // "H" + &puncts[213], // "I" + &puncts[216], // "J" + &puncts[219], // "K" + &puncts[222], // "L" + &puncts[225], // "M" + &puncts[228], // "N" + &puncts[231], // "O" + &puncts[234], // "P" + &puncts[237], // "Q" + &puncts[240], // "R" + &puncts[243], // "S" + &puncts[246], // "T" + &puncts[249], // "U" + &puncts[252], // "V" + &puncts[255], // "W" + &puncts[258], // "X" + &puncts[261], // "Y" + &puncts[264], // "Z" + &puncts[267], // "[" &puncts[277], // "\\" &puncts[283], // "]" &puncts[293], // "^" -- cgit From 9e4631290f6c40a74ba1403644b8536fe065ca91 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 17 May 2010 07:17:20 +0800 Subject: Refine some code. --- src/PunctEditor.cc | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/PunctEditor.cc b/src/PunctEditor.cc index 22467bd..254943e 100644 --- a/src/PunctEditor.cc +++ b/src/PunctEditor.cc @@ -1,5 +1,5 @@ -#include "PunctEditor.h" #include +#include "PunctEditor.h" #define CMSHM_MASK \ (IBUS_CONTROL_MASK | \ @@ -192,9 +192,7 @@ PunctEditor::pageUp (void) void PunctEditor::pageDown (void) { - if (G_LIKELY( - (m_lookup_table.pageDown ()) || - (fillLookupTableByPage () && m_lookup_table.pageDown ()))) { + if (G_LIKELY (m_lookup_table.pageDown ())) { updateLookupTableFast (m_lookup_table, TRUE); updatePreeditText (); updateAuxiliaryText (); @@ -214,12 +212,6 @@ PunctEditor::cursorUp (void) void PunctEditor::cursorDown (void) { - if (G_LIKELY ( - (m_lookup_table.cursorPos () == m_lookup_table.size () - 1) && - (fillLookupTableByPage () == FALSE))) { - return; - } - if (G_LIKELY (m_lookup_table.cursorDown ())) { updateLookupTableFast (m_lookup_table, TRUE); updatePreeditText (); @@ -397,7 +389,7 @@ PunctEditor::getPunctCandidates (void) if (brs == NULL) return; - for (res = (*brs) + 1 ;*res != NULL; ++res ) { + for (res = (*brs) + 1; *res != NULL; ++res) { m_punct_candidates.push_back(*res); } } @@ -436,7 +428,7 @@ PunctEditor::updateAuxiliaryText (void) } m_buffer.clear(); - for (String::iterator i = m_text.begin(); i!=m_text.end(); ++i) { + for (String::iterator i = m_text.begin(); i != m_text.end(); ++i) { if (i - m_text.begin() == (gint) m_cursor) m_buffer << '|'; m_buffer << *i; -- cgit From 70c8b03d0e5112fc1fcd9fcc557ff5714767c8bd Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 17 May 2010 07:23:36 +0800 Subject: Do not allow input chars more than 2 --- src/Main.cc | 4 ++-- src/PunctEditor.cc | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/Main.cc b/src/Main.cc index 168731b..0572f9b 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -70,7 +70,7 @@ start_component (void) "zh_CN", "GPL", "Peng Huang ", - PKGDATADIR"/icons/ibus-pinyin.svg", + PKGDATADIR "/icons/ibus-pinyin.svg", "us")); ibus_component_add_engine (component, ibus_engine_desc_new ("bopomofo-debug", @@ -79,7 +79,7 @@ start_component (void) "zh_CN", "GPL", "Peng Huang ", - PKGDATADIR"/icons/ibus-bopomofo.svg", + PKGDATADIR "/icons/ibus-bopomofo.svg", "us")); factory = ibus_factory_new (ibus_bus_get_connection (bus)); diff --git a/src/PunctEditor.cc b/src/PunctEditor.cc index 254943e..d73b990 100644 --- a/src/PunctEditor.cc +++ b/src/PunctEditor.cc @@ -60,6 +60,9 @@ PunctEditor::processPunct (guint keyval, guint keycode, guint modifiers) return FALSE; } + if (m_text.length () >= 2) + return TRUE; + switch (keyval) { case IBUS_grave: /* ` */ case IBUS_asciitilde: /* ~ */ @@ -113,9 +116,6 @@ PunctEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) IBUS_META_MASK | IBUS_LOCK_MASK); - if (processPunct(keyval,keycode,modifiers) == TRUE) - return TRUE; - switch (keyval) { case IBUS_space: return processSpace (keyval, keycode, modifiers); @@ -175,7 +175,7 @@ PunctEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) pageDown (); return TRUE; default: - return Editor::processKeyEvent (keyval, keycode, modifiers); + return processPunct(keyval, keycode, modifiers); } } -- cgit From b46bb4bd7443dcdef7fb790fde5138b9f9f36007 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 17 May 2010 09:47:52 +0800 Subject: Include PunctTable.h in tarball --- src/Makefile.am | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 705f5b3..29a1d01 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -91,6 +91,7 @@ ibus_engine_h_sources = \ Pointer.h \ Property.h \ PunctEditor.h \ + PunctTable.h \ RawEditor.h \ Regex.h \ Signal.h \ -- cgit From 90bb72d5cea0f36397d477251e89ef7e6f627ddc Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 17 May 2010 09:53:55 +0800 Subject: Reset PunctEditor when press Esc --- src/PunctEditor.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/PunctEditor.cc b/src/PunctEditor.cc index d73b990..02958df 100644 --- a/src/PunctEditor.cc +++ b/src/PunctEditor.cc @@ -125,6 +125,10 @@ PunctEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) commit (); return TRUE; + case IBUS_Escape: + reset (); + return TRUE; + case IBUS_BackSpace: removeCharBefore (); return TRUE; -- cgit From d153239dd1681837f445719cacca045a43c9d877 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Mon, 17 May 2010 10:01:11 +0800 Subject: register properties in focusIn --- src/BopomofoEngine.cc | 1 + src/BopomofoEngine.h | 1 + src/Engine.h | 1 - src/PinyinEngine.h | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/BopomofoEngine.cc b/src/BopomofoEngine.cc index 5250de1..cd51b69 100644 --- a/src/BopomofoEngine.cc +++ b/src/BopomofoEngine.cc @@ -107,6 +107,7 @@ BopomofoEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) void BopomofoEngine::focusIn (void) { + registerProperties (m_props.properties ()); } void diff --git a/src/BopomofoEngine.h b/src/BopomofoEngine.h index c3f510c..fc15d17 100644 --- a/src/BopomofoEngine.h +++ b/src/BopomofoEngine.h @@ -3,6 +3,7 @@ #define __PY_BOPOMOFO_ENGINE_H__ #include "Engine.h" +#include "PinyinProperties.h" namespace PY { diff --git a/src/Engine.h b/src/Engine.h index 0ae3906..5c4ab49 100644 --- a/src/Engine.h +++ b/src/Engine.h @@ -11,7 +11,6 @@ #include "Config.h" #include "Editor.h" #include "FallbackEditor.h" -#include "PinyinProperties.h" namespace PY { diff --git a/src/PinyinEngine.h b/src/PinyinEngine.h index c74587a..398c028 100644 --- a/src/PinyinEngine.h +++ b/src/PinyinEngine.h @@ -3,6 +3,7 @@ #define __PY_PINYIN_ENGINE_H__ #include "Engine.h" +#include "PinyinProperties.h" namespace PY { -- cgit