don*_*ile 58 xcode localization
我有一个目录,它有很多子目录.那些子市场有时甚至有子市场.里面有源文件.
我如何使用genstrings来遍历所有这些dirs和subdirs?
假设我在终端中cd到我的根目录,然后我会输入:
genstrings -o en.lproj *.m
Run Code Online (Sandbox Code Playgroud)
我怎么能告诉它现在看看所有这些目录?或者我是否必须添加许多相对路径逗号分隔?怎么样?
Bri*_*ing 99
一种方法是:
find ./ -name "*.m" -print0 | xargs -0 genstrings -o en.lproj
Run Code Online (Sandbox Code Playgroud)
xargs是一个很好的shell-foo.它将在标准中使用字符串并将它们转换为下一个函数的参数.这将使用当前目录下的每个.m文件填充genstrings命令.
这个答案在使用的路径中处理空间,因此它更加健壮.您应该使用它来避免在处理源文件时跳过文件.
编辑:如评论和其他答案中所述,*.m应该引用.
Jon*_*han 89
我不确切知道为什么,但Brian的命令对我不起作用.这样做:
find . -name \*.m | xargs genstrings -o en.lproj
Run Code Online (Sandbox Code Playgroud)
编辑:嗯,当我最初写这篇文章的时候,我很匆忙,只需要一些有用的东西.在使用上面接受的答案时,我发生的问题是必须引用"*.m"(好奇的人可以在Brian King的答案的评论中找到解释为什么会出现这种情况).我认为最好的解决方案是使用引用的相应位来使用原始答案,然后读取:
find ./ -name "*.m" -print0 | xargs -0 genstrings -o en.lproj
Run Code Online (Sandbox Code Playgroud)
我将上面的原始回复完整保留在上面,以防它无论出于何种原因仍然可以帮助任何人.
SEG*_*SEG 17
这对我有用:
find ./ -name \*.m -print0 | xargs -0 genstrings -o en.lproj
Run Code Online (Sandbox Code Playgroud)
感谢Brian和Uberhamster.
迅速
find ./ -name \*.swift -print0 | xargs -0 genstrings -o en.lproj
Run Code Online (Sandbox Code Playgroud)
如果您需要同一文件夹中的文件
find ./ -name \*.swift -print0 | xargs -0 genstrings -o .
Run Code Online (Sandbox Code Playgroud)
由于没有人发布了同时使用 Objective-C 和 Swift 的解决方案,我想分享一下我是如何做到的。
find ./ -name "*.swift" -print0 -or -name "*.m" -print0 | xargs -0 genstrings -o en.lproj
Run Code Online (Sandbox Code Playgroud)
通过使用它,您的本地化字符串文件将被 swift 和 Objective-c 文件中的字符串替换。
编辑:您需要进入cd包含所有子目录的目录。
我刚刚向 genstrings 命令添加了另一个路径,如下所示:
genstrings -o en.lproj *.m Classes/*.m
Run Code Online (Sandbox Code Playgroud)
..效果很好!
小智 5
不知道是否有人注意到它或该选项后来出现,但是现在有一个-a选项是genstrings。以上选项对我都不起作用。下面是我的解决方案。
find ./ -name "*.m" -exec echo {} \; -exec genstrings -a -o en.lproj {} \;
Run Code Online (Sandbox Code Playgroud)
这还将打印读取文件的名称。
尽管上面的命令可以正常工作,但它并不完全适合我,因为在我的项目文件夹中,有很多文件位于文件夹中,但不包含在xcode项目中。因此,我所做的就是通过解析pbxproj文件创建了项目中使用的文件列表。在filelist.txt中添加了列表,并在命令下方触发
while read f; do find ./ -name "$f" -exec echo {} \; -exec genstrings -a -o en.lproj {} \; ; done < filelist.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31855 次 |
| 最近记录: |