MIT License Swift 4.2 Cocoapod Swift.Stream


本地化工具

通过 Swift Package Manager 安装

.package(url: "https://github.com/MihaelIsaev/Localizer.git", from: "1.0.2")

或 CocoaPods

pod 'Localizer', '~> 1.0.2'

如何使用

最重要的部分是导入它 🚀

import Localizer

iOS

// 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)

很简单,对吧?:) 如果你能给它一个星星就太好了 ⭐️