iPhone:使用genstrings更新Localizable.strings文件?

14

我已经使用genstrings正确生成了我的字符串文件。我已经更改了不同语言的本地化字符串。现在,我添加了几个新的NSLocalizedString()出现,并想将其生成到所有本地化的字符串文件中。

但是,再次运行genstrings似乎没有更新我的字符串文件。我做错了什么吗?


如Michal所建议的,我写了一个小脚本,以帮助我更新资源。希望它有所帮助。 - aimless
2个回答

10

通常情况下,这是因为您让genstrings搜索错误的文件夹或错误的文件。我曾经遇到过一个问题,它无法获取我的所有字符串,后来我意识到它只在搜索*.m文件(而不是*.mm),并且它没有解析我的Classes文件夹中的文件。一个小修改就解决了这个问题:

genstrings -o Classes/en.lproj Classes/*.{m,mm}

第一个参数告诉genstrings我想要.strings文件存在的位置。

  • -o Classes/en.lprog

第二个参数告诉genstrings从哪里搜索。记住,我是在项目根目录中运行genstrings,所以我需要指定Classes/.m,或者更具体地说是Classes/.{m,mm}以便解析.m和.mm文件。


4
其他(部分)翻译完成的语言文件怎么样? - hanno

-2

-a选项应该将新值追加到您的翻译中


1
好的,-a 会导致结果追加到旧文件的末尾而不是合并。我编写了一个 Ruby 脚本来合并先前的翻译。我认为 app nibTranslate 也可以解决这个问题。 - Michal
1
请注意,我在这里说的是新值,我从未提到合并,问题也没有...很高兴我们在这里清楚了。 - cynistersix
cynistersix:一个有帮助的回复应该承认,在原始帖子尝试做的事情的背景下,仅仅将所有生成的字符串(现有和新的)附加到文件末尾可能是不可取和/或意外的。Michal的评论提供了有用的额外信息。 - Jeff C.
Michal:感谢您提供的这些知识和有用的建议nibTranslate。如果Apple能够添加合并支持到genstrings中,那将是非常好的,因为这似乎是一个显而易见的用例。 - Jeff C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接