ios - Swift 中的 NSLocalizedString 等价物是什么?

标签 ios swift localization nslocalizedstring

是否有与 NSLocalizedString(...) 等效的 Swift? 在Objective-C中,我们通常使用:

NSString *string = NSLocalizedString(@"key", @"comment");

如何在 Swift 中实现相同的目的?我找到了一个函数:

func NSLocalizedString(
    key: String,
    tableName: String? = default,
    bundle: NSBundle = default,
    value: String = default,
    #comment: String) -> String

但是,它很长,一点也不方便。

最佳答案

我使用下一个解决方案:

1) 创建扩展:

extension String {
    var localized: String {
        return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "")
    }
}

2) 在Localizable.strings 文件中:

"Hi" = "Привет";

3) 使用示例:

myLabel.text = "Hi".localized

尽情享受吧! ;)

--更新:--

对于带有注释的情况,您可以使用此解决方案:

1) 扩展:

extension String {
    func localized(withComment:String) -> String {
        return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: withComment)
    }
}

2) 在 .strings 文件中:

/* with !!! */
"Hi" = "Привет!!!";

3) 使用:

myLabel.text = "Hi".localized(withComment: "with !!!")

关于ios - Swift 中的 NSLocalizedString 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25081757/

相关文章:

ios - 文本下划线颜色与 iOS 中的文本颜色不同

swift - 如何在 Swift 中删除 UIPickerView 中的重复数据

javascript - WKWebView 弹出窗口未显示

ios - 在 Swift 中监听硬件键盘按键

ios - 在重用单元格并设置 UISwitch 是否处于事件状态时,ios listview 将第一行和最后一行设置为事件状态,有什么问题?

java - 获取语​​言环境的毫秒时间格式

php - 使用 Route::group、前缀和命名空间的 Laravel 本地化

mysql - 在获取多语言数据时实现回退

ios - 具有自动布局的全屏 UICollectionViewCell

ios - 不同的图像取决于用户屏幕尺寸