mirror of https://github.com/Icinga/L10n.git
bin/validate: Rename to `bin/compile`
This commit is contained in:
parent
6d83bca90d
commit
85f49b4d6a
|
@ -1,24 +0,0 @@
|
|||
name: Locale Validation
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
validate:
|
||||
name: Locale Validation
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code base
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup dependencies
|
||||
run: sudo apt-get -y install gettext
|
||||
|
||||
- name: Validate locale files
|
||||
run: cd ./locale/ && ../bin/validate
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
declare -A CATALOGS=()
|
||||
|
||||
COMPONENTS=$(find . -mindepth 1 -maxdepth 1 -type d -not -name "sources.d" -printf "%P ")
|
||||
for component_name in $COMPONENTS; do
|
||||
echo "Checking $component_name for catalogs"
|
||||
LOCALES=$(find $component_name -mindepth 1 -maxdepth 1 -type d -printf "%P ")
|
||||
echo "Component locales found: $LOCALES"
|
||||
for locale_name in $LOCALES; do
|
||||
CATALOGS[$locale_name]+=" $component_name/$locale_name/LC_MESSAGES/icinga.po"
|
||||
done
|
||||
done
|
||||
|
||||
for locale_name in "${!CATALOGS[@]}"; do
|
||||
echo "Compiling catalogs for $locale_name"
|
||||
mkdir -p ../locale/$locale_name/LC_MESSAGES
|
||||
echo "${CATALOGS[$locale_name]}" | xargs msgcat -o ../locale/$locale_name/LC_MESSAGES/icinga.po --lang $locale_name
|
||||
msgfmt -o ../locale/$locale_name/LC_MESSAGES/icinga.mo -c ../locale/$locale_name/LC_MESSAGES/icinga.po
|
||||
done
|
56
bin/validate
56
bin/validate
|
@ -1,56 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
FAIL=0
|
||||
|
||||
LOCALES=$(find . -mindepth 1 -maxdepth 1 -type d -regextype grep -regex '\./[a-z]\{2\}_[A-Z]\{2\}' -printf "%P ")
|
||||
for locale_name in $LOCALES; do
|
||||
echo "Checking locale $locale_name"
|
||||
|
||||
OUTPUT=$(LC_ALL=C msgfmt -cvf --statistics $locale_name/LC_MESSAGES/icinga.po 2>&1 >/dev/null)
|
||||
ECODE=$?
|
||||
if [ -f "messages.mo" ]; then
|
||||
rm "messages.mo"
|
||||
fi
|
||||
|
||||
echo "$OUTPUT"
|
||||
|
||||
if [ $ECODE -gt 0 ]; then
|
||||
FAIL=1
|
||||
fi
|
||||
|
||||
TRANSLATED=0
|
||||
UNTRANSLATED=0
|
||||
FUZZY=0
|
||||
|
||||
RE="[0-9]+"
|
||||
LAST_LINE=$(echo "$OUTPUT" | tail -1)
|
||||
for chars in $LAST_LINE; do
|
||||
if [[ "$chars" =~ $RE ]] && [[ ${BASH_REMATCH[0]} ]]; then
|
||||
LAST_CNT="${BASH_REMATCH[0]}"
|
||||
else
|
||||
case $chars in
|
||||
"translated")
|
||||
TRANSLATED=$LAST_CNT
|
||||
;;
|
||||
"fuzzy")
|
||||
FUZZY=$LAST_CNT
|
||||
;;
|
||||
"untranslated")
|
||||
UNTRANSLATED=$LAST_CNT
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $FUZZY -gt 0 ]; then
|
||||
echo "$locale_name still contains $FUZZY fuzzy messages"
|
||||
FAIL=1
|
||||
fi
|
||||
|
||||
PROGRESS=$(python -c "print (int(round(($TRANSLATED.0 / ($TRANSLATED + $UNTRANSLATED + $FUZZY)) * 100)))")
|
||||
echo "$locale_name is at $PROGRESS%"
|
||||
|
||||
echo
|
||||
done
|
||||
|
||||
exit $FAIL
|
Loading…
Reference in New Issue