[英]Cannot click on TableView cell. (iOS, Custom cell implementation)
[英]IOS Static tableview cell cannot be localized
可以说,故事板是Main.storyboard
,我有一个TableViewController
。 我有一个包含2个部分的静态表视图,每个部分都有1行。
我创建了本地化文件,因此我的项目结构如下所示:
Main.Strings
包含所有法语的本地化字符串。 问题是,当我在FR中运行设备时,内容未本地化。
这是我正在谈论的情节提要的图像。 (您可以用任何文本替换label
)。
注意:以前在带有Swift 3.0的Xcode 8中可以使用。 但是,一旦我使用Swift 4.0升级到Xcode 9,它似乎就不起作用了。
固定:
我认为很难对情节提要文件进行本地化。 我建议将所有翻译都放在一个Localizable.strings
文件中,并在视图控制器中以编程方式设置本地化。
您可以使用以下扩展程序使事情变得更容易:
extension String {
var localized: String {
return NSLocalizedString(self, comment: "")
}
}
如果您随后将翻译定义为全局常量,例如:
class Texts {
class MyViewController {
static let title = "My Title".localized
static let editLabel = "Edit your text".localized
static let editTextFieldPlaceholder = "Sample text".localized
static let editButtonTitle = "Edit".localized
}
}
您可以像这样简单地为视图控制器设置本地化:
override func viewDidLoad() {
super.viewDidLoad()
// Localization
self.title = Texts.MyViewController.title
self.editLabel.text = Texts.MyViewController.editLabel
self.editTextField.placeholder = Texts.MyViewController.editTextFieldPlaceholder
self.editButton.setTitle(Texts.MyViewController.editButtonTitle, for: .normal)
}
这样,您的本地化将变得更加结构化和可维护。 另外,您在更改单个元素时无需重新翻译整个情节提要。 您甚至可以将复数形式本地化 ,这只是使用简单的情节提要面板本地化是不可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.