57 lines
1.4 KiB
Bash
57 lines
1.4 KiB
Bash
#!/bin/bash
|
|
LOCALES=$*
|
|
|
|
# Get newest .py files so we don't update strings unnecessarily
|
|
|
|
CHANGED_FILES=0
|
|
PYTHON_FILES=`find . -regex ".*\(ui\|py\)$" -type f`
|
|
for PYTHON_FILE in $PYTHON_FILES
|
|
do
|
|
CHANGED=$(stat -c %Y $PYTHON_FILE)
|
|
if [ ${CHANGED} -gt ${CHANGED_FILES} ]
|
|
then
|
|
CHANGED_FILES=${CHANGED}
|
|
fi
|
|
done
|
|
|
|
# Qt translation stuff
|
|
# for .ts file
|
|
UPDATE=false
|
|
for LOCALE in ${LOCALES}
|
|
do
|
|
TRANSLATION_FILE="i18n/$LOCALE.ts"
|
|
if [ ! -f ${TRANSLATION_FILE} ]
|
|
then
|
|
# Force translation string collection as we have a new language file
|
|
touch ${TRANSLATION_FILE}
|
|
UPDATE=true
|
|
break
|
|
fi
|
|
|
|
MODIFICATION_TIME=$(stat -c %Y ${TRANSLATION_FILE})
|
|
if [ ${CHANGED_FILES} -gt ${MODIFICATION_TIME} ]
|
|
then
|
|
# Force translation string collection as a .py file has been updated
|
|
UPDATE=true
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ ${UPDATE} == true ]
|
|
# retrieve all python files
|
|
then
|
|
echo ${PYTHON_FILES}
|
|
# update .ts
|
|
echo "Please provide translations by editing the translation files below:"
|
|
for LOCALE in ${LOCALES}
|
|
do
|
|
echo "i18n/"${LOCALE}".ts"
|
|
# Note we don't use pylupdate with qt .pro file approach as it is flakey
|
|
# about what is made available.
|
|
pylupdate4 -noobsolete ${PYTHON_FILES} -ts i18n/${LOCALE}.ts
|
|
done
|
|
else
|
|
echo "No need to edit any translation files (.ts) because no python files"
|
|
echo "has been updated since the last update translation. "
|
|
fi
|