PINYIN_BOPOMOFO_MAP = dict([(v, k) for k, v in BOPOMOFO_PINYIN_MAP.items()])
+SPECIAL_INITIAL_SET = {'ci', 'chi', 'si', 'shi', 'zi', 'zhi', 'ri'}
+
+'''
SHENG_YUN_BOPOMOFO_MAP = {
"b" : "ㄅ",
"p" : "ㄆ",
"ong" : ("ㄨㄥ", ("jqxy", "ㄩㄥ")), # y後面為ㄩㄥ
"iong" : "ㄩㄥ",
}
+'''
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
import operator
+import bopomofo
from pinyintable import *
from chewingkey import gen_table_index
if "IS_PINYIN" in flags:
pinyin_index.append((wrong, flags, correct))
if "IS_CHEWING" in flags:
- bopomofo_index.append((bopomofo, flags, bopomofo))
+ bopomofo_index.append((bopomofo, flags))
def sort_all():
def gen_bopomofo_index():
entries = []
- for (bopomofo_str, flags, bopomofo) in bopomofo_index:
- index = [x[1] for x in content_table].index(bopomofo)
+ for (bopomofo_str, flags) in bopomofo_index:
+ pinyin_str = bopomofo.BOPOMOFO_PINYIN_MAP[bopomofo_str]
+ index = [x[0] for x in content_table].index(pinyin_str)
entry = '{{"{0}", {1}, {2}}}'.format(bopomofo_str, flags, index)
entries.append(entry)
return ',\n'.join(entries)
#get chewing string
bopomofo_str = bopomofo.PINYIN_BOPOMOFO_MAP[pinyin_key]
- #handle 'ci', 'chi', 'si', 'shi', 'zi', 'zhi', 'ri'
- if pinyin_key in {'ci', 'chi', 'si', 'shi', 'zi', 'zhi', 'ri'}:
+ #handle bopomofo SPECIAL_INITIAL_SET
+ if pinyin_key in bopomofo.SPECIAL_INITIAL_SET:
middle = "CHEWING_I"
#normal process
for char in bopomofo_str:
if pinyin_key in shengmu_list:
flags.append("PINYIN_INCOMPLETE")
chewing_key = bopomofo.PINYIN_BOPOMOFO_MAP[pinyin_key]
- if chewing_key in chewing.CHEWING_ASCII_INITIAL_MAP:
+ if chewing_key in chewing.CHEWING_ASCII_INITIAL_MAP and \
+ pinyin_key not in bopomofo.SPECIAL_INITIAL_SET:
flags.append("CHEWING_INCOMPLETE")
yield pinyin_key, pinyin_key, chewing_key, \
flags, get_chewing(pinyin_key)