减少Objective-C中的i18n冗长度

时间:2016-02-15 14:14:51

标签: objective-c internationalization

考虑这个伪代码类:

re

然后我们创建一个实例:

>>> i1 = len('VCALogParser_output_')
>>> i2 = len ('.log')
>>> 
>>> '\n{}, {}\n'.format(s1[i1:-i2], s2[i1:-i2])
'\nARW, CZC\n'

好的,所以这看起来很容易管理......直到我们必须添加i18n ......然后才变成:

@interface Dude : NSObject
-(instancetype)initWithString1:(NSString*)string1 string2:(NSString2):string2 string3:(NSString*)string3;
@end

我正在寻找一种策略来减少这一行代码的冗长程度。在大多数情况下,我们没有将i18n字符串传递给参数,但是在我们这样做的情况下,它会使得读取代码非常困难。

1 个答案:

答案 0 :(得分:0)

我传递nil作为第二个参数,并将这些字符串保存在我的英文Localizable.strings文件中。您还可以定义较短的NSLocalizedString宏并使用它。

如果您制作自己的宏,并使用genstrings,则需要使用-s选项让它知道您的宏。