iphone - genstrings 不适用于 NSLocalizedString 的宏

标签 iphone ios nslocalizedstring genstrings

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

但是现在,当我想生成用于本地化的字符串时 找到。 -名称\*.m | xargs genstrings 它什么都不产生。

有什么帮助吗?

最佳答案

您可以使用“-s”参数告诉 genstrings 寻找不同的函数:

genstring -s MyFunctionName ....

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

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

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

您可以用速记形式包装它,但您仍然必须遵循 StringWithDefaultValue 名称和 genstrings 工作的参数。

我强烈建议您查看有关本地化提示和技巧的 WWDC 2012 session 。

莫里斯

关于iphone - genstrings 不适用于 NSLocalizedString 的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8941921/

相关文章:

ios - 检测图像是否已加载到 UIWebView 中?

python - 用于查找文件内容中所有出现的 'NSLocalizedString' 的正则表达式

ios - %@ 的超链接在 iOS 上不起作用

ios - 为什么在当前队列中调用 dispatch_sync 不会导致死锁

ios - UIScrollView:键盘以交互方式关闭

ios - 如何检查用户是否已从“设置”返回

ios - NSLocalizedString 真的有效吗?

iphone - 强制加载/卸载 View

ios - 当用户快速使用核心数据点击索引 0 到 1 时,如何显示不同的照片滤镜选项?

c# - Monotouch.Dialog 两个表