SwiftI18n
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
要求
- Xcode 8.0
- Swift 5.0
- iOS 9.0+
安装
SwiftI18n 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'SwiftI18n/I18n'
pod 'SwiftI18n/I18n+Case'
用法
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
添加
import SwiftI18n
从
I18nManager.instance.language
设置或获取当前选定的语言
I18nManager.instance.availableLanguages = ["en_US", "hr"]
I18nManager.instance.defaultLanguage = "hr"
设置可用语言和默认语言
处理语言变更:订阅 I18nManager.subscribeForLocaleDidChange(block: { ... }) -> NSObjectProtocol
或如果您更倾向于使用通知,可以使用
NSNotification.Name.loc_LanguageDidChangeNotification
乐趣真正开始的地方
someLabel.locTitleKey = "some_key"
现在当语言变更时,您 someLabel
的标题将自动更改。这难道不酷吗!?
支持的元素: UILabel
UIButton
UITextField
UITextView
UIViewController
UIBarButtonItem
UITabBarItem
UINavigationItem
最重要的是,所有这些 locTitleKey
都在 Storyboard
中以 @IBInspectable
的形式支持。
处理情况
有时您必须处理全小写的翻译,但是您希望它们是全大写或者可能是首字母大写。要处理这种情况,使用
pod 'SwiftI18n/I18n+Case'
现在您有一个枚举
enum I18nCaseTransform: String {
case uppercased = "up"
case lowercased = "low"
case capitalized = "cap"
}
您可以使用它如下所示
someButton.setCaseTransform(.uppercased, for: .normal)
您还可以在 Storyboard
中设置大小写转换
处理多语言客户端字符串枚举
为了使用 SwiftI18n 美丽地与多语言客户端创建的 Strings
枚举一起工作,您需要将: SwiftI18n/Polyglot/PolyglotSwiftI18Extensions.swift
复制到您的项目中。
通过这样做,您现在可以轻松地为 UI 元素设置翻译
someLabe.loc.titleKey = .somePolygotKey
不受支持
Attributed strings
作者
Vlaho Poluta, [email protected]
许可协议
SwiftI18n遵照MIT许可协议。更多信息请参阅LICENSE文件。