KeyHandler // Integrate InlineDumpPinyinInLieuOfZhuyin.
This commit is contained in:
parent
61b2563062
commit
cf3d400858
|
@ -51,4 +51,31 @@ extension KeyHandler {
|
||||||
}
|
}
|
||||||
return cursorIndex
|
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
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
let readings: [String] = currentReadings()
|
var composingBuffer = currentReadings().joined(separator: "-")
|
||||||
let composingBuffer =
|
if mgrPrefs.inlineDumpPinyinInLieuOfZhuyin {
|
||||||
(IME.areWeUsingOurOwnPhraseEditor)
|
composingBuffer = restoreToneOneInZhuyinKey(target: composingBuffer) // 恢復陰平標記
|
||||||
? readings.joined(separator: "-")
|
composingBuffer = Tekkon.cnvPhonaToHanyuPinyin(target: composingBuffer) // 注音轉拼音
|
||||||
: readings.joined(separator: " ")
|
}
|
||||||
|
|
||||||
|
if !IME.areWeUsingOurOwnPhraseEditor {
|
||||||
|
composingBuffer = composingBuffer.replacingOccurrences(of: "-", with: " ")
|
||||||
|
}
|
||||||
|
|
||||||
clear()
|
clear()
|
||||||
|
|
||||||
|
@ -309,7 +313,16 @@ extension KeyHandler {
|
||||||
|
|
||||||
for theAnchor in _walkedNodes {
|
for theAnchor in _walkedNodes {
|
||||||
if let node = theAnchor.node {
|
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
|
let value = node.currentKeyValue().value
|
||||||
if key.contains("_") { // 不要給標點符號等特殊元素加注音
|
if key.contains("_") { // 不要給標點符號等特殊元素加注音
|
||||||
composed += value
|
composed += value
|
||||||
|
|
Loading…
Reference in New Issue