#!/bin/bash

lingua="$1"
[ "${lingua::2}" = "--" ] && lingua="${lingua:2}" && shift || lingua="$LANGUAGE"
[ -z "$textdomaindir" ] && textdomaindir="/usr/local/share"
[ -z "$textdomain" ] && textdomain="Starbuntu"
to_trans="\"$1\""
to_trans="${to_trans//\\/\\\\}"
to_trans="$(echo "$to_trans" | sed 's/ \"[^\"]*\" / .* /g')"
app1="$2"
app2="$3"
trans=$(grep -A1 "$to_trans" $textdomaindir/locale/$lingua/LC_MESSAGES/$textdomain.po 2>/dev/null | head -2 | tail -1)
trans="${trans#* }"
if [[ "$trans" =~ '$' ]]; then
    [[ "$trans" =~ \$\{ ]] && var1=$(echo "$trans" | sed -E 's~^[^$]*(\$[A-Za-z0-9_{]*[^}]*}).*~\1~') || var1=$(echo "$trans" | sed -E 's~^[^$]*(\$[A-Za-z0-9_]*).*~\1~')
    [[ "$trans" =~ \$\{ ]] && var2=$(echo "$trans" | sed -E 's~^.*(\$\{[A-Za-z0-9_]*[^}]*}).*~\1~') || var2=$(echo "$trans" | sed -E 's~^.*(\$[A-Za-z0-9_]*).*~\1~')
    var1="${var1/[/\\[}"; var1="${var1/]/\\]}"
    var2="${var2/[/\\[}"; var2="${var2/]/\\]}"
    trans="$(echo "$trans" | sed "s~$var1~$app1~g")"
    [ "$var1" != "$var2" ] && trans="$(echo "$trans" | sed "s~$var2~$app2~g")"
    eval trans="$trans"
else
    trans="${trans//\"/}"
fi
[ -z "$trans" ] && trans="$1"
echo "$trans" | sed ':a;N;$!ba;s/\\n\n/\n/g'
