Swift:来自故事板的 iOS 多语言设置标签文本 [英] Swift: iOS multiple language set label text from storyboard
本文介绍了Swift:来自故事板的 iOS 多语言设置标签文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的应用程序有 3 种语言
My application have 3 language
对于代码中的文本,我可以使用 Localizable.string
文件来设置语言的文本.
For text in code, I can use Localizable.string
file for set text for languages.
但是对于 storyboard
中的 labels
我不能设置 Localizable.string
值
But for labels
in storyboard
I cant set Localizable.string
value
我该怎么做?
推荐答案
您可以在 awakeFromNib<中创建
UIKit
组件的扩展和 localized
文本/代码>
You can create an extension of the UIKit
component and localized
text inside the awakeFromNib
这里是演示
extension String {
var localized: String {
return NSLocalizedString(self, tableName: nil, bundle: /** Your Bundle */, value: "", comment: "")
}
}
对于UILabel
extension UILabel {
open override func awakeFromNib() {
super.awakeFromNib()
if let textValue = self.text {
self.text = textValue.localized
}
}
}
对于UIButton
extension UIButton {
open override func awakeFromNib() {
super.awakeFromNib()
if let text = self.title(for: self.state) {
self.setTitle(text.localized, for: self.state)
}
}
}
对于 UITextField
extension UITextField {
open override func awakeFromNib() {
super.awakeFromNib()
if let placeHolderValue = self.placeholder {
self.placeholder = placeHolderValue.localized
}
}
}
这篇关于Swift:来自故事板的 iOS 多语言设置标签文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文