Migrate from intltool to gettext

intltool has long been dead upstream. Let's not poke the dead corpse,
please.

This commit is quite large, but that's mostly since trying to support a
hybrid of both gettext and intltool with both Meson and Autotools was
really hard, so I stopped trying.

Due to gettext relying on quite some things being at the exactly right
place in the autotools build (like `ABOUT-NLS` and `config.rpath`) we
really needed to cleanup the `autogen.sh` to only call `aclocal` and
`autoreconf`. No more strange magic; I tried to do it without changing
too much in the file, and things just broke. If people want to do
something more custom, they can just change the script directly. This
change also uncovered some problems in our `configure.ac`, like using
deprecated macros.

The following major changes happened:

* meson: Changed `custom_target()` to `i18n.merge_file()` for all
  supported file types
* Added `.its` and `.loc`  files for the GIMP-specific XML formats, so
  that gettext understands them
* For the `.isl` (Window installer stuff) file, there's no easy way to
  do this in gettext, so instead we start from an XML file (again with
  its own ITS rules etc), translate that with gettext, and then use
  `xsltproc` with a bit of magic to output the .isl file for each
  language
* the `po*/Makefile.in.in` files are migrated to `Makevars` files,
  which gettext natively understands.

Fixes: https://gitlab.gnome.org/GNOME/gimp/-/issues/8028
This commit is contained in:
Niels De Graef 2022-06-08 20:35:45 +02:00 committed by Jehan
parent a9f7feabd0
commit f663d26ab5
69 changed files with 1666 additions and 2771 deletions

7
.gitignore vendored
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
(test -f configure.ac) || {
echo "*** ERROR: Directory "\`$srcdir\'" does not look like the top-level project directory ***"
exit 1
}
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
}
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

View file

@ -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
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

View file

@ -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": [

View file

@ -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 \

View file

@ -1,78 +1,72 @@
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)
# First we use the XML file to be able to do gettext translation
$(isl_xml_files): $(is_xml_in_files) $(wildcard $(top_srcdir)/po-windows-installer/*.po) Makefile.am
$(AM_V_GEN) GETTEXT_DATA_DIRS=$(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 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"`; \
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/' "$$xsl" > "$$xsl.in"; \
$(XSLTPROC) --xinclude "$$xsl" $< --output "$$isl" || 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:

View file

@ -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"

View file

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:apply-templates select="gimp-ms-installer-config" />
</xsl:template>
<xsl:template match="gimp-ms-installer-config">
<xsl:apply-templates select="section" />
</xsl:template>
<xsl:template match="section">[<xsl:value-of select="@name"/>]
<xsl:apply-templates select="config" />
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="config">
<xsl:value-of select="@name"/>=<xsl:value-of select="."/>
<xsl:apply-templates select="@LANG_CHECK@" />
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="config">
<xsl:choose>
<xsl:when test="@LANG_CHECK@">
<xsl:value-of select="@name"/>=<xsl:apply-templates select="@LANG_CHECK@" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@name"/>=<xsl:apply-templates select="value[not(xml:lang)]" />
</xsl:otherwise>
</xsl:choose>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
</xsl:stylesheet>

View file

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0">
<its:translateRule selector="/gimp-ms-installer-config" translate="no"/>
<its:translateRule selector="//value" translate="yes"/>
</its:rules>

View file

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<locatingRules>
<locatingRule name="GimpMsInstallerConfig" pattern="*.xml">
<documentRule localName="gimp-ms-installer-config" target="gimp-ms-installer-config.its"/>
</locatingRule>
</locatingRules>

View file

@ -1,25 +1,11 @@
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: true,
install_dir: gimpdatadir / 'tags',
)
languages = [
@ -65,20 +51,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
all_isl += custom_target(islfile,
input : isl_input,
output: islfile,
command: [ extractlang, lang_prefix, '@INPUT@' ],
capture: true,
gimp_ms_installer_lang_xsl = configure_file(
input: 'gimp-ms-installer-config.xsl.in',
output: '@BASENAME@',
configuration: { 'LANG_CHECK': lang_check },
)
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

View file

@ -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?

View file

@ -0,0 +1,326 @@
<?xml version='1.0' encoding='UTF-8'?>
<gimp-ms-installer-config>
<section name="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 -->
<config name="WizardInfoBefore">
<value>License Agreement</value>
</config>
<config name="AboutSetupNote">
<value>Setup built by Jernej Simonèiè, jernej-gimp@ena.si</value>
</config>
<config name="WinVersionTooLowError">
<value>This version of GIMP requires Windows 7, or a newer version of Windows.</value>
</config>
<config name="WindowsVersionNotSupported">
<value>This version of GIMP requires Windows 7, or a newer version of Windows.</value>
</config>
</section>
<section name="CustomMessages">
<!-- Shown before the wizard starts on development versions of GIMP -->
<config name="DevelopmentWarningTitle">
<value>Development version</value>
</config>
<!-- Shown before the wizard starts on development versions of GIMP -->
<config name="DevelopmentWarning">
<value>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?</value>
</config>
<config name="DevelopmentButtonContinue">
<value>&amp;Continue</value>
</config>
<config name="DevelopmentButtonExit">
<value>Exit</value>
</config>
<!--
<config name="XPSP3Recommended">
<value>Warning: you are running an unsupported version of Windows. Please update to at least Windows XP with Service Pack 3 before reporting any problems.</value>
</config>
-->
<config name="SSERequired">
<value>This version of GIMP requires a processor that supports SSE instructions.</value>
</config>
<config name="Require32BPPTitle">
<value>Display settings problem</value>
</config>
<config name="Require32BPP">
<value>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.</value>
</config>
<config name="Require32BPPContinue">
<value>&amp;Continue</value>
</config>
<config name="Require32BPPExit">
<value>E&amp;xit</value>
</config>
<config name="InstallOrCustomize">
<value>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.</value>
</config>
<config name="Install">
<value>&amp;Install</value>
</config>
<config name="Customize">
<value>&amp;Customize</value>
</config>
<!-- Setup types -->
<config name="TypeCompact">
<value>Compact installation</value>
</config>
<!-- Setup types -->
<config name="TypeCustom">
<value>Custom installation</value>
</config>
<!-- Setup types -->
<config name="TypeFull">
<value>Full installation</value>
</config>
<!-- Text above component description -->
<config name="ComponentsDescription">
<value>Description</value>
</config>
<!-- Components -->
<config name="ComponentsGimp">
<value>GIMP</value>
</config>
<!-- Components -->
<config name="ComponentsGimpDescription">
<value>GIMP and all default plug-ins</value>
</config>
<!-- Components -->
<config name="ComponentsDeps">
<value>Run-time libraries</value>
</config>
<!-- Components -->
<config name="ComponentsDepsDescription">
<value>Run-time libraries used by GIMP, including GTK+ Run-time Environment</value>
</config>
<!-- Components -->
<config name="ComponentsDebug">
<value>Debug symbols</value>
</config>
<!-- Components -->
<config name="ComponentsDebugDescription">
<value>Include information to help with debugging GIMP</value>
</config>
<!-- Components -->
<config name="ComponentsGtkWimp">
<value>MS-Windows engine for GTK+</value>
</config>
<!-- Components -->
<config name="ComponentsGtkWimpDescription">
<value>Native Windows look for GIMP</value>
</config>
<!-- Components -->
<config name="ComponentsCompat">
<value>Support for old plug-ins</value>
</config>
<!-- Components -->
<config name="ComponentsCompatDescription">
<value>Install libraries needed by old third-party plug-ins</value>
</config>
<!-- Components -->
<config name="ComponentsTranslations">
<value>Translations</value>
</config>
<!-- Components -->
<config name="ComponentsTranslationsDescription">
<value>Translations</value>
</config>
<!-- Components -->
<config name="ComponentsPython">
<value>Python scripting</value>
</config>
<!-- Components -->
<config name="ComponentsPythonDescription">
<value>Allows you to use GIMP plugins written in Python scripting language.</value>
</config>
<!-- Components -->
<config name="ComponentsLua">
<value>Lua scripting</value>
</config>
<!-- Components -->
<config name="ComponentsLuaDescription">
<value>Allows you to use GIMP plugins written in Lua scripting language.</value>
</config>
<!-- Components -->
<config name="ComponentsMyPaint">
<value>MyPaint brushes</value>
</config>
<!-- Components -->
<config name="ComponentsMyPaintDescription">
<value>Install the default set of MyPaint brushes</value>
</config>
<!-- Components -->
<config name="ComponentsGhostscript">
<value>PostScript support</value>
</config>
<!-- Components -->
<config name="ComponentsGhostscriptDescription">
<value>Allow GIMP to load PostScript files</value>
</config>
<!-- Components, only when installing on x64 Windows -->
<config name="ComponentsGimp32">
<value>Support for 32-bit plug-ins</value>
</config>
<!-- Compoments, only when installing on x64 Windows -->
<config name="ComponentsGimp32Description">
<value>Include files necessary for using 32-bit plug-ins.%nRequired for Python support.</value>
</config>
<!-- Additional installation tasks -->
<config name="AdditionalIcons">
<value>Additional icons:</value>
</config>
<!-- Additional installation tasks -->
<config name="AdditionalIconsDesktop">
<value>Create a &amp;desktop icon</value>
</config>
<!-- Additional installation tasks -->
<config name="AdditionalIconsQuickLaunch">
<value>Create a &amp;Quick Launch icon</value>
</config>
<config name="RemoveOldGIMP">
<value>Remove previous GIMP version</value>
</config>
<!-- %1 is replaced by file name; this message should never appear (unless user runs out of disk space at the exact right moment) -->
<config name="ErrorChangingEnviron">
<value>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.</value>
</config>
<!-- This message should never appear (unless user runs out of disk space at the exact right moment) -->
<config name="ErrorExtractingTemp">
<value>Error extracting temporary data.</value>
</config>
<!-- This message should never appear (unless user runs out of disk space at the exact right moment) -->
<config name="ErrorUpdatingPython">
<value>Error updating Python interpreter info.</value>
</config>
<!-- This message should never appear (unless user runs out of disk space at the exact right moment) -->
<config name="ErrorUpdatingMyPaint">
<value>Error updating MyPaint brushes info.</value>
</config>
<!-- %1 is replaced by file name; this message should never appear (unless user runs out of disk space at the exact right moment) -->
<config name="ErrorReadingGimpRC">
<value>There was an error updating %1.</value>
</config>
<!-- %1 is replaced by file name; this message should never appear (unless user runs out of disk space at the exact right moment) -->
<config name="ErrorUpdatingGimpRC">
<value>There was an error updating GIMP's configuration file %1.</value>
</config>
<!-- Displayed in Explorer's right-click menu -->
<config name="OpenWithGimp">
<value>Edit with GIMP</value>
</config>
<!-- File associations page -->
<config name="SelectAssociationsCaption">
<value>Select file associations</value>
</config>
<!-- File associations page -->
<config name="SelectAssociationsExtensions">
<value>Extensions:</value>
</config>
<!-- File associations page -->
<config name="SelectAssociationsInfo1">
<value>Select the file types you wish to associate with GIMP</value>
</config>
<!-- File associations page -->
<config name="SelectAssociationsInfo2">
<value>This will make selected files open in GIMP when you double-click them in Explorer.</value>
</config>
<!-- File associations page -->
<config name="SelectAssociationsSelectAll">
<value>Select &amp;All</value>
</config>
<!-- File associations page -->
<config name="SelectAssociationsUnselectAll">
<value>Unselect &amp;All</value>
</config>
<!-- File associations page -->
<config name="SelectAssociationsSelectUnused">
<value>Select &amp;Unused</value>
</config>
<!-- Shown on summary screen just before starting the install -->
<config name="ReadyMemoAssociations">
<value>File types to associate with GIMP:</value>
</config>
<config name="RemovingOldVersion">
<value>Removing previous version of GIMP:</value>
</config>
<!-- %1 = version, %2 = installation directory; ran uninstaller, but it returned an error, or didn't remove everything -->
<config name="RemovingOldVersionFailed">
<value>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.</value>
</config>
<!-- %1 = version, %2 = installation directory; couldn't find an uninstaller, or found several uninstallers -->
<config name="RemovingOldVersionCantUninstall">
<value>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.</value>
</config>
<config name="RebootRequiredFirst">
<value>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.</value>
</config>
<!-- Displayed if restart settings couldn't be read, or if the setup couldn't re-run itself -->
<config name="ErrorRestartingSetup">
<value>There was an error restarting the Setup. (%1)</value>
</config>
<config name="RemovingOldFiles">
<value>Cleaning up old files...</value>
</config>
<!-- Displayed while the files are being extracted; note the capitalisation! -->
<config name="Billboard1">
<value>Remember: GIMP is Free Software.%n%nPlease visit</value>
</config>
<!-- www.gimp.org (displayed between Billboard1 and Billboard2) -->
<config name="Billboard2">
<value>for free updates.</value>
</config>
<config name="SettingUpAssociations">
<value>Setting up file associations...</value>
</config>
<config name="SettingUpPyGimp">
<value>Setting up environment for GIMP Python extension...</value>
</config>
<config name="SettingUpMyPaint">
<value>Setting up MyPaint brushes...</value>
</config>
<config name="SettingUpEnvironment">
<value>Setting up GIMP environment...</value>
</config>
<config name="SettingUpGimpRC">
<value>Setting up GIMP configuration for 32-bit plug-in support...</value>
</config>
<!-- Displayed on last page -->
<config name="LaunchGimp">
<value>Launch GIMP</value>
</config>
<!-- Shown during uninstall when removing add-ons -->
<config name="UninstallingAddOnCaption">
<value>Removing add-on</value>
</config>
<config name="InternalError">
<value>Internal error (%1).</value>
</config>
<!-- Used by installer for add-ons (currently only help) -->
<config name="DirNotGimp">
<value>GIMP does not appear to be installed in the selected directory. Continue anyway?</value>
</config>
</section>
</gimp-ms-installer-config>

View file

@ -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:

View file

@ -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:

View file

@ -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) GETTEXT_DATA_DIRS=$(abs_srcdir) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po-tags -o $@
validate: gimp-tags-default.xml

View file

@ -8,15 +8,15 @@
<tags>
<resource identifier="${gimp_data_dir}/brushes/Round.vbr" checksum="a7f02530d3bc7484c8f9240cbe9c65b1">
<tag>
<_thetag>round</_thetag>
<thetag>round</thetag>
</tag>
</resource>
<resource identifier="${gimp_data_dir}/brushes/Round-Fuzzy.vbr" checksum="f8cb2466841104a55e42afce4568d103">
<tag>
<!-- fuzzy as in a feathered, blurred, unfocused, soft brush -->
<_thetag>fuzzy</_thetag>
<_thetag>round</_thetag>
<thetag>fuzzy</thetag>
<thetag>round</thetag>
</tag>
</resource>
</tags>

View file

@ -0,0 +1,5 @@
<?xml version="1.0"?>
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
<its:translateRule selector="/tags" translate="no"/>
<its:translateRule selector="//thetag" translate="yes"/>
</its:rules>

View file

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<locatingRules>
<locatingRule name="GimpTags" pattern="*.xml">
<documentRule localName="tags" target="gimp-tags.its"/>
</locatingRule>
</locatingRules>

View file

@ -1,19 +1,15 @@
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',
install_data([
'its/gimp-tags.its',
'its/gimp-tags.loc',
],
install_dir: get_option('datadir') / 'gettext' / 'its',
)
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',
)

View file

@ -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) GETTEXT_DATA_DIRS=$(abs_srcdir) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po-tips -o $@
validate: gimp-tips.xml

View file

@ -15,63 +15,63 @@
<!-- -->
<tip level="beginner">
<_thetip>
<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>
</thetip>
</tip>
<tip level="beginner" help="gimp-layer-dialog">
<_thetip>
<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>
</thetip>
</tip>
<tip level="beginner" help="gimp-layer-menu">
<_thetip>
<thetip>
You can perform many layer operations by right-clicking on the text
label of a layer in the Layers dialog.
</_thetip>
</thetip>
</tip>
<tip level="beginner" help="gimp-file-save">
<_thetip>
<thetip>
Saving an image uses XCF, GIMP's native file format (file extension
<tt>.xcf</tt>). 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>
</thetip>
</tip>
<tip level="beginner" help="gimp-image-flatten">
<_thetip>
<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>
</thetip>
</tip>
<tip level="beginner" help="gimp-layer-alpha-add">
<_thetip>
<thetip>
If a layer's name in the Layers dialog is displayed in <b>bold</b>,
this layer doesn't have an alpha-channel. You can add an alpha-channel
using Layer→Transparency→Add Alpha Channel.
</_thetip>
</thetip>
</tip>
<tip level="beginner">
<_thetip>
<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>
</thetip>
</tip>
<tip level="beginner">
<_thetip>
<thetip>
You can adjust or move a selection by using <tt>Alt</tt>-drag.
If this makes the window move, your window manager uses the
<tt>Alt</tt> key already. Most window managers can be
configured to ignore the <tt>Alt</tt> key or to use
the <tt>Super</tt> key (or "Windows logo") instead.
</_thetip>
</thetip>
</tip>
<!-- -->
@ -79,91 +79,91 @@
<!-- -->
<tip level="intermediate">
<_thetip>
<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>
</thetip>
</tip>
<tip level="intermediate">
<_thetip>
<thetip>
You can use the middle mouse button to pan around the image
(or optionally hold <tt>Spacebar</tt> while you move the mouse).
</_thetip>
</thetip>
</tip>
<tip level="intermediate" help="gimp-concepts-image-grid">
<_thetip>
<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>
</thetip>
</tip>
<tip level="intermediate" help="gimp-file-new">
<_thetip>
<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>
</thetip>
</tip>
<tip level="intermediate">
<_thetip>
<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
&quot;New Layer&quot; or the &quot;Anchor Layer&quot; button in the
Layers dialog, or use the menus to do the same.
</_thetip>
</thetip>
</tip>
<tip level="intermediate">
<_thetip>
<thetip>
GIMP supports gzip compression on the fly. Just add <tt>.gz</tt>
(or <tt>.bz2</tt>, if you have bzip2 installed) to the filename and
your image will be saved compressed. Of course loading compressed
images works too.
</_thetip>
</thetip>
</tip>
<tip level="intermediate">
<_thetip>
<thetip>
Pressing and holding the <tt>Shift</tt> key before making a selection
allows you to add to the current selection instead of replacing it.
Using <tt>Ctrl</tt> before making a selection subtracts from the
current one.
</_thetip>
</thetip>
</tip>
<tip level="intermediate" help="gimp-selection-stroke">
<_thetip>
<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>
</thetip>
</tip>
<tip level="intermediate" help="gimp-path-stroke">
<_thetip>
<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>
</thetip>
</tip>
<tip level="intermediate" help="gimp-using-paths">
<_thetip>
<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>
</thetip>
</tip>
<tip level="intermediate" help="gimp-using-quickmask">
<_thetip>
<thetip>
You can use the paint tools to change the selection. Click on the
&quot;Quick Mask&quot; 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>
</thetip>
</tip>
<tip level="intermediate" help="gimp-channel-dialog">
<_thetip>
<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.
</_thetip>
</thetip>
</tip>
<!-- -->
@ -172,7 +172,7 @@
<!-- -->
<tip level="advanced">
<_thetip>
<thetip>
After you enabled &quot;Dynamic Keyboard Shortcuts&quot; 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 &quot;Dynamic Keyboard Shortcuts&quot;
afterwards, to prevent accidentally assigning/reassigning shortcuts.
</_thetip>
</thetip>
</tip>
<tip level="advanced">
<_thetip>
<thetip>
If your screen is too cluttered, you can press <tt>Tab</tt>
in an image window to toggle the visibility of the toolbox
and other dialogs.
</_thetip>
</thetip>
</tip>
<tip level="advanced">
<_thetip>
<thetip>
<tt>Shift</tt>-click on the eye icon in the Layers dialog to hide all
layers but that one. <tt>Shift</tt>-click again to show all layers.
</_thetip>
</thetip>
</tip>
<tip level="advanced">
<_thetip>
<thetip>
<tt>Ctrl</tt>-clicking on the layer mask's preview in the Layers dialog
toggles the effect of the layer mask. <tt>Alt</tt>-clicking on the layer
mask's preview in the Layers dialog toggles viewing the mask directly.
</_thetip>
</thetip>
</tip>
<tip level="advanced">
<_thetip>
<thetip>
You can use <tt>Ctrl</tt>-<tt>Tab</tt> to cycle through all layers in
an image (if your window manager doesn't trap those keys...).
</_thetip>
</thetip>
</tip>
<tip level="advanced" help="gimp-tool-bucket-fill">
<_thetip>
<thetip>
<tt>Ctrl</tt>-click with the Bucket Fill tool to have it use
the background color instead of the foreground color.
Similarly, <tt>Ctrl</tt>-clicking with the eyedropper tool
sets the background color instead of the foreground color.
</_thetip>
</thetip>
</tip>
<tip level="advanced" help="gimp-tools-transform">
<_thetip>
<thetip>
<tt>Ctrl</tt>-drag with the Rotate tool will constrain the
rotation to 15 degree angles.
</_thetip>
</thetip>
</tip>
<tip level="advanced">
<_thetip>
<thetip>
If some of your scanned photos do not look colorful enough, you
can easily improve their tonal range with the &quot;Auto&quot;
button in the Levels tool (Colors→Levels). If there are any
color casts, you can correct them with the Curves tool
(Colors→Curves).
</_thetip>
</thetip>
</tip>
</gimp-tips>

View file

@ -0,0 +1,5 @@
<?xml version="1.0"?>
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
<its:translateRule selector="/gimp-tips" translate="no"/>
<its:translateRule selector="//thetip" translate="yes"/>
</its:rules>

View file

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<locatingRules>
<locatingRule name="GimpTips" pattern="*.xml">
<documentRule localName="gimp-tips" target="gimp-tips.its"/>
</locatingRule>
</locatingRules>

View file

@ -1,19 +1,15 @@
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',
install_data([
'its/gimp-tips.its',
'its/gimp-tips.loc',
],
install_dir: get_option('datadir') / 'gettext' / 'its',
)
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 +34,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

View file

@ -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`; \

View file

@ -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

View file

@ -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',
)

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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

View file

@ -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',
],
po_dir: po_plug_ins_dir,
install: true,
install_dir: gimpplugindir / 'extensions' / extension_name,
)

View file

@ -2,10 +2,10 @@
<component type="addon">
<id>org.gimp.extension.goat-exercises</id>
<extends>org.gimp.GIMP</extends>
<_name>Goat Exercises</_name>
<_summary>Official Demo Plug-ins</_summary>
<name>Goat Exercises</name>
<summary>Official Demo Plug-ins</summary>
<description>
<_p>
<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.
</_p>
</p>
</description>
<url type="homepage">https://gimp.org</url>
<metadata_license>CC0-1.0</metadata_license>

1
m4macros/.gitignore vendored
View file

@ -1,7 +1,6 @@
Makefile
Makefile.in
gtk-doc.m4
intltool.m4
libtool.m4
lt~obsolete.m4
ltoptions.m4

View file

@ -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)

View file

@ -1,7 +1,6 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache
/Makefile
/Makefile.in
/POTFILES

View file

@ -1,220 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# 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 <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey@novell.com> 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:

78
po-libgimp/Makevars Normal file
View file

@ -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

View file

@ -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

View file

@ -1,7 +1,6 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache
/Makefile
/Makefile.in
/POTFILES

View file

@ -1,225 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# 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 <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey@novell.com> 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:

78
po-plug-ins/Makevars Normal file
View file

@ -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

View file

@ -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

View file

@ -1,7 +1,6 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache
/Makefile
/Makefile.in
/POTFILES

View file

@ -1,229 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# 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 <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey@novell.com> 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:

78
po-python/Makevars Normal file
View file

@ -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

View file

@ -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

View file

@ -1,7 +1,6 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache
/Makefile
/Makefile.in
/POTFILES

View file

@ -1,220 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# 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 <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey@novell.com> 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:

78
po-script-fu/Makevars Normal file
View file

@ -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

View file

@ -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

1
po-tags/.gitignore vendored
View file

@ -1,4 +1,3 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache

78
po-tags/Makevars Normal file
View file

@ -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

View file

@ -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

1
po-tips/.gitignore vendored
View file

@ -1,7 +1,6 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache
/Makefile
/Makefile.in
/POTFILES

View file

@ -1,188 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# 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 <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey@novell.com> 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:

78
po-tips/Makevars Normal file
View file

@ -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

View file

@ -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

View file

@ -1,8 +1,6 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache
/.intltool-merge-cache.lock
/Makefile
/Makefile.in
/POTFILES

View file

@ -1,234 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# 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 <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey@novell.com> 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:

View file

@ -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

View file

@ -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

1
po/.gitignore vendored
View file

@ -1,7 +1,6 @@
/*.gmo
/*.mo
/*.pot
/.intltool-merge-cache
/Makefile
/Makefile.in
/POTFILES

View file

@ -1,234 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# 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 <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey@novell.com> 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:

78
po/Makevars Normal file
View file

@ -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

View file

@ -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

View file

@ -1 +0,0 @@
We use intltool. Try ../intltool-update --help