LMCoreNS // Ensure dictionary data type in cnvPhonabetToASCII(), etc.

This commit is contained in:
ShikiSuen 2022-10-07 10:48:51 +08:00
parent 80e578600c
commit 73560d1ab6
1 changed files with 18 additions and 15 deletions

View File

@ -148,15 +148,9 @@ extension vChewingLM {
/// - parameters: /// - parameters:
/// - incoming: /// - incoming:
func cnvPhonabetToASCII(_ incoming: String) -> String { func cnvPhonabetToASCII(_ incoming: String) -> String {
let dicPhonabet2ASCII = [
"": "b", "": "p", "": "m", "": "f", "": "d", "": "t", "": "n", "": "l", "": "g", "": "k", "": "h",
"": "j", "": "q", "": "x", "": "Z", "": "C", "": "S", "": "r", "": "z", "": "c", "": "s", "": "i",
"": "u", "": "v", "": "a", "": "o", "": "e", "": "E", "": "B", "": "P", "": "M", "": "F", "": "D",
"": "T", "": "N", "": "L", "": "R", "ˊ": "2", "ˇ": "3", "ˋ": "4", "˙": "5",
]
var strOutput = incoming var strOutput = incoming
if !strOutput.contains("_") { if !strOutput.contains("_") {
for entry in dicPhonabet2ASCII { for entry in Self.dicPhonabet2ASCII {
strOutput = strOutput.replacingOccurrences(of: entry.key, with: entry.value) strOutput = strOutput.replacingOccurrences(of: entry.key, with: entry.value)
} }
} }
@ -169,20 +163,29 @@ extension vChewingLM {
/// - parameters: /// - parameters:
/// - incoming: /// - incoming:
func restorePhonabetFromASCII(_ incoming: String) -> String { func restorePhonabetFromASCII(_ incoming: String) -> String {
let dicPhonabet4ASCII = [
"b": "", "p": "", "m": "", "f": "", "d": "", "t": "", "n": "", "l": "", "g": "", "k": "", "h": "",
"j": "", "q": "", "x": "", "Z": "", "C": "", "S": "", "r": "", "z": "", "c": "", "s": "", "i": "",
"u": "", "v": "", "a": "", "o": "", "e": "", "E": "", "B": "", "P": "", "M": "", "F": "", "D": "",
"T": "", "N": "", "L": "", "R": "", "2": "ˊ", "3": "ˇ", "4": "ˋ", "5": "˙",
]
var strOutput = incoming var strOutput = incoming
if !strOutput.contains("_") { if !strOutput.contains("_") {
for entry in dicPhonabet4ASCII { for entry in Self.dicPhonabet4ASCII {
strOutput = strOutput.replacingOccurrences(of: entry.key, with: entry.value) strOutput = strOutput.replacingOccurrences(of: entry.key, with: entry.value)
} }
} }
return strOutput return strOutput
} }
// MARK: - Constants
static let dicPhonabet2ASCII: [String: String] = [
"": "b", "": "p", "": "m", "": "f", "": "d", "": "t", "": "n", "": "l", "": "g", "": "k", "": "h",
"": "j", "": "q", "": "x", "": "Z", "": "C", "": "S", "": "r", "": "z", "": "c", "": "s", "": "i",
"": "u", "": "v", "": "a", "": "o", "": "e", "": "E", "": "B", "": "P", "": "M", "": "F", "": "D",
"": "T", "": "N", "": "L", "": "R", "ˊ": "2", "ˇ": "3", "ˋ": "4", "˙": "5",
]
static let dicPhonabet4ASCII: [String: String] = [
"b": "", "p": "", "m": "", "f": "", "d": "", "t": "", "n": "", "l": "", "g": "", "k": "", "h": "",
"j": "", "q": "", "x": "", "Z": "", "C": "", "S": "", "r": "", "z": "", "c": "", "s": "", "i": "",
"u": "", "v": "", "a": "", "o": "", "e": "", "E": "", "B": "", "P": "", "M": "", "F": "", "D": "",
"T": "", "N": "", "L": "", "R": "", "2": "ˊ", "3": "ˇ", "4": "ˋ", "5": "˙",
]
} }
} }