-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfind_missing_localization.sh
executable file
·106 lines (63 loc) · 2.29 KB
/
find_missing_localization.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/local/bin/bash
[[ "${BASH_VERSINFO}" == "4" ]] || {
echo -e "Error: bash v4 required\nUpdate bash to v4 via:\n\n\t\$ brew update && brew install bash\n"
exit 1
}
[[ "x$1" == "x-e" ]] && {
_EXT_MODE="1"
}
_PATH="<project root>"
_LANG="Base.lproj"
_STRINGS="Localizable.strings"
## dictionary<key, value>
##
declare -A loc
export loc
while read f; do
_key="${f%%-=!=-*}"
_value="${f##*-=!=-}"
# echo "<${_key}> ==> <${_value}>"
loc[${_key}]="${_value}"
done < <(cat ${_PATH}/${_LANG}/${_STRINGS} | perl -ne 's/"([^""]+?)".*=.*"([^""]+?)"/ print "$1-=!=-$2\n" /ge' | sort -u)
## find usages of L(...) and L_FORM(...) macroses in the code
##
echo -e "\n\n--------------------------------------------------------------------------"
echo -e "---[Checking code]--------------------------------------------------------\n"
while read f; do
[[ 0 && -n "${loc[$f]}" ]] || {
echo -e "\t@\"$f\""
[[ -n "${_EXT_MODE}" ]] && {
echo -e "\tFound in:"
grep -ol "\Q$f\E" -R --include '*.h' --include '*.m' ${_PATH} | sort -u
echo -e "\n\n"
}
}
done < <(grep -oE '(L|L_FORM)\(.*?@".+?"\)' -R ${_PATH} | perl -ne 's/:.+?@"(.+?)"/ print "$1\n" /ge' | sort -u)
## find text in UILabels
##
echo -e "\n\n--------------------------------------------------------------------------"
echo -e "---[Checking UILabels in xibs]--------------------------------------------\n"
while read f; do
[[ -n "${loc[$f]}" ]] || {
echo -e "\t@\"$f\""
[[ -n "${_EXT_MODE}" ]] && {
echo -e "\tFound in:"
grep -ol "\Qtext=\"$f\"\E" -R --include '*.xib' ${_PATH} | sort -u
echo -e "\n\n"
}
}
done < <(grep -oE '<label.+?text="(.+?)".+?>' -R --include '*.xib' ${_PATH} | perl -ne 's/ text="([^""]+?)"/ print "$1\n" /ge;' | sort -u)
## find text in UIButtons
##
echo -e "\n\n--------------------------------------------------------------------------"
echo -e "---[Checking UIButtons in xibs]-------------------------------------------\n"
while read f; do
[[ -n "${loc[$f]}" ]] || {
echo -e "\t@\"$f\""
[[ -n "${_EXT_MODE}" ]] && {
echo -e "\tFound in:"
grep -ol "\Qtitle=\"$f\"\E" -R --include '*.xib' ${_PATH} | sort -u
echo -e "\n\n"
}
}
done < <(grep -oE '<state.+?title="(.+?)".*?>' -R --include '*.xib' ${_PATH} | perl -ne 's/title="([^""]+?)"/ print "$1\n" /ge' | sort -u)