1# Rime schema
2# encoding: utf-8
3
4schema:
5  schema_id: jyut6ping3
6  name: 粵語拼音
7  version: "2021.04.02"
8  author:
9    - Ayaka Mikazuki <ayaka@mail.shn.hk>
10    - LeiMaau <leimaau@qq.com>
11    - chaaklau <chaakming@gmail.com>
12    - laubonghaudoi <laubonghaudoi@icloud.com>
13    - tanxpyox <tanxpyox@gmail.com>
14    - William915 <William915@gmail.com>
15    - szc126 (@szc126)
16    - Bing Jeung <bing@ososo.io>
17    - graphemecluster <graphemecluster@gmail.com>
18
19  description: |-
20    採用香港語言學學會粵語拼音方案
21    https://www.lshk.org/jyutping
22    支援聲調顯示同輸入
23    Telegram 用户交流組 https://t.me/rime_cantonese
24
25  dependencies:
26    - luna_pinyin
27    - loengfan
28    - stroke
29    - cangjie5
30
31switches:
32  - name: ascii_mode
33    reset: 0
34    states: [ 中文, 西文 ]
35  - name: full_shape
36    states: [ 半角, 全角 ]
37  - options: [ noop, variants_hk, trad_tw, simplification ]
38    states: [ 傳統漢字, 香港傳統漢字, 臺灣傳統漢字, 大陆简化汉字 ]
39    # 修改下行,改變預設用字 [0, 1, 2, 3 --> 對應上表]
40    # Edit the following line to change the default character style
41    #    [0 = OpenCC Traditional Chinese; 1 = Hong Kong TC; 2 = Taiwan TC; 3 = Mainland Simplified Chinese]
42    # Or remove to remember user setting
43    reset: 1
44  - name: ascii_punct
45    states: [ 。,, ., ]
46  - name: emoji_suggestion
47    # 取消下行註釋,預設啓動 emoji
48    #reset: 1
49    states: [ 冇 Emoji, 有 Emoji ]
50
51engine:
52  processors:
53    - ascii_composer
54    - recognizer
55    - key_binder
56    - speller
57    - punctuator
58    - selector
59    - navigator
60    - express_editor
61  segmentors:
62    - ascii_segmentor
63    - matcher
64    - affix_segmentor@luna_pinyin
65    - affix_segmentor@loengfan
66    - affix_segmentor@stroke
67    - affix_segmentor@cangjie5
68    - abc_segmentor
69    - punct_segmentor
70    - fallback_segmentor
71  translators:
72    - punct_translator
73    - script_translator
74    - script_translator@luna_pinyin
75    - script_translator@loengfan
76    - table_translator@stroke
77    - table_translator@cangjie5
78  filters:
79    - simplifier@variants_hk
80    - simplifier@trad_tw
81    - simplifier
82    - simplifier@emoji_suggestion
83    - uniquifier
84    - reverse_lookup_filter@jyut6ping3_reverse_lookup
85
86speller:
87  alphabet: zyxwvutsrqponmlkjihgfedcba
88  delimiter: " '"
89  algebra:
90    # 取消下兩行註釋,支援疑影交替: ng- 通 Ø-,Ø- 通 ng-
91    #- derive/^ng([aeiou])/$1/
92    #- derive/^([aeiou])/ng$1/
93
94    # 取消下行註釋,支援泥來合流: n- 併入 l- ,如「你」讀若「理」
95    #- derive/^n(?!g)/l/
96
97    # 取消下行註釋,支援圓唇輔音合口韻缺位: gw-, kw- 併入 g-, k- ,如「國」讀若「各」、「廓」讀若「確」
98    #- derive/^(g|k)w/$1/
99
100    # 取消下行註釋,支援獨立鼻音韻 ng 併入 m,如「吳」讀若「唔」
101    #- derive/^ng([123456])$/m$1/
102
103    - derive/[123456]//           # 忽略聲調
104    - xform/1/v/                  # 陰平
105    - xform/4/vv/                 # 陽平
106    - xform/2/x/                  # 陰上
107    - xform/5/xx/                 # 陽上
108    - xform/3/q/                  # 陰去
109    - xform/6/qq/                 # 陽去
110    - derive/^([aeiou])/q$1/      # 增加 q 表示喉塞
111    - derive/^jy?([aeiou])/y$1/   # 容錯 je -> ye, jyu -> yu
112    - derive/^jyu/ju/             # 容錯 jyu -> ju
113    - derive/yu/y/                # 容錯 jyu -> jy
114    - erase/y(ng|k)/              # y + ng/k 視作簡拼而非 jung/juk
115    - derive/eoi$/oey/            # 容錯
116    - derive/eoi$/eoy/            # 容錯
117    - derive/eo/oe/               # 容錯 eo/oe 不分
118    - derive/oe(ng|k)$/eo$1/      # 容錯
119    - derive/aa$/a/               # 容錯
120    - abbrev/^([a-z]).+$/$1/      # 首字母簡拼
121    - abbrev/^([gk]w|ng).+$/$1/   # 首2字母簡拼
122
123translator:
124  dictionary: jyut6ping3
125  spelling_hints: 8  # 將呢度改作 0,可以去除候選字後邊嘅粵拼提示
126  preedit_format:
127    - xform/([aeioumngptk])vv/${1}4/
128    - xform/([aeioumngptk])xx/${1}5/
129    - xform/([aeioumngptk])qq/${1}6/
130    - xform/([aeioumngptk])v/${1}1/
131    - xform/([aeioumngptk])x/${1}2/
132    - xform/([aeioumngptk])q/${1}3/
133
134luna_pinyin:
135  tag: luna_pinyin
136  dictionary: luna_pinyin
137  prefix: "`"
138  suffix: ";"
139  tips: 〔普通話〕
140  preedit_format:
141    - xform/([nl])v/$1ü/
142    - xform/([nl])ue/$1üe/
143    - xform/([jqxy])v/$1u/
144
145loengfan:
146  tag: loengfan
147  dictionary: loengfan
148  prefix: "r"
149  suffix: ";"
150  tips: 〔粵語兩分〕
151
152stroke:
153  tag: stroke
154  dictionary: stroke
155  prefix: "x"
156  suffix: ";"
157  tips: 〔筆畫〕
158  preedit_format:
159    - xlit/hspnz/一丨丿丶乙/
160
161cangjie5:
162  tag: cangjie5
163  dictionary: cangjie5
164  enable_user_dict: false
165  prefix: "v"
166  suffix: ";"
167  tips: 〔倉頡五代〕
168  preedit_format:
169    - 'xform/^([a-z]*)$/$1\t(\U$1\E)/'
170    - "xlit|ABCDEFGHIJKLMNOPQRSTUVWXYZ|日月金木水火土竹戈十大中一弓人心手口尸廿山女田難卜符|"
171  comment_format:
172    - "xlit|abcdefghijklmnopqrstuvwxyz~|日月金木水火土竹戈十大中一弓人心手口尸廿山女田難卜符~|"
173  disable_user_dict_for_patterns:
174    - "^z.*$"
175    - "^yyy.*$"
176
177jyut6ping3_reverse_lookup:
178  tags: [ luna_pinyin, loengfan, stroke, cangjie5 ]
179  overwrite_comment: false
180  dictionary: jyut6ping3
181
182variants_hk:
183  option_name: variants_hk
184  opencc_config: t2hkf.json
185
186trad_tw:
187  option_name: trad_tw
188  opencc_config: t2tw.json
189
190emoji_suggestion:
191  opencc_config: emoji.json
192  option_name: emoji_suggestion
193  tips: all
194
195punctuator:
196  import_preset: symbols_cantonese
197
198key_binder:
199  import_preset: default
200
201recognizer:
202  import_preset: default
203  patterns:
204    punct: "^/([0-9]0?|[a-z]+)$"
205    luna_pinyin: "^`[a-z']*;?$"
206    loengfan: "^r[a-z']*;?$"
207    stroke: "^x[hspnz]*;?$"
208    cangjie5: "^v[a-z]*;?$"
209