diff --git a/tools/po_check_entry.sh b/tools/po_check_entry.sh new file mode 100755 --- /dev/null +++ b/tools/po_check_entry.sh @@ -0,0 +1,36 @@ +#! /bin/sh + +# Check for aspell. Everything else is in base. +COMMAND=aspell +if ! command -v ${COMMAND} >/dev/null ; then + echo "I need ${COMMAND} from textproc/aspell!" + exit 0 +fi + +LANG="${1}" + +if [ -z "${LANG}" ]; then + echo "No language specified" + exit 0 +fi + +translation=$(cat /dev/stdin) + +# Build a grep(1) filter with all the words aspell(1) could not find in this +# translated text. + +filter= +for word in $(echo "${translation}" | aspell list --lang="${LANG}");do + tmp=$(printf "%s" "${word}|") + filter="${filter}${tmp}" +done + +filter=$(echo "${filter}" | sed -e 's/|$//g') + +# Hilight the translation in the text providing the user with some context about +# where the reported words are used. +if [ -n "${filter}" ]; then + echo "----------- translation -----------" + echo "${translation}" | grep -Ew --color "${filter}" + echo +fi diff --git a/tools/po_spellcheck.sh b/tools/po_spellcheck.sh new file mode 100755 --- /dev/null +++ b/tools/po_spellcheck.sh @@ -0,0 +1,27 @@ +#! /bin/sh + +# Check for aspell. Everything else is in base. +COMMAND=msgexec +if ! command -v ${COMMAND} >/dev/null ; then + echo "I need ${COMMAND} from devel/gettext-tools!" + exit 0 +fi + +usage() +{ + echo "${0} " + echo "Example: ./${0} documentation/content/es/articles/bsdl-gpl/_index.po es" +} + +if [ ${#} -ne 2 ]; then + usage + exit 0 +fi + +PO_FILE="${1}" +LANG="${2}" + +# msgexec acts as a driver, invoking a command for every +# translated text + +msgexec -i "${PO_FILE}" ./po_check_entry.sh "${LANG}"