+++ /dev/null
-#!/bin/bash
-
-set -o errexit # set -e
-set -o nounset # set -u
-
-function calc_percentage()
-{
- local FILE="$1"
- local TNUM=0
- local FNUM=0
- local UNUM=0
- local LINE
-
- LINE="$(msgfmt --statistics -c -o /dev/null "$FILE" 2>&1 | sed 's/ \(message\|translation\)s*\.*//g')"
-
- # filename: 104 translated, 22 fuzzy, 11 untranslated
- if [[ "$LINE" =~ ([0-9]+)[[:space:]]translated,[[:space:]]([0-9]+)[[:space:]]fuzzy,[[:space:]]([0-9]+)[[:space:]]untranslated ]]; then
- TNUM=${BASH_REMATCH[1]} # translated
- FNUM=${BASH_REMATCH[2]} # fuzzy
- UNUM=${BASH_REMATCH[3]} # untranslated
- # filename: 320 translated, 20 untranslated
- elif [[ "$LINE" =~ ([0-9]+)[[:space:]]translated,[[:space:]]([0-9]+)[[:space:]]untranslated ]]; then
- TNUM=${BASH_REMATCH[1]} # translated
- UNUM=${BASH_REMATCH[2]} # untranslated
- # filename: 5 translated, 13 fuzzy
- elif [[ "$LINE" =~ ([0-9]+)[[:space:]]translated,[[:space:]]([0-9]+)[[:space:]]fuzzy ]]; then
- TNUM=${BASH_REMATCH[1]} # translated
- FNUM=${BASH_REMATCH[2]} # fuzzy
- # filename: 63 translated
- elif [[ "$LINE" =~ ([0-9]+)[[:space:]]translated ]]; then
- TNUM=${BASH_REMATCH[1]} # translated
- fi
-
- # number of translated strings
- local TOTAL=$((TNUM+FNUM+UNUM))
- # percentage complete
- echo $((100*TNUM/TOTAL))
-}
-
-
-echo "DEPLOY_DIR = $DEPLOY_DIR"
-echo "DEPLOY_FILE = $DEPLOY_FILE"
-echo "DEPLOY_REPO = $DEPLOY_REPO"
-echo "TRAVIS_BRANCH = $TRAVIS_BRANCH"
-echo "TRAVIS_COMMIT = $TRAVIS_COMMIT"
-echo "TRAVIS_PULL_REQUEST = $TRAVIS_PULL_REQUEST"
-
-if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
- echo "This is a Pull Request. Done."
- exit 0
-fi
-
-if [ "$TRAVIS_BRANCH" != "translate" ]; then
- echo "This isn't branch 'translate'. Done."
- exit 0
-fi
-
-FILES="$(git diff --name-only "$TRAVIS_COMMIT^..$TRAVIS_COMMIT" -- 'po/*.po')"
-FILE_COUNT="$(echo "$FILES" | wc -w)"
-
-if [ "$FILE_COUNT" = 1 ]; then
- AUTHOR="$(git log -n1 --format="%aN" "$TRAVIS_COMMIT")"
- PO="${FILES##*/}"
- PO="${PO%.po}"
- PCT=$(calc_percentage "$FILES")
- MESSAGE="$AUTHOR, $PO, $PCT%"
-else
- MESSAGE="update leaderboard"
-fi
-
-.travis/prep.sh
-
-set -v
-eval "$(ssh-agent -s)"
-ssh-add .travis/travis-deploy-github.pem
-
-git clone "$DEPLOY_REPO" "$DEPLOY_DIR"
-.travis/generate-webpage.sh po/*.po > "$DEPLOY_DIR/$DEPLOY_FILE"
-
-cd "$DEPLOY_DIR"
-git add "$DEPLOY_FILE"
-git commit -m "[AUTO] translation: $MESSAGE" -m "[ci skip]"
-git push origin
-
+++ /dev/null
-#!/bin/bash
-
-function lookup_lang()
-{
- case "${1##*/}" in
- eu) IMG="basque.png"; NAME="Basque";;
- bg) IMG="bulgarian.png"; NAME="Bulgarian";;
- ca) IMG="catalan.png"; NAME="Catalan";;
- zh_CN) IMG="chinese-simplified.png"; NAME="Chinese (Simplified)";;
- zh_TW) IMG="chinese-traditional.png"; NAME="Chinese (Traditional)";;
- cs) IMG="czech.png"; NAME="Czech";;
- da) IMG="danish.png"; NAME="Danish";;
- nl) IMG="dutch.png"; NAME="Dutch";;
- en_GB) IMG="english.png"; NAME="English (British)";;
- eo) IMG="esperanto.png"; NAME="Esperanto";;
- et) IMG="estonian.png"; NAME="Estonian";;
- fr) IMG="french.png"; NAME="French";;
- gl) IMG="galician.png"; NAME="Galician";;
- de) IMG="german.png"; NAME="German";;
- el) IMG="greek.png"; NAME="Greek";;
- hu) IMG="hungarian.png"; NAME="Hungarian";;
- id) IMG="indonesian.png"; NAME="Indonesian";;
- ga) IMG="irish.png"; NAME="Irish";;
- it) IMG="italian.png"; NAME="Italian";;
- ja) IMG="japanese.png"; NAME="Japanese";;
- ko) IMG="korean.png"; NAME="Korean";;
- lt) IMG="lithuanian.png"; NAME="Lithuanian";;
- pl) IMG="polish.png"; NAME="Polish";;
- pt_BR) IMG="portuguese-brazil.png"; NAME="Portuguese (Brazil)";;
- ru) IMG="russian.png"; NAME="Russian";;
- sk) IMG="slovak.png"; NAME="Slovak";;
- es) IMG="spanish.png"; NAME="Spanish";;
- sv) IMG="swedish.png"; NAME="Swedish";;
- tr) IMG="turkish.png"; NAME="Turkish";;
- uk) IMG="ukrainian.png"; NAME="Ukrainian";;
- esac
-}
-
-function html_header()
-{
- echo "---"
- echo "layout: concertina"
- echo "title: Translations"
- echo "---"
- echo ""
- echo "<h2>Translating NeoMutt</h2>"
- echo ""
- echo "<p>"
- echo " NeoMutt has been translated into 30 languages."
- echo " Unfortunately, some of the translations are out-of-date."
- echo "</p>"
- echo ""
- echo "<p>"
- echo " Do <b>YOU</b> speak one of these languages?"
- echo " If so, <a href=\"mailto:rich@flatcap.org\">please help us</a>."
- echo "</p>"
- echo ""
- echo "<p>"
- echo " Read more about what would be involved in"
- echo " <a href=\"/dev/translate\">translating NeoMutt</a>."
- echo "</p>"
- echo ""
- echo "<table class=\"lang\" summary=\"list of languages\">"
- echo " <thead>"
- echo " <tr>"
- echo " <th>Language</th>"
- echo " <th style=\"text-align: center;\">"
- echo " <span style=\"border: 1px solid black; background: #6f6; padding: 3px;\">Complete</span>"
- echo " <span style=\"border: 1px solid black; background: #ff6; padding: 3px;\">Fuzzy</span>"
- echo " <span style=\"border: 1px solid black; background: #f66; padding: 3px;\">Incomplete</span>"
- echo " </th>"
- echo " </tr>"
- echo " </thead>"
- echo " <tbody>"
- echo " <tr>"
- echo " <td><img src=\"/images/flags/english.png\">English</td>"
- echo " <td>"
- echo " <div style=\"background: #6f6; min-width: 500px;\">Base Language</div></td>"
- echo " </tr>"
-}
-
-function html_line()
-{
- local LINE="$1"
- local LANG=""
- local TNUM=0
- local FNUM=0
- local UNUM=0
-
- # filename: 104 translated, 22 fuzzy, 11 untranslated
- if [[ "$LINE" =~ (.*):[[:space:]]+([0-9]+)[[:space:]]translated,[[:space:]]([0-9]+)[[:space:]]fuzzy,[[:space:]]([0-9]+)[[:space:]]untranslated ]]; then
- LANG="${BASH_REMATCH[1]}"
- TNUM=${BASH_REMATCH[2]} # translated
- FNUM=${BASH_REMATCH[3]} # fuzzy
- UNUM=${BASH_REMATCH[4]} # untranslated
- # filename: 320 translated, 20 untranslated
- elif [[ "$LINE" =~ (.*):[[:space:]]+([0-9]+)[[:space:]]translated,[[:space:]]([0-9]+)[[:space:]]untranslated ]]; then
- LANG="${BASH_REMATCH[1]}"
- TNUM=${BASH_REMATCH[2]} # translated
- UNUM=${BASH_REMATCH[3]} # untranslated
- # filename: 5 translated, 13 fuzzy
- elif [[ "$LINE" =~ (.*):[[:space:]]+([0-9]+)[[:space:]]translated,[[:space:]]([0-9]+)[[:space:]]fuzzy ]]; then
- LANG="${BASH_REMATCH[1]}"
- TNUM=${BASH_REMATCH[2]} # translated
- FNUM=${BASH_REMATCH[3]} # fuzzy
- # filename: 63 translated
- elif [[ "$LINE" =~ (.*):[[:space:]]+([0-9]+)[[:space:]]translated ]]; then
- LANG="${BASH_REMATCH[1]}"
- TNUM=${BASH_REMATCH[2]} # translated
- else
- return
- fi
-
- lookup_lang "$LANG"
-
- local TOTAL=$((TNUM+FNUM+UNUM)) # number of translated strings
- local PC=$((100*TNUM/TOTAL)) # percentage complete
-
- local TPX=$((500*TNUM/TOTAL)) # pixels for translated
- local FPX=$((500*FNUM/TOTAL)) # pixels for fuzzy
- local UPX=$((500*UNUM/TOTAL)) # pixels for untranslated
-
- [ $FPX -gt 0 ] && [ $FPX -lt 10 ] && TPX=$((TPX-5)) # adjust for the size of a non-breaking space
- [ $UPX -gt 0 ] && [ $UPX -lt 10 ] && TPX=$((TPX-7))
-
- local TITLE="$NAME: $TNUM translated"
- [ $FNUM -gt 0 ] && TITLE="$TITLE, $FNUM fuzzy"
- [ $UNUM -gt 0 ] && TITLE="$TITLE, $UNUM untranslated"
-
- echo " <tr title=\"$TITLE\">"
- echo " <td><img src=\"/images/flags/$IMG\">$NAME</td>"
- echo " <td>"
- if [ $TPX -gt 0 ]; then
- echo " <div style=\"background: #6f6; min-width: ${TPX}px;\">${PC}%</div>"
- fi
- if [ $FPX -gt 0 ]; then
- echo " <div style=\"background: #ff6; min-width: ${FPX}px; border-left: 1px solid black; border-right: 1px solid black;\"> </div>"
- fi
- if [ $UPX -gt 0 ]; then
- echo " <div style=\"background: #f66; min-width: ${UPX}px;\"> </div>"
- fi
- echo " </td>"
- echo " </tr>"
-}
-
-function html_footer()
-{
- echo " </tbody>"
- echo "</table>"
- echo "<br>"
- echo "Last updated: $(date --utc '+%F %R') UTC"
-}
-
-
-[ $# = 0 ] && ARGS="*.po" || ARGS="$*"
-
-html_header
-for i in $ARGS; do
- echo -ne "${i%.po}:\t"
- msgfmt --statistics -c -o /dev/null "$i" 2>&1
-done \
- | grep -wv "en_GB" \
- | sed 's/ \(message\|translation\)s*\.*//g' \
- | sort -nr -k2 -k4 -k6 \
- | while read -r line; do
- html_line "$line"
-done
-html_footer
-