在iOS中本地化图片和文本
最近,在使用该应用程序的最新功能Homefeed时,我们已经收到了要整合的资产,格式如下:(所有语言均已包含文本):
我们不开心。 我们应该如何使用这些? 检查当前的语言环境以及所有这些?
不,我们要的是没有文字的普通图片,因此我们可以自己添加一个本地化标签。 并得到他们。
更好。
但是,“本地化”图片的想法一直存在。
为了加载图片,我们只使用了Images.xcassets中的图像文件名传递给UIImage(named:String) 。一个字符串也可能来自NSLocalizedString
因此,如果我们在Localizable.string文件中有一个id ,则可以基于当前语言环境获得不同的图像文件名,系统会为我们完成此操作。 那很整齐。
现在我们可以这样称呼:
让noImageFilename = NSLocalizedString(“ noimage.filename.id”,注释:“无图像文件名”)let noImage = UIImage(命名为:noImageFilename)
瞧,有本地化的图片。
通常,要向UILabel添加本地化文本,需要编写类似以下内容的代码:
让localizedText = NSLocalizedString(“ id.of.localized.string”,评论:“一些评论”)myLabel.text = localizedText
我们可以在Interface Builder中设置UILabel的字符串,但是能够在IB中输入本地化的字符串而不用像上面那样编写代码不是很好吗?
实际上这是可能的:
扩展UILabel {@IBInspectable var stringId:字符串{set(value){self.text = NSLocalizedString(value,comment:“”)} get {return“”}}
}
在UILabel上添加上述扩展名后,便可以选择在IB中添加本地化字符串。 (使用Localizable.strings文件中的文本ID)
当不想支持额外的UI元素以支持更好的呈现时,这两种情况可能会受益。
希望它可以帮助某人。 谢谢阅读。