Xcode 10中图像资产的本地化

时间:2019-02-06 18:36:21

标签: swift xcode localization

是否可以在Xcode和Swift中为不同语言本地化图像资产?

相同的图像名称,但不同的语言文件夹。

或者如果不可能的话,您能提出一种方法吗?

3 个答案:

答案 0 :(得分:0)

由于Xcode文件检查器未显示本地化选项,因此目前似乎无法在Assets.xcassets中本地化资产。
但是,可以使用

之类的名称来本地化要加载的图像文件的名称。
let img = UIImage.init(named: NSLocalizedString("LOCALIZATION_KEYWORD", comment:""))  

请参阅here (in Obj-c)

答案 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";