Skip to content

Commit 34ab972

Browse files
committed
feat: 搜狗双拼
1 parent 2ada4b8 commit 34ab972

7 files changed

+823
-2
lines changed

default.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
# 要比共享目录的同名文件的 config_version 大才可以生效
9-
config_version: '2023-05-09'
9+
config_version: '2023-08-07'
1010

1111

1212
# 方案列表
@@ -15,6 +15,7 @@ schema_list:
1515
- schema: double_pinyin
1616
- schema: double_pinyin_abc
1717
- schema: double_pinyin_mspy
18+
- schema: double_pinyin_sogou
1819
- schema: double_pinyin_flypy
1920
- schema: double_pinyin_ziguang
2021

double_pinyin_sogou.schema.yaml

+269
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,269 @@
1+
# Rime schema
2+
# encoding: utf-8
3+
4+
5+
# 复制自 rime_ice.schema.yaml ,适配了双拼。
6+
# 双拼键位映射复制自 https://github.com/rime/rime-double-pinyin
7+
# 双拼之间主要就是 speller/algebra 和 translator/preedit_format 这里有区别。
8+
#
9+
# 全拼的自定义文本和双拼有些冲突,改成了 custom_phrase_double ,需要创建 custom_phrase_double.txt 文件。
10+
#
11+
# 默认启用的中英混输词库是全拼的,需要在 melt_eng.dict.yaml 中修改为对应的双拼的。
12+
# 还需要在英文方案 melt_eng.schema.yaml 将数字的拼写规则 __include: algebra_rime_ice 改为对应的双拼。
13+
14+
15+
# 方案说明
16+
schema:
17+
schema_id: double_pinyin_sogou
18+
name: 搜狗双拼
19+
version: "1"
20+
author:
21+
- Dvel
22+
description: |
23+
雾凇拼音 - 搜狗双拼
24+
https://github.com/iDvel/rime-ice
25+
dependencies:
26+
- melt_eng # 英文输入,作为次翻译器挂载到拼音方案
27+
- liangfen # 两分拼字,作为反查挂载到拼音方案
28+
29+
30+
# 开关
31+
# 鼠须管 0.16 后,用快捷键切换时的提示文字由 states 定义
32+
# states: 方案选单显示的名称。可以注释掉,仍可以通过快捷键切换。
33+
# reset: 默认状态。 注释掉后,切换窗口时不会重置到默认状态。
34+
switches:
35+
- name: ascii_mode
36+
states: [ 中, A ]
37+
reset: 0
38+
- name: ascii_punct # 中英标点
39+
states: [ ¥, $ ]
40+
reset: 0
41+
- name: traditionalization
42+
states: [ 简, 繁 ]
43+
reset: 0
44+
- name: emoji
45+
states: [ 💀, 😄 ]
46+
reset: 1
47+
- name: full_shape
48+
states: [ 半角, 全角 ]
49+
reset: 0
50+
51+
52+
# 输入引擎
53+
engine:
54+
processors:
55+
- lua_processor@select_character # 以词定字
56+
- ascii_composer
57+
- recognizer
58+
- key_binder
59+
- speller
60+
- punctuator
61+
- selector
62+
- navigator
63+
- express_editor
64+
segmentors:
65+
- ascii_segmentor
66+
- matcher
67+
- abc_segmentor
68+
- punct_segmentor
69+
- fallback_segmentor
70+
translators:
71+
- punct_translator
72+
- script_translator
73+
- lua_translator@date_translator # 时间、日期、星期
74+
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
75+
- table_translator@melt_eng # 英文输入
76+
- reverse_lookup_translator@liangfen # 反查,两分拼字
77+
- lua_translator@unicode # Unicode
78+
- lua_translator@number_translator # 数字、金额大写
79+
filters:
80+
- lua_filter@corrector # 错音错字提示
81+
- simplifier@emoji # Emoji
82+
- simplifier@traditionalize # 简繁切换
83+
- lua_filter@autocap_filter # 英文自动大写
84+
- lua_filter@reduce_english_filter # 降低部分英语单词在候选项的位置
85+
- uniquifier # 去重
86+
87+
88+
# Lua 配置: 日期、时间、星期、ISO 8601、时间戳的触发关键字
89+
date_translator:
90+
date: date # 日期: 2022-11-29
91+
time: time # 时间: 18:13
92+
week: week # 星期: 星期二
93+
datetime: datetime # ISO 8601: 2022-11-29T18:13:11+08:00
94+
timestamp: timestamp # 时间戳: 1669716794
95+
96+
97+
# Lua 配置: 降低部分英语单词在候选项的位置
98+
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
99+
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」
100+
# 降低之后: 输入 rug 得到 「1.如果 2.rug …… 」
101+
reduce_english_filter:
102+
# 降低到第 idx 个位置
103+
idx: 2
104+
# 要降低的单词,匹配的是输入码,即全小写。
105+
words: [nav, uid, wig,
106+
rug, bus, ship, laos, bail, bam, bans, bib, bos, chic, chit, dab, dag,
107+
dal, dit, dub, dug, fab, gam, ger, gus, hem, hep, hud, kat, lam, lax, lex, lug,
108+
lux, moc, mos, mot, mum, nad, nay, nib, nip, pak, pap, pax, rig, rum, sac, sal,
109+
sax, sec, shin, sis, ska, slang, sus, tad, taj, tac, tic, yep, yum, fax, cain,
110+
key, mob, buy, dam, wap, yes, but, put, lag, buf, lip, aid, aim, dig, dim, din,
111+
dip, pail, cad, chap, bend, lid, gem, tin, tum]
112+
113+
114+
# 主翻译器,拼音
115+
translator:
116+
dictionary: rime_ice # 挂载词库 rime_ice.dict.yaml
117+
prism: double_pinyin_sogou # 多方案共用一个词库时,为避免冲突,需要用 prism 指定一个名字。
118+
spelling_hints: 8 # corrector.lua :为了让错音错字提示的 Lua 同时适配全拼双拼,将拼音显示在 comment 中
119+
always_show_comments: true # corrector.lua :Rime 默认在 preedit 等于 comment 时取消显示 comment,这里强制一直显示,供 corrector.lua 做判断用。
120+
initial_quality: 1.2 # 拼音的权重应该比英文大
121+
preedit_format: # preedit_format 影响到输入框的显示和“Shift+回车”上屏的字符
122+
- xform/([aoe])(\w)/0$2/
123+
- xform/([bpmnljqxy])n/$1in/
124+
- xform/(\w)g/$1eng/
125+
- xform/(\w)q/$1iu/
126+
- xform/([gkhvuirzcs])w/$1ua/
127+
- xform/(\w)w/$1ia/
128+
- xform/([dtnlgkhjqxyvuirzcs])r/$1uan/
129+
- xform/0r/er/
130+
- xform/([dtgkhvuirzcs])v/$1ui/
131+
- xform/(\w)v/$1ve/
132+
- xform/(\w)t/$1ve/
133+
- xform/([gkhvuirzcs])y/$1uai/
134+
- xform/(\w)y/$1v/
135+
- xform/([dtnlgkhvuirzcs])o/$1uo/
136+
- xform/(\w)p/$1un/
137+
- xform/([jqx])s/$1iong/
138+
- xform/(\w)s/$1ong/
139+
- xform/([jqxnl])d/$1iang/
140+
- xform/(\w)d/$1uang/
141+
- xform/(\w)f/$1en/
142+
- xform/(\w)h/$1ang/
143+
- xform/(\w)j/$1an/
144+
- xform/(\w)k/$1ao/
145+
- xform/(\w)l/$1ai/
146+
- xform/(\w)z/$1ei/
147+
- xform/(\w)x/$1ie/
148+
- xform/(\w)c/$1iao/
149+
- xform/(\w)b/$1ou/
150+
- xform/(\w)m/$1ian/
151+
- xform/(\w);/$1ing/
152+
- xform/0(\w)/$1/
153+
- "xform/(^|[ '])v/$1zh/"
154+
- "xform/(^|[ '])i/$1ch/"
155+
- "xform/(^|[ '])u/$1sh/"
156+
- xform/([jqxy])v/$1u/
157+
- xform/([nl])v/$1ü/
158+
159+
160+
# 次翻译器,英文
161+
melt_eng:
162+
dictionary: melt_eng # 挂载词库 melt_eng.dict.yaml
163+
enable_sentence: false # 禁止造句
164+
enable_user_dict: false # 禁用用户词典
165+
initial_quality: 1.1 # 初始权重
166+
comment_format: # 自定义提示码
167+
- xform/.*// # 清空提示码
168+
169+
170+
# 反查:两分(拼字)
171+
liangfen:
172+
dictionary: liangfen # 挂载两分词典 liangfen.dict.yaml
173+
prefix: "L" # 以 L 开头来反查
174+
enable_completion: true # 补全提示
175+
# tips: 〔两分〕 # 反查时显示的文字,建议注释掉,否则很多 L 开头的英文单词也会显示这个
176+
177+
178+
# 自定义短语
179+
custom_phrase:
180+
dictionary: ""
181+
user_dict: custom_phrase_double # 需要手动创建 custom_phrase_double.txt 文件
182+
db_class: stabledb
183+
enable_completion: false # 补全提示
184+
enable_sentence: false # 禁止造句
185+
initial_quality: 99 # custom_phrase 的权重应该比 pinyin 和 melt_eng 大
186+
187+
188+
# Emoji
189+
emoji:
190+
opencc_config: emoji.json
191+
option_name: emoji
192+
193+
194+
# 简繁切换
195+
traditionalize:
196+
option_name: traditionalization
197+
opencc_config: s2t.json # s2t.json | s2hk.json | s2tw.json | s2twp.json
198+
tips: none # 转换提示: all 都显示 | char 仅单字显示 | none 不显示。
199+
excluded_types: [ reverse_lookup ] # 不转换反查(两分拼字)的内容
200+
201+
202+
# 标点符号
203+
# punctuator 下面有三个子项:
204+
# full_shape 全角标点映射
205+
# half_shape 半角标点映射
206+
# symbols Rime 的预设配置是以 '/' 前缀开头输出一系列字符,自定义的 symbols_caps_v.yaml 修改成了 'V' 开头。
207+
punctuator:
208+
full_shape:
209+
__include: default:/punctuator/full_shape # 从 default.yaml 导入配置
210+
half_shape:
211+
__include: default:/punctuator/half_shape # 从 default.yaml 导入配置
212+
symbols:
213+
__include: symbols_caps_v:/symbols # 从 symbols_caps_v.yaml 导入配置
214+
215+
216+
# 处理符合特定规则的输入码,如网址、反查
217+
recognizer:
218+
import_preset: default # 从 default.yaml 继承通用的
219+
patterns: # 再增加方案专有的:
220+
punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols
221+
reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查
222+
unicode: "^U[a-f0-9]+" # 响应 Unicode
223+
number: "^R[0-9]+[.]?[0-9]*" # 响应 number_translator
224+
225+
226+
# 从 default 继承快捷键
227+
key_binder:
228+
import_preset: default # 从 default.yaml 继承通用的
229+
# bindings: # 也可以再增加方案专有的
230+
231+
232+
# 拼写设定
233+
speller:
234+
# 如果不想让什么标点直接上屏,可以加在 alphabet,或者编辑标点符号为两个及以上的映射
235+
alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA;
236+
delimiter: " '" # 第一位<空格>是拼音之间的分隔符;第二位<'>表示可以手动输入单引号来分割拼音。
237+
algebra:
238+
- erase/^xx$/
239+
- derive/^([jqxy])u$/$1v/
240+
- derive/^([aoe].*)$/o$1/
241+
- xform/^([ae])(.*)$/$1$1$2/
242+
- xform/iu$/Ⓠ/
243+
- xform/[iu]a$/Ⓦ/
244+
- xform/er$|[uv]an$/Ⓡ/
245+
- xform/[uv]e$/Ⓣ/
246+
- xform/v$|uai$/Ⓨ/
247+
- xform/^sh/Ⓤ/
248+
- xform/^ch/Ⓘ/
249+
- xform/^zh/Ⓥ/
250+
- xform/uo$/Ⓞ/
251+
- xform/[uv]n$/Ⓟ/
252+
- xform/i?ong$/Ⓢ/
253+
- xform/[iu]ang$/Ⓓ/
254+
- xform/(.)en$/$1Ⓕ/
255+
- xform/(.)eng$/$1Ⓖ/
256+
- xform/(.)ang$/$1Ⓗ/
257+
- xform/ian$/Ⓜ/
258+
- xform/(.)an$/$1Ⓙ/
259+
- xform/iao$/Ⓒ/
260+
- xform/(.)ao$/$1Ⓚ/
261+
- xform/(.)ai$/$1Ⓛ/
262+
- xform/(.)ei$/$1Ⓩ/
263+
- xform/ie$/Ⓧ/
264+
- xform/ui$/Ⓥ/
265+
- xform/(.)ou$/$1Ⓑ/
266+
- xform/in$/Ⓝ/
267+
- xform/ing$/;/
268+
- xlit/ⓆⓌⓇⓉⓎⓊⒾⓄⓅⓈⒹⒻⒼⒽⓂⒿⒸⓀⓁⓏⓍⓋⒷⓃ/qwrtyuiopsdfghmjcklzxvbn/
269+
- abbrev/^(.).+$/$1/ # 首字母简拼

0 commit comments

Comments
 (0)