我试图在英语和德语本地化我的应用程序和一切工作的现在,预计字符串内的数组显然得到不本地化。
我有这样一个数组,它保存了我的Picker的选项:
let sorting = ["Newest First", "Oldest First"]
这是我的Picker,它工作正常功能明智:
Picker("Sort by", selection: $sortingSelection) {
ForEach(sorting, id: \.self) {
Text($0)
.foregroundColor(.accentColor)
.font(.footnote)
}
}
.pickerStyle(MenuPickerStyle())
这是对应的Localizable.字符串(德语):
"Newest First" = "Neueres Zuerst";
"Oldest First" = "Älteres Zuerst";
所以我试着把它写成字符串,这是现在使用本地化最简单的方法。
我也尝试过将it用作变量,但这不起作用:
let localizedString1 = "Newest First"
let localizedString2 = "Oldest First"
let sorting = [localizedString1, localizedString2]
我也看到了这个帖子:
Swift: Localize an Array of strings
但是就像答案上的评论所说的,有没有办法得到一些示例代码?或者现在有没有更好的方法?
3条答案
按热度按时间bf1o4zei1#
如Text documentation中所述:
如果你用变量值初始化一个文本视图,视图使用init(:)初始化器,它不会本地化字符串。但是,你可以通过创建一个LocalizedStringKey示例来请求本地化,它会触发init(:tableName:bundle:comment:)初始化器:
kkbh8khc2#
它对我起作用
vom3gejh3#
数组的缺省类型为
String
,您可以将该类型指定为LocalizedStringKey
您可能还需要更改选择类型以使它们匹配。