通过 Swift Package Manager 安装
.package(url: "https://github.com/MihaelIsaev/Localizer.git", from: "1.0.2")
或 CocoaPods
pod 'Localizer', '~> 1.0.2'
最重要的部分是导入它 🚀
import Localizer
// create string relative to current language
let myString = String(
.en("Hello"),
.fr("Bonjour"),
.ru("Привет"),
.es("Hola"),
.zh_Hans("你好"),
.ja("こんにちは"))
print(myString)
默认情况下,当前语言等于 Locale.current
,但是你可以通过设置 Localizer.current = .en
来更改它。 此外,本地化工具也有 default
语言,以防用户的语言与你的字符串中的任何语言都不符,你可以通过调用 Localizer.default = .en
来设置它。
在服务端,我们无法通过 Locale.current
检测用户的区域设置,因为这样我们会得到服务端的区域设置 :)
所以,例如,如果我们在服务端有一个 User
模型,它有一个 locale
字符串变量,我们可以使用它。为此,我们应该让 User
遵循 Localizable
协议,像这样
class User: Localizable {
// declare this as a link to locale variable in this model
static var localeKey: LocaleKey? { return \.locale }
var id: UUID
var email, password: String
/// this variable will be used for Localizer to detect language
/// it should contain e.g. short `en` or long `en_US` value
var locale: String?
}
然后使用 user
对象声明你的本地化字符串,像这样
let myString = String(for: user,
.en("Hello"),
.fr("Bonjour"),
.ru("Привет"),
.es("Hola"),
.zh_Hans("你好"),
.ja("こんにちは"))
print(myString)
很简单,对吧?:) 如果你能给它一个星星就太好了 ⭐️