Ser*_*gio 3 turkish localization ios swift
在土耳其语中,有两个i
\n\n问题:每次我大写i时,都会得到一个I。
\n\n当我大写i时,我想得到一个\xc4\xb0(仅在土耳其语中),当我大写\xc4\xb1时,我想得到一个I。
\n\n我有一个函数可以做到这一点
\n\n@objc public static func uppercaseTurkishString(_ string: String) -> String {\n return String(string.map { (char) -> Character in\n if char == "i" {\n return "\xc4\xb0"\n } else {\n return Character(String(char).uppercased())\n }\n })\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n但每次使用时我都必须检查该语言是否是土耳其语,并且为应用程序中的每个字符串执行此操作是一项非常艰巨的工作。
\n\n有更简单的方法吗?
\n问题在于该uppercased()
函数不关心Locale
s 并且小点i看起来像正常的英语i。您应该使用,这将为土耳其用户localizedUppercase
使用土耳其语(或者,如果您希望为应用程序的所有用户执行此操作,无论他们的区域设置如何,但我不建议这样做)。Locale
uppercased(with: Locale(identifier: "tr_TR")
而且,不需要逐个字符地进行大写,您可以简单地在完整的String
.
@objc public static func uppercaseTurkishString(_ string: String) -> String {
return string.localizedUppercase
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3972 次 |
最近记录: |