是否可以在Xcode和Swift中为不同语言本地化图像资产?
相同的图像名称,但不同的语言文件夹。
或者如果不可能的话,您能提出一种方法吗?
答案 0 :(得分:0)
由于Xcode文件检查器未显示本地化选项,因此目前似乎无法在Assets.xcassets中本地化资产。
但是,可以使用
let img = UIImage.init(named: NSLocalizedString("LOCALIZATION_KEYWORD", comment:""))
答案 1 :(得分:0)
XCode 10不支持图像本地化。
好消息是,资产目录在Xcode 11中具有此功能。
答案 2 :(得分:0)
Xcode 10还有另一种方式。
将主要图片添加到Image Assets中,例如,将英文“ Picture 1”添加到Image Assets中,并将其他图片添加至德语,将其命名为“ Picture 1_de”。
只需将扩展名放在您的任何.swift文件中:
extension String {
func localized(bundle: Bundle = .main, tableName: String = "Localizable") -> String {
return NSLocalizedString(self, tableName: tableName, value: "**\(self)**", comment: "")
}
}
向ViewController文件添加:
let btnImage = UIImage(named: "Picture 1.jpg".localized())
制作Localizable.strings文件(如果还没有的话)。当您添加新语言(在我们的示例中为德语)时,您将拥有一个新文件Localizable.strings(German)。
然后简单地添加到此文件:
"Picture 1.jpg" = "Picture 1_de.jpg";