我已经使用genstrings正确生成了我的字符串文件。我已经更改了不同语言的本地化字符串。现在,我添加了几个新的NSLocalizedString()出现,并想将其生成到所有本地化的字符串文件中。
但是,再次运行genstrings似乎没有更新我的字符串文件。我做错了什么吗?
我已经使用genstrings正确生成了我的字符串文件。我已经更改了不同语言的本地化字符串。现在,我添加了几个新的NSLocalizedString()出现,并想将其生成到所有本地化的字符串文件中。
但是,再次运行genstrings似乎没有更新我的字符串文件。我做错了什么吗?
通常情况下,这是因为您让genstrings搜索错误的文件夹或错误的文件。我曾经遇到过一个问题,它无法获取我的所有字符串,后来我意识到它只在搜索*.m文件(而不是*.mm),并且它没有解析我的Classes文件夹中的文件。一个小修改就解决了这个问题:
genstrings -o Classes/en.lproj Classes/*.{m,mm}
第一个参数告诉genstrings我想要.strings文件存在的位置。
第二个参数告诉genstrings从哪里搜索。记住,我是在项目根目录中运行genstrings,所以我需要指定Classes/.m,或者更具体地说是Classes/.{m,mm}以便解析.m和.mm文件。
-a选项应该将新值追加到您的翻译中
-a
会导致结果追加到旧文件的末尾而不是合并。我编写了一个 Ruby 脚本来合并先前的翻译。我认为 app nibTranslate 也可以解决这个问题。 - Michal