如何自动在localizable.strings文件中找到重复的键?

时间:2014-06-09 16:25:23

标签: xcode

在XCode项目中使用带有许多条目的localizable.strings时,您迟早可能会多次使用某个键。是否有可能让XCode找到这种情况并发出警告呢?

Apple的Resource Programming提到了genstrings工具,但通常你不会在XCode中使用它。那么,如何让XCode在不手动运行genstrings的情况下检测此类文件中的重复键?

Bounty note:要获得赏金,解决方案必须与XCode完全集成,如果它使用脚本等外部资源,也就是说,它必须使用XCode中提供的输入文件,将构建标记为失败在重复的情况下,不得触发空行或评论等误报。

3 个答案:

答案 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

screenshot

答案 1 :(得分:2)

cut -d&#39; =&#39; -f1 Localizable.strings |排序| uniq -d

你看的是用等号分隔的短语,而不是每个字符串中的第一个单词。

答案 2 :(得分:-1)

more Filename.strings | tr -d ' ' | sort | uniq -d | grep -v '^$'