update-strings.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/bin/bash
  2. LOCALES=$*
  3. # Get newest .py files so we don't update strings unnecessarily
  4. CHANGED_FILES=0
  5. PYTHON_FILES=`find . -regex ".*\(ui\|py\)$" -type f`
  6. for PYTHON_FILE in $PYTHON_FILES
  7. do
  8. CHANGED=$(stat -c %Y $PYTHON_FILE)
  9. if [ ${CHANGED} -gt ${CHANGED_FILES} ]
  10. then
  11. CHANGED_FILES=${CHANGED}
  12. fi
  13. done
  14. # Qt translation stuff
  15. # for .ts file
  16. UPDATE=false
  17. for LOCALE in ${LOCALES}
  18. do
  19. TRANSLATION_FILE="i18n/$LOCALE.ts"
  20. if [ ! -f ${TRANSLATION_FILE} ]
  21. then
  22. # Force translation string collection as we have a new language file
  23. touch ${TRANSLATION_FILE}
  24. UPDATE=true
  25. break
  26. fi
  27. MODIFICATION_TIME=$(stat -c %Y ${TRANSLATION_FILE})
  28. if [ ${CHANGED_FILES} -gt ${MODIFICATION_TIME} ]
  29. then
  30. # Force translation string collection as a .py file has been updated
  31. UPDATE=true
  32. break
  33. fi
  34. done
  35. if [ ${UPDATE} == true ]
  36. # retrieve all python files
  37. then
  38. echo ${PYTHON_FILES}
  39. # update .ts
  40. echo "Please provide translations by editing the translation files below:"
  41. for LOCALE in ${LOCALES}
  42. do
  43. echo "i18n/"${LOCALE}".ts"
  44. # Note we don't use pylupdate with qt .pro file approach as it is flakey
  45. # about what is made available.
  46. pylupdate4 -noobsolete ${PYTHON_FILES} -ts i18n/${LOCALE}.ts
  47. done
  48. else
  49. echo "No need to edit any translation files (.ts) because no python files"
  50. echo "has been updated since the last update translation. "
  51. fi