-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathe_pinyin.schema.yaml
285 lines (234 loc) · 14.4 KB
/
e_pinyin.schema.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
#
# Rime schema
# encoding: utf-8
#
# https://github.com/rime/home/wiki/RimeWithSchemata
# https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md
#
# 重新部署时,临时日志文件位置在,运行:%temp%
# Date:2019.05
#
schema:
schema_id: e_pinyin # 方案标识由小写字母、数字、下划线构成
name: E拼音
version: "0.1"
author:
- E
- 佚名
description: |
自定义的汉语简体拼音方案
# dependencies: # 作用于如果本方案依赖于其它方案〔通常来说会依赖其它方案做为反查,抑或是两种或多种方案混用时〕
# - stroke
switches:
- name: ascii_mode # 中英文转换开关。预设0为英文,1为中文
# reset: 0 # 设定默认状态〔reset可不写,此时切换窗口时不会重置到默认状态〕
states: [ 中文, 西文 ]
- name: full_shape # 全角符号/半角符号开关。注意,开启全角时英文字母亦为全角。0为半角,1为全角
# reset: 0
states: [ 半角, 全角 ]
# - name: simplification # 繁简转化开关。0为不开启转化,1为转化。
# - name: zh_simp
# reset: 1
# states: [ 漢字, 汉字 ]
- name: ascii_punct # 中西文标点转换开关,0为中文句读,1为西文标点。
# reset: 0
states: [ 。,, ., ]
# - name: extended_charset # 字符集开关。0为CJK基本字符集,1为CJK全字符集,仅table_translator可用
# states: [ 通用, 增广 ]
- name: emoji_show # 0无1有
reset: 0
states: [ 🈚️, 🈶️ ]
emoji_show:
opencc_config: myemoji.json
option_name: emoji_show
tips: all # 设定是否提示转换前的字,可填none〔或不填〕、char〔仅对单字有效〕、all。就是红色括号及里面的字。
engine:
processors: # 处理各类按键消息
- ascii_composer # 处理西文模式及中西文切换
- recognizer # 与 matcher 搭配,处理符合特定规则的输入码,如网址、反查等
- key_binder # 在特定条件下将按键绑定到其他按键,如重定义逗号、句号为候选翻页键
- speller # 拼写处理器,接受字符按键,编辑输入码
- punctuator # 句读处理器,将单个字符按键直接映射为文字符号
- selector # 选字处理器,处理数字选字键、上、下候选定位、换页键
- navigator # 处理输入栏内的光标移动键
- express_editor # 编辑器,处理空格、回车上屏、回退键等
# - fluid_editor # 句式编辑器,用于以空格断词、回车上屏的【注音】、【语句流】等输入方案,替换 express_editor,也可写作 fluency_editor
segmentors: # 二、这批组件识别不同内容类型,将输入码分段
- ascii_segmentor # 标识西文段落〔譬如在西文模式下〕字母直接上屛
- matcher # 标识符合特定规则的段落,如网址、反查等
- abc_segmentor # 标识常规的文字段落,加上abc这个tag
- punct_segmentor # 标识句读段落〔键入标点符号用〕加上punct这个tag
- fallback_segmentor # 标识其他未标识段落
# - affix_segmentor # 用户自定义tag此项可加载多个实例,后接@+tag名
translators: # 三、这批组件翻译特定类型的编码段为一组候选文字
# - echo_translator 没有其他候选字时,回显输入码〔输入码可以Shift+Enter上屛〕
- punct_translator # 配合punct_segmentor转换标点符号
# - table_translator 码表翻译器,用于仓颉、五笔等基于码表的输入方案,此项可加载多个实例,后接@+翻译器名〔如:cangjie、wubi等〕
- "table_translator@my_custom_phrase" # 码表翻译器,用于仓颉、五笔等基于码表的输入方案,替换 script_translator
# - script_translator 脚本翻译器,用于拼音、粤拼等基于音节表的输入方案,此项可加载多个实例,后接@+翻译器名〔如:pinyin、jyutping等〕
- script_translator # 脚本翻译器,用于拼音等基于音节表的输入方案
filters:
- uniquifier # 过滤重复的候选字,有可能来自繁简转换
- "simplifier@emoji_show"
# - simplifier # 繁简转换,对应下面繁简转化开关
# - cjk_minifier 字符集过滤〔用于script_translator,使之支援extended_charset开关〕
# - reverse_lookup_filter 反查滤镜,以更灵活的方式反查,此项可加载多个实例,后接@+滤镜名〔如:pinyin_lookup、jyutping_lookup等〕
# - single_char_filter 单字过滤器,如加载此组件,则屛敝词典中的词组〔仅table_translator有效〕
speller:
alphabet: zyxwvutsrqponmlkjihgfedcba # 定义本方案输入键,倒背字母表完全是佛振的个人喜好
delimiter: " '" # 上屛时的音节间分音符,隔音符号用「'」;第一位的空白用来自动插入到音节边界处
# initials: # 定义仅作始码之键
# finals: # 定义仅作末码之键
# max_code_length: # 形码最大码长,超过则顶字上屛〔number〕
# auto_select: # 自动上屛〔true或false〕
# auto_select_pattern: # 自动上屏规则,以正则表达式描述,当输入串可以被匹配时自动顶字上屏。
# use_space: # 以空格作输入码〔true或false〕
algebra:
# algebra,拼写运算规则,由之算出的拼写汇入prism中,上面algebra后不能有任何字符,否则出错
# speller的演算包含:
# xform --改写〔不保留原形〕
# derive --衍生〔保留原形〕
# abbrev --简拼〔出字优先级较上两组更低〕
# fuzz --略拼〔此种简拼仅组词,不出单字〕
# xlit --变换〔适合大量一对一变换〕
# erase --删除
- "xform/^([b-df-hj-np-tv-z])$/$1_/" # 改写拼写运算,使得含西文的词汇不影响简拼功能
# 模糊音定义时,此行保留。修改自佛振文档
- erase/^xx$/
# 模糊音定义
# 需要哪组就删去行首的 # 号,单双向任选
- derive/^([zcs])h/$1/ # zh, ch, sh => z, c, s
- derive/^([zcs])([^h])/$1h$2/ # z, c, s => zh, ch, sh
#- derive/^n/l/ # n => l
#- derive/^l/n/ # l => n
# 这两组一般是单向的
#- derive/^r/l/ # r => l
#- derive/^ren/yin/ # ren => yin, reng => ying
#- derive/^r/y/ # r => y
# 下面 hu <=> f 这组写法复杂一些,分情况讨论
#- derive/^hu$/fu/ # hu => fu
#- derive/^hong$/feng/ # hong => feng
#- derive/^hu([in])$/fe$1/ # hui => fei, hun => fen
#- derive/^hu([ao])/f$1/ # hua => fa, ...
#- derive/^fu$/hu/ # fu => hu
#- derive/^feng$/hong/ # feng => hong
#- derive/^fe([in])$/hu$1/ # fei => hui, fen => hun
#- derive/^f([ao])/hu$1/ # fa => hua, ...
# 韵母部份
#- derive/^([bpmf])eng$/$1ong/ # meng = mong, ...
#- derive/([ei])n$/$1ng/ # en => eng, in => ing
#- derive/([ei])ng$/$1n/ # eng => en, ing => in
# 样例足够了,其他请自己总结……
# 反模糊音?
# 谁说方言没有普通话精确、有模糊音,就能有反模糊音。
# 示例为分尖团的中原官话:
#- derive/^ji$/zii/ # 在设计者安排下鸠占鹊巢,尖音i只好双写了
#- derive/^qi$/cii/
#- derive/^xi$/sii/
#- derive/^ji/zi/
#- derive/^qi/ci/
#- derive/^xi/si/
#- derive/^ju/zv/
#- derive/^qu/cv/
#- derive/^xu/sv/
# 韵母部份,只能从大面上覆盖
#- derive/^([bpm])o$/$1eh/ # bo => beh, ...
#- derive/(^|[dtnlgkhzcs]h?)e$/$1eh/ # ge => geh, se => sheh, ...
#- derive/^([gkh])uo$/$1ue/ # guo => gue, ...
#- derive/^([gkh])e$/$1uo/ # he => huo, ...
#- derive/([uv])e$/$1o/ # jue => juo, lve => lvo, ...
#- derive/^fei$/fi/ # fei => fi
#- derive/^wei$/vi/ # wei => vi
#- derive/^([nl])ei$/$1ui/ # nei => nui, lei => lui
#- derive/^([nlzcs])un$/$1vn/ # lun => lvn, zun => zvn, ...
#- derive/^([nlzcs])ong$/$1iong/ # long => liong, song => siong, ...
# 这个办法虽从拼写上做出了区分,然而受词典制约,候选字仍是混的。
# 只有真正的方音输入方案才能做到!但「反模糊音」这个玩法快速而有效!
# 模糊音定义先于简拼定义,方可令简拼支持以上模糊音
- abbrev/^([a-z]).+$/$1/ # 简拼(首字母)
- abbrev/^([zcs]h).+$/$1/ # 简拼(zh, ch, sh)
# 以下是一组容错拼写,《汉语拼音》方案以前者为正
- derive/^([nl])ve$/$1ue/ # nve = nue, lve = lue
- derive/^([jqxy])u/$1v/ # ju = jv,
- derive/un$/uen/ # gun = guen,
- derive/ui$/uei/ # gui = guei,
- derive/iu$/iou/ # jiu = jiou,
# 自动纠正一些常见的按键错误,前面替换后面
- derive/([aeiou])ng$/$1gn/ # dagn => dang
- derive/([dtngkhrzcs])o(u|ng)$/$1o/ # zho => zhong|zhou
- derive/ong$/on/ # zhonguo => zhong guo
- derive/ao$/oa/ # hoa => hao
- derive/([iu])a(o|ng?)$/a$1$2/ # tain => tian
- derive/([szc])h([aoe])ng$/$1$2hng/ # shang => sahng
# 分尖团后 v => ü 的改写条件也要相应地扩充:
#'translator/preedit_format':
# - "xform/([nljqxyzcs])v/$1ü/"
translator:
# enable_charset_filter: # 是否开启字符集过滤〔仅table_translator有效。启用cjk_minifier后可适用于script_translator〕
# enable_encoder: # 是否开启自动造词〔仅table_translator有效〕
# encode_commit_history: # 是否对已上屛词自动成词〔仅table_translator有效〕
# max_phrase_length: # 最大自动成词词长〔仅table_translator有效〕
# enable_completion: # 提前显示尚未输入完整码的字〔仅table_translator有效〕
# sentence_over_completion: # 在无全码对应字而仅有逐键提示时也开启智能组句〔仅table_translator有效〕
# strict_spelling: # 配合speller中的fuzz规则,仅以畧拼码组词〔仅table_translator有效〕
# disable_user_dict_for_patterns: # 禁止某些编码录入用户词典,若输入串匹配指定模式,则在当前的查询中禁用用户词典
enable_sentence: true # 是否开启自动造句,本来默认就开着呐
enable_user_dict: true # 是否开启用户词典〔用户词典记录动态字词频、用户词〕,本来默认就开着呐
#################################### 以上选填true或false ####################################
dictionary: e_pinyin.extended # 翻译器将调取此字典文件
prism: e_pinyin # 设定由此主翻译器的speller生成的棱镜文件名,或此副编译器调用的棱镜名,prism 要以本输入方案的名称来命名,以免把其它方案的拼写映射表覆盖掉
# user_dict: xwords # 设定用户词典名,否则默认为方案名
db_class: userdb # 设定用户词典类型,可设tabledb〔文本〕或userdb〔二进制〕
# 上屛码自定义,后面替换前面
preedit_format:
- "xform/([nl])v/$1ü/"
- "xform/([nl])ue/$1üe/"
- "xform/([jqxy])v/$1u/"
- "xform/([szc])([aoe])hng/$1h$2ng/" # shang 替换 sahng 显示
# comment_format: # 提示码自定义
# always_show_comments: # 允许始终显示候选词注解
# spelling_hints: # 设定多少字以内候选标注完整带调拼音〔仅script_translator有效〕
# initial_quality: # 设定此翻译器出字优先级
# tag: # 设定此翻译器针对的tag。可不填,不填则仅针对abc
# prefix: # 设定此翻译器的前缀标识,可不填,不填则无前缀
# suffix: # 设定此翻译器的尾缀标识,可不填,不填则无尾缀
# tips: # 设定此翻译器的输入前提示符,可不填,不填则无提示符
# closing_tips: # 设定此翻译器的结束输入提示符,可不填,不填则无提示符
#simplifier:
# option_name: zh_simp
#
# https://gist.github.com/lotem/5440677
#
# 自定义词组,例如网址、邮箱什么的,可对应更改所有my_custom_phrase为你喜欢的名字
my_custom_phrase:
db_class: stabledb
dictionary: ""
enable_completion: false
enable_sentence: false
initial_quality: 1 # 设定此翻译器出字优先级
user_dict: my_custom_phrase
punctuator:
import_preset: diy_symbols # 由外部统一文件导入
key_binder:
import_preset: default
recognizer:
import_preset: default
patterns:
email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"
punct: "^/([0-9]0?|[A-Za-z]+)$"
uppercase: "[A-Z][-_+.'0-9A-Za-z]*$"
url: "^(www[.]|https?:|ftp[.:]|mailto:|file:).*$|^[a-z]+[.].+$"
menu:
page_size: 10
# 中西文切换键的默认设置写在 default.yaml 里面
# 以下的 default.custom.yaml 在全局范围重定义该组快速键
#
# 可用的按键有 Caps_Lock, Shift_L, Shift_R, Control_L, control_R
# Mac 系统上的鼠须管不能区分左、右,因此只有对 Shift_L, Control_L 的设定起作用
#
# 已输入编码时按切换键,可以进一步设定输入法中西文切换的形式。
# 可选的临时切换策略有三:
# inline_ascii 在输入法的临时西文编辑区内输入字母、数字、符号、空格等,回车上屏后自动复位到中文
# commit_text 已输入的候选文字上屏并切换至西文输入模式
# commit_code 已输入的编码字符上屏并切换至西文输入模式
# 设为 noop,屏蔽该切换键