From cb36a953a05e893afe77ddbc2a7b9ed5d0cbbc6d Mon Sep 17 00:00:00 2001 From: Maat Date: Thu, 1 Apr 2021 09:41:46 +0200 Subject: Adding mogen tool to live compile translations --- dev/mogen | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 dev/mogen diff --git a/dev/mogen b/dev/mogen new file mode 100755 index 00000000..0b3568ad --- /dev/null +++ b/dev/mogen @@ -0,0 +1,45 @@ +#!/bin/bash +# vim:et:ai:ts=4:sts=4:sw=4 + +DESTDIR='locale' + +LS_BIN='/usr/bin/ls' +FIND_BIN='/usr/bin/find' +TOUCH_BIN='/usr/bin/touch' +SED_BIN='/usr/bin/sed' +MKDIR_BIN='/usr/bin/mkdir' +MSGFMT_BIN='/usr/bin/msgfmt' +REALPATH_BIN="/usr/bin/realpath" +DIRNAME_BIN="/usr/bin/dirname" +BASENAME_BIN="/usr/bin/basename" +SLEEP_BIN="/usr/bin/sleep" + +MYDIR="$(${DIRNAME_BIN} $(${REALPATH_BIN} $0))" +DEVDIR="$(${DIRNAME_BIN} $(${DIRNAME_BIN} $(${REALPATH_BIN} $0)))" +FULLDESTDIR="${DEVDIR}/${DESTDIR}" + +[ "x$1" == "x--watch" ] && echo "Watching po dir for .po files updates..." + +function updateLang () { + [ ! -f "${FULLDESTDIR}/.timestamp" ] && ${TOUCH_BIN} "${FULLDESTDIR}/.timestamp" + while [ 1 ] + do + _update=0 + for _langfile in $(${FIND_BIN} ${DEVDIR}/po -name "*.po" -newer "${FULLDESTDIR}/.timestamp") + do + _lang="$(${BASENAME_BIN} $_langfile | ${SED_BIN} -e "s/\.po$//")" + ${MKDIR_BIN} -p ${FULLDESTDIR}/${_lang}/LC_MESSAGES + [ "x$1" == "x--watch" ] && [ $_update -eq 0 ] && echo "" + echo "updating ${DESTDIR}/${_lang}/LC_MESSAGES/urpmi.mo" + $MSGFMT_BIN "$DEVDIR/po/${_lang}.po" -o "${FULLDESTDIR}/${_lang}/LC_MESSAGES/urpmi.mo" + _update=1 + done + [ $_update -eq 1 ] && ${TOUCH_BIN} "${FULLDESTDIR}/.timestamp" + [ "x$1" != "x--watch" ] && exit + echo -n "." + ${SLEEP_BIN} 2 + done +} + +updateLang "$@" + -- cgit v1.2.1