LocalizableUI

CI Status codecov.io Version License Platform

示例

要运行示例项目,请克隆 repo,并首先从 Example 目录运行 pod install

支持的 UI 元素

要求

交流

安装

CocoaPods

LocalizableUI 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile

pod 'LocalizableUI'

Carthage

github "weiss19ja/LocalizableUI" 添加到您的 Cartfile。

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/weiss19ja/LocalizableUI.git", from: "0.3.1")
]

用法

Storyboard

使用 LocalizableUI 最简单的方法是 Storyboard。 您可以在此处输入您的 Localizable.strings 键。 Label

对于 SegmentedControl,您可以输入以“,”分隔的 Localizable.strings 键数组。 Label

BackButton 可以在之前的 ViewController 中设置。您可以在此处使用 Storyboard 中的 ViewController 字段。 Label

如果您正在使用 NavigationItem,这将覆盖 ViewController 的标题和 BackButton。 Label

代码

视图本地化

也可以在代码中设置 LocalizableKeys。 这包括 Stotyboard LocalizableKeys 的所有功能

let newLabel = UILabel(frame: frame)
newLabel.localizedKey = "LocalizedKey"
AlertViewController

AlertView 必须在代码中配置。

let alertController = UIAlertController(localizedTitle: Constants.titleKey, localizedMessage: Constants.messagekey, preferredStyle: .alert)
let action = UIAlertAction(localzedTitleKey: Constants.buttonKey, style: .cancel, handler: nil)
alertController.addAction(action)
LocalizedKey 到文本
// #1
let localizedText = LocalizationManager.localizedStringFor("LocalizedKey")
// #2
let localizedText = LocalizationManager.localizedStringFor("LocalizedKey", bundle: bundle, value: "", comment: "")
// #3
let localizedText = "LocalizedKey".localized
自定义视图

要本地化任何类或结构体,您可以简单地实现 Localizable 协议

extension CustomView: Localizable {
    func updateLocalizedStrings() {
    	/// do your localization stuff
        text = LocalizationManager.localizedStringFor("LocalizedKey")
    }
}
手动更改语言

您可以在应用程序活动时更改语言。 您只需使用 LocalizationManager changeLanguage(...) 方法。 您的所有视图都将更新,无需任何进一步的调整。

do {
	let tableName = "Localizable"
	let bundle = Bundle(for: type(of: self))
	let languageCode = "en"
	try LocalizationManager.sharedInstance.changeLanguage(to: tableName, from: bundle, languageCode: languageCode)
} catch {
	...
}	

Label

作者

Jan Weiß, Philipp Weiß

许可证

LocalizableUI 在 MIT 许可证下可用。 有关更多信息,请参阅 LICENSE 文件。