diff --git a/common.pri b/common.pri index 1a23b61a..98aa52e3 100644 --- a/common.pri +++ b/common.pri @@ -12,6 +12,7 @@ include(glew.pri) include(eigen.pri) include(boost.pri) include(glib-2.0.pri) +include(gettext.pri) include(sparkle.pri) include(harfbuzz.pri) include(freetype.pri) diff --git a/gettext.pri b/gettext.pri new file mode 100644 index 00000000..84fffa55 --- /dev/null +++ b/gettext.pri @@ -0,0 +1,28 @@ +# Detect gettext, then use this priority list to determine +# which library to use: +# +# Priority +# 1. GETTEXT_INCLUDEPATH / GETTEXT_LIBPATH (qmake parameter, not checked it given on commandline) +# 2. OPENSCAD_LIBRARIES (environment variable) +# 3. system's standard include paths from pkg-config + +gettext { + +# read environment variables +OPENSCAD_LIBRARIES_DIR = $$(OPENSCAD_LIBRARIES) +GETTEXT_DIR = $$(GETTEXTDIR) + +macx: { + isEmpty(GETTEXT_INCLUDEPATH) { + !isEmpty(OPENSCAD_LIBRARIES_DIR) { + GETTEXT_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include + GETTEXT_LIBPATH = $$OPENSCAD_LIBRARIES_DIR/lib + } + } + GETTEXT_CXXFLAGS=-I$$GETTEXT_INCLUDEPATH + GETTEXT_LIBS=-L$$GETTEXT_LIBPATH -lintl -liconv +} + +QMAKE_CXXFLAGS += $$GETTEXT_CXXFLAGS +LIBS += $$GETTEXT_LIBS +} diff --git a/openscad.pro b/openscad.pro index e9f6adc2..5d36d0d9 100644 --- a/openscad.pro +++ b/openscad.pro @@ -182,6 +182,7 @@ CONFIG += glib-2.0 CONFIG += harfbuzz CONFIG += freetype CONFIG += fontconfig +CONFIG += gettext #Uncomment the following line to enable the QScintilla editor CONFIG += scintilla diff --git a/scripts/translation-update.sh b/scripts/translation-update.sh index b2db9de9..adff93f1 100755 --- a/scripts/translation-update.sh +++ b/scripts/translation-update.sh @@ -15,21 +15,21 @@ updatepot() OPTS=$OPTS' --default-domain=openscad' OPTS=$OPTS' --keyword=_' OPTS=$OPTS' --files-from=./po/POTFILES.in' - cmd='xgettext '$OPTS' -o ./po/openscad.pot' + cmd="${GETTEXT_PATH}xgettext "$OPTS' -o ./po/openscad.pot' echo $cmd $cmd if [ ! $? = 0 ]; then echo error running xgettext exit 1 fi - sed -i s/"CHARSET"/"UTF-8"/g ./po/openscad.pot + sed -e s/"CHARSET"/"UTF-8"/g ./po/openscad.pot > ./po/openscad.pot.new && mv ./po/openscad.pot.new ./po/openscad.pot } updatepo() { for LANGCODE in `cat ./po/LINGUAS | grep -v "#"`; do OPTS='--update --backup=t' - cmd='msgmerge '$OPTS' ./po/'$LANGCODE'.po ./po/openscad.pot' + cmd="$GETTEXT_PATH"'msgmerge '$OPTS' ./po/'$LANGCODE'.po ./po/openscad.pot' echo $cmd $cmd if [ ! $? = 0 ]; then @@ -44,7 +44,7 @@ updatemo() for LANGCODE in `cat po/LINGUAS | grep -v "#"`; do mkdir -p ./po/$LANGCODE/LC_MESSAGES OPTS='-c -v' - cmd='msgfmt '$OPTS' -o ./po/'$LANGCODE'/LC_MESSAGES/openscad.mo ./po/'$LANGCODE'.po' + cmd="$GETTEXT_PATH"'msgfmt '$OPTS' -o ./po/'$LANGCODE'/LC_MESSAGES/openscad.mo ./po/'$LANGCODE'.po' echo $cmd $cmd if [ ! $? = 0 ]; then @@ -54,6 +54,11 @@ updatemo() done } +GETTEXT_PATH="" +if [ "x$OPENSCAD_LIBRARIES" != x ]; then + GETTEXT_PATH="$OPENSCAD_LIBRARIES/bin/" +fi + if [ "x$1" = xupdatemo ]; then updatemo else