#!/usr/bin/env bash # # usage() : short help # usage() { cat < $PO_FILES PO_MESSAGES="$(mktemp -t XXXXXXXXXX.po)" msgcat --files-from=$PO_FILES --output=$PO_MESSAGES REV_DATE=$(grep "PO-Revision-Date: [1-9]" $PO_MESSAGES |cut -d " " -f2) TOTAL=$(msgattrib --force-po --no-obsolete $PO_MESSAGES | count_msgids) TOTAL_WC=$(msgattrib --force-po --no-obsolete --no-wrap $PO_MESSAGES | count_original_words) FUZZY=$(msgattrib --force-po --only-fuzzy --no-obsolete $PO_MESSAGES | count_msgids) # Fully translated files always return one remaining fuzzy entry... if [ $FUZZY = 1 ] then FUZZY=0 fi TRANSLATED=$(msgattrib --force-po --translated --no-fuzzy --no-obsolete $PO_MESSAGES | count_msgids) TRANSLATED_WC=$(msgattrib --force-po --translated --no-fuzzy --no-obsolete --no-wrap $PO_MESSAGES | count_original_words) rm -f $PO_FILES $PO_MESSAGES } # # show_text() : show the statistics in a readable text format # show_text() { for lang in $LANGUAGES ; do statistics echo " $lang: $(($TRANSLATED*100/$TOTAL))% ($TRANSLATED/$TOTAL) translated, $(($FUZZY*100/$TOTAL))% ($FUZZY) fuzzy, $(($TRANSLATED_WC*100/$TOTAL_WC))% ($TRANSLATED_WC/$TOTAL_WC) words translated (rev. date: $REV_DATE)" done } # # show_html() : show the statistics in HTML format # show_html() { echo " " for lang in $LANGUAGES ; do statistics echo " " done echo "
Translation status of the Inkscape user interface
LanguageStatusUntranslatedFuzzyTotalLast changed
$lang$(($TRANSLATED*100/$TOTAL))%$(($TOTAL-$TRANSLATED-$FUZZY)) ($((($TOTAL-$TRANSLATED-$FUZZY)*100/$TOTAL))%)$FUZZY ($(($FUZZY*100/$TOTAL))%)$TOTAL$REV_DATE
" } user_lang= export_html=0 # Command line options while test $# -gt 0 do case $1 in -h | --help) usage exit 0 ;; -e | --export-html) export_html=1 ;; -*) echo "$0 : invalid option $1" >&2 usage exit 1 ;; *) user_lang=$@ break ;; esac shift done set -eu #set -o pipefail if [ "$user_lang" ] then LANGUAGES="$user_lang" else LANGUAGES="$(grep -v "^\#" ./LINGUAS)" fi if [ $export_html = 1 ] then show_html else show_text fi # -*- mode: sh; sh-basic-offset: 4; indent-tabs-mode: nil; -*- # vim: set filetype=sh sw=4 sts=4 expandtab autoindent: