diff --git a/.gitignore b/.gitignore index f4abf21e7a8f6d734a0169fd5caf356a2439e64f..4822b58f651960a520b026f1e7545475833f11af 100644 --- a/.gitignore +++ b/.gitignore @@ -44,13 +44,6 @@ /git-version.h /gtk-doc.make /install-sh -/intltool-extract -/intltool-extract.in -/intltool-merge -/intltool-merge.in -/intltool-modules -/intltool-update -/intltool-update.in /libtool /ltmain.sh /missing diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4213026b91dcdc8a7093f70f05a2c0881ba2fcf8..e493e4f971d709908e76691acf0c64b36b831396 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -73,7 +73,7 @@ build-image: - echo "FROM debian:testing" > Dockerfile - echo "RUN apt-get update" >> Dockerfile - echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile - - echo "appstream at-spi2-core build-essential desktop-file-utils ffmpeg ghostscript git glib-networking gobject-introspection graphviz graphviz-dev hicolor-icon-theme intltool iso-codes libappstream-glib-dev libbz2-dev libdbus-glib-1-dev libexif-dev libgexiv2-dev libgirepository1.0-dev libgtk-3-bin libgtk-3-dev libgudev-1.0-dev libjson-glib-dev liblcms2-dev liblzma-dev libmng-dev libmypaint-dev libopenexr-dev libpoppler-glib-dev libraw-dev libraw20 librsvg2-dev libspiro-dev libsuitesparse-dev libtiff-dev libtiff5-dev libtool libumfpack5 libwebp-dev libwmf-dev libxmu-dev libxpm-dev luajit meson mypaint-brushes poppler-data python3 python3-pip valac xauth xsltproc xvfb yelp-tools" >> Dockerfile + - echo "appstream at-spi2-core automake autopoint build-essential desktop-file-utils ffmpeg gettext ghostscript git glib-networking gobject-introspection graphviz graphviz-dev hicolor-icon-theme iso-codes libappstream-glib-dev libbz2-dev libdbus-glib-1-dev libexif-dev libgexiv2-dev libgirepository1.0-dev libgtk-3-bin libgtk-3-dev libgudev-1.0-dev libjson-glib-dev liblcms2-dev liblzma-dev libmng-dev libmypaint-dev libopenexr-dev libpoppler-glib-dev libraw-dev libraw20 librsvg2-dev libspiro-dev libsuitesparse-dev libtiff-dev libtiff5-dev libtool libumfpack5 libwebp-dev libwmf-dev libxmu-dev libxpm-dev luajit meson mypaint-brushes poppler-data python3 python3-pip valac xauth xsltproc xvfb yelp-tools" >> Dockerfile - echo "RUN pip3 install --no-cache-dir gi-docgen jinja2 Markdown markupsafe pygments toml typogrify" >> Dockerfile - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-debian-latest --cache=true --cache-ttl=120h @@ -101,7 +101,7 @@ build-image-win64: - echo "FROM debian:testing" > Dockerfile - echo "RUN apt-get update" >> Dockerfile - echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile - - echo "build-essential cmake cpio g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 git intltool libgdk-pixbuf2.0-dev libglib2.0-bin librsvg2-dev meson pkg-config python3 python3-distutils python3-docutils python3-pip rpm xsltproc" >> Dockerfile + - echo "automake autopoint build-essential cmake cpio g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 gettext git libgdk-pixbuf2.0-dev libglib2.0-bin librsvg2-dev meson pkg-config python3 python3-distutils python3-docutils python3-pip rpm xsltproc" >> Dockerfile - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-win64-latest --cache=true --cache-ttl=120h @@ -124,7 +124,7 @@ build-image-win32: - echo "FROM debian:testing" > Dockerfile - echo "RUN apt-get update" >> Dockerfile - echo "RUN apt-get install -y --no-install-recommends \\" >> Dockerfile - - echo "build-essential cpio g++-mingw-w64-i686 gcc-mingw-w64-i686 git intltool libgdk-pixbuf2.0-dev libglib2.0-bin librsvg2-dev meson pkg-config python3 python3-distutils python3-docutils python3-pip rpm xsltproc" >> Dockerfile + - echo "automake autopoint build-essential cpio g++-mingw-w64-i686 gcc-mingw-w64-i686 gettext git libgdk-pixbuf2.0-dev libglib2.0-bin librsvg2-dev meson pkg-config python3 python3-distutils python3-docutils python3-pip rpm xsltproc" >> Dockerfile - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:build-win32-latest --cache=true --cache-ttl=120h diff --git a/INSTALL.in b/INSTALL.in index 5e32bb2c0ef4d08b2a77f36636c1b92df25b66f9..fbb53a47ffdc14ed1f40476d428ed08ef6de9e49 100644 --- a/INSTALL.in +++ b/INSTALL.in @@ -32,11 +32,8 @@ header files installed. 1. You need to have installed a recent version of pkg-config (>= @GIMP_PKGCONFIG_VERSION@) available from https://www.freedesktop.org/software/pkgconfig/. - 2. You need intltool (at least @INTLTOOL_REQUIRED_VERSION@, but preferably a newer version). - Intltool can be downloaded from - https://ftp.gnome.org/pub/gnome/sources/intltool/ - You also need gettext version @XGETTEXT_REQUIRED_VERSION@ or over. Earlier gettext had - issues with script-fu localization, ending up in incomplete GIMP localization. + 2. You need gettext version 0.19.8 or newer. Older versions did not have support yet + for certain file formats. 3. You need to have GEGL version @GEGL_REQUIRED_VERSION@ or newer and babl version @BABL_REQUIRED_VERSION@ or newer. You can get them from https://gegl.org/ or clone diff --git a/autogen.sh b/autogen.sh index a7d21d1c9f567b2f7a7a5afbd51fbf719d0dbffe..965c9de56f2951bbe9b4a781794f9c5c1c3fb0f8 100755 --- a/autogen.sh +++ b/autogen.sh @@ -9,255 +9,22 @@ # tools and you shouldn't use this script. Just call ./configure # directly. -AUTOMAKE_RECOMMENDED_VERSION=1.16 - -AUTOCONF_REQUIRED_VERSION=2.54 -AUTOMAKE_REQUIRED_VERSION=1.13.0 -INTLTOOL_REQUIRED_VERSION=0.40.1 -LIBTOOL_REQUIRED_VERSION=1.5 -LIBTOOL_WIN32_REQUIRED_VERSION=2.2 - -ACLOCAL=${ACLOCAL-aclocal-${AUTOMAKE_RECOMMENDED_VERSION}} -AUTOCONF=${AUTOCONF-autoconf} -AUTOHEADER=${AUTOHEADER-autoheader} -AUTOMAKE=${AUTOMAKE-automake-${AUTOMAKE_RECOMMENDED_VERSION}} -LIBTOOLIZE=${LIBTOOLIZE-libtoolize} +# Run this to generate all the initial makefiles, etc. +test -n "$srcdir" || srcdir=`dirname "$0"` +test -n "$srcdir" || srcdir=. PROJECT="GNU Image Manipulation Program" -TEST_TYPE=-d -FILE=plug-ins - srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. ORIGDIR=`pwd` cd $srcdir - -check_version () -{ - VERSION_A=$1 - VERSION_B=$2 - - save_ifs="$IFS" - IFS=. - set dummy $VERSION_A 0 0 0 - MAJOR_A=$2 - MINOR_A=$3 - MICRO_A=$4 - set dummy $VERSION_B 0 0 0 - MAJOR_B=$2 - MINOR_B=$3 - MICRO_B=$4 - IFS="$save_ifs" - - if expr "$MAJOR_A" = "$MAJOR_B" > /dev/null; then - if expr "$MINOR_A" \> "$MINOR_B" > /dev/null; then - echo "yes (version $VERSION_A)" - elif expr "$MINOR_A" = "$MINOR_B" > /dev/null; then - if expr "$MICRO_A" \>= "$MICRO_B" > /dev/null; then - echo "yes (version $VERSION_A)" - else - echo "Too old (version $VERSION_A)" - DIE=1 - fi - else - echo "Too old (version $VERSION_A)" - DIE=1 - fi - elif expr "$MAJOR_A" \> "$MAJOR_B" > /dev/null; then - echo "Major version might be too new ($VERSION_A)" - else - echo "Too old (version $VERSION_A)" - DIE=1 - fi -} - -echo -echo "I am testing that you have the tools required to build the" -echo "$PROJECT from git. This test is not foolproof," -echo "so if anything goes wrong, see the file HACKING for more information..." -echo - -DIE=0 - -OS=`uname -s` -case $OS in - *YGWIN* | *INGW*) - echo "Looks like Win32, you will need libtool $LIBTOOL_WIN32_REQUIRED_VERSION or newer." - echo - LIBTOOL_REQUIRED_VERSION=$LIBTOOL_WIN32_REQUIRED_VERSION - ;; -esac - -printf "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... " -if ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then - LIBTOOLIZE=$LIBTOOLIZE -elif (glibtoolize --version) < /dev/null > /dev/null 2>&1; then - LIBTOOLIZE=glibtoolize -else - echo - echo " You must have libtool installed to compile $PROJECT." - echo " Install the appropriate package for your distribution," - echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - echo - DIE=1 -fi - -if test x$LIBTOOLIZE != x; then - VER=`$LIBTOOLIZE --version \ - | grep libtool | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $LIBTOOL_REQUIRED_VERSION -fi - -printf "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... " -if ($AUTOCONF --version) < /dev/null > /dev/null 2>&1; then - VER=`$AUTOCONF --version | head -n 1 \ - | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $AUTOCONF_REQUIRED_VERSION -else - echo - echo " You must have autoconf installed to compile $PROJECT." - echo " Download the appropriate package for your distribution," - echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/" - echo - DIE=1; -fi - - -printf "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... " -if ($AUTOMAKE --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=$AUTOMAKE - ACLOCAL=$ACLOCAL -elif (automake-1.16 --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake-1.16 - ACLOCAL=aclocal-1.16 -elif (automake-1.15 --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake-1.15 - ACLOCAL=aclocal-1.15 -elif (automake-1.14 --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake-1.14 - ACLOCAL=aclocal-1.14 -elif (automake-1.13 --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake-1.13 - ACLOCAL=aclocal-1.13 -elif (automake --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake - ACLOCAL=aclocal -else - echo - echo " You must have automake $AUTOMAKE_REQUIRED_VERSION or newer installed to compile $PROJECT." - echo " Download the appropriate package for your distribution," - echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/" - echo - DIE=1 -fi - -if test x$AUTOMAKE != x; then - VER=`$AUTOMAKE --version \ - | grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"` - check_version $VER $AUTOMAKE_REQUIRED_VERSION -fi - - -printf "checking for intltool >= $INTLTOOL_REQUIRED_VERSION ... " -if (intltoolize --version) < /dev/null > /dev/null 2>&1; then - VER=`intltoolize --version \ - | grep intltoolize | sed "s/.* \([0-9.]*\)/\1/"` - check_version $VER $INTLTOOL_REQUIRED_VERSION -else - echo - echo " You must have intltool installed to compile $PROJECT." - echo " Get the latest version from" - echo " ftp://ftp.gnome.org/pub/GNOME/sources/intltool/" - echo - DIE=1 -fi - - -printf "checking for xsltproc ... " -if (xsltproc --version) < /dev/null > /dev/null 2>&1; then - echo "yes" -else - echo - echo " You must have xsltproc installed to compile $PROJECT." - echo " Get the latest version from" - echo " ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/" - echo - DIE=1 -fi - -if test "$DIE" -eq 1; then - echo - echo "Please install/upgrade the missing tools and call me again." - echo - exit 1 -fi - - -test $TEST_TYPE $FILE || { - echo - echo "You must run this script in the top-level $PROJECT directory." - echo - exit 1 +(test -f configure.ac) || { + echo "*** ERROR: Directory "\`$srcdir\'" does not look like the top-level project directory ***" + exit 1 } - -if test -z "$NOCONFIGURE"; then - echo - echo "I am going to run ./configure with the following arguments:" - echo - echo " $AUTOGEN_CONFIGURE_ARGS $@" - echo - - if test -z "$*"; then - echo "If you wish to pass additional arguments, please specify them " - echo "on the $0 command line or set the AUTOGEN_CONFIGURE_ARGS " - echo "environment variable." - echo - fi -fi - - -if test -z "$ACLOCAL_FLAGS"; then - - acdir=`$ACLOCAL --print-ac-dir` - m4list="glib-2.0.m4 glib-gettext.m4 gtk-3.0.m4 intltool.m4 pkg.m4" - - for file in $m4list - do - if [ ! -f "$acdir/$file" ]; then - echo - echo "WARNING: aclocal's directory is $acdir, but..." - echo " no file $acdir/$file" - echo " You may see fatal macro warnings below." - echo " If these files are installed in /some/dir, set the " - echo " ACLOCAL_FLAGS environment variable to \"-I /some/dir\"" - echo " or install $acdir/$file." - echo - fi - done -fi - -rm -rf autom4te.cache - -$ACLOCAL $ACLOCAL_FLAGS -RC=$? -if test $RC -ne 0; then - echo "$ACLOCAL gave errors. Please fix the error conditions and try again." - exit $RC -fi - -$LIBTOOLIZE --force || exit $? - -# optionally feature autoheader -($AUTOHEADER --version) < /dev/null > /dev/null 2>&1 && $AUTOHEADER || exit 1 - -$AUTOMAKE --add-missing || exit $? -$AUTOCONF || exit $? - -intltoolize --automake || exit $? - +autoreconf --verbose --force --install -Wno-portability || exit $? cd $ORIGDIR diff --git a/build/docker/gimpbuilder-base/Dockerfile b/build/docker/gimpbuilder-base/Dockerfile index 7452dcfeb4b21a4dc88039d4954dafd517a80a6d..3a8e8035034c691a8a412c7e8994876f6f2b6289 100644 --- a/build/docker/gimpbuilder-base/Dockerfile +++ b/build/docker/gimpbuilder-base/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get install $APT_GET_OPTIONS build-essential devscripts fakeroot quilt d # none needed # Installing additional dependencies for GEGL -RUN apt-get install $APT_GET_OPTIONS intltool libglib2.0-dev libjson-c-dev libjson-glib-dev libgexiv2-dev libcairo2-dev libpango1.0-dev libjpeg62-turbo-dev libsuitesparse-dev libspiro-dev libopenexr-dev libwebp-dev +RUN apt-get install $APT_GET_OPTIONS libglib2.0-dev libjson-c-dev libjson-glib-dev libgexiv2-dev libcairo2-dev libpango1.0-dev libjpeg62-turbo-dev libsuitesparse-dev libspiro-dev libopenexr-dev libwebp-dev # Installing additional dependencies for GIMP -RUN apt-get install $APT_GET_OPTIONS xsltproc gtk-doc-tools libgtk2.0-dev libtiff5-dev libbz2-dev liblzma-dev librsvg2-dev liblcms2-dev python-cairo-dev python-gtk2-dev glib-networking libaa1-dev libgs-dev libpoppler-glib-dev libmng-dev libwmf-dev libxpm-dev libasound2-dev \ No newline at end of file +RUN apt-get install $APT_GET_OPTIONS xsltproc gtk-doc-tools libgtk2.0-dev libtiff5-dev libbz2-dev liblzma-dev librsvg2-dev liblcms2-dev python-cairo-dev python-gtk2-dev glib-networking libaa1-dev libgs-dev libpoppler-glib-dev libmng-dev libwmf-dev libxpm-dev libasound2-dev diff --git a/build/flatpak/org.gimp.GIMP-nightly.json b/build/flatpak/org.gimp.GIMP-nightly.json index 6bfa314aad6633cc8f18380a1a67c8d14904ef6c..0c6fa755bdcfe7e0aeafffc19e7efe2207137aa6 100644 --- a/build/flatpak/org.gimp.GIMP-nightly.json +++ b/build/flatpak/org.gimp.GIMP-nightly.json @@ -354,26 +354,6 @@ } ] }, - { - "//": "Copy from shared-modules to avoid submodules on dev repo.", - "name": "intltool", - "cleanup": [ - "*" - ], - "sources": [ - { - "type": "archive", - "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz", - "sha256": "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd", - "x-checker-data": { - "type": "anitya", - "project-id": 1385, - "stable-only": true, - "url-template": "https://launchpad.net/intltool/trunk/$version/+download/intltool-$version.tar.gz" - } - } - ] - }, { "name": "libmypaint", "config-opts": [ diff --git a/build/windows/gitlab-ci/build-gimp-msys2.sh b/build/windows/gitlab-ci/build-gimp-msys2.sh index f787799539cd59388639a9b085df57967e4c189a..e5e9d7ed7ce22f8170b04ee34a13f859d213c93f 100644 --- a/build/windows/gitlab-ci/build-gimp-msys2.sh +++ b/build/windows/gitlab-ci/build-gimp-msys2.sh @@ -23,7 +23,6 @@ pacman --noconfirm -Suy # Install the required packages pacman --noconfirm -S --needed \ base-devel \ - intltool \ mingw-w64-$MSYS2_ARCH-toolchain \ mingw-w64-$MSYS2_ARCH-autotools \ mingw-w64-$MSYS2_ARCH-ccache \ diff --git a/build/windows/installer/lang/Makefile.am b/build/windows/installer/lang/Makefile.am index e5eaf36adf8df096b03029c59782115ba32d22bf..472138b320025cbafd95c73dbdb002cadcbf8706 100644 --- a/build/windows/installer/lang/Makefile.am +++ b/build/windows/installer/lang/Makefile.am @@ -1,78 +1,74 @@ -isl_in_files = \ - setup.isl.in -isl_files = $(isl_in_files:.isl.in=.isl) +isl_xml_in_files = setup.isl.xml.in +isl_xml_files = $(isl_xml_in_files:.isl.xml.in=.isl.xml) stamp_files = \ stamp-isl -CLEANFILES = $(isl_files) $(stamp_files) +CLEANFILES = $(isl_xml_files) $(stamp_files) +EXTRA_DIST = $(isl_xml_files) +# First we use the XML file to be able to do gettext translation +$(isl_xml_files): $(isl_xml_in_files) $(wildcard $(top_srcdir)/po-windows-installer/*.po) Makefile.am + $(AM_V_GEN) GETTEXTDATADIRS=$(abs_srcdir) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po-windows-installer -o $@ + +# Then, we generate the .isl file for each language using some xsltproc magic languages = \ - ca:[ca] \ - cs:[cs] \ - da:[da] \ - de:[de] \ - el:[el] \ + ca:ca \ + cs:cs \ + da:da \ + de:de \ + el:el \ en: \ - en_GB:[en_GB] \ - eo:[eo] \ - es:[es] \ - eu:[eu] \ - fi:[fi] \ - fr:[fr] \ - gl:[gl] \ - he:[he] \ - hu:[hu] \ - id:[id] \ - is:[is] \ - it:[it] \ - ja:[ja] \ - ka:[ka] \ - kab:[kab] \ - ko:[ko] \ - lt:[lt] \ - lv:[lv] \ - mr:[mr] \ - ms:[ms] \ - nl:[nl] \ - pl:[pl] \ - pt:[pt] \ - pt_BR:[pt_BR] \ - ro:[ro] \ - ru:[ru] \ - sk:[sk] \ - sl:[sl] \ - sv:[sv] \ - tr:[tr] \ - uk:[uk] \ - vi:[vi] \ - zh_CN:[zh_CN] \ - zh_TW:[zh_TW] + en_GB:en_GB \ + eo:eo \ + es:es \ + eu:eu \ + fi:fi \ + fr:fr \ + gl:gl \ + he:he \ + hu:hu \ + id:id \ + is:is \ + it:it \ + ja:ja \ + ka:ka \ + kab:kab \ + ko:ko \ + lt:lt \ + lv:lv \ + mr:mr \ + ms:ms \ + nl:nl \ + pl:pl \ + pt:pt \ + pt_BR:pt_BR \ + ro:ro \ + ru:ru \ + sk:sk \ + sl:sl \ + sv:sv \ + tr:tr \ + uk:uk \ + vi:vi \ + zh_CN:zh_CN \ + zh_TW:zh_TW -stamp-isl: setup.isl Makefile.am +stamp-isl: setup.isl.xml gimp-ms-installer-config.xsl.in Makefile.am @ \ for lang in $(languages); do \ code=`echo $$lang | cut -d: -f1`; \ - prefix=`echo $$lang | cut -d: -f2 | sed 's/[][]/\\\\\\0/g'`; \ + prefix=`echo $$lang | cut -d: -f2`; \ + lang_check=`[ "$$prefix" ] && echo "value[lang('$$code')]" || echo "value"`; \ + xslin="$(srcdir)/gimp-ms-installer-config.xsl.in"; \ + xsl="$(builddir)/gimp-ms-installer-config.xsl"; \ isl="$(builddir)/$$code.setup.isl"; \ echo " GEN $$isl"; \ - echo -ne "\\xEF\\xBB\\xBF" > "$$isl"; \ - sed '/^\w\+'"$$prefix"'=/{s/\(.\)'"$$prefix"'/\1/;n};/^\w.*=/d' $< >> "$$isl"; \ + sed "s/@LANG_CHECK@/$$lang_check/" "$$xslin" > "$$xsl"; \ + $(XSLTPROC) --xinclude --output "$$isl" "$$xsl" $< || rm -f "$$isl"; \ done && \ echo timestamp > stamp-isl -# * setup.isl.ini is used by intltool-extract to extract the localizable -# strings. We needed to use the ini syntax for leaving comments to -# translators (with '#' instead of ';'). -# * setup.isl.in is in the actual .isl format except for the gettext -# underscoring. -# * setup.isl is in the .isl format but mixing all languages. -setup.isl: setup.isl.in $(wildcard $(top_srcdir)/po-windows-installer/*.po) Makefile.am - $(AM_V_GEN) $(INTLTOOL_MERGE) $(top_srcdir)/po-windows-installer $< $(@) -d -u -c $(top_builddir)/po-windows-installer/.intltool-merge-cache - -setup.isl.in: setup.isl.ini Makefile.am - $(AM_V_GEN) sed 's/^#/;/' $< > $@ - all-local: $(stamp_files) clean-local: diff --git a/build/windows/installer/lang/extractlang.sh b/build/windows/installer/lang/extractlang.sh deleted file mode 100644 index fec89940055d3d0749fa761e8a24e2d19276d9a8..0000000000000000000000000000000000000000 --- a/build/windows/installer/lang/extractlang.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -prefix=$1 -infile=$2 - -#replace [] with \[\] -prefix=$(echo "$prefix" | sed 's/[][]/\\\0/g') - -# InnoSetup now supports UTF-8 for all languages, but it requires a BOM -# at the start of the file. -echo -ne "\\xEF\\xBB\\xBF"; -sed '/^\w\+'"$prefix"'=/{s/\(.\)'"$prefix"'/\1/;n};/^\w.*=/d' "$infile" diff --git a/build/windows/installer/lang/gimp-ms-installer-config.xsl.in b/build/windows/installer/lang/gimp-ms-installer-config.xsl.in new file mode 100644 index 0000000000000000000000000000000000000000..0fc8d9ae08796a37826d5536cf468c051240bd51 --- /dev/null +++ b/build/windows/installer/lang/gimp-ms-installer-config.xsl.in @@ -0,0 +1,37 @@ + + + + + + + + + + + + + +[] + + + + + += + + + + + + + = + + + = + + + + + + diff --git a/build/windows/installer/lang/its/gimp-ms-installer-config.its b/build/windows/installer/lang/its/gimp-ms-installer-config.its new file mode 100644 index 0000000000000000000000000000000000000000..ffd15e76f5e386d6a035993afd847cb8b475cc98 --- /dev/null +++ b/build/windows/installer/lang/its/gimp-ms-installer-config.its @@ -0,0 +1,6 @@ + + + + + diff --git a/build/windows/installer/lang/its/gimp-ms-installer-config.loc b/build/windows/installer/lang/its/gimp-ms-installer-config.loc new file mode 100644 index 0000000000000000000000000000000000000000..f2d812e143b94ed1ef14ad4bca6439d387ccbfad --- /dev/null +++ b/build/windows/installer/lang/its/gimp-ms-installer-config.loc @@ -0,0 +1,6 @@ + + + + + + diff --git a/build/windows/installer/lang/meson.build b/build/windows/installer/lang/meson.build index e25a2cce209012ff3f5bc26ff89f8299d69d40c7..87e7bdfd85aa5dbdc35da38103de9ff4842b56ae 100644 --- a/build/windows/installer/lang/meson.build +++ b/build/windows/installer/lang/meson.build @@ -1,25 +1,10 @@ -isl_in_input = custom_target('setup.isl.in', - input : 'setup.isl.ini', - output: 'setup.isl.in', - capture: true, - command: [ - 'sed', 's/^#/;/', '@INPUT@', - ] -) - -isl_input = custom_target('setup.isl', - input : isl_in_input, - output: 'setup.isl', - command: [ - intltool_merge, - '--desktop-style', - '--utf8', - '--multiple-output', - '--cache=' + '@OUTDIR@' / 'intltool-merge-cache', - po_windows_installer_dir, - '@INPUT@', - '@OUTPUT@', - ] +# First we use the XML file to be able to do gettext translation +ms_installer_config_xml = i18n.merge_file( + input : 'setup.isl.xml.in', + output: '@BASENAME@', + data_dirs: meson.current_source_dir(), + po_dir: po_windows_installer_dir, + install: false, ) languages = [ @@ -65,20 +50,34 @@ languages = [ { 'code': 'zh_TW', }, ] -extractlang = find_program('extractlang.sh') - +# Then, we generate the .isl file for each language using some xsltproc magic all_isl = [] foreach language : languages - lang_code = language.get('code') - lang_prefix = language.get('prefix', '[@0@]'.format(lang_code)) + lang_code = language.get('code') - islfile = '@0@.setup.isl'.format(lang_code) + if 'prefix' in language + lang_check = 'value[lang(\'@0@\')]'.format(lang_code) + else + lang_check = 'value'.format(lang_code) + endif + + gimp_ms_installer_lang_xsl = configure_file( + input: 'gimp-ms-installer-config.xsl.in', + output: '@BASENAME@', + configuration: { 'LANG_CHECK': lang_check }, + ) - all_isl += custom_target(islfile, - input : isl_input, - output: islfile, - command: [ extractlang, lang_prefix, '@INPUT@' ], - capture: true, + setup_isl = '@0@.setup.isl'.format(lang_code) + all_isl += custom_target(setup_isl, + input : [ ms_installer_config_xml, gimp_ms_installer_lang_xsl ], + output: setup_isl, + command: [ + xsltproc, + '--xinclude', + '--output', '@OUTPUT@', + '@INPUT1@', + '@INPUT0@', + ], build_by_default: true, ) endforeach diff --git a/build/windows/installer/lang/setup.isl.ini b/build/windows/installer/lang/setup.isl.ini deleted file mode 100644 index 32210db885c717a95c497290526f82a81284ab9f..0000000000000000000000000000000000000000 --- a/build/windows/installer/lang/setup.isl.ini +++ /dev/null @@ -1,163 +0,0 @@ -# to generate the language-specific .setup.isl files, -# configure with --enable-windows-installer, and run make. - -[Messages] -# InfoBefore page is used instead of license page because the GPL only concerns distribution, not use, and as such doesn't have to be accepted - -_WizardInfoBefore=License Agreement -_AboutSetupNote=Setup built by Jernej Simonèiè, jernej-gimp@ena.si -_WinVersionTooLowError=This version of GIMP requires Windows 7, or a newer version of Windows. -_WindowsVersionNotSupported=This version of GIMP requires Windows 7, or a newer version of Windows. - -[CustomMessages] -# Shown before the wizard starts on development versions of GIMP -_DevelopmentWarningTitle=Development version -# Shown before the wizard starts on development versions of GIMP -_DevelopmentWarning=This is a development version of GIMP where some features may not be finished, or it may be unstable.%nThis version of GIMP is not intended for day-to-day work as it may be unstable, and you could lose your work.%nIf you encounter any problems, first verify that they haven't already been fixed in GIT before you contact the developers or report it in GIMP gitlab:%n_https://gitlab.gnome.org/GNOME/gimp/issues%n%nDo you wish to continue with installation anyway? -_DevelopmentButtonContinue=&Continue -_DevelopmentButtonExit=Exit - -#XPSP3Recommended=Warning: you are running an unsupported version of Windows. Please update to at least Windows XP with Service Pack 3 before reporting any problems. - -_SSERequired=This version of GIMP requires a processor that supports SSE instructions. - -_Require32BPPTitle=Display settings problem -_Require32BPP=Setup has detected that your Windows is not running in 32 bits-per-pixel display mode. This has been known to cause stability problems with GIMP, so it's recommended to change the display colour depth to 32BPP before continuing. -_Require32BPPContinue=&Continue -_Require32BPPExit=E&xit - -_InstallOrCustomize=GIMP is now ready to be installed. Click the Install now button to install using the default settings, or click the Customize button if you'd like to have more control over what gets installed. -_Install=&Install -_Customize=&Customize - -# Setup types -_TypeCompact=Compact installation -# Setup types -_TypeCustom=Custom installation -# Setup types -_TypeFull=Full installation - -# Text above component description -_ComponentsDescription=Description -# Components -_ComponentsGimp=GIMP -# Components -_ComponentsGimpDescription=GIMP and all default plug-ins -# Components -_ComponentsDeps=Run-time libraries -# Components -_ComponentsDepsDescription=Run-time libraries used by GIMP, including GTK+ Run-time Environment -# Components -_ComponentsDebug=Debug symbols -# Components -_ComponentsDebugDescription=Include information to help with debugging GIMP -# Components -_ComponentsGtkWimp=MS-Windows engine for GTK+ -# Components -_ComponentsGtkWimpDescription=Native Windows look for GIMP -# Components -_ComponentsCompat=Support for old plug-ins -# Components -_ComponentsCompatDescription=Install libraries needed by old third-party plug-ins -# Components -_ComponentsTranslations=Translations -# Components -_ComponentsTranslationsDescription=Translations -# Components -_ComponentsPython=Python scripting -# Components -_ComponentsPythonDescription=Allows you to use GIMP plugins written in Python scripting language. -# Components -_ComponentsLua=Lua scripting -# Components -_ComponentsLuaDescription=Allows you to use GIMP plugins written in Lua scripting language. -# Components -_ComponentsMyPaint=MyPaint brushes -# Components -_ComponentsMyPaintDescription=Install the default set of MyPaint brushes -# Components -_ComponentsGhostscript=PostScript support -# Components -_ComponentsGhostscriptDescription=Allow GIMP to load PostScript files -# Components, only when installing on x64 Windows -_ComponentsGimp32=Support for 32-bit plug-ins -# Compoments, only when installing on x64 Windows -_ComponentsGimp32Description=Include files necessary for using 32-bit plug-ins.%nRequired for Python support. - -# Additional installation tasks -_AdditionalIcons=Additional icons: -# Additional installation tasks -_AdditionalIconsDesktop=Create a &desktop icon -# Additional installation tasks -_AdditionalIconsQuickLaunch=Create a &Quick Launch icon - -_RemoveOldGIMP=Remove previous GIMP version - -# %1 is replaced by file name; this message should never appear (unless user runs out of disk space at the exact right moment) -_ErrorChangingEnviron=There was a problem updating GIMP's environment in %1. If you get any errors loading the plug-ins, try uninstalling and re-installing GIMP. -# This message should never appear (unless user runs out of disk space at the exact right moment) -_ErrorExtractingTemp=Error extracting temporary data. -# This message should never appear (unless user runs out of disk space at the exact right moment) -_ErrorUpdatingPython=Error updating Python interpreter info. -# This message should never appear (unless user runs out of disk space at the exact right moment) -_ErrorUpdatingMyPaint=Error updating MyPaint brushes info. -# %1 is replaced by file name; this message should never appear (unless user runs out of disk space at the exact right moment) -_ErrorReadingGimpRC=There was an error updating %1. -# %1 is replaced by file name; this message should never appear (unless user runs out of disk space at the exact right moment) -_ErrorUpdatingGimpRC=There was an error updating GIMP's configuration file %1. - -# Displayed in Explorer's right-click menu -_OpenWithGimp=Edit with GIMP - -# File associations page -_SelectAssociationsCaption=Select file associations -# File associations page -_SelectAssociationsExtensions=Extensions: -# File associations page -_SelectAssociationsInfo1=Select the file types you wish to associate with GIMP -# File associations page -_SelectAssociationsInfo2=This will make selected files open in GIMP when you double-click them in Explorer. -# File associations page -_SelectAssociationsSelectAll=Select &All -# File associations page -_SelectAssociationsUnselectAll=Unselect &All -# File associations page -_SelectAssociationsSelectUnused=Select &Unused - -# Shown on summary screen just before starting the install -_ReadyMemoAssociations=File types to associate with GIMP: - -_RemovingOldVersion=Removing previous version of GIMP: -# %1 = version, %2 = installation directory; ran uninstaller, but it returned an error, or didn't remove everything -_RemovingOldVersionFailed=GIMP %1 cannot be installed over your currently installed GIMP version, and the automatic uninstall of old version has failed.%n%nPlease remove the previous version of GIMP yourself before installing this version in %2, or choose a Custom install, and select a different installation folder.%n%nThe Setup will now exit. -# %1 = version, %2 = installation directory; couldn't find an uninstaller, or found several uninstallers -_RemovingOldVersionCantUninstall=GIMP %1 cannot be installed over your currently installed GIMP version, and Setup couldn't determine how to remove the old version automatically.%n%nPlease remove the previous version of GIMP and any add-ons yourself before installing this version in %2, or choose a Custom install, and select a different installation folder.%n%nThe Setup will now exit. - -_RebootRequiredFirst=Previous GIMP version was removed successfully, but Windows has to be restarted before the Setup can continue.%n%nAfter restarting your computer, Setup will continue next time an administrator logs in. - -# Displayed if restart settings couldn't be read, or if the setup couldn't re-run itself -_ErrorRestartingSetup=There was an error restarting the Setup. (%1) - -_RemovingOldFiles=Cleaning up old files... - -# Displayed while the files are being extracted; note the capitalisation! -_Billboard1=Remember: GIMP is Free Software.%n%nPlease visit -# www.gimp.org (displayed between Billboard1 and Billboard2) -_Billboard2=for free updates. - -_SettingUpAssociations=Setting up file associations... -_SettingUpPyGimp=Setting up environment for GIMP Python extension... -_SettingUpMyPaint=Setting up MyPaint brushes... -_SettingUpEnvironment=Setting up GIMP environment... -_SettingUpGimpRC=Setting up GIMP configuration for 32-bit plug-in support... - -# Displayed on last page -_LaunchGimp=Launch GIMP - -# Shown during uninstall when removing add-ons -_UninstallingAddOnCaption=Removing add-on - -_InternalError=Internal error (%1). - -# Used by installer for add-ons (currently only help) -_DirNotGimp=GIMP does not appear to be installed in the selected directory. Continue anyway? diff --git a/build/windows/installer/lang/setup.isl.xml.in b/build/windows/installer/lang/setup.isl.xml.in new file mode 100644 index 0000000000000000000000000000000000000000..db5c7c02e3d4f4c8ed1861ba43423bfa11f46918 --- /dev/null +++ b/build/windows/installer/lang/setup.isl.xml.in @@ -0,0 +1,326 @@ + + + +
+ + + License Agreement + + + Setup built by Jernej Simonèiè, jernej-gimp@ena.si + + + This version of GIMP requires Windows 7, or a newer version of Windows. + + + This version of GIMP requires Windows 7, or a newer version of Windows. + +
+ +
+ + + Development version + + + + + This is a development version of GIMP where some features may not be finished, or it may be unstable.%nThis version of GIMP is not intended for day-to-day work as it may be unstable, and you could lose your work.%nIf you encounter any problems, first verify that they haven't already been fixed in GIT before you contact the developers or report it in GIMP gitlab:%n_https://gitlab.gnome.org/GNOME/gimp/issues%n%nDo you wish to continue with installation anyway? + + + &Continue + + + Exit + + + + + + This version of GIMP requires a processor that supports SSE instructions. + + + + Display settings problem + + + Setup has detected that your Windows is not running in 32 bits-per-pixel display mode. This has been known to cause stability problems with GIMP, so it's recommended to change the display colour depth to 32BPP before continuing. + + + &Continue + + + E&xit + + + + GIMP is now ready to be installed. Click the Install now button to install using the default settings, or click the Customize button if you'd like to have more control over what gets installed. + + + &Install + + + &Customize + + + + + Compact installation + + + + Custom installation + + + + Full installation + + + + + Description + + + + GIMP + + + + GIMP and all default plug-ins + + + + Run-time libraries + + + + Run-time libraries used by GIMP, including GTK+ Run-time Environment + + + + Debug symbols + + + + Include information to help with debugging GIMP + + + + MS-Windows engine for GTK+ + + + + Native Windows look for GIMP + + + + Support for old plug-ins + + + + Install libraries needed by old third-party plug-ins + + + + Translations + + + + Translations + + + + Python scripting + + + + Allows you to use GIMP plugins written in Python scripting language. + + + + Lua scripting + + + + Allows you to use GIMP plugins written in Lua scripting language. + + + + MyPaint brushes + + + + Install the default set of MyPaint brushes + + + + PostScript support + + + + Allow GIMP to load PostScript files + + + + Support for 32-bit plug-ins + + + + Include files necessary for using 32-bit plug-ins.%nRequired for Python support. + + + + + Additional icons: + + + + Create a &desktop icon + + + + Create a &Quick Launch icon + + + + Remove previous GIMP version + + + + + There was a problem updating GIMP's environment in %1. If you get any errors loading the plug-ins, try uninstalling and re-installing GIMP. + + + + Error extracting temporary data. + + + + Error updating Python interpreter info. + + + + Error updating MyPaint brushes info. + + + + There was an error updating %1. + + + + There was an error updating GIMP's configuration file %1. + + + + + Edit with GIMP + + + + + Select file associations + + + + Extensions: + + + + Select the file types you wish to associate with GIMP + + + + This will make selected files open in GIMP when you double-click them in Explorer. + + + + Select &All + + + + Unselect &All + + + + Select &Unused + + + + + File types to associate with GIMP: + + + + Removing previous version of GIMP: + + + + GIMP %1 cannot be installed over your currently installed GIMP version, and the automatic uninstall of old version has failed.%n%nPlease remove the previous version of GIMP yourself before installing this version in %2, or choose a Custom install, and select a different installation folder.%n%nThe Setup will now exit. + + + + GIMP %1 cannot be installed over your currently installed GIMP version, and Setup couldn't determine how to remove the old version automatically.%n%nPlease remove the previous version of GIMP and any add-ons yourself before installing this version in %2, or choose a Custom install, and select a different installation folder.%n%nThe Setup will now exit. + + + + Previous GIMP version was removed successfully, but Windows has to be restarted before the Setup can continue.%n%nAfter restarting your computer, Setup will continue next time an administrator logs in. + + + + + There was an error restarting the Setup. (%1) + + + + Cleaning up old files... + + + + + Remember: GIMP is Free Software.%n%nPlease visit + + + + for free updates. + + + + Setting up file associations... + + + Setting up environment for GIMP Python extension... + + + Setting up MyPaint brushes... + + + Setting up GIMP environment... + + + Setting up GIMP configuration for 32-bit plug-in support... + + + + + Launch GIMP + + + + + Removing add-on + + + + Internal error (%1). + + + + + GIMP does not appear to be installed in the selected directory. Continue anyway? + +
+
diff --git a/build/windows/installer/lang/test-installer-langs.sh b/build/windows/installer/lang/test-installer-langs.sh index 5c882ea537c1c11a8ddf6a5217f06379ab732139..ef1e3ab09137b4a90e1e4863a6f8c3d7af435074 100755 --- a/build/windows/installer/lang/test-installer-langs.sh +++ b/build/windows/installer/lang/test-installer-langs.sh @@ -24,7 +24,7 @@ if [ "$PO_LANGS" != "$INSTALLER_LANGS" ]; then exit 1 fi -AUTOTOOLS_LANGS=`grep '[a-zA-Z_]*:\[[a-zA-Z_]*\]' ${GIMP_TESTING_ABS_TOP_SRCDIR}/build/windows/installer/lang/Makefile.am | \ +AUTOTOOLS_LANGS=`grep '^\s*[a-zA-Z_]*:[a-zA-Z_]*\s*\\\\\?' ${GIMP_TESTING_ABS_TOP_SRCDIR}/build/windows/installer/lang/Makefile.am | \ sed 's/^\t*\([a-zA-Z_]*\):.*$/\1/' |sort` AUTOTOOLS_LANGS=`echo "$AUTOTOOLS_LANGS" | tr '\n\r' ' ' | sed 's/\ //'` diff --git a/build/windows/jhbuild/README.md b/build/windows/jhbuild/README.md index 8fac252eb1eec808d5b2af684347b8014709215d..ca388b6f9d79e96369d08009005181a2cf4ede2a 100644 --- a/build/windows/jhbuild/README.md +++ b/build/windows/jhbuild/README.md @@ -4,7 +4,7 @@ To begin with, you need to install jhbuild, mingw-w64, and a few other build-rel If you're using debian, install these packages: - sudo apt-get install build-essential mingw-w64 git jhbuild automake autoconf libtool libgtk2.0-dev ragel intltool bison flex gperf gtk-doc-tools nasm ruby cmake libxml-simple-perl + sudo apt-get install build-essential mingw-w64 git jhbuild automake autoconf libtool libgtk2.0-dev ragel bison flex gperf gtk-doc-tools nasm ruby cmake libxml-simple-perl From there, in theory, you can simply clone this repo, cd into it, and run: diff --git a/configure.ac b/configure.ac index fc9b9d6863bb17fb9ad3a6c5ce4af45c168c9770..00e1f1e61285bd098d4e0d4989962fe08c5f6f56 100644 --- a/configure.ac +++ b/configure.ac @@ -69,7 +69,6 @@ m4_define([gtk_mac_integration_required_version], [2.0.0]) m4_define([gtk_required_version], [3.22.29]) m4_define([gtkdoc_required_version], [1.0]) m4_define([harfbuzz_required_version], [1.0.5]) -m4_define([intltool_required_version], [0.40.1]) m4_define([introspection_required_version], [1.32.0]) m4_define([json_glib_required_version], [1.2.6]) m4_define([lcms_required_version], [2.8]) @@ -94,10 +93,6 @@ m4_define([webkitgtk_required_version], [2.20.3]) m4_define([webp_required_version], [0.6.0]) m4_define([wmf_required_version], [0.2.8]) -# Current test considers only 2 version numbers. If we update the recommended -# version of gettext with more version numbers, please update the tests. -m4_define([xgettext_required_version], [0.19]) - # required versions for build-time only tools m4_define([native_glib_required_version], [2.2.0]) @@ -109,7 +104,7 @@ AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([app/core/gimp.c]) AC_CONFIG_MACRO_DIR([m4macros]) -AM_INIT_AUTOMAKE(no-define dist-bzip2 dist-xz no-dist-gzip -Wno-portability) +AM_INIT_AUTOMAKE(no-define dist-bzip2 dist-xz no-dist-gzip foreign) # Enable silent build rules by default, requires at least # Automake-1.11. Disable by either passing --disable-silent-rules to @@ -178,7 +173,6 @@ GEXIV2_REQUIRED_VERSION=gexiv2_required_version GLIB_REQUIRED_VERSION=glib_required_version GTK_REQUIRED_VERSION=gtk_required_version HARFBUZZ_REQUIRED_VERSION=harfbuzz_required_version -INTLTOOL_REQUIRED_VERSION=intltool_required_version LCMS_REQUIRED_VERSION=lcms_required_version LIBHEIF_REQUIRED_VERSION=libheif_required_version LIBJXL_REQUIRED_VERSION=libjxl_required_version @@ -199,7 +193,6 @@ WEBKITGTK_REQUIRED_VERSION=webkitgtk_required_version WEBP_REQUIRED_VERSION=webp_required_version WMF_REQUIRED_VERSION=wmf_required_version LIBUNWIND_REQUIRED_VERSION=libunwind_required_version -XGETTEXT_REQUIRED_VERSION=xgettext_required_version AC_SUBST(APPSTREAM_GLIB_REQUIRED_VERSION) AC_SUBST(ATK_REQUIRED_VERSION) AC_SUBST(BABL_MAJOR_MINOR_VERSION) @@ -215,7 +208,6 @@ AC_SUBST(GEXIV2_REQUIRED_VERSION) AC_SUBST(GLIB_REQUIRED_VERSION) AC_SUBST(GTK_REQUIRED_VERSION) AC_SUBST(HARFBUZZ_REQUIRED_VERSION) -AC_SUBST(INTLTOOL_REQUIRED_VERSION) AC_SUBST(LCMS_REQUIRED_VERSION) AC_SUBST(LIBHEIF_REQUIRED_VERSION) AC_SUBST(LIBJXL_REQUIRED_VERSION) @@ -236,7 +228,6 @@ AC_SUBST(WEBKITGTK_REQUIRED_VERSION) AC_SUBST(WEBP_REQUIRED_VERSION) AC_SUBST(WMF_REQUIRED_VERSION) AC_SUBST(LIBUNWIND_REQUIRED_VERSION) -AC_SUBST(XGETTEXT_REQUIRED_VERSION) # The symbol GIMP_UNSTABLE is defined above for substitution in # Makefiles and conditionally defined here as a preprocessor symbol @@ -264,11 +255,6 @@ AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The prefix for our gettext translation domains.]) -# work around intltool-update issues during 'make distcheck' -AS_IF([test "x$0" != "x./configure"], [ - AC_SUBST([INTLTOOL_UPDATE], [/bin/true]) -]) - # Determine a C compiler to use AC_PROG_CC AX_PROG_CC_FOR_BUILD @@ -672,36 +658,8 @@ m4_define([add_deps_error], [ # Internationalisation ###################### -IT_PROG_INTLTOOL(intltool_required_version) - -# Testing xgettext version since we had some problem with localizing script-fu. See bug 720052. -AC_MSG_CHECKING([for xgettext version (>= xgettext_required_version)]) -XGETTEXT_REQUIRED_VERSION_MAJOR=`echo $XGETTEXT_REQUIRED_VERSION | awk -F. '{ print $ 1; }'` -XGETTEXT_REQUIRED_VERSION_MINOR_1=`echo $XGETTEXT_REQUIRED_VERSION | awk -F. '{ print $ 2; }'` - -XGETTEXT_APPLIED_VERSION=`$XGETTEXT --version | head -1 | cut -d" " -f4` -XGETTEXT_APPLIED_VERSION_MAJOR=`echo $XGETTEXT_APPLIED_VERSION | awk -F. '{ print $ 1; }'` -XGETTEXT_APPLIED_VERSION_MINOR_1=`echo $XGETTEXT_APPLIED_VERSION | awk -F. '{ print $ 2; }'` - -have_required_xgettext="no" -if test -n "$XGETTEXT_APPLIED_VERSION_MAJOR"; then - if test "$XGETTEXT_REQUIRED_VERSION_MAJOR" -lt "$XGETTEXT_APPLIED_VERSION_MAJOR"; then - have_required_xgettext="yes" - elif test "$XGETTEXT_REQUIRED_VERSION_MAJOR" -eq "$XGETTEXT_APPLIED_VERSION_MAJOR"; then - if test -n "$XGETTEXT_APPLIED_VERSION_MINOR_1"; then - if test "$XGETTEXT_REQUIRED_VERSION_MINOR_1" -le "$XGETTEXT_APPLIED_VERSION_MINOR_1"; then - have_required_xgettext="yes" - fi - fi - fi -fi -AC_MSG_RESULT($have_required_xgettext) - -if test "x$have_required_xgettext" = "xno"; then - add_deps_error([xgettext], [xgettext >= xgettext_required_version]) -fi - -AM_GLIB_GNU_GETTEXT +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.19.8]) ########### # iso-codes @@ -2844,13 +2802,6 @@ AC_ARG_ENABLE(windows-installer, (default=no)],, enable_windows_installer=no) -if test "x$enable_windows_installer" != xno; then - if test ! -e "$srcdir/build/windows/installer/lang/setup.isl.ini"; then - AC_MSG_RESULT([no (not building from git)]) - AC_MSG_ERROR([Building the Windows installer is only supported when building from git.]) - fi -fi - AC_MSG_RESULT([$enable_windows_installer]) AM_CONDITIONAL(BUILD_WINDOWS_INSTALLER, test "x$enable_windows_installer" != xno) @@ -3241,37 +3192,6 @@ gimpthumb-gimp_pkgconfig_version.pc:gimpthumb.pc.in gimpui-gimp_pkgconfig_version.pc:gimpui.pc.in ) -# By default, autoconf will create only po/Makefile. -# This code is used to create the POTFILES and Makefile for all -# additional gettext catalogs. -m4_define([generate_po_makefile], [ - AC_MSG_NOTICE([Generating POTFILES and Makefile for $1]) - - AC_CONFIG_COMMANDS([$1/stamp-it], - [[ - if ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ; then - as_fn_error $? "$1/Makefile.in.in was not created by intltoolize." "$LINENO" 5 - fi - rm -f "$1/stamp-it" "$1/POTFILES" - sed -e '/^#/d' -e 's/^[[].*] *//' \ - -e '/^[ ]*$/d' \ - -e "s|^| $ac_top_srcdir/|" \ - "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" && \ - sed -e "/^# This comment gets stripped out/ {" \ - -e 'r $1/POTFILES' \ - -e "d" -e "}" \ - "$1/Makefile.in" >"$1/Makefile" && \ - touch "$1/stamp-it" - ]]) -]) - -generate_po_makefile([po-libgimp]) -generate_po_makefile([po-python]) -generate_po_makefile([po-plug-ins]) -generate_po_makefile([po-script-fu]) -generate_po_makefile([po-tips]) -generate_po_makefile([po-windows-installer]) - # Print a summary of features enabled/disabled: optional_deps=" Extra Binaries: diff --git a/data/tags/Makefile.am b/data/tags/Makefile.am index 8ab943ab240e2aa410f760a4f52f7eafe708fb5f..2e3f36fc79e2f43405e37b49ba98d26addedecc5 100644 --- a/data/tags/Makefile.am +++ b/data/tags/Makefile.am @@ -15,10 +15,14 @@ EXTRA_DIST = \ DISTCLEANFILES = $(tagsdata_data_files) +itsdir = $(datadir)/gettext/its +its_DATA = its/gimp-tags.loc its/gimp-tags.its + +EXTRA_DIST += $(its_DATA) + gimp-tags-default.xml: gimp-tags-default.xml.in $(wildcard $(top_srcdir)/po-tags/*.po) - mkdir -p $(top_builddir)/po-tags/ - $(INTLTOOL_MERGE) $(top_srcdir)/po-tags $< $(@) -x -u -c $(top_builddir)/po-tags/.intltool-merge-cache + $(AM_V_GEN) GETTEXTDATADIRS=$(abs_srcdir) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po-tags -o $@ validate: gimp-tags-default.xml diff --git a/data/tags/gimp-tags-default.xml.in b/data/tags/gimp-tags-default.xml.in index 8a420191fe4dacf47c79cef54d6ae70294c01a1c..407d2b06a44afc28f450ac8b5dafb95f69ba9429 100644 --- a/data/tags/gimp-tags-default.xml.in +++ b/data/tags/gimp-tags-default.xml.in @@ -8,15 +8,15 @@ - <_thetag>round + round - <_thetag>fuzzy - <_thetag>round + fuzzy + round diff --git a/data/tags/its/gimp-tags.its b/data/tags/its/gimp-tags.its new file mode 100644 index 0000000000000000000000000000000000000000..ac4d11552fc8bbe9ac43c1d4d192bee0bdb42da7 --- /dev/null +++ b/data/tags/its/gimp-tags.its @@ -0,0 +1,5 @@ + + + + + diff --git a/data/tags/its/gimp-tags.loc b/data/tags/its/gimp-tags.loc new file mode 100644 index 0000000000000000000000000000000000000000..c41b3e6101a0953a1346d42103d5189bb83b9fd8 --- /dev/null +++ b/data/tags/its/gimp-tags.loc @@ -0,0 +1,6 @@ + + + + + + diff --git a/data/tags/meson.build b/data/tags/meson.build index 464b87121f83333f647fbc8c978950a78a97ec39..f84c27e9c0fab59091c823272e16a55678e5a9cb 100644 --- a/data/tags/meson.build +++ b/data/tags/meson.build @@ -1,19 +1,8 @@ - -xmlfilename = 'gimp-tags-default.xml' - -gimp_tags_default = custom_target(xmlfilename, - input : xmlfilename+'.in', - output: xmlfilename, - - command: [ - intltool_merge, - potags_dir, - '@INPUT@', - '@OUTPUT@', - '--xml-style', - '--utf8', - '--cache=' + '@OUTDIR@' / 'intltool-merge-cache', - ], +gimp_tags_default = i18n.merge_file( + input : 'gimp-tags-default.xml.in', + output: '@BASENAME@', + data_dirs: meson.current_source_dir(), + po_dir: potags_dir, install: true, install_dir: gimpdatadir / 'tags', ) diff --git a/data/tips/Makefile.am b/data/tips/Makefile.am index 1de81aba5941b2cd4ba87029909d6129b8282902..68c8ab47014a00bd1bbf2ac9556dd180ab87fbfa 100644 --- a/data/tips/Makefile.am +++ b/data/tips/Makefile.am @@ -16,9 +16,14 @@ EXTRA_DIST = \ DISTCLEANFILES = $(tipsdata_data_files) +itsdir = $(datadir)/gettext/its +its_DATA = its/gimp-tips.loc its/gimp-tips.its + +EXTRA_DIST += $(its_DATA) + gimp-tips.xml: gimp-tips.xml.in $(wildcard $(top_srcdir)/po-tips/*.po) - $(INTLTOOL_MERGE) $(top_srcdir)/po-tips $< $(@) -x -u -c $(top_builddir)/po-tips/.intltool-merge-cache + $(AM_V_GEN) GETTEXTDATADIRS=$(abs_srcdir) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po-tips -o $@ validate: gimp-tips.xml diff --git a/data/tips/gimp-tips.xml.in b/data/tips/gimp-tips.xml.in index 61e66f25bc1fc630f0941ef314889861dd4c39bc..8219e28aa9a255c7d581ec7ecd4173fc88b7f715 100644 --- a/data/tips/gimp-tips.xml.in +++ b/data/tips/gimp-tips.xml.in @@ -15,63 +15,63 @@ - <_thetip> + You can get context-sensitive help for most of GIMP's features by pressing the F1 key at any time. This also works inside the menus. - + - <_thetip> + GIMP uses layers to let you organize your image. Think of them as a stack of slides or filters, such that looking through them you see a composite of their contents. - + - <_thetip> + You can perform many layer operations by right-clicking on the text label of a layer in the Layers dialog. - + - <_thetip> + Saving an image uses XCF, GIMP's native file format (file extension .xcf). This preserves the layers and many aspects of your work-in-progress, allowing to work on it again later. Once a project is completed, you can export it as JPEG, PNG, GIF, etc. - + - <_thetip> + Most plug-ins work on the current layer of the current image. In some cases, you will have to merge all layers (Image→Flatten Image) if you want the plug-in to work on the whole image. - + - <_thetip> + If a layer's name in the Layers dialog is displayed in bold, this layer doesn't have an alpha-channel. You can add an alpha-channel using Layer→Transparency→Add Alpha Channel. - + - <_thetip> + Not all effects can be applied to all kinds of images. This is indicated by a grayed-out menu-entry. You may need to change the image mode to RGB (Image→Mode→RGB), add an alpha-channel (Layer→Transparency→Add Alpha Channel) or flatten it (Image→Flatten Image). - + - <_thetip> + You can adjust or move a selection by using Alt-drag. If this makes the window move, your window manager uses the Alt key already. Most window managers can be configured to ignore the Alt key or to use the Super key (or "Windows logo") instead. - + @@ -79,91 +79,91 @@ - <_thetip> + You can drag and drop many things in GIMP. For example, dragging a color from the toolbox or from a color palette and dropping it into an image will fill the current selection with that color. - + - <_thetip> + You can use the middle mouse button to pan around the image (or optionally hold Spacebar while you move the mouse). - + - <_thetip> + Click and drag on a ruler to place a guide on an image. All dragged selections will snap to the guides. You can remove guides by dragging them off the image with the Move tool. - + - <_thetip> + You can drag a layer from the Layers dialog and drop it onto the toolbox. This will create a new image containing only that layer. - + - <_thetip> + A floating selection must be anchored to a new layer or to the last active layer before doing other operations on the image. Click on the "New Layer" or the "Anchor Layer" button in the Layers dialog, or use the menus to do the same. - + - <_thetip> + GIMP supports gzip compression on the fly. Just add .gz (or .bz2, if you have bzip2 installed) to the filename and your image will be saved compressed. Of course loading compressed images works too. - + - <_thetip> + Pressing and holding the Shift key before making a selection allows you to add to the current selection instead of replacing it. Using Ctrl before making a selection subtracts from the current one. - + - <_thetip> + You can draw simple squares or circles using Edit→Stroke Selection. It strokes the edge of your current selection. More complex shapes can be drawn using the Path tool or with Filters→Render→Gfig. - + - <_thetip> + If you stroke a path (Edit→Stroke Path), the paint tools can be used with their current settings. You can use the Paintbrush in gradient mode or even the Eraser or the Smudge tool. - + - <_thetip> + You can create and edit complex selections using the Path tool. The Paths dialog allows you to work on multiple paths and to convert them to selections. - + - <_thetip> + You can use the paint tools to change the selection. Click on the "Quick Mask" button at the bottom left of an image window. Change your selection by painting in the image and click on the button again to convert it back to a normal selection. - + - <_thetip> + You can save a selection to a channel (Select→Save to Channel) and then modify this channel with any paint tools. Using the buttons in the Channels dialog, you can toggle the visibility of this new channel or convert it to a selection. - + @@ -172,7 +172,7 @@ - <_thetip> + After you enabled "Dynamic Keyboard Shortcuts" in the Preferences dialog, you can reassign shortcut keys. Do so by bringing up the menu, selecting a menu item, and pressing the desired key @@ -180,56 +180,56 @@ key bindings are saved when you exit GIMP. You should probably disable "Dynamic Keyboard Shortcuts" afterwards, to prevent accidentally assigning/reassigning shortcuts. - + - <_thetip> + If your screen is too cluttered, you can press Tab in an image window to toggle the visibility of the toolbox and other dialogs. - + - <_thetip> + Shift-click on the eye icon in the Layers dialog to hide all layers but that one. Shift-click again to show all layers. - + - <_thetip> + Ctrl-clicking on the layer mask's preview in the Layers dialog toggles the effect of the layer mask. Alt-clicking on the layer mask's preview in the Layers dialog toggles viewing the mask directly. - + - <_thetip> + You can use Ctrl-Tab to cycle through all layers in an image (if your window manager doesn't trap those keys...). - + - <_thetip> + Ctrl-click with the Bucket Fill tool to have it use the background color instead of the foreground color. Similarly, Ctrl-clicking with the eyedropper tool sets the background color instead of the foreground color. - + - <_thetip> + Ctrl-drag with the Rotate tool will constrain the rotation to 15 degree angles. - + - <_thetip> + If some of your scanned photos do not look colorful enough, you can easily improve their tonal range with the "Auto" button in the Levels tool (Colors→Levels). If there are any color casts, you can correct them with the Curves tool (Colors→Curves). - + diff --git a/data/tips/its/gimp-tips.its b/data/tips/its/gimp-tips.its new file mode 100644 index 0000000000000000000000000000000000000000..e7809f15c60667327d3e9f7f2e35468977a69e0f --- /dev/null +++ b/data/tips/its/gimp-tips.its @@ -0,0 +1,5 @@ + + + + + diff --git a/data/tips/its/gimp-tips.loc b/data/tips/its/gimp-tips.loc new file mode 100644 index 0000000000000000000000000000000000000000..41dda46e03d6c67e0ce9187ba979e615b349b192 --- /dev/null +++ b/data/tips/its/gimp-tips.loc @@ -0,0 +1,6 @@ + + + + + + diff --git a/data/tips/meson.build b/data/tips/meson.build index 490913f9cdfdcdb2f4414d45f1e4763b78a7cc3b..630df60bee159fb310e1cae12f6e8c6453ddbc10 100644 --- a/data/tips/meson.build +++ b/data/tips/meson.build @@ -1,19 +1,8 @@ - -xmlfilename = 'gimp-tips.xml' - -gimp_tips = custom_target(xmlfilename, - input : xmlfilename+'.in', - output: xmlfilename, - - command: [ - intltool_merge, - potips_dir, - '@INPUT@', - '@OUTPUT@', - '--xml-style', - '--utf8', - '--cache=' + '@OUTDIR@' / 'intltool-merge-cache', - ], +gimp_tips = i18n.merge_file( + input : 'gimp-tips.xml.in', + output: '@BASENAME@', + data_dirs: meson.current_source_dir(), + po_dir: potips_dir, install: true, install_dir: gimpdatadir / 'tips', ) @@ -38,7 +27,7 @@ if xmllint.found() '--output', '@OUTPUT@', '--path', meson.current_source_dir(), '--valid', gimp_tips, - ], + ], output: [ 'validate-tips-output.xml' ], build_by_default: true, install: false diff --git a/desktop/Makefile.am b/desktop/Makefile.am index d8445791566a4d135edd7b9661b34112882c8288..bb1dec33ec1bf69f0882068fe8e5adfe27c6e069 100644 --- a/desktop/Makefile.am +++ b/desktop/Makefile.am @@ -10,6 +10,9 @@ appstream_in_files = \ appstream_files = $(appstream_in_files:.xml.in=.xml) +$(appstream_files): $(appstream_in_files) + $(AM_V_GEN) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@ + if DESKTOP_DATADIR applicationsdir = $(DESKTOP_DATADIR)/applications @@ -66,10 +69,8 @@ EXTRA_DIST = \ DISTCLEANFILES = $(desktop_files) $(appstream_files) -@INTLTOOL_XML_RULE@ - gimp.desktop: gimp.desktop.in $(wildcard $(top_srcdir)/po/*.po) - $(INTLTOOL_MERGE) $(top_srcdir)/po $< $(@) -d -u -c $(top_builddir)/po/.intltool-merge-cache + $(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ validate: gimp.desktop ( dfvalidate=`which desktop-file-validate`; \ diff --git a/desktop/gimp.desktop.in.in b/desktop/gimp.desktop.in.in index 66f5b355c15b49d4a2a2b4f169abdc283d5f8ac8..0ef73561b0cc4145b1cca66e2a5cb08959d9daf1 100644 --- a/desktop/gimp.desktop.in.in +++ b/desktop/gimp.desktop.in.in @@ -1,11 +1,11 @@ [Desktop Entry] Version=1.0 Type=Application -_Name=GNU Image Manipulation Program -_GenericName=Image Editor -_Comment=Create images and edit photographs +Name=GNU Image Manipulation Program +GenericName=Image Editor +Comment=Create images and edit photographs # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! -_Keywords=GIMP;graphic;design;illustration;painting; +Keywords=GIMP;graphic;design;illustration;painting; Exec=@GIMP_COMMAND@ %U TryExec=gimp-@GIMP_APP_VERSION@ Icon=gimp diff --git a/desktop/meson.build b/desktop/meson.build index 618c19e8843d1ea1eebcb69d6626e97a9c9907a7..eeabe804fa0f2130a3ec790ad3efd94ffec8b911 100644 --- a/desktop/meson.build +++ b/desktop/meson.build @@ -33,18 +33,11 @@ desktopfilein = configure_file( configuration: desktop_conf, ) -desktopfile = custom_target(desktopfilename, - input : [ desktopfilein, ], - output: [ desktopfilename, ], - command: [ - intltool_merge, - po_dir, - '@INPUT@', - '@OUTPUT@', - '--desktop-style', - '--utf8', - '--cache=' + '@OUTDIR@' / 'intltool-merge-cache', - ], +desktopfile = i18n.merge_file( + input : desktopfilein, + output: desktopfilename, + type: 'desktop', + po_dir: po_dir, install: true, install_dir: get_option('datadir') / 'applications', ) @@ -55,18 +48,10 @@ appdatafilein = configure_file( output: appdatafilename+'.in', configuration: desktop_conf, ) -appdatafile = custom_target(appdatafilename, - input : [ appdatafilein, ], - output: [ appdatafilename, ], - command: [ - intltool_merge, - po_dir, - '@INPUT@', - '@OUTPUT@', - '--xml-style', - '--utf8', - '--cache=' + '@OUTDIR@' / 'intltool-merge-cache', - ], +appdatafile = i18n.merge_file( + input : appdatafilein, + output: appdatafilename, + po_dir: po_dir, install: true, install_dir: get_option('datadir') / 'metainfo', ) diff --git a/desktop/org.gimp.GIMP.appdata.xml.in.in b/desktop/org.gimp.GIMP.appdata.xml.in.in index 5be28bc947df90bcb4f015432ba3984302544f8f..fa2a6989f1f346ba3183e41f150e3d79d54d6712 100644 --- a/desktop/org.gimp.GIMP.appdata.xml.in.in +++ b/desktop/org.gimp.GIMP.appdata.xml.in.in @@ -13,28 +13,28 @@ CC0-1.0 GPL-3.0+ AND LGPL-3.0+ The GIMP team - <_name>GNU Image Manipulation Program - <_summary>Create images and edit photographs + GNU Image Manipulation Program + Create images and edit photographs - <_p> +

GIMP is an acronym for GNU Image Manipulation Program. It is a freely distributed program for such tasks as photo retouching, image composition and image authoring. - - <_p> +

+

It has many capabilities. It can be used as a simple paint program, an expert quality photo retouching program, an online batch processing system, a mass production image renderer, an image format converter, etc. - - <_p> +

+

GIMP is expandable and extensible. It is designed to be augmented with plug-ins and extensions to do just about anything. The advanced scripting interface allows everything from the simplest task to the most complex image manipulation procedures to be easily scripted. GIMP is available for Linux, Microsoft Windows and OS X. - +

@BUG_REPORT_URL@ https://www.gimp.org/donating/ @@ -45,11 +45,11 @@ https://www.gimp.org/screenshots/Screenshot-gimp-2.10-painting.jpg - <_caption>Painting in GIMP + Painting in GIMP https://www.gimp.org/screenshots/Screenshot-gimp-2.10-photo-editing.jpg - <_caption>Photo editing in GIMP + Photo editing in GIMP gimp-developer-list_at_gnome.org @@ -76,772 +76,772 @@ - <_p> +

One step further towards GIMP 3.0, GIMP 2.99.12 comes along with the following noteworthy improvements: - +

    - <_li demo="toolbox:bucket-fill, - tool-options:fill-area=2, - tool-options:line-art-stroke-border=1"> +
  • New "Stroke borders" option in Bucket Fill tool's "Fill by line art detection" - - <_li demo="toolbox:bucket-fill, - tool-options:fill-area=2, - tool-options:line-art-settings"> +
  • +
  • Redesigned and reorganized "Fill by line art detection" settings - - <_li>Added support for the BigTIFF file format - <_li>New option "Number of repeats" in GIF export - <_li>Tool pointer settings reorganized and moved from "Image Windows" to "Input Devices" tabs in Preferences - <_li>Improved handling of unchecked "Show pointer for paint tools" option +
  • +
  • Added support for the BigTIFF file format
  • +
  • New option "Number of repeats" in GIF export
  • +
  • Tool pointer settings reorganized and moved from "Image Windows" to "Input Devices" tabs in Preferences
  • +
  • Improved handling of unchecked "Show pointer for paint tools" option
- <_p> +

GIMP 2.99.10 is a notable development release in the 2.99 series, featuring many changes. Let's mention in particular: - +

    - <_li> +
  • "Linked layers" concept superseded by new "Layer set" concept - - <_li> +
  • +
  • Lock icons in item dockables (Layers, Channels, Paths) moved next to the visibility (eye) icon - - <_li> +
  • +
  • Alt-click on visibility and lock icons in item dockables massively toggles visibility and locks among selected items - - <_li> +
  • +
  • Item dockables now display icon headers for visibility and locks column - - <_li> +
  • +
  • Our System theme shows visible hints around unset visibility and locks icons when hovering them in item dockables - - <_li> +
  • +
  • New checkbox to enable or disable dynamics in paint tools' options (replacing "Dynamics Off" dynamics) - - <_li> +
  • +
  • Improved support for Wayland and macOS Big Sur (and newer) - - <_li> +
  • +
  • "Fill by line art detection" in Bucket Fill tool has a new option - - <_li> +
  • +
  • Channels and paths multi-selectable with part of relevant actions working - - <_li> +
  • +
  • Various file format support improvements, in particular to PSD, JPEG-XL and HEIF - - <_li> +
  • +
  • New support of Microsoft Windows Cursor file format (.cur files) - - <_li> +
  • +
  • Removed KDE and GNOME screenshot portals in favor of Freedesktop one - - <_li> +
  • +
  • Windows screenshot implementation now has an "Include mouse pointer" option - - <_li> +
  • +
  • New and modified libgimp API for plug-in developers - +
- <_p> +

While during this fourth cycle of development, many efforts were devoted to infrastructure, GIMP 2.99.8 still received many welcome improvements, notably: - +

    - <_li> +
  • New modes in Clone, Heal and Perspective Clone tools when multiple layers are selected - - <_li> +
  • +
  • Windows Ink support for input devices on Windows - - <_li> +
  • +
  • Clicking on toolbox or Wilber's drop area actively focuses the canvas - - <_li> +
  • +
  • Marching ants display ported to Wayland and macOS Big Sur logics - - <_li> +
  • +
  • Initial implementation of config folder migration for GIMP 3 - - <_li> +
  • +
  • Action "view-rotate-reset" renamed to "view-reset" and new "view-rotate-reset" and "view-flip-rotate" actions - - <_li> +
  • +
  • PSD: bigger-than-4GiB file support and up to 99 channels - - <_li> +
  • +
  • PSB: new support (loading only) - - <_li> +
  • +
  • SGI: 16-bit images support - - <_li> +
  • +
  • JPEG XL: new support (loading and exporting) - - <_li> +
  • +
  • New API functions gimp_display_present() and gimp_procedure_dialog_fill_expander() - - <_li> +
  • +
  • Much porting to newer API, code cleanup and bug fixing done - +
https://www.gimp.org/news/2021/04/29/gimp-2-99-6-released/ - <_p> +

For this third development release, more development effort has been shifted towards the API. Many functions were renamed for consistent naming scheme, some new functions appeared, some had signature changes, fixes were made to improve introspection binding of others, and so on. More API updates are to be expected on further development releases where stability is not guaranteed. - - <_p> +

+

Regarding end-creator changes, some notable improvements are: - +

    - <_li> +
  • Canvas Size dialog now displays a template selector - - <_li> +
  • +
  • Off-canvas guides are now allowed - - <_li> +
  • +
  • The experimental Paint Select tool got various improvements - - <_li> +
  • +
  • More fixes for Wayland support - - <_li> +
  • +
  • Dialog dropped for the Freedesktop portal implementation of the screenshot plug-in - - <_li> +
  • +
  • PNG import creates an ICC profile out of the gAMA and/or cHRM chunks - - <_li> +
  • +
  • TIFF export stores the ICC profile and comment on each layer to prevent ambiguous files - +
https://www.gimp.org/news/2020/12/25/gimp-2-99-4-released/ - <_p> +

This second development release contains various usability and API updates. A new experimental tool makes an entrance in the playground. - +

    - <_li> +
  • Many usability improvements on the slider widget - - <_li> +
  • +
  • Usability cleaning in the Layers dockable - - <_li> +
  • +
  • The action search now shows all actions even inactive ones (yet pushed below) - - <_li> +
  • +
  • Fonts targeted for Korean and Japanese language show appropriate characters - - <_li> +
  • +
  • Different default tools depending on pointer device type - - <_li> +
  • +
  • Default dynamics is now "Pressure Size" - - <_li> +
  • +
  • Various usability improvements in the Input Device editor - - <_li> +
  • +
  • New "Paint Select" experimental tool in the playground - - <_li> +
  • +
  • Plug-in API now provides many dialog generation utilities - +
https://www.gimp.org/news/2020/10/25/gimp-2-99-2-released/ - <_p> +

This is the first development release for GIMP 3.0, whose focus was the port to the GTK+3 toolkit. Noteworthy improvements (though some are still work-in-progress) include: - +

    - <_li> +
  • Multi-selection of layers in the Layers dockable - - <_li> +
  • +
  • Proper high pixel density display support - - <_li> +
  • +
  • Improved input device support - - <_li> +
  • +
  • Major plug-in API rewrite - - <_li> +
  • +
  • Plug-in API now available in C/C++, Python 3, Javascript, Lua and Vala - - <_li> +
  • +
  • New manageable extension format - - <_li> +
  • +
  • CSS-based themes and actual symbolic icon theme support - - <_li> +
  • +
  • Wayland support - +
- <_p> +

GIMP continues strengthening its bases with this new version 2.10.32 fixing many bugs and improving format support. Notable changes: - +

    - <_li> +
  • 8 and 16-bit CMYK(A) TIFF files import is now supported - - <_li> +
  • +
  • BIGTIFF import and export are now supported - - <_li> +
  • +
  • JPEG XL files import is now supported - - <_li> +
  • +
  • DDS export has new "Flip" (useful for some game engine) and "Visible layers" options - - <_li> +
  • +
  • Other improved format supports: BMP, DICOM, EPS, RAW, TGA, WebP - - <_li> +
  • +
  • The screenshot plug-in on Windows has now an option to capture the cursor - - <_li> +
  • +
  • Several usability improvements in official themes and icons - - <_li> +
  • +
  • New support for localized glyphs ('locl') in Text tool depending on the value of the "Language" tool option - - <_li> +
  • +
  • More robust XCF import - - <_li> +
  • +
  • Several metadata handling improvements - +
- <_p> +

GIMP 2.10.30 fixes many bugs, updates backend implementations to follow OS evolutions, improves metadata support as well as support of several formats, such as PSD and AVIF. - +

- <_p> +

GIMP 2.10.28 fixes a build issue of GIMP 2.10.26, where some theme data was not properly installed. - +

- <_p> +

GIMP 2.10.26 is a bug fix release, containing dozens of fixes, both in core, scripts and plug-in code. - +

https://www.gimp.org/news/2021/03/29/gimp-2-10-24-released/ - <_p> +

GIMP 2.10.24 is again mostly a bug fix release. Notable changes: - +

    - <_li> +
  • GeoTIFF metadata support added - - <_li> +
  • +
  • PDF import now proposes an option to load layers in reverse orders and allows fractional pixel density - - <_li> +
  • +
  • Raw image import updated to handle API changes in darktable 3.6 and over - - <_li> +
  • +
  • File format improved support: HEIF, PSP, TIFF, JPEG, PNG, PDF, DDS, BMP, PSD - - <_li> +
  • +
  • Many fixes and improvements to the metadata viewer and editor - - <_li> +
  • +
  • New Kabyle translation - - <_li> +
  • +
  • Off-canvas point snapping (to grid, guides, paths) made possible - +
https://www.gimp.org/news/2020/10/04/gimp-2-10-22-released/ - <_p> +

GIMP 2.10.22 is mainly a bug fix release. Notable changes: - +

    - <_li> +
  • HEIF support improvements: optional exporting with high bit depth, AVIF importing and exporting - - <_li> +
  • +
  • Multiple improvements in Corel PaintShop Pro support - - <_li> +
  • +
  • "Sample merged" now available in GEGL operation tool options - - <_li> +
  • +
  • "Sample merged" is now enabled by default for color picking - - <_li> +
  • +
  • The option enabling OpenCL support has been moved to the Playground tab in Preferences - - <_li> +
  • +
  • Matting Levin is now the default engine of Foreground Select tool as it performs a lot better - - <_li> +
  • +
  • New progressive performance logs and dashboard updates - - <_li> +
  • +
  • Verbose debug now shows Flatpak info when relevant - - <_li> +
  • +
  • Various bug fixes - +
https://www.gimp.org/news/2020/06/07/gimp-2-10-20-released/ - <_p> +

GIMP 2.10.20 comes with new features as well as important bugfixes. Notable changes: - +

    - <_li> +
  • Tool groups now expand on hover rather than click by default - - <_li> +
  • +
  • Non-destructive cropping now available by cropping the canvas rather than actual pixels - - <_li> +
  • +
  • Better PSD support: exporting of 16-bit files now available, reading/writing channels in the right order - - <_li> +
  • +
  • On-canvas controls for the Vignette filter - - <_li> +
  • +
  • New filters: Bloom, Focus Blur, Lens Blur, Variable Blur - - <_li> +
  • +
  • Over 30 bugfixes - +
https://www.gimp.org/news/2020/02/24/gimp-2-10-18-released/ - <_p> +

GIMP 2.10.18 fixes some critical bugs, introduces naive support for CMYK PSD files, and adds a higher-contrast variation of the symbolic icon theme. - +

https://www.gimp.org/news/2020/02/24/gimp-2-10-18-released/ - <_p> +

GIMP 2.10.16 delivers several major usability improvements, a new tool for transformations in 3D space, new release checker, and the usual amount of bug fixes. Notable improvements: - +

    - <_li> +
  • Tools are now grouped in the toolbox by default - - <_li> +
  • +
  • Sliders now use a compact style with improved user interaction - - <_li> +
  • +
  • Vastly improved user experience for the transformation preview - - <_li> +
  • +
  • Dockable areas now highlighted when a dockable dialog is being dragged - - <_li> +
  • +
  • New 3D Transform tool to rotate and pan items - - <_li> +
  • +
  • Much smoother brush outline motion on the canvas - - <_li> +
  • +
  • Consolidated user interface for merging down and anchoring layers - - <_li> +
  • +
  • Update check to notify users that a new release/installer is available - +
https://www.gimp.org/news/2019/10/27/gimp-2-10-14-released/ - <_p> +

GIMP 2.10.14 is again mostly a bug fix release, making GIMP rock-solid. Furthermore many old filters got finally ported to GEGL. Of course it also has a few noteworthy improvements: - +

    - <_li> +
  • View menu: new "Show All" option to reveal pixels outside the canvas boundary - - <_li> +
  • +
  • Filters: new "Clipping" option to allow layer resize when relevant - - <_li> +
  • +
  • Foreground Select tool: new "Grayscale" Preview Mode - - <_li> +
  • +
  • Foreground Select tool: color/opacity selector for "Color" preview - - <_li> +
  • +
  • Free Select tool: improved copy-paste interaction - - <_li> +
  • +
  • Transform tools: new Image transform type to transform the whole image - - <_li> +
  • +
  • Preferences: new "Allow editing on non-visible layers" setting - - <_li> +
  • +
  • HEIF import/export: color profile support - - <_li> +
  • +
  • PDF export: text layers in layer groups now exported as texts - - <_li> +
  • +
  • TIFF import: now asks how to process unspecified TIFF channels - +
https://www.gimp.org/news/2019/06/12/gimp-2-10-12-released/ - <_p> +

GIMP 2.10.12 is a significant bug fix release, which is to be expected after a 2.10.10 with so many changes! Still, very cool improvements are also available, in particular for curves editing: - +

    - <_li> +
  • Improved curves interaction overall - - <_li> +
  • +
  • A few enhancements specific to the Curves tool - - <_li> +
  • +
  • Layer support in TIFF - - <_li> +
  • +
  • Discovery of user-installed fonts in Windows - - <_li> +
  • +
  • Incremental mode in the Dodge/Burn tool - - <_li> +
  • +
  • Free Select tool creates preliminary selection - +
https://www.gimp.org/news/2019/04/07/gimp-2-10-10-released/ - <_p> +

GIMP 2.10.10 is quite a big update with many new features and bug fixes. Notable improvements include: - +

    - <_li> +
  • Bucket Fill tool: new "Fill by line art detection" for not perfectly closed line art zones - - <_li> +
  • +
  • Bucket Fill tool can now quickly color-pick with Ctrl+click - - <_li> +
  • +
  • Bucket Fill tool allows holding the mouse when filling "similar colors" and "by line art detection" - - <_li> +
  • +
  • Scale tool scales around center even when using numeric input - - <_li> +
  • +
  • Unified Transform tool now defaults to preserving aspect ratio when scaling up or down - - <_li> +
  • +
  • Add "Constrain handles" and "Around center" options to the perspective-transform tool's GUI - - <_li> +
  • +
  • New generic canvas modifier 'Alt + middle click' to pick layers - - <_li> +
  • +
  • Parametric brushes now 32-bit float to avoid posterization - - <_li> +
  • +
  • Clipboard brushes and pattern can now be duplicated - - <_li> +
  • +
  • Failure to edit locked layers will blink to shift attention to the cause of the error - - <_li> +
  • +
  • New on-canvas GUI (simple lines) for circular, linear, and zoom motion blur - - <_li> +
  • +
  • Several optimizations including faster layer group rendering - - <_li> +
  • +
  • Swap and cache files are not saved in the configuration directory anymore - - <_li> +
  • +
  • Various file saving/exporting made more robust to error by not saving partial files - - <_li> +
  • +
  • HiDPI support improvements - - <_li> +
  • +
  • New preference to choose the default export file type - - <_li> +
  • +
  • New option to export PNG, JPEG and TIFF with a color profile; always export PSD with a color profile - - <_li> +
  • +
  • New DDS format loading/exporting plug-in - - <_li> +
  • +
  • Full rewrite of the Spyrogimp plug-in with more options and better interaction - +
https://www.gimp.org/news/2018/11/08/gimp-2-10-8-released/ - <_p> +

GIMP 2.10.8 is mostly a bug fix and optimization release. In particular, it includes: - +

    - <_li> +
  • Adaptative chunk size when rendering projections, improving responsiveness dynamically - - <_li> +
  • +
  • Detection of RawTherapee (version 5.5 and above) improved on Windows - - <_li> +
  • +
  • XCF compatibility information in the Save dialog more understandable and discoverable - - <_li> +
  • +
  • Various performance log tools added and log recording made available in the Dashboard dock - +
https://www.gimp.org/news/2018/08/19/gimp-2-10-6-released/ - <_p> +

GIMP 2.10.6 comes with a lot of bug fixes, optimizations and features. Most notable changes are: - +

    - <_li> +
  • Text layers can now represent vertical texts (with various character orientations and line directions) - - <_li> +
  • +
  • New "Little Planet" (gegl:stereographic-projection) filter - - <_li> +
  • +
  • New "Long Shadow" filter - - <_li> +
  • +
  • The "Straighten" option of the Measure Tool now allows vertical straightening - - <_li> +
  • +
  • Drawable previews are now rendered asynchronously and layer group previews can be disabled in Preferences - - <_li> +
  • +
  • New "async" field in the Dashboard "misc" group, showing the number of async operations currently running - - <_li> +
  • +
  • File format filtering in Open/Save/Export dialogs made less confusing - - <_li> +
  • +
  • New language (having GIMP translated in 81 languages now): Marathi - +
https://www.gimp.org/news/2018/07/04/gimp-2-10-4-released/ - <_p> +

GIMP 2.10.4 includes a lot of bug fixes as well as various optimizations. Most notable changes are: - +

    - <_li> +
  • Straightening in Measurement tool: layers can be rotated using the measurement line as horizon - - <_li> +
  • +
  • Fast startup: fonts loading is not blocking startup anymore - - <_li> +
  • +
  • Fonts Tagging with the same user interface as for brushes, patterns, and gradients - - <_li> +
  • +
  • PSD support: a pre-composited version of a PSD image can be imported - - <_li> +
  • +
  • Dashboard update: new "Memory" group and improved "Swap" group showing various metrics - +
https://www.gimp.org/news/2018/05/20/gimp-2-10-2-released/ - <_p> +

This second release in the GIMP 2.10 series, so soon after 2.10.0, is mostly the usual bug-fixing version after a major release, with a few dozen bugs fixed. - - <_p> +

+

It also features a new plug-in for the support of the HEIF format, both for importing and exporting, as well as 2 new filters: "Spherize" and "Recursive Transform". These are nice examples of our relaxed feature policy in stable micro releases. - +

https://www.gimp.org/news/2018/04/27/gimp-2-10-0-released/ - <_p> +

First release of the 2.10 series which prominently features the port to a new image processing engine, GEGL. The most outstanding changes are: - +

    - <_li> +
  • High bit depth color processing (16/32-bit per color channel) - - <_li> +
  • +
  • Color management is a core feature now, most widgets and preview areas are color-managed - - <_li> +
  • +
  • On-canvas effect preview, with split view for before/after processing pixels - - <_li> +
  • +
  • Multi-threaded and hardware-accelerated rendering, processing and painting - - <_li> +
  • +
  • Most tools improved, several new transformation tools - - <_li> +
  • +
  • Improved support for many image formats, in particular better PSD importing - - <_li> +
  • +
  • Newly supported image formats: OpenEXR, RGBE, WebP, HGT… - - <_li> +
  • +
  • Improved digital painting: canvas rotation and flipping, symmetry painting, MyPaint brushes… - - <_li> +
  • +
  • Metadata viewing and editing for Exif, XMP, IPTC, and DICOM - - <_li> +
  • +
  • Basic HiDPI support: automatically or user-selected icon size - - <_li> +
  • +
  • New themes for GIMP: Light, Gray, Dark, and System - - <_li> +
  • +
  • And much, much more… - +
@@ -849,49 +849,49 @@ https://www.gimp.org/news/2018/04/17/gimp-2-10-0-rc2-released/ - <_p> +

In this second release candidate before GIMP 2.10.0, while debugging is still a prime target, a new focus has been put on speed and optimization in order to provide a smoother painting experience. Bigger changes are: - +

    - <_li>Major core optimizations for painting and display, - including parallelized painting code - <_li>Symmetries are now preserved in XCF files (saved as image - parasites) - <_li>"Light" and "Dark" themes rewritten from scratch to get +
  • Major core optimizations for painting and display, + including parallelized painting code
  • +
  • Symmetries are now preserved in XCF files (saved as image + parasites)
  • +
  • "Light" and "Dark" themes rewritten from scratch to get rid of various usability issues. "Lighter" and "Darker" themes - removed. - <_li> New GimpToolGyroscope on-canvas control, currently used + removed.
  • +
  • New GimpToolGyroscope on-canvas control, currently used for the Panorama Projection filter. The widget provides - on-canvas interaction for 3D rotation (yaw, pitch, roll). - <_li>Plug-in debugging improved to output stack traces from + on-canvas interaction for 3D rotation (yaw, pitch, roll).
  • +
  • Plug-in debugging improved to output stack traces from plug-ins with --stack-trace-mode command line option not only on receiving signals but also on warnings and critical errors - when "fatal-warnings" debug key is set + when "fatal-warnings" debug key is set
https://www.gimp.org/news/2018/03/26/gimp-2-10-0-rc1-released/ - <_p> +

GIMP 2.10.0-RC1 is the first release candidate before GIMP 2.10.0 stable release, with a focus on debugging and stability. Other than the many bug fixes, most notable improvements are: - +

    - <_li>New dashboard dockable to monitor GIMP resource usage - <_li>New debug dialog to produce back traces and other debug - data, encouraging to report bugs - <_li>Unsaved images can now be recovered after a crash - <_li>Layer masks on layer groups - <_li>JPEG 2000 support improved for high bit depth and various - color spaces - <_li>Screenshot and color picking improved on various platforms - <_li>Metadata defaults preferences now available - <_li>Various GUI polishing +
  • New dashboard dockable to monitor GIMP resource usage
  • +
  • New debug dialog to produce back traces and other debug + data, encouraging to report bugs
  • +
  • Unsaved images can now be recovered after a crash
  • +
  • Layer masks on layer groups
  • +
  • JPEG 2000 support improved for high bit depth and various + color spaces
  • +
  • Screenshot and color picking improved on various platforms
  • +
  • Metadata defaults preferences now available
  • +
  • Various GUI polishing
@@ -899,21 +899,21 @@ https://www.gimp.org/news/2017/12/12/gimp-2-9-8-released/ - <_p>GIMP 2.9.8 introduces on-canvas gradient +

GIMP 2.9.8 introduces on-canvas gradient editing and various enhancements while focusing on bugfixing - and stability. + and stability.

    - <_li>On-canvas gradient editing - <_li>Notification when an image is over/underexposed - <_li>Better and faster color management - <_li>Support for color picker and screenshots in Wayland on KDE Plasma - <_li>Paste in place feature - <_li>Many usability improvements - <_li>Manual can be displayed in the user's preferred language - <_li>Improvements for the Wavelet Decompose filter - <_li>Improved compatibility with Photoshop .psd files - <_li>New support for password-protected PDF - <_li>New support for HGT format (Digital Elevation Model data) +
  • On-canvas gradient editing
  • +
  • Notification when an image is over/underexposed
  • +
  • Better and faster color management
  • +
  • Support for color picker and screenshots in Wayland on KDE Plasma
  • +
  • Paste in place feature
  • +
  • Many usability improvements
  • +
  • Manual can be displayed in the user's preferred language
  • +
  • Improvements for the Wavelet Decompose filter
  • +
  • Improved compatibility with Photoshop .psd files
  • +
  • New support for password-protected PDF
  • +
  • New support for HGT format (Digital Elevation Model data)
diff --git a/devel-docs/HACKING.md b/devel-docs/HACKING.md index 0e8a482ba7da318ac27c3bbada14afa95f96e7f9..8b59f595139e240c5160441ac2d6b23941dfc8cd 100644 --- a/devel-docs/HACKING.md +++ b/devel-docs/HACKING.md @@ -92,16 +92,15 @@ running: Basically this does the following for you: gimp/trunk$ aclocal-1.9; libtoolize; automake-1.9 -a; - gimp/trunk$ autoconf; intltoolize --automake + gimp/trunk$ autoconf; The above commands create the "configure" script. Now you can run the configure script in gimp/trunk to create all the Makefiles. Before running autogen.sh or configure, make sure you have libtool in -your path. Also make sure glib-2.0.m4 glib-gettext.m4, gtk-3.0.m4, -pkg.m4 and intltool.m4 are either installed in the same -$prefix/share/aclocal relative to your automake/aclocal installation -or call autogen.sh as follows: +your path. Also make sure glib-2.0.m4 glib-gettext.m4, gtk-3.0.m4 and +pkg.m4 are either installed in the same $prefix/share/aclocal relative to your +automake/aclocal installation or call autogen.sh as follows: $ ACLOCAL_FLAGS="-I $prefix/share/aclocal" ./autogen.sh diff --git a/extensions/goat-exercises/Makefile.am b/extensions/goat-exercises/Makefile.am index 44dde13194f964a24312df6fc6b85a1e4ca78cf4..6ffb07ee08dd44e0f508ab4dc6e91a623714bddc 100644 --- a/extensions/goat-exercises/Makefile.am +++ b/extensions/goat-exercises/Makefile.am @@ -130,7 +130,7 @@ appdatadir = $(goat_exercise_c_libexecdir) appdata_DATA = $(appstream_files) org.gimp.extension.goat-exercises.metainfo.xml: org.gimp.extension.goat-exercises.metainfo.xml.in $(wildcard $(top_srcdir)/po-plug-ins/*.po) - $(INTLTOOL_MERGE) $(top_srcdir)/po-plug-ins $< $(@) -x -u -c $(top_builddir)/po-plug-ins/.intltool-merge-cache + $(AM_V_GEN) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po-plug-ins -o $@ .PHONY: org.gimp.extension.goat-exercises.metainfo.xml diff --git a/extensions/goat-exercises/meson.build b/extensions/goat-exercises/meson.build index 7a379c81f64e880ead203dbb147a4435977fe1a0..09223625af27bacc37cf3aaed22a3867c6d7eb97 100644 --- a/extensions/goat-exercises/meson.build +++ b/extensions/goat-exercises/meson.build @@ -105,19 +105,10 @@ appdatafilein = configure_file( configuration: conf, ) -appdatafile = custom_target(appdatafilename, +appdatafile = i18n.merge_file( input : [ appdatafilein, ], - output: [ appdatafilename, ], - depend_files: [ po_plug_ins_dir ], - command: [ - intltool_merge, - po_plug_ins_dir, - '@INPUT@', - '@OUTPUT@', - '--xml-style', - '--utf8', - '--cache=' + '@OUTDIR@' / 'intltool-merge-cache', - ], + output: appdatafilename, + po_dir: po_plug_ins_dir, install: true, install_dir: gimpplugindir / 'extensions' / extension_name, ) diff --git a/extensions/goat-exercises/org.gimp.extension.goat-exercises.metainfo.xml.in.in b/extensions/goat-exercises/org.gimp.extension.goat-exercises.metainfo.xml.in.in index e1eb55b5dccfdb4e4737ff464fedd8fba21127f2..902f3d6ec66c01c0f39419f403c8aff2a574cb84 100644 --- a/extensions/goat-exercises/org.gimp.extension.goat-exercises.metainfo.xml.in.in +++ b/extensions/goat-exercises/org.gimp.extension.goat-exercises.metainfo.xml.in.in @@ -2,10 +2,10 @@ org.gimp.extension.goat-exercises org.gimp.GIMP - <_name>Goat Exercises - <_summary>Official Demo Plug-ins + Goat Exercises + Official Demo Plug-ins - <_p> +

This extension provides a set of basic examples to demonstrate how to create your own plug-ins. Each plug-in does the same thing, except it is developed in a @@ -13,7 +13,7 @@ They all create a GTK+ dialog with a text view displaying their own code (hence also demonstrating how to package data) and a button which calls a GEGL operation on the active layer. - +

https://gimp.org CC0-1.0 diff --git a/m4macros/.gitignore b/m4macros/.gitignore index 5953da978a1e28309c7f0d35e856ea6a8de6c42d..8b1ede9acd921acc399f475b4f4aef81b4eade78 100644 --- a/m4macros/.gitignore +++ b/m4macros/.gitignore @@ -1,7 +1,6 @@ Makefile Makefile.in gtk-doc.m4 -intltool.m4 libtool.m4 lt~obsolete.m4 ltoptions.m4 diff --git a/meson.build b/meson.build index 6408fc8404c236123cea005c99dcb262e102c04b..80ee48a4a798f207c7ea0b9bd7a70824bacff3cf 100644 --- a/meson.build +++ b/meson.build @@ -1017,7 +1017,6 @@ endif # Check for XML tools xmllint = find_program('xmllint', required: false) xsltproc = find_program('xsltproc') -intltool_merge = find_program('intltool-merge') desktop_validate = find_program('desktop-file-validate', required: false) appstreamcli = find_program('appstreamcli', version: '>=0.15.3', required: get_option('appdata-test')) @@ -1552,7 +1551,6 @@ install_conf.set('GEXIV2_REQUIRED_VERSION', gexiv2_minver) install_conf.set('GLIB_REQUIRED_VERSION', glib_minver) install_conf.set('GTK_REQUIRED_VERSION', gtk3_minver) install_conf.set('HARFBUZZ_REQUIRED_VERSION', harfbuzz_minver) -install_conf.set('INTLTOOL_REQUIRED_VERSION', '0.40.1') install_conf.set('LCMS_REQUIRED_VERSION', lcms_minver) install_conf.set('LIBHEIF_REQUIRED_VERSION', libheif_minver) install_conf.set('LIBLZMA_REQUIRED_VERSION', liblzma_minver) diff --git a/po-libgimp/.gitignore b/po-libgimp/.gitignore index 8178716b61c86178feeea807c80cb9057134216f..d008ca8e1b0554f035c1b4cd794100b1bfbca4cf 100644 --- a/po-libgimp/.gitignore +++ b/po-libgimp/.gitignore @@ -1,7 +1,6 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache /Makefile /Makefile.in /POTFILES diff --git a/po-libgimp/Makefile.in.in b/po-libgimp/Makefile.in.in deleted file mode 100644 index f7c9cc38d5a610c31d04a12401271c8d4f8d7700..0000000000000000000000000000000000000000 --- a/po-libgimp/Makefile.in.in +++ /dev/null @@ -1,220 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-libgimp -XGETTEXT_KEYWORDS=--keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po-libgimp -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(GENPOT) - -install: install-data -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(mkdir_p) $(DESTDIR)$(itlocaledir) - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$lang.gmo as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$lang.gmo.m; then \ - $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$lang.gmo.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$lang.gmo.m as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po-libgimp/Makevars b/po-libgimp/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po-libgimp/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po-libgimp/POTFILES.in b/po-libgimp/POTFILES.in index adaf15b928a9101db633ab4134b910d7c8bd1b8d..8e85c060a4dc11e5d2bb0b9a5468bf9e7ecd733e 100644 --- a/po-libgimp/POTFILES.in +++ b/po-libgimp/POTFILES.in @@ -1,8 +1,6 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - libgimp/gimp.c libgimp/gimpbrushselectbutton.c libgimp/gimpexport.c diff --git a/po-plug-ins/.gitignore b/po-plug-ins/.gitignore index 8178716b61c86178feeea807c80cb9057134216f..d008ca8e1b0554f035c1b4cd794100b1bfbca4cf 100644 --- a/po-plug-ins/.gitignore +++ b/po-plug-ins/.gitignore @@ -1,7 +1,6 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache /Makefile /Makefile.in /POTFILES diff --git a/po-plug-ins/Makefile.in.in b/po-plug-ins/Makefile.in.in deleted file mode 100644 index 1b226257cd2d4fe81900084a20b9b457d5ab7712..0000000000000000000000000000000000000000 --- a/po-plug-ins/Makefile.in.in +++ /dev/null @@ -1,225 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-std-plug-ins -XGETTEXT_KEYWORDS=--keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po-plug-ins -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(GENPOT) - -install: install-data -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(mkdir_p) $(DESTDIR)$(itlocaledir) - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$lang.gmo as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$lang.gmo.m; then \ - $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$lang.gmo.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$lang.gmo.m as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - # Around December of 2020, a possible change on intltool-merge or some - # other dependency in Debian testing broke the CI distcheck job, leaving - # some lock files. This CLEANFILES rule should be removed once this is - # fixed upstream. - rm -f .intltool-merge-cache.lock - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po-plug-ins/Makevars b/po-plug-ins/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po-plug-ins/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po-plug-ins/POTFILES.in b/po-plug-ins/POTFILES.in index 0ca14f8126139c139c7b0f5720369b4c6d0dddb6..4738dcafeb4c7bffa1ccd62b5986ed8b928693ee 100644 --- a/po-plug-ins/POTFILES.in +++ b/po-plug-ins/POTFILES.in @@ -1,8 +1,6 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - extensions/goat-exercises/goat-exercise-c.c extensions/goat-exercises/goat-exercise-gjs.js extensions/goat-exercises/goat-exercise-lua.lua @@ -150,8 +148,8 @@ plug-ins/gimpressionist/repaint.c plug-ins/gimpressionist/size.c plug-ins/gimpressionist/sizemap.c plug-ins/gimpressionist/utils.c -[type: gettext/glade]plug-ins/ui/plug-in-metadata-editor.ui -[type: gettext/glade]plug-ins/ui/plug-in-metadata-viewer.ui +plug-ins/ui/plug-in-metadata-editor.ui +plug-ins/ui/plug-in-metadata-viewer.ui plug-ins/gradient-flare/gradient-flare.c plug-ins/help-browser/dialog.c plug-ins/help-browser/help-browser.c diff --git a/po-python/.gitignore b/po-python/.gitignore index 8178716b61c86178feeea807c80cb9057134216f..d008ca8e1b0554f035c1b4cd794100b1bfbca4cf 100644 --- a/po-python/.gitignore +++ b/po-python/.gitignore @@ -1,7 +1,6 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache /Makefile /Makefile.in /POTFILES diff --git a/po-python/Makefile.in.in b/po-python/Makefile.in.in deleted file mode 100644 index 8cb9a50aae47e89f7d94fcb6c7d650e62ca38c8e..0000000000000000000000000000000000000000 --- a/po-python/Makefile.in.in +++ /dev/null @@ -1,229 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-python -XGETTEXT_KEYWORDS=--keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po-python -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - @if test "x$(INTLTOOL_UPDATE)" = "x/bin/true"; then \ - echo "Warning: pot generation deactivated on VPATH builds."; \ - echo " See commit c96006919."; \ - fi - $(GENPOT) - -install: install-data -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(mkdir_p) $(DESTDIR)$(itlocaledir) - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$lang.gmo as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$lang.gmo.m; then \ - $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$lang.gmo.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$lang.gmo.m as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - @if test "x$(INTLTOOL_UPDATE)" = "x/bin/true"; then \ - echo "Error: po generation deactivated on VPATH builds."; \ - echo " See commit c96006919."; \ - false; \ - fi - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po-python/Makevars b/po-python/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po-python/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po-python/POTFILES.in b/po-python/POTFILES.in index 5d04a419e6bf77e2bc9e7c3ccadff00660efa525..7ccd518f83cff467afa9660b43009a59ce88bf1e 100644 --- a/po-python/POTFILES.in +++ b/po-python/POTFILES.in @@ -1,8 +1,6 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - plug-ins/python/colorxhtml.py plug-ins/python/foggify.py plug-ins/python/gradients-save-as-css.py diff --git a/po-script-fu/.gitignore b/po-script-fu/.gitignore index 8178716b61c86178feeea807c80cb9057134216f..d008ca8e1b0554f035c1b4cd794100b1bfbca4cf 100644 --- a/po-script-fu/.gitignore +++ b/po-script-fu/.gitignore @@ -1,7 +1,6 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache /Makefile /Makefile.in /POTFILES diff --git a/po-script-fu/Makefile.in.in b/po-script-fu/Makefile.in.in deleted file mode 100644 index 2febbf8842d398cbf57654b07177afda4a78ffac..0000000000000000000000000000000000000000 --- a/po-script-fu/Makefile.in.in +++ /dev/null @@ -1,220 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-script-fu -XGETTEXT_KEYWORDS=--keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po-script-fu -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(GENPOT) - -install: install-data -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(mkdir_p) $(DESTDIR)$(itlocaledir) - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$lang.gmo as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$lang.gmo.m; then \ - $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$lang.gmo.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$lang.gmo.m as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po-script-fu/Makevars b/po-script-fu/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po-script-fu/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po-script-fu/POTFILES.in b/po-script-fu/POTFILES.in index 433cc596ec1868e504cdaad05d6880e62a7d33bb..01d76f773ad31f98908c998f74f12094a65c2a8e 100644 --- a/po-script-fu/POTFILES.in +++ b/po-script-fu/POTFILES.in @@ -1,8 +1,6 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - plug-ins/script-fu/script-fu.c plug-ins/script-fu/script-fu-console.c plug-ins/script-fu/script-fu-eval.c diff --git a/po-tags/.gitignore b/po-tags/.gitignore index ff914d5df4c06ce918bd1daeb7e431e76a417f12..cbe74eaa2d78bb89ecbd60ed29a181bf90cef254 100644 --- a/po-tags/.gitignore +++ b/po-tags/.gitignore @@ -1,4 +1,3 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache diff --git a/po-tags/Makevars b/po-tags/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po-tags/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po-tags/POTFILES.in b/po-tags/POTFILES.in index 61a1c927c53e82bc2072b9d29ecd688d6dedbee3..404a45e2b3ce997ae920f7892bc73320e1ee6be6 100644 --- a/po-tags/POTFILES.in +++ b/po-tags/POTFILES.in @@ -1,6 +1,4 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - data/tags/gimp-tags-default.xml.in diff --git a/po-tips/.gitignore b/po-tips/.gitignore index 8178716b61c86178feeea807c80cb9057134216f..d008ca8e1b0554f035c1b4cd794100b1bfbca4cf 100644 --- a/po-tips/.gitignore +++ b/po-tips/.gitignore @@ -1,7 +1,6 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache /Makefile /Makefile.in /POTFILES diff --git a/po-tips/Makefile.in.in b/po-tips/Makefile.in.in deleted file mode 100644 index 286092cf451f581293f5614292b33a24dd743174..0000000000000000000000000000000000000000 --- a/po-tips/Makefile.in.in +++ /dev/null @@ -1,188 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-tips -XGETTEXT_KEYWORDS=--keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po-tips -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(GENPOT) - -# XXX: we don't install these locale files because they are only used at -# build-time to construct gimp-tips.xml (see #6852). -install: install-data -install-data: - -# Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - -check: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po-tips/Makevars b/po-tips/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po-tips/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po-tips/POTFILES.in b/po-tips/POTFILES.in index 5a40d4310ff3b772cdfebeda7d431e3f5d94c238..c13cdf8d64d542313f04336b871568d7572fa013 100644 --- a/po-tips/POTFILES.in +++ b/po-tips/POTFILES.in @@ -1,6 +1,4 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - data/tips/gimp-tips.xml.in diff --git a/po-windows-installer/.gitignore b/po-windows-installer/.gitignore index 11dfbcd2a454e136388e2f2fba47231c29111322..d008ca8e1b0554f035c1b4cd794100b1bfbca4cf 100644 --- a/po-windows-installer/.gitignore +++ b/po-windows-installer/.gitignore @@ -1,8 +1,6 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache -/.intltool-merge-cache.lock /Makefile /Makefile.in /POTFILES diff --git a/po-windows-installer/Makefile.in.in b/po-windows-installer/Makefile.in.in deleted file mode 100644 index f106c341565bd368d4e47fca05d679bddad8a803..0000000000000000000000000000000000000000 --- a/po-windows-installer/Makefile.in.in +++ /dev/null @@ -1,234 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-windows-installer -XGETTEXT_KEYWORDS=--keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po-windows-installer -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -USE_NLS = no - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -#DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -#EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS -DISTFILES = Makefile.in.in POTFILES.in - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-$(USE_NLS) - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - @if test "x$(INTLTOOL_UPDATE)" = "x/bin/true"; then \ - echo "Warning: pot generation deactivated on VPATH builds."; \ - echo " See commit c96006919."; \ - fi - $(GENPOT) - -install: install-data -install-data: install-data-$(USE_NLS) -install-data-no: all -install-data-yes: all - $(mkdir_p) $(DESTDIR)$(itlocaledir) - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$lang.gmo as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$lang.gmo.m; then \ - $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$lang.gmo.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$lang.gmo.m as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: check-$(USE_NLS) -check-yes: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi -check-no: all - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - @if test "x$(INTLTOOL_UPDATE)" = "x/bin/true"; then \ - echo "Error: po generation deactivated on VPATH builds."; \ - echo " See commit c96006919."; \ - false; \ - fi - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po-windows-installer/Makevars b/po-windows-installer/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po-windows-installer/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po-windows-installer/POTFILES.in b/po-windows-installer/POTFILES.in index 0532c29bd1a211b412a9db66c654897035beac42..5dd8e5b61cd1ed22dc2ab66457e190eb74215485 100644 --- a/po-windows-installer/POTFILES.in +++ b/po-windows-installer/POTFILES.in @@ -1,6 +1,4 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - -[type: gettext/ini] build/windows/installer/lang/setup.isl.ini +build/windows/installer/lang/setup.isl.xml.in diff --git a/po-windows-installer/meson.build b/po-windows-installer/meson.build index 34a26b210870a24b11f264869e4fc24417da923a..abcb8ed04926978382bc95e2a12683553ea6c129 100644 --- a/po-windows-installer/meson.build +++ b/po-windows-installer/meson.build @@ -1,2 +1,2 @@ po_windows_installer_dir = meson.current_source_dir() -i18n.gettext(gettext_package + '-windows-installer', preset: 'glib') +i18n.gettext(gettext_package + '-windows-installer', preset: 'glib', install: false) diff --git a/po/.gitignore b/po/.gitignore index a9d7fbaf9c3fed5a0e5e0f69b0e17fff47f62681..346c34d97e596f3e93141b424fccff04ef8d0c7b 100644 --- a/po/.gitignore +++ b/po/.gitignore @@ -1,7 +1,6 @@ /*.gmo /*.mo /*.pot -/.intltool-merge-cache /Makefile /Makefile.in /POTFILES diff --git a/po/Makefile.in.in b/po/Makefile.in.in deleted file mode 100644 index a48e0ea0f02e961e136e1700234e595d253e7762..0000000000000000000000000000000000000000 --- a/po/Makefile.in.in +++ /dev/null @@ -1,234 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize -# -# - Modified by Rodney Dawes for use with intltool -# -# We have the following line for use by intltoolize: -# INTLTOOL_MAKEFILE - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -XGETTEXT_KEYWORDS=--keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -top_builddir = @top_builddir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -datarootdir = @datarootdir@ -libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale -subdir = po -install_sh = @install_sh@ -# Automake >= 1.8 provides @mkdir_p@. -# Until it can be supposed, use the safe fallback: -mkdir_p = $(install_sh) -d - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot - -ALL_LINGUAS = @ALL_LINGUAS@ - -PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) - -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi) - -USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) - -POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) - -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS - -POTFILES = \ -# This comment gets stripped out - -CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && gencat $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(GETTEXT_PACKAGE).pot: $(POTFILES) - @if test "x$(INTLTOOL_UPDATE)" = "x/bin/true"; then \ - echo "Warning: pot generation deactivated on VPATH builds."; \ - echo " See commit c96006919."; \ - fi - $(GENPOT) - -install: install-data -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(mkdir_p) $(DESTDIR)$(itlocaledir) - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $$dir; \ - if test -r $$lang.gmo; then \ - $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$lang.gmo as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$lang.gmo.m; then \ - $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$lang.gmo.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$lang.gmo.m as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Empty stubs to satisfy archaic automake needs -dvi info tags TAGS ID: - -# Define this as empty until I found a useful application. -install-exec installcheck: - -uninstall: - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: all $(GETTEXT_PACKAGE).pot - rm -f missing notexist - srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m - if [ -r missing -o -r notexist ]; then \ - exit 1; \ - fi - -mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - rm -f .intltool-merge-cache - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES stamp-it - rm -f *.mo *.msg *.cat *.cat.m *.gmo - # Around December of 2020, a possible change on intltool-merge or some - # other dependency in Debian testing broke the CI distcheck job, leaving - # some lock files. This CLEANFILES rule should be removed once this is - # fixed upstream. - rm -f .intltool-merge-cache.lock - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f Makefile.in.in - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - extra_dists="$(EXTRA_DISTFILES)"; \ - for file in $$extra_dists; do \ - test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ - done; \ - for file in $$dists; do \ - test -f $$file || file="$(srcdir)/$$file"; \ - ln $$file $(distdir) 2> /dev/null \ - || cp -p $$file $(distdir); \ - done - -update-po: Makefile - @if test "x$(INTLTOOL_UPDATE)" = "x/bin/true"; then \ - echo "Error: po generation deactivated on VPATH builds."; \ - echo " See commit c96006919."; \ - false; \ - fi - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - linguas="$(USE_LINGUAS)"; \ - for lang in $$linguas; do \ - echo "$$lang:"; \ - result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ - if $$result; then \ - if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.gmo failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -Makefile POTFILES: stamp-it - @if test ! -f $@; then \ - rm -f stamp-it; \ - $(MAKE) stamp-it; \ - fi - -stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 0000000000000000000000000000000000000000..16355119ff65550ec5980e565db5954cf7e17643 --- /dev/null +++ b/po/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=Q_:1g --keyword=C_:1c,2 --keyword=NC_:1c,2 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/gimp/issues + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po/POTFILES.in b/po/POTFILES.in index b310e0a72f6f752b1c17356ec1696fb759e1dc40..734290d5389fbcd1042848351dbdb8ed4d7f320a 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,8 +1,6 @@ # Files from the Gimp distribution which have already been # marked to allow runtime translation of messages -[encoding: UTF-8] - desktop/org.gimp.GIMP.appdata.xml.in.in desktop/gimp.desktop.in.in diff --git a/po/README.tools b/po/README.tools deleted file mode 100644 index d00990f949be432681b951b9c2e160d2e148e7f3..0000000000000000000000000000000000000000 --- a/po/README.tools +++ /dev/null @@ -1 +0,0 @@ -We use intltool. Try ../intltool-update --help