KeyHandler // Integrate InlineDumpPinyinInLieuOfZhuyin.
This commit is contained in:
parent
61b2563062
commit
cf3d400858
|
@ -51,4 +51,31 @@ extension KeyHandler {
|
|||
}
|
||||
return cursorIndex
|
||||
}
|
||||
|
||||
// 用於網頁 Ruby 的注音需要按照教科書印刷的方式來顯示輕聲,所以這裡處理一下。
|
||||
func cnvZhuyinKeyToTextbookReading(target: String, newSeparator: String = "-") -> String {
|
||||
var arrReturn: [String] = []
|
||||
for neta in target.split(separator: "-") {
|
||||
var newString = String(neta)
|
||||
if String(neta.reversed()[0]) == "˙" {
|
||||
newString = String(neta.dropLast())
|
||||
newString.insert("˙", at: newString.startIndex)
|
||||
}
|
||||
arrReturn.append(newString)
|
||||
}
|
||||
return arrReturn.joined(separator: newSeparator)
|
||||
}
|
||||
|
||||
// 用於網頁 Ruby 的拼音的陰平必須顯示,這裡處理一下。
|
||||
func restoreToneOneInZhuyinKey(target: String, newSeparator: String = "-") -> String {
|
||||
var arrReturn: [String] = []
|
||||
for neta in target.split(separator: "-") {
|
||||
var newNeta = String(neta)
|
||||
if !"ˊˇˋ˙".contains(String(neta.reversed()[0])), !neta.contains("_") {
|
||||
newNeta += "1"
|
||||
}
|
||||
arrReturn.append(newNeta)
|
||||
}
|
||||
return arrReturn.joined(separator: newSeparator)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -281,11 +281,15 @@ extension KeyHandler {
|
|||
return false
|
||||
}
|
||||
|
||||
let readings: [String] = currentReadings()
|
||||
let composingBuffer =
|
||||
(IME.areWeUsingOurOwnPhraseEditor)
|
||||
? readings.joined(separator: "-")
|
||||
: readings.joined(separator: " ")
|
||||
var composingBuffer = currentReadings().joined(separator: "-")
|
||||
if mgrPrefs.inlineDumpPinyinInLieuOfZhuyin {
|
||||
composingBuffer = restoreToneOneInZhuyinKey(target: composingBuffer) // 恢復陰平標記
|
||||
composingBuffer = Tekkon.cnvPhonaToHanyuPinyin(target: composingBuffer) // 注音轉拼音
|
||||
}
|
||||
|
||||
if !IME.areWeUsingOurOwnPhraseEditor {
|
||||
composingBuffer = composingBuffer.replacingOccurrences(of: "-", with: " ")
|
||||
}
|
||||
|
||||
clear()
|
||||
|
||||
|
@ -309,7 +313,16 @@ extension KeyHandler {
|
|||
|
||||
for theAnchor in _walkedNodes {
|
||||
if let node = theAnchor.node {
|
||||
let key = node.currentKeyValue().key.replacingOccurrences(of: "-", with: " ")
|
||||
var key = node.currentKeyValue().key
|
||||
if mgrPrefs.inlineDumpPinyinInLieuOfZhuyin {
|
||||
key = restoreToneOneInZhuyinKey(target: key) // 恢復陰平標記
|
||||
key = Tekkon.cnvPhonaToHanyuPinyin(target: key) // 注音轉拼音
|
||||
key = Tekkon.cnvHanyuPinyinToTextbookStyle(target: key) // 轉教科書式標調
|
||||
key = key.replacingOccurrences(of: "-", with: " ")
|
||||
} else {
|
||||
key = cnvZhuyinKeyToTextbookReading(target: key, newSeparator: " ")
|
||||
}
|
||||
|
||||
let value = node.currentKeyValue().value
|
||||
if key.contains("_") { // 不要給標點符號等特殊元素加注音
|
||||
composed += value
|
||||
|
|
Loading…
Reference in New Issue