diff options
author | Peng Wu <alexepico@gmail.com> | 2015-09-07 15:16:29 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2015-09-07 15:16:29 +0800 |
commit | 9f39cd0266ae44167fe9fb71c9be428d07aff637 (patch) | |
tree | 57d912429641bdae748b67dbc577d4f4b43a7e51 | |
parent | a44728667329e19418cc9fa28a0dd63e8a1ce9bb (diff) | |
download | libpinyin-9f39cd0266ae44167fe9fb71c9be428d07aff637.tar.gz libpinyin-9f39cd0266ae44167fe9fb71c9be428d07aff637.tar.xz libpinyin-9f39cd0266ae44167fe9fb71c9be428d07aff637.zip |
update doublepinyintable.py
-rw-r--r-- | scripts2/doublepinyintable.py | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/scripts2/doublepinyintable.py b/scripts2/doublepinyintable.py index 8c78353..6b1a788 100644 --- a/scripts2/doublepinyintable.py +++ b/scripts2/doublepinyintable.py @@ -21,6 +21,7 @@ from doublepinyin import SHUANGPIN_SCHEMAS +from fullpinyin import YUNMU_LIST def gen_shengmu_table(scheme): @@ -56,6 +57,61 @@ def gen_yunmu_table(scheme): return ',\n'.join(entries) +#https://zh.wikipedia.org/zh-hans/双拼 +def gen_fallback_table2(scheme): + entries = [] + #select yunmu mapping + yun = SHUANGPIN_SCHEMAS[scheme][1] + for yunmu in sorted(YUNMU_LIST): + char1 = yunmu[0] + char2 = None + for k, v in yun.items(): + if len(v) == 1: + if yunmu == v[0]: + char2 = k + if len(v) == 2: + if yunmu == v[0] or yunmu == v[1]: + char2 = k + + if char2 == None: + continue + index = char1 + char2 + entry = '{{"{0}", "{1}"}}'.format(index, yunmu) + entries.append(entry) + return ',\n'.join(entries) + + +def gen_fallback_table3(scheme): + entries = [] + #select yunmu mapping + yun = SHUANGPIN_SCHEMAS[scheme][1] + for yunmu in sorted(YUNMU_LIST): + #special case for double character yunmu + if len(yunmu) == 2: + entry = '{{"{0}", "{1}"}}'.format(yunmu, yunmu) + entries.append(entry) + continue + + #same as gen_fallback_table2 + char1 = yunmu[0] + char2 = None + for k, v in yun.items(): + if len(v) == 1: + if yunmu == v[0]: + char2 = k + if len(v) == 2: + if yunmu == v[0] or yunmu == v[1]: + char2 = k + + if char2 == None: + continue + index = char1 + char2 + entry = '{{"{0}", "{1}"}}'.format(index, yunmu) + entries.append(entry) + return ',\n'.join(entries) + + + ''' def get_table_content(tablename): (scheme, part) = tablename.split('_', 1) @@ -68,4 +124,6 @@ def get_table_content(tablename): ### main function ### if __name__ == "__main__": - pass + print(gen_fallback_table2("PYJJ")) + print(gen_fallback_table3("ZRM")) + print(gen_fallback_table3("XHE")) |