You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
latte-dock/po/Messages.sh

88 lines
3.2 KiB
Bash

#!/bin/sh
cd "$(dirname $0)" # root of translatable sources
BASEDIR="$(pwd)"
BUGADDR="https://github.com/psifidotos/latte-dock/" # MSGID-Bugs
PROJECTCONTAINMENT="plasma_applet_org.kde.latte.containment" # project name
TEMPLATECONTCONTAINMENT="containment.metadata.desktop.template" # containment desktop template
PROJECTPLASMOID="plasma_applet_org.kde.latte.plasmoid" # project name
TEMPLATEPLASMOID="plasmoid.metadata.desktop.template" # plasmoid desktop template
PROJECTSHELL="plasma_shell_org.kde.latte.shell" # project name
TEMPLATESHELL="shell.metadata.desktop.template" # shell desktop template
PROJECTAPP="latte-dock" # project name
TEMPLATEAPP="latte-dock.desktop.template" # app desktop template
function ki18n_xgettext
{
cd "$BASEDIR/$1"
WDIR="." # working dir
ROOT="../../"
PROJECTNAME=$2 # project name
TEMPLATE=$3 # desktop template
PROJECTPATH="../../$1" # project path
PROJECTPATH2= #extra project path
TARGET="\e[0;32m$1\e[0m"
if [ $4 ] ; then
PROJECTPATH2="../../$4"
TARGET="$TARGET and \e[0;32m$4\e[0m"
else
PROJECTPATH2=$PROJECTPATH # extra project path
fi
echo -e "-- Preparing rc files for $TARGET"
find "${PROJECTPATH}" "${PROJECTPATH2}" -name '*.rc' -o -name '*.ui' -o -name '*.kcfg' | sort > "${WDIR}/rcfiles.list"
xargs --no-run-if-empty --arg-file="${WDIR}/rcfiles.list" extractrc > "${WDIR}/rc.cpp"
echo "rc.cpp" > "${WDIR}/infiles.list"
echo -e "-- Done preparing rc files for $TARGET"
echo -e "-- Extracting messages for $TARGET"
find "${PROJECTPATH}" "${PROJECTPATH2}" -name '*.cpp' -o -name '*.h' -o -name '*.c' -o -name '*.qml' -o -name '*.qml.cmake' | sort >> "${WDIR}/infiles.list"
xgettext --from-code=UTF-8 -C -kde -ci18n -ki18n:1 -ki18nc:1c,2 -ki18np:1,2 -ki18ncp:1c,2,3 \
-ktr2i18n:1 -kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kN_:1 -kaliasLocale -kki18n:1 -kki18nc:1c,2 \
-kki18np:1,2 -kki18ncp:1c,2,3 --msgid-bugs-address="${BUGADDR}" --files-from=infiles.list \
-D "${WDIR}" -o "${WDIR}/${PROJECTNAME}.pot" || \
{ echo "error while calling xgettext. aborting."; exit 1; }
xgettext --from-code=UTF-8 --language=Desktop --join-existing --msgid-bugs-address="${BUGADDR}" \
-k -kName -kGenericName -kComment \
"${WDIR}/../desktop-templates/${TEMPLATE}" -o "${WDIR}/${PROJECTNAME}.pot" || \
{ echo "error while calling xgettext. aborting."; exit 1; }
echo -e "-- Merging translations for $TARGET"
catalogs=$(find "${WDIR}" -name '*.po')
for cat in $catalogs; do
echo "${cat}"
msgmerge -o "${cat}.new" "${cat}" "${PROJECTNAME}.pot"
mv "${cat}.new" "${cat}"
done
echo -e "-- Done merging translations for $TARGET"
echo "-- Cleaning up"
rm "rcfiles.list"
rm "infiles.list"
rm "rc.cpp"
echo -e "-- Done translations for $TARGET\n\n"
}
ki18n_xgettext containment "$PROJECTCONTAINMENT" "$TEMPLATECONTCONTAINMENT"
ki18n_xgettext plasmoid "$PROJECTPLASMOID" "$TEMPLATEPLASMOID"
ki18n_xgettext app "$PROJECTAPP" "$TEMPLATEAPP" shell
# The msg of shell package is merged with app
# ki18n_xgettext shell "$PROJECTSHELL" "$TEMPLATESHELL"
cd "$BASEDIR"
bash ./update-metadata.sh