#!/bin/sh set -eu mkdir -p doc/po LANGS= while getopts 'l:' flag; do case "$flag" in l) LANGS="$OPTARG" ;; *) exit 2 ;; esac done shift $((OPTIND - 1)) if [ -z "$LANGS" ]; then echo "Missing LANG" >&2 exit 2 fi po() { format="$1" from_f="$2" to_f="$3" lang="$4" po4a-updatepo -M UTF-8 -f "$format" -m "$from_f" -p "doc/po/$lang.po" -v --previous po4a-translate -M UTF-8 -f "$format" -m "$from_f" -p "doc/po/$lang.po" -v -L UTF-8 -l "$to_f" -k 0 >&2 } for from_f in "$@"; do for lang in $LANGS; do to_f="$(echo "$from_f" | sed "s/\.en\./.$lang./")" printf 'Generating %s...\n' "$to_f" case "$from_f" in *.en.[1-9].in) po man "$from_f" "$to_f" "$lang" ;; *.en.md|*.en.msg) po text "$from_f" "$to_f" "$lang" ;; *) echo "Unsupported file format: $from_f" >&2 exit 2 ;; esac done done end="\033[0m" yellowb="\033[1;33m" for lang in $LANGS; do if LANG=POSIX msgfmt --statistics "doc/po/$lang.po" 2>&1 | grep translated; then printf "\n\t${yellowb}WARNING${end}!\n Missing translations for %s\n\n" "doc/po/$lang.po" >&2 fi done