Skip to content

Commit

Permalink
Merge pull request #5 from raawaa/master
Browse files Browse the repository at this point in the history
增加小鹤双拼方案
  • Loading branch information
yuhangch committed Nov 30, 2021
2 parents a4318cd + 5dfa271 commit 53e34cd
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 10 deletions.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,20 +79,21 @@

依赖python环境:

配置`scripts/common.py`中双拼方案配置和解析方法
配置`scripts/common.py`中双拼方案配置和解析方法,例如改为小鹤双拼方案:
```
···
# 修改双拼方案配置
layout = Your_Scheme_layout
layout = Xiaohe_Layout
# 修改声母韵母转换方法
initial_key_parser = Your_Scheme_initial_key_parser
final_key_parser = Your_Scheme_final_key_parser
initial_key_parser = Xiaohe_initial_key_parser
final_key_parser = Xiaohe_final_key_parser
```
安装依赖,执行脚本
```shell
pip3 install -r scripts/requirements.txt
python3 scripts/generate.py
cd scripts
python3 generate.py
```
生成的`PhraseEdit.shuangpin.txt`使用方法与上述相同。

Expand Down
57 changes: 57 additions & 0 deletions scripts/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,63 @@ def MSPY_final_key_parser(pinyin_part: str, bare: bool) -> str:
return pinyin_part
return layout[pinyin_part]

Xiaohe_Layout: Dict = {
"iu": "q",
"ei": "w",
"uan": "r",
"ue": "t",
"ve": "t",
"un": "y",
"uo":"o",
"ie":"p",
"ong": "s",
"iong": "s",
"ai": "d",
"en": "f",
"eng": "g",
"ang": "h",
"an": "j",
"uai": "k",
"ing": "k",
"uang": "l",
"iang": "l",
"ou": "z",
"ua": "x",
"ia": "x",
"ao": "c",
"ui": "v",
"in": "b",
"iao": "n",
"ian": "m",
"sh": "u",
"ch": "i",
"zh": "v",
}

def Xiaohe_initial_key_parser(pinyin_part: str) -> str:
if len(pinyin_part) > 1:
return layout[pinyin_part]
elif pinyin_part in "qwrtypsdfghjklzxcbnm":
return pinyin_part
return ""


def Xiaohe_final_key_parser(pinyin_part: str, bare: bool) -> str:
if bare:
# 小鹤双拼零声母情况
# 单字母韵母,零声母 + 韵母所在键,如: 啊=aa 哦=oo 额=ee
if len(pinyin_part) == 1 and pinyin_part in "euioa":
return pinyin_part + pinyin_part
# 双字母韵母,零声母 + 韵母末字母,如: 爱=ai 恩=en 欧=ou
elif len(pinyin_part) == 2:
return pinyin_part
# 三字母韵母,零声母 + 韵母所在键,如: 昂=ah
else:
return pinyin_part[0] + layout[pinyin_part]
if len(pinyin_part) == 1:
return pinyin_part
else:
return layout[pinyin_part]

# 修改键盘配置
layout = MS_Layout
Expand Down
2 changes: 1 addition & 1 deletion scripts/emoji_all_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from bs4 import BeautifulSoup
from bs4.element import Tag

from scripts.common import write_json
from common import write_json


def write_emoji_json(emoji_all: str, output: str):
Expand Down
6 changes: 3 additions & 3 deletions scripts/generate.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from scripts.emoji_all_parser import write_emoji_json
from scripts.sogou_config import write_config
from scripts.translate_pinyin import write_shuangpin_json, write_quanpin_json
from emoji_all_parser import write_emoji_json
from sogou_config import write_config
from translate_pinyin import write_shuangpin_json, write_quanpin_json
emoji_all_html = "emoji_all.html"
raw_data_path = "../json/data.json"
quanpin_data_path = "../json/quanpin.json"
Expand Down
2 changes: 1 addition & 1 deletion scripts/translate_pinyin.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from pypinyin import pinyin, NORMAL, INITIALS, FINALS

from scripts.common import write_json, initial_key_parser, final_key_parser
from common import write_json, initial_key_parser, final_key_parser

emoji_data_path = "../json/data.json"

Expand Down

0 comments on commit 53e34cd

Please sign in to comment.