Questions tagged «nslocalizedstring»


15
Swift中的NSLocalizedString等效项是什么?
有Swift的等效项NSLocalizedString(...)吗?在中Objective-C,我们通常使用: NSString *string = NSLocalizedString(@"key", @"comment"); 如何在Swift中实现相同目标?我发现了一个功能: func NSLocalizedString( key: String, tableName: String? = default, bundle: NSBundle = default, value: String = default, #comment: String) -> String 但是,它很长,根本不方便。

5
如何在Swift中提供带有错误类型的本地化描述?
我正在使用Swift 3语法定义自定义错误类型,并且我想提供localizedDescription该Error对象的属性返回的错误的用户友好描述。我该怎么做? public enum MyError: Error { case customError var localizedDescription: String { switch self { case .customError: return NSLocalizedString("A user-friendly description of the error.", comment: "My error") } } } let error: Error = MyError.customError error.localizedDescription // "The operation couldn’t be completed. (MyError error 0.)" 有没有一种方法localizedDescription可以返回我的自定义错误描述(“错误的用户友好描述”。)?请注意,这里的错误对象是类型Error而不是MyError。我当然可以将对象转换为MyError (error as? MyError)?.localizedDescription …

9
使用NSLocalizedString的最佳实践
我(像其他所有人一样)正在使用NSLocalizedString本地化我的应用程序。 不幸的是,存在一些“缺点”(不一定是NSLocalizedString本身的错误),包括 Xcode中的字符串没有自动完成功能。这使工作不仅容易出错,而且很麻烦。 您可能仅仅因为不知道已经存在等效字符串而重新定义了一个字符串(例如,“请输入密码”与“首先输入密码”) 与自动完成问题类似,您需要“记住” /复制粘贴注释字符串,否则genstring最终将对一个字符串产生多个注释 如果要genstring在对某些字符串进行本地化之后使用,则必须小心不要丢失旧的本地化版本。 相同的字符串分散在整个项目中。例如,您NSLocalizedString(@"Abort", @"Cancel action")在各处使用过代码,然后Code Review要求您重命名字符串NSLocalizedString(@"Cancel", @"Cancel action")以使代码更加一致。 我要做的(在SO上进行了一些搜索之后,我发现很多人都这样做了)是要有一个单独的strings.h文件,其中存放#define所有的本地化代码。例如 // In strings.h #define NSLS_COMMON_CANCEL NSLocalizedString(@"Cancel", nil) // Somewhere else NSLog(@"%@", NSLS_COMMON_CANCEL); 这实质上提供了代码补全,更改变量名称的单个位置(因此不再需要genstring)和用于自动重构的唯一关键字。但是,这样做的代价是最终要获得一堆#define不是固有结构化的语句(例如LocString.Common.Cancel或类似的东西)。 因此,尽管这工作得很好,但我想知道你们在项目中如何做到这一点。还有其他方法可以简化NSLocalizedString的使用吗?甚至有一个封装它的框架吗?

1
iOS 8.1模拟器本地化损坏(NSLocalizedString)
TL; DR: 本地化似乎不适用于xCode 6.1和8.1模拟器。 解决方法: 转到“编辑方案” >>“运行”(侧栏)>>“选项”选项卡>>“应用程序语言” 选择要在模拟器上运行应用程序的语言。 很长的故事: 我已经将xCode更新为6.1。该更新删除了iOS 7.x模拟器,只剩下8.x模拟器。 我已完成以下步骤: 我已经安装了7.x模拟器 清理项目 从模拟器中删除了该应用 删除了我项目的派生文件夹 该项目支持英语和日语。 在7.1仿真器(5s)上,本地化按预期工作。 在8.1模拟器(5s)上不起作用。 我猜苹果公司在模拟器上发生了一些问题,因为它可以在真实设备上运行。 关于这一方面的任何投入,还有其他人遇到过类似的问题吗? 编辑 似乎是模拟器中的错误,请参考: Apple Dev Forums

6
带有快速变量的NSLocalizedString
我正在尝试使用NSLocalizedString本地化我的应用程序。当我导入XLIFF文件时,大多数都像超级按钮一样工作,但是有些却没有,并且某些字符串未本地化。我注意到问题出在NSLocalizedString中,其中包含一些变量,例如: NSLocalizedString(" - \(count) Notifica", comment: "sottotitolo prescrizione per le notifiche al singolare") 要么 NSLocalizedString("Notifica per \(medicina!) della prescrizione \(prescription!)\nMemo: \(memoTextView.text)", comment: "Messaggio della Local Notification") 也许这不是这类东西的正确语法。有人可以向我解释如何迅速做到这一点?非常感谢你。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.