[英]How to translate / localize a variable in Swift
我有这个代码并且我已经成功设置了本地化。 我创建了一个Categories.strings
文件并对其进行了本地化,但类别的翻译不起作用。
代码:
struct CategoriesViewRow: View {
var selection: SimpleJson
var body: some View {
HStack {
Image(selection.name)
.resizable()
.scaledToFit()
.frame(width: 20, height: 20)
Text(String(localized: "\(selection.name)", table: "Categories", comment: "Category"))
Spacer()
}
}
}
这个var selection: SimpleJson
是一个看起来像这样的结构:
struct SimpleJson: Hashable, Codable, Identifiable {
var id: Int
var name: String
var description: String?
var hidden: Bool?
}
它包含一些从文件加载的静态类别。 它们需要从文件中加载,我总是设法在Objective-C 中翻译它们。 但是现在在Swift 中,似乎我错过了一些东西。
正常的SwiftUI Text()
代码被正确翻译,但我的其他代码有问题。
我目前使用的是 Xcode Beta 13.0,但我很确定这不是问题。 我宁愿认为我做错了什么,但我似乎无法为我的用例找到一些好的信息。
有人可以帮我吗?
提前致谢
您可以将此函数添加到字符串扩展名,然后对字符串变量调用 .localize():
extension String {
/**
So that when you return a String it also adjusts the language
- Parameter comment: To describe specific meaning if it's unclear (e.g.: bear could mean the animal or the verb to bear)
- Returns: The localized String duh
- Usage: str.localize()
- Further reading: https://www.hackingwithswift.com/example-code/uikit/how-to-localize-your-ios-app
*/
func localize(comment: String = "") -> String {
NSLocalizedString(self, comment: comment)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.