123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #!/bin/sh
- #
- # Extract translations from Calamares source and send them
- # to Transifex.
- #
- # Run this at the top-level.
- #
- # Use the --no-tx option to do the extraction, but not the
- # pushing-to-Transifex part. This can be useful to check for
- # new strings or when testing the tools themselves.
- ### INITIAL SETUP
- #
- # This stuff needs to be done once; in a real CI environment where it
- # runs regularly in a container, the setup needs to be done when
- # creating the container.
- #
- #
- # cp ~/jenkins-master/.transifexrc ~ # Transifex user settings
- # cp ~/jenkins-master/.gitconfig ~ # Git config, user settings
- # cp -R ~/jenkins-master/.ssh ~ # SSH, presumably for github
- #
- # cd "$WORKSPACE"
- # git config --global http.sslVerify false
- test -f "CMakeLists.txt" || { echo "! Not at Calamares top-level" ; exit 1 ; }
- test -f ".tx/config" || { echo "! Not at Calamares top-level" ; exit 1 ; }
- test -f "calamares.desktop" || { echo "! Not at Calamares top-level" ; exit 1 ; }
- if test "x$1" = "x--no-tx" ; then
- tx() {
- echo "Skipped tx $*"
- }
- fi
- ### CREATE TRANSLATIONS
- #
- # Use local tools (depending on type of source) to create translation
- # sources, then push to Transifex
- export QT_SELECT=5
- # Don't pull branding translations in,
- # those are done separately.
- _srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml"
- lupdate $_srcdirs -ts -no-obsolete lang/calamares_en.ts
- tx push --source --no-interactive -r calamares.calamares-master
- tx push --source --no-interactive -r calamares.fdo
- ### PYTHON MODULES
- #
- # The Python tooling depends on the underlying distro to provide
- # gettext, and handles two cases:
- #
- # - python modules with their own lang/ subdir, for larger translations
- # - python modules without lang/, which use one shared catalog
- #
- PYGETTEXT="xgettext --keyword=_n:1,2 -L python"
- SHARED_PYTHON=""
- for MODULE_DIR in $(find src/modules -maxdepth 1 -mindepth 1 -type d) ; do
- FILES=$(find "$MODULE_DIR" -name "*.py" -a -type f)
- if test -n "$FILES" ; then
- MODULE_NAME=$(basename ${MODULE_DIR})
- if [ -d ${MODULE_DIR}/lang ]; then
- ${PYGETTEXT} -p ${MODULE_DIR}/lang -d ${MODULE_NAME} -o ${MODULE_NAME}.pot ${MODULE_DIR}/*.py
- POTFILE="${MODULE_DIR}/lang/${MODULE_NAME}.pot"
- if [ -f "$POTFILE" ]; then
- sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' "$POTFILE"
- tx set -r calamares.${MODULE_NAME} --source -l en "$POTFILE"
- tx push --source --no-interactive -r calamares.${MODULE_NAME}
- fi
- else
- SHARED_PYTHON="$SHARED_PYTHON $FILES"
- fi
- fi
- done
- if test -n "$SHARED_PYTHON" ; then
- ${PYGETTEXT} -p lang -d python -o python.pot $SHARED_PYTHON
- POTFILE="lang/python.pot"
- sed -i'' '/^"Content-Type/s/CHARSET/UTF-8/' "$POTFILE"
- tx set -r calamares.python --source -l en "$POTFILE"
- tx push --source --no-interactive -r calamares.python
- fi
|