From 69a66088a60c6ae03462f8fba49383e5b4772b46 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Thu, 5 Jan 2012 11:17:49 +0800 Subject: fixes chewing index --- scripts/bopomofo.py | 4 ++++ scripts/genpinyintable.py | 8 +++++--- scripts/pinyintable.py | 7 ++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/scripts/bopomofo.py b/scripts/bopomofo.py index 09a7b88..fe11b1a 100644 --- a/scripts/bopomofo.py +++ b/scripts/bopomofo.py @@ -457,6 +457,9 @@ BOPOMOFO_PINYIN_MAP = { 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" : "ㄆ", @@ -524,3 +527,4 @@ SHENG_YUN_BOPOMOFO_MAP = { "ong" : ("ㄨㄥ", ("jqxy", "ㄩㄥ")), # y後面為ㄩㄥ "iong" : "ㄩㄥ", } +''' diff --git a/scripts/genpinyintable.py b/scripts/genpinyintable.py index c0f91c6..05c0419 100644 --- a/scripts/genpinyintable.py +++ b/scripts/genpinyintable.py @@ -20,6 +20,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import operator +import bopomofo from pinyintable import * from chewingkey import gen_table_index @@ -38,7 +39,7 @@ def filter_pinyin_list(): 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(): @@ -77,8 +78,9 @@ def gen_pinyin_index(): 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) diff --git a/scripts/pinyintable.py b/scripts/pinyintable.py index a1d8d3e..33b5e9c 100644 --- a/scripts/pinyintable.py +++ b/scripts/pinyintable.py @@ -53,8 +53,8 @@ def get_chewing(pinyin_key): #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: @@ -105,7 +105,8 @@ def gen_pinyins(): 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) -- cgit