Tekkon // 1.3.1 update.
This commit is contained in:
parent
f9c79d06b4
commit
d9e7033f90
|
@ -55,7 +55,7 @@ extension Tekkon {
|
|||
switch isHanyuPinyin {
|
||||
case false: // 注音輸出的場合
|
||||
let valReturnZhuyin = value.replacingOccurrences(of: " ", with: "")
|
||||
return isTextBookStyle ? cnvZhuyinChainToTextbookReading(targetJoined: valReturnZhuyin) : valReturnZhuyin
|
||||
return isTextBookStyle ? cnvPhonaToTextbookReading(target: valReturnZhuyin) : valReturnZhuyin
|
||||
case true: // 拼音輸出的場合
|
||||
let valReturnPinyin = Tekkon.cnvPhonaToHanyuPinyin(targetJoined: value)
|
||||
return isTextBookStyle ? Tekkon.cnvHanyuPinyinToTextbookStyle(targetJoined: valReturnPinyin) : valReturnPinyin
|
||||
|
|
|
@ -13,7 +13,7 @@ extension Tekkon {
|
|||
|
||||
/// 注音轉拼音,要求陰平必須是空格。
|
||||
/// - Parameters:
|
||||
/// - target: 傳入的 String 對象物件。
|
||||
/// - targetJoined: 傳入的 String 對象物件。
|
||||
public static func cnvPhonaToHanyuPinyin(targetJoined: String) -> String {
|
||||
var targetConverted = targetJoined
|
||||
for pair in arrPhonaToHanyuPinyin {
|
||||
|
@ -35,42 +35,32 @@ extension Tekkon {
|
|||
|
||||
/// 該函式負責將注音轉為教科書印刷的方式(先寫輕聲)。
|
||||
/// - Parameters:
|
||||
/// - target: 要拿來做轉換處理的讀音鏈,以英文減號來分隔每個讀音。
|
||||
/// - newSeparator: 新的讀音分隔符。
|
||||
/// - Returns: 經過轉換處理的讀音鏈。
|
||||
public static func cnvZhuyinChainToTextbookReading(targetJoined: String, newSeparator: String = "-") -> String {
|
||||
var arrReturn: [String] = []
|
||||
for neta in targetJoined.split(separator: "-") {
|
||||
var newString = String(neta)
|
||||
if String(neta.reversed()[0]) == "˙" {
|
||||
newString = String(neta.dropLast())
|
||||
/// - target: 要拿來做轉換處理的讀音。
|
||||
/// - Returns: 經過轉換處理的讀音。
|
||||
public static func cnvPhonaToTextbookReading(target: String) -> String {
|
||||
var newString = target
|
||||
if String(target.reversed()[0]) == "˙" {
|
||||
newString = String(target.dropLast())
|
||||
newString.insert("˙", at: newString.startIndex)
|
||||
}
|
||||
arrReturn.append(newString)
|
||||
}
|
||||
return arrReturn.joined(separator: newSeparator)
|
||||
return newString
|
||||
}
|
||||
|
||||
/// 該函式用來恢復注音當中的陰平聲調,恢復之後會以「1」表示陰平。
|
||||
/// - Parameters:
|
||||
/// - target: 要拿來做轉換處理的讀音鏈,以英文減號來分隔每個讀音。
|
||||
/// - newSeparator: 新的讀音分隔符。
|
||||
/// - Returns: 經過轉換處理的讀音鏈。
|
||||
public static func restoreToneOneInZhuyinKey(targetJoined: String, newSeparator: String = "-") -> String {
|
||||
var arrReturn: [String] = []
|
||||
for neta in targetJoined.split(separator: "-") {
|
||||
var newNeta = String(neta)
|
||||
if !"ˊˇˋ˙".contains(String(neta.reversed()[0])), !neta.contains("_") {
|
||||
newNeta += "1"
|
||||
}
|
||||
arrReturn.append(newNeta)
|
||||
}
|
||||
return arrReturn.joined(separator: newSeparator)
|
||||
/// - target: 要拿來做轉換處理的讀音。
|
||||
/// - Returns: 經過轉換處理的讀音。
|
||||
public static func restoreToneOneInPhona(
|
||||
target: String
|
||||
) -> String {
|
||||
var newNeta = target
|
||||
if !"ˊˇˋ˙".contains(String(target.reversed()[0])), !target.contains("_") { newNeta += "1" }
|
||||
return newNeta
|
||||
}
|
||||
|
||||
/// 該函式用來將漢語拼音轉為注音。
|
||||
/// - Parameters:
|
||||
/// - target: 要轉換的漢語拼音內容,要求必須帶有 12345 數字標調。
|
||||
/// - targetJoined: 要轉換的漢語拼音內容,要求必須帶有 12345 數字標調。
|
||||
/// - newToneOne: 對陰平指定新的標記。預設情況下該標記為空字串。
|
||||
/// - Returns: 轉換結果。
|
||||
public static func cnvHanyuPinyinToPhona(targetJoined: String, newToneOne: String = "") -> String {
|
||||
|
|
|
@ -167,8 +167,8 @@ final class TekkonTestsBasic: XCTestCase {
|
|||
XCTAssertEqual(composer.getComposition(), "ㄩㄝ")
|
||||
|
||||
// Testing tool functions
|
||||
XCTAssertEqual(Tekkon.restoreToneOneInZhuyinKey(targetJoined: "ㄉㄧㄠ"), "ㄉㄧㄠ1")
|
||||
XCTAssertEqual(Tekkon.cnvZhuyinChainToTextbookReading(targetJoined: "ㄊㄧㄥ-ㄓㄜ˙"), "ㄊㄧㄥ-˙ㄓㄜ")
|
||||
XCTAssertEqual(Tekkon.restoreToneOneInPhona(target: "ㄉㄧㄠ"), "ㄉㄧㄠ1")
|
||||
XCTAssertEqual(Tekkon.cnvPhonaToTextbookReading(target: "ㄓㄜ˙"), "˙ㄓㄜ")
|
||||
XCTAssertEqual(Tekkon.cnvHanyuPinyinToPhona(targetJoined: "bian4-le5-tian1"), "ㄅㄧㄢˋ-ㄌㄜ˙-ㄊㄧㄢ")
|
||||
// 測試這種情形:「如果傳入的字串不包含任何半形英數內容的話,那麼應該直接將傳入的字串原樣返回」。
|
||||
XCTAssertEqual(Tekkon.cnvHanyuPinyinToPhona(targetJoined: "ㄅㄧㄢˋ-˙ㄌㄜ-ㄊㄧㄢ"), "ㄅㄧㄢˋ-˙ㄌㄜ-ㄊㄧㄢ")
|
||||
|
|
Loading…
Reference in New Issue