目标 C

问题描述

快速创建一个本地化的字符串,使用 `NSLocalizedString(key:,value:,comment:) 但是在较旧的目标 C https://developer.apple.com/documentation/foundation/nslocalizedstring 在 xliff 文件中,似乎只有键和注释,而键似乎既充当键又充当值。

我的问题是如何为目标 C 中的 nslocalizedstring 提供键和值?

解决方法

您正在查看宏的简化形式。完整的形式叫做说

NSString * NSLocalizedStringWithDefaultValue(
  NSString *key,NSString *tableName,NSBundle *bundle,NSString *value,NSString *comment
)

https://developer.apple.com/documentation/foundation/nslocalizedstringwithdefaultvalue

只需将您不关心的内容设置为 nil。

,

matt 有正确答案;但是,直接拼写出来:

在 Swift 中:

NSLocalizedString(key,value: value,comment: comment)

在目标 C 中:

NSLocalizedStringWithDefaultValue(key,nil,NSBundle.mainBundle,value,comment)

Objective C 版本让您可以深入了解它是如何完成的。这是 NSBundle.h 中 NSLocalizedString* 宏的代码。

#define NSLocalizedString(key,comment) \
        [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key,tbl,comment) \
        [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringFromTableInBundle(key,bundle,comment) \
        [bundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringWithDefaultValue(key,val,comment) \
        [bundle localizedStringForKey:(key) value:(val) table:(tbl)]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...