我(像其他人一样)正在使用NSLocalizedString
来本地化我的应用程序。
不幸的是,有几个“缺点”(不一定是NSLocalizedString本身的问题),包括
genstring
将以多个注释结束一个字符串genstring
,你必须小心不要丢失你的旧的localizations.NSLocalizedString(@"Abort", @"Cancel action")
,然后Code Review要求您将该字符串重命名为NSLocalizedString(@"Cancel", @"Cancel action")
,以使代码更一致。我所做的(经过一些搜索之后,我想很多人都会这么做)是创建一个独立的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的使用?有没有可能有一个框架来封装它?
https://stackoverflow.com/questions/9895621
复制相似问题