我想将“NSLocalizedString”缩短为“_”,所以我正在使用宏_(x) NSLocalizedString(@x, @__FILE__)

但是现在,当我想生成用于本地化的字符串时find . -name \*.m | xargs genstrings它什么也不会产生。

有什么帮助吗?

最佳答案

您可以使用'-s'参数告诉g​​enstrings查找其他函数:

genstring -s MyFunctionName ....

但是,MyFunctionName必须遵循与内置NSLocalizeString宏之一相同的命名和参数约定。

在您的情况下,您不仅可以指定字符串键,还必须指定文档字符串。实际上,您应该永远不要生成没有字符串和文档的字符串文件。在许多语言中,实际短语或单词将取决于上下文。德语是一个很好的例子,其中汽车是“das auto”,而不是“die autos”。还有更多示例,包括性别,数字,时间,问题与陈述的变化以及是与否的变化。文档字符串可帮助您的翻译确定要使用的翻译。

此外,最佳做法是使用与母语单词不同的键。那就是说使用NSLocalizedStringWithDefaultValue(键,表,包,val,注释)。
您可以为表指定nil,为bundle参数指定[NSBundle mainBundle]。

您可以将其包装为简写形式,但仍必须遵循StringWithDefaultValue名称和genstrings的参数才能起作用。

我强烈建议您看一下WWDC 2012 session 上的本地化技巧和窍门。

莫里斯

10-08 17:00