在XCode项目中使用带有许多条目的localizable.strings时,您迟早可能会多次使用某个键。是否有可能让XCode找到这种情况并发出警告呢?
Apple的Resource Programming提到了genstrings工具,但通常你不会在XCode中使用它。那么,如何让XCode在不手动运行genstrings的情况下检测此类文件中的重复键?
Bounty note:要获得赏金,解决方案必须与XCode完全集成,如果它使用脚本等外部资源,也就是说,它必须使用XCode中提供的输入文件,将构建标记为失败在重复的情况下,不得触发空行或评论等误报。
答案 0 :(得分:19)
cut -d' ' -f1 Localizable.strings | sort | uniq -c
在终端中输入此命令,您会得到一个列表,说明每个密钥的使用频率。
使用-d代替-c,您只能获得重复
#!/bin/bash
c=`expr $SCRIPT_INPUT_FILE_COUNT - 1`
for i in $(seq 0 $c)
do
var="SCRIPT_INPUT_FILE_$i"
FILENAME=${!var}
DUPES=`cut -d' ' -f1 "$FILENAME" | sort | uniq -d`
while read -r line; do
if [[ $line == "\""* ]] ;
then
echo "warning: $line used multiple times -"
fi
done <<< "$DUPES"
done
答案 1 :(得分:2)
cut -d&#39; =&#39; -f1 Localizable.strings |排序| uniq -d
你看的是用等号分隔的短语,而不是每个字符串中的第一个单词。
答案 2 :(得分:-1)
more Filename.strings | tr -d ' ' | sort | uniq -d | grep -v '^$'