Artwork + copying of password.
This commit is contained in:
60
Scripts/checkLocalization
Executable file
60
Scripts/checkLocalization
Executable file
@@ -0,0 +1,60 @@
|
||||
#! /usr/bin/env bash
|
||||
source bashlib
|
||||
|
||||
isIn() {
|
||||
local key=$1; shift
|
||||
|
||||
for value
|
||||
do [[ $value = "$key" ]] && return; done
|
||||
}
|
||||
|
||||
cd "${0%/*}/../../"
|
||||
|
||||
emit "Enumerating localization keys"
|
||||
code=$(find Classes -type f -exec grep -o 'NSLocalizedString(@"[^"]*"' {} + | sed -n 's/.*\("[^"]*"\).*/\1/p' | sort -bu)
|
||||
for l in Resources/*.lproj/Localizable.strings; do
|
||||
k=${l#*/}; k=${k%%/*}
|
||||
emit " - Found language: ${k%.lproj}"
|
||||
|
||||
lang+=( "$k" )
|
||||
lprojLocal+=( "$(sed -n '/\/\/[^"]*\[REMOTE\][^"]*$/!s/^\("[^"]*"\).*/\1/p' "$l" | sort -bu)" )
|
||||
lprojAll+=( "$(sed -n 's/^\("[^"]*"\).*/\1/p' "$l" | sort -u)" )
|
||||
done
|
||||
|
||||
allhealthy=1
|
||||
healthy=1
|
||||
echo; emit "Looking for unused localization keys"
|
||||
for l in "${!lang[@]}"; do
|
||||
while read; do
|
||||
(( healthy )) && emit -y "Not used in code or marked '// [REMOTE]':"
|
||||
allhealthy=0
|
||||
healthy=0
|
||||
emit -y " ${lang[l]}: ${REPLY##*([[:space:]])} "
|
||||
done < <(comm -1 -3 <(printf '%s\n' "$code") <(printf '%s\n' "${lprojLocal[l]}"))
|
||||
done
|
||||
(( healthy )) && emit "No unused keys."
|
||||
|
||||
healthy=1
|
||||
echo; emit "Looking for missing localization keys"
|
||||
for l in "${!lang[@]}"; do
|
||||
chealthy=1
|
||||
while read; do
|
||||
(( chealthy )) && emit -y "Used by code:"
|
||||
allhealthy=0
|
||||
chealthy=0
|
||||
healthy=0
|
||||
emit -r " ${lang[l]}: ${REPLY##*([[:space:]])} "
|
||||
done < <(comm -2 -3 <(printf '%s\n' "$code") <(printf '%s\n' "${lprojAll[l]}"))
|
||||
khealthy=1
|
||||
while read; do
|
||||
(( khealthy )) && emit -y "Present in other languages:"
|
||||
allhealthy=0
|
||||
khealthy=0
|
||||
healthy=0
|
||||
emit -r " ${lang[l]}: ${REPLY##*([[:space:]])} "
|
||||
done < <(for ol in "${!lang[@]}"; do comm -1 -3 <(printf '%s\n' "${lprojAll[l]}") <(printf '%s\n' "${lprojAll[ol]}"); done | sort -bu)
|
||||
done
|
||||
(( healthy )) && emit "No missing keys."
|
||||
|
||||
echo
|
||||
(( allhealthy )) && emit "All good." || emit -y "Some issues detected."
|
Reference in New Issue
Block a user