InputState // Again disable inline userphrase operation when mismatch.
This commit is contained in:
parent
74bd927426
commit
aefb5878d1
|
@ -280,9 +280,9 @@ public enum InputState {
|
||||||
private var markedTargetExists = false
|
private var markedTargetExists = false
|
||||||
var tooltip: String {
|
var tooltip: String {
|
||||||
if composingBuffer.count != readings.count {
|
if composingBuffer.count != readings.count {
|
||||||
ctlInputMethod.tooltipController.setColor(state: .denialOverflow)
|
ctlInputMethod.tooltipController.setColor(state: .redAlert)
|
||||||
return NSLocalizedString(
|
return NSLocalizedString(
|
||||||
"⚠︎ Beware: Chars and Readings in buffer doesn't match.", comment: ""
|
"⚠︎ Unhandlable: Chars and Readings in buffer doesn't match.", comment: ""
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if mgrPrefs.phraseReplacementEnabled {
|
if mgrPrefs.phraseReplacementEnabled {
|
||||||
|
@ -398,11 +398,9 @@ public enum InputState {
|
||||||
return state
|
return state
|
||||||
}
|
}
|
||||||
|
|
||||||
var validToFilter: Bool {
|
var validToFilter: Bool { markedTargetExists ? allowedMarkRange.contains(literalMarkedRange.count) : false }
|
||||||
/// 與小麥注音不同,威注音會自動解消「游標插斷字符」的異常狀態,所以允許在字音長度不相符的情況下加詞。
|
|
||||||
/// 這裡的 deleteTargetExists 是防止使用者排除「詞庫內尚未存在的詞」。
|
var bufferReadingCountMisMatch: Bool { composingBuffer.count != readings.count }
|
||||||
markedTargetExists ? allowedMarkRange.contains(literalMarkedRange.count) : false
|
|
||||||
}
|
|
||||||
|
|
||||||
var chkIfUserPhraseExists: Bool {
|
var chkIfUserPhraseExists: Bool {
|
||||||
let text = composingBuffer.utf16SubString(with: markedRange)
|
let text = composingBuffer.utf16SubString(with: markedRange)
|
||||||
|
|
|
@ -26,6 +26,7 @@ extension ctlInputMethod: KeyHandlerDelegate {
|
||||||
-> Bool
|
-> Bool
|
||||||
{
|
{
|
||||||
guard let state = state as? InputState.Marking else { return false }
|
guard let state = state as? InputState.Marking else { return false }
|
||||||
|
if state.bufferReadingCountMisMatch { return false }
|
||||||
let refInputModeReversed: InputMode =
|
let refInputModeReversed: InputMode =
|
||||||
(keyHandler.inputMode == InputMode.imeModeCHT)
|
(keyHandler.inputMode == InputMode.imeModeCHT)
|
||||||
? InputMode.imeModeCHS : InputMode.imeModeCHT
|
? InputMode.imeModeCHS : InputMode.imeModeCHT
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
"Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys.";
|
"Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys.";
|
||||||
"Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed.";
|
"Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed.";
|
||||||
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry.";
|
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry.";
|
||||||
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ Beware: Chars and Readings in buffer doesn't match.";
|
"⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match.";
|
||||||
"Per-Char Select Mode" = "Per-Char Select Mode";
|
"Per-Char Select Mode" = "Per-Char Select Mode";
|
||||||
"CNS11643 Mode" = "CNS11643 Mode";
|
"CNS11643 Mode" = "CNS11643 Mode";
|
||||||
"JIS Shinjitai Output" = "JIS Shinjitai Output";
|
"JIS Shinjitai Output" = "JIS Shinjitai Output";
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
"Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys.";
|
"Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys.";
|
||||||
"Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed.";
|
"Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed.";
|
||||||
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry.";
|
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry.";
|
||||||
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ Beware: Chars and Readings in buffer doesn't match.";
|
"⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match.";
|
||||||
"Per-Char Select Mode" = "Per-Char Select Mode";
|
"Per-Char Select Mode" = "Per-Char Select Mode";
|
||||||
"CNS11643 Mode" = "CNS11643 Mode";
|
"CNS11643 Mode" = "CNS11643 Mode";
|
||||||
"JIS Shinjitai Output" = "JIS Shinjitai Output";
|
"JIS Shinjitai Output" = "JIS Shinjitai Output";
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
"Please specify at least 4 candidate keys." = "言選り用キー陣列に少なくとも4つのキーをご登録ください。";
|
"Please specify at least 4 candidate keys." = "言選り用キー陣列に少なくとも4つのキーをご登録ください。";
|
||||||
"Maximum 15 candidate keys allowed." = "言選り用キー陣列には最多15つキー登録できます。";
|
"Maximum 15 candidate keys allowed." = "言選り用キー陣列には最多15つキー登録できます。";
|
||||||
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 言葉置換機能稼働中、新添付言葉にも影響。";
|
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 言葉置換機能稼働中、新添付言葉にも影響。";
|
||||||
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ 注意:緩衝列の字数は読みの数と不同等。";
|
"⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ 対処不可:緩衝列の字数は読みの数と不同等。";
|
||||||
"Per-Char Select Mode" = "全候補入力モード";
|
"Per-Char Select Mode" = "全候補入力モード";
|
||||||
"CNS11643 Mode" = "全字庫モード";
|
"CNS11643 Mode" = "全字庫モード";
|
||||||
"JIS Shinjitai Output" = "JIS 新字体モード";
|
"JIS Shinjitai Output" = "JIS 新字体モード";
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
"Please specify at least 4 candidate keys." = "请至少指定四个选字键。";
|
"Please specify at least 4 candidate keys." = "请至少指定四个选字键。";
|
||||||
"Maximum 15 candidate keys allowed." = "选字键最多只能指定十五个。";
|
"Maximum 15 candidate keys allowed." = "选字键最多只能指定十五个。";
|
||||||
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 语汇置换功能已启用,会波及语汇自订。";
|
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 语汇置换功能已启用,会波及语汇自订。";
|
||||||
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ 注意:组字区字数与读音数不对应。";
|
"⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ 无法处理:组字区字数与读音数不对应。";
|
||||||
"Per-Char Select Mode" = "仿真逐字选字输入";
|
"Per-Char Select Mode" = "仿真逐字选字输入";
|
||||||
"CNS11643 Mode" = "全字库模式";
|
"CNS11643 Mode" = "全字库模式";
|
||||||
"JIS Shinjitai Output" = "JIS 新字体模式";
|
"JIS Shinjitai Output" = "JIS 新字体模式";
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
"Please specify at least 4 candidate keys." = "請至少指定四個選字鍵。";
|
"Please specify at least 4 candidate keys." = "請至少指定四個選字鍵。";
|
||||||
"Maximum 15 candidate keys allowed." = "選字鍵最多只能指定十五個。";
|
"Maximum 15 candidate keys allowed." = "選字鍵最多只能指定十五個。";
|
||||||
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 語彙置換功能已啟用,會波及語彙自訂。";
|
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 語彙置換功能已啟用,會波及語彙自訂。";
|
||||||
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ 注意:組字區字數與讀音數不對應。";
|
"⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ 無法處理:組字區字數與讀音數不對應。";
|
||||||
"Per-Char Select Mode" = "模擬逐字選字輸入";
|
"Per-Char Select Mode" = "模擬逐字選字輸入";
|
||||||
"CNS11643 Mode" = "全字庫模式";
|
"CNS11643 Mode" = "全字庫模式";
|
||||||
"JIS Shinjitai Output" = "JIS 新字體模式";
|
"JIS Shinjitai Output" = "JIS 新字體模式";
|
||||||
|
|
Loading…
Reference in New Issue