chore: improve missing-translations.sh
This commit is contained in:
parent
7462e03e70
commit
50442a02d1
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
typeset -a requiredLangs
|
||||||
|
requiredLangs=(de en)
|
||||||
|
|
||||||
|
|
||||||
function translations() {
|
function translations() {
|
||||||
msgFile=$1
|
msgFile=$1
|
||||||
|
|
||||||
@ -10,7 +14,7 @@ function translations() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
typeset -a msgFiles
|
typeset -a msgFiles
|
||||||
msgFiles=(messages/**/*.msg)
|
msgFiles=(messages/**/*.msg(.N))
|
||||||
|
|
||||||
typeset -a msgDirectories
|
typeset -a msgDirectories
|
||||||
msgDirectories=()
|
msgDirectories=()
|
||||||
@ -20,7 +24,7 @@ for msgFile (${msgFiles}); do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
difference=0
|
msgDifference=0
|
||||||
|
|
||||||
for msgDirectory (${msgDirectories}); do
|
for msgDirectory (${msgDirectories}); do
|
||||||
typeset -a dirMsgFiles
|
typeset -a dirMsgFiles
|
||||||
@ -31,6 +35,20 @@ for msgDirectory (${msgDirectories}); do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
for lang (${requiredLangs}); do
|
||||||
|
foundLang=0
|
||||||
|
for msgFile (${dirMsgFiles}); do
|
||||||
|
[[ ${msgFile:t} =~ "^${lang}[-.]" ]] || continue
|
||||||
|
foundLang=1
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $foundLang -ne 1 ]]; then
|
||||||
|
msgDifference=1
|
||||||
|
printf "%s missing required language %s\n" $msgDirectory $lang
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
(
|
(
|
||||||
diffDir=""
|
diffDir=""
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
@ -45,14 +63,49 @@ for msgDirectory (${msgDirectories}); do
|
|||||||
|
|
||||||
for msgFile (${dirMsgFiles}); do
|
for msgFile (${dirMsgFiles}); do
|
||||||
translations ${msgFile} > ${diffDir}/${msgFile:t}
|
translations ${msgFile} > ${diffDir}/${msgFile:t}
|
||||||
diffArgs+=(${diffDir}/${msgFile:t})
|
diffArgs+=(-L ${msgFile} ${diffDir}/${msgFile:t})
|
||||||
done
|
done
|
||||||
|
|
||||||
printf ">>> %s\n" ${msgDirectory}
|
# printf ">>> %s\n" ${msgDirectory}
|
||||||
diff --suppress-common-lines -wB ${diffArgs}
|
diff -u0 --suppress-common-lines -wB ${diffArgs} | grep -vE '^@@.*@@'
|
||||||
) || difference=1
|
) || msgDifference=1
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ $difference -ne 0 ]]; then
|
|
||||||
|
typeset -a templateFiles
|
||||||
|
templateFiles=(templates/i18n/**/*(.))
|
||||||
|
|
||||||
|
templateDifference=0
|
||||||
|
|
||||||
|
for templateDirectory (templates/i18n/**/*(FN)); do
|
||||||
|
# printf ">>> %s\n" ${templateDirectory}
|
||||||
|
|
||||||
|
typeset -a templateExtensions
|
||||||
|
templateExtensions=()
|
||||||
|
for templateFile (${templateFiles}); do
|
||||||
|
[[ ${templateFile:h} == ${templateDirectory} ]] || continue
|
||||||
|
if ! [[ ${templateExtensions[(ie)${templateFile:e}]} -le ${#templateExtensions} ]]; then
|
||||||
|
templateExtensions+=(${templateFile:e})
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for ext (${templateExtensions}); do
|
||||||
|
for lang (${requiredLangs}); do
|
||||||
|
foundLang=0
|
||||||
|
for templateFile (${templateDirectory}/*.${ext}); do
|
||||||
|
[[ ${templateFile:t} =~ "(^|.)${lang}[-.]" ]] || continue
|
||||||
|
foundLang=1
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $foundLang -ne 1 ]]; then
|
||||||
|
templateDifference=1
|
||||||
|
printf "%s: %s (%s)\n" $templateDirectory $lang $ext
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $msgDifference -ne 0 || $templateDifference -ne 0 ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user