gpt4 book ai didi

IOS 静态表格 View 单元无法本地化

转载 作者:行者123 更新时间:2023-12-01 21:51:02 25 4
gpt4 key购买 nike

假设 Storyboard是 Main.storyboard 并且我有一个 TableViewController。我有一个包含 2 个部分的静态 TableView ,每个部分有 1 行。

我创建了本地化文件,因此我的项目结构如下所示:

  • 主 Storyboard(基础)
  • 主字符串(法国)

Main.Strings 包含所有法语本地化字符串。问题是,当我在 FR 中运行设备时,内容没有本地化。

这是我正在谈论的 Storyboard的图像。 (您可以将 label 替换为任何文本)。

Example

注意:它以前可以在 Xcode 8 和 Swift 3.0 中工作。但是,当我使用 Swift 4.0 升级到 Xcode 9 后,它似乎不起作用。

已修复:

  • Xcode 出现故障。开始了一个新的 Storyboard,一切似乎都很完美......

最佳答案

我认为本地化 Storyboard文件很难维护。我建议将所有翻译放在一个 Localized.strings 文件中,并在 View Controller 中以编程方式设置本地化。

您可以使用以下扩展使事情变得更容易:

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

}

}

您可以简单地为 View Controller 设置本地化,如下所示:

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

这样,您的本地化将变得更加结构化和可维护。此外,每次更改单个元素时,您都不需要重新翻译整个 Storyboard。您甚至可以localize plurals ,这对于简单的 Storyboard本地化来说是不可能的。

关于IOS 静态表格 View 单元无法本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49308769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com