Accepting request 150659 from GNOME:Apps

- Add gimp-help-2.8.0-missing-po-files.patch: Add missing .po files
  to the source directory. Fixes build on Factory.
- Drop Makefile.GNU and use upstream shipped build system, as this
  works again.
- Unset MALLOC_CHECK_ and MALLOC_PERTURB_ to avoid some crashes
  (hack only.. no fix yet).
- Add new sub packages for new languages that apeared due to using
  the upstream / maintained makefile: ca, el, en_GB, fi, hr, lt and
  sl. (forwarded request 150639 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/150659
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gimp-help?expand=0&rev=23
This commit is contained in:
Stephan Kulow 2013-02-02 17:51:52 +00:00 committed by Git OBS Bridge
parent 04906e3c37
commit 93b66dc131
5 changed files with 2016 additions and 1002 deletions

View File

@ -1,926 +0,0 @@
########################################################################
#### Configuration (system-dependent) variables ####
########################################################################
CYGWIN = $(shell make.d/test/is_cygwin.sh || echo 0)
########################################################################
#### The GIMP manual languages ####
########################################################################
ALL_LINGUAS = da de en es fr it ja ko nl nn pl ru sv zh_CN
LANGUAGES = $(if $(LINGUAS),$(filter $(ALL_LINGUAS),$(LINGUAS)),$(ALL_LINGUAS))
ifneq ($(DOC_LINGUAS),)
$(warning Do not set the internal variable DOC_LINGUAS)
endif
DOC_LINGUAS = $(LINGUAS)
ifneq ($(XML_LANG),)
$(error You must not set the internal variable XML_LANG)
endif
ifneq ($(PO_LANGS),)
$(error You must not set the internal variable PO_LANGS)
endif
XML_LANG = en
PO_LANGS = $(filter-out $(XML_LANG), $(LANGUAGES))
########################################################################
#### External programs ####
########################################################################
XSLTPROC = xsltproc
XSLTFLAGS = --nonet
XMLLINT = xmllint
XMLLINTFLAGS = --nonet
XML2PO = tools/xml2po.py
XML2POFLAGS = --mode=gimphelp
MSGWIDTH = 79
MSGUNIQ = msguniq
MSGUNIQFLAGS =
MSGCAT = msgcat
MSGCATFLAGS = --width=$(MSGWIDTH)
MSGINIT = msginit
MSGINITFLAGS = --no-translator --width=$(MSGWIDTH)
MSGFMT = msgfmt
MSGFMTFLAGS = --check --use-fuzzy --statistics
MSGMERGE = msgmerge
MSGMERGEFLAGS = --quiet --width=$(MSGWIDTH)
DBLATEX = dblatex
DBLATEXFLAGS = --verbose
DOCBOOK2ODF = docbook2odf
DOCBOOK2ODFFLAGS =
SED = sed
# Standard shell commands
echo_n = echo -n
mkdir_p = mkdir -p
ln_s = ln -s
find_l = find -L
# Calling make recursively
RMAKE = $(MAKE) -f Makefile.GNU --no-print-directory
# Local (gimp-help-specific) tools
MAKE_IMAGE_LINKS = make.d/make_image_links.pl
MAKE_IMAGE_LINKS_FLAGS = -v
ifeq ($(CYGWIN),1)
MAKE_IMAGE_LINKS_FLAGS += --mode=hardlink,copy
endif
# FIXME/TODO:
# make it work with srcdir != builddir
# Directories
srcdir = .
builddir = .
abs_srcdir := $(shell cd $(srcdir) && pwd)
abs_builddir := $(shell pwd)
########################################################################
#### Files and directories ####
########################################################################
src_file_predicates = \
-name '*.xml' \
-not -name '$(notdir $(AUTHORS_DOCBOOK_XML))'
src_dir_predicates = -name images -prune -o -type d -print
pot_file_predicates = -type f
po_file_predicates = -type f -not -name "$(COMPENDIUM)"
xml_file_predicates = -name '*.xml'
# List of authors and contributors (no DocBook)
AUTHORS_SOURCE_XML = stylesheets/authors.xml
# Automatically generated authors section (DocBook)
AUTHORS_DOCBOOK_XML = src/preface/authors.xml
AUTHORS_DOCBOOK_DIRNAME = $(dir $(AUTHORS_DOCBOOK_XML))
AUTHORS_DOCBOOK_FILENAME = $(notdir $(AUTHORS_DOCBOOK_XML))
# Stylesheets generating AUTHORS
AUTHORS_TEXT_STYLESHEETS = \
stylesheets/authors_text.xsl \
stylesheets/authors_common.xsl
# Stylesheets generating src/preface/authors.xml
AUTHORS_DOCBOOK_STYLESHEETS = \
stylesheets/authors_docbook.xsl \
stylesheets/authors_common.xsl
# Stylesheet generating MAINTAINERS
DOAP_STYLESHEET = stylesheets/doap2text.xsl
# Targets which don't require source file list
QUICK_TARGETS = help clean dot image-% AUTHORS MAINTAINERS
# Files & directories
ifeq ($(filter $(QUICK_TARGETS),$(MAKECMDGOALS)),)
SRC_DIRS := $(shell cd $(srcdir) && $(find_l) src/ $(src_dir_predicates))
SRC_FILES := $(shell cd $(srcdir) && $(find_l) src/ $(src_file_predicates)) \
$(AUTHORS_DOCBOOK_XML)
else
SRC_DIRS = $(shell cd $(srcdir) && $(find_l) src/ $(src_dir_predicates))
SRC_FILES = $(shell cd $(srcdir) && $(find_l) src/ $(src_file_predicates)) \
$(AUTHORS_DOCBOOK_XML)
endif
# TODO
#HTML_STYLESHEETS = stylesheets/html*.xsl
HTML_STYLESHEETS = stylesheets/plainhtml.xsl stylesheets/htmlalternate.xsl
# This variable is used by "msgmerge";
# use empty variable to disable the compendium option
COMPENDIUM = Compendium.po
########################################################################
#### Control the amount of output messages ####
########################################################################
# Usage of the "msg" and "cmd" variables:
# In the command lines of the make rules, use
# $(msg) bla bla bla instead of @echo bla bla bla
# $(cmd) command args instead of @command args (or command args)
# then
# messages will be suppressed if VERBOSE=0,
# commands will be printed if VERBOSE=2.
VERBOSE = 1
ifeq ($(VERBOSE),0)
msg = @:
cmd = @
else
ifeq ($(VERBOSE),1)
msg = @echo
cmd = @
else
msg = @echo
cmd =
endif
endif
########################################################################
#### Functions ####
########################################################################
#--------------------------------------------------------------#
# The main functions used to transform #
# (a) XML files to POT files #
# (b) POT files to PO files #
# (c) XML and PO files to XML files #
#--------------------------------------------------------------#
# Create a PO-template (POT)
#
# Usage:
# $(call xml2pot,xml-files,pot-file)
# Parameters:
# $1 - input: original (untranslated) XML files
# and other prerequisites, e.g. images or "FORCE"
# $2 - output: POT template file containing translatable tags
xml2pot = $(XML2PO) $(XML2POFLAGS) --output='-' $(filter %.xml,$(1)) \
| $(MSGUNIQ) $(MSGUNIQFLAGS) \
| $(MSGCAT) $(MSGCATFLAGS) - > "$(2)"; \
test -s "$(2)" || rm -f "$(2)"; \
touch -c -r $(call get_recent_file,$(1)) "$(2)" || true; \
test -s "$(2)"
# Merge template (pot) and message catalog (po) or create a new catalog
#
# Usage:
# $(call pot2po,pot-file,language,po-file)
# Parameters:
# $1 - input POT file
# $2 - translation language
# $3 - output PO file
pot2po = with_compendium="$(shell $(call get_compendium,$3)) \
$(shell $(call use_gimp_po_files,$2))"; \
tmpfile=$(3).tmp; \
if [ -s $(3) ]; then \
$(MSGMERGE) $(MSGMERGEFLAGS) $${with_compendium} \
--output-file $${tmpfile} $(3) $(1); \
else \
$(MSGINIT) $(MSGINITFLAGS) --input $(1) --locale=$(2) --output=$(3); \
pofile=$(3); \
if [ -s $${pofile%/*}.po ]; then \
$(MSGMERGE) $(MSGMERGEFLAGS) $${with_compendium} \
--output-file $${tmpfile} $${pofile%/*}.po $(3); \
elif [ -n "$${with_compendium}" ]; then \
$(MSGMERGE) $(MSGMERGEFLAGS) $${with_compendium} \
--output-file $${tmpfile} $(3) $(1); \
else \
$(SED) -e '/Plural-Forms:/d' $(3) > $${tmpfile}; \
fi; \
fi; \
test -s $${tmpfile} && mv -f $${tmpfile} $(3) || rm -f $${tmpfile}; \
test -s $(3) && $(MSGFMT) $(MSGFMTFLAGS) $(3) || exit 70; \
rm -f messages.mo messages.gmo
# Merge PO file into (translated) XML file
#
# Usage:
# $(call po2xml,en-xml-file,po-file,language,translated-xml-file)
# Parameters:
# $1 - original (untranslated) XML file
# $2 - PO file containing translations
# $3 - translation language
# $4 - resulting (translated) XML file
ifneq ($(FORMAT_XML_WITH_XMLLINT),1)
po2xml = $(XML2PO) $(XML2POFLAGS) --po-file=$(2) --language=$(3) --output=$(4) $(1); \
rm -f .xml2po.mo
else
po2xml = ($(XML2PO) $(XML2POFLAGS) --po-file=$(2) --language=$(3) --output='-' $(1) \
| $(XMLLINT) $(XMLLINTFLAGS) --format --output $(4) -); \
rm -f .xml2po.mo
endif
#--------------------------------------------------------------#
# Helper functions #
#--------------------------------------------------------------#
make_target_dir = f=$(1); d=$${f%/*}; test -d $$d || $(mkdir_p) $$d
get_recent_file = $(shell ls -t $(1) | head -n 1)
copy = $(ln_s) $(abs_srcdir)/$(1) $(2)
ifneq ($(COMPENDIUM),)
get_compendium = \
file="$(1)"; dir=$${file%/*}; \
while true; do \
if test -f $${dir}/$(COMPENDIUM); then \
opt="$${opt} --compendium=$${dir}/$(COMPENDIUM)"; \
fi; \
case "$${dir}" in \
po|*/po) break;; \
*/*) dir="$${dir%/*}";; \
*) break;; \
esac; \
done; \
if test -n "$${opt}"; then echo $${opt}; fi
else
get_compendium =
endif
ifneq ($(GIMP_PO_ROOT),)
use_gimp_po_files = \
for po in $(GIMP_PO_ROOT)/po*/$(1).po; do \
if test -f "$${po}"; then echo '--compendium'="$${po}"; fi; \
done
else
use_gimp_po_files =
endif
########################################################################
#### Main targets ####
########################################################################
.PHONY: all
all: html index AUTHORS MAINTAINERS
########################################################################
#### Help!!! ####
########################################################################
.PHONY: help
make.help:
@echo >&2 'ERROR: cannot find the help file "$@"!'
@exit 66
# TODO?: replace with a "real" script (e.g. tools/make-help.sed)
# (probably "yes" if more features are needed...)
help: make.help
@$(SED) \
-e '### skip comments ###' \
-e '/^#/d' \
-e '### print if no "make" variable found ###' \
-e '/@/!b' \
-e '### replace "make" variables ###' \
-e 's/@LANGUAGES@/@$(strip $(LANGUAGES))@/' \
-e 's/@LINGUAS@/@$(strip $(LINGUAS))@/' \
-e 's/@ALL_LINGUAS@/@$(strip $(ALL_LINGUAS))@/' \
-e '### add commas ###' \
-e 'tloop' \
-e ':loop' \
-e ' ### mark value of variable (@@...@@) ###' \
-e ' s/@\([^@]*\)@/@@\1@@/' \
-e ' twhile' \
-e ' :while' \
-e ' s/\(@@[^,@]*\) \([^@]*@@\)/\1, \2/' \
-e ' twhile' \
-e ' s/@@\([^@]*\)@@/\1/' \
-e 'tloop' \
$<
########################################################################
#### Make AUTHORS and MAINTAINERS file ####
########################################################################
AUTHORS: $(AUTHORS_SOURCE_XML) $(AUTHORS_TEXT_STYLESHEETS)
$(msg) "[DOC] $@"
$(cmd) $(XSLTPROC) \
$(XSLTFLAGS) $(XSLTEXTRAFLAGS) \
$(srcdir)/stylesheets/authors_text.xsl \
$< \
> $@
$(AUTHORS_DOCBOOK_XML): $(AUTHORS_SOURCE_XML) $(AUTHORS_DOCBOOK_STYLESHEETS)
$(msg) "[SRC] $@"
$(cmd) $(call make_target_dir,$@)
$(cmd) $(XSLTPROC) \
$(XSLTFLAGS) $(XSLTEXTRAFLAGS) \
$(srcdir)/stylesheets/authors_docbook.xsl \
$< \
> $@
MAINTAINERS: gimp-help-2.doap $(DOAP_STYLESHEET)
$(msg) "[DOC] $@"
$(cmd) $(XSLTPROC) --output $@ $(XSLTFLAGS) $(XSLTEXTRAFLAGS) \
$(DOAP_STYLESHEET) $<
########################################################################
#### Make pot files: XML(en) --> POT ####
########################################################################
# src/path/to/file/*.xml --> pot/path/to/file.pot
POT_FILES = $(patsubst src/%,pot/%.pot,$(filter-out src src/,$(SRC_DIRS)))
# Special case: src/*.xml --> pot/gimp.pot
POT_FILES += pot/gimp.pot
# XXX: Secondary Expansion of the following two rules is required because
# "pot/%.pot: $(srcdir)/src/%/*.xml" didn't work with make v3.82
# (cf. bug #637505).
.SECONDEXPANSION:
# General case
ifeq ($(filter pot/%.pot po/%.po,$(MAKECMDGOALS)),)
pot/%.pot: src/$$*/*.xml $$(wildcard images/C/$$*/*.*)
else
pot/%.pot: src/$$*/*.xml FORCE
endif
$(cmd) $(call make_target_dir,$@)
$(msg) "[POT] $@"
$(cmd) $(call xml2pot,$^,$@)
# Special case: rename pot file for toplevel xml files
ifeq ($(filter pot/%.pot po/%.po,$(MAKECMDGOALS)),)
pot/gimp.pot: src/*.xml $(wildcard images/C/*.*)
else
pot/gimp.pot: src/*.xml FORCE
endif
$(cmd) $(call make_target_dir,$@)
$(msg) "[POT] $@"
$(cmd) $(call xml2pot,$^,$@)
# Special case: pot file for the authors DocBook file
# requires an additional prerequisite
AUTHORS_POT = $(AUTHORS_DOCBOOK_XML:src/%/$(AUTHORS_DOCBOOK_FILENAME)=pot/%.pot)
ifeq ($(filter pot/%.pot po/%.po,$(MAKECMDGOALS)),)
# TODO: add images to prerequisites if necessary
$(AUTHORS_POT): $(AUTHORS_DOCBOOK_XML) $(wildcard $(AUTHORS_DOCBOOK_DIRNAME)*.xml)
else
$(AUTHORS_POT): $(AUTHORS_DOCBOOK_XML) $(wildcard $(AUTHORS_DOCBOOK_DIRNAME)*.xml) FORCE
endif
$(cmd) $(call make_target_dir,$@)
$(msg) "[POT] $@"
$(cmd) $(call xml2pot,$^,$@)
# Remove left over pot files
cleanup-pot:
$(msg) "Cleaning up pot files ..."
$(cmd) $(find_l) pot/ $(pot_file_predicates) | \
while read potfile; do \
potfile=$${potfile#pot/}; srcfile=src/$${potfile%.pot}.xml \
test -e $${srcfile} || rm -f $${potfile}; \
done
# Targets suitable for command line
pot: potfiles cleanup-pot ;
potfiles: $(POT_FILES) ;
.PHONY: pot potfiles cleanup-pot
########################################################################
#### Make po files: POT --> PO ####
########################################################################
define MAKE_PO_RULES
$(1)_PO_FILES = $$(patsubst pot/%.pot, po/$(1)/%.po, $$(POT_FILES))
ifeq ($$(filter po/$(1)/%.po,$$(MAKECMDGOALS)),)
$$($(1)_PO_FILES): po/$(1)/%.po : pot/%.pot
else
$$($(1)_PO_FILES): po/$(1)/%.po : pot/%.pot FORCE
endif
$$(cmd) $$(call make_target_dir,$$@)
$$(msg) "[PO] $$@"
$$(cmd) if test -s $$<; then $$(call pot2po,$$<,$(1),$$@); else touch $$@; fi
po-$(1): $$($(1)_PO_FILES) cleanup-po-$(1)
$$(cmd) if test -e messages.mo; then rm -f messages.mo; fi
cleanup-po-$(1):
$$(msg) "Cleaning up '$(1)' po files ..."
$$(cmd) $(find_l) po/$(1)/ $$(po_file_predicates) | \
while read pofile; do \
potfile=pot/$$$${pofile#po/$(1)/}t; \
test -e $$$${potfile} || rm -vf $$$${pofile}; \
done
endef
$(foreach LANG,$(PO_LANGS),$(eval $(call MAKE_PO_RULES,$(LANG))))
# Special case 'en': do nothing :-)
po-en: ;
# Print translation statistics
status-%: po-status-% ;
po-status-%: po-%
$(cmd) perl tools/get_po_status.pl po/$*
status-all: po-status-all ;
po-status-all:
$(cmd) for podir in po/*; do \
perl tools/get_po_status.pl --nofiles --nosummary $${podir} || break; \
done
todo-%: po-todo-% ;
po-todo-%: po-%
$(cmd) perl tools/get_po_status.pl --todo po/$*
# Force updating po file(s)
force-po/%:
$(cmd) $(RMAKE) po/$*/*.po
# Main commandline target
po: $(foreach LANG,$(PO_LANGS),po-$(LANG)) ;
.PHONY: po po-% cleanup-po-% todo-% po-todo-% po-status-%
########################################################################
#### Generate XML prerequisites ####
########################################################################
ifeq ($(filter $(QUICK_TARGETS),$(MAKECMDGOALS)),)
include $(foreach LANG,$(PO_LANGS),xml/$(LANG)/.deps.mk)
endif
# The dynamically generated and updated ".deps.mk" files contain
# rules to register the po prereqisite for every xml file, e.g.
# xml/LANG/*.xml: po/LANG/gimp.po
# xml/LANG/filters/*.xml: po/LANG/filters.po
# xml/LANG/filters/generic/*.xml: po/LANG/filters/generic.po
# etc.
#xml/$(1)/.deps.mk: $(AUTHORS_DOCBOOK_XML) $$($(1)_PO_FILES)
# TODO: simplify
define MAKE_DEP_RULES
xml/$(1)/.deps.mk: $(AUTHORS_DOCBOOK_XML) $$(SRC_FILES)
$$(cmd) $$(call make_target_dir,$$@)
$$(msg) "[DEP] $$@"
$$(cmd) touch $$@
$$(cmd) for srcdir in $(SRC_DIRS); do \
ls $$$${srcdir}/*.xml >/dev/null 2>&1 || continue; \
srcdir=$$$${srcdir%/}; \
xmldir=xml/$(1)$$$${srcdir#src}; \
test "$$$${srcdir}" != "src" || srcdir="src/gimp"; \
pofile=po/$(1)$$$${srcdir#src}.po; \
echo "$$$${xmldir}/*.xml: $$$${pofile}"; \
done > $$@
endef
$(foreach LANG,$(PO_LANGS),$(eval $(call MAKE_DEP_RULES,$(LANG))))
########################################################################
#### Make XML files: PO --> XML(non-en) ####
########################################################################
# TODO: check xml/$(1) vs. xml-$(1) prerequisites (XML_FILES)
define MAKE_XML_RULES
$(1)_XML_FILES = $$(SRC_FILES:src/%=xml/$(1)/%)
xml/$(1)/%.xml:
$$(msg) "[XML] $$@"
$$(cmd) $$(call make_target_dir,$$@)
$$(cmd) xmlfile=$$@; \
stem=$$*; \
srcfile=src/$$$${stem}.xml; \
test "$$$${stem}" != "$$$${stem%/*}" && stem=$$$${stem%/*} || stem=gimp; \
pofile=po/$(1)/$$$${stem}.po; \
test -e "$$$${pofile}" || $$(RMAKE) "$$$${pofile}"; \
$(call po2xml,$$$${srcfile},$$$${pofile},$(1),$$@)
# This is indirectly used as HTML and PDF prerequisite:
xml/$(1): $$($(1)_XML_FILES) | xml/$(1)/images
$$(cmd) test -d $$@ && touch $$@ || $(mkdir_p) $$@
# Targets suitable for command line
xml-$(1): po-$(1) xml/$(1) cleanup-xml-$(1) ;
endef
$(foreach LANG,$(PO_LANGS),$(eval $(call MAKE_XML_RULES,$(LANG))))
# Special case: en
en_XML_FILES = $(SRC_FILES:src/%=xml/en/%)
$(en_XML_FILES): xml/en/%.xml : src/%.xml
$(msg) "[XML] $@ (copy)"
$(cmd) $(call make_target_dir,$@)
$(cmd) cp -f $< $@
xml/en: $(en_XML_FILES) | xml/en/images
$(cmd) test -d $@ && touch $@ || $(mkdir_p) $@
xml-en: xml/en cleanup-xml-en ;
# Images
ifeq ($(MAKE_IMAGES), lazy)
# fast and lazy: detect added or removed images, but may miss changed images
IMAGE_PREREQ = $(shell cd $(srcdir) && $(find_l) images/common images/C -type d)
else ifeq ($(MAKE_IMAGES), force)
# just in case: always update images
IMAGE_PREREQ = FORCE
else
# strict (default): detects added, removed, or changed images
IMAGE_PREREQ = $(shell cd $(srcdir) && $(find_l) images/common images/C)
endif
xml/%/images: $(IMAGE_PREREQ)
$(cmd) test -d $@ && rm -rf $@/* || $(mkdir_p) $@
$(cmd) $(echo_n) "Copying images ($*) ..."
$(cmd) perl $(MAKE_IMAGE_LINKS) $(MAKE_IMAGE_LINKS_FLAGS) \
images/common images/C xml/$*
$(cmd) touch $@
# Remove left over xml files
cleanup-xml-%:
$(msg) "Cleaning up '$*' xml files ..."
$(cmd) $(find_l) xml/$*/ $(xml_file_predicates) | \
while read xmlfile; do \
test -e src/$${xmlfile#xml/$*/} || rm -vf $${xmlfile}; \
done
# Command-line targets
xml: $(foreach LANG,$(LANGUAGES),xml-$(LANG)) ;
images-%: xml/%/images html/%/images ;
.PRECIOUS: xml/%/images
.PHONY: xml xml-% images-%
########################################################################
#### XML validation ####
########################################################################
validate: validate-en ;
validate-%: xmllint-% ;
xmllint: xmllint-en ;
xmllint-%: log/%-xmllint.log
$(cmd) test -s $< && cat $<
define MAKE_XMLLINT_RULES
log/$(1)-xmllint.log: $$($(1)_XML_FILES)
$$(cmd) $$(call make_target_dir,$$(@))
$$(cmd) if type $$(XMLLINT) >/dev/null 2>&1; then \
echo "*** Validating XML ($(1)) ... "; \
$$(XMLLINT) $$(XMLLINTFLAGS) --xinclude xml/$(1)/gimp.xml \
| $$(SED) -e 's,xmlns:xi="http://www.w3.org/2001/XInclude",,' \
| $$(XMLLINT) $$(XMLLINTFLAGS) --valid \
--output log/$(1).xml - 2>$$(@); \
if test -s $$(@); then \
echo "(You will find log and xml files in log/.)"; \
else \
echo "$(1): no errors."; \
rm -f log/$(1).xml; \
fi >> $$(@); \
else \
echo >&2 "*** Validating '$(1)' skipped: 'xmllint' not found."; \
fi
endef
$(foreach LANG,$(LANGUAGES),$(eval $(call MAKE_XMLLINT_RULES,$(LANG))))
log:
$(cmd) mkdir $@ && test -w $@
########################################################################
#### Make XSL styesheets for HTML ####
########################################################################
# TODO
stylesheets/plainhtml.xsl: stylesheets/plainhtml.xsl.in
$(msg) "[XSL] $@"
$(cmd) $(SED) -e s,@STYLEBASE@,http://docbook.sourceforge.net/release/xsl/current, $< > $@
stylesheets/htmlalternate.xsl: stylesheets/htmlalternate.xsl.in
$(msg) "[XSL] $@"
$(cmd) cp $< $@
########################################################################
#### Make HTML files: XML --> HTML ####
########################################################################
# Main commandline targets
html-%: xml-% html/%/index.html html/%/gimp-help.xml ;
html: $(foreach lang,$(LANGUAGES),html-$(lang)) ;
# Making the main HTML file (side effect: make gimp-xrefs.xml)
html/%/index.html: xml/% $(HTML_STYLESHEETS) | html/%/images
$(msg) "*** Making html for $* ... "
$(cmd) rm -f html/$*/*.*
$(cmd) $(XSLTPROC) \
$(XSLTFLAGS) $(XSLTEXTRAFLAGS) \
--xinclude \
--stringparam l10n.gentext.default.language $* \
-o html/$*/ \
stylesheets/plainhtml.xsl \
xml/$*/gimp.xml
$(msg) "Copying stylesheets ... "
$(cmd) for file in $(srcdir)/stylesheets/*.css \
$(srcdir)/stylesheets/$*/*.css; do \
if [ -f $${file} ]; then cp -f $${file} html/$*; fi; \
done
### Cross references & context help ###
index: $(foreach lang,$(LANGUAGES),index-$(lang)) ;
index-%: html/%/gimp-help.xml ;
html/%/gimp-help.xml: html/%/gimp-xrefs.xml stylesheets/makeindex.xsl
$(cmd) $(XSLTPROC) \
$(XSLTFLAGS) $(XSLTEXTRAFLAGS) \
$(srcdir)/stylesheets/makeindex.xsl \
$< \
> $@
# The xrefs file is a side effect of the HTML build
html/%/gimp-xrefs.xml: html/%/index.html
$(cmd) touch $@
### HTML images ###
ifneq ($(CYGWIN),1)
html/%/images: xml/%/images
$(cmd) test -d html/$* || $(mkdir_p) html/$*
$(cmd) test -e $@ || $(ln_s) ../../$< $@
else
html/%/images: $(IMAGE_PREREQ)
$(cmd) if test -h $@; then rm -f $@; fi
$(cmd) test -d $@ && rm -rf $@/* || $(mkdir_p) $@
$(cmd) $(echo_n) "Copying HTML images ($*) ..."
$(cmd) perl $(MAKE_IMAGE_LINKS) $(MAKE_IMAGE_LINKS_FLAGS) \
images/common images/C $@
$(cmd) touch $@
endif
.PRECIOUS: \
html/%/index.html \
html/%/gimp-help.xml \
html/%/gimp-xrefs.xml \
html/%/images
.PHONY: html html-% index index-%
########################################################################
#### Make HTML draft (single page preview) ####
########################################################################
preview-xml/%.xml: xml/%.xml stylesheets/drafthtml.xsl
$(cmd) id=`$(SED) -e 's/.*id=.//' -e tmatch \
-e d -e :match \
-e 's/["'"'"'].*//' \
-e q $<`; \
test -n "$${id}" || id=noname; \
lang=$(shell echo $< | $(SED) -e 's,^xml/,,; s,/.*,,'); \
destdir=html/$${lang}; \
test -d $${destdir}/images || $(RMAKE) $${destdir}/images; \
cp -f $(srcdir)/stylesheets/*.css $(srcdir)/stylesheets/$${lang}/*.css\
$${destdir} 2>/dev/null; \
destfile="$${destdir}/$${id}-draft.html"; \
echo "Making $${destfile} (ignore any XSLT complaints) ..."; \
$(XSLTPROC) \
$(XSLTFLAGS) $(XSLTEXTRAFLAGS) \
--xinclude \
--stringparam l10n.gentext.default.language $${lang} \
--output $${destfile} \
$(srcdir)/stylesheets/drafthtml.xsl \
$<
preview-src/%.xml: $(foreach lang,$(LANGUAGES),preview-xml/$(lang)/%.xml)
$(msg) "(Remember that links won't work in a draft file.)"
preview-po/%.po:
@echo >&2 "After merging pofiles this feature does not work any more."
@echo >&2 "Use 'make ... preview-xml/$*.xml'."
# For backward compatibility:
xml/%.draft: preview-xml/%.xml
$(msg) "(Remember that links won't work in a draft file.)"
src/%.draft: preview-src/%.xml ;
# Synonyms
draft-xml/%.xml: preview-xml/%.xml ;
draft-src/%.xml: preview-src/%.xml ;
draft-po/%.po: preview-po/%.po ;
########################################################################
#### Make PDF files: XML --> PDF ####
########################################################################
ifneq ($(DBLATEX),)
pdf: $(foreach lang,$(LANGUAGES),pdf-$(lang)) ;
pdf-%: pdf/%/gimp.pdf ;
# TODO: check prerequisites, e.g. images (--fig-path option?)
pdf/%/gimp.pdf: xml/% stylesheets/plainprint.xsl xml/%/images
$(cmd) if test -f pdf/%.pdf; then rm -f pdf/%.pdf; fi
$(cmd) test -d pdf/$* || $(mkdir_p) pdf/$*
$(msg) "*** Making PDF ($*) ..."
$(cmd) $(DBLATEX) $(DBLATEXFLAGS) $(DBLATEXEXTRAFLAGS) \
--xsl-user=$(srcdir)/stylesheets/plainprint.xsl \
--output=$@ \
xml/$*/gimp.xml
.PRECIOUS: pdf/%/gimp.pdf
else
pdf pdf-%:
@echo "*** Cannot build PDFs because DBLATEX was not defined ***"
@exit 69
endif
########################################################################
#### Make ODF files: XML --> ODF ####
########################################################################
ifneq ($(DOCBOOK2ODF),)
odf: $(foreach lang,$(LANGUAGES),odf-$(lang)) ;
odf-%: odf/%/gimp.odt ;
# TODO?: images
odf/%/gimp.odt: xml/%/gimp-alldocs.xml xml/%/images
$(cmd) if test -f odf/%.odt; then rm -f odf/%.odt; fi
$(cmd) test -d odf/$* || $(mkdir_p) odf/$*
$(msg) "*** Making ODF ($*) ..."
$(cmd) $(DOCBOOK2ODF) $(DOCBOOK2ODFFLAGS) \
--debug -v \
--output-dir=`pwd` \
--output-file=$@ \
$<
# make temporary XML source file with all Xincludes resolved
# TODO: find out how to avoid this
xml/%/gimp-alldocs.xml: xml/%/gimp.xml
$(msg) "*** Merging XML ..."
$(cmd) $(XMLLINT) $(XMLLINTFLAGS) --xinclude --output $@ $<
.PRECIOUS: odf/%/gimp.odt
else
odf odf-%:
@echo "*** Cannot build ODFs because DOCBOOK2ODF was not defined ***"
@exit 69
endif
########################################################################
#### Make language-specific HTML tarballs ####
########################################################################
tarball_prefix = gimp-help-2-html
tarball_dir = gimp-help-2
HTMLMETAFILES = README AUTHORS COPYING MAINTAINERS
$(tarball_prefix)-%.tar: html/%/index.html html/%/gimp-help.xml \
$(HTMLMETAFILES) make.d/Makefile.html-package
$(msg) "Making $@ ..."
$(cmd) test ! -d $(tarball_dir)
$(cmd) $(mkdir_p) $(tarball_dir)/html
$(cmd) cd $(tarball_dir)/html && $(ln_s) ../../html/$* .
$(cmd) cp $(HTMLMETAFILES) $(tarball_dir)/
$(cmd) cp make.d/INSTALL.html-package $(tarball_dir)/INSTALL
$(cmd) $(SED) -e '/LANGUAGE *=/s/en/$*/' \
make.d/Makefile.html-package > $(tarball_dir)/Makefile
$(cmd) tar -chf $@ $(tarball_dir)/
$(cmd) rm -rf $(tarball_dir)
$(tarball_prefix)-%.tar.gz: $(tarball_prefix)-%.tar
$(msg) "Making $@ ..."
$(cmd) gzip -c9 $< > $@
$(tarball_prefix)-%.tar.bz2: $(tarball_prefix)-%.tar
$(msg) "Making $@ ..."
$(cmd) bzip2 -c9 $< > $@
$(tarball_prefix)-%.tar.xz: $(tarball_prefix)-%.tar
$(msg) "Making $@ ..."
$(cmd) xz -c9 $< > $@
$(tarball_prefix)-%.zip: $(tarball_prefix)-%.tar
$(msg) "Making $@ ..."
$(cmd) rm -rf $(tarball_dir)/html
$(cmd) $(mkdir_p) $(tarball_dir)/html
$(cmd) cd $(tarball_dir)/html && $(ln_s) ../../html/$* .
$(cmd) zip -9rq $@ $(tarball_dir)/html
$(cmd) rm -rf $(tarball_dir)
########################################################################
#### Clean up ####
########################################################################
clean:
$(cmd) for dir in pot xml log html pdf odf; do \
test -d $${dir} || continue; \
echo "Removing $${dir} ..."; \
rm -rf $${dir}; \
done
$(cmd) for f in AUTHORS $(AUTHORS_DOCBOOK_XML) build-system.*; do \
test -f $${f} || continue; \
echo "Removing $${f} ..."; \
rm -f $${f}; \
done
dist-clean: clean ;
.PHONY: clean dist-clean
########################################################################
#### Source file checks ####
########################################################################
check: checks ;
checks: check-image-references ;
check-images: check-image-references ;
check-image-references:
$(cmd) if cd $(srcdir) && test -e tools/validate_references.py && \
type python >/dev/null 2>&1; then \
echo "*** Checking image references ... "; \
python tools/validate_references.py \
--verbose --broken --orphaned \
$(VALIDATEREFERENCESFLAGS); \
else \
echo >&2 "*** Cannot check image references (no Python installed?) ***"; \
fi
check-images-%: FORCE
$(cmd) $(RMAKE) check-image-references \
VALIDATEREFERENCESFLAGS="--imgdir=images/C,images/$*"
check-image-resolutions-%:
$(cmd) /bin/sh tools/check_image_resolutions.sh images/$*
# special case 'en':
check-images-en check-images-C: check-image-references ;
check-image-resolutions-en: check-image-resolutions-C ;
.PHONY: checks check-image-references check-image-resolutions-%
########################################################################
#### Build system development & debugging ####
########################################################################
build-system.svg: make.d/build-system.dot
$(cmd) if type dot >/dev/null; then \
dot -Tsvg -o $@ $<; \
fi
dot: build-system.svg
$(cmd) if test -e $<; then \
if type display >/dev/null; then \
display $<; \
elif type xv >/dev/null; then \
xv $<; \
fi; \
fi
########################################################################
#### Special targets ####
########################################################################
FORCE: ;
.PHONY: FORCE
# Delete the default suffix rules
.SUFFIXES:

File diff suppressed because it is too large Load Diff

View File

@ -1,62 +0,0 @@
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:gnome="http://api.gnome.org/doap-extensions#"
xmlns="http://usefulinc.com/ns/doap#">
<name xml:lang="en">gimp-help-2</name>
<homepage rdf:resource="http://docs.gimp.org"/>
<mailing-list rdf:resource="https://lists.xcf.berkeley.edu/mailman/listinfo/gimp-docs" />
<download-page rdf:resource="http://docs.gimp.org/download.html" />
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=GIMP-manual" />
<shortdesc xml:lang="en">GIMP User Manual</shortdesc>
<shortdesc xml:lang="de">GIMP-Benutzerhandbuch</shortdesc>
<!-- Based on I.1.1.2. The GIMP Help System -->
<description xml:lang="en">
The GIMP Documentation Team and other users have provided you with the
information necessary to understand how to use GIMP. The User Manual is an
important part of this help. The current version is on the web site of the
Documentation Team in HTML format. The HTML version is also available as
context sensitive help (if you installed it) while using GIMP by pressing
the F1 key.
</description>
<description xml:lang="de">
Das Dokumentations-Team und die Anwender von GIMP stellen Ihnen
vielfältige Informationen bereit, um Sie bei der Arbeit mit GIMP zu
unterstützen. Dieses Handbuch ist ein wichtiger Bestandteil der
Dokumentation. Die aktuelle Version finden Sie auf der Webseite des
GIMP-Dokumentations-Teams. Die HTML-Version wird zusätzlich als Kontexthilfe
verwendet. Sie können auf diese von GIMP aus jederzeit durch Drücken der
F1-Taste zugreifen.
</description>
<maintainer>
<foaf:Person>
<foaf:name>Róman Joost</foaf:name>
<foaf:mbox rdf:resource="mailto:romanofski@gimp.org" />
<gnome:userid>romanofski</gnome:userid>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Ulf-D. Ehlert</foaf:name>
<foaf:mbox rdf:resource="mailto:ulfehlert@svn.gnome.org" />
<gnome:userid>ulfehlert</gnome:userid>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Marco Ciampa</foaf:name>
<foaf:mbox rdf:resource="mailto:ciampix@libero.it" />
<gnome:userid>marcoc</gnome:userid>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Julien Hardelin</foaf:name>
<foaf:mbox rdf:resource="mailto:jm.hard@wanadoo.fr" />
<gnome:userid>jhardlin</gnome:userid>
</foaf:Person>
</maintainer>
</Project>

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Sat Jan 12 14:40:37 UTC 2013 - dimstar@opensuse.org
- Add gimp-help-2.8.0-missing-po-files.patch: Add missing .po files
to the source directory. Fixes build on Factory.
- Drop Makefile.GNU and use upstream shipped build system, as this
works again.
- Unset MALLOC_CHECK_ and MALLOC_PERTURB_ to avoid some crashes
(hack only.. no fix yet).
- Add new sub packages for new languages that apeared due to using
the upstream / maintained makefile: ca, el, en_GB, fi, hr, lt and
sl.
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 31 11:13:55 UTC 2012 - mvyskocil@suse.com Wed Oct 31 11:13:55 UTC 2012 - mvyskocil@suse.com

View File

@ -1,7 +1,7 @@
# #
# spec file for package gimp-help # spec file for package gimp-help
# #
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -19,16 +19,14 @@
Name: gimp-help Name: gimp-help
Version: 2.8.0 Version: 2.8.0
Release: 0 Release: 0
# FIXME: on update, see if we still need Makefile.GNU as additional source (last check: 2.6.1). See bgo#639057.
# FIXME: Check if parallel build reliably works again (last check: 2.6.1) # FIXME: Check if parallel build reliably works again (last check: 2.6.1)
Summary: Help System Data for GIMP Summary: Help System Data for GIMP
License: GFDL-1.2 License: GFDL-1.2
Group: Productivity/Graphics/Bitmap Editors Group: Productivity/Graphics/Bitmap Editors
Url: http://www.gimp.org/ Url: http://www.gimp.org/
Source0: ftp://ftp.gimp.org/pub/gimp/help/%{name}-%{version}.tar.bz2 Source0: ftp://ftp.gimp.org/pub/gimp/help/%{name}-%{version}.tar.bz2
# Taken from git on 2011-01-09. Default Makefile doesn't work. # PATCH-FIX-UPSTREAM gimp-help-2.8.0-missing-po-files.patch dimstar@opensuse.org -- Add missing .po files
Source1: Makefile.GNU Patch0: gimp-help-2.8.0-missing-po-files.patch
Source2: gimp-help-2.doap
BuildRequires: docbook-xsl-stylesheets BuildRequires: docbook-xsl-stylesheets
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gimp-devel BuildRequires: gimp-devel
@ -47,6 +45,18 @@ BuildArch: noarch
GIMP-Help is a help system designed for use with the internal GIMP help GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs. browser, external Web browser and HTML renderers, and human eyeballs.
%package ca
Summary: Catalanian Help System Data for GIMP
Group: System/Localization
Requires: %{name} = %{version}
Provides: locale(%{name}:ca)
%description ca
GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Catalanian data for gimp-help.
%package da %package da
Summary: Danish Help System Data for GIMP Summary: Danish Help System Data for GIMP
Group: System/Localization Group: System/Localization
@ -71,6 +81,30 @@ browser, external Web browser and HTML renderers, and human eyeballs.
This package provides German data for gimp-help. This package provides German data for gimp-help.
%package el
Summary: Greek Help System Data for GIMP
Group: System/Localization
Requires: %{name} = %{version}
Provides: locale(%{name}:el)
%description el
GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Greek data for gimp-help.
%package en_GB
Summary: British English Help System Data for GIMP
Group: System/Localization
Requires: %{name} = %{version}
Provides: locale(%{name}:en_GB)
%description en_GB
GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs.
This package provides British English data for gimp-help.
%package es %package es
Summary: Spanish Help System Data for GIMP Summary: Spanish Help System Data for GIMP
Group: System/Localization Group: System/Localization
@ -83,6 +117,18 @@ browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Spanish data for gimp-help. This package provides Spanish data for gimp-help.
%package fi
Summary: Finnish Help System Data for GIMP
Group: System/Localization
Requires: %{name} = %{version}
Provides: locale(%{name}:fi)
%description fi
GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Finnish data for gimp-help.
%package fr %package fr
Summary: French Help System Data for GIMP Summary: French Help System Data for GIMP
Group: System/Localization Group: System/Localization
@ -95,6 +141,18 @@ browser, external Web browser and HTML renderers, and human eyeballs.
This package provides French data for gimp-help. This package provides French data for gimp-help.
%package hr
Summary: Croatian Help System Data for GIMP
Group: System/Localization
Requires: %{name} = %{version}
Provides: locale(%{name}:hr)
%description hr
GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Croatian data for gimp-help.
%package it %package it
Summary: Italian Help System Data for GIMP Summary: Italian Help System Data for GIMP
Group: System/Localization Group: System/Localization
@ -131,6 +189,18 @@ browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Korean data for gimp-help. This package provides Korean data for gimp-help.
%package lt
Summary: Lithuanian Help System Data for GIMP
Group: System/I18n/Korean
Requires: %{name} = %{version}
Provides: locale(%{name}:lt)
%description lt
GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Lithuanian data for gimp-help.
%package nl %package nl
Summary: Dutch Help System Data for GIMP Summary: Dutch Help System Data for GIMP
Group: System/Localization Group: System/Localization
@ -179,6 +249,18 @@ browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Russian data for gimp-help. This package provides Russian data for gimp-help.
%package sl
Summary: Slovenian Help System Data for GIMP
Group: System/Localization
Requires: %{name} = %{version}
Provides: locale(%{name}:sl)
%description sl
GIMP-Help is a help system designed for use with the internal GIMP help
browser, external Web browser and HTML renderers, and human eyeballs.
This package provides Slovenian data for gimp-help.
%package sv %package sv
Summary: Swedish Help System Data for GIMP Summary: Swedish Help System Data for GIMP
Group: System/Localization Group: System/Localization
@ -205,23 +287,19 @@ This package provides Chinese data for gimp-help.
%prep %prep
%setup -q %setup -q
cp %{S:1} . %patch0 -p1
cp %{S:2} .
%build %build
unset MALLOC_CHECK_
unset MALLOC_PERTURB_
%configure %configure
#make -f Makefile.GNU %{?jobs:-j%jobs} make
# Parallel build is broken
make -f Makefile.GNU
# unify the permissions of images, to make fdupes working again (bnc#784670) # unify the permissions of images, to make fdupes working again (bnc#784670)
find images/ -type f -exec chmod 0644 {} + find images/ -type f -exec chmod 0644 {} +
%install %install
#FIXME: we can't use the usual macro since we don't use the standard Makefile %make_install
#%make_install
install -d %{buildroot}%{_datadir}/gimp/2.0/help
cp -RL html/* %{buildroot}%{_datadir}/gimp/2.0/help/
for locale in %{buildroot}%{_datadir}/gimp/2.0/help/*; do for locale in %{buildroot}%{_datadir}/gimp/2.0/help/*; do
%fdupes $locale %fdupes $locale
done done
@ -235,6 +313,10 @@ rm -rf %{buildroot}
%dir %{_datadir}/gimp/2.0/help %dir %{_datadir}/gimp/2.0/help
%{_datadir}/gimp/2.0/help/en/ %{_datadir}/gimp/2.0/help/en/
%files ca
%defattr (-,root,root)
%lang(ca) %{_datadir}/gimp/2.0/help/ca/
%files da %files da
%defattr (-,root,root) %defattr (-,root,root)
%lang(da) %{_datadir}/gimp/2.0/help/da/ %lang(da) %{_datadir}/gimp/2.0/help/da/
@ -243,14 +325,30 @@ rm -rf %{buildroot}
%defattr (-,root,root) %defattr (-,root,root)
%lang(de) %{_datadir}/gimp/2.0/help/de/ %lang(de) %{_datadir}/gimp/2.0/help/de/
%files el
%defattr (-,root,root)
%lang(el) %{_datadir}/gimp/2.0/help/el/
%files en_GB
%defattr (-,root,root)
%lang(en_GB) %{_datadir}/gimp/2.0/help/en_GB/
%files es %files es
%defattr (-,root,root) %defattr (-,root,root)
%lang(es) %{_datadir}/gimp/2.0/help/es/ %lang(es) %{_datadir}/gimp/2.0/help/es/
%files fi
%defattr (-,root,root)
%lang(fi) %{_datadir}/gimp/2.0/help/fi/
%files fr %files fr
%defattr (-,root,root) %defattr (-,root,root)
%lang(fr) %{_datadir}/gimp/2.0/help/fr/ %lang(fr) %{_datadir}/gimp/2.0/help/fr/
%files hr
%defattr (-,root,root)
%lang(hr) %{_datadir}/gimp/2.0/help/hr/
%files it %files it
%defattr (-,root,root) %defattr (-,root,root)
%lang(it) %{_datadir}/gimp/2.0/help/it/ %lang(it) %{_datadir}/gimp/2.0/help/it/
@ -263,6 +361,10 @@ rm -rf %{buildroot}
%defattr (-,root,root) %defattr (-,root,root)
%lang(ko) %{_datadir}/gimp/2.0/help/ko/ %lang(ko) %{_datadir}/gimp/2.0/help/ko/
%files lt
%defattr (-,root,root)
%lang(lt) %{_datadir}/gimp/2.0/help/lt/
%files nl %files nl
%defattr (-,root,root) %defattr (-,root,root)
%lang(nl) %{_datadir}/gimp/2.0/help/nl/ %lang(nl) %{_datadir}/gimp/2.0/help/nl/
@ -279,6 +381,10 @@ rm -rf %{buildroot}
%defattr (-,root,root) %defattr (-,root,root)
%lang(ru) %{_datadir}/gimp/2.0/help/ru/ %lang(ru) %{_datadir}/gimp/2.0/help/ru/
%files sl
%defattr (-,root,root)
%lang(sl) %{_datadir}/gimp/2.0/help/sl/
%files sv %files sv
%defattr (-,root,root) %defattr (-,root,root)
%lang(sv) %{_datadir}/gimp/2.0/help/sv/ %lang(sv) %{_datadir}/gimp/2.0/help/sv/