首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用NSLocalizedString的最佳方法?

使用NSLocalizedString的最佳方法?

提问于 2018-03-26 00:01:22
回答 2关注 0查看 84

我(与其他人一样)使用NSLocalizedString本地化我的应用程序。

不幸的是,有几个“缺点”(不一定是NSLocalizedString本身的错误),包括

  • Xcode中的字符串没有自动完成。这使得工作不仅容易出错,而且令人厌烦。
  • 可能最终会重新定义一个字符串,因为不知道已经存在一个等效字符串(即“请输入密码”与“先输入密码”)
  • 与自动完成问题类似,需要“记住”/复制注释字符串,否则genstring最终会以一个字符串的多个注释结束
  • 如果想在使用genstring某些字符串之后再使用,则必须小心不要丢失旧的本地化版本。
  • 相同的字符串分散在整个项目中。例如,NSLocalizedString(@"Abort", @"Cancel action")在任何地方都使用,然后Code Review会要求重命名字符串NSLocalizedString(@"Cancel", @"Cancel action")以使代码更加一致。

我所做的(并且经过一些搜索之后,我认为很多人都这样做)是要有一个单独的strings.h文件,我需要#define所有的本地化代码。例如

代码语言:javascript
复制
// In strings.h
#define NSLS_COMMON_CANCEL NSLocalizedString(@"Cancel", nil)
// Somewhere else
NSLog(@"%@", NSLS_COMMON_CANCEL);

这基本上提供了代码完成,一个地方改变变量名称(所以不再需要genstring)和一个唯一的关键字自动重构。然而,这需要花费一大堆#define非固有结构的语句(即像LocString.Common.Cancel或类似的东西)。

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档