Swift 5にString
は、と呼ばれるメソッドがありapplyingTransform(_:reverse:)
ます。applyingTransform(_:reverse:)
次の宣言があります。
func applyingTransform(_ transform: StringTransform, reverse: Bool) -> String?
次のPlaygroundコードはapplyingTransform(_:reverse:)
、キリル文字からラテン文字に音訳するための使用方法を示しています。
import Foundation
let string = "матрешка"
let latinString = string.applyingTransform(StringTransform.toLatin, reverse: false)
let noDiacriticString = latinString?.applyingTransform(StringTransform.stripDiacritics, reverse: false)
print(latinString) // prints: Optional("matreška")
print(noDiacriticString) // prints: Optional("matreska")
別の方法として、CoreFoundationCFStringTransform(_:_:_:_:)
関数を使用できます。
import Foundation
let mutableString = NSMutableString(string: "матрешка")
CFStringTransform(mutableString, nil, kCFStringTransformToLatin, false)
print(mutableString) // prints: matreška
CFStringTransform(mutableString, nil, kCFStringTransformStripDiacritics, false)
print(mutableString) // prints: matreska